Таблица изменения состояния является альтернативным способом выразить последовательную модальную логику. Вместо того, чтобы чертить состояния и переходы графически в графике Stateflow®, используйте таблицы переходов состояний, чтобы выразить модальную логику в табличном формате. Таблицы переходов состояний поддерживаются только как блоки в модели Simulink®. Для получения дополнительной информации смотрите Таблицы переходов состояний в Stateflow.
Матрица Грина является альтернативным представлением таблицы изменения состояния. В матрице Грина можно легко видеть, как модель реагирует на каждое условие и событие из таблицы изменения состояния.
Каждая строка представляет состояние в таблице изменения состояния. Каждый столбец представляет условие или событие. Чтобы видеть реакцию состояния к каждому событию или условию, отсканируйте через ячейки в строке состояния. Чтобы видеть, как все состояния отвечают на событие или условие, сканируют вниз ячейки столбца.
Откройте модель, которую вы создаете в Образцовом Контроллере Скорострельного оружия при помощи Таблицы Изменения состояния.
Выберите Chart> View State Transition Matrix.
Порядок строк состояния совпадает с таблицей изменения состояния. Порядок столбцов основан на количестве состояний, которые отвечают на условие или событие. Крайний левый столбец является условием или событием, которое влияет на самое большое количество ячеек состояния. Крайний правый столбец является условием или событием, которое влияет на наименьшее количество количества состояний.
Цвет фона ячейки условия светло-серый для состояний, которые не реагируют на условие в соответствующем столбце. Когда состояние не имеет никаких дальнейших условий справа от ячейки условия, чтобы следовать, ячейка условия темно-серая.
Порядок выполнения появляется в верхнем правом углу каждой ячейки перехода. Порядок выполнения является красным, если он не работает относительно столбцов события. Например, в Warmup
состояния, условие doneWarmup
тестируется перед after(10, sec)
. Поскольку столбец after(10, sec)
перед столбцом doneWarmup
порядок выполнения для каждой соответствующей ячейки отображают красным.
Если вы изменяете таблицу изменения состояния, необходимо регенерировать матрицу Грина.
Чтобы видеть подмножество строк состояния, можно отфильтровать строки на основе имен состояния. В левом верхнем углу матрицы Грина введите имя состояния в поле поиска States
. Stateflow предоставляет допустимые возможности имени состояния при печати.
Если у вас есть слишком много событий и условий просмотреть целиком, можно просмотреть окно путем прокрутки горизонтально. Когда вы прокручиваете направо, вы продолжаете рассматривать имена состояния как наложение на каждой строке.
В ячейках матрицы Грина имена состояния, действия, условия и места назначения являются гиперссылками. Чтобы видеть соответствующее состояние, действие, условие или место назначения, подсвеченное в таблице изменения состояния, кликает по одной из этих гиперссылок. Чтобы удалить выделение на таблице изменения состояния, выберите Display> Remove Highlighting.
Для получения дополнительной информации о трассируемости и сгенерированном коде C/C++, смотрите Трассировку Элементы Stateflow в Сгенерированном коде (Embedded Coder). Для получения дополнительной информации о трассируемости и сгенерированном HDL-коде, смотрите, Перешли Между Моделью Simulink и HDL-кодом при помощи Трассируемости (HDL Coder).