Установите отношение между переменными 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
, сопоставленный с количеством тепла газа в емкости.