摘要: 本文档描述了使用MAX1463低功耗双通道传感器信号处理器补偿和校准传感器的过程。
介绍了使用MAX1463低功耗双通道传感器信号处理器补偿压力传感器的描述性教程。并以实际数据补偿压力传感器为例,给出了该算法的数学描述。低电平传感器信号经过放大和温度补偿,形成一个完整的高信号电平传感器。
MAX1463是一款全数字高性能信号调节器,具有多通道输入。它有两个数字输出,支持4-20mA输出应用。它可以通过编程来纠正传感器的非线性和温度依赖特性。
本文档描述了补偿和校准应用于MAX1463 ADC通道之一的传感器信号的程序,在指定的温度范围内提供偏移和跨度校正。假设在器件的补偿过程和运行过程中,MAX1463 VDD电源电压不变。
本文给出的数据是真实数据,采集自压阻式压力传感器,并以压阻式压力传感器为例给出了补偿算法。
用户必须为应用程序定义一些输入参数。他们:
Tmin =最低温度,单位为摄氏度
中等温度,以摄氏度为单位
Tmax =最高温度,单位为摄氏度
Pmin =最小压力
Pmax =最大压力
Vmin =所需MAX1463输出,在最小压力下,以伏特为单位
Vmax =期望MAX1463输出,在最大压力下,以伏特为单位
下一个限制取决于应用程序,并且可能与其他应用程序不同:
对于压力非线性校正,我们定义Pmed为传感器激励中点,为:
为了提高MAX1463 ADC转换器的性能和范围,有必要通过调整适当的粗偏移和PGA设置来最大化其有用范围。用户必须选择传感器灵敏度最高的温度,并应用最小和最大传感器激励。然后,用户应该选择在这些条件下最大限度地提高ADC输出的PGA增益和粗偏移设置。
ADC获取的数据必须输入到下面的矩阵中。每一行数据都有在指定温度下最小、中、最大传感器激励的归一化ADC值。它还具有用于内部MAX1463温度传感器的ADC电路,以及用于-0.5 (DACinM)和+0.5 (DACinP)固定归一化数字输入的DAC输出电压(通过小型或大型运放)。
采集的数据(ad)矩阵如下所示,ADC结果以十六进制形式输入,DAC输出电压以十进制形式输入。由于软件的限制,在输入十六进制值时,必须带一个小写的零(0)。
要将2的十六进制补数转换为十进制值(-1和+1之间),定义以下函数:
然后将获取的数据矩阵的十进制表示定义为:
在定义了用户值后,上式矩阵为:
让我们定义将在整个文档中使用的其他参数:
本节展示传感器数据、温度数据和DAC数据的数学数据建模。然后将传感器、温度和DAC的派生函数用作它们的模型。
对于传感器数据建模,我们将首先对每个单独温度下的传感器数据进行建模。然后我们将建立系数随温度变化的模型。
系数是通过求解一个线性方程组得到的,描述为:
Ax = b
x = A(-1)b
其中A为方阵,x和b为列向量。在这种情况下,逆矩阵定义为:
对于最低温度,模拟ADC数据随压力变化的二阶系数为:
在此温度下模拟ADC输出过压的方程为:
对于中间温度,模拟ADC数据随压力变化的二阶系数由下式给出:
在此温度下模拟ADC输出过压的方程为:
对于最高温度,模拟ADC数据随压力变化的二阶系数由下式给出:
在此温度下模拟ADC输出过压的方程为:
图1所示。ADC输出x传感器激励(psi)。
现在,我们把这些方程结合起来,包括温度的依赖关系。基本上,我们将找到二阶方程来模拟系数随温度的变化。P0(T)、P1(T)和P2(T)的零、一、二阶系数由下式给出:
对于系数的温度建模,我们现在需要定义以下矩阵:
零阶系数随温度的变化关系如下:
零阶系数函数为:
一阶系数随温度的关系如下:
一阶系数函数为:
二阶系数随温度的关系如下:
二阶系数函数为:
ADC输出作为温度和压力的函数,由下式给出:
为了验证上述方程的有效性,让我们将数据矩阵与Pdata函数的值进行比较。
内部MAX1463温度传感器也必须建模。ADCtemperature数据之前已定义,如下所示:
二阶温度系数由下式给出:
温度ADC输出作为温度的函数由下式给出:
图2。温度ADC输出x温度(°C)。
为了验证,下面的值显示了输入的温度数据,以及从Tdata函数获得的值。
还必须对MAX1463 DAC进行建模,以便根据温度和过程(增益,偏移)的变化适当调整其输入值。DAC数据已经定义,下面给出了负输入(-0.5)和正输入(+0.5)的数据:
输入测量值的DAC增益定义为:
输入测量值的DAC偏置定义为:
表示DAC增益随温度变化的二阶函数系数为:
则DAC增益函数为:
表示DAC随温度偏移量的二阶函数系数为:
则DAC的偏移量函数为:
最终的DAC特性可以表示为:
图3。
为了验证,下面的值显示了输入的DAC数据,以及从Vdac函数获得的值。
为了使温度相关系数最小化,我们将温度特性进行排列,使其以零为中心,然后将其放大。
为了使数据点居中,温度数据偏移量定义为:
然后给出偏移量校正后的Tdata:
图4。偏移校正温度数据x温度(°C)。
下一步是扩展这个函数,使其最小值和最大值分别为-0.9和+0.9(有用范围的90%)。这样做是为了减少将在该算法中计算的温度相关系数的值。温度增益由式给出:
因为它又在-1到+1的范围之外,所以它需要按比例缩小2倍。
最后一次是:
在再次乘以OCTdata之后,需要将结果向上缩放,将结果向左移动(乘以2的幂),乘以在缩小过程中使用的相同因子(ntgainshfts)。最终的放大偏置校正温度数据如下:
图5。放大偏移校正温度数据x温度(°C)。
在哪里
下一步是温度非线性校正。AOCTdata的线性系数,利用其端点计算为:
非线性函数可表示为:
图6。温度数据的非线性x温度(°C)。
我们需要实现一个与非线性函数相反的函数,使用AOCTdata(T)作为自变量。由于AOCTdata(T)不是线性的,最好的方法是使用一个高阶多项式函数的拟合函数。在这种情况下,选择一个四阶多项式函数来最小化非线性误差。
四阶多项式函数的系数为:
温度非线性修正函数为:
经偏移量校正和非线性校正的温度数据现由下表给出:
从现在开始,所有与温度相关的系数将使用Tempdata作为自变量来计算,因为它是归一化和线性的。
图7。线性温度数据x温度。
理想温度数据由下式给出:
图8。温度数据(T) x温度(℃)的线性误差。
传感器信号特性还取决于温度和激励源(压力)。这里的目标是消除温度依赖性和线性化压力响应特性。
正如温度信号的情况一样,我们将使响应最大化到总有用范围的90%,最小压力为-0.9,最大压力为+0.9。
以下是四种不同温度下的原始传感器数据
图9。原始传感器数据x压力(psi)。
利用端点值,这些曲线的线性系数可由下式给出:
图10。传感器灵敏度x温度(°C)。
压力非线性和偏置校正函数可表示为:
图11。传感器偏移和非线性x压力(psi)
现在的目标是模拟四种不同温度下pnl(T, P)函数的倒数,然后模拟系数随温度的变化。
对于最低温度,近似于-pnl(Tmin, P)除以Pdata(Tmin,P)的三阶函数的系数可由下式求得:
对于第一个中间温度,近似-pnl(Tint1, P)除以Pdata(Tint1,P)的三阶函数的系数可由下式求得:
对于第二个中间温度,近似于-pnl(Tint2, P)除以Pdata(Tint2,P)的三阶函数的系数可以通过:
对于最高温度,近似于-pnl(Tmax, P)除以Pdata(Tmax, P)的三阶函数的系数可由下式求得:
计算温度的修正系数矩阵如下:
这些系数随温度数据的变化可以用三阶方程来建模,求解线性系统:
修正系数为:
零、一、二、三阶系数函数为:
offset和非线性校正函数由下式给出:
最后的偏移量和非线性校正后的传感器数据由下式给出:
图12。偏移和非线性校正传感器数据x压力(psi)。
下一步是去除传感器灵敏度对温度的依赖性。
温度上的跨度函数为:
temtemdata (T)的四阶函数近似于1/span(T)的灵敏度修正系数可以通过:
则灵敏度修正函数可表示为:
图13。灵敏度校正函数x温度(°C)。
校正后的传感器数据如下:
最终数据将归一化为最小压力为-0.9,最大压力为+0.9。归一化因子由式给出:
则灵敏度修正函数的最终系数为:
其中,归一化灵敏度校正函数为:
在整个温度范围内,nSensC(T)的值必须在-1和+1之间。为了确保这是正确的,我们必须找到两个因子的幂来缩小nSensC(T)。
灵敏度校正系数的最终集合为:
则最终的灵敏度修正函数为:
最终归一化校正后的传感器数据为:
图14。归一化校正传感器数据x压力(psi)。
此时,对于最小和最大传感器激励,传感器数据归一化为-0.9到+0.9。所有的非线性都被纠正了,温度依赖性被消除了。它是一个关于激励(压力)的非常线性的信号。
当需要输出时,需要此步骤来纠正与MAX1463 dac相关的非线性和温度依赖关系。与最小和最大传感器激励相关的最小和最大输出电压已经定义,并由下式给出:
然后可以将偏移量定义为:
但是目标偏置值必须补偿DAC偏置随温度的变化,该变化由下式给出:
通过Tempdata(T)的二阶函数,可以找到近似targetOffset(T)的dac偏移校正系数:
图15。目标DAC输入值×温度(℃)。
则DAC偏置校正功能可表示为:
DAC增益也必须根据温度变化进行校正。校正DAC增益随温度变化的功能,并调整输出范围的信号,如下所示:
图16。DAC增益校正x温度(°C)。
近似targetGain(T)对Tempdata(T)的二阶函数的dac增益校正系数可以通过以下方法找到:
则DAC增益校正函数可表示为:
DAC的最终输入作为温度和压力的函数,由下式给出:
在不同温度下,通过传感器激励(压力)的最终DAC输出如下所示。
图17。DAC输出(V) x压力(psi)。
本节总结了需要在MAX1463中实现的补偿系数和方程。注意,MAX1463不计算系数,因为这些需要使用本文档中描述的算法计算。
温度传感器数据显示为Tdata(T),是内部MAX1463温度传感器的ADC转换结果。传感器数据显示为Pdata(T),是传感器信号进行ADC转换的结果。
该程序既需要温度传感器数据,也需要传感器信号数据。由于温度变化率比传感器信号数据慢得多,用户可以决定以比传感器信号慢得多的速率进行温度ADC转换,通常每几百次传感器信号转换一次。
定义以下函数将计算出的系数转换为二进制补码的十六进制表示。请注意,由于在16位级别上进行量化,数字化系数可能与计算系数不同。
下面的一组方程提供了对MAX1463温度传感器数据的校正。
下一组方程提供了对传感器信号数据的校正。
下一组系数和方程提供了对MAX1463 DAC数据的校正。
下面的一组方程提供了对MAX1463压力传感器数据的校正。
此时,只需将最终结果dacin(T,P)写入DAC输入,即可获得补偿后的输出,并返回传感器信号回路的起点。用户可以实现一个计数器来跟踪传感器信号转换的数量,并每隔一段时间做一个温度循环。
MAX1463数据表
应用说明:“理解MAX1463中的温度传感器”
应用说明:“MAX1463高性能信号调节器的嵌入式补偿程序”
社群二维码
关注“华强商城“微信公众号
Copyright 2010-2023 hqbuy.com,Inc.All right reserved. 服务热线:400-830-6691 粤ICP备05106676号 经营许可证:粤B2-20210308