热电偶的传感特性是非线性的, 这种非线性直接影响到温度的测量精度, 所以必须对其非线性传感特性进行建模和辨识。目前对热电偶非线性辨识的方法主要有:硬件补偿、多项式拟合法、神经网络法、支持向量机法等。采用硬件补偿需要增加模拟电路, 从而产生温漂、增益和误差, 同时也提高了测试系统的成本;采用多项式拟合需要较长的计算时间;查表法虽然较快, 但是并不是很准确。上述方法不能满足高精度的温度测量和控制要求。本文以K型热电偶的非线性补偿为研究对象, 用Matlab最小二乘支持向量机建立预测模型, 以热电偶电动势与温度的对应数据为仿真数据进行预测, 并得出仿真结果, 并对预测的结果进行评定。
1 热电偶测温原理
将两种不同的金属导体或半导体A和B焊接在一起, 构成闭合回路, 若在焊接端两个结合点处的温度T和T0不相同时, 则回路中就会产生电动势, 继而产生电流, 此种现象称为热电效应, 热电效应于1821年首先由Seebeck发现, 故又称为塞贝克效应 (Seebeck-effect) 。由该热电效应产生的电动势称为热电势, 常用符号EAB (T, T0) 表示。理论已经证明热电势由接触电势和温差电势两部分组成。图1为热电偶测温电势分布图。
热电偶的两个热电极材料确定之后, 热电势的大小只与热电偶两端接点的温度有关。即:
式 (1) 表示热电偶的热电势与温度的关系。如果T0己知且恒定, 则为常数, 回路总电势只是温度T的单值函数。
当热电偶用于被测量温度时, 总是把两个接点之一放置于被测温度T的介质内, 该端称为热端或测量端, 让另一接点处于己知的恒定温度T0条件下, 此点称作冷端或参考端。国际上实用温标IPTS规定热电偶的温度测量值为摄氏温度t℃, 参考端温度定为0℃。如果T0=0℃时, 则EAB (T, 0) , 可简写为E (t) 。工程上所使用的各种类型的热电偶均把E (t) 和t的关系制成易于查找的表格形式, 这种表格称为热电偶的分度表。在参考端为0℃的条件下, 根据分度表, 只要测出热电偶所产生的热电势, 即可查表求出测量端的环境温度。
从图2可以看出, 在不同温度时, K型热电偶的电压/温度系数波动较大, 即热电偶输出热电势与温度之间存在一定的非线性问题, 而且电压/温度系数在0.041附近变化, 呈现“波浪”式的变化规律。将热电偶作为线性传感器件, 采用固定线性系数 (如0.041) 作为各温度下的热电偶电压/温度系数, 必会引起较大的非线性测量误差, 这就要求对热电偶采用非线性补偿技术进行校正, 实现准确测量被测对象的实际温度。
2 最小二乘支持向量机
支持向量机 (SVM) 通过非线性核函数, 将输入样本空间映射到高维线性特征空间, 因此SVM能够处理高度非线性的分类和回归等问题。经Suykens等[5]对支持向量机方法的不断改进, 提出最小二乘支持向量机 ( (LS-SVM) , 它将最小二乘线性系统引入到支持向量机中, 将求解二次规划问题转化为直接求解线性方程组, 大大降低了计算复杂度, 运算速度高。
2.1 最小二乘支持向量机理论
给定一组训练数据集:{xi, yi}Ni=1, 其中, xi∈RN, yi∈R, i=1, 2, …, n。在训练参数集中Yi是给定输入参数 (Xi) 的实验值。下述回归模型是通过应用非线性映射函数φ (·) 来构建的, 这将输入数据映射到更高维数的特征空间:
全面考虑函数的复杂性和拟合误差, 根据统计学习理论的结构风险最小化原理, LS-SVM定义为约束优化问题:
满足约束yi=wTφ (xi) +b+eii=1, 2, …, N
为求解上述优化问题, 通过引入拉格朗日乘子αi, 将上述约束问题转化为非约束问题, 得到如下目标函数:
根据KKT (Karush-Kuhn-Tucker) 最优化条件, 将上述中的w, b, e, α分别偏导, 并令它们为零, 我们得到最优条件如下:
K是满足Mereer条件的对称函数, 称之为内积核, 即:
2.2 常用核函数
在LS-SVM中, 选择不同的核函数K (x, xi) , 可以构造不同的支持向量机, 常用的核函数主要有以下三种。
2.3 参数的确定
因为径向基函数具有较强的泛化能力, 所以本文采用径向基核函数进行回归分析, 其精度取决于正规化参数γ和核宽σ, 本文中γ=800000, σ=0.012。
3 Matlab模型及程序流程
本文中采用的开发软件为Matlab6.5, 采用第三方工具箱Matlab LSSVM toolbox (最小二乘支持向量机工具箱) , 最小二乘支持向量机用于热电偶非线性补偿算法流程为:
1) 通过热电偶温度传感器的分度表, 得到0~500℃之间28组热电偶传感器输出热电势与真实温度的对应数据邀Ek, tk妖, 其中k=1, 2, …, 28;
2) 28组样本按邀Ek, tk妖形式组成SVM训练样本集{xk, yk}Nk=1, 样本数N为28;
3) 通过Matlab工具包, 采用LS-SVM算法对训练样本进行离线训练辨识, 确定热电偶非线性补偿的数学模型及对应模型参数αk、b;
4) 将得到的模型参数αk、b以及xk, 写入到温度仪的热电偶非线性补偿软件子模块中;
5) 当温度仪的传感终端得到热电偶热电势u时, 系统调用热电偶非线性补偿软件子模块, 将x=u代入热电偶SVM模型中, 所得y就是非线性补偿后的温度t;
6) 测试0~500℃之间21组数据, 比较SVM非线性补偿后温度结果和实际温度值, 得到误差数据与直接线性化处理的温度误差进行对比, 以验证非线性误差效果。
图3 热电偶最小二乘支持向量机辨识模型 下载原图
最小二乘支持向量机用于热电偶非线性辨识模型如图3所示:
4 仿真实验验证
表1 28组热电偶输出热电势与真实温度的对应数据 下载原表
图4 K型热电偶的实际温度与SVM非线性辨识后的温度值对比 下载原图
K型热电偶的测温范围一般为-200~1250℃, 是工业和实验室里大量应用的热电偶之一。在K型热电偶1~260℃之间取出28组热电动势作为最小二乘支持向量机的训练数据, 训练最小二乘支持向量机的热电偶非线性模型。1~260℃之间28组热电偶输出热电势与真实温度的对应数据如表1所示。
为验证最小二乘支持向量机模型的准确性, 在38~238℃之间每隔10℃取1个点, 获取21组与温度值对应的热电动势, 验证经过训练后的最小二乘支持向量机的辨识能力, 比较LS-SVM非线性辨识后温度结果和实际温度值, 结果如图4, 图5为非线性辨识后的热电偶温度误差。
图5 热电偶温度非线性辨识误差 下载原图
从图4可以看出, 温度的非线性辨识值与实际值的符合程度很好;从图5可以看出, 跟K型热电偶直接线性模型相比, 而支持向量机非线性补偿后的热电偶温度误差则很小, 非线性补偿后温度值与实际值非常接近, 0~250℃时支持向量机非线性辨识后的热电偶温度误差都在0.18℃以内。需要指出的是, 温度测量误差不仅包括热电偶非线性SVM辨识误差, 还包括调理电路、模拟开关、AD转换、噪声干扰等多个因素的带来的误差。