卡尔曼滤波算法总结

合集下载

卡尔曼滤波_卡尔曼算法

卡尔曼滤波_卡尔曼算法

卡尔曼滤波_卡尔曼算法1.引言1.1 概述卡尔曼滤波是一种用于估计系统状态的技术,通过融合传感器测量值和系统模型的预测值,提供对系统状态的最优估计。

它的应用十分广泛,特别在导航、图像处理、机器人技术等领域中发挥着重要作用。

在现实世界中,我们往往面临着各种噪声和不确定性,这些因素会影响我们对系统状态的准确估计。

卡尔曼滤波通过动态调整系统状态的估计值,可以有效地抑制这些干扰,提供更加精确的系统状态估计。

卡尔曼滤波的核心思想是利用系统模型的预测和传感器测量值之间的线性组合,来计算系统状态的最优估计。

通过动态地更新状态估计值,卡尔曼滤波可以在对系统状态的准确估计和对传感器测量值的实时响应之间进行平衡。

卡尔曼滤波算法包括两个主要步骤:预测和更新。

在预测步骤中,通过系统模型和上一时刻的状态估计值,预测当前时刻的系统状态。

在更新步骤中,将传感器测量值与预测值进行比较,然后根据测量误差和系统不确定性的权重,计算系统状态的最优估计。

卡尔曼滤波具有很多优点,例如它对传感器噪声和系统模型误差具有鲁棒性,可以提供较为稳定的估计结果。

此外,卡尔曼滤波还可以有效地处理缺失数据和不完全的测量信息,具有较高的自适应性和实时性。

尽管卡尔曼滤波在理论上具有较好的性能,但实际应用中还需考虑诸如系统模型的准确性、测量噪声的特性等因素。

因此,在具体应用中需要根据实际情况进行算法参数的调整和优化,以提高估计的准确性和可靠性。

通过深入理解卡尔曼滤波的原理和应用,我们可以更好地应对复杂环境下的估计问题,从而在实际工程中取得更好的效果。

本文将介绍卡尔曼滤波的基本原理和算法步骤,以及其在不同领域的应用案例。

希望通过本文的阅读,读者们可以对卡尔曼滤波有一个全面的了解,并能够在实际工程中灵活运用。

1.2文章结构文章结构部分的内容可以按照以下方式编写:1.2 文章结构本文将围绕卡尔曼滤波和卡尔曼算法展开论述。

首先,我们会在引言部分对卡尔曼滤波和卡尔曼算法进行简要概述,介绍其基本原理和应用领域。

陀螺仪卡尔曼滤波算法

陀螺仪卡尔曼滤波算法

陀螺仪卡尔曼滤波算法1. 引言陀螺仪是一种用于测量角速度的传感器,广泛应用于惯性导航、无人机控制、姿态估计等领域。

然而,由于传感器噪声和误差的存在,陀螺仪输出的数据往往不够稳定和准确。

为了解决这个问题,人们提出了许多滤波算法,其中最常用且效果良好的就是卡尔曼滤波算法。

本文将介绍陀螺仪卡尔曼滤波算法的原理、实现过程以及应用场景,并对其优缺点进行讨论。

2. 陀螺仪陀螺仪是一种基于角动量守恒原理工作的传感器。

它通常由一个旋转部件和一个测量部件组成。

旋转部件可以是一个旋转的轴或者一个旋转的盘片,当外界施加力矩时,旋转部件会发生相应的转动。

测量部件通过测量旋转部件的角速度来获取外界施加力矩的信息。

陀螺仪输出的数据通常是角速度,单位为弧度/秒。

然而,由于制造工艺和环境因素的限制,陀螺仪的输出往往存在噪声和误差。

这些噪声和误差会对应用场景中的姿态估计、运动控制等任务产生不利影响。

3. 卡尔曼滤波算法卡尔曼滤波算法是一种递归滤波算法,通过利用系统模型和观测数据,对状态进行估计和预测。

它在估计过程中综合考虑了系统模型的预测值和观测数据的测量值,并通过最小均方误差准则来优化估计结果。

陀螺仪卡尔曼滤波算法主要包括以下几个步骤:3.1 状态空间模型首先,需要建立一个状态空间模型来描述陀螺仪系统。

状态空间模型通常由状态方程和观测方程组成。

