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.

Il filtro di Kalman è stato prima codificato in MATLAB, opportunamente<br />

simulato ed infine importato sotto HARTIK. Questo ultimo passaggio ha richiesto<br />

la scrittura di codice per realizzare il calcolo matriciale, che invece in MATLAB è<br />

completamente trasparente. La simulazione è stata di fondamentale importanza<br />

anche per testare il codice C, in quanto è stato possibile fornire in ingresso il<br />

medesimo segnale sia al programma in MATLAB che alla simulazione real-time<br />

in HARTIK, controllando l'output prodotto per confrontarne il comportamento.<br />

Questo ha permesso di sviluppare una libreria per HARTIK robusta e affidabile.<br />

Il codice MATLAB del filtro di Kalman è riportato in appendice C, in<br />

quanto può essere di grande utilità per capirne il funzionamento, e certamente lo è<br />

molto di più che analizzare centinaia di righe di codice C.<br />

Il MATLAB è stato utilizzato anche per un'altra importante funzione,<br />

indispensabile per il corretto funzionamento della libreria, ovvero la generazione<br />

dei data file che contengono i ρ ed i relativi guadagni per il filtro. Anche il<br />

codice di questo programma è riportato in appendice C.<br />

Questa scelta si è resa necessaria al fine di evitare di dover scrivere una vera<br />

e propria libreria di calcolo matriciale per HARTIK, in quanto, oltre che ad<br />

operazioni banali quali prodotti e trasposizioni di matrici e vettori, il calcolo dei<br />

guadagni per il filtro di Kalman prevede il calcolo dell'inversa di una matrice<br />

quadrata, che richiede la scrittura di codice per il calcolo numerico affatto banale.<br />

Dunque si è preferito scrivere un semplice programma in MATLAB che<br />

genera, per qualsiasi dimensione del modello del sistema, un file contenente<br />

svariati valori del ρ e dei guadagni corrispondenti. Con banalissime modifiche al<br />

codice è possibile aumentare il numero ρ diversi da inserire nel file (attualmente<br />

sono 120), oppure variare il range entro il quale campionare i valori di ρ stessi,<br />

che, al momento, va da<br />

10<br />

10 −<br />

a<br />

12<br />

10 +<br />

.<br />

150

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

Saved successfully!

Ooh no, something went wrong!