Mode графиков обеспечивают интуитивно понятный способ компонентов модели характеризующийся дискретным набором различных режимов работы. Сцепление с автомобилем является хорошим примером такого компонента. Он имеет несколько рабочих режимов, при этом каждый режим определяется другим набором уравнений. Он также имеет логику перехода с набором предикатных условий, определяющих, когда муфта переходит от одного режима к другому. Можно смоделировать этот компонент с помощью примитивных конструкций, таких как переменные события и edge
операторы, но этому способу моделирования не хватает читаемости. Для более сложных компонентов файл становится громоздким и громоздким. Каждый раз, когда вы моделируете компонент с несколькими рабочими режимами и переходами, этот компонент является хорошим кандидатом для реализации графика режимов.
Эти конструкции на Simscape™ языке позволяют вам выполнить моделирование графика режима:
modecharts
- раздел верхнего уровня в файле компонента. Он может содержать одну или несколько modechart
конструкции.
modechart
- именованная конструкция, содержащая текстовое представление графика режимов: режимы, переходы и необязательную спецификацию начального режима.
modes
- Раздел диаграммы режима, который описывает все рабочие режимы. Он может содержать одну или несколько mode
конструкции.
mode
- именованная конструкция, которая соответствует отдельному режиму работы компонента, заданному набором уравнений.
transitions
- раздел в графике режимов, который описывает переходы между рабочими режимами, основанные на предикатных условиях.
initial
- необязательный раздел диаграммы режима, который задает начальный режим работы на основе предикатного условия. Если предикат не равен true, или если initial
раздел отсутствует, затем первый режим, перечисленный в modes
раздел активен в начале симуляции.
entry
- необязательный раздел внутри mode
Конструкция в график режима, которая позволяет вам задать действия, которые будут выполняться при входе в режим.
В самой простой форме иерархическая структура modecharts
раздел может выглядеть следующим образом:
modecharts mc1 = modechart modes mode m1 equations ... end end mode m2 equations ... end end end transitions m1->m2 : p1; end initial m2 : p2; end end end
Он содержит один график режима, mc1
, с двумя режимами, m1
и m2
.
Система переходит из режима m1
в режим m2
когда условие предиката p1
является true.
Если условие предиката p2
true, симуляция начинается в режиме m2
, в противном случае в режиме m1
.
В этом примере transitions
раздел не задает переход от режима m2
в режим m1
. Поэтому, согласно этому графику режимов, когда система достигает режима m2
Он никогда не переходит в режим m1
.
Используйте этот простой пример, чтобы понять, как работают графики режима. Более подробный пример см. в разделе Switch with Hysteresis.
component ExampleChart inputs u1 = 0; end outputs y = 0; end parameters p = 1; end modecharts(ExternalAccess = observe) mc1 = modechart modes mode m1 equations y==1; end end mode m2 equations y==2; end end mode m3 equations y==3; end end end transitions m1->m2 : u1<0; m2->m3 : u1>0; end initial m2 : p<0; end end end end
Компонент реализует простой график с тремя рабочими режимами:
В первом режиме сигнал выхода равен 1.
Во втором режиме сигнал выхода равен 2.
В третьем режиме сигнал выхода равен 3.
Компонент переходит от первого ко второму режиму, когда входной сигнал отрицателен, и от второго к третьему режиму, когда входной сигнал положителен.
Начальный режим зависит от параметров блоков значения: если параметр p
отрицательно, симуляция начинается с блока во втором режиме, в противном случае - в первом режиме.
entry
| initial
| modecharts
| modes
| transitions