卡尔曼滤波结合空间分布模型的ZigBee水质监测方法研究
2022-03-30沈明杰
沈明杰,史 兵,宦 娟,朱 可
(1.常州大学 机械与轨道交通学院,江苏 常州 213164;
0 引言
近几十年来,水产养殖已经成为养殖业发展的主要项目之一,实时监测养殖池中水体的温度、pH值、溶氧量(DO,dissolved oxygen)等重要参数至关重要。许多水产养殖公司专注于生产和追求短期经济利益,缺乏对水产养殖业水质保护的认识。水产养殖业的疾病逐年增加,还发现药物滥用的现象,水产养殖环境遭受不同程度的破坏[1-5]。在没有有效保护的情况下解决水产养殖的水质问题是水产养殖业持续健康发展的重要研究目标。现有的水质测试方法主要依靠人工操作和设备经验来进行测试,耗费大量精力和时间,并且存在监测周期长,监测范围有限的缺点。采用现场总线技术的水质在线监测系统具有实时性好,但也存在接线困难,维护扩展不便,腐蚀管道等问题[6-7]。
ZigBee是近年来的一种新的无线通信协议标准,是低成本、低功耗、低复杂度的自组织网络[8-13],使用中继方式在节点之间传输数据,通过无线网络最终发送给观察者[14],并具有较高的通信效率和较低的能耗,对水环境的监测有着很大的优势。文献[15]研究了基于无线传感器网络的参数智能监测系统,通过神经网络和模糊控制相结合的算法对数据分析,来达到控制精度的设计要求。文献[16]研究设计了采用MSP430F149单片机构建的DO、pH值和温度参数的无线传感器网络监测系统。针对监测网络部署不灵活和监测范围小等问题,文献[17]设计开发了适合在水产养殖环境下工作的自动无人船,作为动态监测节点进行水质数据采样。如今,国外一些国家工厂化养殖已经比较成熟,工厂化养殖所需的水产养殖环境监测系统也比较完善,如澳大利亚GREENSPAN 公司、日本 BICOM公司、德国的 GIMAT 公司都相继研制了全球领先的自动化水产养殖监测系统,对水体温度、水位、pH 值、DO等参数进行自动检测,节省了大量的人力和财力。
然而,尽管国内外专家学者对水产养殖业的水质监测系统进行了诸多研究,但在水质监测的预估和空间分布计算方面研究较少。本研究在其他学者研究基础之上,构建了监测水产养殖水质参数的传感网络,并将卡尔曼滤波优化与线性内插值四维模型拟合相结合预估水质参数,对实现水产养殖信息化与智能化管理有重要的作用。
1 系统结构
基于ZigBee技术的养殖池水质实时监测系统包含养殖环境监测区和远程监控区组成[18-20],系统结构图如图1所示,养殖池网络中的节点可以分为两种类型:传感器节点和协调器节点。传感器节点负责采集养殖池水质参数变量,并将数据传输到协调器节点,协调器节点将其他节点汇聚来的数据通过GPRS网络上传到数据中心。数据中心计算机将数据处理后按照规定的格式保存在数据库服务器,并将数据以图形界面的方式呈现给用户。
图1 系统总体设计方案
2 硬件系统设计
2.1 传感器节点
水质监测系统最底层的部署是传感器节点,是水质监测的一个重要部分,传感器节点由数据采集、数据处理、数据传输和电源等部分构成[21]。根据水质的监测要求,有多种类型的水质传感器节点,涉及采集温度、pH值、DO参数的传感器。传感器经过前端处理将水质信息的化学量和物理量转换成电信号,并进行滤波和放大等工作,通过CC2530芯片内置A/D转换器变成数字信号,并通过内部总线送入处理器,处理器经过简单处理将数据通过射频模块发送给协调器节点。协调器节点起着承上启下的作用,协调器节点通过串口与上位机相连。协调器节点通常布置在岸边等容易获得的位置,为保证连续工作,通常有外接电源或容量较大的电池供电。系统传感器节点结构如图2所示。
图2 传感器节点结构图
2.2 pH值采集模块
pH值用来表征水质的酸碱强弱,本设计中采用上海雷磁公司的E-201-C型pH值复合电极,其测量范围是0~14,响应时间小于两分钟。由于溶液的玻璃电极电阻较大,因此输出电压较小,需要放大输出电压的放大电路。pH值参数的调理电路如图3所示[22]。从该图可以看出,使用双差分放大器电路来放大电极的输出电压。
图3 pH值调理电路
pH值调理电路输出电压为:
(1)
(2)
式中,VIN为pH值电极输出电压V;VOUT为放大后电压输出值;R1~R6为固定电阻;R7、R8为可调电阻。
2.3 DO采集模块
DO是指水中氧分子的浓度。该系统使用上海联祥环保科技有限公司的 YDC100电极采集DO。传感器可以将水体中的DO值转换为氧电流。由于电极输出电流很小[23-24],氧电流要通过运算放大器电路放大后输出至CC2530进行A/D转换。经A/D转换后,将数据分别存储到CC2530存储区指定的存储单位。DO调理电路如图4所示[25]。
图4 DO调理电路
DO调理电路输出电压为:
(3)
2.4 温度采集模块
温度采集采用Maxim公司的DS18B20传感器,选择DS18B20温度传感器是因为它具有自己的单总线接口。将DS18B20连接到微处理器,则仅需要一个端口即可在微处理器和DS18B20之间提供双向通信,从而大大提高了系统性能、抗干扰。测试范围为-55~125 ℃,连接无需外部元件。
3 软件系统设计
该系统可以分为两部分:传感器节点软件和协调器节点软件。Z-Stack协议栈是由TI公司推出的ZigBee无线通信协议,主要由应用层、网络层、媒介访问控制层和物理层组成,操作系统为循环查询的模式,Z-Stack协议栈通过软硬件结合在不同级别工作,其次负责初始化系统和操纵系统实体,每一层为上层提供一系列的服务,Z-Stack建立一个事件处理功能,服务于MAC层对ZigBee应用设备程序在这五层进行处理,一般情况下,通过编写C语言在Z-Stack协议栈的应用程序层操作和事件处理功能中实现数据的传输,在实际开发中,用户只需要实现应用程序框架和进行恰当的调用,就能构建功能齐全、性能可靠的ZigBee无线网络。
由协调器节点创建ZigBee网络,随后等待传感器节点加入,自动与协调器节点绑定,传感器节点就可以按照设定时间把数据发送给协调器节点。
3.1 传感器节点软件
传感器节点长时间在养殖池采集数据,故在软件设计方面应该考虑能量损耗问题,在传感器节点的设计中写入休眠模式[26],在空闲的时候,会转入休眠状态,节约电能降低功耗。传感器节点上电后首先模块初始化,随后系统自检,如有问题会提示错误并开始信道扫描,如果接受到采集的命令,读取传感器的数据,并将采集到的温度、pH值、DO数据无线发送给协调器节点,如图5(a)所示。
3.2 协调器节点程序流程
在整个网络中,只有一个协调器,是整个监测系统的核心,其运行直接影响系统的稳定性。协调器节点用于接收各传感器节点发送来的数据,并将数据打包发送至监控端上位机。在开始阶段,协调器通电后模块初始化,在经过对节点的格式化后,以选择适合的工作信道和网络标识符为目的,进行空闲信道和信道扫描的评估,每个传感器节点连接入网后,会分配对应的网络地址,在网络层中,分配给传感器节点的IP地址都是唯一的,这样才能区分不同的传感器节点。协调器自动进入允许绑定模式,对传感器节点的绑定请求做出响应,并等待传感器节点发送数据,当协调器节点收集到数据后,进行解调,最终发送到上位机协调器节点程序如图5(b)所示。
图5 传感器节点流程图
3.3 监测终端上位机软件设计
在PC机中的上位机管理软件中选择使用微软公司的VS2015版为开发环境,基于C#语言开发窗体应用程序的软件设计,在图6中可以看出,用户可以直观的看到某个传感器节点不同时间段的温度、pH值、DO的实时曲线,如果要查看某节点的信息只需要选择PC上相应的节点即可。由此可见上位机的设计给用户提供了便捷的交互式界面,是整个系统中的数据融合中心。
图6 上位机实时采集显示界面
4 试验及测试结果
试验养殖池区域选择长为100 m,宽为60 m的露天养殖池,养殖池水位实际为2 m,环境温度为14~16 ℃,标准大气压,当天风向为西北风2级,试验在同天测量温度、pH值、DO的变化规律,每两个传感器测量点的横向距离35 m,纵向距离为30 m,因为传感器节点采集的水质参数随养殖池的深度而变化,所以将传感器节点布置在距离水面0.1 m处、距离水面1 m处和距离1.9 m处测量,采集的其中一组数据如表1所示。传感器节点的布置如图7所示,为了得到全面的水体垂直的参数情况,实测数据如表1所示。
图7 养殖池节点分布
表1 养殖池各采样点某一时刻的水体空间上的3种参数数据
根据表1的数据所示,同一时间段在水平方向上,同一层的温度、DO的变化幅度不大,呈均匀分布,在垂直方向上,随着水面到水底的温度逐渐下降,DO也随着下降,变化比较大,层次性明显。由于环境温度的升高,水面的温度升高,DO随之变小。可在表格中观察到,pH值的变化情况都不明显,垂直方向或水平方向上都呈均匀分布。
5 数据优化及空间分布模型
5.1 基于卡尔曼滤波的水质参数优化
卡尔曼滤波是以一个最优化自回归数据处理算法为核心思想。预先得到系统的观测数据作为初始值,通过上一时刻的状态估计值和控制变量来推测当前时刻的状态估计值。通过卡尔曼滤波数学模型的推导可以看出,这样一个过程涵盖了预测—优化两个阶段。通过校正过程负责反馈,利用测量更新方程在预估过程的先验估计值及当前测量变量的基础上建立起对当前状态的改进的后验估计,通过不断迭代更新误差,逐步实现达到最优估计的效果。
在养殖池中,以某一采样点以每分钟的采集频率的实测水质参数作为输入,基于卡尔曼滤波递推迭代算法计算得到预测的水质参数最优估计值,在更新阶段,通过实测值和预估的先验估计值推算最新的预估值,然后计算滤波增益以此达到精准估计精度的目的。最终的水质参数优化值其实相当于上一时刻的预测值结合滤波增益的修正项,并在一步步的更新误差迭代中逐渐收敛。根据卡尔曼滤波算法的数学模型理论,可以构建如下的预测—优化过程来对实测水质参数进行优化。
时间更新方程(预测):
先验推算状态变量:
(7)
先验推算误差协方差:
Pk-=APk-1AT+Q
(8)
式中,Pk-为第k迭代步的预估协方差;Pk-1为第k-1迭代步的优化协方差。
状态更新方程(优化):
计算卡尔曼增益:
(9)
式中,Kk为第k迭代步的卡尔曼增益;H是行列式值为1的测量转换参数矩阵;R为测量噪声的方差。
后验估计滤波优化:
(10)
更新误差协方差:
Pk=(I-KkH)Pk-
(11)
式中,I为对角线为1的矩阵。
以表1中某一点的水质参数随时间的变化数据为例,由上式(7)~(11)组成的卡尔曼滤波算法,预测过程为式(7)~(8),实现状态量的初步预测,然后根据实测观测值实现更新过程,为式(9)~(11),得出下一时刻更新的状态量。最后再代入式(7)~(11)中下一时刻的预测更新。仿真结果如图8~10所示。
图8 养殖池某采样点温度的实测值与最优估计值比
图9 养殖池某采样点pH的实测值与最优估计值比较
图10 养殖池某采样点DO的实测值与最优估计值比较
5.2 水质参数空间分布模型构建
为了得到整个养殖池的温度、pH值、DO空间分布,基于表2中的优化数据,利用MATLAB进行线性内插值计算,构建空间分布模型。首先建立一个X轴为100 m、Y轴为60 m、Z轴为2 m深的养殖池,其次用优化后的表2数据插入X轴方向坐标15 m、50 m、85 m处,Y轴方向坐标15 m、45 m处,Z轴方向上0.1 m、1 m、1.9 m处,然后建立模型网格划分,用散点插值函数进行数据拟合,对三维数据绘制切片,绘制一个或多个与特定轴正交的切片平面,将切片参数指定为标量或向量。沿曲面绘制单个切片,将所有切片参数指定为定义曲面的矩阵。得到参数四维模型如图11~13所示。
表2 卡尔曼滤波优化表1后的数据
图11 温度四维模型
图12 pH值四维模型
图13 DO四维模型
在仿真试验结果中可以看到,在水平方向上,温度基本没有变化,分布均匀,层次很明显。DO由于风向的原因,在上风口DO低,在下风口DO高,特别在风级比较大的时候比较明显,在垂直方向上,温度逐渐减小,DO在受到水平方向的风向影响下,进一步受到变化。pH值在仿真图上没有特别的分层现象,分布均匀。
本文MATLAB仿真中采用线性内插值计算方法,其插值计算的理论公式为:
(12)
(5)
(6)
式中,Q值表示距离插值离散点附近的4个离散点,R1、R2表示X方向上插值后的结果,P值表示Y方向上插值后的结果。
为了验证仿真数据的可靠性,选取坐标(15,25,1.9)、(25,25,1.9)、(35,25,1.9)、(45,25,1.9)、(65,25,1.9)的温度、pH值、DO作对比实验,如表3~5所示。经计算得出温度、pH值和DO的空间分布模型与实际测量值的平均相对偏差为3.18%、2.89%、1.59%。以上得出的结果和实测值的水质参数数据基本一致,表明基于卡尔曼滤波优化算法和线性内插值四维模型拟合的水质参数经仿真能够准确掌握整个养殖池的水质动态变化信息,在一定程度上构建了一套有效性、快速的监测系统。
表3 温度的实测值和空间分布值的比较
表4 pH值的实测值和空间分布值的比较
表5 DO的实测值和空间分布值的比较
6 结束语
本研究综合利用无线传感器网络成本低、监测范围广和网络数据等优点,构建了通用的快速水质监测系统,以提高智能水产养殖监测性能,并且无线传输和实时处理不受地理或时域限制,在水产养殖应用中具有一定的实际重要性。通过MATLAB采用卡尔曼滤波优化算法消除了测量过程中的噪声误差,得到了优化参数,并构建参数空间分布模型。通过比较得到温度、pH值和DO的平均相对偏差为3.18%、2.89%、1.59%,结果表明,卡尔曼滤波优化算法和水质参数四维空间模型拟合是有效的,能直观的反映水质参数动态变化信息。为养殖池的水环境治理提供有用的信息。