飛思卡爾光電組原理圖包括:CCD傳感器、按鍵電路、LCD液晶屏顯示電路、電源部分、電機(jī)驅(qū)動(dòng)、速度檢測(cè)、控制器等。
見截圖:
*********************************************************************************************/
** 電機(jī)PWM調(diào)速頻率為10KHZ。
** 舵機(jī)角度控制精確到1.5度是合適的。
** 舵機(jī)控制一般采用PD控制。(非線性設(shè)計(jì))
*************************************位置型PD控制 ********************************************
位置型PD控制
perror[2]=(width[2]-width[4])/2;
out_p=Kp*perror[2]/20 //計(jì)算比例項(xiàng),20為控制周期
out_d[2]=Kd*(perror[2]-perror[1])/20 //計(jì)算微分項(xiàng)
out[2]=out_p+out_d[2]+center_conter; //由于舵機(jī)轉(zhuǎn)角受限,所以注意輸出量的限制
perror[1]=perror[2]; //保存上次的誤差
out_d[1]=out_d[2]; //保存上次微分環(huán)節(jié)的值
其中Kp是比例系數(shù);out[2]是舵機(jī)的調(diào)節(jié)量;Kd是微分系數(shù);peeror[2]是本次信號(hào)采集計(jì)算出的誤差;perror[1]是上次信號(hào)采集計(jì)算出的誤差;center_conter是舵機(jī)的中心位置的計(jì)數(shù)值。
非線性PD算法
其中out_p為比例項(xiàng)輸出;當(dāng)-20<perror[2]<20時(shí)作為死區(qū),不進(jìn)行調(diào)節(jié);當(dāng)-100<perror[2]<-20或者20<perror[2]<100時(shí),比例系數(shù)Kp1=0.5;當(dāng)perror[2]<-100或者perror[2]>100時(shí),比例系數(shù)Kp2=1.33。這樣即實(shí)現(xiàn)了系統(tǒng)在小偏差時(shí)緩慢的調(diào)節(jié),也可以保證當(dāng)遇到彎道,產(chǎn)生較大的偏差時(shí),舵機(jī)能夠迅速動(dòng)作。具體的軟件實(shí)現(xiàn)如下:
if(perror[2]>-20&&perror[2]<20) out_p = 0;
else
{
if(perror[2]>20&&perror[2]<100) out_p = perror[2]/2-10;
if(perror[2]>-100&&perror[2]<-20) out_p = perror[2]/2+10;
if(perror[2]>=100) out_p = perror[2]*4/3-100;
if(perror[2]<=-100) out_p = perror[2]*4/3+100;
}
微分部分的非線性由類似方法實(shí)現(xiàn)。
***********************************************PID調(diào)節(jié)經(jīng)驗(yàn)************************************
(1) 確定比例系數(shù)Kp
確定比例系數(shù)Kp 時(shí),首先去掉PID 的積分項(xiàng)和微分項(xiàng),可以令Ti=0、Td=0,使之成為
純比例調(diào)節(jié)。輸入設(shè)定為系統(tǒng)允許輸出最大值的60%~70%,比例系數(shù)Kp 由0 開始逐漸增
大,直至系統(tǒng)出現(xiàn)振蕩;再反過來,從此時(shí)的比例系數(shù)Kp 逐漸減小,直至系統(tǒng)振蕩消失。
記錄此時(shí)的比例系數(shù)Kp,設(shè)定PID 的比例系數(shù)Kp 為當(dāng)前值的60%~70%。
(2) 確定積分時(shí)間常數(shù)Ti
比例系數(shù)Kp 確定之后,設(shè)定一個(gè)較大的積分時(shí)間常數(shù)Ti,然后逐漸減小Ti,直至系統(tǒng)出現(xiàn)
振蕩,然后再反過來,逐漸增大Ti,直至系統(tǒng)振蕩消失。記錄此時(shí)的Ti,設(shè)定PID 的積分
時(shí)間常數(shù)Ti 為當(dāng)前值的150%~180%。
(3) 確定微分時(shí)間常數(shù)Td
微分時(shí)間常數(shù)Td 一般不用設(shè)定,為0 即可,此時(shí)PID 調(diào)節(jié)轉(zhuǎn)換為PI 調(diào)節(jié)。如果需要設(shè)定,
則與確定Kp 的方法相同,取不振蕩時(shí)其值的30%。
(4) 系統(tǒng)空載、帶載聯(lián)調(diào)
對(duì) PID 參數(shù)進(jìn)行微調(diào),直到滿足性能要求。