電気コンポーネント — 理想的なコンデンサ
次のファイル ideal_capacitor.ssc では、ideal_capacitor という名前のコンポーネントを実装します。
コンポーネントの宣言セクションには、以下が含まれます。
2 つの電気ノード
pおよびn(それぞれ + 端子および – 端子用)。静電容量を指定する 1 つのパラメーター
C(既定値は1 F)。ファイル内で後で電気ドメインのスルー変数およびアクロス変数に接続されるスルー変数 (電流
i) およびアクロス変数 (電圧v)。変数
vは、初期電圧0 Vを確保するために、高い初期化優先順位で宣言されています。
branches セクションでは、コンポーネントのスルー変数とコンポーネントのノード (したがって、ドメインのスルー変数) との間の関係を確立します。i : p.i -> n.i ステートメントは、コンデンサを流れる電流がノード p からノード n へ流れることを指定します。
equation セクションは assert 構造で始まり、静電容量の値がゼロより大きいことをチェックします。ブロック パラメーターが正しく設定されていない場合、assert はランタイム エラーをトリガーします。
1 つ目の方程式 v == p.v - n.v は、コンポーネントのアクロス変数とコンポーネントのノード (したがって、ドメインのアクロス変数) との間の関係を確立します。コンデンサにかかる電圧をノード電圧間の差として定義します。
2 つ目の方程式 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*der(v); % Equation defining the capacitor action
end
end