Этот пример показывает моделирование примера муфты 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 секунд.