传感器校正及融合的实现技术

2010-12-27 09:17靳莹瑞许京雷
中原工学院学报 2010年5期
关键词:隐层权值标定

靳莹瑞,许京雷

(1.郑州大学 物理工程学院,郑州450001;2.中原工学院,郑州450007)

传感器校正及融合的实现技术

靳莹瑞1,2,许京雷2

(1.郑州大学 物理工程学院,郑州450001;2.中原工学院,郑州450007)

讨论了在普通传感器的基础上,运用灵活的软件手段,建立一个智能化的神经传感器系统.采用VisualC++语言对RS485处理,可以实现对系统的微机监控.

神经网络;传感器校正;融合

现在所采用的传感器,大部分是普通的传感器,本身没有智能的表现.它们将外界的物理化学刺激,经过本身的变换,输出有待进一步识别的电信号.传统电路多采用电桥抑制环境因素的干扰,或者改良传感器的工艺,制造出结构复杂的传感器[1-2].目前则更倾向于后期处理,采用软件方法识别输出的电信号,从中直接提取出真实的信息.人工神经网络是其中有效的措施,可以对传感器的输出信号进行非线性校正,并可实现多参量的数据融合,有广泛的应用前景[3-6].

1 一般原理

神经网络传感器的标准参考电路为神经网络处理部分提供关于干扰量的信息,干扰量的输出信号基本上不受待测量的影响.系统正常工作前要先进行学习,在若干采样点同时记录下标准参考电路和普通传感器电路的输出,神经网络处理部分根据这2个值,把本身的权值调整到比较合适的数值,当客观环境发生显著改变时,权值还可以再次调整,这是一个自适应的过程.学习结束后就能直接感受外界的刺激,并把输出信号经过带权神经网络的处理,直接显示准确的数字量.

2 压力传感器的数据融合

压阻式压力传感器在测量压力P时,受工作温度T和供电电源波动γ的影响,即当被测压力P不变时,工作温度T的变化会导致输出的变化,对温度敏感,此时的压力传感器可视为温度传感器;另外,当被测压力P不变时,供电电源波动γ的变化也会导致输出的变化,此时的压力传感器可视为电流传感器.所以,一个压阻式压力传感器可视为3个传感器在同时工作,3个传感器的输出相互影响,即存在着交叉灵敏度.

为了只得到一个目标参量的数值,需要对3个传感器的输出数据进行融合,消除2个非目标参量对压力传感器压力输入—输出特性的影响.将压力输出Up,温度输出Ut,电流输出Ui(压力输出都带有其他2个参量的影响)接入BP神经网络,该网络经过一系列复杂的运算,输出逼近真实值的压力P.

神经网络图如图1所示.

图1 BP神经网络

所用的计算公式有:

以上公式中,xj为隐层节点的输入;xk为输出层节点的输入;yj为隐层节点的输出;yk为输出层节点的输出;δk为输入层节点误差因子;P为压力标定值;δj为隐层节点误差因子.

其中隐层的节点数在实验时确定,编程时以隐层的节点数为指针确定当前的计算量.权值调节公式(7)和(8)的第三项称为动量项,计入上次的调节量,可以加快收敛速度,关键程序实现如下:

void CAnn2Dlg::OnStudy()

