摘 要:针对Pt100热电阻温度-电阻计算问题,以二分法为参照,详细分析牛顿法的应用特性,在VC 6.0编程环境下对比2种方法的程序结构、计算复杂性、绝对计算精度以及相对运行速度。结果表明,在相同的精度约束下,牛顿法计算复杂性小、计算精度高、误差较小;相对运行速度牛顿法要快4倍以上。说明在Pt100铂热电阻温度计算中,牛顿法不失为一个较好的选择。

关键词:Pt100热电阻;牛顿法;二分法;特性分析

中图分类号:TN304 文献标识码:B

文章编号:1004-373X(2008)06-146-03

Application Characteristic Analysis of Newton Method in Temperature

Computation of Pt100 Platinum Resistor

ZHANGLi 2,JIANG Jianguo1

(1.Xidian University,Xi′an,710071,China;2.Shaanxi Post and Telecommunication College,Xianyang,712000,China)

Abstract:An analysis of temperature-resistance computation algorithm of Pt100 platinum resistor is discussed.Based on the comparison of the Dichotomy method,programming structure,computing complexity,absolute accuracy and relative operating speed of the Newton method are analyzed in detail.Results show that,at the same accuracy constraint,the Newton method has smaller computation complexity,higher accuracy,lower calculation error and faster operation speed than the Dichotomy method.Therefore,the Newton method is a appropriate algorithm for the temperature computation of Pt100 platinum resistor.

Keywords:Pt100 platinum resistor;Newton method;dichotomy method;characteristic analysis

1 概 述

Pt100 铂热电阻通常和显示仪表、记录仪表、电子计算机等配套使用,可直接测量各种生产过程中的-200 ℃~850 ℃范围内液体、蒸汽和气体介质以及固体表面温度。Pt100 铂电阻具有抗震性能好、测温范围广、测量精度高、机械强度高、耐压性能好等特点,且电阻率较大,其电阻Rt与温度t的关系为正比例系数的单调函数,实际测量中有良好的重复性。因此其工业应用非常广泛。

在使用Pt100铂热电阻进行温度计算的应用时,已知温度t计算出电阻值Rt的函数Rt(t)已经存在,参见文献[1];然而,在实际工程项目中,一般是测量得到电阻值Rt,需要经过换算得到与之对应的温度值t,也就是需要求解Rt(t)的反函数。通常有数值和解析2类方法,而数值法在工控计算中得到了广泛应用,因此,详细分析Pt100铂热电阻温度数值算法的计算特性,具有重要的应用意义。

本文针对Pt100热电阻计算,采用牛顿法,在C语言编程环境下解决了Rt-t关系计算问题。为了探讨该方法的应用特点,以二分法为参照,在程序结构、计算复杂性、绝对计算精度、以及相对运行速度等方面进行详细的对比分析。

2 Pt100铂热电阻温度计算

2.1 计算关系式

根据文献[1],由温度计算阻值的公式如式(1)所示:

Rt=R0(1+At+Bt2+C(t-100)t3),t∈[-200,0]

R0(1+At+Bt2),t∈(0,850](1)

式(1)中,参数:R0=100.00 Ω;A=3.908 02 ×10-3℃-1,B=- 5.80 2 ×10-7 ℃-2;C=-4.273 50×10-12℃-4。

从式(1)可以看出,已知Rt计算t分为2段。在t∈ (0,850]区间,是一元二次方程求根问题,有解析关系式的定解,不是本文探讨的关键;而在t∈[-200,0]区间,已知Rt求t,是一元四次方程求根问题。

理论上,一元四次方程可以有解析解,但解析推导过程较为复杂,同时还需要在多个根中排除复根,以及判断合理的实根等。本文采用数值方法(以牛顿法为代表)来解决该区间四次多项式的求根问题。

一般来说,用数值方法进行多项式求根,大致需要3个步骤:

(1)判定根的存在性;

(2)确定根的分布范围,即将每一个根用区间隔离开;

(3)根的精确化,即根据根的初始近似值按某种方法逐步精确化,直至满足预先要求的精度为止。

