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

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

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

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

  • Указывать допустимый диапазон входных параметров для параметра маски. Например, чтобы указать диапазон между 0 и 10 как приемлемые значения для параметра a, введите assert(0<=a && a<=10).

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

    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 и подклассы

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

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

Примечание

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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте