龔瑞昆,田 野,石馨誠(chéng)
(1.華北理工大學(xué)電氣工程學(xué)院,河北 唐山 063210;2.華北理工大學(xué)遷安學(xué)院,河北 唐山 064440)
水資源的短缺已經(jīng)開(kāi)始影響人們的正常生活,給人們生活帶來(lái)不便的同時(shí),由于我國(guó)人口數(shù)量以及淡水需求量的增加,這種情況也隨之日益惡化。與發(fā)達(dá)國(guó)家相比我們發(fā)展中國(guó)家在農(nóng)業(yè)灌溉方面,由于缺乏有效的智能灌溉系統(tǒng)[1,2],造成對(duì)淡水資源嚴(yán)重消耗的局面,尤其是粗放型灌溉對(duì)淡水資源的浪費(fèi)更為嚴(yán)重。因此,改善粗放型灌溉模式設(shè)計(jì)先進(jìn)并且智能的灌溉系統(tǒng)勢(shì)在必行。
為了在灌溉中充分節(jié)約淡水資源,研究了一種基于現(xiàn)場(chǎng)傳感器采集土壤水分信息和基于物聯(lián)網(wǎng)(IOT)平臺(tái)的智能土壤水分預(yù)測(cè)系統(tǒng)。在該系統(tǒng)中還引入了規(guī)劃預(yù)測(cè)算法,該算法具有較高的精度和較低的誤差,應(yīng)用在灌溉系統(tǒng)中可以幫助用戶制定合理有效的灌溉與最佳用水決策。
整個(gè)灌溉系統(tǒng)的架構(gòu)設(shè)計(jì)如圖1所示。主要由農(nóng)田數(shù)據(jù)采集設(shè)備模塊,天氣信息接收模塊,實(shí)時(shí)響應(yīng)監(jiān)測(cè)處理模塊,土壤水分預(yù)測(cè)算法處理模塊,用戶灌溉控制決策模塊五部分構(gòu)成。這五部分在整體結(jié)構(gòu)中又分為3個(gè)層面:感知層、傳輸層、應(yīng)用層[3]。
感知層主要包括農(nóng)田數(shù)據(jù)采集設(shè)備模塊。該模塊功能的實(shí)現(xiàn)是基于各類(lèi)傳感器對(duì)農(nóng)田實(shí)時(shí)數(shù)據(jù)的采集,包括:TDR-3型土壤溫濕度傳感器、DHT11空氣溫濕度傳感器、RY-GH型光輻射傳感器,這些傳感器的輸出信號(hào)由Arduino芯片讀取并將數(shù)據(jù)存儲(chǔ)到網(wǎng)關(guān)[4],再通過(guò)Python語(yǔ)言編寫(xiě)開(kāi)發(fā)的程序與Web服務(wù)器中的MySQL數(shù)據(jù)庫(kù)實(shí)現(xiàn)同步。該系統(tǒng)還加入ZigBee無(wú)線傳感網(wǎng)絡(luò)實(shí)現(xiàn)感知區(qū)域的拓展,擴(kuò)大感知范圍。
傳輸層主要包括天氣信息接收模塊,實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)分析預(yù)處理模塊,土壤水分預(yù)測(cè)算法處理模塊。天氣信息等數(shù)據(jù)通過(guò)Python語(yǔ)言開(kāi)發(fā)的Web網(wǎng)頁(yè)來(lái)收集。Web服務(wù)器還使用JSON、XML或HTML這些格式的API門(mén)戶[5,6],將這些門(mén)戶提供的預(yù)測(cè)信息,儲(chǔ)存在網(wǎng)絡(luò)服務(wù)器的MySQL數(shù)據(jù)庫(kù)中。土壤水分預(yù)測(cè)算法利用SVR模型和k-means聚類(lèi)算法,建立了基于現(xiàn)場(chǎng)傳感器數(shù)據(jù)和天氣預(yù)報(bào)數(shù)據(jù)的土壤水分預(yù)測(cè)算法,該算法通過(guò)訓(xùn)練數(shù)據(jù)可以測(cè)得未來(lái)幾天土壤水分信息。根據(jù)土壤水分含量差和對(duì)未來(lái)預(yù)測(cè)的降雨量提供科學(xué)的灌溉決策。傳輸層還利用Python語(yǔ)言和MySQL數(shù)據(jù)庫(kù)結(jié)合API開(kāi)發(fā)了一個(gè)基于實(shí)時(shí)響應(yīng)的Web用戶界面,用于實(shí)時(shí)監(jiān)測(cè)和調(diào)度灌溉操作。
應(yīng)用層主要包括用戶灌溉控制決策模塊。用戶可以設(shè)定合適的土壤濕度閾值。在該模塊中人們根據(jù)土壤水分和降水信息的預(yù)測(cè)與閾值進(jìn)行比對(duì)來(lái)啟動(dòng)或終止灌溉系統(tǒng)。主要通過(guò)水泵連接繼電器控制開(kāi)關(guān)的節(jié)點(diǎn)進(jìn)行操作,該節(jié)點(diǎn)由Web服務(wù)通過(guò)一個(gè)觸發(fā)器控制,該觸發(fā)器來(lái)自基于響應(yīng)的Web服務(wù) API用于實(shí)時(shí)監(jiān)視。通過(guò)Web界面,用戶可以在手動(dòng)和自動(dòng)模式下遠(yuǎn)程管理水泵的開(kāi)關(guān)。
圖1 系統(tǒng)結(jié)構(gòu)圖Fig.1 System structure diagram
降水量和蒸騰量是本文灌溉系統(tǒng)的基本參數(shù),也是在智能灌溉系統(tǒng)設(shè)計(jì)中影響土壤水分的重要因素。所以,智能灌溉系統(tǒng)的關(guān)鍵是對(duì)土壤水分差的預(yù)測(cè)。
土壤水分差的估算依賴(lài)于地表水分蒸騰量[7],哈格里夫斯和薩馬尼1985年提出了一種基于溫度和地球外輻射的估算方法即HS算法[8]。它表示為:
(1)
式中:Ei為土壤水分差;Tmax為土表最高溫度;Tmin為土表最低溫度;Ra為光輻射量。
2.2.1 SVR訓(xùn)練模型
SVR通過(guò)傳感器節(jié)點(diǎn)采集的各類(lèi)數(shù)據(jù)即土壤濕度、空氣溫度與相對(duì)濕度、紫外線輻射強(qiáng)度實(shí)測(cè)值、土壤實(shí)測(cè)水分差進(jìn)行學(xué)習(xí)訓(xùn)練得到自變量和因變量之間的非線性耦合關(guān)系,從而得到預(yù)測(cè)土壤水分差。
對(duì)于本系統(tǒng)SVR回歸問(wèn)題,我們先給定樣本:
E=[(x1,y1),(x2,y2),…,(xm,ym)]yi∈R
(2)
將各變量通過(guò)SVR訓(xùn)練模型[9]學(xué)習(xí)得到一個(gè)f(x),使f(x)與y盡可能的無(wú)限接近。理想狀態(tài)下當(dāng)f(x)與y完全相同時(shí),誤差為零。而實(shí)際在SVR模型中f(x)與y之間會(huì)有δ的偏差,誤差不可忽略,當(dāng)且僅當(dāng)f(x)與y的差的絕對(duì)值小于δ時(shí),才認(rèn)為預(yù)測(cè)結(jié)果合理。合理誤差帶如圖2陰影圓圈部位所示。
圖2 SVR模型合理誤差帶Fig.2 Reasonable error band of SVR model
根據(jù)圖2可以將SVR求解問(wèn)題轉(zhuǎn)化為:
(3)
式中:xi為土壤濕度、空氣溫度與相對(duì)濕度、紫外線輻射強(qiáng)度實(shí)測(cè)值;yi為土壤實(shí)測(cè)水分差;f(x)為土壤預(yù)測(cè)水分差;w,b均為模型約束參數(shù);C為常量;lε為松弛因子。
(4)
加入松弛因子后,式(3)的表達(dá)形式為:
(5)
(6)
最后引入拉格朗乘子,可得拉格朗日函數(shù):
(7)
對(duì)式(7)求偏導(dǎo),令導(dǎo)數(shù)為零:
(8)
將式(8)帶入式子(7)即可求得SVR的對(duì)偶問(wèn)題,計(jì)算過(guò)程還需要滿足KKT條件,最后求得SVR解為:
(9)
2.2.2 k-means聚類(lèi)算法
k-means聚類(lèi)算法是先隨機(jī)選取K個(gè)對(duì)象作為初始的聚類(lèi)中心。然后計(jì)算每個(gè)對(duì)象與各個(gè)種子聚類(lèi)中心之間的距離,把每個(gè)對(duì)象分配給距離它最近的聚類(lèi)中心。k-means聚類(lèi)算法[10]以距離作為數(shù)對(duì)象間相似度量標(biāo)準(zhǔn),可以根據(jù)歐式距離計(jì)算公式表示:
(10)
式中:xi,yi均為2.2節(jié)訓(xùn)練輸出結(jié)果,i=1,2,…,k;k為對(duì)象個(gè)數(shù)。
在聚類(lèi)算法過(guò)程中,類(lèi)簇中心需要對(duì)訓(xùn)練結(jié)果對(duì)象進(jìn)行多次迭代更新。定義k個(gè)類(lèi)簇中心為Centerk,更新方式如下:
(11)
式中:Ck為k個(gè)類(lèi)簇;|Ck|為第k個(gè)類(lèi)簇中對(duì)象個(gè)數(shù)。
k-means聚類(lèi)算法可采用誤差平方和準(zhǔn)則函數(shù)來(lái)終止迭代,函數(shù)表示如下:
(12)
當(dāng)兩次迭代結(jié)果差值小于某一閾值即:ΔJ<ε時(shí),迭代終止。
2.2.3 規(guī)劃預(yù)測(cè)算法灌溉原理
規(guī)劃預(yù)測(cè)算法是在SVR回歸模型的基礎(chǔ)上結(jié)合k-means聚類(lèi)算法得到的一種優(yōu)化算法,該算法結(jié)合了兩種算法的優(yōu)點(diǎn)。通過(guò)SVR模型訓(xùn)練傳感器端獲取的具有非線性關(guān)系的各類(lèi)土壤樣本數(shù)據(jù),得出具有線性相關(guān)性的數(shù)據(jù)結(jié)果,再利用k-means聚類(lèi)算法將訓(xùn)練結(jié)果進(jìn)行歸類(lèi)得到與實(shí)測(cè)值相關(guān)性高且誤差小的數(shù)據(jù),從而可以更好地預(yù)測(cè)未來(lái)天氣降水情況并得出合理的灌溉決策。土壤水分預(yù)測(cè)算法和用于數(shù)據(jù)可視化和決策支持的灌溉規(guī)劃預(yù)測(cè)算法流程原理如圖3所示。
圖3 規(guī)劃算法灌溉原理流程圖Fig.3 Flow chart of planning algorithm irrigation principle
通過(guò)TDR-3型土壤溫濕度傳感器對(duì)河北省唐山市豐南區(qū)農(nóng)田土壤水分?jǐn)?shù)據(jù)進(jìn)行實(shí)時(shí)采集轉(zhuǎn)變成電信號(hào),再將輸出的信號(hào)由Arduino芯片讀取將數(shù)據(jù)通過(guò)Wifi網(wǎng)絡(luò)上傳并存儲(chǔ)到網(wǎng)關(guān),用戶通過(guò)Python語(yǔ)言開(kāi)發(fā)的Web網(wǎng)頁(yè)端收集得到實(shí)測(cè)值,再根據(jù)HS算法和SVR+k-means聚類(lèi)規(guī)劃預(yù)測(cè)算法分別得到的未來(lái)兩周(1月1日-1月14日)土壤預(yù)測(cè)水分差如表1所示,土壤水分相對(duì)濕度如表2所示,其中,表1還分別對(duì)兩種算法進(jìn)行了均方誤差MSE計(jì)算。
(13)
式中:Y為土壤水分實(shí)測(cè)值;M為預(yù)測(cè)值。
表1 土壤水分差Ei %
表2 土壤相對(duì)濕度 %
根據(jù)表1數(shù)據(jù)通過(guò)式(13)計(jì)算得到MSE1為0.010%,MSE2為0.003%。其中MSE1、MSE2分別代表HS算法與SVR+k-means聚類(lèi)規(guī)劃預(yù)測(cè)算法得到土壤水分差與實(shí)測(cè)值的均方誤差;D1、D2分別代表方差。e1代表SVR訓(xùn)練結(jié)果與實(shí)測(cè)值之差;e2代表通過(guò)SVR+k-means聚類(lèi)規(guī)劃預(yù)測(cè)算法得到的結(jié)果與實(shí)測(cè)值之差。
由表1可以看出,與HS算法相比SVR+k-means聚類(lèi)規(guī)劃預(yù)測(cè)算法得出的土壤水分差值Ei更加接近通過(guò)傳感器測(cè)得的實(shí)測(cè)值,再通過(guò)比較均方誤差MSE可以得知SVR+k-means聚類(lèi)規(guī)劃預(yù)測(cè)算法的預(yù)測(cè)精度更高;由表2可以看出,SVR訓(xùn)練模型與SVR+k-means算法相比,后者對(duì)于土壤水分濕度的預(yù)測(cè)誤差更小,更加接近于實(shí)測(cè)值。
將傳感器在農(nóng)田中測(cè)得的土壤濕溫度、空氣相對(duì)濕度、紫外線輻射強(qiáng)度、土壤水分差參數(shù)并結(jié)合自互聯(lián)網(wǎng)的天氣預(yù)報(bào)數(shù)據(jù)作為自變量輸入上述算法流程,最后用傳統(tǒng)HS算法與SVR+k-means規(guī)劃預(yù)測(cè)算法對(duì)未來(lái)兩周的土壤水分差Ei與土壤水分相對(duì)濕度進(jìn)行了Matlab模擬仿真,輸出結(jié)果如圖4和圖5所示。
圖4 兩周土壤水分差Fig.4 Soil moisture difference in two weeks
圖5 土壤相對(duì)濕度Fig.5 Soil relative humidity
圖4紅色曲線代表傳統(tǒng)的HS方法得到的仿真結(jié)果,藍(lán)色曲線是經(jīng)過(guò)規(guī)劃算法得到的仿真結(jié)果,綠色曲線代表通過(guò)傳感器測(cè)得的實(shí)際值。以每日的土壤水分差為單位,經(jīng)過(guò)兩周的預(yù)測(cè)的結(jié)果可得與HS算法方法比較,SVR+k-means聚類(lèi)規(guī)劃預(yù)測(cè)算法預(yù)測(cè)結(jié)果與實(shí)際測(cè)量結(jié)果的擬合程度更好、波動(dòng)更小、精度更高。
通過(guò)圖5可以看出SVR+k-means聚類(lèi)規(guī)劃預(yù)測(cè)算法對(duì)土壤相對(duì)濕度的預(yù)測(cè)值更加接近實(shí)測(cè)值,比HS算法有更高的精度,體現(xiàn)了基于IOT平臺(tái)規(guī)劃預(yù)測(cè)算法的優(yōu)越性與精確性。
對(duì)土壤水分的預(yù)測(cè)是開(kāi)發(fā)智能灌溉系統(tǒng)的關(guān)鍵。農(nóng)田中對(duì)土壤水分的測(cè)量受許多環(huán)境變量的影響,如 氣溫、空氣濕度、紫外線、土壤溫度等。本文研究了一種基于IOT平臺(tái)的智能灌溉系統(tǒng),該系統(tǒng)中利用算法通過(guò)傳感器獲取的最近數(shù)據(jù)和未來(lái)天氣預(yù)報(bào)信息為預(yù)測(cè)土壤濕度提供數(shù)據(jù)支撐,對(duì)土壤水分差進(jìn)行預(yù)測(cè)。
(1)與傳統(tǒng)HS算法相比,SVR+k-means聚類(lèi)規(guī)劃規(guī)劃預(yù)測(cè)算法對(duì)土壤水分差的預(yù)測(cè)值有更高的精度與準(zhǔn)確性,更好地體現(xiàn)了規(guī)劃預(yù)測(cè)算法的實(shí)用性與可靠性。
(2)通過(guò)規(guī)劃預(yù)測(cè)算法得到的精確的土壤水分差的量化結(jié)果,可以實(shí)現(xiàn)對(duì)未來(lái)的農(nóng)田的智能灌溉控制,達(dá)到節(jié)約水資源的目的。