From 0b03c2b677f06aa2ce99fc19966e5e72822096ce Mon Sep 17 00:00:00 2001 From: Dan S Date: Sat, 7 Oct 2023 16:53:59 -0500 Subject: [PATCH] improved the pid calibration algorithm (#62) added general pid documentation Signed-off-by: Daniel Sherman --- docs/G-Codes.md | 16 +- docs/PID.md | 188 +++++++++++++++++++++ docs/img/pid_01.png | Bin 0 -> 44095 bytes docs/img/pid_02.png | Bin 0 -> 46492 bytes docs/img/pid_03.png | Bin 0 -> 48961 bytes docs/img/pid_04.png | Bin 0 -> 41329 bytes docs/resources/pid_params.xls | Bin 0 -> 36864 bytes klippy/extras/pid_calibrate.py | 290 +++++++++++++++++++++++---------- 8 files changed, 398 insertions(+), 96 deletions(-) create mode 100644 docs/PID.md create mode 100644 docs/img/pid_01.png create mode 100644 docs/img/pid_02.png create mode 100644 docs/img/pid_03.png create mode 100644 docs/img/pid_04.png create mode 100644 docs/resources/pid_params.xls diff --git a/docs/G-Codes.md b/docs/G-Codes.md index 3fbb9e2cb..c4820944e 100644 --- a/docs/G-Codes.md +++ b/docs/G-Codes.md @@ -916,12 +916,16 @@ in the config file. #### PID_CALIBRATE `PID_CALIBRATE HEATER= TARGET= -[WRITE_FILE=1]`: Perform a PID calibration test. The specified heater -will be enabled until the specified target temperature is reached, and -then the heater will be turned off and on for several cycles. If the -WRITE_FILE parameter is enabled, then the file /tmp/heattest.txt will -be created with a log of all temperature samples taken during the -test. +[WRITE_FILE=1] [TOLERANCE=0.02]`: Perform a PID calibration test. The +specified heater will be enabled until the specified target temperature +is reached, and then the heater will be turned off and on for several +cycles. If the WRITE_FILE parameter is enabled, then the file +/tmp/heattest.csv will be created with a log of all temperature samples +taken during the test. TOLERANCE defaults to 0.02 if not passed in. The +tighter the tolerance the better the calibration result will be, but how +tight you can achieve depends on how clean your sensor readings are. low +noise readings might allow 0.01, to be used, while noisy reading might +require a value of 0.03 or higher. #### SET_HEATER_PID `SET_HEATER_PID HEATER= KP= KI= KD=`: Will diff --git a/docs/PID.md b/docs/PID.md new file mode 100644 index 000000000..02be267ef --- /dev/null +++ b/docs/PID.md @@ -0,0 +1,188 @@ + +# PID + +PID control is a widely used control method in the 3D printing world. +It’s ubiquitous when it comes to temperature control, be it with heaters to +generate heat or fans to remove heat. This document aims to provide a +high-level overview of what PID is and how to use it best in Klipper. + +## PID Calibration +### Preparing the Calibration +When a calibration test is performed external influences should be minimized as +much as possible: +* Turn off fans +* Turn off chamber heaters +* Turn off the extruder heater when calibrating the bed and vice versa +* Avoid external disturbances like drafts etc + +### Choosing the right PID Algorithm +Klipper offers two different PID algorithms: Positional and Velocity + +* Positional (`pid`) + * The standard algorithm + * Very robust against noisy temperature readings + * Can cause overshoots + * Insufficient target control in edge cases +* Velocity (`pid_v`) + * No overshoot + * Better target control in certain scenarios + * More susceptible to noisy sensors + * Might require larger smoothing time constants + +Refer to the [control statement](Config_Reference.md#extruder) in the +Configuration Reference. + +### Running the PID Calibration +The PID calibration is invoked via the [PID_CALIBRATE](G-Codes.md#pid_calibrate) command. +This command will heat up the respective heater and let it cool down around +the target temperature in multiple cycles to determine the needed +parameters. + +Such a calibration cycles looks like the following snippet: +``` +3:12 PM PID_CALIBRATE HEATER=extruder TARGET=220 TOLERANCE=0.01 WRITE_FILE=1 +3:15 PM sample:1 pwm:1.0000 asymmetry:3.7519 tolerance:n/a +3:15 PM sample:2 pwm:0.6229 asymmetry:0.3348 tolerance:n/a +3:16 PM sample:3 pwm:0.5937 asymmetry:0.0840 tolerance:n/a +3:17 PM sample:4 pwm:0.5866 asymmetry:0.0169 tolerance:0.4134 +3:18 PM sample:5 pwm:0.5852 asymmetry:0.0668 tolerance:0.0377 +3:18 PM sample:6 pwm:0.5794 asymmetry:0.0168 tolerance:0.0142 +3:19 PM sample:7 pwm:0.5780 asymmetry:-0.1169 tolerance:0.0086 +3:19 PM PID parameters: pid_Kp=16.538 pid_Ki=0.801 pid_Kd=85.375 + The SAVE_CONFIG command will update the printer config file + with these parameters and restart the printer. +``` +Note the `asymmetry` information. It provides an indication if the heater's +power is sufficient to ensure a symmetrical "heat up" versus "cool down / +heat loss" behavior. It should start positive and converge to zero. +A negative starting value indicates that the heat loss is faster than the heat +up, this means the system is asymmetrical. The calibration will still be +successful but reserves to counter disturbances might be low. + +## Advanced / Manual Calibration + +Many methods exist for calculating control parameters, such as Ziegler-Nichols, +Cohen-Coon, Kappa-Tau, Lambda, and many more. By default, classical +Ziegler-Nichols parameters are generated. If a user wants to experiment with +other flavors of Ziegler-Nichols, or Cohen-Coon parameters, they can extract the +constants from the log as seen below and enter them into this +[spreadsheet](resources/pid_params.xls). + +```text +Ziegler-Nichols constants: Ku=0.103092 Tu=41.800000 +Cohen-Coon constants: Km=-17.734845 Theta=6.600000 Tau=-10.182680 +``` + +Classic Ziegler-Nichols parameters work in all scenarios. Cohen-Coon parameters +work better with systems that have a large amount of dead time/delay. For +example, if a printer has a bed with a large thermal mass that’s slow to heat +up and stabilize, the Cohen-Coon parameters will generally do a better job at +controlling it. + +## Further Readings +### History + +The first rudimentary PID controller was developed by Elmer Sperry in 1911 to +automate the control of a ship's rudder. Engineer Nicolas Minorsky published the +first mathematical analysis of a PID controller in 1922. In 1942, John Ziegler & +Nathaniel Nichols published their seminal paper, "Optimum Settings for Automatic +Controllers," which described a trial-and-error method for tuning a PID +controller, now commonly referred to as the "Ziegler-Nichols method. + +In 1984, Karl Astrom and Tore Hagglund published their paper "Automatic Tuning +of Simple Regulators with Specifications on Phase and Amplitude Margins". In the +paper they introduced an automatic tuning method commonly referred to as the +"Astrom-Hagglund method" or the "relay method". + +In 2019 Brandon Taysom & Carl Sorensen published their paper "Adaptive Relay +Autotuning under Static and Non-static Disturbances with Application to +Friction Stir Welding", which laid out a method to generate more accurate +results from a relay test. This is the PID calibration method currently used by +Klipper. + +### Details of the Relay Test +As previously mentioned, Klipper uses a relay test for calibration purposes. A +standard relay test is conceptually simple. You turn the heater’s power on and +off to get it to oscillate about the target temperature, as seen in the +following graph. + +![simple relay test](img/pid_01.png) + +The above graph shows a common issue with a standard relay test. If the system +being calibrated has too much or too little power for the chosen target +temperature, it will produce biased and asymmetric results. As can be seen +above, the system spends more time in the off state than on and has a larger +amplitude above the target temperature than below. + +In an ideal system, both the on and off times and the amplitude above and below +the target temperature would be the same. 3D printers don’t actively cool the +hot end or bed, so they can never reach the ideal state. + +The following graph is a relay test based on the methodology laid out by +Taysom & Sorensen. After each iteration, the data is analyzed and a new maximum +power setting is calculated. As can be seen, the system starts the test +asymmetric but ends very symmetric. + +![advanced relay test](img/pid_02.png) + +Asymmetry can be monitored in real time during a calibration run. It can also +provide insight into how suitable the heater is for the current calibration +parameters. When asymmetry starts off positive and converges to zero, the +heater has more than enough power to achieve symmetry for the calibration +parameters. + +``` +3:12 PM PID_CALIBRATE HEATER=extruder TARGET=220 TOLERANCE=0.01 WRITE_FILE=1 +3:15 PM sample:1 pwm:1.0000 asymmetry:3.7519 tolerance:n/a +3:15 PM sample:2 pwm:0.6229 asymmetry:0.3348 tolerance:n/a +3:16 PM sample:3 pwm:0.5937 asymmetry:0.0840 tolerance:n/a +3:17 PM sample:4 pwm:0.5866 asymmetry:0.0169 tolerance:0.4134 +3:18 PM sample:5 pwm:0.5852 asymmetry:0.0668 tolerance:0.0377 +3:18 PM sample:6 pwm:0.5794 asymmetry:0.0168 tolerance:0.0142 +3:19 PM sample:7 pwm:0.5780 asymmetry:-0.1169 tolerance:0.0086 +3:19 PM PID parameters: pid_Kp=16.538 pid_Ki=0.801 pid_Kd=85.375 + The SAVE_CONFIG command will update the printer config file + with these parameters and restart the printer. +``` + +When asymmetry starts off negative, It will not converge to zero. If Klipper +does not error out, the calibration run will complete and provide good PID +parameters, However the heater is less likely to handle disturbances as well +as a heater with power in reserve. + +``` +3:36 PM PID_CALIBRATE HEATER=extruder TARGET=220 TOLERANCE=0.01 WRITE_FILE=1 +3:38 PM sample:1 pwm:1.0000 asymmetry:-2.1149 tolerance:n/a +3:39 PM sample:2 pwm:1.0000 asymmetry:-2.0140 tolerance:n/a +3:39 PM sample:3 pwm:1.0000 asymmetry:-1.8811 tolerance:n/a +3:40 PM sample:4 pwm:1.0000 asymmetry:-1.8978 tolerance:0.0000 +3:40 PM PID parameters: pid_Kp=21.231 pid_Ki=1.227 pid_Kd=91.826 + The SAVE_CONFIG command will update the printer config file + with these parameters and restart the printer. +``` + +### Pid Control Algorithms + +Klipper currently supports two control algorithms: Positional and Velocity. +The fundamental difference between the two algorithms is that the Positional +algorithm calculates what the PWM value should be for the current time +interval, and the Velocity algorithm calculates how much the previous PWM +setting should be changed to get the PWM value for the current time interval. + +Positional is the default algorithm, as it will work in every scenario. The +Velocity algorithm can provide superior results to the Positional algorithm but +requires lower noise sensor readings, or a larger smoothing time setting. + +The most noticeable difference between the two algorithms is that for the same +configuration parameters, velocity control will eliminate or drastically reduce +overshoot, as seen in the graphs below, as it isn’t susceptible to integral +wind-up. + +![algorithm comparison](img/pid_03.png) + +![zoomed algorithm comparison](img/pid_04.png) + +In some scenarios Velocity control will also be better at holding the heater at +its target temperature, and rejecting disturbances. The primary reason for this +is that velocity control is more like a standard second order differential +equation. It takes into account position, velocity, and acceleration. diff --git a/docs/img/pid_01.png b/docs/img/pid_01.png new file mode 100644 index 0000000000000000000000000000000000000000..75d55f646a61b77bf07a2b6a14333ee83bdab744 GIT binary patch literal 44095 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

Z}Mg?+mzD@G>dRuoxR8RwZoQ9GG=65 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 F{||Z6;SB%) literal 0 HcmV?d00001 diff --git a/docs/img/pid_02.png b/docs/img/pid_02.png new file mode 100644 index 0000000000000000000000000000000000000000..a4651dbce7dcdaaad858b66f30f8c49d0ec053ac GIT binary patch literal 46492 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ʮAqMQ0#VWu2Mi6^6#u>H{ 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 HKHvNwe98tQ literal 0 HcmV?d00001 diff --git a/docs/img/pid_04.png b/docs/img/pid_04.png new file mode 100644 index 0000000000000000000000000000000000000000..8c1f97effa66053af43bd8cc4e6de04db293d835 GIT binary patch literal 41329 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%0D64v7%-FTl0(? zuHzWxe?7{Qp#(MfBRkqXRL+gnz!~8~UhZOT+7)BiZnuwmK6F~)fG{GEo}^0b6mawN zZgS2bUt6yvhkE%gEWS-n6U&6*shQBBe*50Hl_u4qZe_&MvB_Ou64eJ$-+caw3+*Vx zJ4D?%e$F$i_C9xbkZb5T)-u(T|BE+mn27Y%?+aaP3t<3<*^DyB2s!7%m^y$UWtJIB zVFPPpdP15umiuOwytrp|sbw2$>Z$V&+fnNu+Be7pc4JqFGrg>uNk0C#OU;I|1DAV` za$C2C|0Y(OGSg2GBtQ90FWGIFJe{Vaddli4dwo{}8b@X7*2Z+Z3&ZOIafd3IDHJCZcw-Hn1)bpx6&v-3VjdM2CbsG4e#)(4s za-;r6x>iitaxZB&YQT$U_UXC{^E6^9CUcfLUXK9@XI-omBpCgZJ}V0?pHZN+?-=pz z_n!AI{2F5)Jfx#%Pzg>*wRipUy;R*tG;B_HiO9j0`_(3@;$g=&#g{vbVlVP z&m~tqK6m~Ny!LI)k)@5bvTHi|>VwvSUs+{3#~3{cA(Y3N!LW__>i!<4CaZG8N6k$( z&uxfNqZ~b67|?YINysH&Z8S<)jYA`T>sKg~ee?iz1nVn;PV*FHj^twLG-icoh6B&s z6W})%ZF;iH9{qijR$?L)kEy0NhZQYU=XuKIsm?V0p7KfJ<;RQ}CXIHHR?$8jqH8LO zzQzbJR$RVQ9q3hE_}qBF4()gKjk)R0w~MGfPJysKY79IMyUdWEL0o0+xWfLj!! zWq{F{PM&2ii_zuMbrgQ?@35hd^fCa$cWD4%eL08=bkUIK$*8{fY)!GZ1q|y1>-W2A~o0Lo&0h!cSRvmN&f&r7@N}`&y{3$1j^6b%PUK$I`rASQ*s#p(AWL zFHFxvb9^TOJF6Rf`QxxZmG8bKPYYbH0ZoyzXw#KU(Gg4tpmDi{^=D@w)cp&C75%HJ z&Xl}TE3_vu=VU@g#$1eWf^S)EnH7p(m(|o>JP&wv7jox3Dw=mucX`9F@fuIu4*um} zp(se+#)LLOL^>?UjRbJs!Gs&Dqnbc-ygq9I|8~Enx2=A;4aj6gc@@HqOm#0ay z)gfcuSUu1{r(kstGGEk1%a=&Wm6+ub$eAGKJgxqSuA?`(sJK1XIr4Xs%ydoLC&+#H z-cZLvmjL0^XVXV$adU@{`|Cce_?Ua-`?wCtu%uJQyZbHVxSYdcetf@x9dvg)IOI624)Tk3U1%zw*~0!bY?>0K3{a8hyx+=XoX3 z>`v97Y!qz4e+Xy)RxrV{OxL*aT_bEN9%(8XzmZ9tyzQ~@bqF^~dO51I(a#weJ<%hk zPhasNQgG*Dkfvqf)f(@JjKQ+{w?DCy*1Kh_jM|*zJU`PU;w@%dd?u{ohJ6_XWLdPG zUR8lOKxAjFO(g}hgjxy1EPj)&lG%I-^e}ahW(#KSp_!C*!EFKq&1Y4|8krsFwoK~6 z=%jHKJ!bMwUCTC>hhFVr0;R11 z)@-&){}dE7tSo^brml~0oXw|%XWfY*Dg2FKcv_Z&gBK*izwc7opKqJzz4u^(czp|c zjOVlc{rsKwpF<>k@HQ=I}fFqC%Ud*XC zwAV{0ET;v7P2rTH>c522=NU>1fuhLhs&WY%1K$SI+%RUUThL4#*~4;uVI%!F-|%&Q zPoT3?XkQ$EbUseF6sXprD_zkwz3FIgPex*4VN>{?dEj7B;I3IN;N1){{MZXA?kyag zsJPc03b#JD3Z?V1^x%QpjyVO8!w0Wk&8iXgCf^#ilnuzOT21-j^+DyrzITpB+t2Q| z1O?t4#U0y64--9aX?T180U!M{j+b_r>_4=B{{fDj7tWl2LrAdBNm$C5tn%*+tAr-r zPYTW;GZCL}aBM8|DEU=RPTOSAQ=^ewMUJooz z21_(He_;d;nQWt($tKTzZ;(VVr% zHSLg#L~!E`@n4@V?l|N6?7+cA1ux^yK=KJ#KvYppAGT~#B`QhZIJOCKfqZeW3v3ZgHWpB!^ok-)9C^>&}VX4NhRFdbd3@Ae>Xg8orY4TA#Y`t0dNwI&6xR zvQtPZ%_Y2ftzGi&k|;sTP#n3>5S}0khtH}OGMmMpJf~_f89Sz5TizXY80t=V?_NSr z^eCaUwlqKYmQWCVa{zvP_`!`fP*r3Bw=vk9Tu+fcdbt}3%= zsUJ(~`}$WK9+HZUVMy14Tu86uuN3^gh7ZOT@1ydzKR+zHV9(7)ayG(N;J>+3604ses-c>cB{_(o|b$2*P>Bygoe%AD6hlbf-PxwbbkLyr@4pF zzF|q#jPdi9CK&#f%hK08HWJABFhykZ#tr(#35VjiwJ6fZoX&$`yg|^oK$NlDx1|gT z>}B}=Yc8}#J!XeCa7;ZLjqdqsuWWSZj#ERdhyxeDIB6L5(<@eN=2OKgK z){adwNB~RsEG@2d>D{;qeP8gZZnRJW&Q#?CORkM} z_nVA&CQPD`u2@Np=>)fF@Loj|BgcYU&yU_@WR$}fZv7Uhr(KMdBPU+`&hrPq&uT!UGNFl|GwdXN2IVj%t&V;i4pzGLgZ;~S`7Ave2 ze~zns356R3sKT$l{7%UoL8|If%V_Qv8oFY={5^)))qB=D zwtCIAIW|oG1z(rrx045UQ;*&DuZA70ojWI)b8FzhZIPY!my41sY@oO!-VIHMWR35d z-p@-m*a*+%ViF>quOq#$K0bfv!>8)$&;D3urR+8PMzu-gN};`b?YgIW!U<a|$5y3@livad$lo~5E>4_%l5Ks=s3y|6GY6tRnd(n3nVm35LCqT(r7OK0Q&I_MccdRmuwJCR5Gt?v)YdOBX)a1rsX$x`iJP64=>thg znAsgu%pO1WmvQU?3Gau=Wo56LcLZ~!^=q41w|}EsUv!gtSEckqsXh%NCQ?#Tj8uqm zjYC_X7eBq&y0)N2*M1)OE(0OsmL66}c>2`q@nJ>uv0whx==`|mpINj~WGAur%P*N9 zfWv$1z)uIHE>nRn;pzLVdZ-hL_^3KoE2za?C6GKz-~2EJh}RW7I^u_ns&`c*;;b*x6uyj%;a>E9hr{&8Tf#Qqvz z>oe?MftSu@$q=6=I|Pbz9fkW>wyBe!8N4(4Rje_RZxvtIth~5G(Nq@JAM*UwgWW9v z4?JV&X~BLE*B9{RsgYri3RN>F>4f+v*HhGz*srwtS99q+<5zt3wbCzhtVoLR5qOx*R4k0zk=I1XK4QGMba`?v;5M#g_@f%B*5aIOsg`5O}2~k zowmEC&@p||9KN^WJ$XjRPhIYf(KZ={r~QGS0&`GtIf3e*A!K(*;`x#1!OEYU5btl4 zXpa@!Mn5QSl};FJN>3mk!XH9~YYnBVSYAGsotU=Q3(8mVtCP3P>43$|7f!QG8Z&_z z23bGq{jP5^;Yed}0*z1NMLOrO?qjJvu>spo`)7@`&UV^hn&lNWV@MW>=0ISUdP$5! zS5EfLc#lmC%2Y9EA_tTpRU#=7$<64~ynKzeaWsWOs=#NO?{B!sQtu$6H=CE7UHLEf8uS`}*suls0GmF+fZEwaz& z+r^T*dS?9@Ugb>0*;WjT?8B-4O3kd|xa^H&lL8-u^fwZGC6p&x@tT^yO22k#=T`?i zwuUC`-B{75dwUCE+$NfQoj20dVN;8?r=MR}L&nPm56A~3dIS-D=+~u}7x$OFl4cZr z`|Hhgp@%Ak=~tTM+anLFS}U`-zItHTlo>y8?T#6(R|;I7SG^!{+GfDG@zs@J_0i}X zcaM%|6<%t=E=j`P8=n#DTpYdQ#V=ca_>8#CBJu>Z0L5eG`fBa8)Y&s`%qW}i`VEzn zSIXsc8-FRUHN!iWkC^RK89Y6}NO!cptK&ad@NABJnrZp}wD(?NO>JG+Xt01NSU^QV zL6oNS-a$b{q^Sr9NRbjcC{+l>f*>GLrGzdD(vcQ=RHP=Mw@_6ubb^%7;mjqAdlg5y>f&Fk*ayzu^OxOG} zI?^er^TT74c)Xmz@@VN`@C@fxmuK7ja%oaXicfZfQ=BvhcD;$_Oh?S&2X{<+6^r47 zI2*^=yholJpQ#8_(hfq>uW_=se#Bv#g_Ek6;LY`x%s*LjMNrjqc2YNP1k=yj2xzoy zw`bq`73Ti9yC-eCN{vLK*SAk9H8yA-Ym*ywcj#}dCwR8FidR<>XX9IHdlx>=S1n`f zZ1`GMrBGre2_EsfvP-Lr_2}Y7O{Z1Oey2pm*B5PsP#SpKC|)BgLvPdI(^4g3V{#df zray3Kin&CrK3uJr+?Kmu?{^)fbR1F?1HG^>8ExjeWFBh*I>GSKhOk+jc6Fc6M!ioA z0Z!!Q)wSZ_Zs~jL;+Smbh%1*-ZkqRjC7g>DNQpKoLR@}f6l>=YuA(e)NVi#fd;Y6F-PWhQ@mwQ8E5-hDxI%xIwes@fZa zU$JZVGwN-Ztm^wu7#0NPP5k;;v1N!CkzQIJl4)P}L6>~;l(EXy6>MYT9}w*y@LpAw zW-f(Cokrw{bKr)X&4u>g5bI$6WyUoXDZVP#WUgT$!&r2|skS}1qiXZ1Swmo$EIzW& z;bYz<*G--XO(Ye|h-@y^hT!JC&^PJxg@WwmwgFx==`87EiR~%%COYB72a|~Nsm;2# zIXHhA$eQ;YEP60fNz9^|$m@4nEq2iJh+4DZD;#FgZJU(iM~Ruq^YPuD@N~R5_u)1M zyNDpf^sO#9RnNY08jG`XYY}2e@NiwTXxvzE5WY}1E3mij@q$C^-YbY_PS(}lWxR;m z7@72j%rUHF0;6qLhh!1qyg`zL3mr8U-a<0G>cUyJ==k;JF|iHDV(oSG_PRXc)|E*) z^hzy%!6aW!#9q4ywbMVTUGX|dpSOFPibP`R?vyE#9%WSg*l@mJYIMrTD@SbBaHjWFB1pZjeTwwEw2p zwz@l)CET;uw%J=|*;!KZ*RSA~LjtTe{#VtCtx9M5;_ILJ_B%?bd8|K`QB;`m47nDZ zPRqB#21iLhLZcir`qPKMI*r}Hj0av;Q%AX=4RdJAM26+~X(gMhsh{McQdyVF%FE1| z8(0N1R4$swi-=i1U+BEwIG~c(G8hb>exVUZe7!VesVAO{F56A~i zCe?96J*O~`)V=2;l48<0h-cep?-&}|uPqZD#Mj)4wIVcSiRDv#^au7~b5KLpen(hl zhuDL<8=rQw>m?TcG@zCY$Ov7204vw@T)2)1jPLKYIP5OS$2rhQIgrsmnOojkojgQe z&~sz$opf?<@yVNc`f&@r5%jFW8lI|4=L6RI;zQh&sx>Xmi6wWBb`P;q#Kl|3o<~PV zjI?jp9cmH4CHWLg5pf+(Kj~l1f(s9>=vrT}D7!oT{l#tiKo5D8CPkd>J;Rq-;Rjw#}Ars&w@)+;e6@ zFz!2F!HjaWRJ7Jy>h{Z4m@cYH)$@4ut<$2NlNE(%7&1$mlgiCfz6=P8=`hap!L*@q zs8shO4xn!-xJu$hhd&EuJi@%n$KQ+1cd}jYQ-jx=SNNn}T-&N>MpGIn+wk2HNWp`d z4crWB*xuUOdf-m9B&a&|tBx1t^aY;a#)7+lg)5}g)!Xk^dAO8Eg+S76q%(G(f8!=Y zG0GVo+i)EvG}_)YXe6f{Rqctjr!jOb%#bTiQocK7J^l0nRVmKK@Q!A)=kwL6RSfEm^Ghz8g+})V zw{Om#*l&qe)1qFONPApS7amwDX)zWkNL_a)dc^!SCW#uavhG_cleqkm;b9ZULQaCA z&P}$t+^SJqO}8a>(yhbM1}WW5rXQ`xs-MgkN{EcTUu>CJ5ob!!2+vP($z)!CJJTba zp!Q4)f3P-zN$5_NvS#}6G(wawS8lKak8qY;|M$VMxW~;KAB`|UZUzNo-c@~!pRHQV zeG2F_@i9dXaz*}Uy1&aY6j|^XFlbPjW(dwzC(9b2FJ{!5j2&Lrkqf~0SZ1uAr=$A`-$Oj~INRE&r(2wn!7!0oUo|c1)cDSTzuIgYd66g{ zx3%oy6Xj*q`p5|7X`pFT^O{EYV&uWPz6(QJ6;XcL%$SOiSo9~~yy_FZIw2QqdQ*h34C*t|9n4p!}S)oqRP2U`+39BDpKt7 z^?Tcb6vC^69}M1fCw?r>U1A7$fBuwmnoh9tDc0yaB^LQ6SRcpB>VxuCNo_7V29bwD zGBucb=hrV(4Ieohx+Q5SYB?t7%ZsK=^k5qsL)+$j%cVJjmJ+wn%DAt<=sBA)5aMvU z?MM`SP(1JI7heW!!SXhtjT$~AI)cmg@i6^S8xs4=2hpioKK@|A#fNwoW9Q}ZUJ<>l zj_&MED*bl5aI5G+#g{KiMDg!wq3)|S1NCLnWDgx<{xggKQo}ajNrEv9e zP44#kig?xDwmXWXcM<1=mt591`VE$=9G)(hTQ$^tjvsqQqFF_mQ<~1phGIkpgV!n) zJp0{TLk6+mdJ|By4FhX1=~@$#i{e72Mu9`_y@;*yM!BbY2q?sEZ4Pe_-qkuW#t{Sx zTfJyKj)5?@8&6G+xi70B@MeUHmf6tjGQ;c_V9uA84B3|6=3Y=FiM?UKzxO;kG$UM< z$F%;}jI?h+@m|ollkbX|CSg_aT8(G=T&6w`Gz(PI|eeP<}?>$D!Nmr4Q-86FeyOmY# zvtC^OFG@pxb^Bovl2_lIYIq8Fw9eQ-uLU3O?Lx(7N%atK!~}87uJtv%pFSiXg!fAL z8SX}%Z|^1P#v+JUoNwz%g*PkVNGWb>meh4JPyCvCM6kaWGZ3h zbF|_8fl8IYx12;8*>$tE1UO!ied)Q{)^v3RhayrF_TqgfBJ2jnCT=X6kbB9>uHj~J zXOJS^hui6eU;G>glX}a2!!u8j@$ie$SIe^G`QoOlLZeP_40p93J+U8u)Mw4f^+;j& z)u_sZ1t%lF`0iNmUx;bqOrGNpJL?yElVYc7QAW`Vztl8jil*+AMun&>ot+5#$f!<= zKPV&2I_C7Qu8%5F0F#&)y+l;+?2h?%D8kl2`-58fnq&ttSFgVV6I#aO?^hbKgk|N< zpq!QYsi|(~!a|=D?4wQ{w|vQUKUabEO>GVHAti0c#+$t*4U{DDs^cYB?oQ^;pSjQ? zIv*e5UOq~Q8e^j_ypv?ar*9DV=%IosmsJyC)`MA^`+`X1=BMd;S(cJGBF2s``|Q|# zKVBb)KwpcDyofWU;cKOxp~*R|%5&V@mj+j(BpHbn9h8bf8a7Jt@V%*v^%(D}RQr!k zsN;Kz%|xvCXv`k0%hZr(tqK&~^lZIj|p&XS=_hipGNgF5!-KC zekL+g9;cUl#J|~mtL}r;cYY2TpEQIUZ2v36cOwHQ82O{b`)Q{%0e5`=mu+d6N@9^p z)hYR{YJ+VSw+3r^d@sw~JWs)gx)~-`_8arhs1r)iKp?H z7!8#jY-10p)#WZ=3EF-vXDiotRD;OPp(xf6ec8?$;}pj9urV}vfyGDIdPwiAFsJ;e z7oV5KReU!55AAz$YNdZ;bk9 zZoooWq%NnZP(Dwa4P06hWY8Cx(LaFIzA!XvX)wHeq%s^~m2Ueg z;b7-zZPq^P43)&uca35EzE0}*?;#F zd$hqd@J`f_?J~EDm}t59SXU)nt9-2CjN|1i77@>RNTUT;By-xlWQxStBEv6pFG&8V zq-L#_R=)=fTqyD1>L?S#WAhGT)C}mtlLLH935aGpwA7vtc2$LOj*i zGn`l!HBq}nTM zStE2CqZu;lIa_kwCTpe=E%0Fb?CKZkoT>vUv3o#losam5n|}`f)dw2M$;dM-MB7jJ zhhs}+#L=|6X1DtAuyzmsqg>Y(&m%aC6-FYX7*Is-?@Ltn$*#Y?hRRN;X}>Syw->Hg zHhoT7L=T2(vDh{0goq%bA2;4Z@rD)OWFI~y#b?=so~}N6giAZ)gmpoIS|XK6bIqkw zYDj;>puVoS*^yg*`%H;MPo5@i!PGJL7GAnnqA#k(4(Tpkq=?&RS8x!=9^ziMPfNR| z*{E?UW;V3kT9Kp};nn6#n=(H=_C{3CT5Y5rS)Rp*EjN(UF>W78v%X9m2(dC1d0ow$ zJ{GMg|ExvcE>mMN!pY~f7Uu?@(nYjJ1D7%5+E8tecz8Oq+wh&SLLp$nop7Q(G2oKo z&S})JH>m`=Tpm8tSKKUn2!fjT=Py`+dx|ThXRItK)J6@?uU_eXOq}7s_gaRum&hO2 z_YM`$+Z-@F874WJzzKW*)X9rbo}yg#{6$}KnA;#kp{XJ3{yVANp#pvE;9{>bPR##?0;ea&wp3Fe$QSmhn6 z=`~pYz$T>DGf8Dn@hy>M(s6ggjEmulGzYKq!0AN0W^+nfToDeEIUTf}X6El0Wz2I6fPINU`kl-SIzG0Bp1-a|++b^8j|paxA6lHoca&Lthw{!;Kl18Yf=+Vi zRm^Z<`h)jAFw8`B!D$POooj%|lkn^O?ZuV9br)%W9<4H2m>Npx1RRimxPY8Pg<2 zkBR7WrP#@y&~@&r64Q2-i3f3`EmX{pjR}JX!y!Glhu*Al@5kKF_4~p~T)9h2QqK!_ z%M*(Bz_dHSk{Q}Yf{1jkMi<kGA3)NS8BDt2hFsh&A*44_^FyMI z9(KzUkeq;?X}nnoUUZGU#{*X^BoN>W-~yDGE6*v*+;}B`A38P~?rndpuHP+dCEa=q zm*g4gv{?MA?@&uVg>DV64nn$gcHnN&RyjtxvIq9$$5sBfn7Axc!q941rJ~po4Q0F0 zB;9Cv3m`Bb_d;StpLXu@KG@|y2VGiPA~bR5iEJ;(Z<~Ufwpn7pMKxdVJGWg+OG~S( zviS@tkK4t$pb~M&k~Mu;L{8$;)VzvYXS`_XV7fL1m+azs80?eAjtK2*V0WQvK~IoH-%4sq%|sIIS8}*=O5l#k1_8nv5T8%OZ7)M z{r*uk?dZl!!n$^pE4=t#V@6_`XjOPNi0*0|alx~Luw;YrYv7YPNkD>S%8}>WEIXl3 zxfDIst^NpJdPWL2OVn)UKLc&3b8*wA94WEWHk8iMX`IYWWt~D!4T9|{(dnlm%<>pv zh}VYuV6YWs8~(RaBA7^r_qrcj!I{;>+TOIPs<-YdS2Syswwu+|7N0kvA1<%m6o8Ej zcpQVlzHtIu`NeU2|JA9{%Oxoz&%{L5OZ-mAj(hwfR*Pyqe_itZo+aTfiUyVt`1dCi zEYqNzWpIfpTugvz!?@Kf{>NeG05didYknyVC7jmnJ~4_SxuXrtJj3LzW&po>9PB0^ zQ(^Sg*3xyeC|`e%l-9zeh8k{8)6Q7iskxEkG)<`+#S?WUe(?RFjd#TitRkA1r$#^V zg`iItr{D{Tq804PnrtG&c;(kT@6*#|8j^XXlEaKN$FJ>zm@fArXd+H`H0Nud7K!I(M$X=KU* z+g`Oa(14ie5U}Bw>;KyAGciO9D?d|p00x_j=r;6iRiyxBQ(|Babw!iyif^d?9@4$V z=kL?jibm}2X}b*E<^Uy>>5pu)ecz7!74)B+BvYs((%(8gw0aD+&-q@#$Il`|PBtDc zx`QXi;#LU1?LwbScHd5mikm1Fu5z2&Q;&x>R5&0fHP_v+UJ1Ruamx!rWs!{wz9C4>bL!+WAM6_w*|uI~9O1wTno|fHtA1jW*b75& zX@9Jn)#rGsyJG;=sSM!TI^OMlK}V4nlU*D?#h4q_&RiKDe(~ocIzRTD&9}8Sq*u^9dh9E!e%Od&(gLC zVPXPVRV%g;wy(>fy(p6HMeCQZ;9lY(q-oQhG>%W+@Lu+{HY&(Us?@fr&f=Kiut3Ux zdsOP(9Q=#?6NM4O5Y`RI6bZ1<@&3qm2+ZSRw3*T{cFb7+|)jCjl%J@`4s zaut#0(F=2M(cMl}eK=WI$3_Rm*<><*y4fYl?*S&Z*Y~f-zA0}VI6cv2?xM4W`zr3> zNZbRv_LNL-nUu0ei&Au5=)v*=Gd9~y|1%bQ3jwsyvp04*{p1Jvp04#zMu-VW|4d2N zR|ue1_ZiZE;JWH=PYnw^{Gan?)BgPVlQ36vL>$~u@noVaD>~!Dhlb3a&Q2(Qu}z76 zbeYn2T5MB_19ug-#(S?#a2&TrD7xoFq#ozZcnLyCdBy{jFI_mzezm1WFFVVV1|PA! zdoQ=8{KxZ(zvtH+76zA`6{hrjxSgs>9IEOlcA4sqz3^J%%XFc}Z1ls1P*wu?Je1I9 z<5txKsjh*?Bf+x<1;F**Th3S9W{)h{p=OobLwq}O6a6?AEH4hdrMqBM=N@CE42N%QL4t$cfk=&QuDI!aHlELKu z@hpT@{opumol>CKw^#ovwo%P9vDDxc9jA>Pe)fbRyW`HDZ*)})%M$` zr-b*>hC=-%cEX$q&f(B^UdDct*|)7HpAE6X_7aaUHsg5Cehd^%n=DPWy>${PJ1F9_ z7Irou^X76c>{ijPZ~$ZhCb_vb_r5#DKKx&HubXLZOSfo9kYmwE-Wp@LA^5 zHFFf$V9{jodZ1XiP_Of|^Hi;*cJ*>1UTjo?DaOlds#wy6^7&_Dfm1ZlKh730z&0R{W`^RgO^tGic0`E+GYGqOX3wpICR07J08q{G z)mCm)Mlm4=D`1x!ca>F?uo77c=3hF{KHH0FTdSjoa9hLM>ppPOG(Igiw|T&+MV3(1 zq3%Qs|NUgQmVn;Y>EafNeaRnck!r^6k2UecBf#AyZSs`?03A96yLs@hEwh2W_NDkU zTPuFVes6N?2N$K-Z7ut3_dwsDfF?M8<1m$zzz{lVe9r&QNlphY3m%dY{@g!}ZXv35 ztWc>5oq>Fh-T$xeg~zQV_k)4E_iO{USi#giX~gj-0kwmd0feCp{-g6jO zeB;~ySUi-PBE!3e>p*Hclmzd(4Sr=ah88=Shi>PkxU5W;#UjHcS={|$uVRz7KT#d8 zzUq~e!MI|fi63+00O=1r`@jBxjvB)z5?A$%{&`= z;Bu|@VG6G6zwGqYKtz`r3dE)Bu;E8+zm# zn0G(y3AR50Gyc6C4RGS0Owzr%go7pj*7Wc)Wax#hnmh)fF4&wB)wIt!i zAEA8r9FO0M2L{3?-@;1)>myI7u3>P~wIOr=N-;O>}IB6&` zObOT8yJZPlnib~YbAMzi2^<96hL}i}wQ4#0@t3`Rd7y9}5)(PZulEheZDuzn?*MWx zc=6MBv{;Z0fdY><8n<@FBLZo$qw}h;Pl;rnb-eHmQ&og;o+saQ)U9)jvz0@X@M4BU ztMIlD`jjwd*x%r>1Eo`AaQ9~u;#a?A#mDQuR47byUyn&x(V+)S5U@I_mt@+;vhhT; z+IAmQZ{`uf*~p8(*?cYX2DJ3gs|>kfU{7Spl?d07n@Whk7;W|T$=8uIh*Y~&nD)zb z@Dj}U2pKjA#0P*2B`v!5OGp-m`WhwJ>@7roS9}#v3pvYwE!Hwmb#o*%no3F*CVw^g zjesprx+B8$_rs?5lWRtAs~9ZS;(zD}XQjr)O(aA~{tz(@rv~=idx%`!q9c2Wqga22 z>w|QWH^r3HmaO&yQzBOV1bRUPkjW#v4!f-09KS4xFgX#}Iz2H2f?taWN28oGtQAid zYicLk8(Eo9uVD_A$PXd>?E!k+0D$(vpROUjyGO9QAMy zL^Vx^I}Ommk|W5Csjb8V?3wk56FA@vKgG1QPH(W2BT?nR@;LtiOQ0ZqJk{LDozuc_ z;XJ3s$!Fh+#y|{n`wfy>1ITx5XX zc4xHe3tn@zIpgFHR* z1yA@md^)3fQsDCeP7CW3`rGdzc$uTpg z7*RQirkp*n@&jZZ(92^mmJsj0DWcxod8uI3jwz;#hQ%cO_F)^?lUaqo;OLJdinZ`B z0fo<c5}_q$7xn zpbCceQA@rLGtD&VjK*Svi@Oe-%VLlAtI>PEMn!mJzk5FHZ0&KUX42@Uw>+R_eQtu_1A7ekA)_YQ~< z7PSV7r^W5jke!Tz!3LlF$6dPp{>Rj*v)y313)BY|Sf7qqXP24$kctH#15uSYBj!ZF z3i_;Kj0P&q0F4ybC``O&XGvO=j*rg>zW-VmKekLd`eY>v2jv3V-7^DJIDe4xx$Dn+ zO`oY)Y&q29W5h-J!QBcoo7c`A&FAidMwE_6^jiS?t1d%=4F@<3TW39y{@nWE{)Xg1lSVL0t{B>7(~Ee<Fp;z*5S32~JWy}GdqKiHoEB@{e8wzXEf_j<@IMdzZz#O^8wO+VAdtlt z?@y;r)xBMoE6l>GdnEIv*UdTDO0JuMIOP64HlFeMF7_3;X=51)P8@VUO48)(0Yrwm z+^Rw$R04f985+`^wj!X9bl2Nix-JC)9b5yG$q-sgoAj0M$B0nCwss8~)F(H%`T4~+ z*OxUMCX+P45%YXDvvdp00%Tn@wd2o%4;ubCqDh@U4sa8XS%Fs{LoS3vz^i@jlVE7(`gou-Lt@>W7NRadD3WDC-rCwUw>smOe|uhkae z)z15wDy-I_R|^h0=%B)f$&p9Z=f-SSuP+{o*)rYZ*P!a}cN^8)$|GVLsJ{ocvTIR) zFcZzC5{_w*DH0Esv9GW)iv#>olA`O0fujz>=622GPl7&Gx$2JfgS#~cmV!O6eZB+Y zQ@ng9hzy?OD1j1;#P+qSdcWAV=4YBUK(4kQf@FE&uPk?nFeSmz6L30YW1#Q~H<(VN z#X?necvwD&y({GTp2mz{m>Os1AiTmAD^kpmG?OC~C)ov}sONRE!06og?qfQi^uHdQe$A*5F||SUyVw&VTD4F$3Z| zZ;xx+f|}cQ^w4zD&-8{L;vgBPCmE||L-^$Qu7-E8>+$kfOq`vi7^(QBzJi-FhbnGW z5kP1|0Swr39`pP<$$`E)q-O~LhcMM?`jLH_uvRkG_4atP*B5EY1&m#M z{6x^zFP${yU?pMDfqGB zI7-Fo#mkpFSJmkMp~BuR-+Ci;cmo{7ijoF`V=>%?{i zSN8Hg-A4dU&B~*E^~zleSR^@MIj?KLk%i?;Jmsh|ZbEA=-rvdtjco6O-P&yc{QV8X z%}(ik-xABt>}k#U@kmp2#gYkGi(c=B)Jgu>x6}?$Qu}h}FvYk!pkp4V!$B1XHnN}G z30~TJUj!wK8`@a0aJF-?cP}UvKzR+MavVnH-K8+;&Se-;z5FkCGiPrEL4nOIjQ#;ijWn_k$tzf~UG&)INecI_Ek^?p_Pa zV_yJ|T_!jSmQUtY4FH!}r3R|w5+GmdG_QDt38^K@F-Rw+>$$+;z%Q(8-rYG4K*4@L zGF!UASfk7oLt7aVAzY#OEkg-}^E#?oR~2wL@~F&aQ^E%NFQBoluVA6Vrn=NhAtn;x z1-^UzB82>@CvyVvt=YEfz*8cwMe}}qs*9Ur1u^_q@@}@@VIp3PPPn}VsnedC)55jb zuRj+cz=wTK|9fdk^aZfgLJiBCLeD;Fqh^l2pk_X7$Z=b9209ygth>?dBlMdq;vArp zx;_5$qU#&o&EI58@)L5axF+*J72QVRg#GY@+Q|hToe2hu#6*I445lG7Cig(D>Wq2y zW|@VLAZ~C5YGs4-EnW1|-}+>p54)vGe#9Sx{2)F%cw7XU4nQ(9+9?)-CY&QAW-`rZ&xFtc>oAVc}%JT z?Sn>Y?h7v1G>g;Q=dykZn>TAUq}Hqb}eCrJKydBK*e zI|_W8BZkSLvaL!I%;VnXvQL@-l{8`OzEH2$c?Vu7gqqg?iYocQZoSs0?iqTLhEgqr zS+?Cr4qPCI10Qhcr@@)A_W_J#Lw^|Mg-?c_<)`s&6q~E%`T)T{eX=^C;bVUtyyVv;#?ksWclwt?t!w4-0o%*c&Jntx^xD~>MDGwT zO)U=YN6SPQijM||J20d-0}8Hw%rTU&`W;Yv0)weULy;tKH(b3Yb~J2)x4vD`zgFFf%m+R4J%nD07Ss|H(uP>`bwn@Ok-jgjh5Y) zESmEIj$Z4^!xorh2I3alp@;AagV2Dm;AKL(yqL>!0^Gz}+(KT_KG^YHatC@!_kSqX zxRvimd@MCuY>xm=^=Q28khG+eDLZh%{nVK0jMzNvBVe89cZ5(*bs+MiT)Jl-|{)}kH@0n}?`5i4cT7X`d2NxywMDjyY2t?6Yg z4>FTju3Hw^F&RK>olT1di-)s-5jJ;kOejGF^g0_9H5L9HH4o4DY0RlN59B}Bgh}a- zjQ0aZ<1zdh6uDW+P6cm#Cs;oSn!S79wsF~GWf66(v0DMAtK^p zrE!#-HK8jSq7%Y)D~%n{XGv;ID+T?Jt^2*a5BR$byc210=N+n{JbH~Rw58ymX+TiK z&HF1@`W1}_m@kul+dBMMbqVa&C9(j7lwEc0^n>&BfGWTFc+4DN_ZaJkMxf`C1-2CY zj4%{p5g^1q(5M}O2pC}0ULX5F+7Bcv;1vNsei%e~@KPu5gCp05jBNK7f~gpY*l8dO zuOdv3javQS!QbEMe_^&R{b|jFd;wSeZDaq4fKbc6HB&6K=qWy#3Lt6(*KK`M(60Ub z`l>+=BwI-`O=xGKgF*iS&`~H~S-`?pLUq?v7nD5qkjX%gSMNk2_+p9EdGOp1gpCw% ztSIytkOBK{INE_eDP5y(sUWc#eOw0D1=#N`oMf%X(}T+J{cdOB&q6Ky0Lb8GwWmpj z;2mv%&mTL+1A~b?K)%grH6W+y1zdJupH1Vt3}&fMAW$z&4P1gHU)>Fmb^mOOVWMgVjsrEfovbjN5rr_L{lG zW(#FitkFRZeuZqMU1r>$c@uCl#@XsdKX^*4CM4N?WY$`=>a0272iK8da#b0Bc@Mjj zS%29LmubN+QqDZCNUA+JI4S}4(hH4CbGM<^YSNYoh(<6~`$)wy9VrZMyb=afFgX2AD7tCGuVC5j_usb-+%@a6 zv9`vt`kx7RiF;W;LI_vk6O{E>6p&xXw_tzN1`Ylu8H-{z>_NPr=a%BDo{)GL1w;*D!)GK~tDqjU;`6kJ?UeBPVFqUvOMgOfQa^~n z*ehUrPelG2C&cER`42Rle*s@7qR|<7c_?(q^;FkdU4787pAV6A$OGk|?ufOc^{c^< zCAVQPgq7z|0ocpGoqB*a{i0HCgU9hW>JnZay8zhOM=IKYYh*yLyx5dDcGw?>-kL&7 zEjNI7i!A4wk-&275t7?IEOuFE1wrJ2#vj;Wu=ZUW2i$Qx;K0?kw>D>3VL6QqNa!L2 zQjr>UUz&P?wYv0-2pA{;dZbOO90pDTiuXY}*9%*ND1eR_J)JQu5?3i;ty2Fy>pz)G zU@py)V`mmpSvDII->nY14VUdGK>+RzLOgi;X#hM9@Cr;w(a1rlernjwGGLUVbq4zB ztzVvi)!`N|xRaR*y&I%h*dUz;LLsbxJk3D^(u##MOUfu;F*YV9@Pdb7TETD_$7xGP z(5p5h%QGvy?V#CjPSN4u{E4j*E5)`^mj#u5#nI5i9myWPQIaAALL9Bn`O&C+CR*^m zLW-^>$r+@N%ZL9S{|}ZOj>-)JSfg$NjLZyv_?^OksWCxjFS#rEos!lYG4UMKWwL7? zpkGc4-X8^xDcMm8=%I#WISC!?#S2UVTsbsI*LM_j$o;_d<1hq!8+JWm2W)&t*%;D* z->+E$9cM9-0r%&C9zFyIaT_*ImONHwu=UTNIZTf4QLRX`_Pa^#J^d}VzggM;+JQWK z#7+|ifLY-~xIW&JM^(TZt?D6h>Fv7C4mz0A)G}?)6_Q?p=8~8c3e)>rvmY(mL7t)g zkH`W|Yi<<5RlfMaqty?Wu@|L$FR`iI#2Usyc+2v{-!QSm@YQG#vjYG;BE^C-s+)~I z&3aA{jEVJ^lxzKu9dv*Oy_g8o?^%Qs;BDod!39XRapY=XL~&Uw76Kx5kWTLyQm_^b zs#RA&3bP{@*aRUO6j1tiKDWirX!&$#K~rj=?+^A$Prlb3s;=CQ8s+OrN3H4d!^qAu z>O-b;77SKI)>QqTe&qoto9aeEmIDFt;Vlq zgO$AqXsZ?E8o;Dw`qJW>y@0{C2Chxz<^vd&&;wA+|5!SoHv&)}p*CM%K@Kzz|IVe{ z)*sQPfc5f{8MqN4?-fu(^?slR889em4JgGO7SED_d?^RGG^2I8j2+BMxbHKH0sfh$ zH0uOXV$mTof$=Y60S#*V-2$XQCHLH)nPWA77_M(OuBU>R6dXWj zW|^by78nPH{r4uCAM=18<}C&!n36M|&OyFVrNsr>0~v)}a|9G@UP@F@SfKwoi5;}| zOa^hYAn!B`h9E1fzWZm^y)!U(om9Mn+NUFAmFd5TO3|I3$^%#(HbX|-&eb4!shN-l zQj()l-z)()3H7yPpoHJbO6KVDm4zH&u)W{n`T*UTrvW2&mcPebffx>xi{U|E0W=iq zBRm=P?ZeqeNLt)m?%%;nij1HC?*Az0EkNI^HE@(K4S=WkPubS3ZFOHI1Sw$oZshJz z`p5%BT$P^MK{_E{fJ;EAF&BrtT#Bp+{Oq$ zTwloQH*Kb>`{`=wk9;kF(xEvoSGG9DK_M9IESbc{?ROd`t&aehq6rf>0^PjHyfQ2h zS-uk4h6iUxf*%3tE_wFyvMPeI0?_^<2nbjkhmeKw^8SrCP}PDu_aiEl&PGfNTwmb_ z2QyP(J_Cjz6IVHx10<9gz!h5xhKx&_u$$+&pYJ_+QoaU%W1`O#@k z`PBg3(uXMlwI**p0e#(RA_Z*R_We*0 zcq76G6daE9ETi{|t>2uMbbN;>e8Ugk*|@=m4e?&QuuR}7kVmQ>{l_qc&EmXMORSCeJ|hY$UCD|_Z^`qwwn(Q#Xw>-~x_y$F7h2u<;y1*+88 zC_V#gzS3`d!07+ZTAqIoZN}|`qqmmwa7Vo7_A-@sb$5e_?%xZam;gZf=Wl)-`14CJ zsuU1?q5r;}6WP1-e`kE*gIvrZaVmUeUl+&QYBr`V z|DE}mK>C5VFtV9s=Nm2%{Fv+o!2B{cMzDs`;^J5$BKNecM-hPY;yng#38$r;E$fuP zn$@3X2>o|eMUxXF-;X)s$EPYoG}<5kwk%FLW5ire*>c`s!dNiG9PjF;}#OsPoa zq0R_5cg=A%K$==uW-;Kw2#DR0^MKVh*i3x;=W!b=_3~n14ub%`Y%K(+bdhazm9%Td zB<)@a=79a@e||ep`&8n15u3zu35kPO+QK6a(9+Ug>Adu8`>MV^?Xe%prBqjne7QtK zuRf!toeVW-6dz)k{l4;eW%EPsx%3t)zUunr0~VzsB$> zUKa3u*$$#rCJDHnDK1f4;fsAJ!7>onyY(e+lO zp{3PA^yC_-fX_u=ASt_eTFx#LhxuzP6Y%?BBdaa)3y*qsb_qG! z#>iD+=-&hXhyC;9>P7a$ zT7@KIT#N=s)`k|wS~}+D9=h}L^QRXV7mEl9g#+{GXm7vcGTYp&UXEC{FMs^Yq}*vt zy>DU@zWBYyzX**^0(Zbg*$lWVsvB zknz+ht||Fo_^Pf2FfH}x&!1a)ddk?@+jlpE`Cf4#P4M5I|NGDX6u~p2bg$$yfjp+$ Qkd&0Ksb9@iFn;#`07HeICjbBd literal 0 HcmV?d00001 diff --git a/docs/resources/pid_params.xls b/docs/resources/pid_params.xls new file mode 100644 index 0000000000000000000000000000000000000000..cb347110ffee8ae47bfbd1cc5e5552142a5e0ebf GIT binary patch literal 36864 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 literal 0 HcmV?d00001 diff --git a/klippy/extras/pid_calibrate.py b/klippy/extras/pid_calibrate.py index 994bb32da..e6d710b52 100644 --- a/klippy/extras/pid_calibrate.py +++ b/klippy/extras/pid_calibrate.py @@ -23,13 +23,14 @@ def cmd_PID_CALIBRATE(self, gcmd): heater_name = gcmd.get("HEATER") target = gcmd.get_float("TARGET") write_file = gcmd.get_int("WRITE_FILE", 0) + tolerance = gcmd.get_float('TOLERANCE', TUNE_PID_TOL, above=0.) pheaters = self.printer.lookup_object("heaters") try: heater = pheaters.lookup_heater(heater_name) except self.printer.config_error as e: raise gcmd.error(str(e)) self.printer.lookup_object("toolhead").get_last_move_time() - calibrate = ControlAutoTune(heater, target) + calibrate = ControlAutoTune(heater, target, tolerance) old_control = heater.set_control(calibrate) try: pheaters.set_temperature(heater, target, True) @@ -38,11 +39,11 @@ def cmd_PID_CALIBRATE(self, gcmd): raise heater.set_control(old_control) if write_file: - calibrate.write_file("/tmp/heattest.txt") + calibrate.write_file("/tmp/heattest.csv") if calibrate.check_busy(0.0, 0.0, 0.0): raise gcmd.error("pid_calibrate interrupted") # Log and report results - Kp, Ki, Kd = calibrate.calc_final_pid() + Kp, Ki, Kd = calibrate.calc_pid() logging.info("Autotune: final: Kp=%f Ki=%f Kd=%f", Kp, Ki, Kd) gcmd.respond_info( "PID parameters: pid_Kp=%.3f pid_Ki=%.3f pid_Kd=%.3f\n" @@ -57,118 +58,227 @@ def cmd_PID_CALIBRATE(self, gcmd): configfile.set(heater_name, "pid_Ki", "%.3f" % (Ki,)) configfile.set(heater_name, "pid_Kd", "%.3f" % (Kd,)) - TUNE_PID_DELTA = 5.0 - +TUNE_PID_TOL = 0.02 +TUNE_PID_SAMPLES = 3 +TUNE_PID_MAX_PEAKS = 60 class ControlAutoTune: - def __init__(self, heater, target): + def __init__(self, heater, target, tolerance): self.heater = heater self.heater_max_power = heater.get_max_power() - self.calibrate_temp = target - # Heating control + # store the reference so we can push messages if needed + self.gcode = heater.printer.lookup_object('gcode') + # holds the various max power settings used during the test. + self.powers = [self.heater_max_power] + # holds the times the power setting was changed. + self.times = [] + # the target temperature to tune for + self.target = target + # the tolerance that determines if the system has converged to an + # acceptable level + self.tolerance = tolerance + # the the temp that determines when to turn the heater off + self.temp_high = target + TUNE_PID_DELTA/2. + # the the temp that determines when to turn the heater on + self.temp_low = target - TUNE_PID_DELTA/2. + # is the heater on self.heating = False - self.peak = 0.0 - self.peak_time = 0.0 - # Peak recording + # the current potential peak value + self.peak = self.target + # the time values associated with the current potential peak + self.peak_times = [] + # known peaks and their associated time values self.peaks = [] - # Sample recording - self.last_pwm = 0.0 - self.pwm_samples = [] - self.temp_samples = [] - - # Heater control - def set_pwm(self, read_time, value): - if value != self.last_pwm: - self.pwm_samples.append( - (read_time + self.heater.get_pwm_delay(), value) - ) - self.last_pwm = value - self.heater.set_pwm(read_time, value) + # has the target temp been crossed at-least once + self.target_crossed = False + # has the tuning processed finished + self.done = False + # has the tuning processed started + self.started = False + # did an error happen + self.errored = False + # data from the test that can be optionally written to a file + self.data = [] def temperature_update(self, read_time, temp, target_temp): - self.temp_samples.append((read_time, temp)) - # Check if the temperature has crossed the target and - # enable/disable the heater if so. - if self.heating and temp >= target_temp: + # tuning is done, so don't do any more calculations + if self.done: + return + # store test data + self.data.append((read_time, temp, self.heater.last_pwm_value, + self.target)) + # ensure the starting temp is low enough to run the test. + if not self.started and temp >= self.temp_low: + self.errored = True + self.finish(read_time) + self.gcode.respond_info("temperature to high to start calibration") + return + else: + self.started = True + # ensure the test doesn't run to long + if float(len(self.peaks)) > TUNE_PID_MAX_PEAKS: + self.errored = True + self.finish(read_time) + self.gcode.respond_info("calibration did not finish in time") + return + # indicate that the target temp has been crossed at-least once + if temp > self.target and self.target_crossed == False: + self.target_crossed = True + # only do work if the target temp has been crossed at-least once + if self.target_crossed: + # check for a new peak value + if temp > self.temp_high or temp < self.temp_low : + self.check_peak(read_time, temp) + # it's time to calculate and store a high peak + if self.peak > self.temp_high and temp < self.target: + self.store_peak() + # it's time to calculate and store a low peak + if self.peak < self.temp_low and temp > self.target: + self.store_peak() + # check if the conditions are right to evaluate a new sample + peaks = float(len(self.peaks)) - 1. + powers = float(len(self.powers)) + if (peaks % 2.) == 0. and (powers * 2.) == peaks: + self.log_info() + # check for convergence + if self.converged(): + self.finish(read_time) + return + self.set_power() + # turn the heater off + if self.heating and temp >= self.temp_high: self.heating = False - self.check_peaks() - self.heater.alter_target(self.calibrate_temp - TUNE_PID_DELTA) - elif not self.heating and temp <= target_temp: + self.times.append(read_time) + self.heater.alter_target(self.temp_low) + # turn the heater on + if not self.heating and temp <= self.temp_low: self.heating = True - self.check_peaks() - self.heater.alter_target(self.calibrate_temp) - # Check if this temperature is a peak and record it if so + self.times.append(read_time) + self.heater.alter_target(self.temp_high) + # set the pwm output based on the heater state if self.heating: - self.set_pwm(read_time, self.heater_max_power) - if temp < self.peak: - self.peak = temp - self.peak_time = read_time + self.heater.set_pwm(read_time, self.powers[-1]) else: - self.set_pwm(read_time, 0.0) - if temp > self.peak: - self.peak = temp - self.peak_time = read_time - - def check_busy(self, eventtime, smoothed_temp, target_temp): - if self.heating or len(self.peaks) < 12: + self.heater.set_pwm(read_time, 0) + def check_peak(self, time, temp): + # deal with duplicate temps + if temp == self.peak: + self.peak_times.append(time) + # deal with storing high peak values + if temp > self.target and temp > self.peak: + self.peak = temp + self.peak_times = [time] + # deal with storing low peak values + if temp < self.target and temp < self.peak: + self.peak = temp + self.peak_times = [time] + def store_peak(self): + time = sum(self.peak_times)/float(len(self.peak_times)) + self.peaks.append((time, self.peak)) + self.peak = self.target + self.peak_times = [] + def log_info(self): + # provide some useful info to the user + sample = len(self.powers) + pwm = self.powers[-1] + asymmetry = (self.peaks[-2][1] + self.peaks[-1][1])/2. - self.target + tolerance = self.get_sample_tolerance() + if tolerance is False: + fmt = "sample:%d pwm:%.4f asymmetry:%.4f tolerance:n/a\n" + data = (sample, pwm, asymmetry) + self.gcode.respond_info(fmt % data) + else: + fmt = "sample:%d pwm:%.4f asymmetry:%.4f tolerance:%.4f\n" + data = (sample, pwm, asymmetry, tolerance) + self.gcode.respond_info(fmt % data) + def get_sample_tolerance(self): + powers = len(self.powers) + if powers < TUNE_PID_SAMPLES + 1: + return False + powers = self.powers[-1*(TUNE_PID_SAMPLES+1):] + return max(powers)-min(powers) + def converged(self): + tolerance = self.get_sample_tolerance() + if tolerance is False: + return False + if tolerance <= self.tolerance: return True return False - - # Analysis - def check_peaks(self): - self.peaks.append((self.peak, self.peak_time)) - if self.heating: - self.peak = 9999999.0 - else: - self.peak = -9999999.0 - if len(self.peaks) < 4: + def set_power(self): + peak_low = self.peaks[-2][1] + peak_high = self.peaks[-1][1] + power = self.powers[-1] + mid = power * ((self.target - peak_low)/(peak_high - peak_low)) + if mid * 2. > self.heater_max_power: + # the new power is to high so just return max power + self.powers.append(self.heater_max_power) return - self.calc_pid(len(self.peaks) - 1) - - def calc_pid(self, pos): - temp_diff = self.peaks[pos][0] - self.peaks[pos - 1][0] - time_diff = self.peaks[pos][1] - self.peaks[pos - 2][1] - # Use Astrom-Hagglund method to estimate Ku and Tu + self.powers.append(mid * 2.) + def finish(self, time): + self.heater.set_pwm(time, 0) + self.heater.alter_target(0) + self.done = True + self.heating = False + def check_busy(self, eventtime, smoothed_temp, target_temp): + if eventtime == 0. and smoothed_temp == 0. and target_temp == 0.: + if self.errored: + return True + return False + if self.done: + return False + return True + def write_file(self, filename): + f = open(filename, "w") + f.write('time, temp, pwm, target\n') + data = ["%.5f, %.5f, %.5f, %.5f" % (time, temp, pwm, target) + for time, temp, pwm, target in self.data] + f.write('\n'.join(data)) + peaks = self.peaks[:] + powers = self.powers[:] + # pop off the + peaks.pop(0) + samples = [] + for i in range(len(powers)): + samples.append((i, peaks[i*2][0], peaks[i*2][1], peaks[i*2+1][0], + peaks[i*2+1][1], powers[i])) + f.write('\nsample, low time, low, high time, high, max power\n') + data = ["%.5f, %.5f, %.5f, %.5f, %.5f, %.5f" % (sample, low_time, + low, high_time, high, max_power) for sample, low_time, low, + high_time, high, max_power in samples] + f.write('\n'.join(data)) + f.close() + def calc_pid(self): + temp_diff = 0. + time_diff = 0. + theta = 0. + for i in range(1, TUNE_PID_SAMPLES * 2, 2): + temp_diff = temp_diff + self.peaks[-i][1] - self.peaks[-i-1][1] + time_diff = time_diff + self.peaks[-i][0] - self.peaks[-i-2][0] + theta = theta + self.peaks[-i][0] - self.times[-i] + temp_diff = temp_diff/float(TUNE_PID_SAMPLES) + time_diff = time_diff/float(TUNE_PID_SAMPLES) + theta = theta/float(TUNE_PID_SAMPLES) amplitude = 0.5 * abs(temp_diff) - Ku = 4.0 * self.heater_max_power / (math.pi * amplitude) + power = self.powers[-1*(TUNE_PID_SAMPLES):] + power = sum(power)/float(len(power)) + # calculate the various parameters + Ku = 4. * power / (math.pi * amplitude) Tu = time_diff + Wu = (2. * math.pi)/Tu + tau = math.tan(math.pi - theta *Wu)/Wu + Km = -math.sqrt(tau**2 * Wu**2 + 1.)/Ku + # log the extra details + logging.info("Ziegler-Nichols constants: Ku=%f Tu=%f", Ku, Tu) + logging.info("Cohen-Coon constants: Km=%f Theta=%f Tau=%f", Km, + theta, tau) # Use Ziegler-Nichols method to generate PID parameters Ti = 0.5 * Tu Td = 0.125 * Tu Kp = 0.6 * Ku * heaters.PID_PARAM_BASE Ki = Kp / Ti Kd = Kp * Td - logging.info( - "Autotune: raw=%f/%f Ku=%f Tu=%f Kp=%f Ki=%f Kd=%f", - temp_diff, - self.heater_max_power, - Ku, - Tu, - Kp, - Ki, - Kd, - ) return Kp, Ki, Kd - def calc_final_pid(self): - cycle_times = [ - (self.peaks[pos][1] - self.peaks[pos - 2][1], pos) - for pos in range(4, len(self.peaks)) - ] - midpoint_pos = sorted(cycle_times)[len(cycle_times) // 2][1] - return self.calc_pid(midpoint_pos) - - # Offline analysis helper - def write_file(self, filename): - pwm = [ - "pwm: %.3f %.3f" % (time, value) for time, value in self.pwm_samples - ] - out = ["%.3f %.3f" % (time, temp) for time, temp in self.temp_samples] - f = open(filename, "w") - f.write("\n".join(pwm + out)) - f.close() - - def load_config(config): return PIDCalibrate(config)