熊超偉 王峰 揭云飛 智凱旋 李學易
摘要:為了實現(xiàn)單軌車輛的自平衡控制,設計了一種基于PID控制的單軌自平衡小車控制系統(tǒng),該系統(tǒng)將STM32作為主控制器,通過加速度計和陀螺儀采集到的加速度和角速度信號進行數(shù)據(jù)融合得到小車傾角,然后經(jīng)過PID控制算法來調(diào)整PWM的占空比來控制直流減速電機的轉(zhuǎn)速和舵機的轉(zhuǎn)向,進而實現(xiàn)單軌車輛的自平衡控制。該控制算法使用STM32微處理器,控制模型自行車,實現(xiàn)機器人自行車的自動平衡。關(guān)鍵詞:PID控制; 機器人自行車;自平衡; STM32; 加速度計; 陀螺儀; 數(shù)據(jù)融合
中圖分類號:TP273 文獻標識碼:A 文章編號:1009-3044(2018)19-0274-02
Abstract:In order to realize the self-balanced control of monorail vehicles, a monorail self-balancing vehicle control system based on PID control is designed. The system uses STM32 as the main controller and obtains acceleration and angular velocity signals collected by accelerometers and gyroscopes for data fusion. The tilt angle of the trolley then passes through a PID control algorithm to adjust the duty cycle of the PWM to control the speed of the DC geared motor and the steering of the steering gear, thereby realizing the self-balanced control of the monorail vehicle. The control algorithm uses the STM32 microprocessor to control the model bike and achieve automatic balance of the robot bike.
Key words: PID control; robotic bicycle; self-balancing; STM32; accelerometer; gyro; data fusion
1 引言
目前,電動小型單軌車輛被廣泛應用于城市短距離交通。這些車輛不僅價格便宜,而且也節(jié)能環(huán)保,深受廣大用戶的歡迎。然而,單軌車輛一個突出的問題就是安全性,由于單軌車輛本身是不穩(wěn)定的[1],并且在駕駛過程中也受駕駛?cè)思夹g(shù)水平影響,單軌車輛出事故的概率也遠高于汽車。
雖然左右輪平衡車Segway問世以來,技術(shù)和市場都比較成功,但由于其左右輪的設計結(jié)構(gòu)使得它的制動距離比較的長,這樣使得其剎車方式在很大程度上限制了平衡車的性能和應用范圍。因此,為了讓不穩(wěn)定的單軌車輛變成安全穩(wěn)定的交通工具,對單軌車輛自平衡控制的研究就具有十分重要的意義[2]。
單軌自平衡控制系統(tǒng)整體可以分為姿態(tài)自平衡,速度控制以及轉(zhuǎn)向控制。通過對姿態(tài)傳感器采集到的信息進行數(shù)據(jù)融合得到傾角,并經(jīng)過PID控制算法來得到所需的控制量進而控制驅(qū)動電機和舵機來達到單軌小車的自平衡。在整個的循環(huán)控制過程中,采用5ms定時中斷來確保對小車的姿態(tài)進行實時更新。
2 自平衡控制系統(tǒng)原理
2.1 系統(tǒng)總體結(jié)構(gòu)
單軌自平衡控制系統(tǒng)主要由STM32主控芯片、姿態(tài)傳感器、舵機、帶編碼器的直流電機等模塊組成。其系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。單片最小系統(tǒng)采用STM32作為主控芯片,其中主要包括復位電路、時鐘電路、串口通訊電路,并且需要控制板內(nèi)部集成的PWM模塊能夠輸出至少兩路PWM信號來分別控制舵機轉(zhuǎn)向以及電機轉(zhuǎn)動。
在系統(tǒng)結(jié)構(gòu)框圖中可知,STM32主控芯片要處理本軟件系統(tǒng)的大量工作。包括讀取線加速度傳感器以及陀螺儀上的加速度和角速度信息,并將這些采集到的信息進行數(shù)據(jù)融合得到小車當前狀態(tài)的傾斜角度,再經(jīng)過PID直立控制算法來計算出小車需要保持平衡狀態(tài)所需的控制量,然后將得出的控制量作用于直流減速電機和舵機,使小車保持平衡,再通過姿態(tài)傳感器采集姿態(tài)信息并進行處理,如此反復,使得小車保持動態(tài)平衡。
此外,穩(wěn)定的電源也對整個平衡系統(tǒng)起到了至關(guān)重要的作用。整個平衡車系統(tǒng)通過12V的航模鋰電池供電,通過穩(wěn)壓芯片產(chǎn)生3.3V和5V電源,其中3.3V來給STM32以及MPU6050線加速度傳感器供電,5V來為OLED顯示屏等外圍設備供電,而帶編碼器的直流減速電機可以工作在7~13V之間。
2.2 單軌自平衡直立控制
在小車直立控制中,若要保持小車的平衡,首先要知道小車的傾角以及傾角方向,然后根據(jù)傾角大小通過直立PID控制器計算出小車平衡所需要的控制量,并根據(jù)傾角的方向來確定舵機的轉(zhuǎn)把方向以此來使得小車能夠保持平衡。其控制原理如下圖2所示。
在小車傾角測量的過程中,線加速度傳感器根據(jù)慣形變來測量加速度,它反映的是合力對運動物體所造成的影響[3]。陀螺儀用來測量小車的角速度,并對傾斜角速度進行積分就能得到小車的傾角,但是如果采集到的角速度信息存在很小的偏差或者漂移[4],緊接著通過積分運算就會有一個累計誤差。然而由于陀螺儀和加速度傳感器有著不同的誤差特性,所以在小車的平衡控制中,通常的做法是使用加速度傳感器和陀螺儀來對加速度和角速度進行采集并進行數(shù)據(jù)融合來得到需要的角度[5]。
2.3 速度閉環(huán)控制
速度閉環(huán)控制根據(jù)單位時間內(nèi)編碼器得到的脈沖數(shù)來測量直流電機的速度信息,并且和目標值進行對比來得到控制偏差[6],再經(jīng)過對該偏差進行比例、積分、微分控制來使得該偏差趨于零的一個過程。其速度控制原理如下圖3所示。
2.4 自平衡控制系統(tǒng)流程
在自平衡控制系統(tǒng)初始化后,在5ms定時中斷里STM32和MUP6050加速度計傳感器通過I2C通信來讀取單軌小車的姿態(tài)信息,然后將加速度計所得到的信息和陀螺儀采集到的角速度信息通過數(shù)據(jù)融合得到傾斜角。然后通過PID控制算法計算出主控芯片需要給舵機和電機驅(qū)動器控制量。整個平衡控制系統(tǒng)軟件功能流程圖如下圖4所示。
在小車的直立控制中,通過直立PID控制器計算出的控制量用來作用于舵機來實現(xiàn)車把的轉(zhuǎn)向,通俗來說,當小車往前進方向左偏時,舵機應該控制車把往左打方向,當小車往前進方向又偏時,舵機也就需要控制車把往右打方向,即通過車把轉(zhuǎn)向來實現(xiàn)小車的平衡。
在把整個平衡控制系統(tǒng)所需的硬件搭建好之后,把其應用在單軌模型小車上,如圖5所示,可以看到,在基于PID控制系統(tǒng)中,單軌車輛是可以實現(xiàn)自平衡的,也驗證了該方法的可行性。
3 結(jié)論
單軌車輛能夠通過PID控制來實現(xiàn)自平衡,其自平衡控制系統(tǒng)以STM32作為主控芯片,通過5ms定時中斷來讀取加速度傳感器和陀螺儀的姿態(tài)信息,并進行數(shù)據(jù)融合得到可靠的傾角,再通過PID算法計算出相應的控制量,從而對電機和舵機進行相應的控制,以此來實現(xiàn)單軌車輛的自平衡,最后本設計在模型自行車硬件上實現(xiàn)平衡,驗證本方法的有效性。
參考文獻:
[1] 黃用華,廖啟征,魏世民,等.前輪驅(qū)動自行車機器人定車運動的建模與實現(xiàn)[J].北京郵電大學學報,2012,35(2):5-9.
[2] 沈凌偉.單軌車輛自平衡控制研究[D].杭州電子科技大學,2015.
[3] 馬思遠,魯庭勇,張麗君.兩輪自平衡車運動姿態(tài)的測量和控制[J].測控技術(shù),2015,34(4):71-73.
[4] 師樹恒,曹陽, 師素娟.一種直立智能循跡小車的設計[J].自動化儀表,2014,35(2):66-68.
[5] 趙翔, 杜普選,李虎,等.基于MEMS加速度計和陀螺儀的姿態(tài)檢測系統(tǒng)[J].鐵路計算機應用,2012,21(3):15-18.
[6] 曹杰,藍賢桂,周書民,等.基于單片機的自平衡小車設計與實現(xiàn)[J].科技廣場,2017(6):79-81.