18.08.2013 Views

UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica

UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica

UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C.2 Simulazione del predittore di Kalman<br />

La simulazione che viene effettuata dal seguente programma è stata<br />

sviluppata per testare il funzionamento del predittore di Kalman.<br />

function [zk, xk, zk_pred, xk_pred, An] = tk(nA, rho, nstep)<br />

% tk.m<br />

% Simulazione del filtro di Kalman<br />

%<br />

% [zk, xk, zk_pred, xk_pred, An] = tk(nA, rho, nstep)<br />

%<br />

error(nargchk(3, 3, nargin))<br />

close all<br />

% Varianza del rumore<br />

max_noise = 0;<br />

% Passo di campionamento<br />

dt = 0.04;<br />

% Generazione dei valori di test<br />

k = [0:dt:2*pi];<br />

nk = max(size(k));<br />

noise = 2 * (rand(size(k)) - 0.5) * max_noise;<br />

x0 = 0;<br />

v0 = 170;<br />

a0 = 10;<br />

zk_real = round(100 * sin(1 * k));<br />

zk = round(zk_real) + round(noise);<br />

% Matrici caratteristiche del sistema in esame<br />

A = diag(ones(1, nA), 0) + diag(ones(1, nA - 1),1);<br />

B = zeros(1, nA);<br />

B(nA) = 1;<br />

B = B';<br />

C = zeros(1, nA);<br />

C(1) = 1;<br />

% Imposta il parametro che controlla il predittore<br />

Q = 1;<br />

R = rho;<br />

% Calcola la soluzione dell'equazione di Riccati con metodo<br />

% iterativo<br />

P0 = eye(size(A));<br />

[P, eps, nout] = riccati(P0, A, B, C, Q, R, -inf, 100);<br />

norm(-P + A * P * A' - A * P * C' * inv(C * P * C' + R) * C * P *<br />

206

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!