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