Укажите, нужно ли генерировать функция.model_step
Category: Генерация кода > Интерфейс
По умолчанию: on
Генерирует функция для модели. Эта функция содержит выход и обновления для блоков в модели и вызывается model_steprt_OneStep для выполнения обработки в течение одного тактового периода модели на уровне прерывания.
Не объединяет выход и обновление кода функции в одну функцию, и вместо этого генерирует код в отдельных и model_output функций.model_update
Ошибки или неожиданное поведение могут возникнуть, если блок Model является частью цикла, блок Model является прямым исходным блоком, и результат алгебраического цикла. Для получения дополнительной информации о прямой передаче через, см. Алгебраические Циклы Концепций.
Simulink® Coder™ игнорирует этот параметр для модели-ссылки, если к этой модели применяется какое-либо из следующих условий:
Является многоскоростным
Имеет непрерывный шаг расчета
Являются ли состояния журнала (с использованием параметров States или Final states на панели Configuration Parameters > Data Import/Export
Установка значения Code interface packaging C++ class включает и отключает эту опцию.
Эта опция и Classic call interface являются взаимно несовместимыми и не могут быть выбраны через графический интерфейс пользователя. Выбор Classic call interface выключает и отключает эту опцию, и удаление Classic call interface включает (но не выбирает) эту опцию.
При использовании этой опции необходимо удалить Minimize algebraic loop occurrences опции на панели Model Referencing.
Если вы настраиваете ert_main.c или .cpp чтобы считать выходы модели после каждого шага модели базовой скорости, выбор обоих параметров Support: continuous time и Single output/update function может привести к выходным значениям, считанным из ert_main для непрерывного выходного порта, который будет отличаться от соответствующих выходных значений в записанных данных для модели. Это потому, что, в то время как записанные данные являются моментальным снимком выхода на основных временных шагах, вывод, считанный из ert_main после шага модели базовой скорости потенциально отражает промежуточные незначительные временные шаги. В следующей таблице перечислены обходные пути, которые устраняют расхождения.
| Работайте вокруг | Настраиваемые ert_main.c | Настраиваемые ert_main.cpp |
|---|---|---|
Разделите сгенерированные выходы и обновления (очистите параметр Single output/update function) и вставьте код в ert_main считать выходные значения модели, отражающие только основные временные шаги. Для примера, в ert_main, между вызов и позвоните, прочитайте модель External outputs глобальные данные (определена в ). | X | |
Выберите параметр Single output/update function и вставьте код в сгенерированный или .cpp файл, чтобы вернуть выходные значения модели, отражающие только основные временные шаги. Для примера в функции шага модели между кодом выхода и кодом обновления сохраните значение модели External outputs глобальные данные (определена в ). Затем восстановите значение после завершения обновления кода. | X | X |
| Поместите блок Zero-Order Hold перед непрерывным выходным портом. | X | X |
Параметр:
CombineOutputUpdateFcns |
| Тип: Вектор символов |
Значение:
'on' | 'off' |
По умолчанию:
'on' |
| Приложение | Настройка |
|---|---|
| Отладка | На |
| Трассируемость | На |
| Эффективность | На |
| Меры безопасности | Нет рекомендации |