メインコンテンツ

コンポーネント バリアント — 直列 RLC 分岐

次の例では、単一の抵抗、インダクタ、またはコンデンサ、あるいはこれらの要素の直列の組み合わせを実装する直列 RLC コンポーネントを示します。このコンポーネントでは、条件セクションを使用して制御ロジックを実装します。

import foundation.electrical.electrical;   % electrical domain class definition
import foundation.electrical.elements.*;   % electrical elements
component SeriesRLC
   nodes
     p = electrical; % +:left
     n = electrical; % -:right
   end
   nodes(Access=protected, ExternalAccess=none)
     rl = electrical; % internal node between r and l
     lc = electrical; % internal node between l and c
   end
   parameters
     R = {0, 'Ohm'};
     L = {0, 'H'};
     C = {inf, 'F'};
   end
   if R > 0
     components
       r = resistor(R=R);
     end
     connections
       connect(p, r.p);
       connect(r.n, rl);
     end
   else
     connections
       connect(p, rl); % short circuit p--rl
     end    
   end
   if L > 0
     components
       l = inductor(l=L);
     end
     connections
       connect(rl, l.p);
       connect(l.n, lc);
     end
   else
     connections
       connect(rl, lc); % short circuit rl--lc
     end    
   end
   if value(C, 'F') < inf
     components
       c = capacitor(c=C);
     end
     connections
       connect(lc, c.p);
       connect(c.n, n);
     end
   else
     connections
       connect(lc, n); % short circuit lc--n
     end
   end
 end

[R][L]、および [C] パラメーターは、それぞれ 00、および inf に初期化されます。ブロックのユーザーが非ゼロの抵抗、非ゼロのインピーダンス、または有限の静電容量を指定すると、適切な分岐がアクティブになります。アクティブな分岐は、適切なメンバー コンポーネントを宣言し、それを直列に接続します。それぞれの else 句は、適切なノードをショートサーキットします。

内部ノード rl および lc は、メンバー コンポーネントを接続する役割を果たしますが、コンポーネントの外部からアクセスできないようにする必要があります。Access 属性を protected または private に設定します。これらのノードがブロック アイコンで表示されないよう、ExternalAccess 属性は none です。

参考

トピック