Следующий файл, ideal_capacitor.ssc, реализует компонент с именем ideal_capacitor.
Раздел объявления компонента содержит:
Два электрических узла, p и n, для + и - клемм соответственно.
Один параметр, C, со значением по умолчанию 1 F, указывая емкость.
Сквозные и поперечные переменные, текущие i и напряжение v, для подключения к переменным Через (Through) и Поперек (Across) электрической области в дальнейшем в файле.
Переменная v объявляется с высоким приоритетом инициализации, для обеспечения начального напряжения 0 V.
branches раздел устанавливает связь между переменной Through компонента и узлами компонента (и, следовательно, с переменной Through домена). i : p.i -> n.i оператор указывает, что ток через конденсатор протекает от узла p к узлу n.
Раздел уравнения начинается с assert , которая проверяет, что значение емкости больше нуля. Если параметр block установлен неправильно, assert инициирует ошибку времени выполнения.
Первое уравнение, v == p.v - n.vустанавливает связь между переменной Across компонента и узлами компонента (и, следовательно, переменной Across домена). Он определяет напряжение на конденсаторе как разность между напряжениями узла.
Второе уравнение определяет действие конденсатора: I = C*dV/dtто есть выходной ток равен емкости, умноженной на производную по времени от входного напряжения.
component ideal_capacitor
% Ideal Capacitor
% Models an ideal (lossless) capacitor. The output current I is related
% to the input voltage V by I = C*dV/dt where C is the capacitance.
nodes
p = foundation.electrical.electrical; % +:top
n = foundation.electrical.electrical; % -:bottom
end
parameters
C = { 1, 'F' }; % Capacitance
end
variables
i = { 0, 'A' }; % Current
v = {value = { 0, 'V' }, priority = priority.high}; % Voltage
end
branches
i : p.i -> n.i; % Current through from node p to node n
end
equations
assert(C > 0)
v == p.v - n.v; % Voltage across between node p and node n
i == C*v.der; % Equation defining the capacitor action
end
end