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