В фазе 5 этого рабочего процесса вы решаете, как инициировать график.
Чтобы реализовать триггеры самостоятельно, выполните упражнения в этом разделе. В противном случае откройте предоставленную модель, чтобы видеть, как триггеры должны появиться в графике. Введите эту команду в подсказке MATLAB®:
addpath(fullfile(docroot, 'toolbox', 'stateflow', 'gs', 'examples')) Stage5Trigger
Модель Simulink® может разбудить график Stateflow®
Выборка графика на заданном или наследованном уровне
Используя сигнал как триггер
Используя одну диаграмму Stateflow, чтобы управлять действием другого
Триггер сигнала работает лучше всего на Воздушный Контроллер график, потому что это должно контролировать температуру физического объекта равномерно. Чтобы удовлетворить это требование, вы будете использовать периодический сигнал инициировать график. Источник является сигналом прямоугольной волны под названием CLOCK
, если блоком Signal Builder в модели Simulink, описанной, в Как работы диаграммы Stateflow с Моделью Simulink. Чтобы использовать сигнал, вы настроите триггерное событие ребра, которое будит график при повышении или падающем ребре CLOCK
.
Объяснение для использования триггера ребра в этом случае - то, что оно использует регулярность и частоту сигнала разбудить график. При использовании триггеров ребра имейте в виду, что может быть задержка со времени, триггер происходит со временем, которое график начинает выполнять. Это вызвано тем, что триггер ребра заставляет график выполняться в начале следующего шага времени симуляции, независимо от того, когда триггер ребра на самом деле произошел во время предыдущего временного шага. Воздушный Диспетчер может терпеть эту задержку, пока ребро происходит достаточно часто. (Для получения дополнительной информации об инициировании диаграмм Stateflow, смотрите Интерфейсы Реализации к Моделям Simulink в Руководстве пользователя Stateflow.)
Вспомните, что вы уже задали одно запускаемое фронтом событие, SWITCH
, охранять переходы между PowerOff
и PowerOn
. Вы теперь зададите второе запускаемое фронтом событие, CLOCK
, разбудить график.
Задавать CLOCK
событие, выполните эти шаги:
Откройте модель Stage4Transitions
— или тот вы создали в предыдущих упражнениях или предоставленной модели для этапа 4.
Чтобы открыть предоставленную модель, введите следующую команду в посдказке MATLAB:
addpath(fullfile(docroot, 'toolbox', 'stateflow', 'gs', 'examples')) Stage4Transitions
Сохраните модель как Stage5Trigger
в вашей локальной папке работы.
В Stage5Trigger
, дважды кликните блок Air Controller, чтобы открыть диаграмму Stateflow.
От редактора Stateflow, во вкладке Modeling, под Design Data, нажимают Event Input.
В конечном счете диалоговое окно свойств, отредактируйте следующие поля:
Свойство | Что задать |
---|---|
Имя | Поменяйте имя на CLOCK . |
Триггер | Выберите Either в выпадающем меню так, чтобы повышение или падающее ребро сигнала могли инициировать событие. |
Поскольку SWITCH
событие, которое вы создали в Добавляющих Событиях к Переходам охраны, было присвоено инициировать порт 1, CLOCK
событие присвоено инициировать порт 2. Тем не менее, только один триггерный порт, кажется, наверху блока Air Controller получает триггерные сигналы. Это означает, что каждый сигнал должен быть индексирован в массив, как описано в Соединении Запускаемых фронтом Событий к Входным сигналам.
Нажмите OK, чтобы записать изменения и закрыть диалоговое окно.
Сохраните Stage5Trigger
, но оставьте его открытым для следующего осуществления.
Необходимо соединить запускаемые фронтом события с входными сигналами Simulink способом это
Партнеры каждое событие с правильным сигналом
Индексы каждый сигнал в массив, который может быть получен Воздушным Контроллером триггерный порт
В Stage5Trigger
, заметьте что эти два входных сигнала SWITCH
и CLOCK
питайтесь в блок Mux, где к ним присоединяются в массиве к одному выходу. SWITCH
импульсный сигнал и CLOCK
прямоугольная волна. Когда вы соединяете Мультиплексор с триггерным портом, индекс сигналов в массиве сопоставлены с портами с подобным номером. Поэтому SWITCH
сигнал в главном входном порту Мультиплексора инициировал событие SWITCH
на триггерном порте 1. Аналогично, CLOCK
сигнал во втором входном порту Мультиплексора инициировал событие CLOCK
на триггерном порте 2.
Чтобы соединить Мультиплексор с триггерным портом, выполните эти шаги:
Кликните по блоку Mux, удерживайте клавишу CTRL и кликните по блоку Air Controller.
Выходной сигнал блока Mux соединяется с входным триггерным портом блока Stateflow. Ваша модель должна выглядеть так:
Сохраните Stage5Trigger
.
Куда пойти затем. Теперь вы готовы симулировать свой график. Смотрите Параметры Симуляции Установки и Точки останова.