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