Таблица переходов состояний является альтернативным способом выражения последовательной модальной логики. Вместо графических состояний и переходов в Stateflow® график, используйте таблицы переходов состояний, чтобы выразить модальную логику в табличном формате. Таблицы переходов состояний поддерживаются только как блоки в Simulink® модель.
Преимущества использования таблиц переходов состояний включают:
Простота моделирования поездоподобных машин состояний, где модальная логика включает переходы от одного состояния к своему соседу
Краткий, компактный формат для конечного автомата
Сокращение времени на работу с графическими объектами
Когда вы добавляете или удаляете состояния с графика, необходимо переставлять состояния, переходы и соединения. Когда вы добавляете или удаляете состояния из таблицы переходов состояний, вы не должны переставлять какие-либо графические объекты.
Таблицы переходов состояний поддерживают использование обеих MATLAB® и C как язык действия. Дополнительные сведения о различиях между этими языками действий см. в разделе Различия между MATLAB и C как синтаксис языка действий.
В командной строке MATLAB введите:
Чтобы создать State Transition Table в новой модели Simulink, введите:
sfnew -STT
Чтобы добавить новую State Transition Table к существующей модели, используйте функцию add_block
(Simulink). Для примера:
add_block('sflib/State Transition Table','myModel/State Transition Table')
Из браузера библиотеки Simulink:
Выберите библиотеку Stateflow.
Перетащите таблицу переходов состояний в модель.
Таблица переходов состояний содержит следующие компоненты:
Каждый столбец перехода содержит следующую информацию о переходе между состояниями:
Состояние
Действие условия
Состояние назначения
Следующая таблица переходов состояний содержит модальную логику для поддержания температуры бойлера между двумя установленными точками:
Эта диаграмма Stateflow представляет ту же модальную логику:
Таблицы переходов состояний поддерживают подмножество наиболее часто используемых элементов в диаграммах Stateflow. Элементы, которые не поддерживают таблицы переходов состояний, включают:
Суперпереходы
Параллельное (И) разложение
Локальные события
Блок- графики
Использование функций уровня диаграммы (графические, таблицы истинности, MATLAB и Simulink)
Если вы задаете действие в камере перехода, это должно быть действие условия.
Таблицы переходов состояний должны иметь по крайней мере одну строку состояний и один столбец переходов.
Чтобы открыть диалоговое окно Свойства таблицы переходов между состояниями, на вкладке Modeling, нажмите Table Properties.
Свойства для таблиц переходов состояний те же, что и для графиков, которые используют MATLAB в качестве языка действий. Описание каждого свойства см. в разделе «Задание свойств для диаграмм Stateflow».
Можно также программно задать свойства таблицы переходов при помощи Stateflow.StateTransitionTableChart
объекты. Для получения дополнительной информации о программном интерфейсе Stateflow смотрите Обзор API Stateflow.
Программа Stateflow автоматически генерирует диаграмму переходов состояний только для чтения из созданной таблицы переходов состояний. Когда вы вводите изменения в таблицу переходов состояний, Stateflow также постепенно обновляет схему. Чтобы увидеть самую последнюю версию базовой схемы, на вкладке Debug, нажмите Show Auto Chart.