其中,P为输入矢量;R为输入矢量的维数;S1为单隐含层BP神经元的个数;S2为输出层神经元的个数;W1为S1×R维隐含层神经元的权值矩阵;W2为S2×R 维输出层的权值矩阵;a1为隐含层神经元输出矢量;a2错误!未找到引用源。为输出层神经元输出矢量;b1为隐含层神经元的阈值;b2为输出层神经元的阈值;n1隐含层节点的输入;n2为输出层节点的输入;f1为S型传递函数;f2为purelin型传递函数。BP网络训练的关系式如式(2): 节点输出为:
错误!未找到引用源。 ai?f(?wij?ai?bj) (2) 式中:i为第i个输出层神经元;j为第j个隐含层神经元;ai为节点输出;Wij为节点连接权值;f为传输函数;bj为神经元阈值。式(1)表示对隐含层与i为第i个输出层神经元相连接的隐含层神经元求和,即对j求和。 权值修正:
Wij(n?1)???Ei?ai?h?Wij(n) (3)
式中:η为学习因子(根据输出误差动态调整);h 为动量因子;Ei为计算误差。 3.2.2 RBF神经网络的基本内容
1 概念 RBF网络称为径向基函数网络,是在借鉴生物局部调节和交叠接受区域知识的基础上提出的一种采用局部接受域来执行函数映射的人工神经网络。
2 RBF神经网络原理
径向基函数(Radial Basis Function,RBF)网络是一种典型的局部逼近神经网络,它不像全局逼近神经网络那样,对于每个输入输出数据对,网络的每一个权值均需要调整,而是只调整对网络输出有影响的少量几个权值,从而使局部逼近网络具有学习速度快的优点相对于BP网络RBF网络在逼近能力、分类能力和学习速度等方面均具有明显优势,且RBF网络可在任意精度下逼近任意的非线性函数,并不存在局部最小问题。因此RBF网络已成为取代BP神经网络的另一种前向神经网络,越来越广泛地应用于信息处理、图像处理和工业控制等领域。
图3是 RBF网络的构成图,图中输入向量不需要通过权连接,直接映射到隐层空间,即输入层只是传递输入信号到隐层。隐层单元通过径向基函数实现变换后送到输出层,径向基函数通常采用高斯基函数[6]。
7
图3 RBF神经网络构成图
其中从隐层空间到输出空间的变换是线性的,输出层实质上是一个线性组合器。从总体来说,RBF神经网络的输入到输出的映射是非线性的,可以实现从Rn到 Rm的非线性映射,而网络输出对可调整参数而言却又是线性的。这样网络的权值Wi就可以通过直接求解线性方程组得出,从而不但加快了训练精度,而且还有效地避免了局部极小值问题。
4 压力传感器温度补偿算法的研究
4.1 插值算法在压力传感器温度补偿中的应用 4.1.1 插值算法的原理
插值法又称“内插法”。利用函数f(x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f(x)的近似值,这力一法称为插值法。如果这特定函数是多项式,就称它为插值多项式。插值法是函数逼近的一种重要方法,是数值计算的基本课题。其中包括具有唯一插值函数的多项式插值和分段多项式插值,对其中的多项式插值中的n次多项式插值的方法,即给定n+1各点处的函数值后,构造一个n次插值多项式的方法。虽然理论上可以用解方程组那里m=n得到所求插值多项式,但遗憾的是方程组当n较大时往往是严重是病态的。故不能用解方程组的方法获得插值多项式。插值法包含的内容有:lagrange插值、newton插值、hermite插值,分段多项式插值及样条插值等。本设计只应用了插值法中最简单的一种,即在区间上取若干个点,通过公式(X+Y)/2算出逼近点的值,从而得到f(x)的逼近函数。
4.1.2 插值算法在压力传感器温度补偿中的应用
本设计的实验中,压力范围0~40MPa ,温度范围17~125℃,修正前实验数据见表1.
8
表1 不同温度和压力下传感器的频率输出
实际温度℃ 17 170040.129 50 170294.653 75 100 125 温度读数Hz 0 170499.942 170711.340 170956.228 35293.110 35272.524 35251.718 35225.640 35195.407 5 实际压力 10 15 20 25 压力读数Hz 35781.546 35760.583 35739.313 35713.524 35684.219 36262.258 36241.105 36219.296 36194.032 36172.216 36735.748 36713.635 36692.087 36667.300 36652.114 37202.038 37178.813 37157.739 37133.427 37117.735 37661.562 37638.348 37616.892 37592.919 37590.273 38110.542 38091.029 38069.416 38045.751 38055.295 38553.090 38537.798 38515.639 38492.575 38503.846 38990.887 38978.683 38956.138 38934.497 38943.270 MPa 30 35 40 可以看出:温度的变化对压力传感器的输出性能影响是非常明显的。在实际应用时,因为由于环境温度的变化比较大,所以必须进行适当的温度补偿。根据插值算法的公式对实验数据进行温度补偿,由MATLAB得其中一组数据的补偿图像为:
3.53x 1043.5283.526p(Hz)3.524实线表示插值算法补偿后的曲线 3.522虚线表示传感器的实际输出 3.523.5180204060x(度)80100120140
图4 插值算法实现温度补偿的图形
9
4.2 基于BP神经网络的压力传感器温度补偿算法的应用
1 BP神经网络的学习过程
BP神经网络的学习过程包括4个步骤: ①输入模式由输入层经中间层向输出层正向传播输出;②输出误差由输出层经中间层向输入层反向传播逐层修正连接权;③正向传播和反向传播反复交替进行网络记忆训练;④网络学习收敛。
在学习过程中,标准BP算法对所有的权值使用一个统一的学习速度,每一步的长度与其方向斜率成比例,其权值更新的基本公式为[7]:
E??E Wpij(n)???(?E/?Wij)????????????(5) 式中,η为步长参数(学习速率);Wij(n)为第n次权值修正量;?E/?Wij为误差平方和对权值的负梯度。由于BP只用局部梯度信息,故η值必须很小,从而使该算法跳过极小值,这导致学习收敛速度变慢,为了加快收敛速度,常用的方法是加入动量因子,其权值更新式为:
Wij(n)???E?Wij(n)??Wij(n?1)???????????(6) 式中,μ是动量因子,用来阻尼局部振荡,为了满足加快训练速度,避免陷入局部极小值等要求,提出了改进BP算法的方法:①对每一权值使用不同的学习速率η,并采用指数衰减函数δ(k)表示。这样可以使学习速率η在较平坦的区域比在较陡的区域增加的快一些;②在学习过程中,学习速率可根据误差函数E 的梯度信息,自适应地进行增益调整,以改善网络的概括能力,提高网络收敛性能;③在算法中使用动量项,而且动量项和学习速率一样,也是变化的;④为了避免学习速率或动量过大,设置上限值;⑤采用参数λ和概率P控制网络学习过程的记忆和恢复,即如果误差的增加次数大于λ,则减小学习速率和动量系数,搜索到最佳点处重新进行学习,为避免波动,搜索以概率P的方式随机进行。 2 温度误差修正原理模型
利用人工神经网络进行温度补偿,就是利用神经网络的基本特性,使传感器具有复杂的非线性映射、自组织、自学习及推理的自适应能力。神经网络法不必建立包括待消除的非目标参量在内的函数解析式,而只需要训练样本,通过学习、训练便可以模拟出输入输出的内在联系。神经网络需要的学习样本,由多维标定实验数据提供,网络模块由软件编程来实现。神经网络修正压力传感器的原理框图如图3所示,传感器模块为:输入压力P和温度t,输出周期T和温度t;网络模块为:输入周期T和温度t,经过BP
10
网络学习、训练,消除温度t的影响而输出T'或P'。
T t 压力传感器 T 神经 t 网络 T或P '‘温度传感器 图5 温度误差补偿原理图 3 仿真研究与实验结果
本设计选择具有单隐层的BP神经网络,其结构图如图1所示,神经网络的训练和仿真是在MATLAB7.8环境下,通过神经网络工具箱,编制相应程序而实现的。由于BP神经网络的隐含层采用的传递函数为对数的S型函数,它的输出范围为(0,1),由此由公式:
X?Xin?XinmaxXinmax?Xinmin0.9(Yin?YinYinmaxminmin (7)
) Yin??Yin?0.05 (8)
将实验数据进行归一化处理,使得处理后的数值范围在(0,1)之间。归一化处理后的神经网络的输入输出标准样本数据表为:
表2 神经网络的输入输出标准样本数据表
实际温度℃ 17 0 50 0.278 0.789 0.785 0.765 0.736 0.725 0.674 0.699 0.747 0.783 75 0.502 0.576 0.566 0.523 0.478 0.475 0.373 0.365 0.381 0.384 100 0.733 0.309 0.301 0.242 0.182 0.186 0.037 0 0 0 125 1.000 0 0 0 0 0 0 0.147 0.186 0.156 温度读数Hz 0.05 1 1 1 1 1 1 1 1 1 0.163 实际压力 0.275 0.386 0.500 0.613 压力读数MPa 0.725 Hz 0.838 0.950 在基于BP神经网络的温度补偿实验中,输入向量的维数为2?5,目标向量的维
11