Инициализируйте маску

Можно добавить MATLAB® код в панели Инициализации Редактора Маски, чтобы инициализировать маскированный блок. Simulink® выполняет эти команды инициализации, чтобы инициализировать подсистему маскированную в критические времена, такие как загрузка модели и запуститься запущенной симуляции. Для получения дополнительной информации смотрите, Выполняют Команду Инициализации.

Можно добавить код инициализации маски для этих случаев:

  • Задавать начальные значения параметров маски. Например, задавать начальное значение параметра a, введите a = 5 в панели Инициализации.

  • Задавать значение дочернего блока. Например,

    set_param('Child block Name','Parameter name','Parameter Value')
  • Создать самомодифицируемую маску. Для получения дополнительной информации смотрите Маску Самоизменения.

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

Когда вы ссылаетесь на блок с или копируете блок в, модель, диалоговое окно маски отображается заданные значения по умолчанию. Вы не можете использовать код инициализации маски, чтобы изменить значения по умолчанию параметра маски в библиотечном блоке или любом другом блоке.

Убедитесь, что параметры маски, используемые в коде инициализации маски, заданы. Ошибки в инициализации маски отображены при редактировании команд инициализации маски, но это только возможно, если все значения параметров маски оценены без ошибок.

Примечание

  • Блоки, которые содержат код инициализации, не работают как ожидалось при использовании модели - ссылки.

  • Когда вы используете set_param в коде инициализации маски блока Subsystem также оценены все дочерние блоки.

Используйте редактор Инитиэлизэйшна Маски панель, чтобы добавить команды MATLAB, которые инициализируют маскированный блок.

Панель Initialization содержит эти разделы:

  • Dialog variables

  • Initialization commands

Диалоговые переменные

Раздел переменных Dialog отображает имена переменных, сопоставленных параметрами маски маскированного блока, которые заданы в панели Параметров.

Можно скопировать имя параметра из этого списка и вставить его в раздел команд Инициализации.

Можно поменять имя переменной параметра маски в списке путем двойного клика и редактирования имени.

Команды инициализации

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

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

К связанным с представлением примерам смотрите

Лучшие практики инициализации маски

Команды инициализации маски должны наблюдать следующие правила:

  • Не используйте код инициализации, чтобы создать динамические диалоговые окна маски (Диалоговые окна, внешний вид которых или настройки управления изменяются в зависимости от изменений, внесенных в другие настройки управления). Вместо этого используйте коллбэки маски, которые предназначаются с этой целью. Для получения дополнительной информации смотрите Динамическое Диалоговое окно Маски.

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

  • Для вложенной подсистемы маскированной не используйте set_param на родительском блоке из дочернего блока. Дочерняя маска блока и родительская маска блока оба могли инициализировать тот же параметр продвижения блока к неожиданному поведению. Для получения дополнительной информации смотрите Небезопасную Ошибку Коллбэка Маски.

  • Не используйте set_param команды на блоках, которые находятся в другой подсистеме маскированной, которую вы инициализируете. Попытка установить параметры блоков в подсистемах маскированных низшего уровня может инициировать неразрешенные ошибки символа, если символы ссылки подсистем маскированные низшего уровня, заданные более высоким уровнем, замаскировали подсистемы.

    Предположим, например, подсистема маскированная A содержит подсистему маскированную B который содержит блок Gain C, чей Gain параметр ссылается на переменную, заданную B. Предположим также та подсистема A имеет код инициализации, который содержит эту команду:

    set_param([gcb '/B/C'], 'SampleTime', '-1');

    Симуляция или обновление модели, содержащей причины неразрешенная ошибка символа.

  • Вы не можете использовать код инициализации маски, чтобы создать объекты данных. Объекты данных являются объектами этих классов:

    • Simulink.Parameter и подклассы

    • Simulink.Signal и подклассы

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

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

Примечание

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

Похожие темы