主要内容

在线状态估计故障排除

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

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

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

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

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

要解决状态估计问题,您可以创建具有不同属性的多个版本的过滤器,执行状态估计,并选择提供最佳验证结果的过滤器。

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

另请参阅

功能

相关的话题