状态方程描述了系统的演化规律,可以表示为:x(k) = F * x(k-1) + B * u(k-1) + w(k-1)其中,x(k)表示时刻k的系统状态,F是状态转移矩阵,B是控制输入矩阵,u(k)是控制输入,w(k)是过程噪声。

观测方程描述了系统的输出与状态之间的关系,可以表示为:z(k) = H * x(k) + v(k)其中,z(k)表示时刻k的观测值,H是观测矩阵,v(k)是观测噪声。

3.2 初始化在开始滤波之前,需要对滤波器进行初始化。

通常情况下,可以将初始状态和协方差矩阵设置为零向量和单位矩阵。

联邦卡尔曼滤波原理

联邦卡尔曼滤波原理

联邦卡尔曼滤波原理引言:联邦卡尔曼滤波(Federated Kalman Filtering)是一种用于多个分布式传感器数据融合的滤波算法。

与传统的中央集权式滤波算法不同,联邦卡尔曼滤波将传感器数据分布式处理,通过信息交换和融合,实现更准确的状态估计。

本文将介绍联邦卡尔曼滤波的基本原理和应用。

一、卡尔曼滤波简介卡尔曼滤波是一种递归滤波算法,通过使用系统的动力学模型和观测模型,根据先验信息和测量结果,对系统状态进行估计和预测。

卡尔曼滤波在估计问题中广泛应用,特别是在控制和导航领域。

二、联邦卡尔曼滤波原理联邦卡尔曼滤波是将卡尔曼滤波算法应用于分布式传感器网络中的一种技术。

在传统的中央集权式滤波算法中,所有传感器的数据都通过中心节点进行融合处理,然后得到最终的估计结果。

而联邦卡尔曼滤波则将数据处理过程分布到各个传感器节点中,通过交换信息和融合结果,实现联合估计。

具体实现中,每个传感器节点都有自己的卡尔曼滤波器,负责对本地观测数据进行处理和状态估计。

节点之间通过通信网络交换自身的状态估计和协方差矩阵等信息,从而实现联合估计。

每个节点根据接收到的其他节点的信息,更新自身的状态估计和协方差矩阵,进一步提高估计的准确性。

三、联邦卡尔曼滤波的优势联邦卡尔曼滤波相比于传统的中央集权式滤波算法具有以下优势:1. 高效性:联邦卡尔曼滤波将数据处理过程分布到多个传感器节点中,可以并行处理,提高了滤波算法的计算效率。

2. 鲁棒性:联邦卡尔曼滤波中的每个节点都只处理自身的观测数据,对于某个节点的故障或数据异常不会影响其他节点的估计结果,提高了整个系统的鲁棒性。

3. 隐私保护:联邦卡尔曼滤波中的数据处理过程分布在各个节点中,不需要将原始数据传输到中心节点,从而保护了数据的隐私性。

4. 扩展性:联邦卡尔曼滤波可以方便地扩展到大规模的传感器网络中,只需要增加或减少节点即可,而无需改变整体系统的架构。

四、联邦卡尔曼滤波的应用联邦卡尔曼滤波在许多领域都有广泛的应用,例如:1. 环境监测:联邦卡尔曼滤波可以将多个传感器节点的气象数据进行融合,提高对环境变化的估计精度。

卡尔曼滤波 协方差矩阵计算方式

卡尔曼滤波 协方差矩阵计算方式

一、概述卡尔曼滤波是一种用于估计系统状态的递归滤波算法,由哈罗德·卡尔曼在1960年提出。

卡尔曼滤波广泛应用于控制系统、导航系统、信号处理等领域。

协方差矩阵是卡尔曼滤波中的关键概念,它用于描述系统状态变量之间的相关程度。

本文将主要讨论卡尔曼滤波中的协方差矩阵的计算方式。

二、卡尔曼滤波概述卡尔曼滤波是一种通过融合系统动态模型和实际测量值来估计系统状态的算法。

它通过不断地更新状态的估计值,并且考虑测量噪声,能够有效地提高状态估计的准确性。

卡尔曼滤波基本思想可以用以下步骤来概括:1. 预测:根据系统的动态模型,预测下一个时刻的状态值和协方差矩阵。

2. 更新:根据实际的测量值,使用贝叶斯定理,将预测值和测量值进行融合,得到最优的状态估计值和协方差矩阵。

三、协方差矩阵协方差矩阵是描述多维随机变量之间相关关系的矩阵。

