主要内容

在线状态估计故障排除

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

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

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

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

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

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

在命令行中,如果要复制现有过滤器对象,然后修改复制对象的属性,请使用克隆命令不要使用语法创建其他对象obj2=obj。对以这种方式创建的新对象的属性所做的任何更改(obj2)还可以更改原始对象的属性(obj).

另见

功能

阻碍

相关的话题