Можно добавить код 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
и подклассы
Не добавляйте код инициализации, чтобы удалить тот же маскированный блок.
Используйте код инициализации маски, чтобы управлять прямыми дочерними блоками только.
Не используйте код инициализации маски, чтобы прокомментировать или не прокомментировать блок.
Создание масок блоков | Код коллбэка маски | Основы маскирования | Самоизменение интерфейсного коннектора