目前,我使用0.1%电阻器通过分压器获得准确的电压测量值。但是,成本很高,因此我考虑使用0.5%或1%的电阻器,并在生产过程中通过使用精密电压基准来校准软件中的误差。有人成功做到了吗?我可能会遇到什么陷阱?
目前,我使用0.1%电阻器通过分压器获得准确的电压测量值。但是,成本很高,因此我考虑使用0.5%或1%的电阻器,并在生产过程中通过使用精密电压基准来校准软件中的误差。有人成功做到了吗?我可能会遇到什么陷阱?
Answers:
所以你有:
R_x R_fixed
Vcc -----^v^v^----+----^v^v^------- Gnd
|
|
+--- V_sensed --- ADC input
Rx是一些未知的电阻(可能是某种传感器)。为了有效地计算R_x,您现在使用的是固定为0.1%的R_fix,但是您想使用更便宜的固定电阻,其容差可能仅为1%。这样做时,您想在生产过程中执行某种校准以纠正增加的误差,对吗?
最终执行此操作的方式是在EEPROM(或其他非易失性存储器)中放入一个字节,该字节在计算中充当“偏移”,这是一件完全可行的事情。问题是在生产过程中您将花费一些时间来进行校准活动。为了进行校准,您需要一个标称值与1%电阻可比的0.1%电阻(称为R_cal)之一,以替代电路中的R_x。通过测量V_sensed,可以更精确地推断R_fixed的值(即0.2%左右)。
如果R_cal和R_fixed名义上是相同的值,则可以预期V_sensed等于Vcc / 2。您可以将与Vcc / 2的测量偏差存储为校准偏移字节,并始终将其与ADC感知的V_sensed相加。
如我所见,陷阱在于进行测量并随后存储值需要大量工作。另一个要考虑的陷阱是,温度可能会导致电阻偏离其标称值,因此您需要一个温度控制良好的校准环境。最后,不要忘了使用校准的测量设备,因为这是附加误差的另一个潜在来源。我能想到的最后一个陷阱是校准字节应以ADC的lsb单位存储(因此,如果您有12位ADC,则校准偏移字节的单位应为“ Vcc / 2 ^ 12 Volts”) 。
编辑
如果使用两个固定电阻器按如下所示将大电压分压至较低的比例,则:
R1_fixed R2_fixed
V_in -----^v^v^----+----^v^v^------- Gnd
|
|
+--- V_sensed --- ADC input
重新编辑的部分
因此,现在您想在生产的校准步骤中使用精密基准电压(称为V_cal)来激励V_in。理论上,您所拥有的是:
V_sensed = V_predicted = V_cal * R2_fixed / (R1_fixed + R2_fixed) = V_cal * slope_fixed
但是您实际上是:
V_sensed = V_measured = V_cal * R2_actual / (R1_actual + R2_actual) = V_cal * slope_actual
实际上,您实际具有的传递函数斜率与根据电阻值预测的传递函数斜率不同。与预测的分压器传递函数的偏差相对于输入电压将是线性的,并且您可以放心地假设0V in将为您提供0V out,因此进行一次精密电压基准测量应为您提供足够的信息,以表征此线性比例因子。即:
V_measured / V_predicted = slope_fixed / slope_actual
slope_actual = slope_fixed * V_measured / V_predicted
然后,您将使用lope_actual作为您的校准值来确定电压,该电压是所测电压的函数。
由@markrages提供
为了获得对电阻值的实际斜率灵敏度,需要进行部分微分:
对我来说,这将是困难的,但是并非没有可能。
这种方法在5%到1%的范围内效果很好。从1%到0.1%,我怀疑您会因为温度波动改变电阻和电压而开始失去准确性。
如果由于某种未知原因,您在等温环境中工作并且您的电阻器都是恒定电流,那么自发热是可以预见的,那么它仍然可行。
您可以校准:
但不要忘记所有其他公差:
*请注意,电阻器品牌和产品之间的所有值可能会有所不同。
[1] https://www.vishay.com/docs/28809/driftcalculation.pdf
[3] https://industrial.panasonic.com/cdbs/www-data/pdf/RDA0000/AOA0000C304.pdf
[4] MIL-STD R-10509