Построение и запуск диаграммы потока состояний¶
Диаграмма состояний - это графическое представление конечного автомата, состоящего из состояний, переходов и данных. Вы можете создать диаграмму, чтобы определить, как система реагирует на внешние входные сигналы, события и временные условия.
Рассмоторим, как создать логику полуволнового выпрямителя.
Построение диаграммы потока состояния¶
Диаграмма содержит два состояния, обозначенные On и Off. В состоянии On выходной сигнал диаграммы y равен входному x. В состоянии Off выходной сигнал равен нулю. Когда входной сигнал пересекает некоторый порог t0, диаграмма переходит между этими состояниями. Действия в каждом состоянии обновляют значение y на каждом временном шаге моделирования.
Чтобы создать и смоделировать эту диаграмму выполните следующие пункты.
Открыть редактор¶
- Создайте новую модель и добавьте на поле для моделирования блок Chart.
engee.create("rectifier_start1", sync_gui=true)
engee.add_block("/StateMachines/Chart", "rectifier_start1/", sync_gui=true)
- Чтобы открыть редактор, дважды щелкните по блоку Chart.
Основными компонентами редактора блока Chart являются холст диаграммы, панель объектов и панель настройки, где можно задать сигналы.
- Холст построения диаграммы - это область, в которой вы создаете диаграмму, комбинируя состояния и переходы.
- В левой части холста отображется панель с объектами, из которых можно сделать диаграмму.
- Правом верхнем углу кнопка шестеренки. Если нажать на нее внутри редактора, то откроется раздел "Сигналы". В нем можно задать входные и выходные сигналы, а также установить локальную переменную.
Добавление состояний и переходов¶
- На панеле объектов выберите объект "Состояние" и переместите его на холст диаграммы. Появится состояние с переходом по умолчанию. В текстовом поле введите название состояния On и действие состояния в подсвечивающихся фигурных скобках y=x.
- Добавьте ещё одно состояние. Щелкните правой кнопкой мыши и перетащите On состояние. Название нового состояния измените на Off. Дважды щелкните по состоянию и измените действие состояния на y = 0.
- Расположите два объекта состояния рядом и соедините их переходом. Чтобы нарисовать переход, нажмите и перетащите курсор от границы одного состояния к границе другого состояния. Когда переход подсвечивается синим, рядом с ним появляется меню для добавления условия ([]) прехода или действия ({}), которое произойдет во время перехода. Добавьте два перехода.
- Чтобы добавить условия для переходов нашей диаграммы, кликните по переходу и введите условие в кваадратные скобки. Установите условие $x<t0$ для перехода из On в Off, и $x>=t0$ для перехода обратно.
Дополнительные функции для работы с диаграммой состояния.
- Для большей наглядности переместите каждую метку перехода в удобное место над или под соответствующим переходом.
- Чтобы изменить размер диаграммы в соответствии с размером холста, нажмите клавишу пробела.
Задайте сигналы¶
Прежде чем вы сможете выполнить диаграмму, вы должны определить каждый символ, который используете в диаграмме, и указать его область применения (например, входные данные, выходные данные или локальные данные).
- Откройте вкладку настройки, нажав на шестеренку в правом верхнем углу.
- Нажмите на знак + и добавьте название сигналов, которые используете, а также тип. В графе Тип отображается предполагаемая область действия для каждого неопределенного символа в зависимости от его использования в диаграмме.
- определите используемы переменные как показано на рисунке ниже.
Смоделируйте модель¶
Чтобы смоделировать модель, подключите блок Chart к другим блокаммодели через входные и выходные порты.
- Чтобы вернуться в среду моделирования Engee, щелкните по названию модели на панели навигации.
Добавьте источник в модель:
- Из раздела Источники добавьте блок синусоиды - Sine Wave.
- Дважды щелкните по блоку Sine Wave и установите время выборки равным 0,2.
- Подключите выход блока Sine Wave ко входу диаграммы состояний.
- Обозначьте сигнал как x.
Добавьте приемник в модель:
- Из раздела приемники добавьте блок Terminator.
- Подключите выход блока Chart ко входу блока Terminator.
- Обозначьте сигнал как y.
Запишите сигналы
- Нажмите на линию ссигнала. Далее наведите на три точки и нажмите на
.
- Запишите сигналы x и y.
- Нажмите на линию ссигнала. Далее наведите на три точки и нажмите на
- Чтобы запустить моделирование, нажмите "Выполнить"
. Во время моделирования активные состояния и переходы подсвечиваются.
Отображение результатов¶
- После моделирования перейдите на вкладку Графики в правом верхнем углу.
- Выберите сигналы x и y в меню сигналов.
- Можно отразить сигналы на одном графике или на двух разных.
Вывод¶
Результаты моделирования показывают, что выпрямитель отфильтровывает отрицательные входные значения.