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