Можно использовать код MATLAB®, чтобы инициализировать маску и чертить значки маски. Поскольку местоположение кода влияет на производительность модели, добавьте свой код, чтобы отразить функциональность, в которой вы нуждаетесь.
Цель | Добавьте в редакторе маски | Программируемая спецификация |
---|---|---|
Инициализируйте маску | Панель Initialization | Параметр MaskInitialization |
Чертите значок маски | Панель Icon & Ports | Параметр MaskDisplay |
Код коллбэка для параметров маски | Панель Parameters & Dialog | Параметр MaskCallbacks |
Поместите код MATLAB для рисования значков маски в разделе Icon Drawing Commands панели Icon & Ports. Simulink® выполняет эти команды последовательно, чтобы перерисовать значок маски когда:
Блок представляется сначала на Редакторе Маски холстом.
Параметры маски и значения, которые зависят от изменения команд рисования.
Внешний вид блока меняется из-за вращения или других изменений.
Размещение кода MATLAB для рисования значков маски в панели Initialization влияет на производительность модели. Это поведение состоит в том, потому что Simulink перерисовывает значок каждый раз, когда маскированный блок оценен в модели.
Команды инициализации для всех маскированных блоков в модели запускаются когда вы:
Обновите схему
Запустите симуляцию
Запустите генерацию кода
Примените изменения маски
Измените любой из параметров, которые задают маску, такую как MaskDisplay
и MaskInitialization
, с помощью Редактора Маски или set_param
.
Вращайте или инвертируйте маскированный блок, если значок зависит от команд инициализации.
Заставьте значок чертиться или перерисовываться, и рисунок значка зависит от кода инициализации.
Измените значение параметра маски при помощи диалогового окна блока или set_param
.
Скопируйте маскированный блок в той же модели или между различными моделями.
Когда вы открываете модель, Simulink определяет местоположение видимых маскированных блоков, которые находятся в верхнем уровне модели или в открытой подсистеме.
Simulink только выполняет команды инициализации для этих видимых маскированных блоков, если они отвечают любому из следующих условий:
Маскированный блок имеет команды рисования значка.
Simulink не инициализирует маскированные блоки, которые не имеют команд рисования значка, даже если у них есть команды инициализации во время образцовой загрузки.
Подсистема маскированная принадлежит библиотеке и включила параметр Allow library block to modify its contents.
Когда вы загружаете модель в память, не отображая её графически, никакие команды инициализации для маскированных блоков не выполняются. Смотрите Загрузку Модели и load_system для получения информации о загрузке модели без её отображения.
Ненастраиваемые параметры блока маскированного не вычисляются, если модель уже скомпилирована (инициализирована).
Коды коллбэка параметра маски выполнены во временной рабочей области а не в базовом рабочем пространстве. Если вам нужна переменная, созданная в коллбэке, чтобы быть доступными позже (не во время обработки коллбэка), необходимо явным образом присвоить те переменные базовому рабочему пространству.
Simulink выполняет команды коллбэка когда:
Вы открываете диалоговое окно маски. Команды коллбэка выполняются последовательно, начиная с главного диалогового окна маски.
Вы изменяете значение параметров в диалоговом окне маски и затем изменяете позицию курсора. Например, вы нажимаете клавишу Tab или нажатие кнопки в другое поле в диалоговом окне после изменения значения параметров.
Вы изменяете значение параметров при помощи команды set_param
, команды коллбэка выполняются.
Вы изменяете значение параметров, или в диалоговом окне маски или в использовании set_param
, и затем применяете изменение путем нажатия на Apply или OK. Команды инициализации маски выполняются после команд коллбэка. Для получения дополнительной информации смотрите Панель Инициализации.
Вы наводите на маскированный блок, чтобы видеть подсказку для блока, когда подсказка содержит названия параметра и значения.
Команды коллбэка не выполняются, если диалоговое окно маски открыто, когда подсказка блока появляется.
Вы обновляете схему (например, путем нажатия Ctrl+D или путем выбора Simulation> Update diagram в Редакторе Simulink).
Если вы закрываете диалоговое окно маски, не сохраняя изменения, команда Коллбэка для параметров выполняется последовательно.
Кнопки на диалоговом окне маски недоступны, когда код коллбэка, сопоставленный с кнопкой, выполняется.
Для связанных моделей Simulink в качестве примера см.: