Синхронные подсистемы модели при помощи параллелизма

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

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

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

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

    Stateflow chart with two exclusive (OR) states.

  • Параллель (AND) состояния представляет независимые режимы работы. Два или больше параллельных состояния могут быть активными одновременно, несмотря на то, что они выполняются последовательным способом. 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Исключительный (OR) состоянияКонтроллер не может быть включен и прочь одновременно.
FAN1, FAN2Параллель (AND) состоянияВентиляторы действуют в качестве независимых компонентов, которые включают или выключают в зависимости от того, сколько охлаждения требуется.
FAN1.On, FAN1.OffИсключительный (OR) состоянияВентилятор 1 не может работать и прочь одновременно.
FAN2.On, FAN2.OffИсключительный (OR) состоянияВентилятор 2 не может работать и прочь одновременно.
SpeedValueПараллель (AND) состояние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

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

temp(0) = Начальная буква T

temp'(t) = (Окружающая среда T - tempТепло k - Холодный k),

где:

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

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

  • Тепло k является фактором теплопередачи для объекта (значение по умолчанию = 0.01)

  • Холодный k является охлаждающимся соответствием фактора действия airflow

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

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

Похожие темы