Моделируйте синхронные подсистемы с помощью параллелизма

Чтобы реализовать рабочие режимы, которые выполняются одновременно, используйте параллелизм в Stateflow® график. Для примера, как часть сложной системы проекта, можно использовать параллельные состояния, чтобы смоделировать независимые компоненты или подсистемы, которые активны одновременно. Для получения дополнительной информации см. Model Finite State Machines.

Разложение состояний

Диаграммы Stateflow могут комбинировать эксклюзивные (OR) состояния и параллельные (AND) состояния:

  • Исключительные (OR) состояния представляют взаимоисключающие режимы работы. Никакие два исключительных состояния на одном иерархическом уровне не могут быть активными или выполняться одновременно. Stateflow представляет каждое исключительное состояние твердым прямоугольником.

    Stateflow chart with two exclusive (OR) states.

  • Параллельные (И) состояния представляют независимые режимы работы. Одновременно могут быть активны два или более параллельных состояния, хотя они выполняются последовательно. Stateflow представляет каждое параллельное состояние штриховым прямоугольником с числом, указывающим его порядок выполнения.

    Stateflow chart with two parallel (AND) states.

Все состояния на заданном иерархическом уровне должны быть одного типа. Родительское состояние, или в случае состояний верхнего уровня, сам график, имеет (исключающее) OR или AND (параллельное) разложение. Это тип разложения состояния по умолчанию (исключающего) OR. Чтобы изменить тип разложения, щелкните правой кнопкой мыши родительское состояние и выберите Decomposition > AND (Parallel).

Пример параллельного разложения

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

Контроллер управляет двумя вентиляторами. Первый вентилятор включается, когда температура воздуха повышается выше 120 степени. Второй вентилятор обеспечивает дополнительное охлаждение, когда температура воздуха повышается выше 150 степени. График моделирует эти вентиляторы как параллельные состояния FAN1 и FAN2, оба из которых активны при включении контроллера. За исключением своих рабочих порогов, вентиляторы имеют идентичное строение состояний и переходов, которая отражает два режима работы вентилятора (On и Off).

Третье параллельное состояние SpeedValue вычисляет значение выходных данных airflow исходя из того, сколько вентиляторов работало циклически на каждом временном шаге. Логическое выражение in(FAN1.On) имеет значение 1, когда On состояние FAN1 активно. В противном случае in(FAN1.On) равен 0. Точно так же значение in(FAN2.On) представляет ли FAN2 переключено или отключено. Сумма этих выражений указывает количество вентиляторов, которые включаются в течение каждого временного шага.

Объединение исключительных (OR) и параллельных (AND) состояний

В этой таблице перечислены причины использования эксклюзивных (OR) и параллельных (AND) состояний в графике контроллера воздуха.

ГосударствоРазложениеОбъяснение
PowerOff, PowerOnЭксклюзивные (ИЛИ) состоянияКонтроллер не может быть включен и отключен одновременно.
FAN1, FAN2Параллельные (И) состоянияВентиляторы работают как независимые компоненты, которые включают или отключают в зависимости от того, сколько требуется охлаждения.
FAN1.On, FAN1.OffЭксклюзивные (ИЛИ) состоянияВентилятор 1 не может быть включен и отключен одновременно.
FAN2.On, FAN2.OffЭксклюзивные (ИЛИ) состоянияВентилятор 2 не может быть включен и отключен одновременно.
SpeedValueПараллельное (И) состояниеSpeedValue представляет независимую подсистему, которая контролирует состояние вентиляторов на каждом временном шаге.

Примечание

Чтобы задать уникальные идентификаторы объектов, когда они имеют одно и то же имя в различных частях иерархии графиков, используйте запись через точку, такую как Fan1.On и Fan2.On. Для получения дополнительной информации смотрите Идентифицировать данные при помощи записи через точку.

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

Хотя FAN1, FAN2, и SpeedValue активны одновременно, эти состояния выполняются последовательно во время симуляции. Номера в верхних правых углах состояний определяют порядок выполнения. Обоснование этого порядка выполнения:

  • FAN1 выполняется сначала, потому что вращается при более низкой температуре, чем FAN2. Он может включаться независимо от того, FAN2 включен или выключен.

  • FAN2 выполняет второе, потому что вращается при более высокой температуре, чем FAN1. Он может включаться только в том случае, если FAN1 уже включен.

  • SpeedValue выполняется последним, чтобы он мог наблюдать самый актуальный статус FAN1 и FAN2.

По умолчанию Stateflow присваивает порядок выполнения параллельных состояний на основе их порядка создания в графике. Чтобы изменить порядок выполнения параллельного состояния, щелкните правой кнопкой мыши состояние и выберите значение из выпадающего списка Execution Order.

Исследуйте пример

Пример Stateflow содержит диаграмму Stateflow и Simulink® подсистема.

Simulink model that simulates an air controller system.

На основе температуры воздуха tempграфик Air Controller включает вентиляторы и передает значение airflow в подсистему Physical Plant. Это выходное значение определяет величину охлаждающей активности, как указано в этой таблице.

Значение airflowОписаниеКоэффициент охлаждающей активности k Холод
0Вентиляторы не работают. Значение temp не уменьшается.0
1Работает один вентилятор. Значение temp уменьшается в зависимости от коэффициента охлаждающей активности.0.05
2Бегут два вентилятора. Значение temp уменьшается в зависимости от коэффициента охлаждающей активности.0.1

Блок Физический объект обновляет температуру воздуха внутри объекта на основе уравнений

temp(0) = T начальный

temp'(t) = (T Окружающий - temp(t))· (k Тепло - k Охлаждение),

где:

  • T Initial является начальной температурой (по умолчанию = 70o)

  • T окружающей среды является температура окружающей среды (по умолчанию = 160o)

  • k Тепло является коэффициентом теплопередачи для объекта (по умолчанию = 0,01)

  • k Cool - коэффициент охлаждающей активности, соответствующий airflow

Новое значение temp определяет количество охлаждения на следующем временном шаге симуляции.

См. также

Похожие темы