龔瑞昆,田 野,石馨誠
(1.華北理工大學電氣工程學院,河北 唐山 063210;2.華北理工大學遷安學院,河北 唐山 064440)
水資源的短缺已經開始影響人們的正常生活,給人們生活帶來不便的同時,由于我國人口數量以及淡水需求量的增加,這種情況也隨之日益惡化。與發達國家相比我們發展中國家在農業灌溉方面,由于缺乏有效的智能灌溉系統[1,2],造成對淡水資源嚴重消耗的局面,尤其是粗放型灌溉對淡水資源的浪費更為嚴重。因此,改善粗放型灌溉模式設計先進并且智能的灌溉系統勢在必行。
為了在灌溉中充分節約淡水資源,研究了一種基于現場傳感器采集土壤水分信息和基于物聯網(IOT)平臺的智能土壤水分預測系統。在該系統中還引入了規劃預測算法,該算法具有較高的精度和較低的誤差,應用在灌溉系統中可以幫助用戶制定合理有效的灌溉與最佳用水決策。
整個灌溉系統的架構設計如圖1所示。主要由農田數據采集設備模塊,天氣信息接收模塊,實時響應監測處理模塊,土壤水分預測算法處理模塊,用戶灌溉控制決策模塊五部分構成。這五部分在整體結構中又分為3個層面:感知層、傳輸層、應用層[3]。
感知層主要包括農田數據采集設備模塊。該模塊功能的實現是基于各類傳感器對農田實時數據的采集,包括:TDR-3型土壤溫濕度傳感器、DHT11空氣溫濕度傳感器、RY-GH型光輻射傳感器,這些傳感器的輸出信號由Arduino芯片讀取并將數據存儲到網關[4],再通過Python語言編寫開發的程序與Web服務器中的MySQL數據庫實現同步。該系統還加入ZigBee無線傳感網絡實現感知區域的拓展,擴大感知范圍。
傳輸層主要包括天氣信息接收模塊,實時數據監測分析預處理模塊,土壤水分預測算法處理模塊。天氣信息等數據通過Python語言開發的Web網頁來收集。Web服務器還使用JSON、XML或HTML這些格式的API門戶[5,6],將這些門戶提供的預測信息,儲存在網絡服務器的MySQL數據庫中。土壤水分預測算法利用SVR模型和k-means聚類算法,建立了基于現場傳感器數據和天氣預報數據的土壤水分預測算法,該算法通過訓練數據可以測得未來幾天土壤水分信息。根據土壤水分含量差和對未來預測的降雨量提供科學的灌溉決策。傳輸層還利用Python語言和MySQL數據庫結合API開發了一個基于實時響應的Web用戶界面,用于實時監測和調度灌溉操作。
應用層主要包括用戶灌溉控制決策模塊。用戶可以設定合適的土壤濕度閾值。在該模塊中人們根據土壤水分和降水信息的預測與閾值進行比對來啟動或終止灌溉系統。主要通過水泵連接繼電器控制開關的節點進行操作,該節點由Web服務通過一個觸發器控制,該觸發器來自基于響應的Web服務 API用于實時監視。通過Web界面,用戶可以在手動和自動模式下遠程管理水泵的開關。

圖1 系統結構圖Fig.1 System structure diagram
降水量和蒸騰量是本文灌溉系統的基本參數,也是在智能灌溉系統設計中影響土壤水分的重要因素。所以,智能灌溉系統的關鍵是對土壤水分差的預測。
土壤水分差的估算依賴于地表水分蒸騰量[7],哈格里夫斯和薩馬尼1985年提出了一種基于溫度和地球外輻射的估算方法即HS算法[8]。它表示為:
(1)
式中:Ei為土壤水分差;Tmax為土表最高溫度;Tmin為土表最低溫度;Ra為光輻射量。
2.2.1 SVR訓練模型
SVR通過傳感器節點采集的各類數據即土壤濕度、空氣溫度與相對濕度、紫外線輻射強度實測值、土壤實測水分差進行學習訓練得到自變量和因變量之間的非線性耦合關系,從而得到預測土壤水分差。
對于本系統SVR回歸問題,我們先給定樣本:
E=[(x1,y1),(x2,y2),…,(xm,ym)]yi∈R
(2)
將各變量通過SVR訓練模型[9]學習得到一個f(x),使f(x)與y盡可能的無限接近。理想狀態下當f(x)與y完全相同時,誤差為零。而實際在SVR模型中f(x)與y之間會有δ的偏差,誤差不可忽略,當且僅當f(x)與y的差的絕對值小于δ時,才認為預測結果合理。合理誤差帶如圖2陰影圓圈部位所示。

圖2 SVR模型合理誤差帶Fig.2 Reasonable error band of SVR model
根據圖2可以將SVR求解問題轉化為:
(3)
式中:xi為土壤濕度、空氣溫度與相對濕度、紫外線輻射強度實測值;yi為土壤實測水分差;f(x)為土壤預測水分差;w,b均為模型約束參數;C為常量;lε為松弛因子。
(4)
加入松弛因子后,式(3)的表達形式為:
(5)
(6)

