NTC测温的二分法实现.docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NTC测温的二分法实现

NTC测温的二分法实现 作者:吴老师, HYPERLINK / \t _blank 华清远见嵌入式学院讲师。 NTC(Negative Temperature Coefficient)即负温度系数热敏电阻。它是以锰、钴、镍和铜等金属氧化物为主要材料,采用接近理论密度结构的高性能陶瓷工艺制造而成。因此,在能够实现小型化的同时,还具有电阻值、温度特性波动小、对各种温度变化响应快的特点。其主要原理是根据NTC在温度低时,载流子(电子和孔穴)数目少,所以其电阻值较高;随着温度的升高,载流子数目增加,所以电阻值降低。主要用于温度测量、温度补偿等仪器设备中,具有较高的灵敏度和高精度。 1、锅炉温度控制系统 上图是锅炉的温度控制系统,主要功能是实现温度的恒定控制。NTC电路将热敏电阻阻值转换成电压信号,经过调理电路和AD将热敏电阻的阻值采集到MCU上,MCU根据控制要求,进行相应的运算并DA输出控制锅炉加热模块的工作功率,从而实现锅炉的温度控制。假设要实现控制锅炉温度在(T±1)℃,当MCU检测到NTC阻值高于(T-1)℃时NTC的阻值,则控制DA输出进行加热,锅炉升温。当检测到NTC阻值低于(T+1)℃时NTC的阻值,则控制DA停止加热,锅炉降温。如此可实现锅炉的温度控制于(T±1)℃。本文采用的NTC型号为100KR。 2、NTC的参数 NTC的主要参数有:零功率电阻阻值和额定零功率电阻值 R25(Ω)。零功率电阻值 RT(Ω)指在规定温度 T 时,采用引起电阻值变化相对于总的测量误差来说可以忽略不计的测量功率测得的电阻值。 电阻值和温度变化的关系式为: RT = RN expB(1/T – 1/TN) RT :在温度 T ( K )时的 NTC 热敏电阻阻值。 ????????RN :在额定温度 TN ( K )时的 NTC 热敏电阻阻值。? ????????T :规定温度( K )。 ????????B : NTC 热敏电阻的材料常数,又叫热敏指数。 ????????exp :以自然数 e 为底的指数( e = 2.71828 …) 该关系式是经验公式,只在额定温度 TN 或额定电阻阻值 RN 的有限范围内才具有一定的精确度,因为材料常数 B 本身也是温度 T 的函数。 额定零功率电阻值 R25(Ω):根据国标规定,额定零功率电阻值是 NTC 热敏电阻在基准温度 25 ℃ 时测得的电阻值 R25,这个电阻值就是 NTC 热敏电阻的标称电阻值。通常所说 NTC 热敏电阻多少阻值,亦指该值。对于本文所用的 NTC 热敏电阻, B 值为100千欧。可根据所用NTC查相关手册得出相应温度时的阻值,并以数值的形式存储在MCU中,数组元素的下标即代表温度,该数值元素存储的值即为该温度时NTC的阻值。 3、二分法查表实现温度值的查找 MCU采集到AD后根据电路特性可计算出相应的NTC阻值,使用查表法即可查出该阻值时的锅炉温度。为加快查表速度,使用二分法查找。 4、线性插值法计算温度值 用查表法找出与相应的阻值相近的两个温度点,使用线性插值算出该阻值点时相应的具体温度值。假设已知坐标(x0,y0)与(x1,y1),要得到[x0,x1]区间内某一位置x在直线上y的值,可由(y-y0)(x1-x0)=(y1-y0)(x-x0)得到。 程序总流程图如下所示。 //用二分查表法计算温度值 //25度时最大与最小差1000,相邻度数差500 /* Test.C -- test routine */ ????????#include stdio.h ????????typedef unsigned int uint; ????????uint nuiTempMin = 0; ????????uint nuiTempMax = 160; ????????uint nuiMidVal = 0; uint nuiTempTab[]= ????????{ ????????????????0x7efe,0x78ee,0x733b,0x6dd8,0x68bd,0x63e2,0x5f40,0x5ad4,0x5698,0x528c, //0~9℃ ????????????????0x4eac,0x4ad3,0x4753,0x4417,0x410f,0x3e2f,0x3b6f,0x38ca,0x363e,0x33c8, //10~19℃ ????????????????0x3168,0x2f20,0x2cf1,0x2add,0x28e7,0x2710,0x255b,0x23ca,0x225f,0x211b, //20~29℃ ????????????????0x2002,0x1ec0,0x1d85,0x1c51,0x1b23,0x19fc,0x18dd,0x17c8,0x

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档