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

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

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

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

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

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

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

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

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

Гарантируйте, что параметры маски, используемые в коде инициализации маски, заданы. Во время разового редактированием не сообщают об ошибках в коде инициализации маски, если Simulink не удается оценить параметры маски, используемые в коде инициализации маски. Однако о таких ошибках сообщают во время разового редактированием и во время образцовой компиляции, при отсутствии ошибок в оценке параметров маски.

Примечание

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

  • Когда вы используете 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 и подклассы

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

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

Примечание

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

Смотрите также

| | |