Этот пример показывает простую модель Проигрывателя компакт-дисков / Радио-логика что Таблицы переходов состояний использования в Stateflow®. Эта модель является переопределением sf_cdplayer
с помощью Таблиц переходов состояний.
Основа логики для управления Проигрывателем компакт-дисков / Радио находится в графике "CdPlayerModeManager", который разработан с помощью Таблицы Изменения состояния. Таблица используется, чтобы представлять модальную логику в табличной форме. Это позволяет нам задавать различные состояния и их иерархическую структуру наряду с переходами между состояниями.
Крайний левый столбец представляет все состояния в таблице. Заметьте, что состояния могут быть вложены иерархически. Можно выбрать одно из состояний, чтобы быть состоянием по умолчанию на любом данном уровне. Это представлено переходом по умолчанию, чертившим слева от состояния. Можно также добавить "строку перехода по умолчанию", если существует логика, вовлеченная в выбор первого состояния, которое войдет.
Можно добавить соединение истории в данное состояние путем щелчка правой кнопкой по состоянию и выбора 'Add history junction'. Это позволяет состоянию помнить последнее активное состояние, когда это повторно введено вместо того, чтобы выбрать состояние по умолчанию. Например, состояния ModeManager и ON имеют соединения истории. Диаграмма Stateflow может быть автоматически сгенерирована от этого табличного представления.
Следующий набор столбцов представляет внешние переходы от состояния. Каждая строка представляет внешние переходы от данного состояния. Каждая из ячеек перехода подразделена на три подъячейки:
1) Ячейка Condition: задавать булево условие, которое задает, когда переход активен
2) Ячейка Condition Action: задавать действие, которое будет взято, когда переход активен
3) Конечная ячейка: задавать целевое состояние для перехода. Заметьте, что можно использовать специальные ключевые слова, такие как "$NEXT", "$PREV", чтобы задать место назначения относительно текущего состояния.
Этот график получает вводы данных пользователем, такой как, был ли диск вставлен и выбор для радио-режима (FM, AM или CD). Затем график определяет механическую команду, чтобы вывести. Типы данных входных и выходных данных заданы как перечисленные типы данных в файлах MATLAB® CdRequestMode.m
и RadioRequestMode.m
.
Выходная команда от "CdPlayerModeManager" обрабатывается графиком "CdPlayerBehaviorModel", который моделирует поведение механизма Проигрывателя компакт-дисков. Эта логика также реализована с помощью Таблицы Изменения состояния.
Пользовательский интерфейс MATLAB используется, чтобы установить различные режимы CD/Radio.