N4 Z; |& R, J) g$ h' JCOMMENT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ) D! W) Y' M% Z( J# C) `/ p. {7 U% @# Q
2 \+ M' u R, J4 o
The model of this example updates the present state of the 7 ~: ^" U2 a4 h Z2 @circuit breaker by taking into account the conditions ' }1 _9 T/ t! j! [* u" \3 U9 ?
controlling four represented state transitions: first opening, # w. x2 E, y& C; X6 ]# B6 Yreigniting, reopening, and full opening. {$ N9 ]* g5 w$ g; e 8 y6 Z0 ]2 q5 }6 O) [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ENDCOMMENT e+ u. l5 [6 s& J
# R6 E: \' o" T, N# dDATA 3 u6 g5 l$ ]& ~0 k$ F topen -- [s] earliest elec opening - `7 w2 ]7 Z2 U1 _ ich1 -- [A] chopping level at power frequency. v' f( X1 { t. h' i% i
slope -- [A/s] current slope . {( E0 j0 H& E reopen_delay {dflt:2.5e-6} -- [s] reopening delay 4 E. Y, t- q+ @6 D/ s/ d3 Y; ^ reignit_w {dflt:1e-2} -- [s] reignition window# {$ f+ p7 h4 T
/ B& B1 F8 z7 o1 @
INPUT2 H R; W( P; H# q) W
v1 -- voltage across breaker terminals& _- x6 f2 A6 }4 b$ m z1 `
v2 , ?6 O2 [1 J$ _ current -- current through breaker' Z" {+ v$ ~8 ^/ {$ F; ?5 W* ]
8 m- i6 E" X% f( L% S- ^3 x/ }1 N, A' u. @4 ?
VAR, L8 i t& o, Q7 ?
state -- 0= fully open4 \% g5 w# j! J/ D4 w
-- 1= normal closed8 L! G6 V( }( A3 [3 l
-- 2= tentatively open - Q* I- L+ H1 {+ D7 n -- 3= reignited; D" H3 R2 R2 V, a8 _
first_opening -- transition from 1 to 2 8 J) [/ T$ W5 D, v7 e$ O) I' O reigniting -- transition from 2 to 34 P( E* u+ t( @4 H5 s" T
reopening -- transition from 3 to 2 1 N% b& o/ W# J6 r8 L fully_opening -- transition from 2 to 0* C) F) _# F4 h+ a
reopen_clock -- state variable of 3: B; |% t6 N$ ?) R# F' {
elapsed -- time elapsed since tbeg . \7 `: u% C1 T% N9 z ~ cbstatus -- open/close signal to switch ) @& W: B% G+ E deltav : V1 X% I) W6 t3 h
ds$ Y; k! _# K& m7 P- W' W$ C4 P( t
nds. J# q1 r$ d7 N, f, z: P) Q- P
tdelta0 Z1 W. e% U! g" B
itopen ' \- O! c8 Y1 H' I5 F( X ich2 + ]! p% `1 A( u. z! Z( K 9 L: `8 m# Z k4 v7 G+ qOUTPUT" Z# u6 v# z/ X
cbstatus ,ds,nds- {8 x% }1 i1 i) o
$ d7 Q8 @ a% c' V1 B% u
HISTORY+ n) C# Q5 r+ e. D2 P3 C7 {5 N' V8 Q
current {dflt: 0}' o2 ?& ~( q: E( V+ A& c
5 B, k F# [; q9 R: h& @8 ~$ j- N# zINIT0 n) Z" Z0 `3 Z7 U* q0 c7 ?3 w ]
state :=1 -- normal closed8 @, ^4 D& n @0 e# [- l
cbstatus :=closed' s. V4 f7 q/ Q/ X4 `; ?) _
ds:=1 - M: @; } _! ]# i/ @ nds:=-1; ?- r/ Q a0 N+ y1 [. X
ENDINIT ) ?2 i) S! c6 b9 @9 u" e 9 t& X9 w0 ]7 i+ L4 k9 ]% jEXEC! L/ u8 B) ^4 r
deltav:=v1-v2 . X* ~, d- a5 | IF t>=topen THEN -- otherwise do nothing 5 {) W' ?% y9 s Y tdelta:=(t-topen)*1000+ S; ]: T/ c9 p; [ a
IF tdelta<=0.44 ; M$ A* |* {1 z( V5 b THEN ds:=(38.5*tdelta**1.5)*1000* p+ d$ P: j# [" ?4 m
ELSIF tdelta>0.44 AND tdelta<=5.00" Y* ~$ u' b- y9 e
THEN ds:=55.1*tdelta**0.55*1000 * A J5 v/ K; [. ^ g ENDIF$ Q3 J3 n7 T# C
# ~/ @0 ^$ M' E6 ]
nds:=-ds / |# A, P/ N D4 E5 U4 G* p itopen:=abs(current) ' r4 O3 }. H) a ich2:=(2*pi*50*14.3*itopen*6.3*exp(-16))**((1-14.3)**(-1))- n8 O: O* t3 J# [2 j* ]0 T
3 X* x! [9 {/ i# y' \ first_opening :=false; fully_opening :=false! h$ d% _0 M) k7 z3 \
reopening :=false; reigniting :=false3 e+ H4 |# i1 B: g) o
. @* y5 v2 p" i+ R( [# F! y
IF state=1 -- was normal closed 4 j7 z6 m' y4 H+ ^ AND (abs(current) <ich1# a: m- z$ G3 r0 ~
OR current*prevval(current)<0) $ Y; X" j6 h$ {8 ?3 _# O THEN first_opening :=true" b! K9 s, J% @2 s+ B; v
elapsed:=t-topen+ l9 w t' s' K' n3 J
& p4 v: z* a& U( ^; A! _ ELSIF state=2 THEN -- was tentatively open 3 R2 S' |4 ~$ Y: |7 c% `+ v6 Y
$ V8 R1 V! [: x) E- ]5 a2 G) Y IF elapsed>reignit_w THEN( C0 `. n' Z- R/ D
fully_opening :=true 1 T5 x( Z' N6 d4 E g E ELSIF abs(deltav) > ds! n6 Z: U, |% Z% a
THEN reigniting:=true& @/ V: W, n; {; J& E# X
ENDIF0 z/ X P* ]3 V# c; O+ k. x
( N8 O) g+ u" B ]7 l1 [ ELSIF state=3 THEN -- was reignited ' j' W6 r+ C | + ?& @4 M0 W1 n; E reopen_clock :=reopen_clock +timestep b" [" |8 _. e: Z/ [4 ?' _) x
, _3 ~8 ]9 Q' X" A8 W* R/ k
IF reopen_clock >=reopen_delay " v0 v; y- `% ?) r AND (abs(current) <ich15 S d3 Y- d: U1 @/ n5 k8 z; _
OR current*prevval(current)<0) ' t& ?1 g% }( R" S, B7 A! Z$ m7 I8 b/ W AND abs(deriv(current))<slope9 C6 i1 P$ A! C- M) x! h& \
THEN reopening:=true/ j, _! ` V t1 U9 R" V
ENDIF) X- D% V# o7 l
" L* z2 S& ?8 A* @/ T
ELSIF state=0 THEN -- was fully open * U5 `" W7 f+ l0 b ENDIF , Z/ X& W0 N5 [+ s' N: U/ \+ ?6 n! }
IF first_opening OR reopening THEN ' I) v$ l; ^8 w; p6 D state :=2 -- becomes tentatively open 5 ~1 e: o! _3 m4 }- h! s: h/ q8 f( w N
ELSIF reigniting THEN. J) L* X* z2 q- K' Q
reopen_clock :=0- T, Y# |: e' g1 @8 C4 b" ^
state :=3 -- becomes reignited - F& S `# L) |9 [ ELSIF fully_opening THEN $ B& s- o( u. `- d7 ]* h state :=0 -- becomes fully open 9 m* [* j' S) R" E7 c5 R6 H- L ENDIF . X2 k3 q/ O& Y. d: n x+ C) P! B7 I( } `4 z
IF state = 2 OR state = 0 -- is now open& }9 o/ Z0 r6 A4 ~
THEN cbstatus :=open A/ ~, y, M- O3 F% a2 z0 R ELSE cbstatus :=closed4 p+ {* U3 O- |) _' r4 O" U
ENDIF1 n5 w+ s4 r% R2 n+ v. [. u
+ }# b6 U" q% ~5 ~* d# r- L+ x
3 L6 }0 k: A* O: M7 s! T7 q
ENDIF ; b9 G1 m N2 U* ]+ t v2 \5 E0 Y1 {
ENDEXEC2 q* n6 D3 |1 ~' C9 h
ENDMODEL5 x! n' |4 q( H; B i
4 l, |- c6 U/ J