王素青, 熊維堂
(南京航空航天大學(xué) 金城學(xué)院,江蘇 南京 211156)
?
基于STM32的兩輪自平衡小車系統(tǒng)設(shè)計(jì)
王素青, 熊維堂
(南京航空航天大學(xué) 金城學(xué)院,江蘇 南京 211156)
針對(duì)小車控制系統(tǒng)的復(fù)雜性,設(shè)計(jì)一個(gè)以STM32F103C8T6微處理器為主控制器,以MPU-6050傳感器為姿態(tài)檢測(cè)部件的自平衡小車系統(tǒng)。由于陀螺儀和加速度計(jì)在測(cè)量時(shí)存在噪聲干擾和隨機(jī)漂移誤差,采用卡爾曼濾波算法對(duì)陀螺儀和加速度計(jì)數(shù)據(jù)進(jìn)行融合,補(bǔ)償傳感器測(cè)量誤差,計(jì)算出小車傾角與角速度的最優(yōu)估計(jì)值。并以最優(yōu)姿態(tài)角和小車速度為反饋量構(gòu)成雙閉環(huán)控制,利用PID控制算法實(shí)現(xiàn)小車系統(tǒng)的自平衡控制。通過(guò)系統(tǒng)的軟硬件設(shè)計(jì)、調(diào)試及運(yùn)行情況,證明自平衡小車能夠穩(wěn)定地實(shí)現(xiàn)自平衡控制。
兩輪自平衡小車; STM32; MPU-6050傳感器; 卡爾曼濾波; PID控制
兩輪自平衡小車系統(tǒng)類似于倒立擺系統(tǒng),具有多變量、非線性、強(qiáng)耦合等特點(diǎn),是研究各種控制方法的理想平臺(tái)[1]。兩輪自平衡小車系統(tǒng)的控制過(guò)程是微控制器對(duì)姿態(tài)檢測(cè)傳感器和編碼器等采集的數(shù)據(jù)進(jìn)行分析處理,計(jì)算出使系統(tǒng)恢復(fù)平衡的實(shí)時(shí)控制量,從而驅(qū)動(dòng)電機(jī)實(shí)現(xiàn)系統(tǒng)的動(dòng)態(tài)平衡。要控制小車系統(tǒng)的精度及穩(wěn)定性其關(guān)鍵是小車姿態(tài)信息采集的準(zhǔn)確性和實(shí)時(shí)性,以及小車速度測(cè)量的準(zhǔn)確性和實(shí)時(shí)性。針對(duì)自平衡小車系統(tǒng)的復(fù)雜性,國(guó)內(nèi)外很多學(xué)者對(duì)其控制方法進(jìn)行了大量的研究,如狀態(tài)反饋控制器(LQR)控制法[2]、分層模糊控制法、卡爾曼濾波算法[3]等。針對(duì)小車系統(tǒng)的復(fù)雜性,本文提出了將卡爾曼濾波算法和雙閉環(huán)PID控制算法相結(jié)合的方法,既利用卡爾曼濾波算法對(duì)MPU-6050傳感器采集的傾斜角度和角速度數(shù)據(jù)進(jìn)行融合,得到小車平衡姿態(tài)的最優(yōu)估計(jì)值,又利用以姿態(tài)信息、速度為反饋控制量構(gòu)成雙閉環(huán)PID控制算法,再結(jié)合采用高性能STM32F103C8T6作為主控制器,從而提高兩輪小車系統(tǒng)穩(wěn)定性和抗干擾能力。
系統(tǒng)的硬件電路結(jié)構(gòu)框圖如圖1所示,其硬件電路主要由主控制器模塊、姿態(tài)檢測(cè)模塊、直流電機(jī)驅(qū)動(dòng)模塊、編碼器及電源模塊等幾部分構(gòu)成。電源模塊負(fù)責(zé)系統(tǒng)各個(gè)模塊控制電路的電源。主控制器模塊是系統(tǒng)的控制核心,用來(lái)接收傳感器模塊采集的數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行處理及運(yùn)算,將控制信號(hào)輸出給直流電機(jī)驅(qū)動(dòng)模塊。姿態(tài)檢測(cè)模塊實(shí)時(shí)地對(duì)小車角速度及角加速度進(jìn)行采集。直流電機(jī)驅(qū)動(dòng)模塊負(fù)責(zé)將主控制器輸出的PWM信號(hào)轉(zhuǎn)換為控制信號(hào)驅(qū)動(dòng)2個(gè)直流電機(jī)的轉(zhuǎn)速和方向。編碼器負(fù)責(zé)測(cè)量直流電機(jī)的速度和方向,將測(cè)量數(shù)據(jù)反饋給主控制器,從而形成閉環(huán)控制。
圖1 系統(tǒng)的硬件電路結(jié)構(gòu)框圖
1.1 電源模塊
本系統(tǒng)選用的直流電機(jī)工作電壓為12 V,因此采用三節(jié)3.7 V可充電電池構(gòu)成12 V直流電源。但STM32主控制器和MPU-6050需要的是3.3 V直流電源,因此選用LM2596S DC-DC降壓模塊得到3.3 V電源。
1.2 主控制器模塊
本系統(tǒng)選用意法半導(dǎo)體公司的STM32F103C8T6作為主控制器,該控制器是一種基于Cortex-M3內(nèi)核的32 b CPU,最高工作頻率為72 MHz,片上集成32~512 kB的Flash存儲(chǔ)器,6~64 kB的SRAM存儲(chǔ)器。片上集成了SPI,I2C和USART等通信接口,方便對(duì)MPU-6050姿態(tài)檢測(cè)傳感器的數(shù)據(jù)進(jìn)行采集。含有7個(gè)定時(shí)器,可輸出多路PWM信號(hào)使得電機(jī)驅(qū)動(dòng)模塊獲得穩(wěn)定的PWM波形。
1.3 姿態(tài)檢測(cè)模塊
本系統(tǒng)中姿態(tài)檢測(cè)模塊選用的是美國(guó)InvenSense公司的MPU-6050,MPU-6050為全球首例整合性6軸運(yùn)動(dòng)處理器,整合了3軸陀螺儀和3軸加速度計(jì),能夠準(zhǔn)確的對(duì)小車的姿態(tài)進(jìn)行實(shí)時(shí)檢測(cè)[4]。該處理器的角速度感測(cè)范圍為±250、±500、±1 000與±2 000°/s,加速度感測(cè)范圍為±2 g、±4 g、±8 g與±16 g,加速度感測(cè)范圍可通過(guò)編程來(lái)控制[5]。MPU-6050可在不同電壓下工作,VDD供電電壓為(2.5±0.125) V、(3.0±0.15) V或(3.3±0.165) V,本系統(tǒng)中為MPU-6050提供的是3.3 V直流電源。MPU-6050模塊的電路如圖2所示,本系統(tǒng)中MPU-6050作為從機(jī)使用,使用SDA和SCL端口和主機(jī)STM32進(jìn)行通信,MPU-6050檢測(cè)的數(shù)據(jù)經(jīng)過(guò)內(nèi)置的16位AD轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,然后將16位數(shù)字量通過(guò)I2C總線接口發(fā)送給主機(jī)。
圖2 MPU-6050模塊的電路
1.4 電機(jī)驅(qū)動(dòng)模塊
本系統(tǒng)中直流電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì)采用ST公司的L298N組成的雙H橋電機(jī)驅(qū)動(dòng)電路,其電路如圖3所示。該模塊具有驅(qū)動(dòng)能力強(qiáng),發(fā)熱量低,抗干擾能力強(qiáng)等特點(diǎn)??梢酝瑫r(shí)驅(qū)動(dòng)2臺(tái)直流電機(jī),當(dāng)圖3中的使能端ENA和ENB使能后,從IN1、IN2輸入的PWM信號(hào)驅(qū)動(dòng)電機(jī)1的轉(zhuǎn)速和方向,從IN3、IN4輸入的PWM信號(hào)驅(qū)動(dòng)電機(jī)2的轉(zhuǎn)速和方向。
2.1 系統(tǒng)的總體流程設(shè)計(jì)
本系統(tǒng)的主程序流程圖如圖4所示,主要由初始化程序、中斷響應(yīng)程序、傳感器數(shù)據(jù)采集程序、卡爾曼濾波程序、車速及方向檢測(cè)程序、PID控制程序、直流電機(jī)PWM控制程序等幾部分組成。
系統(tǒng)啟動(dòng)后,首先進(jìn)行初始化,然后執(zhí)行中斷程序,判斷5 ms時(shí)間是否到,若時(shí)間到,則讀取MPU-6050傳感器采集的角度和角速度的數(shù)據(jù),然后利用卡爾曼濾波算法對(duì)讀取的數(shù)據(jù)進(jìn)行融合得到最優(yōu)估計(jì)值。同樣采用中斷的方式讀取編碼器的脈沖數(shù)從而得到直流電機(jī)的轉(zhuǎn)速以及方向。然后利用增量式PID控制算法分別對(duì)小車的角度和角速度、轉(zhuǎn)速進(jìn)行PID控制,調(diào)節(jié)PID參數(shù)即可改變PWM占空比,利用改變占空比的方法即可改變電機(jī)的速度,從而實(shí)現(xiàn)對(duì)電機(jī)速度和方向的控制[6]。
圖3 直流電機(jī)驅(qū)動(dòng)模塊的電路
圖4 系統(tǒng)的主程序流程圖
2.2 系統(tǒng)初始化程序
系統(tǒng)初始化程序主要包括:系統(tǒng)時(shí)鐘初始化、NVIC中斷初始化、定時(shí)器外部中斷初始化、通信(I2C)初始化、測(cè)速模塊初始化、MPU-6050初始化和電機(jī)PWM初始化等。
STM32的工作頻率為72 MHz或36 MHz,本系統(tǒng)對(duì)時(shí)鐘頻率的要求很苛刻,如果頻率過(guò)低,系統(tǒng)就會(huì)工作在不穩(wěn)定狀態(tài)下,系統(tǒng)產(chǎn)生的誤差會(huì)變大,又因系統(tǒng)使用的濾波方式是卡爾曼濾波,因此在時(shí)鐘初始化程序中需將時(shí)鐘頻率設(shè)置為72 MHz。
通信(I2C)初始化主要設(shè)置串口波特率為9 600 b/s,需設(shè)置中斷允許標(biāo)志位和模塊的工作模式。
2.3 卡爾曼濾波數(shù)據(jù)融合算法
2.3.1 卡爾曼濾波算法
陀螺儀動(dòng)態(tài)性能較好,可以提供瞬間的動(dòng)態(tài)角度變化,但存在輸出信號(hào)有偏差或漂移,經(jīng)過(guò)積分后形成逐漸增大的累積誤差,不適合單獨(dú)進(jìn)行長(zhǎng)時(shí)間的動(dòng)態(tài)角度測(cè)量。加速度計(jì)靜態(tài)性能較好,可以提供較為準(zhǔn)確的靜態(tài)角度值,但受重力加速度影響比較大,不適宜測(cè)量動(dòng)態(tài)系統(tǒng)的角度值[7]。由于自平衡小車系統(tǒng)需要在動(dòng)靜態(tài)情況下均能準(zhǔn)確的測(cè)量出小車的傾角,因此需要對(duì)陀螺儀和加速度計(jì)的采集數(shù)據(jù)進(jìn)行數(shù)據(jù)融合得到最優(yōu)值。本系統(tǒng)采用卡爾曼濾波算法對(duì)陀螺儀和加速度計(jì)的數(shù)據(jù)進(jìn)行融合。
卡爾曼濾波算法是以最小均方誤差為最佳估計(jì)準(zhǔn)則的遞歸數(shù)據(jù)處理算法,利用前一時(shí)刻的估計(jì)值和當(dāng)前時(shí)刻的測(cè)量值來(lái)更新對(duì)狀態(tài)變量的估計(jì),最終求出當(dāng)前時(shí)刻的最優(yōu)估計(jì)值。
2.3.2 卡爾曼濾波器設(shè)計(jì)
根據(jù)卡爾曼濾波原理,要估計(jì)k時(shí)刻的傾角,需要根據(jù)k-1時(shí)刻的傾角值來(lái)預(yù)測(cè)k時(shí)刻的傾角,并得到k時(shí)刻的高斯噪聲偏差。本系統(tǒng)中,陀螺儀測(cè)量的角速度作為預(yù)測(cè)值的控制量,加速度計(jì)測(cè)量的角度作為測(cè)量值,根據(jù)兩者的協(xié)方差不斷進(jìn)行遞歸算法直到估計(jì)出最優(yōu)傾角??柭鼮V波方程如下所示[8]:
X(k|k-1)=AX(k-1|k-1)+BU(k)
(1)
P(k|k-1)=AP(k-1|k-1)AT+Q
(2)
Kg(k)=P(k|k-1)HT/(HP(k|k-1)HT+R)
(3)
X(k|k)=X(k|k-1)+Kg(k)(Z(k)-
HX(k|k-1))
(4)
P(k|k)=(I-Kg(k)H)P(k|k-1)
(5)
因漂移噪聲和角度噪聲是相互獨(dú)立,則
cov(Angle,Q_bias)=0, cov(Q_bias,Angle)=0
式(4)為狀態(tài)估計(jì)方程,Z(k)=Accel為加速度計(jì)的角度測(cè)量值。
2.4 PID控制算法
控制算法的編寫是小車平衡控制的核心問(wèn)題,也是軟件編寫和程序調(diào)試中的關(guān)鍵技術(shù)。本系統(tǒng)中采用了常用的增量式PID控制算法。PID控制的原理是根據(jù)系統(tǒng)的設(shè)定值和測(cè)量值之間的偏差,對(duì)偏差進(jìn)行比例、積分、微分計(jì)算出控制量。系統(tǒng)采用雙閉環(huán)PID控制算法對(duì)小車系統(tǒng)進(jìn)行自平衡控制,其結(jié)構(gòu)框圖如圖5所示。對(duì)編碼器產(chǎn)生的脈沖轉(zhuǎn)換得到實(shí)時(shí)速度信息,以該信息作為反饋量實(shí)現(xiàn)速度閉環(huán)控制[11-12];以融合后的小車傾角最優(yōu)值作為反饋量實(shí)現(xiàn)小車姿態(tài)閉環(huán)控制。姿態(tài)閉環(huán)控制采用了PD控制器,利用卡爾曼濾波輸出的小車傾角和角速度的優(yōu)化值來(lái)計(jì)算電機(jī)PWM信號(hào)的占空比,表達(dá)式為:
(6)
速度閉環(huán)控制利用了P控制,對(duì)增量編碼器檢測(cè)的小車速度進(jìn)行比例控制,其輸出作為PWM信號(hào)占空比的增量值,表達(dá)式為:
ΔPWM=Ksp×speed
(7)
姿態(tài)閉環(huán)控制和速度閉環(huán)控制是相互影響的[13],將其融合后的由主控制器輸出給直流電機(jī)驅(qū)動(dòng)模塊的PWM信號(hào)為:
(8)
圖5 系統(tǒng)雙閉環(huán)PID控制算法框圖
2.5 電機(jī)控制策略
本小車系統(tǒng)使用的電機(jī)是小型12V直流電機(jī),其轉(zhuǎn)速是由施加給電機(jī)的電壓大小來(lái)決定,轉(zhuǎn)向是通過(guò)改變施加給電機(jī)電源的正負(fù)極性。電機(jī)驅(qū)動(dòng)模塊輸出兩路PWM信號(hào),使用過(guò)程中通過(guò)給其中一路占空比為零,另外一路不為零來(lái)控制電機(jī)的正反轉(zhuǎn)[14-15]。電機(jī)電壓的設(shè)定值不是直接用來(lái)控制電機(jī)的,而是將其轉(zhuǎn)化為PWM占空比,通過(guò)增大或減小PWM占空比的方法來(lái)實(shí)現(xiàn)電機(jī)的加減速控制。通過(guò)PID控制算法后的PWM信號(hào)是STM32控制器直接發(fā)送給直流電機(jī)驅(qū)動(dòng)模塊,從而控制直流電機(jī)的速度和方向。小車轉(zhuǎn)彎過(guò)程是通過(guò)控制兩個(gè)電機(jī)的速度差來(lái)實(shí)現(xiàn)的。
3.1 系統(tǒng)的硬件調(diào)試
程序下載后對(duì)小車系統(tǒng)各硬件模塊部分分別進(jìn)行測(cè)試,觀察小車動(dòng)作情況。若測(cè)試均能正常通過(guò),則表明系統(tǒng)硬件電路工作正常。調(diào)試時(shí),檢測(cè)到小車的角度為30.904 39°,小車電機(jī)轉(zhuǎn)速為-52.095 81。
3.2 系統(tǒng)的姿態(tài)檢測(cè)模塊調(diào)試
系統(tǒng)的姿態(tài)檢測(cè)模塊調(diào)試也是整個(gè)調(diào)試過(guò)程的重點(diǎn)和難點(diǎn)之一,其直接決定了小車能否平衡。
對(duì)陀螺儀及加速度計(jì)分別進(jìn)行調(diào)試,保證輸出信號(hào)的準(zhǔn)確性。在小車調(diào)試過(guò)程中,先使小車與地面行成135°、90°和45°的傾角,通過(guò)通信將姿態(tài)檢測(cè)傳感器測(cè)量的角度和角加速度數(shù)據(jù)顯示在計(jì)算機(jī)上,計(jì)算設(shè)定值與實(shí)際測(cè)量值之間的差值,來(lái)判斷是硬件電路還是軟件問(wèn)題,好及時(shí)調(diào)整。上電檢測(cè)到陀螺儀的數(shù)值為-0.061,角加速度的數(shù)值為34.562 85。
3.3 系統(tǒng)的PID控制參數(shù)整定
系統(tǒng)中采用雙閉環(huán)PID控制算法,其PID控制參數(shù)需要通過(guò)多次實(shí)驗(yàn)進(jìn)行試湊法進(jìn)行整定,整定出能使小車系統(tǒng)實(shí)現(xiàn)自平衡控制的最佳參數(shù)。
姿態(tài)閉環(huán)PID控制的調(diào)試過(guò)程:① 調(diào)整Kp值,讓小車慢慢的站起來(lái),但小車會(huì)振蕩;② 減小Kp值,改為原先的75%,再慢慢的把Kd值變大,當(dāng)小車可以平衡時(shí),Kd值停止增加。③ 調(diào)整上述的兩個(gè)數(shù)值Kp和Kd,將Kp值加大一點(diǎn),再把Kd值進(jìn)行微調(diào),最終調(diào)試得到當(dāng)Kp=5.35、Kd=0.85時(shí),能夠使小車在較快的時(shí)間內(nèi)達(dá)到穩(wěn)定平衡狀態(tài)。
采用同樣的方法對(duì)速度閉環(huán)PID控制參數(shù)進(jìn)行調(diào)試,調(diào)試得到當(dāng)Ksp=7.0時(shí),小車能夠快速穩(wěn)定的達(dá)到自平衡狀態(tài)。
3.4 系統(tǒng)的動(dòng)態(tài)調(diào)試
在小車自平衡過(guò)程中,若給小車一個(gè)外力來(lái)破壞小車的平衡,則小車要能迅速響應(yīng)這個(gè)變化,立即運(yùn)動(dòng)去減小傾角的變化,建立一個(gè)穩(wěn)定平衡狀態(tài)。開(kāi)始調(diào)試時(shí),能響應(yīng),但波動(dòng)較大,建立平衡的時(shí)間較長(zhǎng)。通過(guò)修正PID參數(shù),最終能使小車快速達(dá)到平衡狀態(tài)。
3.5 調(diào)試結(jié)果
小車平衡時(shí)效果圖如圖6所示。系統(tǒng)通電后,小車完全實(shí)現(xiàn)自平衡的時(shí)間為12 s,在普通水磨石地面上,平衡時(shí)傾角范圍約在±10o以內(nèi)。若給予一定外力干擾時(shí),小車在20 s內(nèi)能夠自動(dòng)調(diào)節(jié)實(shí)現(xiàn)自平衡狀態(tài)。
圖6 小車平衡時(shí)效果圖
本文設(shè)計(jì)了一個(gè)兩輪自平衡小車系統(tǒng),該系統(tǒng)基于STM32F103C8T6微處理器、采用卡爾曼濾波算法和雙閉環(huán)PID控制算法對(duì)小車進(jìn)行自平衡控制。實(shí)驗(yàn)測(cè)試結(jié)果證明,采用卡爾曼濾波算法能夠有效地消除陀螺儀和加速度計(jì)在測(cè)量過(guò)程中的噪聲干擾和隨機(jī)漂移誤差,準(zhǔn)確地計(jì)算出小車的姿態(tài)傾角。采用雙閉環(huán)PID控制算法能夠?qū)崟r(shí)的將傾角和速度的設(shè)定值與當(dāng)
前的傾角和速度值進(jìn)行比較,根據(jù)誤差信息進(jìn)行實(shí)時(shí)的閉環(huán)控制,從而使小車穩(wěn)定地達(dá)到平衡狀態(tài)。采用高性能的微處理器,使得卡爾曼濾波算法和PID控制算法能夠快速完成,提高了數(shù)據(jù)采集和控制的實(shí)時(shí)性,提高了系統(tǒng)的穩(wěn)定性和抗干擾能力。
[1] 季鵬飛,朱 燕. 基于STM32的兩輪自平衡小車控制系統(tǒng)設(shè)計(jì)[J]. 電子科技,2014,27(11):96-99.
[2] 武俊峰,孫 雷. 兩輪自平衡機(jī)器人的控制方法研究[J]. 哈爾濱理工大學(xué)學(xué)報(bào),2014,19(6):22-26.
[3] 劉二林,姜香菊. 基于卡爾曼濾波的兩輪自平衡車姿態(tài)檢測(cè)[J]. 自動(dòng)化與儀器儀表,2015(2):52-54.
[4] 盧秀和,李建波. 基于STM32的四旋翼姿態(tài)控制系統(tǒng)[J]. 計(jì)算機(jī)測(cè)量與控制,2014,22(3):761-763.
[5] 楊 莘,劉海濤. 基于STM32的兩輪自平衡遙控小車[J]. 數(shù)字技術(shù)與應(yīng)用,2014,(5):151-152.
[6] 孟 騰,章 政. 基于陀螺儀與加速度計(jì)的二輪自平衡控制系統(tǒng)設(shè)計(jì)[J]. 傳感器與微系統(tǒng),2014,33(10):61-64.
[7] 蔣緯洋,鄧 遲,肖曉萍. 兩輪自平衡小車系統(tǒng)制作研究[J]. 國(guó)外電子測(cè)量技術(shù),2012,31(6):76-79.
[8] Liu Kun, Ming Bai, Yuhua Ni. Two-wheel self-balanced carbased on Kalman filter-ing and PID algorithm[C]∥Industrial Engi-neering and Engineering Management (IE&EM) 2011 IEEE 18thInternational Con-ference, 2011, Part 1 : 281-285.
[9] 張團(tuán)善,何 穎. 卡爾曼濾波在兩輪自平衡代步車姿態(tài)檢測(cè)中的應(yīng)用[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2014(5):33-35.
[10] 楊凌霄,李曉陽(yáng). 基于卡爾曼濾波的兩輪自平衡車姿態(tài)檢測(cè)方法[J]. 計(jì)算機(jī)仿真,2014,31(6):406-409.
[11] 魏 文,段晨東. 基于數(shù)據(jù)融合的兩輪自平衡小車控制系統(tǒng)設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用,2013,39(5):79-81.
[12] 馬思遠(yuǎn),魯庭勇,張麗君. 兩輪自平衡車運(yùn)動(dòng)姿態(tài)的測(cè)量和控制[J]. 測(cè)控技術(shù),2015,34(4):71-73.
[13] 梁光勝,杜夢(mèng)楠. 基于互補(bǔ)濾波的兩輪自平衡車姿態(tài)控制[J]. 測(cè)控技術(shù),2015,34(5):72-74.
[14] 柯國(guó)松,陳 陽(yáng),許志文. 兩輪自平衡小車的研究與實(shí)現(xiàn)[J]. 工業(yè)控制計(jì)算機(jī),2014,27(11):44-46.
[15] 周牡丹,康 愷,蔡普郎,等. 兩輪自平衡車控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 自動(dòng)化技術(shù)與應(yīng)用,2014,33(10):4-8.
The Design of the Two-wheel Self-balancing Vehicle System Based on STM32
WANGSu-qing,XIONGWei-tang
(Jincheng College, Nanjing University of Aeronautics and Astronautics, Nanjing 211156, China)
The two-wheel self-balancing vehicle system is a system which is similar to an inverted pendulum, and holds multivariable, nonlinear, strong coupling characteristics. For the complexity of the vehicle control system, we designed a self-balancing vehicle system by using STM32F103C8T6 microprocessor as the main controller, and MPU-6050 sensor as the attitude detection unit. Because gyroscope and accelerometer exist measurement noise and random drift error, Kalman filter algorithm is used to realize data fusion of the gyroscope and the accelerometer. In this way the sensor measurement error is compensated and the best estimates of the vehicle inclination and angular velocity are obtained. A double closed loop control is established with the feedback of optimal attitude angle and vehicle speed. PID control is used to achieve self-balancing control of the vehicle system. The hardware and software are also designed. By commissioning and operation the self-balancing vehicle can achieve stable self-balancing control.
two-wheel self-balancing vehicle; STM32; MPU-6050 sensor; Kalman filter; PID control
2015-09-10
王素青(1976—),女,江蘇鹽城人,碩士,講師,主要從事網(wǎng)絡(luò)控制系統(tǒng)方面的研究。
Tel.:15335198016; E-mail: wsq0214@nuaa.edu.cn
TP 273
A
1006-7167(2016)05-0146-05