一般的多项式,判定其根的存在性需要证明。而在这个问题中,由其特定的工程物理背景,这里可以肯定,在[-200,0] 和(0,850]两个区间内,实根是确定存在的。

根据式(1),得到f(t):

Иf(t) = t4-100t3 + BCt2 + ACt + 1C(1-RtR0 )(2)И

其中,参数R0,A,B,C与式(1)相同。则已知Rt求t的问题,转化为求f(t)=0的方程求根问题。方程求根常用的数值计算方法,有二分法、切线法(牛顿法)和弦截法等。

2.2 二分法和牛顿法的计算过程分析

2.2.1 二分法的计算步骤

二分法的计算步骤为:

(1) 输入有根区间的端点a,b及预先给定的精度ε;

(2)(a + b) /2 赋予x;

(3)若f(a)f(x)

(4)若b-a

2.2.2 牛顿法的计算步骤

牛顿法的计算步骤为:

(1) 给出初始近似根x0及精度ε;

(2) 计算x0-f(x0)f′(x0)=x1;

(3) 若|x1-x0|

(4) 输出满足精度的根x1,结束。

牛顿法的特点是计算函数必须可导,需要计算导数,由(2)可得:

Иf′(x)=4x3-300x2+2BCx+AC(3)И

能够满足牛顿法应用的要求。

3 牛顿法与二分法计算特性分析

3.1 程序结构

从流程图(见图1)可以看出,二分法算出一个满足精度要求的解,需要在给定的区间内,取中点计算x对应的f(x),满足精度要求就可结束,编程实现比较容易。牛顿法需要先求函数的导数。对有的问题来讲,原函数可能不可导,或者求导之后,导数更复杂,不便于编程实现。本项目中求导之后的Rt ~ t两者之间的导数关系式见式(3),比原函数简单,编程实现是可行的。总的来说,2种方法的程序结构相当。

3.2 计算复杂性分析

根据图1,要达到求解问题限定的精度,需要迭代一定的次数。一般来说,在相同的精度约束下,算法的迭代次数越少,算法的应用特性越好。

图1 二分法与牛顿法的流程图

本文根据图1,在VC 6.0环境下,设计计算程序,并根据程序运行实际结果,分析牛顿法与二分法的迭代情况。在温度t的[-200,0]区间,采用相同的精度ε约束,每0.1度取一组t,Rt数据点进行检验计算,统计两种方法所需的最大迭代次数。统计结果如表1所示。

表1 计算精度ε与数值计算最大迭代次数关系

从表1的对比可以看出,牛顿法用较少的次数(最大4次)迭代,就能够达到需要的精度;并且算法性能稳定,对计算精度Е诺谋浠不敏感。而二分法所用的最大迭代次数较多,而且随着精度的提高,最大迭代次数显著增加。

3.3 绝对计算精度分析

衡量一个算法是否准确,计算精度是非常重要的约束条件。在同等量级的精度ε约束下,近似根的实际误差按算法不同而有实际差异,计算精度高的算法有更好的实用价值。

以前述程序为准,在温度t的[-200,0]区间,每0.1 ℃取一组t,Rt数据点,在相同的精度ε=1×10-3约束下计算,分析2种方法的最大误差。

对结果选取有代表性的部分数据点,进行图2所示的对比。

图2 精度误差分析图

从精度误差分析可以看出,在相同的精度约束下,牛顿法的误差非常小,图2中所列出的是数据点中,牛顿法误差较明显的部分数据,误差基本都在1×10-11量级,比给定的ε=1×10-3低7个量级,精度特性非常好;与之相比,二分法的误差虽然满足ε约束,但几乎处于同一量级(图见约0.8×10-3,与1×10-3的ε非常接近);同时,二分法相邻数据点的误差,分列于正负两侧,呈现明显的锯齿形振荡。

3.4 相对运行速度比较

衡量一个算法是否优秀,运行速度是必不可少的判定条件。运行速度快的算法有更高的实用价值。以二分法为参照,分析牛顿法的运行速度,有很大实用意义。

