From 2d69db40bc8280730d8f26408b6b507d64fa9fd7 Mon Sep 17 00:00:00 2001 From: lukelowry Date: Sun, 31 May 2026 16:50:13 -0500 Subject: [PATCH 1/2] Add ESST4B exciter documentation stub --- .../PhasorDynamics/Exciter/ESST4B/README.md | 69 ++++++++++++++++++ .../Model/PhasorDynamics/Exciter/README.md | 1 + .../Figures/PhasorDynamics/ESST4B_diagram.png | Bin 0 -> 47228 bytes 3 files changed, 70 insertions(+) create mode 100644 GridKit/Model/PhasorDynamics/Exciter/ESST4B/README.md create mode 100644 docs/Figures/PhasorDynamics/ESST4B_diagram.png diff --git a/GridKit/Model/PhasorDynamics/Exciter/ESST4B/README.md b/GridKit/Model/PhasorDynamics/Exciter/ESST4B/README.md new file mode 100644 index 000000000..bcb0d24cc --- /dev/null +++ b/GridKit/Model/PhasorDynamics/Exciter/ESST4B/README.md @@ -0,0 +1,69 @@ +# **Exciter Model (ESST4B)** + +## Block Diagram + +Standard model of the ESST4B Exciter. + +
+ + + Figure 1: Exciter ESST4B model. +
+ +## Model Parameters + +Symbol | Units | Description | Typical Value | Note +-------|-------|-------------|---------------|----- + +### Model Derived Parameters + +## Model Variables + +### Internal Variables + +#### Differential + +Symbol | Units | Description | Note +-------|-------|-------------|----- + +#### Algebraic + +Symbol | Units | Description | Note +-------|-------|-------------|----- + +### External Variables + +#### Differential + +Symbol | Units | Description | Note +-------|-------|-------------|----- + +#### Algebraic + +Symbol | Units | Description | Note +-------|-------|-------------|----- + +## Model Equations + +### Differential Equations + +```math +\begin{aligned} +\end{aligned} +``` + +### Algebraic Equations + +```math +\begin{aligned} +\end{aligned} +``` + +## Initialization + +```math +\begin{aligned} +\end{aligned} +``` + +## Model Outputs diff --git a/GridKit/Model/PhasorDynamics/Exciter/README.md b/GridKit/Model/PhasorDynamics/Exciter/README.md index 03428d4be..16008155d 100644 --- a/GridKit/Model/PhasorDynamics/Exciter/README.md +++ b/GridKit/Model/PhasorDynamics/Exciter/README.md @@ -17,4 +17,5 @@ There are a few standard Exciter models - IEEE DC1 Excitation Model (See [EXDC1](EXDC1/README.md)) - ESDC2A Excitation Model (See [ESDC2A](ESDC2A/README.md)) - EXAC1 Excitation Model (See [EXAC1](EXAC1/README.md)) +- IEEE ST4B Excitation Model (See [ESST4B](ESST4B/README.md)) - Simplified Excitation System Model (See [SEXS-PTI](SEXS-PTI/README.md)) diff --git a/docs/Figures/PhasorDynamics/ESST4B_diagram.png b/docs/Figures/PhasorDynamics/ESST4B_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..b4244e34a0f7fb40088a97bdc5a7e51c8d0fe6e3 GIT binary patch literal 47228 zcmeFZWmJ^k7dA`?C<1~Y9Rf-S(j_U4C@Bp?gVcz`NQ2TyODRZq3rGzuA|1luNVfOP2 zTP9B|tOl}23bHz$roU(W8m6t&WiAdW2txvMaNzc9y_%#H+4-Y^n(q|ez&Pc+3@D4- z*>-jHi+ptT-Z%wp-f1$UK+Yjt?w27Kt^2eaTC)_}DC-~JNcgs^Ls5Jb{&~9aljcLO zoA=)EwaKJP+&O$?E3i7S*KCGPDwS#!)OddL)EbqS2u45;O;x;#%^WOFhn0mvigUSosf}gX z8`&|Ek!i8>vHo2lBlWA;V?q|x_(Ywr;8W`?%qy-FW_2b!g5h!s3a}s=PH3f3logoI zd_-6ei*?=%C|y&{*Z#KPHyRd} z9CdRvBe;;of$lwwB^X@eP*Z8Z&5|})QUeAl9`o-RdIDT`Q~I+tIf@4TscvT!+$7Ty zwNxU6oU1lzK-C2%D!`R*z^#OD049dS7X0gMMH>z_`FYx$wz;HaTIl~>4l~hvW1sqw zo9p8pFjWtW|L%fN(9u)9mn4_3{kp(@eG$wH_WCsiG_v)phB|sJYjt0#(KbOV7VB7wfYBg?zpH>xS#n}}ZELWwx?Qp`-h;Q_EQ!6KC#ZvW z@)5l&xYo&cJNOkTPRvp}ACXv0t~A9}>-HaY#LU5yL}NnAgH&=ymFz*%+AU~SmYj<( zQU8sBn)%9;u|G9h?l65S?B?49ue4_TN7p`Ob}b?++Dvq8AB(4llCta~f=N{h$2cem zdsbYtMX)}?>5^?i*6V-NML%H^TyG2yFKXleZ)wGq#)PbE41XaR>Egg;6_^;poc8PQ zR8k9$hsg%$;{*D!B52LAUs+aN?XR}1(cL|k0uh;}f)y*n|Z zRCkS8lbbSrc=fz{dCv=sGCQ037c$0OT*|@IW~%P|cEo`HHCyDBUfTP+jm4r@nO}6^ zQ5Dsk&R(9kU5X0eMuvY4`?p9AYwnXwEQU#{`Ddx@9S`5Yr+~@xwXYS}=jhx!mVIx2 z`|b}l0xTsZrFk)u-Q%+&BTiRCwK1jf$Jv`~ZKnapDFIq(C*PCwO?%;qMT*q_En@|x z?l0Xp*Yn!1x3_a?a!rjt1Z$a#!{+)Y!+c)JQ_*Fm**r_hPXpzb(|YPJVwagxG-L3e zfsv`)e`tjztM2{a!M)>fpS&>&gX91%EaE9I&{ToB;mECwONg&${ZWZB^DawHN5{XF zzE**eyZSmlo-DvrBrT-C-d}|9l_s+R8X-S%Z!}(+F~aQf1f9JaN8i0;#`^q$@YP&t z0z`^z{|NP`;m4@w|E&y}mKoir_Q11dnUim^FMef*g-()4AI*=7KtnGIV zY(E#P=>PT&;SH%jq}s(gPub82m#$m-=AEI$1|Q8|pJ)r2l+yzeqtVc?U&%gq6a@}!yr#S8OnQ<@M6-w z(8AM`nz!w&dh&^af{^V$3z``kO>tW1Rnz?JB0xc`A`y}HDP(C?~l#vh;T6DEPxg#L#-bE87U*Qt1{4*`BU z(EhtoWv@8r;aor)bR~-Ke{Vu}?`HJjt^u%E#QD#+TkE!3PfrXvD_c)Wppm2E{>6r0 z_hX%W6w}9DeV$;&ysyd>PXm+v`s+0TWBX!PQ`U8i$|;GXu|)-XLq}2Qz}VS5i*i$)PMV# z_G)4JOWIlAJvG~W&8HJ}(cn4m;>6u9w}U~VQ$hD2Gu)f$KNAU&+770!Jj*8)ehfAY zDGsuNHKjkgq(hs7f@PIlYwKUOfgf6yP;JvsSsP*Z!~~7^N|Q_orJ~`Bmrc|z&f^)?H9?11P=ACQ!&!2~fgK&%hZv?l z9)x083OTg;x2CJqU{SzWlh&8#hle%V7f0PPC4&mYTq*rnSZZScdERtc>Jw;LV|DQn z$)tsb({?^2)WR)L&y2Wnzws)TX7hqLg>wT*tfV_{GR!{-$w6x1zm#5|UW>F82CCdgO1l4sOK?&{^a z)NT)}gCJQnHn6f4^k8dV<7-%+w%v89GYF9ivoOU~lMiCsU?&H438{f7s}9d--7j}u zIKfmh31>bHP+xO5n%Pe+(YYrJWf9{AG03GDiFJ||C&TYW`(4F81<$7n?CSqtr#n2` z#X}@-y_q)rfwU2%On2kgGp$jA<2Tz>r<6N!#JSG887p$r$)t^huFZ|E zb=g-`sErYFTl}zQQpW>4MzR(~e9F|8%zSOmOF8{kB~g>3zQbzEE<$>ME2MJsLlRq2 zL`4S4<4Lf$9L;_p-#|0wxV)1Jz_uMW`{?7IL8o6j_~R&j>Wt?h1d1pbYrn)NY`C7e z2g|Mx#A3z}T_(b6ozTWQ-$#oI$0-OE0mq|dr{MsjbSu*9`+h%dXCMYnj981;E>0AW z1j`zZjH|$0T-w-%!KYr|RdS;zD6s!rw^4_0`g7oY5HQcJnb>e|8nCiU6e&sC%`U>p z{B%&pSH#|H?w05Z?5UIZ*EDk?aT ze=sX%l64KaN!6Xd*{$V+q!QFFVh%Xlqx0jhmE+^O>vOE@Ac$qYL5yB_UzqWw&+)tY zw+B>KOCHZVzlUw=Qn7-4nj`&`Cq*9SDWtZC$rXaq=JIZ^A<27UZ#^Y> zfV%Wq5q6XdAO|MY3h1*I$oA&k7Enf2NGqVuA(Y9P*rS?%JmfJx(W>~E=kvO5f0g&R zYe128t?`Y&c4va2nS-~3ICn1xl$h70pp`K!Z||w@ulx*+3zIx(;C(`0*0LauAOpi< zS$_&rqb^IbI(V)Dcl80DRxCitqCsfWJ#RcED{HnT7MbLjkfzGrps z0#$4g8)4@Q4JtPpgFe1Ab06wz3gUe21vxKp-x+F^Z2qZ6D>?uXR1bPjnC>AOWv{c8 zwYUh^J)ih}*|H;1-xaeh|KH^^Abq1vflz59y7U~U1lnW}8iIF9A|a##8|8J|*>|QH z{hACF8KY0jEbVmoUclxS-zKQO{(tXN1KkJU+!4B+L)h(SIz1hIJa#fLojG{Zz-utI z=hb5w}v{#H#Vl`)?i%Ow6{yZ{4L(3B>l~0z|0-N%nPpC=9ih)n!pdr!Gvodhy|~rXCUKI zBOg$Wpp7onuhAlrc#-*KtTS!1y(E^m!!*G6rH(P{*oDtlb}R9}5#bQ!X^sJE0j&Uh zRtn{O!#3BBKuuM$<>c(C=lm>_`B#ZU#_{jJ{tXT?q(ezVSz@`d$P$h7k=1|q$uaGE zNGPmpqNlp^b=*JhAMGyEhsIL~Hs4G&jd8ux0WSBy+qAp^w-FcS%J*Dy08S8%q=wuJ zc;&Fg?U0+LdZp`S1|4OI4Ni&a5_J~PGOVq+eFVPvd%EgA>ZRf)cfbX}BNy-kx0D~r z_t_WeGUcYV^p4IAL&N@tzz0p@C9Z=8zxljn|yqx8=c}x~-P+f75li zhOb>@V;yH@_~bSoR>74(_7cb^`k2E?YLtuj&(c|fHJ|-^E|ZEb-CCtA?nXSka{gG~ zO#d1BlUsM4W^CR1bCG>MKCxswCBoe=SF96QfdO%o>>CHbTo-zsd$;UT3jkb_UuBL{FXVTgZ5}xj zo%1DkZaucOGi^KS)$k9z#icj@3YTPibqyKwgpJ%N2B{CIC_s*EP0h5T&Uf*0_jS3# z1t^C-_qCV*E>+@}_3_djbig?}+kUp$OKiIxH%*$seMFWaQ~FQ#jpEW*;iR-$J8?f-yDyAu0OIIxnP?4Ww6$;H==6Wx$Dj-qh(TnjgU6;Ws<-DPvqNi; zGyC-+Az~UB#{%qV`HnbfldL|~2u+TxcIy^#^801lcKsWaH0>3$dt74F=+Kp&g4Z%4 zi!w}j!kk2|ce|JyQgZiy9vRVeI*9+^Y)A>%wMd#S)nC$*!`N9Nm1w|)JWv5n^cCRj z{$+-1Pqu&jMA1Rk#O#aiS{ybeBUh~=)9XzKBc5V0xMM=tS(_gBQ*8RA$-1E6JH(mN ze{?(?P%*S=tjy#m)O7HN^yS8yDcEtAw`BfoE z%dw%{UW*7{8%fo4KuRX8GA7iPrf%X#(d$AFvv!AtVURCiRH+3(;ZU$8#+w3@md;d` z&eR8CBuBdAAtBi}>N~xvF7#pSqY4UAPw<~=E*UW0fgrn$9T!hKDJd89n5WRAodsQoE@*Z)8=bOfaJI&vdgw9(}Eg|6j_n0bFX;t z)uB`$4-otY+bwHmBI{R*9amf%HRr5zo>L?xEsDj+WCEjP62+jz*)2TOA(jigqt;h? zOMi%cU8$ofc6S+RzPI(i8aH z=kFk1nk8@!w~W9-VLtc?q&Q$?+v;`LUkd!m$%=o}7K%1hT<_$=+M;GUOV`NPKD!7n zS_5zU?CU7?VVrdc{Am?-pSKweBorC>mIbD&Clod;;lbvmpd5Z_NJE z8g@7MA=rW9=_FF>)o_X3=f%FJ$0r@f#X5vBOToa^b3U5usa6^MS*>XhBl|YLR{W5V zm`!aA_--(1^N-w$yBZb3YLNpz^MI%-UB_>V?8-4S`OvKe zR^anP!u>0QT)#MRSaV4cX(l`=Vm0#5`{lxWB;Gq<8+%T0)Zz#Ooo`E-j>-+vF~hU@7=jb46?^s05K;+My7~ad)Nn1 z&$5sMAP-~hG{7)aS5YKhjrQVZ9r-@aU}^D9$*SnL{VSH3bQJ+Q#h3TN;`onf&1g7H z9Vk=3l^0S@_arCNl7yk-`&ZU&-GDmZ(;kjN#>W!lj|4g3jRj#RH$0I)o&sJ3_J5T@ z6j2X=8v!W>mG>ZH$?#f#1agb%Oe`qRERDp$DtMB44J+HG(0i}QgMttbFlCLmvcz72 zW%jhH`8T=y1Az|bvz;fAIea={(6Jit!LAsMloeR&Lcjnp0yFy^ucT`ppJ=hqDJW2= z;paQXW2el!h*OWm4$Gqv)S+Z_iOeiH*52ZA0)P-gL0EG> zPtV*M#EFY)5LoEwUSw|;c*(a3aD{kBNRsg+se-)yVh-S%cJb|m-iKpC4HcN!GFCi| z2Ad{dk_BS3vYT>QnjGNEd|2v`{#I0cKTraJ)@m*AUXzZDOc<~MV!U=3dcSE;K?|1! zL>qDc#~rJQ!*og5tSLz|5sQKMfqOpDAkfaUNh$wx*|wkUBM<+ZoI&Y0#Cys2NxkIA zJlHdertC~*@Ck+ z^n+3NPs=LmKB2@_Wi8QE>xTt8_c~nYZ4YjeMa!FA(GGmi29kJPIEkUpk^{H+sT@LN zpL(#Am$`W{6$;cdO17arNL|gqB^PTwRUMHxzKq9}v^r>npN@wbaQIh|KWz@ajz0xv zJvm{C3w)^82OP^Xa_~8zoKFjetwmHb<2**Zl%doO8S&eJwdqd}(L?e?c^Y0n^D}mcl4zcYm>3(2sB@l}lO=~= zMYnXkM7+j$X0M+LWyoBrf4>`eHpKC#T@L~2ho~>ee0{(&W3v4I0`Eb)D?}n$Qu^d>I@ujUIrJ<)js^FivF+2q}3gEHUs z5z<~%z;Z`OC-c+#(-q!;2%sz8jFmc|HVrsOoULgDe6D~sZA0SdN{ZRnNZ!`))yx3K zw$qudZE$bP)uD9H_2R;hey1;;rs|00u1fBFAwSx14u}LA98ufJcx9YwJ}Lz)IS-$t zWRz=T6xu9+A>d*!b7#`A^0@mf#nk&6Z}T>e|K;i2QsZhyCr}}S{->%YXh=r@br|H8 zk{3ryM?j4Wf)rt(uxgnFf{IDjmVkDabw0QFswE^_bhde#!phkBS?^}Rr$AvQL=L;r zL>>P8x^14Ol;iiZ4mHu4U}8Fv`8atJt+WU`ERX=oNL`-oiR}#tx(q#7od@&ONs9FEJ z*rwaI|Dy~*GQ$~WtOIL&;YPqz1F>1{>nqv55hIg+%fq$CmZ z6-WoI1^S`4i5b2&DRl>dsh;WwF4t#Jc4-Od^T*%2rF=dYI1qRJIUq4{<89CFH)W00 zzdl4(fse4T0x~78L&^Z45YQVRK{`r-i=BL%#{9jw9~-2`oSJPRl3{f>xhf5VCb~1f znDqbgrR$Ro{xA-%m4MA=VFB~px9>Rw;^d>h z2}J|%*7sfrp*m|yAZJ&HmbfSu-2PeuyT;egA=k&*05Qh(1F^@5{gl-J_il^{+h$|V z&*6+VEQlrp)F5aEJWxZ5rm^f3qyb@u?|aB-yBU@M%@!nLXvDZ}P7F08<5zMG$&RK3 zPy#XsLOGDEzeLdpqW*XL;%5M&J=t=SAH@;bDU3_XMj!X{7)LyN>C_28X% z1!D0NEBeQUz6)W{K_B&7{&f#Eud#l6G zKn0*Eme~Ea4H#OFslTq>FDp;%w~*e^af61#u*IP<^EE_gAkT;R6xwj2(aM-ZUePxD z3g(k!E;soHjlrbhRcx#R`w}$;cr9?}-%VSslErK+>u$U)f8J(BS0B#$ln#O_$TA~V zCrlFYPY7)qmumBsO&_Nas8NVX6!e+xjaRg*2U0}&jTsD81~Fx>uAs5?l)AH>wP)-N zd@bO&q~1~VHye`;2{wYVaoLM&I764j_|(Y%x6_d?+Zgvl_l6{H$ji$gji$8b0i$&Y zsR7maKjq$boq6u!pnj)V!;g?o#HoF!o2gQSoJ{x*fYbkKu4-x@ueGnO5AamUyh<5= z4-0vn$k_Q%)hd{jj|dkFkOb6EmFl`a0}=x(;ymim*FY;DDv*xE1m1N_O zo;#Mc@594iCrZ0c*rY6UQJH-~BAS#f?y%6_0DKDl&|@R}f{LD`F`h?yqrzo$6PF_MFGp-T5)|4AZCrvU6c-0ry$3LWP3I>OEwxZEg3rS zUrl{By4oL*eZw-p9fBVS(q=jm!>eSei$8@UPo`bS_v;oGEF=$pST##L0(;szegYJc zAcQ%2qA{*=ygyc1QiDH~7vb|!sgD{8I0&tKNuX3NGv`825!p3TU4aQr#*Qlree{+V zMAfu-QcIn-Be`ro2gd#6e%>~E2*OYM$ceK6%hXA~wf4>`#v(dV`o)~z;lhC6utJr= z7iH;PGGG?FCkB9W@9W$Sv6K8;!5u-g*lH@^i-Wo$`=i@;RmIcQO^8ywJDmegjsKc- zw~xzZEk6Ym7f`FMAfha;%3L;zOIYtN_ck0%I?|}D;a>jHxV(Z!R9ST5gQz48G>LET zK1swaBC};2wKpG#8Xgj8gXoDL3Y5JSSHS6FmWl=y)PzAuk~*AD@LP$%N6lSq%q?=6 z9jgwmfzYJOq$KqV)B}UetdjvUuiK>JC-%Rx_?;0Q4Jmh5i^}yC=i&Smq^B=;!GYYULej5j@y5<(jVSg-}&&4OlHB*-4>4t0Idi(Y{MaY{TMW@Pj_8U4X|qbPUs*wX0T;fAm)(Eq zWvXfOBWdT{F5A=bP+~fiq2E?5+BC?LJX;wQgyC90)*#obw1S+ljS3BD&1Qp5E4 zlyq%;le=NnvZmaUKhtHqfTudTHgg&KhT`4N%}uHD@$)WQ8kOQ~-Peh|3G7zDSsb3u zc|(=n`Jfvj6e{r^)cq?0o196S<(n6>-#;H`u~_-7X(} zk6i&92a2HQQnVb3Ls!`*PK#{zA4x4LJ#Ws^0otC!iEhAvBaKV;0&a< zVQFmrsPmbW4pe4DQqi^gUAHB%KYI5bV@D;n5Pc%7(!HtY1r2Atv@(V>PM~h%*;OXN z!IdVaco+&!*qtrv6k*;JH7(-WnWWv80iF$;J9`j4)UzFQlud~2e{bxs}E*gxAsP<*s`e_ z=Fa*p*UJov0PI%8aBc)o-~!%LUf9J0lasYl3q#6Jj4f^|OPw2GMG|XB?EdPHN7MNY zR!3Ug(jNBKqhK6;3 z?tswOjeAr_GGA(Yo+Jr7iq6YFGb8G+{z~x#P*y{ocSWGB1q7PNVb~jCQRi@}-inpc zmCVliO)m;oxfcNpeAE8n$b<^Iqrs(HWsP3AdVV`fwT%UjQvyiz19p_o4k8HM{XFy? zRn^CYKzoU0Rgnl;tw{=-M;!yu5nMngPBk|))T*C9zrIQ6Yl?P!KKtsjxp-vzS~Vp# z$$KroobLw7gBFv2-VSgoHc#c-yCk{vo4@fydz$V$=AlMng|!v3yuBrQhEGFyeX+xs{2OEfz*ZDn ziV{3aWqEYkgsxtgs-I6S<#lXeYHpsombD;G27=8d{#ECz>M*oC=0Vz^NO=~V*Z$c# zF)dxU%L}k)mgX+c=j8WR2h-4rRv~{g05FY_k=}z)=ee6{@9WOqcKwjvHFlyS`{A?I zGX699*SPyHWX zy|Dezgx#*@SkVRThrgjJA@eM6a$38kRVu9@g6Z<8`v_2~5)rM;U+&R~M)5eEKW4_2 z$6lhFhfnl_%n6U#I1cjAtcFr_Gevga5 zf-_QHX%9}w%P)7vD}~+l<;R3%O6Kg8B7w{UL$`HuI+hph;q!+J{8~P^!w#B^Hb(0< zM$Xhv`^_$HPRazG{_6LKF&gjOeF!+x?qkZOG{*{Es-1G=fy}FGKJ(T6 zJeVH`xftXn-GZ3&OvH_$puIF!+L00sT5Vdj>nn_oDoo zY5Sdo38_hq>}|c4BukgWy*pkl&%ZoW%}iiNbwoBiUl1dyi@xgndrZGnjTr(h$BI^> zRljX&?lxLDvmW#g653El)+x|QiC2_SI*>W-rJ z_R#Lg2q|bt3i3R6IFyzS6dYi7@ z*(~#$;I{!Fxoqh(fBzG~yqS{qjuc1cNcMr2{%_*BR=j>*!zh5iPt%kd-H%uKEQTYF zK%GRt`DiiHL9lB?h&Yn+{^yPQInZYl9Rc6U$aDAh`1$CCYW_EGd9*Gdo zc5l)W<^6eZ%xbn3Tu#p2|8>zV<$KH6(V#Hea;Q1MV@~nPi^1`ft_u#0G->k7IfPl~ zaKO&vX_syW2e&ey4x`eijdD*=sx6y`*KJDF@K*w<6h6}}HtF2kKd)nM;`xH8(v)hk zqH8@);$5`5w&|)43Xp&s-1I;0H`^sCP`>(2pUNrPNv1<$Y4@_0Q55Ji&1bv)3^V=? z`Sz=>jTL7z1>cr03TB1))oOTS_dq>&%=U{%dP2r*74euYQ5U{Y?!Y@QYR1z+=k1v- ze|>lkfhn&rKR#h;oUYt$lr-Ysc!O7_+@_;ktr&S2pwR_e9&cvdCk$<)Nf z7bkEVx%0)_TEQI5dVJ!qr`*VNt73W)&nhzgCyDp#g&1Ukw#yl}224fMb|=$?COqbD zjW&ILq&iU0_ibWxG9Es1*|X>C*-&~;AVA!#$wBl*ag@$k&kFNF;rM5&Bl*nAl~+rk zzPFX(Ln(LFX|~xA&Zx30Hpe^lJ#BmjCPKIWCkEc|Nxi^I)JdkcTKiq}sD$-_{>OuG z3u>4Txnpza7N^A|b8QgE_E6XQ498QoH2&bQfHNxq5Ka@-itqyJ0iY`^A$x;ZcW(;! zR?mdKrdSUL$ssn@&x{vuCMj<2%b!)PWR@DLXbw@y&1d**+H)xC%rYl-^3y3*Gau(b z50$IHoXAq35$6(#>vf}*eJe*#c*Y@^2qSl2hzmTue9YSt3>B47>MfOeY~~-rK$Xgi zNwVO%$8E&v@x-t{rGs-yQ5l78?w@4yb`$*mQ{iwNESWP|n(pxj9&}t@ZW|CaIzI%| z_9-zmWERJ)JB>td4@-P@;(9^#M8||LFB!0ILs2Y2j|&{AEf4DzXoFLMS3H8`RXXtq zjhj!jYBW%7_S;vT6S>iJGsW*&U+upszILz^R{wkGs%B6@?GvzMPYcu!ar4`b2c1!h zMXS2xaGB9DAWN_ti&%kBC$<&TeKe&@fjIR7{bwk}NtSzDArl;+-(?^~6leanH9aG` zy$T6@j_CL@0CWaQ)S0o}4ZfE*(#%sL?K>8*g&vxMFVDRA~AI4E_rsB9Vva zYoT8n0Wg@4Q#tEA3#0b{3D4~nh`~(K_twGl#@6^R@6^3Y@4GnuBQ62`3oI=2(}N8M!F@5fO6Sl!o)20D zUb*2=ngccKR$Nd`v0troPx$BcI>8~>n=nTw zpP5hRphE!c1Y?v%$*IMsGH;UfW4-SxHNAd%n<*MH=bx$-4&zSCr#;*nO|0u-URG*6 zh4`w%YJ0dvOD)*lWfbdo&@(WxIvrXD6|%*05zqJc8mBkq>RNoaKrh^Sc+d@LY7J)% z|3b3ah%Jx}t0i7sE)fKTgYtFf<>_JDrC$+D_g<0%zV=&EIZ)ahcrQrs{t27QcF0M> zlS3W~LQ?)**?o!5kt$H^1<(O9q;`_DQ?+D6IZsBx_r#fH&nd#h6qqpm&~;bkk$=K0)|= zqi8MQ(I_$kCSN|RdG>4SaiYGblxNocwgXZN6p|p+fWRh^GF`h!Ec`$m3#xsYln604*~}2 zkA4Ax<)90-&{p8+r+#aZ$hZ*vtLET94TO3ipj#aLp15fCJDj2N*{IdGd+^sH&<-~6 z@3k~>+qXe9y=tvJr^gJJ)}IS4;TU>$sjN7MowY=qY{YpKs*U~Oy;^j7C16;%vQ)Wk z?$)rifT#EArdw6sTa>uBcejXSvyEV=ZL2Q3O{U+$wfke3>WQ*UDQ00oI>mM1-Wfhm zML}PaxMg1=Cs0*A%411FRRHVk-y~nE^d*CGodD#|^?sD1-<(++Nezh%OJcQ@{b=5Z zKyA-&3gLG+Tbl`z;Z%fpm%;j`9FGOYpB{K65%_qq3??jIu#L5>Ft9bMU1N5bwIC@d z=u0R!ZA-H>revJ0rV%Y~)Puhf1^^8RNoUdLpi$w>Qwowagr{95=<_wQqglW4s6G=g zv!c0MzX6*mr3s&EIUjKFJf#_qXlTZIrT?&I);a7qr9rU{WPdS|QL>PG#cs=0k_o*> zdvD!Wh#03HWsJHkD3{7agw$^W7qKzSK7IsLb8W!K z?Z5hXBp_2T$XxX(YyJmQb*vhx3%Uoql#wIN%n2(ZmefkWt&r&zm>y%w*0zge1(?vf zA#e@IRn?{L`eyt7um}seD7XNE2;j$un5g;Sa59;k=GyaM<>)kFN4;NLw(;!SF-xFs zo~?5)MEwjCFZ)BgI2g3UjtP13kK9GQdVpid8ME{y!|@t#(<9R>l#yLp{gZXkmQ`Zw z9(l%M>K((s-w1-p0JtmX=IQ?9s#T{^Fh{G-dgqR+?q*)0fUi+B*=;_6AARI@)QKyL zx02I7f1C8#ZA;Ji>ijTFyrrylq5{aFnF$_s*6YUEn!i$+Y>$JqF;~1m7_EAmxRS#C z6-;DHNIg~P+T7*EAykKI`RTsZk{elQZ`$?@>mzr+40UYSnY49q`Xb)eG~U*{Vl4uf zrh(#h)LZj3-^);oFRiQQ9=BOV!Nu*)Pj${Rt_=8S8&tE{=O%MXxh(DCC``RRzK&}nJrF3?mauUq zDEDJ9``=v(!ymrP_WqFKFy3&@l&GW)&y@kxOhx0dhtgViyIeLBwgvQ)&8n%_I!Wki zW9ePKkY%@>zCMcvOZtMo(1sOZZ?yF+zXywOxTV-QzvNM*GEtVh_=d7Tnhm-F_D<4E zfYEnbb|6#648AF`yXSwl#MJ#~ZS4Gb@8@7A&9e{K%vX|a+>SPuZh?UPLP;eTdKjz5 z8DXYrtE5l>D7qZ=C`;c=MPCKP4Y%k((08#C>hm%I2wVu!iH*I$=Fi8Zv#AZv3QR$p=ZIdH9ZI8%m+>0&!f zelJz+UqAdPYJb#e9q(mLTldanwas;Pv4tyTMzw_G?5#;ipRY8}%t6mqwoTAv%Q;Zt zL47%ORmnPaTwDgI9Gb~mZJBwYp`mi!H$j0|9BV^l)=$<`mZQ->FjHQ-zWJKaY-FKc zIN^5B@3%(qx9};@q5#nCGY0=oK(}?%l9<)SjDopTg+UbyYS0k9uc@E6Gm5}%^J)$Z zI9iMrZW`PMSTk+*%FJD(|(hleq|q~>W{eml~vN4<66l*$GgfX`Z;redZ; zZIbP4D*1Kfu6}SIeRO1Yi3wQ9yjaUb{j8uwY|aq1cy6Yv=Evp5A`py-wP&E?HU_;o0m=$7_F z%$&o%Kk`PuCRkv7#>2Ru0kSSE-}R@NC59ZIXukSXt2IRn#|4r&%Y5$VdE_m9n>R7A zTl$#3V=gGKjUlxlB%{9$?z==c*FGpZXL9%;wcPMj4%PJ_!_o_O#qwvE|0~i%BW|VGvj~emy<=rUz*NGwf)PI}t6~o!gogN<_KT_33C8my@Y_p(zI2+WT?Ehm+j%s{G z`MX@>S?;s>0uZvnhKnG|f&37DEhj2vW1Jz8>Zg+VRntyB%OE`@+D2ch-YLYi3`&V+ zxFrt@Y=KAif|GNn3Qt{|wtB>Rc#PiwC{z59%e0Y6O@Jxvxwj2sHRUSp)?dNa9o9YP z=Y3q1uuLOp8>NbV9=tS;3|H+B_UJZcTwZ~F5;Kb4WN$Pf0kWN#^iG7vJUDcql}3=k z{foVAPVc2#1WPL4Z+q?CJT6a``x@1!z2N9hBvT>`+WyKdK9r^>=jzjDv*C~_J!Vgc z%i2~jMHe~=ATORRw$J(BcK1OFE!ygodR_$ z(7p|t1R`3nw)BpD8Ph~BvBH={f+f)B>=4L8$&d+%y_c8l4972JenqsMk#XsjwZFal z7*+WBn=(`Mn1&22eI{x5*w^mYj5*dPqw?>P8l1ugp5A3b<@FBvD2YS8Yn479>{I=3 zm(Jda{RYgx12k?tdgpg?_&T(?_Oul(2S$L~(`@-{#UJhG-dF${=UItOa2!$l#rM%Nrg_kxv>*Q|Oh^i(QU)tcw>(^NUCxro@ zL4El(ukXTjhq3kq_6&in_`}dxa3FG}OhlPJHiJVjXLTZV5Txp+?XQma^_iAw)hQp(~zqete!h!*}VsBW7MUO)P{l#egcA?{Po+^!1ne zttR%_vpp`c-SEzj*1b2Eo1JC>dFDc`sEC6?(+j|QN^9&tcyn^)&o+9*HP2Rq6ykvG z{jz_zn=>uwHZ|gS^l$~;c7ZTcU*c?W+wEny+L)|uSQO;?2u`Pfvn9UsUyiex7TQk# zxPnul$MU{M3jnvOZQ|jzn`d~v;hrrC@2jR^Q6(c481d0HAyA0Bh{+cgE&0Cc#O4)f zPpxEzueCfwG03I!3(520p@os!*!pw*76+&XIUjf(I;(j{bx9huChvd(JvHcRS!+Q4 zE}jm@iAS9uOgYP(4bGhr4}oH%LT4T$=v_YA4wH$x+;6+k@0^OI)3Os$Z8TBh$w@0# zJ*>8wXTV*zkzd|B?pYnMt?@kD>E;KOO7=`&ZTNG8rUN|m^|*S8&W{PpRj`+HRq!b@ z^zLa=_pzze>{iR+tO3%!IJ2r0Bc9A{hyz3OKO6ec1E-$-^(K;v_p9Nv^n8)%$4zys z&kOC-2UQ=PNZpY-45fMzk7s}1dH(eWePsppT`%tbHy`FUR%h$rpwS2$>wBeH?0dmy z-&-uEBE9!L2|)4izEr4XjcxkEre1|f#9`}Ui+|Mw0`q-gYVM*AX*b*iW*rYY^KPY; z+kj33&;a0^(>~C8x*3UgopK(R>FCwuaze<3D?$l34)%aH;!S^d51ef?m^lVM)c{0# zm)^T6^Sk}L-QXx*5jc!SRM~D+j#!JT`B7$4x%>RL!FP;j1b*a`1KPsqE?bNj&}5(^ zVbIykfTK>P?VoARmVhXAG|lew(0l*N&bCq!oS5aHK~{8|ethFXc_(k?>rQw4+-zL^=!oXgDIG6>%RGwl*dC(W<)0DD?YWNaxq9_cfLow7vs@?NN2dva+D7J$ zNha)oHs|qvYtR+9X6VZUvp6)Rl0rrk@`i#d{ zI+fRl^fIRt!`nwou}j5;8HD>bzR=NAfcNv^tTF8XuQAHcm#*N#1iTp#d;&zBGV|=W zB$>Y_l2N_|#WgCE7uY;)XRh=CXFCR<%!^df=O^lnW$7;O-@(^jKGX$#O}((&H~ZVw zgFJRo1%6=mI=9%tu&dEwKk89nZ-p+rD@)HGz6i?2AT&rgspssW6w@VDoShB2B z;Y6suRmT2nu51Y%po<{t?&IWna8~UrnKFGg&)auMUIo}ul!sXy_O5pEm8t$dYK-$2 z&ms?5HD{Hz+k;&AT(zfSm8!_rCg!-CKpW&;fX?cIqpbLz6X67mp0^KXJj@W^3bgB2 zWo7Ep7-&0`TPCOxCbGD|u?5Q9b+FhxKWGi31Ccw^J{^I0p4%M+J7Com;k&mc`4*o_ z06UL*-_O#{H$Ya1O4_ID;gL!Z6BFxV>o9@Tet+d;w6wC-2v74IoP9K{j&@1J0Od0?QN+3WJl}_g;Yy z$1l&@E!Ty}}Q(JzVla;M&=krDilvF}YMMlE9Y zsUigks1UA)t)pLVbZc_9&S@ftXHxeq{noNemR6E#m&{Q6DY0EJ7*yvCnPvw=z5N)8 zP0cjAoAtcQu8jp7*LOV{XbqlO9k(#tXdJ>Ytd7soA!a`Ls3J3#Jw91>y&3WUiL5}{ znMF=z7$cmvUV=%A!zVwj1MSnRwm6?KL~i+zRI);++hvp39MyX7aKRh7F)iT$Q&bbQ z9nfT&Ojy1sRM+aBd;TRVku4H4nd=p@&eJfD^CUxZVrz12%UY@LbnepsH^AzPGZ3j_ zF%=UAji$tJI69i5igg^Gd^6qOv}{rF)SPC>doCm-v^@7HiUpl-^1RH0E@&>uLcIQp+Q+HZ=txsP_vdX@1@8NJSJ3Hb`8l}0 z?-K)HgG=k)W2({gTTjNGpl<2jYUU~w{vm||2{t$f-KC|>5F&N(1NS;5cTrk84STQi zvgaY5@QmrpG+NA-Ld_p5bOs3JWT4KtyXvSKs@ArSs%oJE2lGxhn{H5<`BqJ$1VEp< zBP$2ZJs{C8xH*rN$`^ms*3ql$)w zzS~0$t-{VD?E4a%lmjaE0`KEp>Un;^B{28cwFuAKlyF z`0!w6z+wdZVlcV-)%#OLN_B> zK?C^C%hSf+E3{)9IV-X1jrKU+cyIba*S~$tqeb;tp*42C&E+ySRli(s2UNvK!E|__ zBjMh|w9d`lrM7-;OSe3v!uh`wJ8}tE%PmJ1i6WZC8k)hP9O7SYIu_t2Jje{({Z z-mF$1GPrVTZug<#qlnJZ7rAcMq=shR@*3B9G{Q$${%)y+x4j+bM zy{|#u&CkE@xRot$JuW9J2Y#g z3B90A${;!93ENU;;+Oo@{Wsq19ozm+i=z#>Jwe_kMy_$*qwGnlcR^*P`%=Onyvo?# zRO^cordkV7(0uLQ%)sJ_V_)ey;yxte{~_y5z@cp4uyK2`gd%J9t!!nl?8aJXkdV=0 zpAxFEhAfpOgzVYF*h9!pDkP~4lVr(~8aqi@|JO6Uzwh{e$LDYyuU9kUS?=e)ulu~t zg>N57lS~UA+`kWCu^rLm&Z8l!(Z~4U!P5;QB|gmq&4L~YjFd*+ZbqMQ#}`%H0CLM6 zkDYk-$>C#Ep!V*f{*k8q*uSJr9EPZw+$(!}IrcAt>n`>NhmD?2!vbrUMLbE-o}y2yjJyahaJi83=bv z2Va`qzFJAB-pc1rL4CZR;xkN5ceSp3(LHdIrhqOgek01BF~=}-+?IaXR5b4Z{ermJ z4`}oU6E#zMwLv&%f8L#&c2N(`_qV93VbE{?eYa^2kP5b9APyV?&~T;#y{diD_7|%fYR_J!$Z9a+HoiA~tA6yW;y5-&BJn!rMFH5Un4*92u-|4}PcJsQ_ zqA~@P!_s4fVVZQvZM&#VTt|)Tw%l5}%&KRf@``QDP}>$YWPDB~E8yA~bF*Ha)wEbNwoX9_*B(AI?0`B)!6x*%6s(Z%yw{Pv@6>7JliYD;3SVN= z7{_K4Tjp2JNt(EEXc0ZYDBmwB+;`fuqlN%U~{>eUzV(zl2>-nXu2 z-o|w6$7?Kyu;6RbWl5ho#C|r^zq=YOT=QK?j#~W2$zSaa_1|ejcIVo5ds*JEXFP=| z0ZzJW@U%^|hyZ7E4k4*Yb@g(^t}4^p{ZY*s=dK;eDBN!{u$?$-n+QrKQH;7L)B;cs zhkrN8)=>YYGFaq26CWxuWEAwYc*pVB^DA7t)4sKbEMqSiNW8GCWV2_riaqt=Mm2Ad zT2RAS=D>Aj-pvdi5wknjXuBL)&(NU><53gS{-z9pC#h40iN4Mm!A4+YOiV zY5+HxQy}@=#Sc3^J9%S^fK#u&7&(8HPwh>kecipUOJVNlH6FH<82M{M((lrhq!cR$ zu$ckSi^0~~Duiif_vhP|i@&}5twAM*llmyNxUW}&Y0+HPe6de3T_ltA>(QhnPOY1m zp$x~zcIrQsOb$VLK7l_?3(%79504U)8$|R->9%&V#Ah$gAB2;uH=@<9Jm!3g9(Q@q zTm5MrJNhc~mA67)Y5m8Z4Oufqr@~~l;h~lrPnx-o@HQMV*zt~NXI(5L2Dc4~D)6(# zAK8opub)%}7t^@XSm5&IsS3= zu(YC_`*W)j30y2wmY{YW1~e*P3o0&kJNPQl$i1DpSJEguhY>ud*e6wXZ0Xd#f`OkO z#vPov=wLT9j`pz_ht2lA-9_BXQX!GJaqW&`<=z$S!l} zL<}`eY<))teZ>XEle2@z-UZ;~C+$^?<(%>j5g-;hA28+dkBBhbib)qRsOyoey$dM2gnsU?5?m;50l&_dOiXK1%{lGX5`Qyca3h-} z1O?&q?*j^m0IbY+T5i}DE+AH;MP!{B1s36iG9fmihGEoe;lt9_6us3t+W0Ed^pt8>E;;~BAjnH;>v^Wr;CTw%+3@IM9STFn+H&ATlQwT?YLKeDZk5%n%~)> zLyi^|_C~BVn1IGST}j$M4&nP)lmQ#_e-;!TJiwTCQ~fcKB28;t7l&&_OT{7@-5RWMA+!Tqb!=a%_R3{mdU!_@1CPn!AS7%*}* z=Ma^&bp>hW`eQ+)?d~AxMA1zhDax|#<@oFLqE@+7XP5HazT$y!&MMQQf&2rXZeqZ& zYY9kv2QF*7$|6NCDxR!ziNpfw`LnyWV#|duKq_d%r>CbzsMU3Nk=w6tb;UHWSn2eFXqh1ZFuAyt{oa1DLxlREF!J zN6b%UR$R=r_w6k22})WOEY~pg{TbOo=zP&64l?wc1N$}Vjf2MGg14t~tA>I0`#|Bn zs>t)}MdX&}j*vJA^pnuzU4T?P%vK z3bs1>%xLakuo+@@$;4TijS3kW@8XL`covd>Z}u3tUs{+{Jy6lSYAk&TTCtkg#}B=0 zT5Kh&w-T4DU!ST{@0oI~X_NBvks&EG7<<|Hp;^_24lpyn<}aGj^9O54HI2>@IvmF1 zqM%1_vWzO+hiBNqV`rbJe#{PrjwsXF+%`~a1|WJdq^AME?m>{Hy+T~(D70#AU!NXZ zIk2}OzZeikEZPG~)f8R{8pWck`C^Q}Gb02)|P_7mA){74uh(vd{Z|-z3(is>Pn7cPTOXM;fUMSMsISQaG zKSKJ$T3`Su0r5I=DG7yju7j<|=^dBV7N6wV&?!C2i~TNM!;$x6%=2Y>;rih3d4#~j zwLVJSZUCNut@M1T%z)kuS)c3pJ9*B8s~ObXnV0PT;KVW)9R~f#w_dvpxq<2d?9%K z0=WC7f8lcjpFh=|Ujv9|-)-p#otQ+78Y@2LV6En-KRy259YzHp#8TBQUu&`-l&eK! z(futm9v0=}k}&xIXH|#!R?FM9w6ldCrgYG-njek8`<3{BLife;OGdB3^B2B>iy;^f zq@MPXjn&w6MUVqkQ0e}!QE?O*=uf=faHpQam24_1QiK+_nU`ygi|R+lCEnz46gQ-s57VRLlh6p@Iuj&aLxW(i==#eLXYF44SmBZ>C*3` z#W#fFa{ErjGE~O3Y|ndPIQ0Y-j>)cL7-Y|suT=Q7FhVP~17xCA(3{!@A4#S68e7-z zzzX#WX?Xgyu4R&R@dn+p6)&ZUm}7oN4F#?o!!4N^ZLPjiKQg_LD~Ww z#*Fc0-RLNjTcE`oi2u-DIrm~Fy3R>#a z7~x_ShESD*5w<`jz()9MTS&4u=1I=@_Jk&{=2_WK*d{BnYPJ(JZU%hf#otr>;Yeqv zF7JCe-Pz3U8DP90ESFT%MN@@{NorOG?hcI=5<%{1CpePI4N&kz-|q^*Dmmvji`~#b z*MPW%IbLG5;}FSSvmyE8wRM!ifa2bw$MJRhT}@Rs^lZ=k2_YIe+jK2o-Oe>t0~Dbp zHRj-(GIlH{qM?gyU(O-@&;@T@#l8=s;ap0UL~0|{j?Nkh@0$LdCF!igELgv4_&pI3 zCYip|=PtKDjYhnbsAa4<^$PYeJnk`CYuu&*Zx>kr3gngz9i|#(!4VLJi5-?iG${*U z4ah8g@~W|Hih~M89=}*Kn-jRMHQ4=b$^iq07Zs;JbPC2Ly?X z#m6Vkq6m6)O1yfzi@iq^dnm^65gmWG`|_;7Q2QFvg#jwvh?_xeT|D~1@5iP@$rCwX?kqMI1KY+5u z0{p!NbJBkcqupt;dT(2&nqXT!F$*OCp|Ap^l9g9JJvAcDxBmKitN$Bl-CqIlsJm7( zEZy{qhHTlikMw!;m`j$QxK+9BJ%DaE*WRm6F}=%Bk$cXED+(Ip+=VCj3RILe7_$)`M~MZK?3e2RWvGIJW^mYdtxshInsy~MTW`R+vQhXEY#@cg!DyLheM+})R`ore z@iqk_!28hmfWJZ0H1#;;A@N_qlVf12s!0mCDkyfAK4hb1DG<(2)4Tqyi{_RMY;G(y zml%;XU;J$9T|g~#-AP8-n}i}R!(v_d*LWUD>buBsQ4`C-RgA~V4n;YMh8fH7t2v0E7Lg4tadVX z6I2TiB(i*|fSr_zSegcsKo8s{^ng#^(`T(X_?a>TIsl$C>Wzt?6&y8 z##LSpRqTQcza0?ep4r}>)x6-c-jW}uVVgO4yLw#O;O9@-(Z-hX;JqE|);lL*FRQRD zAqE4`dE!LKjnU))^y#2Oc$~lAr9bdq7K%T!!MiTC#Y?}Yf`;Dl97R;YS^lJ>IB()y z*OJoFA;Vl#u=v?bE_+qs#&aww>dRThw{MfAR!T4JFd$t{vJhWa^KXxt=kH;csm8gA zPCZV{Q)LSlS7)#WVu8irDA0xidlgOY;?R=0NaciB$^I13QCd1)~y>)f;N95wqk?M;Ob=! z=2+wLl9F^4PL@NMJ z%6T1vaa+*#IfppOVu6yo2@c%zpLCgH>Li1XdIT)zkR#yQV0V157IG%tRbW zlx|~OQuvMMp&PMmRw!YXRR+p*v_K=g54p|o$Kch7r4e)NCtU}`1Y`Ha913%xp!8wug7c!v#=eSEU(xHdpU@`z= z0`Tt4wUY&_a<2Q|Ty{|$s~kFie1w@hwV>@`S25C^`17oIK8&l6Tr^=vmxBbbYzXxq z_$0N(V$d+16xad@{hKftW=3$3wyTb+sXq^;tmnI>2fLg|>8)L;nDj*qQPk4Jg|U=> zFH%svzKV7~;DxC#Z{tR87vj8oz{d=QnnFea-*7=!b=l|W0PF$3P${xO{4MZIQa|(= z83UAekwGgX7<}5%r(ZI5>N)OtOUk7nZsc0P7+CpT--dAqrwObfl1wm|h8lf~!@%vw z5KkJLWxx-_QoTc*l7N`#M11~@5I_g9IKnTOb7RvlRJsFU=Fh}F&4{_mHv2$utH)9S zBlEHmVX5{CSH8T!dC+Bu4^?0;uK8v?Cl}|?>%I%qB%{O=&(KYCLZ{=mNuAsebvLdO z)Te7H+k&x(bwLqqX<)ob zjJ}E2+F%`QA{G!&U%*ewTAAQM4k6p0QRweDH&rkKwVGO5dl1V}Ox{cXTpbcjQtKN*hymOMTvQBs3cvbzIr=C-oqz{u2F;VwOigCeb0SvYU zWK_`7>vK*LgAwPQsG{X)1@7!n3TX{rA7UvPXQ*x^D{=XM8J8Xrzz4)B5gG` zaWUqZsF{Bl$EFkS)lK7lOTt)t+ZUVlOwaI1dttp0>EHw4S(P?BREJsv&p#}Ms!~PWo;Ubx?9yR}6w~rIdJT`Y!OlrPGUx6j5cSg9LO*qdAmeB|v;V{9NCqKFq zdDle^vfAm)?%ZPq+T(s1&Z2XYeVW=r+QCE=vNafF~-t7*nlKc`F3^< zA^4xmvejiI7{{+;L;1Sger!Q`4HZxXUdT3va6RelHylP~^#t1I5bw$TLyF8$TAQti zgYBhw*t!w*bjNtSXs;iY^F;sb?FD>N8qx~gtLSzL>n-i@Yq;~(gROZy|3!|bQc61F z#&~J!VFaENifWWh(ni$Z;*Q4?do!8sD~}|`u)){hdA^}T|G0PNoTn%_#)aVg?1;D{ zAb9MhNdZRj?&@lu9md{S^9B$&K^phVw-`*@TwNsbA@ZP-#Gf?((}e#2&?G1@Ce%nodOoU>djO9&A(GHyW>8iCmuE}avhLS z*m&iz{B6yw^Evmv2jBOmLkw0D_XXX5AmGbR0b=xyKcAzb4P=PNiU~A#E`R4HT`v(z zsVp)M(`iGW}eiP?cQ~HkzRJx^Se-!Q^@}F^Lgv~?k z117qE-heh|OyrrU!7V#c@)x>0t^(0BOc z>YD_xYV<=tp4jA_&J7-o_!fupP+h;Aqeyy!u7*9R^`LF6WCZLhPbxj4qA>FaK0GV; zf}O(iYh>5uKKD!Xwfodtc5Lo!zAQa~d-FKGx0VX(Vn8>ou#0X@7DwN$+Kul&LI zhB=C#0r%_RHH52?6WW|Q)ZFNP{|fA)ZqNAX99K1$dqlM)ejc#w9~lPd5O&GAgA^pp z>f3iejSKRW+4Qaw`AHFO3J2bl?A1_FJiE1}fW6gi#_!7x$5gkV%}&CM`rbtB>8>*Dj7JdvtAby=-tXBdqM3=LXs&ky=Q_88vOJ?_b>M|W_NN=82QAoL``Xdn2y z+>Sr3(l3-<@>RMr3A7FSKSUv-So1nZm)DaI)hHtvnMXwCGAY_sDlZi&Z!I=DaJf7Q zPABINL~N$M6GexKC9qy4y!HTGAev+2YL2!A!^)dL?=CO8I$2|pX=TBhjJ$_9f+5d! zI6#BJUgN*t*Xt+E5n!{jw^LD2C3yp8cWBd)xgzwDJM>rqS8&{ug`VsOiH^18a z?0_SySnlQfW|me_Oci*_lX?EI2F8}8B;6bUGpZ{{k_;OgGausgX*KD+cSMcF!J6R zs}l(Nqsao=)BdYp9v)SlYJL=P1A$v?r0a;QE*6w|UJz3;0g?gv zx*MYmLNxq-(`*O~xJz5jN|pWhoy+!LX!-yc0^fh$xoCs|VL7-H@us_4^+RqgbLmc3 zw#HgoKZ@?!sh{9A+&)x(aRpe;mmM8x&Lm4irp#MFSYy*EpK1$JJHc-{o}9czaBjbt zGINtVPHmMQ1T$^27?0HH8(WLTDxQBFunqWcap#f8_nJn4dSRa`m(TUq{S;uQcxEMO zq!k%|R-7KZ2ZEuvMG=mKv#KjlnJILC%LM`IgBg>efn1^NeVDJyUB`rIfL^TVp$IPK zSI9DjzAmy=FNpzL{ut(l-?PZJpN-je87j@TfCRU6Prj~fgBbL+0(v3qXDM&)aUUhz zG$Q-nQM4mtzAMxBtZQ0Py(aJG>0=-AWDkjkDR~iQ9sbMuF+MIuYv00BdmL*Sn1a6? zZ6{k|!l04TXlJSaX!A>T%g~yl#V4}U9R=)n4AgIW6lqcmfP2(628v;G#{uK%~N}9iaB#}whx<|3EJO1V=vD75t za4rs1{B$GGUSR(Qzy6r$`V6VAL{vk~>_Ud8Ox5TtT+ViUJrvi$J)3=BsXmbMbiL-( zKBEbBGf(c5n8wMx54X-{cs(1hBkh$%1e%Zyn@y3eLaxM(r~KT4V2%L168OHS)3J0g zy#3MJWh#M^%Q;%idF|KYct#CdHBSabUgt!rvp21?rt!2_Y^st_7w&UbDnFexj^PkRwg3BeY!@hz+q4ug9(x$pUB z;2D~zIDNlr`(<#umjr)UoZqlGNq)R}*XqvN=0#m@sZWct>P;g{jSkkxb^w+-RWLU` zmP8nicl;jyPB5OED}kw-2JsgqzT<;(3aTgYwg6vPOIH1a{wwLueY11VfkdjJiUcn4 z5Bz*CU?`kmeLdM$)~#yzY4W8%EU5vLCsY?-ZG21bw--2xs0SO(F;Pj2$-bd-9VfJz8&vjSE$C#wVzIV`a=&a zerZWm?JNiI@Iy?V^A*@zwXv3pHm!BHM`9#Hv7*#6(aGsfR>hge6AgRn86?*Clc8DJ3Hgu-&cO6t+g2e(9mZeOa-Wo9|O>Uw8# zNd{L3c?V$ji}1xkTXU)1NFtLxz2AWa?E%B;)IFrkftuF4l*7&3zhX;op#0_S+QE-ilkV=;zjumtQJ4htB=7T)6tv1h|&D2o1nRfXiANi== zyaj3PkBeoRQty}b1dRdQNI8mq-GCccfoI{JpJy&Xj}32CYLW)ODrzNYA!qLtdMXTJ ze!%<;iv$|H=Dk4Oj@L4RkOk`&?8!Qf+e>(5m}F$(f#JMe=U&>UkyiUMx~)SVBrASv z->>}qRFJB4?eGE3ZBIl*>x;DTq3e0j;0TU=3?UQ%W-Es@rVt0)&J$gHVZfC;T;tOJ z23BQH@R+#*QdnQmQN#gs6?7T$)iS|egAM%v&h1dmtlV;#Nc8(wR`}^0XQu*0HT-9g zN+`_AKM-k%BE-RIPSBnSRk8>Lcj}bG4($TrV-eNh z&kDY(CXN^7ZX)(#jo&f0!g=-=;E=q+SDg7g+ylq+og8dl;|(5}l45KJV!bKC!R8 z*MD*{;aSm|rHGgOff_X3JH-ExiG^kA`GBcKMg)GJ7lB_mPZ@2n5N{f=bo#`94#pIB zA+sSL?hPb30NY-egjWZnreYIws6%a%Pw~>*-L~_aN#cVTuP=EV`M+uOVkR8Y#T88) z0v}VZ)m8>FU;6v@!ZO^0I9-ei8*FhAgf;?il1GJjigtb)m?cNOAQ$zY3+SD9+UzJA zbH1(+xAa`6#$m8Sg4uvh{L#zP1E}?$%bqoIS{IKPQc@sh$$)7>wv7(7x#XS%osJE= z*)Z>Oh9PKQdLghJfxEuvQL+%qDBF&(s=5hMVD}}Lcq?A<`w;B!2OS;YJqj6et|jKlr450SUtLc6I#@xkEH#VXRc}Vc?b3?<)=4K9~HDhy|mxeKQxVO#*+r z4G7LW`~KlbLc-WYJlPf<$pCSbYh!@qDi4dO-ja~VHx8y8$)7vLaF0sSq!U&ax{_-M zR9za*>fYqJIHSb?x_rbsRKHvW{B#@~p7ol6pMG3SIfNRxrSBT*Ko5H5+Nszn;@zIv zwdT~A<^H|xeu#4VGq%zC0D#U5?uGxZ%WLOI2(o%}+QZ$LwSWi)Z@{sHYW2_4OhXQi zC;3B(-1{vdg8;gB-40+j00~2~DQiXEG-x{yYkyyy9Zz5%WKS3uOcI09jB^JXFI);7 zl#}ljWI*p-hJq2DfpU6^IK6`FvF>j$4hHjJ9d~WS1NjT@1&5Cb(MVv-&fQ)lh^g{D z7}ZE@=;#|Cr`CJ@@bOR+)aZjYRb){iP*2Xe_%L@KhoTbb#Gr=V9pBpuegWRBgTqy@ z?up~9AWxEYQn9)`6Ie!2fsn4}u*jQFlve_Z>-RN`la(FG2%rqn`Bwh5Zf5ij_j7K! zv`pa|Tlzl`nHL83L+s;QV;i2pW-sYeG<}Bvc*r?CfZ&cCXI8z&nMDKS1dwqn-E>_H zBDUzj?)VTx-tE)QIkz8x3Q9DqF%7tKncMb-6>GK@Dsc6o++M0as28|bTNsq`w27Q@ zv1K9E!+5T@I{hFjBqbBV)_@gjySp23@16b?)_eFiBtjIP7hq2@pO4i+?0j((^l#j|yTjVr%b!2ULp&b0hvHa-xbM7cl3 z4T>HS->k|mLITz6hx`O4kiNo49+mFJ_G~S2bar;a)NcL4GZ(r`>aoaz#}78njUiHo zBTTD0a;k&aB|1`o`S^wMI$J_laa{S}kcne`mOr8Y(Dqr&H+7l5?d<< zOVB}|sdJY+$|_GvlFdI!^ImM=h501eg$a2oYru7KT*)bGT;xue0^v->!m- z1kT-)StXI5m>r2>|5EQp>U23h$nl|Vc*hw1;2Vg`52ktt#|X97@=325iCS$B4;}Y3LlLu*{%k<0%1` zb7Sx3tHTZa*um40i9L=Js-~kGv#POse$y@sJ~wwx$6Bnd(beNlpA&hl*!P*L*}*B` z_2p~sORIsr_d@`%_BF4k9I0C=_XuRXwDpCkv$n4zS?1#QrX-5+pak|ihc!o59*`i7 zOJGegU^kQmw&4%cD^1({NgV410dN0l#R7r-G+5|Gd2UeABohP7C=hX#KvHbx=wYv= zVnFVtl8iaD$a0*LIe#V4ht

