曹守启 葛照瑞 张 铮
(上海海洋大学工程学院, 上海 201306)
近年来我国水产养殖业高速发展,水产养殖经济产值不断增加,其中海水养殖产业占据很大比重,对我国经济发展具有重要影响[1-2]。在近海养殖中,水体环境质量对水产养殖具有较大的影响,水质环境是养殖产物赖以生存的根本,其中溶解氧浓度直接影响着渔业产品的品质[3],它不仅反映了水质的标准,同时也反映了水产品的生长状况,溶解氧浓度作为近海养殖环境中重要的一个因子已经引起人们重视[4],不过,海水中的溶解氧浓度极不稳定,很容易受外界环境的影响,如温度、风速以及人类活动等都会造成溶解氧浓度的变化,所以实现近海水体的水质监测并做出相关判断对水产养殖业高效高产具有非常重要的现实意义[5]。
物联网的高速发展在很大程度上为我国近海养殖业的发展提供了便利,同时也对我国近海水产养殖提出了更高的要求。国内外众多学者针对水产养殖环境监测系统[6-7]及环境参数预测模型进行了大量研究[8-10],金光等[11]设计的基于低功耗广域物联网的海岛养殖环境监测系统,使用多节点提高监测范围但增加了成本和网络复杂度,不易管理。孟宪法等[12]在基于单片机MSP430的海洋浮标低功耗设计中,利用北斗卫星实现通信,但通信天线的瞬时功率较大。袁红春等[13]基于XGBoost的溶解氧预测模型研究利用长短时记忆(LSTM) 神经网络实现了溶解氧的预测,但忽略了对环境因素的考量。刘晶晶等[14]提出的基于K-Similarity降噪的LSTM神经网络水质多因子预测模型在一定程度上减小了误差,但依然没有考虑气象环境的影响。
本文设计一种基于物联网的浮标水质远程监测系统,并根据监测数据利用改进的算法建立溶解氧浓度预测模型。利用浮标平台实现传感器的搭载,借助物联网实现远程数据监控,并针对传统遗传算法BP神经网络模型存在的误差浮动问题进行研究,提出改进方案,利用远程监控数据实现溶解氧浓度预测。
本文设计的基于物联网的近海养殖水质监测系统,终端节点基于自主设计的海洋浮标实现,集数据采集、远程传输、存储管理和远程监测等功能为一体,整体架构如图1所示。
系统中浮标[15-17]作为承载装置,利用太阳能系统实现自供电,采集系统利用水质和气象传感器进行数据采集,采集的数据经过RS485通信传输到微控制器,并通过无线网络传输到用户终端,实现数据监控和数据分析。
监控系统电源电路选用TPS54302同步降压转换器,可最大限度提高轻负载效率并降低功率损耗;主控制器选用STM32L475芯片[18-19];无线通信模块选用EC20 4G网络通信模块,其内置高精度定位芯片在实现数据传输的同时又能精确地定位到浮标监测系统的实时位置,为后期系统维护提供了便捷。监控系统采用RS485通信模式,有效提高了数据的传输速率,并增加了系统抗噪声干扰的性能,为系统远距离的数据传输提供了保障,同时保证了多数据参数采集的准确性,电路结构图如图2所示。
电浮标监控系统的供电主要来源于太阳能,储能设备是由铅酸蓄电池组成的电池组,监控系统的负载作为整个系统消耗电能的主要部分,主要包括传感器模块、数据处理模块、通信定位模块等。本监测系统传感器主要包括溶解氧浓度、pH值、氨氮浓度、盐度、叶绿素、大气压、光照、温湿度、风速、风向、雨量等,由于近海气象环境不稳定,养殖用户需要随时了解近海环境信息,所以选择溶解氧浓度、pH值、大气压、光照、温湿度、风速、风向、雨量等参数进行监测。
在设计外围传感器和通信电路时,为降低传感器和通信模块的功耗采用继电器控制,采取间隔关断,当需要采集数据或者发送数据时,利用继电器可控关断接通电路,当数据采集发送结束,便不再对外部电路进行供电以达到降低消耗的目的。同时为传感器留有持续供电端口方便测试。考虑到海水腐蚀性较强,在连接时采用防水接头以延长系统的使用时间,系统测试实物图如图3所示。
在选择传感器时,要求传感器两端工作电压小于12 V,以RDO-206型溶解氧浓度传感器为例,其供电电压12 V,精度为0.01 mg/L,额定电流40 mA,正常情况下功耗为480 mW,其余传感器参数如表1所示。则正常情况下所有传感器每天的功率消耗为34 560 mW·h,当采用继电器控制电路时,可根据实际情况设置每小时进行4次数据采集,每次采集功率消耗为192 mW·h,则所有传感器正常情况下每天功率能耗为4 608 mW·h。故本文所采取的继电器开关电路能够起到节约能源的作用。
表1 负载额定参数Tab.1 Load rating parameters
云监测平台是浮标环境监测系统的核心组成部分,利用Linux系统下的开发工具CentOS进行服务器搭建与配置[20],网络服务平台整体架构如图4。
服务器搭建主要包括远程监控数据接收、数据库、后台信息管理等部分。监控信息接收主要用于获取浮标监测系统各传感器采集的数据以及视频监控画面并将数据存入数据库,本文利用IntelliJ IDEA软件进行开发,采用Java语言Netty高并发框架,使用maven进行jar包构建,在CentOS服务器上进行部署[21]。后台信息管理主要为计算机端访问提供接口,开发时采用SpringMVC框架,并使用Mybatis框架实现对数据库表的操作[22]。数据端监控部分利用HTML、CSS、JS进行开发,以访问页面的形式实现用户对环境的实时监控,页面访问如图5所示。只需要点击对应的养殖标识就可以显示此地的水质情况和气象信息。
用户可通过监控终端实现多区域养殖环境的监控,并实时反映监控信息,开发时考虑到环境参数众多,首页内各窗口间采用星状链接结构,避免浏览信息时的繁琐操作,而首页与后台的切换采用树状链接结构[23],条理清晰,系统还添加了养殖日志窗口,可实时查看近海养殖过程中的投喂信息,并集成有视频监控窗口实现远程监控。监控人员可以通过后台服务随时有选择地下载监测数据,实现数据的分析。浮标系统采集的气象数据、水质数据使用json格式协议与远程服务器进行通信,并在CentOS服务器上开启TCP通信端口进行监听。平台使用MYSQL作为数据库,具有高性能、低成本、高可靠性的特点。本系统GIS地图引擎选用Open Layers作为地图引擎。Open Layers是一个开源的轻量级可支持离线的地图引擎,提供强大的展示和交互功能。它是一个高性能、功能丰富的库,用于在Web上创建交互式地图。它可以显示任何网页上任何来源加载的地图块、矢量数据和标记。同时,开发有手机APP终端,水质监测、气象监测等部分详情如图6所示。
手机端可以随时监测水质气象环境的数据,APP程序将水质数据绘制成曲线,方便观察环境变化趋势,同时设置有数据报警门限,当监测的水质因子超出正常范围时会自动报警,与页面访问一样,手机端也可同时监控多个养殖基地的数据,并开发有在线视频监测功能,可随时随地观察养殖基地的实际情况。
针对传统遗传算法(GA)BP神经网络优化存在的误差浮动性问题进行优化处理,通过对遗传算法的改进和误差判断进行反复的网络训练,找到最优的训练结果,然后实施数据预测,使预测结果不断接近真实值,从而达到误差不断寻优的目的,减少了由于遗传算法优化神经网络模型预测产生的数据训练不准确性造成的误差波动。
传统遗传算法优化的神经网络模型虽然具有高鲁棒性和广泛适用性的特点[24-25],能够有效处理枚举法等传统优化算法难以解决的复杂系统优化问题,但由于网络训练的不确定性和不稳定性,会造成预测数据不准确,这样即使利用遗传算法计算了最优适应度,选择最优权值阈值[26],但最终预测结果也会有所偏差,计算的误差也并非最优误差,结果仍存在一定的不确定性。
本试验在传统遗传算法优化神经网络模型的基础上进行改进,改进后优化过程可以分为4部分,分别为BP神经网络结构确定、遗传算法优化、BP神经网络预测、寻找最优误差输出。主要区别是增加了寻优过程,在完成数据训练实现预测功能的基础上,对得到的预测误差进行判断,并反复进行此过程,寻找误差最小的一组预测结果进行输出,提高预测的精度。改进后的遗传算法优化神经网络流程图如图7所示。
统计结果表明,算法大部分情况下在训练200次左右后将会出现相对较小的误差。因此可将训练的步骤最大值设为250次,对于少数情况,可以通过判定训练结束时的误差,若大于可以承受的误差,则重新开始训练。
2.3.1BP神经网络模型构建
BP神经网络是单向多层前馈网络,利用误差反向传播算法,根据梯度下降原理实现参数调节。该网络由输入层、输出层以及一个或多个隐含层节点连接而成,其输入信号从输入节点通过隐含层传递到输出节点。 在进行溶解氧预测试验中,本文主要考虑时间、pH值、大气压、光照、温度、风速等监测参数作为预测模型的输入层节点,水中溶解氧浓度作为预测模型的输出层节点。考虑到在任何闭区域内的一个连续型函数用一个隐含层的BP神经网络就可以达到较好的拟合效果,而多隐含层网络虽然有较好的泛化能力和较高的预测精度,但是训练时间较长,故对于模型中存在的映射关系,在网络精度达到要求的情况下,选择单隐含层,以加快速度训练速度。
隐含层节点数计算式为
(1)
式中l——隐含层节点数
n——输入层节点数
m——输出层节点数
α——1~10之间的常数
通过对比不同隐含层节点数下的输出误差最终确定隐含层节点数为13。因此,溶解氧浓度BP神经网络预测模型结构为6-13-1,模型结构如图8所示。
在BP神经网络中,输入层的节点决定了隐含层的神经元数量,设第i个样本的输入向量为
xi=(x1,x2,…,xn)
(2)
期望输出为
yi=(y1,y2,…,yn)
(3)
则隐含层输出为
(4)
预测输出为
(5)
预测误差
ei=yk-gk(k=1,2,…,m)
(6)
输入层、隐含层和输出层神经元之间的连接权重为ωij、ωjk,隐含层阈值aj,输出层阈值bk,f为隐含层激励函数。
激励函数又称激活函数,用于给神经元引入非线性的因素,使得神经网络可以逼近任意非线性函数应用于非线性模型中,常用的激活函数有Sigmoid 函数、tanh函数、ReLU函数和softmax函数。故经过综合考虑与试验对比采用tanh函数作为激活函数。
2.3.2遗传算法优化
(1)初始化种群利用实数编码的方式实现个体编码,将所有个体均用实数串表示,包括输入层和隐含层连接权值、隐含层阈值、隐含层与输出层连接权值以及输出层阈值4部分,神经网络的左右权值和阈值都包含在个体内,在已知网络结构的情况下,便可以组成一个结构、权值、阈值都确定的神经网络。
(2)根据个体获得的BP神经网络初始权值和阈值,利用80%的训练数据进行BP神经网络的训练预测输出,将期望输出和预测输出的平方差绝对值的和定义为个体适应度F,计算公式为
(7)
式中yi——BP神经网络的第i个节点的期望输出
oi——第i个节点的实际输出
k——系数
(3)选择操作:选用轮盘赌的方式进行选择操作,每个个体i的选择概率pi为
(8)
(9)
式中fi——个体i的适应度
N——种群个体数目
由于适应度越小越好,所以在个体选择前对适应度求倒数。
(4)交叉操作:对多重个体采用实数交叉的方式,染色体k、l、i在第j位的交叉操作方法为
(10)
式中b——[0,1]之间的随机数
(5)变异操作:选取第i个个体的第j个基因aij进行变异,操作方法为
(11)
其中
式中r2——随机数
amax——基因aij上界
amin——基因aij下界
Gmax——最大进化次数
r——[0,1]间的随机数
2.3.3神经网络预测
BP神经网络利用遗传算法优化的权值和阈值实现数据训练,经过训练的神经网络便能对类似样本的输入信息进行处理,从而输出误差最小的经过非线性转换的信息。
2.3.4训练寻优
寻找最优误差环节主要是依托于BP神经网络预测部分进行,当计算出预测误差后,判断误差是否达到最优或满足数据预测所需的精度,如果不能达到要求就重新对BP神经网络进行训练,再次实现数据预测并计算预测误差进行判断,通过不断地优化误差操作以实现误差的寻优过程,最后输出最优的数据预测结果。
选取上海海洋大学近海试验基地作为浮标投放点,设置监控系统每15 min进行一次数据采集,既保证对环境信息的准确把握,又在一定程度上节约了能源。将本浮标环境监控系统放置在近海岸区域,通过网络传输在监控平台实现数据监控和采集,如图9所示。
利用本文设计的监测系统,选取2020年4月15—17日3 d的监测数据,包括时间、溶解氧浓度、pH值、大气压、光照、温湿度、风速、风向等,从监控页面选择下载所需要的数据并选择部分参数绘制曲线如图10所示。
由图10可知,近海区域的溶解氧浓度、pH值等参数呈周期性变化趋势,由于气候等因素会产生部分波动,随着每天时间的变化可以看出环境温度等也呈周期性变化,因此本文针对溶解氧浓度预测在传统BP神经网络遗传算法模型的基础上提出改进方案,利用环境参数和少量水质参数实现对海水中溶解氧浓度的预测。
3.2.1模型参数选择
为了保证模型不提前收敛,同时提高模型的精确度,尽可能得到全局解,故种群模型应尽可能的大一些,为保证最终结果的精确度,在参数选择过程中采用对比试验的方法,对种群规模、进化代数等进行多次参数设置并运行程序,经试验对比最终种群规模设置为50,物种进化代数设置为20次。
由于交叉和变异概率太高或者太低都不利于种群发展,所以为了尽可能地提高模型精确度,提高预测准确度,并根据交叉和变异概率的一些性质,交叉概率一般选取0.6~0.9,变异概率一般选取0.01~0.3,经过多次试验结果对比,最终选用交叉概率为0.6,变异概率为0.1。
3.2.2预测试验结果分析
利用Matlab编程,根据所采集的数据,随机选择224组数据用作网络训练,剩下的56组作为测试数据,运行程序得到改进后遗传算法神经网络模型预测值与实际值的变化曲线如图11所示,同时为验证改进后算法的准确性,利用文献[27-28]在试验中所采用的方法形成对比试验,将所得到的预测数据进行分析得到实际值与预测值如表2所示,3种方法预测误差如表3所示,并绘制不同算法下相对误差如图12所示。
表2 测量数据与预测数据对比Tab.2 Comparison between measured and predicted data mg/L
表3 预测误差对比Tab.3 Comparison of prediction errors
由表2、3可以看出,BP神经网络的运算时间虽短但结果的精度不高,传统的遗传算法BP神经网络模型预测时间较长,预测精度有所提高,而改进遗传算法BP神经网络模型虽然所用时间较长,但预测精度有明显提高,其预测平均误差为0.017 8 mg/L,均方差为0.000 570 mg/L,标准差为0.023 909 mg/L,改进算法决定系数为0.990 8,故改进后算法具有更好的拟合度。通过图12也可以明显看出,改进遗传算法BP神经网络模型的预测结果更加接近真实值,其预测误差更加稳定。结果表明,经上述改进的算法训练后得到的神经网络模型不仅对训练样本具有很好的拟合能力,而且对测试样本也具有很高的拟合能力,由此可见利用改进遗传算法BP神经网络模型预测溶解氧浓度的方法可行。
(1)针对近海养殖环境设计了浮标水质监测系统,利用浮标平台实现近海区域的环境监测,试验结果表明,本系统能够稳定可靠地在近海环境中工作,且各项监测指标都能够满足近海环境监测的需求。
(2)针对近海养殖中具有非线性变化特点的溶解氧参数,在传统遗传算法BP神经网络优化模型的基础上提出改进方案,弥补网络自身的不足,减少了由于初始权值和阈值的随机选取而造成的网络训练时间较长等问题,同时提高了原有优化算法的计算精度。试验结果表明,改进遗传算法BP神经网络优化模型虽然训练时间有所增加,但预测精度明显提高,平均误差由0.077 8 mg/L降至0.017 8 mg/L,建模研究结果表明,改进遗传算法BP神经网络优化模型能对溶解氧浓度进行可靠的预测。