卡爾曼濾波原理二 擴充套件卡爾曼

2021-09-24 18:28:12 字數 3336 閱讀 8991

1、理論部分

系統方程

各個變數意義同上一節,其中f和h代表狀態和觀測的非線性函式。

在擴充套件卡爾曼濾波中,狀態的**以及觀測值的**由非線性函式計算得出,線性卡爾曼濾波中的狀態轉移矩陣a陣和觀測矩陣h陣由f和h函式的雅克比矩陣代替,假設狀態有n維,則求法如下:

有了上面矩陣的計算方法,ekf濾波過程同線性卡爾曼濾波相同,公式如下

2、實踐部分

根據圖中情景,選取橫向位置、速度,縱向位置、速度為狀態量,列出下面非線性狀態方程及觀測方程

根據狀態方程和觀測方程,計算雅克比矩陣如下

%% 真實軌跡模擬

kx = .01; ky = .05; % 阻尼係數

g = 9.8; % 重力

t = 15; % **時間

ts = 0.1; % 取樣週期

len = fix(t/ts); % **步數

dax = 3; day = 3; % 系統雜訊

x = zeros(len,4);

x(1,:) = [0, 50, 500, 0]; % 狀態模擬的初值

for k=2:len

x = x(k-1,1); vx = x(k-1,2); y = x(k-1,3); vy = x(k-1,4);

x = x + vx*ts;

vx = vx + (-kx*vx^2+dax*randn(1,1))*ts;

y = y + vy*ts;

vy = vy + (ky*vy^2-g+day*randn(1))*ts;

x(k,:) = [x, vx, y, vy];

end%% 構造量測量

dr = 8; **** = 0.1; % 量測雜訊

for k=1:len

r = sqrt(x(k,1)^2+x(k,3)^2) + dr*randn(1,1);

a = atan(x(k,1)/x(k,3))*57.3 + *****randn(1,1);

z(k,:) = [r, a];

end%% ekf 濾波

qk = diag([0; dax/10; 0; day/10])^2;

rk = diag([dr; ****])^2;

pk = 10*eye(4);

pkk_1 = 10*eye(4);

x_hat = [0,40,400,0]';

x_est = zeros(len,4);

x_forecast = zeros(4,1);

z = zeros(4,1);

for k=1:len

% 1 狀態**

x1 = x_hat(1) + x_hat(2)*ts;

vx1 = x_hat(2) + (-kx*x_hat(2)^2)*ts;

y1 = x_hat(3) + x_hat(4)*ts;

vy1 = x_hat(4) + (ky*x_hat(4)^2-g)*ts;

x_forecast = [x1; vx1; y1; vy1]; %**值

% 2 觀測**

r = sqrt(x1*x1+y1*y1);

alpha = atan(x1/y1)*57.3;

y_yuce = [r,alpha]';

% 狀態矩陣

vx = x_forecast(2); vy = x_forecast(4);

f = zeros(4,4);

f(1,1) = 1; f(1,2) = ts;

f(2,2) = 1-2*kx*vx*ts;

f(3,3) = 1; f(3,4) = ts;

f(4,4) = 1+2*ky*vy*ts;

pkk_1 = f*pk*f'+qk;

% 觀測矩陣

x = x_forecast(1); y = x_forecast(3);

h = zeros(2,4);

r = sqrt(x^2+y^2); xy2 = 1+(x/y)^2;

h(1,1) = x/r; h(1,3) = y/r;

h(2,1) = (1/y)/xy2; h(2,3) = (-x/y^2)/xy2;

kk = pkk_1*h'*(h*pkk_1*h'+rk)^-1; %計算增益

x_hat = x_forecast+kk*(z(k,:)'-y_yuce); %校正

pk = (eye(4)-kk*h)*pkk_1;

x_est(k,:) = x_hat;

end%%

figure, hold on, grid on;

plot(x(:,1),x(:,3),'-b');

plot(z(:,1).*sin(z(:,2)*pi/180), z(:,1).*cos(z(:,2)*pi/180));

plot(x_est(:,1),x_est(:,3), 'r');

xlabel('x');

ylabel('y');

title('ekf simulation');

legend('real', 'measurement', 'ekf estimated');

axis([-5,230,290,530]);

**結果

擴充套件卡爾曼濾波 不變擴充套件卡爾曼濾波 技術報告

本文使用 zhihu on vscode 創作並發布 connor 2020.06.02 不變擴充套件卡爾曼濾波的適用範圍 不變擴充套件卡爾曼濾波的使用步驟 乙個矩陣李群 matrix lie group g是滿足下列條件的 其中 表示 維單位矩陣,表示矩陣 的逆,表示矩陣乘法。現在,將上述構成李群...

初學者的卡爾曼濾波 擴充套件卡爾曼濾波

簡介 已經歷經了半個世紀的卡爾曼濾波至今仍然是研究的熱點,相關的文章不斷被發表。其中許多文章是關於卡爾曼濾波器的新應用,但也不乏改善和擴充套件濾波器演算法的研究。而對演算法的研究多著重於將卡爾曼濾波應用於非線性系統。為什麼學界要這麼熱衷於將卡爾曼濾波器用於非線性系統呢?因為卡爾曼濾波器從一開始就是為...

初學者的卡爾曼濾波 擴充套件卡爾曼濾波(一)

簡介 已經歷經了半個世紀的卡爾曼濾波至今仍然是研究的熱點,相關的文章不斷被發表。其中許多文章是關於卡爾曼濾波器的新應用,但也不乏改善和擴充套件濾波器演算法的研究。而對演算法的研究多著重於將卡爾曼濾波應用於非線性系統。為什麼學界要這麼熱衷於將卡爾曼濾波器用於非線性系統呢?因為卡爾曼濾波器從一開始就是為...