在卡尔曼滤波中,协方差矩阵描述了系统状态变量之间的相关程度,它是卡尔曼滤波的核心概念之一。

协方差矩阵的计算方式主要包括以下几种:1. 离散时间卡尔曼滤波中的协方差矩阵计算方式2. 连续时间卡尔曼滤波中的协方差矩阵计算方式3. 非线性卡尔曼滤波中的协方差矩阵计算方式下面将对以上几种计算方式进行详细介绍。

四、离散时间卡尔曼滤波中的协方差矩阵计算方式离散时间卡尔曼滤波是一种适用于离散时间系统的卡尔曼滤波算法,在实际应用中常常用于传感器数据处理、控制系统等。

在离散时间卡尔曼滤波中,协方差矩阵的计算方式可以通过以下步骤来实现:1. 预测协方差矩阵:根据系统的动态模型和上一时刻的协方差矩阵,通过卡尔曼滤波的预测步骤可以得到下一个时刻的预测协方差矩阵。

2. 更新协方差矩阵:根据实际的测量值和预测的状态估计值,利用卡尔曼滤波的更新步骤,可以得到更新后的协方差矩阵。

离散时间卡尔曼滤波中的协方差矩阵计算方式主要依赖于系统的状态转移矩阵和测量矩阵,通过不断的状态预测和状态更新,可以逐步更新协方差矩阵,从而得到最优的状态估计结果。

卡尔曼(kalman)滤波算法特点及其应用

卡尔曼(kalman)滤波算法特点及其应用

Kalman滤波算法的特点:(1)由于Kalman滤波算法将被估计的信号看作在白噪声作用下一个随机线性系统的输出,并且其输入/输出关系是由状态方程和输出方程在时间域内给出的,因此这种滤波方法不仅适用于平稳随机过程的滤波,而且特别适用于非平稳或平稳马尔可夫序列或高斯-马尔可夫序列的滤波,所以其应用范围是十分广泛的。

(2)Kalman滤波算法是一种时间域滤波方法,采用状态空间描述系统。

系统的过程噪声和量测噪声并不是需要滤除的对象,它们的统计特征正是估计过程中需要利用的信息,而被估计量和观测量在不同时刻的一、二阶矩却是不必要知道的。

(3)由于Kalman滤波的基本方程是时间域内的递推形式,其计算过程是一个不断地“预测-修正”的过程,在求解时不要求存储大量数据,并且一旦观测到了新的数据,随即可以算的新的滤波值,因此这种滤波方法非常适合于实时处理、计算机实现。

(4)由于滤波器的增益矩阵与观测无关,因此它可预先离线算出,从而可以减少实时在线计算量。

在求滤波器增益矩阵时,要求一个矩阵的逆,它的阶数只取决于观测方程的维数,而该维数通常很小,这样,求逆运算是比较方便的。

另外,在求解滤波器增益的过程中,随时可以算出滤波器的精度指标P,其对角线上的元素就是滤波误差向量各分量的方差。

Kalman滤波的应用领域一般地,只要跟时间序列和高斯白噪声有关或者能建立类似的模型的系统,都可以利用Kalman滤波来处理噪声问题,都可以用其来预测、滤波。

Kalman滤波主要应用领域有以下几个方面。

(1)导航制导、目标定位和跟踪领域。

(2)通信与信号处理、数字图像处理、语音信号处理。

(3)天气预报、地震预报。

(4)地质勘探、矿物开采。

(5)故障诊断、检测。

(6)证券股票市场预测。

具体事例:(1)Kalman滤波在温度测量中的应用;(2)Kalman滤波在自由落体运动目标跟踪中的应用;(3)Kalman滤波在船舶GPS导航定位系统中的应用;(4)Kalman滤波在石油地震勘探中的应用;(5)Kalman滤波在视频图像目标跟踪中的应用;。

卡尔曼滤波原理

卡尔曼滤波原理

卡尔曼滤波原理卡尔曼滤波(Kalman Filtering)是一种用于估计、预测和控制的最优滤波方法,由美国籍匈牙利裔数学家卡尔曼(Rudolf E. Kalman)在1960年提出。

卡尔曼滤波是一种递归滤波算法,通过对测量数据和系统模型的融合,可以得到更准确、更可靠的估计结果。

在各种应用领域,如导航、机器人、航空航天、金融等,卡尔曼滤波都被广泛应用。

