Чтобы реализовать триггеры самостоятельно, выполните упражнения в этом разделе. В противном случае откройте предоставленную модель, чтобы видеть, как триггеры должны появиться в графике. Введите эту команду в подсказке 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 добавьте входное событие путем выбора Chart> Add Inputs & Outputs> Event Input From Simulink.
В конечном счете диалоговое окно свойств, отредактируйте следующие поля:
Свойство | Что задать |
---|---|
Имя | Поменяйте имя на 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
.
Куда пойти затем. Теперь вы готовы моделировать свой график. Смотрите Параметры Симуляции Установки и Точки останова.