同样以前述程序为基础,在t的[-200,0]区间,均匀抽取数据点,限定精度ε,完成同样次数的循环(2 000 000次),记录运行时间,得到结果如表2所示。

表2 相对运行速度比较

从速度比较看出,在相同的精度要求下,牛顿法程序运行时间明显少于二分法;随着精度要求的提高,牛顿法所需时间变化不明显,而二分法所需时间则明显变长。计算精度ε越高,二分法的运行时间越长。二分法所需时间至少是牛顿法的4倍以上。

牛顿法每次迭代,需要完成约22次浮点乘法和9次加法。而二分法的1次迭代需要完成约25次浮点乘法和11次加法。从单次迭代的计算量来看,二分法稍多,但区别不大。然而,由于算法本身的特性,二分法迭代次数的比牛顿法多4倍以上,导致二分法实际用时要比牛顿法长很多。

4 结 语

一元多次方程的求解问题在实际使用中非常普遍。根据阿贝尔定理,5次及更高次的代数方程没有一般的代数解法,这样的方程,不能由方程的系数经过有限次四则运算和开方运算求根。也就是说,在工程运算中,解析法难以求解5次以上的高次方程,这时,数值求根就成了工程技术人员的第一选择。二分法和牛顿法作为基本的计算机编程方法,他们的特点比较明显。二分法对函数要求较低,在所求区间只要确证有根,就能以很稳定的速度在不断减小的区间找到满足精度要求的近似解。而牛顿法虽然要比二分法优异很多,但要求函数必须可导。当导函数要比函数本身简单时,牛顿法能快速准确地计算出高精度的近似解。

本文针对Pt100铂热电阻温度计算问题,以二分法为参照,详细分析了牛顿法的应用特性。结果表明,在相同的精度约束下,牛顿法计算复杂性小、计算精度高、误差较小;相对运行速度牛顿法要快4倍以上。这反映出在Pt100铂热电阻温度计算中,牛顿法是一个较好的选择。

参考文献

[1]李吉林.90 国际温标常用热电偶、热电阻分度表[M].北京:中国计量出版社,1998.

[2]国家计量总局.计量器具检定规程汇编(温度部分)[M].北京:国家计量总局,1983.

[3]钱焕延.计算方法\[M\].西安:西安电子科技大学出版社,2006.

[4]韦以明.电桥温度计的实验研究\[J\].现代电子技术,2007,30(4):28-31.

[5]吴本科,肖苏,谢莉莎.蔡氏电路中电感阻耗对混沌现象的影响\[J\].现代电子技术,2005,28(10):97-99.

[6]傅民仓,冯立杰,袁俊飞.基于PIC单片机的热敏电阻数字化方法\[J\].现代电子技术,2006,29(5):76-78.

作者简介 张 莉 女,1974年出生,汉族,陕西眉县人,陕西邮电职业技术学院教师,讲师,西安电子科技大学在读硕士研究生。研究方向为计算机网络、计算机应用。

姜建国 男,1956年出生,汉族,陕西渭南人,西安电子科技大学教授,硕士生导师。研究方向为计算机辅助设计和图形图像处理技术、网络技术等。

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