1. 卡尔曼滤波的基本原理卡尔曼滤波的基本原理是基于状态空间模型,将系统的状态用随机变量来表示。

它假设系统的状态满足线性高斯模型,并通过线性动态方程和线性测量方程描述系统的演化过程和测量过程。

具体而言,卡尔曼滤波算法基于以下两个基本步骤进行:1.1 预测步骤:通过系统的动态方程预测当前时刻的状态,并计算预测的状态协方差矩阵。

预测步骤主要是利用前一时刻的状态和控制输入来预测当前时刻的状态。

1.2 更新步骤:通过系统的测量方程,将预测的状态与实际测量值进行融合,得到最优估计的状态和状态协方差矩阵。

更新步骤主要是利用当前时刻的测量值来修正预测的状态。

通过不断迭代进行预测和更新,可以得到连续时间上的状态估计值,并获得最优的估计结果。

2. 卡尔曼滤波的优势卡尔曼滤波具有以下几个优势:2.1 适用于线性系统与高斯噪声:卡尔曼滤波是一种基于线性高斯模型的滤波方法,对于满足这些条件的系统,卡尔曼滤波能够给出最优的估计结果。

2.2 递归计算:卡尔曼滤波是一种递归滤波算法,可以在每个时刻根据当前的测量值和先前的估计结果进行迭代计算,不需要保存过多的历史数据。

2.3 最优性:卡尔曼滤波可以通过最小均方误差准则,给出能够最优估计系统状态的解。

2.4 实时性:由于卡尔曼滤波的递归计算特性,它可以实时地处理数据,并及时根据新的测量值进行估计。

3. 卡尔曼滤波的应用卡尔曼滤波在多个领域都有广泛的应用,以下是一些典型的应用例子:3.1 导航系统:卡尔曼滤波可以用于导航系统中的位置和速度估计,可以结合地面测量值和惯性测量传感器的数据,提供精确的导航信息。

卡尔曼滤波 参数

卡尔曼滤波 参数

卡尔曼滤波参数卡尔曼滤波是一种利用一系列离散时间的观测值,对状态变量进行估计的算法,它被广泛应用于瞄准、自动导航、目标识别和控制系统等领域。

它适用于线性系统,可以通过递归方式实现,用于估计系统状态的随时间演变。

本文将介绍卡尔曼滤波的参数以及相关参考内容。

参数:1. 状态方程卡尔曼滤波器的状态方程指的是系统的物理模型,即描述了状态变量如何随时间演化的方程。

在线性系统中,状态变量可以表示为一系列线性方程的组合,例如:x[k+1] = Fx[k] + Gu[k] + w[k]其中,x[k]是k时刻的状态变量,F是状态转移矩阵,G是输入矩阵,u[k]是k时刻的输入变量,如控制信号,w[k]是k时刻的过程噪声。

2. 观测方程卡尔曼滤波器的观测方程描述了每次观测噪声和状态变量之间的关系,通常表示为:z[k] = Hx[k] + v[k]其中,z[k]是k时刻的观测量,H是观测矩阵,v[k]是测量噪声。

3. 状态协方差矩阵状态协方差矩阵是一个对称矩阵,它描述了状态变量的不确定性或误差的大小和协方差。

卡尔曼滤波器的设计目标之一是通过最小化状态协方差矩阵来提高估计的准确性。

4. 过程噪声协方差矩阵过程噪声协方差矩阵描述了过程噪声的大小和协方差。

在实践中,可以通过实验或经验来确定这个矩阵的值。

5. 测量噪声协方差矩阵测量噪声协方差矩阵描述了测量噪声的大小和协方差。

同样,可以通过实验或经验来确定这个矩阵的值。

参考内容:1. Probabilistic Robotics by Sebastian ThrunSebastian Thrun的《Probabilistic Robotics》是一本深入而全面的介绍机器人操作和控制中使用概率方法的经典教材。

该书详细介绍了卡尔曼滤波器和其应用,特别是在移动机器人定位和地图构建中的应用。

2. A tutorial on Kalman Filter这是一篇详细而易懂的卡尔曼滤波器教程,介绍了状态方程、观测方程、状态协方差矩阵、过程噪声协方差矩阵和测量噪声协方差矩阵等各个参数的作用和意义。

经典卡尔曼滤波算法公式

经典卡尔曼滤波算法公式

