溫鑫偉,馬 瑋,余科松,刁 珊,武志明
(山西農(nóng)業(yè)大學(xué) a.農(nóng)業(yè)工程學(xué)院;b.園藝學(xué)院,山西 晉中 030801)
中國處于季風(fēng)氣候控制區(qū),夏季高溫多雨,病蟲害發(fā)生嚴(yán)重[1]。據(jù)國家統(tǒng)計局資料顯示,2019年我國農(nóng)藥使用量為139.17萬t,且農(nóng)業(yè)生產(chǎn)中利用農(nóng)藥進(jìn)行化學(xué)防治農(nóng)作物病蟲害是我國最主要的防治方法之一[2]。目前,我國大多數(shù)地區(qū)防治病蟲害仍采用大容量、全覆蓋的農(nóng)藥噴灑方式,只有20%~30%的農(nóng)藥沉積在靶標(biāo)區(qū),其余的通過徑流、滲漏、飄移等方式流失到土壤中,破壞生態(tài)環(huán)境;同時,農(nóng)藥藥液配比精度多依靠操作者的經(jīng)驗,嚴(yán)重影響了農(nóng)產(chǎn)品安全[3-5]。因此,實現(xiàn)農(nóng)藥減量,提高農(nóng)藥利用率成為了施藥技術(shù)發(fā)展的必然趨勢。植保無人機(jī)作為現(xiàn)代農(nóng)業(yè)的新產(chǎn)物,由于具有作業(yè)效率高、效果好、省水省藥等優(yōu)點,在近幾年來,得到了迅猛的發(fā)展[6]。據(jù)統(tǒng)計,農(nóng)業(yè)植保無人機(jī)的工作效率超過了傳統(tǒng)人工噴灑效率的60%以上,極大地避免了農(nóng)藥的浪費(fèi),對減少濫用農(nóng)藥引起的環(huán)境問題有著重要的影響[7-8]。因此,農(nóng)藥的精準(zhǔn)實時變量噴灑技術(shù)和植保無人機(jī)的結(jié)合,成為了現(xiàn)代農(nóng)業(yè)提高農(nóng)藥利用率最佳的解決方案[9-10]。但是,目前市面上的植保無人機(jī)在遇到小地塊、無法規(guī)劃的地塊和障礙物附近時,只能手動作業(yè)。在手動作業(yè)過程中,無人機(jī)的飛行速度和農(nóng)藥噴灑的流量均由人為控制,易出現(xiàn)漏噴、重噴和噴灑不均的情況。為解決此問題,設(shè)計了一種實時變量農(nóng)藥噴灑控制系統(tǒng),可以根據(jù)設(shè)置好的畝用量,實現(xiàn)無人機(jī)飛行速度和噴灑流量實時匹配,達(dá)到提高農(nóng)藥利用率的目的。
系統(tǒng)采用大疆T30植保無人機(jī)作為系統(tǒng)搭建的平臺,如圖1所示。
圖1 大疆T30植保無人機(jī)Fig.1 DJI T30 plant protection UAV
大疆T30植保無人機(jī)是目前國內(nèi)最先進(jìn)和典型的多旋翼植保無人機(jī)之一。系統(tǒng)由GPS北斗定位模塊、流量計、STM32F103ZET6核心板、USART HMI 串口屏、隔膜泵、離心噴頭、電子調(diào)速器(ESC)、L298N電機(jī)控制器、433MHz無線數(shù)傳模塊、54V直流電池電源及電源穩(wěn)壓降壓板組成,可分為4個模塊,分別為數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、動作執(zhí)行模塊及電源供電模快。實時變量噴灑控制系統(tǒng)技術(shù)方案框圖如圖2所示。其中,數(shù)據(jù)采集模塊負(fù)責(zé)采集植保無人機(jī)飛行速度及隔膜泵流量等參數(shù);數(shù)據(jù)處理模塊負(fù)責(zé)對采集到的數(shù)據(jù)進(jìn)行處理,并下達(dá)相應(yīng)的執(zhí)行指令;動作執(zhí)行模塊負(fù)責(zé)對數(shù)據(jù)處理模塊下達(dá)的指令進(jìn)行執(zhí)行,控制隔膜泵的流量大小,調(diào)節(jié)離心噴頭的轉(zhuǎn)速,并將需要顯示的信息,通過433MHz傳輸給USART HMI 串口屏顯示;電源供電模塊負(fù)責(zé)給整個系統(tǒng)進(jìn)行供電。整個系統(tǒng)的供電接口和各模塊之間的連接,都采用插拔接口設(shè)計,組裝、拆卸簡單方便,并將數(shù)據(jù)處理模塊和電源供電模塊進(jìn)行了防水處理,將單片機(jī)的下載接口預(yù)留出來,方便后期的程序調(diào)試和升級。
圖2 實時變量噴灑控制系統(tǒng)技術(shù)方案框圖Fig.2 Block diagram of the technical scheme of real-time variable spraying control system
電源開關(guān)開啟后,系統(tǒng)需要等待大約3s進(jìn)行系統(tǒng)的初始化;初始化完成后,USART HMI 串口屏?xí)@示當(dāng)前的衛(wèi)星數(shù)、經(jīng)緯度、海波高度及無人機(jī)飛行速度等信息參數(shù)。工作時,用戶通過USART HMI 串口屏觸屏選擇智能模式,再跳轉(zhuǎn)頁面,輸入畝用量;等待輸入完成后,點擊確認(rèn)按鈕,數(shù)據(jù)就會通過433MHz無線數(shù)傳模塊發(fā)送給STM32單片機(jī)單片機(jī)根據(jù)北斗GPS定位模塊和流量計采集到數(shù)據(jù)經(jīng)過計算后,輸出合適的PWM信號控制隔膜泵的農(nóng)藥流量和離心噴頭轉(zhuǎn)速,從而達(dá)到實時變量農(nóng)藥噴灑的目的。同時,也可以選擇自定義模式,輸入所需的農(nóng)藥流量和離心噴頭的轉(zhuǎn)速,實現(xiàn)自定義農(nóng)藥噴灑的目的。
在植保作業(yè)對象、植保無人機(jī)噴藥幅寬、作業(yè)高度及所用農(nóng)藥畝用量確定后,隔膜泵抽取藥箱的農(nóng)藥流量和植保無人機(jī)的飛行速度是成正相關(guān)關(guān)系[11]。植保無人機(jī)在不同的飛行速度時所需施藥流量的計算式為
Q=60MWv
(1)
式中Q—理論流量(L/min);
M—農(nóng)藥單位面積使用量(L/m2);
W—噴幅(m);
v—飛行速度(m/s)。
為了更加精確地控制農(nóng)藥的流量,引入了PID算法。 控制器將流量計采集到的實際流量和理論流量比較后,經(jīng)過PID計算得出一個輸出信號,將該輸出信號轉(zhuǎn)化為PWM信號,并將PWM信號輸出至L298N電機(jī)驅(qū)動器來控制隔膜泵,最終實現(xiàn)農(nóng)藥流量的精確控制。本次采用增量式PID算法,增量式數(shù)字PID控制表達(dá)式為
△u(k)=KP[e(k)-e(k-1)]+KIe(k)+KD[e(k)-2e(k-1)+e(k-2)]
(2)
由于采用增量式PID控制,實際的輸出表達(dá)式為
u(k)=u(k-1)+Δu(k)
(3)
其中,u(k)為當(dāng)前輸出;u(k-1)為上一次輸出。因此,當(dāng)前輸出等于上次輸出和本次調(diào)節(jié)量的和。
2.1.1 主控制器
本設(shè)計采用ST公司生產(chǎn)的ARM控制器STM32F103ZET6單片機(jī)作為主控制器,具有64kB SRAM、512kB Flash、2個基本定時器、4個通用定時器、2個高級定時器、2個DMA控制器、3個SPI、2個IIC、5個串口及112個通用IO口等豐富的資源配置;使用STM32F103ZET6最小系統(tǒng)作為主控制系統(tǒng),包括主控制芯片、時鐘電路、復(fù)位電路和調(diào)試電路[12-14]。
2.1.2 數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊由北斗GPS定位模塊和流量計模塊組成。本設(shè)計使用北斗GPS定位模塊為ATK-S1216F8-BD GPS/北斗模塊,同外部設(shè)備的通信接口采用 UART(串口)方式,輸出的GPS/北斗定位數(shù)據(jù)采用NMEA-0183協(xié)議(默認(rèn)),控制協(xié)議為SkyTraq協(xié)議[15]。NMEA 0183 是美國國家海洋電子協(xié)會( National Marine Electronics Association)為海用電子設(shè)備制定的標(biāo)準(zhǔn)格式,目前也已成為GPS/北斗導(dǎo)航設(shè)備統(tǒng)一的RTCM( Radio Technical Commission for Maritime services)標(biāo)準(zhǔn)協(xié)議[16]。北斗GPS模塊用于采集植保無人機(jī)飛行速度、經(jīng)緯度、海拔高度等無人機(jī)飛行參數(shù)信息,通過串口通訊將數(shù)據(jù)實時發(fā)送給主控制器。流量計選用YF-S201流量計傳感器,用于采集隔膜泵出水口的流量,主控制器通過外部中斷讀取產(chǎn)生的脈沖數(shù),經(jīng)過內(nèi)部計算得到農(nóng)藥的實時流量。
2.1.3 動作執(zhí)行模塊
動作執(zhí)行模塊由24V 7A L298N電機(jī)驅(qū)動器、隔膜泵、無刷電調(diào)及離心噴頭組成。L298N電機(jī)驅(qū)動器用于控制隔膜泵藥液流量,通過接收單片機(jī)發(fā)來的PWM信號,來改變輸出電壓,其輸出的電壓與輸入的脈沖占空比成線性關(guān)系,從而改變流量大小。無刷電調(diào)配合離心噴頭通過接收單片機(jī)的PWM信號來改變霧滴大小。
2.1.4 電源供電模塊
電源供電模塊采用分級降壓的方式。電源選用的是54V 6000mAh的鋰電池,通過一級降壓模塊將電壓降為24V,用于供離心噴頭和隔膜泵使用。二級降壓模塊將電壓從24V降為5V,供單片機(jī)、流量計和GPS&BD模塊使用。人機(jī)交互模塊單獨(dú)使用12.4V 2000mAh的航模鋰電池通過降壓模塊降為5V供電。
2.1.5 人機(jī)交互模塊
人機(jī)交互模塊由USART HMI智能串口屏和433MHz無線通信模塊組成。串口屏功能強(qiáng)大,具有多種組態(tài)控件,如按鈕控件、進(jìn)度條控件、文本控件、指針控件等[17]。系統(tǒng)在運(yùn)行過程中可以通過串口通訊根據(jù)廠家給定的指令集進(jìn)行數(shù)據(jù)的修改和回傳,且它本身自帶處理器和flash,不會占用太多單片機(jī)資源。其界面UI設(shè)計,通過廠家提供的上位機(jī)軟件進(jìn)行圖形化編程,大大縮短了人機(jī)交互開發(fā)周期。USART HMI智能串口屏作為地面手持設(shè)備,在植保無人機(jī)作業(yè)時,通過433MHz無線通信模塊與植保無人機(jī)上的主控制器進(jìn)行通訊。433MHz無線通信模塊具有傳輸距離遠(yuǎn)、通訊協(xié)議簡單及傳輸數(shù)據(jù)穩(wěn)定等特點,可滿足設(shè)計需求。
系統(tǒng)軟件設(shè)計由數(shù)據(jù)采集部分、動作執(zhí)行部分和上位機(jī)部分組成。
2.2.1 數(shù)據(jù)采集部分程序設(shè)計
數(shù)據(jù)采集部分程序設(shè)計由北斗GPS信息采集部分和流量計數(shù)據(jù)采集部分組成。
北斗GPS模塊與單片機(jī)的UART3進(jìn)行通信,在主程序中,先進(jìn)行串口初始化,在初始化中將波特率設(shè)為38 400,設(shè)置定位信息更新速度為5Hz,判斷GPS模塊是否在位;當(dāng)串口3接收到數(shù)據(jù)后,傳給NMEA-0183解析函數(shù),按照NMEA-0183協(xié)議進(jìn)行解析,完成后將其存儲等待其他程序調(diào)用。流量計與單片機(jī)PE2引腳連接,將該引腳復(fù)用為外部中斷2,外部中斷配置為下降沿觸發(fā),中斷服務(wù)函數(shù)內(nèi)累加觸發(fā)脈沖,在滴答定時器的中斷服務(wù)函數(shù)里將1s內(nèi)累計的脈沖數(shù)換算為頻率f,可根據(jù)公式計算出流量Q,即
(4)
式中Q—水泵流量(L /min);
f—脈沖頻率(Hz);
s—時間(s)。
2.2.2 動作執(zhí)行部分程序設(shè)計
動作執(zhí)行部分程序設(shè)計由隔膜泵驅(qū)動部分和離心噴頭驅(qū)動部分組成。
單片機(jī)通用定時器3的通道2用來輸出PWM信號控制隔膜泵,其PWM信號為固定頻率1kHz,占空比調(diào)節(jié)為0~100%,步長為1%。在程序中,首先調(diào)用TIM3_PWM_Init(arr,psc)函數(shù)初始化PWM配置,通過調(diào)用TIM_SetCompare2(TIM_TypeDef*TIMx,uint16_t Compare2)函數(shù)改變占空比來調(diào)節(jié)農(nóng)藥流量。為了更加精確地控制流量,引入了增量式 PID 算法,代碼如下:
float PID (float temp_val)
{
/*傳入目標(biāo)值*/
pid.target_val = temp_val;
/*計算目標(biāo)值與實際值的誤差*/
pid.err=pid.target_val-pid.actual_val;
/*PID算法實現(xiàn)*/
Float increment_val = pid.Kp*(pid.err - pid. err_next)+pid.Ki*pid.err + pid.Kd*(pid.err -2 * pid.err_next + pid.err_last);
/*累加*/
pid.actual_val += increment_val;
/*傳遞誤差*/
pid.err_last = pid.err_next;
pid.err_next = pid.err;
/*返回當(dāng)前實際值*/
returnpid.actual_val;
}
單片機(jī)通用定時器2的通道2輸出PWM信號用來控制離心噴頭,由于使用無刷電調(diào)控制,其PWM信號頻率為47.1965Hz,占空比調(diào)節(jié)為0~7.5%,步長為0.75%。由于是以大疆T30為開發(fā)平臺,因此使用了6個離心噴頭,并將單片機(jī)輸出的PWM信號用分線板將信號分到6個電調(diào)上用于控制離心噴頭。
2.2.3 上位機(jī)軟件設(shè)計
使用USART HMI串口屏作為上位機(jī),在程序方面主要分為兩方面:一方面是上位機(jī)UI設(shè)計,通過廠家提供的USART HMI上位機(jī)軟件進(jìn)行圖形化編程;另一方面是根據(jù)廠家給的指令集編寫相應(yīng)的數(shù)據(jù)包解析程序和數(shù)據(jù)包編碼程序,實現(xiàn)和USART HMI串口屏通訊。在此,重點介紹上位機(jī)UI設(shè)計,上位機(jī)界面如圖3所示。首先,在USART HMI上位機(jī)軟件新建工程,通過界面右側(cè)的頁面新建頁面,界面左下角圖片庫用于背景;界面左側(cè)是相應(yīng)的控件可以直接拖拉到頁面上,界面右下角屬性框修改控件屬性,界面底側(cè)為事件,如按鍵控件在按下前和按下后都算是一個事件,在事件下面進(jìn)行編程,就可在事件發(fā)生后運(yùn)行代碼。上位機(jī)工作流程圖如圖4所示。
系統(tǒng)的響應(yīng)時間是衡量一個設(shè)備性能好壞的重要指標(biāo)之一,本次測試分為系統(tǒng)開機(jī)初始化響應(yīng)時間測試和串口屏與主控制器通訊系統(tǒng)時間響應(yīng)測試。
系統(tǒng)開機(jī)初始化響應(yīng)時間測試為在室外開闊環(huán)境下,從打開總電源到系統(tǒng)正常運(yùn)行所需時間,試驗次數(shù)為10次,平均值為3.5s?,F(xiàn)場測試圖如圖5所示。串口屏與主控制器通訊系統(tǒng)時間響應(yīng)測試為在系統(tǒng)正常運(yùn)行時,在串口屏離主設(shè)備1m和1km的距離,通過串口屏里的自定義模式設(shè)置隔膜泵流量和離心噴頭的轉(zhuǎn)速,記錄從串口屏點擊確定按鈕到主設(shè)備開始運(yùn)行的時間;試驗次數(shù)為10次,在串口屏離主設(shè)備1m 的距離,平均響應(yīng)時間為10ms;在串口屏離主設(shè)備1km 的距離,平均響應(yīng)時間為45ms。
圖3 上位機(jī)界面Fig.3 PC interface
圖4 上位機(jī)工作流程圖Fig.4 Work flow chart of upper computer
圖5 現(xiàn)場測試圖Fig.5 Field test diagram
為了測試系統(tǒng)在植保無人機(jī)作業(yè)中,農(nóng)藥流量跟隨植保無人機(jī)飛行速度的實時變化及對流量的控制性能,根據(jù)實際作業(yè)經(jīng)驗,設(shè)置幅寬為常用值5m,1hm2農(nóng)藥用量為常用值22.5L和30L,對7個不同飛行速度下系統(tǒng)1min的實際流量和預(yù)期流量進(jìn)行測試。由于在植保無人機(jī)飛行過程中進(jìn)行測試無實施性,因此選擇在室內(nèi)無風(fēng)環(huán)境下,通過串口屏手動輸入飛行速度,測量系統(tǒng)實際流量。測試結(jié)果如表1和表2所示。由表 1、表2可知:預(yù)期流量和實際流量最小誤差為1.2%,最大為 4.4%,整體誤差不超過4.5%,處在誤差范圍內(nèi)。分析最大流量誤差較大的原因,可能有兩點:一是在實際測試時有誤差;二是使用的隔膜泵精度較差。
表1 用量22.5 L/hm2系統(tǒng)流量控制性能測試數(shù)據(jù)Table 1 The usage per hectare is 22.5L/hm2 system flow control performance test data
表2 用量30 L/hm2系統(tǒng)流量控制性能測試數(shù)據(jù)Table 2 The usage per hectare is 30 L/hm2 system flow control performance test data
續(xù)表2
1)設(shè)計了一種基于STM32F103ZET6單片機(jī)的實時農(nóng)藥變量控制系統(tǒng)和一種基于PWM技術(shù)與增量式 PID 算法相結(jié)合的農(nóng)藥流量控制方法。工作時,通過北斗GPS定位模塊采集無人機(jī)飛行速度等無人機(jī)姿態(tài)參數(shù),通過無線通信和串口通訊協(xié)議完成數(shù)據(jù)傳輸,實現(xiàn)了植保無人機(jī)在手動作業(yè)模式下,施藥流量隨植保無人機(jī)飛行速度變化而實時匹配。對系統(tǒng)響應(yīng)時間性能和系統(tǒng)流量控制性能進(jìn)行了測試,結(jié)果表明:系統(tǒng)開機(jī)初始化時間為3.5s,在地面站離主設(shè)備1m~1km距離之間,系統(tǒng)響應(yīng)時間為10~45ms之間;農(nóng)藥流量控制系統(tǒng)的實際流量和理論流量之間的平均誤差為2.2%,系統(tǒng)性能和控藥精度都滿足試驗預(yù)期,完成了設(shè)計要求。
2)基于USART HMI串口屏設(shè)計了系統(tǒng)的上位機(jī),可通過屏幕實時顯示系統(tǒng)的作業(yè)參數(shù),同時通過433MHz無線通信模塊實現(xiàn)了遠(yuǎn)距離控制,滿足了實際作業(yè)需求。
3)系統(tǒng)中噴頭為離心噴頭,相比壓力式噴頭霧化效果更好,霧滴覆蓋率和霧滴粒徑范圍更廣,且可以在上位機(jī)上直接設(shè)置噴頭轉(zhuǎn)速來改變霧滴粒徑。
4)根據(jù)試驗數(shù)據(jù)分析,在施藥流量低于1L/min和高于3.5L/min相對誤差會高于3%,后續(xù)還需要通過優(yōu)化PID算法和采用更高精度、更大功率的隔膜泵來改進(jìn)設(shè)計。