(1) 阅读 (1176)

阿尔法-贝塔滤波器 编辑

词条创建者 匿名用户

阿尔法-贝塔滤波器

编辑

阿尔法-贝塔滤波器(也称为阿尔法-贝塔滤波器、f-g滤波器或g-h滤波器)是一种用于估计、数据平滑和控制应用的简化形式的观测器。它与卡尔曼滤波器和控制理论中使用的线性状态观测器密切相关。它的主要优点是它不需要详细的系统模型。

滤波器方程

编辑

阿尔法-贝塔滤波器假定一个系统被一个具有两个内部状态的模型充分地接近,其中xxx个状态是通过对第二个状态的值随时间的推移进行积分而得到的。测量的系统输出值对应于对xxx个模型状态的观察,加上干扰。这种非常低阶的近似对许多简单的系统来说是足够的,例如,机械系统的位置是由速度的时间积分得到的。假设速度在两次测量之间的小时间间隔ΔT内保持近似恒定,位置状态被向前投射,以预测其在下一个采样时间的值,使用公式1。由于速度变量v被假定为常数,它在下一个采样时间的预测值等于当前值。{displaystyle{text{(2)}}quad{hat{textbf{v}}_{k}leftarrow{hat{textbf{v}}}_{k-1}}。如果知道关于驱动函数在每个时间间隔内如何改变v状态的额外信息,可以修改方程2以包括它。由于简化动态模型中没有包括的噪声和动态效应,预计输出测量结果会偏离预测值。根据统计学或卡尔曼滤波的解释,这个预测误差r也被称为残差或创新。{displaystyle{text{(3)}}quad{hat{textbf{r}}_{k}leftarrow{textbf{x}}_{k}-{hat{textbf{x}}_{k}}}。假设残差r是正数。这可能是因为之前的x估计值很低,之前的v很低,或者两者的某种组合。阿尔法-贝塔滤波器采用选定的阿尔法和贝塔常数(滤波器的名称由此而来),用阿尔法乘以偏差r来修正位置估计,用贝塔乘以偏差r来修正速度估计。

阿尔法-贝塔滤波器

一个额外的ΔT因子通常用于规范乘数的大小。这些修正可以被认为是沿着梯度方向的估计的小步骤。随着这些调整的积累,状态估计的误差会减少。为了收敛和稳定,α和β乘数的值应该是正的和小的。α和β的值通常通过实验来调整。一般来说,较大的α和β增益倾向于对跟踪瞬态变化产生更快的响应,而较小的α和β增益则会降低状态估计中的噪声水平。如果在精确跟踪和减少噪声之间找到了一个很好的平衡点,而且算法是有效的,那么过滤后的估计值就比直接测量的结果更精确。这就促使我们把α-β过程称为过滤器

算法摘要

编辑

初始化。使用先验信息或额外的测量值,设置状态估计值x和v的初始值;否则,将初始状态值设置为零。选择α和β校正增益的值。更新。对每个时间步骤ΔT重复。使用方程1和2推算状态估计值x和v获得输出值的当前测量值使用方程3计算残差r使用方程4和5修正状态估计值发送更新的x和可选的v作为滤波器输出示例程序AlphaBeta滤波器可以用C语言实现,如下。#include<stdio.h>#include<stdlib.h>intmain(){floatdt=0.5;floatxk_1=0,vk_1=0,a=0.85,b=0.005;floatxk,vk,rk;floatxm;while(1){xm=rand()%100;//输入信号xk=xk_1+(vk_1*dt);vk=vk_1;rk=xm-xk。


内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/168641/

发表评论

登录后才能评论

词条目录
  1. 阿尔法-贝塔滤波器
  2. 滤波器方程
  3. 算法摘要

轻触这里

关闭目录

目录