我们的一些仪表尺寸会出现大量的循环滑动。 有时可能会出现高达70-80%的无效测量。 我们将使用默认设置为80MHz 的2MHz 传感器。 滑倒低至1个波瓣(500ns)、最多可达12个波瓣(6us)! 我附加了22个测量信号的连续捕获、依次是 UPS 和 DNS 以及每个 UPS/DNS 信号捕获的320个点。 它们在155.5°F 时的流速约为0.8 gpm。我们在所有温度下都存在算法问题。 我们看到大多数循环滑动接近零流量、但在较大的米、1英寸- 2英寸、任何流量下。 我们已尝试将阈值从9%更改为25%。 随附的数据显示了正方向和负方向上最多4个凸角的滑动。 我们的代码设置可通过算法在环路中运行这22个捕捉、从而测试配置。 我们从水表模板代码开始。 除了独立通道增益和针对任何错误禁用 TI 的特意`while (1){}`代码外、我们对 USS 代码未做任何更改。
- 关于附加信号、您有哪些建议可以让 TI 算法正常工作? 信号看起来很好。
- 对于 AbsTOF 和 DeltaToF 的默认间隔设置为1和1、这是否意味着每次测量都使用采集算法? 或者是否也使用了跟踪算法?
- 内插查找表是否有帮助? 我已经尝试使用由 GUI 生成的1024 pt 表。 它没有产生任何明显的差异。
- USS_Acoustic 长度是否重要? 我们设置它、但我觉得它没有使用。 此外、它是如何工作的? 我们运行的温度范围很宽。
- 最大 ADC 峰值如何? 我们刚刚发现、常见问题解答文档显示我们应该保持在600以下。 我们认为我们应该在其他所有文档中保持900左右、但我们一直在运行750左右、因为 STD 远小于900。
- 产生信号的零时间应该是多少? 我们把它降到了大约2us、但我看到您建议在其他地方使用5us。 最初、我们将信号保持在 ADC 缓冲器的中间、但该算法实际上非常容易产生135 dtof _shift_range 误差、除非信号开始非常接近 ADC 缓冲器的开始位置。
- 为什么算法会在错误发生时中断而永远不会恢复? 一旦发生单个135错误、算法将永远返回该错误。 我们捕获它并重置电路板、然后该算法在新信号下工作正常、测试设置没有任何变化。
- USS_resetUSSModule()方法能否正常工作是否有技巧? 我们是在出错后调用它的、但如果我们调用它、算法将不再起作用。 因此、我们切换到重置板。
- [编译器问题]一半或我们的编译生成使 FRAM 为只读的代码。 我们不知道原因。 权变措施是在 main 移位开始附近插入或删除一个__no_operation()调用,之后每个调用加2个字节。 我们花了一段时间*意识到我们的所有 HSPLL 启动问题都是由于 USS 配置未设置(以及伪随机)、因为 FRAM 是只读的。
我还附上了最后两次测量的波形图(右侧的一幅是最近的波形图)。 请注意蓝色 UPS 信号的第一个凸角的振幅差异。 这种情况偶尔会发生、但看起来算法应该能够处理这种情况。
感谢你的帮助、
Harvey