Figura 6.5: Rete neurale HMLP con un solo strato nascosto. 
 
 
6.3 Confronto tra controllore PD e controllore PD+HMLP 
 
Per ogni traiettoria la velocità angolare iniziale è nulla, mentre l’assetto finale 
desiderato è: 
 
cui corrisponde angolo finale desiderato nullo. Oltre alle traiettorie utilizzate 
nella fase di apprendimento della rete neurale HMLP, sono stati utilizzati 
come ingressi del sistema di controllo anche traiettorie di checking e in 
entrambi i casi è stato fatto un confronto tra i risultati ottenuti considerando 
dapprima solamente l’effetto del controllore PD e in seguito l’azione di 
controllo globale (PD + HMLP). Supponendo di trascurare per il momento 
l’azione di disturbi esterni sul veicolo sottomarino, vengono riportati dei 
grafici ognuno dei quali mostra, per ogni traiettoria, un confronto tra le parti 
scalari dei quaternioni errore, questi ultimi ottenuti svolgendo il prodotto 
rispettivamente tra il quaternione unitario che rappresenta l’orientamento 
desiderato e l’inverso del quaternione unitario che esprime l’orientamento 
,0]  0  0[  ;0]  0  0  1[
TT
    ωq
(6.7) 
 Ω-rete 
velocità 
angolare 
desiderata
orientamento 
desiderato 
 0 2 4 6 8 10
-0.035
-0.03
-0.025
-0.02
-0.015
-0.01
-0.005
0
0.005
PD+HMLP
PD
errore
t
theta=14°.95' ax=(0.3145,0.9492,0.0104)
effettivo, quando è presente l’azione del solo controllore PD e quando invece 
agisce il controllore PD+HMLP. I rispettivi angoli iniziali e assi (che 
consentono di esplicitare la legge oraria per le traiettorie considerate) sono 
indicati nelle figure. In seguito nei grafici che rappresentano l’errore sulla 
parte scalare del quaternione si utilizza il colore blu per rappresentare l’errore 
nel sistema in cui agisce il solo controllore PD, mente l’errore relativo al 
sistema in cui agisce il controllore PD+HMLP è graficato utilizzando il colore 
rosso. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 6.6: Confronto tra le parti scalari dei quaternioni errore  
                                             per una traiettoria appartenente al learning set. 
 
I quaternioni errore rappresentati nella precedente figura sono stati ottenuti 
usando il controllore PD e il controllore PD+HMLP per una traiettoria 
presentata durante la fase di learning. Nessun disturbo agisce sul veicolo. 
 Nella figura successiva si fa riferimento invece ad una traiettoria non 
presentata durante la fase di allenamento della rete neurale HMLP; ancora una 
volta si suppone che nessun disturbo esterno agisca sul veicolo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 6.7: Confronto tra le parti scalari dei quaternioni errore 
                                             per una traiettoria di checking. 
 
Già questi due grafici evidenziano un miglioramento introdotto dall’utilizzo 
della rete neurale HMLP sia per una traiettoria presentata durante la fase di 
learning, sia per una traiettoria di checking. Per confermare ulteriormente i 
risultati ottenuti vengono riportati altri grafici relativi ad altre traiettorie dove, 
oltre il confronto tra la parti scalari dei quaternioni errore, viene evidenziato 
l’errore sull’angolo finale desiderato (la formula per calcolare tale angolo sarà 
esplicitata più avanti). La convenzione sui colori utilizzata per le figure che 
rappresentano l’errore sull’angolo finale desiderato adotta il colore blu per 
l’angolo di riferimento, il colore verde per l’angolo relativo al sistema in cui 
agisce    il    solo     controllore    PD,  mente   l’angolo    inerente   al   sistema 
0 2 4 6 8 10
-0.035
-0.03
-0.025
-0.02
-0.015
-0.01
-0.005
0
PD+HMLP 
PD 
t 
errore 
theta=141°.22' ax=(0.4896,0.2032,0.8480)
 in cui agisce il controllore PD+HMLP è graficato utilizzando il colore rosso; 
esprimendo gli angoli in radianti si ha dunque: 
  
 
 
 
 
 
 
 
 
 
 
 
 
Figura 6.8: Confronto tra gli angoli finali desiderati 
                                                      per una traiettoria di checking. 
 
In Fig.6.8 si fa riferimento ad una traiettoria non presentata durante la fase di 
addestramento della rete neurale, inoltre nessun disturbo esterno agisce sul 
veicolo sottomarino. Si nota come anche da quest’altro punto di vista le cose 
migliorano dato che utilizzando il controllore PD+HMLP (rosso) ci si 
avvicina al valore desiderato per l’angolo finale in maniera più marcata 
rispetto all’utilizzo del solo controllore PD.  
Gli angoli iniziali e gli assi che consentono di esplicitare la legge oraria di 
questa terza traiettoria considerata sono indicati nelle figura seguente, dove, 
fermo restando l’ipotesi sul disturbo esterno, è riportato il confronto tra gli 
errori sulle parti scalari del quaternione errore.  
 
0 2 4 6 8 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
PD
PD+HMLP
errore sull'angolo finale desiderato 
t 
  
 
 
 
 
 
 
 
 
 
 
 
Figura 6.9: Confronto tra la parte scalare dei quaternioni errore 
                                            per una traiettoria di checking. 
 
Oltre all’angolo finale desiderato, dal quaternione errore è possibile ottenere 
le componenti del versore che individua la direzione dell’asse di rotazione del 
veicolo sottomarino; le formule per ricavare una descrizione asse/angolo 
dell’orientamento sono [5]:  
dove i termini in r sono gli elementi della matrice di rotazione ottenuta dal 
quaternione unitario utilizzando la (2.12). Si possono pertanto riportare altri 
grafici in cui viene espresso l’errore tra il valore desiderato per queste 
componenti e il valore effettivo, valutato dapprima considerando la sola 
azione del controllore PD e in seguito l’azione globale PD+HMLP. Ad 
esempio per la traiettoria appena considerata l’errore sulla componente kz del 
versore dell’asse di rotazione è riportato nel seguente grafico, dove per i  
0 2 4 6 8 10
-0.14
-0.12
-0.1
-0.08
-0.06
-0.04
-0.02
0
PD 
PD+HMLP 
t 
errore theta=43°.68' ax=(0.8578,0.2048,0.4714)
;
sin2
1
ˆ
  ,
2
1
cos
1221
3113
2332
332211
1
 ≈
 ≈
 ≈
…
 ≡
 ↔
 ↔
 ↔
←
 ♠
  
  
  
   ÷
 ≠
 •
 ♦
 ♥
 ♣       
  
  
rr
rr
rr
θ
k
rrr
θ
(6.8)
 0 2 4 6 8 10
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
errore su kz 
t 
riferimento 
PD+HMLP 
PD 
0 5 10
-1
-0.5
0
0.5
1
0 5 10
-1
-0.5
0
0.5
1
0 5 10
-1
-0.5
0
0.5
1
0 5 10
0
0.2
0.4
0.6
0.8
errore su kx
t
riferimento
PD+HMLP
PD
errore su ky
riferimento
PD+HMLP
PD
t
errore su kz
t
riferimento
PD+HMLP
PD
ax=(0.6374,0.6327,0.4399), theta=0.7567
errore sull'angolo
t
PD
PD+HMLP
riferimento
colori si è utilizzata la stessa convenzione adoperata per le figure relative 
all’angolo finale. 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 6.10: Confronto tra le componenti kz per una traiettoria di checking. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 6.11: Errore su asse ed angolo per una traiettoria di checking. 
Altro esempio: 
 0 2 4 6 8 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
PD+HMLP+disturbo 
PD+disturbo 
errore sull'angolo in presenza di disturbo
t 
riferimento 
Anche in quest’ultimo esempio il miglioramento apportato dalla rete HMLP è 
evidente. L’utilizzo  della  rete neurale HMLP ha condotto ad un leggero 
miglioramento nel controllo dell’assetto anche in presenza di un disturbo 
esterno (simulato tramite un segnale a gradino applicato all’istante T = 0s nei 
casi riportati in questo capitolo) agente sul veicolo sottomarino. Le seguenti 
figure vogliono dimostrare quanto appena asserito. Ad esempio l’errore in 
figura 6.8 relativo ad una traiettoria non presentata in fase di learning, in 
presenza di un disturbo esterno agente sul veicolo si modifica in questo modo: 
  
 
 
 
 
 
 
 
 
 
 
Figura 6.12: Confronto tra gli angoli finali desiderati per una traiettoria di 
                                      checking in presenza di disturbo. 
 
Sono state effettuate diverse misure con gradini di ampiezza differente         
(di ampiezza 3 nel caso di figura 6.12 e di ampiezza 1 nei rimanenti casi 
riportati nel presente capitolo). Il segnale a gradino potrebbe rappresentare ad 
esempio l’urto del veicolo sottomarino con un pesce le cui caratteristiche 
fisiche siano tali da influire sull’assetto del veicolo. In presenza di disturbo, 
per la traiettoria il cui l’errore sulla parte scalare del quaternione errore è 
rappresentato in figura 6.7, si ha: 
 0 2 4 6 8 10
-0.09
-0.08
-0.07
-0.06
-0.05
-0.04
-0.03
-0.02
-0.01
0
theta=141°.22' ax=(0.4896,0.2032,0.8480)
errore 
t 
PD+HMLP+d 
PD+d 
0 2 4 6 8 10
-0.35
-0.3
-0.25
-0.2
-0.15
-0.1
-0.05
0
ax=(0.4053,0.5610,0.7218),theta=94°.12' 
errore 
t 
PD 
PD+HMLP 
 
    
 
 
 
 
 
 
 
 
 
 
Figura 6.13: Confronto tra le parti scalari dei quaternioni errore per 
                                           una traiettoria di checking in presenza di disturbo. 
 
Si considera un ulteriore esempio di traiettoria non presentata durante la fase 
di addestramento della rete neurale HMLP e si riportano i risultati ottenuti in 
presenza ed in assenza di disturbo. 
  
 
 
 
 
 
 
 
 
 
 
Figura 6.14: Confronto tra le parti scalari dei quaternioni errore per                                    
                                           una traiettoria di checking. 
  
 
 
 
 
 
 
 
 
 
 
Figura 6.15: Confronto tra le parti scalari dei quaternioni errore per 
                                           una traiettoria di checking in presenza di disturbo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 6.16: Errore su kz e sull’angolo finale per una traiettoria 
                                              di checking con e senza disturbo. 
 
0 2 4 6 8 10
-0.35
-0.3
-0.25
-0.2
-0.15
-0.1
-0.05
0
ax=( 0.4053,0.5610,0.7218), theta=94°.12'
errore
t
PD+HMLP+d
PD+d
0 5 10
-1
-0.5
0
0.5
1
0 5 10
-1
-0.5
0
0.5
1
0 5 10
0
0.5
1
1.5
2
0 5 10
0
0.5
1
1.5
2
ax=(0.4053,0.5610,0.7218),theta=94°.12'
errore su kz errore su kz con disturbo
riferimento riferimento
PD+HMLP
PD
PD+HMLP+d
PD+d
tt
errore sull'angolo
t
errore sull'angolo con disturbo
t
PD+HMLP
PD
riferimento riferimento
PD+d
PD+HMLP+d
 0 5 10
-0.5
0
0.5
0 5 10
-0.5
0
0.5
0 5 10
-1
-0.5
0
0.5
1
0 5 10
-1
-0.5
0
0.5
1
errore su kx 
t 
ax=(0.4053,0.5610,0.7218),theta=94°.12' 
errore su kx con disturbo 
t 
riferimento 
PD+HMLP 
PD 
PD+HMLP+d 
PD+d 
errore su ky con disturbo 
errore su ky 
PD+HMLP 
PD 
riferimento 
riferimento 
PD+HMLP+d 
PD+d 
riferimento 
t 
t 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 6.17: Errore su kx e ky per una traiettoria di checking 
                                                con e senza disturbo. 
 
 
6.4 Conclusioni 
 
E’ stato proposto uno schema di controllo in retroazione (che utilizza un 
regolatore standard PD) per posizione, velocità ed assetto di un veicolo 
sottomarino autonomo AUV, in cui è realizzata un’azione di controllo in 
avanti (feedforward) per l’assetto tramite una rete neurale in algebra 
quaternionica HMLP. Il controllo in feedforward permette di ottenere una 
migliore compensazione delle non linearità del modello senza compromettere 
la stabilità ad anello chiuso. 
Il compito del controllo in retroazione è quello di compensare l’effetto di 
disturbi esterni e l’effetto di incertezze nel modello, inoltre questo tipo di 
controllo garantisce la stabilità ad anello chiuso. 
 Si è utilizzato il quaternione unitario per esprimere l’orientamento del veicolo 
sottomarino, infatti l’utilizzo dell’algebra dei quaternioni comporta una 
riduzione del peso computazionale legata anche ad un numero minore di 
parametri considerati per descrivere l’orientamento del veicolo; inoltre, come 
è stato affermato nel capitolo 2, la rappresentazione delle rotazioni nello 
spazio mediante il quaternione unitario include il minimo numero di parametri 
per rappresentare l’assetto senza singolarità. L’utilizzo di una rete   HMLP   
introduce    dei   vantaggi   notevoli   dal   punto  di   vista computazionale 
rispetto alla corrispondente rete MLP. La rete HMLP richiede un numero più 
basso di parametri reali rispetto alla corrispettiva rete MLP, il che comporta 
un miglioramento per quel che concerne la convergenza dell’algoritmo di 
apprendimento ed una riduzione della probabilità di stallo in un minimo 
locale. Infatti nel caso di una rete neurale MLP, dopo aver applicato la 
procedura del trial and error per determinare il corretto numero di neuroni 
hidden, si ottiene una rete MLP con sei neuroni hidden, sette ingressi, e tre 
uscite. Questa rete contiene 60 pesi reali, mentre la corrispettiva rete HMLP 
ha sei quaternioni che costituiscono i pesi, che corrispondono a 24 parametri 
reali da determinare mediante l’algoritmo di apprendimento; pertanto la rete 
neurale HMLP richiede un numero minore di cicli di apprendimento. 
Effettuando le simulazioni utilizzando la funzione newff  per creare la rete 
neurale MLP, stabilire le funzioni di attivazione (logsig e purelin in questo 
caso) e la funzione utilizzata per l’apprendimento (traingd in questo caso) si 
ottiene un errore di circa 0.07 dopo un numero di cicli di apprendimeto pari 
circa a 3000. 
Per misurare le performance del sistema di controllo è stato fatto un confronto 
tra le parti scalari dei quaternioni errore (ottenuti svolgendo il prodotto 
rispettivamente tra il quaternione unitario che rappresenta l’orientamento 
desiderato e l’inverso del quaternione unitario che esprime l’orientamento 
 effettivo), quando è presente l’azione del solo controllore PD e quando invece 
agisce il controllore PD+HMLP; inoltre, considerando sempre l’azione 
separata PD e PD+HMLP, sono state misurate le differenze tra asse/angolo 
finale desiderato e asse/angolo finale effettivo. Trascurando inizialmente 
l’effetto di eventuali disturbi esterni sul veicolo, dal confronto tra i risultati 
ottenuti considerando dapprima solamente l’effetto del controllore PD e in 
seguito l’azione di controllo globale (PD + HMLP) si nota, in quest’ultimo 
caso, un miglioramento nel controllo dell’assetto sia per traiettorie presentate 
durante la fase di allenamento della rete neurale quaternionica, sia per 
traiettorie “nuove” per la rete HMLP.  
Dalle figure (6.15-6.17) si vede che nel caso in cui un disturbo esterno agisce 
sul veicolo le prestazioni del sistema di controllo peggiorano sia nel caso di 
utilizzo del solo controllore PD, sia nel caso in cui ci si riferisce al controllore 
PD+HMLP, tuttavia in quest’ultimo caso si ha comunque un leggero 
miglioramento. 
Infine sono stati calcolati gli errori quadratici medi per dieci traiettorie (le 
prime tre appartenenti al learning set, le rimanenti sono traiettorie di 
checking) e si è fatto un ulteriore confronto tra le prestazioni dei due 
controllori PD e PD+HMLP, in assenza ed in presenza di disturbo esterno 
agente sul veicolo sottomarino. I risultati, riportati nelle seguenti tabelle 6.1-2  
e rappresentati graficamente mediante gli istogrammi delle figure 6.18-19, 
costituiscono un ulteriore conferma dei miglioramenti apportati dall’utilizzo 
della rete neurale HMLP. 
 
 
 
 
 
 
 
 tr. angolo iniziale asse PD PD+HMLP 
1 1.7826 [0.85 0.51 0.02] 0.0798 0.0323 
2 1.6428 [0.40 0.56 0.72] 0.0834 0.0430 
3 0.3459 [0.93 0.25 0.24] 0.0016 2.9103e-004 
4 0.2740 [0.63 0.33 0.69] 0.0012 2.0892e-004 
5 0.2778 [0.30 0.29 0.90] 0.0013 5.4154e-004 
6 1.8436 [0.85 0.20 0.47] 0.0634 0.0356 
7 0.5444 [0.25 0.01 0.96] 0.0050 0.0032 
8 1.8709 [0.68 0.30 0.66] 0.0867 0.0508 
9 0.8658 [0.23 0.59 0.77] 0.0143 0.0099 
10 0.9172 [0.66 0.71 0.20] 0.0151 0.0036 
 
Tabella 6.1: Errori quadratici medi per i due schemi di controllo: PD e PD+HMLP.  
                             Nessun disturbo esterno agisce sul sistema. 
 
tr. angolo iniziale asse PD+d PD+HMLP+d 
1 1.7826 [0.85 0.51 0.02] 0.1025 0.0377 
2 1.6428 [0.40 0.56 0.72] 0.0954 0.0496 
3 0.3459 [0.93 0.25 0.24] 0.0026 0.0012 
4 0.2740 [0.63 0.33 0.69] 0.0021 9.9133e-004 
5 0.2778 [0.30 0.29 0.90] 0.0022 0.0013 
6 1.8436 [0.85 0.20 0.47] 0.0690 0.0417 
7 0.5444 [0.25 0.01 0.96] 0.0063 0.0045 
8 1.8709 [0.68 0.30 0.66] 0.0973 0.0581 
9 0.8658 [0.23 0.59 0.77] 0.0167 0.0119 
10 0.9172 [0.66 0.71 0.20] 0.0177 0.0056 
 
 
Tabella 6.2: Errori quadratici medi per i due schemi di controllo: PD e PD+HMLP.  
                             Un disturbo esterno agisce sul sistema. 
 
 
 
 
 
 
 
 Utilizzando i risultati riportati nelle tabelle precedenti è possibile ottenere i 
seguenti istogrammi: 
 
Figura.6.18: Istogramma degli errori quadratici medi per i due schemi di controllo: PD e 
                          PD+HMLP. Nessun disturbo esterno agisce sul veicolo. 
 
Figura.6.19: Istogramma degli errori quadratici medi per i due schemi di controllo: PD e 
                          PD+HMLP. Un disturbo esterno agisce sul veicolo. 
 
Nella successiva Appendice A è riportata una raccolta di 25 AUVs esistenti 
per dare un’idea dello stato dell’arte per quanto riguarda i veicoli sottomarini. 
Infine l’Appendice B raccoglie gli schemi SIMULINK e i listati software   
(M-files) del sistema di controllo, nonché gli M-files relativi alla rete neurale 
quaternionica. 
0
0,02
0,04
0,06
0,08
0,1
13579
PD
PD+HMLP
0
0,02
0,04
0,06
0,08
0,1
0,12
13579
PD+d
PD+HMLP+d