0 引言
热电偶因其结构简单、易于制造和测温范围宽等优点而被广泛应用于温度测量领域[1]。但热电偶存在冷端误差和非线性误差等, 严重影响了其测温精度。为了减小冷端误差和非线性误差对热电偶测温精度的影响, 常采用软件补偿和硬件补偿的方法。但硬件补偿常存在电路复杂、成本较高、稳定性不好等缺点。目前, 对于非线性误差经常采用的软件补偿方法有最小二乘法、查表法、分段线性化法等。然而, 最小二乘法是基于误差平方和下降的计算从而得到最优解, 易陷入局部最小点, 而得不到全局最优解。分段线性化法分段越多计算越繁琐且精确度不高, 当环境参数发生变化时, 热电偶的特性将发生变化, 需要重新补偿。而查表法将热电偶整个动态范围内的非线性热电曲线存于内存中, 根据热电偶的输出电势值, 查表匹配来获得测量温度, 这种方法不但计算量大、适应性差, 并且由于一般非线性函数的计算较为费时, 在微处理器测量系统进行实时计算时, 可能会影响系统工作的实时性[2]。本文采用了一种新的热电偶建模方法即BP神经网络建模方法, 并通过实验验证了此建模方法的有效性。
1 热电偶测温系统基本结构
热电偶测温系统的基本结构如图1所示。为了实现热电偶的冷端补偿, 选用AD590电流型集成温度传感器测量热电偶冷端处的环境温度[3], 其输出信号经过放大处理后为VT1。根据测温要求, 热电偶选用K型镍铬—镍硅热电偶, 其输出信号经调理放大后为VT2。VT1和VT2经数据采集卡采集后送入计算机, 并通过LabVIEW平台编制相应的程序显示出热端温度的大小。
2 热电偶BP神经网络模型
热电偶BP神经网络模型采用三层网络结构即输入层、隐层、输出层三层组成[4], 如图2所示, 输入层由两个节点组成即信号VT1、VT2, 输出层的节点只有一个即热电偶的热端温度T2。
(1) 输入层神经元输出。输入层神经元作用函数采用斜率为1的线性函数, 故节点i的输出为:
(2) 隐层神经元输出。隐层神经元作用函数选用双曲线正切函数, 所以节点j的输出为:
其中, Wji表示隐层节点j与输入节点i的连接权值, bj表示隐层节点j的阈值。
(3) 输出层神经元输出。输出层神经元作用函数选用纯线性函数, 则输出节点为:
其中, Vj表示隐层节点j与输出节点的连接权值, b表示输出节点的阈值。
3 BP神经网络训练和测试
3.1 网络训练样本、测试样本制作
为了进行网络的训练和测试, 必须获取足够的输入输出样本对即热电偶的冷端电压、输出电压与其对应的温度。本实验中训练样本、测试样本制作如下:冷端温度变化范围为0~50℃, 温度间隔1℃, 通过AD590测得对应的温度并通过相应的调理电路转化为冷端电压VT1;热端温度变化范围为0~1000℃, 温度间隔为5℃, 针对每一对冷、热端温度, 通过热电偶测得其热电势VT2。部分样本组对如表1所示。
3.2 BP神经网络算法流程
热电偶BP神经网络的学习过程是依据输入样本和输出样本的映射关系, 通过误差反向传播算法, 计算出输出总误差, 然后按梯度下降动量学习规则循环调整网络各节点参数, 使输出总误差达到误差要求。其算法流程如图3所示。
当网络输出温度与期望输出温度不等时, 存在输出误差E为:
其中, d表示热端温度期望输出值, T2表示热端温度网络实际输出值。
引入动量因子η (0<η<1) , 则各层间连接权值或阈值的调整算法为:
图3 BP网络训练过程及算法流程 下载原图
3.3 网络训练与测试
通过LabVIEW编程实现上述算法。从图4可以看出, 经过20次循环训练后, 网络的误差平方和落在所设定的0.01以内。
用权值和阈值表示BP神经网络建立的热电偶数学模型结构, 权值和阈值表示如下:
为了检验所建立模型的有效性, 选取部分样本组对其进行测试。部分测试结果如表2所示。
从表2可以看出, 热电偶显示值与标定值之间的误差小于0.1℃, 验证了此神经网络模型的有效性。
4 结语
为了降低冷端温度误差和非线性误差对热电偶测温精度的影响, 本文利用BP神经网络建立了热电偶的数学模型, 并利用梯度下降动量算法对网络各节点参数进行了优化调整, 最后通过实验验证了此方法的有效性。