基于物联网(IOT)的规划预测算法在农业灌溉中的应用
2019-11-28龚瑞昆石馨诚
龚瑞昆,田 野,石馨诚
(1.华北理工大学电气工程学院,河北 唐山 063210;2.华北理工大学迁安学院,河北 唐山 064440)
水资源的短缺已经开始影响人们的正常生活,给人们生活带来不便的同时,由于我国人口数量以及淡水需求量的增加,这种情况也随之日益恶化。与发达国家相比我们发展中国家在农业灌溉方面,由于缺乏有效的智能灌溉系统[1,2],造成对淡水资源严重消耗的局面,尤其是粗放型灌溉对淡水资源的浪费更为严重。因此,改善粗放型灌溉模式设计先进并且智能的灌溉系统势在必行。
为了在灌溉中充分节约淡水资源,研究了一种基于现场传感器采集土壤水分信息和基于物联网(IOT)平台的智能土壤水分预测系统。在该系统中还引入了规划预测算法,该算法具有较高的精度和较低的误差,应用在灌溉系统中可以帮助用户制定合理有效的灌溉与最佳用水决策。
1 系统架构
整个灌溉系统的架构设计如图1所示。主要由农田数据采集设备模块,天气信息接收模块,实时响应监测处理模块,土壤水分预测算法处理模块,用户灌溉控制决策模块五部分构成。这五部分在整体结构中又分为3个层面:感知层、传输层、应用层[3]。
1.1 感知层
感知层主要包括农田数据采集设备模块。该模块功能的实现是基于各类传感器对农田实时数据的采集,包括:TDR-3型土壤温湿度传感器、DHT11空气温湿度传感器、RY-GH型光辐射传感器,这些传感器的输出信号由Arduino芯片读取并将数据存储到网关[4],再通过Python语言编写开发的程序与Web服务器中的MySQL数据库实现同步。该系统还加入ZigBee无线传感网络实现感知区域的拓展,扩大感知范围。
1.2 传输层
传输层主要包括天气信息接收模块,实时数据监测分析预处理模块,土壤水分预测算法处理模块。天气信息等数据通过Python语言开发的Web网页来收集。Web服务器还使用JSON、XML或HTML这些格式的API门户[5,6],将这些门户提供的预测信息,储存在网络服务器的MySQL数据库中。土壤水分预测算法利用SVR模型和k-means聚类算法,建立了基于现场传感器数据和天气预报数据的土壤水分预测算法,该算法通过训练数据可以测得未来几天土壤水分信息。根据土壤水分含量差和对未来预测的降雨量提供科学的灌溉决策。传输层还利用Python语言和MySQL数据库结合API开发了一个基于实时响应的Web用户界面,用于实时监测和调度灌溉操作。
1.3 应用层
应用层主要包括用户灌溉控制决策模块。用户可以设定合适的土壤湿度阈值。在该模块中人们根据土壤水分和降水信息的预测与阈值进行比对来启动或终止灌溉系统。主要通过水泵连接继电器控制开关的节点进行操作,该节点由Web服务通过一个触发器控制,该触发器来自基于响应的Web服务 API用于实时监视。通过Web界面,用户可以在手动和自动模式下远程管理水泵的开关。
图1 系统结构图Fig.1 System structure diagram
2 土壤水分差预测算法介绍
2.1 HS算法
降水量和蒸腾量是本文灌溉系统的基本参数,也是在智能灌溉系统设计中影响土壤水分的重要因素。所以,智能灌溉系统的关键是对土壤水分差的预测。
土壤水分差的估算依赖于地表水分蒸腾量[7],哈格里夫斯和萨马尼1985年提出了一种基于温度和地球外辐射的估算方法即HS算法[8]。它表示为:
(1)
式中:Ei为土壤水分差;Tmax为土表最高温度;Tmin为土表最低温度;Ra为光辐射量。
2.2 规划预测算法
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
3 结果与仿真
3.1 数据分析
通过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算法相比,后者对于土壤水分湿度的预测误差更小,更加接近于实测值。
3.2 仿真结果
将传感器在农田中测得的土壤湿温度、空气相对湿度、紫外线辐射强度、土壤水分差参数并结合自互联网的天气预报数据作为自变量输入上述算法流程,最后用传统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平台规划预测算法的优越性与精确性。
4 结 语
对土壤水分的预测是开发智能灌溉系统的关键。农田中对土壤水分的测量受许多环境变量的影响,如 气温、空气湿度、紫外线、土壤温度等。本文研究了一种基于IOT平台的智能灌溉系统,该系统中利用算法通过传感器获取的最近数据和未来天气预报信息为预测土壤湿度提供数据支撑,对土壤水分差进行预测。
(1)与传统HS算法相比,SVR+k-means聚类规划规划预测算法对土壤水分差的预测值有更高的精度与准确性,更好地体现了规划预测算法的实用性与可靠性。
(2)通过规划预测算法得到的精确的土壤水分差的量化结果,可以实现对未来的农田的智能灌溉控制,达到节约水资源的目的。