exponenta event banner

Варианты компонентов - ветвь 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 инициализируются как 0, 0, и infсоответственно. Если пользователь блока задает ненулевое сопротивление, ненулевое полное сопротивление или конечную емкость, активируется соответствующая ветвь. Активная ветвь объявляет соответствующий компонент элемента и соединяет его последовательно. Каждый из else приводит к короткому замыканию соответствующих узлов.

Внутренние узлы rl и lc, которые служат для соединения компонентов элемента, не должны быть доступны извне компонента. Установить их Access атрибут для protected или private. Их ExternalAccess атрибут - none, чтобы эти узлы не были видны на значке блока.

Связанные темы