解决在线状态估计
执行后使用线性非线性系统的状态估计,扩展,或无味卡尔曼滤波和粒子滤波算法,验证评估之前部署您的应用程序中的代码。如果验证表明低估计的信心,检查以下过滤器属性指定:
初始状态和状态协方差值——如果你发现系统的测量和估计输出发散状态估计的开头,检查指定的初始值。
状态转换和测量功能,验证您所指定的函数很好地体现了非线性系统。如果真正的连续时间系统,实现算法,离散化状态转换和测量方程和离散版本使用。如果状态估计结果不满意,可以考虑减少样本时间用于离散化。另外,尝试不同的离散化方法。一个例子,如何使离散连续时间状态转换函数,类型
编辑vdpStateFcn.m
在命令行中。也看到,非线性状态估计使用无味卡尔曼滤波和粒子滤波。过程和测量噪声协方差值,如果系统的估计和测量输出的区别很大,尝试指定不同的值的过程和测量噪声协方差值。
选择的算法——如果你正在使用扩展卡尔曼滤波算法,你可以试着无味卡尔曼滤波,或者粒子滤波算法。无味卡尔曼滤波和粒子滤波可以捕获系统中非线性更好。
解决状态估计,您可以创建多个版本的滤波器有不同的属性,进行状态估计,并选择出最佳的过滤验证结果。
在命令行,如果你想要复制一个现有的过滤器对象,然后修改复制对象的属性,使用克隆
命令。不使用语法创建额外的对象methoda = obj
。任何更改,以这种方式创建新对象的属性(methoda
)也改变原始对象的属性(obj
)。