Задайте, сгенерировать ли функцию .model_step
Генерация кода Category:> Интерфейс
Значение по умолчанию: на
Генерирует функцию для модели. Эта функция содержит код функции вывода и обновления для блоков в модели и вызвана model_steprt_OneStep, чтобы выполнить обработку в течение одного периода часов модели на уровне прерывания.
Не комбинирует вывод и обновляет функциональный код в одну функцию, и вместо этого генерирует код в отдельном и model_outputфункциях .model_update
Ошибки или неожиданное поведение могут произойти, если блок Model является частью цикла, блок Model является прямым проходным блоком, и заканчивается алгебраический цикл. Для получения дополнительной информации о прямом канале через, смотрите Алгебраические Концепции Цикла (Simulink).
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, между вызовом | X | |
Выберите параметр Single output/update function и введите код в сгенерированном или файле .cpp, чтобы возвратить образцовые выходные значения, отражающие только главные временные шаги. Например, в образцовой ступенчатой функции, между выходным кодом и кодом обновления, сохраняют значение структуры глобальных данных модели External outputs (заданный в ). Затем восстановите значение после того, как код обновления завершится. | X | X |
| Поместите блок Zero-Order Hold перед непрерывным выходным портом. | X | X |
Параметр:
CombineOutputUpdateFcns |
| Ввод: символьный вектор |
Значение:
'on' | 'off' |
Значение по умолчанию:
'on' |
| Приложение | Установка |
|---|---|
| Отладка | На |
| Трассируемость | На |
| Эффективность | На |
| Меры безопасности |
Никакая рекомендация |