ARTICLE DETAIL

资讯详情

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

Pt100测温电路设计:从传感器选型到LTspice仿真验证

Pt100测温电路设计:从传感器选型到LTspice仿真验证 1. 先弄清楚Pt100测温电路到底要解决什么问题做温度采集这些年Pt100是绕不开的一个传感器。最近要验证一套测温方案的线性度和误差我顺手用LTspice把整个链路搭出来跑了一遍。这篇文章就把从传感器选型、信号调理到仿真验证的完整思路整理出来希望能给正在纠结怎么设计或验证Pt100测温电路的朋友一点参考。你不需要一开始就画PCB先用LTspice把电路行为看清楚很多坑可以在仿真阶段提前避开。1.1 为什么是Pt100而不是NTC热敏电阻很多人开始做测温时会先考虑NTC热敏电阻因为成本低、灵敏度高。但NTC有个比较麻烦的问题电阻-温度曲线是非线性的而且每一批的B值一致性参差不齐。虽然现代NTC也会做分档但要做到0.5℃以内的稳定测量换传感器后标定工作量会明显变大。Pt100正好相反它是铂电阻0℃时的标准阻值是100Ω。铂的电阻温度特性稳定、复现性好在-200℃到850℃范围内都能保持接近线性的关系。虽然响应速度没有NTC快价格也会高一些但在工业设备、医疗仪器、实验室仪表这些对稳定性和可重复性要求高的场景Pt100几乎是默认选项。我实际项目里最喜欢它的一点是它的“老化漂移”很小。NTC用上一两年常温阻值就可能偏出去不少而Pt100的长期稳定性好很多。对于测温电路来说传感器的稳定性有时候比灵敏度更重要因为灵敏度不够还可以用放大器补稳定性不够就只能靠定期校准这是很麻烦的事。1.2 Pt100的温度特性决定了电路怎么设计Pt100的经典阻值表达式可以写成[ R(T)R_0 \times (1 A \times T B \times T^2) ]其中 (R_0100\Omega)(A3.9083\times10^{-3})(B-5.775\times10^{-7})。这个公式在0℃到850℃范围内误差很小。如果只做-40℃到150℃范围的常规测温很多设计会直接采用线性近似[ R(T)\approx100\times(10.00385\times T) ]也就是温度每变化1℃电阻变化约0.385Ω。这个线性近似在0℃到100℃之间带来的误差大约在0.4Ω以内折合温度不到1℃对很多应用已经够用。如果想做更高精度再在软件里用多项式校正即可电路层面不用太纠结。电路设计的关键就是要把“电阻变化”可靠地变成“电压变化”。因为传感器本身不产生能量你必须给它一个激励然后测量电压。最常用的做法有两种一是用恒流源给Pt100供电测它两端的电压二是用电桥把电阻变化转成差分电压再用仪表放大器放大。我在设计时倾向于恒流源方案原因后面会详细说。但无论哪种方案电路里都会涉及放大器、参考电压和ADC的配合而这些过程完全可以在LTspice里先跑通。2. 方案选型恒流源、三线制/四线制和放大器测温电路最核心的问题不是“放大器怎么选”而是“怎么接传感器”。Pt100只有两个端子但实际应用中导线会有电阻这个电阻会叠加在测量结果里才是误差的最大来源。2.1 二线制、三线制、四线制差别到底在哪先看二线制。两根导线分别接在Pt100两端恒流源通过这两根线给Pt100供电电压表也通过这两根线测量电压。问题很明显电流流过导线电阻会在线阻上产生压降电压表量到的电压是“Pt100压降两根导线压降”。如果导线电阻只有1Ω折合Pt100温度就已经有约2.6℃的误差而且导线越长、环境温度变化越大误差越不可控。三线制解决了一部分问题。它用了三根导线其中两根接在Pt100两端第三根用于补偿。原理是把导线电阻等效到电桥的两个相邻桥臂上当两边的导线电阻相等时电阻变化能够相互抵消。工业现场距离远三线制是最常用的折中方案。四线制最彻底。两根线为Pt100提供恒流激励另两根线专门用来测量Pt100两端电压。因为电压测量回路输入阻抗非常高几乎不从传感器取电流所以测量线本身的电阻不会引入误差。四线制在实验室和计量设备里很常见代价是需要四根线接线成本高一些。我把三种接线的特点整理成了一张表接线方式导线电阻影响典型应用误差表现二线制直接计入测量回路短距离、低精度误差随线长和环境温度变化三线制对称抵消精度较高工业现场、过程控制依赖两侧导线阻值一致四线制不影响测量实验室、高精度设备测量线无电流无压降误差2.2 恒流源激励和电桥方案怎么选电桥方案在教科书里很常见。把Pt100放到惠斯登电桥的一个桥臂上另外三个桥臂用固定电阻桥路输出一个差分电压。电桥的好处是初始点可以调零不用处理很大的直流偏置。但它也有一个缺点电桥的输出和电阻变化不是严格线性关系如果温度范围很宽输出会有明显弯曲。恒流源方案更直接。给Pt100通一个恒定的电流根据欧姆定律电阻变成电压电压直接和电阻成正比。只要电流恒定后续放大和ADC处理都比较直观。恒流源方案需要解决的是“怎么得到恒流源”。在LTspice仿真中我会用理想电流源代替这样能先把信号调理链路跑通。实际硬件中可以用运放和基准电压搭恒流源或者用专用的电流源芯片。具体做法可以根据项目成本去选择纯电路设计逻辑是一样的。我自己的原则是如果只是验证放大器增益和输出范围先用理想电流源是最省事的。电路行为搞清楚后再把理想电流源替换成实际恒流源单独仿真恒流源部分整个系统就分而治之了。2.3 仪表放大器的作用与LTspice里的实现Pt100的信号是毫伏级别的直接送给ADC要么分辨率不够要么噪声太大所以需要放大器。如果传感器一端没有接地信号还带有一定的共模电压此时普通单端放大器会把共模电压一起放进去造成误差。仪表放大器就是为这种场景准备的。它有两个高阻抗输入端通过内部巧妙的结构使输入级“只差模不放大共模”。在LTspice里可以找现成的仪表放大器模型比如AD620但有时候手头没有模型文件用三个普通运放搭一个三运放仪表放大器也能跑仿真而且能更直观地理解原理。我习惯用LTspice自带的LT1001运放搭因为模型内置、无需额外下载直流精度也够。如果你之前用过其他运放换型号也很简单。关键在于放大器周围的四个增益电阻要足够匹配否则共模抑制比会被电阻失配拖累。实际电路里这是很隐蔽的坑仿真时因为用的是理想电阻往往会显得性能很好这一点要在心里有数。3. LTspice仿真电路搭建全流程LTspice是ADI提供的免费SPICE仿真工具Windows和macOS都有版本。它内置了大量电源、运放、晶体管模型非常适合做模拟电路验证。搭建Pt100测温电路本质上就是“恒流源、可编程电阻、仪表放大器”三者组合。3.1 LTspice环境准备与Pt100电阻建模LTspice界面很朴实左边一大块元件列表中间是原理图编辑区。新建一个原理图后通过右键或者菜单栏的Component可以调出元件库。Pt100在库里并没有直接对应模型但可以用一个带温度参数的普通电阻来模拟。我的做法是在原理图里放一个电阻把它的阻值属性改成{100*(10.00385*T)}这里的T不是一个随机变量而是我定义的温度参数。为了让T有数值需要在原理图里加一行SPICE指令.step param T -40 150 10意思是让T从-40开始到150结束每10℃步进一次。这样每次直流工作点分析时T取一个不同的值Pt100电阻也跟着变化相当于在跑一个完整的温度扫描。这里有个容易犯的错表达式一定要用花括号。LTspice的规则是花括号里的内容会被当作参数表达式计算不加花括号它可能直接当成字符串导致仿真报错。如果不想手动输入还可以在电阻属性框里勾选“Temperature coefficient”然后设置TC10.00385LTspice也能根据环境温度自动改变阻值。但我更推荐参数T的方式因为这样对“温度”这一物理量的概念更清晰也更方便在同一个图表里观察输出随温度的变化。3.2 完整电路连接图和元件参数电路结构分成三个部分恒流源与传感器回路、电压跟随器输入级、差分放大输出级。恒流源部分我用一个理想电流源I1参数设置为1mA。为了避免二线制误差干扰我在传感器两端串入模拟导线电阻Rwire1和Rwire2都取10Ω。电流路径是I1正端A点经过Rwire1到S再经过Pt100到S-再经过Rwire2回到地。这个电流回路模拟了四线制里的“电流环”而后面放大器接的是S和S-这两点就是Pt100本体两端的电压。在LTspice里我会给各节点标上网络标签例如A、S、S-、VOUT。标注网络标签的好处是波形窗口里可以直接输入V(S)-V(S-)来查看差分电压非常方便。输入级用两个运放接成电压跟随器。第一个跟随器输入接S输出接V1第二个跟随器输入接S-输出接V2。电压跟随器输入阻抗极高不会从Pt100分流这样四线制才成立。因为LT1001是单运放我在原理图里放两个实例分别命名为U1、U2。差分输出级用第三个LT1001接成标准减法器。关键电阻取值为R310kR510kR4100kR6100k。R3从V1接到运放反相输入端R4从反相输入端接到输出端R5从V2接到同相输入端R6从同相输入端接到地。这样增益为[ 增益\frac{R_4}{R_3}10 ]运放供电用±5V一个正电源和一个负电源。LTspice里直接放两个电压源一个5V一个-5V接地参考点共用。完整元件清单大概是这样的元件数量参数说明I111mA恒流源激励Rwire1、Rwire2210Ω模拟导线电阻Rpt1{100*(10.00385*T)}Pt100电阻LT10013—仪表放大器单元R3、R5210kΩ差分输入电阻R4、R62100kΩ反馈电阻V、V-25V、-5V运放电源3.3 温度扫描设置与波形查看原理图画好后添加SPICE指令.step param T -40 150 5这里我选择5℃步进曲线会更平滑。接着运行直流工作点分析在菜单Simulate里选择RunLTspice会弹出一个Spice Error Log和波形窗口。因为电阻阻值在随T变化所以每次工作点都会重新计算一次最终生成以T为横轴的结果。在波形窗口里右键Add Trace输入V(VOUT)就能看到输出电压随温度变化的曲线。也可以输入V(S)-V(S-)*?。更精确地我输入V(S)-V(S-)查看传感器原始电压再输入V(VOUT)查看放大后的输出。如果你发现波形窗口横轴不是T可以检查是否用了.op加.step的组合。LTspice会把步进参数自动作为横轴这是最直观的查看方式。如果要在固定温度下观察具体电压值也可以直接在Error Log里看每个步进点的数值。4. 参数计算、仿真结果与线性度验证仿真不是跑出一条曲线就结束关键是要把曲线背后的计算逻辑说清楚。这样才能判断仿真结果是否合理也方便后面做增益调整。4.1 恒流源电流和放大增益怎么定恒流源电流的选择要兼顾两个指标测量信号大小和传感器自热。Pt100在0℃时阻值100Ω1mA电流下产生的电压是0.1V。这个信号水平已经远高于运放的失调电压不需要太高的增益就能给到ADC。如果把电流加大到5mA信号会更大但Pt100本身的自热功率也会增大。1mA时的自热功率只有0.1mW对常规Pt100来说基本可以忽略。我最终采用1mA既能让信号有足够幅度又能把自热误差控制在0.1℃以内。如果传感器热阻比较差比如放在静止空气里还可以考虑降到0.5mA。增益的计算取决于ADC输入范围。假设ADC参考电压是3.3V我们希望在150℃时输出电压尽量接近满量程。但我不打算一开始就把增益设得很高因为还要考虑0℃时的偏置输出。我先把增益定为10得到一组数据然后再讨论如果换成03.3V输出该如何调整。用公式算一下输出Pt100两端电压[ V_{pt}I_{exc}\times R_{pt}0.001\times100\times(10.00385T) ]在0℃时[ V_{pt}0.1V ]在150℃时[ R100\times(10.00385\times150)100\times1.5775157.75\Omega ][ V_{pt}0.15775V ]放大10倍后0℃输出1.0V150℃输出1.5775V。温度每变化1℃输出电压变化[ \Delta V_{out}0.001\times0.385\times100.00385V ]也就是3.85mV/℃。这个数值对验证仿真很有用直接可以用斜率判断电路是否正常工作。4.2 仿真输出电压与理论值对照仿真结束后我取几个关键温度点来做对照温度T(℃)Pt100电阻(Ω)理论Vpt(mV)理论VOUT(V)仿真VOUT(V)-4084.6084.600.8460.8460100.00100.001.0001.00050119.25119.251.1931.193100138.50138.501.3851.385150157.75157.751.5781.578从LTspice里读取的仿真值和理论计算基本一致。由于用的是理想电阻和理想电流源偏差非常小。如果仿真值和计算值对不上通常是表达式里的符号写错了或者电流源方向反了。我还要看一个重要指标输出曲线的线性度。把VOUT对T做线性拟合斜率大约就是3.85mV/℃截距约1V。这正好符合前面的推导。因为Pt100本身是近似线性的放大后的输出自然也是近似线性。若做更严格的误差分析在100℃附近因为B项的存在会有一点点弯曲但在常规工业测温场景里不需要额外修正。4.3 如果要输出到03.3V ADC该怎么改前面的电路增益是10输出落在1V到1.6V之间对3.3V ADC来说没有充分利用量程。实际项目里我们往往希望传感器在测温范围内能映射到03.3V或05V。最简单的方法是提高增益但同时要把0℃时的那1V偏置减掉。在差分放大器后端加一个减法/偏置调整电路即可。比如希望0℃输出0V150℃输出3.3V那么有效增益应该满足[ 增益\times(0.15775-0.1)3.3 ]解得增益大约需要57.2。如果把增益设为60输出范围会略超3.3V这时可以用电阻分压和软件标定解决。在LTspice里验证也不难先把R3/R5改为5kR4/R6改为300k增益就到60。0℃时VOUT约6V早已超过运放5V电源会饱和。所以必须在差分放大端加入偏置扣除电路。常见做法是给同相输入端叠加一个参考电压或者在反相输入端通过一个电阻注入参考电流。这里我不展开偏置电路细节只说一个思路用两只电阻把3.3V基准分压生成一个约1V的偏置接到差分放大器的反相输入端注入节点通过选择注入电阻可以实现输出平移。LTspice非常适合调整这些电阻值可以直接仿真出想要的03.3V输出曲线。5. 常见问题与实操避坑这部分内容不是仿真跑通就结束了。我把自己遇到的几个高频问题和解决办法整理出来希望能帮你少走弯路。5.1 LTspice仿真中最容易踩的3个设置坑第一个坑是电阻表达式不使用花括号。如果你在电阻属性里直接填100*(10.00385*T)LTspice大概率会报错。正确写法是{100*(10.00385*T)}。花括号就是告诉LTspice“这里是一段表达式请先算数值再作为元件参数。”第二个坑是忘了定义T。如果在表达式里用了T但原理图里没有.step param TLTspice不知道T是多少仿真会报“unknown parameter”之类的错误。实际上你可以在原理图加一行.param T 25先做单点验证再加上.step param T做扫描。这样调试起来更稳。第三个坑是波形横轴不对。有时候跑完.step波形窗口里看不到曲线或者横轴显示的是别的变量。这通常是没在Add Trace里指定要绘制的电压或者运行的不是带扫描的工作点分析。我的习惯是每次只选择V(VOUT)查看如果横轴不对就检查是否用了正确的.op配合.step而不是混入了瞬态分析.tran。5.2 运放饱和、自热和导线电阻带来的隐患运放输出饱和是仿真和实物中都很常见的问题。当增益调大后0℃时的1V偏置很容易被放大到接近电源轨。用正负5V供电输出大约只能在±4V左右摆动超过就削顶。解决方法是减小增益或者加入偏置调整。如果在LTspice里看到输出曲线顶部变平第一反应应该是运放饱和而不是传感器有问题。自热问题在仿真里很容易被忽略因为理想电流源不发热。实际硬件里电流持续流过Pt100会使其内部温度略高于被测介质。1mA电流下自热功率只有0.1mW影响不大但如果长期在线且介质导热差尽量用0.5mA或者使用脉冲激励。导线电阻的影响可以通过对比仿真验证把放大器输入端改接在A点和地之间也就是模拟二线制此时VOUT会把两个10Ω导线电阻也算进去。仿真结果会比四线制明显偏高。这能直观说明为什么远距离测温要用三线制或四线制。5.3 从仿真到PCB的几个建议仿真证明电路可行后真正做板子还要注意几个点。第一差分电阻匹配。R3/R4和R5/R6的比例如果不一致共模抑制能力会变差。建议用0.1%精度的薄膜电阻或者用集成仪表放大器芯片内部匹配会好很多。第二运放的失调电压。LT1001这类精密运放失调电压很小但市场上有些通用运放失调能达到几毫伏折算成温度就是好几摄氏度选择时要留意。第三滤波。测量回路容易拾取50Hz工频干扰建议在仪表放大器输出端加一个低通RC滤波器。截止频率不需要太高几十赫兹足够。LTspice里也可以加一个RC验证效果时间常数取10ms左右转折频率约16Hz。第四电源退耦。运放供电脚要加0.1μF到1μF的陶瓷电容靠近电源引脚放置。这一点仿真不会体现但对硬件稳定性影响很大。我个人做测温电路的习惯是先用LTspice把激励电流、增益、偏置和输出范围全部算清楚再动手画板。这样后面调试的时候基本只需要检查焊接和电阻精度不会因为电路设计问题返工。Pt100本身虽然简单但它旁边的信号调理电路才是决定整个系统精度的关键而LTspice就是验证这套思路性价比最高的工具之一。
返回列表