孫長偉 唐斌 王志強
摘 要:基于卡爾曼濾波算法自平衡智能車系統設計,以STM32F103為控制核心,采用卡爾曼濾波算法和PID算法。該設計提高了平衡車傾角的計算精度和平衡車的穩定性。通過系統調試和分析,獲得了適合平衡車運行的各項系統參數,運行結果表明該平衡車運動平穩,適應性強。
關鍵詞:STM32F103;卡爾曼濾波;PID 控制算法;智能平衡車;控制系統
引言
兩輪自平衡小車是一個綜合復雜的系統,集動態決策和規劃、環境感知、行為控制和執行等多種功能于一體[1]。STM32單片機作為控制單元,陀螺儀、加速度計、光電編碼器和電流檢測等傳感器采集相關的數據信息[2],基于卡爾曼濾波算法和PID算法,實現平衡車的自動直立與快速運動[3]。
1 平衡智能車原理
平衡智能車的動力輸出來自車身底部的兩路直流電機與車輪之間運動,根據電機之間不同轉速引起車輪之間不同轉速控制智能車的直立不同、速度不同、方向不同。智能車車體的控制任務可分解成三個基本任務:
(1)控制車模平衡:電機的正向反向運動控制保持車模的直立平衡狀態;
(2)控制車模速度:車模的傾角的調節控制車模速度,實質通過控制電機的轉速來實現車輪速度的控制。
(3)控制車模方向:通過控制兩個電機之間的轉速差控制車模轉向 [4]。
智能車控制采用的核心算法是PID算法。平衡小車速度控制系統由負反饋PD 直立控制器和正反饋PI 速度控制器組成[5]。
在直立控制中,只要一產生角度偏差信號,在負反饋的作用下角度偏差最終被消除,小車保持直立狀態;在速度控制中,一旦檢測到角度偏差信號,即明白小車要產生速度的變化,在正反饋的速度控制器作用下,速度會朝著期望方向上逐漸增加,以達到速度控制的目的。
2 系統總體方案設計
系統由五部分組成:中央處理部分,電源管理部分,運動控制部分,數據感知部分,人機交互部分。
中央處理部分,作為整個系統的核心部分,主要功能是數據運算與運動控制,對其他部分進行實時工作監測,采集系統運行的必要數據,反饋系統整個運動控制。電源管理部分,作為整個系統的能量來源部分,主要功能是提供電源與電池保護,系統中不同器件存在多種不同電壓要求,需要不同方式的電源輸出模塊。運動控制部分,主要功能為提供智能車運動動力,主要有直流電機與電機驅動模塊多個子部分組成。數據感知部分,作為系統的所有數據來源渠道,其提供了車體姿態的角度,運動過程車身速度與目標物體空間距離等多個系統運行起來不可缺少的數據。人機交互部分,由于平衡智能車設計與使用過程,存在相當多的數據調節,利用本部分實現與人的良好的交互功能,本部分包含液晶顯示模塊,按鍵輸入模塊,無線通信模塊等等。
3 系統硬件結構設計
3.1 單片機最小系統
控制系統選用 STM32單片機為控制器,該控制器是具備并行運算功能,適用于交復雜環境下的系統控制[6]。
3.2姿態采集模塊
姿態采集模塊包含加速度傳感器和角速度傳感器兩部分。加速度傳感器MMA7260,其外圍電路如圖1所示。MMA7260是一款基于重力分量換算原理的低功耗高靈敏度的加速度傳感器,同時輸出x,y,z三個方向的加速度值,用于測量平衡車的運動姿態和方向。角速度傳感器,采用陀螺儀ENC-03,其輸出的模擬電壓信號與角速度成正比,將該角速度對時間積分便得到用于測量平衡車相對于靈敏軸的傾角。
3.3電機驅動模塊
電機驅動電路為H橋式電機驅動電路,該電路包括4個三極管和一個電機。增加總線驅動芯片74LVC245來提高信號驅動能力,隔離三極管和單片機,保護單片機芯片。電機驅動隔離電路電路如圖2所示。防止電機瞬間換向產生峰值電壓進而損壞其它芯片,在電機輸出端增加壓敏電阻,考慮到死區時間與高邊導通電壓使用IR2104作為全橋驅動芯片。HH橋式電機驅動電路如圖3所示。
4 系統軟件結構設計
4.1 數據卡爾曼濾波
數據濾波是一種去除噪聲的非線性方法,該方法可以還原真實檢測值的數據。卡爾曼濾波技術是數字濾波技術的一種,在測量方差己知的前提下從存在噪聲的數據中估算系統的狀態。在智能車姿態檢測系統中,加速度傳感器測量車體靜態時的角度,但該傳感器對震動較敏感,并受動態加速度的影響較大[7];角速度傳感器用于檢測車體傾斜角的變化,通過對測量的角速率累加計算傾斜角,但存在累積漂移誤差。通過卡爾曼濾波算法對加速度傳感器和角速度傳感器的輸出值進行有效的融合,使加速傳感器與角速度傳感器得到的值更接近真實值。
4.2 雙閉環PID控制算法
加速度計用來檢測小車是否傾斜和傾斜程度,一旦傾斜,由陀螺儀觸發控制電機啟動,再由加速度計控制小車是否回正,并停止電機驅動[8-10]。
通過PID控制算法對車體角速度、角度、車體速度和車體位置等參數值進行整合,利用輸出的PWM信號驅動電機,產生相應的力矩,以此保持車體的動態平衡。采用雙閉環 PID控制算法對平衡車進行控制,其原理如下:
(1)位置閉環控制實現靜態自平衡。
車體的位姿信息通過兩個姿態傳感器獲得,將融合后的位姿信息發送給主控芯片從而實現機器人位置閉環控制。位置閉環可以實現車體在平衡點處無外界干擾時的靜態自平衡。
(2)速度閉環控制實現動態自平衡。
用于驅動電機的PWM信號,通過軟件算法的處理,獲得車輪的速度和位置信息,實現速度閉環控制。此環可在沒有編碼盤等傳感器提供硬件支持的前提下,通過軟件編碼算法獲取機器人的速度信息,從而實現閉環控制。速度閉環主要功能在于實現機器人在外界干擾狀態時的動態自平衡。
4.3 總體程序設計
本系統軟件設計首先對各個模塊進行初始化設置,對人機交互界面進行初始化設計。然后獲取各傳感器數值,其中加速度計傳感器信號轉換為對應的角度值;接著將角度傳感器采集的數值進行優化,將兩個數值調整到同樣規格,通過卡爾曼濾波算法將信號進行濾波及角度融合。通過PID算法后的PWM波控制電機的輸出,從而保持車體平衡。
5 結語
本文基于卡爾曼濾波算法和PID 算法實現兩輪平衡車控制系統的設計。系統設計采用模塊化設計,簡化了系統設計,統使用模塊化的設計,簡化了系統的設計,各模塊之間既可獨立又可協調運行,既減少了系統的響應時間又增加了系統的可靠性。該設計具有穩定性能良好,對地形適應能力強,可以在復雜環境工作等優點。本設計采用的技術在避障小車、機器人和無人駕駛汽車等領域中,具有較高的應用價值。
參考文獻
[1] 何雅靜,屈勝利,孟祥忠等.兩輪不平衡小車變結構控制抖振與魯棒性研究[J].電子技術應用,2011(5):130-133.
[2] 周牡丹,康愷,蔡普郎等.兩輪自平衡車控制系統的設計與實現[J].自動化技術與應用,2014(10):4-8.
[3] 高正中,龔群英,宋森森.基于STM32的智能平衡車控制系統設計[J].現代電子技術,2016(14):46-48.
[4] 王軍年,王慶年,宋傳學等.四輪驅動電動汽車差動助力轉向系統聯合仿真與試驗[J].農業機械學報,2010(6):7-14,30.
[5] 李亞文,常亮.一種基于ARM-STM32的兩輪自平衡小車的設計與實現[J].計算機與數字工程,2017(7):1426-1429,1436.
[6] 張亞宜,米琦,高倩.基于FPGA的FFT處理器設計[J].中國民航大學學報,2007(2):12-15.
[7] 賴義漢,王凱.基于MPU6050的雙輪平衡車控制系統設計[J].河南工程學院學報(自然科學版)2014(1):53-57.
[8] 楊程引,程菊花,陳友榮等.兩輪直立自平衡車的設計[J].浙江樹人大學學報(自然科學版),2013(04):1-7.
[9] 朱恩亮.PID控制算法在智能滅火機器人中的應用[J].鹽城工學院學報(自然科學版),2012(03):73-78.
[10] 石浩然.兩輪智能平衡車控制系統的設計與實現[D].長安大學,2017.
作者簡介:孫長偉,女,(1982-),碩士研究生。主要研究方向為信號處理。