最后引入拉格朗乘子,可得拉格朗日函數:
(7)
對式(7)求偏導,令導數為零:
(8)
將式(8)帶入式子(7)即可求得SVR的對偶問題,計算過程還需要滿足KKT條件,最后求得SVR解為:
(9)
2.2.2 k-means聚類算法
k-means聚類算法是先隨機選取K個對象作為初始的聚類中心。然后計算每個對象與各個種子聚類中心之間的距離,把每個對象分配給距離它最近的聚類中心。k-means聚類算法[10]以距離作為數對象間相似度量標準,可以根據歐式距離計算公式表示:
(10)
式中:xi,yi均為2.2節訓練輸出結果,i=1,2,…,k;k為對象個數。
在聚類算法過程中,類簇中心需要對訓練結果對象進行多次迭代更新。定義k個類簇中心為Centerk,更新方式如下:
(11)
式中:Ck為k個類簇;|Ck|為第k個類簇中對象個數。
k-means聚類算法可采用誤差平方和準則函數來終止迭代,函數表示如下:
(12)
當兩次迭代結果差值小于某一閾值即:ΔJ<ε時,迭代終止。
2.2.3 規劃預測算法灌溉原理
規劃預測算法是在SVR回歸模型的基礎上結合k-means聚類算法得到的一種優化算法,該算法結合了兩種算法的優點。通過SVR模型訓練傳感器端獲取的具有非線性關系的各類土壤樣本數據,得出具有線性相關性的數據結果,再利用k-means聚類算法將訓練結果進行歸類得到與實測值相關性高且誤差小的數據,從而可以更好地預測未來天氣降水情況并得出合理的灌溉決策。土壤水分預測算法和用于數據可視化和決策支持的灌溉規劃預測算法流程原理如圖3所示。

圖3 規劃算法灌溉原理流程圖Fig.3 Flow chart of planning algorithm irrigation principle
通過TDR-3型土壤溫濕度傳感器對河北省唐山市豐南區農田土壤水分數據進行實時采集轉變成電信號,再將輸出的信號由Arduino芯片讀取將數據通過Wifi網絡上傳并存儲到網關,用戶通過Python語言開發的Web網頁端收集得到實測值,再根據HS算法和SVR+k-means聚類規劃預測算法分別得到的未來兩周(1月1日-1月14日)土壤預測水分差如表1所示,土壤水分相對濕度如表2所示,其中,表1還分別對兩種算法進行了均方誤差MSE計算。
(13)
式中:Y為土壤水分實測值;M為預測值。

表1 土壤水分差Ei %

表2 土壤相對濕度 %
根據表1數據通過式(13)計算得到MSE1為0.010%,MSE2為0.003%。其中MSE1、MSE2分別代表HS算法與SVR+k-means聚類規劃預測算法得到土壤水分差與實測值的均方誤差;D1、D2分別代表方差。e1代表SVR訓練結果與實測值之差;e2代表通過SVR+k-means聚類規劃預測算法得到的結果與實測值之差。
由表1可以看出,與HS算法相比SVR+k-means聚類規劃預測算法得出的土壤水分差值Ei更加接近通過傳感器測得的實測值,再通過比較均方誤差MSE可以得知SVR+k-means聚類規劃預測算法的預測精度更高;由表2可以看出,SVR訓練模型與SVR+k-means算法相比,后者對于土壤水分濕度的預測誤差更小,更加接近于實測值。
將傳感器在農田中測得的土壤濕溫度、空氣相對濕度、紫外線輻射強度、土壤水分差參數并結合自互聯網的天氣預報數據作為自變量輸入上述算法流程,最后用傳統HS算法與SVR+k-means規劃預測算法對未來兩周的土壤水分差Ei與土壤水分相對濕度進行了Matlab模擬仿真,輸出結果如圖4和圖5所示。

圖4 兩周土壤水分差Fig.4 Soil moisture difference in two weeks

圖5 土壤相對濕度Fig.5 Soil relative humidity
圖4紅色曲線代表傳統的HS方法得到的仿真結果,藍色曲線是經過規劃算法得到的仿真結果,綠色曲線代表通過傳感器測得的實際值。以每日的土壤水分差為單位,經過兩周的預測的結果可得與HS算法方法比較,SVR+k-means聚類規劃預測算法預測結果與實際測量結果的擬合程度更好、波動更小、精度更高。
通過圖5可以看出SVR+k-means聚類規劃預測算法對土壤相對濕度的預測值更加接近實測值,比HS算法有更高的精度,體現了基于IOT平臺規劃預測算法的優越性與精確性。
對土壤水分的預測是開發智能灌溉系統的關鍵。農田中對土壤水分的測量受許多環境變量的影響,如 氣溫、空氣濕度、紫外線、土壤溫度等。本文研究了一種基于IOT平臺的智能灌溉系統,該系統中利用算法通過傳感器獲取的最近數據和未來天氣預報信息為預測土壤濕度提供數據支撐,對土壤水分差進行預測。
(1)與傳統HS算法相比,SVR+k-means聚類規劃規劃預測算法對土壤水分差的預測值有更高的精度與準確性,更好地體現了規劃預測算法的實用性與可靠性。
(2)通過規劃預測算法得到的精確的土壤水分差的量化結果,可以實現對未來的農田的智能灌溉控制,達到節約水資源的目的。