胥鍵 朱日興 歐偉康 繆子隆
摘 要:該文介紹了雙輪平衡小車(chē)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。系統(tǒng)以STC15F2K60S2單片機(jī)作為核心控制器,用MPU-6050陀螺儀檢測(cè)小車(chē)行駛姿態(tài)和重力加速度采集,對(duì)實(shí)時(shí)檢測(cè)采集的數(shù)據(jù)通過(guò)PID算法輸出改變PWM脈沖,控制L298N驅(qū)動(dòng)直流電機(jī),通過(guò)設(shè)計(jì)實(shí)踐,完成軟件、硬件設(shè)計(jì)制作,實(shí)現(xiàn)了雙輪小車(chē)自平衡行駛控制,達(dá)到了預(yù)期設(shè)計(jì)目標(biāo)。
關(guān)鍵詞:雙輪平衡小車(chē) STC15F2K60S2 PID算法 PWM
中圖分類號(hào):TP242.3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2016)07(b)-0031-02
隨著社會(huì)經(jīng)濟(jì)的發(fā)展,人民生活水平的提高,越來(lái)越多的小汽車(chē)走進(jìn)了尋常百姓家。汽車(chē)快捷方便、省時(shí)省力、現(xiàn)代化程度高、種類繁多的個(gè)性化設(shè)計(jì)滿足了不同人的需求。然而,汽車(chē)作為傳統(tǒng)的陸路交通工具也存在不少的弊端,它體積大、重量大、污染大、噪聲大、耗油大、技術(shù)復(fù)雜、價(jià)格貴、停放困難,效能不高,容易造成交通擁堵并帶來(lái)安全隱患。兩輪自平衡車(chē)運(yùn)動(dòng)靈活、智能控制、操作簡(jiǎn)便,適合單人使用且適用范圍廣,增加了人們對(duì)外出活動(dòng)的興趣,減少人們的運(yùn)動(dòng)強(qiáng)度,解決了人們時(shí)間不充足的問(wèn)題。
1 系統(tǒng)總體結(jié)構(gòu)
(1)兩輪自平衡小車(chē)狀態(tài)分析:兩輪自平衡小車(chē)共分為前傾狀態(tài)、靜止?fàn)顟B(tài)和后仰狀態(tài)。前傾狀態(tài):即車(chē)身重心靠前,車(chē)身會(huì)向前傾斜,則驅(qū)動(dòng)車(chē)輪向前滾動(dòng),以保持小車(chē)平衡。靜止?fàn)顟B(tài):即車(chē)身重心位于電機(jī)軸心線的正上方,則小車(chē)將保持動(dòng)態(tài)平衡靜止?fàn)顟B(tài),不需要做任何控制。后仰狀態(tài):即車(chē)身重心靠后,車(chē)身會(huì)向后傾斜,則驅(qū)動(dòng)車(chē)輪向后滾動(dòng),以保持小車(chē)平衡。
兩輪自平衡小車(chē)平衡控制的基本思想是:是系統(tǒng)以姿態(tài)傳感器(陀螺儀、加速度計(jì))來(lái)監(jiān)測(cè)車(chē)身所處的俯仰狀態(tài)和狀態(tài)變化率,通過(guò)高速中央處理器計(jì)算出適當(dāng)數(shù)據(jù)和指令后,控制系統(tǒng)會(huì)根據(jù)測(cè)得的傾角產(chǎn)生一個(gè)相應(yīng)的力矩,通過(guò)控制電機(jī)驅(qū)動(dòng)兩個(gè)車(chē)輪朝車(chē)身要倒下的方向運(yùn)動(dòng),以保持小車(chē)自身的動(dòng)態(tài)平衡。
(2)硬件電路結(jié)構(gòu):該系統(tǒng)要實(shí)現(xiàn)雙輪小車(chē)驅(qū)動(dòng)、自平衡設(shè)計(jì),必定要以單片機(jī)為核心構(gòu)成智能控制系統(tǒng),采用專用芯片驅(qū)動(dòng)直流無(wú)刷電機(jī),用陀螺儀實(shí)時(shí)檢測(cè)小車(chē)姿態(tài)和加速度,并實(shí)時(shí)進(jìn)行PID控制調(diào)節(jié),輸出PWM控制直流電機(jī),系統(tǒng)結(jié)構(gòu)如圖1所示。
2 硬件電路設(shè)計(jì)
按照?qǐng)D1電路結(jié)構(gòu),單片機(jī)選用STC15F2K60S2作為控制器;直流電機(jī)驅(qū)動(dòng)采用L298N電機(jī)驅(qū)動(dòng)板模塊,電源由兩節(jié)工業(yè)電池18650直接提供,單片機(jī)的P2.0~P2.3接L298N的A+、B+、A-、B-;陀螺儀采用MPU-6050模塊,用單片機(jī)的P3.5、P3.6接收陀螺儀檢測(cè)的信號(hào);電機(jī)采用(6V/150轉(zhuǎn))N20減速電機(jī),帶D字軸橡膠輪胎和支架;電源采用工業(yè)電池18650,+5 V電源由MAS1117-5.0V穩(wěn)壓后輸出。
3 軟件設(shè)計(jì)與算法實(shí)現(xiàn)
3.1 軟件系統(tǒng)結(jié)構(gòu)
系統(tǒng)要實(shí)現(xiàn)雙輪小車(chē)自平衡設(shè)計(jì),重點(diǎn)需要實(shí)時(shí)檢測(cè)小車(chē)行駛姿態(tài)、加速度和闡述PWM脈沖信號(hào)輸出控制直流電機(jī)。因此,軟件系統(tǒng)采用主從結(jié)構(gòu),主程序負(fù)責(zé)順序調(diào)度執(zhí)行各個(gè)功能模塊子程序。各個(gè)模塊子程序分為系統(tǒng)初始化、陀螺儀數(shù)據(jù)采集、PID運(yùn)算處理、PWM脈沖產(chǎn)生。
3.2 陀螺儀數(shù)據(jù)采集
陀螺儀是通過(guò)I2C總線接口硬件模塊,內(nèi)部的重力加速度寄存器能記錄下當(dāng)前小車(chē)的狀態(tài),通過(guò)I2C總線通信訪問(wèn)寄存器,就可讀取這些信息到單片機(jī),單片機(jī)采用PID處理數(shù)據(jù)形成電機(jī)控制調(diào)節(jié)信號(hào)。
采用I2C總線讀寫(xiě)陀螺儀寄存器數(shù)據(jù)時(shí),單片機(jī)先要發(fā)出器件地址,然后發(fā)出陀螺儀的寄存器地址,指明要訪問(wèn)哪個(gè)寄存器,在收到成功應(yīng)答后,才能開(kāi)始讀出陀螺儀寄存器的內(nèi)容,具體I2C總線通信資料很多,請(qǐng)參考相關(guān)資料。
3.3 PID算法實(shí)現(xiàn)
PID及其衍生算法在工業(yè)應(yīng)用中應(yīng)用廣泛,PID控制算法是最簡(jiǎn)單,最能體現(xiàn)反饋思想的控制算法。對(duì)于初學(xué)者來(lái)講,應(yīng)該是足夠應(yīng)對(duì)簡(jiǎn)單的研發(fā)問(wèn)題,在所接觸的控制算法當(dāng)中,PID控制算法最能體現(xiàn)反饋思想的控制算法,可謂經(jīng)典中的經(jīng)典。PID算法公式如下:
PID算法運(yùn)用控制時(shí),采用閉環(huán)控制環(huán)節(jié)實(shí)現(xiàn)直流電機(jī)調(diào)速控制,用rin(t)輸入量設(shè)置陀螺儀預(yù)定值,陀螺儀傳感器檢測(cè)當(dāng)前小車(chē)狀態(tài),用rout(t)輸出量輸出陀螺儀檢測(cè)到的實(shí)際值,由執(zhí)行器控制直流電機(jī),直流電機(jī)采用PWM調(diào)速。通過(guò)給定陀螺儀預(yù)定值和陀螺儀測(cè)定的實(shí)際值的偏差進(jìn)行比例、積分、微分運(yùn)算再通過(guò)PWM調(diào)節(jié)輸出給電機(jī),陀螺儀再采集重力加速度反饋回去(其中輸入量為rin(t),輸出量為rout(t),偏差量為err(t)=rin(t)-rout(t))。
PID運(yùn)算是該系統(tǒng)的靈魂,PID運(yùn)算調(diào)節(jié)小車(chē)使其平衡。PID運(yùn)算通過(guò)對(duì)重力加速度的給定值與重力加速度的偏差進(jìn)行比例、積分、微分運(yùn)算輸出運(yùn)算結(jié)果。在PID控制中,引入積分環(huán)節(jié)的目的,主要是為了消除靜差,提高控制精度。但是在啟動(dòng)、結(jié)束或大幅度增減設(shè)定時(shí),短時(shí)間內(nèi)系統(tǒng)輸出有很大的偏差,會(huì)造成PID運(yùn)算的積分積累,導(dǎo)致控制量超過(guò)執(zhí)行機(jī)構(gòu)可能允許的最大動(dòng)作范圍對(duì)應(yīng)極限控制量,從而引起較大的超調(diào),甚至是震蕩。為了克服這一問(wèn)題,引入了積分分離的概念,其基本思路是:當(dāng)被控量與設(shè)定值偏差較大時(shí),取消積分作用;當(dāng)被控量接近給定值時(shí),引入積分控制,以消除靜差,提高精度。
3.4 PWM脈沖輸出
單片機(jī)通過(guò)產(chǎn)生正確的PWM脈沖信號(hào),調(diào)節(jié)PWM占空比來(lái)實(shí)現(xiàn)對(duì)電機(jī)的控制。具體實(shí)現(xiàn)時(shí),單片機(jī)對(duì)給定的占空比進(jìn)行數(shù)據(jù)轉(zhuǎn)換,如果當(dāng)前輸出為“1”電平時(shí),將高電平時(shí)間預(yù)置給定時(shí)器,當(dāng)定時(shí)時(shí)間到產(chǎn)生中斷,對(duì)輸出信號(hào)取反;如果當(dāng)前輸出為“0”電平時(shí),將低電平時(shí)間預(yù)置給定時(shí)器,當(dāng)定時(shí)時(shí)間到產(chǎn)生中斷,對(duì)輸出信號(hào)取反……。如此實(shí)現(xiàn)對(duì)PWM脈沖信號(hào)占空比進(jìn)行調(diào)節(jié)控制電機(jī)轉(zhuǎn)速,只要改變占空比就可以控制電機(jī)轉(zhuǎn)速。
4 結(jié)語(yǔ)
該文重點(diǎn)介紹了雙輪小車(chē)的自平衡控制,提供小車(chē)控制電路原理圖,給出了軟件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和模塊化設(shè)計(jì)基本方法思想。使用STC單片機(jī)為控制核心,采用陀螺儀檢測(cè)信號(hào)、PID算法數(shù)據(jù)處理、PWM輸出控制電機(jī),解決了小車(chē)平衡行駛控制問(wèn)題。經(jīng)過(guò)實(shí)驗(yàn)制作和軟/硬件綜合調(diào)試,實(shí)現(xiàn)了智能小車(chē)自平衡行駛控制,具有較好的應(yīng)用價(jià)值。
參考文獻(xiàn)
[1] 朱兆優(yōu),陳堅(jiān),鄧文娟.單片機(jī)原理與應(yīng)用-基于STC系列增強(qiáng)型80C51單片機(jī)[M].2版.北京:電子工業(yè)出版社,2012.
[2] 夏德鈐,翁貽方.自動(dòng)控制理論[M].4版.北京:機(jī)械工業(yè)出版社,2013.
[3] 趙廣元.MATLAB與控制系統(tǒng)仿真實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2009.