冀風(fēng)州,唐圓檸,王茂鑫,張婷,李旭峰
(1.上海工程技術(shù)大學(xué)工程實(shí)訓(xùn)中心,上海201620;2.山西省人民醫(yī)院計(jì)算機(jī)室,太原030012)
兩輪平衡智能車(chē)作為一種精巧的輪式機(jī)器人,其電控系統(tǒng)是集姿態(tài)檢測(cè)、分析、電機(jī)控制的復(fù)雜系統(tǒng),因此需要較高的反應(yīng)速度和較快的數(shù)據(jù)處理能力,是自動(dòng)控制技術(shù)發(fā)展的一個(gè)重要產(chǎn)物。由于它結(jié)構(gòu)簡(jiǎn)單、小巧輕便以及可以適應(yīng)各種復(fù)雜地形的獨(dú)特優(yōu)勢(shì),使得其被廣泛應(yīng)用于生活。平衡車(chē)的控制較為復(fù)雜,具有強(qiáng)耦合性、非線性、不穩(wěn)定性,成為了研究的一個(gè)熱點(diǎn)。
本文采用了對(duì)稱式的方法建立平衡車(chē)的機(jī)械框架,通過(guò)動(dòng)態(tài)重心分析,將平衡車(chē)的重心集中于車(chē)軸上方。以8位單片機(jī)STC8G為主控制器,搭建平衡智能車(chē)的主控電路,顯示電路,驅(qū)動(dòng)電路等硬件電路平臺(tái)。由于單片機(jī)資源限制,因此對(duì)傳統(tǒng)串級(jí)PID進(jìn)行優(yōu)化,得出高效簡(jiǎn)單控制策略,經(jīng)過(guò)驗(yàn)證STC8G2K64S4能夠滿足自平衡,勻速運(yùn)動(dòng)以及尋跡轉(zhuǎn)向的控制功能。
平衡智能車(chē)整個(gè)系統(tǒng)分為為機(jī)械結(jié)構(gòu)、電路硬件、程序算法三部分。三者的相互配合才能使得系統(tǒng)高效的運(yùn)行,控制系統(tǒng)組成示意圖如圖1所示。工作過(guò)程為:采用8位單片機(jī)STC8G為主控制器,通過(guò)陀螺儀ICM20602傳感器自身姿態(tài)進(jìn)行數(shù)據(jù)獲取、通過(guò)電感傳感器獲得地面循跡路線的20KHz信號(hào)。傳感器數(shù)據(jù)傳至單片機(jī),單片機(jī)通過(guò)濾波和分析、計(jì)算后實(shí)時(shí)驅(qū)動(dòng)電機(jī)的轉(zhuǎn)動(dòng),達(dá)到速度、平衡以及轉(zhuǎn)向的運(yùn)行控制。
圖1 控制系統(tǒng)組成
經(jīng)典控制算法最常用的是PID控制算法,具有如下優(yōu)點(diǎn):①結(jié)構(gòu)簡(jiǎn)單,方便,很容易應(yīng)用于實(shí)踐,尤其對(duì)于單變量輸入的線性系統(tǒng)有著極其顯著的控制效果,因此在工業(yè)領(lǐng)域應(yīng)用極其廣泛。②PID算法有著悠久的歷史,經(jīng)歷了前輩無(wú)數(shù)的驗(yàn)證,使用方法成熟。③非常適合于解決一些結(jié)構(gòu)復(fù)雜,數(shù)學(xué)模型不易推導(dǎo)的系統(tǒng)參數(shù)整定問(wèn)題。
雖然PID有如此多的優(yōu)點(diǎn),但是鑒于平衡車(chē)是一種具有強(qiáng)耦合性、非線性、不穩(wěn)定性的系統(tǒng),直接生搬硬套PID算法對(duì)小車(chē)的姿態(tài)、速度、轉(zhuǎn)向進(jìn)行控制,效果往往不盡如人意。因此,如何優(yōu)化PID控制算法成為了一個(gè)重要的問(wèn)題。但是,如果添加其他的控制算法又會(huì)使得控制方法變得極其復(fù)雜,難以理解,采用普通8位單片機(jī)不能勝任。因此,本文嘗試在傳統(tǒng)PID的基礎(chǔ)上優(yōu)化和組合算法,找到一種高效,簡(jiǎn)單的控制算法。
單級(jí)PID算法原理如圖2所示,單級(jí)PID控制簡(jiǎn)單易于實(shí)現(xiàn),無(wú)需精準(zhǔn)模型就能實(shí)現(xiàn)較好的控制,因此廣泛應(yīng)用于各種控制中。PID是一種線性控制,偏差e(t)是給定值與實(shí)際值的差值,對(duì)其進(jìn)行比例、積分、微分三部分運(yùn)算,三部分的協(xié)調(diào)配合來(lái)達(dá)到預(yù)期的控制量輸出,對(duì)于不同的被控系統(tǒng)只需要調(diào)節(jié)不同的參數(shù)就可以了。
圖2 單級(jí)PID算法原理
PID的控制公式為:
其中kp是比例系數(shù)、Ti是積分時(shí)間常數(shù)、Td是微分時(shí)間常數(shù)。
智能平衡車(chē)的輸出控制左右兩個(gè)電機(jī)的轉(zhuǎn)動(dòng)速度,整個(gè)單片機(jī)控制程序任務(wù)主要分為如下三方面。
(1)控制平衡車(chē)直立:通過(guò)陀螺儀ICM20602的姿態(tài)數(shù)據(jù)控制電機(jī)的正反轉(zhuǎn)達(dá)到是平衡車(chē)直立的效果。
(2)控制平衡車(chē)速度:通過(guò)調(diào)節(jié)車(chē)身的角度來(lái)控制平衡車(chē)的速度,但是究其本質(zhì)仍舊落足于控制電機(jī)的轉(zhuǎn)動(dòng)來(lái)控制速度。
(3)控制平衡車(chē)方向:通過(guò)前瞻電感傳感器的軌跡偏差來(lái)控制兩個(gè)電機(jī)的轉(zhuǎn)動(dòng)差速實(shí)現(xiàn)平衡車(chē)的轉(zhuǎn)向。
既然車(chē)模的控制已經(jīng)可以分解為三個(gè)任務(wù),那么理想狀態(tài)下只需要將每一個(gè)任務(wù)分別進(jìn)行完成,然后將控制信號(hào)疊加到電機(jī)上即可達(dá)到預(yù)期的控制效果。
(1)平衡控制。平衡車(chē)的平衡控制原理類(lèi)似于倒立擺模型,通過(guò)負(fù)反饋機(jī)制達(dá)到直立效果。結(jié)合到PID控制中也很容易。由于有外界的干擾,會(huì)產(chǎn)生干擾誤差。如果采用積分環(huán)節(jié)則會(huì)積累誤差,不利于控制。而且車(chē)體直立最重要的是響應(yīng)速度,因此使用PD控制,計(jì)算公式如下。
平衡控制關(guān)鍵程序如下:
通過(guò)計(jì)算車(chē)體的實(shí)際角度與期望角度的差值,進(jìn)行PD計(jì)算轉(zhuǎn)化為PWM值輸出到電機(jī)上進(jìn)行平衡控制。
(2)運(yùn)行控制。運(yùn)行控制包含速度與轉(zhuǎn)向控制,速度控制通過(guò)采集兩輪編碼器測(cè)速PI控制實(shí)現(xiàn),轉(zhuǎn)向控制則可以通過(guò)陀螺儀z軸數(shù)據(jù)進(jìn)行PD控制。
速度控制關(guān)鍵程序?qū)崿F(xiàn)如下:
轉(zhuǎn)向控制關(guān)鍵程序?qū)崿F(xiàn)如下:
將三個(gè)任務(wù)的控制信號(hào)疊加到電機(jī)上控制車(chē)子運(yùn)行。但是,在實(shí)際的運(yùn)行中明顯的察覺(jué)到平衡車(chē)并不能很好地適應(yīng)顛簸路面或者是陡坡等路段。這與控制策略的局限性有關(guān),因?yàn)槠胶廛?chē)系統(tǒng)的耦合性很強(qiáng)且為非線性,一旦干擾較大,就會(huì)出現(xiàn)三個(gè)任務(wù)的相互掣肘,不僅不能夠保持穩(wěn)定還會(huì)加劇破壞穩(wěn)定。經(jīng)過(guò)尋找發(fā)現(xiàn)問(wèn)題主要出現(xiàn)在速度控制和平衡控制兩個(gè)環(huán)節(jié)上。一旦路面出現(xiàn)較大的抖動(dòng)車(chē)子就要進(jìn)行較大幅度的調(diào)整,這時(shí)候由于兩個(gè)任務(wù)的耦合很強(qiáng)就會(huì)導(dǎo)致沖突,最后不僅不能調(diào)節(jié)至穩(wěn)定還會(huì)使得平衡車(chē)完全失控。于是,經(jīng)過(guò)大量試驗(yàn)驗(yàn)證采用串級(jí)PID來(lái)可以解決這個(gè)問(wèn)題。
(3)串級(jí)PID優(yōu)化設(shè)計(jì)。由于直接將速度與直立控制信號(hào)疊加會(huì)造成沖突,而平衡最重要的就是直立。那么將速度控制串入直立控制中去,以直立外環(huán)為主導(dǎo),保證外環(huán)穩(wěn)定為主要目的,兩環(huán)控制協(xié)調(diào)一致,互相配合,不僅可以解決之前的兩環(huán)沖突問(wèn)題。而且對(duì)于二次干擾,由內(nèi)環(huán)先進(jìn)行“粗調(diào)”,外環(huán)再進(jìn)行“細(xì)調(diào)”,控制效果必然優(yōu)于之前的單環(huán)疊加控制。平衡智能車(chē)串級(jí)PID算法原理框圖如圖3所示。
圖3 平衡智能車(chē)串級(jí)PID算法原理
串級(jí)PID算法關(guān)鍵程序?qū)崿F(xiàn)如下:
實(shí)踐證明,相同干擾下串級(jí)控制系統(tǒng)的控制質(zhì)量是單級(jí)控制系統(tǒng)無(wú)法比擬的。由于內(nèi)環(huán)的存在改變了原來(lái)的特性,使得調(diào)節(jié)時(shí)間變短,這就更加符合平衡車(chē)對(duì)于直立控制快速響應(yīng)的要求。串級(jí)PID起到了超前控制的作用,有效抑制了內(nèi)環(huán)的干擾,這就使得兩個(gè)控制不再會(huì)出現(xiàn)之前的沖突的情況。由于串級(jí)控制系統(tǒng)的外環(huán)是一個(gè)隨動(dòng)控制系統(tǒng),它的設(shè)定值是在隨著內(nèi)環(huán)的輸出而變化的。因此可以保證在操作條件和符合發(fā)生變化的情況下,控制系統(tǒng)仍然有較好的控制效果。
本文以平衡車(chē)為研究對(duì)象,通過(guò)在實(shí)際情況下對(duì)比不同PID控制的效果,最終找到了一種高效簡(jiǎn)單的控制策略,完成了能夠適應(yīng)不同路面狀況的快速移動(dòng)的平衡智能車(chē)。該平衡車(chē)能夠很好地完成預(yù)定的路線任務(wù),為以后的相關(guān)研究打下了良好的技術(shù)基礎(chǔ)。