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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C.3 Generazione dei guadagni<br />

Il programma che si occupa di generare i data file contenenti i guadagni del<br />

predittore è listato di seguito. Esso è strutturato come una funzione che accetta<br />

come ingressi il numero di integratori con cui modellizzare il sistema (nA) e il<br />

nome del file nel quale si desidera memorizzare i dati (f), il quale ha la struttura<br />

corretta per poter essere letta dalle funzioni della libreria che caricano in memoria<br />

i ρ ed i corrispondenti guadagni, come descritto al paragrafo 5.3.3.<br />

Il funzionamento del programma è molto simile a quello della simulazione<br />

descritto al paragrafo precedente, con la differenza che questo non produce alcun<br />

output su schermo, se non la durata complessiva dell'operazione, e scrive il<br />

proprio output su file.<br />

Innanzitutto vengono generate automaticamente le matrici che modellizzano<br />

il sistema, con dimensione definita dal valore di nA. Poi viene costruito il vettore<br />

contenente i ρ dei quali si desidera calcolare i guadagni. Successivamente il<br />

programma effettua una iterazione e, per ciascun valore di ρ , calcola i<br />

corrispondenti guadagni. Infine, il tutto viene salvato nel file col nome specificato.<br />

function genK(nA, f)<br />

% genK.m<br />

%<br />

% Generazione di file contenenti i guadagni del predittore di<br />

% Kalman<br />

% per diversi valori di rho<br />

% genK(nA, fname)<br />

%<br />

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

fname = char(f);<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 />

212

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

Saved successfully!

Ooh no, something went wrong!