После того, как вы объявите переменные Through и Across компонента, необходимо соединить их с доменными переменными Through и Across. Вы делаете это путем установления отношения между переменными компонента и его узлами, которые несут переменные Through и Across для области:
Чтобы установить отношение между переменными Through, используйте раздел branches файла компонента. Если компонент имеет несколько узлов, укажите на ответвления путем записи нескольких операторов в разделе branches. Для синтаксиса и примеров, смотрите страницу с описанием branches.
Чтобы установить отношение между переменными Across, используйте раздел equations файла компонента. Добавьте уравнение, которое соединяет переменную Across компонента с соответствующими переменными в узлах компонента. Если существует больше чем одна переменная Across, добавьте несколько уравнений, соединив каждую переменную с ее соответствующими узлами. Раздел equations может также содержать другие уравнения, которые задают действие компонента. Для получения дополнительной информации смотрите Определяющие уравнения Компонента.
Распространите доменные переменные Through и Across на компонент.
Объявите переменные Across и Through в доменном файле (или используйте существующую область; для полного списка областей Основы смотрите Типы Области Основы и Структуру каталогов).
Например, следующий доменный файл, названный 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). Раздел 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