基于模糊PID的兩輪自平衡代步小車的設計*
*基金項目:1. 企業信息化與物聯網測控技術四川省院士(專家)工作站基金項目(2016WZY201);2.四川省教育廳重點科研項目(16ZA0258);3.2017年教育部產學合作協同育人項目(201702109051)
本文引用地址:http://www.ex-cimer.com/article/202302/443610.htm0 引言
兩輪自平衡代步小車作為一個新興的行業,近年來在我國迎來爆炸式增長,其行業年產值已超過了100 億元,生產廠家也已超過了300 家[1]。與其他代步工具相比,兩輪自平衡代步小車具有噪音小、操作方便簡單、低碳環保等優點[2]。這種新穎的個人可移動代步工具已成功地應用于城市車站、廣場、購物中心等場所,起著城市短途代步、安保巡邏、休閑娛樂等作用[3]。
兩輪自平衡代步小車集姿態信息感知、電機驅動、動態平衡控制于一體。其設計難點在于車體姿態信息的準確感知與自平衡控制。車體姿態信息的感知可通過陀螺儀、加速度等傳感器來實時采集,再通過互補濾波[4]、卡爾曼濾波[5]等方式能很好地獲得準確的姿態信息。而自平衡控制現有傳統PID、LQR、人工神經網絡等控制方式。由于傳統PID(比例、積分、微分控制)的參數固定,無法進行自行修正,缺乏靈活性與應變性。而兩輪自平衡代步小車是一個非線性、多階次、不穩定的系統,采用傳統PID 就難以保證控制的準確性、穩定性。LQR(Linear Quadratic Regulator,線性二次型調節器)利用系統的狀態方程與數學模型,由于兩輪自平衡代步小車數學模型過于理想化,與實際所需相差較遠,導致LQR 參數不準確,不能達到所需的控制效果[6]。人工神經網絡是一種仿生物神經傳導特性的控制,但其算法過于復雜,需占用微處理器大量的系統資源而影響微處理器的整體性能,在實際應用中也有很大難度[7]。
由于上述自平衡控制方式均存在某些缺陷與不足,需尋求一種全新的自平衡控制方式,而模糊控制魯棒性強,且專門針對于非線性、不穩定的復雜系統,其算法也完全不依賴于系統的數學模型、狀態空間方程等[8]。因此將模糊控制與傳統PID 有機結合起來,構成模糊PID 來實現兩輪自平衡代步小車的自平衡控制。
1 系統工作原理
1.1 兩輪自平衡小車
兩輪自平衡小車為了實現自平衡,必須使得其整個狀態維持在平衡態,如圖1 所示。當車體傾斜角θ 為0 時,其重心恰好落在兩個車輪的軸線上,此時系統便處于自平衡點上。若這時θ 對時間的高階導數全為0 且外界沒有對系統有擾動的情況下,小車將會一直維持著這穩定的平衡態。事實上這平衡態是不穩定的,若外界有很小很小的擾動,系統的平衡態就會被破壞。只有加以控制,否則整個狀態還會發散,更不會自行恢復到平衡態。因此必須使系統的各個參數一直維持在平衡態,或者在平衡態附近波動[9]。下面對兩輪自平衡小車的運動狀態分三類情況進行闡述。
圖1 兩輪自平衡小車自平衡示意圖
1)靜止狀態。車體重心恰好垂直落在兩個電機軸線上,此時小車處于平衡態,無需做任何控制。
2)前傾狀態。車體向前傾斜,其重心向前偏離車軸線,此時若要恢復到平衡態,必須使車輪向前加速運動,使重心重新回到車軸線,系統保持平衡。
3)后仰狀態。車體向后傾斜,其重心向后偏離車軸線,此時若要恢復到平衡態,與前傾狀態相反,必須使車輪向后加速運動,使重心重新回到車軸線。
在實際運行中,兩輪自平衡小車的工作狀態始終在這三類狀態中變換。平衡控制就是通過姿態傳感器實時監測車體的傾斜角度,一旦發現傾角偏離了平衡點,即車體的重心偏離了車軸線,微處理器就會自動控制驅動電機轉動方向與速度,以向前或向后、加速或減速使車體再次恢復到平衡點上。并且這個過程一直持續著,系統才能保持動態平衡。
圖3 兩輪自平衡小車系統設計圖
1.2 模糊PID控制
模糊PID 控制是將模糊技術與傳統PID 控制有機結合起來,以達到有效的控制精度。當姿態數據偏差較大時采用模糊控制,響應速度快、動態性能高;當姿態數據偏差較小時采用傳統PID 控制,靜態性能高,這樣才能滿足系統的控制精度[10]。因此模糊PID 控制比單獨的模糊控制和單獨的傳統PID 控制都有更好的控制效果與控制精度。
2 系統設計
兩輪自平衡代步小車由兩輪自平衡小車與遙控器構成,二者之間通過LoRa (Long Range Radio,遠距離無線電) 無線通信進行數據交換,如圖2 所示。兩輪自平衡小車通過陀螺儀、加速度計實時感知運動姿態信息,中央微處理器根據姿態信息控制兩個獨立的步進電機的方向與轉速,以實現車體的平衡控制。同時,在不平衡或突然加速、減速時,通過語音發預警信號,以友情提醒使用人注意安全;而在勻速行駛時,語音可提示當前時速或播放使用人喜歡的音樂、評書、小品等節目。再者,可把當前的姿態信息通過LoRa 無線傳輸給遙控器。此外,也可通過LoRa 無線接收遙控器發來的控制指令。因此兩輪自平衡小車由中央微處理器、陀螺儀、加速度計、步進電機、LoRa 通信、語音播報等模塊等構成,如圖3 所示。而遙控器可通過操作桿遠程無線控制兩輪自平衡小車的方向與轉速,同時有LED 燈顯示兩輪自平衡小車的運行狀態。
3.2 LoRa通信模塊
LoRa 是一種基于擴頻技術的低功耗、遠距離無線通信方式,其特點是在同樣的功耗條件下比其他無線方式傳播的距離更遠。采用SZ15-01 模塊,其工作頻段為(470~510)MHz,可實現數據透明傳輸,具有超高接收靈敏度,波特率為1 200~115 200 bit/s[12]。其電路設計如圖5 所示。
3.3 語音播報模塊
語音播報模塊不僅具有播放音樂、評書、小品等使用人心情愉快,而且還具有若遇到不平衡或突然加速、減速時,友情語音提醒讓使用人多注意安全。語音模塊采用MX6100。該模塊嵌入了串口的MP3 芯片,集成了MP3、WAV 的硬解碼。通過簡單的串口指令即可完成播放指定的語音文件,穩定可靠。該模塊支持比特率11172-3 和ISO13813-3 layer3 音頻解碼,支持Normal、Jazz、Classic、Pop、Rock 等音效,24 位DAC輸出,支持FAT16、FAT32 文件系統與32 G的TF/SD 卡;30 級音量可調[13],其電路設計如圖6 所示。
3.4 中央處理器
中央微處理器整個系統的最核心部件,負責讀取陀螺儀、加速度傳感器的姿態數據,然后進行匯總、分析與處理,并控制步進電機按所需要的方式平穩轉動。同時把自平衡小車的當前運行姿態數據通過LoRa 方式發送給遙控器,讓遙控器及時知曉自平衡小車的當前的運行狀態。此外,也通過LoRa 方式接收遙控器發來的控制指令及相關數據。因此需要功能強大的中央微處理器,為此采用STM32F103。該芯片使用高性能的32位ARM/Cortex M3 內核, 內置20KB SRAM、128KB Flash,含有2 個12bit 的A/DC、3 個通用16bit 定時器和多種串行接口,如I2C、SPI 與USART 等接口[14]。STM32F103 外接了實時時鐘芯片SZ2058 以及驅動步進電機,其電路設計如圖7 所示。
4 程序設計
4.1 運動姿態檢測程序
運動姿態檢測采用CruizCore R1370P 集成傳感器,其程序部分代碼如下:
void Attitude_Data(void)
{ X_ACCEL=Get_Data(ACCEL_XOUT);
Y_ACCEL=Get_Data(ACCEL_YOUT);
Z_ACC EL=Get_Data(ACCEL_ZOUT);
X_GYROS=Get_Data(GYROS_XOUT);
Y_GYROS=Get_Data(GYROS_YOUT);
Z_GYROS=Get_Data(GYROS_ZOUT);
......
}
4.2 卡爾曼濾波程序
卡爾曼濾波對陀螺儀、加速度采集的數據進行深度融合、優化處理,其程序部分代碼如下:
void Kalman_Filter(void)
{
rate=(data_str[0]&0xFF)|((data_str[1]<<8)&0xFF00);
a n g l e = ( d a t a _ s t r [ 2 ] & 0 x F F ) | ( ( d a t a _
str[3]<<8)&0xFF00);
x _ a c c = ( d a t a _ s t r [ 4 ] & 0 x F F ) | ( ( d a t a _
str[5]<<8)&0xFF00);
y _ a c c = ( d a t a _ s t r [ 6 ] & 0 x F F ) | ( ( d a t a _
str[7]<<8)&0xFF00);
z _ a c c = ( d a t a _ s t r [ 8 ] & 0 x F F ) | ( ( d a t a _
str[9]<<8)&0xFF00);
sum=data_str[0]+data_str[1]+data_str[2]+data_
str[3]+
data_str[4]+data_str[5]+data_str[6]+data_str[7];
gRate=rate/100.0;
gAngle=angle/100.0;
gX_accel=x_acc;
gY_accel=y_acc;
gZ_accel=z_acc;
......
}
4.3 語音模塊程序
語音模塊可友情提示和播放音樂等節目,程序部分代碼如下:
void Voice(void)
{Open_FileName(&File_Name)
{ for(j=0,i=0;File_Name[j];j++,i++)
{ if(File_Name[j]==’’)
{File_Name[i++]=File_Name[j];
File_Name[i]=’’;
}
wait(5);
......
}
4.4 LoRa通信程序
LoRa 通信程序部分代碼如下:
void LoRa_Send_data(void)
{ unsigned char sum = 0;
sum += Send_Byte1(0x88);
sum += Send_Byte1(4);
sum += Send_Byte1(BYTE0(Left_value));
sum += Send_Byte1(BYTE1(Left_value));
sum += Send_Byte1(BYTE2(Right_value));
sum += Send_Byte1(BYTE3(Right_value));
Send_Byte_1(sum);
......
}
5 測試數據
5.1 平緩路面續航距離測試
當電池充滿電后,由4 名體質量為50 kg、55 kg、60 kg、65 kg 的人員分別騎行自平衡小車在同一條相對平緩路面進行續航距離測試。當蓄電池電壓下降到設定閾值并蜂鳴器報警時,停止測試。測試數據如表1 所示。
表1 平緩路面續航距離測試數據
5.2 坡度路面續航距離測試
當電池充滿電后,同樣由上述4 名人員分別騎行自平衡小車在大約15° 的坡度路面進行續航距離測試,測試要求與5.1 一樣。測試數據如表2 所示。
表2 約15°坡度路面續航距離測試數據
5.3 陀螺儀角度數據
當自平衡代步小車處于駕駛狀態時,Cruiz CoreR1370P輸出的角度數據如圖8 所示。
圖8 Cruiz Core R1370P輸出的角度數據
6 實物圖片
遙控器實物如圖9 所示。
圖9 遙控器實物圖
基于模糊PID 的兩輪自平衡代步小車實物如圖10所示。
圖10 基于模糊PID的兩輪自平衡代步小車實物圖
7 結束語
基于模糊PID 的兩輪自平衡代步小車采用了陀螺儀、加速度計、ARM微處理器、語音播報、步進電機控制、LoRa 通信等多種物聯網技術,具有平衡穩定、續航距離遠、語音預警、遠程遙控等特點。
參考文獻:
[1] 薛艷.代步出行唯選江昕—上海平衡車展江昕華麗出擊[J].電動自行車,2016(12):20-21.
[2] 徐文凱.載人平衡車控制系統的設計與實現[D].哈爾濱:哈爾濱理工大學,2014.
[3] 張明.載人兩輪自平衡車控制系統的研究與設計[D].成都:電子科技大學,2017.
[4] 梁光勝,杜夢楠,周子豪,等.基于互補濾波的兩輪自平衡車姿態控制[J].測控技術,2015,34(5):72-73.
[5] 路成強,曾潔,李千振.基于卡爾曼濾波的兩輪自平衡遙控小車設計[J].自動化儀表,2017,38(9):44-47,52.
[6] 行陽陽.基于模糊PD的兩輪自平衡車的設計[D].太原:太原理工大學,2013.
[7] 夏玫.BP神經網絡泛化能力改進研究[D].太原:太原科技大學,2009.
[8] 許亞朝.兩輪平衡車控制系統的設計與研究[D].太原:太原科技大學,2016.
[9] 袁帥.兩輪自平衡機器人系統的設計[D].北京:北京交通大學,2012.
[10] 辛斌,陳杰,彭志紅.智能優化控制:概述與展望[J].自動化學報,2013,(11):49-54.
[11] Micro infinity Co., Ltd. Cruiz Core R1370P Technical Manual Rev1.1[M/OL].
http://www.minfinity.com/Manual/CruizCore%20R1370P%20Technical%20Manual%20Rev1.1.pdf,2015,05.
[12] 上海順舟智能科技股份有限公司. SZ15-01 LoRa模塊用戶使用手冊V1.0 [M/OL].
http://pmo47b088.pic37.websiteonline.cn/upload/SZ15-01LoRa.pdf,2018(6).
[13] 廣州美芯電子科技有限公司.MX6100-16P模塊使用手冊V1.2[M/OL].
http://www.mxic168.com/sczs/hby/mp31/123.html.
[14] STMicroelectronics Co., Ltd. STM32F103t8ST usermanual [M/OL].
https://www.st.com/resource/en/datasheet/stm32f103t8.pdf,2013,08.
(本文來源于《電子產品世界》雜志2023年2月期)
評論