Algorithm 过滤旋转加速度(是否适用于卡尔曼滤波器?)

Algorithm 过滤旋转加速度(是否适用于卡尔曼滤波器?),algorithm,matlab,filtering,accelerometer,kalman-filter,Algorithm,Matlab,Filtering,Accelerometer,Kalman Filter,我在做一个项目,在这个项目中,一根杆的一端连接到一个旋转轴上。因此,当轴从0到~100度来回旋转(在xy平面中)时,杆也会如此。我在移动杆的末端安装了一个三轴加速计,并测量了加速计与旋转中心的距离(即杆的长度)约为38 cm。我收集了很多数据,但我需要帮助找到最好的过滤方法。首先,这里是原始数据的曲线图: 我认为这些数据是有意义的:如果它在上升,那么我认为在这一点上加速度应该线性增加,然后当它在下降时,它应该线性减少。如果它不断移动,加速度将为零。但请记住,有时从一个“试验”到另一个“试验”的

我在做一个项目,在这个项目中,一根杆的一端连接到一个旋转轴上。因此,当轴从0到~100度来回旋转(在xy平面中)时,杆也会如此。我在移动杆的末端安装了一个三轴加速计,并测量了加速计与旋转中心的距离(即杆的长度)约为38 cm。我收集了很多数据,但我需要帮助找到最好的过滤方法。首先,这里是原始数据的曲线图:

我认为这些数据是有意义的:如果它在上升,那么我认为在这一点上加速度应该线性增加,然后当它在下降时,它应该线性减少。如果它不断移动,加速度将为零。但请记住,有时从一个“试验”到另一个“试验”的速度变化(更高)。在这种情况下,有约120次“试验”或移动/扫描,数据采样频率为148 Hz

对于过滤,我尝试了一个低通滤波器,然后是指数递减的移动平均值,两个图都不太热。虽然我不擅长解释这些:以下是我在编写电源频率图时得到的结果:

我希望在这里得到帮助的是,获得一个非常好的方法,通过它我可以过滤这些数据。一件事,不断出现一次又一次(特别是在这个网站上)是卡尔曼滤波器。虽然有很多在线代码可以帮助在MATLAB中实现这些功能,但我还不能真正理解它,因此忽略了在这里介绍我的工作。那么,对于旋转加速度,卡尔曼滤波器在这里合适吗?如果是这样,有人能帮我在matlab中实现一个并解释它吗?是否有一些我看不到的,可能同样好/更好的,相对简单的东西

这是我要说的数据。更仔细地观察/放大可以更好地了解运动中发生的事情,我认为:

编辑:好的,这是从加速计收集的两个相关尺寸的曲线图。我忽略了向上和向下的尺寸,因为加速度计显示了一个接近常数~1g,所以我认为可以肯定地说它没有捕捉到太多的旋转运动。我认为红色是向心分量,蓝色是切向分量。我不知道如何将它们结合起来,这就是为什么我(可能是错误的?)在我的帖子中忽略了它

以下是其他维度的数据:


我将为您推荐低通滤波器,但使用普通的一阶惯性模型代替卡尔曼滤波器。我设计的滤波器的通带达到10赫兹(~0,1的采样频率)。离散模型具有以下等式:

y[k] = 0.9418*y[k-1] + 0.05824*u[k-1]

其中u是测量向量,y是滤波后的向量。此方程式从样本编号1开始,因此您可以将0分配给样本编号0。

忘记卡尔曼滤波器,请参阅答案末尾的注释以了解原因

使用一个简单的移动平均滤波器(如我在前面的回复中所示,如果我记得的话),它本质上是一个低通滤波器:

n = 30 ; %// length of the filter
kernel = ones(1,n)./n ;
ysm = filter( kernel , 1 , flipud(filter( kernel , 1 , flipud(y) )) ) ; 
%// assuming your data "y" are in COLUMN (otherwise change 'flipud' to 'fliplr')
注意:如果您有权访问
curvefit
工具箱,只需使用:
ys=smooth(y,30)
以获得几乎相同的结果

我得到: 放大后的图像如下所示:

您可以使用参数
n
增加或减少平滑度

灰色信号是您的原始信号。我强烈怀疑,你得到的噪音峰值仅仅是由于你的杆的振动。(根据杆的长度/横截面比,38厘米杆的末端可能会出现明显的振动。这些振动将以主载波信号周围的振动形式出现,这与我在你的信号中看到的完全相同)


注: Kalman滤波器对噪声数据进行简单的滤波是一种过分的方法。当您希望根据一些噪声测量值计算值(如果我遵循您的示例,则为位置)时,将使用卡尔曼滤波器,但为了优化计算,卡尔曼滤波器还将使用基于先前状态(位置)和惯性数据(例如,旋转速度)的位置预测。对于该预测,您需要一个系统行为的“模型”,而您似乎没有

在您的情况下,您需要根据轴在任何时间点的(已知或理论)转速、加速度到旋转中心的距离来计算加速计看到的加速度,并且可能为了使其更精确,需要建立杆的主要振动模式的动态模型。然后,将每个步骤与实际测量值进行比较。。。对你的案子来说似乎有点重


查看维基百科条目中解释卡尔曼滤波过程的快速图:,如果您想进一步了解,请继续阅读。

提供的数据提到了三轴加速度计的
y
轴。这个轴与旋转轴相比如何。
y
是显示向心加速度(径向方向)还是切向加速度(切向方向)?谢谢你的提问。这是我挣扎了一段时间的事情。我认为它显示的是切向加速度,然而,应该给出向心加速度的维度很奇怪。加速计安装良好,但并不完美。所以我想我正在丢失一些信息,从“y”维到“z”维,我认为是向心的。另外,另一个维通常持续读取~1g(9.8m/sec^2),所以我选择忽略它。由于加速度计随杆旋转,不会上下移动,我想我可以安全地忽略这一点。在线阅读,我应该做一些向量变换或使用旋转矩阵,但我不知道