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