QZL9uru|TbW3!yA>Fs|MekTjR{sh3l?6y(q-V!Rj zZ8Ar?+<1UOD+`9`kbSLrBv@ogVXY5})s_-u?-?p$nYXtP9MG z->06)XUJ&;b>;<1OG-XzY!yZzK|7y>8FZ2tFU``&Ql*nxH#7}~H>`@ni%P&Q-L<*W12u0I9 zQ+(-i=~CZureOM?`aMk_&_4O@NKv0}UwOzeFaqDS0#3)PJH))hLW(Ab(hF;w19U|~ zxs~NbU?NbO*?L5)**kO7HAvxp9N>}Zg)#n%wj`%R>+)$cHQ+!`(Vo5gOQLN7I>H`3 zKV(*w=9~tB@)$fGC0vt3&MR7tI{^vd1d>M4b5YWLw=w7QdjykTQ5C&%*vs?7Dhs@kYYDtisUj z`Lx2~_gL_<;o+bN@u}im$LPn8W&!DJ+wcArNQO{cs4;ffdAGXO9evU7L`I*pgPbof z$GoiQNyL>%gt%f&AT#+r)!u4ZmPhwg@tg@{<8Ei5Lth_( z1(ut*QI^ob_;;tNBKm68=jRKT2A(&LM{k$a$~FdMPO17r1}kA$sIuiZ&tl`8EY5p? zzcmvDqaoClp0ec`-Gr0AOn)vF0U?9cF<=ngQ z?tF`(Ydx5;6um74a0$S4#6)p7(Z2ar{HRYTMjs+a8tiV68u9B5*!c12W&PXerZF-D z0^&*z(gwks6e}6y+(%6MR?k7)p`yR7SiMPaHAvZ~U1$(j3uvE#H1lVr0~Z~97{tFY zKc>;VmOqjXV%6SoWGPF}Fn48)%{dqM`S5a4Op z;eW;2vPPU*EHI5w4qjZQ_2*N1B;3q)7cvKZUjdu0Q!u3|NP8 z5H-WCiWTSX{-Ee?H*Uht{j`|FFh09>NZ!kq!*CcRdCQw~w-E z)blw)*p+-Qk0^tu$7pnJex2>TFxuoUr8L zEioav$vll)A~wu7k6_ck`}p8DQdhXn2*TE9YmZas;nD6#mdBqF=I_RQtspQi34)hS z|7W}vt+}{KdU(UFS;R$aw;6Fi0Od4`Ov)?ZQiij>Sg0FW1{O_mU;ZnnM-T7K-#-LY zAV{NW3%K0EXbNq=O4E4JuqKD$IJoG*EWb<5qQ;8Qls%y_UJ}h31IDZ}r@asA{VTC; zM{8ZiTQ*)rK3L!VK>^C>ZbsF#%umd4V>&7h0#-K6Fr|)u+z;8F8AAmIzN4O@dDse9 zT$H)->Q>Y#J-6wrvVUx5GJiSK9)q*BOtvWR=VQ9wy?D_`-u;a+o%}@1%TH(5sgADJ z#ICQ^9(z>Xudy}Jy!O5m1lHgBPlK_x7kDc?NIqjs9}+FwNYA3S46^(YxP_k3h*Mdw z>E6*1qn7MA+k9R5qQawtgB%C<*Tm*^F9iXGQ59m`kSFlY@0x5R0g`kSa%3;m))ftx8iFNL&h1}`k7x+|Edp>F;xK8WH#PUjB zKPG3(>&H?Hel6&1ma*5)o+ayN0|aBoq#jOkzBnKVEX|IOCU#kqgv}oM?2_ zXQj1&lm{S>cwcEJ+mnRWtocuh{HwR#&c=r@^j7oiYUBZR9}eBV(7>|<*CG9&{=IXJ z)@9Y<%ij$Zx)(Gm0&EmsFI-xk!~_imiP!JYGJ3O|Z-b?G%l%A>>}v}%bq?#shDj>P zj^8ib&-ktQHGI?ImJ|*3PWAvZNhh=XCw40vG#% z=C%;T2>%`r4n`~x2eGxzm)+G!wCA2em>)L`&jm3EgP_pe(RmD^`6Qlf7Tn5cY% z-SYb0m`nC(Z8J3RxUV5o)c$KvMF*mIj^2C~VVv0t^xw~b1?^4d4tJ#F;CYT#XFb?F zBy%n3)nM*jpIi$F#p*9UoRHK>Sz5^r&M)DtyQA0sdWdj_ptGeSZP(GPKm5;C4(UJB zFn;uN&<}s!L2qaZ+@d07*$ece`l5K0bU)csetD6uiVjIeEU;{dIFY96p4rOvo$dw0 z8=9nBrPKZ~U%Ie?R&4YK=;~D@w=k6i!$_c^?PwXOJQ~;Y+A1`9T-ya%^oFA%{jhZ4;ud@xy@ywkNnDv11aH+;qoNR&$wb;4Y6G8;O(Oz)$0nULwt;2k~=cs(NXw+AaJlPUnw(YXm zDOAv5ZdHa>D@(!nbdgz(sslH8VY35G?%!L838t+tV>55T-7rECN|EUan`j%t?zUbsgB)#j%B6cwDVGYAi3G-w$D*9+<@8TQ z#g>My*>ei4=RM;9#MT+2=ys2|5T)c#CEq>Q!Z>0DjN!@}bhKN#%uWzbG49iTV8KAi z$bGb&{DAvage+TECtpQc*Il>4yMsdp zf|%*7!6Qt*mbiGpo~S7_AgQ*tSnkDG1k0*$`ABy=M0vVy(q23b923r8?`GGOqCX8y z`PW|k(qm$sA_|0uhgYnBiYCx(opN_{e6^G(*0$t)O;l32?ZL`*xoUpKTC=fI2+WJV zkPmkeY)hiRFeSi})d{pCyN^CVj3;^XDvPAjAkj~N16sI~c#+C@5J$=3cSTn2yW{A6 z?ZMazlb3VGV#Jo^sG^~Pw;O|`P079wB*6=o$BTzr1xMa&wxC-0p-W!4J*Bzp;MkI* zPtJ-v?lpG^Oc%Gy33OYlXpwak%Q%B!_<*Qh#A7yBbSK8koi;bE5 z=vIzT17z;(018x#S)QNAy%X23Ob1-2wHW|@z*T6H!seRkCO6qC@cV-4VX?m1wW_&h zj&T*bW_{zw{dc}AAUQY7z#{&uSL!rjp3rs_8Y2i1?f1e6_zm$PT>qtRMfhZ9W=Dwv10Jmz$X6VaPD?z8JO&oyPex17f`(D$U zhqF46sK8Aq?>!ITb=O)sp(733sYw7yJuXro%_Kb3dYgm2?Z}O7^$y$zhBidG;J;@O zsw5%|r=UP~HLWW#9$*Y5+x{+XT|s<&CDv!+*MM19z}Ol;7}bW8UWY=b2sb;6OZ)YJFT-(R2$Ly3^W!Vo9+8F z?#}e4AVBzCPPGweP*jZvZCz>G`P~V@E6Z6M&HDtlC-$vW#RW2fQqG0-UIZN+7YcQx z4gk=cH?Hac%)b1>ThYnUP~-U}U_27ZKN~Df-in*kW6C+FP}_KMzuq-(Z+aX^va8^R z>@Brz&&d6OO;Eu0&iJ1C?r)F1!-&Taa#zSEO^|#)t||g20Fr`4 zVqJmoMQaG*wuWG9YwuxWatPr{MHdA_Emgf(-VnOU0W=LIhR4}H=8#KlT_l!muVKv! z!E1*hAsk834LfH3tf?PK*_*FUy32VR0w=XyhwXEYcDf$?tQ0C40v*_Q`3F2PD)O%8 z&}Fd!s_;Doc!i--HS9l)*Fb{i+*j9is)j}B%0El9;SNOi4JDfviBOYaUM?<)ypY!q z$;bgfbuoU{jzGB8e+|0Zcg8|_+Q9W>L$lC(&p}QgR;gAwDyr5z!u1h(dYM6v7y{Gu z4(E%(zXEL;cBH`i$^j9-AJ9?(kKh4@GAkRd3W-&NsA8}!^X_$q9tLo(z*NUIl+$qk z`$Wpa!g<;dRLX|t%s3VJeeqkYTw95R!B28DAxQ=KgnwURufD~>sX3~33P^m6>l6@x zUKZphp$GWDxDgz{fj$gRAJh>L(3=q%K?m(r6w3W2@ZJ$3GvNT#uCQhtKyKR0e+!o8 zb`?&W-3{5j)%d@Mefly07TY5g^*wT`#K23A80%6XHoyf3g#~-kx6DC6J$)JvJ(#Q zPkFn@*(1I8X!5fb4Eaz0z4ib7m^?}cuKTB=BWz#cFh3gKS0Eu=z#fOYMky>8fpDiI z@OtnhK}NO9210N9cdo)bg3W?(XIEZmquAf@z&ZT;+K=4Ie_xMTk*b4@nYHl8A$0z< zmq<#lP)1)#A3+aVFwD|<%FynBit#RTjG)71CIzY09je`jTn`jAatJ&S6HTxo=mFFO z**I|v$hC*_`ba?@;CsuTO$qkojTiavJ!U1pll=4lbrk=4i8QR zoZTf=?jrl~+tP;6E(`X(E`j|Q;rtD}5MLt^Y42}*hAm?Vg6ER1=M_%%z{TGCR+Wiw zL9VJRU+l^6Tu4|X&&Dgke-|BToI<=9kWYatTQLX8aL5-zbB0G;6q2u@36llnHF5}6 zq1*j06R?KQv8bw{uY zCN-r^IrKvMf&75sEnpWCoD1Sd!Z&>S@O3Lc zc4UNp{6l{9seoaiC5S%=yBqSPy&q@r(_8*>E}c<0E4&=S!l1w<3>jB{DEks)&}!Cj zW5%;v{vw%#=Bh?Mwh)LErjh+EHc}@PzO10;AIWr%hFTX1_>R1zF+P;@2-to)H6U84 zvgYHM?{SoeBLT+fN)7hk^$UgTmv{IP=UhilSeewPXl?eip4`K?m6)ji-U+fCGLb3{ zIRqr;HYcBwi7n}rUcQ4c?L=WnA#- zmvDpp1RLKGLyq%?Ruz|O&#+L1B*Qt?gh-P)F8u#)ZCM;Ryngz5`(jgTcZHNu(Njmk z0&D3!Yw6gxo333F7T+sgVrLIO4bSnvn~zXfzejw+nzVOv&fYoaD5q;MUa+{ZC)(%Hp_ zA(~rcMUYiB9+L-Cxo(=+ODW@0I!EN3kAzI6482wzX5WQ$z}`6@U5yUL<9D$_rd<(FB@mg2*i zy1SW}*2ldWhQ#2*m&OLl%8=xbv+To4MnoJmq`Z5P^UAA8ED`Tp093Y-jO69Axsypb zFp44#V&ZlGzMXLz(r;m6?(*8sjY^E*nGx^y;sdnDe@TZP*eb3-iExuYT&*1SZVU$B zl)pxaSx|7Y)8Ni7)I=)exeVzcVDm2jzW=z-dB^sMQPX#L05#`y>3B%AXbPb4y$a40 zwNS_2XKwDdl4MU$ND?Nd@HM7t!;=rszBl>(3HW*DS`%=mp^S%ve~bP37|+D(OUVi? z=|)+oB>N~pJCAhwcpmpSZa0d_i-_H5c@c6$lfakReC;o(6!H-9EGAiMHko=1i;Q8p znOiy%F!xdy8^ZvF6}g0>ZqRx4(vdlJ327V4*R!VZ{c;8~!1JmS%I#N~k*8s&{HjMIqZzRRL2W%=nDu(oJ8hY;8ZryVe$fRzC1CjD zdW8a^k{$0jh`2*>8pxcEB9tSKY+f=qH@7zQx+T1ag-Dk`9fDZCfkx+GdITNw2JJt{ zjIH(|bfO&PVGRp`?w@Ny?E}EW))LLLRVtj(P3KF`Z~rjRe2Jue1b?Y>&uHXAk59E~ z5%&K52`@~Fjill;c-o+Q&nUfb;~wx$i74!Cf&CgDP@D0|M8k7x3qnGu+)kZTlW%6! z&(nVDmacjA!tu{Sv*6Eof>t}UGu-E9>TP(Mw1Ka(BMR&GRX(ahED8RQ~`P%5GMh$2}xSH8VF~b_Z|U^;In%i z>7pRxV0H}@UUly9XR9>e)6huz9dfT6A=*v9;ut%FNssZBe{V$gg~%JjS#!(SFvMIp zp0fi?GMonVx$mj01>oQCh{hdxGpc&a5dLL)im<4Kh37AyUy8PAr&|z!w|&hMF--H_?Lb9?Lvlzgfz~e$VTZ26 zGfpnCSLLcl5Re0L34ub^1#dD1n+g!YR%Q)BL&mFZQc9Hb(k?d^5C{KJ|-)FF(+?YGbrv)Qe?z zhGhli7hi#IKDSmLWsPxm^(kI)nzrYE|klRDp+keA8e?kRnZICAv| zz0Q383qTbqw%itqKT~ipOj3sMGf+Ed?Z{Afc;RD5s-4 zH(bCkAk0J#iexERFbc#h=&;;_Kt7fANgx5d9zt_54k*qI>EM03?wnhISSGMo{_SMF zUShStxcnPReBgM)w6HT_U-O&g{HMIiS}OhoHRVA@t8OjhmNTjPHHKI>Mah945O}la z{U+~s@L`}BFXohVwS;r_(-yOsi__TrQ8;!lh11xJQ)N}XM;W4(Wm7=O=O9;>;F$DE z-TQ+HG>UJ{zJCp<%eLP@ky#h)xCCr(s7;?Ef`oH4eJh0=!2|}(UKSg)G`}A_xlm@k zI9FSJ`pubzH|%2IZO8P`@aC%$L=bZiPRxmO<*Wj=0-=dB>S#Rz=Z zmm`L5_wfH;YgZl*W&8C#l~$4>I~iHVu4IqIWP8wHNZC?kR~`|QEqO>;LX;&>GKdgr zEMrM2%Y>&88iPV&EZLV~<~_Iiecpe6pU?aHqlWvM>%Nw=e9yVAb56~H-8;@+9)8kK zVPi|doihAXq ze&BR>`!Za=J{?o@N1AJof$ovSBxOn@eH)fJQUI2-ez#SPYKkx9!C||4FYUma20S~& zy(%5s2ge-X81xX}=ie)**KJ%b09R1lgB11Rr4J2^2aCsSQ#g<^S|`!UpM2tOIxabv zyIBb}>AmHuz*@f42tNpr@K>QGXVU%_A1%M#Uvhaox;O25qqcG`f@BU=(W`X3!h%Vn z-neys^Glxl=d7GtnbK=i@jW+Nd`w=oEL(?#qWJB$I{jGn@_6{R+0({ZIc^Tc;ZFF0 z^6m?l)8d?zdVE%WG&xV{{v&)g>D2A#BL_2YEsSa4nDM}clV(QsJZr*9&nu30+Q_Fx zJaloHemFc{xMDlDVeR^IkLbpX?JKB#zJKc-*Y86q^{=r5w&%cmD|<3zKU@(Lf+}2j z@}F@Ytj9Hs92VWucQ#+EsW}T2eN|9W*=T;7iP<$Cd}INIsA=DOh;@6q>CXL0wE+M+ zNPj$ldZcCGY=zTdnsQ-LqI4R$C(Glc13w?1(M!9t#hY*e3)`=r1QmR|HB->ZqZKG! z`VF_i7oC1#P*Vztlms-FGbN1jfCLPn+-h2K{*r&6Q=!n*Aw*HcGq%Z+Hlz`ky8XS$ z-2o%5t`*=&maEIqa!Aj+2(Tj09kHfroRWE}{cMBD|CDk(x)^cF)c|g$H2m}iD5H|W z%F+;1c(cAr{;%TUGyW#AmNK+6yT8s#Lfo+voPdY2?Ahbd+A{9mOq3Xk&bv$Z1Xj|Vh9&NtZ)5{e{VRKAyQ|oCllg_7$+o9Se8*ookc5)% z@dD0i+`>6aS#WMyV>p@0&;P1rrO36TYVe2Nbj=IG;FBP#Zc+dNLcSMji26O0#7F$o z1D{9ng-i93{-rZmt3-W!9&Chx=+o%5a z(3-WJafDm1yRntKUwzo&4pFZV<&Id=?U!V*Jiqm(>96a_?x>(AeLpY~ST4SoyBTr@ zMM|b!99(V@8t7saX}+q2a#dw-Z8Q0lp%@^vKU0rVuY&=bGnOuAlo%bOv4wR}9{fA4 z-kUinw`zWeOb6|#+do$f9({G<-3e*5U!E=I;;V&RyE2|B_ask&P=yGSZ%)Qng$yBQ z(Tvoo_!0lhI#A}I1+OQPh9nh;(UAR>F$@8z2|@}Rdm09-Wt4qsP+}Doc=-1r7`KN& zQ7e8r;*e_{drZ~wlMZlojQDr>ckZ`v;)GOR@@d!%*kDdmbz{7O>O_7zE*w#0<791Y z)TLWpwwAYhx9iM=rOd_KO=@BioX<5V(KUOj=5%{(KYZK6p}O$-`lQkPZO-|mtUVU_ z7eAb?xVnR<{~YtPREIHjx5DlRn8~mL4f_yZDxO3S$fB>Ex<+C!E%VJ(?Rh#Xp?ED5 za=6cmyzlUfZg)L&-CifafjAA2S{1%GX@y$@$)Qt;+%^Zl! z>wGia((arso*0x;SoqjO;K!9U+3xE?3u{`|MLmObiFVhoy4d^MSQH)-y)S7A4}BTQ zJ0Kp+Egc3~-RNCYEvm-qKY~AHRPtbT4t(H-JbF`c;|_<|Ol(sFi5udCMJv%Zd(NEK zZ*x$rERUa#KmT=;nJT8iA6G~Z==$(-}sn&nJ+s! zI&!39&z1I4&l#i7JjFu85(`mg#}IDpO|r%PV_u!}wpGti;sL1+({0Qvqi3&GGC$1x zH5{Kn>EyE#g|!K`eUiKn+1=p4>oU%WEXz#P%>zm&b6#+25cpKKm^ zV52h_hfy%B_J+|f*|zwFC;9Fi(9-_mrW~8{sZpT7@~5n7g1NLe-F~z!c>|y7%Ue_! z3(N89{B@l6Ev^}I#m&R>2OIR59HVW81OKSnlyPG?N9NQ}Is3RFW9h=e!mb5P4!uk6 z94uOj4fOU>2D3r)Nvlk0sMa9ek$D`2swc9a8)QzGB4ZKOp-&``=3-)IZ_;U0^~cf9 zlnUoM2S*a;uxpTd=hINv>Mtl&w&KFcDEsnbaDGllxq`-?icmCFc1f1j zuFtKu1k6}wGrVpxhBip630+}zfm0z;WQ*|md%~66UL_?hq#)P~gBguuR%_qOn0+T6 z{fU~nxQoAvz1qX$*dzaJT4-rDL~pKy&gOTy-)kPJE94&b*$vzB$69y3j=)ebZF<$5 zIdWyLvOP?*>Q6~x1ld%Z>C4n>GIJr@%aD(KrY$vE_{S$(0OwzmWBWlSY^>4x)?`l5 zW2Zlr=eh4+P7RMfYJ*)82??^j5IWUHQ66Usgp;@ufqV7# z$kN+h(3C|z(s^AIjlwdor#W+3UhjeIKROhV$3I|Urh9koCx<;4Vz-R9 zRbkDSvdMepO^GT>ZatcwhkdXu&=4Y=B`*g`W@p?Sr#L3~)-45uJvU@+ zG<7&vYH#BqNjX9{?$IbA1c!UKwifi#TL6cfUNV=C&7tfRtO~is#iGX9Ku4%5A=In% zju&HnbBLh2ga2!&akyR9E;JjJy1|X5Rw#`)iTy; zo9Otf1*kDmIh&vfLfW@D)xj9ZC{rvzAC=VMgUlY^2d}NlvSoE{W6O@^VhKNV)+^B9 zO9%_giaAW3h2`o|6FhKnFlXBG51P`SNCh~#D{4udZ(gj)zW%wz;p^?QOf;i&mgyU| zYPK=fusXi^1iyq7aLH!)uRP)G?6hfE$EhY5{IuoO&SvFR(cQ~(RRKvfvmE^mYHqk7 zo|j3Ezuq{6EcMKIswPCQ$=34TJnU4p1I_aKuZ6pg8z{KXA+i|Fw_7!#dBK)f1$sH$ z?)nFeFa9Wmo3OB`eflSL8Kk8*<&3_*F&grP+S%DPjg7g0c42&lUY3zwN=i!B-?Ftp zo|8e5Z!FnSUl(k{zw-W>cuY7!jKD=((r^~Y1=sdNK>w*O&#j9XCOIXvD|^pDX22Y& z99c4h3tpvoD)QWyE@e~LWY`}8nOGDMASj-?OBK|~2l@9cVhan`-$KLJ;p`~G>e||S zeLJN?l3R0iAg|B>?+ZaaD1{6s#d*3r&={<~*Y^02ZZB=zlVmK*3kz!w9NmSwZXdXS zCKS*#-j7_ncjhU4urQ|Hq!975STHqluT~y=Qvzl!aXo{yOL+FD9}Doa)RkS(r*H}M z$-~1#?L`yhceH+e@57Nyy#!KkVId|fadcw?R0%G{g>PZ4me!Co{kT+?Tvb)|<4tCs zyR(*X^SgJ55^#gQmmvDFOS#OU^wP0M`d!Msw+=(^!x#DW6D?9*piNzwV8LS1$@LH` zSZUSNgm#lCzaL2!lW*e7WlLF)Lws3mPTz(3BeHa#xF4of$?w#s((`w`AI__h$BsE)dG@hHuw%5EDvpU>uYxbIaCAD|O6mKX z3m6(ITRJ@aNSwxMF2dgSd8uGi$1IoR`$H0_4zktG;$d0s_-#I#=i zB-h)@?jk}cp#eqULo6RR`EY+QHHm<_n*Clxn-g8c>A2?Y$nctv+)DX@BU~mmzW0gj z3*|@_bRONCI$*b)C!HE9m7Fj%eZ8DyY5v9MnIPqb1flyxdi#3s4)~^)R^%QF3uF8R z;c+4VFT^_HakCPYR#zDVH)$A+-30QyFI?XVz(pOTkZj|L=E$H{>RiI>q&8j#e zZNDHhzS;}C2|or0bCLf9jeZLYU~M4$`~P1LC%h{9z1Ac13kwTlVxTCr;Upy~rsS4Jf&pvmhObuV;{^_!5;g%vex+f?Wt#1kSz zYWCScgYd5!6fczw#_%(Ztts>0eV3ziod$9ZXvjsIwp0_g8+nzYfOKcg2VsPyGvh%B z0a5u?--C40Q9LW0&*6~GQ?#u_k3_e^5wekm%`DJeG7NH?+`?q%FXva>4c$6&00m%E9xi8p>d>g7QcL%?HiJ zK%K$Qe^g2mAP?XvL(ty;?L&Ve+@#xVwEV1WYG-ecKmqWWF&2xB(C=V5KnzR8qT0&u z!DK+0JmIir2*VaE1yi%*`-GD%COI7G+Vp0CtQhQ+5VF+yK8oCEG=Vqn3>Jq29aB&! zedg)M#skB)J=cXs=Bn`ZcJh~$`QP2ps!v`a$-shqUkD0YO(&Ddya~++7nINhwkH7; z0uT%Y?5njCdNu2JlC}Wd0>lO@W?>9k1!8V6*nxB2bIP#Rb2kKOOTh}VZs`(09x9A~ z$9|4q(|HPihHZs9mykjR2Fzdsw;rM-k>z1~16}&X9Hh92uhAGu$yZ+4$#ckGcx0B} zn@VCcVgwPrDcO_A-tv}1^VbJJG#jDqNf8RM-^_w@xiBAbwTnxo7j29u?u$10^eq$& zUs2_)nW!Rq`)1x1D;Y~HmnCT{s@ACxlz%Ahfi6H$FBa*o3#&4Z%FD~6P&L}JqzH^{ zYVTl?Hw6}~%uc>^$=f|$0w$W7l?CS;INY^>fWuEe{y2ZOi|B2I>)FH?Fv(kT6x4j= zxFH$?0v3nsUC9lLH-HRsoD^ZD5JVZn>lDvr{2>$TTyeg5{cWe0cD66d`4DGDj+6@M z(lCf%gcE(JA14(%vld)82-Arx?xnT+Yf$x@Ts5+M;F)WkgKt~;0Q?TZrBp8V+m{9E zY_Tl49S)Knk9!W(5gAIrhjiiiGW;f~x4hqh16fz<5owG4t#Pii&d*xCRA}jKc`43t zfzVC4hB%5SCbN7z`C41~RO;uc<@1l)UF|U@B~vZqiKk9x<BmlmVv>~15R z+;R}2NC|qu zKyWmuA<#140qY$kIYU|KtQF_iPMM@@oBll_V*%O&w3!cIhkeyEX%Gi7 zF`6O1(EsonuN8uWU}RP}ZqqI;VnS<03%4YMF2<>viv2<_{8ot;T$sw~YsSxt_^bDU z&6`tMD>?feQ9Nv2N79y?0`9cm)DD|E+%mNKUUgk>4oPmi3u@mmex6V-Xr&0+;JBey zj??z@$SW7wRSfUMr~$rMyUA!Fs6?MmKP!d?KcUkp_&i{Fnz0jboB;`}x4uPQlvlL=NNGX_8dhqD=9zHNX0Eje?xKUIr zj6W)yf;a;p6ZWH+d=e|%6D>|8ho|RN6Um6=ysE(fLD@-<%>NGYoqDx!`w;ei1pEcy z&-zA!l(UTt$-uA3eOiDgNdC*d?8%L(D>`>MLVoDYL5;b0JPoVw7|KXr+jdgL#-6m` zq%c@F!+r1y=my56o%s?N;6O7M=?6MSC33Fake>R=BLnDS}JfR*_%_PxEQ zll$sdKvjabk~~(f!;XxyK-W4qHw6qw1H_cVAV^2l+@@WlQZGDiaVTi?1!hke>bwCs}&Fg7&iHNR5~Rim7N;k z`^)a+wMtCFKODF&ZiwXqIs#kWv}-Yc1O%%@vQZeqscP3E_gVm0seF7?{W*w49d0y1 z0G|&}Sn@qV3_~s4jP@CCbyF-CnD)6T%c-l~*NgcPfVUGQ8?XwPl$N-N+?4&=@z)BZ zA-SHWr$4gOT8@!@j2p`Q_C@-w5%7MH1&A@xtgnA_7C&^iG-TQne+fyX@r^#jWDNF+ z0_rX-q`0aRxYE+nR*1ETc&l=Z+-)&gqkRrjPQrJXl0zYXOcvuT^sz>EoZ%4aRyM7q z`t7&cU$;fN>i}*9KM}ow)In_p)^vl(h-=zX$sWECe_WR+xnhm1safZd;9M4OSq+vB{^~99v1BL4I1X(gHx)QKNG(2OGbOMtB%LO*R zFPo}Q*AwxRs>PrNB`De1^9V-7bGsZatSng!-pgWyG1D(O?R4vZ0Nd3_ AmjD0& literal 0 HcmV?d00001 From c44a6d203efd2ae21836aecbd092dadb6a468bd1 Mon Sep 17 00:00:00 2001 From: lukelowry Date: Tue, 2 Jun 2026 16:53:18 -0500 Subject: [PATCH 2/2] docs: complete ESST4B README [skip ci] --- .../PhasorDynamics/Exciter/ESST4B/README.md | 198 ++++++++++++++++-- 1 file changed, 186 insertions(+), 12 deletions(-) diff --git a/GridKit/Model/PhasorDynamics/Exciter/ESST4B/README.md b/GridKit/Model/PhasorDynamics/Exciter/ESST4B/README.md index bcb0d24cc..fa77d9030 100644 --- a/GridKit/Model/PhasorDynamics/Exciter/ESST4B/README.md +++ b/GridKit/Model/PhasorDynamics/Exciter/ESST4B/README.md @@ -1,4 +1,18 @@ -# **Exciter Model (ESST4B)** +# **IEEE Type ST4B Potential- or Compound-Source Controlled-Rectifier Exciter Model (ESST4B)** + +ESST4B is a static excitation system with compensated-voltage sensing, an outer +proportional/integral voltage regulator, a lag block, an inner +proportional/integral regulator with exciter-output feedback, low-value +over-excitation limiter gating, and potential- or compound-source rectifier +scaling. + +Notes: +- Internal voltage and current signals are on model base unless otherwise stated. +- The rectifier loading block $F_{\mathrm{ex}}=f(I_N)$ is the source + controlled-rectifier loading curve from Fig. 1; it is not a CommonMath helper. +- The potential-source calculation uses explicit real and imaginary terminal + voltage/current components; the diagram's complex expression is not used as + model-equation notation below. ## Block Diagram @@ -7,41 +21,108 @@ Standard model of the ESST4B Exciter.

