周斌 孔丙亞 馮高明
摘要:為了解決基于卡爾曼濾波和PID算法的自平衡小車(chē)的調(diào)試過(guò)程復(fù)雜、需要反復(fù)調(diào)試的問(wèn)題,本文給出了一種按照姿態(tài)檢測(cè)模塊、角度環(huán)、速度環(huán)、轉(zhuǎn)向環(huán)的先后順序?qū)ψ云胶庑≤?chē)進(jìn)行調(diào)試的方法,并對(duì)具體的調(diào)試過(guò)程進(jìn)行了分析。調(diào)試和實(shí)驗(yàn)結(jié)果表明這種調(diào)試的步驟和方法縮短了自平衡小車(chē)的調(diào)試時(shí)間,簡(jiǎn)化了調(diào)試過(guò)程。
關(guān)鍵詞:卡爾曼濾波;PID算法;自平衡小車(chē)
引言
兩輪自平衡小車(chē)是一個(gè)比較復(fù)雜的控制系統(tǒng),是研究各種控制理論的實(shí)驗(yàn)和研究平臺(tái),理論意義和現(xiàn)實(shí)意義都很重大。很多自平衡小車(chē)都采用的是PID算法,在進(jìn)行PID參數(shù)調(diào)試時(shí),調(diào)試過(guò)程比較復(fù)雜,需要反復(fù)調(diào)試。本文結(jié)合基于卡爾曼濾波和PID算法的自平衡小車(chē)調(diào)試過(guò)程給出了調(diào)試的一般步驟和方法。
1 系統(tǒng)硬件上電調(diào)試
硬件上電測(cè)試是進(jìn)行自平衡小車(chē)系統(tǒng)進(jìn)行整體調(diào)試前的準(zhǔn)備工作,目的是為了確定系統(tǒng)的各個(gè)硬件模塊都可以正常的工作。將測(cè)試程序從計(jì)算機(jī)下載到自平衡小車(chē)系統(tǒng)后,給自平衡車(chē)車(chē)上電,觀察自平衡車(chē)的運(yùn)動(dòng)狀態(tài),自平衡小車(chē)的運(yùn)動(dòng)狀態(tài)如果符合測(cè)試程序的預(yù)期輸出,說(shuō)明系統(tǒng)的硬件電路沒(méi)有問(wèn)題,可以進(jìn)入下一步進(jìn)行系統(tǒng)各個(gè)參數(shù)的具體調(diào)試。
2 系統(tǒng)軟件PID參數(shù)調(diào)試
2.1姿態(tài)檢測(cè)模塊調(diào)試
姿態(tài)模塊的調(diào)試對(duì)象主要是姿態(tài)傳感器陀螺儀和加速度計(jì),調(diào)速的目的是要保證測(cè)得的角度和角速度信號(hào)的準(zhǔn)確性。調(diào)試過(guò)程如下:使自平衡車(chē)與地面保持一定的傾角(調(diào)試時(shí)采用了450、900、1350三種傾角),觀察陀螺儀與加速度計(jì)實(shí)際的輸出數(shù)值,每一種狀態(tài)多測(cè)幾組數(shù)據(jù),然后根據(jù)測(cè)得的數(shù)值求出測(cè)量平均值,將測(cè)得的平均值與角度的實(shí)際值進(jìn)行對(duì)比,求出兩者之間的誤差,然后對(duì)該誤差進(jìn)行補(bǔ)償。
2.2角度環(huán)參數(shù)調(diào)試
直立角度環(huán)控制輸出函數(shù)為:
AngleControlOut=VehicleAngle*VehicleAngle_P+VehicleAngle_dot* VehicleAngle_D;//角度*P+角速度*D
角度環(huán)控制參數(shù)有兩個(gè),分別是比例系數(shù)VehicleAngle_P和微分系數(shù)VehicleAngle_D。VehicleAngle_P決定著自平衡車(chē)回復(fù)力大小,比例系數(shù)大于重力加速度才能使回復(fù)力的方向與平衡車(chē)的傾斜方向相反。這兩個(gè)數(shù)值在調(diào)試的時(shí)候一定要從最小的數(shù)值逐步向大的數(shù)值進(jìn)行調(diào)節(jié),不能從大的數(shù)值向小的數(shù)值進(jìn)行調(diào)節(jié),否則會(huì)對(duì)小車(chē)的穩(wěn)定性有錯(cuò)誤的判斷。而且從小數(shù)值向大數(shù)值調(diào)節(jié)的過(guò)程中會(huì)對(duì)自平衡車(chē)穩(wěn)定性的逐步改善有所體會(huì)。調(diào)試器先將小車(chē)的電池充滿電,否則調(diào)試的結(jié)果會(huì)大打折扣。當(dāng)兩個(gè)參數(shù)全為0時(shí),小車(chē)沒(méi)有任何動(dòng)作,因?yàn)榧词棺藨B(tài)檢測(cè)模塊測(cè)量有一定的數(shù)值,但PWM波的占空比為0,逐步調(diào)大P,可以按照0-1-2-4-8-16-32-64的順序來(lái)調(diào)試。當(dāng)P為16時(shí)系統(tǒng)開(kāi)始有明顯的反饋;當(dāng)P為32時(shí)反饋力度還不夠,小車(chē)經(jīng)過(guò)擺動(dòng)后最后還不能直立,但當(dāng)P為64時(shí),小車(chē)抖動(dòng)比較明顯,說(shuō)明P的設(shè)定值有點(diǎn)大,需要向下調(diào),經(jīng)過(guò)反復(fù)的調(diào)試,當(dāng)比例系數(shù)P為54時(shí),自平衡小車(chē)基本上可以保持站立,但還有低頻振蕩現(xiàn)象。此時(shí)可以小幅度的調(diào)整P,盡量減小振蕩的次數(shù),最后確定當(dāng)P為53時(shí),效果相對(duì)來(lái)說(shuō)比較可以接受,比例系數(shù)調(diào)節(jié)結(jié)束。如果加入合適的微分系數(shù)即給自平衡車(chē)的振蕩加入一定的阻尼力,便可以有效地抑制小車(chē)的振蕩,當(dāng)微分系數(shù)過(guò)大時(shí),會(huì)引起小車(chē)本身的高頻振蕩,其原因在于小車(chē)具有一定的共振頻率,如果微分參數(shù)過(guò)大自平衡車(chē)會(huì)在電機(jī)的驅(qū)動(dòng)下產(chǎn)生共振。
比例系數(shù)P和微分系數(shù)D兩個(gè)參數(shù)的調(diào)節(jié)時(shí)應(yīng)該先調(diào)節(jié)P后調(diào)節(jié)D,當(dāng)調(diào)到可以使小車(chē)基本上保持直立但還是存在低頻振蕩時(shí)說(shuō)明P基本上可以克服重力的影響,下一步就需要調(diào)節(jié)D。D調(diào)節(jié)也是按照從小到大的原則進(jìn)行(實(shí)際按照0.01-0.1-0.5的數(shù)值進(jìn)行調(diào)試),直至小車(chē)可以保持短暫的直立,進(jìn)一步增D,自平衡車(chē)開(kāi)始出現(xiàn)共振,這時(shí)就不能再增加D的數(shù)值了,然后再適當(dāng)減小D反復(fù)調(diào)整。最后D的數(shù)值確定為0.3。但此時(shí)自平衡車(chē)還不能保持穩(wěn)定,稍加干擾自平衡車(chē)就會(huì)朝干擾方向加速前進(jìn),說(shuō)明僅有角度反饋閉環(huán)控制很難保持自平衡車(chē)的長(zhǎng)期穩(wěn)定,還需要加入速度環(huán)控制,即對(duì)速度環(huán)的參數(shù)進(jìn)行調(diào)試和整定。
2.3速度環(huán)參數(shù)調(diào)試
速度環(huán)控制輸出函數(shù)為:
SpeedControlOutNew=(VehicleSpeedOldVEHICLE_SPEED_SET)*VehicleSpeed_P+(VehiclePosition - VEHICLE_POSITION_SET ) * VehicleSpeed_I;// 速度*P +位移*I
確定好角度比例系數(shù)與微分系數(shù)之后,還需要進(jìn)行速度控制參數(shù)的調(diào)試。速度閉環(huán)有比例系數(shù)VehicleSpeed_P和積分系數(shù)VehicleSpeed_I兩個(gè)可調(diào)參數(shù)。
在對(duì)兩個(gè)參數(shù)進(jìn)行調(diào)試時(shí),因?yàn)檎{(diào)試的目的是要使小車(chē)穩(wěn)定在某一特定位置,而不是運(yùn)動(dòng)起來(lái),所以先將給定速度值設(shè)為零,然后再對(duì)在P和I進(jìn)行調(diào)試。調(diào)試過(guò)程遵循的原則是先對(duì)I進(jìn)行調(diào)試后對(duì)P進(jìn)行調(diào)試。調(diào)試過(guò)程為:首先逐步增大I,增大梯度很小,從0.1-0.15-0.2-0.4,調(diào)試過(guò)程中要仔細(xì)觀察小車(chē)的運(yùn)動(dòng)狀態(tài),當(dāng)I從0.1-0.15-0.2增加的過(guò)程中,自平衡車(chē)始終是向某一方運(yùn)動(dòng),沒(méi)有向設(shè)定的0位回轉(zhuǎn)的現(xiàn)象,當(dāng)把I設(shè)定為0.4時(shí),自平衡車(chē)可以向0位回轉(zhuǎn),但調(diào)整的距離(位移量)有點(diǎn)大,說(shuō)明這個(gè)參數(shù)有點(diǎn)大了,設(shè)定為0.3,自平衡車(chē)可以在0位附近來(lái)回抖動(dòng),但是回到0位的速度有點(diǎn)小?,F(xiàn)在需要解決的問(wèn)題是如何減小自平衡車(chē)在0位的擺動(dòng)幅度,這個(gè)問(wèn)題可以通過(guò)調(diào)整P來(lái)解決。逐漸增大比例系數(shù),實(shí)際調(diào)節(jié)是從1-2-4-5,當(dāng)把P設(shè)定為1、2、4時(shí),小車(chē)回到0位的速度變快,但擺動(dòng)幅度或者說(shuō)振蕩距離還是有點(diǎn)大,當(dāng)把P設(shè)定為5時(shí),小車(chē)的抖動(dòng)幅度很小,可以較快的停留在平衡位置。但在外來(lái)干擾作用下,自平衡車(chē)的調(diào)節(jié)時(shí)間還是有點(diǎn)長(zhǎng),需要進(jìn)一步提高抗干擾性能。再減小I的數(shù)值為0.15,小車(chē)可以很快的趨于0位并保持平衡靜止。
2.4轉(zhuǎn)向環(huán)參數(shù)調(diào)試
相對(duì)于角度負(fù)反饋環(huán)與速度負(fù)反饋環(huán)的參數(shù)調(diào)試,轉(zhuǎn)向負(fù)反饋環(huán)的調(diào)試比較簡(jiǎn)單,只需要調(diào)試比例系數(shù)一個(gè)參數(shù),它決定了轉(zhuǎn)向的速度,可以直接將比例系數(shù)定為1。
3小車(chē)自平衡實(shí)驗(yàn)
將以上內(nèi)容進(jìn)行綜合整定,然后對(duì)小車(chē)進(jìn)行整體調(diào)試,最終可以達(dá)到理想效果,即不發(fā)送控制指令時(shí)可以靜止平衡,發(fā)送相應(yīng)的控制指令時(shí)可以完成對(duì)應(yīng)的動(dòng)作。
小車(chē)上電后先是向某一方向做加速運(yùn)動(dòng),超過(guò)平衡位置后又向相反的方向運(yùn)動(dòng),經(jīng)過(guò)幾次往復(fù)運(yùn)動(dòng)后至平衡狀態(tài)。自平衡小車(chē)實(shí)現(xiàn)自平衡的時(shí)間為4s,平衡時(shí)的傾角大約為10度左右。在常規(guī)干擾情況下,自平衡車(chē)的調(diào)節(jié)時(shí)間約為7s。小車(chē)以較快的速度調(diào)整姿態(tài),然后逐漸趨向平衡狀態(tài)。
4.結(jié)論
(1)調(diào)試時(shí)要按照姿態(tài)檢測(cè)模塊、角度環(huán)、速度環(huán)、轉(zhuǎn)向環(huán)的先后順序進(jìn)行,可以縮短系統(tǒng)的調(diào)試時(shí)間;
(2)按照文中的方法對(duì)系統(tǒng)各個(gè)模塊的PID參數(shù)進(jìn)行調(diào)試后,可以使小車(chē)達(dá)到一個(gè)比較好的平衡狀態(tài)。
參考文獻(xiàn)
[1] 丁汕汕.基于模糊滑模控制的兩輪自平衡小車(chē)系統(tǒng)設(shè)計(jì)[D]. 安徽工業(yè)大學(xué),2019.
[2] 金奇,鄧志杰.PID控制原理及參數(shù)整定方法[J].重慶工學(xué)院學(xué)報(bào)(自然科學(xué)版),2008, 1(5):91-94.