$ r9 I* j0 } k' e' GThe model of this example updates the present state of the ' Q" E) R0 B$ E. A3 T0 w: w9 V& scircuit breaker by taking into account the conditions , \2 D' X# h- ?0 }- r0 a" Y( N& @controlling four represented state transitions: first opening, ( P& ^) f& S2 ~$ X% breigniting, reopening, and full opening. : I2 H% J1 a, { c. _. S2 b ?. y& H) ~4 X! L7 n$ S
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ENDCOMMENT 0 J- @( l k; w ) x; U2 N: p2 K {4 _DATA, i$ A ?0 o: p- ^2 z* r
topen -- [s] earliest elec opening( x7 N, B0 a. }! p& z( f: @
ich1 -- [A] chopping level at power frequency7 [6 E7 R* m: z1 L) ]
slope -- [A/s] current slope ; H# [+ F2 g$ p reopen_delay {dflt:2.5e-6} -- [s] reopening delay3 K7 Q: @4 a) U1 Z9 C
reignit_w {dflt:1e-2} -- [s] reignition window . Q+ ]% l* V' S ! |( G1 z% w$ l2 o7 OINPUT ; }: X* u4 c( p) P& C% N v1 -- voltage across breaker terminals $ W( W r) ~* i0 s v2 , Y% \7 r/ h6 G/ S current -- current through breaker, c) S) G3 W/ g ?* R K
2 Z- }* b; z+ [. w/ s) r9 K7 g4 jVAR4 r+ D4 V/ a& q. T1 E8 D1 @# d* _
state -- 0= fully open * m' B% r% s- k3 u' p( @ -- 1= normal closed 7 T4 j6 ~" A6 r: D& ~* Z I! |" @3 E. G -- 2= tentatively open . ?" X5 {5 A2 G3 Z! z. V -- 3= reignited 2 b9 [& p' o q1 f first_opening -- transition from 1 to 2 2 T# d% g. s+ R! I reigniting -- transition from 2 to 37 m1 |* h8 ]3 d3 s# u
reopening -- transition from 3 to 2 # W7 g% a' |' j7 d. Y5 n fully_opening -- transition from 2 to 0; g! d7 T N2 \0 ?6 Z" ]+ b
reopen_clock -- state variable of 3 1 a! O; C8 r9 k elapsed -- time elapsed since tbeg " D$ r1 E( g! C1 f, \; Y cbstatus -- open/close signal to switch7 Q& h6 Y1 q: L8 Z; m1 m
deltav . Y$ [8 P0 H2 W6 f
ds- |4 B n& E7 Y: _0 y R2 t
nds, E$ ]; p. C5 |8 l5 W$ H
tdelta / x4 u; C) C& Z# ]0 d$ C) o0 q itopen 0 K$ S& b: r4 S: E) b ich2 - I' o- q: ?2 f* e% [' `& U+ l- b 6 z4 P; w* r3 jOUTPUT * {/ F7 D8 L+ @0 ^ cbstatus ,ds,nds( h4 J. D# |' Q% t5 k
. x" p) C+ O, f! r; F9 A
HISTORY' ]% V5 h, | A! l& H/ U% {
current {dflt: 0} + n7 c' p9 v3 U6 W* P5 Z' ?+ [$ U8 [/ a- ^ ~5 W1 _* |
INIT * T) ^6 _* g; m- y state :=1 -- normal closed8 Q7 ^: j9 {( x6 A5 o+ j
cbstatus :=closed* S4 K, z! o! [% }% w# J
ds:=1 9 a, s( W! k* g7 Q/ A nds:=-1 1 X9 e: T& o! k% a* cENDINIT+ f! d u; v6 l2 ?" y
3 C9 L% b! t6 G0 L" O' v( ]& X% _
EXEC - r! \ @' {# i deltav:=v1-v2# @$ ?% r8 h% k' x K9 q
IF t>=topen THEN -- otherwise do nothing % f' e8 Y- R% A2 k# W* R6 M5 F tdelta:=(t-topen)*1000 . R/ n- j/ T9 d J u# g* F IF tdelta<=0.44 / N' t2 R+ u8 r4 R& W THEN ds:=(38.5*tdelta**1.5)*1000 0 Q) {. d; t3 g6 Z5 m8 H) ~/ U ELSIF tdelta>0.44 AND tdelta<=5.00 $ A7 O5 U2 c- e0 c# ~+ L: Y THEN ds:=55.1*tdelta**0.55*1000" P8 W& t; W* z+ q
ENDIF 8 H& q- Z9 ~' w, q# R3 e: F9 g' X2 L g f6 [7 j+ j' ^7 z/ G& o3 k
nds:=-ds 3 j: Y7 s* E- t2 l itopen:=abs(current) 4 N/ q" [9 T0 q2 |0 _ ich2:=(2*pi*50*14.3*itopen*6.3*exp(-16))**((1-14.3)**(-1)) # X3 G+ P. M" B! m- a$ ~: A+ X* Q, A! n3 B
first_opening :=false; fully_opening :=false6 G# k' F6 W4 A8 S7 i/ O
reopening :=false; reigniting :=false$ A5 d, _1 B" [* ~( V, }1 d- x. Q
* w \5 z- D2 }; k IF state=1 -- was normal closed# H3 _5 }. q3 [6 `
AND (abs(current) <ich11 V. x0 }# o5 ~& T% u9 S8 x" \& b
OR current*prevval(current)<0) 6 L/ i0 F" \! n E& P' @- m1 B$ a THEN first_opening :=true 4 r* s1 J2 H' f elapsed:=t-topen / R1 s' r |% j1 e: i7 B( j" |+ [9 \: t6 i5 |. Q) V' Q/ V
ELSIF state=2 THEN -- was tentatively open r$ M& h- ~0 A. n; \4 m+ O! |3 y' i
% ]& Y4 Q" T! R x* r7 V0 n! I
IF elapsed>reignit_w THEN : K9 e4 a! }8 @" H% ~2 g fully_opening :=true # M7 u1 t9 {* H2 g$ m ELSIF abs(deltav) > ds& y' K( _% |+ E0 j
THEN reigniting:=true5 ?# {; Q$ s" ?
ENDIF : G* L3 M/ U `" ~: f% ~8 n / f7 y( ^7 i! v/ W) B# y$ R+ C ELSIF state=3 THEN -- was reignited * U" n% W, Q, B/ W1 G / a: u6 Z2 @/ A5 S. b* _! D* [ reopen_clock :=reopen_clock +timestep # x$ r0 t$ |9 q0 r4 y. d* O) O- o" G; i+ X5 k1 f) X
IF reopen_clock >=reopen_delay3 f' S, [0 h X0 u% ]
AND (abs(current) <ich19 Y- t) o+ `! q7 C& v
OR current*prevval(current)<0) 8 z1 `3 A% {( F# D8 t, J4 L
AND abs(deriv(current))<slope 6 u$ j+ T" u9 A& C) m w$ V THEN reopening:=true ; z0 L2 l# K, H7 o; u ENDIF& q, T4 N5 R9 i( Y9 C% L$ U
9 O$ G& J) {/ h. B ELSIF state=0 THEN -- was fully open* \0 Z4 h6 k3 s7 I
ENDIF5 l" ?7 t6 f% \5 C& \
6 w; B2 X- X$ g$ A( h/ ` IF first_opening OR reopening THEN# V6 @- _: O0 h
state :=2 -- becomes tentatively open 8 t* B# r/ g' H6 `# o 9 ^6 E2 e" W: S. l9 x9 a ELSIF reigniting THEN * E5 c* S% L# ~/ [# K reopen_clock :=0. c8 M, Q, d, R0 H9 d! q
state :=3 -- becomes reignited& U$ l, ^- f1 Y4 a8 {5 l7 e. `
ELSIF fully_opening THEN0 |. i5 X, L+ t% O4 e. ^- T
state :=0 -- becomes fully open' A# j* \/ E5 q
ENDIF ' R( M$ ^% W( i1 q6 Y* L4 Z- \* I5 R6 `
IF state = 2 OR state = 0 -- is now open0 H+ n2 R* @8 L3 ?% c# U0 C
THEN cbstatus :=open" V7 u2 c8 m0 q
ELSE cbstatus :=closed : W) r* n/ s! n. K4 C ENDIF1 T2 N# y; p2 `4 U( H& x
) w% {$ N9 t: ^. c
" }" O8 E& S/ e6 N" n6 O
ENDIF' \8 w! V# X0 T+ L k* ^' f
& _; h. ^& p% k7 B6 y
ENDEXEC 0 K" ~3 m" f# \( I4 R0 {ENDMODEL- U4 o9 x( ?- J. B; a