exponenta event banner

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

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

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

Диаграммы потока состояний могут объединять состояния exclusive (OR) и состояния parallel (AND):

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

    Stateflow chart with two exclusive (OR) states.

  • Состояния Parallel (AND) представляют собой независимые режимы работы. Два или более параллельных состояний могут быть активными одновременно, хотя они выполняются последовательным образом. Stateflow представляет каждое параллельное состояние пунктирным прямоугольником с числом, указывающим порядок его выполнения.

    Stateflow chart with two parallel (AND) states.

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

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

В этом примере используется параллелизм для реализации регулятора воздуха, который поддерживает температуру воздуха на уровне 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) состояний на диаграмме контроллера воздуха.

ГосударствоРазложениеОбъяснение
PowerOff, PowerOnИсключительные состояния (ИЛИ)Контроллер не может быть включен и выключен одновременно.
FAN1, FAN2Состояния Parallel (AND)Вентиляторы работают как независимые компоненты, которые включаются или выключаются в зависимости от требуемого объема охлаждения.
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 назначает порядок выполнения параллельных состояний на основе их порядка создания в диаграмме. Чтобы изменить порядок выполнения параллельного состояния, щелкните его правой кнопкой мыши и выберите значение из выпадающего списка Порядок выполнения.

Изучение примера

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

Simulink model that simulates an air controller system.

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

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

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

temp(0) = TiInitial

temp'(t) = (TAmbient - temp(t(kHeat - kCool),

где:

  • Tiinitial - начальная температура (по умолчанию = 70o)

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

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

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

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

См. также

Связанные темы