【状态估计】用于非标量系统估计的最优卡尔曼滤波(Matlab代码实现)

 

欢迎来到本博客❤️❤️

博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

本文目录如下:

目录

1 概述

2 运行结果

3 参考文献

4 Matlab代码实现


1 概述

考虑了最优卡尔曼滤波的例子。假设一些非标量复杂系统来分析最优卡尔曼滤波器的可用性,以获得估计值。作为估计前提和鲁棒性的度量,协方差矩阵对角线(与系统变化相关)时间依赖性。
系统的特定组件通过过滤提供良好的估计,另一个则不然。 得出结论,过滤器使用的有效性取决于系统。

The example of optimal Kalman filtering is considered. Assume some nonscalar complex system to analyze usability of optimal Kalman filter for estimates obtaining. As measure of estimates presision and robustness is covariance matrix diagonal (related with system variations) time dependence.
Particular components of system provide good estimates by filtering, another not.
Conclude that effectiveness of filter usage depends on system.

2 运行结果

部分代码:

% Define system dimensions
n=6;
A = [1 0.5 0 0 0 0; 0 1 0 0 0 0; 0 0 0.5 0 0 0; 0 0 0 0.5 0.5 0; 0 0 0 -0.5 0.823 0; 0 0 0 0 0 1];     % matrix
lambda = eig(A); % Matrix A eigenvalues
% Define system input control functions:
B = [0 0; 0 0; 0.02 0; 0 0.02; 0 -0.01; 0 0];     % matrix
% Define a process noise:
Q = [1 0; 0 1]; % normalized variance matrix
% Define a measurement error
H = [1 0 1 -1 0 -1]; % normalized measurement vector
R = 0.2; % Error variance
% Covariation matrix of estimation errors (Initial state of matrix)
P = [0.25 0 0 0 0 0; 0 sigma0^2 0 0 0 0; 0 0 sigma1^2 0 0 0; 0 0 0 sigma^2 0 0; 0 0 0 0 ((sigma^2)*(alpha^2+beta^2)) 0; 0 0 0 0 0 sigma2^2];     
% Diagonal contains squares of standard deviation variations
% 5-th diagonal element embodies complex error function
%
m=[]; %Vector representing diagonal elements on each step
c=[]; %Matrix representing time dependence of system variations
k=100;

3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]岳兴春,彭勇,宋威,黄嘉诚,周钰琛.融合EMA和卡尔曼滤波的MEMS去噪研究与应用[J].仪表技术与传感器,2023(04):83-86+92.

[2]Sasha Zorin (2023). Optimal Kalman Filter for nonscalar system estimation

4 Matlab代码实现

你可能感兴趣的:(状态估计,matlab,数学建模,开发语言)