Установите связь между переменными 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 и переменную область Through (balancing) 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
Применяются следующие правила:
Каждое уравнение принадлежит узлу, сопоставленному с областью. Все переменные, участвующие в этом уравнении, должны иметь соразмерные модули.
Узел создает одно уравнение для каждого из переменных Through (балансировка) в связанной области. Операторы ветви не создают новых уравнений. Они складывают и вычитают условия в существующих уравнениях в узлах.
Второй и третий аргументы не должны быть связаны с одной и той же областью. Для примера один может быть связан с газовой областью, а другой - с тепловой областью, с тепловым потоком, заданным оператором ветви.
Можно заменить второй или третий аргумент на * для указания узла ссылки. Когда вы используете *переменная, обозначенная первым аргументом, все еще добавляется к уравнению, обозначенному другим идентификатором, или вычитается из него, но никакое уравнение не затронуто *.
Если раздел объявления компонента содержит два электрических узла, 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, сопоставленный с тепловой массой газа в ёмкости.