经典卡尔曼滤波算法公式
卡尔曼滤波算法是一种基于状态估计的控制算法,经常应用于机器人控制、航空导航、车辆导航等领域。

下面是经典的卡尔曼滤波算法公式:
1. 状态预测方程:
x(k|k-1) = Fx(k-1|k-1) + Bu(k)
其中,x(k|k-1)表示第k步的状态预测值,F表示状态转移矩阵,B表示输入矩阵,u(k)表示第k步的控制输入。

2. 误差预测方程:
P(k|k-1) = FP(k-1|k-1)F' + Q
其中,P(k|k-1)表示第k步的估计误差,Q表示系统噪声协方差矩阵。

3. 状态更新方程:
K(k) = P(k|k-1)H'/(HP(k|k-1)H' + R)
x(k|k) = x(k|k-1) + K(k)(z(k) - Hx(k|k-1))
P(k|k) = (I - K(k)H)P(k|k-1)
其中,K(k)表示卡尔曼增益,z(k)表示测量值,H表示测量矩阵,R表示测量噪声协方差矩阵。

以上就是经典的卡尔曼滤波算法公式,可以在实际应用中根据具体情况进行调整和优化。

- 1 -。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

卡尔曼滤波算法总结-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII
2015.12.12 void Kalman_Filter(float Gyro,float Accel)
{
Angle+=(Gyro - Q_bias) * dt;
Pdot[0]=Q_angle - PP[0][1] - PP[1][0];
Pdot[1]= - PP[1][1];
Pdot[2]= - PP[1][1];
Pdot[3]=Q_gyro;
PP[0][0] += Pdot[0] * dt;
PP[0][1] += Pdot[1] * dt;
PP[1][0] += Pdot[2] * dt;
PP[1][1] += Pdot[3] * dt;
Angle_err = Accel - Angle;
PCt_0 = C_0 * PP[0][0];
PCt_1 = C_0 * PP[1][0];
E = R_angle + C_0 * PCt_0;
K_0 = PCt_0 / E;
K_1 = PCt_1 / E;
t_0 = PCt_0;
t_1 = C_0 * PP[0][1];
PP[0][0] -= K_0 * t_0;
PP[0][1] -= K_0 * t_1;
PP[1][0] -= K_1 * t_0;
PP[1][1] -= K_1 * t_1;
Angle += K_0 * Angle_err;
Q_bias += K_1 * Angle_err;
Gyro_x = Gyro - Q_bias;
}
首先是卡尔曼滤波的5个方程:
(|1)(1|1)()
X k k AX k k Bu k -=--+(1)先验估计
(|1)(1|1)'P k k AP k k A Q -=--+(2)协方差矩阵的预测 ()(|1)'/(|1)')Kg k P k k H HP k k H R =--+(3)计算卡尔曼增益 (|)(|1)()(()(|1))X k k X k k Kg k Z k HX k k =-+--(4)进行修正
5个式子比较抽象,现在直接用实例来说:
一、卡尔曼滤波第一个式子
对于角度来说,我们认为此时的角度可以近似认为是上一时刻的角度值加上上一时刻陀螺仪测得的角加速度值乘以时间,因为d dt θω=⨯,角度微分等于时间的微分乘以角速度。

但是陀螺仪有个静态漂移(而且还是变化的),静态漂移就是静止了没有角速度然后陀螺仪也会输出一个值,这个值肯定是没有意义的,计算时要把它减去。

由此我们得到了当前角度的预测值Angle Angle=Angle+(Gyro - Q_bias) * dt;
其中等号左边Angle 为此时的角度,等号右边Angle 为上一时刻的角度,Gyro 为陀螺仪测的角速度的值,dt 是两次滤波之间的时间间隔,我们的运行周期是4ms 或者6ms 。

同时 Q_bias 也是一个变化的量。

但是就预测来说认为现在的漂移跟上一时刻是相同的,即 Q_bias=Q_bias
将上面两个式子写成矩阵的形式
1_0
1_0
Angle dt Angle dt Q bias
Q bia o s
Gyr -=
+
得到上式,这个式子对应于卡尔曼滤波的第一个式子
(|1)(1|1)()
X k k AX k k Bu k -=--+
(|)(|1)
P k k I Kg k H P k k =--(())(5)更新协方差阵
()|1X k k -为2维列向量_Angle Q bias
,A 为2维方阵
10
1
dt -,()|-11X k k -为2维
列向量_Angle Q bias
,B 为2维列向量
0dt

