From cb4e0eea01721767d9c8188e1319357b09153bd8 Mon Sep 17 00:00:00 2001 From: Thierry Zamofing Date: Fri, 1 Mar 2019 16:56:55 +0100 Subject: [PATCH] =?UTF-8?q?first=20optimized=20parameters=20with=20pole=20?= =?UTF-8?q?p=C3=BClacement:=20TODO:=20check=20for=20resonance=20compensato?= =?UTF-8?q?r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- matlab/DeltaTauOptimizer.m | 57 ++++++++---------- matlab/DeltaTauParam.m | 120 ++++++++++++++++++++++++++++--------- matlab/DeltaTauSim.slx | Bin 43327 -> 43150 bytes matlab/identifyFxFyStage.m | 10 +++- 4 files changed, 127 insertions(+), 60 deletions(-) diff --git a/matlab/DeltaTauOptimizer.m b/matlab/DeltaTauOptimizer.m index 59da7aa..93cc10a 100644 --- a/matlab/DeltaTauOptimizer.m +++ b/matlab/DeltaTauOptimizer.m @@ -9,23 +9,28 @@ function DeltaTauOptimizer() if isempty(mot) mot=identifyFxFyStage(7); end - %SIM1=[1 1; 1 2; 8 2; 9 2]; + %SIM1=[1 1; 1 2; 8 2; 9 2;9 3]; %SIM2=[1 1; 1 2; 8 2; 9 2]; - SIM1=[10 0;7 3]; - SIM1=[10 0]; - %SIM2=[9 0]; - if 1 || isempty(simData1) + SIM1=[9 1; 9 2; 9 3; 9 4]; + SIM2=[9 1; 9 2; 9 3; 9 4]; + %SIM2=[8 1; 8 2; 8 3; 8 4]; + %SIM2=[8 1; 8 2; 9 1; 9 2]; + %SIM2=[8 2; 9 2;8 3; 9 3]; + %SIM2=[8 3; 9 3;8 4; 9 4]; + %SIM2=[9 4;9 0]; + %SIM2=[8 3; 9 3]; + if isempty(simData1) close all; simData1=ExecSim(mot{1},SIM1); end - %if isempty(simData2) - % close all; - % simData2=ExecSim(mot{2},SIM2); - %end + if isempty(simData2) + close all; + simData2=ExecSim(mot{2},SIM2); + end close all; %test() bodeSim(simData1); - %bodeSim(simData2); + bodeSim(simData2); end function test() @@ -37,7 +42,15 @@ function test() %pb.C=[1 -1.3236 6.2472 -11.8555 11.3067 -5.4188 1.0440]; %pb.D=[1.0000 -6.6330 17.6945 -24.5314 18.7409 -7.5020 1.2309]; global tfs - tfz=c2d(tf(tfs),1/5000) + Ts=1/5000; + frq0=55;d0=.5; + frq1=85;d1=.5; + w0=frq0*2*pi; + w1=frq1*2*pi; + tf0=tf([w0^2],[1 2*d0*w0 w0^2 ]) + tf1=tf([1 2*d1*w1 w1^2 ],[w1^2]) + tfs=tf0*tf1 + tfz=c2d(tfs,Ts) h=bodeplot(tfz,tfs);setoptions(h,'FreqUnits','Hz','Grid','on'); pb.C=tfz.Numerator{1}; pb.D=tfz.Denominator{1}; @@ -59,26 +72,7 @@ function test() % tfz=c2d(tfs,1/5000) % h=bodeplot(tfs,tfz) % setoptions(h,'FreqUnits','Hz','Grid','on'); - - - %C=num=0 -1.3236 6.2472 -11.8555 11.3067 -5.4188 1.0440 - %D=den=1.0000 -6.6330 17.6945 -24.5314 18.7409 -7.5020 1.2309 - % controlSystemDesigner('bode',1,tf(1,1)) - % controlSystemDesigner( 1/simData2(2).tfEst2) - % controlSystemDesigner(tfa) - - %C = - % 1035.3 (s+217.8) - % ------------------- - % (s+845.3) (s+266.8) - - % 0.18956 (z-0.9574) - % -------------------- - % (z-0.948) (z-0.8444) - -% 0.1896 z - 0.1815 -% ---------------------- -% z^2 - 1.792 z + 0.8006 +% controlSystemDesigner(tfa) end @@ -132,5 +126,6 @@ function simData=bodeSim(simData) grid(ax1,'on');grid(ax2,'on'); set(ax1, 'XScale', 'log'); set(ax2, 'XScale', 'log'); + linkaxes([ax1,ax2],'x') legend('Location','best'); end \ No newline at end of file diff --git a/matlab/DeltaTauParam.m b/matlab/DeltaTauParam.m index c6e2757..b6f6694 100644 --- a/matlab/DeltaTauParam.m +++ b/matlab/DeltaTauParam.m @@ -36,38 +36,22 @@ function [pb]=DeltaTauParam(mot,mdl,param) pb.ss_plt=mot.ss_dq;desc=desc+"dq"; pb.sel={3,[3]}; end desc=desc+" param:"; + curr2acc=mot.mdl.numq; %curr2acc curr_bit to acceleration: zero dB of simplified motion + pb.curr2acc=curr2acc; if mot.id==1 %!motor_servo(mot=1,ctrl='ServoCtrl',Kp=25,Kvfb=400,Ki=0.02,Kvff=350,Kaff=5000,MaxInt=1000) %!motor(mot=1,dirCur=0,contCur=800,peakCur=2400,timeAtPeak=1,IiGain=5,IpfGain=8,IpbGain=8,JogSpeed=10.,numPhase=3,invDir=True,servo=None,PhasePosSf=1./81250,PhaseFindingDac=100,PhaseFindingTime=50,SlipGain=0,AdvGain=0,PwmSf=10000,FatalFeLimit=200,WarnFeLimit=100,InPosBand=2,homing='enc-index') switch param case 0 %scratch desc=desc+"scratch"; - pl=[-300+550i -300-550i -2513]; - [Am,Bm,Cm,Dm]=ssdata(mot.ss_dq); - K = place(Am,Bm,pl); - V=-1./(Cm*(Am-Bm*K)^-1*Bm); %(from Lineare Regelsysteme2 (Glattfelder) page:173 ) - V=V(end); - Kfb=K*(Cm^-1); - pb.V=V; - pb.Kfb=Kfb; - - pb.Kp=V; - pb.B=Kfb(3)/V; - pb.Kvfb=Kfb(2)/pb.Ts; - fprintf('Kp:%f B:%f Kvfb:%f Kafb:%f\n',pb.Kp,pb.B,pb.Kvfb,pb.Kafb); - - pb.Kvff=1*pb.Kvfb; - pb.Kafb=0;%Kfb(1)/(pb.Ts^2); - pb.Kaff=1*1/(1.548e04*(pb.Ts^2)); - pb.Ki=0.02; - pb.MaxInt=1000; case 1 %origin parameters desc=desc+"orig"; pb.Kp=25;pb.Kvfb=400;pb.Ki=0.02;pb.Kvff=350;pb.Kaff=5000;pb.MaxInt=1000; case 2%enhances first step - desc=desc+"2"; - pb.Kp=25;pb.Kvfb=350;pb.Ki=0.02;pb.Kvff=350;pb.Kaff=1/(1.548e04*(pb.Ts^2));pb.MaxInt=1000; - case 3%pole placement on simplified motion tf + desc=desc+"opt1"; + pb.Kp=25;pb.Kvfb=350;pb.Ki=0.02;pb.Kvff=350;pb.Kaff=1/(curr2acc*(pb.Ts^2));pb.MaxInt=1000; + case 3 %pole placement on ss_dq (simplified motion, no current loop) + desc=desc+"pp ss\_q"; pl=[-1400 -1440]; pl=[-300+350i -300-350i]; [Am,Bm,Cm,Dm]=ssdata(mot.ss_q); @@ -81,13 +65,31 @@ function [pb]=DeltaTauParam(mot,mdl,param) pb.Kp=V; pb.B=Kfb(2)/V; pb.Kvfb=Kfb(1)/pb.Ts; - fprintf('Kp:%f B:%f Kvfb:%f\n',pb.Kp,pb.B,pb.Kvfb); - pb.Kvff=pb.Kvfb; - pb.Kafb=0; - pb.Kaff=1/(1.548e04*(pb.Ts^2)); + pb.Kaff=1/(curr2acc*(pb.Ts^2)); pb.Ki=0.01; % lower pb.MaxInt=1000; + fprintf('Kp:%f B:%f Kvfb:%f\n',pb.Kp,pb.B,pb.Kvfb); + case 4 %pole placement on ss_dq (simplified motion, simplified current loop) + desc=desc+"pp ss\_dq"; + pl=[-300+350i -300-350i -2513]; + [Am,Bm,Cm,Dm]=ssdata(mot.ss_dq); + K = place(Am,Bm,pl); + V=-1./(Cm*(Am-Bm*K)^-1*Bm); %(from Lineare Regelsysteme2 (Glattfelder) page:173 ) + V=V(end); + Kfb=K*(Cm^-1); + pb.V=V; + pb.Kfb=Kfb; + + pb.Kp=V; + pb.B=Kfb(3)/V; + pb.Kvfb=Kfb(2)/pb.Ts; + pb.Kvff=1*pb.Kvfb; + pb.Kafb=Kfb(1)/(curr2acc*(pb.Ts^2)); + pb.Kaff=1*1/(curr2acc*(pb.Ts^2))+pb.Kafb; + pb.Ki=0.01; + pb.MaxInt=1000; + fprintf('Kp:%f B:%f Kvfb:%f Kafb:%f\n',pb.Kp,pb.B,pb.Kvfb,pb.Kafb); end %pb.Kp=0.1;pb.Kvfb=0;pb.Ki=0.00;pb.Kvff=0;pb.Kaff=1/(1.548e04*(pb.Ts^2));pb.MaxInt=1000; %filter [z^0 z^-1 ... z^-n]; @@ -100,14 +102,76 @@ function [pb]=DeltaTauParam(mot,mdl,param) switch param case 0 %scratch desc=desc+"scratch"; - pb.Kp=22;pb.Kvfb=450;pb.Ki=0.02;pb.Kvff=450;pb.Kaff=4517;pb.MaxInt=1000; + pb.Kp=20.3255; + pb.Kvfb=582.4551;pb.Kvff=582.4551; + pb.Kaff=5595.2;pb.Kafb=1077.9; + pb.Ki=0.01;pb.MaxInt=1000; + +% Ts=pb.Ts; +% frq=75;d=.6; +% w0=frq*2*pi; +% tfs=tf([w0^2],[1 2*d*w0 w0^2 ]) +% global currTf +% frq0=55;d0=.5; +% frq1=85;d1=.5; +% w0=frq0*2*pi; +% w1=frq1*2*pi; +% tf0=tf([w0^2],[1 2*d0*w0 w0^2 ]) +% tf1=tf([1 2*d1*w1 w1^2 ],[w1^2]) +% tfs=tf0*tf1 +% tfz=c2d(tfs,Ts) +% h=bodeplot(tfz,tfs);setoptions(h,'FreqUnits','Hz','Grid','on'); +% pb.C=tfz.Numerator{1}; +% pb.D=tfz.Denominator{1}; +% currTf=tfz + case 1 %origin parameters desc=desc+"orig"; pb.Kp=22;pb.Kvfb=350;pb.Ki=0.02;pb.Kvff=240;pb.Kaff=1500;pb.MaxInt=1000; case 2%enhances first step - desc=desc+"2"; + desc=desc+"opt1"; pb.Kp=22;pb.Kvfb=450;pb.Ki=0.02;pb.Kvff=450;pb.Kaff=4517;pb.MaxInt=1000; %pb.Kp=22;pb.Kvfb=350;pb.Ki=0.02;pb.Kvff=240;pb.Kaff=3500;pb.MaxInt=1000; + case 3 %pole placement on ss_dq (simplified motion, no current loop) + desc=desc+"pp ss\_q"; + pl=[-300+100i -300-100i]; + [Am,Bm,Cm,Dm]=ssdata(mot.ss_q); + K = place(Am,Bm,pl); + V=-1./(Cm*(Am-Bm*K)^-1*Bm); %(from Lineare Regelsysteme2 (Glattfelder) page:173 ) + V=V(end); + Kfb=K*(Cm^-1); + pb.V=V; + pb.Kfb=Kfb; + + pb.Kp=V; + pb.B=Kfb(2)/V; + pb.Kvfb=Kfb(1)/pb.Ts; + pb.Kvff=pb.Kvfb; + pb.Kaff=1/(curr2acc*(pb.Ts^2)); + pb.Ki=0.01; % lower + pb.MaxInt=1000; + fprintf('Kp:%f B:%f Kvfb:%f\n',pb.Kp,pb.B,pb.Kvfb); + case 4 %pole placement on ss_dq (simplified motion, simplified current loop) + desc=desc+"pp ss\_dq"; + %pole(mot.ss_dq) + pl=[-300+150i -300-150i -2513]; + [Am,Bm,Cm,Dm]=ssdata(mot.ss_dq); + K = place(Am,Bm,pl); + V=-1./(Cm*(Am-Bm*K)^-1*Bm); %(from Lineare Regelsysteme2 (Glattfelder) page:173 ) + V=V(end); + Kfb=K*(Cm^-1); + pb.V=V; + pb.Kfb=Kfb; + + pb.Kp=V; + pb.B=Kfb(3)/V; + pb.Kvfb=Kfb(2)/pb.Ts; + pb.Kvff=1*pb.Kvfb; + pb.Kafb=Kfb(1)/(curr2acc*(pb.Ts^2)); + pb.Kaff=1*1/(curr2acc*(pb.Ts^2))+pb.Kafb; + pb.Ki=0.01; + pb.MaxInt=1000; + fprintf('Kp:%f B:%f Kvfb:%f Kafb:%f\n',pb.Kp,pb.B,pb.Kvfb,pb.Kafb); end %11.84Hz 0dB K=(11.84*2*np.pi)**2=5534.3 Ts=5kHz=.2ms %Kaff = 1/(Ts*Ts*K) = 1/((11.84*2*np.pi)**2/5000**2) = 4517.278506241803 diff --git a/matlab/DeltaTauSim.slx b/matlab/DeltaTauSim.slx index e1436a9c49ac4a0679a1d5fcc5e0626def5b32f1..d48de449ded2b890b4b890ffb19664eb4546474c 100644 GIT binary patch delta 20702 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%0Drc?}qU@jox=E->LkQQu%RT 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 delta 20806 zcmV)HK)t_?(E`8H0uxY60|XQR000O825wqTZNSM3V389je_c<5FckeOr0>vn=spOr zM9rRDVsu91i)qRoBhr?%bqs&Kg#m85_|~3tdhY4HH(nk@>Fq(ALdgWtfFKVfS6LzR z1U+w7{v3J6GMTYbNk~uw26@Xg=2gU%h6k-G(6#{MIU{KzUL|N}Z53f`_zna!fm29F zZj~0yx~tA{f5rF*%K=XanPLH!Wy~_%8v51fh?2XyQYvydy@q(Ws- z#`qM9`_d8D;IPbd1)^i{fq4mU?=~xxP6(a(g!+_hU}zYTFuGp6#rW6z*6?^%I{jio zZQTIhZL1sMHdD!rUAyUS3&?JoGv!})3@Li-|C9@#gf3{C@@gKD*-6U5pv$0PU$pC% z(qI~Pbw{M7`(;cYo#mW$`~V$$c(!)wH?x}o=>Z8j0D;*m8UO&#lZ^u(fAv=sU)-jo z1q8l;N+}44NJuvV0@5zsT>_FzE+yR}y_6_RhvX6xQY*34DxFf&!V&^MX zLy%*=F=wtOEh!Q2f;x=0rluxJ@sR?-V?VNmmUzUv>+NmxjOF?&~tHL4)f}H06$Mg8a8z5-L_1e>E#Bwt|8JJWWkaK{>gx zwZ7O#w(gye?@<)^zd=Di^U@?{UWpFa*1r{3a;5@I6jaX1$;u|%F!ele zN_n;83ne6>5-H&yuuYqrGl9ri!A3z9$|4V*Fi{fF($piT$$z{xpBZQvcA`Ld?Y0j$ zo2XY9L_XExf2*%bN>0Y7Nkz2z9Xx1p*W;mgc6WE5&9xhXX=MMsy2&Yx2UXJc*w+8s zXM}>n7`tt-`vzsh!ygWo|My{(P*OY5*_OTg`~AjZV|NsiQ`dw4JW9%9I3kpw5;?An zra5z-=bqTzd0B=k&%N)<6?s&T5M1|KwElX%M&ikMe-vkGi0#&*W2lSX4#R3xN0QVZ zwSJMZuMM^f<2mY{2BTpiPuy(Np_dgxy*58LIL`^Gb%V|fNTWTuxdiQmMhjVglCW8y zo?7Q{<#6$)v14Y!?zSX{>@zv?#a!K9{eiGvjY$i=e@R}~l~9=17pFYo<74c<7$GgA zxoXGOf9LF4#Ve01!o{zli!*x{;dRWViuecZ812IT{R8){B7yVpQj0AxF|ntLs?hvA zDddmR2JU8MGA06;%>PnEMdI7#UQEmnd7Mm*)eZ0AAD#%EP}(Lg9ID86DO7s!x8TOX z=dJCb&~53a(6g!q(?iP=TC)5#o8GW1xU@xPf4k@brV8cbEUA`-bqMQs_jt83_L!c zfBYiNkd!bGn&ym`>SfsR20g}3N0*sW|A0*u25Rl=`!MwLEC`pbGi{DfXWJp_U;erx zN}X$@%wVC*r8~ZWg7NFoH=nYqdhSIxB`s*se`=a8p+FWnY=qS01Hb(~dvp>EM zwoe==i|UR^;0Mq)dU0WH`52dIp^yV0e|}L>QFgd3!VrnHIlHjq&)Z()8S7E#OKsCr z_vnoF(h(TeO85FgpGd_rX{|I8aIxh73@w#q-W^(y3fbTQvnd@G)~LGrN?FX*!u*$C zT6Cv?H%L_k!~-jh8>b0tL1R5tgh?3dr8n&daJhcMB6_?|UW8begQMK{0Yom}XM6aDe`a9! z0CqYi9fi9+f?F16a***+Wbj@be`TE=o6l_Ov$)?xL_`etm%tQEvR>62S8E!YUW#Wp zEy|)th4HHQyQrwBYJ;jb>58sXWe5}&y00m;Ly6#?EGQ(6n6=IC=bC+~^4=cU<}SZQ zMS{N5;w6HZoi7<}x-$#O%{*6s&B45_OsP9kLa)?RRJ5gb$LN4>0)E$GL-Sn&1MJz z{>EGXEME9?|-*tT7{d$O={%P`W=3eZbPNJzh}kcz6R zBzTuTo8RK`gX9;Il0$Sle=_(zC>?nu27{?Q`tA{m&Qou_4wb*UICAp!ZSqbMb{gX| z^xE0q`V7XJEj>^AGAbz7xo@^CINWV@>0jU$CcvN8eqn`{Fq7-$-)Mj5PUBU-Fm zUaHlux434r_{?acjrqL5-;lrJ~K&Ue@DkT`G-9aWbZkF zj%>8gtqfj87=~ojBa{v$va`Rx0n4^DZDjT6z7b=C{C&B(y|!l4g}XWOIsNlS?s|>d z=-_JjSse{kEcQ4x%)B`yCD!_JL|4(b8Z+AsmJj|og4Ct6)U9>@I+ zo19#ZWidA=)s|*5f28R8d)&T)Xr@OITD#q>cXAVc&ggBZ9u{BQ-{&jSE_f`R$JJ{6 zayxm|yv;khzFvqKu?94>I;_|d+=C4rcFi$(Ei>nq#a#qxcm!@b`bG!P-DIw2TYM8w z(=5a!Sy)h4PU9~1Iwh5DQ*&`?sbFyMWCgvWzxdb$O$`o{f2!GJWOcuNyD&K5sPiJ= ze9j4b4(~=T`L7_0aMw*!RvtLHJIXSC65roVVp5cnc3jEnhu1LF7S>hfFfo}>E z>UhYukyQ`be>;>fzW(l2X&<|_k6w;U82DV6n>%UhDl08rwGwEmfe~&u)OL#3eibTNvUlQdz?0reG2#%Ox>jabJBm4Z55hZ2ibf!ibNVf@pRv1J%#Dg(P6UOtwu7R8GQvkO<|MMyj_$e zH>v|Uf4hF!hIbF_9(7Nu&JvfpoFscdBENrsIev3}n_Q#oY{F32eJcgDW%Djb+phnR zeZy8|niESN1h;-RW99VrZGyF6oD0-AE7}DL`At_;e#I0l#y&hLAt8~X1hnlT`;RG& z45#y}e@-rI{iCtHj9oo{{_s#xP(ZHN*|w9#f0uiXF4EOFJuR{e3t6{H%Op!g{g=Sm zPPyES(mUxXN&zc!zI-Y|1ze|pzAT&?8O_{T1u)SIwm59x<6nlLwE)>wtQ*%COYJi* zd*Oy@Jr2lM^0%R_NQldso{)x}>r{6rNN1x`&F^jQK&)`1Uat@`qa0dY}if zf6jsk1jqt2KhvecPP6)j?Zz2-oZlk05AJ>QRQdr7ed3Vh3pMePe2#$=5H2)TG58)N3@@2L~i<5Tk_Ufn(NWu&DEC;UzclfVPT;sUhNU>7v z15nGoJV3@d~NkZs$) zUqPtlWA`}q5-sju62rIim89sXhP61!W0^|S^8-^Y9JPURrpZg_7$lf1AS# ziD=in;Lg04nIEs0R&G29BG~`cdBE>@Zf6gVZB_Zpd+JZSZqMp`Zm$DF|3*p4l(@fjW#xXhP$l0FdSpA`*uQ(7l!F$3&5rB~m^2D8-y%C%@flh=e_I1b`@O#Q zfn82^#eff7hAjHL&AaCSUA)L8vgRepHe9J$yXKOa1+Q;6?{c?j6A<`3|YXuj)>NG`*VCm{rck>%s;kc;Glh@scy9lkGP9aD9k#mGoE!+}?8 zu)zo~LyHj?Kff&T<$y@Ne=_Z~-1mNjd}Yf1zX^Q_XYlemLo@ql1yckR>Muxru#%>% zZHe%e&^(>6OO)%hj#~jy39GA&)OQgrf@g+dNt|_PdDc{G5#PC@g>cotb$>>T{9154 zwzxZN4o^9-NeT5sy5o)pnlcN6&OI4^92ypw%Lbc>R$MnM@ffuAf9*{tDxu;{GX`tN z3X7|H@I(m8h2e{wALxy}xln8cOfcNb1hDzBz?YLxQ!zpCtg1KJPI0UyvLU?!_< zk{l@g>r`ZHmA#c;g%f1y`izMvSbn<@!zUz9#A=F@Ff+hl$0z6broTrT>;)abp6JeS z;Lk;mhFtxXKWAz;jxwiO*+Fd{$X|8)!ieMMSNW{|ys0?3fA2Uj=O|gAy>8~wQwaLS zcB_crSW~k#=?AAJQzMkb?pH2kf^zZ#Jd@Tg`WmiCd8cC1Dem28Q(m&Pq#N1Y!S5@t zj*kXyBBpDq&1BOf4XasQfFuFJzohH*$$S^O;OW<-le$S4{()u z8C;&}Z(GFae-4f6v-vp0`TY6w642A8X#na*hRkzGb6p(ew;UKF7h989>N>1crn-Bp zOU4yEtZ)ASW;dW_<6`Un9+Y6tZ`9ZcOLGgEyHjWsql{`BQb zq?_2t#s;TqDr=`h7Sv@=nmqo^$@;o|hRQ=O*uV-lV#>{110fFb`C4FPA<=OJ{>38e-RYp&{PHCqj2tSFw4SFCeth8ED*3!u@UChhgW}X6= z%Vwnt{S)T0CaCh`h-qkm%vhVxcI(A*@QB9s3PF?0M-PiD)*lfO;`qrHyfo^_h6$6x z$O4yzSUS?Q#D0@mco=fVL;UK`oBc1UlW4Rxe-l$0X;5bAsinbx9{|il27IcsV?Z0; zl0aLTboNC?KH1`$%uRyxvLQ$5Mf2V!UGDhm zB7gn56HUOI&4CdQYYfSpeYq!A&y29~_WqcXk^*Mi*`&7s?MUAK#w>Btl4XDZS@Ovy ze{%`>JK{t>Sj(D_LiXsD=*lZP)J#r(n@|g)fo~9jsCUnso}Lz^rl%y1Z)uwB#t8z3 zTbCzluN~e$r?hV&>O`~YJT*YS#IpGxTLuVR17f5k_D7=fqMYfK_8w})2=MXg*D5?; z!Xh0TPtR)1M_v6uZRGPSX+( zjQ%(PVt2G|jIWLid`s{3&~_o%qocA(jr09pduy#(E^k`{Dpc5$nWTF~r-ZC3gb(@B zs%F&jn^EoFN2H@HE(=EO{l%eiZaCNk{xRm3tC_QQ11`%hYIQePGp3^ADZk~ne;*SQ z6D@|NZ)z<%RO*dObb0XfZ~TQh(_c5t@#Sg~^MqMv-*(K=#uH&7p{m2RLZ;zK?Z>m< zznv`JIO@_NJSCFc7f#R5YXj#E)eWGwBL`V>YGQdXecrT@&41MlgWV|_S1s1HUg-)c zWPB*bK~F9uArS{k0G2<&%2-%feIa%H`!{^*KQCjE;`dkP<;n z{gPYnGByZWhJU@&^5&MD3M#IM+Ka8tb8@uTQWzW@XS=L zOBsGRm9w)m8|YR$@}nkKqzw}h0X|T^4nN(+@}7L#f2|Lo0wp4(e+{s%df>UcCTat7yxzZ?^C@%4zH<1E z%!uXX`|6H(gDFoDqS%L+S8eosggozX_ba&A&tzPN1d}SMX%<^4y1lQoNn`s&IS33* zr8@XRNHaiyCzzj~&&kOtf0sF(1Vq@7{Z~GU8qv`1qT=F5DXg-l29~l~t-exPQU(0- zRNAg?3yuJj034MtV7pmdTT?K3IB+?pk_`vsHK=VEL;Z!W=y-MHIJ{uzXOj%!bJLZW02e_yZCy#Q{D(9(?v zyl;}!B=2dKy9Cx^&I0&GelNE9$o%agOqR0OYi?@NSDBGYiF9AcP~R+$R!w0xL4%Fz zEFD(3w%rA+EPr_A58t1!y1yYom8RB@<~5WB_7_XV((9F9*_doJm#bNN?Ynx=l?_%c zzaD>2L9Nnb&L?lHf8-o&#*@eIzIpf64A>uOfj&O=YMO4XO8I*0|zEE2w(uc9!J>MY)#yHjCgLgAve{q@edXuRgkvY(Vg%i4y z=)YLVx0~|?W+~se^Yimk-zfo$cI6ghe$?}JfH^)-^1zq;%=$*m_?fAMg@nE<@;4ti z%s9i>%(E(Ti2^gX&kG4RwGj*Fk7tphA^v*!@dLI*-uUx7kmt3Kv8Apzr2{<7m#xr6M!bpG@ue{-QG7tNcY6 z-I}R?e}^-DNbtprUO-{#^{xqK3s`Zbsr^kay0%{;OioVz)m*J5S5(&6=rbbT6*WsG zS~OK>KODd;U=6-Csw6jIpawTpFE zud(RS@qa-v3RrG*T^*ujbb0ei$`hJY7XUjVe}lV5|4X}4ES13>gosv5Y;0b8PT!Qn zvZKtc#?$7vtxir(c_$YEho89CcR|CO4iW`LO%zHB0msLFdxf z4?OXZyP6xX?J5ERMO0pq4ax)o_C$i2i-uI6m_Y2eQpp9YZo0jr!>GWv9V9WK$WFtahx~}F?TQo55Fm2%`)bt*#7;^? zupq`}4=CCAcrt)YT0-RFoNLt;00O9~sp(($qGFTjCG?j!2Gb$I7ULbwva+(sI`@LC zm|BmSU*dg&fVvaC5G^SJqpOHG3$%Rze{KM(JG7f^p(VGd2;s#Hz_)g9Ily^?-~SqO z4Bn1(^Xt_I_#K%3?V?F1`n$Na4R5Bps6%L{vDFjytMh{@mrIe3r%maG+Bs9EsOjmJ z!>9^?iU5h;dUe<_^R#&SgiKHU>2;`lXJ_Z0cFu$Q_lwKQRQZ#S!es-wLtNy7e>5~G zOkK&N-#f(yVxua~w$zhSQl=Ib%+NMkTs&zMm#^3#wIBef%VR3&OXnVCk#FYg~0N_~a z`}S_1F*v?JpVz?Teo0!>wDRM$_U*L9!TEIj3dHHD@8nROq`7A&Nwu=0c`9yo_qhlA7;LEhoaaEgI{)(U3o`B!8mliVEW6> zBAN8;o&P@gZvQ-Vk$)OY!f56s7*x707CHD%l7CVVc*4(@(r?ZT{jxK1?vQ(Q>qO2t zLD6wm@y@}UtCOC+zjv8|U)=l)jT7lI3g>CLSHrVQTxb^WNa?rJA#Q0$I`W-3PC;US zj=|&ITi2ht>GMun9j&1`ivNSFa-_yo^ z*?$>h^mh(0Mx(_|{4q|@Y<~~FbHV@5jT?nwQij~$BY0(<-b;H{rPw%}qt|E>q4@R+ zuN+&O@k_mP*Nda0AktJjMFo_7xLgQQR@b{@`$XD6PI&b$Dfp*CgSi|PO)XJ!uQK$EtwiRp^qQt zei)(X(5cbcpwqcpVm&e|O&C^9__6CHVU&q>YQk*u%K4+1=6|l)SNn!)=$hWQ$O7&d~?SOoUO4;=_}+lfbBLkzK2K%&WOMkJ;sH+k??gAitp5`Rp-3Z4V}vv&`_ zhkf`xm=3a^Bl!F9r_1{z^5EQ@2FLe<>)#Jg27klT!Rg>o9=tjo{P{a>7i0IwJ=7}?#-x57-Y)>3v-{1;k)KPz z#0JDY@=Rz1{X2%Iqs3iDmkH42@Xg?OJh&PhUJs7n49=$mb8s>kjHkHXR|BZ`Bh-t2 zKm5PY&iMZD9{P>jmj^Fx3^%x=!((n7e;C|M4?kt^{{`zY#bH4G)ZTjt)pv?X@3^%LuWP@_s^x@(a z=bN!kodqqgOj*z;FkZm~z#<7@o@flODiaMyVKDKg=T6{EQIrqwmn|%9=iJ5S;*}R; z8~$#MhU zIhbz2mTflQInXUlGgRF+80{cGn={MXQFfOtod)9w;c-jyv#FI@-QVNTYd;7 z3B;mF{5lu#3V+4PWr)Lv({TfzN4QIl{~E=izW_8E3&5ZNMSL(!PUK!hE{d2~UOSQJ z1PRtSH;t;e{my5DhuGA4!3f8jO!(smG$uX4RVV0yP=L=ZOm>XSC!&f1N|_QNUO2w@ z3E|)uL1$lI9rEDMo#?}2&Vo4fad-)jM3=ld6I}vGCV%Tug6*3SIF{ORbZ*i^&9Y1!IE& zWgg@yR<`JlOej#{@>a<-epV(fkGNJU9Khnqr86eW6U=_X=hraMlk6{fe@{_hE09Uy za?Pr^XeiSsDOSP{6{L#>Sv9N$kr}|euMA2BDgF`n+X!bWi&b+Zi>)yBI~aPY^pO0brHZ0FNqcqJ}+%k zNdy$S2)sH!-K7=fkl_*{e|W4q0amtr5dxPVC#8OCcD3VJFH^Y6B;SdLd^aERys6D+ zjc;66k?l#(vJ9oC>tm&NTCvoh71b6fySSmWzQ-wXu}J2N1R~&5>>VH8(`QVZ+C59Bf6zG9$RgFGVgb)< z^Z@r6+t@X`J;dsjZm-y|$LG!iiLhfzd0Ev(sz`l8>SM7=Bsl1pVVk%i?M~wp2n-LM z7`Yo(k%rfxYYmjF>S|gr-A3}BqpejdMJih=Y_*lDrG!^h?cP-99m}#@+jM(<%aMD! zr6|2VvbCO$Y}=mLe~P8(0y@{A^F&Z$JQ&muzTsr;l^uN=8YUjRb{qJ<2 z+2^lI_l3IJDL$#}@f82-9_DvLd}g0JW$%>zKXH8DjqRCzlVCCwe^Gp=_?_ZEMaAy| z`%dLMm48Yq-=CoVP2Y5SH;U?FMOW=!-$X`FvGIR~-q&x8Z327P4Jj$IykTT-JYoNS zFwaiLNnRic(eG=s0Nt|PH(~_3fd5-C2%Y!u6u+C+>y*7y_DCAg zGqz;6=c=gR(+x-Me>r`u_lk}b%|Mpwm;!+~U*!`NCtYygDSx$mr~IU{M^t{fuOLH1 zJxA8Cm$#L1uWzen&$Vw<8})Trvu;{Z{w~1p6uwjVyt2nrc+H+Dnk}QArjN10YklnP zRqXO@eQcVFDx1jdx1#V}kl(3&r}m|vF36_|bQk1z%HJt}e;4F;3Qz5Gr|_M^cR_xq z_MO^yYTv1Sr}ouCo!ZwZ^2F4>8{2ov-zoo7RsL>UZm0O2;y*#f?zQ&jwJ z_P$g2PT`-9f5LaO_noqL%Kk)@y_>!7RK8RBC#LeiC* zH+$bHey8|PQSrOk`%d9Ig?~B<-_724%HApa6H)eV_P$g3PUWAJ%8&c%81*McPj=)9 zR&)sHZ&1JI=!)hTs--&WWDAu)Up#E2=Bn1IIjhfKf0vqfY3#nJrdQzh_bzV!g>r!X zy^%Lt_=M9Vlq8tGarWi-AwdxqxAV|N%fgo#Dey;lf9NFRTX@(x2q#$UFIj-cfrIIM z;)f12fuREq@KxkZfkrzAGbdO$egkOQeh@~pMo>^dEPxGA$3DU=!GKQiu>o|rhzRXK zs%2Rae|SX(XOV;rg#G9W6=PAhVGEhuXYfPZ@oJt zA_oK9;nQGz5unj+m^49SNQ~~=TNDhUS!30%JHocYd$ z8#mS-%>a+1FbFXD8U%Rs!J7}m`vCLVEtlf9e}TOO#;Bogpx~Ri>m+EDILRVD0!LaZ zv%gnY-FIO=N@#YAKn9bgnYy_yLU!+N=NmJ?^;Cj^9Km_0DkPA!0pfQcdXDq6o@C#XXhT}7mpG%6Vna?G=ulz+-pg9UyrUJK_ zh8&|g8Z%XJ1(G`3A#xXEM1%Y@3}+|KI0<1mt*A7R*JzG?D?INU#F_f^+?1ocf6+Xl zqIo)ebgP)9fgZ1Gq)?s@1<|!y&`?SE6|2lS1Jv~ zl2W1MF0UxIv{;5RG03f`Kmmx#k4X41IxB-??M)oaaInFpPpn-R)rs?cDt`Vq98uBZ{I;Zz&9oyd{e|%g+{*P|G zXr2kW(zn|XbRA2#MdVz@zZC&F*XRJRyfj*YapX7^iLxc)3cS^~1q9xW=W#TS^*us} zW~pujD@pKhbSb3X z^~br#Q_uO$?p4er%zRQFw^!!EoL{M zGfd=CxpPsBRZ@aAu2Pf5x;L~HQaXo}n+)4*!DOfgI79?2%fjXXGR>6NxT@QCqhNk$Fx<9aRHCa*V-d}?8LU|+uy~FB-vY&C z3Ws>jha^)la7x^OM8w7JpF8n~5_>YHORpDLA-&`zj84a4@EW<1bN_$K4sNczz(gt_ zRs|;8vbKMn+~f;O$n}!SGSWVdA7=C907GG1(&sY3wc{@kgw+Hj{j1pKUa8SWbgl)E zxo$$`dQC)zp5up8;6fDoS^F=ea52wibco_Hc|jHks7U?S_kQvMnto6Bx!A3 zVM!@A1%KCDqO=9Tkw<@Yp3~%Bsm(G`*q<7SvZQ4LW%4lf=QvroUidSNh!34;Sv)>R z!GebRy4W3q$P~nST~W?zOKoT@r7-yf>n}S#nj{s4+5*ArHHEu9e3QvKTN>Qf4OW%LFQ{g4Z#_4bZU2}xk zp~IqbKDm&GI!iZb)&!*P=OFx4ao`W}sAg6BD&pr#P~bf>pR#iR43GlC{c2yzK3=4I zn90xYkpCPHqm~`C1UhKKv;g$bgsB42E}CqpbRl2eng$fLskOsWof615_3#RbV10uqG33it$n7P=Ps%P-YSKaHCrXLKPgi2W~UJ|M#cfH_h?(opn88 zC2*U0YFIET$4aF7rOeqPJ|PbU^>t!F>$AjyXI_9B+O{>D!`o;Kb7kf~!bS2k$7u~? z2;~grA6|b@1KZ!LV!=bJiLW*E_39!;aXjMOAYZ_!XWi5VyJ@%BO?IqVXH>tno?1;k zO*ei+eHyM&ej$-rRbF(H(MH{#HmeSEg4nDhsvyg>Hqqi4{uC`m5G}n;v^a{8p`{74 zy$3NZ&kq(mPz`7(9T)^bn2@=F%#@lk%ao?7fvtaCknj*K#NgP`_b|F943aFKjGks5 z?c9l`UXU%1XaD0AJMkWn`wDr}+v=`i8sJ;cO>X&cufoXt6b6ao4}5PLq&wAN-iTe~ z8bt~0bSxA|!Z`<(FhWxjR2+pqM3e92-M*~!O;G3Mld>z5A5P~Fo$-fODjG)N90xlt z2@HQY#94_-I*H>%$a(K9Up5;`&a}!2Ci=+x1SeSPLc40XIQv!E?YZ%y%KJ}w6k%%H zFRQ2;1R1cbLe^F^k!2OeN^?z8BIME`y9Jp4`~?^qB3H2hCS)%c7Zrf$7J~{s|3(*s z7)bEfd<67I+F)sgODh3Ht7|`vn)Mh+!ft;_29_+XYaPvQ4eOg;!!kLuWrh7~a<;}p z!vAk=8Ot=fWh}9&g_f7GOpyiBZW-%Qma$BcwcTzR>#Jp?mNU{4VWa`;7aDA|Gsxt# zEyl<`XGUvHMk;%?LmeF_$+Mnw(iT}+CS!ZmW)ARKoa9XAug%G4SMiU^uA$pV)_;HK zn9AP5Y%?b_^I08Dcr7wLrK+2-AW2kM7h^mpL=k4Z=(1(D7|F334V$0^sXanIIcTz6 z|6Tr_*+fpnx9)1bNp#J^bhpR>C`FL&ZTLV!P(V4GJD%U{#>oF$`8ThKiypGE9ViL@ zOS&V(k)F9^q{h)$4DO9lylhD2G?agyp@T`&m@;f@Z)b+dSzGOPW_*>#kg+qv>~}je zzCDh&KmKfWX9k>NBMgSilya$CT^3JF3Vd2hp(PS!_26`h0+ALu{wgM2y!{f+Z0@5g z4=7MS+}vhAmjgVDv!ku-+=xN6)O8FZXUBnfP_Z>lYR8}*a`veQbL)g4`0syf9fjeW zPeQW`F;7F2BCHe9rTSPah7=1|w8%$LfY{~i>Oc-G3D2SshfFcKF(|XesO}cZmi!#X zQSa&!Q-N|G1faI{3bl}KS>b=!!3@i;;M=smyt18xiTB_p&p^Y>dIVZ7l(oEbp#D#< zc3(va_zVj*Kr`HS0rGX=!i7^i2Pb|Q*5_DD6Ya!5GJGN91be#{Yw4`)7Plqq;L}vw z0*6Ls4g^gWX9r?uvO1I1nXLb8lQkNLb5veG%q`XBYK_g}EcIk#J28JNmBv*jED4ca z(tR-_)y4>&^b{6Yy@{8u^jd*C|2%j= zG1C#t(U376wZ5uK0&nsfNlodvJgZKT6riA4`mtW% zSF7TRfvbZ`Rn31;`?{i7rf$imq`ZK#`QL_Zl&uEYUq7jS6)Yk5(csJ zudp3ghBwvra51Y`vD(K#Y6+;1F~9}$?-?SvLn&gk9+X~ae=W5n@yk|#?2JqI=n&x~ zad1gwya3{>IqY)AJaoplc?Ex$wTDPmrS{wk{P4UPbTWVWJg}b|g@6A$d-Wzp(GX2A zz1*W)CkPNpCa^R$e=h-lTg-r}`4_W5>2itmp^|t}{kd#RYoAsAXRYkeVEwc9rVNuW z?xcS$y8#onS-ecM2hNx*BV?bHAM#?E3C?8dV|Fod-s#RDcLupL$eSAEt!uuaOX{nVPv6&3p|h-B%>spQ{yO;lA^B}LOE4G-}oMd@3)>|}0f zKr$Eju+Nq5_}Jqu%>3m7ckSA=5@aE{$Yv{&4d;J%EzUlTZ}t2xZ+eZK`ZMjePyLyF z!Bc+%=yRkYLtpUlaf(zsXDJ&Gc$$p|Xfvc9=cq7e*X()+g-zpg9Tc`&IFZ}5(p)7A zXQTR>Wa*2s-;&#tNzVSR3@O3m>sE_Lv^iEUMamL9ppCV>y_3+5NUd=W+ED2h@i20N z@hyLIrgmvbxO2qIX0X!q?H6#)WT`_kWg@lCOM^x>;!7y_i6X7k*-G~oI+ZrehG>?m zZmKBV#O9XTO;$(O!k}*K>D`rK55Nnlr`dMSq&_7$prCJ2g`15&?d^t+tT8&U#4S9z zVtET)Fu2=>igZ>@OlP%k<#g`prhqco#M*ySeD_w$K)LOKfpt%#D?>#XsCPcJ$#jL| z=Q5^?x(ce^Z77P3k)9=fD@jkWwiCs=H)V(u1?#QE$*41jB~GS@IN8)Vs!efH8*gF3 zloDo~rshg55F?uHjWdkKnBHy-RaU*wSG{N+F4-+cfqG-aWj6*l8CIfUVD0J_i+O)* zWg3uoSGSalbXT_sU)@3p2Mc8R+;_Lsc5Pik=IkuX4kHuAT9>vcV zP+PbPf1?~b8Y4|cX~&lD-5ie&-=F_;4-<+9Po$x6*TCkfZrJDMNw(_vIEu)rmgQe8 z@L%Ty?$@dw7VA3&RZS~9ty#2HOQ^@fzMD*b4_f!t&%%USx-|`W~QjM)Wl$Clmf-r zm8(-XPeC0%EnSS-l8e!oF2)d028#~x6}p)BpB`Iv8uJ!Dz8C8JPou(>91wpud!o1l z(w7cMMCTX@3_CsQeAJ_>j1#!wENeGwBz;G=gXbTz+-*(y`9L)kBTGlDRIekcYlg9T zXhyamlglM{8JXFbClQ-(^=!C^KJj+Rn8*LeX6~M1JC2Ig4eCrnlfO$h{umFAU8P8?dyQ zhJH^y(K+={Vt;9Ck- zj9IluKe7$dx>rau?}Ua8cy9tM0>A78aL|aH(b+kG8lUYN&+-4HY*YHPPd}7)H{RA~ z`%B-)V12W_#y@-qTMys+u#+g;;~5gimz9u|yct5Mi~IwnoEOlF4bww;LWR`4P?{z- zF9f%^5}K6gwDFzKB%putf~f>C)qdO8Khw}!Ie=#Ditd4nSpjfs1hLBzxI%p1gc3ls zK`iiYLX=8I$FgV>$xlEVf8HEPmY^XA^e9A=i8uC0-Wh)qSTO*LI|ZqmYSv7TGH~6ZBI=F# zqAc;eMUXE_?L*!oa=c6^Ulipi{;KcmC4u@0etO?_?voAJsg(H1JQ2Ho{x6OA6^*3+ zBB~^ks>6JYj5j}h;~8%@wV{Va8>%*5h%IhI71@OCps@W*)A5r~LK>y<;{Mm!$yjnB z(W8G_+{4doadT!}MNSY;P;@e0W?($p8szY8$DK!i68sZlv#V?P>OlYs{x`5lbhLHzq_Za;7nRm^f!t z;0K(8Q{f1LEy5SIcKo9x&8+>_C9u}AVBmiNr57wbxPf!8M8)r_6l|(J9fM_ccw@;4 zTxs1pzS5)_b-W9Ou+@)I0zxBclFGQPDhHmDyr&fYZm56)tnTdZ} z%ypdZ(JKVUA_?mBG&{VUB`s2fe5l0{*DS5L!;3thQsUwghbAQsl~3`pI7FfxL(UGC z3;I%y*Aw)md3yMcj}$)6OM1phhFrOV2ErneU|ejX#^9Klj6a;~jGioa$j;ybe>fw> z)ohNeViO3*0!_`vPnL+D*-bg91xJ5?>rcOC+)tPEJO0=Buau@+g#^G@3VYhONwh(Pi86-K5}h4o^b%bV zC5TS6s9}`w=_SL&V3ZNPw_%j%(MRusgy@7Ic9b~Td!OI=_E|UUy?B1lx>+~xf35c! zk4wH<9od4&oH%$siVRBYkTM3X2tN-#^|@i2L}kmt#&KS;Zi(;r?Q1~;E>AarH2IwP z^ulCH_dQ8fPbV$Bm96sPrdl4=hOtFXBN$sA6JIsB6j{q3SlSfq3DNFA(AbamS$=<- z=eEupd(lX%Jp}!!nTn;TKG^TOSkRJ|tWHVe`=E51m5A*P}Rr*t&v-v){9($3erNG~`w0vHTLk zUuly^vS7%frl)7>ydMM+$3Mis$A>gpoaRe_@Fnwp3maHHW%~yOlUw`t3``TVD7EL( zWRJDQl;SGG<9ZNMgLLq0v`ckT1+I5F7Oh7aD;0r~$J>y^Q z`NJ6VvdM@_+^?1KxWN4G+FNAL#weI2Dut`vwrsx0HxEA46RFQZ?A1JjxPp?ee~~S* zaU6k|T*4frj({6`o$_j)=+)T!(Pt?o0BP#jV*7y215}-}DivGl+X>c${z9`Sgu33v zNNCMUi*whjxAs3&?q;&P+W}TUl?10(s(X)nobVg_{XXE2}uPbhvHd*(qZ)T(yWh%f=V82xj7kKnTlmo60dXE{0?M^7b*fZ)MN&Db30n)-HGLyq*I~@$(E6cH z!idW{ z;xdk^BQ4_zD$bhw+3u=OZ^=#&kAdfpe{fbf%{h6Sf*LMqtcvoCDNhS_nVJSedG7ALV zace#bNATjq%J`FZ9e`C{q@w~0HGKz9p6KJK==Yf3tR!gA!O^gZMeK1xRihCy_bp}u zA?hW#D-;$*qRgIA*P0GrItzcGb?%fC4IMuX*C_{%wlX<>J)9#it7&o>{p4!f)y7ld z;b|-4lRPAISc{o2^CP*BnZIDY?M8Lz6^qF@k%)?=!4l-NO$)sbWO@=WxEMNF6Ghdz ziWY~I46CjS_GFA-;u-x*%q3lb2y}CSs&&3WuIb zjoulqY#)j?Gz5p2F3OohGLo6x8~Mcm(e&;*`->oS2H1qCC}@@)-4J>28{ip{>@gSF zvyPV0n8?~Ff(H**jlWiPxk-D{-$v8Bu#!;w2TQhio4cef7NJKJ~n!E+Gs zH9v#85}{oTuYIMW+yc87d0&{Ft4b`4`rNHi?@@I&VvtQC4El-+u zG~>-cm{$+|4Qc(#SR-HUZS3$a1rC~-MP;W~wm^nnOGQfV8)gfLZ(!C0A+Di8Cw#Pk zy^YN~F2k5-BV11+ZD>{1-SqsFD@V3mKGQVcDBvAM%IIBAq8+ZSZw$?Q zebGzsnn0&C4kWGT0h|M|&nE~Sy*w4+Y6nPf=1Sq|&VbP@3E8r~z@L+~JfuDJb}J85 zF@SQ~sjPi}+J+T9Z|uNNh_;%b-&j5AzAYbWIVd$gga_wX<9JFI6vemFBM0i` z<5*f_)G-;PcqH~yXHCbm-%2)|jUe`U2s-+Q#*U=ziBDMC2^0}|B2ZqPk~PENSsAA) zWM((mJxgLw;8#6(XiRyEboY1@<16n1aeO>OQYO^lfpms0C4F=n zc%@gX{+-Pw+|O~-BFNtk5bGb#L7eG(?j#oSqdju8C%)iO@Q^->cH0h^rfyPrjOR3E zq-erpXNjC=%n9-BWVf6AMc)*{3JXw~hkTG8wc?uqULU>2KquS#U8hr+VzkoR&cNz| zsdxSYW}wp>!R#+F9_EkkzmN-i4RAtPF~?O=!zpY5nPbq0y(3wSgE_wn9(CS@!zsKE z`l$Ma?-CO$Y5Gh~4~ll9Xw>F&Q?jBY0v9^$sKs^b5J6+@YyYBUhpa6XONCAIBL?|~ zHsz;>bae!?Td=uzxX?pwt?I9qpin0rQ$=T3?(+`z<_z0^7}-na7rg&4vfb;y85zaL zwePdBK3$nMRU5fvbdWzNuSJGFv?F=0R;{C|O*v+l@AOtVXO$JQA-q>n|Dt3nK(kkI z?`=F61h1bej2nCPb1xJ$~>cz2Ck`*#9T5GkdU)8N3 z+xklR5PSw2grYP!DP0CvFipao$nW<7cdM>d#LeX@Xq=55Mm<3s*`n5@OV4?qTKgGU z?+PPyq@yHCb%yCvl2LEdu8DC8O&0kD5lvh ztx`3(Q0;k}j!A?3B=E(TUnj|@tK#}HYPxMP>eXLl{#Yn&GoUaw*%wUdzGjXX=FjD! z9+~NVE3Q$yc2h=T+LVRgrZ4zxr`hQRyRl6g65kRRAq~y=He4X*^=hDlmE(d-l@xsQ z9iiQgvdg)0;hNceLN87iMBS`!z(ba;uKK8ORb+c&WQg{?$Mi`_0Y~F$3)|UrLDq+M zSMxYqaurGb8Z!>9Q1nssqA&BR@A2py!|J2NV5l=fD@MN~gl0XLpybPht*3{X#dr{( zHYSF-Ek(GN@Q}nOy@y=?vbMEjJ@ZL&MjY9BGDVk9D{SJ1B}GCfaeJTzLadX@ zq8vIo<{HUlD}~p%r6$=K&mA{&xUF0HdDyFx1KvoS?>fI_8t5dKOouSJ4m!R{BywFB z*C^Na)b=Cu&FBG-aM@iMy^+TDP{)fX&obF8tM&H-w;V9(OI$bJ2ijZ7Qc>G4y9rNW zty`A$tg+QE<+iVIKMntAGgzRrM4*{Br)q>BCUIb#)3-bJ~qo1vX~>N zPZKI?XHnAAFsd-k_PJ;<;OxOH_!M_B(th11U^5TY+tBQ|QQ8Gj9_XeZC}kfFiO!7@ zlajg6=$MV_RQ3dZ+{s|Ig09bZzO6VDFfYqyHVo-oOgOtXM+HC)_n1QslF!+3aluXB}X!=fYR&2GX(5>aP zKS{sV-MgSL^w6CjITO)E3`*2$Xn!>|iT2Xto-$hOS}2p7p|_+X>8T5V=vAK-ntwXe zf6DrSXv=p>^E=D1ASkEdWZ_W(E>-8@!b(_h0m%4j_Z`}JM+2YY^3ca7v#~X7Xwpuv zis~9{HIjFWykA%|*RKO^9P5hn(>dF(rxhyP)o5*db4SUY*Czyz2vVak&J<)X{qe|n zPp1ZR=sCM@&w$eH#Vo0qjbFK zoY4gW0K;@hcN8B&|K*|xegEnuKh|lHO{?2!SVEnIWY$R!tboM58`7bz*_}rpa4tUS zc)%Ycu0b`)p_x;&eYNP8yN0~u zwweqRNp?-~xf2%bzye!s=DFQ4y2PDHo-fZqRhquD2pdKS-$}S@S#%WJYrWj|fLVk1 z*~_AI=k{d>ZY7($8IkbE`5P7w^%j{KLTHM8yC{?`eaeSn9uDXG^@F4HzRG$Sz|8JK zz!M2|mOZiCa(}{wbx3}^MyfQc|tl<9CfYraGF_``+M(n&y z&Sa9RzmA(B5YlR}pv=1VV!=-W=^q#bSe2yI18PKt%2$r~^1lPnz)#jh!WGAo@W5;r zO_q=dBV)nL@B|27i_v=Nub?S)w|0%J2-{@u5EVr1*0s3H(QDGQuFzmF{0tMNRj-X? za-(sdCTZDoOX1Rllg}5DI+}39>i-NL6{4-t@*n?9&7Z^g@^&1y^c7#{MTJ^5@B}1$;f2niWHdwvlg&6)3B6 o0RU_77j8bnNX`;QWNhBQEd=wCH^q9uJS|1 1|-------> iqMeas + % | 2|-------> actVel + % | 3|-------> actPos + % +-----------+ + s=tfq.InputName{1};tfq.InputName{1}='iqMeas'; + mot.ss_dq=connect(tfd,tfq,'iqCmd',{'iqMeas','actVel','actPos'}); + mot.ss_dq.Name='simplified mechanics, simplified current loop, no resonance'; + tfq.InputName{1}=s;%restore plotBode(mot) end