컴포넌트 변형 — 직렬 RLC 분기
R2026b다음 예제에서는 저항기, 인덕터 또는 커패시터 중 하나를 구현하거나 이들을 직렬로 조합하여 구현하는 직렬 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
endR, L, C 파라미터는 각각 0, 0, inf로 초기화됩니다. 블록 사용자가 0이 아닌 저항, 0이 아닌 임피던스 또는 유한한 커패시턴스를 지정하면 이에 해당하는 분기가 활성화됩니다. 활성 분기는 해당 멤버 컴포넌트를 선언하고 이를 직렬로 연결합니다. 각 else 절은 해당 노드를 단락시킵니다.

멤버 컴포넌트를 연결하는 역할을 하는 내부 노드 rl 및 lc에는 컴포넌트 외부에서 액세스할 수 없어야 합니다. Access 특성을 protected 또는 private으로 설정하십시오. ExternalAccess 특성은 none이므로, 이러한 노드는 블록 아이콘에 표시되지 않습니다.