一种用RBF神经网络改善传感器测量精度的新方法
摘要:介绍一种利用径向基函数(RBF)神经网络和智能温度传感器DSl8B20改善传感器精度的新方法。RBF网络具有良好的非线性映射能力、自学习和泛化能力,通过大量的样本数据训练构建了双输入早输出网络模型,采用改进的算法实现了传感器高精度温度补偿。
关键词:传感器精度 温度补偿 径向基函数神经网络 温度传感器DSl8B20
一般工业测控现场的环境温度变化急剧,传感器大多数都对温度有一定的敏感度,这样就会使传感器的零点和灵敏度发生变化,从而造成输出值随环境温度的变化而变化,导致测量出现附加误差,因此温度补偿问题一直是工业测控系统中的关键环节[1]。本文采用DSl8B20智能温度传感器和RBF神经网络相结合的温度补偿新方法来实现传感器高精度温度补偿。本文介绍的方法将DSl8B20测量值作为温度补偿输入,将传感器本身的测量值作为另一输入,用RBF神经网络构成双输入单输出的补偿模型,输出即为补偿后的测量值。RBF神经网络主要用于传感器的数据处理,以改善传感器测量精度。
1 DSl8B20数字温度传感器测温原理
1.1 DSl8B20的特性
DSl8B20是美国DALLAS公司继DSl820之后推出的增强型单总线数字温度传感器,它在测温精度、转换时间、传输距离、分辨率等方面较DSl820有了很大的改进,这给用户带来了更方便的使用和更令人满意的效果。其特点如下:javascript:window.open(this.src);" style="cursor:pointer;"/>
(1)单线接口:仅需一根口线与单片机连接;
(2)由总线提供电源,也可用数据线供电,电压范围:3.0~5.5V;
(3)测温范围为:-55~+125℃,在-10~+85℃时,精度为0.5℃;
(4)可编程的分辨率为9~12位,对应的分辨率为0.5~0.0625℃;
(5)用户可编程的温度报警设置;
(6)12位分辨率时最多在750ms内把温度值转换为数字量。
1.2 DSl820引脚功能说明
DSl820的PR-35封装形式见图1,其外表看起来像三极管。另外还有8脚SOIC封装形式,只用3、4和5脚,其余为空脚或不需连接引脚。不过最常见的形式是PR-35封装,其引脚说明如表1所示。
表1 DS1820引脚说明
8脚SOIC | PR-35 | 符 号 | 说 明 |
5 | 1 | GND | 地 |
4 | 2 | DQ | 单线数据输入输出引脚 |
3 | 3 | VDD | 正电源,一般为+5V |
1.3 DSl820温度数据格式
在DSl820中,转换温度值是以9位二进制形式表示的,而输出温度则是以16位符号扩展的二进制补码读数形式提供。采用的办法是将低八位用补码表示,第九位以符号扩展形式扩展至其它七位。具体温度表示格式见表2。
表2 温度/数据关系
温 度 | 数字输出(二进制) | 数字输出(十六进制) |
+125 | 00000000 11111010 | 00FAH |
+25 | 00000000 00110010 | 0032H |
+1/2 | 00000000 00000001 | 0001H |
+0 | 00000000 00000000 | 0000H |
-1/2 | 11111111 11111111 | FFFFH |
-25 | 11111111 11001110 | FFCEH |
-55 | 11111111 10010010 | FF92H |
在实际应用中,测量温度往往在0℃以上,此时可只取16位二进制温度输出的低8位,即1个字节,这样将使计算和编程工作更为便利。
1.4 DSl8B20的测温原理
DSl8B20的测温原理为:内部计数器对一个受温度影响的振荡器的脉冲计数,低温时振荡器的脉冲可以通过门电路,而当到达某一设置高温时,振荡器的脉冲无法通过门电路。计数器设置为-55℃时的值,如果计数器到达0之前门电路未关闭,则温度寄存器的值将增加,这表示当前温度高于-55℃。同时,计数器复位在当前温度值上,电路对振荡器的温度系数进行补偿,计数器重新开始计数直到回零。如果门电路仍然未关闭,则重复以上过程。温度转换所需时间不超过750ms,得到的温度值的位数因分辨率不同而不同[2]。DSl8B20同AT89C52单片机的接口电路如图2所示。这种接口方式只需占用单片机一根口线,与智能仪器或智能测控系统中的其它单片机或DSP的接口也可采用类似的方式。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 RBF神经网络及学习算法
RBF神经网络即径向基函数(Radial Basis Function)神经网络[3~4],其结构如图3所示。它很容易扩展到多输出节点的情形,在此只考虑一个输出变量Y的情况。
RBFNN包括一个输入层、一个隐含层和一个输出层的最简模式。隐含层由一组径向基函数构成,与每个隐含层节点相关的参数向量为Ci(即中心)和σi(即宽度)。径向基函数有多种形式,一般取高斯函数[5]。具体如下:
上式中,m是隐含层结点数;‖·‖是欧几里德范数;X,Ci∈R n,ωi是第i个基函数与输出结点的连接权值(i=1,2…,m)。
RBF神经网络是一种性能良好的前向网络,它具有最佳逼近性能,在结构上具有输出一权值线性关系、训练方法快速易行、不存在局部最优问题的特点。该网络的学习算法有很多种,本文将带遗忘因子的梯度下降法应用于RBF神经网络的参数调整[6],即在考虑当前时刻(k时刻)的网络状态的变化时,将前一个时刻(k—1时刻)的网络参数变化也包括进去。其具体算法如下:
javascript:window.open(this.src);" style="cursor:pointer;"/>
上式中,m是隐含层结点数;·是欧几里德范数;X,Ci∈Rn,ωi是第i个基函数与输出结点的连接权值(i=1,2,…,n)。
RBF神经网络是一种性能良好的前向网络,它具有最佳逼近性能,在结构上具有输出一权值线性关系、训练方法快速易行、不存在局部最优问题的特点。该网络的学习算法有很多种,本文将带遗忘因子的梯度下降法应用于RBF神经网络的参数调整,即在考虑当前时刻(k时刻)的网络状态的变