Реализация триггеров

В фазе 5 этого рабочего процесса вы решаете, как инициировать график.

Создайте его сами или используйте предоставленную модель

Чтобы реализовать триггеры самостоятельно, выполните упражнения в этом разделе. В противном случае откройте предоставленную модель, чтобы видеть, как триггеры должны появиться в графике. Введите эту команду в подсказке MATLAB®:

addpath(fullfile(docroot, 'toolbox', 'stateflow', 'gs', 'examples'))
Stage5Trigger

Конструктивные соображения для инициирования диаграмм Stateflow

Модель Simulink® может разбудить график Stateflow®

  • Выборка графика на заданном или наследованном уровне

  • Используя сигнал как триггер

  • Используя одну диаграмму Stateflow, чтобы управлять действием другого

Триггер сигнала работает лучше всего на Воздушный Контроллер график, потому что это должно контролировать температуру физического объекта равномерно. Чтобы удовлетворить это требование, вы будете использовать периодический сигнал инициировать график. Источник является сигналом прямоугольной волны под названием CLOCK, если блоком Signal Builder в модели Simulink, описанной, в Как работы диаграммы Stateflow с Моделью Simulink. Чтобы использовать сигнал, вы настроите триггерное событие ребра, которое будит график при повышении или падающем ребре CLOCK.

Объяснение для использования триггера ребра в этом случае - то, что оно использует регулярность и частоту сигнала разбудить график. При использовании триггеров ребра имейте в виду, что может быть задержка со времени, триггер происходит со временем, которое график начинает выполнять. Это вызвано тем, что триггер ребра заставляет график выполняться в начале следующего шага времени симуляции, независимо от того, когда триггер ребра на самом деле произошел во время предыдущего временного шага. Воздушный Диспетчер может терпеть эту задержку, пока ребро происходит достаточно часто. (Для получения дополнительной информации об инициировании диаграмм Stateflow, смотрите Интерфейсы Реализации к Моделям Simulink в Руководстве пользователя Stateflow.)

Вспомните, что вы уже задали одно запускаемое фронтом событие, SWITCH, охранять переходы между PowerOff и PowerOn. Вы теперь зададите второе запускаемое фронтом событие, CLOCK, разбудить график.

Определение СИНХРОНИЗИРОВАТЬ событие

Задавать CLOCK событие, выполните эти шаги:

  1. Откройте модель Stage4Transitions — или тот вы создали в предыдущих упражнениях или предоставленной модели для этапа 4.

    Чтобы открыть предоставленную модель, введите следующую команду в подсказке MATLAB:

    addpath(fullfile(docroot, 'toolbox', 'stateflow', 'gs', 'examples'))
    Stage4Transitions

  2. Сохраните модель как Stage5Trigger в вашей локальной папке работы.

  3. В Stage5Trigger, дважды кликните блок Air Controller, чтобы открыть диаграмму Stateflow.

  4. От редактора Stateflow, во вкладке Modeling, под Design Data, нажимают Event Input.

  5. В конечном счете диалоговое окно свойств, отредактируйте следующие поля:

    СвойствоЧто задать
    ИмяПоменяйте имя на CLOCK.
    ТриггерВыберите Either в выпадающем меню так, чтобы повышение или падающее ребро сигнала могли инициировать событие.

    Поскольку SWITCH событие, которое вы создали в Добавляющих Событиях к Переходам охраны, было присвоено инициировать порт 1, CLOCK событие присвоено инициировать порт 2. Тем не менее, только один триггерный порт, кажется, наверху блока Air Controller получает триггерные сигналы. Это означает, что каждый сигнал должен быть индексирован в массив, как описано в Соединении Запускаемых фронтом Событий к Входным сигналам.

  6. Нажмите OK, чтобы записать изменения и закрыть диалоговое окно.

  7. Сохраните Stage5Trigger, но оставьте его открытым для следующего осуществления.

Соединение запускаемых фронтом Событий к входным сигналам

Необходимо соединить запускаемые фронтом события с входными сигналами Simulink способом это

  • Партнеры каждое событие с правильным сигналом

  • Индексы каждый сигнал в массив, который может быть получен Воздушным Контроллером триггерный порт

В Stage5Trigger, заметьте что эти два входных сигнала SWITCH и CLOCK питайтесь в блок Mux, где к ним присоединяются в массиве к одному выходу. SWITCH импульсный сигнал и CLOCK прямоугольная волна. Когда вы соединяете Мультиплексор с триггерным портом, индекс сигналов в массиве сопоставлены с портами с подобным номером. Поэтому SWITCH сигнал в главном входном порту Мультиплексора инициировал событие SWITCH на триггерном порте 1. Аналогично, CLOCK сигнал во втором входном порту Мультиплексора инициировал событие CLOCK на триггерном порте 2.

Чтобы соединить Мультиплексор с триггерным портом, выполните эти шаги:

  1. Кликните по блоку Mux, удерживайте клавишу CTRL и кликните по блоку Air Controller.

    Выходной сигнал блока Mux соединяется с входным триггерным портом блока Stateflow. Ваша модель должна выглядеть так:

  2. Сохраните Stage5Trigger.

Куда пойти затем.  Теперь вы готовы симулировать свой график. Смотрите Параметры Симуляции Установки и Точки останова.