使用非线性卡尔曼滤波来估计信号 下载本文

内容发布更新时间 : 2024/5/20 18:57:42星期一 下面是文章的全部内容请认真阅读。

使用非线性卡尔曼滤波来估计信号 西蒙·丹

看起来,没有特别的近似的[非线性]过滤器是一直比任何其他更好的, 虽然...任何非线性滤波器较严格的线性滤波器更好。

1

卡尔曼滤波器是可以估算范围广泛的过程变量的一个工具。 在数学术语中,我们会说,卡尔曼滤波器估计线性系统的状态。 有迹象表明,你可能想知道一个系统的状态,原因有二:

首先,可能需要估计状态以控制该系统。 例如,电气工程师需要估计电动机的绕组的电流,以控制其位置。 航空工程师需要估计卫星的速度来 控制它的轨道。生物医学工程师需要估计血糖水平来调节胰岛素注射速率。

其次,你可能需要估计系统的状态,因为他们对是否处于正确状态感兴趣。例如,电气工程师需要估计电力系统参数为了预测失败的概率。航天工程师需要估计卫星以智能调度未来卫星的活动位置。 生物医学工程师需要估计血液蛋白水平,以评估患者的健康状况。

标准卡尔曼滤波器是一种有效的工具,估计,但它被限制为线性系统。 大多数真实世界系统是非线性的,在这种情况下,卡尔曼过滤器不直接适用。 在现实世界中,非线性滤波器比线性滤波器更常用,因为在现实世界中,系统是非线性的。 事实上,第一个在20世纪60年代NASA的太空计划使用卡尔曼滤波器就涉及到非线性卡尔曼滤波器。 这篇文章将告诉你的基本概念,你需要知道的设计和实施一个非线性卡尔曼滤波器。 我还将通过查看电机的例子演示如何使用非线性卡尔曼滤波器。

回顾卡尔曼滤波

我在这本杂志几年前写了一篇关于卡尔曼滤波的一篇文章(“ 卡尔曼滤波 ”2001年6月),但我会在这里回顾这个想法。

如果我们想用一个标准的卡尔曼滤波估计信号,我们测量的过程需要能够通过线性系统方程来描述。 线性系统是一个过程,可以描述为以下两个方程:

这些方程定义了一个线性系统,因为没有任何指数函数,三角函数,或者任何其他不能在坐标上表示为直线的函数, 上述方程有几个变量: 每个这些变量通常是向量,因此包含多个元素。

在状态估计的问题中,我们要估计 X,因为它包含了有关系统的所有的信息, 问题是,我们不能直接测量 X。 相反,我们测量Y,y是一个受到噪声感染的关于x的函数,我们可以用y来帮助我们获得x的估计, 但是我们不能够直接采用 y ,因为它受到噪声干扰。

例如,假设我们的系统是一个坦克,一个移动机器人,比萨递送汽车,或某些沿直线行驶的车辆。 那么我们可以说,状态包含车辆的位置和速度。输入 u是加速度,输出 y是所测量的位置。

让我们假设我们能够每T秒测量一次位置 。 之前在这本杂志上的文章提到该系统可以这样描述:

现在假设我们想控制车辆的位置,以遵循特定的路径,或者我们由于某些其他原因想估计车辆位置。 我们可以使用yk作为我们的位置估计, 但 yk有噪声

我们可以通过使用卡尔曼滤波器来更好的估计状态。 这是因为一个卡尔曼滤波器不只使用位置测量值yk外,还采用包含在状态方程中的信息。 卡尔曼滤波器方程可以这样写:

其中时间步 K = 0,1,2,...这被称为是线性滤波器因为X等式不包含任何指数函数,三角函数,或者任何其他不会显示为直线的函数。为了初始化卡尔曼滤波器,我们需要在初试时间使用一个估计值X0,我们还需要最初的估计误差方差 P0他表示我我们对于最初的状态估计的不确定性。 如果我们非常有信心在我们的初步估算X0,那么 P0应小。 如果我们是非常不确定我们最初的估计x0,则P0应大。 从长远来看,这些初始化值不会使过滤表现有多大影响 线性限制

卡尔曼滤波器是可以应用到线性系统的线性滤波器。 不幸的是,线性系统并不存在,所有系统都基本是非线性的。 即使是简单的 I = V / R的 欧姆定律也只是一个在有限范围上的近似 如果跨越电阻的电压超过一定值,那么欧姆定律失效。 图1示出了典型的通过一个电阻器和电阻器两端的电压的电流之间的关系。 在小输入电压下,关系是直线的,但如果功率耗散由电阻超过一定值时,则关系变得很非线性的。 即使一个简单如电阻的设备也仅仅是近似线性的,而且只有在有限范围电压内 所以我们看到,线性系统并不真正存在。 然而,许多系统都足够接近线性,因此线性估计方法(例如,标准卡尔曼滤波器)给出了良好的效果。 但