RSRC LVARLBVWp P">>"@  J B&*">>"`PP``LL`440<ψȈfofofo     P\ P_\ _U U++++++++++++++++++++++++++++++++++++++++++++++++PID VIs PID Ctrls PID SubPID Controller 4  modPID SubModPI  @ Desired Output@ Actual Output@ Kp@ Ki@ Iteration@ Kd @ Delta T@ Control Output@ Actual Time (s)PIDS~zThe VI will perform the calulations for a PID control alogrithim, and determine the output based on the three gains, the setpoint value, and an input value. INPUTS to VI: Input: Actual output from the system. Setpoint: Desired output of the system. Kp: gain constant for proportional control action. Ki: gain constant for integral control action. Kd: gain constant for derivitive control action. Iteration: number of iterations of the PID Calculations VI. On the "0th" iteration the VI will reset the Integrand and previous error shift registers to zero. OUTPUTS from VI: Control: output from the PID transfer function. Actual time: time between two consecutive samples. ALOGRITHIM: n = current iteration number Error(n) = Desired output(n)-Actual Output(n) Sum Error(n) = Sum Error(n-1) + {Error(n)* [t(n)-t(n-1)]} t(n) = current time Control Output = Kp*Error(n) + Kd*[Error(n) - Error(n-1)]/[t(n)-t(n-1)] + Ki*Sum Error(n) NOTE: This VI is designed to be used in a "while" or "for" loop, with the iteration counter wired to the iteration input of this VI. <"!!!!!"<OIIOII6PID SubPIDSPID Controller 4 modPID SubModPIInstrUse InstrUseInstrUseInstrUseInstrUseInstrUse InstrUse InstrUse ?臀~臀> Ȍ̌̌̈̈̌̌Ȍ̌x pp  p> ( 8̈,΢~,,,,h((B ̌b~,...̂ŒȈ( 8̈,΢~,,,,h(( È̌b~,...̂ŒȈ( 8̈,΢~,,,,h(( Ì̄b~,...̂̂Ȉ( (̈̈,΢~,,,,h(, Ì̌b~,...̂ĂȈL ( 8̈̈,΢~,,,,h(,033Ƞʀ ʠJ ʀʡʡx p ΀ ꀈ ̈ HHȌȈ̈   (̈̈̌̀ Ⰸ̌̌Ȍ̌`̌Œ`̈Ȟ̈(̰+̈ḦȈΈ,LB~͈,̼B~ ̌`Ḧh Ȉ(.̈ḦȈḦȈḦhȈL ⰈḦȈḦ ȈḦhȈ(/ ⰈḦ ȈḦ ȈḦh Ȉ(/̈ḦȈḦȈḦ(Ȉ(/̈ḦȈḦȈḦ(Ȉ(̰+̌Ȍ̌`̌ƌ`Č̈̈ḦȈḦȈḦ(Ȉ+Ȍ̌Ȍ̌ƌ` ̈h (b~Ȁ΢~,興.̌̈̈ Ȉ,(/̈ḦȈḦȈḦ(ȈȀ ̀ ̀ Ȁ (̈̀H ψ, Ȁ L̈Ȁ ̀̌ ̀̈Ȁ ̌̈̀ ȀȌ̻ˈ, ̀JBn(̈( ̈̌̌ Ȁ̈LȀ ̀̈Ȁ ȀȀȌ̌̌ ̀ȈΈ, Ȁ ̀ L ,(/ȈȀȌ(Έ/ H΀ꀈ H( ̈( ̈̌̌   ̀ ̀̌Ȍ̈̀̌  ʌȌȈȞ (̈ ̈̀ʌȌȈH̌ (̈ ̈̀̌ ˨(̈̌Ȉ(̈̌̌ (Έƌ`̈ČȈ(L̈̀ (̈ ̈̀ψ(̈(̈Ā̌̈̈̀ ̀ (̈̈̀̄ Ȁ̌L̀ ̀Č̈̌ƀ ̈,ᇈ.̂  ̀ Ȁ̈̌ ̀̌̌̌̌ Ȁ  ̌ Ⰸ̈ḦȈḦhȈ̀ Έ h (΢~,,, Ȟ̌ Ȁ h 8̌΢~,,ȞȈ̈Ȁ (̀ƀ ̈,ᇈo.̂oČ̈̌ ̀ h (̌΢~,,ȞȈ̈@Ȁ ̀ Ⰸ̌̌ ̌`̌`̌ ψh (΢~,,, Ȟ̌ @ Ȁ((3ʀ~ Ȍ̌ (̈̌L(ψϨΈȀ Ⰸ̌̌Ȍ̌`̌ƌ` (̈ ʀ~  ̀ Ȉ ꀈ Ȉ ꀈ ( ̈( ̈̌̌ (ψ(("  ̰+Ȍ̌̌̌@ȀḦ̈̌ Ȁ̌̌ Ā  ƀ ̈,ᇈo.̂oČ̈̌  Ϩ(  (  (((Ϩ(  (ˈ ˨ψ (Έ⌂|Ǐ?Ǐǿ_ w<y;;x>y;0{|{xC8==wa?p{>0|>g#pq01F88G<?y>gqspqsp888px|?8?s?G8qp0s?G8qsp<88px>|>?;ǏLJ?;!?q1c1c1q|8ޏϟ8>GDDD?q|8ޏϟsc~?Cyg??qy 3?ϟ!w3?8<~/Cg??q?133sq;?3~x< <'gq;?3~x<'g;/3~x< 8>GDZ?~hM0g< /XLB,  L 40 9BSW^LXj,  aK40 :LIWSQNj   40 P;BILSGNj4/)0\|;BD d40d<\|l  d>840dl=\|l4)0: a @)\=@Pq?@,@ 4 J bMqEl/46l_a4 2 rEl/0 3 qKH : s00/.- B)E(0Th- 2H @D4ODA @ 64/)0p;BDgl L%\ 40LB g L%$ L40LXC v{g L" 40LDv {gl4)0bc ! 4)0tR  ,d $L04)0P    B)\U<00T,t00@;H=hp *x4 Bda pfEl/4)0,L 4$W @0-(E4)0+xa5 B)00T X4)0 m P <,. @@(00T4)01 ##,4Yh 4)0Loh50@)\7phVf^',,1104X2H/,$L d(45J0-(&P0-(!LGAIE,;h8T0@)\x $ !0A(1 $4 B /#El/4)0 HH ,2 0@h08 / 4 B eEm/ B)\/ B)/!,! !h @@(" /4)0'`j  4)0!@  L- 4$f a4)0"t&  -t<<4)0"(8 #$ 4)0$2 ,&(84<>$ 0-(LAIE B)\!## B)G##.!h l,0@8T<$LEeU$|4 B$L{ExEm/ @03d84 )𙛨=Em/<$J,14 0'$8hbwli @@(#\#, =h

ME$m/H% :F ?K00/.-0% 3F =NK,%)GTFVJ%G %@)GGG4%)H,_ !V%G#% X@%PInI4 @%IPII4% 2H o~E(m/H& :H p|00/.-0& 3H nK,&)J(H^N&J< &@)J\IJ<4&)J]1^H&4&,&J<=(4&/)0KDrZz;BDj&KLLx4&0KKWxjuoj&K &K8 K`K4&0KKV`jej&L &KNKN4&0KLdUx`j}ej&Lx &KOL0h&LXZ@LtZt@&PNWtNxY@&N4& 2MD XsE,m/H' :MD SY00/.-0' 3MD WtK4' JMD jtE0m/,(NDMMN,()\MXMDbR (@)\NNN4()0OlD1bqh (NL4()0*g(GN@G:@@:( Md4( )0%qE4m/)%__0)-ZRTb )B[pbQK)eQ )B\c@QK)R4Qb$)\R4c)@dad);w v؀w@vȬ);xwx @w )%{[{V@[4))0,$6 4)/)0U;BDi)UV(V )Up,@UV4)0UpVZ i)U )UpaVHK4)0UpV|[ i)V( )Up!VV4)0UpV\i)V),@) |)>=7p%""!8 a,@Ull-0 ؀@Ȭ-x4h@hL-a  vQN   v7Q7 ̀   L- @l5l  --@@ /0+i386h*B ETfZ =t5f;~fRRu$d$Zrr軐d$ÐUTExh*f;}fffX f}2thUEd$Ud$f}_ETX@%=t UhUd$ETPPzpRZ2z RZrz썽#RZ#rzDRZrz$MRZ Mr z,RZr(z48+RZ+r0󥃥df},Cf}2th Und$hhUhUd$f}2th UAd$f},Cf}2th Ud$hhUhUd$f}2th Ud$f},Cf}2th Ud$hhUhUd$f}2th Ud$8f},Cf}2th Uod$hhUhUd$f}2th UBd$f},Cf}2th Ud$hhUhUd$f}2th Ud$ f},Cf}2th Ud$hhUhUd$f}2th Ud$,f},Cf}2th Upd$hhUhUd$f}2th UCd$fEf EtKfe@Džurd$f#EfEXÐDžfE,f}tuIsd$ÐfEƅoƅn%=hhUhUd$ƅnf}Ph0hud$ =-ExPu(O߶d$XÐƅoƅƅƅMf}Ph(huId$ =-ExPu(޶d$XÐƅ=~cƅ4ƅ3ƅ3F5JE^=h6,$XXf}Ph ?h)u}d$ =-ExPu(ݶd$XÐƅ4EuXÐEQhhd$YQ d$XsÐ;PEx$Rd$ Ðd$d$Ðd$ÐEƅ4f}Ph)h ?uAd$ =-ExPu(ܶd$XÐ u XÐ5p󥍵=x󥍵N󥍵V󥍵E ƅƅƅƅƅƅƅƅƅƅƅƅƅƅƅƅƅd%=hhUhUd$%=hhUhUd$8%=hhUhUd$%=hhUhUd$ %=hhUhUd$,%=hhUhUd$ƅ󥍵#󥍵+f}Phh\)ud$ =-ExPu(/ڶd$XÐƅ݅ܥݝƅ󥍵f}Ph'hu d$ =-ExPu(ٶd$XÐƅ݅hB,$XXݝƅRhh<$ZX=uuPXzr =tZf}Ph h'u"d$ =-ExPu(ضd$XÐƅ݅܍ݝƅf}Ph h ud$ =-ExPu((ضd$XÐƅ݅ ݝƅf}Phdh u&d$ =-ExPu(׶d$XÐƅuXÐpQhd$YQd$XsÐX;PEx$Rd$ Ð-d$bd$Ðpd$Ðƅf}Phdhdu޶d$ =-ExPu(_ֶd$XÐƅ)ƅf}PhKhdub޶d$ =-ExPu(նd$XÐƅh,$XXhb,$XXݝƅf}Ph\`hKuݶd$ =-ExPu(Rնd$XÐƅ݅{0ffƅf}PhZh\`uCݶd$ =-ExPu(Զd$XÐƅf=ynƅƅf}Ph\h\uܶd$ =-ExPu(CԶd$XÐ|ƅƅf}Php[hp[uSܶd$ =-ExPu(Ӷd$XÐ鍵fƅf}Ph hZu۶d$ =-ExPu(`Ӷd$XÐƅ݅ܵݝƅf}PhTh ub۶d$ =-ExPu(Ҷd$XÐƅ݅܍ݝƅf}PhpUhTuڶd$ =-ExPu(hҶd$XÐƅ݅܍ݝƅf}PhhpUujڶd$ =-ExPu(Ѷd$XÐƅ݅܅ݝƅf}PhH huٶd$ =-ExPu(]Ѷd$XÐƅ݅܍ݝƅf}PhLhH u_ٶd$ =-ExPu(жd$XÐƅ݅܅ݝƅf}PhhLuضd$ =-ExPu(eжd$XÐƅ݅܅ݝƅf}Ph\)hugضd$ =-ExPu(϶d$XÐ u XÐ󥍵p󥍵xƅf}Phh(u׶d$ =-ExPu(+϶d$XÐ8 u XÐ󥋽f@yƅof},Cf}2th U߽d$hhUhUd$f}2th Uk߽d$f},Cf}2th UJ߽d$hhUhUd$f}2th U߽d$f}Phh0ubֶd$ =-ExPu(Ͷd$XÐf}f}DžuE`d$XÐDžfE,u`d$Ð%=hhUhUd$%=hhUhUd$ETPPpz8󥍵xz@f}tDfe@f}t8Džu_d$XÐDžU?Ӷd$f}2thUiݽd$E$83MTET h*f}2ths3ݽd$C kPÐu$̶d$‹MTUTExfZ f;}fffX ZªP f;Y ~QP̶d$YEx9tf}2thUܽd$gUl$ SQVWD$T$\$ L$$=]PX$$Ðn=T@Zt|S ~ P$P$d$ _^Y[]ÐXEdqXÐ 8d,ElEua\d$=Ð_^Y[]Ð 8d,XpEx_^Y[]ÐXEx_^Y[]Ðt;]TtSu$ʶd$u`d$Dž PEx$ʶd$f}2thUڽd$tET\E$8PPɶd$‰UTfJ Exf;~fffH ZP P.ʶd$)f} t fE E)_^Y[]Ðf}"fE_^Y[]ÐhUh Ud$ _^Y[]Ð_^Y[]ÐL$(ETP9uu _d$uu-`d$5uT$@@XRhd$_^Y[]Ð_^Y[]Ð陉؋t$(=ePX$$Ðo}TZ`flrx~P$P$pp?8yy~y~3?ys|8>9>?x?08y##qϟwqD80?>'??#qpq3???#xq8c8,y!?yG;9s;8"qc#q1py>???<#q1py>O?;8"qc#x?p|q8c8<#q1py|<8pa1?~|#Ox>wqD80?>xq8c8<<8pa1?~|#q1py>sc#q1py>O?;8"qc|<8pa1?~|<<<8pa1?~|<1?F;8"qcwG8a?ppp8q??8?>8|p!g1c1c?8>GDDDȟ??~?q|8ޏ?>'B#B! !?qC|8xB!x>BawCO?!CB0;!<aw<χB0;!<awBx 88?qq'3?OLJ?{??xx?g~&<~gg~&<~gg~&<~gg~&<~gg~&yx'}gxygygxygygxygyGxygy`gxygygxyg}gxygygxygygxfygygxyyyyy<>BxO/ y|?!<'<>?9p !CxgfFffffff&&fffffffff&f&fffff&&fffffffff&f&fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ZUϫ~+說뫪ꫪ~謬0 &c&fc&fc&fc&fc&fc&&c&&c&fc ~~>UO1ǃMHHHM$ǃ ?臀~胀> Ȍ̌ȌDLȌ̌̈̌Ȍ̌̀88Ġ D @  D H D H HDH @ HĿHࠊ H H䠎     ࠊ  ?HȨ 13pUw( ( 8̈,΢,,,,h((B È̌b,...̂ŒȈ( 8̈,΢,,,,h( Ì̌b,...̂̂Ȉ 8̈̈,΢,,,,(, Œ̄b,...̂̂Ȉ 8̈̈,΢,,,,(,L Ì̌b,...̂̂ȈȠʁJ!!ʠʁʡʡ03 8̈̈,΢,,,,(<<@ Ȭ / ̈̎ ̈HHȈ̈   (̈̈̀̀ ꂰ̌̌Ȍ̌`̌Œ`̈Ȟ (̠+̈ḦȈψ, ̀LB{̪ʈ,ȌḦ ̌ƌ` ̌̌Ȍ̌`̌ƌ`Ḧ(/̌Ȍ̌`̌ƌ` ̈   ( ʊ (̰+̌Ȍ̌`̌ƌ`Č̈ ̈Ḧ Ȉ(̈hȈ̈h (b΢,興.̌̈̈ Ȉ, ̌̌ψ,  ( ̈̌ ̀̌ ̀ Lψ̌ ̻̀ˈ,B ̀̈ȈΈ,ʀ̀*Lʀ,  * (̎ ̀̈̈Ā ̀ ̀̌Ȍ̀̌  ČȀȈH̌ (̈̈̀̌ (̈̌Ȉ(̈̌̌ hȀȈȞ̌ ̀̌ (*̄̌ (̈( ̈̌̌   ̌̌ ̈ ̈ ̀ ȞȈ̈h 8̌΢,, ̀ ̈̌H ̀̌̌̌ ̈/Ȍ̌Ȍ̌ƌ`  h (΢,,, Ȟ̌h 8̌΢,,HLȈ̈̀*h 8̌΢,,ȞȈ̈ ̀ ̌̌ ̌`̌`̌ƀ Ȉ,Ꮘ⻏.̂bČ̈̈ 03 Ȍ̌ (̈̌̈ *( ̌̌Ȍ̌`̌Œ` *  ʀ H̎ȈȈ̎Ȉ̀̈̈*ϊ(*"* 0̈Ḧ ȈḦ Ȉ̈̈̌ ̌̌ ̀ ƀ ̈,Ꮘo.̂oČ̈̌   ˪茠Ϊ*ϊϪ(  ˈ(˪*(* ψ** ˊ(/̈Ȉ̈Ȉ̈(Ȉ̈舨Έ, (Ίਂଊꬪ ΢( ̌ 0 ȿRSRC LVINLBVW ߰܀!O8"O<"O4"O,PO0P"O$Otd$ZY=!XÐQRytZY$ƅP$TXfx.nDž Dž XG䍅QRhh hhhPXd$ZY=tÐfƅT)ȉTƅfx2nDž Dž XG䍅QRhh hhhPXd$ZY=tÐf4ƅhT,$XXh,$XXݝ0ƅfx6nDž DžXG䍅QRhh hhhP]Xd$ZY=tÐf~ƅ݅0PXzȈPƅfx:nDžDžXG䍅QRhhhh hPXd$ZY=tÐfƅP<ƅƅfxRnDžDžXG䍅QRhhhh&hPXd$ZY=tÐfƅƅfxVnDžDžXG䍅QRhhhh'hPlXd$ZY=tÐfVW0QY_^ƅfx>nDžDžXG䍅QRhhhh!hPXd$ZY=tÐfƅ݅H݅0ݝHƅfxBnDžDžXG䍅QRhhhh"hP+Xd$ZY=tÐfLƅ݅݅HݝƅVW(QY_^VW QY_^f}|u ƅhhUULd$ fxFnDžDžXG䍅QRhhhh#hP+Xd$ZY=tÐfLƅ݅(@ݝ(ƅfxJnDžDžXG䍅QRhhhh$hPXd$ZY=tÐfƅ݅(݅8ݝ(ƅfxNnDžDžXG䍅QRhhhh%hPXd$ZY=tÐfx(Z@0g<dO BDHP modPID Sub]@BDHP[8"O8]]]X,`+io/8\, |0T! X^ L `, \)0`.P0$ @0%Pd @H 4LP 4" "$8d*  @0d*"%<##&*0&p 4/g  h40h  g h!0@40ht g h?40h g  ,@D X4/kh T xP0@   *4 B ]4GP A0@&4 B ](GP0@8 8(4 B]FP40T{h T40T%q{ vh T840T ,&q{vh4/ tB8bi `  @$ `40 @ 'R3](Wi  @ 40 @ L((H3R-Mi  @ `40 @ )H(R#Mi `h4/A ai  P 8 40 l*Q\Vi   40 +GQLi    40 <,GQLi 48, $4P   4 e]`GPp$([[(W4l   x@ X,8v(h@h L4/ y*Jh =$ 40T6:E?h (4070:5hh ,40$80:5h,d>P4/\|, x,,40x<\|l  x/L,40x=\|l, @/d8@P8q?@, 4 J bbq]GP4`(G,a4 2 r]|GP0 3 qcH : s00/.- BT5#H!%` @H 4O A@ 6))*4IJ! d, l B?|#0@-xl  !../4!"& s{w !"--/41 (BDDI=:8(M= (BDJ`=:8(>=ID(Ex>J (-w v؀w@vȬ(-xxwx @w 4(!X 4(/@,i(@H@A (?!0@h4(0?@G i(@H (?H@:84(0?A; i(@ (? xA84(0?Al:i(A(!0(H 4(U %4( x+]pGP4) ]lGPL* T @x9G\?h W,*=I,*\D0DD*I*DD*M0*CM8,*\DDD*J`*D*0*Dt>P*DtC0*.\E9]ic *BDDE(H$ *BDE(H$*ExEXE *@@\,E(H$*)gـg^@^ˬ**@btobo@ctPo*T4*/H SisY*H$H *G,HDH$4*0GHx3Yync~*H$ *G*H:84*0GH4Yonyct*H4*KR` !*J IJ@ *@@\H=:8*EIDJ@ *BDDI:8*H$E4*C=Md '0*-\I(0 *BDJ`I:8 *@@\*I:84*DtJJ &H*J`*J >*,c~c,*ID@.@*PLqL2*L,L`L4* 2K r]dGPH+ :K s00/.-0+ 3K qc,+DDM5K+M +@DDILM,+EXIM=ج+I@yĀ+=$?}ee+*U+/dqـp@pyyʬ+0@H+<ee+/ll+$8 ؀@+H vvĀ̐L+, @l5l +"@l+ B P$ x//d)*H,!0?=$<,8\+BL+ @'R' -M-R  v hh@v4+/W`"h+WX,X4+0W,WDh+W +W,BW| 4+0W,XCh+X, +W,$W `4+0W,XB h+X +W, PXL H+?0+@X4TDY,4+ BX4=]@GP,, !XL,  "L  "D 3 33,5ؘ,~tO=X`H"O8"OD2RC*C<\O,,Dd<,$1\P 4KZ]FP <-$1DP 4ix]FP X.,IdKQCE E(\H |.XW, |G\=tC@C ?<9x @Th (+O ` @UU@n  $"O +  ʦ  ʴ  € Ā ƀ  MS Sans Serif MS Sans Serif MS Sans Serif020Graphite Light ATTRSRC LVINLBVW ߰bsN 4RSID$O?TOFtOJXOJx`OJOJĘOKh$OK,OPDOPLOROVOZlOZO[O[hO[O\hO\tpO \ԀO ],xO ]O ]xO ^<O^O^O_DO_O_O`DPO`O`Oa0Oa|OaObHObObOc4OcOcOdD0O d8O!e@O"eTHO#eO$f O%f`(O&fO'gO(g\O)ghO*h O+hx8 O,hpO-i`O.itOiXOi`OlO@O <OLOlO modPID Sub%隿\:? ^QA{Q"""#Zpp?8yy~y~3??yG8c<,q~q<?wqD80B?>#a?yG;<><?#q1py>Ç8wqD80?>yG8c|G81Ï<yG8c|G81Ïyxq8c8p?g8?3xq8a8<Gg<<<s?ßgzx"s!? <yOyc|?O<91ßy~>wya<'<1py>'s~0w<@81|xFyw????|xp?y;8"qcc<q8a8<ǣ<G81Ï?><?<G81Ï?sq8c8LOy#8pa?~<;8"q!wG8qq??8? G?p G?p G?p?8?8???><;?|<Ϗώ?x?""""?q|8ޏ?>'g9B#<1B! !?qC|8xBg!x>~?CawCO?pG!'B8#q|8ޏ?>CO?!CB0;!<awBx 88B{q!g!C?!CB0;!<aq|8ޏ?>>??|q?<'<>BxOx>8Bx9><'Oy><χ<|xy><χ<|xy|zOy>=ϧ<χ<|xy><χ<|xyBxOy>=ϧ<|xy>=?|yxyO9BxOy>=ϧ<|xy|xy><ϧ<|zy><χ<yyO9'>O|""""++ꪪ껪說說ﯨꫪ㫾ꫪ諭껪說ꫪ뫪+'"'"'*"+'"'"'++/'/ʊ8000000,p700"G|T@G|T@????   < "bXp`0#F&b&fc&fc&fc&fbc&fc&fb&fc&fc?2!2#𨪪oi<<胀€_ᆰ臀>À_Z?? ^QA?ǀ̈̌̈̌̌LȌĽ̌LĽ̈̈̈ ? H @  @ İ H?H H  ?   H ?HH ?   H  8?H  䠊8?Hį Hį   ?H    D HĿ     H  ? ? ?H H  ?  H Hࠊ ?  @H ?H  ꎺ??Ϗ 137U10 À b,,,,,,,,,,,,,,ό̌bbB,ˌ̌bbB,h, Ȉ( 8̈̈,΢,,,,H(< Ì̌b,...̂̃Ȉ( 8̈̈$N$$$$H(< ̌b,̂.̃ Ȉ ̌b,̂̃Ȁ  ለbLLL ,b̢̢.̢̢.̢!̢!̢.̢.̢.̢.bb̢̬̈,,, ̼̈,,, ̂< Ȉ ̌̀ Ìb,...̂Ȉ̃0232 8Ľb< 8̈$N$$$$,",,",,̌bbB8< <@ #32 Ϗ ̌ Ƞ/ ̌ȈHHȞȈ̈̀H  ̀ Ȁ ΢,,̈Ȟ̌ƀ Ȉ,Ꮘ⪏.̂bČ̈̈ ̀ ̀BΈ,BΈ, ̌Ȍ̌`̌ƌ`̌*Ί ̀ ̌ ̀ ΢,,̈Ȟ̌ƀ Ȉ,Ꮘ.̂bČ̈̈ ψ, ̈ḦȈḦhȈ̀* ̌Ȉ̈Ĉ Ĉ ̀ ̈ ̌Ȍ ̈Ḧ̌Ȍ`̌Ȍ`̌Ȍ` (̈, H̎ ̎Ȉ̀̈̈(̈̄ ̈̌ (/̈HĈȈḦȈHLȈ h 8΢,,, Ȟ̌ ƀ Ȉ,ᏈLϪo.̂obČ̈̈ƀ Ȉ,Ꮘ ,,, Ȟ̌*(.̈̌Ȉ(̈̌̈L ̈̌ȈH̎ȈȈH̎ȈȈ̀̈̈̀Č̈̌ƀ ̈,Ꮘo.̂ö (̈(̈̌̈̈̀ Č̈̌ƀ ̈,Ꮘo.̂ò  ̈̀B,Ȉ̎̎ ( ̈( ̈̌̌ ̀ƀ Ȉ,Ꮘ.̂bČ̈̈ ( ̈(/̈ḦȈ(̈ȈḦȈ(̈LḦ H(ĈĈ̀̌̌ ̌  ̀ ̈̌̈Ȟ ( *̀ ΢,,̈Ȟ̌  (  ̀̌ ꂰ̌Ȍ̌Œ`̌`̌ ̌Ȍ̌Œ`̌`̌*h 8΢,,, HĽ̌̌ ƀ Ȉ,Ꮘo.̂obČ̈̈ ̀̈̀B̌ČȈ̀*h/ ȌȈȈ̈Ȉ ̈ /,̌̌ČČȈȞȈ̈ ̈,΢,ȞȈ̈h (b,Ꮘ.̂ ̀ ̀Ĉ̎̀̈̈̀(̈̈̀̌̈ ČH ̈HȈ/,̌B /̈̈̈興 (ϊƀ Ȉ,Ꮘo.̂obČ̈̈̀ ῒ ȞȈ̈ /Ȍ̌̌ ̌` ̌̌̌ ̌`̌`ƀ Ȉ,Ꮘo.̂obČ̈̈ ̌Ϫ(/̈ḦȈḦ(ȈḦȈ ƀ Ȉ,Ꮘo.̂obČ̈̈ ̀ *̈ Ȉ(̈̌ (̰+ḦḦ Hḧ ȈḦh Ȉ/̈̈ h 8΢,,, Ȟ̌  h (,΢,,* ̌ h (, Ā΢,, ϊČĈ̌ƀ  ,΢,,HČȈ̈ ̈$N$̌ Ḧ@  HČH ̈(*𬂏ČH ̈HȈH ̈HȈḦ HČČ ̌̌Ȍ̌`̌Œ`̌̌̌Ȉ̌ *̪ȏBL̈H ȈḦH ȈH ̈H ȈH ̈H ȈH ̈ ȈḦH ȈḦ ȈH ̈H HH LH ȈH ̈H ȈH ̈H ȈH ̈H ȈH ̈H ȈḦH ȈH ̈H ȈH ̈ ȈH ̈ *(* Ȍ̌Ȉ̈ Ȉ*̀ ̀, ̈̌̌Ȉ̈ ̌ŒȈ  *ʊ̀ƀ ̈,Ꮘ⪏.̂Č̈̌  (ʪ  ȏB̈HȈḦH ȈH ̈H~ ȈH ̈H ȈH ̈HȈH ̈HȈḦHHH LHȈH ̈HȈH ̈HȈḧHȈH ̈HȈH ̈HȈḦHȈH ̈HȈH ̈ȈH ̈ĀȈ̈Ȉ3Ȉ *謠̀ϪȀ ̂O.b̀̈̈ȏB̈HȈḦHȈH ̈HȈḦHȈḧHȈḦHȈH ̈HȈH ̈HȈH ̈h (N$$$H HČ̌ Ȉ̀ȏB̈ḦHČ̌Č̌Č̌ČČČČ̌ČČ̌ Ȍ̌Ȉ̈Ȉ ̌ȈLȈ ϪϪHȼ+ ,Ȉ ̌Ȉ ̀Ϫ(Ĉ(Ĉ̌L  Ϫ(**ϊ( (̌΢,,Ȉ̀ČB̈̈(̈( ̈̀̌̈*(*h 8̌N$$HČȈ̈   (**B Ȉ,ȞȈ̈ ̀<@ ̌̌̌̌̌̌Ȉ   ̀̌Ȉ ̌ḦȈḦ ନ*謢Ί⬢ଊΊ Ί⬂*ଂϪ(Ί̌̌̌̄̌̈Ϫῒ ( ଂ Ί Ϫ* h̰/ ̈̀ / ̈h/ ̈hL/ ̈,1hhh\\\lllllȏ RSRC LVINLBVW ~ OOOPOPOO G  O4ODO|O|ORsModPIontroller 4ver.3)ver.2)OJ lO,QH   ُ B~45LVINModPILVINAI Read One Scan.viK    @ device (1)T@@0P@ high limit (0.0)@ low limit (0.0)input limits (no change)@@fP@@ no changeDCACGND internal ref.coupling (no change:0) @input config (no change:0)%coupling & input config (no change:0)@@ scaled data,@@@0 channel (0) channels (0)@@ binary dataH@ no changescaledbinaryscaled and binaryoutput units (scaled:1)@@P @!status @code@0sourceerror in (no error)@iteration (init:0),@&[number of AMUX boards] (no change:-1)6@P @!status @code@0source error outPTH0+DAQAI.LLBAI Read One Scan.vioLVINAO Write One Update.vi   @ device (1)@@tP@ high limit (10 V)@ low limit (-10 V)B@ no changeinternalexternalreference source (no change:0)limit settings (no change),@@@0 channel (0) channels (0)@@ scaled data@@P @!status @code@0sourceerror in (no error)@iteration (0:initialize)6@P @!status @code@0source error outPTH0.DAQAO.LLBAO Write One Update.viLVINWrite to Digital Port .viB   @device@port width (8)@0digital channel @pattern@iteration (0:initialize)PTH06DAQ 1EASYIO.LLBWrite to Digital Port .viLVIN modPID SubG  @ Desired Output@ Actual Output@ Kp@ Ki@ Iteration @ Delta T@ Control Output@ Actual Time (s)PTH0 modPID Subn i386wicodeUl$SQRVWEX9EX9EX9E X;E$XMRE(X/=E,XE=E0E4XF=E8X&@E\d$ZY=tÐf,ƅPDnDžDžXG䍅QRhhhhhP\d$ZY=tÐf$ƅ0PEpXX䍅QRPP$Od$ZY=VÐDžDžPEhXDžt(DžDžÐÐÐfE$ƅ0fxBnDžDžXG䍅QRhhhhhPN\d$ZY=tÐf#fDžDžXfDž Dž X fDž` Džl Xd fDž Dž X[ fDž0 Dž< X4 QRhhhP $h\d$ZYQRhhhP $B\d$ZYQRhhhP( $\d$ZYQRP؇$hhPX $\d$ZYÐf rƅ4xC@C$aOd$ ZYfE_^ZY[]ÐUl$SQRVWh h` `  p p @ @ hUUDd$_^ZY[]Ð_^ZY[]ÐG  h c 4   }  r   n   \   j ;;S@, @b X~q F     _ : /    t .  ! )" # # #5$$% & ' J'' ( )) B* **+ , 8- -. . / 40u00 {11 >222 [34 4 B55 6 77 !8 88 79n99N:<C<[j<_<[<[<[<[ =[+=[R=_n=[=[D>>>,???(@tABlCCCBDvDD EYEEE;FFG^GGG-H|HHHGIIIdJJ]J]K]YK]K]K]L]KL]L]L^&M]\M]M]M]N]NN]N]N] O]O$][c]_][][^[A^[~^[^[^_!_[^_[h88$$P`$`b P         @P b P         @P P"@P@flg@oRt@eofudf2PP @ Output Error and Output ChartpP   dfdPP   exdPP   txdPP   old` P   ZP"@P@flg@oRt@eofudfP Proportionalp dfdP exdP txdP old` P   VP"@P@flg@oRt@eofudfP Integralp dfdP exdP txdP old` P   ZP"@P@flg@oRt@eofudfP Desired Tempp dfdP exdP txdP old\P"@P@flg@oRt@eofudfP!Press to Escapep!dfdP!exdP!txdP!old`XP"@P@flg@oRt@eofudfP! Fan ON/OFFp!dfdP!exdP!txdP!old`< P @P0@@@@@@P!!!!d@ZP0   !!!    >P$@P @ Output ` < P @P0@@@@@@P!!!!d@ZP0   !!!    <P"@P@ Set Point ` `b P         @P b P         @P P"@P@flg@oRt@eofudf0PP@ Set Point Setpoint and Temp ChartpP  dfdPP  exdPP  txdPP  old P   \P"@P@flg@oRt@eofudfP Desired Delta Tp dfdP exdP txdP old` P   b P         @P LP"@P@flg@oRt@eofudf p dfdP exdP txdP oldV P$@P@0P`0 channel (0) `device``0 channel (0) `device`` y` lo`` x  `device` `iteration (0:initialize)`0 port number` y` x`0 channel (0) `device` ` voltage `device`` y` x` Actual Time (ms) `line`0 port number `!Press Esc to Stop VI``iteration (0:initialize)`  !`V P$@P@0PV P$@P@0PV P$@P@0PV P$@P@0P``h`6@P @!status @code@0source error out`@ device (1)@@tP@ high limit (10 V)@ low limit (-10 V)B@ no changeinternalexternalreference source (no change:0)limit settings (no change),@@@0 channel (0) channels (0)@@ scaled data@@P @!status @code@0sourceerror in (no error)`@iteration (0:initialize)` @device@port width (8)@0digital channel @pattern@iteration (0:initialize) @ @ voltage @@0 channel (0)!`@!Press to Escape`@ Actual Time (ms)`!`&"P @ Control Output P@ Desired Temp  ` @device@port width (8)@0digital channel @pattern@iteration (0:initialize)!`` 6@P @!status @code@0source error out`@ device (1)@@tP@ high limit (10 V)@ low limit (-10 V)B@ no changeinternalexternalreference source (no change:0)limit settings (no change),@@@0 channel (0) channels (0)@@ scaled data@@P @!status @code@0sourceerror in (no error)`@iteration (0:initialize)@ Desired Temp@ Control Output @@ Control Output!` !`@ Actual Time (s)`@ Desired Output@ Actual Output@ Kp@ Ki` @ Delta T@ Desired Temp @@ scaled data`@@ binary data6@P @!status @code@0source error out`@ device (1)T@@0P@ high limit (0.0)@ low limit (0.0)input limits (no change)@@fP@@ no changeDCACGND internal ref.coupling (no change:0) @input config (no change:0)%coupling & input config (no change:0),@@@0 channel (0) channels (0)H@ no changescaledbinaryscaled and binaryoutput units (scaled:1)@@P @!status @code@0sourceerror in (no error)`@iteration (init:0),@&[number of AMUX boards] (no change:-1)`P @ delta XP @ delta X@ Actual Time (ms) !`@! Fan ON/OFF @@0channel @@0 channel (0)@ Integral@ Desired Temp@ Proportional@ Desired Delta T```$`$``````````````````````````````` `% ` ` `% ` ` `% ` ````` `% ` ` `% ` ` ` `H`@7@ 7@.@V.@"./?v+ I@N@r@Y@I@$?V@TB@@^@9@?"0 0@@@\(0BBR0?@.0?v+ I000 d:\automated\lv51\lvsource\gencode.cGenRangeCheckd:\automated\lv51\lvsource\gencode.cGenCopyProcs1d:\automated\lv51\lvsource\gencode.cGenCopyProcs2$d:\automated\lv51\lvsource\gencode.cGenCopyProcs3nd:\automated\lv51\lvsource\gencode.cGenDefaultProc<(4L\hkpH| f ,P0<TVIDSModPIVIDSWrite to Digital Port .viPTH0VIDS modPID SubPTH0VIDSAO Write One Update.vi PTH0VIDSAI Read One Scan.viPTH0%5.1Oldest compatible LabVIEW.OdOOOpPPP 2@P @ Output Error and Output Chart@ Proportional@ Integral@ Desired Temp@!Press to Escape@! Fan ON/OFF0@P@ Set Point Setpoint and Temp Chart @ Desired Delta TThis VI is used to control the temperature of an Aluminum Plate. The desired control temperature, or setpoint, is maintained by sending a 0 to 5 Volt signal to a pair of 4.7 Ohm heating resistors wired in parallel. The output voltage is determined by the PID Calculations VI, through the use of a simple PID Alogrithim. The user can change the proportional, derivitive, integral control gains as the VI is running. The user can also vary the setpoint temperature. A fan is controlled by a button on the front panel. The fan can be turned on at any time by the user to cool the plate, thereby creating an external disturbance to the thermal system. The recommended setpoint temperature range is from 80 to 120 degrees Farenheit. See PID Calculations VI for more information.<"!!!!!"<   i"I"I"IIIDTHPD$O88~L! @ voltage @!Press to Escape @device @0 channel (0)&@ @ voltage8,@@@0 channel (0) channels (0).@@0 channel (0)"@ Desired TempB2@P @ Output Error and Output ChartN>P$@P @ Output ` "@ Proportional @ Actual Time (s) @ Control Output@ Integral  (P@ Desired Temp  @ delta X<0@P@ Set Point Setpoint and Temp ChartHLY>  Fan ON/OFFH"l"Oc 8c 8UD&3&3  Degrees Fc++Setpoint and Temp ChartQD^k^k13.55RD³´250.00\^=k^>k Actual Temp. (F)RD. .Fan ONSD)6)6SecondsSD\i\iSeconds[fsfsDesired Delta TPzz0.00]DI`]Ia]Controller ValuesNM"TN"T N(5(5 R'N4z'O4z214.06QD,90,90100.0^DH!I!Actual TemperatureND{]e{^e0 WDS0.00PD 9O :O4.99HDt"OSEd{qd|d False MD1RDbcdeviceMD0WDIJ port numberQDbobo32.00MDR_ R_ yQDanan36.43MDQ^Q^xHDD$O33bD6D46D4 AO Write One Update.viWD8[E8\E channel (0)MDJVW]JWW]0RD%T2u%U2udeviceMD%z2%{21VDXY modPID SubHD$O}~PD\ni\oi0.00SDLaYLbYvoltagePD0.50MDyQDO\O\15.00MD?L?LxPD7D(7D(0.00\D'4)'4)Actual Time (ms)RD -  - deviceMD - -1dD8F)8F) iteration (0:initialize)MDI!V(I"V(0LD[=hD[>hDMD[IhP[JhP0WD5B 5B port numberMD5B5B0_Dkyky AI Read One Scan.viREQ^!QQ! True MD¯ɢï0bDbb AO Write One Update.vi`D=)>) Press Esc to Stop VIeD|| Write to Digital Port .viMD0dDYZ iteration (0:initialize)eD4+5+ Write to Digital Port .viQD>L>L ModPIMD0RDer#er#0.0055HD$Orr RE True SE6W7W False #' #% ڌ {{ Y] Y[   !;!> 2125 #3#5StopOFFStopOFFOFFONOFFONFPHPModPI$(FPHP#O8$ 8$'$ m $#,$Q $6PœP $XL"P ,7 4 J \Fk[FP0 C  ~[0 {*!B~_`@ 8J!Rappq@ 8L!@Omlm@ 8K!@Onno@ 8$!AINU^^_@ 8%!SI`U^^_@ <"!@SOdZZ[@ <#!RSad\\]@ 8M!@gO{hhi@ 8N!Rga{jjk0 o! =Fd[0  v"\@`40#6(#6 0 2`(#(0 2`-#&4  6`'6𳳳FP@@4p(xp(  0 2P(ڍ0 2P-{|4 6P”FP0  m8[4 $ը곳`FP0  |@ P f9|(p( P 8 4 F fAu|[FP4  2 yBp\dFP@ 2 @w9@pⳳpl@ 2 9@o㳳okH : zBH00/.-0  w@r[0   |@ P f 4"(  \  D 4 F  fu[FP4  2 x\FP@ 2  @vpⳳpl@ 2  o㳳okH :  y00/.-0  v[0  !  |t@ P /_+ @$x(  h  P 4 F  /E+[XFP4  2 N]\hFP@ 2  @LUpⳳpl@ 2  U_o㳳okH :  O[00/.-0  L_[0 # (|4O dD@C\4 G ~[FP<  r SmͲFPO  D|JD|ӳJD|ӳKD|JD|K0B \0hB|4  6[4FP4OdKH@r\4 G KZ?[PFP<  r b 9$FPO  ^HQ^HP^HQ^HP^HQ0@s pH<  dd("4 %4[HFPp^m8~pGg0 J& =M[l,`@@t0`P@p^(l|-,",^@_g4 J ,[DFP0 C  |[0 {*!v`@ 8J!ppq@ 8L!tmlm@ 8K!tnno@ 8$!u^^_@ 8%!^^_@ <"!tZZ[@ <#!\\]@ 8M!tԃhhi@ 8N!ԕjjk0 o! q[0 J& q{[0  X\@`40Yl$`Yl @p0 2(Y^0 2-Y\4  6]l쳳@FP@@4^^ 0`0 2(0 2-4  6LFP0  l[4 $]P41 B`]FP02@ 2"@42 B ]xFP03@ t2"43 Bt ]|FP04@?0 ؛/ 44 B0]\FP45/t p?_h5 < 450 < &OZTh5 5 <h 450 < (%EOJh5 < 5 < 450 < EOJh5 5 545 2  ]|HP06   `46 B  ]HP7 $ X,7 =  7@ @7PX@@747 2$ ]tHPH8 :$ 00/.-08 3$ c48 B$ ]xHP,9$x,9d?$ 9@49t 909@Ed  P49 B ] FP4:/t%E(:8 : p84:0$<5@:: :EX84:0A+50:8:x: @4:t\P '4:/@tx gv:8:4tpG:0P0:5hU:| :@h8 0:5T: :@/Ǭ0:5V :@>0 :@P,:0P| l4:t !+:0:-e  D:ct`o6_x:<:4:bXv6_}J: :@gP4:b (Y666:< :@<: | :T :4:0A[v :\ !4:0@@\v: :!tǬ4:0@]v:T : #4:0@^v:4:t I  :BǬ<:$1P 44]FP ;%(,;&(& ,8!;H0;,;t&; ;;0;H%;H0;.ld ;B ;B;,L ;@@ ;B Ǭ;X;+T ;@@!Ǭ4;Ht 8 ;B+%(Ǭ;%X4;/#Vq;H ;(P4;04g  q; ;@h4;0cq;H ;4;0b q;4;L# 2;X@;P,j;4; 2h +]lHPH< :h )00/.-0< 3h ,c4< Jh  ]pHP,=h8,=ih =@@,=,XT4=  3@=P!&!pl=!4= 2t %]\HP>ǬT>@##H> :t #00/.-0> 3t &c4> Jt ]`HP,?!< ! ,?kt ?@\!!4?t )@?P##ln?#4? 2" ]THP@#H@ :" 00/.-0@ 3" c4@ J" ]XHP,A#8"p"#,A"\m" A@ ##ĬA Ԁ@ 8A4t$ȟIpH,A?H\I $ A@$?dA$0A-%x_ our AB %(ǬAT%X%,AL%X A@@/%(Ǭ,A%ApApA+8,Ap&&&$A*A&A)0A&X*,Ap'D'0'%A-A'XA,0A&+A&X&0A.p(o &,) AB&' AB'X'A''(0 A@@p(P'4A)0(!4A(P) A(0,A&)xh) A) A@&*)L)@AP)L ;U)pA**<*4A 2)  <T]dHPHB :)  7=00/.-0B 3)  ;UcB')+h4B&X,>P 64B. 50B-p+a agd BB&*+8+h BB'X-+8+B+h++B',+ B@@p++8+B(0+B)+h,B+(P@,B'X,`, B, B@'X-,d,@BP,d7Q-fB- -T-4B 2,  8P]hHPHC :,  3900/.-0C 3, 7Qc4C&.. 7C,+C-DdDC+rd4Ct/p!4Ct/ܙ -C%{lC5p2d0C@2d0(0D4C B0]TFP EB1015p EB115pE22(2d E@@/t15p0E-6;A>4Et2;$!E0]4@EP4d~a48@E44E 23 ]LHPHF :3 00/.-0F 33 ~c4F B3 a]PHP,G43X33,G13D3  G@144d44G1`4=9G4 GB102\4G/t5T3QpG5p56@ G5 /t55p4G05 5W#.(pG5p G5 f5\4G05 6,Z#pG5 G5 [6`74G05 6#pG6@ GB182\G25G568d8G(7Q+78G7L4G'8R9IE7 Gf77 G@77G77 G[7L7 G@97L7G77,G77ElSht G@@f2\G2d8d4G1`8;;G6G1G=4,G2(4=46,G90h G9 G@99T9G9l\,GQT n 4GGKx΀ HGeUUHG2TG76@G8@>4GQ=HSMШ\4SQdQ[=SOL,SȬDS,S Dt8+S0SQdx,SDR,RR*SSR@S0SQT4SQQd0S.DRPNEZKTH SBQRR SBR@RRSRRS S@@DXRSSZ4S"E #+ ' S"EST S@ghtSh S SjgSS S8Sn\SRSS4S3KM|DTL SKTT4S3KTDTLST@S1tU|UHWw8tO4S KUW]HP0T(Ǭ0T@V<U|U4T BU|]GP,Ut04Ut0H 8U:tV `U@V U@Vp V0U;Vp,HU?UqUElSU @U" [@> >4UWl!@UPZtZlkZHUZ4U 2Y [mj]GPHV :Y \hhn00/.-0V 3Y Zlkc4V JY K`Z]GP,WZYhYY,WQYTY W@QZZtZW\`4WQdS8q( ?pWP+}G€G@+W04Wt;l a,WQ[l W\ W@Qu$[\4Wt\d .W{84W/t\JjEW\]4 W\f\\4W0\] Zg`EW\ W\2]T4W0\]NZTEW]44W/t]qhW]^T^ W]cp^ ]4W0]^@whW] W]Kx^t`4W0]^hW^T W]f^\4W0]_w|hW^@WP``XW`4W 2_$ ] HPHX :_$ 00/.-0X 3_$ c4X J_$ ~]$HP,Y`$_x__,Y_d_$ Y@Kx``4Yta ,Yz4h YSizYcp__4Y/tbJj iYb8bc YafbX]4Y0abPeZiYb8 Yacpb]4Y0abZe_iYb Yaec(e4Y0ac\PZUiYc4Ytca< Y]b,Ym mTmmHY>@YPeM^ehYe4Y 2d4 N]]HPHZ :d4 O[00/.-0Z 3d4 M^c4Z Jd4 >M]HP,[e4dde,[dtd4 [@eee4[tfd: 4[tfH [b8 l[ecp[E' ' 04[tg$0,[\^8d574[tg| "[J8[(SȎ6B+<g[g4['h69BI(Ho9E0o-pa-i3e0 oBpi oBio0P o@@gPi,o؈oo0oV8of|΀}  } `  >@    x      x  @oP9T!@oIJ@4o  2h  ]HPHp :h 00/.-0p 3h !c4p[ 0,pȳ pp0php0p.sy pBDt pBDpt p@@@D pBpi pBipHP p@@h@ipеLppe0eHph@eepgP}J@ey}yeJe0@pPct%@p\4p 2 ds$]HPHq : eq00/.-0q 3 ct%c,q4 0qH q@H,qHP4q0 1qHqke0e!k!qx t !#077ELGhH|S`eh S䍼 U,qB$ <$qjG/t  p 4rt@  r 788 o@ r4rt\X4  O?`LO@ҴOAhOB\OCӰODOEP(OFԨ OGOHTHOIը@OJ8OK\0OLְOMON\OOרOPOQlOROSOTlOUOVOWhPOXOYOZhO[O\O]hO^xO_ O`txOa܀Ob0pOcހhOdOe0Of߄OgOh@OiOjOk`LOlDOm ,On$OoOpLOq`OrOsDOtOd#O\#O#O$#O4#OD#OT#Od#O)t#O*#O+#O<"O#OP"OD"O $O &OO0&O۴&OModPI~zThe VI will perform the calulations for a PID control alogrithim, and determine the output based on the three gains, the setpoint value, and an input value. INPUTS to VI: Input: Actual output from the system. Setpoint: Desired output of the system. Kp: gain constant for proportional control action. Ki: gain constant for integral control action. Kd: gain constant for derivitive control action. Iteration: number of iterations of the PID Calculations VI. On the "0th" iteration the VI will reset the Integrand and previous error shift registers to zero. OUTPUTS from VI: Control: output from the PID transfer function. Actual time: time between two consecutive samples. ALOGRITHIM: n = current iteration number Error(n) = Desired output(n)-Actual Output(n) Sum Error(n) = Sum Error(n-1) + {Error(n)* [t(n)-t(n-1)]} t(n) = current time Control Output = Kp*Error(n) + Kd*[Error(n) - Error(n-1)]/[t(n)-t(n-1)] + Ki*Sum Error(n) NOTE: This VI is designed to be used in a "while" or "for" loop, with the iteration counter wired to the iteration input of this VI. wEh? ZU?*몪**ꫪꫪ**~*:Ȍ Ȍ <000000?0000?080?0̈̈  ̌B̈  ̌  ̌  ̌H33#3#333333333#333333333333333#33333? y{~?Ͽø08?øyxyy<<~xy{8 yy>>|yq LLLDDDDLLDDDDĎHDDDDDLDLDHDL8Ġ8Ġ8HĠ DH  D H D H HDH HHHHH?H@   ࠊ  Ȭ $̌ @ ÈNb$L.L.L@Ȉ( 8̈,΢,,,h, Ìb,..̂̂Ȉ( 8̈,΢,,,h Ìb,..̂̂Ȉ 8̈,΢,,,,B Œb,..̂̂Ȉ 8̈,΢,,,,L Ìb,..̂̂Ȉ33  L.̈.̌.,̌.,̈,̌.̌.,.,̌Ȥ / ̈̎ Ȉ̎ ČȈ ̈̌  (̈̈̀ ꂰ̌̌Ȍ̌`̌Œ`̈Ȟ̈(̰+̈ḦȈΈ,B͈,̼B ̌`ḦhL Ȉ(.̈ḦȈḦȈḦhȈ̌ ḦȈḦh ȈḦȈ(/ Ḧ ȈḦ( ȈḦ Ȉ(/̈ḦȈḦȈḦ(Ȉ(/̈ḦȈḦȈḦ(Ȉ(̰+̌ȌȌ`̌`Č̈̈ḦȈḦȈḦ(Ȉ+Ȍ̌Ȍ̌ƌ` ̈( (,,Ꮘ̂Ȉ(̈̌̌Ȁ ,(/̈ḦȈḦȈḦ(Ȉ ̀ ̀ ̀̌ ψ,  ̀̈ ̀̌ ̀̈ ̌̈̀  ̼B ψ,̌̈̈ ̌    (̈(̈̀ LB ̈̀΀L L ̈ ,(/Ȉ̎ ̀̈̈̀  Ḧ̌ (̈̀ ČȈ(̈ ̈̀̌  ČȈ(̈ ̈̀L@ (̈̌`Ḧ̌̈̈̀ƌ` ČȈ(̈̈̀ (̈ ̈̀̌̌ (L̈( ̈̌̌ ̀ (̈̈̀̌ ̌̀ ̀Č̈̌ƀ ΢, ̀ ̈̌ (̈(̈̈ ̀ ̌ ̈ḦȈḦhȈL ̀ƀ Ȉ,Ꮘ̂bȞ̌ ƀ ΢,ȞȈ̈ h 8,Ꮘ̂oČ̈̌ ̀ƀ ΢,ȞȈ̈ ̀ ̌̌ ̌`̌`̌ƀ Ȉ,Ꮘ̂bȞ̌ ̀ 3ʀ (̈̀̌̈̌ (̠+̈Ḧ ȈḦ ȈḦh Ȉ̌ʀ ʀ, ̎ȈȈ̎Ḭ̏̀̈̈+Ȍ̌̌̌@ ̌̌̈( ̈̀  (̈̈ ƀ ΢,ȞȈ̈ (̰+ ̈  .(* ̀*/(̈ + * ̌  /   (*"*/𨂏  訨*   * ,.,,  . .,  / ,, ,,,, ,/ Ȁ  /(* *7Q0q* 򨂏****    * ت + /*(*+/ _ 4@730W3333333030PTPOE@OU (/ hhhXXό  RSRC LVINLBVWd DD < -FC "?8 ُ B~3E#LVINPID Sub  @ Desired Output@ Actual Output@ Kp@ Ki@ Iteration@ Kd @ Delta T@ Control Output@ Actual Time (s) PO c8 P+ P   cPP"@P@flg@oRt@eofudfP Kpp dfdP txdP oldP ext P   cPP"@P@flg@oRt@eofudfP Kdp dfdP txdP oldP ext P   cPP"@P@flg@oRt@eofudfP Kip dfdP txdP oldP ext P   c\P"@P@flg@oRt@eofudfP Desired Outputp dfdP txdP oldP ext P   cZP"@P@flg@oRt@eofudfP Actual Outputp dfdP txdP oldP ext P   c\P"@P@flg@oRt@eofudfP Control Outputp dfdP txdP oldP ext P cVP"@P@flg@oRt@eofudfP IterationpdfdPtxdPoldPext P   c\P"@P@flg@oRt@eofudfP Actual Time (s)p dfdP txdP oldP ext P   cTP"@P@flg@oRt@eofudf P Delta Tx dfdP txdP oldP extV P$@P@0P(!`milliseconds to wait(hmilliseconds to wait( ( (`y V P$@P@0P c cd  Pmillisecond timer value   @millisecond timer value c@ Desired Output@milliseconds to wait c@ Kp @ Ki @ Kd! c @ Delta T@ Actual Output@ Iteration@ Desired Output @ Ki @ Kp @ Delta T  @milliseconds to wait@ Iteration ch c c  c , P vPvPvPvPvPvPvPvPvP cd c4H1 p ^ i  0 L T pR@@?tzG{@T@S33333@ \(À ?zG{?v+ I 0ptJPl4"@Ph`DPXrt@:@@D@: @@I:M>QXY\a`E h@`@l@p@P@edt@ 6X0n(J8vT8vH@z0n0n8vijVIDSPID Subi386^+~codePPEw$+~E\EPPUEd$=Q= Ð)Ӏ}.ELXC,p{0tVWp(_^CDP{HtVWP_^C4l{8tVWl_^Ch{ tVWhH_^C$`{(tVW`_^CTC<C\CLt{PtVWt_^}E$EEƅƅtƅƅ4ƅƅDƅ48tQRUיd$ZYɍƅDthhUEP*ƅT] 8~^P] 9~$P5] K9~P]  9~P9]  9~vP]   9~~(_^ZY[]Ð*Ul$SQRVWT$ QRPE@$R8d$ZY=u_^ZY[]Ð]QRu?Pd$ZY%Ul$SQRVW}#uQRUu`d$ZY_^ZY[]ÐFUl$SQRVWQRU`d$ZY_^ZY[]ÐUl$SQRVWu[>~F >~F>~FW+~F@?~FDQRhUp`d$ZY_^ZY[]ÐX  ,b{ Xl | 4G\k S  tL+~( Vnd*B|L4>$,4<%BJ . D Z w CODEPPDt%6.1Oldest compatible LabVIEW.6.//pPPP @ Kp@ Kd@ Ki@ Desired Output@ Actual Output@ Control Output@ Iteration@ Actual Time (s) @ Delta T ~zThe VI will perform the calulations for a PID control alogrithim, and determine the output based on the three gains, the setpoint value, and an input value. INPUTS to VI: Input: Actual output from the system. Setpoint: Desired output of the system. Kp: gain constant for proportional control action. Ki: gain constant for integral control action. Kd: gain constant for derivitive control action. Iteration: number of iterations of the PID Calculations VI. On the "0th" iteration the VI will reset the Integrand and previous error shift registers to zero. OUTPUTS from VI: Control: output from the PID transfer function. Actual time: time between two consecutive samples. ALOGRITHIM: n = current iteration number Error(n) = Desired output(n)-Actual Output(n) Sum Error(n) = Sum Error(n-1) + {Error(n)* [t(n)-t(n-1)]} t(n) = current time Control Output = Kp*Error(n) + Kd*[Error(n) - Error(n-1)]/[t(n)-t(n-1)] + Ki*Sum Error(n) NOTE: This VI is designed to be used in a "while" or "for" loop, with the iteration counter wired to the iteration input of this VI. <"!!!!!"<OIIOII,DTHPD`688$+~t! "@ Actual Output@ Iteration @ Actual Time (s) @ Control Output(@millisecond timer value*@milliseconds to wait@ Kp@ Kd@ Ki @ Desired Output@y @ Delta Th00L0\|\|L(((L0LHHH\\\ NererڳKpH2xυxЅNڽڳKdH@3N֓͠ΠֳKiH|3ϳгZ7D7DDesired OutputHp4JWJWYƽƳ  Actual OutputH4Ze{re|rijControl OutputHX5v}v~U7D7D  IterationH5JWJW[{Ó|ó Actual Time (s)Ht7}~S𳳳Delta TH1HD3HDd3]?jL]@jLHD04  HD4"" `Dcbpccpmilliseconds to waitHDXssHD<1boVboVHD(5!.$!.$HD5YYHD6|Fq|GqtDFF(((Initialize variables on first iteration.jDxyWhile loop only executes once.HD1HUHUHD40  HDd0LSMS`DsTsTmilliseconds to waitHD|0HD0?L?LHD0p}p}HD|/YrZrMDlsmsy\D&v'vIntegrated Error]Dy+y+delta T (seconds)QDErrorWDER,ER, delta ErrorSELYLY False HD0ssQEjwjw 1.. FPHPPID Sub0FPHP&8(/8hB,DPXL P7@PXdň4 B dsᳳt 4  2 wΆⳳp @ 2 @u~phphll@ 2 ~ňoioikm0  üᳳ0|@P| H.4 B ᳳ 4  2 ⳳ| @ 2 @phphll@ 2 oioikm0  ᳳ0$tJ|@PŶ"4 B8 ̡ᳳ 4  28 δⳳ @ 28 @Ŭphphll@ 28 Ŷoioikm0 8 ̶ᳳ0!8|\@P,6ZL$4 B 6Eᳳ 4  2 IXⳳ @ 2 @GPphphll@ 2 PZoioikm0  GZᳳ0 \#4" |@ P ȼzHh~4 Bp ᳳ 4  2p ⳳ @ 2p @zphphll@ 2p zoioikm0 p ᳳ0  p |x@ P ddz4 B  dzsᳳ 4  2 u|ⳳ @ :  @ss|zphphll@ :  |szoioikm0  szᳳ0    |,@ P 6zZ\@(l4 B  6Eᳳ 4  2 IXⳳ @ 2  @GzPphphll@ 2  PzZoioikm0  GZᳳ0 0 D|!@Pzd4 B D zᳳ 4  2 D |ⳳ @ : D @szphphll@ : D szoioikm0  D zᳳ0 D|<  d ,X< X, d @P fV4 BX ᳳ 4  2X  ⳳ @ 2X @phphll@ 2X  oioikm0 X  ᳳ0eXr|,PD8,  , X    d   ~PP,T6M`64>hM$g<PL : x΄00/.-,@th(D8hB8h8BL : 00/.-,x `L :8 β00/.-8hB,H|xL : JV00/.-L :p 00/.-8hpB,  X 8h B, L  4t8h BL :  v|00/.-,  P  8h DBL : D |00/.-L :  JV00/.-L :X 00/.-8hXB,@X, ,l BDHPPID SubxBDHPKl68x exX, 0io4%%J`(,bbL0 ,aJ4$/0 b80$a @8h0%a @84OD 4"a "8+ d0p  @a0d0p,4/$Dg`0 @40 g` &B40 g @P40 g0 T ,8P@D \4/$0 m,hLX  $LX0@% X#4 BCx 0@%(\Qlqda(4 B\>kMC 0@%\1!4 B\C 0@%,$D44 B#C 40l}'h xx40%s'}!xh 40&s}xh4/$H6Vid 4  d 440'FQKid  40 (<FAi   T 440 )<FAi 4p4/$A ai  # T40 @*Q\Vi   t T40 +GQLi T  @ 40 ,GQLi 4/$<C\cj4/$0Ph  Xx 40 X -6K@h  X 40 X H.@KEh  X |40 X /6@;h \4/$ Oyoi  |  " 440 h0Uj_i   ( 40 1_jdi |  h40 82U_Zi 4/$!gl L 440L3g L"$40LX4g L" 440L5 gl4/$ y*Jh ?h(.40\6:E?h .4070:5hp 40,80:5h,%l>DE $l  $h40 $9BSW^LXj  $F$<40 $X:LIWSQNj  $x40 $;BILSGNjl4/$\|  @40t<\|l  440=\|l4$Q a @%4P@$@P@qb ?@4 JD baqC|4 /qa4  2D rd0 3D q B%l9D$*d'|,4 @84ON|A@ 6))*4/$hpgT 4" 4404B g 4# T404@C v{g 4 dt 4404Dv {gT4$G[!& 4$\YT  |4$p, ! l B%@* 0@23p *x44 Ba pWC 4$o (4  t(!0-DpE4$4Ua.p B%l*P4$m| '@( @@D*4$LV xX! '@4 TPT 4$r0# .(0@%/XVf^#&+p+*,4*4,!,4 .hLx 0-D#PP0-DGAJE,200<0@% x !0A(14 Bx /%C 4$kx .+0@0 d0p /\4 B,ZC  B%)x B%l)x @@D)x4$#h4 4$tUP +` '|4 !'| .(+38 (-a) #@%l8 7t7L#&P.1`79$:x;*3d!.H4#%@2tc@#P8[4# 28@  0$ 38@ ,$%l9R8@QX$9$ $@%l9D89$4$%@9xQ $9$d@$P:8=NSS4$ 29 >M 0% 39 =N,%%l:dT9Y\%:x %@%l::8:x4%%@:Xp %:x!@%P;nJ @4% 2: o~ 0& 3: n,&%l;:a`&; &@%l;;;4&%@<4&0Wt`Y@&>4& 2= Xs 0' 3= Wt4' J= ktC ,(%> X=ed (@%?>>4($?LP (>=X4($&dj$(D Md4( $%wC 0)-J@xb )BDDG?<)I@ )BDH\?<)@X@G@)Ex@XH4)$&` 4)/$Ai)A4AB )@&ATB4)0@AZ i)A4 )@FA<4)0@A[ i)A )@ B$B4)0@BX\i)B|)44P/X# d  0F&@?h?@(""hx4) $x,C 4* $ C 4+ $DS-C <,$1JP 4KZl  -?G,-JD0DD-G-DD-I0-CI,-JDDD-H\-D-0-Dt@-DtC0-.JE]]ic -BDDE(F -BDE(F -ExEXE -@@JE(F 4-/$FSisY-F F -EF@F 4-0EFt`Yync~-F -E0F<4-0EF_Yonyct-F4-$Hi '-HG|H< -@@JF?<-EG@H< -BDDG<-F E4-C@>4_>h_8/hDBL/ :D s00/.-ެ/@ދ8/hB`/!bX^ QhO,/`| `DL/ ()X*4*-$-/3H/a,/a,!((>`0&>&?`&?P&?%?%@4` @%@&A0&A|&A&BL(B`X(B( CH'!C'"C'#D,'$D'%D(&E(''Et'(E')Fh'*Ftt'+F؀',G0*-G+.Gx)/H0h)Hx&H'`()`8) H)8X)ټ)PID Sub  @ Desired Output@ Actual Output@ Kp@ Ki@ Iteration@ Kd @ Delta T@ Control Output@ Actual Time (s)<"!!!!!"<OIIOIIThis VI is used to control the temperature of an Aluminum Plate. The desired control temperature, or setpoint, is maintained by sending a 0 to 5 Volt signal to a pair of 4.7 Ohm heating resistors wired in parallel. The output voltage is determined by the PID Calculations VI, through the use of a simple PID Alogrithim. The user can change the proportional, derivitive, integral control gains as the VI is running. The user can also vary the setpoint temperature. A fan is controlled by a button on the front panel. The fan can be turned on at any time by the user to cool the plate, thereby creating an external disturbance to the thermal system. The recommended setpoint temperature range is from 80 to 120 degrees Farenheit. See PID Calculations VI for more information.88a?kU#?kUU?{EP'"/ """»ꪪ껪*着ﯨ+ꫪꫪꫪnꫪꫪꫪ۪껪諭*ꫪ뫪*+~+*""'**)**"")(****+**)*********諪*ȌȌH 8000000,p70000000?00"# "Dw`@"`_tQQ #;0 D    "`y? "" " "" " 833$03#23@83"33#23@83"3323@83"33c13@8323C3#3@223̎ #3?2<1<<{ϳ?<<0~{8_.<||<<><?{8? ?q??~><<OyO?sy<<9?<<O<?|??>Op??}p?>yq?< Ox<<<,<<<<<<,<<<<<<><<<><??<<<<<~<<<<>3O<<?pp??3??3333333333333333333333333333333333333333333333333333333333_?𔪪oi<<>)>臀>~~~?Z"€DA'"'?À@Q""'?>?ZU? ĎĽ̌̌Ľ̌̌̌̌̌Ȍ H@ H ?H D H DH H  ?  ĿHH ?   H  8  䯊?Hį HĿ H H Ŀ  H 8 HD H  ?H  HࠊH   H H         @H  ?   ࠊ  ꎺ??Ȭ ̀  b,,,,,,,ό̌bbB,̺̌bbB,h, ̃Ȉ( 8̈,΢,,,H< Ìb,..̂̃Ȉ( 8̈,΢,,,H< Ìb,..̂̃Ȉh b,̂.̃̈ $N$Ȉ<̀ , ,b̢.̢̢.bb̢̬̈,,, ̼̈,,{, ̂<̈Ƞ  Ìb,..̂Ȉ̃0232 8,c b,..̂/̢ ̢/̂̈,,,̃Ȉ   ̈.,L,.̌, Ȉ@ ,,̌.?2#?2!!3<Ȭ / ̈̎ Ȉ̎ ČȈ̈̌ ̀  Ȉ,Ꮘ̂bȞ̌ƀ Ȉ,Ꮘ̂bȞ̌ Έ,Bψ,BΈ, ̌Ȍ̌`̌ƌ`̌  ȈĈ̀  Ȉ,Ꮘ̂bȞ̌ƀ Ȉ,Ꮘ̂bȞ̌ ψ, ̈ḦȈḦhȈ̀ .̈̀Ȉ̈̌̌̌L ̌΢̀̀@ Ȉ H ( ̈( ̈̌̌̌̈̀̌ (̈̀B ̌̌̌ ̌`L`@ ̀ƀ Ȉ,Ꮘ̂obȞ̌ ƀȈ,Ꮘ̂obȞ̌ h 8΢,,Č̈̈.̈̌Ȉ(̈̌̈ ̈̌Ȉ̎ȈȈ̎ȈȈ̀̈̈ ȞȈ̈h 8,Ꮘ̂ö@ (̈(̈̌̈̈̀ Č̈̌ƀ ΢,  ̌ ψ,΢Ȉ ̀̈̈ h (΢,,Č̈̈L ̌̌̌ ̌`̌`̌ ̌ʌȀȈȞ (̈̈̀̌ ȞȈ̈̌Č̈ Ȉ,Ꮘ̂bȞ̌    ̀̌ ꂰ̌ȌLƌ`̌`̌ ̌Ȍ̌Œ`̌`̌€ Ȉ,Ꮘ̂obHĽ̌̌ € Ȉ,Ꮘ̂obȞ̌ ̀ ̄̌ ̈Έ,̌ČȈ̀ ̀Č̈̌̀ ,΢,ȞȈ̈h (,΢, ̎Ȍ Ȉ H( ̈( ̈̌̌ ̌ (̈̌Ȉ Έ, @ȌL ƀ Ȉ,Ꮘ̂obȞ̌ ̀ ȞȈ̈ ̈ḦȈḦȈ(/̈ḦȈḦȈ(̈Ȉh 8΢,,Č̈̈ ̌ ̌̌Ȍ̌Œ`̌` ̀ƀ Ȉ,Ꮘ̂obȞ̌  ̀   ČȈ(̈̌ (̰+̈Ḧ Ȉḧ ȈḦh Ȉ/̈̈ ƀ Ȉ,Ꮘ̂obHȞ̌ ̀ƀ b,Ꮘ̂̌ƀ b,Ꮘ̂ ȞȈ̈h (,΢,ȞȈ̈ b,Ꮘ̂   ̌̌Ȍ̌`̌Œ`̌̌̌Ȉ̌ Ȍ̌Ȉ̈ Ȉ ̀΢̀Ȉ(̠*̌̈̈( ̌̌Ȉ̈( Ȉ ̀ƀ ΢,ȞȈ̈ ̀Ȉ̈H3ȈȀ ̂O.bȞ̌ h (΢,,Č̈̈ Ȍ̌Ȉ̈Ȉ/L̈ĽȈ  Ȍ̌̌̈̈̎Ȉ ƀ ΢, ̎Ȉ H( ̈( ̈̌̌̌ ̈̌ƀ ΢,ȞȈ̈  Έ,Ȁ $HČȈ̈ ̻(̰/ ̈/ ̈(/ ̈(/ ̈,< ̈,̀ȀHL,o. ̌Č̈H Ȉ ̈H~ ȈH ȈHȈȞȈHȈHȈHȈȞȈHLȈHȈȞȈHȈHȈȈL̈ ̀Č̀Ȉ̀. ,̌Č̈(̈HȈ(̈HȈ̈HȈ ̈HȈ ̈HȈ ̈̀Ȉ̀̌ ,ČČ. o.  ,,,, B̌ČHȈ,̌Č̈HȈ̈HȈ̈HȈ̈Ȉ̈Ȉ̈̀ ̀̀ ̌ (̈H @ 𨠏Ȉ +o.LB ̀ ̀⪏.*,̪̀̌ ,,,, BhʌȈh ̈hʌȈȈḦ ̈̌Č̈Č ̈Č ̈Č ̈̌̈Č(̈Č ̈Č ̈Č ̈Č ̈Č ̈Č ̈Č̈Č ̈Č ̈̌ ̈̌  (//𨠏  ਨ*.⨢ਊ  * 𨊋 ,    */ *訠  (      *(** (** .  // ̈/⨠Ш  ( .Ȉ (* ,  o. o. .L ,̌ČHČ̌Č̌Č̌ČČČ ̈̀Ȉ̀ ,,,,,,,*.ਨ * ,, ,,(̈̌` ̈̌`̌`̌ ̀̌Ȉ̀ψ,ƌʌȈh ̈hʌȈH ̈ȈḦ (/ *   (𨨏**𨂏⪏.  Ƞ/ Ĉ 𨂏  *(   /   (/**  * /Ȉ,Č, ̈HȈHȈHȈȞȈHȈHȈHȈȞȈHȈHHHȈHȈHȈȈ  *𬊆 ϶ϖφ谈ȏ RSRC LVINLBVW@ !  D@  |WKZJGF 7 ُ B~FTZ_u2i0LVINPID Controller 4LVINWrite to Digital Port .viC   @device@port width (8)@7digital channel @pattern@iteration (0:initialize)PTH06DAQ 1EASYIO.LLBWrite to Digital Port .viLVINPID SubL  @ Desired Output@ Actual Output@ Kp@ Ki@ Iteration@ Kd @ Delta T@ Control Output@ Actual Time (s)PTH0 PID SubaPOLYAI Read One Scan.viн4PTH0+DAQAI.LLBAI Read One Scan.vieLVIN"AI Read One Scan (scaled array).vi    @ device (1)T@@0P@ high limit (0.0)@ low limit (0.0)input limits (no change)@@fP@@ no changeDCACGND internal ref.coupling (no change:0) @input config (no change:0)%coupling & input config (no change:0)@@ scaled data0@@@7 channels (0) channels (0)@@P @!status @code@0sourceerror in (no error)@iteration (init:0),@&[number of AMUX boards] (no change:-1)6@P @!status @code@0source error outPTH0:DAQai.llb"AI Read One Scan (scaled array).viPOLYAO Write One Update.viо@PTH0.DAQAO.LLBAO Write One Update.viLVIN%AO Write One Update (scaled array).vi   @ device (1)@@tP@ high limit (10 V)@ low limit (-10 V)B@ no changeinternalexternalreference source (no change:0)limit settings (no change).@@@7 channel (0) channels (0)@@ scaled data@@P @!status @code@0sourceerror in (no error)@iteration (0:initialize)6@P @!status @code@0source error outPTH0=DAQao.llb%AO Write One Update (scaled array).viD88 P c8 P+b P         @P b P         @P  cP"@P@flg@oRt@eofudf2PP @ Output Error and Output ChartpP   dfdPP   txdPP   oldPP   ext P   cZP"@P@flg@oRt@eofudfP Proportionalp dfdP txdP oldP ext P   cXP"@P@flg@oRt@eofudfP Derivitivep dfdP txdP oldP ext P   cVP"@P@flg@oRt@eofudfP Integralp dfdP txdP oldP ext P   cZP"@P@flg@oRt@eofudfP Desired Tempp dfdP txdP oldP ext c\P"@P@flg@oRt@eofudfP!Press to Escapex!dfdP!txdP!oldP!ext cXP"@P@flg@oRt@eofudfP! Fan ON/OFFx!dfdP!txdP!oldP!ext P @vP0@PP@P!!!!l@bP0   !!!    $@P0!!!B@8PPP6P$@P @ Output 0006P$@P @ Output  P @vP0@PP@P!!!!l@bP0   !!!    $@P0!!!B@8PP~P4P"@P@ Set Point 0004P"@P@ Set Point b P         @P b P         @P  cP"@P@flg@oRt@eofudf0PP@ Set Point Setpoint and Temp ChartpP  dfdPP  txdPP  oldPP  ext P   c\P"@P@flg@oRt@eofudfP Desired Delta Tx dfdP txdP oldP ext P   b P         @P  cLP"@P@flg@oRt@eofudf x dfdP txdP oldP extV P$@P@0P`0 channel (0) `device`0 channel (0) `device` yh lo` x(  `device(hiteration (0:initialize)`0 port number` y` x`0 channel (0) `device h voltage `device` y` xh Actual Time (ms) hline`0 port number(h!Press Esc to Stop VIhiteration (0:initialize)  !V P$@P@0PV P$@P@0PV P$@P@0PV P$@P@0P c c\ c c6@P @!status @code@0source error out c! c@ Kp@ Ki@ Actual Output@ Desired Output@ Kd @ Delta T c,@pP @ Output reference c@@P @!status @code@0sourceerror in (no error) c@ x c@ Actual Time (s)@ Control Output! c P@ Desired Temp @ Desired Temp6@P @!status @code@0source error out c@ @ voltage,@&[number of AMUX boards] (no change:-1) c@iteration (init:0)@@P @!status @code@0sourceerror in (no error) c  @@0 channel (0) c@@P @!status @code@0sourceerror in (no error) c*@pP@ Set Point reference c.@@@7 channel (0) channels (0)@@tP@ high limit (10 V)@ low limit (-10 V)B@ no changeinternalexternalreference source (no change:0)limit settings (no change)@@ scaled data6@P @!status @code@0source error out@@P @!status @code@0sourceerror in (no error) c@iteration (0:initialize)@ device (1) c @device c@iteration (0:initialize) c! c @pattern c@port width (8) c&"P @ Control Output c@7digital channel c@@ Control Output c  c@@0 channel (0) c@ Actual Time (ms) c@!Press to Escape@! Fan ON/OFF@ Desired Temp@ Derivitive@ Proportional@ Integral @ Desired Delta T@@ scaled data c c@@P @!status @code@0sourceerror in (no error) c@iteration (0:initialize) c@iteration (0:initialize) @pattern@@0channel! c@ Actual Time (ms)! c@7digital channel@ device (1) @device@port width (8) cT@@0P@ high limit (0.0)@ low limit (0.0)input limits (no change) c@@tP@ high limit (10 V)@ low limit (-10 V)B@ no changeinternalexternalreference source (no change:0)limit settings (no change) c@@ scaled data0@@@7 channels (0) channels (0) c@ device (1) c c c.@@@7 channel (0) channels (0) c! c@@fP@@ no changeDCACGND internal ref.coupling (no change:0) @input config (no change:0)%coupling & input config (no change:0) c c c c\ c c\ c c c cd c@ Desired Temp c c c$ c c c c c c c c c c@ c  c c c@ c  c c c c c c c c c c c c c c c c c c c c P vPvPvPvPvPvPvPvPvPvP. P  c8 c c 0|G h \ Zr  <ATA-HTA/@V.@2./?v+ I$@$$@?? w?Յ%j@@?tzG{@TError (deg. F)88 B  Control (V) B Fan (Off/On)   B#6p(Set Point Temp. (F) BActual Temp. (F) BYl ^ AMeA-MMeA.J@f.@2./?v+ I@N@`@@N@$@?V@TB@@^@9@?"10@@@\(0ABA0?@.0?v+ I 3T^`p  H 0 t  34#   4 \    j%|z<f l $ @b   @ @ @ @  2 @bD "L @zH L \ d | ` @  6 H    N L P P  | p$ t$ t p @T .  B  .`  @pP \ .> &h *R 2V .:Z D > T P V Z t x @j ( x 4VIDSPID Controller 4VIDSWrite to Digital Port .vi , (PTH0VIDSPID Sub PTH0VIDS%AO Write One Update (scaled array).vi 0 $PTH0VIDS"AI Read One Scan (scaled array).vi PTH084i386H5@~code(7Ewd~E\EPPUEd$=t1=wÐ)Ӏ}t}uE$EE48tQRUd$ZYɍHHƅƅP< XVW l_^fxƅ닋hωwOF$=t%=t{.uˊfF4QRhPEP$P$hSrd$ZY=1ƅfx ƅDž QRhP${vad$ZYƅthhUEPƅfx>ƅ t6|9vkVW_^PQYXƅVW$ _^fxBƅمLم$ ٝ$ ƅfxFƅمHم$ ٝ$ ƅVWX $ _^VW $ _^}$u ƅhhUEP8d$ fxJeƅ݅ م$ ݝ ƅfxNlƅ VW?_^VW$ _^ƅ}$u ƅhhUEP8d$ fxRAƅHET~E\EP .UR@␐}vt}v$ƅfxV%ƅ݅"PXz5݅ ݅"{1PXzu++,n;~,PE,,-;~P?F-.-;~P-.-<~~P./.V<~D\ ~5./<~ \ 55///<~P/+=~P>=~\_^ZY[]ÐPX XDž EQRP$WhP$hd$ZY=t t/?QRP$6bgd$ZY=tDž,,H ,0EQRP0$WhP$dhd$ZY=tVH t/? QRP$6gd$ZY=tDž@@( @DEQRPD$WhP$hd$ZY=t( t/?PQRP$68gd$ZY=t銃DžTT TXQRPX$Whhhhd$ZY=t4 t?VVW_^Ul$SQRVW_^ZY[]Ð =t,PEP$PP@~$ $@ $Ðd$ =t,PEP$PPJ@~$ $@ $Ðd$$ =t,PEP$PP@~$$ $@ $Ðd$( =t/P $PP@~$( $@ $Ðd$, =t,PEP$PPA~$, $@ $Ðd$0 =t/P\ $PP>A~$0 $@ $Ðd$.Ul$SQRVWT$ QRPE@$ROd$ZY=j_^ZY[]ÐƅQRhh%U=qd$ ZY=======ƅQRhhUqd$ ZY=o=d=YDž t @ ` DžDžDž Dž DžDž0 4Dž8DžHDžP DžDžDžPTAB  DžL t @ L` dDžhX lDžpH tDžxP |Dž Džh Džp Dž Dž DžDžTDžXDž\PTAB PH Dž$ t$ @  DžDž` Džh DžDž  $Dž(Dž@ DžDžDžPTAB  DžL( t( @ L dDžhDžp@ tDžx |Dž DžDžTDžX)Dž\PTAB PH *aDž, t, @ b DžDž\ DžD Dž @ $Dž(DžDž.DžPTAB  DžL0 t0 @ L dDžhDžpDž DžDžDžDž DžTDžX/Dž\PTAB PH QRuGd$ZY(Ul$SQRVW}#uQRUcd$ZY_^ZY[]Ð.QRhh%U-qd$ ZYQRhhUqd$ ZYUl$SQRVWQRUcd$ZY_^ZY[]ÐUl$SQRVWt$ ƺQRh%RVU&qd$ZYUl$SQRVWt$ 0.@@@7 channel (0) channels (0) @ Desired Delta T@ x @ Control Output2"P @ Control Output .@iteration (0:initialize)@ y@ lo@ x@! Fan ON/OFF @ Actual Time (s) @0 port number @ Delta T@ Kd@ Iteration@ Ki&@ Actual Time (ms)@ Kp @pattern*@7digital channel @port width (8)   @device@port width (8)@7digital channel @pattern@iteration (0:initialize)   @ device (1)@@tP@ high limit (10 V)@ low limit (-10 V)B@ no changeinternalexternalreference source (no change:0)limit settings (no change).@@@7 channel (0) channels (0)@@ scaled data@@P @!status @code@0sourceerror in (no error)@iteration (0:initialize)6@P @!status @code@0source error out&@ XScale.Multiplier>.@pP@ Set Point dup reference:*@pP@ Set Point referenceRB   @ device (1)T@@0P@ high limit (0.0)@ low limit (0.0)input limits (no change)@@fP@@ no changeDCACGND internal ref.coupling (no change:0) @input config (no change:0)%coupling & input config (no change:0)@@ scaled data0@@@7 channels (0) channels (0)@@P @!status @code@0sourceerror in (no error)@iteration (init:0),@&[number of AMUX boards] (no change:-1)6@P @!status @code@0source error out<0@pP @ Output dup reference*@!Press Esc to Stop VI*@@0channel.@@ Control Output8,@pP @ Output reference@ x"@ Actual Output @ Desired Output  @ Desired Output@ Actual Output@ Kp@ Ki@ Iteration@ Kd @ Delta T@ Control Output@ Actual Time (s)8PpP DPP88P$LLPx||@@88\p\\8Pp0@Dlll   0 L8800lll ` ` ` ` `88@ 8 @@ `Pp l@ PP 8 lpD pDT@ DXx@@0| p@D b]Gj]HjError and Output ChartHDL((5(5HD'ēۆœZ֪֩ Error (deg. F)XDeHreIr ProportionalH%xIuxJuVDgtgt DerivitiveH%yyTDgtgtIntegralH$yy³XD/D//D/  Desired TempH 'O\O\[DPress to EscapeH$`&TlTl̲SD 5 5Fan OFFVDLYk Actual Temp. (F)RD- -Fan ONSD)6)6SecondsSD\i\iSeconds[fsfsDesired Delta TH(#zz]DI`^Ia^Controller ValuesNM"TN"T N(5(5 H"'N4z'O4zHD",90,90^DH!I!Actual TemperatureHD|){]e{^eWD;rTHD05 9P :PHDh%REdvqdwq True HD4RDcddeviceHD4WDFG port numberHD+bo bo MDR_!R_!yHDp,ananMDQ^Q^xHD%55WD8ZE8[E channel (0)HD3JVW]JWW]RD%U2u%V2udeviceHD3%z2%{2HD@#}~HD3\ni\oiSDLaYLbYvoltageHD\3MDyHD,3O\O\MD?L?LxHD27D)7D)\D'4*'4*Actual Time (ms)RD -  - deviceHD2 - -dD8F)8F) iteration (0:initialize)HD2I!V(I"V(LD[=hD[>hDHDH2[IhP[JhPWD5B 5B port numberHD25B5BSEQ^Q^ False HD1¯ɢï`D=)>) Press Esc to Stop VIHD1dDYZ iteration (0:initialize)HDx1HD`1er$er$HD"rr RE True SE0Q1Q False \D>K>KPID Controller 4eD4*6*Write to Digital Port .viSDegPID SubbD6C86C7AO Write One Update.vi_DkxkxAI Read One Scan.vicD_Ol_QlSetpoint and Temp CharteD||Write to Digital Port .vibD_ l_"lError and Output ChartbDfeAO Write One Update.vi #' #% ܌ {{ Y] Y[   p;p> 2125 #3#5StopOFFStopOFFOFFONOFFON FPHPPID Controller 4$FPHP`)8$$$|#k8XLl T 7 44 J \Fkᳳ0 C  ~ᳳ@ 8J!Ra@ 8L!@O󳳳@ 8K!@O0 o! =dᳳ0  v"♙@`40#6|#6 0 2<(#(0 2<-#&4  6<'6@@4p(lD$p( 0 2,(܍0 2,-{|4 6,Ô0  m8ᙙ4 $ը곳 0 ` |@ Pd? 8B4 F dGs$4  2 wHvⳳ(@ 2 @u?~Fphphll@ 2 ~?Foioikm0  uFxᳳ0 `LT^ |0@ Pf 4 F` fu,4  2` xⳳ4@ 2` @vphphll@ 2` oioikm0 ` vᳳ0 `` |@ P Tf 8",4 F fu4  2 xⳳL@ 2 @vphphll@ 2 oioikm0  vᳳ0` !H|@P ._0 $H4 F  .E0P4  2 N]ⳳT@ 2  @LUphphll@ 2  U_oioikm0  L_ᳳ0` # t|\4O pD"DC4 G 4~X<  r 4SmͲ\&  4D|гD|ӳD|ӳD|D|0`B 4,8lh4 ` 6`4O48 x &085 08 D 8@I\ C<83248 Ƅ  48Q  Ķ4>8 48  2   09   49 B  C ,:8 =   :@8 | @:P @@: 4: 2  0; 3 4; B  C ,<8 ?  2 <@8  4<  0<@844 p L |4< B LC 4=/ %E(= d = Hd4=0 P<5@:= = 44d4=0 A+50=d= 4= 8 (8=4 6 8=h0=5U= =@p (0=5T= =@# ԅ$0=5TV =@.t8h =@8,=h D4= ƵP!,0=-l|e =X4= d܀  =BHH$<=$1l|P 4 /  >l,>l|lP!l!>x0>,>l|&>P>>0>x>x0>.l|d >BH,L >B,L>\| >@@l|,L >BP$>0>! >@@l|.@$4>x\ 9 >BH 8l$>4>/#Vq>x >04>0dg  q> >4>0cq>x >H04>04b q>4>| 3>@>P#j>4> 2 " 0? 3 #4? J C ,@Hi > @@H,@\4@,, 4@@P&l@H4@ 20 % 0A 30 &4A J0 C ,B8pk0 D B@8hH4B 4 @BPPnB4B 2  0C 3 4C J C ,D8m" L D@8 8D4  7\6(,D/6t68 D@./0D80D-l|_ lup DBPl$D,D| D@@l|# l$,D0DHlDlD l,Dl$D DD$0D,Dlt`%D"DD!0D4 D40D.lXo &.* DB DBD8t D@@l4Dȝ!5Dt,DhD* RD$ D@ $@DP ;Vpp4D 2D  <U 0E 3D  ;VE$ 4E!P( 74E( 60E-l a ^gb EB  l EB" l E !E8! E@@l 8 l!Et!E$ ,E 8H,E!`!2 VE! E@"!!@EP!7R f4E 2!  8Q 0F 3! 7R4F4"М| 8F! 4F #p!4F #T .FVF(X%0F@8&,<#(#4F B#C U,UDwwlb+Uaa|0U:TL,UD;;x;d*UU;U0U;8=U;8:0U.D<\PNEZMTI UB;;< UB;;<<U<<<\=|=4U B=|CL ,Vf ]\V\> V@> |? 0V;>\V3MCd ,\8H0Gd \@8I(HI4\ I 4\ I  \Fh D\IG84\ I ,\BD + (*h4\ | #8\(=(6B+<J\J4\'KP69BI h@>]D\\0h;>\ h\h?h4drhV04h 004hO^4*8o8h^`@h 6]x*8))*4h J]x<*C ,i]]x $ i@b^4^`,ibN?L,d@iP_ @i_4i 2^  0j 3^ 4j J^ XC ,k%^^ > k@%___4k$ؽ=8k::`PLUa0`k``h k@`:,`80k;``'LTPk`h k@`bX``0k;`aLUPk`k`8k:::_hbDb k@aD@a@0k;aDa_gcka| k@aDbba0k;aDb0 _hckaka4k:x4D0E0@kP+!@4k  2d`   0l 3d` !4lc@ 14l ( ,lkhee lhle0lelhTlcel0l.kf|sy lBd0f f< lBef f\lf\j.JJ(e8AI&,A]D# \ZZX@X MXMEI\I(G7x44T .`.@/@.t5" h H |0m@8.ii4m JiqC 4nOjtr0@n 6jr*)*,n8jj `nj n@8jjtj4n k!njfnnDn2k$n$LcXnn\t4s3vt |s$ s.@܅$4s3xu t|s sMXD|s8V>AB(F Klk̎X/18ԁTl|Lոl$Ơs1ոƠ=jikL>[XVTKlIFEBA65318/(l$#Hl| L 0\x@,s\ (6|sj4,s18Lis00s,sL$|usTs=̄s$0xsU s.܂L4s3}Ԗdlh8shjBsJeeshke.e!k!ssA׮EE8shgPBLs :gP eq00/.-,sggĊ4s K5D9 Lt:wxDd 0H=At pt\|wjyyLw.  T ; ; ) p p  p   | |wJ(}Jey}yeJe.we8 LZ  p  Lp j jl  Ll   L Lw# {p{Lw :  00/.-Hw&,THwAw]Dw.@|w w\ƬwZЬwX@`r`wX weyy|wMX7||7wM`*?T*@,<*A0*B$*C *Dl)E)F )GX)H)I)JH)K)Ld)MH4)N(O(P4(Q(RԼ(S0(T|(UԘ(V (Wl(Xt(YP(Z\,([ (\(]P'^'_'`T'a'b'cTt'dd'eT'fLD'g4'h$'i<'j'k&lT@(ml7n%o8&p+q%rH$s$t +ut87wؐ%x@,z7{%|$&D#h##p$|$ܔ$\++-, -- ,,$H@$`h+P+v(L)yH+l`%$*P,|l%"PID Controller 4<"!!!!!"<   i"I"I"IIIadirLVINMk PID SubLVINFPID Controller 4 LVINg modPID Sub LVINgModPI LVIN PIDSJRSRC LVARLBVWp P/0 48 ADirPALMPLM2CPSTICON icl4icl8STR LSTR#tCPTMSTRG