鄭健兒 祝麗
兩輪直立小車(chē)控制系統(tǒng)的研究
浙江萬(wàn)里學(xué)院 ?鄭健兒 ?祝 ?麗
【摘要】本文介紹的是兩輪電動(dòng)小車(chē)自動(dòng)平衡控制系統(tǒng)的電路設(shè)計(jì)方案,控制系統(tǒng)包括K60單片機(jī)主控模塊、電源模塊、電機(jī)驅(qū)動(dòng)模塊和傳感器模塊,文章闡述了直立小車(chē)控制電路的具體設(shè)計(jì)方法。
【關(guān)鍵詞】?jī)奢喼绷④?chē);控制系統(tǒng);電路設(shè)計(jì)
引言
隨著科學(xué)技術(shù)的發(fā)展,民眾的生活水平也日漸提高,兩輪直立車(chē)將會(huì)越來(lái)越受大家的喜歡。本文結(jié)合大學(xué)生飛思卡爾智能車(chē)競(jìng)賽項(xiàng)目,介紹了一種直立小車(chē)控制系統(tǒng)電路設(shè)計(jì)的方案,小車(chē)由兩個(gè)直流電機(jī)作為驅(qū)動(dòng),通過(guò)速度編碼器、加速度計(jì)和陀螺儀等傳感器來(lái)檢測(cè)車(chē)身的運(yùn)動(dòng)狀態(tài),通過(guò)單片機(jī)的信號(hào)處理實(shí)現(xiàn)小車(chē)自平衡狀態(tài)。
1.系統(tǒng)控制任務(wù)分析
兩輪直立小車(chē)控制系統(tǒng)的控制任務(wù)可以分解成以下三個(gè)方面[1]:(1)車(chē)身平衡控制:通過(guò)兩個(gè)電機(jī)正反向運(yùn)動(dòng)產(chǎn)生的回復(fù)力保持車(chē)身直立平衡狀態(tài);(2)行進(jìn)速度控制:通過(guò)改變車(chē)身的前傾角度從而改變電機(jī)的轉(zhuǎn)速,來(lái)實(shí)現(xiàn)小車(chē)行進(jìn)的速度控制;(3)小車(chē)方向控制:通過(guò)控制兩個(gè)電機(jī)之間的轉(zhuǎn)動(dòng)差速實(shí)現(xiàn)小車(chē)轉(zhuǎn)向的控制。
三個(gè)分解后的任務(wù)雖然可以通過(guò)單片機(jī)獨(dú)立進(jìn)行控制,但由于最終都是對(duì)同一個(gè)控制對(duì)象(兩個(gè)電機(jī))進(jìn)行控制,所以它們之間又是相互關(guān)聯(lián)和協(xié)調(diào)工作的。根據(jù)小車(chē)自動(dòng)平衡控制的需求,系統(tǒng)電路需要單片機(jī)主控模塊、電機(jī)驅(qū)動(dòng)模塊、電機(jī)轉(zhuǎn)速檢測(cè)模塊、車(chē)身傾斜度檢測(cè)模塊、車(chē)身運(yùn)動(dòng)狀態(tài)檢測(cè)模塊和電源模塊等幾部分電路構(gòu)成,控制系統(tǒng)的框圖如圖1所示。
圖1 直立小車(chē)自動(dòng)平衡控制系統(tǒng)框圖
2.系統(tǒng)硬件電路設(shè)計(jì)
2.1 穩(wěn)壓電源模塊
小車(chē)用7.2V鋰電池供電,根據(jù)各模塊電路的需求,整個(gè)系統(tǒng)需要使用的電源電壓有5V和3.3V兩種。直流穩(wěn)壓電源常用的有串聯(lián)型線性穩(wěn)壓電源和開(kāi)關(guān)型穩(wěn)壓電源兩大類(lèi),線性穩(wěn)壓電源具有波紋小、電路結(jié)構(gòu)簡(jiǎn)單的優(yōu)點(diǎn)。此5V的穩(wěn)壓選用LM2940穩(wěn)壓芯片,3.3V穩(wěn)壓選用AMS1117 芯片設(shè)計(jì)。具體電路如圖2所示。
2.2 直流電機(jī)驅(qū)動(dòng)模塊
小車(chē)的直立平衡和行進(jìn)、拐彎等運(yùn)動(dòng)完全由兩個(gè)電機(jī)的速度和轉(zhuǎn)向來(lái)決定,在控制系統(tǒng)中電機(jī)的加減速和正反向運(yùn)動(dòng)是由單片機(jī)輸出的PWM信號(hào)來(lái)控制的,但由于一般單片機(jī)I/O口輸出信號(hào)的電流較小,不能直接驅(qū)動(dòng)直流電機(jī),通常需要搭建H橋電路或用專(zhuān)門(mén)的驅(qū)動(dòng)芯片來(lái)實(shí)現(xiàn)。BTS7970是一款性價(jià)比較高的電機(jī)驅(qū)動(dòng)芯片,其驅(qū)動(dòng)能力和響應(yīng)速度都能滿足控制要求。一塊驅(qū)動(dòng)芯片只能提供電機(jī)一個(gè)方向的PWM控制信號(hào),因此需要用四片BTS7970驅(qū)動(dòng)芯片來(lái)驅(qū)動(dòng)兩個(gè)電機(jī)。小車(chē)上安裝有測(cè)速編碼器,通過(guò)速度的反饋,再經(jīng)過(guò)單片機(jī)PID算法輸出相應(yīng)的PWM信號(hào),對(duì)電機(jī)的轉(zhuǎn)速進(jìn)行有效調(diào)節(jié),從而控制小車(chē)的運(yùn)行狀態(tài)。單個(gè)電機(jī)的驅(qū)動(dòng)電路原理圖如圖3所示。
2.3 傳感器檢測(cè)電路設(shè)計(jì)
為保證小車(chē)的直立平衡控制,需要對(duì)車(chē)身的運(yùn)動(dòng)狀態(tài)進(jìn)行監(jiān)測(cè)。系統(tǒng)選用ENC-03陀螺儀傳感器和MMA7361加速度傳感器二合一的模塊,實(shí)現(xiàn)對(duì)小車(chē)車(chē)身狀態(tài)的實(shí)時(shí)監(jiān)控。該模塊自帶有硬件濾波功能,由該模塊的J口直接輸出小車(chē)的角度值,不用通過(guò)角速率對(duì)時(shí)間的積分來(lái)獲取,也就是說(shuō)軟件方面我們只需要對(duì)采集回來(lái)的角度信號(hào)進(jìn)行簡(jiǎn)單的處理,就能得到相應(yīng)的角度變化,該模塊的X口輸出的是實(shí)時(shí)的角速度值,采集回來(lái)的數(shù)據(jù)經(jīng)過(guò)簡(jiǎn)單的處理就能得到相應(yīng)的角速度變化。角度數(shù)據(jù)采集的準(zhǔn)確與否,直接關(guān)系到直立環(huán)節(jié)的直立效果,而在直立環(huán)節(jié),速度環(huán)節(jié),轉(zhuǎn)向環(huán)節(jié)中,直立環(huán)節(jié)又是另外兩個(gè)環(huán)節(jié)的基礎(chǔ),所以角度數(shù)據(jù)采集顯得尤為重要。傳感器模塊的電路原理圖如圖4所示。
2.4 系統(tǒng)主控制器
控制系統(tǒng)的主控制器選用飛思卡爾公司的MK60DN512VLQ10單片機(jī),該單片機(jī)是一款高性能的32位處理器。利用該單片機(jī)內(nèi)置的A/D轉(zhuǎn)換模塊以及PWM模塊、TIM定時(shí)器模塊、PIT周期性中斷定時(shí)器等模塊。由單片機(jī)采集加速度傳感器和陀螺儀的信號(hào)以及對(duì)這些信號(hào)的處理和相關(guān)運(yùn)算,將PID運(yùn)算的結(jié)果傳遞給PWM模塊,最后由PWM模塊輸出信號(hào)控制電機(jī)的轉(zhuǎn)速及轉(zhuǎn)向以使小車(chē)保持直立,并能按一定路徑自動(dòng)行駛。
3.系統(tǒng)主要功能的軟件設(shè)計(jì)
3.1 平衡控制算法
PID算法是自動(dòng)控制系統(tǒng)經(jīng)典的理論,小車(chē)的平衡控制在軟件部分處理時(shí)用到的是PD算法,系統(tǒng)直立控制的輸入為系統(tǒng)傾角angle和角速度angle_dot,在直立控制函數(shù)中,把系統(tǒng)目標(biāo)傾角減去系統(tǒng)實(shí)際傾角,得到系統(tǒng)傾角的誤差,把此誤差乘以直立控制的P參數(shù),把此乘積直接作為電機(jī)的PWM輸出,使系統(tǒng)向傾角誤差減小的方向運(yùn)行,以實(shí)現(xiàn)系統(tǒng)傾角的閉環(huán)控制[2]。另外,由于P參數(shù)過(guò)大后會(huì)導(dǎo)致系統(tǒng)超調(diào)而產(chǎn)生系統(tǒng)震蕩,甚至使系統(tǒng)失去控制。為了抑制這種震蕩,再引入D參數(shù),把D參數(shù)直接乘以系統(tǒng)角速度,再與P參數(shù)與角度誤差的乘積相加,即可實(shí)現(xiàn)抑制系統(tǒng)震蕩的效果[3]。具體函數(shù)代碼如下:
angle_err = pid_Angle.SetPoint ?-angle;
angle_pid_out=pid_Angle.Proportion*angle_
err+pid_Angle.Derivative*(-angle_dot);
3.2 小車(chē)速度控制
要提高系統(tǒng)運(yùn)行的穩(wěn)定性,速度的控制也非常重要。速度控制的軟件部分采用了增量式的PID算法,增量式PID的優(yōu)點(diǎn)是只需計(jì)算增量,當(dāng)存在計(jì)算誤差或精度不足時(shí),對(duì)控制量計(jì)算的影響較小,這非常適用于像小車(chē)這種大動(dòng)態(tài)、容易產(chǎn)生檢測(cè)誤差的環(huán)節(jié)[4]。P參數(shù)保證系統(tǒng)反應(yīng)的靈敏度,I參數(shù)保證速度控制的精度,D參數(shù)抑制速度控制的超調(diào)現(xiàn)象[5]。
以下是速度PID控制的具體函數(shù)代碼:
int IncPIDCalc(int NextPoint)
{
register int iError, iIncpid;
iError=sptr->SetPoint-NextPoint;
iIncpid=sptr->Proportion*iError-sptr->Integral*
sptr->LastError+sptr->Derivative*sptr->PrevError;
sptr->PrevError=sptr->LastError;
sptr->LastError=iError;
return(iIncpid);
}
4.結(jié)語(yǔ)
采用飛思卡爾K60單片機(jī)設(shè)計(jì)平衡小車(chē)控制系統(tǒng),不僅采集效率高,而且傳輸速度快,控制實(shí)效性好。同時(shí)該系統(tǒng)還具有簡(jiǎn)單易用、小型、可靠等優(yōu)點(diǎn),對(duì)一般工業(yè)控制系統(tǒng)的設(shè)計(jì)有一定的指導(dǎo)和借鑒作用,在兩輪直立車(chē)飛速發(fā)展的今天具有非常廣的應(yīng)用前景。
參考文獻(xiàn)
[1]卓晴,黃開(kāi)勝,邵貝貝.學(xué)做智能車(chē):挑戰(zhàn)“飛思卡爾”杯[M].北京:北京航空航天大學(xué)出版社,2007.
[2]尹怡欣,陶永華.新型PID控制及其應(yīng)用[M].北京:機(jī)械工業(yè)出版社,1998.
[3]馮智勇,曾瀚,張力,等.基于陀螺儀加速度計(jì)信號(hào)融合的姿態(tài)角度測(cè)量[J].西南大學(xué)學(xué)報(bào)(自然學(xué)版),2011,36(4):137-141.
[4]謝世杰,陳生潭,樓順天.數(shù)字PID算法在無(wú)刷直流電機(jī)控制器中的應(yīng)用[J].現(xiàn)代電子技術(shù),2004,27(2):59-61.
[5]張吉昌,程凱,鄭榮兒.單軸雙輪自平衡車(chē)姿態(tài)檢測(cè)方案設(shè)計(jì)[J].中國(guó)海洋大學(xué)學(xué)報(bào):自然科學(xué)版,2009(S1):467-470.
注:本研究成果由2013年浙江省大學(xué)生新苗計(jì)劃項(xiàng)目資助。