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