! q' j1 {6 [" \2 K$ i/ k8 i) y) v' D 0 Q/ G) I+ t! K; }2 C" tThe model of this example updates the present state of the 0 i( P9 z. j6 U2 v" Y+ s5 x# ]circuit breaker by taking into account the conditions , B$ I4 H9 s% `
controlling four represented state transitions: first opening, , D6 F, p' B9 Y& a& }4 F
reigniting, reopening, and full opening. $ N% X% w8 `/ R. [3 o$ l 7 G5 \8 l, t$ p/ G2 z>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ENDCOMMENT : M+ E% M# |! @; Z3 g+ y& m$ Z6 o' ^/ ^5 G7 K, h+ `. M
DATA; z: |6 D" r& Q5 e" Q* }/ ?
topen -- [s] earliest elec opening4 M v4 e+ v; i3 D% q V
ich1 -- [A] chopping level at power frequency ; g O1 Q- {: e5 }, {* J; ] o slope -- [A/s] current slope + l; P+ ^ [5 |1 Q' B reopen_delay {dflt:2.5e-6} -- [s] reopening delay ( y& x$ y% q: X9 K reignit_w {dflt:1e-2} -- [s] reignition window) \( c3 P+ g* ^8 I# B
1 B/ e5 i" u+ _- f8 z r6 Q; Q
INPUT 4 j3 f* s6 u9 c8 @9 a+ [& B v1 -- voltage across breaker terminals# G, C8 F/ Q, U8 T
v2; B5 h$ n" l& P! o* [. `
current -- current through breaker 2 g$ L! ?+ h: H2 q1 v/ q- H; A q6 y W% S
VAR 8 ~1 E( J: \! Y state -- 0= fully open4 X+ [1 I2 M. D0 B7 K* e
-- 1= normal closed0 E& P1 I% J( x6 z2 [7 z
-- 2= tentatively open8 D- U+ v# p& a7 S* q6 P
-- 3= reignited 2 m; E) ^" S2 O- m1 J/ ] first_opening -- transition from 1 to 2 2 l1 [7 w% U' s: Z, ]2 x. a reigniting -- transition from 2 to 3# W1 H$ N% V( G3 J3 Q
reopening -- transition from 3 to 2& v/ H1 E& n% h5 T* p; G
fully_opening -- transition from 2 to 09 s- z# @% n% \/ ?8 N m
reopen_clock -- state variable of 3 " w0 o" T' u) s1 D' H elapsed -- time elapsed since tbeg p, b% Z0 R: X O7 e/ @$ L4 ?. c
cbstatus -- open/close signal to switch ; z" o' u( u5 s/ Q3 N% u deltav ; P* L7 x! Z( W9 G$ r
ds5 x6 m$ f }" [; E
nds3 R9 C. w: E0 M; E% E( l
tdelta ; C9 M9 _6 ^: ~6 Z$ H: X5 G itopen 4 ^/ l3 i9 f- f ich2( {& d; `& ]0 W8 P4 c- {
# u: a- B8 q1 D* G! s. D
OUTPUT. [& U1 v) K1 z" n
cbstatus ,ds,nds, B$ {- ]$ a7 x& k; C8 D/ Y
; Z2 H- `# u+ Q% y- DHISTORY 8 @" J4 r8 _" o7 L current {dflt: 0} ! |8 Y4 c2 }7 q9 M- R4 v * l- x. v) f0 A2 F6 L* vINIT # w% a+ h1 [8 p \ state :=1 -- normal closed- g: v- P5 F6 a2 ^. J
cbstatus :=closed; B" n7 W R& X& `9 B
ds:=1 0 S) d4 T5 G! x2 g6 k$ r nds:=-1! n. R, ^' w' K- c6 P: A0 R) p' p
ENDINIT }6 u( ~ B/ O* l
! a/ Y- f: r. y* AEXEC6 r; e, l' E. C, N* g
deltav:=v1-v2( L( H, j) j% m8 ?, ~8 I8 `
IF t>=topen THEN -- otherwise do nothing" h# S& n1 i2 C: G8 w( @
tdelta:=(t-topen)*1000, b' E' u$ {! W$ i1 Z, F9 e& m/ Y& J
IF tdelta<=0.44$ ~" [: g, L0 D/ ~" J4 o% M5 ?
THEN ds:=(38.5*tdelta**1.5)*10009 }7 I) E' Z' l. i! l- H: [7 l
ELSIF tdelta>0.44 AND tdelta<=5.008 C4 a* v" B0 b& P, M
THEN ds:=55.1*tdelta**0.55*1000 ' @* j) Q) d5 o* A ENDIF% j+ H! P6 ^# E! E
* Y0 R: K4 r: z; v2 j
nds:=-ds ( ~' ~5 N- ]! X1 z7 T8 O itopen:=abs(current) 2 O% E, L; T: `* u% ]3 v ich2:=(2*pi*50*14.3*itopen*6.3*exp(-16))**((1-14.3)**(-1)) , _; u% ~* c1 G9 H3 k i1 H5 J1 v f4 B: t* N first_opening :=false; fully_opening :=false + t7 R& R' f' i6 a& N reopening :=false; reigniting :=false+ n5 j# c$ m6 g _- O
. S3 e4 \ l" M. R9 s% e
IF state=1 -- was normal closed 8 z% g( D* E W- j* f! q AND (abs(current) <ich1 0 E: e" \% l* |( T" `5 Z- G OR current*prevval(current)<0) $ x# d& |9 a% S5 f+ {( x( W( n+ o THEN first_opening :=true& L1 A8 e% ^5 X2 G# D7 V( }- c
elapsed:=t-topen$ }2 Z+ y9 @) B- l4 f/ F
7 c# z( c* `5 @, b
ELSIF state=2 THEN -- was tentatively open * G. X+ {! I/ M7 [
' n5 x7 x: \9 ]+ ?4 @5 o
IF elapsed>reignit_w THEN ' Z s0 ]; ?0 z9 }$ u( r( f3 Z fully_opening :=true ! K4 V( X% j7 N ELSIF abs(deltav) > ds 4 `2 P0 X5 m O* E THEN reigniting:=true# ]- ~3 O$ ]# V P, `* }
ENDIF3 L7 ^# V* W; L& j9 J. a3 n
4 @, g- k) d( Z0 v5 J4 ?7 H ELSIF state=3 THEN -- was reignited- b" J6 q/ i3 r( x0 c) c
& R, A2 ?$ o0 K0 F0 i( q reopen_clock :=reopen_clock +timestep j# }; a, P2 O9 k. b/ z/ N % q5 k9 O5 O! t; u5 | IF reopen_clock >=reopen_delay " [, Z; A6 H- }9 e' |, O AND (abs(current) <ich1+ n+ w0 B6 s h7 e' A
OR current*prevval(current)<0) $ g- y; d; }. a# W: S8 b4 R AND abs(deriv(current))<slope 5 ~. i3 n, V& v; t8 [' ~6 O; H2 d THEN reopening:=true . U1 s2 \0 k* t5 U& }% L+ e ENDIF / W, Z& O, E: i, e2 |6 {' G6 ^) v" N6 n4 h. g
ELSIF state=0 THEN -- was fully open0 o+ }/ P |; U: }
ENDIF , ^" F2 _( n, M# D* Q( e5 B % ^ y1 N# Z) k5 c6 b IF first_opening OR reopening THEN 3 r9 J- d# v4 t state :=2 -- becomes tentatively open3 z$ F/ K1 J6 X! y8 H4 W
3 C' A1 s# t- X& O, o* Z% N ELSIF reigniting THEN ) W/ c/ o* ?4 k; H reopen_clock :=0 0 ] r! T5 D% F- _' M( X4 O* x2 O [ state :=3 -- becomes reignited ! r0 q2 K+ V& h9 `8 `; Z) _ ELSIF fully_opening THEN$ f" B6 M a( ~7 f0 `) c
state :=0 -- becomes fully open% S5 e) ^! }- } D2 c `
ENDIF ) w! y4 s+ o) ~) T. u) B& Q 2 t+ ]4 H- S- L2 W& O IF state = 2 OR state = 0 -- is now open$ |3 a4 D0 P7 {4 Y0 |
THEN cbstatus :=open ( o5 \# \* C, m2 R ELSE cbstatus :=closed & @/ ^9 I4 m+ E' r" Y& E! W ENDIF ) a! Q- }8 p% F Q3 R # n2 \1 i! c, o2 ~: k2 @; H; M; {# ?$ @
ENDIF 4 e# N8 t* e5 w* y; p, F) j( k0 k0 @( u, E
ENDEXEC6 Y4 b& @2 U/ ~: n- B' D
ENDMODEL 6 q' X0 e5 |6 S7 c8 P5 f7 h# F' z& p# w5 D( ?
$ j9 w9 a; [% X# {0 x