- Figure 1: Exciter ESST4B model. + Figure 1: Exciter ESST4B model. Figure courtesy of [PowerWorld](https://www.powerworld.com/WebHelp/)
## Model Parameters -Symbol | Units | Description | Typical Value | Note --------|-------|-------------|---------------|----- +Symbol | Units | JSON | Description | Typical Value | Note +------------------------------------|--------|-------------|---------------------------------------------------------|---------------|------ +$T_R$ | [sec] | `Tr` | Compensated-voltage transducer time constant | 0.0 | Block name: `Tr`; if zero, sensed voltage is algebraic +$K_{\mathrm{pr}}$ | [p.u.] | `Kpr` | Outer regulator proportional gain | 1.0 | Block name: `KPR` +$K_{\mathrm{ir}}$ | [p.u./s] | `Kir` | Outer regulator integral gain | 0.0 | Block name: `KIR` +$V_R^{\max}$ | [p.u.] | `Vrmax` | Maximum outer regulator output | 1.0 | Block name: `VRMAX` +$V_R^{\min}$ | [p.u.] | `Vrmin` | Minimum outer regulator output | -1.0 | Block name: `VRMIN` +$T_A$ | [sec] | `Ta` | Regulator lag time constant | 0.0 | Block name: `Ta`; if zero, $V_A$ is algebraic +$K_{\mathrm{pm}}$ | [p.u.] | `Kpm` | Inner regulator proportional gain | 1.0 | Block name: `KPM` +$K_{\mathrm{im}}$ | [p.u./s] | `Kim` | Inner regulator integral gain | 0.0 | Block name: `KIM` +$V_M^{\max}$ | [p.u.] | `VmMax` | Maximum inner regulator output | 1.0 | Block name: `VMMAX` +$V_M^{\min}$ | [p.u.] | `VmMin` | Minimum inner regulator output | 0.0 | Block name: `VMMIN` +$K_G$ | [p.u.] | `Kg` | Exciter-output feedback gain into inner regulator | 0.0 | Block name: `KG` +$K_P$ | [p.u.] | `Kp` | Potential-source voltage coefficient magnitude | 0.0 | Source label: `KP` +$K_I$ | [p.u.] | `Ki` | Potential-source current coefficient | 0.0 | Source label: `KI` +$V_B^{\max}$ | [p.u.] | `VbMax` | Maximum rectifier source multiplier | 999.0 | Block name: `VBMAX` +$K_C$ | [p.u.] | `Kc` | Rectifier loading current coefficient | 0.0 | Block name: `Kc`; forms $I_N$ +$X_L$ | [p.u.] | `Xl` | Source reactance term in potential-source calculation | 0.0 | Source label: `XL` +$\theta_P$ | [deg] | `ThetaPDeg` | Potential-source coefficient angle | 0.0 | Source label: `thetaP`; forms $K_P^{\mathrm{r}}$ and $K_P^{\mathrm{i}}$ +$V_G^{\max}$ | [p.u.] | `VgMax` | Maximum exciter-output feedback signal | 999.0 | Block name: `VGMAX`; ceiling on $K_G E_{\mathrm{fd}}$ + +### Parameter Validation + +Invalid ESST4B parameter sets are rejected by the following checks. + +```math +\begin{aligned} + &T_R \ge 0,\quad T_A \ge 0 \\ + &V_R^{\min} \le V_R^{\max},\quad V_M^{\min} \le V_M^{\max} \\ + &V_B^{\max} > 0,\quad V_G^{\max} \ge 0 +\end{aligned} +``` ### Model Derived Parameters +The potential-source coefficient is resolved into real scalar components: + +```math +\begin{aligned} + K_P^{\mathrm{r}} &= K_P\cos\theta_P \\ + K_P^{\mathrm{i}} &= K_P\sin\theta_P +\end{aligned} +``` + +Here $\theta_P$ is converted from degrees before evaluating the trigonometric +functions. + ## Model Variables ### Internal Variables #### Differential -Symbol | Units | Description | Note --------|-------|-------------|----- +Symbol | Units | Description | Note +------------------------------------|--------|---------------------------------------------------------|------ +$V_M$ | [p.u.] | Inner regulator output | State 1 in Fig. 1 +$V_C$ | [p.u.] | Sensed compensated voltage | State 2 in Fig. 1; source label: `Sensed Vt`; algebraic when $T_R=0$ +$V_A$ | [p.u.] | Lagged outer-regulator output | State 3 in Fig. 1; algebraic when $T_A=0$ +$x_R$ | [p.u.] | Outer regulator integral state | State 4 in Fig. 1; source label: `VR` #### Algebraic -Symbol | Units | Description | Note --------|-------|-------------|----- +Symbol | Units | Description | Note +------------------------------------|--------|---------------------------------------------------------|------ +$e_V$ | [p.u.] | Voltage-error signal into outer regulator | Summing junction after sensed voltage +$V_R$ | [p.u.] | Limited outer regulator output | Limited by $V_R^{\min}$ and $V_R^{\max}$ +$V_G$ | [p.u.] | Limited exciter-output feedback signal | $K_G E_{\mathrm{fd}}$ limited by $V_G^{\max}$ +$e_M$ | [p.u.] | Inner regulator error | $V_A$ minus $V_G$ +$V_{\mathrm{lv}}$ | [p.u.] | Low-value gate output | Lesser of $V_M$ and $V_{\mathrm{oel}}$ +$V_{\mathrm{src}}^{\mathrm{r}}$ | [p.u.] | Real component of the potential-source expression | From terminal voltage/current components +$V_{\mathrm{src}}^{\mathrm{i}}$ | [p.u.] | Imaginary component of the potential-source expression | From terminal voltage/current components +$V_E$ | [p.u.] | Potential- or compound-source voltage magnitude | Nonnegative source magnitude +$I_N$ | [p.u.] | Normalized exciter loading current | Source label: `IN`; satisfies $V_E I_N=K_C I_{\mathrm{fd}}$ +$F_{\mathrm{ex}}$ | [p.u.] | Rectifier loading factor | Source label: `FEX`; source curve $F_{\mathrm{ex}}=f(I_N)$ +$V_B$ | [p.u.] | Rectifier source multiplier | Limited by $V_B^{\max}$ +$E_{\mathrm{fd}}$ | [p.u.] | Field-voltage output | Product of low-value gate and $V_B$ ### External Variables #### Differential -Symbol | Units | Description | Note --------|-------|-------------|----- +None. #### Algebraic -Symbol | Units | Description | Note --------|-------|-------------|----- +Symbol | Units | Description | Note +------------------------------------|--------|---------------------------------------------------------|------ +$V_{\mathrm{comp}}$ | [p.u.] | Compensated voltage input | Source label: `VCOMP` +$V_{\mathrm{ref}}$ | [p.u.] | Voltage-control reference | Source label: `VREF` +$V_{\mathrm{uel}}$ | [p.u.] | Under-excitation limiter input | Source label: `VUEL`; optional, defaults to zero +$V_S$ | [p.u.] | Stabilizer input signal | Source label: `VS`; optional, defaults to zero +$V_{\mathrm{oel}}$ | [p.u.] | Over-excitation limiter input | Source label: `VOEL`; optional, defaults to a high value when omitted +$V_{\mathrm{r}}$ | [p.u.] | Terminal-voltage real component | Source label: `VT` +$V_{\mathrm{i}}$ | [p.u.] | Terminal-voltage imaginary component | Source label: `VT` +$I_{\mathrm{r}}$ | [p.u.] | Terminal-current real component | Source label: `IT` +$I_{\mathrm{i}}$ | [p.u.] | Terminal-current imaginary component | Source label: `IT` +$I_{\mathrm{fd}}$ | [p.u.] | Machine field current | Source label: `IFD` ## Model Equations @@ -49,21 +130,114 @@ Symbol | Units | Description | Note ```math \begin{aligned} + 0 &= -T_R\dot V_C - V_C + V_{\mathrm{comp}} \\ + 0 &= + -\dot x_R + + \text{antiwindup}\!\left( + V_R, + K_{\mathrm{ir}}e_V, + V_R^{\min}, + V_R^{\max} + \right) \\ + 0 &= -T_A\dot V_A - V_A + V_R \\ + 0 &= + -\dot V_M + + \text{antiwindup}\!\left( + V_M, + K_{\mathrm{im}}e_M, + V_M^{\min}, + V_M^{\max} + \right) \end{aligned} ``` +CommonMath defines the [Anti-Windup](../../../../CommonMath.md#anti-windup-indicator) +target and smooth approximation. + ### Algebraic Equations ```math \begin{aligned} + 0 &= -e_V + V_{\mathrm{ref}} + V_{\mathrm{uel}} + V_S - V_C \\ + 0 &= -V_R + \text{clamp}(K_{\mathrm{pr}}e_V + x_R, V_R^{\min}, V_R^{\max}) \\ + 0 &= -V_G + \text{min}(K_G E_{\mathrm{fd}}, V_G^{\max}) \\ + 0 &= -e_M + V_A - V_G \\ + 0 &= -V_{\mathrm{lv}} + \text{min}(V_M, V_{\mathrm{oel}}) \\ + 0 &= -V_{\mathrm{src}}^{\mathrm{r}} + + K_P V_{\mathrm{r}} + - X_L K_P^{\mathrm{i}} I_{\mathrm{r}} + - \left(K_I + X_L K_P^{\mathrm{r}}\right)I_{\mathrm{i}} \\ + 0 &= -V_{\mathrm{src}}^{\mathrm{i}} + + K_P V_{\mathrm{i}} + + \left(K_I + X_L K_P^{\mathrm{r}}\right)I_{\mathrm{r}} + - X_L K_P^{\mathrm{i}} I_{\mathrm{i}} \\ + 0 &= -V_E^2 + + \left(V_{\mathrm{src}}^{\mathrm{r}}\right)^2 + + \left(V_{\mathrm{src}}^{\mathrm{i}}\right)^2 \\ + 0 &= -V_E I_N + K_C I_{\mathrm{fd}} \\ + 0 &= -F_{\mathrm{ex}} + f(I_N) \\ + 0 &= -V_B + \text{min}(V_E F_{\mathrm{ex}}, V_B^{\max}) \\ + 0 &= -E_{\mathrm{fd}} + V_{\mathrm{lv}}V_B \end{aligned} ``` +CommonMath defines helper targets for [min and clamp](../../../../CommonMath.md#derived-functions). +The rectifier loading function $f(I_N)$ is the source curve shown in Fig. 1. + ## Initialization +For a standard unsaturated start, the machine initializes +$E_{\mathrm{fd},0}$ and $I_{\mathrm{fd},0}$ first. ESST4B reads those values, +sets all internal derivatives to zero, and evaluates: + ```math \begin{aligned} + V_{C,0} &= V_{\mathrm{comp},0} \\ + V_{\mathrm{src},0}^{\mathrm{r}} + &= K_P V_{\mathrm{r},0} + - X_L K_P^{\mathrm{i}} I_{\mathrm{r},0} + - \left(K_I + X_L K_P^{\mathrm{r}}\right)I_{\mathrm{i},0} \\ + V_{\mathrm{src},0}^{\mathrm{i}} + &= K_P V_{\mathrm{i},0} + + \left(K_I + X_L K_P^{\mathrm{r}}\right)I_{\mathrm{r},0} + - X_L K_P^{\mathrm{i}} I_{\mathrm{i},0} \\ + V_{E,0} &= + \sqrt{ + \left(V_{\mathrm{src},0}^{\mathrm{r}}\right)^2 + + \left(V_{\mathrm{src},0}^{\mathrm{i}}\right)^2 + } \\ + 0 &= -V_{E,0}I_{N,0} + K_C I_{\mathrm{fd},0} \\ + F_{\mathrm{ex},0} &= f(I_{N,0}) \\ + V_{B,0} &= \text{min}(V_{E,0}F_{\mathrm{ex},0}, V_B^{\max}) \\ + V_{\mathrm{lv},0} &= \dfrac{E_{\mathrm{fd},0}}{V_{B,0}} \\ + V_{M,0} &= V_{\mathrm{lv},0} \\ + V_{G,0} &= \text{min}(K_G E_{\mathrm{fd},0}, V_G^{\max}) \\ + e_{M,0} &= 0 \\ + V_{A,0} &= V_{G,0} \\ + V_{R,0} &= V_{A,0} \\ + x_{R,0} &= V_{R,0} \\ + e_{V,0} &= 0 \\ + V_{\mathrm{ref},0} &= V_{C,0} - V_{\mathrm{uel},0} - V_{S,0} \end{aligned} ``` +This closed-form start requires $V_{E,0}\ne 0$, $V_{B,0}\ne 0$, inactive +$V_R$, $V_M$, $V_G$, and $V_B$ limits, and the low-value gate selecting $V_M$. +Starts with active low-value gate limiting or saturated PI states are outside +these closed-form equations. + ## Model Outputs + +Output | Units | Description | Note +----------------|--------|-------------------------------------|------ +`efd` | [p.u.] | Field-voltage output | $E_{\mathrm{fd}}$ +`vm` | [p.u.] | Inner regulator output | $V_M$ +`vc` | [p.u.] | Sensed compensated voltage | $V_C$ +`va` | [p.u.] | Lagged outer-regulator output | $V_A$ +`vr` | [p.u.] | Outer regulator output | $V_R$ +`vg` | [p.u.] | Exciter-output feedback signal | $V_G$ +`vlv` | [p.u.] | Low-value gate output | $V_{\mathrm{lv}}$ +`ve` | [p.u.] | Potential-source voltage magnitude | $V_E$ +`vb` | [p.u.] | Rectifier source multiplier | $V_B$ +`in` | [p.u.] | Normalized exciter loading current | $I_N$ +`fex` | [p.u.] | Rectifier loading factor | $F_{\mathrm{ex}}$