通過前面一章的介紹我們已經(jīng)的達(dá)到了俯仰,橫滾,航向三個(gè)控制量,然后將它們分別輸入三個(gè)獨(dú)立的如上圖所示的PID控制器,我們可以得到三個(gè)PID輸出:pid_roll,pid_pitch,pid_yaw將這三個(gè)輸出量做簡單的線性運(yùn)算輸出給電機(jī)。部分代碼如下:
#define PIDMIX(X,Y,Z) Motor_Thr + pid_pitch* Y+ pid_roll*X + pid_yaw*Z
MOTOR1=MOTORLimit(PIDMIX(+1,+1,-1));? ???? //REAR_R? 后右電機(jī)
MOTOR2=MOTORLimit(PIDMIX(-1,-1,-1));??? ?????? //FRONT_R 前右電機(jī)
MOTOR3=MOTORLimit(PIDMIX(-1,+1,+1));? ?????? //REAR_L? 后左電機(jī)
MOTOR4=MOTORLimit(PIDMIX(+1,-1,+1));? ?????? //FRONT_L 前左電機(jī)???
4.3. PID參數(shù)調(diào)節(jié)
PID參數(shù)的整定是PID控制的關(guān)鍵環(huán)節(jié),直接影響到控制的效果。故一個(gè)PID設(shè)計(jì)的好不好往往要看其參數(shù)能否調(diào)節(jié)好,本設(shè)計(jì)的PID參數(shù)調(diào)節(jié)采用湊試法。湊試法是通過實(shí)際的閉環(huán)系統(tǒng),通過觀察系統(tǒng)的響應(yīng)曲線,在本設(shè)計(jì)中通過觀察被調(diào)量,PID輸出,設(shè)定值三條曲線,判斷出kp,ki,kd對(duì)系統(tǒng)響應(yīng)的影響,反復(fù)嘗試,最終達(dá)到滿意響應(yīng),從而達(dá)到確定控制參數(shù)的kp,ki,kd的目的。在參數(shù)調(diào)節(jié)過程總遵循以下原則[17]:
(1)在輸出不振蕩時(shí),增大比例增益P。
(2)在輸出不振蕩時(shí),減小積分時(shí)間常數(shù)Ti。
(3)在輸出不振蕩時(shí),增大微分時(shí)間常數(shù)Td。
(4)一般步驟:
a.確定比例增益P
確定比例增益P時(shí),首先去掉PID的積分項(xiàng)和微分項(xiàng),一般是令Ti=0、Td=0(具體見PID的參數(shù)設(shè)定說明),使PID為純比例調(diào)節(jié)。輸入設(shè)定為系統(tǒng)允許的最大值的60%~70%,由0逐漸加大比例增益P,直至系統(tǒng)出現(xiàn)振蕩;再反過來,從此時(shí)的比例增益P逐漸減小,直至系統(tǒng)振蕩消失,記錄此時(shí)的比例增益P,設(shè)定PID的比例增益P為當(dāng)前值的60%~70%。比例增益P調(diào)試完成。
b.確定積分時(shí)間常數(shù)Ti
比例增益P確定后,設(shè)定一個(gè)較大的積分時(shí)間常數(shù)Ti的初值,然后逐漸減小Ti,直至系統(tǒng)出現(xiàn)振蕩,之后在反過來,逐漸加大Ti,直至系統(tǒng)振蕩消失。記錄此時(shí)的??? Ti,設(shè)定PID的積分時(shí)間常數(shù)Ti為當(dāng)前值的150%~180%。積分時(shí)間常數(shù)Ti調(diào)試完成。
c.確定積分時(shí)間常數(shù)Td
積分時(shí)間常數(shù)Td一般不用設(shè)定,為0即可。若要設(shè)定,與確定 P和Ti的方法相同,取不振蕩時(shí)的30%。
d.系統(tǒng)空載、帶載聯(lián)調(diào),再對(duì)PID參數(shù)進(jìn)行微調(diào),直至滿足要求。
(5)最終調(diào)試好的標(biāo)準(zhǔn)應(yīng)該是,PID輸出曲線在有一個(gè)階躍響應(yīng)來是,響應(yīng)一大一小兩個(gè)波,小波是大波的四分之一。
四軸飛行器的PID整定,我們首先四軸固定在單軸平衡平臺(tái)上,讓飛行器完成單軸平衡,主要觀察姿態(tài)角的(1)穩(wěn)定性,能否平衡在期望角度;(2)響應(yīng)性,當(dāng)操縱命令改變時(shí),四軸能否即時(shí)的響應(yīng)期望的變化;(3)操縱性,由操縱員感受四軸的姿態(tài)是否已與操縱,會(huì)不會(huì)產(chǎn)生響應(yīng)過沖。
在參數(shù)調(diào)整時(shí),先調(diào)P,將I,D給0,先給一個(gè)小值P1,如果飛行器不能穩(wěn)定在一個(gè)角度,則P1給小了,下一次給一個(gè)較大值P2,如果飛行器產(chǎn)生震蕩則證明P2給大了,那么合適的P在P1-P2之間,反復(fù)試驗(yàn)幾次可找到P震蕩的臨界點(diǎn)P0,然后保持P0不變按照調(diào)P的方法來調(diào)D,D是用來消除誤差的,當(dāng)抖動(dòng)差不多被消除時(shí),此時(shí)我們有較合適的P0,D0,在這兩個(gè)值附近再試幾組參數(shù),觀察效果得到最優(yōu)參數(shù)。調(diào)好P,D后此時(shí)四軸的穩(wěn)定狀態(tài)與期望狀態(tài)間也學(xué)會(huì)有靜差,接下來加入I,參數(shù)有小到大,當(dāng)靜差差不多被消除時(shí),我們?cè)賹?duì)P,I,D三組參數(shù)在小范圍內(nèi)聯(lián)調(diào)。最后確定恰當(dāng)?shù)姆e分限幅值,完成整個(gè)PID參數(shù)的整定。
5.系統(tǒng)創(chuàng)新
采用STM32F407這樣一款高性能芯片作為控制核心,計(jì)算快速,擴(kuò)展空間大。
云臺(tái)飛控一體化設(shè)計(jì),既能完成飛行任務(wù)也能實(shí)現(xiàn)云臺(tái)穩(wěn)定。
姿態(tài)算法采用基于四元數(shù)的互補(bǔ)濾波,姿態(tài)角無奇點(diǎn),比起卡爾曼李春波等高端算法有著計(jì)算量小的特點(diǎn)且能投入使用,大大節(jié)約了cpu計(jì)算時(shí)間,也降低了對(duì)cpu的性能要求。
利用四軸作為云臺(tái)載體有著靈活機(jī)動(dòng),可讓攝像頭獲得比較好的視野,且云臺(tái)能消除四軸機(jī)體抖動(dòng)。
方便改裝用于執(zhí)行其他任務(wù)。
6.評(píng)測(cè)與結(jié)論
6.1.四軸飛行器的調(diào)試
6.1.1電源調(diào)試
將電路板焊接完成后,為電路板供電,用萬用表測(cè)得個(gè)供電芯片電壓如下???? ?????? ?????? ?????? ?????? ?????? ??????
表6-1各電源芯片電壓值
?
?
由表中數(shù)據(jù)可知電源管理部分可滿足系統(tǒng)供電要求。
6.1.2 姿態(tài)角調(diào)試
評(píng)論