После объявления переменных Through и Across компонента необходимо соединить их с переменными Through и Across области. Вы делаете это путем установления связи между переменными компонента и его узлами, которые несут переменные Through и Across для области:
Чтобы установить связь между переменными Through, используйте branches
раздел файла компонента. Если компонент имеет несколько узлов, указывайте ветви, записывая несколько операторов в branches
раздел. Синтаксис и примеры см. в branches
страница с описанием.
Чтобы установить связь между переменными Across, используйте equations
раздел файла компонента. Добавьте уравнение, которое соединяет переменную Across компонента с соответствующими переменными в узлах компонента. Если существует более одной переменной Across, добавьте несколько уравнений, соединяя каждую переменную с соответствующими узлами. The equations
раздел может также содержать другие уравнения, которые определяют действие компонента. Для получения дополнительной информации см. «Определение уравнений компонента».
Распространите переменные Through и Across области на компонент.
Объявить переменные Across и Through в файле области (или использовать существующую область; полный список областей Foundation см. в разделе Foundation Области Types and Директории Structure).
Например, следующий файл области с именем rotational.ssc
, объявляет скорость вращения, w
, как переменная Across и крутящий момент, t
, как переменная Through.
domain rotational % Define the mechanical rotational domain % in terms of across and through variables variables w = { 1 , 'rad/s' }; % angular velocity end variables(Balancing = true) t = { 1 , 'N*m' }; % torque end end
Объявить узлы в файле компонента и связать их с областью, например:
nodes node1 = MyPackage.rotational; node2 = MyPackage.rotational; end
Когда узел связан с областью, он:
Несет каждую из переменных Across области как измеряемую величину. В этом примере каждый из узлов содержит одну переменную Across, w
.
Запишет уравнение для каждой из переменных Through области. В этом примере существует одна переменная Through, t
, и поэтому каждый узел записывает одно сохраняющееся уравнение. Сохраняющееся уравнение является суммой членов, которая устанавливается в нуль (node.t == 0)
. The branches
раздел в файле компонента устанавливает условия, которые суммируются в нуле в узле.
Объявите соответствующие переменные в файле компонента, например:
variables w = { 1 , 'rad/s' }; % angular velocity t = { 1 , 'N*m' }; % torque end
Имена переменных компонента не должны совпадать с именами переменных Across и Through области, но модули должны быть соразмерными. На данной точке нет связи между переменными компонента и переменными области.
Установите связь между переменными Through при помощи branches
раздел файла компонента. Для примера:
branches t : node1.t -> node2.t; % t - Through variable from node1 to node2 end
Этот оператор ветви объявляет, что t
течет из node1
на node2
. Поэтому t
вычитается из уравнения, идентифицированного node1.t
, и t
добавляется к уравнению, идентифицированному node2.t
. Для получения дополнительной информации и примеров смотрите branches
страница с описанием.
Установите связь между переменными Across в equations
раздел файла компонента, например, путем добавления следующего уравнения:
equations w == node1.w - node2.w; % w - Across variable between node1 and node2 [...] % more equations describing the component behavior, as necessary end
В этом примере r
и c
являются вращательными узлами, в то время как t
и w
являются компонентными переменными для крутящего момента и скорости вращения, соответственно. Связь между переменными и узлами установлена в branches
и equations
секции:
component spring nodes r = foundation.mechanical.rotational.rotational; c = foundation.mechanical.rotational.rotational; end [...] variables [...] t = { 0, 'N*m' }; % torque through w = { 0, 'rad/s' }; % velocity across end branches t : r.t -> c.t; % t - Through variable from r to c end equations w == r.w - c.w; % w - Across variable between r and c [...] % more equations here end end
Этот пример показывает настройку переменных Across и Through компонента с двумя электрическими обмотками, такими как трансформатор или взаимный индуктор. Компонент имеет четыре электрических узла, и каждая обмотка имеет свои переменные напряжения и тока. Связь между переменными и узлами установлена в branches
и equations
секции:
component two_windings nodes p1 = foundation.electrical.electrical; n1 = foundation.electrical.electrical; p2 = foundation.electrical.electrical; n2 = foundation.electrical.electrical; end [...] variables i1 = { 0, 'A' }; v1 = { 0, 'V' }; i2 = { 0, 'A' }; v2 = { 0, 'V' }; end [...] branches i1 : p1.i -> n1.i; % Current through first winding i2 : p2.i -> n2.i; % Current through second winding end equations v1 == p1.v - n1.v; % Voltage across first winding v2 == p2.v - n2.v; % Voltage across second winding [...] % more equations here end end