基于改进的Elman神经网络的水表流量计量方法和系统与流程

文档序号:17596688发布日期:2019-05-07 19:34阅读:191来源:国知局
基于改进的Elman神经网络的水表流量计量方法和系统与流程

本发明涉及水表流量计量技术领域,尤其涉及一种基于改进的elman神经网络的水表流量计量方法和系统。



背景技术:

水表是测量水流量的仪表,可以分为机械式计量和电子流量计量两种。机械式计量的水表,由于其技术成熟、成本较低、安装调试方便等优点,在目前的市场上占有绝对的比重。但是机械式计量的水表存在流量计测量精度不高,压力损耗较大,适用范围具有单一性且抄表不易的缺点。而在电子流量计量方面:目前,一般采用由计量原理推导的流量公式,其中涉及到对不同参数的复杂修正或者经验估计,且对于一些易受工况影响的水表而言,还需要实时进行相应的校正补偿以减小计量误差,过程复杂且具有一定误差。同时,在实际流量计量中还存在着传感器的安装、采样等误差。因此,电子水表所采集的数据和水流量的对应规律具有一定复杂性、非线性以及不确定性。

因此,需要一种水表流量计量方法和系统,测量精度高,且能够克服电子水表流量计量涉及复杂参数修正与校正补偿以减小计量误差。



技术实现要素:

本发明提供的基于改进的elman神经网络的水表流量计量方法和系统,其主要目的在于测量精度高,且能够克服电子水表流量计量涉及复杂参数修正与校正补偿以减小计量误差。

为解决上述技术问题,本发明采用如下技术方案:

一种基于改进的elman神经网络的水表流量计量方法,包括以下步骤:

获取管道内各个流量点超声波的顺流飞行时间和逆流飞行时间的时间差数据;

对各所述时间差数据进行预处理,并对预处理后的各所述时间差数据进行随机选取,得到训练样本集和测试样本集;

构建改进的elman神经网络模型,所述改进的elman神经网络模型包括输入层、隐含层、承接层以及输出层;根据所述训练样本集并利用自适应误差反向传播算法对改进的elman神经网络模型进行训练,并通过测试样本集对改进的elman神经网络模型进行仿真验证,最终确定流量计量模型;

调用所述流量计量模型获取设置在管道中待测超声波流量计的当前超声波的顺流飞行时间和逆流飞行时间的时间差数据,根据所述时间差数据以确定待测超声波流量计的瞬时流量。

作为一种可实施方式,所述根据所述训练样本集并利用自适应误差反向传播算法对改进的elman神经网络模型进行训练,并通过测试样本集对改进的elman神经网络模型进行仿真验证,得到流量计量模型,包括以下步骤;

根据所述训练样本集并利用自适应误差反向传播算法对改进的elman神经网络模型进行训练,直到输出数据的误差满足精度要求;

再通过测试样本集对改进的elman神经网络模型进行仿真验证,当满足验证要求时,保存各层连接权值与阈值,最终确定流量计量模型。

作为一种可实施方式,所述对各所述时间差数据进行预处理,包括以下步骤:

对各所述时间差数据进行有效数据选取,对选取后的有效数据中的异常数据进行筛选,得到异常数据;计算各异常数据相邻对应的平均值,并以各平均值替换对应的异常数据;再采用卡尔曼滤波器状态方程对替换后的各时间差数据进行滤波处理,得到相对平滑的各时间差数据。

作为一种可实施方式,所述卡尔曼滤波器状态方程的具体公式为:

x(k)=a·x(k-1)+b·u(k)+w(k)z(k)=h·x(k)+y(k);

式中,a、b以及h为系统参数;x(k)代表k时刻系统的状态;u(k)代表控制量;w(k)代表符合高斯分布的过程噪声;z(k)代表k时刻系统的观测值;y(k)代表符合高斯分布的测量噪声。

作为一种可实施方式,所述训练样本集为随机选取得到的m个时间差数据;所述测试样本集为随机选取得到的n个时间差数据。

作为一种可实施方式,本发明提供的基于改进的elman神经网络的水表流量计量方法,还包括以下步骤;

在最终确定流量计量模型后,将所述流量计量模型封装生成api;并编辑对应api的接口和功能说明的api文档。

相应的,本发明还提供一种基于改进的elman神经网络的水表流量计量系统,包括获取模块、预处理模块、训练验证模块以及计量模块;

所述获取模块,用于获取管道内各个流量点超声波的顺流飞行时间和逆流飞行时间的时间差数据;

所述预处理模块,用于对各所述时间差数据进行预处理,并对预处理后的各所述时间差数据进行随机选取,得到训练样本集和测试样本集;

所述训练验证模块,用于构建改进的elman神经网络模型,所述改进的elman神经网络模型包括输入层、隐含层、承接层以及输出层;根据所述训练样本集并利用自适应误差反向传播算法对改进的elman神经网络模型进行训练,并通过测试样本集对改进的elman神经网络模型进行仿真验证,最终确定流量计量模型;

所述计量模块,用于调用所述流量计量模型获取设置在管道中待测超声波流量计的当前超声波的顺流飞行时间和逆流飞行时间的时间差数据,根据所述时间差数据以确定待测超声波流量计的瞬时流量。

作为一种可实施方式,所述训练验证模块包括自适应训练单元和验证单元;

所述自适应训练单元,用于根据所述训练样本集并利用自适应误差反向传播算法对改进的elman神经网络模型进行训练,直到输出数据的误差满足精度要求;

所述验证单元,用于再通过测试样本集对改进的elman神经网络模型进行仿真验证,当满足验证要求时,保存各层连接权值与阈值,最终确定流量计量模型。

作为一种可实施方式,所述预处理模块还用于,对各所述时间差数据进行有效数据选取,对选取后的有效数据中的异常数据进行筛选,得到异常数据;计算各异常数据相邻对应的平均值,并以各平均值替换对应的异常数据;再采用卡尔曼滤波器状态方程对替换后的各时间差数据进行滤波处理,得到相对平滑的各时间差数据。

作为一种可实施方式,本发明提供的基于改进的elman神经网络的水表流量计量系统,还包括封装模块;

所述封装模块,用于在最终确定流量计量模型后,将所述流量计量模型封装生成api;并编辑对应api的接口和功能说明的api文档。

与现有技术相比,本技术方案具有以下优点:

本发明提供的基于改进的elman神经网络的水表流量计量方法和系统,对获取的管道内各个流量点超声波的时间差数据进行预处理选取,得到训练样本集和测试样本集;根据训练样本集并利用自适应误差反向传播算法对构建的改进的elman神经网络模型进行训练,再通过测试样本集对训练后的模型进行测试,最终确定流量计量模型;由于采用自适应误差反向传播算法训练,使得具体收敛速度快,不易陷入局部极值的特点;从而避免了涉及复杂参数修正与校正补偿以减小计量误差的问题;且调用流量计量模型来获取当前的时间差数据以确定待测超声波流量计的瞬时流量,使得瞬时流量的测量精度高。

附图说明

图1为本发明实施例一提供的基于改进的elman神经网络的水表流量计量方法的流程示意图;

图2为改进的elman神经网络模型的结构示意图;

图3为改进的elman神经网络模型的训练流程示意图;

图4为改进的elman神经网络模型的自适应误差梯度控制示意图;

图5为本发明实施例二提供的基于改进的elman神经网络的水表流量计量系统的结构示意图。

图中:100、获取模块;200、预处理模块;300、训练验证模块;310、自适应训练单元;320、验证单元;400、计量模块;500、封装模块。

具体实施方式

以下结合附图,对本发明上述的和另外的技术特征和优点进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的部分实施例,而不是全部实施例。

请参阅图1,本发明实施例一提供的基于改进的elman神经网络的水表流量计量方法,包括以下步骤:

s100、获取管道内各个流量点超声波的顺流飞行时间和逆流飞行时间的时间差数据;

s200、对各时间差数据进行预处理,并对预处理后的各时间差数据进行随机选取,得到训练样本集和测试样本集;

s300、构建改进的elman神经网络模型,改进的elman神经网络模型包括输入层、隐含层、承接层以及输出层;根据训练样本集并利用自适应误差反向传播算法对改进的elman神经网络模型进行训练,并通过测试样本集对改进的elman神经网络模型进行仿真验证,最终确定流量计量模型;

s400、调用流量计量模型获取设置在管道中待测超声波流量计的当前超声波的顺流飞行时间和逆流飞行时间的时间差数据,根据时间差数据以确定待测超声波流量计的瞬时流量。

需要说明的是,于本实施例中,本发明是基于tdc-gp22时差法超声波流量计。tdc-gp22是一款超低功耗,具有高精度时间测量单元的时间数字转换器。tdc-gp22时差法超声波流量计设置在管道中,其由与其连接的微处理器控制,微处理器通过spi指令控制gp22,gp22驱动上游的换能器发送超声波,经管段两次镜面反射,由下游换能器接收超声波信号,通过gp22信号处理获取顺流飞行时间;通过同样的方式获取逆流飞行时间,两者相减获取时间差δt。时间差数据可以为使用校验台测试各个流量点的时间差δt。

而由于水表的计量数据通常具有动态波动特性,同时,改进的elman神经网络由于其承接层的存在又对历史数据具有较强敏感性和动态的记忆功能。因此改进的elman神经网络模型具有适应系统动态改变的特性。

本发明提供的基于改进的elman神经网络的水表流量计量方法,对获取的管道内各个流量点超声波的时间差数据进行预处理选取,得到训练样本集和测试样本集;根据训练样本集并利用自适应误差反向传播算法对构建的改进的elman神经网络模型进行训练,再通过测试样本集对训练后的模型进行测试,最终确定流量计量模型;由于采用自适应误差反向传播算法训练,使得具体收敛速度快,不易陷入局部极值的特点;从而避免了涉及复杂参数修正与校正补偿以减小计量误差的问题;且调用流量计量模型来获取当前的时间差数据以确定待测超声波流量计的瞬时流量,使得瞬时流量的测量精度高。

下面对发明提供的基于改进的elman神经网络的水表流量计量方法的步骤进行详细说明:

1、获取时间差数据;于本实施例中,时间差数据可以是实验获取的,即基于tdc-gp22时差法超声波流量计使用校验台测试各个流量点的顺流飞行时间和逆流飞行时间之间的时间差。

2:数据预处理:数据预处理包括数据筛选和采用卡尔曼滤波器,以得到相对平滑的数据。即对各时间差数据进行有效数据选取,对选取后的有效数据中的异常数据进行筛选,得到异常数据;计算各异常数据相邻对应的平均值,并以各平均值替换对应的异常数据;再采用卡尔曼滤波器状态方程对替换后的各时间差数据进行滤波处理,得到相对平滑的各时间差数据。

2.1数据筛选:数据筛选包括:选取管段内流量趋于稳定状态的时间段内有效数据;剔除异常数据值并以相邻数据平均值代替。趋于稳定状态可以有预先设置的参数区间确定。相邻数据指的是异常数据值相邻的6位数据的平均值,于其他实施例中,相邻数据的个数可以为其他值,对此并不进行限制。

2.2卡尔曼滤波器:卡尔曼滤波器状态方程可描述为:

x(k)=a·x(k-1)+b·u(k)+w(k)z(k)=h·x(k)+y(k);

式中,a、b、h为系统参数;x(k)代表k时刻系统的状态;x(k-1)代表k-1时刻系统的状态;u(k)代表控制量;w(k)代表符合高斯分布的过程噪声;z(k)代表k时刻系统的观测值;y(k)代表符合高斯分布的测量噪声。卡尔曼滤波是一个迭代的过程,根据前一时刻迭代的结果,即系统状态和误差协方差x(k-1|k-1)和p(k-1|k-1),来预测这一时刻的系统状态和误差协方差,得到x(k|k-1)和p(k|k-1)。那么系统状态和误差协方差的关系公式为:

x(k|k-1)=a·x(k-1|k-1)+b·u(k)p(k|k-1)=a·p(k-1|k-1)·at+q;式中,q为w(k)的协方差;at表示a的转置矩阵。

2.3随机选取预处理后的m个时间差数据作为训练样本集;随机选取预处理后的n个时间差数据作为测试样本集。

3:改进的elman神经网络模型的初步结构示意图,如图2。改进的elman神经网络模型包括输入层、隐含层、承接层以及输出层。

3.1输入层:输入层包含若干传输节点,起传输信号的作用。

3.2隐含层:隐含层包含若干隐含层神经元,同时接收来自输入层节点的输入信号以及承接层节点的反馈输入,采用logsig激活函数。函数公式如下:

其中,σ为隐含层输入,包括输入层的输出值、承接层的反馈输入值及偏置项,在此模型中σ=w1u(n-1)+w3l(n)+bh;

进一步,隐含层表达式为:h(n)=f(w1u(n-1)+w3l(n)+bh);

式中,n为迭代时间步,bh为隐含层阈值矩阵,h=[h1,h2,...,hr]为隐含层输入项经由logsig激活函数f(·)的隐含层输出向量,u=[u1,u2,...,us]为输入向量,l(n)为承接层反馈输入,w1代表输入层到隐含层连接权值矩阵,w3代表承接层到隐含层连接权值矩阵。

3.3承接层:承接层为延时算子,每个承接层神经元有且仅有一个隐含层神经元与之对应,分别记忆和存储该隐含层神经元t-1时刻的输出值,并将它们延迟反馈给隐含层神经元。因此,网络在t时刻的输出状态不仅与当前t时刻输入信号有关,还与t-1时刻的网络状态有关,具有适应系统动态改变的特性。

进一步,承接层表达式为:l(n)=α·l(n-1)+h(n-1);式中,l=[l1,l2,...,lq]为承接层输出向量,α为自连接反馈增益因子,0≤α≤1。

3.4输出层:输出层神经元接收来自隐含层神经元的输入,起到线性加权的作用。采用线性函数作为输出层的激活函数,公式为:g(x)=k·x+c;其中,k为加权因子,c为配置项,x为此输出层的输入值,在此模型中,x=w2h(n)+by;进一步,输出层表达式为:y(n)=g(w2h(n)+by);式中,y=[y1,y2,...,ym]为输出层的输入值x经由线性激活函数g(·)得到的输出层的输出向量,by为输出层阈值矩阵,w2代表隐含层到输出层连接权值矩阵。

4:自适应误差梯度控制网络训练如图3和图4所示。具体为,根据训练样本集并利用自适应误差反向传播算法对改进的elman神经网络模型进行训练,直到输出数据的误差满足精度要求;再通过测试样本集对改进的elman神经网络模型进行仿真验证,当满足验证要求时,保存各层连接权值与阈值,最终确定流量计量模型。改进的elman神经网络模型包括以自适应误差反向传播算法进行最佳连接权值与阈值的选取,以获得状态最优的elman神经网络模型。主要原理为信号向前传递,而误差通过反向传递的方式逐层向前传递,使上一层中的神经元根据误差来进行自身权值及阈值的更新,使得神经网络模型的最终输出与期望输出尽可能接近。采用自适应误差反向传播算法训练网络的连接权重与阈值,避免了传统bp算法收敛速度慢,易陷入局部极值的缺点。且本发明可以应用于类似的超声波热量表,超声波燃气表等流量计量仪器,具有广泛应用前景。

4.1定义误差函数:若elman神经网络模型训练过程的第k步的实际输出为y(k),期望输出为则定义神经网络模型的误差函数为:

4.2自适应误差梯度控制:自适应误差反向传播算法包括在反向传播算法(back-propagation,bp算法)基础上自适应地改变bp学习中的学习率η,以控制学习过程中梯度下降速度,达到改善传统bp算法收敛速度慢的缺点。

进一步,误差反向传播算法的步骤如下:

4.2.1权值初始化,置所有可调参数(连接权值和阈值)为均匀分布的较小数值;前向计算,设一个输入样本是(x(n),d(n)),输入向量x(n)指向感知节点的输入层和期望响应向量d(n)指向计算节点的输出层;在l层神经元j的激活函数为:

反向计算,计算神经网络模型的δ(即局部梯度),定义为:

根据广义delta规则,调节神经网络模型第l层的突触权值为:

n=n+1,输入新的训练样本集,直至ea达到预定要求。

更进一步,自适应学习率设计为:式中,▽e(k-i)代表前i次迭代的误差函数梯度值。

5:确定流量计量模型。

5.1确定神经网络模型的参数:当误差满足要求,或训练达到设定次数,结束神经网络模型训练。确定改进的elman神经神经网络模型各层的连接权重与阈值。输入测试样本集进行仿真验证,最终确定改进的elman神经网络的流量计量模型。

5.2生成api及api文档:将改进的elman神经网络流量计量模型封装生成api,并编辑对应api的接口和功能说明的api文档,以便软件开发中对流量计量模型的调取和应用。

6:瞬时流量计算。在超声波流量计的软件开发中直接调用生成的api中的函数,通过测试获取超声波在管道中顺逆流飞行时间差δt,进而计算出该状态下瞬时流量q。

进一步,当流体在管道中流动时,两个换能器交替发射出超声波信号,当超声波信号顺着流体流向传播和逆着流体流向传播时会产生飞行时间差数据δt。

时间差数据δt的计算公式为:

式中,l为两个换能器之间的声程,t1为顺流时间,t2为逆流时间。c为超声波在流体中的声速,随介质的温度而变化。

c的计算公式为:

式中,c和c0分别代表温度为t℃和0℃时的声速。可推算出瞬时流量q。

瞬时流量q的计算公式为:

式中,k为由时间差数据δt计算公式得到的线平均速度转化为对应面平均速度的修正系数,s为管段截面面积,d为管段直径。

基于同一发明构思,本发明实施例还提供一种基于改进的elman神经网络的水表流量计量系统,该系统的实施可参照上述方法的过程实现,重复之处不再冗述。

如图5所示,是本发明实施例二提供的基于改进的elman神经网络的水表流量计量系统的结构示意图,包括获取模块100、预处理模块200、训练验证模块300以及计量模块400;获取模块100用于获取管道内各个流量点超声波的顺流飞行时间和逆流飞行时间的时间差数据;预处理模块200用于对各时间差数据进行预处理,并对预处理后的各时间差数据进行随机选取,得到训练样本集和测试样本集;训练样本集为随机选取得到的m个时间差数据;测试样本集为随机选取得到的n个时间差数据。训练验证模块300用于构建改进的elman神经网络模型,改进的elman神经网络模型包括输入层、隐含层、承接层以及输出层;根据训练样本集并利用自适应误差反向传播算法对改进的elman神经网络模型进行训练,并通过测试样本集对改进的elman神经网络模型进行仿真验证,最终确定流量计量模型;计量模块400用于调用流量计量模型获取设置在管道中待测超声波流量计的当前超声波的顺流飞行时间和逆流飞行时间的时间差数据,根据时间差数据以确定待测超声波流量计的瞬时流量。

本发明采用自适应误差反向传播算法训练,使得具体收敛速度快,不易陷入局部极值的特点;从而避免了涉及复杂参数修正与校正补偿以减小计量误差的问题;且调用流量计量模型来获取当前的时间差数据以确定待测超声波流量计的瞬时流量,使得瞬时流量的测量精度高。

进一步的,训练验证模块300包括自适应训练单元310和验证单元320;自适应训练单元310用于根据训练样本集并利用自适应误差反向传播算法对改进的elman神经网络模型进行训练,直到输出数据的误差满足精度要求;验证单元320用于再通过测试样本集对改进的elman神经网络模型进行仿真验证,当满足验证要求时,保存各层连接权值与阈值,最终确定流量计量模型。

进一步的,预处理模块200还用于,对各时间差数据进行有效数据选取,对选取后的有效数据中的异常数据进行筛选,得到异常数据;计算各异常数据相邻对应的平均值,并以各平均值替换对应的异常数据;再采用卡尔曼滤波器状态方程对替换后的各时间差数据进行滤波处理,得到相对平滑的各时间差数据。

卡尔曼滤波器状态方程的具体公式为:

x(k)=a·x(k-1)+b·u(k)+w(k)z(k)=h·x(k)+y(k);

式中,a、b以及h为系统参数;x(k)代表k时刻系统的状态;u(k)代表控制量;w(k)代表符合高斯分布的过程噪声;z(k)代表k时刻系统的观测值;y(k)代表符合高斯分布的测量噪声。

进一步的,本发明提供的基于改进的elman神经网络的水表流量计量系统还包括封装模块500;封装模块500用于在最终确定流量计量模型后,将流量计量模型封装生成api;并编辑对应api的接口和功能说明的api文档。

本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1