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