藍(lán)東浩 王強(qiáng) 吳司林
摘要:平衡車作為近幾年新出現(xiàn)的代步工具,它的技術(shù)還在不斷完善和拓展中。為了單片機(jī)更精準(zhǔn)對(duì)雙輪平衡車的控制,本項(xiàng)目小組提出了基于32位單片機(jī)的平衡車控制算法的研究。平衡車的平衡原理是通過(guò)對(duì)車體自身姿態(tài)的解算,控制共軸平行雙輪的相對(duì)獨(dú)立運(yùn)動(dòng)保持平衡,平衡車控制系統(tǒng)由CPU、陀螺儀、姿態(tài)傳感器、輪轂電機(jī)、電機(jī)驅(qū)動(dòng)和蓄電池六大部分組成。STM32F103芯片作為最常用的32位單片機(jī)芯片,其數(shù)據(jù)處理速度和邏輯運(yùn)算能力完全能夠勝任平衡車控制算法的要求。
關(guān)鍵詞:STM32單片機(jī);平衡車;PID算法;陀螺儀
中圖分類號(hào):TN919.6文獻(xiàn)標(biāo)識(shí)碼:A
雙輪平衡車控制系統(tǒng)是一個(gè)集速度信息采集、姿態(tài)信息分析并加以處理控制的復(fù)雜系統(tǒng),在達(dá)到車體動(dòng)態(tài)平衡的同時(shí),還能按照使用者的實(shí)時(shí)操作完成相應(yīng)的動(dòng)作,因此核心處理器應(yīng)具有較強(qiáng)的數(shù)據(jù)處理能力和較快的響應(yīng)速度。
1 平衡算法
平衡車最基本的功能是能夠?qū)崿F(xiàn)運(yùn)動(dòng)的動(dòng)態(tài)平衡,也就是在啟動(dòng)后保持直立不倒,平衡車用負(fù)反饋實(shí)現(xiàn)對(duì)車體的平衡控制,當(dāng)車身在重力方向上發(fā)生角度偏移,陀螺儀傳感器能測(cè)出運(yùn)動(dòng)的角速度,通過(guò)積分算法將得到車體在豎直方向偏移的角度。本算法擬使用MPU6050陀螺儀傳感器。MPU6050是整合性6軸處理器,結(jié)合陀螺儀與加速度計(jì),相對(duì)于其他方案,完美解決了陀螺儀與加速器存在時(shí)間差的問(wèn)題。該單片機(jī)系統(tǒng)是數(shù)字系統(tǒng),因此采用離散型PID算法,PID算法是平衡車算法的核心算法,也是目前已知的連續(xù)系統(tǒng)中技術(shù)最成熟、調(diào)節(jié)效果最好、使用場(chǎng)合最廣的精準(zhǔn)控制算法之一。實(shí)際運(yùn)用中使用靈活,PID算法將給定值與返回值的偏差按比例、積分、微分通過(guò)各自的調(diào)節(jié)系數(shù)進(jìn)行函數(shù)運(yùn)算。PID算法的另一個(gè)優(yōu)點(diǎn)是允許比例、積分、微分各自調(diào)節(jié)系數(shù)為零。每個(gè)系統(tǒng)的電機(jī)參數(shù),驅(qū)動(dòng)電路都不同,因此PID調(diào)節(jié)系數(shù)也不同,對(duì)于平衡車系統(tǒng),陀螺儀水平安裝,給定值為陀螺儀的角度初始值,考慮安裝偏差設(shè)置補(bǔ)償角。程序:
int PID(float A)
{
Kie=Kie+(A+K);
Kde=(A+K)Kde;
pwm_num=Kp*(A+K)Kd*(Kde)+ki*(Kie);
pwm=(int)pwm_num;
return pwm;
}
2 速度控制算法
速度控制分為前進(jìn)速度控制和轉(zhuǎn)向速度控制,左右兩輪速度差的大小和傾斜角成正比,當(dāng)傾斜角增大,相應(yīng)的速度差也應(yīng)該越大。因?yàn)橹绷⑵胶饪刂浦邢到y(tǒng)把速度控制和轉(zhuǎn)向控制當(dāng)作干擾,所以調(diào)節(jié)起伏過(guò)大將嚴(yán)重影響平衡。但平衡車勻速向前運(yùn)動(dòng)時(shí)不能直接利用傾斜角來(lái)判斷速度大小,因?yàn)榇藭r(shí)不能得出平衡車的偏移角。在平衡車控制系統(tǒng)中速度控制以及轉(zhuǎn)向控制屬于平衡車控制系統(tǒng)中的輔助控制。平衡車傾斜時(shí),如圖重力正交分解成軸向力F1和向前力F2,輪轂電機(jī)在地面以一定的速度v滾動(dòng)時(shí)產(chǎn)生于F2方向相反大小相等的摩擦力f,達(dá)到新的動(dòng)態(tài)平衡。輪轂電機(jī)帶有霍爾編碼器,STM32單片機(jī)只需采集編碼器即可隨時(shí)獲取車輪的轉(zhuǎn)速,車輪直徑固定不變,可以求出車體速度,再將速度按速度比例加在平衡控制的期望值中。
3 電機(jī)驅(qū)動(dòng)
運(yùn)動(dòng)過(guò)程中,STM32平衡車的輪轂電機(jī)獨(dú)立運(yùn)動(dòng),需要較快的響應(yīng)速度,在慣性環(huán)節(jié)結(jié)束前動(dòng)作,所以供電電源是影響整體性能的關(guān)鍵之一,較好的供電方案采用大功率MOS管,以橋式結(jié)構(gòu)驅(qū)動(dòng),同時(shí)注意主控電路與驅(qū)動(dòng)電路的隔離。
4 結(jié)論
STM32平衡車控制算法在實(shí)際工程運(yùn)用中具有良好的適應(yīng)性,針對(duì)不同的產(chǎn)品只需修改其中相應(yīng)的參數(shù),就能達(dá)到精確控制的效果。結(jié)合STM32庫(kù)函數(shù)編程方式,能極大縮短產(chǎn)品的研發(fā)周期和快速檢修故障。并且STM32F103單片機(jī)價(jià)格低廉,性價(jià)比高。適合產(chǎn)品大范圍推廣和生產(chǎn)。
參考文獻(xiàn):
[1]孫軍,萬(wàn)明倫,呂博,等.平衡車機(jī)電控制系統(tǒng)建模與仿真[J].機(jī)械與電子, 2010,2010(10):3437.
[2]張志強(qiáng).基于STM32的雙輪平衡車[J].電子設(shè)計(jì)工程,2011, 19(13):103106.
[3]張吉昌,程凱,鄭榮兒.單軸雙輪自平衡車姿態(tài)檢測(cè)方案設(shè)計(jì)[J].中國(guó)海洋大學(xué)學(xué)報(bào)(自然科學(xué)版),2009(s1):467470.
[4]賴義漢,王凱.基于MPU6050的雙輪平衡車控制系統(tǒng)設(shè)計(jì)[J].河南工程學(xué)院學(xué)報(bào)(自然科學(xué)版),2014,26(1):5357.
[5]劉二林,姜香菊.基于卡爾曼濾波的兩輪自平衡車姿態(tài)檢測(cè)[J].自動(dòng)化與儀器儀表,2015(2):5254.
[6]胡建,顏鋼鋒.基于自抗擾控制算法的兩輪自平衡車分析[J].機(jī)電工程,2014, 31(2):159164.