Этот пример показывает моделирование примера муфты Simulink® с помощью основанных на Simulink состояний в графике Stateflow®. Для подробного объяснения физической системы смотрите Создание Модели Тупика Муфты (Simulink).
Эта модель показывает рекомендуемый способ смоделировать гибридные системы при помощи Simulink и Stateflow. Эта модель также покрывает, когда использовать Simulink или физические инструменты моделирования, если непрерывные движущие силы являются комплексными вместе с изменениями режима.
Моделирование гибридной системы включает обращение к следующим проблемам:
Моделирование непрерывной динамики
Моделирование логики режима
Инициализация состояний при переключении между режимами
Гибридные системы имеют несколько режимов работы, где каждый режим задан непрерывной динамикой. Когда непрерывные движущие силы являются комплексными, моделируют их при помощи основанных на Simulink состояний. В этой модели Locked
и состояния Slipping
представляют два режима работы муфты. Блоки Simulink в основанном на Simulink состоянии представляют логику состояния. Эти блоки включают непрерывные блоки времени, такие как интеграторы. В каждом основанном на Simulink состоянии можно получить доступ к вводам и выводам графика путем создания импорта и выходных портов с тем же именем. Каждое основанное на Simulink состояние читает из подмножества входных параметров графика и записей ко всему графику выходные параметры.
Логика режима относится к условиям, при которых модель переключается от одного режима работы до другого. В этом примере логика режима описана логикой перехода между двумя основанными на Simulink состояниями. Условия должны были переключиться от одного основанного на Simulink состояния до другого, зависят от внутреннего состояния интеграторов в в текущем активном режиме. Например, при переключении от Slipping
до Locked
Stateflow должен считать внутреннее состояние интегратора в режиме Slipping
.
Это - возможное использование двух различных механизмов:
1. Используя Читателя состояния и Средство записи состояния блокируется в функциях Simulink: Stateflow может вызвать функции Simulink по логике перехода между этими двумя режимами. В функции Simulink используйте блоки Читателя состояния, чтобы относиться к внутреннему состоянию интегратора. Например, функция Simulink detectLockup
использует блок State Reader EngineSpeed
, чтобы считать состояние блока sf_clutch/Clutch/Slipping/xe
интегратора.
2. Используя квалифицированную запись через точку на условиях перехода: Если логика перехода проста и может быть выражена дословно, возможно использовать синтаксис как Slipping.we == ...
, чтобы отослать к состоянию интегратора sf_clutch/Clutch/Slipping/xe
. Для этого синтаксиса, чтобы работать, параметр State Name
интегратора должен быть установлен на "нас".
При переключении от одного режима работы до другого интеграторы в недавно активированной подсистеме должны быть инициализированы правильно в порядке получить сглаженный вывод. Это может быть сделано с помощью или Читателя состояния Simulink и блоков Средства записи состояния в функциях Simulink или дословно с помощью квалифицированной записи через точку. Например, на переходе от Slipping
до Locked
, инициализируйте состояние одного интегратора в Locked
при помощи состояния одного из интеграторов в Slipping
. Инициализируйте состояние при помощи синтаксиса:
Locked.w = Slipping.we;
Когда система моделируется, механизм и скорости автомобиля находятся как показано в следующем графике. Пластины блокируют приблизительно в 4 секунды и начинают уменьшаться снова приблизительно в 6,25 секунд.