申藝方 ,解向陽(yáng)
(濟(jì)源職業(yè)技術(shù)學(xué)院,河南 濟(jì)源 459000)
在農(nóng)業(yè)自動(dòng)化、現(xiàn)代化發(fā)展趨勢(shì)下,人工背負(fù)式噴霧機(jī)逐漸被淘汰,自走式噴霧機(jī)和植保無(wú)人機(jī)得到了推廣應(yīng)用。植保無(wú)人機(jī)搭載噴藥裝置,可以由地面站工作人員遠(yuǎn)程控制,或者按照預(yù)設(shè)指令實(shí)現(xiàn)高空自動(dòng)噴藥。對(duì)比來(lái)看,使用植保無(wú)人機(jī)噴藥具有覆蓋面積廣、作業(yè)效率高、安全性好等一系列優(yōu)勢(shì)。現(xiàn)階段,農(nóng)業(yè)植保多旋翼無(wú)人機(jī)在實(shí)際應(yīng)用中面臨的主要問(wèn)題是定點(diǎn)噴灑精度不高,不僅造成農(nóng)藥的浪費(fèi),而且增加了無(wú)人機(jī)的飛行頻次,導(dǎo)致農(nóng)業(yè)植保作業(yè)的成本升高?;诖耍斜匾獙?duì)多旋翼無(wú)人機(jī)的飛行控制系統(tǒng)進(jìn)行優(yōu)化設(shè)計(jì),提高控制精度,使農(nóng)業(yè)植保無(wú)人機(jī)能夠在合適的位置噴灑農(nóng)藥,提高作業(yè)效率。
本文設(shè)計(jì)的農(nóng)業(yè)植保多旋翼無(wú)人機(jī)飛行控制系統(tǒng)由主控系統(tǒng)、慣性測(cè)量單元、磁力計(jì)、加速度計(jì)、定位系統(tǒng)、噴灑系統(tǒng)、空速測(cè)量系統(tǒng)等構(gòu)成。主控MCU選用STM32F428IGT6高性能芯片,主頻200 MHz,內(nèi)置256 KB的RAM和512 KB的Flash,8條主控總線和7條被控總線,2個(gè)32位定時(shí)器和150個(gè)I/O接口。主控系統(tǒng)利用通信模塊分別獲取飛行姿態(tài)數(shù)據(jù)、避障雷達(dá)數(shù)據(jù)、位置信息、高度數(shù)據(jù)等,然后利用芯片完成對(duì)各類數(shù)據(jù)的處理,再將處理結(jié)果同步反饋給地面站。地面站根據(jù)接收處理結(jié)果,編輯控制指令發(fā)送給無(wú)人機(jī)的主控系統(tǒng)。主控系統(tǒng)響應(yīng)指令,并輸出PWM信號(hào)改變電機(jī)轉(zhuǎn)速,進(jìn)而實(shí)現(xiàn)對(duì)無(wú)人機(jī)高度、速度、姿態(tài)的調(diào)整。當(dāng)無(wú)人機(jī)到達(dá)指定位置后,噴灑系統(tǒng)開(kāi)始作業(yè),向指定區(qū)域噴灑農(nóng)藥[1]。
本系統(tǒng)的電池供電部分根據(jù)供電對(duì)象的不同分成3類,分別是電機(jī)供電、隔離電源供電和非隔離電源供電。其中,隔離電源為無(wú)人機(jī)的噴灑系統(tǒng)供電,非隔離電源則為無(wú)人機(jī)的定位系統(tǒng)、避障系統(tǒng)、高度測(cè)量系統(tǒng)等供電??紤]到不同芯片的工作電壓存在差異,本文在設(shè)計(jì)電源電路時(shí),利用電壓轉(zhuǎn)換電路將電池輸出的12 Ⅴ電壓轉(zhuǎn)化成多種電壓,例如將+12 Ⅴ電壓轉(zhuǎn)換成+5 Ⅴ電壓,為STM32F428IGT6芯片供電,再將+5 Ⅴ電壓轉(zhuǎn)換成3.3 Ⅴ電壓為氣壓傳感器供電。同時(shí),電機(jī)在運(yùn)行時(shí)輸出的大電流會(huì)產(chǎn)生較強(qiáng)的磁場(chǎng),干擾飛行控制系統(tǒng)中的傳感器、控制器等電氣設(shè)備的正常工作。在電源供電系統(tǒng)設(shè)計(jì)中,將電機(jī)電源與其他控制系統(tǒng)的電源分開(kāi),并做屏蔽處理,從而保證了無(wú)人機(jī)飛行控制系統(tǒng)的穩(wěn)定性和可靠性。
2.2.1 通信系統(tǒng)框架
在農(nóng)業(yè)植保無(wú)人機(jī)飛行過(guò)程中,飛行控制系統(tǒng)的MCU需要實(shí)時(shí)獲取傳感器、定位系統(tǒng)反饋的數(shù)據(jù),同時(shí)在數(shù)據(jù)分析處理后生成新的控制指令,再將指令發(fā)送給執(zhí)行器,實(shí)現(xiàn)對(duì)無(wú)人機(jī)飛行姿態(tài)、飛行軌跡、飛行高度等各項(xiàng)參數(shù)的調(diào)整。數(shù)據(jù)的采集與指令的下達(dá)都需要通過(guò)通信系統(tǒng)完成,整個(gè)通信系統(tǒng)由主控MCU、傳感器MCU以及多種通信協(xié)議組成,通信流程如下:傳感器MCU基于SPI協(xié)議采集加速度計(jì)和陀螺儀的數(shù)據(jù),對(duì)于加速度數(shù)據(jù)實(shí)行低通濾波,對(duì)于陀螺儀數(shù)據(jù)實(shí)行偏置調(diào)整。然后傳感器MCU將處理后的加速度數(shù)據(jù)和陀螺儀數(shù)據(jù)進(jìn)行融合,并基于CAN協(xié)議與主控MCU通信,將融合數(shù)據(jù)發(fā)送給主控MCU[2]。這樣一來(lái),飛行控制系統(tǒng)的控制終端就能掌握無(wú)人機(jī)的實(shí)時(shí)飛行狀況,并基于控制程序生成新的操控指令,將指令傳輸至前端,完成姿態(tài)調(diào)整。
2.2.2 通信協(xié)議的選擇
本文設(shè)計(jì)的通信系統(tǒng)執(zhí)行兩種通信協(xié)議,即CAN協(xié)議和SPI協(xié)議。
CAN現(xiàn)場(chǎng)總線具有抗干擾能力強(qiáng)、支持遠(yuǎn)距離傳輸、支持半雙工工作模式等優(yōu)勢(shì),使用CAN協(xié)議傳輸報(bào)文時(shí),可基于報(bào)文ID判斷是否接收該報(bào)文;若存在多個(gè)報(bào)文同時(shí)傳輸?shù)那闆r,CAN協(xié)議還能對(duì)報(bào)文進(jìn)行優(yōu)先級(jí)排序,保證重要報(bào)文優(yōu)先傳遞?;贑AN通信協(xié)議的數(shù)據(jù)發(fā)送流程為:初始化CAN節(jié)點(diǎn)并設(shè)置CAN參數(shù),如模式、波特率等;選擇需要發(fā)送的數(shù)據(jù),將待發(fā)送數(shù)據(jù)封裝成一個(gè)CAN數(shù)據(jù)幀;將該數(shù)據(jù)幀發(fā)送到CAN總線上,利用ACK信號(hào)判斷數(shù)據(jù)幀是否發(fā)送成功。如果CAN節(jié)點(diǎn)未收到ACK信號(hào),說(shuō)明發(fā)送失敗,CAN節(jié)點(diǎn)會(huì)向發(fā)送端提供報(bào)錯(cuò)信息;如果CAN節(jié)點(diǎn)收到ACK信號(hào),說(shuō)明發(fā)送成功,同時(shí)將錯(cuò)位標(biāo)記清零,繼續(xù)等待下一個(gè)數(shù)據(jù)幀的發(fā)送[3]。
SPI協(xié)議是一種串行同步通信協(xié)議,根據(jù)通信對(duì)象的不同可以分為“1主對(duì)1從”和“1主對(duì)N從”兩種模式。SPI接口允許通過(guò)的基本信號(hào)有4種,即SDI串行輸入信號(hào)、SDO串行輸出信號(hào)、SCK串行時(shí)鐘信號(hào)和CS使能信號(hào)。本文設(shè)計(jì)的無(wú)人機(jī)飛行控制系統(tǒng)中,傳感器MCU通過(guò)SPI協(xié)議與加速度計(jì)、陀螺儀等設(shè)備完成數(shù)據(jù)傳輸。
本文設(shè)計(jì)的農(nóng)業(yè)植保無(wú)人機(jī)飛行控制系統(tǒng)中包含多種傳感器,用于向系統(tǒng)主控MCU芯片反饋無(wú)人機(jī)的實(shí)施工況。傳感器類型及選擇如下:
1)磁傳感器。磁傳感器中敏感元件所處的外部環(huán)境中的磁場(chǎng)、電流、溫度等因素發(fā)生變化后,其輸出的電信號(hào)也會(huì)發(fā)生相應(yīng)的改變,利用這一特性可實(shí)現(xiàn)對(duì)相應(yīng)物理量的檢測(cè)。本系統(tǒng)中選用了HMC5883型磁傳感器,內(nèi)置I2C數(shù)字接口和12倍A/D轉(zhuǎn)換器,工作電壓為2.4 Ⅴ~3.6 Ⅴ,集成度高,抗干擾能力強(qiáng)。
2)氣壓傳感器。負(fù)責(zé)測(cè)量無(wú)人機(jī)飛行過(guò)程中氣體的絕對(duì)壓強(qiáng),本系統(tǒng)中選用MS5611型氣壓傳感器,支持SPI和I2C兩種總線接口,分辨率小于10 cm。設(shè)備規(guī)格為6 mm×2.5 mm×1.2 mm,工作電壓為3.3 Ⅴ,體積較小,能耗較低。
3)姿態(tài)傳感器。負(fù)責(zé)測(cè)量三維姿態(tài)與范圍數(shù)據(jù),本系統(tǒng)中選用MPU6000型姿態(tài)傳感器,內(nèi)嵌低功耗的ARM處理器,可以實(shí)現(xiàn)三維姿態(tài)與范圍數(shù)據(jù)的運(yùn)算。三軸陀螺儀、三軸加速度計(jì)以及數(shù)字運(yùn)動(dòng)處理器DMP均采用集成方式嵌入到MPU6000姿態(tài)傳感器中,使用SPI接口與其他寄存器之間進(jìn)行通信[4]。
噴灑系統(tǒng)是農(nóng)業(yè)植保多旋翼無(wú)人機(jī)的核心部分,利用飛行控制系統(tǒng)可以自動(dòng)開(kāi)啟噴灑裝置,并靈活調(diào)節(jié)噴灑量,對(duì)節(jié)約農(nóng)藥、提升噴藥效果有積極幫助。農(nóng)業(yè)站的工作人員在規(guī)劃無(wú)人機(jī)飛行軌跡時(shí),可以在軌跡上標(biāo)記噴灑農(nóng)藥的坐標(biāo)點(diǎn);同時(shí),為了保證噴藥效果,還需要標(biāo)定具體的飛行參數(shù),例如無(wú)人機(jī)的飛行高度、飛行姿態(tài)以及噴灑裝置的開(kāi)度等。當(dāng)農(nóng)業(yè)植保無(wú)人機(jī)執(zhí)行任務(wù)時(shí),首先沿著軌跡飛行,以正確的高度、姿態(tài)到達(dá)指定坐標(biāo)點(diǎn)后,開(kāi)啟噴灑裝置并噴灑農(nóng)藥;當(dāng)無(wú)人機(jī)飛行到標(biāo)定的結(jié)束點(diǎn)后,隨即關(guān)閉噴灑裝置,沿著航線返回起始點(diǎn)。
3.1.1 數(shù)據(jù)校正
農(nóng)業(yè)植保無(wú)人機(jī)飛行控制系統(tǒng)中的加速度計(jì)由于受制作工藝、出廠調(diào)校等因素的影響,不同產(chǎn)品之間可能會(huì)存在零點(diǎn)誤差、靈敏度偏差;同時(shí)受到周邊電磁環(huán)境的影響,加速度計(jì)測(cè)量信號(hào)也容易摻雜噪聲,這些問(wèn)題都會(huì)對(duì)無(wú)人機(jī)姿態(tài)解算結(jié)果造成不良影響。以靈敏度偏差為例,無(wú)人機(jī)的加速度計(jì)在三軸分量相等的情況下,若靈敏度不一致將導(dǎo)致測(cè)量結(jié)果出現(xiàn)明顯誤差。本文在設(shè)計(jì)無(wú)人機(jī)飛行控制系統(tǒng)時(shí),選擇了“橢球擬合法”對(duì)這些存在誤差或偏差的數(shù)據(jù)進(jìn)行校正。橢球擬合法的校正原理為:理論上,處于靜止?fàn)顟B(tài)的加速度計(jì),其重力的向量頂點(diǎn)會(huì)落在一個(gè)空間球面上,但是因?yàn)槎攘繂挝淮嬖诓町?,該向量頂點(diǎn)最終會(huì)落在一個(gè)橢球上,這兩個(gè)頂點(diǎn)之間的坐標(biāo)差即為偏移量。選擇一組離線測(cè)量數(shù)據(jù)和一個(gè)理想的橢球,讓橢球面上數(shù)據(jù)點(diǎn)到理想橢球面的平方和最小,根據(jù)這一關(guān)系可以建立理想橢球的三維空間方程組。求解該方程組,用所得結(jié)果校正加速度計(jì)的偏移量[5]。
3.1.2 坐標(biāo)轉(zhuǎn)換
因?yàn)殡娐吩O(shè)計(jì)存在差異,在無(wú)人機(jī)姿態(tài)解算時(shí)經(jīng)常會(huì)出現(xiàn)磁力計(jì)坐標(biāo)與IMU坐標(biāo)不重合的情況,這時(shí)需要將IMU坐標(biāo)系作為基準(zhǔn)(即世界坐標(biāo)系),然后將磁力計(jì)坐標(biāo)轉(zhuǎn)換到IMU坐標(biāo)上,進(jìn)而解算出正確的姿態(tài)角。同樣地,對(duì)于測(cè)量到的磁通量,也要通過(guò)正球投射的方式計(jì)算出投射量在加速度計(jì)坐標(biāo)系的旋轉(zhuǎn)矩陣,然后使用歸一化算法得到加速度計(jì)的旋轉(zhuǎn)矩陣。
3.1.3 姿態(tài)融合
農(nóng)業(yè)植保無(wú)人機(jī)的飛行姿態(tài)融合方法有多種,比較常用的有矩陣融合、歐拉角融合等,不同的姿態(tài)融合方式在適用場(chǎng)景和表示方法上存在差異。從調(diào)查情況來(lái)看,農(nóng)業(yè)植保無(wú)人機(jī)多為四旋翼,可以選擇歐拉角和四元數(shù)融合算法[6]。歐拉角由3個(gè)獨(dú)立的角參量構(gòu)成,分別是章動(dòng)角、進(jìn)動(dòng)角、自轉(zhuǎn)角,使用該算法進(jìn)行姿態(tài)融合的優(yōu)勢(shì)在于無(wú)人機(jī)的姿態(tài)更加直觀形象、易于理解,缺點(diǎn)是計(jì)算量較大。在使用歐拉角算法求解無(wú)人機(jī)姿態(tài)時(shí),需要建立歐拉角微分方程,該方程中包含許多三角運(yùn)算,計(jì)算量較大,因此該算法通常適用于無(wú)人機(jī)飛行姿態(tài)變化不大的情況[7]。相比之下,四元數(shù)算法則是利用4個(gè)變量描述物體在四維空間的旋轉(zhuǎn),極大地提高了姿態(tài)解算的效率。在姿態(tài)解算時(shí),首先定義1個(gè)四元數(shù),利用四元數(shù)中的4個(gè)未知量建立線性微分方程組,通過(guò)求解方程組的方式,實(shí)現(xiàn)對(duì)無(wú)人機(jī)的姿態(tài)解算。
PID控制算法中的比例(P)、積分(I)和微分(D)在無(wú)人機(jī)飛行控制系統(tǒng)中的作用如下:
1)比例調(diào)節(jié)。當(dāng)飛行系統(tǒng)發(fā)生偏差時(shí),通過(guò)比例調(diào)節(jié)縮小偏差。比例作用越大,則調(diào)節(jié)用時(shí)越少,但是過(guò)大的比例調(diào)節(jié)可能導(dǎo)致無(wú)人機(jī)飛行控制系統(tǒng)的穩(wěn)定性下降。
2)積分調(diào)節(jié)。用于消除系統(tǒng)的穩(wěn)態(tài)誤差,可以提高系統(tǒng)的動(dòng)態(tài)響應(yīng)速度。
3)微分調(diào)節(jié)。可以對(duì)偏差在未來(lái)一段時(shí)間內(nèi)的變化趨勢(shì)做出預(yù)測(cè),從而根據(jù)預(yù)測(cè)結(jié)果提前采取控制策略,達(dá)到減少超調(diào)量、縮短調(diào)節(jié)用時(shí)的效果。同時(shí),微分調(diào)節(jié)也可在一定程度上提升系統(tǒng)的動(dòng)態(tài)性能[8]。
在無(wú)人機(jī)飛行姿態(tài)的調(diào)控中,PID控制算法的實(shí)現(xiàn)流程為:首先通過(guò)比例調(diào)節(jié)確定臨界震蕩的P值,適當(dāng)減小P值并增加I值,觀察靜態(tài)誤差的變化,不斷調(diào)節(jié)P值和I值,直到靜態(tài)誤差完全消除。最后增加D值,達(dá)到抑制干擾的目的。
本文在設(shè)計(jì)農(nóng)業(yè)植保無(wú)人機(jī)飛行控制系統(tǒng)時(shí),為了進(jìn)一步增強(qiáng)姿態(tài)調(diào)控的穩(wěn)定性,選擇了角度單環(huán)PID控制算法與角速度環(huán)PID控制算法串聯(lián)的方式[9]。在PID控制系統(tǒng)中,以遙控?cái)?shù)據(jù)(期望角度)作為輸入量,以傳感器的測(cè)量角度作為反饋量。分別采集俯仰角、翻滾角、偏航角數(shù)據(jù),三者結(jié)合可以得到期望角速度。將角速度的期望值與測(cè)量值(反饋值)作差,計(jì)算結(jié)果作為角速度環(huán)PID控制器的輸入量,經(jīng)過(guò)處理后輸出PWM信號(hào),利用該信號(hào)實(shí)現(xiàn)對(duì)多旋翼電機(jī)的控制,進(jìn)而改變農(nóng)業(yè)植保無(wú)人機(jī)的飛行姿態(tài)。當(dāng)無(wú)人機(jī)分姿態(tài)改變后,傳感器會(huì)繼續(xù)測(cè)量新的角度與角速度,再次將測(cè)量值與期望值對(duì)比,重復(fù)上述過(guò)程,從而實(shí)現(xiàn)閉環(huán)控制,保證了控制的穩(wěn)定性和精確性。
本文基于農(nóng)業(yè)植保作業(yè)需求設(shè)計(jì)的無(wú)人機(jī)飛行控制系統(tǒng),具有以下應(yīng)用優(yōu)勢(shì):第一,自動(dòng)化程度高,對(duì)地面站遠(yuǎn)程控制的依賴性小。農(nóng)業(yè)站工作人員可以在飛行控制系統(tǒng)的人機(jī)交互界面上自主規(guī)劃飛行線路,并根據(jù)農(nóng)田分布和施藥需要,在電子地圖上標(biāo)定噴灑農(nóng)藥的起點(diǎn)和終點(diǎn)。當(dāng)農(nóng)業(yè)植保無(wú)人機(jī)飛行到起點(diǎn)后,飛行控制系統(tǒng)發(fā)送指令開(kāi)啟噴藥裝置,開(kāi)始噴灑農(nóng)藥;當(dāng)農(nóng)業(yè)植保無(wú)人機(jī)飛行到終點(diǎn)后,飛行控制系統(tǒng)再發(fā)送指令關(guān)閉噴藥裝置,結(jié)束噴藥任務(wù)[10]。在整個(gè)過(guò)程中,農(nóng)業(yè)站工作人員只需要遠(yuǎn)程操控。第二,農(nóng)藥使用率高,噴施效果好,飛行控制系統(tǒng)會(huì)根據(jù)預(yù)設(shè)飛行參數(shù)改變自身的飛行高度、飛行姿態(tài)等,然后選擇最佳位置噴灑農(nóng)藥。這樣就能最大程度上避免高空中噴灑的農(nóng)藥隨風(fēng)飄散造成浪費(fèi),盡可能讓農(nóng)藥灑落到地面農(nóng)作物上,對(duì)降低噴藥成本和提高農(nóng)藥利用率有積極作用。第三,安全性高,利用農(nóng)業(yè)植保無(wú)人機(jī)代替人工噴灑農(nóng)藥,可以避免農(nóng)藥揮發(fā)、滲漏對(duì)人體健康產(chǎn)生的危害,整個(gè)噴藥過(guò)程基本上實(shí)現(xiàn)了無(wú)接觸操作,在用藥安全方面具有顯著的優(yōu)勢(shì)。
將農(nóng)業(yè)植保無(wú)人機(jī)應(yīng)用到農(nóng)業(yè)植保作業(yè)中,除了能夠減輕勞動(dòng)壓力、提高植保效率外,還能避免農(nóng)藥噴灑過(guò)程中對(duì)植保人員造成健康危害。為了保證農(nóng)藥噴灑的均勻性和有效性,對(duì)多旋翼無(wú)人機(jī)的飛行控制提出了嚴(yán)格要求。本文基于STM32F428IGT6芯片設(shè)計(jì)的無(wú)人機(jī)飛行控制系統(tǒng),利用定位系統(tǒng)、傳感器系統(tǒng)、通信系統(tǒng)等,可以實(shí)時(shí)獲取無(wú)人機(jī)的飛行姿態(tài)、飛行高度等基本參數(shù),在此基礎(chǔ)上利用規(guī)劃好的飛行軌跡,讓無(wú)人機(jī)沿著既定路線飛行,并發(fā)送控制指令讓無(wú)人機(jī)在合適位置噴灑農(nóng)藥,達(dá)到了遠(yuǎn)程控制、自動(dòng)作業(yè)的效果。