Transcript

TRNG AI HOC BACH

KHOA C KHB MN C IN T

iu Khin Tc ng C DC Bng PID

1. Gii thiuPID l cch vit tc ca cc t Propotional (t l), Integral (tch phn) v Derivative (o hm). Tuy xut hin rt lu nhng n nay PID vn l gii thut iu khin c dng nhiu nht trong cc ng dng iu khin t ng. gip bn c cihiu r hn bn cht ca gii thut PID ti s dng mt v d iu khin v tr ca mt car (xe) trn ng thng. Gi s bn c mt xe ( chi...) c gn mt ng c DC. ng c sinh ra mt lc y xe chy ti hoc lui trn mt ng thng nh trong hnh 6.

Hnh 1.V d iu khin v tr xe trn ng thngGi F l lc do ng c to ra iu khin xe. Ban u xe v tr A, nhim v t ra l iu khin lc F (mt cch t ng) y xe n ng v tr O vi cc yu cu: chnh xc (accurate), nhanh (fast response), n nh (small overshot).Mt iu rt t nhin, nu v tr hin ti ca xe rt xa v tr mong mun (im O), hay ni cch khc sai s(error) ln, chng ta cn tc ng lc F ln nhanh chng a xe v O. Mt cch n gin cng thc ha tng ny l dng quan h tuyn tnh:F=Kp*e (1)Trong Kp l mt hng s dng no m chng ta gi l h s P (Propotional gain), e l sai s cn iu khin tc khong cch t im O n v tr hin ti ca xe. Mc tiu iu khin l a e tin v 0 cng nhanh cng tt. R rng nu Kp ln th F cng s ln v xe rt nhanh chng tin v v tr O. Tuy nhin, lc F qu ln s gia tc cho xe rt nhanh (nh lut II ca Newton: F=ma). Khi xe n v tr O (tc e=0), th tuy lc F=0 (v F=Kp*e=F=Kp*0) nhng do qun tnh xe vn tip tc tin v bn phi v lch im O v bn phi, sai s e li tr nn khc 0, gi tr sai s lc ny c gi l overshot (vt qu). Lc ny, sai s e l s m, lc F li xut hin nhng vi chiu ngc li ko xe v li im O. Nhng mt ln na, do Kp ln nn gi tr lc F cng ln v c th ko xe lch v bn tri im O. Qu trnh c tip din, xe c mi dao ng quanh im O. C trng hp xe dao ng cng ngy xng xa im O. B iu khin lc ny c ni l khng n nh. Mt xut nhm gim overshot ca xe l s dng mtthnh phnthng trong b iu khin. S rt l tng nu khi xe ang xa im O, b iu khin sinh ra lc F ln nhng khi xe tin gn n im O ththnh phnthng s gim tc xe li. Chng ta u bit khi mt vt dao ng quanh 1 im th vt c vn tc cao nht tm dao ng (im O). Ni mt cch khc, gn im O sai s e ca xe thay i nhanh nht (cn phn bit: e thay i nhanh nht khng phi e ln nht). Mt khc, tc thay i ca e c th tnh bng o hm ca bin ny theo thi gian. Nh vy, khi xe t A tin v gn O, o hm ca sai s e tng gi tr nhng ngc chiu ca lc F (v e ang gim nhanh dn). Nu s dng o hmlm thnh phnthng th c th gim c overshot ca xe.Thnh phnthng ny chnh l thnh phn D (Derivative) trong b iu khin PID m chng ta ang kho st. Thm thnh phn D ny vo b iu khin P hin ti, chng ta thu c b iu khin PD nhu sau:F=Kp*e + Kd*(de/dt) (2)Trong (de/dt) l vn tc thay i ca sai s e v Kd l mt hng s khng m gi l h s D (Derivative gain).S hin din ca thnh phn D lm gim overshot ca xe, khi xe tin gn v O, lc F gm 2 thnh phn Kp*e > =0 (P) v Kd*(de/dt) =2000) display_NegNegNeg(); else { a=n/1000; b=(n%1000)/100; c=((n%1000)%100)/10; d=((n%1000)%100)%10; if(a==1) display_digit4(); display_digit3(b); display_digit2(c); display_digit1(d); } }void init_PID (void){ #define T0 0.1 kp=40; kd=0.1; ki=0.1; a0 = kp + ki*T0/2.0 + kd/T0;//1 a1 = -kp + ki*T0/2.0 - 2*kd/T0;//-1 a2 = kd/T0;//0}void main(){ init_systems(); init_PID(); //ADC setup_adc(ADC_CLOCK_INTERNAL ); setup_adc_ports (PIN_A0); //AN0 set_adc_channel(0); delay_us(10); while(true) { v_set = read_adc()/3; // max = 256/3 = 85 display_encoder(speed); run_motor(speed); delay_ms(100); }}


Top Related