王 震,楊 帥,徐青正,時(shí)慧杰,李天華,3,侯加林,3,周 凱,3,金天國(guó)
(1.山東農(nóng)業(yè)大學(xué) 后勤管理處,山東 泰安 271018;2.山東農(nóng)業(yè)大學(xué) 機(jī)械與電子工程學(xué)院,山東 泰安 271018;3.山東省園藝機(jī)械與裝備重點(diǎn)實(shí)驗(yàn)室,山東 泰安 271018;4.哈爾濱工業(yè)大學(xué) 機(jī)電工程學(xué)院,哈爾濱 150001)
隨著現(xiàn)代化農(nóng)業(yè)的不斷發(fā)展,農(nóng)業(yè)機(jī)器人在農(nóng)業(yè)信息化和智能化中的地位日益凸顯,改善了農(nóng)民的耕作條件,提升了農(nóng)產(chǎn)品耕收效率,推動(dòng)了農(nóng)業(yè)的不斷進(jìn)步[1]。然而當(dāng)前的農(nóng)業(yè)機(jī)器人移動(dòng)平臺(tái)價(jià)格及使用成本高,適用范圍小,不能完全滿(mǎn)足某些特殊環(huán)境下的作業(yè)要求。例如,大田果蔬采摘機(jī)器人,由于采摘作業(yè)季節(jié)性強(qiáng)、勞動(dòng)強(qiáng)度大、費(fèi)用高及采摘作業(yè)的復(fù)雜性,導(dǎo)致采摘自動(dòng)化程度仍處于較低水平;無(wú)人植保機(jī)器人作為地面輪式機(jī)械難以避免對(duì)作物的碾壓,尤其是在轉(zhuǎn)向操作中存在大面積掃覆區(qū)域,不適合作物精細(xì)化管理,且難以適應(yīng)地形較為復(fù)雜崎嶇的作業(yè)環(huán)境。針對(duì)上述情況,獨(dú)輪平衡車(chē)通過(guò)特殊獨(dú)輪結(jié)構(gòu)減少了行進(jìn)過(guò)程中對(duì)作物的掃覆碾壓[2],同時(shí)該獨(dú)輪車(chē)可原地360°轉(zhuǎn)向,具有極高的靈活性,并且采用電力驅(qū)動(dòng)系統(tǒng),實(shí)現(xiàn)低能耗維持機(jī)器平衡和行進(jìn),提高了鋰電池的使用時(shí)間和循環(huán)壽命,為植保移動(dòng)平臺(tái)提供一種新選擇[3]。而對(duì)于采用電力驅(qū)動(dòng)的機(jī)器人來(lái)說(shuō),在有限的時(shí)間內(nèi)保證姿勢(shì)穩(wěn)定更有利于獨(dú)輪車(chē)執(zhí)行停車(chē)和對(duì)接操作[4-7]。
獨(dú)輪自平衡車(chē)采用非線性、強(qiáng)耦合、多變量的復(fù)雜動(dòng)力學(xué)系統(tǒng),具有不同于傳統(tǒng)的設(shè)計(jì)概念。獨(dú)輪平衡車(chē)只能通過(guò)運(yùn)動(dòng)來(lái)保持機(jī)身相對(duì)穩(wěn)定,即依靠輪子轉(zhuǎn)動(dòng)和風(fēng)扇的反作用力保持平衡[8-11]。區(qū)別于在靜止?fàn)顟B(tài)下保持穩(wěn)定的多輪機(jī)器人,該結(jié)構(gòu)簡(jiǎn)單輕巧,能在崎嶇地帶穩(wěn)定移動(dòng),能量消耗少,其高聳的機(jī)械骨架可搭載多種作業(yè)工具或傳感器,適用范圍得到顯著提升[12]。同時(shí),獨(dú)輪平衡機(jī)器人還具有以下實(shí)用優(yōu)勢(shì):可以繞地面接觸點(diǎn)原地旋轉(zhuǎn),轉(zhuǎn)向角度可為任意值。車(chē)體結(jié)構(gòu)簡(jiǎn)單輕巧,可靠性高,制造成本低,維護(hù)保養(yǎng)容易。機(jī)體的特殊結(jié)構(gòu)可允許搭載多種、多個(gè)作業(yè)工具和傳感器[13-14]。
農(nóng)業(yè)機(jī)器人的發(fā)展離不開(kāi)農(nóng)業(yè)智能化裝備技術(shù)的進(jìn)步,農(nóng)業(yè)領(lǐng)域智能機(jī)器人技術(shù)是農(nóng)業(yè)智能裝備化技術(shù)最重要組成部分,受到國(guó)內(nèi)外學(xué)者的密切關(guān)注[15]。美國(guó)發(fā)明家狄恩卡門(mén)發(fā)明設(shè)計(jì)了Segway PT,它的特點(diǎn)是兩個(gè)車(chē)輪共軸,可差動(dòng)運(yùn)動(dòng),利用倒立擺原理達(dá)到動(dòng)態(tài)平衡[16]。日本筑波大學(xué)開(kāi)發(fā)了一款單輪機(jī)器人,該機(jī)器人由車(chē)身和直流電機(jī)驅(qū)動(dòng)的磁盤(pán)來(lái)穩(wěn)定其姿勢(shì),不需專(zhuān)用動(dòng)力來(lái)改變機(jī)器人的偏航方向,其使用正弦輸入磁盤(pán)和車(chē)輪改變偏航方向[17]。上海交通大學(xué)的團(tuán)隊(duì)以動(dòng)力學(xué)為出發(fā)點(diǎn),獨(dú)輪車(chē)和駕車(chē)人組成的系統(tǒng)為對(duì)象,建立了相匹配的動(dòng)力學(xué)方程和力學(xué)模型[18],并提出了獨(dú)輪車(chē)穩(wěn)定性的必要條件。以上獨(dú)輪機(jī)器人的模型各不相同,但目前皆存在結(jié)構(gòu)復(fù)雜、成本高、功耗高、適用范圍小等問(wèn)題。
基于上述情況,總結(jié)前人研究理論與成果,采用現(xiàn)代先進(jìn)的技術(shù)設(shè)計(jì)了以ESP32作為控制核心的獨(dú)輪自平衡車(chē)。該獨(dú)輪自平衡車(chē)具有結(jié)構(gòu)簡(jiǎn)單、成本低、適用性強(qiáng)、壽命長(zhǎng)、功耗低和可靠性高等優(yōu)點(diǎn)。
機(jī)械系統(tǒng)主要由機(jī)械骨架、風(fēng)扇、保護(hù)罩、橡膠輪、電池、直流電機(jī)、伺服電機(jī)等組成,計(jì)算機(jī)建模結(jié)構(gòu)如圖1所示。獨(dú)輪自平衡車(chē)實(shí)物結(jié)構(gòu)如圖2所示。
圖1 獨(dú)輪自平衡車(chē)模型圖
圖2 獨(dú)輪自平衡車(chē)實(shí)物結(jié)構(gòu)圖
獨(dú)輪自平衡車(chē)控制系統(tǒng)原理如圖3所示,信息采集依靠MPU6050傳感器和編碼器完成。MPU6050通過(guò)內(nèi)置的陀螺儀姿態(tài)傳感器和加速度傳感器分別測(cè)量運(yùn)動(dòng)角速度與加速度。運(yùn)動(dòng)加速度是包含重力加速度的合加速度,其內(nèi)部的數(shù)字運(yùn)動(dòng)處理器可以由重力加速度在各運(yùn)動(dòng)軸上的分量計(jì)算角度,但加速度傳感器容易受外部運(yùn)動(dòng)影響,而角速度傳感器無(wú)法直接獲得角度,必須進(jìn)行積分,因此易產(chǎn)生積分漂移。數(shù)字運(yùn)動(dòng)處理器可將角速度傳感器積分獲得的角度與加速度傳感器分量計(jì)算出的角度相互融合,最終輸出相對(duì)比較穩(wěn)定和準(zhǔn)確的姿態(tài)數(shù)據(jù)。
圖3 獨(dú)輪自平衡車(chē)控制系統(tǒng)原理圖
控制器可通過(guò)IIC總線與MPU6050的數(shù)字運(yùn)動(dòng)處理器進(jìn)行連接和通訊,進(jìn)而完成MPU6050的初始化配置和數(shù)據(jù)采集處理;另外,伺服無(wú)刷電機(jī)內(nèi)置100線的雙相光電編碼裝置,通過(guò)簡(jiǎn)單配置可輸出階躍數(shù)字信號(hào),ESP32微控制器通過(guò)讀取的姿態(tài)數(shù)據(jù)和編碼器數(shù)據(jù)進(jìn)行多個(gè)PID計(jì)算,計(jì)算結(jié)果通過(guò)電機(jī)驅(qū)動(dòng)程序疊加輸出。
獨(dú)輪自平衡機(jī)器人采用不平衡系統(tǒng),為簡(jiǎn)化分析過(guò)程,將其解耦成俯仰和橫滾兩個(gè)方向上的平衡,每個(gè)方向上的平衡都可以看作一階的倒立擺模型。倒立擺控制系統(tǒng)(Inverted Pendulum System)具有復(fù)雜性、不穩(wěn)定性、非線性的特點(diǎn),并且可以用作實(shí)驗(yàn)平臺(tái)進(jìn)行各種控制實(shí)驗(yàn)。倒立擺的典型性在于以強(qiáng)耦合、不穩(wěn)定、非線性為特點(diǎn)的控制系統(tǒng)作為被控對(duì)象,從而在控制過(guò)程中有效反應(yīng)各種問(wèn)題[19-22]。倒立擺按形式可分為旋轉(zhuǎn)式、環(huán)形、懸掛式;按級(jí)數(shù)可分為一級(jí)、二級(jí)、三級(jí)、四級(jí)、多級(jí)等;按其運(yùn)動(dòng)軌道可分為水平式、傾斜式。
倒立擺系統(tǒng)主要由控制器、運(yùn)動(dòng)平臺(tái)和受控桿三部分組成??捎蓡纹瑱C(jī)作為倒立擺系統(tǒng)的控制器,以一根質(zhì)量均勻的鐵桿作為受控桿,將運(yùn)動(dòng)平臺(tái)與受控桿相連接。具體結(jié)構(gòu)如圖4所示。直線型一階倒立擺受控過(guò)程如下。
圖4 直線型一階倒立擺結(jié)構(gòu)
狀態(tài)一:受控桿下垂,運(yùn)動(dòng)平臺(tái)無(wú)速度,控制器未工作,即系統(tǒng)處于自然平衡穩(wěn)定狀態(tài)。
狀態(tài)二:控制器處于工作狀態(tài),運(yùn)動(dòng)平臺(tái)被驅(qū)動(dòng)獲得速度,同時(shí)受控桿在慣性力的作用下開(kāi)始擺動(dòng),即系統(tǒng)處于起擺狀態(tài)。
狀態(tài)三:當(dāng)受控桿受到干擾,上升至模型預(yù)計(jì)的小角度范圍內(nèi)時(shí),控制算法啟動(dòng),即為穩(wěn)定控制狀態(tài)。
狀態(tài)四: 倒立擺進(jìn)入受控穩(wěn)定狀態(tài),即由自然穩(wěn)定變?yōu)槭芸胤€(wěn)定。
上述為倒立擺系統(tǒng)由自然穩(wěn)定狀態(tài)轉(zhuǎn)至受控穩(wěn)定狀態(tài)的控制過(guò)程,控制算法的不同對(duì)控制過(guò)程會(huì)產(chǎn)生不同的影響,但目標(biāo)都是維持系統(tǒng)的平衡穩(wěn)定,故本系統(tǒng)采用 PID 算法對(duì)其進(jìn)行穩(wěn)態(tài)控制。
獨(dú)輪自平衡車(chē)平衡控制的主要問(wèn)題是控制算法的開(kāi)發(fā)。獨(dú)輪自平衡車(chē)控制系統(tǒng)采用了增量式 PID 控制算法作為獨(dú)輪自平衡車(chē)控制系統(tǒng)的核心算法,通過(guò)系統(tǒng)輸入值和輸出值,即設(shè)定值和測(cè)量值之間的偏差,進(jìn)行比例、積分和微分的復(fù)合計(jì)算,進(jìn)而得到控制量的大小。小車(chē)系統(tǒng)采用雙閉環(huán) PID 控制算法(圖5)實(shí)現(xiàn)自平衡控制。根據(jù)編碼器產(chǎn)生的脈沖進(jìn)行數(shù)據(jù)轉(zhuǎn)換,進(jìn)而得到實(shí)時(shí)速度信息,此信息作為反饋量實(shí)現(xiàn)了速度的閉環(huán)控制[23-25]。另外,融合后的小車(chē)傾角的最優(yōu)值作為反饋量,實(shí)現(xiàn)了姿態(tài)的閉環(huán)控制。姿態(tài)閉環(huán)控制采用了 PID 控制器,電機(jī)PWM信號(hào)的占空比通過(guò)卡爾曼濾波輸出的小車(chē)傾角和角速度的優(yōu)化值來(lái)計(jì)算,表達(dá)式為
圖5 系統(tǒng)雙閉環(huán) PID 控制算法框圖
PWM=Kp×θ+Kd×θ
(1)
式中θ—修正系數(shù)。
為對(duì)增量編碼器檢測(cè)的小車(chē)速度進(jìn)行比例控制,速度閉環(huán)控制使用 PID 控制的輸出作為PWM信號(hào)占空比的增量值ΔPWM,表達(dá)式為
ΔPWM=Ki×speed
(2)
將姿態(tài)閉環(huán)控制和速度閉環(huán)控制融合后,再由主控制器輸出給直流電機(jī),以避免兩者之間的相互影響,進(jìn)而獲得二者融合后驅(qū)動(dòng)模塊的PWM信號(hào)PWM總,表達(dá)式為
PWM總=Kp×θ+Kd×θ+Ki×speed
(3)
獨(dú)輪自平衡車(chē)以ESP32單片機(jī)為核心,利用其內(nèi)置IIC接口及I/O口采集信號(hào)傳感器數(shù)據(jù),當(dāng)檢測(cè)到機(jī)器人信號(hào)與期望信號(hào)存在誤差時(shí),通過(guò)PID算法計(jì)算輸出量,利用I/O口輸出PWM信號(hào),從而控制由驅(qū)動(dòng)電動(dòng)機(jī)、伺服電機(jī)、槳片及驅(qū)動(dòng)輪所構(gòu)成的驅(qū)動(dòng)系統(tǒng)執(zhí)行機(jī)構(gòu),使伺服電機(jī)控制車(chē)輪轉(zhuǎn)動(dòng),最終作用至機(jī)械本體以保持平衡或抵消信號(hào)誤差。
獨(dú)輪自平衡車(chē)機(jī)械結(jié)構(gòu)要滿(mǎn)足簡(jiǎn)單、輕量化的要求,以降低制造成本、減少工作能耗。獨(dú)輪自平衡車(chē)機(jī)械結(jié)構(gòu)能夠應(yīng)對(duì)設(shè)計(jì)工況下可能遇到的復(fù)雜力的作用,保持一定的剛度。
此外,獨(dú)輪自平衡車(chē)屬于平衡機(jī)器人,所以機(jī)械結(jié)構(gòu)除了滿(mǎn)足以上要求,還應(yīng)盡量保持力平衡。因此將電池、電機(jī)、控制板相對(duì)均勻分布,以減輕力不平衡所帶來(lái)的不穩(wěn)定問(wèn)題與額外能量消耗問(wèn)題。
ESP32單片機(jī)內(nèi)整合了射頻模組、開(kāi)關(guān)器件、低噪聲放大器、功率器件、電源控制系統(tǒng)和過(guò)濾器,整個(gè)芯片占用的PCB物理空間最小??蛇x擇AP、STA、AP/STA 共存多種模式,可使用Lua開(kāi)發(fā)環(huán)境編程,支持Arduino開(kāi)發(fā)環(huán)境,使用方便靈活。ESP32單片機(jī)中WIFI藍(lán)牙芯片實(shí)現(xiàn)了無(wú)線局域網(wǎng)與藍(lán)牙的集成開(kāi)發(fā),物理空間占用極低。ESP32單片機(jī)作為系統(tǒng)級(jí)SOC,實(shí)現(xiàn)了良好的無(wú)線性能,功耗控制優(yōu)秀,具有整合度高等優(yōu)勢(shì)。
為實(shí)現(xiàn)低功耗、高運(yùn)算速度的目標(biāo),獨(dú)輪雙軸自平衡機(jī)器人采用ESP32單片機(jī),此單片機(jī)體積小巧,便于裝配,單片機(jī)內(nèi)部還存在穩(wěn)壓供電芯片、I/O引出按鍵,便于開(kāi)發(fā)與利用。ESP32單片機(jī)的電路圖如圖6所示,其實(shí)物圖如圖7所示。
圖6 ESP32單片機(jī)電路圖
圖7 ESP32單片機(jī)實(shí)物圖
獨(dú)輪式自平衡車(chē)是欠驅(qū)動(dòng)的、非線性的控制系統(tǒng),在工作過(guò)程中相較于其他多輪機(jī)器人與地面接觸面積更小。所以在保持穩(wěn)定性方面,三輪或四輪等多輪式機(jī)器人可以保持靜態(tài)穩(wěn)定,而獨(dú)輪式自平衡車(chē)只能通過(guò)動(dòng)態(tài)穩(wěn)定,即其保持穩(wěn)定狀態(tài)必須依靠運(yùn)動(dòng)來(lái)維持。
直流電機(jī)優(yōu)點(diǎn)在于直流電機(jī)過(guò)載能力強(qiáng),可抵抗一定電磁干擾;啟動(dòng)迅速,調(diào)速范圍廣且調(diào)速平滑,并且在低速狀態(tài)下的轉(zhuǎn)動(dòng)力矩相對(duì)更大;采用直流驅(qū)動(dòng)可簡(jiǎn)化供電電路;驅(qū)動(dòng)系統(tǒng)結(jié)構(gòu)較為簡(jiǎn)單,經(jīng)濟(jì)性高。但直流電動(dòng)機(jī)內(nèi)部結(jié)構(gòu)相對(duì)復(fù)雜,導(dǎo)致其體積重量相對(duì)更大,其電刷與換向器之間的滑動(dòng)摩擦接觸產(chǎn)生電火花,加劇了機(jī)械結(jié)構(gòu)磨損,因此直流電動(dòng)機(jī)易發(fā)生故障,可靠性相對(duì)較低,工作壽命較短,需頻繁進(jìn)行保養(yǎng)維護(hù)工作。
伺服電機(jī)的優(yōu)點(diǎn)在于控制精度高,具備編碼器,可實(shí)時(shí)反饋電機(jī)狀態(tài)。避免了高負(fù)載下丟轉(zhuǎn)的問(wèn)題;轉(zhuǎn)速高,轉(zhuǎn)動(dòng)性能好,可承受大扭矩;在低速運(yùn)行時(shí)轉(zhuǎn)速較為平穩(wěn);振動(dòng)噪音明顯降低,發(fā)熱量小,舒適性強(qiáng)。但其驅(qū)動(dòng)復(fù)雜,需搭配控制系統(tǒng)使用。
在電機(jī)的選擇上,需要滿(mǎn)足響應(yīng)速度、精確度、轉(zhuǎn)速、扭矩等方面的要求。另外,因獨(dú)輪雙軸平衡機(jī)器人采用鋰電池供電,所選電機(jī)存在功率上的限制。綜上所述,最終選擇3.7 V N50強(qiáng)磁高速馬達(dá)及12~24 V微型直流無(wú)刷伺服電機(jī)提供動(dòng)力。
獨(dú)輪自平衡車(chē)以ESP32單片機(jī)作為主控單片機(jī),檢測(cè)裝置采用MPU6050傳感器作為前端傳感器,將MEMS結(jié)構(gòu)運(yùn)動(dòng)信號(hào)轉(zhuǎn)變?yōu)殡妷盒盘?hào),再經(jīng)過(guò)DMP進(jìn)行數(shù)據(jù)融合濾波處理,最后將處理后的數(shù)據(jù)通過(guò)IIC總線輸送至ESP32單片機(jī)。ESP單片機(jī)通過(guò)PID算法計(jì)算輸出量,再通過(guò)驅(qū)動(dòng)電機(jī),使直流電機(jī)帶動(dòng)風(fēng)扇,伺服電機(jī)帶動(dòng)車(chē)輪,使機(jī)器人本體保持直立與相對(duì)穩(wěn)定狀態(tài)。數(shù)據(jù)采集過(guò)程原理如圖8所示。
圖8 數(shù)據(jù)采集過(guò)程原理
ESP32單片機(jī)將采集的信息和行程信號(hào)進(jìn)行測(cè)量處理后進(jìn)行BLE實(shí)時(shí)傳輸和PID計(jì)算。同時(shí),單片機(jī)還控制直流電機(jī)及伺服電機(jī)的運(yùn)作,通過(guò)I/O接口控制驅(qū)動(dòng)系統(tǒng)。微處理機(jī)硬件系統(tǒng)如圖9所示。
圖9 微處理機(jī)處理數(shù)據(jù)原理框圖
編碼信號(hào)是由編碼柵盤(pán)、發(fā)光二極管、光電管及附屬電路產(chǎn)生。當(dāng)編碼柵盤(pán)阻擋發(fā)光二極管發(fā)出的光線照射光電管時(shí),輸出引腳被下拉電阻拉低,否則輸出引腳被拉高。此編碼器具有兩個(gè)不同相位的檢測(cè)器,因此可輸出兩個(gè)不同相位的電平信號(hào),單片機(jī)通過(guò)檢測(cè)兩個(gè)時(shí)域上的電平信號(hào)便能得出電機(jī)旋轉(zhuǎn)方向及運(yùn)動(dòng)角度,進(jìn)而得出運(yùn)動(dòng)速度。編碼電路結(jié)構(gòu)如圖10所示。
圖10 編碼電路結(jié)構(gòu)
直流電機(jī)驅(qū)動(dòng)板通過(guò)雙相的PWM信號(hào)實(shí)現(xiàn)正反轉(zhuǎn)驅(qū)動(dòng),一路PWM為低電平,另一路PWM為正占空比信號(hào),從而實(shí)現(xiàn)調(diào)速轉(zhuǎn)動(dòng),調(diào)換兩路信號(hào)時(shí)反轉(zhuǎn)。正反轉(zhuǎn)控制的電氣原理如圖11所示。
圖11 電機(jī)正反轉(zhuǎn)控制原理圖
獨(dú)輪自平衡車(chē)除保持自身穩(wěn)定外,還可與操作者進(jìn)行交互,將自身狀態(tài)參數(shù)展示給操作者,并接受操作者發(fā)出的命令。由于獨(dú)輪自平衡車(chē)為自主運(yùn)動(dòng),操作者多與其相隔一定距離,在機(jī)器人本體上安裝顯示屏幕不便于讀取,操作者可以通過(guò)手機(jī)移動(dòng)端APP連接并控制獨(dú)輪自平衡車(chē)執(zhí)行各種指令。
ESP32芯片自帶藍(lán)牙、WIFI功能,開(kāi)源軟件可大幅降低開(kāi)發(fā)難度和開(kāi)發(fā)時(shí)間,Blynk可提供開(kāi)源IOT(物聯(lián)網(wǎng))服務(wù),可快速簡(jiǎn)單地實(shí)現(xiàn)設(shè)備連接控制,使開(kāi)發(fā)更簡(jiǎn)單。BLE低功耗藍(lán)牙是藍(lán)牙4.0標(biāo)準(zhǔn)下的新型無(wú)線連接規(guī)范,其傳輸距離最大可達(dá)100 m,遠(yuǎn)高于傳統(tǒng)藍(lán)牙的幾十米傳輸距離;數(shù)據(jù)發(fā)送時(shí)間低于3 ms,遠(yuǎn)低于傳統(tǒng)藍(lán)牙的100 ms;響應(yīng)延遲低至6 ms,遠(yuǎn)小于經(jīng)典藍(lán)牙的100 ms響應(yīng)延時(shí)。因此,采用BLE低功耗藍(lán)牙技術(shù)進(jìn)行傳輸控制可以增加遙控距離,降低能量消耗和響應(yīng)延遲。
單片機(jī)對(duì)MPU6050數(shù)字運(yùn)動(dòng)處理器的信號(hào)進(jìn)行實(shí)時(shí)處理,處理完成的數(shù)據(jù)由BLE低功耗藍(lán)牙傳輸至移動(dòng)端APP進(jìn)行顯示。MCU程序中需要設(shè)置終端顯示器的虛擬引腳和數(shù)據(jù)存儲(chǔ)臨時(shí)變量,移動(dòng)端可以進(jìn)行數(shù)據(jù)的顯示及命令傳輸。
移動(dòng)端BLE遙控程序需要控制獨(dú)輪自平衡車(chē)前后運(yùn)動(dòng)及轉(zhuǎn)向,因此需要設(shè)置兩個(gè)變量參數(shù)分別為“front and back”“l(fā)eft and right”,并在移動(dòng)端APP中設(shè)置四向搖桿,并將搖桿參數(shù)通過(guò)中間變量vpin_value傳遞給“front and back”“l(fā)eft and right”。此外,要實(shí)現(xiàn)PID參數(shù)整定及重心整定,需設(shè)置兩個(gè)標(biāo)志變量并連接到兩個(gè)按鍵的虛擬引腳,當(dāng)虛擬引腳發(fā)生變化,與之相連接的標(biāo)志變量PID、center則發(fā)生變化。在程序中,通過(guò)檢測(cè)標(biāo)志變量,選擇性執(zhí)行各分段程序。
為防止獨(dú)輪自平衡車(chē)開(kāi)機(jī)時(shí)因參數(shù)設(shè)置問(wèn)題產(chǎn)生過(guò)度運(yùn)動(dòng)而損壞其結(jié)構(gòu),需設(shè)置啟動(dòng)保護(hù)功能,在第一次開(kāi)機(jī)時(shí)不進(jìn)行電機(jī)驅(qū)動(dòng),需進(jìn)行按鍵操作,使標(biāo)志位設(shè)置為允許,同時(shí)將信號(hào)調(diào)整期望設(shè)置點(diǎn)設(shè)置為當(dāng)前狀態(tài),程序檢測(cè)驅(qū)動(dòng)標(biāo)志位,若檢測(cè)到標(biāo)志位已經(jīng)設(shè)為允許,則進(jìn)行PID計(jì)算及電機(jī)驅(qū)動(dòng),以避免產(chǎn)生過(guò)度運(yùn)動(dòng)。
在ESP32程序中,要保證獨(dú)輪自平衡車(chē)能夠在重心改變的情況下依舊保持相對(duì)穩(wěn)定,如果原有的姿態(tài)PID計(jì)算中設(shè)定目標(biāo)值偏離機(jī)械重心過(guò)大,則會(huì)使獨(dú)輪自平衡車(chē)穩(wěn)定性變差。因此,當(dāng)重心發(fā)生變化時(shí),程序開(kāi)始進(jìn)行檢測(cè),當(dāng)獨(dú)輪自平衡車(chē)姿態(tài)參數(shù)到達(dá)設(shè)定點(diǎn),且整體加速度未超過(guò)設(shè)定范圍,檢測(cè)各姿態(tài)軸角速度;若其處于設(shè)定點(diǎn)時(shí)仍具有過(guò)大加速度,即存在運(yùn)動(dòng)趨勢(shì),則通過(guò)更改姿態(tài)設(shè)定目標(biāo)值以抵消此運(yùn)動(dòng)趨勢(shì)。
此功能通過(guò)center標(biāo)志位選擇性運(yùn)行,center標(biāo)志位由blynk移動(dòng)端APP按鍵賦值。
獨(dú)輪自平衡車(chē)穩(wěn)態(tài)平衡時(shí)選擇PID算法控制,所以其對(duì)于相應(yīng)的實(shí)時(shí)性要求較高,即在PID參數(shù)中比例系數(shù)Kp對(duì)于系統(tǒng)影響最大,為簡(jiǎn)化程序,PID參數(shù)整定僅對(duì)比例系數(shù)進(jìn)行調(diào)整。
當(dāng)檢測(cè)到系統(tǒng)輸出不足導(dǎo)致的失穩(wěn)時(shí),小幅增加比例系數(shù)Kp;當(dāng)檢測(cè)到系統(tǒng)因比例系數(shù)過(guò)大導(dǎo)致輸出過(guò)大出現(xiàn)震蕩情況時(shí),程序小幅減小比例系數(shù)Kp。
在ESP32程序中,獨(dú)輪自平衡車(chē)為保持平衡、穩(wěn)定,需進(jìn)行多個(gè)PID計(jì)算,若程序中各PID參數(shù)不能滿(mǎn)足穩(wěn)、準(zhǔn)、快的要求,可通過(guò)PID參數(shù)整定,通過(guò)觀察獨(dú)輪自平衡車(chē)狀態(tài),若不滿(mǎn)足要求則微調(diào)PID參數(shù)。在PID算法中,比例系數(shù)Kp越大系統(tǒng)響應(yīng)越快,但Kp過(guò)大容易造成振蕩。微分系數(shù)Kd能夠增加系統(tǒng)阻尼,減弱振蕩,同時(shí)也使系統(tǒng)響應(yīng)變慢。積分系數(shù)Ki可調(diào)節(jié)靜態(tài)誤差,提高系統(tǒng)精度,但容易受之前的數(shù)據(jù)影響,不能及時(shí)響應(yīng)。
當(dāng)MPU6050傳感器和編碼器傳感器固定一位置時(shí),參數(shù)I保持不變,分別改變P、D參數(shù),表1為P1、D1、P2、D2不變,P4、D4、P5、D5改變時(shí)的參數(shù)值,表2為P1、D1、P2、D2改變,P4、D4、P5、D5不變時(shí)的參數(shù)值,表3為P1、D1改變,P2、D2、P4、D4、P5、D5不變時(shí)的參數(shù)值,測(cè)量參數(shù)均為平衡車(chē)穩(wěn)定時(shí)的參數(shù)。
表1 P1、D1、P2、D2不變,P4、D4、P5、D5改變
通過(guò)表1可知,當(dāng)P1、I1、P2、I2不變,P4、I4、P5、I5逐漸增大時(shí),力、速度、加速度逐漸變大,但實(shí)驗(yàn)測(cè)得P4、I4、P5、I5越小時(shí),平衡車(chē)較穩(wěn)定,可以抵抗抗輕度推動(dòng)。
通過(guò)表2可知,當(dāng)P4、I4、P5、I5不變,P1、I1、P2、I2逐減小時(shí),力、速度、加速度略微減小,P1=10,D1=0.49 ,P2=0.25,D2=0時(shí)比較穩(wěn)定,但是不能控速;P1=9.8,D1=0.47,P2=0.24,D2=0時(shí)有小抖動(dòng),不能推;P1=9.4,D1=0.45,P2=0.20,D2=0較穩(wěn)定,但遙控前進(jìn)略微延后。
表2 P4、D4、P5、D5不變,P1、D1、P2、D2改變
通過(guò)表3可知,當(dāng)P2、D2、P4、D4、P5、D5不變,減小P1、D1時(shí),力、速度、加速度不呈線性改變,當(dāng)P1=9,D1=0.45 ,P2=0,D2=0,P4=0,D4=0,P5=0,D5=0時(shí)平衡車(chē)性能好,但不能抵抗強(qiáng)干擾;P1=8,D1=0.45,P2=0,D2=0,P4=0,D4=0,P5=0,D5=0時(shí)平衡車(chē)比較抖;P1=8,D1=0.40,P2=0,D2=0,P4=0,D4=0,P5=0,D5=0時(shí)平衡車(chē)有小抖動(dòng)并且不能控速。
表3 P2、D2、P4、D4、P5、D5不變,P1、D1改變
根據(jù)實(shí)驗(yàn)數(shù)據(jù)得出:當(dāng)P1=9,D1=0.45,P2=0,D2=0,P4=0,D4=0,P5=0,D5=0時(shí)自平衡車(chē)性能好,可以抵抗輕微干擾,滿(mǎn)足運(yùn)動(dòng)可控和平衡穩(wěn)定的要求。在PID參數(shù)中比例系數(shù)Kp對(duì)于系統(tǒng)影響最大,通過(guò)檢測(cè)系統(tǒng)輸出進(jìn)而小幅增減比例系數(shù)Kp,使機(jī)器人始保持穩(wěn)定狀態(tài)。
本文設(shè)計(jì)的獨(dú)輪自平衡車(chē),以ESP32單片機(jī)為主控單元,采用雙閉環(huán)PID控制算法,利用卡爾曼濾波輸出的小車(chē)傾角和角速度的優(yōu)化值,對(duì)小車(chē)系統(tǒng)進(jìn)行自平衡控制。同時(shí),利用高響應(yīng)速度的MPU6050傳感器,由內(nèi)部集成的數(shù)字運(yùn)動(dòng)處理器(DMP)進(jìn)行數(shù)據(jù)融合濾波處理,通過(guò)低功耗藍(lán)牙(BLE)進(jìn)行數(shù)據(jù)傳輸、運(yùn)動(dòng)控制以及機(jī)械重心計(jì)算,并通過(guò)多次實(shí)驗(yàn)選擇一組最優(yōu)PID參數(shù),測(cè)定表明當(dāng)P1=9,D1=0.45,P2=0,D2=0,P4=0,D4=0,P5=0,D5=0時(shí),該自平衡車(chē)抗干擾能力強(qiáng),可保持平衡穩(wěn)定的工作狀態(tài)。此外,獨(dú)輪自平衡車(chē)相對(duì)于多軸植保無(wú)人機(jī)器人具有負(fù)載量更大、運(yùn)動(dòng)更靈活、占地面積小、驅(qū)動(dòng)功率小、電池壽命高等優(yōu)勢(shì),還具備了一定的抗干擾能力,極大提高了機(jī)器人在復(fù)雜崎嶇地區(qū)作業(yè)的實(shí)用性與可靠性,為平衡系統(tǒng)的進(jìn)一步研究提供了參考價(jià)值。