Установление связи между компонентами Сквозные переменные и узлами
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 (балансировка) 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 как сквозная переменная, вытекающая из пневматического узла A, связанный с входом камеры, в тепловой узел H, связанной с тепловой массой газа в камере.