{ // TODO:Add your control notification

handler code here

flag=0;show=0;n=0;error=0;Invalidate

(TRUE);

UpdateData(TRUE);

UINT i;

for(i=0;i<4*l;i++)w[i]=(double)rand()/0x7fff;//权值初值

for(i=0;i<4*l;i++)wo[i]=w[i];//wo为旧权值数组

double e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,

e11,e12,e13,e14,e15,e16,e17,e18;

do

if(n>100000)break;

BP(0.00,0.00,290.5,0.03);y1=yk;e1=e;

BP(1.00,25.27,268.8,0.03);y2=yk;e2=

e;

BP(2.00,44.00,247.2,0.03);y3=yk;e3=

e;

BP(3.00,62.72,224.5,0.03);y4=yk;e4=

e;

BP(4.00,81.40,206.0,0.03);y5=yk;e5=

e;

BP(5.00,100.12,184.4,0.03);y6=yk;e6=

e;zu=2;

e=(e1*e1+e2*e2+e3*e3+e4*e4+

e5*e5+e6*e6+e7*e7+e8*e8+

e9*e9+e10*e10+e11*e11+

e12*e12+e13*e13+e14*e14+

e15*e15+e16*e16+e17*e17+

e18*e18)/18;//共18个样本

while(e>0.05||e<-0.05);//条件满足时,

需要再学习

if(n > 100000){error= 1;Invalidate(FALSE);return;}

flag=1;Invalidate(FALSE);

void CAnn2Dlg::BP(double p,double u,double ut,double ga)

p=0.9*(p-0.00)/(5.00-0.00)+0.05;

if(zu==3){

u=(u-0.00)/(78.57-0.00);

ut=(ut-669.3)/(826.1-669.3);}//数据归

一化

for(i=0;i<3*l;i+=3){

m=w[i];//m用来暂存当前权值,下同

w[i]=w[i]+ng*dej[j]*u+al*(w[i]-wo[i]);

wo[i]=m;

m=w[i+1];

w[i+1]=w[i+1]+ng*dej[j]*ut+al*(w[i+1]-wo[i+1]);

wo[i+1]=m;

m=w[i+2];

w[i+2]=w[i+2]+ng*dej[j]*ga+al*(w[i+2]-wo[i+2]);

wo[i+2]=m;

j++;}//调节wji权值

j=0;

for(i=3*l;i<4*l;i++){

m=w[i];

w[i]=w[i]+ng*dek*yj[j]+

al*(w[i]-wo[i]);

wo[i]=m;

j++;}//调节wkj权值

yk=(yk-0.05)*(5.00-0.00)/0.9+

0.00;//数据反归一化

由于隐层接点数的选取和权值初值的选取随机性较大,选取不当时会出现网络不收敛的情况.如权值取0~1之间的随机数,隐层节点数为18,当网络训练步长η为0.7,势态因子α为0.9时,学习次数为522次,学习结果如表1所示.从表1中可以看出,压力值较小时计算误差较大,压力值较大时计算误差较小.

表1 压力学习结果

3 浓度传感器的非线性校正

以外旋转式浓度传感器为例,其曲线方程为:

浓度传感器的输入—输出特性存在着严重的非线性.其曲线方程可以表示为:当浓度为Cp时,传感器的输出为f.Cp和f的关系是非线性的,可以在传感器的输出端接上一个神经网络进行校正:对神经网络用标定值进行学习训练,可以使神经网络学会Cp和f的非线性关系,对于传感器的输出f,按照这种关系将Cp还原输出.

网络图如图2所示.

图2 浓度传感器网络图

计算公式为:

y=1*W0+u*W1+u2*W2+u3*W3

e=Cp-y(Cp为浓度标定值)

W0=W0+η*e*1

W1=W1+η*e*u

W2=W2+η*e*u2

W3=W3+η*e*u3

根据外旋转式浓度传感器的曲线方程,神经网络有4 个输入项:1,u= f/fmax,u2= (f/fmax)2,u3=(f/fmax)3.曲线方程的4个系数正好对应于神经元的4个权值.用样本学习的过程就是不断调节权值的过程,这个过程直到每个计算值y与对应样本值y的误差足够小为止.

用VC编程来实现上述的学习过程,构造了On-Stud

y函数和BP函数:

void CAnn1Dlg::OnStudy()

// TODO:Add your control notification

handler code here

flag=0;show=0;n=0;error=0;Invalidate

(TRUE);

UpdateData(TRUE);

double e1,e2,e3,e4,e5,e6,e7,e8,e9;

do

if(n>1000000)break;

BP(250,5.23);y1=y;e1=e;

BP(500,4.39);y2=y;e2=e;

BP(750,3.69);y3=y;e3=e;

BP(1000,3.12);y4=y;e4=e;

n+=9;

e=(e1*e1+e2*e2+e3*e3+e4*e4+

e5*e5+e6*e6+e7*e7+e8*e8+e9*e9)/9;//共9个样本

while(e>0.0001||e<-0.0001);//条件满足时,需要再学习

if(n>1000000){error=1;Invalidate(FALSE);return;}

flag=1;Invalidate(FALSE);

void CAnn1Dlg::BP(double in,double out)

double a0=1,a1=in/2500,a2=a1*a1,a3=a2*a1;

y=a0*w0+a1*w1+a2*w2+a3*w3;

e=out-y;//期望值-计算值(标定值-估计

值)

w0=w0+yinzi*e*a0;

w1=w1+yinzi*e*a1;

w2=w2+yinzi*e*a2;

w3=w3+yinzi*e*a3;

当权值W 的初值为0.4、0.6、0.2、0.3,学习因子的初值η为0.9时,用上述2个函数进行学习,学习次数为55611次,结果如表2所示.

表2 浓度学习结果

从该学习结果可得,均方误差为0.0001,估计值与标定值是相当接近的.

4 结 语

自行实现的神经网络传感器,由于采用了BP理论,使得整个系统的输出精度有了很大提高,PIC器件和微机监控使系统可靠性得到加强,而且实现了功能多样化,减小了传感器的非线性和交叉灵敏度,基本上符合相关仪器的主要性能指标,性能稳定,运行可靠,在石油、化工冶金、电力、轻工等行业得到广泛应用.

[1] 刘君华.智能传感器系统[M].西安:西安电子科技大学出版社,2009.

[2] 谢文和.传感器技术及应用[M].北京:高等教育出版社,2004.

[3] 袁曾忍.人工神经元网络及其应用[M].北京:清华大学出版社,2006.

[4] 韩立群.人工神经网络理论设计及应用[M].北京:化学工业出版社,2007.

[5] 旺晓东.RBF神经网络在传感器校正中的应用[J].仪器仪表学报,2003,24(1):96-98.

[6] 白鹏,张喜斌,张长兴,等.基于支持向量机的压力传感器校正模型[J].空导工程大学学报(自然科学报),2007,8(5):37-40.

The Correction Tecnology and Data Fusion of Sensor

JIN Ying-rui1,2,XU Jing-lei2
(1.Zhengzhou University,Zhengzhou 450001;2.Zhongyuan University of Technology,Zhengzhou 450007,China)

A sensor system is builded in the paper,and it is intelligent because neural network theory and software method are used in the system based on ordinary sensor.Furthermore,the system can be buided to be a computer monitoring system with Visual c++and RS485.

neural network;sensor correction;fusion

TP212

A

10.3969/j.issn.1671-6906.2010.05.001

1671-6906(2010)05-0001-04

2010-09-26

国家自然科学基金项目(50977093)

靳莹瑞(1982-),女,河南洛阳人,硕士生.

猜你喜欢
隐层权值标定
基于RTD可编程逻辑门的n变量函数实现算法
一种融合时间权值和用户行为序列的电影推荐模型
一种自适应确定隐层节点数的增量半监督超限学习机算法
CONTENTS
使用朗仁H6 Pro标定北汽绅宝转向角传感器
基于RDPSO结构优化的三隐层BP神经网络水质预测模型及应用
CT系统参数标定及成像—2
CT系统参数标定及成像—2
基于MATLAB的LTE智能天线广播波束仿真与权值优化
代价敏感正则化有限记忆多隐层在线序列极限学习机及图像识别应用