2

我有一个由一组一阶非线性差分方程描述的非线性系统:

x(k) = f(x(k-1)) + u(k-1)
y(k) = h(x(k)) + v(k)

其中u(k-1)v(k)是独立的零均值高斯噪声过程,分别具有协方差QR

我想使用kalmanmatlab 中的函数来估计x给定y的 . 但是matlab控制系统工具箱中的界面是:

[K,L,P]= kalman(sys, Q, R, N)

哪里sys是状态空间模型。我的问题是:如何sys在 matlab 中为我的一阶非线性差分方程系统定义?

4

1 回答 1

3

正如其他人所提到的,该kalman功能仅适用于线性系统。然而,对于高度非线性系统,扩展卡尔曼滤波器 (EKF) 可能是一个较差的估计器。在这些情况下,无味卡尔曼滤波器 (UKF) 可能会更好。因此,您可能想同时尝试两者。

可以在此处的 Matlab 的 EKF/UKF 工具箱中找到任一(EKF 或 UKF)的 Matlab 代码。另一个适合您的加性噪声​​模型的 UKF 实现可以在 Matlab Central中找到。

希望这可以帮助。

于 2016-08-17T15:45:06.787 回答