基于ABC-BP模型的丹江水源地水质监测系统设计
2021-12-22何建强韩美林
何建强,韩美林,陈 垚
(商洛学院 电子信息与电气工程学院,陕西 商洛 726000)
0 引言
秦岭不仅是中国南北气候的分界线,也是重要的生态安全屏障。它具有调节气候、涵养水源、涵养水土、维护生物多样性等多种功能,是中国地理和中国文明的精神和自然象征。党中央、国务院、省委、省政府高度重视秦岭生态环境保护。习近平总书记强调:“谁也不能破坏秦岭的自然生态美”。保护好秦岭生态环境不仅是落实新发展观、建设生态文明、维护国家生态安全的必然要求,也是推进秦岭“五新”战略、促进人与自然和谐发展的重大举措,具有重要的社会、经济、生态、文化价值,功在当代,利在千秋[1]。
丹江发源于陕西省商洛地区西北部的秦岭南麓,流经陕西、河南和湖北三省,流入湖北省丹江口市丹江口水库,在此与汉江交汇[2]。丹江总长390千米,流域面积1.73万平方千米,占汉江流域总面积的10%,是汉江最长的支流[3]。丹江不仅是“南水北调”中线工程的重要水源地,也是商洛地区经济文化发展的核心区域,近年来,商洛市全面实施循环发展战略,大力推进秦岭地区生态环境保护,保护水源地,建设生态商洛,确保“一江清水供京津”。但虽随着移民搬迁工程的推进,及经济社会的发展,越来越多的生活污水排放至丹江,直接影响丹江流域水质。目前丹江流域的水质监测每年耗费巨大的人力、财力,并且不具备实时、智能的特点。因此,针对目前丹江流域水质监测方面存在的问题,本文设计了一种基于ABC-BP模型的丹江水源地水质监测系统,该系统可通过ZigBee无线传感器网络和4G网络完成水质参数的采集和传输,通过ABC-BP预测模型,实现水质参数pH值、DO(溶解氧)值、导电率、水温等的实时显示和预测功能[4]。该系统的研究与设计对丹江流域水污染的治理和防控能力有一定的提高,对秦岭地区生态环境保护以及政府的水环境监测与治理提供有效的基础信息和有力的技术支撑,促进了商洛市智慧城市建设。
1 系统总体方案设计
该系统主要由ZigBee终端监测模块、4G网络模块和监测中心上位机软件部分组成,系统总体结构如图1所示。
图1 丹江流域水质监测系统总体结构图
ZigBee终端监测模块主要实现pH值、DO值、导电率和水温等水质参数的采集,该模块主要由PH传感器、DO传感器、导电率传感器、温度传感器、CC2530处理器、电源模块及相应的信号调理电路构成。采集节点通过ZigBee无线传感器网络将采集到的水质参数传至处理器上,再通过高速率的4G移动网络传输到远程监测中心。为了简化终端模块电路,降低节点消耗的能量,采用光伏板和备用电池相结合的方式对系统供电[5]。远程监测中心主要对数据进行分析、存储、处理并建立水质预测模型,实现对水质参数的预测。
2 系统关键技术设计及实现
2.1 数据采集节点硬件设计
终端节点主要由传感器、信号调整电路、处理器模块、无线通信模块和电源模块组成[6]。数据采集节点如图2所示。传感器主要实现pH值、DO、导电率、水温等水质参数的采集,信号经op07及LM21等构成的信号调整电路处理后,与AD芯片(ADS8364)相连,实现模数转换。 ADS8364的6个地址引脚D0~D5与CC2530的P1.0~P1.5相连,ADS8364的REST与CC2530的REST相连,由外部REST信号完成操作,保证CC2530和ADS8364时钟的同步。利用ZigBee低功耗的优势,本设计采用光伏板和备用电池相结合的供电方式,通常两节5号电池可为ZigBee模块提供长达6个月的能量,避免断电事故的发生。为了给CC2530提供5 V和+3.3 V电压,通过CW7805C输出+5 V电压,通过ASM1117-3.3输出+3.3 V电压。
图2 数据采集节点框图
2.1.1 ZigBee模块电路设计
CC2530芯片具有低功耗和低成本的特点,且其各方面性能优于CC2430芯片[6],为构建功能强大的无线传感网络,本设计ZigBee模块的核心芯片采用CC2530芯片。该芯片的基本电路如图3所示,其中L1电感和C1-C8电容构成去耦电路,保证CC2530芯片具有稳定的工作电源。
图3 CC2530的基本电路
2.1.2 无线通信模块设计
无线通信模块主要是实现ZigBee模块相互之间的控制信息交换、数据收发等无线通信,常见的无线通信天线有柱形天线和环形天线,根据不同种类的特点,本设计选择以 PCB 板铜箔制成的环形天线,硬件电路如图4所示,其中黑粗线为环形天线,两端分别与CC2530芯片的RF_P和RF_N引脚相连接。
图4 无线通信模块硬件电路图
2.2 网关节点硬件设计
网关节点是整个ZigBee无线网络的核心。接收终端数据采集节点发送的pH值、DO值、导电率、水温等数据,经处理器处理后,通过4G无线网络传输至监测中心[6]。由于整个监测网络中数据处理量大,网关节点数量比较少,还要执行来自远程监控中心的命令信息。因此,采用基于ARM11内核的S3C6410芯片作为本设计的网关节点处理器[7],图5为网关节点系统框图。
图5 网关节点系统框图
由于S3C6410处理器内存较小,在程序运行过程中容易出现内存不足现象,因此,本系统的程序代码采用AM29LV160D型号芯片存储,采用HY57V641620 HG型号芯片作为扩展存储器[6]。为了降低程序读写过程中的延迟时间,将程序存入扩展存储器中执行。扩展电路如图6所示。图中nSCS0是片选网络标号,nOE是读允许网络标号,nSWE是写允许网络标号,DATA0~DATA15是输入与输出的数据网络标号[6]。它们分别与S3C6410的XM1CSN0[PINL23]、XM0OEN[PINL4]、XM1WEN[PINM19]、XM0DATA0~XM0DATA15相连接[6]。
图6 存储器扩展电路图
HY57V641620HG中的BA1和BA0分别与S3C6410的XM1ADDR0[PINH24]和XM1ADDR1[PINJ24]引脚相连接。行地址选通信号线nSRAS、列地址选通信号线nSCS0、写允许信号nSWE和读允许信号线nOE分别与S3C6410的XM1RASN[PINL44]、XM1CASN[PINL24]、XM1WEN[PINM19]和XM0OEN[PINL42]引脚相连接[6]。
3 软件设计
3.1 数据采集节点软件设计
数据采集节点上电开始工作后,硬件设备初始化并加入网络。入网成功后,采集pH值、DO、导电率、水温等数据并将数据传输至下个节点。此后程序开始循环调用sendDATA()函数,并进入发送信息状态。传输完一次数据后,判断是否继续有采集任务,无采集命令时,处于休眠工作模式[8],直至下次采集任务到来时进入工作状态。程序流程如图7所示。
图7 ZigBee终端信息采集节点程序流程图
3.2 网关节点软件设计
网关节点上电后,硬件设备和协议栈分别初始化并建立WSN网络,在接收到终端节点发送的加入网络信标后,判断是否允许该节点加入网络[9-11]。如果允许加入网络,则为其分配网络地址,接收传输的pH值、含氧量、导电率、水温等水质参数数据,向4G模块发送数据。若没有收到入网信标,则调用aplFormNetwork()来建立网络,并判定地址空间是否已满,如果有空闲地址则自动为子节点分配16位地址,并允许其加入网络。网关节点程序流程如图8所示[12-14]。
图8 网关节点程序流程图
3.3 监测中心软件设计
监测中心上位机软件系统是在C/S模式架构下,采用JAVA语言进行编写,选用关系型数据库MySQL 5.7作为数据库管理系统。系统整体架构分为3层,每一层之间是相互独立且具有一定的联系,从最底层到最高层分别是基础数据层、功能服务层和用户层。水质监测软件系统架构如图9所示,可实现水质参数的实时显示、历史数据查询、数据导出,数据分析和参数预警等功能[15]。
图9 水质监测系统架构图
基础数据层包括三部分。第一部分是实时数据的采集与整理;第二部分是数据存储,将整理完毕的实时数据,存储于MySQL 5.7数据库中,可以永久性的使用,并定期维护;第三部分建立数据访问接口,该接口通常称为DAO(Date Access Object)层,即数据访问对象。该层是必不可少的,为上一层提供操作数据的通道。
功能服务层主要有基础数据更新模块、实时数据展现模块、数据清洗模块、数据预测模块、预测误差分析模块、用户管理模块、系统设置模块、辅助模块等。
用户层是与用户直接相关的部分。用户层是用户与系统进行交互的接口。用户可以输入相关数据或者点击相关操作,实现需要的功能。
4 水质预测算法及优化
4.1 BP神经网络预测模型及实现
由于水源地水质参数复杂多样,神经网络具有模糊信息处理的优点,可通过水质参数之间的模糊关系建立输出和输入之间的非线性模型,预测容氧量值,图10为利用神经网络预测水质参数的建模流程[9]。
图10 BP神经网络水质参数预测模型
根据实际的水质数据把温度、PH值、DO、导电率这4个参数作为神经网络的输入,将DO值作为输出。通过建模、训练,实现对DO值的预测,并进行误差分析。
为了提高预测数据的准确性,利用式(1)对数据进行归一化处理,将数据转换到[-1,1]范围:
(1)
式(1)中,x表示采集的水质数据,y表示经过归一化变换的之后的数据,可减小结果与实际值之间的偏差。
4.1.1 BP神经网络建模
1)网络结构的确定。在BP网络模型中,确定了神经网络的输入和输出之后,为使仿真误差和网络性能都达到最佳,隐含层神经元个数通过经验公式(2)来确定[10],常用的公式为:
(2)
式中,n、i、o分别表示隐层神经元个数、输入神经元个数和输出神经元个数,m的值一般在1~10中随机选取。
2)参数设置。根据选取的输入参数和输出参数值,隐含层神经元个数由公式(2)计算出为8。结果通过Sigmoid函数公式(3)映射到(0,1)之间输入下一层。
(3)
得到如图11所示的3层结构。
图11 神经网络3层结构
4.1.2 仿真分析
以DO值数据为样本,利用丹江流域商洛市商州区段2019年11月水质实测DO值数据100组,前80组作为训练样本,其余为检验样本。
设定BP神经网络学习最大迭代次数为1 500次,精度为0.001。通过Matlab程序随机产生初始的权值和阈值,logsig作为隐含层传输函数,purelin作为输出层传输函数,采用trainglm作为训练函数,BP神经网络预测模型学习数据预处理[11-12]:
[p11,minp1,maxp1,t11,mint1,maxt1]=premnmx(p1,t1);
完成训练后结果如下:
输入层到隐层权值和阈值:
隐层到输入层权值和阈值:
B2=[1.4794]
BP神经网络仿真预测输出与实际值的比较如图12所示,由图中可看出预测值和实际值走势基本一致,可用来对输出进行预测。但还存在一定的误差,计算得最大误差为0.05,最小误差为0,总误差值为0.49,平均误差为0.025。
图12 BP神经网络预测值与实际值比较
4.2 ABC-BP预测模型及实现
4.2.1 ABC-BP预测模型建立
ABC-BP预测模型主要是采用ABC算法对BP神经网络中各层的权值和阈值进行优化,将通过ABC算法求得最优解转换为BP神经网络各层的权值和阈值,提升BP神经网络预测的精确度,使其预测输出速度更快、更准确[13]。ABC-BP的基本流程如图13所示。
图13 ABC-BP 算法流程
具体步骤如下:
1)创建一个 BP 神经网络;
2)对种群及算法中最大循环搜索次数MCN、limit和初始种群Ns进行初始化,Ns中所有解都为一个D维向量,该向量Xi(i=1,…,Ns)表示连接权值和阀值,维数D满足公式(4):
D=i×n+n+n×o+o
(4)
式中,n、i和o分别表示隐层神经元、输入神经元和输出神经元的数量。
3)雇佣蜂按照公式(5)搜索新解,按照公式(6)求解各个解的适应度值,采用贪婪法选择新解;
Vij=Xij+rand(-1,1)(Xij-Xkj)
(5)
(6)
式中,i和fi分别表示第i个食物源和当前目标函数值,k∈{1,2,…,Ns}和j∈{1,2,…,D}是随机值,且k≠i。
4)跟随蜂依据公式(7)计算收益率,按照收益率搜索新解并选择新解,式中f(x)为适应度值。
(7)
5)对解的更新失败次数和limit值进行比较,若limit的值小于更新失败次数,通过公式(3)产生新解进行替换,并保存最优解;
6)判断循环次数(MCN)是否达到最大,若达到最大值则结束,否则返回步骤3);
7)将所得最优解转换为BP神经网络各层的权值和阈值,然后对BP神经网络进行训练。
4.2.2 仿真分析
同样利用丹江流域商洛市商州区段2019年11月水质实测DO值数据100组为样本,前80组作为训练样本,其余数据作为检验样本。
ABC-BP算法参数设置:为兼顾最优解和算法搜索时间本文选取蜂群的数量为200,Ns=Ne=No=100。解的维数D通过公式(4)计算可得D=49,limit设定为100,最大循环次数MCN为110[14]。
得到输入层到隐层权值阈值:
W1=
隐层到输入层权值阈值:
B2=[3.9467e-06]
图14是ABC-BP算法和BP算法的仿真结果,从图中可以明显地看出ABC-BP算法得到的仿真结果更加精确,误差更小。计算可得,最大误差值为0.05,误差最小值为0,平均误差0.013,总误差量值为0.279。与BP神经网络算法相比误差减少了45.8%。图15是ABC-BP算法和BP神经网络算法输出的误差百分比,从图中可以看出优化后的算法大大降低了预测误差。
图14 ABC-BP算法和BP算法的仿真结果对比
图15 ABC-BP算法和BP算法输出的误差百分比比较
5 系统测试
为验证基于ABC-BP模型的丹江水源地水质监测系统的可靠性,本文对丹江流域流经商洛市商州区的某段进行了数据采集、传输、显示和预测等方面的测试,监测时间为15天,数据采集和传输频率为1次/小时。
测试中,CC2530的波特率设置为57 600 bps,系统测试数据监测软件界面如图16所示,上位机软件系统可以获取数据并显示,可进行数据可视化显示,表明上位机软件系统满足设计要求。通过对测试时间段测试数据和ABC-BP算法的预测数据与有线设备人工测试的数据进行对比,数据采集、传输和预测误差均在合理范围内,由于水质参数变化相对较慢,因此对数据采集的速率的要求不高,能够满足在线监测的要求。因此,基于ABC-BP模型的丹江水源地水质监测系统软硬件设计可行,能够正常工作。
图16 系统测试数据监测界面
6 结束语
本文基于无线传感器网络实现了丹江流域水源地水质的在线监测。利用ZigBee无线传感网络对各个水源地水质数据进行采集,通过4G移动网络进行数据传输,监测中心系统软件实现对数据的显示、分析、处理和预测。在完成各部分的软硬件设计后,以丹江流域源头商洛市商州区段作为测试点,进行了测试,该系统能够准确地完成数据的传输、处理、分析、显示和预测,并且系统运行稳定可靠。因此,该监测系统的设计与实现,对促进智慧商洛、生态商洛的发展,保护丹江水源地,确保“一江清水送京津”具有十分重要的价值。