主要内容

在命令行验证在线状态估计

使用后ExtendedKalmanFilter.undentedkalmanfilter要么粒子滤片在线状态估计非线性系统的指令,在部署应用程序中部署代码之前验证估计。如果验证表明对估计的低信心,那么请参阅排除在线状态估计对于下一步。验证了在线估计结果后,您可以使用C / C ++代码或独立应用程序使用马铃薯®编码器™要么Matlab Compiler™软件。

为了验证滤镜的性能,使用来自不同方案的测量或模拟输出数据执行状态估计。

  • 在不同的操作条件和输入值下从系统获取输出数据 - 以确保在所有感兴趣的操作条件下估算运行。例如,假设您要追踪使用噪声位置测量的车辆的位置和速度。测量不同车辆速度和慢速和急剧的操纵数据。

  • 对于每个感兴趣的操作条件,获取具有不同噪声实现的多组实验或模拟数据 - 以确保不同的噪声值不会降低估计性能。

对于每个方案,通过检查输出估计误差和状态估计误差来测试滤波器性能。有关执行和验证在线状态估计的示例,请参阅非线性状态估计使用Unscented Kalman滤波器和粒子滤波器

检查输出估计错误

输出估计误差是测量输出之间的差异,y和估计的输出,yestimated。您可以使用系统的测量功能在每个时间步骤获得估计的输出。例如,如果vdpmeasurementfcn.m.是非线性系统的测量功能,您正在使用扩展的卡尔曼筛选对象执行状态估计,obj.,您可以使用当前状态估计计算估计的输出:

yestimated = vdpmeasurementfcn(obj.state);估计误差= y- yestimated;

这里obj.state.是国家价值 X ^ [ K. | K. - 1 ] 使用中估计各国后预测命令。 X ^ [ K. | K. - 1 ] 是预测的状态估计时间K.,估计使用测量的输出直到上一次K-1

如果您正在使用ExtendedKalmanFilter.要么undentedkalmanfilter,你也可以使用剩余的要获取估计错误:

[残余,残留转移性] =残差(OBJ,Y);

估计误差(残差)必须具有以下特征:

  • 小幅度 - 相对于输出尺寸的小误差增加了对估计值的置信度。

  • 零意思

  • 低自制,除零时滞后 - 要计算自相关,可以使用MATLABXCorr.命令。

检查模拟数据的状态估计误差

当您模拟非线性系统的输出数据并使用该数据进行状态估计时,您知道真实状态值。您可以计算估计和真实状态值之间的错误并分析错误。随时步骤的估计状态值是存储在中的值obj.state.使用中估计各国后预测要么正确命令。状态估计误差必须满足以下特征:

  • 小幅度

  • 零意思

  • 低自相关,除零时间滞后

您还可以计算状态估计错误的协方差,并将其与存储在存储器中的状态估计错误协方差进行比较StateCovariance.过滤器的属性。类似的值增加对滤波器性能的置信度。

也可以看看

|||

相关话题