張奔 王鮑 劉振超 李犇鑫 胡博文 霍建振
Abstract: In this paper, a two-wheel balance vehicle control system with high performance-price ratio and strong stability has been designed at the platform of Freescale's MK60FX512VLQ15 microcontroller based on the analysis and innovation of the first-order inverted pendulum theory. The safe driving and smooth steering of the balance car have been controlled by the PID algorithm through the collection of information such as body speed and attitude. At the same time, the data of the current speed, the parameters of the position control and the turning control can be uploaded to the upper computer and saved through the bluetooth module, which facilitates the researchers to master the information of the car and make the system show better robustness.
引言
21世紀(jì)以來,面對車輛的全面普及與城市化的潮流態(tài)勢,交通擁堵的現(xiàn)象時有發(fā)生。而隨著控制技術(shù)與傳感器技術(shù)等的發(fā)展進(jìn)步與創(chuàng)新融合,雙輪平衡小車引起了廣泛關(guān)注,并取得了較大的突破。因其結(jié)構(gòu)簡單,輕便靈活,節(jié)能環(huán)保,深受上班族與學(xué)生的青睞與喜愛。鑒于其便捷、綠色的特點(diǎn),智能平衡車的應(yīng)用將日趨廣泛[1]。
兩輪自平衡車以一級倒立擺理論為基礎(chǔ),具有傳統(tǒng)的一階倒立擺多變量、非線性、強(qiáng)耦合等特點(diǎn)[2],而在設(shè)計(jì)動力上主要來源于同軸平行連接的2臺電機(jī),通過微處理器對車體姿態(tài)與速度進(jìn)行測量,調(diào)節(jié)2臺驅(qū)動電機(jī)的轉(zhuǎn)速,從而使車體呈現(xiàn)出勻速、轉(zhuǎn)向等不同的姿態(tài)。
1總體設(shè)計(jì)方案
本系統(tǒng)以K60單片機(jī)為核心,通過對各種傳感器信號的采集分析,利用PID算法[3-4]實(shí)現(xiàn)小車的自平衡控制、前行與轉(zhuǎn)向等行為動作。通過按鍵對直立參數(shù)、轉(zhuǎn)向參數(shù)等進(jìn)行調(diào)節(jié),并通過OLED實(shí)時顯示。同時,小車通過藍(lán)牙與上位機(jī)通信,并且利用上位機(jī)的虛擬示波器對小車的運(yùn)行狀態(tài)展開監(jiān)控。本系統(tǒng)對電機(jī)采用MOS全橋驅(qū)動,可靠性高、穩(wěn)定性強(qiáng)。本次研發(fā)設(shè)計(jì)方案則如圖1所示。
2系統(tǒng)硬件設(shè)計(jì)
該系統(tǒng)以MK60FX512VLQ15單片機(jī)為平臺,通過0.96寸的OLED顯示控制參數(shù)與傳感器的信息。使用MPU6050作為加速度計(jì)與陀螺儀,協(xié)同融合出小車的姿態(tài)。使用龍邱mini512線編碼器,通過正交解碼對小車的正、反轉(zhuǎn)與電機(jī)速度進(jìn)行測量。同時通過藍(lán)牙模塊重點(diǎn)支持實(shí)時數(shù)據(jù)采集,上傳到PC上位機(jī),即可對數(shù)據(jù)啟用一定的功能分析。這里,考慮到參數(shù)調(diào)節(jié)的需要,使用3個按鍵對參數(shù)進(jìn)行實(shí)時整定,結(jié)合OLED的快速動態(tài)顯示,在簡明、直觀的同時也免去了每次改變參數(shù)值都要重新編譯下載程序的步驟,使得調(diào)試過程更趨高效、便捷。研究中,針對系統(tǒng)各部分功能設(shè)計(jì)的闡釋探討可分述如下。
2.1姿態(tài)測量模塊
本系統(tǒng)通過MPU6050進(jìn)行姿態(tài)解析,MPU6050是一款六軸加速度陀螺儀模塊,其中整合了三軸加速度計(jì)與三軸陀螺儀,解決了分離式陀螺儀加速度計(jì)之間時間差的問題[5]。MPU6050中有3個16位的ADC,故可將芯片測量的模擬信號轉(zhuǎn)換為穩(wěn)定的數(shù)字信號,并通過I2C 接口輸出一個6軸的數(shù)字電信號。最終單片機(jī)采集到MPU6050的數(shù)據(jù),通過卡爾曼濾波[6]得到穩(wěn)定、可靠的角度信息。
2.2供電系統(tǒng)設(shè)計(jì)
各個模塊的供電設(shè)計(jì),是該系統(tǒng)硬件設(shè)計(jì)的重點(diǎn)內(nèi)容之一。根據(jù)自平衡車對電機(jī)的要求,采用36 V鋰電池供電,選取高效、安全的電壓降壓模塊轉(zhuǎn)換成12 V電源,為電機(jī)驅(qū)動板的正常工作提供保障。同時將12 V穩(wěn)壓為5 V和3.3 V,前者可用于各個傳感器的正常運(yùn)轉(zhuǎn),后者可作為單片機(jī)的運(yùn)行能量基準(zhǔn)。電源系統(tǒng)設(shè)計(jì)流程如圖2所示。
2.3電機(jī)驅(qū)動模塊設(shè)計(jì)
系統(tǒng)硬件設(shè)計(jì)的另一項(xiàng)重點(diǎn)技術(shù)就是電機(jī)驅(qū)動板的設(shè)計(jì)[7]。本系統(tǒng)采用占空比來控制電機(jī),采用2路全橋驅(qū)動。每一臺電機(jī)為了實(shí)現(xiàn)正、反轉(zhuǎn),都需要2路PWM信號、共計(jì)4 路PWM 信號來控制2臺電機(jī)[8]。用MOS管取代BJT作為搭建電機(jī)驅(qū)動板的開關(guān)器件,一方面驅(qū)動電流大,可高達(dá)110 A,另一方面發(fā)熱少,尤其是在車體制動或突然反轉(zhuǎn)的情況下,其發(fā)熱量遠(yuǎn)遠(yuǎn)小于BJT,具有較強(qiáng)的驅(qū)動能力。以單電機(jī)為例,可得相關(guān)驅(qū)動原理則如圖3所示。
3軟件設(shè)計(jì)
3.1運(yùn)動控制系統(tǒng)設(shè)計(jì)
針對系統(tǒng)的控制研究,分析可知,系統(tǒng)中控制對象為小車,2臺電機(jī)的電壓即為輸出量??梢娷圀w的控制分為3部分:小車的平衡控制、小車的勻速控制與小車的轉(zhuǎn)向控制。由于系統(tǒng)的非線性化,信號的簡單疊加難以做到精確控制。在實(shí)際的應(yīng)用中,當(dāng)傾角較小時,可將該系統(tǒng)近似為線性系統(tǒng)進(jìn)一步設(shè)置后續(xù)處理,即把整個控制系統(tǒng)作為3個獨(dú)立的系統(tǒng)來指派控制。對其中任一系統(tǒng)進(jìn)行分析時,都認(rèn)為其它系統(tǒng)處于穩(wěn)定狀態(tài)。
直立的控制采用PD調(diào)節(jié),通過姿態(tài)傳感器和濾波算法得到角度,再以角速度加以修正,構(gòu)成PD控制,實(shí)現(xiàn)兩輪小車的自平衡站立[9]??刂圃淼募夹g(shù)架構(gòu)可如圖4所示。
速度的控制可視作是對直立控制的干擾,通過調(diào)整車模傾角來實(shí)現(xiàn)小車速度的控制。轉(zhuǎn)向的發(fā)生可經(jīng)由控制兩輪的差速而自然得到,轉(zhuǎn)向要求可以比直立的速度更低一些,故將其控制周期設(shè)為80 ms,采用以Z軸陀螺儀的數(shù)據(jù)作為轉(zhuǎn)向速度偏差的比例P控制實(shí)現(xiàn)。
當(dāng)本次研發(fā)程序接受運(yùn)行指令后,首先就是各模塊的初始化,如LED初始化、OLED初始化、按鍵初始化、PWM初始化、串口初始化、MPU6050初始化等。然后將轉(zhuǎn)入使能中斷,設(shè)置定時/計(jì)時器中斷,并開啟定時/計(jì)數(shù)器。程序隨即就按照時序進(jìn)行按鍵掃描、液晶顯示、傳感器數(shù)據(jù)采集、濾波、速度給定等。為了使電機(jī)控制平滑且開關(guān)頻率不至于過高,采用平滑控制方案,即將最終得到的電機(jī)PWM值,平滑地分配到80 ms的控制周期中,從而獲得平滑連續(xù)的控制輸出。主程序的流程設(shè)計(jì)將如圖5所示。
3.2PID算法實(shí)現(xiàn)
PID調(diào)節(jié)器是一種線性調(diào)節(jié)器[10-11],可將給定值r(t)與實(shí)際輸出值c(t)的偏差的比例(P)、積分(I)、微分(D)通過線性組合構(gòu)成控制量,對控制對象部署有效控制。由此得到研究提出的微分方程表示如下:u(t)=Kp[e(t)+1TI∫t0e(t)dt+TDde(t)dt] (1)其中,e(t)為誤差,即:e(t)=r(t)-c(t)。
3.3調(diào)試部分
使用按鍵與OLED配合,同時利用藍(lán)牙與電腦的上位機(jī)進(jìn)行通信,實(shí)時將運(yùn)動過程中的角度、角速度和積分值等動態(tài)數(shù)據(jù),通過串口助手上的虛擬示波器提送得出結(jié)果的處理展示,從而為參數(shù)的整定、以及車身姿態(tài)的實(shí)時反饋與車身魯棒性的分析提供了依據(jù)。
上位機(jī)界面如圖7所示。該界面從左到右、自上而下不僅定制了普通串口助手所包含的基本選項(xiàng),還配置了波形數(shù)量選擇、數(shù)據(jù)類型選擇、以及對波形的放大縮小、數(shù)據(jù)保存等功能。而這些都將為數(shù)據(jù)的分析發(fā)揮有益的幫助作用。
3.4調(diào)試結(jié)果
通過上位機(jī)分析波形與按鍵調(diào)節(jié)參數(shù),智能平衡車的直立部分通過PD控制,經(jīng)過調(diào)試,當(dāng)直立車受到擾動時,其上升時間與調(diào)節(jié)時間都大大縮短,超調(diào)量降低,達(dá)到預(yù)期目標(biāo)。在勻速與轉(zhuǎn)向控制中,合理的PID算法能使小車在堵轉(zhuǎn)及不干擾直立的情況下,較快地達(dá)到目標(biāo)速度,且超調(diào)量很小,對駕駛?cè)藛T幾乎無影響,滿足預(yù)期設(shè)計(jì)要求。
4結(jié)束語
本文從一階倒立擺的控制原理得到啟發(fā),并根據(jù)兩輪平衡車的工作機(jī)制,設(shè)計(jì)了一套基于K60單片機(jī)的運(yùn)動系統(tǒng)。采用數(shù)字式的姿態(tài)傳感器MPU6050,避免了分離式陀螺儀與加速度計(jì)時間差的問題,同時結(jié)合卡爾曼濾波算法,對小車的姿態(tài)進(jìn)行精確實(shí)時控制。使用PID算法實(shí)現(xiàn)了小車的自平衡控制及勻速與轉(zhuǎn)向控制,使其具有較好的魯棒性。并通過按鍵與OLED配合,完成了參數(shù)的實(shí)時整定,從而大大提高了實(shí)踐應(yīng)用效率。
參考文獻(xiàn)
[1] 張洪偉. 基于STM32 的平衡車設(shè)計(jì)[J]. 科技創(chuàng)新與應(yīng)用, 2016(2): 78-79.
[2] 阮曉鋼,孫榮毅,馬圣策,等. 兩輪自平衡機(jī)器人運(yùn)動平衡控制研究[J]. 科學(xué)技術(shù)與工程,2014,14(24):84-88.
[3] 孟鵬,章政. 基于陀螺儀與加速度計(jì)的二輪自平衡控制系統(tǒng)設(shè)計(jì)[J]. 傳感器與微系統(tǒng),2014,33(10 ):61-64.
[4] 王加銀. 基于變論域自適應(yīng)模糊控制的倒立擺仿真與實(shí)物實(shí)現(xiàn)[D]. 北京:北京師范大學(xué),2002.
[5] 孫亮, 孫啟兵. 神經(jīng)元PID控制器在兩輪機(jī)器人控制中的應(yīng)用[J]. 控制工程, 2011,18(1): 113-115.
[6] 劉二林, 姜香菊. 基于卡爾曼濾波的兩輪自平衡車姿態(tài)檢測[J]. 自動化與儀器儀表, 2015(2): 52-54.
[7] SHEN Xiaowei,YAO Minli,JIA Weiming,et al. Adaptive complementary filter using fuzzy logic and simultaneous perturbation stochastic approximation algorithm [J]. Measurement,2012,45(5):1257-1265.
[8] 蔣緯洋, 鄧遲,肖曉萍. 兩輪自平衡小車系統(tǒng)制作研究[J]. 國外電子測量技術(shù),2012,31 (6): 76-79.
[9] 周牡丹, 康愷,蔡普郎,等. 兩輪自平衡車控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 自動化技術(shù)與應(yīng)用, 2014, 33(10):4-8.
[10]梁華,李曉虹,楊光祥. 兩輪自平衡機(jī)器人動力學(xué)模型分析及PID控制方法研究[J]. 重慶師范大學(xué)學(xué)報(自然科學(xué)版),2016,33(1):163-167.
[11]GUO Qi,ZHOU Zhaoying,XIONG Wei, et al. Design of a barometric altimeter based on a micro pressure sensor[J]. Nano Technology and Precision Engineering, 2012,10(4):337-341.