主要内容

在线状态估计故障

在使用线性、扩展或无气味卡尔曼滤波或粒子滤波算法执行非线性系统的状态估计之后,在将代码部署到应用程序中之前,需要验证估计。如果验证表明估计的置信度较低,请检查您指定的下列筛选器属性:

  • 初始状态和状态协方差值——如果您发现系统的测量输出和估计输出在状态估计开始时出现分歧,请检查您指定的初始值。

  • 状态转换和测量函数-验证您指定的函数是非线性系统的良好表示。如果真实的系统是连续时间的,为了实现算法,您将状态转换和测量方程离散化,并使用离散化的版本。如果状态估计结果不令人满意,考虑减少用于离散化的样本时间。或者,尝试不同的离散化方法。有关如何离散化连续时间状态转换函数的示例,请键入编辑vdpStateFcn.m在命令行。也看到,基于无气味卡尔曼滤波和粒子滤波的非线性状态估计

  • 过程和测量噪声协方差值——如果系统的估计输出和测量输出之间的差异很大,请尝试为过程和测量噪声协方差值指定不同的值。

  • 算法的选择——如果你正在使用扩展的卡尔曼滤波算法,你可以尝试unscented卡尔曼滤波,或者粒子滤波算法。无气味卡尔曼滤波和粒子滤波可以更好地捕获系统中的非线性。

要对状态估计进行故障排除,可以创建具有不同属性的筛选器的多个版本,执行状态估计,并选择提供最佳验证结果的筛选器。

在命令行上,如果要复制现有筛选器对象,然后修改所复制对象的属性,请使用克隆命令。不使用语法创建额外的对象Obj2 = obj.以这种方式创建的新对象的属性所做的任何更改(methoda)也会改变原始对象的属性(obj).

另请参阅

功能

相关的话题