Документация Engee
Notebook

Построение и запуск диаграммы потока состояний

Диаграмма состояний - это графическое представление конечного автомата, состоящего из состояний, переходов и данных. Вы можете создать диаграмму, чтобы определить, как система реагирует на внешние входные сигналы, события и временные условия.

Рассмоторим, как создать логику полуволнового выпрямителя.

Построение диаграммы потока состояния

Диаграмма содержит два состояния, обозначенные On и Off. В состоянии On выходной сигнал диаграммы y равен входному x. В состоянии Off выходной сигнал равен нулю. Когда входной сигнал пересекает некоторый порог t0, диаграмма переходит между этими состояниями. Действия в каждом состоянии обновляют значение y на каждом временном шаге моделирования.

Чтобы создать и смоделировать эту диаграмму выполните следующие пункты.

Открыть редактор

  1. Создайте новую модель и добавьте на поле для моделирования блок Chart.
In [ ]:
engee.create("rectifier_start1", sync_gui=true)
Out[0]:
Model(
	name: rectifier_start1
	id: 1796d302-d597-4d00-9e82-cb975c02cb75
)
In [ ]:
engee.add_block("/StateMachines/Chart", "rectifier_start1/", sync_gui=true)
Out[0]:
"rectifier_start1/Chart"
  1. Чтобы открыть редактор, дважды щелкните по блоку Chart.

Основными компонентами редактора блока Chart являются холст диаграммы, панель объектов и панель настройки, где можно задать сигналы.

  • Холст построения диаграммы - это область, в которой вы создаете диаграмму, комбинируя состояния и переходы.
  • В левой части холста отображется панель с объектами, из которых можно сделать диаграмму.
  • Правом верхнем углу кнопка шестеренки. Если нажать на нее внутри редактора, то откроется раздел "Сигналы". В нем можно задать входные и выходные сигналы, а также установить локальную переменную.

sc_chart.png

Добавление состояний и переходов

  1. На панеле объектов выберите объект "Состояние" и переместите его на холст диаграммы. Появится состояние с переходом по умолчанию. В текстовом поле введите название состояния On и действие состояния в подсвечивающихся фигурных скобках y=x.

state_1_out_1_in_1732104094349.png

  1. Добавьте ещё одно состояние. Щелкните правой кнопкой мыши и перетащите On состояние. Название нового состояния измените на Off. Дважды щелкните по состоянию и измените действие состояния на y = 0.

state_1_out_1_in_1732104298320.png

  1. Расположите два объекта состояния рядом и соедините их переходом. Чтобы нарисовать переход, нажмите и перетащите курсор от границы одного состояния к границе другого состояния. Когда переход подсвечивается синим, рядом с ним появляется меню для добавления условия ([]) прехода или действия ({}), которое произойдет во время перехода. Добавьте два перехода.

state_1_out_1_in_1732104359102.png

  1. Чтобы добавить условия для переходов нашей диаграммы, кликните по переходу и введите условие в кваадратные скобки. Установите условие $x<t0$ для перехода из On в Off, и $x>=t0$ для перехода обратно.

state_1_out_1_in_1732104455350.png

  1. Дополнительные функции для работы с диаграммой состояния.

    • Для большей наглядности переместите каждую метку перехода в удобное место над или под соответствующим переходом.
    • Чтобы изменить размер диаграммы в соответствии с размером холста, нажмите клавишу пробела.

Задайте сигналы

Прежде чем вы сможете выполнить диаграмму, вы должны определить каждый символ, который используете в диаграмме, и указать его область применения (например, входные данные, выходные данные или локальные данные).

  1. Откройте вкладку настройки, нажав на шестеренку в правом верхнем углу.
  2. Нажмите на знак + и добавьте название сигналов, которые используете, а также тип. В графе Тип отображается предполагаемая область действия для каждого неопределенного символа в зависимости от его использования в диаграмме.
  3. определите используемы переменные как показано на рисунке ниже.

image.png

Смоделируйте модель

Чтобы смоделировать модель, подключите блок Chart к другим блокаммодели через входные и выходные порты.

  1. Чтобы вернуться в среду моделирования Engee, щелкните по названию модели на панели навигации.
  1. Добавьте источник в модель:

    • Из раздела Источники добавьте блок синусоиды - Sine Wave.
    • Дважды щелкните по блоку Sine Wave и установите время выборки равным 0,2.
    • Подключите выход блока Sine Wave ко входу диаграммы состояний.
    • Обозначьте сигнал как x.
  1. Добавьте приемник в модель:

    • Из раздела приемники добавьте блок Terminator.
    • Подключите выход блока Chart ко входу блока Terminator.
    • Обозначьте сигнал как y.
  1. Запишите сигналы

    • Нажмите на линию ссигнала. Далее наведите на три точки и нажмите на image.png.
    • Запишите сигналы x и y.
  1. Чтобы запустить моделирование, нажмите "Выполнить" image_3.png. Во время моделирования активные состояния и переходы подсвечиваются.

Отображение результатов

  1. После моделирования перейдите на вкладку Графики в правом верхнем углу.
  2. Выберите сигналы x и y в меню сигналов.

image.png

  1. Можно отразить сигналы на одном графике или на двух разных.

image.png

Вывод

Результаты моделирования показывают, что выпрямитель отфильтровывает отрицательные входные значения.