Установите отношение между переменными Through компонента и узлами
branches a : node1.a -> node2.a; end
branches
начинает раздел ответвлений, который отключен ключевым словом end
. Этот раздел содержит один или несколько операторов ветвления, которые устанавливают отношение между переменными Through компонента и области.
Например, доменное объявление содержит переменную Through a
:
variables(Balancing=true) a = { 0, 'N' } end
и компонент объявляет два узла, node1
и node2
, сопоставленный с этой областью и переменной a
:
variables a = { 0, 'N' }; end
Имя переменной компонента не должно совпадать с именем доменной переменной, но модули должны быть соразмерными (в этом примере, 'N'
, 'kg*m/s^2'
, 'lbf'
, и так далее).
Чтобы установить связь между переменной a
компонента и областью Через (балансирующуюся) переменную a
, запишите оператор ветвления, такой как:
branches a : node1.a -> node2.a; end
node1.a
и node2.a
идентифицируют уравнения сохранения на node1
и node2
, и переменная a
компонента является термином, участвующим в тех, которые сохраняют уравнения. Оператор ветвления объявляет, что a
вытекает из node1
к node2
. Поэтому a
вычтен из уравнения сохранения, идентифицированного node1.a
, и a
добавляется к уравнению сохранения, идентифицированному node2.a
.
Компонент может использовать каждый идентификатор уравнения сохранения многократно. Например, компонент объявляет следующие переменные и ответвления:
variables a1 = { 0, 'N' } a2 = { 0, 'N' } a3 = { 0, 'N' } end branches a1 : node1.a -> node2.a; a2 : node1.a -> node2.a; a3 : node2.a -> node1.a; end
Затем предположение, что на node1
и node2
не ссылаются никакие другие операторы branch
или connect
, уравнения сохранения в этих узлах:
Для node1
- a1 - a2 + a3 == 0
Для node2
a1 + a2 - a3 == 0
Следующие правила применяются:
Каждое уравнение сохранения принадлежит узлу, сопоставленному с областью. Все переменные, участвующие в том уравнении сохранения, должны иметь соразмерные модули.
Узел создает одно уравнение сохранения для каждого из Через (балансирующиеся) переменные в связанной области. Операторы ветвления не создают новые уравнения. Они добавляют и вычитают условия в существующих уравнениях сохранения в узлах.
Вторые и третьи аргументы не должны быть сопоставлены с той же областью. Например, можно быть сопоставлен с газовой областью и другим с тепловой областью, с обменом теплового потока, заданным оператором ветвления.
Можно заменить или второе или третий аргумент с *
, чтобы указать на ссылочный узел. Когда вы используете *
, переменная, обозначенная первым аргументом, все еще добавлена к или вычтена из уравнения, обозначенного другим идентификатором, но никакое уравнение не затронуто *
.
Если раздел объявления компонента содержит два электрических узла, p
и n
и переменную i = { 0, 'A' };
, задающую текущий, можно установить следующее отношение в разделе branches
:
branches i : p.i -> n.i; end
Этот оператор задает текущий i
как переменную Through, вытекающую из узла p
к узлу n
.
Для основывающегося компонента, который имеет один электрический узел V
, задают текущий i
как переменную Through, вытекающую из узла V
к ссылочному узлу:
branches i : V.i -> *; end
Для взаимного индуктора или преобразователя, с первичными и вторичными обмотками, раздел branches
должен содержать два оператора, один для каждой обмотки:
branches i1 : p1.i -> n1.i; i2 : p2.i -> n2.i; end
Для компонента, такого как постоянный объем пневматическая камера, где необходимо установить обмен теплового потока между пневматическим и тепловыми областями, раздел объявления, содержит эти два узла и переменную теплового потока:
nodes A = foundation.pneumatic.pneumatic; H = foundation.thermal.thermal; end variables h = { 0 , 'J/s' }; end
и раздел branches
устанавливает обмен теплового потока между этими двумя областями:
branches h : A.Q -> H.Q; end
Этот оператор задает тепловой поток h
как переменная Through, вытекающая из пневматического узла A
, сопоставленный с входным отверстием камеры, к тепловому узлу H
, сопоставленный с количеством тепла газа в камере.