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

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

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

  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.

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