我发表了一个基于自热达林顿晶体管对的热空速传感器的简单设计理念。参见图 1。
图 1采用自加热达林顿热气流传感器的旧设计理念。
电路中Q1起到自热传感器的作用。其 Vbe 温度系数将温度转换为电压,然后通过 A2 进行偏移并缩放至 5 V 跨度。同时,200 mV 参考电压 A1 将 Q1 的加热电流调节至0.2 V/R3 = 67 mA ,从而实现67 mA * 4.8 V = 320 mW的恒定功耗。由此产生的环境温度与结温的差异提供了空速读数,因为它从 0 fpm 时高于环境温度 64 o C 的 Delta T 冷却到 2000 fpm 时的 22 o C。
由此产生的传感器简单、灵敏且为固态,但会受到完全非线性的空速响应的影响,如图2所示。
图 2热传感器的 Vout 与空速响应是非常非线性的。
读者 Konstantin Kim 提出的精明且有用的建议产生了如图 3所示的反对数线性化 VFC 。
图 3反对数线性化 VFC。
图 3 对图 4的蓝色曲线所示的线性度进行了有益的改进,但其在中跨处约 12% 的 FS 误差显然仍远非完美。
图 4图 3 的反对数 VFC 的空速响应线性更好,但仍然不是很好。
资深 DI 撰稿人 Jordan Dimitrov 注意到了这一缺点,并提供了一个优雅的计算数值解决方案,几乎消除了问题并使网络响应几乎完全线性,在他的Proper 函数中以小于 0.2% 的误差设计理念线性化了热晶体管风速计 。
干得好,季米特洛夫先生!
然而,在模数转换之后在数字域中执行线性化而不是在转换之前在模拟域中执行线性化的结果是必要的 ADC 分辨率显着增加,即从 11 位增加到 15 位。
原因如下。
采集解析为 1 fpm 的线性 0 至 2000 fpm 空速信号需要 ADC 分辨率为1 in 2000 = 11 位。 但检查图 2 的曲线表明,虽然空速信号的满量程跨度为 5 V,但与 1999 fpm 到 2000 fpm 的空速增量相关的信号变化仅为 0.2 mV。因此,要在解决后者问题的同时保持前者的规模,需要1 in 5 / 0.0002 = 1 in 25,000 = 14.6 位的 ADC 分辨率。
15 位(和更高分辨率)ADC 既不罕见,也不是特别昂贵,但它们通常不是
微控制器内的集成外设,正如 Dimitrov 先生的文章中提到的那样。因此,提供分辨率足以满足其设计需求的 ADC 可能会产生巨大的成本,这似乎是合理的。
这促使我想知道性能更好的模拟线性化方案是否可行。如果是这样,并且实施起来不是太复杂或成本太高,它可以提供具有类似性能但不需要高分辨率 ADC 的数字解决方案的替代方案。事实证明,确实如此。图 5显示了具体操作方法。
图 5添加一个
电阻器 (R6) 并调整另一个电阻器 (R1) 消除了图 3 模拟线性化中的凸起。
线性度改善的关键是添加电阻器 R6。它的工作原理是通过使其提前触发与反对数 Q2 集电极电流成比例的量,从而降低 555 引脚 2 处的锯齿定时波形的幅度。这缩短了 VFC 周期,并通过非线性校正因子提高了 VFC 频率,结果如图 6所示。
所得空速函数与完美线性度的偏差仅 -0.4% 至 +0.2% = -8 至 +4 fpm,如图 6 和图 7(放大比例)所示。
图 6通过重叠的蓝色和黑色线显示 VFC 修改带来的模拟线性度的改善。
图 7图 6 所示的放大残余线性误差。
诚然,这当然不如 Dimitrov 先生令人印象深刻的转换后数值结果,但对于简单的模拟解决方案来说可能仍然可以接受。无论如何,作为一个实际问题,它比对传感器精度的任何合理预期都要好,这种差异似乎主要只是学术兴趣。