Функция инициализации

Функция инициализации (InitFcn) является типом коллбэка, который выполнен или оценен в начале образцовой компиляции. Можно использовать InitFcn в модели (модель InitFcn) или блок (blockInitFcn).

Примечание

Различные средства управления могут быть заданы только в коллбэке модели InitFcn.

Образцовый InitFcn

Коллбэк модели InitFcn используется, чтобы инициализировать параметры и параметры среды, которые характерны для используемой модели.

Примечание

Не рекомендуется использовать коллбэк модели InitFcn, чтобы получить состояние симуляции. Если вы моделируете модель в rtwbuild или SIL (программное обеспечение в цикле), или Быстрый Режим Accelerator, состояние коллбэка модели InitFcn может показать 'stopped'. Коллбэк модели InitFcn должен использоваться только, чтобы инициализировать параметры и параметры среды, которые характерны для используемой модели.

Лучшые практики для использования Модели InitFcn

  • Действительно используйте модель InitFcn, чтобы инициализировать данные, требуемые для модели. Например, чтобы инициализировать:

    • Переменные используются в параметрах модели

    • Проверки лицензий на необходимое программное обеспечение

  • Не используйте модель InitFcn, чтобы изменить модели кроме сам. Это также означает, что блок InitFcn блока Model не должен изменять параметры (и структура) модели, на которую ссылаются.

  • Не используйте модель InitFcn в топ-модели, чтобы перезаписать любую переменную, используемую в модели, на которую ссылаются. Например, если верхняя часть и модели, на которые ссылаются, используют переменную 'k', модель InitFcn топ-модели не должна изменять 'k' модели, на которую ссылаются. В таких шаблонах моделирования рекомендуется, чтобы вы использовали различные имена переменных. Также можно использовать словарь данных.

  • Не используйте команды симуляции в модели InitFcn. Например, с помощью команд как, set_param(ModelName, 'SimulationCommand', 'start') или set_param(ModelName, 'SimulationCommand', 'update') в модели InitFcn не рекомендуются.

Варианты с моделью InitFcn

Можно использовать образцовые свойства задать коллбэки для модели. Например, PreLoadFcn, PostLoadFcn, коллбэки InitFcn. Образцовые свойства используются, чтобы просмотреть информацию модели, описание, историю и функции обратного вызова. Можно использовать Property Inspector, чтобы просмотреть и отредактировать образцовые свойства версии, историю описания и функции обратного вызова. Для получения дополнительной информации о свойствах Model смотрите Manage Model Properties.

Рассмотрите модель с Различной Подсистемой и Различными Исходными блоками. Например, Вариант - InitFcn.

В этой модели модель InitFcn используется, чтобы инициализировать параметры для модели.

Точно так же эти параметры могут также быть заданы в PreLoadFcn или PostLoadFcn.

Однако, когда параметры заданы в коллбэке InitFcn и если рабочее пространство MATLAB очищено с помощью команды Clear , элементы в рабочей области очищены, и они воссоздаются, когда вы моделируете модель. Очищенные элементы не будут воссозданы, когда параметры будут заданы в PreLoadFcn или PostLoadFcn.

Блокируйте InitFcn

Коллбэк блока InitFcn используется, чтобы инициализировать блок определенные параметры и настройки.

Лучшые практики для использования Блока InitFcn

  • Не используйте блок InitFcn, чтобы изменить параметры (или переменные) блоков кроме сам.

  • Не используйте блок InitFcn на дочернем блоке, чтобы изменить параметры родительского блока подсистемы или других дочерних блоков. Однако можно использовать блок InitFcn на родительском блоке подсистемы, чтобы изменить параметры прямых дочерних блоков.

  • Не используйте блок InitFcn, чтобы внести структурные изменения как добавление или удаление блока (add_block или delete_block).

  • Не используйте блок InitFcn в блоке Model Reference, чтобы изменить параметры (и структура) модели, на которую ссылаются.

Похожие темы