Код MATLAB ® можно использовать для инициализации маски и рисования значков маски. Поскольку расположение кода влияет на производительность модели, добавьте код, чтобы отразить необходимые функциональные возможности.
| Цель | Добавить в редактор масок | Программная спецификация |
|---|---|---|
| Инициализация маски | Область инициализации | MaskInitialization параметр |
| Значок рисования маски | & Панель «Порты» | MaskDisplay параметр |
| Код обратного вызова для параметров маски | & Диалоговое окно «Параметры» | MaskCallbacks параметр |
Поместите код MATLAB для значков маски чертежа в раздел Команды рисования значков (Icon Drawing Commands) панели Значки и порты (Icon & Ports). Simulink ® выполняет эти команды последовательно, чтобы перерисовать значок маски, когда:
Сначала блок визуализируется на холсте редактора масок.
Параметры и значения маски, зависящие от команд рисования, изменяются.
Внешний вид блока изменяется из-за поворота или других изменений.
Примечание
Размещение кода MATLAB для значков маски чертежа на панели инициализации влияет на производительность модели. Это происходит потому, что Simulink перерисовывает значок каждый раз при оценке маскированного блока в модели.
Команды инициализации для всех маскированных блоков в прогоне модели при выполнении следующих действий:
Обновить схему
Начать моделирование
Начало создания кода
Применить изменения маски
Измените любой из параметров, определяющих маску, например: MaskDisplay и MaskInitialization, с помощью редактора масок или set_param.
Поверните или переверните маскированный блок, если значок зависит от команд инициализации.
Чтобы значок был нарисован или перерисован, чертеж значка зависит от кода инициализации.
Изменение значения параметра маски с помощью диалогового окна блока или set_param.
Скопируйте маскированный блок внутри одной модели или между различными моделями.
При открытии модели Simulink находит видимые маскированные блоки, расположенные на верхнем уровне модели или в открытой подсистеме.
Simulink выполняет команды инициализации только для этих видимых маскированных блоков, если они удовлетворяют любому из следующих условий:
Маскированный блок содержит команды рисования значков.
Примечание
Simulink не инициализирует маскированные блоки, которые не имеют команд рисования значков, даже если они имеют команды инициализации во время загрузки модели.
Маскированная подсистема принадлежит библиотеке и имеет блок Разрешить изменение параметров содержимого библиотеки.
При загрузке модели в память без ее графического отображения никакие команды инициализации изначально не выполняются для каких-либо маскированных блоков. См. раздел Загрузка модели и load_system для получения информации о загрузке модели без ее отображения.
Примечание
Неперестраиваемые параметры маскированного блока не вычисляются, если модель уже скомпилирована (инициализирована).
Коды обратного вызова параметров маски выполняются во временной рабочей области, а не в базовой рабочей области. Если необходимо, чтобы переменная, созданная в обратном вызове, была доступна позже (не во время обработки обратного вызова), необходимо явно назначить эти переменные базовой рабочей области.
Simulink выполняет команды обратного вызова в следующих случаях:
Откроется диалоговое окно маски. Команды обратного вызова выполняются последовательно, начиная с верхнего диалогового окна маски.
Можно изменить значение параметра в диалоговом окне маски, а затем изменить расположение курсора. Например, после изменения значения параметра нажмите клавишу Tab или щелкните в другом поле диалогового окна.
Изменение значения параметра выполняется с помощью set_param команда, команды обратного вызова выполняются.
Значение параметра изменяется либо в диалоговом окне маски, либо с помощью set_param, а затем применить изменение, нажав кнопку Применить или OK. Команды инициализации маски выполняются после команд обратного вызова. Дополнительные сведения см. в разделе Область инициализации.
Наведите курсор на маскированный блок, чтобы увидеть всплывающую подсказку для блока, если она содержит имена и значения параметров.
Примечание
Команды обратного вызова не выполняются, если диалоговое окно маски открыто при появлении подсказки инструмента блока.
Чтобы обновить схему, нажмите клавиши CTRL + D или щелкните Обновить модель (Update Model) на вкладке Моделирование (Modeling) в редакторе Simulink Editor.
При закрытии диалогового окна маски без сохранения изменений команда обратного вызова для параметров выполняется последовательно.
Примечание
Кнопки в диалоговом окне маски недоступны при выполнении кода обратного вызова, связанного с кнопкой.
Для получения информации о связанных примерах моделей Simulink см.: