基于BP神经网络光学电压传感器温度补偿技术的研究与Labviwe 软件的实现
2019-09-24黄艳
黄 艳
(漳州职业技术学院 电子工程学院,福建 漳州 363000)
光学电压传感器是一种重要的电力测量设备,是利用光电子技术和电光调制原理来实现电压测量的。 光作为敏感信息载体,用光纤来传递敏感信息,此敏感信息经传感头电压调制后的光信号是电压的函数,光信号经过光电转换之后用电子线路和计算机来处理从而得到被测电压值[1-4]。 由于光学电压传感器具有抗电磁干扰能力强,易实现小型化、智能化的需求,因此被广泛使用。 然而其输出特性大都为非线性,稳定性差一直是阻碍其发展的一个关键问题,其中温度稳定性问题是一个重要因素。 因此,采取一定的补偿措施,减小温度对系统的影响,提高系统的准确度与稳定性是其实用化中必须要解决的一个重要问题[5-6]。
本文设计了采用双光路温度补偿系统, 分别利用传感器输出的两路电场矢量相互垂直的线偏振光进行运算处理,从而消除温度的影响。 除了通过硬件温度补偿方法外,还采用Matlab 软件提供的BP 神经网络函数仿真出一个3 层前向反馈神经网络,训练出在不同环境温度下传感器输出电压值与实际测量电压值之间的映射关系。为提高系统可视性,采用虚拟仪器技术,调用Labview 程序中的matlab script 节点将Matlab 和Labview 二者有机的结合起来,充分发挥二者各自的优越性,用户可通过面板指示值获得补偿后的电压大小。 通过软、硬件的配合,实现了电压信号的温度补偿,提高了光学电压传感器的稳定性和准确度。
1 双光路补偿光学电压传感器工作原理
泡克耳斯 (Pockels) 效应型光学电压传感器通常采用电光晶体Bi4Ge3O12(BGO)作为传感介质,利用电光晶体在电场作用下产生双折射现象,此时可将BGO 晶体可视为一可变的位相延迟器。其原理示意图如图1 所示,在该种横向加压调制方式下(外加电场与光传播方向垂直),其相位延迟δ 与被测电压值V 的大小关系[7]为
式中 V 为被测电压,λ 为入射光波波长,Vπ为 BGO 晶体横向电压调制时的半波电压,n0,γ41分别BGO 晶体的折射率和电光张量系数。
图1 光学电压传感器原理框图
其工作过程为BGO 晶体在外电场作用下发生双折射效应。 激光器发出的光经由光纤准直器传入起偏器,将光变成线偏振光,再经由1/4 波片后变成圆偏振光,当光透过电场作用下的BGO 电光晶体时,产生双折射现象,双折射两光波之间产生位相差,该位相差大小与BGO 所加电压成正比。经检偏器后,两束光产生干涉。 由偏光干涉原理可得输出光强I0和外加电压关系为
当外加正弦电压 V=Vmsin(ωt),且满足 Vm<<Vπ时,有
可见输出光信号有直流分量IDC和交流分量IAC两部分
利用电路处理可得与外加电压成正比的输出信号
光学电压传感器中电光晶体的光学特性直接影响传感系统的性能,因其在具有Pockels 效应的同时,还具有自然双折射、旋光性、热释电效应等随温度而变的干扰效应,这些效应会严重影响传感器的稳定性[8-9]。 双光路温度补偿是指在原测试原理光路上再增加一路光路,采用偏振分束棱镜获得两路电场矢量相互垂直的光信号,经两路光纤传输后经由两光电探测器探测,再经运算处理从而消除温度的影响[7]。
设由BGO 晶体的Pockels 效应引起的相位延迟为δ,由温度引起的相位延迟为Δ,传感器两路的输出光强分别为
其中I∥和I⊥分别表示检偏器与起偏器平行和垂直两种强开下传感器的输出光强。 将二者利用级数展开,有
可见利用此法消除了随温度变化的干扰双折射的影响,提高了传感器的稳定性。
在双光路补偿法中,认为由电光效应产生的传感器输出不随温度而变化。 但实际上,晶体的实际折射率和电光系数都与温度T 有关,因此晶体半波电压也随温度的变化而改变,从而导致双光路补偿法不能完全克服温度效应的影响[10]。 本文采用BP 神经网络对传感器的静态误差进行综合修正,从而实现对电压传感器的非线性温度补偿。
2 BP神经网络温度补偿原理
BP 算法是当前应用最广泛的神经网络模型,分为输入层、隐含层和输出层,各层之间采用整体互连方式,同一层各个单元之间不互相连接。 这种网络结构中每一层神经元只接受前一层神经元的输入, 后一层的神经元对前一层神经元没有信号反馈。 输入模式依次通过每一层的顺序传输,最后在输出层上得到输出。 将输出值与目标值对比,如果输出层无法得到目标值,则将目标值与输出值之间的差值进行方向传播,并逐层修改各层神经元的连接权值,将输出误差减小到允许的范围内[11-14]。
采用BP 神经网络补偿法改善光学电压传感器输出特性的原理图如图2 所示,由传感器模型和神经网络模型两部分构成。
图2 光学电压传感器BP 神经网络温度跟踪补偿原理图
图2 中电压传感器模型可表示为
式中 U0为待测电压,T 为环境温度,UV为光学传感器输出电压。 为消除工作温度对传感器输出精度的影响, 采用逆向建模方法, 如图2,UT为温度传感器的输出信号,U 为补偿后的输出电压值。 通过神经网络的非线性映射能力逆向建立反向函数
将采集到的两个传感器的测量信号UV,UT和已知的电压值U0作为训练样本, 送入神经网络进行训练,输入模式从输入层经隐含层传向输出层,如果输出层没有得到预期的结果,则误差信号延原来的通路返回并修改各层的权值和偏置,直到误差最小,使目标输出U 在允许的范围内,并消除了温度的影响。 训练好的网络作为已知网络,只要将归一化的电压传感器和温度传感器的特征信息输入该网络,则网络输出就是被测电压[15-17]。
综上神经网络误差修正的步骤如下:
(1)取标准化处理后的电压、温度传感器原始实验数据输出和实际电压值作为神经网络所需的输入、输出样本数据对,建立样本库;
(2)初始化网络,确定输入层和输出层单元个数,修正因子,惯性系数或隐含层节点个数;
(3)训练网络,直至误差达到要求;
(4)训练好的网络作为已知网络,只要将归一化的电压传感器和温度传感器特征信息输入该网络,则网络输出就是被测电压。
2.1 神经网络训练样本的获取
2.1.1 建立样本库
为使BP 神经网络能够解决光学电压传感器温度补偿问题,则需要数量足够多的,且具有普遍性和代表性的数据样本对建好的神经网络进行训练。 训练的目的就是找出合适的网络权值使得输入样本和输出样本之间建立起难以用解析方法描述的映射关系, 使神经网络输出值与期望值之间的均方差最小[18-19]。 要达到上述要求,需将实测的实验数据作为网络训练样本,表1 是在不同工作温度情况下光学电压传感器的测量电压值大小[20]。由于光电传感器的晶体温度在20 ℃时,测量得到的电压值最接近真实值,因此选取环境温度为20 ℃时的电压输出值作为标定电压值。
表1 不同温度下光学电压传感器的测量电压值 (20℃)
2.1.2 训练样本数据归一化
根据图2,神经网络的输入量分别为光学电压传感器的电压输出值和对应工作温度值,由表1可见电压输出值随温度变化相差很大。 由于神经网络的许多学习算法对权值范围都有限制,不能适应宽的数据变化范围,因此为避免神经网络学习时输入段数据取值范围相差太大,影响神经网络的学习精度和速度,需对神经网络的输入、输出训练样本进行归一化处理。 归一化处理目的在于消除不同量纲的影响,使得每一个变量具有同等的表现力[21]。 通常情况下我们采用(12)式和(13)式分别对输入样本库和输出样本库进行归一化处理[22]。 经归一化处理后,建立了神经网络输入输出标准样本库。
将表1 中的数据归一化后,作为神经网络学习样本库,对神经网络进行训练。 用BP 神经网络函数进行训练时,将归一化后的传感器输出电压U 和对应工作温度T 作为神经网络输入;归一化标定电压U0作为目标输出函数。
2.2 网络结构参数与训练算法的选择
本文神经网络采用2-S-1 结构,即采用3 层结构,输入层包含两个神经元,分别是电压传感器的输出值和温度传感器的输出值,隐含层节点数有S 个神经元构成,这里的S 由经验公式计算大致选取在2~15 之间,因此设计的是一个隐含层节点数可变的BP 神经网络,最佳的隐含层节点数由训练结果误差决定。 输出层有一个神经元,为期望的输出电压。
训练时选取隐含层节点数分别为2~15,训练误差如表2 所示。
表2 网络训练误差
由表2 可见,隐含层的神经元个数为13 的BP 神经网络实现的函数映射效果最好,因为它的训练误差最小。 由此可见并非隐含层神经元的个数越多,网络的性能就越好。 在本实验中,误差并没有明显的随着隐含层神经元数目的增大而减小的趋势。 因此,根据训练误差值最后确定神经网络隐含层节点数为13。
2.3 检查网络学习效果
在网络训练完成后,实际上就得到了实际电压与电压传感器的输出值与温度之间存在的近似逆函数关系。 只要将电压传感器和温度传感器的输出值作为神经网络的输入,就可得到实际电压值。表3 给出了四组用人工神经网络补偿前、后的传感器输出值。
比较补偿前后电压输出的波动情况如图3 所示,补偿效果十分显著。 利用式子(14)衡量电压最大波动情况
式中Umax、Umin表示温度变化时输出电压变化的最大值和最小值。 利用表3 中的四组数据可得出电压传感器温度补偿前后电压的最大波动情况,如表4 所示。
表3 晶体温度补偿前和补偿后实验数据对比
图3 晶体温度补偿前后电压输出曲线
由表4 可以看出,系统采用神经网络温度补偿后, 大大提高了传感器的稳定性和精确度,且经测试数据检验, 该神经网络具有良好的泛化性,即使将不属于样本数据的电压和环境温度值作为传感器输入,也能在神经网络输出端得到合适的输出。
表4 晶体温度补偿前后输出最大波动
3 基于Labview的实时数据采集及处理系统设计
运用Matlab 神经网络可以很好的修正电压传感器的误差, 但其局限性就在于不可实时显示所测电压值。 因此我们就非常希望设计一种既能有效能补偿温度因素造成的精度影响,又能够实时显示被测电压值的系统,这里界面友好方便的虚拟仪器Labview 软件就派上用场了。
Labview 是美国NI 公司(National InstrumentCompany)推出的一种基于图形化编程语言的虚拟仪器软件,利用其虚拟仪器和动态显示特性可在计算机上构成用户界面动态显示和交互[23]。 本系统通过Labview 和Matlab 混合编程的方法实现, 通过调用Labview 程序中的matlab script 节点将Matlab和Labview 二者有机的结合起来,充分发挥Matlab 数值运算功能和Labview 的动态显示和虚拟仪器特性,实现光学电压传感器的温度补偿和动态显示[24]。
虚拟电压传感器温度补偿仪的前面板如图4 所示。 在网络训练完后,只需在该面板中输入光学电压传感器及温度传感器的输出值即可得到经过温度补偿后的电压输出值。
图4 虚拟电压传感器温度补偿仪的前面板
框图程序则是利用图形语言对前面板上的控件对象进行控制,主要由“功能节点”和“数据线”组成。 这里构建了一个3 层BP 神经网络的VI 程序,其框图程序如图5 所示。
图5 控制系统VI 程序框图
4 结论
本文采用BP 神经网络算法进行光纤电压传感器温度补偿, 通过传感器实验数据训练神经网络,从而建立起一种温度误差修正模型。 实验结果表明,该方法能够有效地补偿光学电压传感器的温度非线性误差。此外,通过引入虚拟仪器技术,在Labview 软件开发平台中调用Matlab 进行信号的处理与分析,提高了系统的可视性。