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

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

Примечание

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

Модель InitFcn

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

Примечание

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

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

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

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

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

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

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

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

  • Не используйте InitFcn модели функция для редактирования структуры модели типа add_line, или delete_line если на модель ссылаются из верхней модели.

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

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

Можно использовать свойства модели, чтобы задать коллбэки для модели. Для примера, PreLoadFcn, PostLoadFcn, InitFcn коллбэки. Свойства модели используются, чтобы просмотреть информацию о модели, описание, историю и функции обратного вызова. Можно использовать Property Inspector для просмотра и редактирования свойств версии модели, истории описания и функций обратного вызова. Для получения дополнительной информации о свойствах модели см. Раздел «Управление свойствами модели».

Рассмотрим модель с Variant Subsystem и Variant Source блоками. Для примера Варианта - InitFcn.

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

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

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

Блокируйте InitFcn

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

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

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

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

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

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

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

Похожие темы