()u k 为Gyro
二、卡尔曼滤波第二个式子
接着是预测方差阵的预测值,这里首先要给出两个值,一个是漂移的噪声,一个是角度值的噪声,(所谓噪声就是数据的方差值)
(|1)(1|1)'P k k AP k k A Q
-=--+
这里的Q 为向量
_Angle Q bias
的协方差矩阵,即
cov(Angle,Angle)cov(Q_bias,Angle)
cov(Angle,Q_bias)cov(Q_bias,Q_bias)

因为漂移噪声和角度噪声是相互独立的,则cov(Angle,Q_bias)0=。

又由性质可知cov(,)()x x D x =即方差,所以得到的矩阵如下
D(Angle)
D(Q_bias),这里的两个方差值是开始就给出的常数
程序中的定义如下 float Q_angle=0.001; float Q_gyro=0.003;
接着是这一部分A P(k-1|k-1) A’,其中的(P (k-1)|P(k-1))为上一时刻的预测方差阵
卡尔曼滤波的目标就是要让这个预测方差阵最小。

其中P(k-1|k-1)设为
a b c d
,第一式已知A 为
10
1
dt
则计算A P(k-1|k-1) A’+Q (就是个矩阵乘法和加法,算算吧)结果如下
2.(dt)(Angle)a c dt b dt d D b d dt
c d dt d -⨯-⨯++-⨯-⨯
2.(dt)d 很小为了计算简便忽略不计。

于是得到
(Angle)a c dt b dt D b d dt
c d dt
d
-⨯-⨯+-⨯-⨯
a,b,c,d 分别和矩阵的P[0][0],P[0][1],P[1][0],P[1][1] 计算过程转化为如下程序,代换即可
Pdot[0]=Q_angle - PP[0][1] - PP[1][0]; Pdot[1]= - PP[1][1]; Pdot[2]= - PP[1][1];/ Pdot[3]=Q_gyro;
PP[0][0] += Pdot[0] * dt; PP[0][1] += Pdot[1] * dt; PP[1][0] += Pdot[2] * dt; PP[1][1] += Pdot[3] * dt;
三,这里是卡尔曼滤波的第三个式子
Kg(k)= P(k|k-1) H’ / (H P(k|k -1) H’ + R) ……… (3)//计算卡尔曼增益
即计算卡尔曼增益,这是个二维向量设为
01
k k ,这里的
H =10 为由此kg=
P(K|K-1)+R ,这里又有一个常数R ,程序中的定义如下
float R_angle=0.5;
这个指的是角度测量噪声值,则式子的分母=P[0][0]+R_angle 即程序中的
PCt_0 = C_0 * PP[0][0];
PCt_1 = C_0 * PP[1][0];
E = R_angle + C_0 * PCt_0;
分子
[0][0]
[1][0] P
P
于是求出
1 K K
K_0 = PCt_0 / E;
K_1 = PCt_1 / E;
四,用误差还有卡尔曼增益来修正
X(k|k)= X(k|k-1)+Kg(k) (Z(k) - H X(k|k-1)) ……… (4)通过卡尔曼增益进行修正这个矩阵带进去就行了Z(k)=Accel.....注意这个是加速度计算出来的角度Angle_err = Accel - Angle;
对应程序如下
Angle += K_0 * Angle_err;
Q_bias += K_1 * Angle_err;
同时为了PID控制还有下次的使用把角速度算出来了
Gyro_x = Gyro - Q_bias;
五,最后一步对矩阵P进行更新,因为下一次滤波时要用到
PP[0][0] -= K_0 * t_0;
PP[0][1] -= K_0 * t_1;
PP[1][0] -= K_1 * t_0;
PP[1][1] -= K_1 * t_1;
P(k|k)=(I-Kg(k) H)P(k|k-1) ……… (5)//跟预测方差阵
这个很简单,矩阵带进去算就行了
六,总结
卡尔曼滤波一共只需要给很少的初始值量,
float Q_angle=0.001;
float Q_gyro=0.003;
还有float R_angle=0.5;
以及系统的初始量angle还有Q_bias
还有预测误差矩阵P,程序里给的是0(数组)
理论上由于卡尔曼滤波是迭代的算法,当时间充分长以后。

滤波估值将与初始值的选取无关。

但是实际上并不是如此,比如测量方差值一直在变化。

相关文档
最新文档