pt100热电阻计算公式C语言,牛顿法在Pt100铂热电阻温度计算中的应用特性分析相关推荐

  1. PT100热电阻校准模块设计

    之前为为各位朋友分享了关于PT100的热电阻温度阻值对应表和如何使用Excel表格精准分析PT100温度阻值关系. 本篇博客分享一个PT100校准电路,希望可以帮助到有需要的朋友. 起因源于,准备使用 ...

  2. 传感与检测技术,Pt100热电阻测温实验报告,江南大学物联网

    public class LeastSquares {public static void matching(double[] x, double[] y, double[] input, doubl ...

  3. 树莓派 zero 通过 max31865 连接 PT100 热电阻 测量温度

    所需工具 树莓派,我是树莓派 zero w: 一根PT100热电阻,我买的是裸线,三线制: 一块 MAX 31865,如果针脚没焊,需要焊上去,并按照三线制把 2/3 Wire焊合,把24 3的24断 ...

  4. PT100热电阻及K型热电偶

    PT100热电阻 (1)pt100是铂热电阻,它的阻值跟温度的变化成正比.PT100的阻值与温度变化关系为:当PT100温度为 0℃时它的阻值为100欧姆,在100℃时它的阻值约为138.5欧姆.它的 ...

  5. NTC转0-10V/0-5V热敏电阻转模拟信号温度变送器/温度变送器Cu50 PT100热电阻K型S型电偶NTC转4-20mA 0-10V模拟量NTC热敏电阻转电压10K NTC转0-5V0-10V

    IBF16系列 热电阻Ni1000,NTC,Pt100,热电偶等 非线性信号隔离变送器 主要特性: >>输 入:Ni1000, NTC 10K, NTC 20K, Pt100, Pt100 ...

  6. NTC,PT100热电阻转4-20mA温度信号转换器

    主要特性: >>输 入:Ni1000, NTC 10K, NTC 20K, Pt100, Pt1000,Pt10,Cu50,Cu100, 热电偶J/ K/ T/ E/ R/ S/ B 型等 ...

  7. TL431驱动三线PT100热电阻电路设计

    最简单的测温方式是DS18B20或者DHT11这种数字传感器模块,但是这种传感器测温范围有限. 然后是热电阻和热电偶,测温范围比较广. 热电偶的工作原理如下: 两种不同成份的导体(称为热电偶丝材或热电 ...

  8. TL431驱动三线PT100热电阻电路设计(转)

    最简单的测温方式是DS18B20或者DHT11这种数字传感器模块,但是这种传感器测温范围有限. 然后是热电阻和热电偶,测温范围比较广. 热电偶的工作原理如下: 两种不同成份的导体(称为热电偶丝材或热电 ...

  9. pt100热电阻c语言的程序,单片机+ADC0832热电阻PT100测温程序

    P0 = 0x76; //显示2 du = 1;//打开段选 du = 0;        //关闭段选 delay(2);//延时 if(pay_minus!=pay_minus_scan)   / ...

  10. 温度传感器Pt100 热电阻的原理

    在一定的温度范围内,Pt电阻值随温度变化,呈现函数关系. R=R0*(1+aT) R0:100欧 (在0摄氏度时,Pt电阻值) T:摄氏温度 a:0.00392

最新文章

  1. android写代码截屏微信,android 模仿微信头像裁剪
  2. c语言程序的基本结构(学习笔记1)
  3. Rust基础笔记:Getting input from the console
  4. Maven发布封装到中央仓库时候报错:no default secret key: No secret key
  5. 理解css伪类和伪元素
  6. Chrome OS 0.4.220 Beta下载已发布
  7. 那些关于浏览器的趣图和幽默段子
  8. LeetCode(7) - Reverse Integer
  9. jsp mysql电子档案管理系统_学生档案管理系统的设计与实现(JSP,MySQL)(含录像)
  10. 数组分割问题(转载学习)
  11. ThinkPHP开发博客系统笔记之二
  12. .net GridView绑定数据、编辑、更新、删除(弹出确认对话框)、取消、根据条件隐藏或显示按钮操作
  13. 同是共享内存,shm_open与shmget有什么差异?
  14. Android Protect-0.luyten+jadx+simplify简单介绍
  15. DL-based 多模态医学图像配准
  16. python爬取饿了么数据_爬取饿了么商铺信息
  17. 微信小程序开发:向数组中插入数据
  18. java打开浏览器_Java调用浏览器打开网页完整实例
  19. MySql 存储boolean的数据
  20. Scratch3.0新手入门教程

热门文章

  1. 淘宝x-sign算法demo示例
  2. oracle左连接查询去重,左连接去重(objec)
  3. 简单谈谈MySQL的两阶段提交
  4. IEEE爬取摘要并翻译成中文
  5. cur前缀_每个人必知的英语前缀大全
  6. json的存储与读取
  7. shareSdk 新浪微博的登录分享测试
  8. 【眼底图像数据集】视杯 视盘分割
  9. web 页面实现页面右下角弹窗功能
  10. 2003sql php_Windows Server 2003下安装PHP +mssql2000