深度/压力传感器的速度

信息处理 离散信号 估计 传感器
2022-01-24 04:12:17

我有一个基于压力的深度传感器。供参考,MS5837-02BA。我能够读取的所有深度测量值都非常准确(±1cm)

我尝试通过微分测量的深度值来找出身体的速度。测量是在 40 毫秒的时间段内进行的。这是传感器每次测量所花费的时间。我用它作为测量速率并计算了速度,但我觉得这些值并不正确。

以下是测量变量和计算变量的图。 在此处输入图像描述

在此处输入图像描述

所有测量值均以米为单位。想听听我到底做错了什么,无论是测量速度还是其他什么。

编辑:精度 ±0.1cm 至 ±1cm。我使用卷尺验证了深度测量值,它精确到厘米。我无法在身体移动时进行测量,所以这可能是一个因素

编辑 2:对 Hilmar 评论的回应:我已经阅读了你所说的内容和我的原始深度数据。所以这次我只进行了原始深度测量,并放弃了我的微控制器所做的速度计算。我通过找到当前测量值和先前测量值之间的差异并将其除以采样周期来计算导数。(x[i]x[i1])/dt

这是再次绘制的图,但样本数已更改为时间 https://i.ibb.co/zP5YY1n/Figure-1.png https://i.ibb.co/WgWxxCC/Figure-2.png

如您所见,这些图与之前的相似。关于您对 t = 2000 时上升的评论,上升不是瞬时的,而是在 1.32s 期间实际上是渐进的。看看这张照片,注意有问题的周期在 t=2025 和 t=2058 之间,这意味着它的总周期为 33*0.04=1.32s 。

在此处输入图像描述

深度的变化很明显,但速度不是很高。请注意,测量值实际上是 0.1m 或 1 分米的量级。因此,身体在 1.32 秒内移动了 0.4719 米,这只是我的对象能够做到的 0.35 米/秒。除此之外,我不确定我到底在哪里犯了错误。其他人认为高频噪声可能是造成这种情况的原因,但简单的 LPF 能解决这个问题吗?

2个回答

我能够读取的所有深度测量值都非常准确(±0.1cm)

这是极不可能的。似乎有些东西正在以相当粗略的间隔量化您的数据:可能是 2 厘米左右加上一些额外的噪音。在 t = 2000 单位时也有一个尖峰?)在一个样本中深度从 0.1m 跳到大约 0.5m。您的采样间隔为 40 毫秒。40ms 中的 0.5m 对应于 12.5 m/s 的速度。你的物体真的能移动得那么快吗?

总体而言,您的数据看起来很糟糕(嘈杂、量化和尖峰),并且不像真实的物理对象倾向于表现。

通过对测量的深度值进行微分来找出身体的速度

第二条曲线看起来根本不是第一条曲线的导数。我预计在 t = 2000 时会出现 12.5 m/s 的巨大速度峰值,但您的速度曲线只是显示出一个小信号。另一个大峰值应该在 t=4000。我不知道你在那里做了什么,但它似乎不是差异化。


这是使用 Excel 从深度测量中简单计算的“速度”。这似乎比问题中的情节更合理。

请注意,使用的数据来自Web Page Digitizer,因此不会与原始数据完全相同。

使用 Excel 计算的速度


将来请用适当的单位标记图表的 X 和 Y 轴。我不知道你的速度单位应该是什么,但它不太可能以 m/s 为单位。

根据您的更新,在我看来,它确实像高频噪音。一个“简单的”低通滤波器将大大有助于清理它。确实,太多的噪音是一件坏事,你可能想尽你所能来清理它,但无论如何都可能会有噪音,所以无论如何都建议使用 LPF。

请注意,何时应用 LPF 并不重要。您可以在微分之前或之后将其应用于深度数据并获得相同的结果。如果是我,我会先对深度数据进行 LPF。

另请注意,LPF 会导致群延迟。如果您正在对数据进行后处理,而不是进行实时分析,则可以使用 Python 的 filtfilt() 之类的东西来获得零延迟。在实时,你受到因果关系的限制,所以总会有一些延迟。事实上,一阶微分器会引入一些额外的延迟,但它非常小。大多数情况下,请记住,应用 LPF 可能会导致您的速度数据滞后于深度数据,这是意料之中的,并且可能有一些解决方法,具体取决于您的应用程序。

最后,微分器是一种高通滤波器,因此这种速度计算会加重高频噪声。