郎亚军,行鸿彦*
(1.南京信息工程大学气象灾害预报预警与评估协同创新中心,南京 210044; 2.南京信息工程大学江苏省气象探测与信息处理重点实验室,南京 210044;)
随着社会的发展,在恶劣环境下对降水进行实时自动的测量越来越重要[1]。尤其是在机场高速公路、气象等领域,对降水的自动监测越来越重要。机场、高速等领域对降水的实时测量有助于采取应急措施;气象等领域可以根据降水分析天气及气候变化。因此,对降水的实时测量影响着人类社会的方方面面。
传统机械式雨量计从原理上可以分为:虹吸式雨量计、翻斗式雨量计、称重式雨量计等。但是无一例外都存在以下几个缺点[2]:降雨太小时无法进行实时测量,灵敏度低;强降雨时又会产生明显误差;机械部分长期暴露在野外会被腐蚀;需要人为定期清理和维护,否则集水通道会被杂物堵塞;体积太大,不能动态测量[3]。
除了传统的雨量计,目前国内市场上已有的光学雨量计多被应用于非气象领域,如汽车自动雨量传感器,有如下缺点:测量范围小、误差大、随机性高,只能实现功能性的测量。国外上世纪50年代就开始了自动量计的研究,起步较早,其中以光学降水测量技术为主,目前已实现了降水的连续、非接触自动测量,可以提高时间分辨率的降水粒子微观信息。比较成熟的产品有:FD12P、PWD系列天气现象传感器[4];德国OTT-Parsivel雨滴谱仪和Thies-LAM雨滴谱仪;WIVIS、OWI;二维成像雨量计等,采用的原理主要是散射测量法、消光遮蔽法、图像采集法等。国内方面起步较晚,存在一定的差距,成熟的样机产品更是少之又少,主要有光学测量和超声波测量。因此,研究有我国自主知识产权的光学雨量计迫在眉睫,意义重大[5]。
本文设计了基于全连接神经网络的红外漫反射光学雨量计,提出了该雨量计的系统结构及原理技术,设计了硬件电路,并在人工降雨实验室条件下对降雨进行测量,算法拟合出降水频率与降雨强度的函数模型,最终将函数模型写入硬件中,实现了自动雨量计的设计。可以有效提高测量精度和灵敏度,弥补传统雨量计的缺陷,为日常生活及气象观测领域带来便利[6]。
基于全连接神经网络的红外漫反射光学自动雨量计系统主要由振荡信号发生模块、红外光电传感器、信号放大采样模块、MCU模块组成,如图1所示。
图1 系统结构框图
振荡信号发生模块给红外发射模块提供38 kHz的方波调制信号,调制信号有助于避免环境光的干扰;红外发射端将调制后的数字信号转换为光信号发射出去;红外接收端将反射回来的光信号转换为模拟信号;信号放大采样模块将采集的模拟信号进行放大采样;MCU模块对采集的数字信号进行处理及控制各个模块[7]。
当光照射到固体表面时,会发生反射和散射。然而当光束入射至颗粒状的晶面层时,一部分光在表层各晶粒面产生镜面反射;另一部分光则折射入表层晶粒内部,经部分吸收后射至内部晶粒界面,再发生发射、折射吸收[8]。如此多次重复,最后由粉末表层朝各个方向反射出来,构成了漫反射。由于雨滴是颗粒状的,因此在一定强度的降雨条件下,可以将雨滴看成是表面粗糙的镜面层,光束经过雨滴将发生漫反射。雨滴连续经过光路时,接收端的光信号将发生变化,计算出接收到的光信号频率,并与降雨强度进行人工神经网络的非线性拟合,得出二者关系。
2.1.1 红外发射模块设计
本设计将电信号经调制器调制成频率为38 kHz的调制信号,驱动红外二极管发射红外光,该频率是远大于雨滴下落频率的,同时也高于环境中光信号的波动频率,可以有效避免环境中可见光的干扰,提高抗干扰性和测量精度。38 kHz的调制信号采用RC环形振荡器产生,可通过改变R和C的数值实现对输出频率的调节,近似简化为:
T≈2.2RC
(1)
红外发射模块设计思路如图2所示。
图2 发射端工作原理图
2.1.2 红外接收模块设计
图3 接收端工作原理图
红外接收模块必须具有较高灵敏度,便于从环境的可见光等干扰信号中识别出有用信号。采用低功耗的HS0038B光电传感器接收红外光信号,工作电流为0.25 mA,传感器内部的金属屏蔽和智能自动增益电路,具有抗干扰能力和高灵敏度。接收的电信号经放大解调即可得到脉冲频率,匹配相应的降雨强度。时钟逻辑将解调信号通过负载最终传送给MCU模块。红外发射模块设计思路如图3所示。
微控制器采用STM32F103c8t6,该单片机使用高性能的ARM32位的Cortex-M3的RISC内核,工作频率为72 MHz,内置高达128 kbyte的闪存和20 kbyte的SRAM,丰富的增强I/O端口和联接到两条APB总线的外设。MCU模块接收来自光电传感器的电信号。当光路上没有雨滴遮挡时,电信号一直是高电平的,雨滴经过光路将产生一个低电平[9]。设置微控制器对输入信号进行捕获,第1次捕获下降沿,第2次捕获上升沿,将两次捕获时间间隔相减即可得出雨滴经过时的低脉冲宽度[10]。将雨滴的降落时间周期取倒数即可求出降雨频率为后面的算法处理提供依据。
雨量计的软件设计以稳定和简单为前提,采用定时器中断方式决定采集雨滴频率的周期,在中断服务程序中定义中断标志位,软件流程如图4所示。
图4 主程序流程图
得益于深度学习的发展,人工神经网络模型可以对数据进行高度抽象表达,还能够有效学习复杂映射关系。卷积神经网络主要用于图像处理和计算机视觉,因此本文选择全连接神经网络。输入频率数据为20维,因此设计网络输入层含有20个人工神经元。由于只有一个输出降雨强度,因此输出层含有1个人工神经元。隐藏层也同样设计成20个神经元[11]。
图5 人工神经网络结构
可以看出,前一层的每一个网络节点都与后一层的任意网络节点相连,输入层节点个数为n,隐含层节点个数为l,输出层节点个数为m。输入层到隐藏层的权重为wij,隐藏层到输出层的权重为wjk,输入层到隐藏层的偏置值为aj,隐藏层到输出层的偏置值为bk,学习率为η,激励函数g(t)取双曲正切函数,如下:
(2)
(3)
输出层的输出Ok可表示为:
(4)
用二次代价函数衡量输出层的预测值Ok与实际值Yk的差别:
(5)
为了使训练的结果更加准确,即需要得到误差函数E的最小值,这是一个反向传播的过程,使用梯度下降算法从输出层到输入层分别对权值和偏置值进行更新[12]。
记Yk-Ok=ek,则隐藏层到输出层的权值和偏置值更新如下:
推导出更新公式为:
wjk=wjk+ηHjek
(6)
bk=bk+ηek
(7)
输入层到隐藏层的权值和偏置值更新如下:
推导出更新公式为:
(8)
(9)
通过训练不断更新神经网络中的权值和偏置值,最终得到最小的误差函数E,进而拟合出降雨频率与降雨强度的关系[13]:
(10)
在实验室环境下用蠕动泵控制水压,配合喷头实现人工降雨,调节水压模拟不同降雨强度,对设计的光学雨量计进行验证测试[14],红外接收电路的输出波形如图6所示,图中波形采用DSO-X 2012A数字存储示波器获得。
图6 红外接收电路输出波形
图6可以看出,在一定降雨强度下,接收电路的输出波形具有固定的周期频率,为了直观的表现出信号频率与降雨强度之间的关系。调节水压,测量出每10 s不同降雨量的情况下信号频率的变化[15],并选取连续的20个频率数据绘制出图7。
图7 降雨频率对比图
图7可以看出,以连续的20组频率数据为例,不同的降雨强度下,降雨频率波动在一定的范围之内。降雨频率与降雨强度之间存在一定的映射关系,大体可以看出,降雨量越大,频率越高[16]。可以通过回归模型来刻画样本学习数据之间的复杂关系,并利用学习到的关系预测降雨强度。传统的回归模型能够通过少量的样本刻画较复杂的映射关系。但是在这个应用中,样本数据输入量很大并且存在一定的波动范围,因此传统回归模型很难对其进行建模[17]。
在TensorFlow架构中搭建全连接神经网络模型,并对测得的降雨频率和降雨量的数据进行处理,用训练数据集对模型进行训练更新网络中的权重值和偏置值[18],接着用测试数据集进行训练结果的对比,得出预测结果与实际值的对比,如图8所示。
图8 预测值与实际值对比图
图8中散点分布的是实际值,曲线是预测值,横轴为降雨频率,纵轴为降雨量,可以看出曲线与散点重合度较高,模型已经达到了很好的预测效果,曲线重合度为0.962。
为进一步验证该雨量计的实际监测效果,在实验室条件下将自动雨量计的监测数据和人工测量的降雨数据进行对比,每10 s记录下一组数据[19]。
表1 降雨数据对比
根据表1中实验数据的对比可以看出,该自动雨量计的监测数据与人工测量相比误差≤0.2 mL,效果良好,具有较好的实际应用价值。
为了精准、自动化监测降雨量大小,提出了利用红外光电传感器,并利用全连接神经网络进行优化拟合的雨量计的设计方案。首先设计了系统结构框图,给出了光学自动雨量计的总体设计思路。其次设计了红外发射和接收模块,有效避免可见光干扰,具有较高灵敏度。以STM32F103c8t6作为本设计的核心控制模块,能够满足光电传感器高速扫描时数据的接收和计算需求,理论上推导出神经网络对数据的优化处理过程。获得降雨数据之后,建立全连接神经网络模型,在TensorFlow架构中对降雨频率和降雨量数据进行拟合,拟合度达到0.962,实测误差率≤0.2mL,实现了对降雨量的昼夜连续自动观测,满足了水文、气象、交通等领域的需求。
郎亚军(1994-),现为南京信息工程大学硕士研究生,主要研究方向为微弱信号检测与处理、光信号处理,1473667553@qq.com;
行鸿彦(1962-),1983年于太原理工大学获得学士学位,1990年于吉林大学获得硕士学位,2003年于西安交通大学获得博士学位,现为南京信息工程大学教授、博士生导师,主要研究方向为气象仪器设计与计量,信号检测与处理等,xinghy@nuist.edu.cn。