ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

PT100四线制高精度测温:从原理到ADS1220实战设计

PT100四线制高精度测温:从原理到ADS1220实战设计 搞工业测控这些年PT100应该是最常见的温度传感器了精度高、线性度好、成本还便宜。但很多工程师在实际项目中会遇到一个头疼的问题明明选的是A级PT100接出来读数就是不准偏差零点几度还算小的有的直接偏了两三度。我早些年也被这个问题折磨过后来把接线方式、激励电流、ADC配置都梳理明白之后才真正把精度做到0.1℃级别。今天这篇就围绕四线制测量法展开从原理、电路到代码把PT100精准测量的完整链路讲清楚希望能帮你少走弯路。PT100四线制测量法不只是一个接线技巧它解决的是传感器引线电阻带来的系统性误差。无论你是做温控仪表、环境监测设备还是在搞电池热管理、工业过程控制只要对温度测量精度有要求四线制方案都值得认真了解。这篇内容既讲原理也讲实操针对不同基础的朋友我会把必要的背景知识也补充到位保证新手能看懂、老手能直接用。1. 先搞清楚PT100的误差到底从哪里来1.1 PT100的基本特性0℃时100Ω每度变化约0.385ΩPT100是铂热电阻核心材料是铂它在0℃时的标称阻值正好是100Ω所以叫PT100。铂的电阻温度特性在工业界经过长期验证IEC 60751标准里给出了明确的对应关系。简单来说0℃到100℃范围温度每升高1℃阻值大约增加0.385Ω也就是所谓的温度系数。但这个“大约”很关键实际上PT100的电阻-温度曲线并不是绝对的直线而是带有一点非线性。温度越低非线性越明显在0℃以下表现得尤其突出。如果全程用线性近似有些场合会把误差放大到0.5℃甚至更大。想要做到0.1℃级别就离不开两个核心工具一个是查表法用标准分度表逐点对应另一个是公式法用Callendar-Van Dusen方程精确计算。这两个方法后面的章节会详细展开。关于PT100的精度等级IEC 60751标准把它分成AA级、A级和B级。AA级允许误差±0.10.0017×t℃A级是±0.150.002×t℃B级是±0.30.005×t℃。很多人只看铂电阻本身的等级却忽略了电路引入的误差结果传感器再好读数照样不准。1.2 引线电阻低阻值传感器最大的精度杀手PT100在0℃时只有100Ω温度每变化1℃阻值才变化约0.385Ω。如果测量电路的引线有1Ω的电阻没有被补偿折算成温度误差就是约2.6℃这个数字非常惊人。实际应用中传感器到测量电路的线缆少则几十厘米多则几十米甚至上百米。常见的铜导线电阻大约在0.1Ω/m到0.5Ω/m之间具体取决于线径。100米的线缆就算用0.75平方的铜线回路电阻也会超过4Ω直接对应的温度误差超过10℃。如果不处理引线电阻任何高精度都无从谈起。这就像用一个精度很高的电子秤去称一条鱼但把鱼和一块大石头绑在一起称石头重量没扣除秤再准也没用。引线电阻就是那块石头四线制测量法就是专门用来把这块石头“摘掉”的方法。1.3 自热效应激励电流带来的不可忽视误差测量电阻必然要施加激励PT100在激励电流流过时会产生焦耳热导致自身温度略微升高这就是自热效应。自热引起的温升与电流的平方成正比与传感器的散热条件成反比。我用一组数据来说明这个问题。假设PT100的散热系数为2.5mW/℃也就是每耗散2.5mW的功率自身温度会上升1℃。当激励电流为1mA时PT100在0℃时功耗是100Ω×1mA×1mA0.1mW自热误差约0.04℃。但有些工程师图省事直接用5mA甚至10mA的电流去激励功耗会飙升至2.5mW甚至25mW自热误差可以达到1℃以上。所以在工业仪表设计中激励电流通常控制在0.5mA到1mA之间既能保证信号强度又不会产生严重的自热问题。低功耗设计还要采用间断供电策略只在ADC转换时给传感器供电这样进一步降低平均功耗和自热效应。2. 为什么必须用四线制三种接线方案的本质区别2.1 两线制的局限误差完全裸露两线制是最简单的接法传感器两端各接一根导线到测量电路。从原理上讲测量电路读到的电阻值等于PT100本身的电阻加上两根导线的电阻之和。两线制也不是完全不能用于PT100前提是导线很短、线径够粗或者系统对精度要求不高。比如一些只做开关量判断的场合温度差个三五度不影响结论用两线制也可以。但做温控或高精度测量两线制注定不靠谱。另一个两线制的问题是温度漂移。即使你在常温下校准了引线电阻环境温度变化时铜导线的电阻也会跟着变化。铜的温度系数大约是0.0039/℃也就是温度每变化10℃每1Ω的引线电阻就会变化约0.039Ω对应PT100大约0.1℃的误差。这个漂移量在精密测温中已经不可接受了。2.2 三线制的补偿逻辑适合长距离但精度有上限三线制是工业现场非常常见的一种接法它通过一根额外的导线来补偿引线电阻。原理是假设三根导线的电阻完全相同用一根导线上的压降去估算另外两根导线上产生的总误差然后在测量结果中扣除。三线制在热电阻温度变送器、PLC模拟量模块中大量使用是因为它在成本和精度之间取得了不错的平衡。长距离布线时三线制能有效抵消大部分引线电阻误差把精度做到±0.2℃到±0.5℃是可行的。但三线制有一个致命前提——三根导线的电阻必须严格一致。实际工程中如果导线长度相同、线径相同这个条件基本成立但如果现场接线时有一根线长了或者接线端子接触电阻不一样三线制就会产生残余误差。对于追求0.1℃精度的场合这个残余误差仍然不可接受。2.3 四线制测量法的核心原理激励和采样分离四线制是目前消除引线电阻最彻底的方法。它有四根导线连接到传感器其中两根用于施加激励电流另外两根用于测量电压。关键点在于电压测量回路几乎不流过电流所以测量线上不会产生压降。想象一下这个场景激励电流从A线流入PT100从B线流出。在PT100两端并联着两根电压采样线C和D连接到高输入阻抗的电压测量电路。由于ADC或仪表放大器的输入阻抗极高通常几十MΩ以上流过C、D线的电流趋近于零因此C、D线上不会产生可感知的电压降。ADC读到的电压就是PT100两端真实的电压降与引线电阻完全无关。四线制测量法的数学关系非常简单被测电阻 电压 / 激励电流。这个关系不受任何引线电阻影响四根线的电阻都从误差模型中消除了。想要高精度测量四线制是绕不开的方案。2.4 三选一怎么判断按精度需求合理选型我把三种接线方案的适用场景梳理一下帮助大家快速判断该用哪种接线方式误差来源适用场景预期精度两线制引线电阻及温漂短距离、低精度、成本敏感±1℃以上三线制线阻一致性残余工业现场、100米内长线±0.2℃~±0.5℃四线制自身器件误差实验室、高精度数采、计量设备±0.05℃~±0.1℃如果是做产品设计四线制多出来的两根线并不会显著增加BOM成本却能大幅提升测量一致性。我的经验是只要设计目标精度在±0.2℃以内就直接上四线制别在三线制上纠结省那么一点成本。如果是给现有设备做改造还要考虑现场是否已有四线制传感器或者能否重新布线。3. 四线制测量电路设计从原理到完整电路图解析3.1 方案选型恒流源激励还是比例法Ratiometric四线制的核心是给PT100提供一个稳定的激励电流再精确测量PT100两端的电压。两种主流实现方案是恒流源激励法和比例法Ratiometric。恒流源方案使用专用的精密恒流源芯片比如LM334产生恒定电流再用高精度ADC测量电压。这种方案的问题是恒流源的温漂和噪声会直接影响测量结果而且PT100的阻值变化会让恒流源的工作点发生漂移最终精度很难做到很高。比例法是目前高精度测量普遍采用的方案也是我实际项目里验证过最稳的方案。它的思路是用一个精密参考电阻与PT100串联同一路激励电流同时流过两者然后测量PT100两端的电压与参考电阻两端的电压之比。由于激励电流的不稳定性会同时影响这两个电压做除法时电流项被抵消了这就消除了激励源漂移的影响。比例法对ADC有个硬性要求必须支持比例测量模式也就是能够分别测量传感器电压和参考电压。很多24位Δ-Σ ADC天然支持这个功能比如ADS1220、ADS124S08、ADS1262等。以ADS1220为例它在PGA和基准输入引脚之间做差分测量数据寄存器直接输出比例结果配合参考电阻硬件上几乎无法更简单。3.2 核心器件选型为什么推荐ADS1220很多做温度测量的工程师在ADC选型上很纠结我用过ADS1232、ADS1247、ADS1220、ADS1262这几款综合性价比和易用性ADS1220是我的首选。ADS1220是一片24位Δ-Σ型ADC内置PGA可编程增益放大器、两个激励电流源、温度传感器和内部基准。这些功能是专门为RTD测量设计的四线制PT100场景用一片ADS1220就把整个模拟前端都搞定了不需要额外的高精度仪表放大器。关键参数上ADS1220的PGA增益可以设置为1、2、4、8、16、32、64、128输入阻抗极高对四线制的电压测量来说非常理想。它的激励电流源有两种电流值档位可选比如10μA、50μA、100μA、250μA、500μA、1000μA、1500μA等配合PGA增益可以做灵活的功耗与噪声折衷。ADS1220还有一个很好用的功能——片上温度传感器可以用来做冷端补偿如果测量热电偶或者做常温自检。对于PT100的变送器应用直接用内部温度传感器监测PCB温度还能辅助判断环境温度对电路的影响。3.3 参考电阻的选型精密低温漂是关键在比例法方案里参考电阻的精度和温漂直接决定了整个测量的精度。参考电阻的作用是作为阻值基准PT100的实际阻值等于PT100两端电压与参考电阻两端电压之比乘以参考电阻阻值。选参考电阻时最关键的是温漂系数。我推荐选择温漂在±5ppm/℃以内的精密电阻最好是金属箔电阻或者薄膜精密电阻。±5ppm/℃意味着环境温度波动10℃参考电阻变化仅0.005%对应温度误差约0.013℃完全可以接受。参考电阻的阻值选择也要理论计算。如果系统温度测量范围是-50℃到200℃PT100阻值范围约为80.31Ω到175.86Ω。为了不让PT100的电压过大导致PGA输出饱和参考电阻可以选1kΩ或2kΩ。激励电流1mA时参考电阻上的压降是1VPT100上的压降约0.08V到0.18V配合合适的PGA增益ADC的有效分辨率可以做到非常理想。实际使用时参考电阻建议选用电阻精度0.1%、温漂±1ppm/℃的型号比如VPG的金属箔电阻。如果预算有限至少也要做到0.05%精度和±5ppm/℃温漂。3.4 完整四线制PT100测量电路图讲解我把一个典型的ADS1220四线制PT100测量电路拆开来讲这个电路我实际打过板测量稳定性非常可靠。激励电流由ADS1220的IDAC1输出经过一个RC低通滤波器接到PT100的正激励引脚I然后流过PT100经过PT100的负激励引脚I-回到参考电阻REF-和模拟地。参考电阻R_REF连接在REF和REF-之间。PT100的两个电压采样引脚直接接在ADS1220的AIN0和AIN1上。需要注意激励电流设置多大、PGA增益如何设置需要参考PT100阻值范围和ADC满量程。ADS1220的内部基准典型值是2.048V如果PGA增益设置为16满量程输入范围就是±2.048V/16±0.128V。PT100在200℃时压降约175.86mV×1mA175.86mV略微超出满量程所以此时增益要降到8或者适当降低激励电流。电路图上还有几个容易被忽略的细节。第一个是RC滤波器我会在ADC的AIN输入引脚前各加一个100Ω电阻和100nF电容组成低通滤波器截止频率约16kHz用来衰减高频干扰。第二个是参考电阻两端的电压走线要直接连到REF和REF-不要经过其他节点避免参考电压被其他电路污染。第三个是IDAC电流源输出的负载能力需要确保激励电流在PT100和参考电阻上产生的总压降不超过ADC模拟电源供电轨的余量。3.5 片内滤波与数字滤波的结合ADS1220数据手册里提供了数字滤波器模式默认是平均滤波模式可以按照设置的输出速率进行数据更新。在50Hz工频环境比较恶劣的现场还可以使能50Hz和60Hz抑制模式这个功能对消除工频干扰非常有效。在软件侧我还会做一层简单的移动平均滤波。ADS1220的连续转换模式下数据输出速率可以设为20SPS单片机侧取最近8次或16次读数求平均然后再算温度。实测下来这种方法可以把峰峰噪声压到非常低的水平。但数字滤波不是万能的。如果模拟前端噪声太大数字滤波只能平滑曲线无法去除系统级的直流偏移。所以硬件上的滤波、屏蔽、布线工作都不能省数字滤波只是锦上添花。我的原则是硬件保证信噪比软件保证稳定度。4. 从阻值到温度计算方法和软件实现细节4.1 Callendar-Van Dusen公式怎么用有了精确的PT100阻值之后下一步是转换成温度。最准确的方法是使用IEC 60751标准定义的Callendar-Van Dusen公式。对于温度大于等于0℃的情况公式是Rt R0 × (1 A×t B×t²)对于温度小于0℃的情况公式变成Rt R0 × [1 A×t B×t² C×(t-100)×t³]其中系数A、B、C在IEC 60751标准中定义为A 3.9083×10⁻³B -5.775×10⁻⁷C -4.183×10⁻¹²这里的R0是0℃时的电阻PT100即为100Ω。大多数情况下是从阻值反求温度此时直接用解析求根公式比较困难尤其是0℃以下的三次方程。工程上最简单的做法是牛顿迭代法大致估算一个初始温度然后反复用这个公式迭代修正直到计算阻值接近实测阻值。通常在5次迭代以内就能收敛到0.001℃以内。4.2 查表法 vs 公式法精度与资源的取舍查表法的思路是提前把-50℃到200℃的PT100阻值以0.1℃或0.01℃步进做成一个数组测量出阻值后去数组里查找对应的温度。没命中的用线性插值补上。这种方法的优点是计算量小、单片机实现简单缺点是几乎不占用Flash资源也很小但精度取决于表的步长。我实测下来0.1℃步进的表配上线性插值插值误差低于0.01℃完全够用。如果Flash空间比较充足可以制作0.05℃步进的表插值后基本就是连续曲线。公式法的优点是精度高、存储占用小且可以覆盖超出查表范围的温度。缺点是需要做浮点运算对8位单片机会有性能压力。如果是STM32这类带FPU的Cortex-M4/M7内核跑Callendar-Van Dusen公式几乎毫无压力。如果用的是8位MCU建议用查表法或者用定点数逼近公式。4.3 采样数据的滤波与异常值剔除ADC的原始采样数据直接用来计算温度通常会存在一定的高频噪声。我在软件里会做一个简单的滑动平均窗口长度取8到32个样本去除最大值和最小值后再取平均这样既能滤除尖峰干扰又能保持实时性。还有一种情况是数据跳变比如某一次采样值偏离平均值超过3个标准差。这通常是外部干扰或接线接触不良导致的直接丢弃这个样本就好。简单粗暴的限幅滤波也可以比如温度变化速率超过20℃/s就判定为异常使用上一次有效值。实际项目中为了可靠我还会做一个“健康状态”判断。如果ADC转换结果异常比如数据寄存器饱和、PGA输出超量程及时上报故障别让假数据进入控制环节。工业设备里宁可输出一个错误代码也不能输出一个错误的温度值让控制器误动作。4.4 校准把最后的系统性误差干掉即使硬件设计很完善系统中仍可能存在系统性的增益误差和偏置误差。最有效的办法是两点校准甚至三点校准。两点校准的操作方法是把PT100探头放到冰水混合物中0℃记录ADC读数对应的阻值/温度再放到沸水中100℃标准大气压下记录第二个数据点。用这两个点计算出增益误差和偏置误差然后在校正代码里补偿掉。如果有高精度温度槽可以做三点校准0℃、50℃、100℃。校准后的系统实测误差可以压到±0.05℃以内。校准数据可以存到EEPROM或者外部Flash中出厂时烧录量产设备建议一次性写入并在上位机界面显示校准状态。5. 实操中踩过的坑从布局到调试的经验总结5.1 四线制的线缆选择与屏蔽处理四线制虽然消除了引线电阻的影响但引线本身仍然是噪声的接收天线。对于长距离的工业现场如果传感器引线穿过变频器、马达等强干扰环境屏蔽处理非常重要。我用过的方案是采用四芯屏蔽电缆两两绞合。激励线和采样线分开走激励线用一组绞线采样线用另一组绞线屏蔽层单端接地。这样做的目的是让激励线和采样线尽量靠在一起耦合但又要避免激励电流的磁场直接感应到采样回路中。如果是高速高精度测量尽量缩短采样线到ADC的距离放大环节靠近传感器比放大器放在主控板上更靠谱。很多工程师习惯把所有电路都放在一块主板上结果长距离的微弱电压信号在传输过程中被干扰污染后面用再贵的ADC也拉不回来。5.2 参考电阻的供电与基准引脚的去耦参考电压是整个测量系统的“尺子”它如果波动所有结果都会跟着错。我在参考电阻两端并联了一个100nF的X7R电容和一个10µF的钽电容用来吸收瞬时电流和噪声。还有一个容易被忽略的点参考电阻的地不应直接接到数字地最好用独立的模拟地AGND单点连接到系统的电源地。这样可以把数字开关噪声隔离开。ADC的模拟供电和数字供电也要用磁珠或小电阻隔开避免数字电路通过电源把噪声耦合进模拟前端。5.3 传感器引线过长引起的容性耦合曾经有一个现场传感器的引线长达50米接上后读数始终比实际值高0.3℃左右。排查很久发现是长线缆的分布电容与ADC输入端的RC滤波器形成了低通网络导致采样电压在两个引脚之间产生了相位偏移影响了测量结果。解决方法是把RC滤波器的电容值降低比如从100nF降到10nF同时增加一只共模电感来抑制共模干扰。还有一种办法是提高激励电流让信号更强一些。但要注意激励电流增大后自热效应会上升需要权衡。5.4 ADC配置的初始化和自校验ADS1220这类Δ-Σ ADC上电后默认状态并不一定是最优配置。我遇到过的情况是如果不对REG1的PGA增益做明确设置或者不配置输入多路开关ADC输出的是垃圾数据。ADS1220有个自校验功能Self-Calibration上电初始化时执行一次可以消除PGA的输入失调电压和增益误差。我在每次初始化时都会触发这个自校验大约需要几百毫秒不会影响实际测量。另外IDAC电流源的极性、PGA的输出极性都要认真设置接反了会导致负电压输入超过ADC允许范围。5.5 常见问题速查表我把这几年在PT100四线制项目里遇到的问题整理成一张速查表方便大家现场排查故障现象可能原因排查与解决读数明显偏高引线未按四线制接入激励线和采样线短接检查接线图确保采样线在PT100两端读数有规律跳变激励电流源设置不稳或电源纹波过大检查供电去耦增加模拟LDO读数为满量程PT100断线或接线开焊用万用表测量PT100两端电阻是否正常低温段误差大零下温度直接用了0℃以上公式使用含C系数的完整Callendar-Van Dusen公式读数随线缆弯折变化采样线内阻过高或接触不良换用更粗线径检查端子压接通电瞬间读数跳变自热效应在上电初始阶段明显软件延时后再采样或采用间断激励6. 方案延伸从裸电路到完整产品6.1 低功耗场景的间断供电设计如果是电池供电的设备比如便携式测温仪持续激励的功耗往往不可接受。此时可以参考一种常见的低功耗策略让MCU的GPIO通过MOSFET控制PT100和ADC的供电每秒钟只开50ms进行测量其他时间断电。这种间断供电方式下激励电流只在采样窗口内流过PT100自热效应也降低了。功耗可以做到微安级别对于野外环境监测、冷链运输记录仪这类应用特别合适。注意断电后重新开启时要给电源电容和PGA留出稳定时间我一般等ADC内部稳定后再触发采样。6.2 与单片机系统的集成ESP32、STM32的实践这个电路和代码不仅能跑在专门的温度变送器上也可以非常方便地接入ESP32或STM32构建的数字系统。STM32的SPI接口和ADS1220通信非常顺手数据读取都是标准的寄存器操作。ESP32用SPI也很方便借助Arduino平台可以快速做原型验证。我在一个恒温槽项目中用STM32F103主控SPI速率500kHz测量周期50ms读到的温度波动在±0.02℃以内。有一点要提醒的是MCU的IO口要注意电平匹配。ADS1220的支持电压范围包含3.3V系统ESP32和STM32大多都能直接对接。如果MCU的IO是5V一定要加电平转换否则会损坏ADC的输入引脚。6.3 从四线制PT100到更多RTD的泛化掌握了四线制测量PT100的方法其他RTD传感器比如PT1000、Ni1000、Cu50本质上都是同一套逻辑。PT1000的阻值是PT100的10倍同样电流下信号强度大10倍引线电阻影响占比更小甚至两线制都能获得不错效果。对于Cu50这类铜热电阻测量原理完全一样只是查表系数换成对应分度表就行。这也是为什么很多工业温度变送器号称“万能输入”其模拟前端正是基于RTD四线制比例法搭建只是做了更多软件上的可配置化处理。6.4 Proteus和Multisim仿真辅助设计在打样之前我习惯先用Proteus或者Multisim把电路仿真一遍确认参数没有明显问题。Proteus里可以直接搭建ADS1220的外围电路原型模拟PT100在不同温度下的阻值观察ADC输出是否线性。不过要提醒的是仿真软件里的模拟器件模型往往是理想化的不要完全依赖仿真结果。仿真解决了的是电路连接、参数匹配、静态工作点的问题但噪声、寄生参数、布局影响这些问题必须通过实际打样和测试来验证。我通常把仿真当做第一道关卡真正的精度确认还是靠在真实硬件上的多组温度比对。7. 关于这个电路我最后再交代几句用四线制测量法配ADS1220这个方案我在好几个产品里用得非常顺手。硬件成本不高但其实已经能到实验室级精度。为什么很多工程师一开始做不好往往不是传感器不行也不怪ADC不好而是输在了两个点上一个是没搞明白比例法和恒流源的区别另一个是不重视参考电阻和走线的细节设计。我自己调试时最深的体会是模拟电路设计里每一个“看起来无所谓”的小决策最后都会汇集到精度和稳定性上。参考电阻到底用哪种温漂、采样线要不要屏蔽、RC滤波器电容值选多少、ADC配置字有没有设对都是决定成败的环节。额外的信息是这个方案后续还可以加进断线检测、传感器老化诊断、多点温度校准等功能适配实际产品场景时非常灵活。如果你正要为PT100设计高精度测量电路建议顺着这个思路先把比例法搞明白再用ADS1220搭一个最小系统一步步调通期间遇到具体问题欢迎一起交流。
返回列表