Действие состояния монитора через активные данные состояния

Активные данные состояния могут упростить проект некоторых графиков Stateflow®, потому что вы не должны поддерживать данные, которые высоко сопоставляются к иерархии графика. Когда вы включаете активные данные состояния, действие состояния отчетов Stateflow через выходной порт к Simulink® или как локальные данные в вашем графике. Используя активные данные состояния, вы можете:

  • Избегайте ручных обновлений данных, отражающих действие графика.

  • Просмотрите действие графика при помощи осциллографа или Инспектора Данных моделирования.

  • Регистрируйте действие графика для диагностики.

  • Управляйте другими Подсистемами Simulink.

Типы активных данных состояния

Когда вы включаете активные данные состояния, Stateflow создает булевскую переменную или перечисленный объект данных совпадать с типом действия.

Тип действияАктивный тип данных состоянияОписание
Сам действиеБулевская переменнаяДействительно ли состояние активно?
Дочернее действиеПеречислениеКакой дочерний элемент активен?
Листовое действие состоянияПеречислениеКакое листовое состояние активно?

Для самостоятельных действий графика или состояния, значением данных является true когда активный и false, когда неактивный. Для дочернего элемента и листового действия состояния, данные являются перечислимым типом. Stateflow может задать класс перечисления, или можно создать определение вручную. Для получения дополнительной информации смотрите, Задают Перечисляемый тип Действия состояния.

Можно включить активные данные состояния для диаграммы Stateflow, состояния, таблицы изменения состояния или атомарного подграфика. Эта таблица приводит типы действия, поддержанные каждым видом объекта Stateflow.

Объект StateflowСамостоятельные действия Дочернее действиеЛистовое действие состояния
Графики Не поддерживаемыйПоддерживаемыйПоддерживаемый
СостоянияПоддерживаемыйПоддерживаемыйПоддерживаемый
Атомарные подграфикиПоддерживаемый на контейнерном уровнеПоддерживаемый в подграфикеПоддерживаемый в подграфике
Таблицы переходов состоянийНе поддерживаемыйПоддерживаемыйПоддерживаемый

Включите активные данные состояния

Можно включить активные данные состояния или в Property Inspector или в Model Explorer.

  • Инспектор свойств

    1. Откройте Property Inspector путем выбора View> Property Inspector.

    2. В холсте редактора Stateflow выберите объект Stateflow контролировать.

    3. В разделе Monitoring Property Inspector установите флажок Create output for monitoring и отредактируйте активные свойства данных состояния.

  • Model Explorer

    1. Откройте Model Explorer путем выбора View> Model Explorer.

    2. В панели Model Hierarchy дважды кликните объект Stateflow контролировать.

    3. В панели объекта Stateflow установите флажок Create output for monitoring и отредактируйте активные свойства данных состояния.

Активные свойства данных состояния

Тип действия

Тип действия состояния, чтобы контролировать. Выберите из этих опций:

  • Self activity

  • Child activity

  • Leaf state activity

Имя данных

Имя активного объекта данных состояния. Для получения дополнительной информации см. Правила для Именования Объектов Stateflow.

Перечислимое имя

Имя перечислимого типа данных для активного объекта данных состояния. Это свойство применяется только к дочернему элементу и листовому действию состояния.

Задайте перечислимый тип вручную

Задает, задаете ли вы перечислимый тип данных вручную. Это свойство применяется только к дочернему элементу и листовому действию состояния. Для получения дополнительной информации смотрите, Задают Перечисляемый тип Действия состояния.

Установите осциллограф для активных данных состояния

По умолчанию активные данные состояния имеют осциллограф Output. Stateflow создает выходной порт на блоке графика в модели Simulink.

Чтобы получить доступ к активным данным состояния в диаграмме Stateflow, измените осциллограф на Local в окне Symbols или в Model Explorer. Для получения дополнительной информации смотрите Set Data Properties.

Можно указать информацию для генерации кода путем привязки локальных активных данных состояния с объектом Simulink.Signal. Измените свойства объекта через свойство CoderInfo. Для получения дополнительной информации смотрите Simulink.CoderInfo.

Задайте перечисляемый тип действия состояния

По умолчанию Stateflow задает тип данных перечисления для листового действия и дочернего элемента. Если вы устанавливаете флажок Define enumerated type manually, и никакое определение типа данных перечисления не существует, то Stateflow обеспечивает ссылку, чтобы создать определение. Щелчок по ссылке Create enum definition from template генерирует настраиваемое определение.

Определение типа данных перечисления содержит один литерал для каждого имени состояния плюс дополнительный литерал, чтобы указать, что никакое подсостояние не активно. Например, в модели sf_car, gear_state состояния содержит четыре дочерних состояния, которые соответствуют механизмам в автомобиле: first, second, third, fourth. Модель задает дочерний тип данных действия с этим определением класса перечисления:

classdef gearType < Simulink.IntEnumType
   enumeration
		None(0),
		first(1),
		second(2),
		third(3),
		fourth(4)
   end
...
end
Для получения дополнительной информации смотрите, Задают Перечислимые Типы данных.

Основной тип хранения для автоматически созданных значений по умолчанию перечислений к Native Integer. Для меньшего объема потребляемой памяти, в панели Optimization диалогового окна Configuration Parameters, изменяют значение поля Base storage type for automatically created enumerations. Для получения дополнительной информации смотрите Основной тип хранения для автоматически созданных перечислений (Simulink Coder).

Листовое действие состояния и параллельные состояния

Когда вы включаете листовое действие состояния, состояние с параллелью (AND), разложение обработано как листовое состояние. Действие состояния параллельных подсостояний не доступно, потому что эти подсостояния активны одновременно. Например, предположите, что вы включаете листовое действие состояния для этого графика. Поскольку B состояния имеет параллельное разложение, его подсостояния, B1 и B2 активны одновременно, таким образом, B обработан как листовое состояние графика.

Во время симуляции осциллограф, соединенный с активными выходными данными состояния, показывает, что перечисляемые значения для листа утверждают A1, A2 и B.

Ограничения для активных данных состояния

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

  • Вы не можете включить дочернему элементу или листовому действию состояния в графиках или состояниях с параллельным разложением. Чтобы проверять действие состояния в подсостояния параллельных состояний, используйте оператор in. Для получения дополнительной информации смотрите Действие состояния Проверки при помощи в Операторе.

  • Не выбирайте свойство диаграммы Initialize Outputs Every Time Chart Wakes Up на графиках, которые используют активные выходные данные состояния. С этой установкой поведение выходных данных непредсказуемо.

Смотрите также

|

Похожие темы