張奔 王鮑 劉振超 李犇鑫 胡博文 霍建振
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世紀以來,面對車輛的全面普及與城市化的潮流態(tài)勢,交通擁堵的現(xiàn)象時有發(fā)生。而隨著控制技術(shù)與傳感器技術(shù)等的發(fā)展進步與創(chuàng)新融合,雙輪平衡小車引起了廣泛關(guān)注,并取得了較大的突破。因其結(jié)構(gòu)簡單,輕便靈活,節(jié)能環(huán)保,深受上班族與學生的青睞與喜愛。鑒于其便捷、綠色的特點,智能平衡車的應用將日趨廣泛[1]。
兩輪自平衡車以一級倒立擺理論為基礎(chǔ),具有傳統(tǒng)的一階倒立擺多變量、非線性、強耦合等特點[2],而在設計動力上主要來源于同軸平行連接的2臺電機,通過微處理器對車體姿態(tài)與速度進行測量,調(diào)節(jié)2臺驅(qū)動電機的轉(zhuǎn)速,從而使車體呈現(xiàn)出勻速、轉(zhuǎn)向等不同的姿態(tài)。
1總體設計方案
本系統(tǒng)以K60單片機為核心,通過對各種傳感器信號的采集分析,利用PID算法[3-4]實現(xiàn)小車的自平衡控制、前行與轉(zhuǎn)向等行為動作。通過按鍵對直立參數(shù)、轉(zhuǎn)向參數(shù)等進行調(diào)節(jié),并通過OLED實時顯示。同時,小車通過藍牙與上位機通信,并且利用上位機的虛擬示波器對小車的運行狀態(tài)展開監(jiān)控。本系統(tǒng)對電機采用MOS全橋驅(qū)動,可靠性高、穩(wěn)定性強。本次研發(fā)設計方案則如圖1所示。
2系統(tǒng)硬件設計
該系統(tǒng)以MK60FX512VLQ15單片機為平臺,通過0.96寸的OLED顯示控制參數(shù)與傳感器的信息。使用MPU6050作為加速度計與陀螺儀,協(xié)同融合出小車的姿態(tài)。使用龍邱mini512線編碼器,通過正交解碼對小車的正、反轉(zhuǎn)與電機速度進行測量。同時通過藍牙模塊重點支持實時數(shù)據(jù)采集,上傳到PC上位機,即可對數(shù)據(jù)啟用一定的功能分析。這里,考慮到參數(shù)調(diào)節(jié)的需要,使用3個按鍵對參數(shù)進行實時整定,結(jié)合OLED的快速動態(tài)顯示,在簡明、直觀的同時也免去了每次改變參數(shù)值都要重新編譯下載程序的步驟,使得調(diào)試過程更趨高效、便捷。研究中,針對系統(tǒng)各部分功能設計的闡釋探討可分述如下。
2.1姿態(tài)測量模塊
本系統(tǒng)通過MPU6050進行姿態(tài)解析,MPU6050是一款六軸加速度陀螺儀模塊,其中整合了三軸加速度計與三軸陀螺儀,解決了分離式陀螺儀加速度計之間時間差的問題[5]。MPU6050中有3個16位的ADC,故可將芯片測量的模擬信號轉(zhuǎn)換為穩(wěn)定的數(shù)字信號,并通過I2C 接口輸出一個6軸的數(shù)字電信號。最終單片機采集到MPU6050的數(shù)據(jù),通過卡爾曼濾波[6]得到穩(wěn)定、可靠的角度信息。
2.2供電系統(tǒng)設計
各個模塊的供電設計,是該系統(tǒng)硬件設計的重點內(nèi)容之一。根據(jù)自平衡車對電機的要求,采用36 V鋰電池供電,選取高效、安全的電壓降壓模塊轉(zhuǎn)換成12 V電源,為電機驅(qū)動板的正常工作提供保障。同時將12 V穩(wěn)壓為5 V和3.3 V,前者可用于各個傳感器的正常運轉(zhuǎn),后者可作為單片機的運行能量基準。電源系統(tǒng)設計流程如圖2所示。
2.3電機驅(qū)動模塊設計
系統(tǒng)硬件設計的另一項重點技術(shù)就是電機驅(qū)動板的設計[7]。本系統(tǒng)采用占空比來控制電機,采用2路全橋驅(qū)動。每一臺電機為了實現(xiàn)正、反轉(zhuǎn),都需要2路PWM信號、共計4 路PWM 信號來控制2臺電機[8]。用MOS管取代BJT作為搭建電機驅(qū)動板的開關(guān)器件,一方面驅(qū)動電流大,可高達110 A,另一方面發(fā)熱少,尤其是在車體制動或突然反轉(zhuǎn)的情況下,其發(fā)熱量遠遠小于BJT,具有較強的驅(qū)動能力。以單電機為例,可得相關(guān)驅(qū)動原理則如圖3所示。
3軟件設計
3.1運動控制系統(tǒng)設計
針對系統(tǒng)的控制研究,分析可知,系統(tǒng)中控制對象為小車,2臺電機的電壓即為輸出量??梢娷圀w的控制分為3部分:小車的平衡控制、小車的勻速控制與小車的轉(zhuǎn)向控制。由于系統(tǒng)的非線性化,信號的簡單疊加難以做到精確控制。在實際的應用中,當傾角較小時,可將該系統(tǒng)近似為線性系統(tǒng)進一步設置后續(xù)處理,即把整個控制系統(tǒng)作為3個獨立的系統(tǒng)來指派控制。對其中任一系統(tǒng)進行分析時,都認為其它系統(tǒng)處于穩(wěn)定狀態(tài)。
直立的控制采用PD調(diào)節(jié),通過姿態(tài)傳感器和濾波算法得到角度,再以角速度加以修正,構(gòu)成PD控制,實現(xiàn)兩輪小車的自平衡站立[9]??刂圃淼募夹g(shù)架構(gòu)可如圖4所示。
速度的控制可視作是對直立控制的干擾,通過調(diào)整車模傾角來實現(xiàn)小車速度的控制。轉(zhuǎn)向的發(fā)生可經(jīng)由控制兩輪的差速而自然得到,轉(zhuǎn)向要求可以比直立的速度更低一些,故將其控制周期設為80 ms,采用以Z軸陀螺儀的數(shù)據(jù)作為轉(zhuǎn)向速度偏差的比例P控制實現(xiàn)。
當本次研發(fā)程序接受運行指令后,首先就是各模塊的初始化,如LED初始化、OLED初始化、按鍵初始化、PWM初始化、串口初始化、MPU6050初始化等。然后將轉(zhuǎn)入使能中斷,設置定時/計時器中斷,并開啟定時/計數(shù)器。程序隨即就按照時序進行按鍵掃描、液晶顯示、傳感器數(shù)據(jù)采集、濾波、速度給定等。為了使電機控制平滑且開關(guān)頻率不至于過高,采用平滑控制方案,即將最終得到的電機PWM值,平滑地分配到80 ms的控制周期中,從而獲得平滑連續(xù)的控制輸出。主程序的流程設計將如圖5所示。
3.2PID算法實現(xiàn)
PID調(diào)節(jié)器是一種線性調(diào)節(jié)器[10-11],可將給定值r(t)與實際輸出值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配合,同時利用藍牙與電腦的上位機進行通信,實時將運動過程中的角度、角速度和積分值等動態(tài)數(shù)據(jù),通過串口助手上的虛擬示波器提送得出結(jié)果的處理展示,從而為參數(shù)的整定、以及車身姿態(tài)的實時反饋與車身魯棒性的分析提供了依據(jù)。
上位機界面如圖7所示。該界面從左到右、自上而下不僅定制了普通串口助手所包含的基本選項,還配置了波形數(shù)量選擇、數(shù)據(jù)類型選擇、以及對波形的放大縮小、數(shù)據(jù)保存等功能。而這些都將為數(shù)據(jù)的分析發(fā)揮有益的幫助作用。
3.4調(diào)試結(jié)果
通過上位機分析波形與按鍵調(diào)節(jié)參數(shù),智能平衡車的直立部分通過PD控制,經(jīng)過調(diào)試,當直立車受到擾動時,其上升時間與調(diào)節(jié)時間都大大縮短,超調(diào)量降低,達到預期目標。在勻速與轉(zhuǎn)向控制中,合理的PID算法能使小車在堵轉(zhuǎn)及不干擾直立的情況下,較快地達到目標速度,且超調(diào)量很小,對駕駛?cè)藛T幾乎無影響,滿足預期設計要求。
4結(jié)束語
本文從一階倒立擺的控制原理得到啟發(fā),并根據(jù)兩輪平衡車的工作機制,設計了一套基于K60單片機的運動系統(tǒng)。采用數(shù)字式的姿態(tài)傳感器MPU6050,避免了分離式陀螺儀與加速度計時間差的問題,同時結(jié)合卡爾曼濾波算法,對小車的姿態(tài)進行精確實時控制。使用PID算法實現(xiàn)了小車的自平衡控制及勻速與轉(zhuǎn)向控制,使其具有較好的魯棒性。并通過按鍵與OLED配合,完成了參數(shù)的實時整定,從而大大提高了實踐應用效率。
參考文獻
[1] 張洪偉. 基于STM32 的平衡車設計[J]. 科技創(chuàng)新與應用, 2016(2): 78-79.
[2] 阮曉鋼,孫榮毅,馬圣策,等. 兩輪自平衡機器人運動平衡控制研究[J]. 科學技術(shù)與工程,2014,14(24):84-88.
[3] 孟鵬,章政. 基于陀螺儀與加速度計的二輪自平衡控制系統(tǒng)設計[J]. 傳感器與微系統(tǒng),2014,33(10 ):61-64.
[4] 王加銀. 基于變論域自適應模糊控制的倒立擺仿真與實物實現(xiàn)[D]. 北京:北京師范大學,2002.
[5] 孫亮, 孫啟兵. 神經(jīng)元PID控制器在兩輪機器人控制中的應用[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)的設計與實現(xiàn)[J]. 自動化技術(shù)與應用, 2014, 33(10):4-8.
[10]梁華,李曉虹,楊光祥. 兩輪自平衡機器人動力學模型分析及PID控制方法研究[J]. 重慶師范大學學報(自然科學版),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.