Sei sulla pagina 1di 184

Appunti del Corso di Robotica

Tratti dal corso tenuto dal Prof. Antonio Bicchi


Versione Provvisoria del 15 Dicembre 2006
2 Antonio Bicchi. Robotica. Versione del 15 Dicembre 2006
Indice
I Cinematica 5
1 Moti rigidi 7
1.1 Descrizione dei moti rigidi . . . . . . . . . . . . . . . . . . . . 7
1.1.1 Traslazioni . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.2 Rotazioni . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1.3 Rotazioni elementari . . . . . . . . . . . . . . . . . . . 16
1.1.4 Composizione di Rotazioni . . . . . . . . . . . . . . . . 18
1.1.5 Trasformazioni Rigide Generali . . . . . . . . . . . . . 29
1.1.6 Trasformazioni Omogenee . . . . . . . . . . . . . . . . 29
2 Cinematica dei Bracci Articolati 35
2.1 Cinematica diretta dei bracci seriali . . . . . . . . . . . . . . . 36
2.1.1 Convenzione di Denavit-Hartenberg . . . . . . . . . . . 37
3 Cinematica Dierenziale 49
3.1 Cinematica dierenziale del corpo rigido . . . . . . . . . . . . 49
3.2 Statica del corpo rigido . . . . . . . . . . . . . . . . . . . . . . 52
3.2.1 Dualit`a Cineto-Statica . . . . . . . . . . . . . . . . . . 54
3.3 Cinematica dierenziale delle catene aperte . . . . . . . . . . . 55
3.3.1 Caratterizzazione analitica e matrici jacobiane . . . . . 55
3.3.2 Caratterizzazione cinematica . . . . . . . . . . . . . . . 55
3.3.3 Caratterizzazione geometrica . . . . . . . . . . . . . . . 56
3.3.4 Caratterizzazione statica . . . . . . . . . . . . . . . . . 57
4 Manipolatori con catene cinematiche chiuse 59
4.1 Geometria delle catene chiuse . . . . . . . . . . . . . . . . . . 61
4.1.1 Cinematica diretta e inversa . . . . . . . . . . . . . . . 63
4.1.2 Esempio: Catena chiusa planare RPRRR . . . . . . . . 64
4.2 Indici di Manipolabilit`a . . . . . . . . . . . . . . . . . . . . . . 70
3
4 Antonio Bicchi. Robotica. Versione del 15 Dicembre 2006
5 Controllo di Manipolatori 75
5.1 Controllo di Posizione di Manipolatori con dinamica certa . . 75
5.1.1 Controllo a Coppia Calcolata nello spazio dei giunti . . 75
5.1.2 Controllo a Coppia Calcolata nello spazio operativo . . 76
5.1.3 Esempi . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.2 Controllo di Manipolatori con incertezze sulla dinamica . . . . 78
5.2.1 Robustezza del controllo a coppia calcolata . . . . . . . 79
5.2.2 Controllo alla Arimoto o PD ai giunti con compen-
sazione di gravit`a . . . . . . . . . . . . . . . . . . . . . 81
5.2.3 Controllo Robusto o a Struttura Variabile . . . . . . . 84
5.2.4 Controllo Adattivo alla Craig . . . . . . . . . . . . . . 86
5.2.5 Controllo Adattivo alla Li-Slotine . . . . . . . . . . . . 89
6 Sistemi Nonlineari 93
6.1 Scatola degli attrezzi matematici . . . . . . . . . . . . . . . . 93
6.2 Distribuzioni e Codistribuzioni . . . . . . . . . . . . . . . . . . 103
6.3 Raggiungibilit`a dei Sistemi Nonlineari . . . . . . . . . . . . . . 111
6.4 Osservabilit`a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
7 Controllo di Sistemi Nonlineari 127
7.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.2 Linearizzazione Input-Stati . . . . . . . . . . . . . . . . . . . . 127
7.2.1 Procedura Operativa (Sistemi SISO) . . . . . . . . . . 137
7.2.2 Linearizzazione Ingresso-Uscita . . . . . . . . . . . . . 139
7.3 Inseguimento di traiettorie . . . . . . . . . . . . . . . . . . . . 146
7.4 Linearizzazione in retroazione MIMO . . . . . . . . . . . . . . 148
7.5 Pendolo inverso . . . . . . . . . . . . . . . . . . . . . . . . . . 153
7.5.1 Modello sico . . . . . . . . . . . . . . . . . . . . . . . 153
7.5.2 Linearizzazione approssimata . . . . . . . . . . . . . . 154
7.5.3 Linearizzazione esatta . . . . . . . . . . . . . . . . . . 155
7.5.4 Confronto tra i due metodi di linearizzazione . . . . . . 157
7.5.5 Linearizzazione in feedback . . . . . . . . . . . . . . . 158
7.5.6 Linearizzazione standard . . . . . . . . . . . . . . . . . 158
7.5.7 Controllo con K=12.5 e K=100 . . . . . . . . . . . . . 159
7.5.8 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . 159
A Appendice: Richiami di Algebra Lineare 179
A.0.9 Altre applicazioni della SVD . . . . . . . . . . . . . . . 183
Parte I
Cinematica
5
Capitolo 1
Moti rigidi
1.1 Descrizione dei moti rigidi
Si consideri uno spazio vettoriale IR
3
, sui cui elementi (che saranno indicati da
lettere sottolineate come v, w solo in contesti in cui possa nascere ambiguit`a)
sono denite le operazioni di somma e prodotto sul campo dei reali con le
note propriet`a:
v +w IR
3
, v, w IR
3
v IR
3
, IR
(v +w) = v +w,
( +)v = v +v, IR
Si associa ai vettori di questo spazio la nozione geometrica di segmenti di
retta di lunghezza e verso assegnati. Coppie di vettori individuano un angolo
nel piano generato dai loro rispettivi segmenti.
Altre importanti operazioni denite sui vettori sono le seguenti
Prodotto interno (o scalare):
v, w) : IR
3
IR
3
IR
v, w) = |v||w| cos( v, w)
Prodotto vettoriale:
v w : IR
3
IR
3
IR
3
dove il vettore risultante dal prodotto ha modulo
|v w| = |v||w|[ sin( v, w)[,
direzione perpendicolare al piano individuato da v e w, e verso determinato
dalla regola della mano destra.
7
8
Si ssi nello spazio un sistema di riferimento cartesiano, individu-
ata dalla posizione della sua origine O e dai versori dei suoi assi coor-
dinati i
1
, i
2
, i
3
. Si indicher`a perci`o ad esempio una terna B esplicita-
mente con (O
B
, i
B
1
, i
B
2
, i
B
3
) (in alternativa, si potranno incontrare le notazioni
(O
B
, i
B
, j
B
, k
B
) ovvero (O, x, y, z)
B
).
Un versore `e un vettore di lunghezza
unitaria, talch`e si ha
_
i
j
, i
j
_
= 1, j =
1, 2, 3.
La ortogonalit`a delle terne cartesiane
implica che
_
i
j
, i
k
_
= 0, j ,= k.
Una terna cartesiana `e detta destrorsa
se i
1
i
2
= i
3
, sinistrorsa se i
1
i
2
=
i
3
.
I vettori sono rappresentabili in coordinate da una terna di numeri
reali, ad esempio
B
v = (
B
v
1
,
B
v
2
,
B
v
3
)
T
. Al solito, la base delle coordinate
sar`a omessa quando non si crei ambiguit`a. Usando le rappresentazioni di
vettori in coordinate si possono dare formule per il calcolo delle operazioni
sopra denite:
Prodotto per uno scalare: v = (v
1
, v
2
, v
3
)
T
;
Somma: v +w = (v
1
+w
1
, v
2
+w
2
, v
3
+w
3
)
T
;
Prodotto scalare:
v, w) = v
T
w = v
1
w
1
+v
2
w
2
+v
3
w
3
Prodotto vettoriale:
v w =
_

_
v
2
w
3
v
3
w
2
v
3
w
1
v
1
w
3
v
1
w
2
v
2
w
1
_

_.
Il prodotto vettoriale pu`o essere anche scritto in forma matriciale:
v w = v w
dove v `e la matrice
v =
_

_
0 v
3
v
2
v
3
0 v
1
v
2
v
1
0
_

_. (1.1)
9
Si osservi che v = v
T
, quindi la matrice v `e antisimmetrica. Talvolta al
posto del simbolo v si incontra S(v).
Consideriamo i corpi rigidi come insiemi di punti dello spazio sico
tridimensionale. Su questo spazio indichiamo con d(p, q) la distanza Euclidea
tra due punti p e q. Indicheremo lo spazio Euclideo dei punti con E
3
.
Fissato un sistema di coordinate su questo spazio, possiamo associare ad
ogni punto una terna di numeri reali: per un punto p la posizione rispetto
al sistema di coordinate B sar`a indicata da
B
p, ed `e convenzionalmente
scritta in colonna:
B
p =
_

_
B
p
1
,
B
p
2
,
B
p
3
_

_
Si deve in generale distinguere il punto sico p dalla terna di numeri
B
p che lo rappresenta in B, anche se si ometter`a talvolta di citare esplici-
tamente il sistema di coordinate quando esso sar`a chiaro dal contesto. Dati
due punti in coordinate (qualsiasi, purche comuni), e.g. p = (p
1
, p
2
, p
3
) e
q = (q
1
, q
2
, q
3
), la loro distanza euclidea `e data da
d(p, q) = |p q| =
_
(p
1
q
1
)
2
+ (p
2
q
2
)
2
+ (p
3
q
3
)
2
.
N.B. Nonostante la notazione in forma di colonna sia simile per punti e
vettori posizionali, i punti sono oggetti completamente dierenti dai vettori.
I vettori sono elementi di uno spazio vettoriale, che `e uno spazio chiuso
rispetto al prodotto per uno scalare e alla somma. Le semplici operazioni
sopra denite non sono applicabili alle terne di numeri che rappresentano
punti, senza alterare la nozione sica delloggetto rappresentato (il punto):
si pensi ad esempio ad una ipotetica somma di punti, cui non corrisponde
alcun senso sico.
`
E comunque possibile associare in modo del tutto naturale ad una coppia
di punti q, p un vettore
q
p, assegnando a questo una lunghezza pari alla
distanza tra i punti, una direzione parallela al segmento che li unisce e un
verso diretto dal primo al secondo dei punti.
In coordinate, il vettore
q
p associato alla coppia di punti p, q ha una
espressione particolarmente semplice:
q
p =
_

_
p
1
q
1
p
2
q
2
p
3
q
3
_

_,
cio`e `e pari alla dierenza delle espressioni in coordinate dei punti.
10
Si scrive talvolta
q
p = p q, anche se a questa dierenza tra punti `e da
associarsi una interpretazione puramente geometrica e non algebrica: p q
`e un vettore e non un punto, e a questa dierenza non corrisponde alcuna
operazione di addizione tra punti, come gi`a osservato.
La notazione che useremo per i punti ed i vettori `e la seguente:
lapice a destra `e usato per individuare il corpo o la congurazione a
cui ci si riferisce;
lapice a sinistra indica rispetto a quale sistema di riferimento si mis-
urano le componenti della grandezza;
il pedice a destra di uno scalare indica di quale componente si tratta
(lungo gli assi x
1
, x
2
o x
3
, ovvero x, y, z);
il pedice a destra di un versore indica lasse da esso generato.
La notazione `e illustrata nelle gure seguenti:
Sui punti di E
3
possono agire trasformazioni g : E
3
E
3
di natura
diversa. Una trasformazione che sia continua, dierenziabile con continuit`a
un numero illimitato di volte, invertibile con inversa anchessa C

si dice un
dieomorsmo.
Una trasformazione g() denita sui punti di E
3
`e associata ad una sec-
onda trasformazione (aggiunta) g

() che agisce invece sui vettori dello spazio


R
3
associato, secondo la denizione
g

(
q
p) = g

(p q) = g(p) g(q).
Se una trasformazione lascia inalterato il prodotto scalare tra i vettori,
cio`e se
g

(v)
T
g

(w) = v
T
w v, w
la trasformazione viene detta isometrica.
11
Una isometria mantiene invariate le lunghezze dei vettori e gli angoli tra
i vettori: questo discende ovviamente dal fatto che
_

_
|v|
2
= v, v)
cos( vw) =
v,w
vw
.
Si denisce trasformazione rigida una g() tale che
1. mantiene invariate le distanze tra i punti
|g(p) g(q)| = |p q| p, q
2. mantiene invariato il prodotto vettoriale
g

(v w) = g

(v) g

(w) (1.2)
Le trasformazioni rigide sono isometrie. Infatti,
_

_
v
T
w =
1
4
(|v +w|
2
|v w|
2
)
=
1
4
(|g

(v) +g

(w)|
2
|g

(v) g

(w)|
2
)
= g

(v)
T
g

(w)
.
Tra le isometrie la condizione (1.2) esclude quelle che potrebbero trasformare
una terna destrorsa in una sinistrorsa.
1.1.1 Traslazioni
Consideriamo una regione di spazio (pensata come un corpo) in una certa
congurazione iniziale, come descritta ad esempio rispetto ad una terna carte-
siana 0 ssa. Si applichi a tutti i punti di questo corpo una trasformazione
del tipo g(p) = p + m. Il generico punto p
0
risulta quindi trasformato in
p
1
= p
0
+ m (vedi g.1.1) In particolare, applicando la trasformazione alla
origine O di un sistema di riferimento solidale al corpo, si ha che il vettore di
traslazione pu`o essere interpretato come il vettore che unisce la vecchia alla
nuova posizione della origine: m =
O
0 O
1
Verichiamo che questa trasformazione rappresenta un moto rigido:
|g(p) g(q)| = |p +mq m| = |p q|
g

(v) g

(w) = g

(v
1
v
0
) g

(w
1
w
0
) = (v
1
+mv
0
m) (w
1
+
mw
0
m) = v w = g

(v w).
12
Figura 1.1: Un esempio di traslazione:
B
p
0
= (1 , 1 , 1)
T
, m = (0 , 10 , 5)
T

B
p
1
= (1 , 11 , 6)
T
.
Figura 1.2: Esempio di traslazione di sistemi di riferimento:
1
p =
(2 , 9 , 1)
T
, m = (0 , 10 , 2)
T

0
p = (2 , 1 , 3)
T
.
Si noti che, mentre g(p) = p +m, g

(v) = v. Inoltre, la trasformazione di


traslazione rigida esprime il punto p
1
immagine (dopo la traslazione) del
punto p
0
come p
1
= p
0
+ m. Se applicata a tutti i punti di un corpo,
esso `e quindi soggetto ad una trasformazione rigida, che non ne deforma
le lunghezze n`e gli angoli. Le coordinate di p
0
e di p
1
sono sempre riferite
allo stesso sistema di riferimento di base (ad esempio B in gura), che non
`e esplicitamente indicato.
La trasformazione di traslazione rigida esprime anche le coordinate di un
punto immobile p, inizialmente espresso in coordinate rispetto al riferimento
1, quando il riferimento stesso trasla in 0:
0
p = g(
1
p) =
1
p+m. Si veda
ad esempio la g.1.2
13
1.1.2 Rotazioni
Consideriamo lesecuzione di una ro-
tazione rigida su un corpo, cui pen-
siamo solidale un riferimento carte-
siano individuato inizialmente da
(O
0
, i
0
1
, i
0
2
, i
0
3
). Supponiamo che la ro-
tazione sia fatta attorno alla origine
e porti il riferimento in (O
1
, i
1
1
, i
1
2
, i
1
3
),
con O
1
= O
0
.
In particolare, vogliamo descrivere lazione della trasformazione sul gener-
ico punto, in posizione iniziale p
0
e nale p
1
: useremo a questo scopo le
coordinate iniziali 0.
Ricordando che le coordinate rispetto alla terna solidale restano costanti
(il moto `e rigido), possiamo scrivere
1
_
p
0
= p
1
i
0
1
+p
2
i
0
2
+p
3
i
0
3
p
1
= p
1
i
1
1
+p
2
i
1
2
+p
3
i
1
3
.
Nei rispettivi sistemi di riferimento, le coordinate dei versori base sono:
0
i
0
1
=
1
i
1
1
=
_

_
1
0
0
_

_ ,
0
i
0
2
=
1
i
1
2
=
_

_
0
1
0
_

_ ,
0
i
0
3
=
1
i
1
3
=
_

_
0
0
1
_

_
I versori di 1 espressi in terna 0 hanno invece coordinate date dai
rispettivi coseni direttori
1
in questa equazione, i sistemi di riferimento sono omessi, perche indierenti purch`e
coerenti. Inoltre, luguaglianza apparente di un punto con una somma di vettori deve essere
interpretata come se nei membri destri delle equazioni fosse sommato il punto origine del
sistema di riferimento, che si omette in quanto ha coordinate nulle.
14
0
i
1
1
=
_

_
cos
11
cos
12
cos
13
_

_ ,
0
i
1
2
=
_

_
cos
21
cos
22
cos
23
_

_ ,
0
i
1
3
=
_

_
cos
31
cos
32
cos
33
_

_ .
Il punto p
1
in coordinate 0 `e quindi espresso come:
0
p
1
= p
1
0
i
1
1
+p
2
0
i
1
2
+p
3
0
i
1
3
=
_
0
i
1
1
0
i
1
2
0
i
1
3
_
_

_
p
1
p
2
p
3
_

_ =
0
R
(10) 0
p
0
.
La matrice
0
R
(10)
=
_
0
i
1
1
0
i
1
2
0
i
1
3
_
`e detta matrice di rotazione tra le congurazioni 0 e 1. Una rotazione
agisce dunque sui punti di un corpo mediante una trasformazione lineare:
p
1
= R
(10)
p
0
.
Consideriamo ora lespressione in coordinate 0 di un punto p le cui co-
ordinate in 1 sono
1
p. Sussiste la seguente relazione tra le coordinate nei
due sistemi:
0
p =
_

_
0
i
T
1
(
1
i
1
1
1
p
1
+
1
i
1
2
1
p
2
+
1
i
1
3
1
p
3
)
0
i
T
2
(
1
i
1
1
1
p
1
+
1
i
1
2
1
p
2
+
1
i
1
3
1
p
3
)
0
i
T
3
(
1
i
1
1
1
p
1
+
1
i
1
2
1
p
2
+
1
i
1
3
1
p
3
)
_

_
=
0
R
1
1
p =
_
0
i
1
1
0
i
1
2
0
i
1
3
_
1
p
15
Quindi, il cambiamento delle coordinate da 1 a 0 `e ottenuto medi-
ante una applicazione lineare la cui matrice
0
R
1
coincide con la matrice di
rotazione da 0 a 1,
0
R
1
=
0
R
(10)
.
Ogni rotazione `e associata ad una matrice 33, cio`e a 9 parametri. Questi
non sono per`o indipendenti tra loro, dovendo essere vericate tra le colonne
le seguenti condizioni:
_

_
i
T
1
i
1
= i
T
2
i
2
= i
T
3
i
3
= 1
i
T
1
i
2
= i
T
1
i
3
= i
T
2
i
3
= 0
(1.3)
che equivalgono a 6 relazioni indipendenti. Rimangono quindi solo 3 parametri
indipendenti con i quali si pu`o descrivere una rotazione.
Rappresentazioni di rotazioni che utilizzano solo 3 parametri sono dette
rappresentazioni minime e saranno discusse in seguito.
Dalle 6 relazioni precedenti (1.3) segue direttamente che
0
i
1

0
i
2
=
0
i
3
.
La scelta del segno positivo `e obbligata dalla denizione di trasformazione
rigida, in particolare dalla necessit`a di mantenere lorientamento delle terne.
In termini matriciali, le 6 relazioni scalari possono essere scritte compat-
tamente
R
T
R = I
_

_
i
T
1
i
T
2
i
T
3
_

_
_
i
1
i
2
i
3
_
=
_

_
1 0 0
0 1 0
0 0 1
_

_.
La matrice di rotazione risulta quindi ortogonale:
R
T
= R
1
.
Linsieme delle matrici ortogonali di ordine n `e detto O(n); quindi le matrici
di rotazione in IR
3
appartengono ad O(3). Questo insieme, con la legge di
composizione data dal prodotto matriciale, `e un gruppo. Infatti valgono le
seguenti propriet`a:
chiusura R
1
R
2
O(3) , R
1
, R
2
O(3)
identit`a I O(3) , RI = R
esistenza della inversa RX = I X = R
T
O(3)
associativit`a R
1
(R
2
R
3
) = (R
1
R
2
)R
3
16
Tale gruppo non `e abeliano: R
1
R
2
,= R
2
R
1
.
Ovviamente vale inoltre (detR)
2
= 1. La condizione i
1
i
2
= +i
3
equivale
ad imporre detR = 1. Anche il sottosinsieme di O(3) delle matrici ortogo-
nali per le quali detR = 1 `e un (sotto)gruppo, detto delle matrici speciali
ortogonali di dimensione 3, indicato con SO(3).
Una rotazione `e una trasformazione rigida, infatti:
g
R
(v) = Rp
1
Rp
0
= R(p
1
p
0
) = Rv
|g
R
(v)| = |Rv| = (v
T
R
T
Rv)
1
2
= (v
T
v)
1
2
= |v|
g
R
(v w) = R(v w) = Rv Rw
(le ultime due relazioni non valgono per matrici qualsiasi!)
Le matrici in O(3) con determinante negativo rappresentano altre isome-
trie, che sono dette trasformazioni di specularit`a. Si osservi ad esempio
leetto della applicazione di una trasformazione g(p) = Sp con
S =
_

_
1 0 0
0 1 0
0 0 1
_

_
ad un corpo, come mostrato nella gura seguente:
1.1.3 Rotazioni elementari
Si considerino tre esempi particolarmente semplici di rotazioni, eettuate at-
torno a ciascuno degli assi di riferimento. Nel caso di rotazione attorno a x
1
di , indicando con S

e C

rispettivamente sin e cos , si ha


17
0
i
1
1
=
_

_
1
0
0
_

_;
0
i
1
2
=
_

_
0
C

_ ;
0
i
1
3
=
_

_
0
S

_ ;
Quindi
0
R
1
= Rot(x
1
, ) =
_

_
1 0 0
0 C

0 S

_
Per le altre rotazioni elementari si ottiene:
Rot(x
2
, ) =
_

_
C

0 S

0 1 0
S

0 C

_,
Rot(x
3
, ) =
_

_
C

0
S

0
0 0 1
_

_.
Esempio. Le rotazioni di /2 attorno allasse x
3
e x
2
sono espresse
rispettivamente dalle matrici
Rot(x
3
, /2) =
_

_
0 1 0
1 0 0
0 0 1
_

_, Rot(x
2
, /2) =
_

_
0 0 1
0 1 0
1 0 0
_

_
ed agiscono sui punti di un solido come in gura .
18
1.1.4 Composizione di Rotazioni
Si consideri un corpo rigido inizial-
mente orientato secondo una terna
cartesiana i
0
1
, i
0
2
, i
0
3
.
Lo si ruoti sulla terna i
1
1
, i
1
2
, i
1
3
di
modo che per un suo generico punto
si abbia
0
p
1
=
0
R
(10) 0
p
0
Lo si ruoti di nuovo sino a portarlo
nella orientazione i
2
1
, i
2
2
, i
2
3
.
Si avr`a:
0
p
2
=
0
R
(21) 0
p
1
quindi
0
p
2
=
0
R
(21) 0
R
(10) 0
p
0
.
Dunque la rotazione per portare la congurazione 0 in 2 `e data da:
0
R
(20)
=
0
R
(21) 0
R
(10)
.
Pertanto:
Le rotazioni rigide di un corpo si compongono per premoltiplicazione delle
matrici di rotazione scritte in assi ssi, cio`e in termini della terna iniziale.
19
Ad esempio, per Rot(x
1
, ) si intende Rot(x
0
1
, ).
Esempio. Applicando due rotazioni elementari in diversa sequenza, i
risultati sono ovviamente diversi:
Rot(x
2
, /2)Rot(x
3
, /2) =
_

_
0 0 1
1 0 0
0 1 0
_

_, Rot(x
3
, /2)Rot(x
2
, /2) =
_

_
0 1 0
0 0 1
1 0 0
_

_
A volte `e utile esprimere le singole rotazioni riferendosi non alla terna
iniziale, ma alle terne via via incontrate lungo lesecuzione del moto. Si dice
in questo caso che le rotazioni sono espresse in termini di terna corrente.
Si ruoti il corpo dalla terna iniziale
0 alla terna 1 attraverso la ro-
tazione
0
R
(10)
: ad esempio, per s-
sare le idee, si consideri
0
R
(10)
=
Rot(x
0
1
,
0
). Si avr`a quindi
0
p
1
=
0
R
(10) 0
p
0
Per ruotarla ora in 2 mediante
1
R
(21)
(ad esempio,
1
R
(21)
=
Rot(x
1
1
,
1
)), si deve esprimere p
1
in co-
ordinate 1.
Scriviamo quindi
0
p
2
=
0
R
1
1
R
(21) 1
R
0
0
R
(10) 0
p
0
.
Tenendo conto della relazione sopra vista per cui la matrice di cambio di co-
ordinate e quella di rotazione tra due riferimenti sono luna inversa dellaltra,
20
si ha dunque
0
p
2
=
0
R
(10) 1
R
(21) 0
p
0
=
0
R
1
1
R
2
0
p
0
.
Di conseguenza, le rotazioni rigide di un corpo espresse in terna corrente si
compongono per postmoltiplicazione
In base a quanto visto, le matrici di SO(3) corrispondono esattamente
alle rotazioni rigide - nel senso che ad ogni matrice corrisponde una e una
sola rotazione, e viceversa.
La rappresentazione matriciale daltronde, che utilizza nove parametri
non indipendenti, pu`o presentare alcuni inconvenienti, tra i quali:
non `e molto intuitiva, dovendo ricorrere alle espressioni in coordinate
dei versori degli assi delle terne;
non `e molto robusta numericamente (una procedura numerica che debba
calcolare i valori di una matrice di rotazione pu`o produrre lievi errori
che fanno s` che il risultato non sia in eetti in SO(3), introducendo
quindi deformazioni dei corpi.
`
E quindi molto importante avere a disposizione altre rappresentazioni
delle rotazioni, che possano ovviare ad alcuni di questi inconvenienti.
Si `e osservato che la dimensione della variet`a che rappresenta le matrici or-
togonali speciali, cio`e le rotazioni, `e 3. Una rappresentazione dellorientamento
in termini di tre soli parametri indipendenti ne costituisce pertanto una rap-
presentazione minima.
Sono possibili alcune diverse rappresentazioni minime, tra cui le pi` u fre-
quentemente utilizzate sono quelle degli angoli di Eulero e degli angoli di
Roll-Pitch-Yaw.
Angoli di Eulero
Gli angoli di Eulero forniscono una rappresentazione minima dellorientamento
componendo tre rotazioni elementari espresse rispetto ad assi di terna cor-
rente. La sequenza degli assi attorno a cui si ruota determina il particolare
tipo di rappresentazione.
La pi` u comune `e la sequenza Z-Y-Z
2
, composta da una rotazione di
attorno allasse z, seguita da una rotazione di attorno allasse y del sistema
solidale al corpo in moto, seguita inne da una nuova rotazione di attorno
allasse z dello stesso sistema mobile.
2
Nel seguito, per aderire a convenzioni largamente usate, denoteremo gli assi dei rifer-
imenti cartesiani con x, y, z invece che con x
1
, x
2
, x
3
, ed i corrispondenti versori con i, j, k
invece che con i
1
, i
2
, i
3
.
21
Anche una terna di angoli come quelli dati sia una perfetta rappre-
sentazione delle rotazioni, si deve vericare che al variare dei tre parametri
lorientamento nale della terna possa eettivamente assumere valori arbi-
trari, e che ad ogni possibile orientazione corrisponda una e una sola terna di
angoli. Per vericare queste condizioni, possiamo usare la rappresentazione
delle rotazioni mediante il gruppo SO(3).
La rotazione nale viene costruita nella costruzione di Eulero per compo-
sizione di tre rotazioni elementari:
si ruota la terna 0 dellangolo intorno allasse z: Rot(z, ).
si ruota la terna 1 dellangolo intorno allasse y corrente: Rot(y, ).
si ruota la terna 2 dellangolo intorno allasse z corrente: Rot(z, ).
La matrice di rotazione complessiva `e ottenuta quindi componendo per
postmoltiplicazione le matrici delle rotazioni elementari eettuate, e vale
R
ZY Z
(, , ) = Rot(z, )Rot(y, )Rot(z, )
=
_

_
C

+C

+C

_
Sia ora assegnata una data matrice di rotazione, nella forma
R =
_

_
r
11
r
12
r
13
r
21
r
22
r
23
r
31
r
32
r
33
_

_ SO(3)
Vogliamo trovare (se possibile) valori per gli angoli di Eulero tali per cui
R
ZY Z
(, , ) = R. Bisogna distinguere due casi:
22
r
2
13
+ r
2
23
= sin
2
,= 0. Si pu`o avere
quindi una soluzione con 0 < <
(sin > 0),
_

_
= atan2(r
23
, r
13
)
= atan2(
_
r
2
13
+r
2
23
, r
33
)
= atan2(r
32
, r
31
)
oppure con < < 0 (sin < 0),
_

_
= atan2(r
23
, r
13
)
= atan2(
_
r
2
13
+r
2
23
, r
33
)
= atan2(r
32
, r
31
)
Si hanno quindi due terne possibili
per ogni rotazione assegnata, ma ogni
soluzione `e isolata.
r
2
13
+r
2
23
= 0, quindi = 0 se r
33
= 1
o = se r
33
= 1.
Per = 0 si ha cos = 1 e
_

_
= 0
+ = atan2(r
21
, r
11
)
= atan2(r
12
, r
11
)
Viceversa se = , si ottiene
cos = 1 e
_

_
=
= atan2(r
21
, r
11
)
= atan2(r
12
, r
11
)
In entrambe i casi si hanno in-
nite soluzioni essendo denita solo la
somma o la dierenza di e (le ro-
tazioni di e sono eettuate attorno
ad assi paralleli tra loro). Per ogni
soluzione ne esistono altre arbitraria-
mente vicine.
23
Angoli RPY.
La rappresentazione RPY, che trae
origine dalle applicazioni aero-navali,
`e basata sulluso di tre angoli di rollio,
beccheggio e imbardata (o virata)
Roll, Pitch, Yaw in inglese. Un pilota
denisce angolo di rollio la rotazione
attorno alla direzione corrente di prua
(asse z), angolo di beccheggio quello
rispetto ad unasse perpendicolare al
precedente nel piano del veicolo (asse
y), ed angolo di virata quello rispetto
alla perpendicolare al piano del veicolo
(asse x).
La rotazione complessiva corrisponde
a una sequenza di tre rotazioni di rol-
lio (di angolo ), beccheggio () e im-
bardata () eseguite in assi correnti.
Esplicitamente si ha
R
RPY
(, , ) = Rot(z, )Rot(y, )Rot(x, )
=
_

_
C

+S

+C

_
.
Ovviamente, `e possibile leggere la stessa matrice come la successione di una
imbardata, un beccheggio e un rollio in assi ssi. Assegnata una matrice di
rotazione
R =
_

_
r
11
r
12
r
13
r
21
r
22
r
23
r
31
r
32
r
33
_

_ SO(3),
studiamo ancora per quali angoli di RPY si pu`o ottenere R
RPY
(, , ) =
R.
Distinguiamo anche qui due casi:
24
r
2
11
+ r
2
21
,= 0, quindi cos ,= 0.
Si pu`o avere una soluzione con
[

2
,

2
],
_

_
= atan2(r
21
, r
11
)
= atan2(r
31
,
_
r
2
32
+r
2
33
)
= atan2(r
32
, r
33
)
oppure con [

2
,
3
2
],
_

_
= atan2(r
21
, r
11
)
= atan2(r
31
,
_
r
2
32
+r
2
33
)
= atan2(r
32
, r
33
)
Si hanno ancora due terne possibili per
ogni rotazione assegnata, con soluzioni
isolate.
r
2
11
+ r
2
21
= 0, quindi =

2
. Nel
primo caso si ha sin = 1 quindi
_
=

2
+ = atan2(r
23
, r
13
)
.
Nel secondo si ha sin = 1 quindi
_
=

2
= atan2(r
13
, r
23
)
.
Ancora una volta si ha una doppia in-
nit`a di soluzioni, essendo denita solo
la somma di e (le rotazioni di e
sono eettuate attorno ad assi par-
alleli tra loro). Per ogni soluzione ne
esistono altre arbitrariamente vicine.
Notazione Esponenziale
La notazione esponenziale per le rotazioni pu`o essere vista come una general-
izzazione al caso tridimensionale della notazione complessa usata per indicare
rotazioni planari.
In quel caso si ha che una rotazione R SO(2) pu`o essere espressa,
identicando IR
2
col piano complesso, secondo la notazione (talvolta detta
fasorica)
g
R
(p) = Rp =
_
C

_
p = e

p.
Lesponente usato `e un numero immaginario puro, cio`e un numero complesso
25
tale che il suo Hermitiano (il trasposto coniugato) `e uguale al suo opposto:
j = (j)
H
.
Questa notazione si generalizza ponendo R = e

, con

IR
33
antisim-
metrica (quindi tale che

H
=

).
Secondo la denizione di esponenziale di matrice, si ha
e

= I +

+

2
2!
+

3
3!
+ =
+

i=0

i
i!
La matrice antisimmetrica

`e caratterizzata da tre soli parametri indipen-
denti, che possiamo estrarre in un vettore =

, introducendo loperatore
che `e linverso di quello introdotto per la notazione matriciale dei prodotti
vettoriali. Ponendo

= , con uno scalare tale che =

abbia norma
unitaria, si ha che
_

_
=
H
=
T

2
=
T
I

3
=

4
=
2

5
=
=

2
= (1)
1

2
, = 1, 2, . . .

21
= (1)
1

. (1.4)
Applicando tali relazioni, la sommatoria che denisce lesponenziale di ma-
trice pu`o essere valutata concisamente, e si ottiene
R(, ) = e

= I + sin +
2
(1 cos)
E facile vericare che e

SO(3):
_
(e

)
T
= e

T
= e

= (e

)
1
det(e

) = 1 per = 0 = quindi, per continuit`a det(e

) = 1
Svolgendo i calcoli, si ottiene (ponendo V

= 1 cos oltre che C

=
cos ; S

= sin )
e

=
_

2
1
V

+C

2
V


3
S

3
V

+
2
S

2
V

+
3
S


2
2
V

+C

3
V


1
S

3
V


2
S

3
V

+
1
S


2
3
V

+C

_
Ancora una volta, data una generica R SO(3), si cercano i valori di e .
Vale
trace (R) = trace (e

) = C

=
r
11
+r
22
+r
33
1
2
26
da cui `e denito a meno del segno. Se R ,= I, ,= 0 e sviluppando la
equazione R R
T
= e

e

T

, si ha:
=
1
2sin()
_

_
r
32
r
23
r
13
r
31
r
21
r
12
_

_
Il vettore `e detto delle coordinate esponenziali di R.
Le coordinate esponenziali sono da considerarsi minime, anche se si uti-
lizzano quattro parametri, perche `e immediato eliminare il quarto parametro
(tornando quindi alluso del vettore );
In quanto essenzialmente ancora una rappresentazione minima, la no-
tazione esponenziale sore ancora di singolarit`a. La indeterminazione di
segno di fa s` che ad una stessa rotazione corrispondano due distinte
soluzioni, (, ) e (, ). Inoltre, se R `e lidentit`a, risulta nullo, e
`e indenito (pu`o assumere qualsiasi valore). Il problema `e praticamente ril-
evante per piccoli, che portano a malcondizionamenti numerici nel calcolo
di .
Utilizzando la notazione esponenziale, `e possibile esprimere in modo
molto compatto la rotazione che porta una terna
_
i
0
, j
0
, k
0
_
in
_
i
1
, j
1
, k
1
_
:
infatti vale il cosiddetto lemma dei versori, cio`e
< i
1
i
0
> + < j
1
j
0
> + < k
1
k
0
> = 1 + 2 cos
i
1
i
0
+j
1
j
0
+k
1
k
0
= 2 sin
Una interessante interpretazione della notazione esponenziale introdotta
pu`o venir data usando la nozione di velocit`a angolare di un corpo, che sar`a
ripresa in seguito, ma per la quale si fa appello qui alle conoscenze di mec-
canica elementare.
Consideriamo un corpo rigido che ruota at-
torno allorigine con velocit`a angolare costante
IR
3
. La velocit`a di un suo generico punto
`e data da
p(t) = p(t) = p
cio`e da una equazione dierenziale ordinaria
lineare in p(t) la cui soluzione `e
p(t) = e
(tt
0
)
p(t
0
)
Teorema di Eulero: Ogni ro-
tazione rigida `e equivalente ad
una rotazione attorno ad un
asse sso.
27
Rappresentazione Asse-Angolo.
La rappresentazione della generica ro-
tazione rigida come rotazione attorno
ad un asse sso, oltre che come con-
seguenza della notazione esponenziale,
pu`o essere introdotta direttamente. In
questo caso, baster`a pensare al vettore
unitario come al versore dellasse at-
torno cui si ruota, e a come allangolo
di cui si ruota. La matrice di rotazione
attorno ad un asse sso pu`o essere an-
che ottenuta per combinazione di ro-
tazioni elementari. Si pu`o procedere
come segue:
allineare lasse z del riferimento con ;
ruotare di attorno allo z corrente;
ripristinare z nella posizione originale.
Se indichiamo con (, , ) gli angoli formati da con gli assi principali,
possiamo scrivere
Rot(, ) = Rot(z, )Rot(y, )Rot(z, )Rot(y, )Rot(z, )
ottenendo la stessa matrice ottenuta mediante la notazione esponenziale (si
osservi che S

=

2

2
1
+
2
2
, C

=

1

2
1
+
2
2
, S

=
_

2
1
+
2
2
e C

= r
3
).
Rappresentazione con Quaternione Unitario
Abbiamo visto che le rappresentazioni minime sinora considerate introducono
una singolarit`a di rappresentazione, nella quale si perde la biunivocit`a della
rappresentazione. Questo accade anche per altre possibili rappresentazioni
(come ad esempio gli angoli Y ZX di Helmoltz). In eetti, il problema `e
intrinseco alla topologia della variet`a SO(3), che non `e rapprentabile con
una unica mappa globale su IR
3
: problema analogo a quanto avviene per la
rappresentazione di una sfera sul piano, ad esempio.
Le singolarit`a di rappresentazione sono indesiderabili soprattutto perche
algorimi numerici applicati nei dintorni di una singolarit` a d`anno spesso luogo
a malcondizionamenti ed errori numerici.
Abbiamo anche osservato come una rappresentazione a quattro parametri,
legata alla notazione esponenziale, non sia essa stessa immune da singolarit`a.
28
`
E per`o possibile ottenere una rappresentazione globale di SO(3) con quat-
tro parametri, usando i quaternioni unitari (o parametri di Eulero).
Un quaternione pu`o essere considerato la generalizzazione di un numero
complesso, ed `e denito come
Q = q
0
+q
1
i
1
+q
2
i
2
+q
3
i
3
= (q
0
, q)
con q
i
IR, i = 0, . . . , 3. Il quaternione ha dunque una parte scalare (q
0
) ed
una parte vettoriale (q). Il coniugato di un quaternione Q = (q
0
, q) `e dato
da Q

= (q
0
, q).
Il prodotto tra quaternioni Q = (q
0
, q) e P = (p
0
, p) `e dato da
Q P =
_
q
0
p
0
q, p), q
0
p +p
0
q +q p
_
I quaternioni formano un gruppo con questa operazione di moltiplicazione.
La norma di un quaternione `e la radice quadrata della parte scalare del
prodotto tra Q e il suo coniugato:
Q Q

= (q
2
0
+q, q), 0)
|Q| =
_
q
2
0
+q
2
1
+q
2
2
+q
2
3
Un quaternione unitario `e un quaternione per cui |Q| = 1. I quaternioni
unitari formano anchessi un sottogruppo. Si pu`o dimostrare che esiste una
relazione biunivoca tra i quaternioni e le matrici di SO(3). Data una ma-
trice in notazione esponenziale R = e

, possiamo associargli un quaternione
unitario denito da
Q
R
= (cos(/2), sin(/2)) .
Si noti che una rotazione di attorno a fornisce lo stesso quaternione
unitario che la rotazione di attorno a , risolvendo cos` la singolarit`a di
rappresentazione della notazione asse-angolo.
Viceversa, dato un quaternione unitario Q = (q
0
, q), gli associamo una
rotazione R = e

ponendo
= 2 arccos q
0
, =
_
1
sin(/2)
q if ,= 0
0 altrimenti
.
Si pu`o vericare che, date due matrici di rotazione R
1
e R
2
, e i quaternioni
associati Q
R
1, Q
R
2, si ha
Q
R
1 Q
R
2 = Q
R
1
R
2
cio`e che il prodotto tra quaternioni corresponde esattamente al prodotto tra
matrici in SO(3).
29
1.1.5 Trasformazioni Rigide Generali
Abbiamo visto che, mentre le rotazioni tra due sistemi di riferimento sono
esprimibili in forma matriciale,
p
1
=
0
R
1
p
0
,
altrettanto non `e possibile per le traslazioni, che non sono trasformazioni
lineari, bens` ani:
p
1
= v +p
0
,
Consideriamo una trasformazione formata dalla successione di una rotazione
seguita da una traslazione, espresse in assi ssi:
g
T
(g
R
(p)) = v +Rp , v IR
3
, R SO(3)
Si noti che le due operazioni non commutano, essendo
g
R
(g
T
(p)) = Rv +Rp , v IR
3
, R SO(3) .
La struttura della trasformazione comunque non cambia, potendosi in en-
trambe i casi scrivere la trasformazione nella forma g(p) = Rp + m, con il
vettore m di traslazione opportunamente denito. Questa generale trasfor-
mazione rappresenta ovviamente ancora un moto rigido.
`
E anzi possibile
dimostrare che qualsiasi moto rigido pu`o essere scritto in questa forma, cio`e
come roto-traslazione.
Le roto-traslazioni, cio`e le coppie
(R, m) SO(3) IR
3
si compongono tra loro secondo una operazione prodotto denita (con le
usuali interpretazioni in assi ssi o assi correnti) da
(R
2
, t
2
) (R
1
, t
1
) = (R
2
R
1
, t
2
+R
2
t
1
)
Linsieme delle rototraslazioni, assieme a questa legge, forma un gruppo detto
speciale euclideo, o SE(3).
1.1.6 Trasformazioni Omogenee
Vista la grande praticit`a della notazione matriciale, e la facilit`a con la quale
si presta al calcolo automatico, `e molto utile introdurre una nuova rapp-
resentazione che permetta di scrivere ogni trasformazione rigida in forma
matriciale.
30
Ci`o si ottiene immergendo lo spazio IR
3
nello spazio omogeneo, un sot-
toinsieme di IR
4
, ssando la seguente relazione:
a IR
3
a IR
4
,
_

_
a
1
a
2
a
3
_

_
_

_
a
1
a
2
a
3
s
_

_
Rimane la possibilit`a di scegliere il valore di s, il che pu`o essere fatto
secondo convenienza. Nel caso delle rappresentazioni di congurazioni di
oggetti rigidi, scegliamo di porre s = 1 se la grandezza rappresentata `e un
punto, e s = 0 se un vettore.
Cos` facendo si esplicita la dierenza sica tra queste grandezze, e la
denizione di un vettore come dierenze di punti: se infatti `e p q = v, in
notazione omogenea si ha
p q =
_

_
p
1
p
2
p
3
1
_

_
q
1
q
2
q
3
1
_

_
=
_

_
p
1
q
1
p
2
q
2
p
3
q
3
0
_

_
=
_

_
v
1
v
2
v
3
0
_

_
= v.
Si osserva anche direttamente come la somma di un punto con un vettore sia
un punto, la somma di due vettori sia un vettore, mentre la somma di due
punti non ha senso in questo contesto.
Usando le coordinate omogenee, `e possibile scrivere la generica trasfor-
mazione rigida in forma matriciale semplicemente ponendo
g
(R,m)
(p) = m +Rp

g
(R,m)
(p) =
_
R m
0 0 0 1
_ _
p
1
_
= T
(R,m)
p
.
Lazione della trasformazione rigida sul vettore v = p q `e espressa dallo
stesso operatore:
g
(R,m)
(v) = g
(R,m)
(p) g
(R,m)
(q) = Rv

g
(R,m)
(v) =
_
R m
0 0 0 1
_ _
v
0
_
=
_
Rv
0
_
= T
(R,m)
v
Nella rappresentazione omogenea, gli elementi di SE(3) si identicano
dunque con matrici 4 4 della particolare forma
(R, m) =
_
R m
0 0 0 1
_
31
dette matrici di trasformazione omogenea, mentre la legge di composizione `e
ora semplicemente il convenzionale prodotto tra matrici. Si ha dunque
_
R
2
m
2
0 0 0 1
_ _
R
1
m
1
0 0 0 1
_
=
_
R
2
R
1
m
2
+R
2
m
1
0 0 0 1
_
Per il gruppo SE(3), lelemento identit`a `e dato da Id = I
4
, mentre
linverso di un elemento `e dato da
_
R m
0 0 0 1
_
1
=
_
R
T
R
T
m
0 0 0 1
_

`
E interessante notare che, in analogia alla notazione esponenziale per le
matrici di rotazione, `e possibile descrivere anche le matrici omogenee come
esponenziali, ponendo T = e

, con IR e

=
_
v
0 0 0 0
_
Lespressione esplicita dellesponenziale `e data da
e

i=0

i
i!
=
_
e

(I e

) v +
T
v
0 0 0 1
_
Eguagliando questa espressione a quella della matrice omogenea associata ad
un elemento (R, m) SE(3), si ricava il valore di (con il metodo visto in
precedenza) e quindi di v:
v =
_
(I e

) +
T
_
1
m
La matrice

e caratterizzata da 6 soli parametri, che ne possono essere
estratti mediante loperatore , denito in questo caso da

=
_
v
0 0 0 0
_

=
_
v

_
= .
A questa grandezza, che impila due vettori cui, come si vedr`a, potremo as-
sociare rispettivamente il signicato di velocit`a lineare e velocita angolare, si
d`a il nome di velocit`a generalizzata, o twist.
32
Rotazioni e traslazioni elementari Le trasformazioni omogenee elemen-
tari, corrispondenti a rotazioni di un angolo attorno agli assi x,y,z e a una
traslazione di un vettore m sono
Rot(x, ) =
_

_
1 0 0 0
0 C() S() 0
0 S() C() 0
0 0 0 1
_

_
, Rot(y, ) =
_

_
C() 0 S() 0
0 1 0 0
S() 0 C() 0
0 0 0 1
_

_
,
Rot(z, ) =
_

_
C() S() 0 0
S() C() 0 0
0 0 1 0
0 0 0 1
_

_
, Trasl(v) =
_

_
1 0 0 t
1
0 1 0 t
2
0 0 1 t
3
0 0 0 1
_

_
Per completezza, si osserva che la pi u generale delle trasformazioni omo-
genee pu`o essere scritta nella forma
T =
_
D
33
p
31
f
13
s
_
=
_
Deformazione Traslazione
Propettiva scala
_
.
Questa matrice rappresenta un moto rigido se e solo se D SO(3), f =
[0, 0, 0], e s = 1. Scelte diverse di questi elementi sono utilizzate tipica-
mente in visione articiale o computer graphics per ottenere rispettivamente
deformazioni, distorsioni prospettiche di immagini e cambiamenti di scala.
Interpretazione delle matrici di trasformazione omogenea Come
per le matrici di rotazione, anche per le matrici di trasformazione omogenea
si possono dare diverse interpretazioni. In particolare, una matrice T
T =
_
R t
0 1
_
pu`o rappresentare rispettivamente:
33
T =
0
T
(10)
: loperatore che
porta punti e vettori di un corpo da
una congurazione 0 in una nuova
congurazione 1 ruotata di R e
traslata di t (con coordinate espresse
nel sistema di partenza);
T =
0
T
1
: loperatore che trasforma
le coordinate di un punto inizialmente
descritto da un osservatore posto in
1 in quelle descritte da un osser-
vatore posto in un riferimento 0,
rispetto al quale il sistema 1 ha orig-
ine in t e versori dati dalle colonne di
R.
Composizione di trasformazioni omogenee La composizione di ma-
trici di trasformazione omogenee si eettua utilizzando il prodotto matriciale
secondo le stesse leggi viste per la composizione di rotazioni, cio`e:
per premoltiplicazione di matrici espresse rispetto a una terna ssa;
per postmoltiplicazione di matrici espresse rispetto alla terna corrente.
34
Capitolo 2
Cinematica dei Bracci
Articolati
La struttura meccanica di un robot `e costituita da un insieme di corpi (detti
membri o links), che possiamo supporre rigidi, connessi fra loro da artico-
lazioni (giunti o joints), o da pi` u generali coppie cinematiche quali quelle tra
una ruota ed il terreno.
I robot sono azionati mediante attuatori, che sono tipicamente posti in
corrispondenza di alcuni dei giunti, determinandone la congurazione (ad es-
empio, langolo per i giunti rotoidali, o la elongazione per i giunti prismatici).
La conoscenza delle congurazioni di alcuni dei giunti e data da sensori di
posizione (angolare, o di elongazione, nei casi suddetti). Nel caso generale,
quindi, sar`a necessario distinguere tra giunti attuati e non attuati, sensoriz-
zati e non sensorizzati.
`
E peraltro quasi sempre dato il caso in cui un giunto
attuato `e anche sensorizzato: si dir`a in questo caso che il giunto `e attivo,
mentre un giunto non attuato ne sensorizzato sar`a detto passivo.
Il modello cinematico di un robot `e una descrizione analitica delle re-
lazioni che intercorrono tra le posizioni dei giunti e la congurazione (po-
sizione e orientazione, o postura) di un particolare membro della struttura
del robot. Questultimo `e solitamente il corpo che reca lorgano terminale,
ad esempio un utensile o un dispositivo per la presa. Nei bracci manipola-
tori, lorgano terminale (o end-eector) `e solitamente posto allestremit`a della
catena di corpi e giunti che formano il braccio; laltra estremit`a, la base, `e
invece solitamente ssata rigidamente allambiente. La postura dellorgano
terminale `e spesso descritta rispetto ad un sistema di coordinate cartesiane
ssate nellambiente di lavoro.
Il cosiddetto problema cinematico diretto riguarda la determinazione della
postura dellorgano terminale (senza pregiudicare la libert`a di considerare
tale qualunque membro possa essere utile), quando siano note le congu-
35
36
razioni dei giunti sensorizzati. Matematicamente, si tratta quindi di ottenere
una espressione esplicita della mappa cinematica diretta,
: Q
S
SE(3)
q (q) = x SE(3)
(2.1)
dove Q
S
`e linsieme dei valori che possono assumere le congurazioni dei
giunti sensorizzati.
Il problema cinematico inverso consiste invece nella determinazione delle
congurazioni da far assumere ai giunti attuati, per fare in modo che la
postura dellorgano terminale sia una assegnata, ovvero

: SE(3) Q
A
x

(x) = q Q
A
(2.2)
con Q
A
linsieme dei valori che possono assumere le congurazioni dei giunti
attuati. Qualora giunti attuati e sensorizzati coincidano, si potr`a esplicita-
mente usare la notazione per le funzioni inverse

=
1
.
2.1 Cinematica diretta dei bracci seriali
Inizieremo la trattazione del problema cinematico diretto dal caso di bracci
manipolatori seriali, costituiti da catene cinematiche aperte. In questo caso,
importante di per se ma anche strumentale alla soluzione di altri casi, si pu`o
assumere che sia Q
A
= Q
S
= Q.
Le trasformazioni omogenee tra congurazioni di corpi rigidi sono uno
strumento molto utile per approcciare il problema cinematico diretto dei
bracci manipolatori seriali. La regola di composizione delle trasformazioni
rigide si applica direttamente in questo caso. Si pu`o procedere infatti a descri-
vere la congurazione di ogni membro, cui si associa una terna di riferimento
solidale, descrivendola relativamente al precedente, a partire dal membro
sso, o base.
Il procedimento `e concettualmente molto semplice. Nellesempio di g.2.1,
si sono ssate (in modo piuttosto arbitrario) quattro terne solidali ai mem-
bri della catena cinematica aperta, tra i quali le matrici di trasformazione
omogenea sono scritte in modo piuttosto semplice:
0
T
1
= Rot(z, q
1
)Trasl(z, L
1
);
1
T
2
= Trasl(x, L
2
)Rot(y, q
2
);
2
T
3
= Trasl(z, L
3
);
da cui direttamente per postmoltiplicazione si ottiene la descrizione della pos-
tura della terna 3 in funzione delle variabili angolari q
1
, q
2
e delle lunghezze
37
Figura 2.1: Sistemi di riferimento solidali ai membri di un braccio seriale.
L
1
, L
2
, L
3
:
0
T
3
=
0
T
1
1
T
2
2
T
3
=
_

_
C
1
C
2
S
1
C
1
S
2
L
3
S
2
C
1
+L
2
C
1
S
1
C
2
C
1
S
1
S
2
L
3
S
2
S
1
+L
2
S
1
S
2
0 C
2
L
3
C
2
+L
1
0 0 0 1
_

_
2.1.1 Convenzione di Denavit-Hartenberg
In casi pi` u complessi, pu`o essere utile procedere in modo sistematico alla
scelta di sistemi di riferimento che permettano di scrivere le catene di trasfor-
mate omogenee in modo pi` u semplice possibile.
Fisseremo pertanto le seguenti convenzioni (dette di Denavit-Hartenberg):
Numerazione dei membri e dei giunti: ogni membro viene numerato
da 0 a n a partire dalla base e arrivando allorgano terminale, e designato
dai simboli L
0
, L
1
, . . . , L
n
. Un braccio seriale con n membri ha n 1 giunti,
designati J
1
, J
2
, . . . , J
n
. Il giunto J
i
collega i membri L
i1
ed L
i
(vedi g.2.2).
Assegnazione degli assi z dei sistemi di riferimento. Al membro i-esimo
(0 i < n) si associa un sistema di riferimento solidale O
i
, x
i
, y
i
, z
i
il cui
asse z
i
coincide con lasse del giunto J
i+1
, cio`e del giunto a valle del mem-
bro nella catena cinematica(vedi g.2.3). Si noti che, mentre per un giunto
38
Figura 2.2: Numerazione convenzionale di articolazioni e membri di un brac-
cio seriale.
rotoidale, lasse del giunto `e univocamente denito, per i giunti prismatici
lasse denisce solo una direzione: in altre parole, qualsiasi retta parallela
alla direzione di moto del giunto prismatico pu`o essere presa come asse z.
Non ssiamo per il momento alcun criterio specico per scegliere lorigine
O
i
e gli assi x
i
, y
i
, salvo ovviamente imporre che si tratti di una terna ortonor-
male destrorsa. Vedremo in seguito che si possono fare scelte particolarmente
comode per queste grandezze.
Si consideri la espressione della generica trasformazione
i
T
i1
che lega il
sistema di riferimento solidale al membro i 1-esimo al membro i-esimo.
Questa pu`o essere espressa mediante una successione di trasformazioni ele-
mentari espresse in assi correnti. Si consideri innanzitutto la normale comune
agli assi dei giunti J
i
e J
i+1
, e siano p
i1
e p
i
, rispettivamente, i suoi punti di
intersezione con gli assi stessi (vedi g.2.4). Si ricordi che date due rette nello
spazio, `e sempre possibile trovare una retta incidente e normale ad entrambe.
Con riferimento alla g.2.5, siano rispettivamente:
d
i
la distanza tra O
i1
e p
i1
;

i
langolo tra lasse x
i1
e la normale comune;
a
i
la lunghezza del segmento interno della normale comune;

i
langolo tra z
i1
(cio`e lasse del giunto J
i
) e z
i
(cio`e J
i+1
);
b
i
la distanza tra O
i
e p
i
;

i
langolo tra la normale comune e lasse x
i
.
La espressione di
i
T
i1
pu`o dunque essere ottenuta come segue:
39
Figura 2.3: Assi z dei sistemi di riferimento dei membri
1. si trasli la terna i 1 di d
i
lungo lasse z
i1
, portando cos` lorigine
in p
i1
;
2. si ruoti attorno allasse z corrente di un angolo
i
, cos` da allineare
lasse x con la normale comune;
3. si trasli lungo lasse x corrente di a
i
, portando lorigine della terna
corrente a coincidere con p
i
;
4. si ruoti attorno allasse x corrente di
i
, portando lasse z a coincidere
con lasse del giunto J
i+1
;
5. si trasli lungo lasse z corrente di b
i
, portando lorigine a coincidere con
O
i
;
6. si ruoti attorno allasse z corrente di
i
, portando lasse x a coincidere
con lasse x
i
.
Si ottiene dunque
i1
T
i
= Trasl(z, d
i
)Rot(z,
i
)Trasl(x, a
i
)Rot(x,
i
)Trasl(z, b
i
)Rot(z,
i
).
La generica trasformazione tra la terne a monte e a valle del giunto i-esimo
`e dunque espressa da una matrice omogenea funzione di sei parametri ge-
ometrici, di cui cinque ssi ed uno relativo alla congurazione variabile del
giunto stesso, che `e uso comune indicare con q
i
. In particolare, si ha che
40
Figura 2.4: Costruzione della trasformazione intermedia tra i riferimenti di
due membri consecutivi.
per giunti rotoidali, la variabile di giunto `e q
i
=
i
;
per giunti prismatici, la variabile di giunto `e q
i
= d
i
.
Una oculata scelta della origine e dellasse x (che comporta quella dellasse
y) del sistema di riferimento solidale al membro i-esimo pu`o semplicare
ulteriormente la descrizionme della trasformazione. Scegliamo infatti:
Assegnazione dei sistemi di riferimento dei membri intermedi. Per il
membro i-esimo, con 0 < i < n, si pone x
i
lungo la normale comune agli assi
J
i
e J
i+1
, e O
i
= p
i
. Il verso di x
i
`e concorde al vettore p
i
p
i1
, se J
i
e
J
i+1
non sono incidenti, oppure `e scelto arbitrariamente. Se J
i
e J
i+1
sono
paralleli, si sceglie arbitrariamente una delle normali comuni.
Con questa scelta, si ottiene direttamente che le grandezze b
i
e
i
sono
identicamente nulle per ogni membro interno. Queste ultime convenzioni non
si applicano al membro L
0
di base ne al membro terminale L
n
.
Per il primo, la scelta della origine O
0
e dellasse x
0
pu`o essere fatta
arbitrariamente: questa scelta non modica direttamente la scrittura di
i
T
i1
,
ma `e talvolta possibile con scelte opportune semplicare la descrizione dei
parametri geometrici dei membri successivi.
41
Figura 2.5: Parametri geometrici nella trasformazione intermedia
i
T
i1
.
Lultimo membro L
n
della catena seriale ha sovente il ruolo particolare
di organo terminale del braccio. In questo caso pu`o essere importante de-
scrivere esplicitamente un particolare asse solidale allorgano terminale, che
diremo asse di approccio, e che `e individuato dalla direzione a
E
e da un punto
sullasse
E
. Altre volte, `e invece utile descrivere esplicitamente la posizione
di un particolare punto dellorgano terminale, che diremo centro dellend-
eector e indicheremo con c
E
. Nei due casi, possiamo ssare convenzioni
quali le seguenti:
Riferimento sullasse di approccio dellorgano terminale. Si pone z
n
sullasse di approccio (la retta per
E
diretta come a
E
). Si procede alla
scelta di O
E
e x
E
come per i link intermedi.
Riferimento al centro dellorgano terminale. Si pone O
n
nel centro
c
E
, x
n
giacente sulla retta per c
E
perpendicolare allasse del giunto J
n
, e z
n
arbitrariamente nel piano perpendicolare.
In entrambe i casi, la matrice di trasformazione omogenea
n1
T
n
risulta
funzione di soli quattro parametri d
n
,
n
, a
n
,
n
, di cui uno coincide con la
variabile di giunto q
n
.
42
Tabelle e Matrici di Denavit Hartenberg
`
E utile riassumere i quattro parametri che, nelle convenzioni adottate, denis-
cono univocamente ogni membro, in una tabella della forma seguente:
Membro d a

i

Per il membro i-esimo, i valori della riga corrispondente prendono denom-
inazioni dipendenti dalla natura del giunto i-esimo, posto a monte. Se il
giunto `e rotoidale, si ha
Membro d a

i d
i
q
i
a
i

i
(oset) (variabile di giunto) (lunghezza) (torsione)

Se il giunto `e prismatico, si ha invece
Membro d a

i q
i

i
a
i

i
(variabile di giunto) (oset angolare) (lunghezza) (torsione)

Con le convenzioni adottate, si ha quindi che ciascuna matrice di trasfor-
mazione omogenea
i1
T
i
, i = 1, . . . , n che appare nella catena
0
T
n
`e scritta
come
i1
T
i
= Trasl(z, d
i
)Rot(z,
i
)Trasl(x, a
i
)Rot(x,
i
)
=
_

_
C

i
S

i
C

i
S

i
S

i
a
i
C

i
S

i
C

i
C

i
C

i
S

i
a
i
S

i
0 S

i
C

i
d
i
0 0 0 1
_

_
La costruzione della matrice di trasformazione omogenea 0
T
n
a partire
dalla tabella di DenavitHartenberg `e completamente automatizzabile.
Esempio: Braccio planare RRR
Il moto di ogni membro di un braccio con tre giunti rotoidali consecutivi ad
assi paralleli `e ovviamente planare. Lo schema cinematico e la scelta delle
43
Figura 2.6: Manipolatore planare RRR
terne di riferimento `e riportato in g.2.6. Gli assi J
i
dei giunti sono tutti
perpendicolari al piano di gura, e determinano i corrispondenti assi z
i1
delle terne di membro. Poiche gli assi dei giunti sono tutti paralleli, la scelta
dela posizione delle origini dei sistemi di riferimento `e arbitraria: `e naturale
centrare tutte le terne nello stesso piano, parallelo a quello di gura. La
direzione di x
0
non `e specicata dalle convenzioni di DenavitHartenberg, e
ssa lo zero dellangolo del primo giunto. Poniamo x
0
orizzontale e diretta
verso destra nel nostro caso. Per lend-eector, scegliamo un centro O
3
come
descritto in gura.
I parametri della convenzione di Denavit-Hartenberg risultano pertanto
specicati nella seguente tabella:
Membro d
i

i
a
i

i
1 0 q
1

1
0
2 0 q
2

2
0
3 0 q
3

3
0
La matrice di trasformazione omogenea (denita precedentemente) ha la
stessa struttura per tutti i membri:
i1
T
i
(
i
) =
_

_
C
i
S
i
0
i
C
i
S
i
C
i
0
i
S
i
0 0 1 0
0 0 0 1
_

_
; i = 1, 2, 3
44
Il calcolo della funzione cinematica diretta fornisce dunque:
0
T
3
(q) =
0
T
1
1
T
2
2
T
3
=
_

_
C
123
S
123
0
1
C
1
+
2
C
12
+
3
C
123
S
123
C
123
0
1
S
1
+
2
S
12
+
3
S
123
0 0 1 0
0 0 0 1
_

_
La interpretazione del risultato `e immediata: si noti ad esempio che p
z
`e
nulla per qualsiasi q, cos` come il versore
0
z
3
=
0
T
3
3
z
3
resta invariato, in
virt` u del fatto che gli assi di rotazione sono tutti paralleli allasse z
0
.
Determinazione del modello cinematico diretto per il manipolatore
sferico
Si consideri il manipolatore sferico il cui schema cinematico `e rappresentato
nella gura seguente, dove sono evidenziate le terne solidali ai bracci.
Si noti che la terna del link zero `e stata scelta con origine in corrispondenza
dellintersezione dellasse J
1
e J
2
, in modo da ottenere d
1
= 0. I parametri
della convenzione di Denavit-Hartenberg risultano specicati nella seguente
tabella:
Braccio d
i

i
a
i

i
1 0 q
1
0

2
2
2
q
2
0

2
3 q
3
0 0 0
Le matrici di trasformazione omogenea relative ai singoli giunti, risultano
pari a:
0
T
1
(q
1
) =
_

_
C
1
0 S
1
0
S
1
0 C
1
0
0 1 0 0
0 0 0 1
_

_
45
Figura 2.7: A sinistra, schema cinematico di manipolatore antropomorfo. A
destra, un manipolatore PUMA 260 della Unimation.
1
T
2
(q
2
) =
_

_
C
2
0 S
2
0
S
2
0 C
2
0
0 1 0
2
0 0 0 1
_

_
2
T
3
(q
3
) =
_

_
1 0 0 0
0 1 0 0
0 0 1 q
3
0 0 0 1
_

_
Il calcolo della funzione cinematica diretta fornisce la matrice:
0
T
3
(q) =
0
T
1
1
T
2
2
T
3
=
_

_
C
1
C
2
S
1
C
1
S
2
C
1
S
2
q
3
S
1

2
S
1
C
2
C
1
S
1
S
2
S
1
S
2
q
3
+C
1

2
S
1
0 C
2
C
2
q
3
0 0 0 1
_

_
.
Osserviamo come il terzo giunto non abbia alcuna inuenza sulla matrice di
rotazione. Inoltre, lorientamento del versore
0
y
3
`e unicamente determinato
dal primo giunto, poich`e lasse di rotazione del secondo giunto
0
z
1
`e sempre
parallelo allasse
0
y
3
.
Determinazione del modello cinematico diretto per il manipolatore
antropomorfo
Si consideri il manipolatore antropomorfo il cui schema cinematico `e rappre-
sentato in gura seguente, dove sono evidenziate le terne solidali ai bracci.
Come per la struttura precedente, la terna del membro 0 `e scelta con
origine allintersezione di J
1
e J
2
, avendo cos` d
1
= 0; inoltre essendo J
2
e J
3
46
paralleli, la scelta delle origini dei riferimenti `e fatta in modo da avere anche
d
2
e d
3
nulli. Si noti che in alcune implementazioni di bracci antropomor,
quali ad esempio il PUMA 260 della Unimation (g. 2.7), i membri 2 e 3 e
lend eector giacciono in un piano diverso da quello di J
1
, motivo per cui si
introduce un oset.
I parametri della convenzione di Denavit-Hartenberg risultano specicati
nella seguente tabella
Braccio d
i

i
a
i

i
1 0 q
1
0 /2
2 0 q
2

2
0
3 0 q
3

3
0
Le matrici di trasformazione omogenea risultano per i singoli giunti:
0
T
1
(q
1
) =
_

_
C
1
0 S
1
0
S
1
0 C
1
0
0 1 0 0
0 0 0 1
_

_
i1
T
i
(q
i
) =
_

_
C
i
S
i
0
i
C
i
S
i
C
i
0
i
S
i
0 0 1 0
0 0 0 1
_

_
; i = 2, 3
II calcolo della funzione cinematica diretta secondo la (2.45) fornisce:
0
T
3
(q) =
0
T
1
1
T
2
2
T
3
=
_

_
C
1
C
23
C
1
S
23
S
1
C
1
(
2
C
2
+
3
C
23
)
S
1
C
23
S
1
S
23
C
1
S
1
(
2
C
2
+
3
C
23
)
S
23
C
23
0
2
S
2
+
3
S
23
0 0 0 1
_

_
.
Determinazione del modello cinematico diretto per il polso sferico
Si consideri un tipo di struttura cinematica particolarmente importante e
diusa, costituente i cosiddetti polsi sferici
47
Le variabili di giunto sono state indicate con numerazione progressiva a
partire da 4, poich`e tipicamente il polso si concepisce connesso allestremit`a
della struttura portante di un manipolatore a sei gradi di mobilit`a.
`
E signi-
cativo notare che il polso `e sferico se gli assi di rotazione si intersecano
tutti nello stesso punto; una volta individuati
0
z
3
,
0
z
4
e
0
z
5
avendo scelto
0
x
3
resta unindeterminazione sul verso di
0
x
4
e
0
x
5
.
Con riferimento alle terne indicate in gura, i parametri della convenzione di
Denavit-Hartenberg risultano specicati nella seguente tabella:
Braccio d
i

i
a
i

i
4 0 q
4
0 /2
5 0 q
5
0 /2
6
6
q
6
0 0
Le matrici di trasformazione omogenea risultano per i singoli giunti pari a:
3
T
4
(q
4
) =
_

_
C
4
0 S
4
0
S
4
0 C
4
0
0 1 0 0
0 0 0 1
_

_
4
T
5
(q
5
) =
_

_
C
4
0 S
4
0
S
4
0 C
4
0
0 1 0 0
0 0 0 1
_

_
5
T
6
(q
6
) =
_

_
C
6
S
6
0 0
S
6
C
6
0 0
0 0 1
6
0 0 0 1
_

_
48
II calcolo della funzione cinematica diretta fornisce
3
T
6
(q) =
3
T
4
4
T
5
5
T
6
=
_

_
C
4
C
5
C
6
S
4
S
6
C
4
C
5
S
6
S
4
C
6
C
4
S
5
C
4
S
5

6
S
4
C
5
C
6
+C
4
S
6
S
4
C
5
S
6
+C
4
C
6
S
4
S
5
S
4
S
5

6
S
5
C
6
S
5
C
6
C
5
C
5

6
0 0 0 1
_

_
.
Si noti che, a seguito della scelta fatta per le terne di coordinate, la ma-
trice
3
R
6
che si pu`o estrarre dalla
3
T
6
coincide con la matrice di rotazione
degli angoli di Eulero (2.18) precedentemente ricavata, ovvero q
4
, q
5
, q
6
costi-
tuiscono linsieme di angoli di Eulero ZYZ rispetto alla terna di riferimento
(O
3
,
0
x
3
,
0
y
3
,
0
z
3
) Inoltre i versori della terna 6 rappresentano versori di una
possibile terna utensile secondo la Figura precedente.
Capitolo 3
Cinematica Dierenziale
3.1 Cinematica dierenziale del corpo rigido
Pensiamo adesso ad un corpo rigido in moto nello spazio. Siano m(t) e
R(t) la posizione della origine e la orientazione di un sistema di riferimento
solidale al corpo al tempo t, e si suppongano queste funzioni dierenziabili
con continuit`a. La posizione di un punto p appartenente al corpo `e descritta
istante per istante da
p(t) = g
(R,m)
(p) = m(t) +R(t)p
0
.
Dierenziando rispetto al tempo si ottiene
d
dt
p(t) = v
p
= v
m
+

R(t)p
0
,
dove v
m
= m(t). Si osserva in questa espressione che la derivata della po-
sizione del punto p(t) `e un vettore
1
.
La derivata di una matrice di rotazione R(t) SO(3), che ovviamente
non `e un elemento dello stesso gruppo, rappresenta un oggetto nuovo. Per
caratterizzarlo, si consideri la relazione R(t)R
T
(t) I e la si derivi rispetto
al tempo:

R(t)R
T
(t) +R(t)

R
T
(t) 0.
Si osserva dunque che la matrice

RR
T
`e antisimmetrica.
Si pu`o porre pertanto

R(t)R
T
(t) =
_

R(t)R
T
(t)
_
T
= (t)
1
Per convincersene `e suciente guardare alla derivata come al limite del rapporto in-
crementale v
p
= lim
t0
p(t+t)p(t)
t
dove appare una dierenza tra punti, cio`e un vettore.
49
50
Figura 3.1: Moto di un corpo rigido descritto dalla posizione di un suo punto
m(t) e dalla sua orientazione R(t)
Il vettore (t) che pu`o essere ottenuto da questa matrice antisimmetrica verr`a
detto velocit`a angolare del corpo rigido.
Esempio. Si consideri un moto di rotazione attorno allasse z a velocit`a
costante pari ad , descritto da
R(t) = Rot(z, t) =
_

_
C

0
S

0
0 0 1
_

_ ,

R(t) =
_

_
S

0
C

0
0 0 0
_

_.
Si osserva facilmente che

R(t) =
_

_
0 0
0 0
0 0 0
_

_
_

_
C

0
S

0
0 0 1
_

_ = R(t)
da cui la velocit`a angolare
=
_

_
0
0

_
La velocit`a del punto p(t) diviene quindi
v
p
(t) = v
m
+ R(t)p
0
= v
m
+ (p(t) m(t)) = v
m
+
m
p(t) (3.1)
dove
m
p(t) indica il vettore che unisce lorigine del riferimento mobile al punto
p(t).
Si deve notare che la velocit`a angolare non `e stata denita come derivata
di una grandezza angolare - anche se nel caso particolare dellesempio visto
di rotazione attorno ad un asse sso essa veniva a coincidere con la derivata
dellangolo descritto nel tempo. Nel caso generale, comunque, non esiste
51
alcuna grandezza sicamente signicativa legata allintegrale della velocit`a
angolare.
Per illustrare questo fatto, baster`a considerare gli eetti su un corpo rigido
di due azioni cos` descritte:
1. Si ponga il corpo in rotazione con velocit`a di /2 radianti secondo
attorno allasse x per 0 < t 1. Si applichi poi una velocit`a angolare
della stessa intensit`a attorno allasse y per 1 < t 2.
2. Si applichino al corpo le stesse velocit`a angolari per le stesse durate
temporali, ma in ordine invertito
Nonostante che lintegrale delle velocit`a angolari sia identico nei due casi
(
_
2
0
dt = [/2, /2, 0]
T
), il risultato sico delle due operazioni `e radicalmente
diverso.
Si consideri di nuovo il moto del corpo rigido di g. 3.1. Come si `e visto,
per descrivere completamente la velocit`a di un qualsiasi punto del corpo, `e
suciente dare la velocit`a di uno dei suoi punti e la sua velocit` a angolare.
`
E
naturale pertanto introdurre una scrittura che raccoglie queste informazioni
in una unica variabile, che sar`a detta velocit`a generalizzata e che indicheremo
con

m
=
_
v
m

_
La velocit`a generalizzata `e caratteristica di un particolare punto del
corpo. Nota che sia la velocit`a generalizzata di un punto, `e facile esprimere
la velocit`a generalizzata di un qualsiasi altro punto:

p
=
_
v
p

_
=
_
I
3

m
p
0 I
3
_ _
v
m

_
= M
p,m

m
. (3.2)
La relazione tra velocit`a generalizzate in punti diversi dello stesso corpo rigido
in moto `e dunque lineare.
Si osservi che la velocit`a generalizzata `e una grandezza vettoriale for-
mata da componenti sicamente disomogenee (veloci`a lineari e angolari).
Questo comporta che non abbia senso sico denire un prodotto interno tra
velocit`a generalizzate (lo scalare
T
a

b
sarebbe infatti la somma di grandezza
disomogenee). Di conseguenza, non sono deniti ne il concetto di angolo ne
di ortogonalit`a tra velocit`a generalizzate, e neppure ha senso parlare di una
norma per queste grandezze. Vedremo pi` u avanti come si possono denire
concetti analoghi a questi ma con un preciso senso sico.
Il generale atto di moto di un corpo rigido `e quindi rappresentabile
con la velocit`a generalizzata di un suo qualsiasi punto. Al variare del punto
52
Figura 3.2: Latto di moto generale di un corpo rigido equivale ad una roto-
traslazione attorno allasse del Mozzi
considerato, ci chiediamo se esiste un punto c tale che la velocit`a generalizzata
abbia velocit`a di traslazione c allineata alla velocit`a angolare , cio`e tale che
c = , IR.
Per trovare un tale punto dobbiamo risolvere in c la equazione che si
ottiene dalla (3.1)
c v
m
= v
m
=
m
c
Ponendo
m
c =
m
c

+
m
c

, dove
m
c

`e perpendicolare ad e
m
c

`e parallelo
a , moltiplicando entrambe i termini della equazione per e tenendo conto
delle regole del prodotto vettoriale, si ha
m
c

=
v
m

||
2
mentre
m
c

rimane indeterminato. Quindi, tutti i punti della retta parallela


ad e passante per
c = m +
v
m

||
2
sono soluzioni del problema posto, cio`e tali per cui la velocit`a di traslazione `e
allineata allasse istantaneo di rotazione. Latto di moto istantaneo `e quindi
elicoidale attorno a quellasse, con passo dellelica pari ad .
3.2 Statica del corpo rigido
Si consideri un corpo rigido ed un insieme di forze F
i
applicate a punti p
i
del
corpo stesso. La forza risultante F ed il momento risultante M
o
rispetto ad
53
un punto o per un sistema di forze sono deniti da

i
F
i
= F

i o
p
i
F
i
= M
o
.
Il corpo `e detto in equilibrio se il sistema di tutte le forze applicate ai suoi
punti ha le propriet`a

i
F
i
def
= F = 0

i o
p
i
F
i
def
= M
o
= 0,
(3.3)
cio`e se la risultante F ed il momento risultante M
o
(rispetto ad un punto o)
del sistema sono entrambe nulli.
Si noti che se le equazioni di equilibrio (3.3) valgono rispetto ad un
punto o, esse valgono anche rispetto qualsiasi altro punto o

: infatti si ha
M
o
=

i
o
p
i
F
i
=

i
o
o F
i
+

i
o
p
i
F
i
=
o
o
_

i
F
i
_
+M
o
= 0.
Due sistemi di forze si dicono equivalenti se hanno la stessa risultante
e lo stesso momento risultante rispetto ad un punto. Se due sistemi sono
equivalenti rispetto ad un punto, lo sono anche rispetto a qualsiasi altro
punto.

`
E conveniente introdurre una scrittura che raccoglie le informazioni
su forze e momenti risultanti in una unica variabile, che sar`a detta forza
generalizzata e che indicheremo con
w
o
=
_
F
M
o
_
Nota la forza generalizzata equivalente ad sistema di forze (F
i
, p
i
) rispetto
ad un punto p, la stessa grandezza pu`o essere espressa con facilit`a rispetto
ad un qualsiasi altro punto m. Si ha infatti che la risultante `e invariante col
punto, mentre per il momento vale
M
m
=

i
m
p
i
F
i
=

i
m
pF
i
+

i
p
p
i
F
i
=
m
p
_

i
F
i
_
+M
p
=
m
pF+M
p
Si pu`o quindi scrivere
w
m
=
_
F
M
m
_
=
_
I
3
0
m
p I
3
_ _
F
M
p
_
= W
m,p
w
p
. (3.4)
54
La relazione tra forze generalizzate in punti diversi dello stesso corpo rigido
in moto `e dunque lineare.
Analogamente a quanto visto per le velocit`a generalizzate, dato un sis-
tema di forze su un corpo rigido equivalente ad una forza F applicata in
un punto m ed un momento M
m
, `e sempre possibile individuare un sistema
equivalente costituito da una forza applicata in un punto tale che il momento
sia parallelo a F. Il luogo di tali punti `e descritto da una retta parallela ad
F e passante per il punto
c = m +
M
m
F
|F|
2
.
Anche le forze generalizzate, come le velocit`a generalizzate, sono for-
mate da componenti sicamente disomogenee (forze e momenti), e non sono
deniti i prodotti interni tra forze generalizzate.
Sono per`o ben deniti i prodotti tra forze e velocit`a generalizzate. In-
fatti il prodotto
< w
m
,
m
>= w
T
m

m
=
T
m
w
m
= F
T
v
m
+M
T
m

`e sicamente ben posto, ed il risultato ha signicato di potenza meccanica


svolta dalla forza w
m
in corrispondenza alla velocit`a
m
. Quando tale potenza
`e nulla, < w
m
,
m
>= 0, la forza w
m
e la velocit`a
m
si dicono complementari.
3.2.1 Dualit`a Cineto-Statica
Nelle relazioni trovate nella cinematica e nella statica del corpo rigido, qui
riassunte

p
= M
p,m

m
,
w
m
= W
m,p
w
p
,
si osserva che
M
p,m
=
_
I
3

m
p
0 I
3
_
= W
T
p,m
=
_
I
3
0
m
p I
3
_
T
.
Ne segue che
< w
m
,
m
>= w
T
p
W
T
m,p

m
=
T
m
M
p,m
w
p
=< w
p
,
p
> .
In altri termini, la potenza espressa da forze generalizzate equivalenti appli-
cate a punti diversi di un corpo rigido in corrispondenza delle relative velocit`a
generalizzate, `e la stessa.
55
3.3 Cinematica dierenziale delle catene aperte
La cinematica dierenziale delle catene aperte studia la relazione tra le ve-
locit`a delle variabili di giunto della catena e quelle dellorgano terminale -
ovvero tra le velocit`a nello spazio delle congurazioni e quelle dello spazio
operativo.
Sia T(q) la trasformata omogenea che descrive la postura dellorgano ter-
minale, come calcolata con le tecniche viste per la descrizione della cinematica
diretta delle catene aperte
0
T
E
(q) =
_
R(q) p(q)
0 1
_
3.3.1 Caratterizzazione analitica e matrici jacobiane
La velocit`a di traslazione dellorgano terminale in funzione delle velocit`a dei
giunti pu`o essere ottenuta direttamente nella forma
d
dt
p(q) =
p(q)
q
q,
che riscriviamo, introducendo il simbolo J
p
(q) =
p(q)
q
per la matrice Jaco-
biana della funzione posizione, nella forma
v
p
= J
p
(q) q
Una espressione analitica analoga per la parte di orientazione pu`o essere
ottenuta solo se per la orientazione si utilizza una rappresentazione minima
(q) (ricavandola ad esempio dalla R(q) mediante le formule di inversione
relative alla parametrizzazione scelta). In questo modo si introduce una
matrice Jacobiana di orientazione J
A,O
(q) =
(q)
q
che verr`a detta analitica:

(q) = J
A,O
(q) q.
3.3.2 Caratterizzazione cinematica
Le derivate delle variabili di rappresentazioni minime non sono peraltro di
interpretazione intuitiva e hanno limitata utilit`a.
`
E utile trovare una espres-
sione che permetta piuttosto di esprimere la velocit`a angolare dellorgano
terminale in termini delle velocit`a dei giunti.
Dalla relazione

R(q) = R(q) si ha facilmente
=

R(q)R(q) =
n

k=1
R(q)
q
k
R(q) q
56
Deniamo

J
,k
=
R
q
k
R, ed estraiamo J
,k
=
_
R
q
k
R
_

. Possiamo scrivere
=
n

k=1
J
,k
q
k
=
_
J
,1
J
,2
J
,n
_
_

_
q
1
q
2
.
.
.
q
n
_

_
def
= J

q .
Se ne deduce che la relazione cercata tra le velocit`a di giunto e le velocit`a
angolari del membro di riferimento nella catena `e lineare: = J

(q) q. La
matrice J

(q) `e detta anchessa (per estensione) Jacobiana.


3.3.3 Caratterizzazione geometrica
Dalla caratterizzazione cinematica sappiamo che la funzione che lega a q `e
lineare, e che quindi vale per essa la sovrapposizione degli eetti. Altrettanto
`e vero, ovviamente, per le velocit`a di traslazione.
Possiamo quindi procedere a calcolare leetto che la velocit` a di ciascun
giunto ha su quelle del membro di riferimento separatamente, supponendo
fermi gli altri. Considerando ad esempio il giunto i-esimo (vedi g. 3.3),
poniamo q
j
= 0, j = 1, , n, j ,= i. La catena si riduce ad un solo corpo
rigido, che ruota o trasla (a seconda che il giunto i sia rotoidale o prismatico)
lungo lasse del giunto - che, nella notazione di Denavit Hartenberg, coincide
con lasse z
i1
del sistema solidale al link precedente. Per calcolare la velocit`a
generalizzata del corpo rigido a valle del giunto nel punto p dellorgano di
riferimento, applichiamo la (3.2) alla espressione della velocit`a generalizzata
di un punto m che appartiene allasse del giunto stesso. Essendo

m
=
_
v
m

_
=
_

_
_
z
i1
0
_
q
i
, giunto i prismatico,
_
0
z
i1
_
q
i
, giunto i rotoidale,
si ottiene

p
=
_
v
p

_
=
_
I
3

m
p
0 I
3
_

m
=
_

_
_
z
i1
0
_
q
i
giunto i prismatico,
_

m
p z
i1
z
i1
_
q
i
, giunto i rotoidale,
57
Figura 3.3: Caratterizzazione geometrica del Jacobiano di una catena seriale
Tutti i dati necessari a calcolare le colonnne delle matrici Jacobiane ricavate
da queste espressione possono essere facilmente ricavate dalle espressioni della
cinematica diretta della catena. Infatti, si noti che lespressione in coordinate
di base del versore di z
i1
si ottiene facilmente dalla terza colonna della
matrice di rotazione nella trasformata omogenea
0
T
i1
(q) =
0
T
1
(q
1
)
1
T
2
(q
2
)
i2
T
i1
(q
i1
).
Inoltre, scegliendo il punto m nellorigine p
i1
del sistema solidale al membro,
il vettore
p
i1
p = p p
i1
`e ottenuto sottraendo i termini posizionali della
0
T
E
(q) e della
0
T
i1
(q). Si ha in conclusione
J
p,i
=
_
z
i1
, giunto i prismatico,
z
i1 p
i1
p, giunto i rotoidale
e
J
,i
=
_
0 giunto i prismatico,
z
i1
, giunto i rotoidale,
3.3.4 Caratterizzazione statica
Si pensi adesso ad una catena aperta sottoposta ad una forza generalizzata
w
p
applicata al punto p del membro di riferimento. Si desidera conoscere
quali forze e coppie debbano esercitare gli attuatori dei giunti per equilibrare
il sistema.
58
Utilizzando la (3.4) `e immediato calcolare la forza generalizzata equiva-
lente a w
p
applicata nel punto p
ii
del generico giunto
w
p
i1
=
_
I
3
0
p
i1
p I
3
_
w
p
.
Se il giunto i `e prismatico, il suo attuatore dovr`a sopportare una forza

i
pari alla componente allineata con lasse z
i1
del giunto stesso. Se invece
`e rotoidale, la coppia
i
da resistere sar`a pari alla componente lungo z
i1
del
momento risultante. Si avr`a quindi

i
=
_

_
_
z
T
i1
0
_
w
p
i1
giunto i prismatico,
_
0 z
T
i1
_
w
p
i1
giunto i rotoidale
In condizione di equilibrio statico, si pu`o quindi scrivere una relazione
lineare tra le forze generalizzate applicate dallesterno sul membro di riferi-
mento e le azioni degli attuatori ai giunti:
= Aw
p
dove la riga i-esima della matrice A vale
A
i
=
_

_
_
z
T
i1
0
_
_
I
3
0
p
i1
p I
3
_
=
_
z
T
i1
0
_
giunto i prismatico,
_
0 z
T
i1
_
_
I
3
0
p
i1
p I
3
_
=
_
z
T
i1
p
i1
p z
T
i1
_
giunto i rotoidale

`
E immediato osservare che per la matrice cos` ottenuta vale A = J
T
.
Tanto si poteva anticipare anche sulla base della dualit`a cineto-statica vista in
precedenza, e fornisce una caratterizzazione statica della matrice Jacobiana
di una catena seriale:
= J
T
w
p
Si osservi che in questa relazione le forze/coppie ai giunti sono da inten-
dersi come applicate dai membri della catena sugli attuatori, mentre le forze
generalizzate w
p
sono esercitate dallesterno sul membro di riferimento della
catena.
Capitolo 4
Manipolatori con catene
cinematiche chiuse
Molti sistemi robotici di natura sia industriale che di servizio utilizzano
catene cinematiche chiuse, cio`e costituite da una o pi` u catene seriali di mem-
bri e giunti, vincolate tra loro e/o al telaio sso.
Alcuni esempi (vedi g. 4.1:
Manipolatori paralleli, quali le piattaforme di Gough-Stewart o Delta;
Manipolatori con struttura ibrida, seriale-parallela (quali le strutture
spesso incontrate ad esempio nei bracci sollevatori idraulici);
Bracci seriali cooperanti nellaerraggio e manipolazione di un oggetto
comune;
Mani per robot, con pi` u dita in presa sullo stesso oggetto;
Veicoli su gambe, con pi` u gambe in appoggio al suolo;
Bracci con sostegno, come nel caso del braccio Canadarm per appli-
cazioni spaziali;
I meccanismi in catena chiusa hanno due caratteristiche speciche:
le congurazioni dei giunti non sono indipendenti le une dalle altre, ma
devono soddisfare relazioni tra i loro valori che esprimono i vincoli di
chiusura della catena;
tipicamente, non tutti i giunti sono attuati, ne tutti sono dotati di
sensori.
59
60
a) b) c)
Figura 4.1: Tre esempi di catene cinematiche chiuse: a) braccio ibrido, b)
mano robotica, c) manipolatore parallelo.
Diremo variabile di congurazione, o brevemente congurazione di un
sistema meccanico di corpi rigidi una n-upla q di grandezze sucienti ad
individuare univocamente la posizione e orientazione di tutti i corpi che lo
compongono e quindi a determinare la posizione di qualsiasi punto mate-
riale del meccanismo.
Una congurazione si dice minima se non esiste alcun insieme composto
da un numero inferiore di grandezze scalari che sia una congurazione. Il
numero m di variabili strettamente necessario a determinare le posizioni del
sistema si dice numero di congurazioni indipendenti. Linsieme dei valori
ammissibili per le variabili di congurazione `e dunque un sottoinsieme di uno
spazio delle congurazioni m-dimensionale
Detto b il numero di corpi rigidi nel sistema, r il numero di giunti rotoidali,
p il numero di giunti prismatici, e s il numero di giunti sferici nel sistema, il
valore di m in un meccanismo pu`o essere facilmente valutato con le formule
(di Gr ubler)
_
m 3b 2(p +r), sistemi in 2D
m 6b 5(p +r) 3s, sistemi in 3D.
Queste relazioni valgono con il segno di uguaglianza in congurazioni gener-
iche, cio`e per quasi tutte le possibili congurazioni di un sistema, ove si
eccettuano congurazioni appartenenti a sottoinsiemi a misura nulla nello
spazio delle congurazioni.
Nella maggioranza dei casi, per motivi di economia, i meccanismi hanno
un numero di giunti attuati n
a
e un numero di giunti sensorizzati n
s
entrambe
pari a m. Quando si abbia n
a
> m si ha ridondanza di attuazione; se n
a
< m
il sistema si dice sotto-attuato (analoghe denizioni valgono per i sensori).
61
4.1 Geometria delle catene chiuse
Per semplicit`a, supporremo nel seguito che la catena chiusa sia semplice,
nel senso che, rimuovendo un solo corpo rigido dalla struttura, il sistema
possa essere ridotto ad un insieme di N catene cinematiche seriali aperte, tal-
volta indicate come gambe o anche dita del manipolatore. Individuiamo
questo particolare membro come organo terminale, o piattaforma, del quale
indichiamo con x SE(3) la postura.
Figura 4.2: Un manipolatore in catena chiusa semplice (a sinistra) in cui si
immaginano rimossi i vincoli della piattaforma (a destra).
Scegliamo invece come rappresentazione delle congurazioni del sistema
la n-upla q Q di valori delle coordinate di giunto (angoli per giunti R e
allungamenti per giunti P, rispettivamente).
Supponiamo dunque di aprire la catena chiusa eettuando tagli che
rimuovono i vincoli tra le gambe e la piattaforma (vedi g. 4.2). Associamo
a ciascuna gamba divenuta cos` una catena aperta una relazione cinematica
diretta tra le variabili di giunto ed un sistema di riferimento sul membro
estremo della catena stessa, descritta ad esempio per la i-esima gamba dalla
trasformata (rispetto ad un opportuno sistema di riferimento)
T
i
(q) =
_
R
i
(q) p
i
(q)
0 1
_
.
Associamo inoltre alla postura x SE(3) dellorgano terminale la
trasformata che la descrive nello stesso riferimento, ovvero
T
E
(x) =
_
R
E
(x) p
E
(x)
0 1
_
.
62
Figura 4.3: Diversi modi di tagliare le catene chiuse
Sulla piattaforma, siano T
E
i
, i = 1, . . . N le trasformate costanti che espri-
mono la trasformazione rigida tra la terna di riferimento della piattaforma
e le terne poste sulla piattaforma nelle posizioni e con le orientazioni cor-
rispondenti a quelle degli organi terminali delle N gambe. Abbiamo dunque
che T
i
(x) = T
E
(x)T
E
i
descrive la terna sul taglio, come appartenente alla
piattaforma.
I vincoli che sono stati rimossi col taglio vengono reintrodotti uguagliando
le opportune componenti di T
i
(q) e T
i
(x). Ad esempio, nel caso in cui il taglio
abbia rimosso un vincolo di solidariet`a tra due parti dello stesso corpo rigido,
questo viene ripristinato imponendo
T
i
(q) = T
i
(x),
ovvero almeno 6 relazioni indipendenti estratte da questa equazione matri-
ciale.
Se invece il taglio `e stato operato in corrispondenza di un giunto, si
operer`a come segue:
su un giunto sferico, si dovr`a imporre il solo vincolo p
i
(q) = p
i
(x) (tre
equazioni scalari);
su un giunto rotoidale, si imporr`a oltre alla eguaglianza tra le posizioni
dei centri dei giunti anche la eguaglianza degli assi del giunto, ad es-
empio imponendo z
i
(q) = z
i
(x) (due equazioni scalari indipendenti);
su un giunto prismatico, si imporr`a luguaglianda delle orientazioni
R
i
(q) = R
i
(x) (tre equazioni scalari indipendenti) e luguaglianza della
proiezione del centro delle terne nel piano ortogonale allasse del giunto
((p
i
(q) p
i
(x))
T
x
i
= (p
i
(q) p
i
(x))
T
y
i
= 0).
63
4.1.1 Cinematica diretta e inversa
Il problema geometrico diretto per i sistemi in catena chiusa ha la formu-
lazione vista in precedenza ((2.1)
: Q
S
SE(3)
q
S
(q) = x SE(3)
dove Q
S
`e linsieme dei valori che possono assumere le congurazioni dei
giunti sensorizzati.
Nel caso in cui fosse Q
S
= Q, cio`e se si disponesse di sensori in ogni
giunto, o anche nel caso in cui una delle gambe avesse tutti i suoi giunti
sensorizati, il problema cinematico diretto si esaurirebbe nello scrivere la
cinematica diretta T
i
(q) della gamba per poi ricavare T
E
(q
S
) = T
i
(q)T
E1
1
.
Nel caso praticamente frequente in cui nessuna delle gambe del sistema
sia completamente sensorizzata, il problema cinematico diretto `e invece in
generale assai dicile. Per trovare la postura incognita della piattaforma `e
infatti necessario determinare i valori dei giunti non sensorizzati, il che pu`o
essere fatto a partire dalle misure disponibili e dalle equazioni di vincolo che
le legano. Questo signica risolvere un sistema di equazioni che (per il caso
di tagli di vincoli di solidariet`a) si scrive
T
i
(q
S
, q
S
) T
i
(x) = 0, i = 1, . . . , N (4.1)
Il sistema (4.1) rappresenta un sistema di 6N equazioni nonlineari in-
dipendenti nelle 6 + n n
S
incognite della postura della piattaforma x e
delle variabili non misurabili q
S
. La natura di queste equazioni `e trigonomet-
rica, similmente a quelle incontrate nella soluzione delle cinematica inversa
dei manipolatori seriali. Come per quelle, non esistono metodi di soluzione
generali, ne sfortunatamente in questo caso sono disponibili semplicazioni
geometriche di applicabilit`a cos` vasta come quelle del metodo di Pieper.
Il problema cinematico inverso

: SE(3) Q
A
x

(x) = q Q
A
per un manipolatore in catena chiusa `e equivalente a N problemi cinematici
inversi per le N gambe: data la postura dellend-eector T
E
(x), `e deter-
minata anche quella del sistema di riferimento terminale di ogni gamba
T
i
(x) = T
i
(q
A
, q
A
), dalla quale `e possibile ricavare i valori di tutti i giunti
se si conosce la soluzione della cinematica inversa delle gambe. Poiche tipi-
camente le gambe sono meccanismi seriali semplici, la cinematica inversa di
un manipolatore parallelo `e tipicamente di facile soluzione.
64
a) b) c)
Figura 4.4: Esempio di catena chiusa planare (a) e sosttositemi aperti (b, c)
ottenuti con i tagli.
4.1.2 Esempio: Catena chiusa planare RPRRR
Si consideri il meccanismo piano in catena chiusa di gura, costituito da
4 membri rigidi, quattro giunti rotoidali e un prismatico in congurazione
RPRRR. Si sceglie di rappresentare tutte le grandezze in un riferimento di
base con asse z perpendicolare al foglio, x orizzontale e origine coincidente
col centro del primo giunto.
La formula di Gr ubler risulta m 3 4 2 5 = 2. Si pensano
sia sensorizzati che attuati il giunto prismatico e lultimo giunto rotoidale,
q
S
= (q
2
, q
5
).
Consideriamo come piattaforma il terzo membro, ed immaginiamo di
tagliare la catena in corrispondenza degli estremi della piattaforma.
La prima delle due catene rimaste aperte `e costituita da una serie RPR,
la cui cinematica diretta `e semplicemente ottenuta (usando per compattezza
le trasformate omogenee in 2D)
T
1
(q) = Rot(z, q
1
) Trasl(x, q
2
) Rot(z, q
3
)
=
_

_
C
13
S
13
q
2
C
1
S
13
C
13
q
2
S
1
0 0 1
_

_
(4.2)
La seconda gamba `e costituita da due soli giunti rotoidali, di cui quello
corrispondente a q
5
`e ssato sul telaio a distanza D dalla origine del sistema
di riferimento di base. Si ha quindi
T
2
(q) = Trasl(x, D) Rot(z, q
5
) Trasl(x, 2) Rot(z, q
4
)
=
_

_
C
45
S
45
D +
2
C
5
S
45
C
45

2
S
5
0 0 1
_

_.
(4.3)
Detta x = (x
E
, y
E
,
E
) la postura (2D) della piattaforma, si ha imme-
65
diatamente
T
E
(x) =
_

_
C

x
E
S

y
E
0 0 1
_

_ (4.4)
da cui, tenendo conto delle dimensioni della piattaforma e delle orientazioni
delle terne, si trova
T
1
(x) = T
E
(x)T
E
1
= T
E
(x)Trasl(a
1
, x) =
_

_
C

x
E
a
1
C

y
E
a
1
S

0 0 1
_

_
e
T
2
(x) = T
E
(x)T
E
2
= T
E
(x)Trasl(a
2
, x)Rot() =
_

_
C

x
E
+a
2
C

y
E
+a
2
S

0 0 1
_

_.
Uguagliando T
1
(x) = T
1
(q) si ha immediatamente
= q
1
+q
3
x
E
a
1
C

= q
2
C
1
y
E
a
1
S

= q
2
S
1
,
(4.5)
mentre dalla uguaglianza T
2
(x) = T
2
(q) si ha
= q
4
+q
5
+
x
E
+a
2
C

= D +
2
C
5
y
E
+a
2
S

=
2
S
5
.
(4.6)
Come previsto, ottenere la cinematica inversa del manipolatore `e sem-
plice. Dalle (4.5) si ha infatti, quadrando e sommando la seconda e terza
equazione,
q
2
=
_
(x
E
a
1
C

)
2
+ (y
E
a
1
S

)
2
,
q
1
= atan2 (y
E
a
1
S

, x
E
a
1
C

),
q
3
= q
1
.
(4.7)
Dalle (4.6) si ha invece
q
5
= atan2 (y
E
+a
2
S

, x
E
+a
2
C

D),
q
4
= q
5
.
(4.8)
Pi` u complesso invece `e il problema cinematico diretto, che consiste in
questo caso nellesprimere (x
E
, y
E
,
E
) in funzione di q
S
= (q
2
, q
5
). Supposte
infatti note le variabili dei giunti sensorizzati q
S
e le grandezze geometriche
66
D, a
1
, a
2
,
2
, le equazioni (4.5) e (4.6) rappresentano sei equazioni algebriche
non-lineari nelle sei incognite x = (x
E
, y
E
, ) e q
S
= (q
1
, q
3
, q
4
).
Per la soluzione di questo esempio, si pu`o procedere con alcune ma-
nipolazioni di carattere algebrico. Osservando che S
13
= S
45
= S

e
C
13
= C
45
= C

, ponendo a = a
1
+ a
2
, ed uguagliando le espressioni di
x
E
e y
E
ottenute in (4.5) e (4.6), rispettivamente, si ha
q
2
C
1
+aC

= D +
2
C
5
q
2
S
1
+aS

=
2
S
5
(4.9)
che, quadrate e sommate, danno (ricordando che C

C
1
+ S

S
1
= C
13
C
1
+
S
13
S
1
= C
3
)
q
2
2
+a
2
+ 2aq
2
C
3
= D
2
+
2
+ 2D
2
C
5
,
da cui, escludendo il caso q
2
= 0, si hanno due possibili soluzioni:
q
3
= arcos
_
D
2
+
2
2
a
2
q
2
2
+ 2D
2
C
5
2aq
2
_
.
Da ogni soluzione `e immediato estrarre una postura dellorgano terminale,
usando la espressione (4.2) della cinematica diretta della prima gamba e la
relazione T
E
= T
1
(q)T
1
E
.
Si noti che, se la catena chiusa fosse stata aperta tagliando i vincoli
corrispondenti ai giunti 3 e 4 (invece che la piattaforma immediatamente a
valle degli stessi giunti, come fatto pocanzi), avremmo scritto
T

1
(q) = Rot(z, q
1
) Trasl(x, q
2
) =
_

_
C
1
S
1
q
2
C
1
S
1
C
1
q
2
S
1
0 0 1
_

_,
T

2
(q) = Trasl(x, D) Rot(z, q
5
) Trasl(x, 2) =
_

_
C
5
S
5
D +
2
C
5
S
5
C
5

2
S
5
0 0 1
_

_,
da cui, imponendo la uguaglianza delle sole posizioni con quelle in T
1
(x) e
T
2
(x), si ottengono direttamente le quattro equazioni (gi`a ottenute in prece-
denza)
x
E
a
1
C

= q
2
C
1
y
E
a
1
S

= q
2
S
1
x
E
+a
2
C

= D +
2
C
5
y
E
+a
2
S

=
2
S
5
.
(4.10)
La riduzione del numero di equazioni e di variabili nel sistema ottenuto per
tale strada pu`o essere utile in alcuni casi, anche se questo non `e sempre vero.
67
a) b) c)
Figura 4.5: Illustrazione geometrica delle soluzioni del lesempio di catena
chiusa RPRRR.
Per ottenere la cinematica diretta in questo manipolatore, ad esempio, la
soluzione delle quattro equazioni (4.10) nelle quattro variabili (x
E
, y
E
, , q
1
)
`e di complessit`a non inferiore a quella ottenuta in precedenza per sei equazioni
in sei incognite.
La soluzione della cinematica diretta sopra ottenuta pu`o essere illustrata
geometricamente come in g. 4.5. La lunghezza del segmento L `e nota dalla
applicazione del teorema di Carnot al triangolo di lati L, D,
2
(L
2
= D
2
+

2
2
+ 2D
2
C
5
). Uguagliandola alla lunghezza ottenuta dal triangolo di lati
L, a, q
2
(l
2
= q
2
2
+a
2
+2aq
2
C
3
, si ha la soluzione gi`a vista.
`
E adesso evidente
quali siano le due possibili soluzioni individuate algebricamente, e illustrate
in g. 4.5 b). Le due distinte soluzioni vengono a coincidere per congurazioni
in cui q
3
= 0 (g. 4.5 c) e q + 3 = , che diremo singolari.

`
E importante notare che, al di fuori delle congurazioni singolari, per
quanto esistano due soluzioni possibili, esse sono distinte tra loro: in altri
termini, se conosco la eettiva posizione della piattaforma per un qualche
valore di q
S
, la soluzione per un valore poco modicato rispetto a questo
sar`a a quella vicina e quindi dello stesso tipo. Questa osservazione `e utile
in pratica quando in un robot parallelo si conosca la congurazione iniziale
della piattaforma (ad esempio per riferimento meccanico nella fase di inizializ-
zazione della macchina) e si proceda ad aggiornarla per continuit`a, scegliendo
tra tutte le possibili soluzioni della cinematica diretta quella piu prossima
alla ultima ottenuta. Il metodo cade per`o in difetto se il manipolatore rag-
giunge una singolarit`a: in questo caso, esso pu`o rimanere su una soluzione
dello stesso tipo di quello con cui `e giunto in singolarit`a, o pu`o, attraversando
la singolarit`a, cambiare tipo.
La discussione delle singolarit`a della catena chiusa pu`o essere vista in
maggior dettaglio guardando alle equazioni di vincolo sopra scritte per il
68
manipolatore (4.9), che riscriviamo nella forma
V (q
S
, q
S
) =
_
q
2
C
1
+aC
13
D
2
C
5
q
2
S
1
+aS
13

2
S
5
_
= 0
Con questa scrittura si intende evidenziare che si tratta di due equazioni
che vincolano implicitamente le variabili note q
S
= (q
2
, q
5
) e incognite q
S
=
(q1, q3).
Supponiamo che sia nota una soluzione q
S
, q
S
tale che V ( q
S
, q
S
) = 0. Ci
si chiede se, per valori vicini a q
S
, sia possibile scrivere univocamente una
soluzione per q
S
, anchessa vicina a q
S
. Applicando il teorema della funzione
implicita, o del Dini, si ha che questo `e possibile se il Jacobiano del vincolo
J
V
(q
S
, q
S
) =
V (q
S
, q
S
)
q
S
`e invertibile nella soluzione in questione, cio`e se det (J
V
( q
S
, q
S
)) ,= 0. Dalla
V (q
S
, q
S
)
q
S
+J
V
(q
S
, q
S
)
q
S
q
S
= 0,
si pu`o inoltre ottenere in questa ipotesi
q
S
q
S
= J
1
V
(q
S
, q
S
)
V (q
S
, q
S
)
q
S
Nellesempio di manipolatore planare chiuso RPRRR, si ha
J
V
(q
S
, q
S
) =
_
q
2
S
1
aS
13
aS
13
q
2
C
1
+aC
13
aC
13
_
e quindi det
V (q
S
,q
S
)
q
S
= aq
2
(C
1
S
13
S
1
C
13
) = aq
2
S
3
, per cui il Jacobiano
del vincolo `e singolare (oltreche in q
2
= 0) in q
3
= 0 e q
3
= : in queste
congurazioni la funzione implicita non `e garantita esistere (nellesempio in
questione esiste una relazione a due valori, non una funzione).
Per studiare la cinematica dierenziale del manipolatore parallelo RPRRR
considerato ad esempio, si faccia riferimento alla rimozione dei vincoli medi-
ante taglio ai giunti 3 e 4.
I Jacobiani delle gambe sono dati da
J
1
=
_

_
q
2
S
1
C
1
q
2
C
1
S
1
1 0
_

_; J
2
=
_

2
S
5

2
C
5
1
_

_,
69
mentre si ha
G
1
=
_

_
1 0 0
0 1 0
a
1
S

a
1
C

1
_

_; G
2
=
_

_
1 0 0
0 1 0
a
2
S

a
2
C

1
_

_ .
Per entrambe i tagli si ha F
1
= F
2
=
_
0 0 1
_
T
, da cui
H
1
= H
2
=
_
1 0 0
0 1 0
_
.
Lequazione dei vincoli dierenziali `e dunque scritta nella forma
A(q, x)
_
q
t
E
_
=
_ _
H
1
0
0 H
2
_ _
J
1
0
0 J
2
_

_
H
1
0
0 H
2
_ _
G
T
1
G
T
2
_ __
q
t
E
_
=
_

_
q
2
S
1
C
1
0 1 0 a
1
S

q
2
C
1
S
1
0 0 1 a
1
C

0 0 S
5
1 0 a
2
S

0 0 C
5
0 1 a
2
C

_
_

_
q
1
q
2
q
5
x
E
y
E

_
= 0.
(4.11)
Tutte le velocit`a compatibili con i vincoli possono quindi essere descritte in
una base del kernel della matrice dei vincoli:
_

_
q
1
q
2
q
5
x
E
y
E

_
=
_

_
(a
1
+a
2
) cos(q
1
)
q
2
cos(q
5
+q
1
)
q
2
(a
1
+ a
2
) sin (q
1
) sin (q
1
q
5
)
0 1
a
2
sin () sin (q
5
)
a
2
cos () cos (q
5
)
1 0
_

_
_

1

2
_
La base del kernel pu`o essere riscritta per evidenziare le veocit`a del sis-
70
tema corrispondenti a velocit`a attuate sui giunti attivi:
_

_
q
1
q
2
q
5
x
E
y
E

_
=
_

_
Lcos(q
5
+q
1
)
q
2

cos(q
1
)Lsin(q
5
+q
1
)
sin(q
1
)q
2
cos(q
1
)
sin(q
1
)q
2
0 1
1 0
Lsin (q
5
)
a
2
sin()Lsin(q
5
+q
1
)
sin(q
1
)(a
2
+a
1
)
sin()a
2
sin(q
1
)(a
2
+a
1
)
Lcos (q
5
) +
a
2
cos()Lsin(q
5
+q
1
)
sin(q
1
)(a
2
+a
1
)

a
2
cos()
sin(q
1
)(a
2
+a
1
)

Lsin(q
5
+q
1
)
sin(q
1
)(a
2
+a
1
)
1
sin(q
1
)(a
2
+a
1
)
_

_
_

1

2
_
Essendo ^(A
T
(q, x)) = 0, il sistema `e staticamente determinato. Una
base delle forze interne `e
^
_
GH
T
_
= span
_

_
C

_
.
Nessuna dele forze interne `e compatibile con la condizione di avere coppia
nulla sul giunto non attuato q
1
. Infatti
^
_
_
_
_
_
_
_
_
_

_
q2 sin (q1) q2 cos (q1) 0 0
1 0 1 0
0 1 0 1
a
1
sin () a
1
cos () sin () a
2
a
2
cos ()
_

_
_
_
_
_
_
_
_
_
= 0
ad ecezione che nelle congurazioni in cui questa matrice perde rango. Questo
avviene per (a
1
+ a
2
)q
2
sin(q
1
) = 0, ovvero nelle singolarit`a del manipo-
latore gi`a incontrate (si ricordi che i vincoli impongono q
3
= q
1
). Nelle
congurazioni in cui q
1
= o q
1
= + /2 le forze interne sono allineate
allasse del giunto passivo 1, e sono quindi attuabili.
4.2 Indici di Manipolabilit`a
Come si `e visto, nelle congurazioni singolari di un manipolatore le caratter-
istiche geometriche degli spazi fondamentali sono qualitativamente alterate.
Le congurazioni singolari sono daltronde estremamente speciche: `e im-
portante chiedersi cosa avvenga in congurazioni prossime a quelle singolari.
71
A tal ne, `e molto utile una analisi di manipolabilit`a del braccio.
Sia
= J(q) q, IR
m
, q IR
n
la relazione che esprime le velocit`a nello spazio operativo di un manipolatore
in funzione di quelle dei suoi giunti. Sia inoltre
J(q) = U(q)(q)V
T
(q),
la decomposizione ai valori singolari del Jacobiano.
In questa decomposizione, IR
mn
ha elementi nulli fuori dalla di-
agonale principale (
i,j
= 0, i ,= j) mentre gli elementi diagonali
i,i
=
i
sono i valori singolari di J(q) (
i
=
_

i
(J(q)J
T
(q))) ordinati in modo de-
crescente:
1
geq
2

0, = minm, n. Le matrici U(q) IR


mm
,
e V (q) IR
nn
sono costruite con i corrispondenti autovettori delle matrici
JJ
T
e J
T
J, rispettivamente.
Introducendo nuove coordinate nello spazio operativo e nello spazio dei
giunti con le denizioni

= U
T
t e

q = V
T
q, si ha immediatamente

q.
Questa relazione pu`o essere letta come segue. Un moto nello spazio operativo
in direzione di

= e
1
=
_

_
1
0

0
_

_
(corrispondente nelle coordinate originali a una velocit`a = U
1
allineata
col primo autovettore di JJ
T
) `e ottenuto applicando una velocit`a ai giunti
allineata col primo autovettore V
1
di J
T
J e pari a

q =
1

1
e
1
=
_

_
1/
1
0

0
_

_
Analoghe relazioni valgono per ogni altra componente di velocit`a. Valori
inferiori del valore singolare
i
signicano che per ottenere velocit`a nello
spazio operativo di pari intensit`a ma dirette come lautovettore i-esimo di
JJ
T
, `e necessario attuare velocit`a ai giunti che sono di intensit` a maggiore, e
inversamente proporzionale a
i
.
72
Il valore singolare
i
pu`o quindi essere visto come un coeciente di
amplicazione meccanica tra le velocit`a nello spazio dei giunti e quello nello
spazio operativo.
Le diverse direzioni in cui lend-eector pu`o muoversi con maggiore o
minore velocit`a a parit`a di velocit`a dei giunti possono essere illustrate da
una semplice costruzione geometrica, detta ellissoide di manipolabilit`a. Si
consideri il rapporto
R

=
||
| q|
tra una norma della velocit`a nello spazio operativo ed il quadrato e una
norma della velocit`a dei giunti. Si pensi inizialmente per semplicit`a alle sole
velocit`a di traslazione per un manipolatore i cui giunti siano tutti dello stesso
tipo (rotoidale o prismatico), e si adotti la norma euclidea: si pu`o porre in
questo caso semplicemente
R
2

=

T
v
q
T
q
=
q
T
J
T
J q
.
Geometricamente, pensiamo di ssare il valore del numeratore ad 1: stiamo
considerando un ellissoide nelle coordinate di giunto, ed il valore del rapporto
`e massimizzato da quei punti dellellissoide che minimizzano il denominatore,
cio`e la distanza dalla origine.
Algebricamente, `e conveniente passare nelle coordinate sopra denite,
dove si pu`o scrivere facilmente
R
2

q
T

q
=

q
T

q
T

q
=

2
1

q
2
1
+ +
2

q
2

q
2
1
+ +

q
2

Il rapporto (detto di Rayleigh) ha chiaramente un valore massimo in


corrispondenza a

q
1
= 1,

q
i
= 0, i = 2, . . . , , cio`e

q = e
1
, in corispondenza
alla quale si ha, in coordinate originali, q = V
1
e t = U
1
. Il valore minimo
del rapporto di Rayleigh si ha invece per

q = e

, quindi per q = V

e t = U

.
In corispondenza a

q = e
i
, 1 < i < , il rapporto di Rayleigh assume valori
estremi locali.

`
E consuetudine rappresentare gracamente i valori del rapporto R

nello
spazio operativo del manipolatore, associando ad ogni direzione di il valore
del rapporto stesso in quella direzione. Si ottiene pertanto un ellissoide, detto
di manipolabilit`a in velocit`a, con assi principali allineati con U
i
e semi-assi
di lunghezza
i
.
La direzione corrispondente al massimo allungamento dellellissoide co-
incide con quella in cui, a pari velocit`a dei giunti, `e possibile ottenere la
73
massima velocit`a dellend-eector (nelle norme considerate). Questa `e anche
la direzione in cui piccoli errori nel controllo dei giunti si riettono mag-
giormente in errori nello spazio operativo. Viceversa vale per la direzione di
minimo allungamento dellellissoide.
74
Capitolo 5
Controllo di Manipolatori
5.1 Controllo di Posizione di Manipolatori con
dinamica certa
In questa sezione studieremo approcci al controllo di posizione di un manipo-
latore la cui dinamica
B(q) q +C(q, q) q +G(q) = Y (q, q, q) = (5.1)
risulti conosciuta con precisione assoluta. In particolare, oltre alla matrice
regressore Y (q, q, q), si supporr`a conosciuto il vettore dei parametri di-
namici del manipolatore, situazione non sempre garantita. Si consideri quale
esempio un manipolatore il cui compito sia di palettizzare con elevata preci-
sione di posizionamento carichi variabili casualmente: in questo caso `e facile
convincersi che il vettore risulta variabile nel tempo in funzione dei carichi
a cui il manipolatore `e sottoposto, e quindi risulti pressocch`e sconosciuto
durante il moto. Al contratio, un esempio di compito a costante pu`o essere
il compito di vernicitura spray di una carenatura di automobile.
Inne, supporremo che il manipolatore non interagisca con lambiente
esterno (wrench esterni F
e
= (f
e
,
e
)
T
= 0), rimandando lesposizione di
tecniche di controllo adottabili in questo caso, dette tecniche di controllo
dellinterazione, alla sezione relativa.
5.1.1 Controllo a Coppia Calcolata nello spazio dei
giunti
Si consideri il problema di controllare le posizioni di giunto q =< q
i
>
T
i=1...N
del manipolatore retto dalla dinamica (5.1) anch`e inseguano riferimenti
q
d
=< q
di
>
T
i=1...N
di posizione.
75
76
Tale problema pu`o essere risolto scegliendo un vettore di controllo nella
forma
= B(q)
_
q
d
+K
v

q +K
p
q
_
+C(q, q) q +G(q) (5.2)
dove q
d
rappresenta il vettore delle posizioni di riferimento per i giunti, K
v
e K
p
sono matrici diagonali > 0, e q
def
= q
d
q. Infatti, sostituendo la (5.2)
nella (5.1)
B(q) q +C(q, q) q +G(q) = B(q)
_
q
d
+K
v

q +K
p
q
_
+C(q, q) q +G(q)
e compiendo i passaggi
B(q) q = B(q)
_
q
d
+K
v

q +K
p
q
_

B(q)
_

q +K
v

q +K
p
q
_
= 0
si ottiene, data linvertibilit`a della matrice dinamica B(q),

q +K
v

q +K
p
q = 0
che rappresenta la dinamica dellerrore di posizionamento. Tale dinamica pu`o
essere resa stabile asintoticamente scegliendo in sede di progetto le matrici
dei guadagni K
v
, K
p
anch`e i polinomi Is
2
+ K
v
s + K
p
, con I = eye(N),
risultino di Hurwitz.
In denitiva, il controllo proposto, del quale riportiamo lo schema di
principio in g.5.1, mostra come la perfetta conoscenza del modello dinam-
ico di un manipolatore ne consenta la linearizzazione perfetta garantendo
lallocazione precisa dei poli del sistema a ciclo chiuso.
`
E quindi garantita la
possibilit`a di ottenere inseguimenti di posizione di giunto con esiguo tempo
di assestamento e errore a regime nullo.
5.1.2 Controllo a Coppia Calcolata nello spazio oper-
ativo
Si vuole determinare la coppia di controllo che garantisca linseguimento
asintotico di una posizione cartesiana e angolare X
d
da parte della posizione
X dellend-eector di un manipolatore. A tal ne `e necessario determinare
preliminarmente lequazione della dinamica del manipolatore nello spazio
operativo.
Dinamica di un Manipolatore nello Spazio Operativo
Si consideri per semplicit`a il caso in cui il manipolatore in questione
sia quadrato (i.e. J(q) R
NN
), e che durante il moto il manipolatore
77
Figura 5.1: Sistema di controllo a coppia calcolata.
non si trovi in una congurazione singolare (i.e. esiste J
1
(q), q). In
tal modo partendo dallespressione della cinematica dierenziale

X = J(q) q
si giunge, dopo derivazione e inversione dello Jacobiano, allespressione
della accelerazione di giunto
q = J
1
(q)
_

X

J(q) q
_
(5.3)
funzione della accelerazione

X dellend-eector. Sostituendo la (5.3)
nella (5.1) si ottiene
B(q)J
1
(q)
_

X

J(q) q
_
+h(q, q) = (5.4)
dove h(q, q) = C(q, q) q +G(q).
A questo punto, al ne di ottenere lespressione della dinamica nello
spazio operativo `e opportuno utilizzare il legame (in questo caso in-
vertibile) tra le forze generalizzate F
ee
che agiscono sullend-eector e
le relative coppie
g
ai giunti

g
= J
T
(q)F
ee
,
basti notare infatti che le coppie di controllo ai giunti generano una
forza allend-eector F esprimibile con la
F = J
T
(q).
78
Quindi, premoltiplicando i termini della eq. (5.4) per J
T
(q), si ottiene
lequazione della dinamica del manipolatore nello spazio operativo
J
T
(q)B(q)J
1
(q)
_

X

J(q) q
_
+J
T
(q)h(q, q) = J
T
(q)

1
(q)

X +h(X,

X) = F
(5.5)
dove (q) = J(q)B
1
(q)J
T
(q) viene detto tensore di mobilit`a del ma-
nipolatore, e h(X,

X) = J
T
(q)h(q, q)
1
(q)

J(q) q.
Alla stregua di quanto esposto in precedenza, scegliamo la forza F lineariz-
zante nella forma
F =
1
(q)
_

X
d
+K
v

X +K
p

X
_
+h(X,

X)
che sostituita nella (5.5) porta alla dinamica dellerrore di posizione

X =
X
d
X nello spazio operativo

X +K
v

X +K
p

X = 0,
che pu`o essere resa asintoticamente stabile mediante una scelta opportuna
delle matrici K
v
, K
p
.
Inne, la coppia di controllo ai giunti risulta
= J
T
(q)F = J
T
(q)
_

1
(q)
_

X
d
+K
v

X +K
p

X
_
+h(X,

X)
_
.
5.1.3 Esempi
5.2 Controllo di Manipolatori con incertezze
sulla dinamica
In questa sezione si esamina il problema di controllare in posizione un ma-
nipolatore nel caso in cui siano presenti incertezze nel vettore dei parametri
dinamici . In particolare, verranno esposti approcci al controllo sia di tipo
robusto, che cio`e eliminano linuenza degli errori di modellazione sullerrore
a regime mediante una opportuna scelta delle coppie di controllo , sia di
tipo adattivo, questi ultimi consentendo di eliminare gli errori di posizione a
regime dovuti alle incertezze di modellazione grazie a opportune scelte per le
evoluzioni temporali delle stime dei parametri dinamici.
79
5.2.1 Robustezza del controllo a coppia calcolata
Abbiamo mostrato in 5.1.1 che la perfetta conoscenza del modello dinamico di
un manipolatore ne consente la linearizzazione esatta in retroazione, e quindi
la scelta diretta di un opportuno controllo (5.2) che garantisce linseguimento
asintotico di un riferimento di posizione ai giunti. Scopo della trattazione
che ci accingiamo ad esporre `e quello di evidenziare i disturbi che nascono da
errori sulla stima dei parametri dinamici di un manipolatore e che aiggono
la dinamica dellerrore di posizione, e di mostrare nel paragrafo successivo
una variante robusta della coppia calcolata che permette di eliminare tali
disturbi.
Scegliamo come coppia di controllo la
=

B(q)
_
q
d
+K
v

q +K
p
q
_
+

C(q, q) q +

G(q) (5.6)
dove

B(q),

C(q, q) e

G(q) rappresentano le stime delle matrici dinamica,
di Coriolis e del vettore delle coppie gravitazionali del manipolatore. Sos-
tituendo la (5.6) nella (5.1), e compiendo gli stessi passaggi riportati in 5.1.1
si ottiene

q +K
v

q +K
p
q =

B(q)
1
(

B(q) q +

C(q, q) q +

G(q)) (5.7)
dove
_

B(q) = B(q)

B(q),

C(q, q) = C(q, q)

C(q, q),

G(q) = G(q)

G(q)
rappresentano le matrici errore di stima. Si nota che la dinamica dellerrore
nella (5.7) risulta eccitata da un disturbo (t) =

B(q)
1
(

B(q) q +

C(q, q) q +

G(q)) funzione a sua volta dello stesso errore. Questultima osservazione


implica dunque che non si pu`o dire nulla riguardo la stabilit` a del sistema se
non si entra nel dettaglio delle particolari stime

B(q),

C(q, q),

G(q) utilizzate.
In presenza di errori di modello dobbiamo quindi porci i problemi seguenti
Stabilit`a Robusta: Quali sono i margini di errore sulle stime che con-
sentono di aermare la stabilit`a del sistema?
Prestazione Robusta: Quali sono le prestazioni in presenza di tali
errori? Ovvero, dato un livello massimo di degrado delle prestazioni,
entro quali margini di errore riesco a garantirlo?
Sintesi Robusta:
`
E possibile realizzare un controllore pi` u robusto?
80
Nel nostro specico caso il sistema (5.7) pu`o essere considerato nella forma
che presenta due sistemi dinamici che si eccitano a vicenda essendo luno
lingresso di disturbo dellaltro: la dinamica dellerrore di posizione, e il vet-
tore (t)
_

q +K
v

q +K
p
q = (t)
(t) =

B(q)
1
(

B(q) q +

C(q, q) q +

G(q)).
(5.8)
Ci interesseremo del vericare che il sistema (5.8) sia stabile secondo la
seguente denizione di stabilit`a
Stabilit`a Ingresso/Uscita:
Un sistema si dice I/O (Ingresso/Uscita) stabile se ad ogni funzione di
ingresso limitata in una opportuna norma
|u(t)|
p
=
__

0
[u(t)[
p
dt
_1
p
, 1 p (5.9)
corrisponde una uscita limitata nella stessa norma.
Considereremo in particolare p = , che impone |u(t)|

= sup
t
[u(t)[.
Dalla prima denizione della (5.8), se le matrici K
v
, K
p
risultano positive
denite, si giunge alle diseguaglianze
_
| q|


1
|u|

,
|

q|


2
|u|

,
mentre la seconda espressione
f(q
d
, q
d
, q
d
, q,

q) =

B(q)
1
(

B(q) q +

C(q, q) q +

G(q)) = (t)
impone la diseguaglianza
|u|


1
+
2
| q|

+
3
|

q|

+
4
|

q|
2

con
i
=
i
(q
d
, q
d
, q
d
) =
i
_
q
d
,

B(q),

C(q, q),

G(q)
_
.
Da queste relazioni, si ottiene
_
| q|

1
+
1

2
| q|

+
1

3
|

q|

+
1

4
|

q|
2

,
|

q|

1
+
2

2
| q|

+
2

3
|

q|

+
2

4
|

q|
2

.
(5.10)
A seconda dei valori numerici che `e possibile ottenere per le limitazioni
i
,
i
(a loro volta dipendenti dalla bont`a delle stime) le (5.10) rappresentano due
luoghi nel piano (| q|

, |

q|

) del tipo riportato in g.5.2.


81
Figura 5.2: Possibili evoluzioni del vettore ( q,

q)
T
. (Sinistra): Le stime delle
matrici sono tali da mantanere lerrore limitato, ma non nullo. (Destra):
Le stime delle matrici non sono tali da garantire una evoluzione limitata
dellerrore di posizione, che risulta quindi instabile.
5.2.2 Controllo alla Arimoto o PD ai giunti con com-
pensazione di gravit`a
In questo paragrafo verr`a esposto il controllo di posizione Proporzionale-
Derivativo (PD) dei giunti di un manipolatore supposta la unica conoscenza
esatta, e quindi la compensazione, delle coppie gravitazionali non lineari G(q)
che compaiono nella dinamica (5.1).
Al ne di giungere alla espressione della coppia di controllo PD verr`a
utilizzata la tecnica di controllo alla Lyapunov, previa denizione di una
energia V (t) > 0, funzione della velocit`a dei giunti q (il manipolatore sotto
lazione del controllo deve tendere asintoticamente ad una congurazione di
equilibrio q = 0), e dellerrore di posizione q = q
d
q (lerrore di posizione a
regime deve essere nullo), nella forma
V (t) =
1
2
q
T
B(q) q +
1
2
q
T
K
p
q
dove lenergia cinetica T =
1
2
q
T
B(q) q > 0, per q ,= 0, e K
p
> 0.
A questo punto si derivi la V (t) e, sfruttando la

q = q
d
q = q vera se
q
d
`e costante (traiettorie di riferimento punto-punto) e lespressione per il
82
termine B(q) q che compare nella (5.1), si giunge a

V (t) = q
T
( C(q, q) q G(q)) +
1
2
q
T

B(q) q q
T
K
p
q

V (t) =
1
2
q
T
_

B(q) 2C(q, q)
_
q + q
T
( G(q)) q
T
K
p
q

V (t) = q
T
( G(q)) q
T
K
p
q
(5.11)
dove abbiamo utilizzato la nota propriet`a
1
2
q
T
_

B(q) 2C(q, q)
_
q = 0 che
deriva dal principio di Hamilton di conservazione dellenergia.
Si scelga a questo punto la coppia di controllo Proporzionale-Derivativa
= K
p
q K
v
q +G(q) (5.12)
e la sostituisca nella (5.11), ottenendo il risultato

V (t) = q
T
K
v
q
che impone

V (t) 0. Questo risultato indica soltanto che il sistema tende
ad una posizione di equilibrio ( q = 0), ma per vericare se tale posizione di
equilibrio risulta caratterizzata da un errore di posizione q = 0 `e necessario
usufruire del lemma di Krasowskii.
A tal ne si sostituisca la (5.12) nella (5.1)
B(q) q +C(q, q) q +G(q) = K
p
q K
v
q +G(q)
B(q) q +C(q, q) q = K
p
q K
v
q
e, notando che in una congurazione di equilibrio si verica q = 0, si ottiene
K
p
q = 0
che impone, data linvertibilit`a della matrice K
p
, un errore a regime q nullo.
Il controllo PD proposto (si veda g.5.3) garantisce quindi linseguimento
asintotico di traiettorie q
d
punto-punto.
A questo livello, `e necessario puntualizzare il fatto che la presenza di non lin-
earit`a derivanti dal disturbo G(q) non esclude la asintotica stabilit`a di un
controllo PD senza compensazioni gravitazionali, e che quindi ha lespressione
= K
v
q +K
p
q. (5.13)
Per convincersi di ci`o senza addentrarci in una dimostrazione rigorosa, basti
pensare a che il controllo PD opera inserendo rigidezze K
p
e viscosit`a K
v
vir-
tuali a livello di giunto: la forza elastica K
p
q costringe la posizione di giunto
q a inseguire il riferimento q
d
, mentre la forza di attrito K
v
q tende a dissi-
pare lenergia elastica accumulata durante levoluzione, e quindi a smorzare
83
Figura 5.3: Schema di controllo di posizione ai giunti di tipo Proporzionale-
Derivativo con compensazione di Gravit`a.
le oscillazioni (si veda g.5.4).
Da questo si deduce che, utilizzando la (5.13) quale controllo, gli errori di
posizione a regime dovuti alle non linearit`a possono essere resi piccoli a pi-
acere mediante una opportuna scelta delle matrici K
p
, K
v
. Inserendo inoltre
un termine di compensazione integrale nella (5.13)
= K
v
q +K
p
q +K
I
_
t
0
q(t)dt,
lasintotica convergenza a zero dellerrore di posizione q `e garantita.
Per riallacciarci a quanto esposto nella sezione precedente, si noti che il
controllo PD con compensazione di gravit`a proposto `e nella forma (5.6) dove
sono utilizzate le seguenti approssimazioni delle matrici dinamica, di Coriolis
e gravitazionale
_

B(q) = I,

C(q, q) = 0,

G(q) = G(q).
In questo caso dunque `e garantita lasintotica stabilit`a del sistema perturbato
(5.7).
Inne, `e da notarsi che la scelta della matrice K
v
nella (5.12) ha la
propriet`a di rendere pi` u o meno elevata la velocit`a di convergenza a zero
dellerrore di posizione q da parte del manipolatore. Essa infatti inuenza
direttamente la funzione quadratica

V (t), e impone che a parit`a di q pi` u i
84
Figura 5.4: Schema esemplicativo del controllo di posizione PD senza com-
pensazione di gravit`a, nel caso di giunto rotoidale (sinistra) e prismatico
(destra). Sono evidenziati la molla e lo smorzatore inseriti virtualmente a
livello di giunto dal controllo, e che garantiscono lasintotica stabilit`a del
sistema ad anello chiuso.
termini sulla diagonale di K
v
risultano elevati, pi` u risulta elevata la velocit`a
di convergenza a zero dellerrore di posizione.
5.2.3 Controllo Robusto o a Struttura Variabile
Si prenda in considerazione lespressione (5.6) del controllo a coppia calcolata
con errori di stima, e si aggiunga ad essa un termine correttivo

B(q)(t)
ottenendo
=

B(q) q
d
+

C(q, q) q +

G(q) +

B(q)
_
K
v

q +K
p
q + (t)
_
, (5.14)
la cui scelta di (t) ci riserbiamo di farla in modo da ottenere la prestazione
desiderata (cio`e linseguimento asintotico del riferimento di posizione q
d
(t)).
Sostituita la (5.14) nella (5.1) si ottiene, dopo alcuni passaggi, la dinamica
dellerrore

q +K
v

q +K
p
q =

B(q)
1
_

B(q) q +

C(q, q) q +

G(q)
_
(t) = (t) (t)
(5.15)
in cui (t) =

B(q)
1
_

B(q) q +

C(q, q) q +

G(q)
_
, introdotto in precedenza,
`e assimilabile ad un disturbo cui deve opporsi.
`
E da notarsi che (t) `e
in modulo tanto pi` u grande (nel caso peggiore) quanto pi` u grandi sono gli
errori relativi di modello

B(q)
1

B(q),

B(q)
1

C(q, q) e

B(q)
1

G(q). Inoltre,
(t) dipende dalle traiettorie q(t) seguite dal braccio, essendo maggiore (nel
caso peggiore) quanto pi` u esse risultino veloci ed accidentate. Le q(t) a loro
volta dipendono dai riferimenti q
d
(t), ma anche dalla stessa scelta di (t)
ancora da farsi.
85
Verr`a comunque
|(t)| |(t)| +, (5.16)
dove = (q
d
(t),

B(q)
1

B(q), . . .), = (q
d
(t),

B(q)
1

B(q), . . .). Suppor-
remo di scegliere modelli e traiettorie tali per cui > 1.
Si esprima il sistema (5.15) in forma di stato

=
_
0 I
K
p
K
v
_
+
_
0
I
_
((t) (t)),
con = ( q,

q)
T
, o in forma compatta

= A +b((t) (t)). (5.17)


Sappiamo che il sistema, se non eccitato, `e stabile asintoticamente. Data
infatti una matrice Q R
2n2n
positiva denita, sappiamo che esiste una
matrice P R
2n2n
positiva denita tale che
A
T
P +PA = Q
cosicch`e, per il sistema

= A,
la candidata V (t) =
T
P `e una funzione di Lyapunov, infatti calcolandone
la derivata si ottiene

V (t) =
T
P

+

T
P =
T
(A
T
P +PA) =
T
Q < 0.
Utilizzando la stessa candidata per il sistema perturbato (5.17), si ottiene

V (t) =
T
Q + 2
T
Pb((t) (t))
in cui il termine 2
T
Pb((t) (t)) pu`o in generale avere segno qualsiasi, e
non `e pi` u quindi garantita essere negativa denita. La tecnica di progetto
alla Lyapunov consiste nellapplicare un (t) tale per cui si possa mostrare

V (t) < 0.
Per far ci`o, denito il termine w(t) = b
T
P(t), si considera il prodotto scalare
w(t)
T
((t) (t)) (si veda FIGURA). Il caso peggiore si ha quando (t) `e
allineato a w(t), cio`e w(t)
T
(t) = |w(t)||(t)| `e massimo.
Si sceglie quindi
(t) =
_
(t)
w(t)
w(t)
0
, |w(t)| ,= 0
, |w(t)| = 0
(5.18)
86
che impone |(t)| = (t) per |w(t)| ,= 0.
Dalla (5.18), e scelta la funzione maggiorante (t) (t) si ottiene
_
w(t)
T
((t) (t)) |w(t)|((t) |(t)|) < 0
w(t)
T
((t) (t)) = 0
, |w(t)| ,= 0
, |w(t)| = 0
Da notare che una opportuna scelta per la funzione maggiorante pu`o essere
trovata sfruttando la (5.16)
(t) || + = (t) +
che conduce alla
(t)

1
> 0,
signicativa vista lipotesi preliminare < 1.
Si noti che la legge di controllo (t) = (t)
w(t)
w(t)
`e di tipo discontinuo,
essendo infatti proporzionale alla derivata di un cono C =
_
w(t)
T
w(t) R
n
.
In R
1
, `e la funzione sign(w(t)) =
w(t)
|w(t)|
= 1, che rappresenta il controllo
tutto-niente (o bang-bang, o a relay).
Possono inne insorgere fenomeni di chattering nelle vicinanze della singo-
larit`a w(t) = 0 che devono essere smorzati, ad esempio ponendo
= (t)
w(t)
_
w(t)
T
w(t) +
, (5.19)
con > 0 piccolo. Si veda a tal proposito lo schema di controllo riportato in
g.5.5.
5.2.4 Controllo Adattivo alla Craig
Si scelga una coppia di controllo della forma
=

B(q)
_
q
d
+K
v

q +K
p
q
_
+

C(q, q) q +

G(q) (5.20)
dove

B(q),

C(q, q) rappresentano rispettivamente le stime delle matrici di-
namica e di Coriolis, e

G(q) `e la stima delle coppie gravitazionali del ma-
nipolatore, e si sostituisca nella dinamica (5.1). In tal modo si ottiene
B(q) q +C(q, q) q +G(q) =

B(q)
_
q
d
+K
v

q +K
p
q
_
+

C(q, q) q +

G(q)
(B(q)

B(q)) q + (C(q, q)

C(q, q)) q + (G(q)

G(q)) =

B(q)
_

q +K
v

q +K
p
q
_

B(q)
1
Y (q, q, q) =

q +K
v

q +K
p
q
(5.21)
87
Figura 5.5: Schema di controllo a struttura variabile con la scelta (5.19) per
(t).
dove = rappresenta lerrore di stima dei parametri dinamici, e avendo
supposto linvertibilit`a della stima

B(q) della matrice dinamica. Come evi-
denziato nella sezione 5.2.3, la dinamica dellerrore di posizione risulta aetta
da un disturbo =

B
1
(q) Y (q, q, q) che ne preclude lasintotica conver-
genza a zero, e in alcuni casi la stabilit`a. Vedremo quindi come una scelta
opportuna della dinamica

delle stime dei parametri dinamici garantisca la
convergenza a zero dellerrore di stima. A tal proposito si sfrutta nuovamente
il metodo diretto di Lyapunov.
Si esprima la (5.21) in forma di stato

=
_
0 I
K
p
K
v
_
+
_
0
I
_

B(q)
1
Y (q, q, q)
dove abbiamo posto = ( q,

q)
T
, e si scelga la funzione di Lyapunov
V (t) =
1
2

T
P +
1
2

T
R .
che derivata rispetto al tempo porta a

V (t) =
1
2

T
P +
1
2

T
P


T
R

V (t) =
1
2

T
_
A
T
P +PA
_
+
_
Y
T
(q, q, q)

B
T
(q)(0, I)P R

V (t) =
1
2

T
Q +
_
Y
T
(q, q, q)

B
T
(q)(0, I)P R


_
,
(5.22)
88
dove abbiamo sfruttato lequazione di Lyapunov A
T
P +PA = Q, Q > 0.
A questo punto si nota che scegliendo la dinamica per le stime dei parametri

= R
1
Y
T
(q, q, q)

B
T
(q)(0, I)P (5.23)
la (5.22) diventa

V (t) =
1
2

T
Q 0.
Questa espressione implica che, con la scelta della coppia in (5.20) e della
dinamica per le stime (5.23), il sistema a ciclo chiuso tende asintoticamente
alla congurazione di equilibrio
T
= ( q,

q) = (0, 0), ma non `e garantita la
convergenza a zero dellerrore di stima . A tal proposito mostriamo che
lerrore di stima tende a zero solo per quelle traiettorie di riferimento che
risultino persistentemente eccitanti per le dinamiche (5.23).
Condizione di eccitazione persistente
Una funzione f(t) soddisfa la condizione di eccitazione persistente se
_
t+
t
f(t)
T
f(t)dt I, t, (5.24)
dove , > 0.
A tal proposito si nota che la (5.21) diventa, una volta raggiunto lequilibrio
(i.e. < ,

>=< 0, 0 >),
Y (q, q, q) (t) = 0 (5.25)
che non implica la convergenza a zero dellerrore di stima (t), basta in-
fatti che (t) ,= 0 KerY (q, q, q). Si pu`o comunque notare che le di-
namiche (5.23) delle stime dei parametri tendono a zero asintoticamente,
vista lasintotica convergenza a zero del vettore , il che implica la costanza
del vettore (t) =

per istanti temporali t grandi. Moltiplicando quindi la
(5.25) per Y
T
(q, q, q), e integrandola in un intervallo temporale [t, t + ] si
ottiene
_
t+
t
Y
T
(q, q, q)Y (q, q, q)dt

= 0
che ha come unica soluzione

= 0 se `e vera la (5.24).
In conclusione, `e importante sottolineare che il controllo di Craig, il cui
schema `e riportato in g.5.6, `e aetto da alcuni problemi, quali la necessit`a di
retroazionare le accelerazioni di giunto e la non sempre garantita invertibilit`a
della matrice

B(q). Tali problemi verranno superati dallo schema di controllo
adattivo proposto nel paragrafo successivo.
89
Figura 5.6: Schema di controllo adattivo alla Craig. In verde `e evidenziata
la parte relativa alla integrazione della dinamica della stima dei parametri
dinamici.
5.2.5 Controllo Adattivo alla Li-Slotine
Per superare i limiti del controllo adattivo alla Craig, il controllo di Li-Slotine
non si fonda sulla scelta di un controllo del tipo a coppia calcolata, ma
sfrutta la cosiddetta velocit`a di riferimento
q
r
= q
d
q
dove q
d
`e il riferimento di posizione dei giunti e q = qq
d
`e il relativo errore di
posizione. La dierenza tra la velocit`a ai giunti q e la velocit`a di riferimento
q
r
`e rappresentata da
s = q q
r
=

q + q.
A questo punto si denisce una funzione
V (t) =
1
2
s
T
B(q)s +
T
R ,
dove in particolare R > 0 e = . Si noti che V (t), che ha signicato
simile ad una candidata di Lyapunov, `e soltanto semi-denita positiva, in
quanto V (t) = 0 = 0, s = 0

q = q che non implica (

q, q) = (0, 0).
90
Passando comunque alla derivazione della V (t) si ottiene

V (t) = s
T
B(q) s +
1
2
s
T

B(q)s R

V (t) = s
T
B(q)( q q
r
) +
1
2
s
T

B(q)s R

V (t) = s
T
(B(q) q B(q) q
r
) +
1
2
s
T

B(q)s R

V (t) = s
T
( C(q, q) q G(q) B(q) q
r
) +
1
2
s
T

B(q)s R

V (t) = s
T
( C(q, q) q G(q) B(q) q
r
) +
1
2
s
T

B(q)s R


e sommando e sottraendo il termine s
T
C(q, q)s si giunge alla

V (t) = s
T
( C(q, q) q
r
G(q) B(q) q
r
) R

V (t) = s
T
( Y (q, q, q
r
, q
r
)) R


(5.26)
dove abbiamo supposto che la matrice C(q, q) sia stata calcolata utilizzando
il metodo di Christoel, che comporta s
T
_

B(q) 2C(q, q)
_
s = 0, s.
Si scelga la coppia di controllo
=

B(q) q
r
+

C(q, q) q
r
+

G(q) K
d
s = Y (q, q, q
r
, q
r
) K
d
s
e la si sostituisca nella (5.26) ottenendo

V (t) = s
T
(Y (q, q, q
r
, q
r
)( ) K
d
s) R

V (t) = s
T
Y (q, q, q
r
, q
r
) s
T
K
d
s R

V (t) =
T
_
Y
T
(q, q, q
r
, q
r
)s K
d


_
s
T
K
d
s
Scegliendo come dinamica per le stime la

= R
1
Y
T
(q, q, q
r
, q
r
)s
si ottiene

V (t) = s
T
K
d
s 0.
Al ne di garantire lasintotica stabilit`a del sistema (i.e. ( q,

q) (0, 0)) `e
necessario mostrare che

V (t) 0. Infatti

V (t) = 0 s =

q + q = 0

q = q
q = q(0)e
t
che impone ( q,

q) (0, 0) per t .
Poich`e la V (t) non rappresenta una candidata di Lyapunov in senso stretto
`e necessario ricorrere ad un tecnicismo particolare, quale il
91
Lemma di Barbalat:
Se la funzione dierenziabile scalare V (t) soddisfa le seguenti condizioni
_

_
V (t) 0

V (t) 0

V (t)

M
(5.27)
in cui la terza condizione assicura luniforme continuit`a della

V (t), al-
lora lim
t

V (t) = 0.
Nel nostro caso `e facile notare che la

V (t) risulta inferiormente limitata.
Infatti

V (t) = 2s
T
K
d
s = 2(

q + q)
T
K
d
(

q +

q),
e le funzioni ( q,

q,

q) da cui dipende sono limitate. Abbiamo quindi mostrato


che il controllo proposto garantisce linseguimento asintotico dei riferimenti
di posizione da parte dei giunti (resta il fatto che non garantisce lasintotica
convergenza a zero degli errori di stima, si veda a tal proposito i risultati
riportati in 5.2.4).
Come anticipato, il controllo adattivo proposto (vedasi g.5.7) risulta una
tecnica di controllo adattivo preferibile allo schema presentato in 5.2.4, non
richiedendo la retroazione della accelerazione q di giunto (in genere aetta
da rumore), e principalmente linversione della stima della matrice dinamica

B(q).
Figura 5.7: Schema di controllo adattivo alla Li-Slotine.
92
Capitolo 6
Sistemi Nonlineari
6.1 Scatola degli attrezzi matematici
Per studiare i sistemi nonlineari sono necessari alcuni strumenti matematici
diversi da quelli della teoria del sistemi lineari, che spesso ne sono una gen-
eralizzazione.
Si seguir`a un approccio utilitaristico allapprendimento di alcuni di questi
strumenti rimandando a testi specialistici le denizioni e le dimostrazioni pi` u
rigorose.
Con qualche sacricio di generalit`a si tratteranno solo sistemi ani nel
controllo, cio`e nella forma :
_
x = f(x) +g
1
(x)u
1
(t) +g
2
(x)u
2
(t) + +g
m
(x)u
m
(t)
y = h(x)
Il vettore di stato x `e un elemento di uno spazio a n dimensioni. Il termine
di deriva, f(x) `e quindi un vettore di n funzioni in n variabili. Lo stesso
vale per g
i
(x). Questi vettori di funzioni sono chiamati campi vettoriali.
Nel modello considerato, vi sono m campi vettoriali di ingresso
g
1
(x) g
m
(x), associati a funzioni u
1
(t) u
m
(t) che fungono da controlli
del sistema. Sulle u
i
(t) si assumer`a che siano almeno continue a tratti a
volte si chieder`a la continuit`a o la dierenziabilit`a.
Nello studio dei sistemi non lineari di nostro interesse, `e frequente il caso
che linsieme delle congurazioni da rappresentare non sia semplicemente IR
n
,
spazio delle n-uple di numeri reali (ci`o che avviene nei sistemi lineari). Pi` u
generalmente dovremo supporre che x M, dove M `e una supercie curva
a n dimensioni, immersa in uno spazio IR
N
con N n.
93
94
{B}
{C}
t
q
mg
a
b
Figura 6.1: Esempi di sistemi meccanici
Esempio Si consideri il semplice pendolo riportato in gura
x =
_

_
= S
1
IR
1
,= IR
2
S
1
= IR (mod 2)
ml
2

= mgl sin() +
_
x
1
=
x
2
=

_
x
1
x
2
_
=
_
x
2
g
l
sin x
1
_
+
_
0
1
ml
2
_

f(x) =
_
x
2
g
l
sin x
1
_
g
1
(x) =
_
0
1
ml
2
_
Esempio Rotazioni di corpo rigido;
Lorientazione del corpo C, che ruota attorno al centro del riferimento
B `e descritto dalla orientazione della terna C rispetto a B. La matrice
di rotazione espressa in termini dei versori principali delle due terne, i j k ,
descrive completamente tale orietazione.
B
R
C
=
_

_
i
T
C
i
B
j
T
C
i
B
k
T
C
i
B
i
T
C
j
B
j
T
C
j
B
k
T
C
j
B
i
T
C
k
B
j
T
C
k
B
k
T
C
k
B
_

_
B
R
C
=
_
B
i
C
.
.
.
B
j
C
.
.
.
B
k
C
_
I nove parametri che appaiono in R IR
33
sono ovviamente ridondanti
per esprimere lorientazione. Valgono infatti le relazioni:
_
B
i
T
C
B
i
C
=
B
j
T
C
B
j
C
=
B
k
T
C
B
k
C
= 1
B
i
T
C
B
j
C
=
B
i
T
C
B
k
C
=
B
j
T
C
B
k
C
= 0
95
-y
0
x
y
z
y
0
Figura 6.2: Esempio
equivalenti alla relazione di ortonormalit`a matriciale
RR
T
= I R
T
= R
1
Vi `e per il vero una ulteriore relazione che impone che la terna C sia
destrorsa, cio`e
B
i
C

B
j
C
=
B
k
C
(nota che le relazioni precedenti gi`a
implicano
B
i
C

B
j
C
=
B
k
C
, quindi questa relazione impone solo il segno
di
B
k
C
. In termini matriciali, questo vincolo si esprime come detR = 1.
Le sei relazioni tra le nove variabili deniscono una supercie in IR
9
a due
componenti non connesse analogamente a quanto lequazione seguente fa in
IR
3
: x
2
+ (y y
0
)
2
+z
2
= R
2
.
La relazione detR = 1 sceglie una delle due falde sulla quale il punto
rappresentativo vive(v.g. 1.6)
La dimensione della supercie `e 9 6 = 3 ( nellesempio delle sfere ho
3 1 = 2 ). Ci`o induce a pensare che esistano descrizioni della orientazione
di una terna pi` u compatte, che usino solo tre parametri. Tali sono ad esem-
pio gli angoli di Eulero, di Roll Pitch Yaw, etc. Nellanalogia con la sfera
in IR
3
, questo signicherebbe prendere 2 parametri ( ad esempio, latitudine
e longitudine ) per rappresentare i punti della sfera. In tal modo ad ogni
coppia di parametri corrisponde uno ed un solo punto sulla sfera; non vale
il viceversa per il polo nord e il polo sud. Lidenticazione dello spazio dei
parametri (IR
3
) e la sfera (S
2
) non `e quindi perfetto. Lo stesso succede per le
rappresentazioni minime delle orientazioni, che necessariamente presentano
singolarit`a. Ovviamente `e possibile usare due rappresentazioni delle orien-
tazioni con singolarit`a in congurazioni diverse , e cambiare rappresentazione
nei pressi di una singolarit`a secondo opportunit`a. Questo `e il concetto alla
base delle denizioni della geometria delle variet`a o manifolds regolari.
96
Un manifold pu`o essere visto come uno spazio, o variet`a a n dimensioni, in-
serito in uno spazio pi` u vasto IR
m
m n, ma tale che, per ogni suo punto,
esista una funzione carta cha mappi un intorno del punto in un dominio
di IR
n
in modo continuo e invertibile.
Consideriamo uno spazio M (manifold) (v.g. 1.7). Supponiamo che
p M esista un insieme aperto U M (contenente p ) e una bijezione
che mappa U in un sottoinsieme di IR
n
. Su IR
n
abbiamo le funzioni delle
coordinate naturali per cui
r
i
(a
1
, , a
n
) = a
i
i 1 n
Attraverso la composizione con otteniamo le funzioni di coordinate
x
i
= r
1

in questo modo una griglia denita su (U) IR
n
attraverso le funzioni di
coordinate r
i
si trasforma in una griglia su U M .
R
2
j(p)
M
j
U
p
Figura 6.3: Manifolds e carta delle coordinate
Linsieme aperto U e la mappa sono dette Carta delle coordinate e
hanno la seguente proprieta :
(U, ) e un omeomorsmo cioe e
1
sono continue. Quindi pos-
siamo dire che un generico sistema non lineare puo essere espresso nella
seguente forma
_
x = f(x, u)
y = h(x, u)
dove f e h sono mappe denite su un insieme aperto U del manifold
dello spazio di stato. Qualora si voglia studiare il sistema in un punto non
appartenente a U occorre scegliere una nuova carta delle coordinate che ne
cambia la rappresentazione. Verranno scelti infatti un nuovo insieme V M
che contiene il punto in studio e due nuove mappe f e h. Puo succedere
che due diverse carte siano denite su insiemi la cui intersezione non e nulla
quindi `e necessaria una certa compatibilit`a. Questo vuol dire che se ho
97
R
2
j(p)
R
2
S
y
j
U V
U
y(p)
p
Figura 6.4: Trasformazione tra carte delle coordinate
una carta (U, ) e una carta (V, ) con U V ,= 0 la mappa S =
1
e
C

(smooth)(v.g. 1.8).
S e una trasformazione di coordinate da x = (x
1
, , x
n
) a z = (z
1
, , z
n
)
con x
i
= r
i
e z
i
= r
i
quindi possiamo scrivere z
i
= S
i
(x
1
, , x
n
).
M con le sue carte delle coordinate C

e detto smooth manifold o varieta


regolare.
Def: un sottoinsieme P M e chiamato Submanifold di dimensione
m < n se p P esiste una carta delle coordinate per M tale che
P U = q U, x
i
(q) = x
i
(p), i = m + 1, , n
Gli strumenti della teoria dei manifolds sono preziosi per studiare le pro-
priet`a globali dei sistemi non lineari che evolvono su spazi di struttura ge-
ometrica complessa. In ogni modo, nel seguito, ci limiteremo a considerare
levoluzione di sistemi in intorni del punto iniziale che siano piccoli abbas-
tanza da non coinvolgere cambiamenti di carte. Fissata una carta, cio`e un
sistema di coordinate, potremo dunque studiare il sistema attraverso la sua
immagine su IR
n
.
Def: sia data una funzione f : A IR
n
IR . Una funzione e C
k
se e k volte dierenziabile e continua nelle sue derivate. Se una funzione e
C
k
k allora si dice liscia (f C

). Inoltre f si dice analitica (f C

) se
e espandibile in serie di potenze (di Taylor) in ogni suo argomento su ogni
punto di A.
Ricordiamo dallanalisi che esistono funzioni lisce ma non analitiche. Ad
esempio:
f(x) =
_
e

1
x
2
per x ,= 0
0 per x = 0
Noi assumeremo che le funzioni che appaiono nelle denizioni dei sistemi
nonlineari con cui trattiamo siano analitiche. Una eccezione si avr`a nel caso
di funzioni di ingresso costanti a tratti, che ovviamente non sono analitiche.
98
Torniamo a considerare il sistema :
_
x = f(x) +g
1
(x)u
1
(t) +g
2
(x)u
2
(t) + +g
m
(x)u
m
(t)
y = h(x)
dove le funzioni vettoriali f() e g
i
() sono assunte essere mappe in IR
m

IR
n
regolari ( cio`e C

) su tutto il dominio dello spazio di stato di nostro


interesse. Inoltre, le funzioni h
i
() sono assunte essere mappe IR
m
IR
1
regolari anchesse.
Nello studio dei sistemi nonlineari di nostro interesse incontriamo tre
oggetti fondamentali:
1 - Funzioni dello stato, che associano agli stati valori nei reali:
: M IR
p (p)
.
In coordinate locali (p = (x)) la funzione (che continuiamo a chiamare con lo
stesso nome) associa al vettore di stato uno scalare: : x IR
n
(x) IR.
Esempio: Un vincolo olonomo su un sistema meccanico descritto dal
vettore di congurazione generalizzata q, `e scritto come una funzione dello
stato C(q) = 0.
2 - Campi vettoriali, che associano agli stati vettori dello spazio tan-
gente alla variet`a:
f : M TM
p f(p)
In ogni punto p M, f(p) T
p
M `e un elemento dello spazio tangente alla
supercie M in p (TM denota linsieme degli spazi T
p
M tangenti a M in p,
al variare di p M). In coordinate locali si ha f : x IR
n
f(x) IR
n
.
In questo caso, scriveremo i campi vettoriali in notazione matriciale come
vettori colonna.
Eesempio: Si consideri la equazione dierenziale
x = f(x, x(0) = x
0
.
Il campo vettoriale f(x) pu`o essere visto come il vettore velocit`a associato
alla traiettoria (t, x
0
) che risolve la equazione dierenziale, cio`e tale per cui
d
dt
= f() ; (0, x
0
) = x
0
.
Si noti che anche se, in coordinate, gli spazi di dominio e codomino dei
campi vettori possono essere entrambe descritti come IR
n
, la natura dei due
spazi pu`o essere ben diversa. Ad esempio, nella descrizione del moto di un
99
punto, il dominio `e un insieme di punti, mentre il codominio `e un insieme di
vettori.
3 - Campi covettoriali, che associano agli stati elementi dello spazio
cotangente alla variet`a:
: M T

M
p (p)
Lo spazio cotangente T

M denota linsieme di tutti degli spazi T

p
M cotan-
genti ad M nei punti p M. Questi spazi sono formati da applicazioni che
associano ad un campo vettore dello spazio tangente una funzione scalare. In
altri termini, un covettore (p) T

p
M associa ad ogni vettore f(p) T
p
M
uno scalare (p) =< (p), f(p) >.
In coordinate locali si ha : x IR
n
(x) IR
n
. Per sfruttare la
notazione matriciale, esprimeremo i covettori come vettori riga. In questo
modo, lo scalare ottenuto dalla applicazione di un covettore ad un vettore si
valuta con la consueta convenzione del prodotto riga per colonna:
(x) = (x)f(x) =
n

i=1

i
(x)f
i
(x)
Esempio: La operazione di gradiente su una funzione scalare V (x) risulta
in un covettore
V
x
=
_
V (x)
x
1
, ,
V (x)
x
n
_
Pertanto, se m vincoli geometrici C(q) = 0 sono espressi in forma cine-
matica, cio`e scrivendo
C
q
q = A(q) q = 0, la matrice dei vincoli A(q) IR
mn
pu`o essere vista come una collezione di m covettori.
Si noti che possono essere dati campi covettoriali che non derivano da
una operazione di gradiente quale quella sopra indicata: questo `e il caso dei
vincoli anolonomi.
Un particolare campo covettoriale (x) = [
1
(x), ,
n
(x)] che (even-
tualmente moltiplicato per un opportuno fattore integrante (x) corrisponda
al gradiente di qualche funzione (x) : IR
n
IR, viene detto integrabile,
ovvero che `e un dierenziale esatto.
Una condizione necessaria e suciente perche (x) sia un dierenziale
esatto `e che

i
(x)
x
j
=

j
(x)
x
i
(6.1)
Esempio: Per un veicolo nel piano con congurazioni q = [x, y, ], un
vincolo che impone la costanza della orientazione

= 0 pu`o venire descritto
100
da A(q) q = 0, con A(q) un covettore
A(q) =
_
0 0 1
_
che verica la condizione (6.1), ed `e ovviamente integrabile nella forma
C(q) =
0
= 0 con
0
costante arbitraria.
Nel vincolo di un uniciclo appare invece il covettore
A(q) =
_
sin cos 0
_
che non verica la condizione (6.1), e pertanto non `e integrabile (sappiamo
che il vincolo `e anolonomo).
La condizione (6.1) si applica solo al caso di un solo covettore, mentre si
possono avere sistemi meccanici sottoposti a pi` u vincoli contemporanamente,
che possono combinarsi in modo non ovvio. Si consideri ad esempio il sistema
costituito da un uniciclo con il vincolo aggiuntivo che la sua direzione di
marcia sia costante, cio`e
A(q) =
_
sin cos 0
0 0 1
_
,
In questo esempio, i due vincoli (che separatamente considerati sono rispet-
tivamente anolonomo e olonomo) se posti insieme sono entrambe integrabili,
quindi olonomi. Il numero di congurazioni indipendenti necessarie a descri-
vere il sistema `e infatti ridotto a uno (il sistema pu`o essere visualizzato come
in moto su un binario rettilineo).
Per saper distinguere vincoli anolonomi da vincoli olonomi in forma cin-
ematica, sar`a necessario trovare condizioni pi` u generali.
Deniamo ora alcune operazioni su funzioni e campi in IR
n
di utilit`a nello
studio di sistemi non lineari:
1. Derivata di una funzione lungo un campo vettoriale Data una
funzione scalare (x) e un campo vettoriale f(x), si denisce derivata
direzionale di (x) lungo f(x) la funzione scalare
L
f
(x) =

x
f(x) =
n

i=1

x
i
f
i
(x)
2. Prodotto di Lie (o Lie Bracket) Con questo nome viene indicata
comunemente la derivata direzionale di un campo vettoriale lungo un
campo vettoriale (la notazione corrispondente L
f
g `e poco usata). Il
101
prodotto di Lie associa a due campi vettoriali g
1
(x), g
2
(x) un terzo
campo g
3
(x) = [g
1
, g
2
] dove
[g
1
, g
2
] =
g
2
(x)
x
g
1
(x)
g
1
(x)
x
g
2
(x)
Si noti che
g
i
(x)
x
rappresenta, per ogni x, una matrice (Jacobiana) nn.
Oltre che col simbolo [, ] il prodotto di Lie pu`o essere indicato con
[f(x), g(x)] = ad
f
g(x)
in modo da condensare l espressione di una Lie bracket iterata
k volte
..
[f, [f, [ [f, g]]]= ad
k
f
g(x)
3. Derivata di un campo covettoriale lungo un campo vettoriale
Associa a un campo covettoriale (x) e ad un campo vettoriale f(x)
un nuovo campo covettoriale denito come
L
f
= f
T
_

T
x
_
T
+
f
x
Tra i precedenti operatori, le Lie-Brackets hanno un ruolo fondamentale
nello studio dei sistemi nonlineari. Esse possiedono alcune propriet`a la cui
conoscenza si rivela utile:
1. propriet`a di bilinearit`a: per ogni
1
,
2
IR vale
[
1
f
1
+
2
f
2
, g
1
] =
1
[f
1
, g
1
] +
2
[f
2
, g
1
]
[f
1
,
1
g
1
+
2
g
2
] =
1
[f
1
, g
1
] +
2
[f
1
, g
2
]
2. propriet`a di anticommutativit`a
[f, g] = [g, f]
3. identit`a di Jacobi
[f, [g, h]] + [h, [f, g]] + [g, [h, f]] = 0
102
Vale inoltre la seguente relazione per Lie-Brackets tra campi moltiplicati per
funzioni scalari:
[(x)g
1
(x), (x)g
2
(x)] = [g
1
, g
2
] +L
g
2
g
1
L
g
1
g
2
Consideriamo per esempio alcune funzioni, campi vettoriali e covettoriali
lineari:
(x) = c
T
x , c IR
n
, x IR
n
f(x) = Ax , A IR
nn
g(x) = Bx , B IR
nn
(x) = x
T
C , C IR
nn
Si ha
L
f
(x) =

x
f = c
T
Ax
[f, g] =
g
x
f
f
x
g = (BA AB)x
[g, f] = (AB BA)x = [f, g]
L
f
= f
T
_

T
x
_
T
+
f)
x
= x
T
_
A
T
C +CA)
_
Consideriamo adesso il modello delluniciclo
x = g
1
(x)u
1
+g
2
(x)u
2
_

_
x
y

_ =
_

_
cos()
sin()
0
_

_u
1
+
_

_
0
0
1
_

_ u
2
La Lie bracket di g
1
(x) con g
2
(x) `e data da
[g
1
, g
2
] =
_

_ 0
_

_g
1

_
0 0 sin()
0 0 cos()
0 0 0
_

_
_

_
0
0
1
_

_ =
_

_
sin()
cos()
0
_

_
Si ha poi
[g
1
, [g
1
, g
2
]] =

x
_

_
sin()
cos()
0
_

_
_

_
cos()
sin()
0
_

_
_

_
0 0 sin()
0 0 cos()
0 0 0
_

_
_

_
sin()
cos()
0
_

_
da cui
103
[g
1
, [g
1
, g
2
]] =
_

_
0 0 cos()
0 0 sin()
0 0 0
_

_
_

_
cos()
sin()
0
_

_ 0 = 0
[g
2
[g
1
, g
1
]] =
_
g
2
,
g
1
x
g
1

g
1
x
g
1
_
= 0
vericando cos` lidentit`a di Jacobi. Inoltre si ha :
[g
2
[g
1
, g
2
]] =
_

_
0 0 cos()
0 0 sin()
0 0 0
_

_
_

_
0
0
1
_

_ =
_

_
cos()
sin()
0
_

_
[g
2
, [g
2
, g
1
]] = [g
2
, [g
1
, g
2
]]
[g
1
, [g
2
, g
2
]] = 0
6.2 Distribuzioni e Codistribuzioni
Ad un numero d di campi vettoriali g
1
(p), , g
d
(p), in un punto p M,
corrisponde un sottospazio dello spazio tangente descritto da
(p) = span [g
1
(p), , g
d
(p)] T
p
M
In coordinate si ha analogamente
(x) = span (g
1
(x), , g
d
(x)) IR
n
Linsieme di tutti i sottospazi forma una distribuzione su M.
La dimensione di una distribuzione in un punto p `e pari alla dimensione del
sottospazio (p), ovvero, in coordinate, al rango della matrice :
G(x) = [g
1
(x), , g
d
(x))]
Una distribuzione pu`o essere identicata con lo spazio immagine di G(x),
dove si pensi a combinazioni lineari delle sue colonne con coecienti che
possono essere funzioni dello stato x.
104
d
-d
t 2t 3t 4t
t 2t 3t 4t
d
-d
u
1
u
2
t
t
x
y
1
2 4
3
Figura 6.5: Veicolo su due ruote
Una distribuzione si dice non singolare su un dato insieme aperto di M
se la sua dimensione `e costante in ogni punto dellinsieme.
Un punto di M `e detto regolare se (p) `e non singolare in un suo intorno,
altrimenti `e detto punto di singolarit`a.
Se la dimensione di M `e n, si dice che (p) ha codimensione n d.
Una distribuzione generata dai vettori di controllo di un sistema del tipo
x = g
1
(x)u
1
+ +g
m
(x)u
m
ha levidente signicato di individuare, in ogni punto x, il sottospazio a cui
appartengono i vettori tangenti alle traiettorie seguite dal sistema quando
u
1
(t) = u
2
(t) = = u
k1
(t) = 0, u
k
(t) = u
k
,= 0, u
k+1
(t) = =
u
m
(t) = 0, al variare di k. Di conseguenza la distribuzione di controllo
contiene direzioni di moto che, almeno in piccolo, possono essere realizzate
dal sistema, scegliendo opportune combinazioni degli ingressi.
Una distribuzione di controllo pu`o per`o non contenere tutte le possibili di-
rezioni di moto. Si consideri ad esempio il modello cinematico di un uniciclo.
La distribuzione dei vettori di controllo `e
(x) = span
_

_
cos() 0
sin() 0
0 1
_

_
ed `e ovviamente regolare ovunque, con dimensione 2, codimensione 1. Le
direzioni di moto rese possibili dai vettori appartenenti alla distribuzione di
controllo coincidono con quelle possedute dal modello linearizzato approssi-
mato nel punto considerato.
Si pensi ora di applicare ingressi della forma riportata in gura a partire
dalla congurazione q
0
= (x = 0, y = 0, = 0).
Integrando le equazioni cinematiche
105
_

_
x
y

_ =
_

_
cos()
sin()
0
_

_u
1
+
_

_
0
0
1
_

_ u
2
si ottiene facilmente
_

_
x() =
y() = 0
() = 0
;
_

_
x(2) =
y(2) = 0
(2) =
;
_

_
x(3) = sin() +
y(3) = cos() 1
(3) =
e inne
_

_
x(4) = sin() +
y(4) = cos() 1
(4) = 0
Consideriamo ora il caso di piccoli ingressi e/o intervalli temporali brevi,
cos che 0. Sviluppando in serie di Taylor no al secondo ordine si ha:
_

_
x(4) = 0 + [(1 cos())]
=0
+

2

2
2
[sin ]
=0
+O(
3

3
) = O(
3

3
)
y(4) = 0 + [sin()]
=0
+

2

2
2
[cos()]
=0
+O(
3

3
) =

2
2
+O(
3

3
)
Trascurando gli innitesimi di ordine superiore al secondo `e possibile
vedere che, pur localmente, ( cio`e con moti arbitrariamente piccoli ), il movi-
mento risultante del veicolo `e stato nella direzione del vettore
_

_
x(4)
y(4)
(4)
_

_
_

_
x(0)
y(0)
(0)
_

_ =
_

_
0
1
0
_

_
che non risulta contenuto in (x(0)):
(x
0
) = span
_

_
_

_
1
0
0
_

_,
_

_
0
0
1
_

_
_

_
106
Osserviamo per ora solo incidentalmente che la direzione del moto in
cui e evoluto il sistema allistante 4 e invece contenuta in
[g
1
, g
2
] =
_

_
sin
cos
0
_

_
(0,0,0)
=
_

_
0
1
0
_

_
Ci chiediamo, pi` u generalmente, se da un punto x
0
possiamo muoverci
lungo direzioni non contenute in (x
0
). Questo e possibile come visto nellesempio:
lidea base e quella di scegliere opportune combinazioni degli ingressi u
1
, , u
m
in modo da commutare i campi vettoriali g
1
, , g
m
(vedi gura).
Si osservi il fatto importante che il moto nella direzione della Lie bracket,
esterna al sottospazio di raggiungibilit`a del sistema linearizzato, `e stato ot-
tenuto senza allontanarsi da un intorno del punto iniziale, ed infatti risulta
da una analisi locale.
Losservazione fatta nellesempio delluniciclo ha valore pi` u generale: si
pu`o dimostrare con facili passaggi che applicando ingressi alternati del tipo
sopra descritto al sistema
x = g
1
(x)u
1
+g
2
(x)u
2
e utilizzando il fatto che soluzioni di x = g
i
(x)u
i
, x(0) = x
0
possono essere
scritte come
x(t) = x(0)+ x(0)t+ x(0)
t
2
2
+O(t
3
) = x(0)+g
i
(x0)t+
t
2
2
g
i
x

x
0
g
i
(x
0
)+O(t
3
)
si ha che
x(4) = x
0
+ [g
1
, g
2
]
x=x
0

2
2
+O(
3

3
)
107
Questo signica che in prima approssimazione possiamo muovere il sis-
tema da x
0
lungo direzioni stabilite dal vettore generato dalla Lie bracket
[g
1
, g
2
] calcolato in x
0
.
(il calcolo di questo risultato `e facilitato se, senza perdere generalit`a, si
assumono coordinate per il sistema tali per cui uno dei campi vettori sia
costante.)
Questo non e tutto perche il termine O(
3
) , se sviluppato, contiene le
Lie brackets composte come
[g
1
, [g
1
, g
2
]] , [[g
1
, g
2
], [g
1
, [g
1
, g
2
]]] , etc.
queste generano direzioni di moto che possono essere prese dal sistema com-
mutando opportunamente gli ingressi.
Nel caso in cui consideri sistemi in cui il termine di deriva f non e nullo
devo considerare anche le Lie brackets che lo interessano.
In un certo senso la Lie bracket di due campi vettoriali misura la loro
non commutativit`a; `e evidente che questo operatore dierenziale giocher`a un
ruolo importante nei problemi di controllabilit`a.
Una distribuzione si dice involutiva se la Lie bracket di qualsiasi due
campi vettoriali che le appartengono, le appartiene ancora; cio`e se

1
(x) (x) ;
2
(x) (x) [
1
,
2
] (x)
Nellesempio precedente
1
(x) = span
_

_
cos()
.
.
. 0
sin()
.
.
. 0
0
.
.
. 1
_

_
non `e involutiva.
`
E invece involutiva la distribuzione

2
(x) = span g
1
, g
2
.[g
1
, g
2
] = span
_

_
cos()
.
.
. 0
.
.
. sin()
sin()
.
.
. 0
.
.
. cos()
0
.
.
. 1
.
.
. 0
_

_
come si constata facilmente osservando che
2
(x) ha dimensione 3 in ogni
punto dello spazio di stato.
La condizione che il rango della matrice associata ad una distribuzione
sia pieno non `e comunque necessaria: ad esempio, qualsiasi distribuzione
generata da campi vettoriali costanti `e certamente involutiva, essendo [a, b] =
0 , a, b = costanti.
Altro caso particolare, le distribuzioni generate da un solo campo vetto-
riale (x) = span g
1
(x) sono ovviamente involutive, in quanto
[ag
1
(x), bg
1
(x)] = 0, a, b IR
1
108
Data una distribuzione (x), risulta naturale introdurre il concetto di
chiusura involutiva di (x), come la distribuzione minima che contiene
(x) e che `e involutiva.
Loggetto analogo delle distribuzioni per i campi covettoriali `e denito
codistribuzione. Indicheremo con
(p) = span
1
(p), ,
l
(p)
la codistribuzione associata ai covettori
1
(p), ,
l
(p), cio`e linsieme di
tutti i covettori formati per combinazione lineare (a coecienti funzioni dello
stato) dei covettori dati.
In coordinate, le codistribuzioni possono essere identicate con lo spazio-
riga di una matrice che per righe ha le
i
.
`
E naturale pensare una analogia al noto teorema dellalgebra lineare, per
il quale, per ogni matrice costante A, vale
N(A
T
) = R(A)

N(A) = R(A
T
)

dove indica il complemento ortogonale di un sottospazio. Similarmente


per una distribuzione (x) si denisce il suo annichilatore

(x) = : v = 0, v (x)
cio`e linsieme dei covettori che danno prodotto interno nullo con qualsiasi vet-
tore di (x) . Essendo

(x) uno spazio aggiunto di IR


n
, esso `e certamente
una codistribuzione.
Analogamente data la codistribuzione (x), si pu`o costruire una dis-
tribuzione annichilatrice

(x) = v IR
n
:< , v >= 0, (x)
Si ha che
dim((x)) +dim(

(x)) = n
e ovviamente lo stesso vale per
dim((x)) +dim(

(x)) = n.
Nei sistemi meccanici con vincoli in forma cinematica A(q) q = 0, la ma-
trice A(q) denisce chiaramente una codistribuzione dei vincoli. La espres-
sione della stessa cinematica in termini di quasi velocit`a, q = S(q), esem-
plica luso della distribuzione annichilatrice span S(q).
109
Vale il seguente risultato: Se una distribuzione (x) `e regolare e non
singolare in x
0
, allora anche

(x) lo `e; vale anche il viceversa.


Inne accenniamo il fatto che per ogni distribuzione a d dimensioni (x)
non singolare ogni suo campo vettoriale pu`o essere espresso come
(x) =
d

i=1
c
i
(x)f
i
(x)
dove f
i
(x) sono campi vettoriali regolari che formano una base, tali cio`e che
(x) = span f
1
(x), , f
d
(x)
Supponiamo ora di avere una distribuzione (x) denita su uno spazio a
n-dimensioni con dimensione d < n. La codistribuzione annichilatrice

(x)
ha dimensione n d, e pu`o essere scritta come

(x) = span
1
(x), ,
nd
(x)
Ci chiediamo quando questi campi covettoriali siano in eetti dierenziali
esatti, cio`e esistano (n d) funzioni indipendenti
i
(x) tali che:

i
=

i
x
Tale condizione `e detta di completa integrabilit`a per la (x). Se la (x)
`e espressa come
(x) = span f
1
(x), , f
d
(x) = ImF(x)
le funzioni cercate dovranno vericare le equazioni dierenziali alle derivate
parziali

i
x
F(x) = 0 , i , x
Il problema chiaramente ci interessa ai ni della discriminazione dei vin-
coli cinematici tra olonomi ed anolonomi; ma vedremo che esso ha impor-
tanza pi` u generale, coinvolgendo tutta la analisi di raggiungibilit`a di sistemi
nonlineari.
Si consideri il luogo dei punti
i
(x) = cost in IR
n
. Il gradiente

i
x
(x)
pu`o essere visto geometricamente come un vettore in x e orientato come la
normale n(x) al luogo. La condizione che

i
x
f
j
(x) = 0 , i, j , x
110
x
1
x
2
l
i
(x)=0
n
dl
i
dx
x
2
x
1
x
3
x
0
a b
equivale a imporre che ognuno dei vettori f
j
(x), e ogni loro combinazione
lineare, sia perpendicolare alla normale al luogo in quel punto, cio`e tan-
gente al luogo. In tal caso risulta evidente che un sistema il cui vettore
velocit`a x appartenga a (x) sarebbe costretto a rimanere su
i
(x) = cost
indenitamente qualora vi si venga a trovare in qualsiasi istante.
`
E pertanto
fondamentale il seguente
Teorema di Frobenius Una distribuzione `e completamente inte-
grabile se e solo se `e involutiva.
Il teorema di Frobenius ha conseguenze immediate sulla raggiungibilit`a
del sistema. Se infatti per un sistema, la distribuzione di controllo ha di-
mensione d < n ed `e integrabile, esisteranno n d superci in M denite
da
i
(x) = c
i
= cost. che il sistema non pu`o abbandonare (le costanti dipen-
dendendo dalle condizioni iniziali). Il sistema non potr`a raggiungere nessun
punto che si trovi al di fuori della supercie intersezione (che ha dimensione
d), e non sar`a quindi certamente completamente raggiungibile.
Partendo da condizioni iniziali diverse, si avranno traettorie giacenti su
superci di equazione
i
(x) = c

i
con c

,= c ma ancora costante. Queste


superci sono parallele tra loro (nel senso che i piani tangenti sono paralleli),
e formano una foliazione di superci.
Il teorema di Frobenius vale localmente cio`e (x) `e integrabile in un
intorno di x
0
se e solo se `e involutiva nellintorno. Questo signica che il
sistema potrebbe ancora uscire dalla intersezione delle superci integrali,
allontanandosi sucicentemente dal punto iniziale. Per avere un risultato
valido in grande ho bisogno di una delle ulteriori condizioni
1. (x) analitica(cio`e tutti i suoi campi vettoriali sono analitici) su M
analitico, ovvero
2. (x) C

su M C

, con dim (x) = cost


In queste ipotesi, x
0
M esite una sottosupercie integrale massima che
non pu`o essere abbandonata dal sistema.
111
Esempio x IR
3
g
1
(x) =
_

_
0
x
3
x
2
_

_ ; g
2
(x) =
_

_
x
3
0
x
1
_

_
(x) = span g
1
, g
2
ha dimensione 2 eccetto in x
3
= 0.
g
3
= [g
1
, g
2
] =
_

_
+x
2
x
1
0
_

_ =
x
1
x
3
g
1

x
1
x
3
g
2
(x)
eccetto in x
3
= 0.
Per il teorema di Frobenius, ci attendiamo lesistenza di una variet`a inte-
grale di dimensione 2: infatti, le superci sferiche (x) = x
2
1
+x
2
2
+x
2
3
= cost.
sono tali per cui

x
_
g
1
(x) g
2
(x)
_
= 2
_
x
1
x
2
x
3
_
_

_
0 x
3
x
3
0
x
2
x
1
_

_ = 0
`
E possibile vedere facilmente che la evoluzione di un sistema dinamico x =
g
1
(x)u
1
+g
2
(x)u
2
, non abbandonerebbe mai la supercie sferica sulla quale si
trovano le sue condizioni iniziali: infatti, sarebbe

=

x
x = 0, per qualsiasi
valore dei controlli u
1
(t), u
2
(t).
6.3 Raggiungibilit`a dei Sistemi Nonlineari
Torniamo ora al sistema in forma ane nel contollo
x = f(x) +g
1
(x)u
1
(t) +g
2
(x)u
2
(t) + +g
m
(x)u
m
(t)
Una denizione di raggiungibilit`a per questo sistema potrebbe essere data
cos`:
Un sistema `e raggiungibile se x
1
, x
2
X esiste T(< ), u : [0, T] U
tale che x(T, x
1
, u) = x
2
.
Per questa denizione in grande di raggiungibilit`a non esistono, al mo-
mento attuale, criteri di verica di facile e generale applicabilit`a.
Perno per una versione locale del tipo
Un sistema `e localmente raggiungibile in x
1
se, x
2
in un intorno di x
1
,
esiste T(< ), u : [0, T] U tale che x(T, x
1
, u) = x
2
.
non si hanno al momento soddisfacenti criteri di verica. Il problema `e che
la possibilit`a di poter raggiungere un punto anche vicino pu` o dipendere per
112
sistemi nonlineari generali anche dal comportamento del sistema in regioni
lontane: ad esempio, si consideri il sistema in IR
2
x =
_

_
_
1
0
_
u
1
, x
1
< 1
_
1
0
_
u
1
+
_
0
1
_
u
2
, x
1
1
in cui tutti i punti di un intorno dellorigine sono raggiungibili, ma solo dopo
aver raggiunto il semipiano chiuso x
1
1. Lanalisi di sistemi discontinui
come questo `e un argomento di ricerca attualmente ancora molto aperto.
Questo tipo di dicolt`a `e legata al fatto che i sistemi nonlineari possono
non essere analitici. I sistemi analitici sono quelli in cui i campi vettoriali
di deriva e di controllo sono tutti esprimibili in serie di Taylor attorno al
punto iniziale. Questo signica che linformazione locale sul sistema (cio`e il
valore dei campi e di tutte le loro derivate nel punto iniziale) `e suciente a
determinare tutto landamento del campo anche a distanza nita dal punto
iniziale. Si pu`o notare che lesempio precedente non `e analitico. Consider-
eremo quindi una ulteriore restrizione del concetto di raggiungibilit`a, detta
raggiungibilit`a localelocale.
Introduciamo la notazione R
V
T
(x
0
) per indicare linsieme dei punti raggiun-
gibili da x
0
al tempo T > 0 seguendo traiettorie che rimangono, per t T,
contenute nell intorno V di x
0
.
Un sistema non lineare e detto
raggiungibile localmentelocalmente (in sigla, l.l.c.) da x
0
se, per ogni
intorno V (arbitrariamente piccolo) esiste T tale che R
V
T
(x
0
) contiene
un intorno di x
0
;
raggiungibile localmente in tempo breve (small-time locally control-
lable, o s.t.l.c.) da x
0
se, per ogni V e per ogni T (arbitrariamente
piccoli), R
V
T
(x
0
) contiene un intorno di x
0
;
Nelle denizioni appena date, si sostituisce la parola raggiungibile con
la parola accessibile quando si possa solo dimostrare che R
V
T
(x
0
) contiene
un insieme aperto non vuoto di M (cio`e, non un intorno).
Si `e visto in precedenza come le direzioni indicate dalle Lie bracket tra
i campi vettori della distribuzione di controllo siano anchesse possibili di-
rezioni di moto locali del sistema.
`
E naturale perci`o considerare la seguente
113
catena (o ltrazione) di distribuzioni

0
= span (g
1
, . . . , g
m
); = span (f, g
1
, . . . , g
m
)

1
= span (g
1
, . . . , g
m
, [f, g
1
], . . . , [f, g
m
],
[g
1
, g
2
], , [g
1
, g
m
], . . .) =
= [
0
, ] +
0
.
.
. =
.
.
.

k
=
k1
+ [
k1
, ]
La dimensione di
k
(p) in un punto p `e non decrescente, e limitata superi-
ormente (dalla dimensione dello spazio di stato).
Se tutte le distribuzioni ottenute sono non-singolari in p, allora la di-
mensione di
k
`e strettamente crescente sino a che, per qualche k, si avr`a
dim
k
= dim
k1
. A questo k la ltrazione si arresta (ogni successiva iter-
ata orirebbe ancora la stessa distribuzione). Si noti che k nm+1, quindi
la procedura `e computabile in un numero nito di passi. La distribuzione
k
viene dette distribuzione di accessibilit`a per il sistema.
Se le distribuzioni ottenute sono singolari in p, la ltrazione deve pro-
cedere sinche non si giunge ad una distribuzione nonsingolare di dimensione
pari alla successiva. In questo caso, il numero k di passi necessari alla pro-
cedura non `e superiormente limitabile a priori.
In termini della distribuzione di accessibilit`a si pu`o formulare il seguente
Teorema di Chow. Se dim
k
(p) = dim
k1
(p) = n allora il
sistema e l.l. accessibile.
Se dim
k
= dim
k1
= r < n in tutti i punti di un intorno
di p, linsieme raggiungibile l.l. in tempo T R
V
T
`e contenuto in
una sottosupercie S
p
di dimensione r dello spazio di stato. R
V
T
contiene un sottoinsieme aperto di S
p
, quindi il sistema ristretto
su S
p
`e l.l. accessibile.
In generale la accessibilita di un sistema non implica la raggiungibilita.
Ad esempio si consideri il seguente sistema
_
x
1
x
2
_
=
_
x
2
2
u
_
=
_
x
2
2
0
_
+
_
0
1
_
u
Il sistema e localmente accessibile da p, come si verica dal teorema di
Chow:
a) Per p
2
,= 0, dim
1
(p) = 2;
114
x
1
x
2
x
0
x
1
x
2
x
0
x
i
intorno aperto
non vuoto
punto non
raggiungibile
Figura 6.6: Sistema accessibile ma non raggiungibile
b) Per p
2
= 0,
1
= span g, [f, g] `e singolare in p, ma
2
= span g, [f, g], [g, [f, g]]
ha dimensione 2 ovunque.
Dalla denizione di locale accessibilita, R
V
T
(p) contiene un insieme aperto
non vuoto di M (un sottoinsieme del semipiano destro). Il sistema non e
per`o raggiungibile perche non posso raggiungere punti, anche arbitrariamente
vicini al punto iniziale, appartenenti al semipiano sinistro (quindi R
V
T
(p) non
contiene un intorno): infatti le evoluzioni dello stato, a partire da punti
p = (p
1
, p
2
), appartengono al semipiano a destra della retta x = p
1
perche x
1
e sempre positivo.
In certi casi si pu`o decidere la raggiungibilita (anche in tempo breve) data
la accessibilita (l.l.). In particolare, `e ovvio che la accessibilit`a `e condizione
necessaria per la raggiungibilit`a. In termini semplicativi, la raggiungibilit`a
sar`a possibile quando gli eetti del vettore di deriva possono essere annul-
lati dal controllo. Si pu`o dimostrare che le seguenti, assieme alla condizione
di accessibilit`a, sono condizioni sucienti (di crescente generalit`a e comp-
lessit`a) per la raggiungibilit`a in tempo breve a partire da un punto p:
1. f(x) 0, x B

(p);
2. f(x) span [g
1
(x) g
m
(x)], x B

(p);
3. f(p) = 0 e dim
L
(p) = n, dove
L
= span g
i
, [f, g
i
], . . . , ad

i
f
g
i
, . . .,
con i = 1, . . . , m e per qualsiasi
i
IN;
4. f(p) = 0 e dim(
L
(p) +
G1
(p)) = n, dove
G1
= span [g
i
, g
j
], per
tutti gli i, j da 1 a m;
5. f(p) = 0, e ogni Lie bracket tra le f e le g in cui appaiano un numero
dispari di f e un numero pari (diverso da zero) di g (bad brackets),
sia combinazione lineare di bracket con un minor numero totale di f e
g.
115
Si noti che i criteri 1, 2, sono molto pi` u restrittivi perche richiedono
propriet`a che devono essere vericate su tutto un intorno di p, mentre le
altre condizioni vengono valutate solo in p stesso.
La condizione 1) `e particolarmente interessante per lo studio della olono-
mia di vincoli cinematici. Vediamo esplicitamente la procedura di analisi in
questo caso.
Sia dato un sistema meccanico con n congurazioni q, sottoposto a m
vincoli cinematici in forma di Pfa, A(q) q = 0. Si consideri la distribuzione
o = /

che annichila la distribuzione dei vincoli /(q) = rowspan A(q). Sia


S(q) una base di o, e siano s
i
(q) i campi vettori che ne formano le colonne.
La forma di controllo per il sistema in esame `e pertanto
q = s
1
(q)u
1
+ +s
nm
(q)u
nm
Si costruisca la ltrazione

0
= span (s
1
, . . . , s
nm
)

1
= [
0
,
0
] +
0
.
.
. =
.
.
.

k
=
k1
+ [
k1
,
0
]
Sia d = dim
k
costante in un intorno di un punto q. Allora, le congurazioni
del sistema non possono abbandonare (almeno localmente) una supercie di
dimensione d nello spazio di stato, il che implica che
n d degli m vincoli sono olonomi;
i restanti m(n d) sono anolonomi;
Si dice in questo caso che il sistema ha grado di anolonomia mn+d. Nel caso
d = n, il sistema (completamente raggiungiungibile) `e detto massimamente
anolonomo.
Per quanto riguarda la condizione 2), la sua interpretazione `e evidente:
f(x) in questo caso pu`o essere neutralizzato da opportuni controlli, e
lanalisi viene ricondotta al caso precedente.
Per quanto riguarda la condizione 3), si consideri un sistema lineare
x = Ax +Bu x IR
n
, u IR
m
come sistema nonlineare, cio`e f(x) = Ax e g
i
(x) = B
i
, i-esima colonna di B.
Svolgendo i calcoli si ottiene [g
i
, g
j
] = 0 e ad
k
f
g
i
= (1)
k
A
k
B
i
. Infatti,
_
g
i
, ad
k
f
g
j
_
= 0, i, j, k e [f, g] = [Ax, b
i
] = Ab
i
, [f, [f, g]] = [Ax, Ab
i
] =
A
2
b
i
, e [g
i
, g
j
] = [b
i
, b
j
] = 0
116
Pertanto se la distribuzione

k
= span
_
g
1
.
.
.[f, g
1
]
.
.
.
.
.
.ad
k
f
(g
1
)
.
.
.
.
.
.g
2
.
.
.[f, g
2
]
.
.
.
.
.
.ad
k
f
(g
2
)
.
.
.
.
.
.
_
= span [B, AB, , A
k
B]
ha rango n per qualche k, il sistema `e raggiungibile. Ci si riconduce quindi
al consueto test lineare. Per Cayley-Hamilton, sappiamo che `e suciente
studiare
n1
=
L
.
Si consideri ora un sistema x = f(x) +G(x)u, x IR
n
, u IR
m
che abbia
equilibrio nellorigine (dopo eventuale traslazione), e lo si scriva nella forma
x = f(x) +G(x)u = Ax +p(x) + (B +r(x)) u
con |p(x)|, |r(x| innitesimi di ordine almeno due.
Si pu`o mostrare facilmente che questa coincide, a meno di innitesimi
di ordine superiore, con quella della approssimazione lineare. Pertanto, la
raggiungibilit`a della approssimazione lineare in un punto di equlibrio `e suf-
ciente per la raggiungibilit`a locale in tempo breve del sistema nonlineare
originale.
Inne, lapplicazione allesempio bidimensionale con termine di deriva so-
pra riportato della condizione 5) e possibile solo per p
2
= 0; la condizione
non `e soddisfatta proprio a causa della bad bracket [g, [f, g]].
Accessibilit`a in senso Debole
La distribuzione su cui si stabilizza la ltrazione di accessibilit`a,
k
, coincide
dunque per i sistemi lineari con la immagine della matrice di raggiungibilit`a
R =
_
B AB A
n1
B
_
che `e a sua volta uguale al sottospazio raggiungibile dallorigine (in un tempo
arbitrario) 1
0
= span R.
In generale, linsieme di raggiungibilit`a entro il tempo T da un punto
x
0
,= 0, per un sistema lineare x = Ax+Bu non completamente raggiungibile,
`e dato da
1(x
0
, T) = x IR
n
[ x = exp(A)x
0
+v, 0 T, v 1
0
.
Questo tipo di raggiungibilit`a `e da considerarsi pi` u debole di quella ottenuta
dalla origine per i punti in 1
0
, nel senso che alcuni punti possono essere
raggiungibili solo in un tempo ssato.
117
Per il caso nonlineare, si consideri dunque linsieme
R
V
(x
0
, T) =
_
T
R
V
(x
0
, T),
ovvero linsieme degli x che possono essere raggiunti in tempo t T restando
vicini (dentro V ) a x
0
.
Le denizioni sopra date di accessibilit`a e raggiungibilit`a locale-locale si
applicano in senso debole se vi si considera R
V
(x
0
, T) al posto di R
V
T
(x
0
).
Ovviamente, se un sistema `e accessibile (nel primo senso, forte), esso `e
anche accessibile in senso debole.
Ub test di accessibilit`a debole nei sistemi nonlineari `e basato sulla l-
trazione

0
= span (f, g
1
, , g
m
)

1
=
0
+ [
0
,
0
]
.
.
.

k
=
k1
+ [
k1
,
0
]
che si interrompe quando dim
k
= dim
k1
= d quindi il sistema `e l.l.d.a.
se e solo se d = n.
Esempio: Dierenze tra la locale forte accessibilita e la locale accessi-
bilita. Limitiamo lo studio ad un sistema lineare del tipo
_
x
1
x
2
_
=
_
1 0
0 1
_ _
x
1
x
2
_
+
_
1
1
_
u
questo sistema non e raggiungibile perche la matrice di raggiungibilita ha
rango pari a 1
[BAB] =
_
1 1
1 1
_
Levoluzione libera del sistema e
_
x
1
(t) = x(0)e
t
x
2
(t) = x(0)e
t
la traettoria del sistema in evoluzione libera e una retta di pendenza

4
sul
piano (x
1
, x
2
) La distribuzione (n-1)-sima relativa al test di locale debole
accessibilita sara

n1
= span [Ax] + span [B, AB]
mentre la distribuzione (n-1)-sima relativa al test di locale forte accessibilita
`e

n1
= span [B, AB]
118
Ad esempio, ci chiediamo se a partire dallo stato iniziale x
0
= (1, 1) pos-
siamo raggiungere un punto x
c
= (0, 4) ad un tempo T arbitrariamente
ssato. Questo non e possibile perche dal test di locale forte accessibilita
vediamo che le direzioni possibili per questo tipo di controllo appartengono
allo span [BAB]. Questo non vuol dire che il punto x
c
non sia raggiungibile
(infatti lo `e al tempo T log(2)): il test di locale accessibilita in x
c
infatti
indica
1
= span
_
1 1
1 1
_
.
Esempio Sistemi lineari tempo varianti
Possiamo riportarci ad un sistema non lineare tempo invariante ponendo
un nuovo vettore di stato z IR
n+1
:
z =
_
x
t
_
; z =
_
x

t
_
= f(z) +g(z)u =
_
A(t)x
1
_
+
_
B(t)
0
_
u
Calcoliamo adesso le Lie brackets: [g
i
, g
j
] = 0,
[f, g
i
] =
_
0 B
i
0 0
_ _
Ax
1
_

_
A

Ax
0 0
_ _
B
i
0
_
=
=
_

B
i
AB
i
0
_
=
_ _
d
dt
A
_
B
i
0
_
[f, [f, g
j
]] =
_
0
d
dt
[B AB]
0 0
_ _
Ax
1
_

_
A

Ax
0 0
_ _

B AB
0
_
=
=
_ _
d
dt
A
_ _

B AB
_
0
_
=
_
_
_
d
dt
A
_
2
B
0
_
_
[g
i
, [g, g
j
]] = 0 ad
K
f
g =
_
_
_
d
dt
A
_
k
B
0
_
_
Indicando con loperatore dierenziale
_
d
dt
A
_
, il sistema `e dunque rag-
giungibile se
rank
__
B
.
.
. B
.
.
.
2
B
.
.
.
__
= n
Esempio Raggiungibilit`a sistema altalena
Supponiamo che un bambino di massa m si alzi e si abbassi sulla altalena,
variando cos` la lunghezza l. Le equazioni del moto sono ottenute facilmente
con il metodo di Eulero-Lagrange,

=
g
l
sin 2

l
119
e ponendo
= x
1
,

= x
2
, l = x
3
,

l = u
si ha in forma di controllo
x = f(x) +g(x)u ; f(x) =
_

_
x
2
g
sin x
1
x
3
0
_

_ ; g(x) =
_

_
0
2
x
2
x
3
1
_

_
Si ottiene poi
[f, g] =
_

_
2
x
2
x
3
g
S
1
x
2
3
0
_

_
; [f, [f, g]] =
_

_
g
S
1
x
2
3
gC
1
x
2
x
2
3
0
_

_
span f, g, [f, g], [f, [f, g]] = 3
eccetto che nei punti per cui x
2
= 0 , x
1
= 0 +k ; quando laltalena si trova
in queste condizioni occorre uno start per iniziare a muoversi.
Esempio Sistemi in forma concatenata
Un sistema non lineare del tipo
_

_
x
1
= u
1
x
2
= u
2
x
3
= x
2
u
1
x
4
= x
3
u
1
.
.
.
x
n
= x
n1
u
1
si dice in forma concatenata. Alcuni importanti sistemi robotici possono
essere scritti in questa forma, come ad esempio un veicolo a singolo asse o
uniciclo (n = 3), un veicolo a doppio asse (n = 4), e un veicolo a doppio
asse con m rimorchi (n = 4 +m).
`
E un sistema senza deriva, con camppi di
controllo
g
1
= (1 0 x
2
x
3
x
n1
)
T
; g
2
= (0 1 0 0 0)
T
Calcolando le Lie brackets si ha
[g
1
, g
2
] =
g
1
x
g
2
=
_

_
0 0 0
0 0 0
0 1 0
0 0 1

_

_
_

_
0
1
0
.
.
.
0
_

_
=
_

_
0
0
1
0
0
_

_
= e
3
120
[g
2
, [g
1
, g
2
]] = 0 ; [g
1
, [g
1
, g
2
]] =
g
1
x
[g
1
, g
2
] =
_

_
0
0
0
1
0
_

_
= e
4
e in generale
ad
k
g
1
g
2
= e
k+2
Al (n-2)-esimo livello di Lie Brackets si ottiene quindi la completa raggiungi-
bilit`a. Ne consegue che `e possibile parcheggiare in congurazione arbitraria
un veicolo con un numero arbitrariamente elevato di rimorchi (naturalmente,
le manovre risulteranno molto complesse, ricorrendo a commutatori di ordine
tanto pi` u elevato quanto pi` u alto `e il numero di rimorchi).
6.4 Osservabilit`a
Riprendiamo lo studio del modello completo:
_
x = f(x) +

m
i=1
g
i
(x)u
i
y
j
= h
j
(x) , j = 1 . . p
Def : Due stati sono detti indistinguibili, se per ogni u U , insieme
dei controlli ammissibili, le evoluzioni a partire da x
1
e x
2
danno la stessa
uscita y(t) .
Anche in questo caso la denizione si specializza in senso locale con-
siderando in U solo controlli che, per T piccoli, non facciano allontanare x(t)
da un intorno di x
1
(e di x
2
). Per vericare luguaglianza di due funzioni
y(x
1
, u
1
) e y(x
2
, u
2
), in ogni istante t, `e suciente ( se sono analitiche )
confrontare i valori di tutte le loro derivate in t = 0 . Sar`a dunque
y
i
(0) = h
i
(x
0
)
y
i
(0) =
h
i
x
x

0
=
h
i
x
f(x) +

j
h
i
x
g
j
(x)u
j

0
= L
g
h
i
(x
0
) +

j
L
g
h
i
u
j
(0)
e cos` via .
121
Def : Chiamo Spazio di osservazione lo spazio lineare di funzioni
che contiene h
1
, , h
p
e tutte le derivate di Lie L
x
1
, , L
x
k
h
J
, con
_
x
i
= f , g
1
, , g
m
k = 1 , 2,
.
In altre parole, tutte le funzioni (dello stato) che appaiono nelle uscite,
moltiplicate per funzioni degli ingressi ( u
i
, u
i
, u
2
i
, etc. ). Questo spazio `e
anche lo spazio delle funzioni del tipo
L
z
1
L
z
2
L
z
k
h
j
(x) k = 1, 2,
con
z
i
= f(x) +
m

j=1
g
j
(x)u
(i)
j
, u
(i)
vettore costante
Cio`e esplicitamente lo spazio delle variazioni delle uscite corrispondenti a
ingressi costanti atratti, di piccola durata. Infatti
L
x
1
+x
2
=

x
(x
1
+x
2
) = L
x
1
+L
x
2

L
x
(
1

2
) = L
x

1
+L
x

2
Quindi essendo ogni z
i
combinazione lineare di x
i
e viceversa, anche le L
z
i
e L
x
i
lo sono. Lo spazio di ossevabilit`a contiene tutte le funzioni h(x)
e le loro derivate di ogni ordine calcolate lungo le traettorie del sistema.
Intuitivamente se le funzioni in sono indipendenti la loro eguaglianza per
ogni u implica che sono applicate alla stessa x.
Esempi:
In un intorno di 0, in IR
1
, sin(x) `e invertibile.
sin(x
1
) = sin(x
2
) x
1
= x
2
( localmente )
invece cos(x) non lo `e.
In IR
2
le funzioni
_
sin(x +y)
x
sono indipendenti e
_
sin(x
1
+y
1
) = sin(x
2
+y
2
)
x
1
= x
2

_
x
1
= x
2
y
1
= y
2
mentre per le funzioni
_
sin(x +y)
x
2
questa propriet`a non vale.
122
Un metodo per stabilire l indipendenza di funzioni `e dato dal teorema
del Dini. infatti
J
_
sin(x +y)
x
_

0
=
_
cos(x +y) cos(x +y)
1 0
_

0
=
_
1 1
1 0
_
J
_
sin(x +y)
x
_

0
=
_
1 1
0 0
_
Si pu`o notare come lo jacobiano nel primo caso generi due vettori linearmente
indipendenti mentre nel secondo caso generi vettori linearmente dipendenti.
Da questo esempio risulta chiara limportanza delle derivate

x
nel decidere
lindipendenza di funzioni.
Due funzioni f
1
(x), f
2
(x) si dicono indipendenti se i covettori
df
1
(x) =
f
1
x
; df
2
(x) =
f
2
x
sono indipendenti ( in un punto o in un insieme )
Def : si denisce la Codistribuzione di osservabilit`a come
dO = span
_
h
1
x
, ,
h
p
x
,
L
f
h
x
,
_
= span d(x),
Se dim dO = n, il sistema `e localmente osservabile (in un punto o
in un insieme) , cio`e tra i punti vicini a x
0
, lunico indistinguibile
`e x
0
stesso.
Si denisce la matrice tale che rowspan = dO.
Se ha rango n in x,

= ^() = 0 e quindi non esiste alcuno


stato x + x in un intorno di x tale che y(x + x, u) y(x, u) =
x = 0, cio`e che lasci le funzioni y(t), y(t), invariate .
Se invece dim(dO) = k < n con k = cost esisteranno k funzioni (x)
tali che dO = span d
1
d
k
. Le superci (x) = cost sono tali per
cui traettorie uscenti da due stati appartenenti allintersezione di tutte le
superci sono indistinguibili dalluscita.
Losservabilit`a locale `e una propriet`a che non implica losservabilit`a glob-
ale, come `e giusticato attendersi per sistemi non lineari.
123
Ad esempio il sistema
_

_
x = u f(x) = 0 g(x) = 1
y
1
= sin x
y
2
= cos x
ha spazio di osservabilit`a
dO = sin x, cos x, L
f
y
1
= 0, L
f
y
2
= 0, L
g
y
1
= cos x, L
g
y
2
= sin x
la corrispondente codistribuzione di osservabilit`a `e data da
dO = span cos x , sin x
da cui dim(dO) = 1, per ogni valore di x . Il sistema `e localmente osservabile
ovunque; comunque gli stati iniziali x
0
e x
1
= x
0
+
2K

non sono distinguibili.


Esempio Caso lineare
_
x = Ax +Bu f(x) = Ax g
i
(x) = b
i
y = Cx h
i
(x) = c
i
x
Lo spazio di osservabilit`a sar`a
=
_
c
1
x, , c
m
x, L
f
h
1
= c
1
Ax, , L
g
i
h
j
= c
j
b
i
u, , L
f
L
f
h
1
= c
1
A
2
x,
_
la codistribuzione di osservabilit`a
dO = span
_
c
1
; ; c
m
; c
1
A; ; c
m
A; c
1
A
2
;
_
Il rango della codistribuzione coincide col rango della matrice
_

_
C
CA
CA
2

_

_
e quindi col classico criterio ( di Kalman ) di osservabilit`a.
Si noti inne che se rankd < n in un punto isolato ( di singolarit`a ), non
si pu`o escludere la locale osservabilit`a .
Esempio
_
x = 0
y = x
3
questo sistema `e osservabile ma dimdO = dimx
3
= 0 in x = 0.
124
Y
X
a
1
a
2
q
a b
Se il sistema
_

_
x = f(x) +g
1
(x)u
1
+
y
1
= h
1
(x)
y
2
=
`e localmente accessibile e analitico, e M `e convesso, allora `e lo-
calmente osservabile se e solo se tiene la condizione di rango ( la
codistribuzione non `e singolare ).
Esempio
Consideriamo ancora il modello semplicato di un auto assieme a due
equazioni di misura degli angoli sotto i quali una telecamera a bordo del
veicolo osserva due punti ssi di traguardo.
q =
_

_
x
y

_
1
= + arctan
_
y
x
_

2
= + arctan
_
(1 y)
x
_
_

_
q = g
1
(q)u
1
+g
2
(q)u
2
=
_

_
cos(q
3
)
sin(q
3
)
0
_

_u
1
+
_

_
0
0
1
_

_u
2

1
= q
3
+ arctan
_
q
2
q
1
_

2
= q
3
arctan
_
(1 q
2
)
q
1
_
Lo spazio di osservazione contiene
L
g
h
1
=
h
1
(x)
x
g
1
(x) =
xsin y cos
x
2
+y
2
L
g
2
h
1
= 1
125
L
g
1
h
2
=
(d y) cos +xsin
x
2
+ (y d)
2
L
g
2
h
2
= 1
L
g
2
L
g
1
h
1
=
xcos +y sin
x
2
+y
2
Gli elementi no ad ora calcolati permettono di scrivere
= h
1
, h
2
, L
g
2
h
1
, L
g
1
h
2
, L
g
2
h
2
, L
g
2
L
g
1
h
1
,
Non tutte queste funzioni sono indipendenti, infatti
h
1
x
=
_
y
x
2
+y
2
x
x
2
+y
2
1
_
h
2
x
=
_
d y
x
2
+ (d y)
2
x
x
2
+ (d y)
2
1
_
L
g
1
h
1
x
=
_
sin
[
x
2
+y
2
]
2x[x sin y cos ]
[x
2
+y
2
]
2
,
cos
[
x
2
+y
2
]
2y[x sin y cos ]
[x
2
+y
2
]
2
,
x cos +y sin
x
2
+y
2
_
L
g
2
h
1
x
= 0
L
g
1
h
2
x
=
_
sin
[
x
2
+(dy)
2
]
2x[x sin +(dy) cos ]
[x
2
+(dy)
2
]
2
,
cos
[
x
2
+(dy)
2
]
2(dy)[x sin +(dy) cos ]
[x
2
+(dy)
2
]
2
,
x cos (dy) sin
x
2
+(dy)
2
_
L
g
2
h
2
x
= 0
L
g
2
L
g
1
h
1
x
=
_
cos
[
x
2
+y
2
]
2x[x cos +y sin ]
[x
2
+y
2
]
2
,
sin
[
x
2
+y
2
]
2y[x cos +y sin ]
[x
2
+y
2
]
2
,
x sin +y cos
x
2
+y
2
_
I campi covettoriali di d calcolati hanno rango 3 laddove uno almeno dei
seguenti determinanti e diverso da zero
D
1
= det
_

_
dh
1
dh
2
dL
g
1
h
1
_

_ =
d(y d)(y cos xsin )
[x
2
+ (y d)
2
] [x
2
+y
2
]
2
126
D
2
= det
_

_
dh
1
dh
2
dL
g
1
h
2
_

_ =
dy((y d) cos xsin )
[x
2
+ (y d)
2
] [x
2
+y
2
]
2
D
3
= det
_

_
dh
1
dh
2
dL
g
2
L
g
1
h
1
_

_ =
d(y d)(y sin +xcos )
[x
2
+ (y d)
2
] [x
2
+y
2
]
2
Si noti che i punti in cui sono situati i markers sono da escludersi perche
in questi punti le funzioni h
1
e h
2
non sono denite.
Svolgendo i calcoli sui determinanti ottengo i seguenti risultati
D
1
= 0 se
_

_
y = d
d = 0
y
x
= atan
oppure
_
= k +

2
x = 0
D
2
= 0 se
_

_
y = 0
d = 0
yd
x
= tan
oppure
_
= k +

2
x = 0
D
3
= 0 se
_

_
y = d
d = 0
y
x
= tan
oppure
_
= k +

2
y = 0
I tre minori si annullano contemporaneamente quando d = 0, cioe i mark-
ers sono coincidenti. Quindi se i markers coincidono il sistema non e osserv-
abile e gli stati indistinguibili appartengono alla supercie atan
y
x
= .
Inne osserviamo che se rinunciamo ad uno degli ingressi ottengo
1. caso in cui rinuncio a ruotare
=

= 0 det
_

_
dh
1
dh
2
dL
g
1
h
1
_

_ = det
_

_
dh
1
dh
2
dL
g
1
h
2
_

_ = 0 per
_
= k +

2
x = 0
cioe siamo nella seguente situazione
2. caso in cui rinuncio a avanzare
v = 0
_

_
dh
1
dh
2
dL
g
2
h
1
_

_ = 0 sempre
quindi il sistema non e osservabile solo ruotando.
Capitolo 7
Controllo di Sistemi Nonlineari
7.1 Introduzione
Vi sono due problemi fondamentali:
Stabilizzazione
Inseguimento (tracking)
La stabilizzazione consiste nel trovare un ingresso u(x) tale da rendere il si-
stema nonlineare x = f(x, u(x)), asintoticamente (esponenzialmente) stabile
attorno ad un punto di equilibrio x
0
.
Il tracking si riferisce a un modello ingresso-uscita
_
x = f(x, u)
y = h(x)
e cerca di trovare u(x) tale che y(t) y
d
(t) asintoticamente.
Ricordiamo che la stabilizzabilit`a si pu`o ottenere con metodi lineari ro-
busti, localmente: ( x = Ax +Bu +hot) se (A, B) `e stabilizzabile.
I metodi di linearizzazione feedback sono pi` u potenti perche:
a) valgono anche per sistemi con linearizzato che abbia poli non control-
labili, marginalmente stabili;
b) pur se si ottengono ancora risultati solo locali, sono spesso pi` u ampi.
7.2 Linearizzazione Input-Stati
Lidea `e quella, dato un sistema nonlineare del tipo
x = f(x) +

j
g
j
(x)u
j
127
128
e un punto di equilibrio
f(x
0
) = 0,
di trovare un cambio di variabili z = (x) tale che
(x
0
) = 0
e
z =

x

x=
1
(z)
x =

x

x=
1
(z)
(f(
1
(z)) +

j
g
j
(
1
(z))u
j
) = Az +Bu
con z(0) = 0.
Cio`e ottenere un sistema lineare nelle nuove variabili di stato z equivalente
a quello iniziale, con punto di equilibrio in z(0).
Questi sistemi sono sostanzialmente lineari, anche se appaiono in forma
travisata.
Riconoscerli pu`o non essere banale. Una condizione necessaria e suciente
per capire se ci troviamo di fronte ad un sistema di questo tipo o meno, ci
viene dal seguente teorema:
Theorem 1 (H. Nijmijer, A.J. Van der Schaft) Dato il sistema
x = f(x) +
m

i=1
g
i
(x)u
i
con f(x
0
) = 0, esiste un cambiamento di variabili (x) = z tale che z = Az +Bu,
con (A, B) coppia controllabile, se e solo se
a) dim(spanad
j
f
g
i
(x), i = 1, . . . , m; j = 0, 1, . . . , n1) = n x B(x
0
);
b) [ad
k
f
g
i
, ad
l
f
g
j
] = 0 i, j, k, l; x B(x
0
).
La condizione (a) corrisponde a chiedere che il linearizzato approssimante
sia controllabile. La condizione (b) esclude tutti i sistemi onolomi.
Comunque i casi in cui si vericano queste ipotesi sono molto rari. In eetti,
avendo il progettista a disposizione gli ingressi, egli ha la possibilit`a di ri-
portare il sistema ad una forma lineare nella quale applicare le tecniche note
del controllo lineare.
Esempio.
_
_
_
x
1
= cos(arcsin x
1
)[x
1
3
2
u
1
]
x
2
= 3x
2
3
2
arcsin x
1
+ 3x
2
_
z
1
= arcsin x
1
z
2
= x
1
3
2

129

z
1
=
1
cos(arcsin x
1
)
x
1

x=
1
(z)
= x
1
3
2
+u
1

x=
1
(z)
= z
2
+u
1
z
2
=
1
3
x

2
3
2

x=
1
(z)
x
2
= z
1
+z
2
cio`e
_
z
1
z
2
_
=
_
0 1
1 1
__
z
1
z
2
_
+
_
1
0
_
u
***
Un problema di maggior interesse pratico `e quello della linearizzazione in
retroazione.
Si consideri ad esempio lo schema (SISO) in gura, nel quale lingresso u `e
ottenuto mediante retroazione (nonlineare) degli stati come
u(x) = (x) +(x)v, (x) ,= 0 con v nuovo riferimento.
Vediamo quando `e possibile trovare funzioni (x) , (x) e coordinate z =
(x) tali che nelle nuove coordinate il sistema sia lineare
z = Az +Bv
e controllabile
1
.
Esempio.
Scriviamo lequazione della dinamica di un link collegato aun motore elet-
trico:
= I q +mgLsin q.
Pongo
= mgLsin q +Iv q = v
cio`e
d
dt
_
q
q
_
=
_
0 1
0 0
__
q
q
_
+
_
0
1
_
v
1
Siccome ci `e data la possibilit`a di scegliere una retroazione degli stati sugli ingressi,
possiamo sempre imporre la posizione dei poli di A, in particolare chiederemo che siano
tutti nellorigine e che la coppia (A, B) sia in forma canonica di controllo:
A =
_
_
_
_
_
0
.
.
. I
0
0 0 . . . 0
_
_
_
_
_
; B =
_
_
_
_
_
0
.
.
.
0
1
_
_
_
_
_
.
130
Esempio.
Si supponga adesso che il link collegato al motore abbia una certa cedevolezza.
Le equazioni del sistema diventano
_
I q
1
+mgLsin q
1
+k(q
1
q
2
) = 0
J q
2
k(q
1
q
2
) =
cio`e
x
1
= q
1
x
2
= q
1
x
3
= q
2
x
4
= q
2

_
_
_
_
_
x
1
x
2
x
3
x
4
_
_
_
_
_
=
_
_
_
_
_
x
2

mgL
I
sin x
1

k
I
(x
1
x
3
)
x
4
k
J
(x
1
x
3
)
_
_
_
_
_
+
_
_
_
_
_
0
0
0
1
J
_
_
_
_
_

Il controllo entra nella seconda equazione, e la nonlinearit`a nella prima.


Tipicamente, lo scopo `e controllare il link q
1
.
Si consideri luscita
y = q
1
= x
1
e le sue derivate
y = x
2
y = a sin x
1
b(x
1
x
3
)
y
(iii)
= a cos x
1
x
1
b x
1
+b x
3
= a cos x
1
x
2
bx
2
+bx
4
y
(iv)
= a sin x
1
x
2
2
a cos x
1
x
2
b x
2
+b x
4
=
= [a sin x
1
x
2
2
+ (a cos x
1
+b)(a sin x
1
+b(x
1
x3)) +b
k
J
(x
1
x
3
)] +
b
J

dove a =
mgL
I
,b =
k
I
.
Ponendo
= [a sin x
1
x
2
2
+ (. . .)(. . .) +b
k
J
(x
1
x
3
)]
J
b
+
J
b
v
si ottiene
y
(iv)
= v.
Per stabilizzare q
1
, baster`a quindi porre
v = c
0
y c
1
y c
2
y c
3
y
(iii)
da cui si ha
y
(iv)
+c
3
y
(iii)
+c
2
y +c
1
y +c
0
y = 0
131
in questo modo, scegliendo i c
i
opportunamente, si pu`o ssare la posizione
dei poli.
Si noti che sostanzialmente se scrivo
_

_
z
1
= y = q
1
= x
1
z
2
= z
1
z
3
= z
2
z
4
= z
3
ottengo z =
_
_
_
_
_
0 1 0 0
0 0 1 0
0 0 0 1
0 0 0 0
_
_
_
_
_
z +
_
_
_
_
_
0
0
0
1
_
_
_
_
_
v
e la retroazione `e v = kz, k = (c
0
c
1
c
2
c
3
).
***
Vediamo il caso generale (SISO):
_
x = f(x) +g(x)u
y = h(x)
se il sistema `e di questo tipo luscita non contiene u. Deriviamo luscita y:
y =
h
x
x =
h
x
(f(x) +g(x)u) = L
f
h +L
g
hu.
Se L
g
h = 0, anche la derivata prima delluscita non contiene lingresso; cal-
coliamo le derivate successive delluscita
y =
L
f
h
x
x = L
2
f
h +L
g
L
f
hu
.
.
.
y
(r)
= L
(r)
f
h +L
g
L
(r1)
f
hu
Supponiamo che:
L
g
L
i
f
h = 0, i = 0, 1, . . . , r 2
L
g
L
(r1)
f
h ,= 0
sotto queste ipotesi il sistema si dice di grado relativo r (C.N.S.).
Quindi il grado relativo di un sistema rappresenta il numero di volte che si
deve derivare la sua uscita per far comparire lingresso u.
Anche per i sistemi lineari pu`o essere calcolato il grado relativo
2
.
2
In questo caso corrisponde alla dierenza poli-zeri nella funzione di trasferimento
_
x = Ax + Bu
y = Cx
132
Ricavando u dalla derivata r-esima di y e ponendo v = y
(r)
otteniamo un
ingresso in controreazione del tipo scelto allinizio
u =
L
r
f
h
L
g
L
r1
f
h
+
1
L
g
L
r1
f
h
v = (x) +(x)v
(x) =
L
r
f
h
L
g
L
r1
f
h
(x) =
1
L
g
L
r1
f
h
con v = y
(r)
.
Possiamo allora usare le derivate successive di y per un cambio di variabili
z
1
= y = h(x)
z
2
= y = L
f
h(x)
.
.
.
z
r
= y
(r1)
= L
r1
f
h(x)
Nel caso in cui r = n resta solo da vericare che
(x) =
_
_
_
_
_
_
_
_
_
h(x)
L
f
h(x)
L
2
f
h(x)
.
.
.
L
r1
f
h(x)
_
_
_
_
_
_
_
_
_
sia un cambio di variabili ammissibile, cio`e che le r funzioni siano indipen-
denti ; ovvero le righe [dh(x
0
), dL
f
h(x
0
), . . . , dL
r1
f
h(x
0
)] sono indipendenti
se r `e il grado relativo
3
. Dunque, se il sistema iniziale ha grado relativo
r = n rispetto alluscita y e il cambio di variabili `e ammissibile, posso scri-
vere il sistema nelle nuove coordinate
4
ed ottenere una linearizzazione esatta
L
g
(Cx) = CB = 0
L
g
L
f
(Cx) = CAB = 0
.
.
.
L
g
Lf
r1
(Cx) = CA
r1
B ,= 0
_

_
G(s) =
b
0
+ b
1
s + . . . + b
nr+1
s
nr
a
0
+ a
1
s + . . . + a
n
s
n
.
Infatti come `e noto dalla teoria dei sistemi lineari, il grado relativo r `e indicato dal primo
coeciente di Markov non nullo.
3
Per la dimostrazione vedi Lemma 4.1.1 sul testo Nonlinear Control Systems di
A.Isidori.
4
Se L
g
L
k
f
h = 0, k h(x) non dipende da u; infatti sotto queste ipotesi lo sviluppo
in serie di Taylor di h(x) attorno ad un punto x
0
assume la forma:

k=0
L
k
f
h(x)

x=x0
(t t
0
)
k
k!
.
133
in feedback
_

_
z
1
= z
2
.
.
.
z
n1
= z
n
z
n
= b(z) +a(z)u
che corrisponde ad un sistema lineare con reazione del tipo scelto, u =
b(z)
a(z)
+
v
a(z)
.
Il fatto che il sistema abbia grado relativo r = n, non dipende solamente
dalla forma del sistema, ma anche dalla funzione di uscita h(x) scelta.
In eetti, `e facile dimostrare che x = f(x)+g(x)u `e linearizzabile in feedback
se e solo se esiste una funzione (x) (che potrei non conoscere), che d`a grado
ralativo r = n. Cerchiamo di capire per quali sistemi `e possibile trovare (x),
che possa soddisfare:
_
L
g
h(x) = L
g
L
f
h(x) = . . . L
g
L
n2
f
h(x) = 0
L
g
L
n1
f
h(x) ,= 0
equivalente a
_
_
_
L
g
(x) = L
ad
f
g
(x) = . . . = L
ad
n2
f
g
(x) = 0
L
ad
n1
f
g
(x) ,= 0
(abbiamo supposto r = 1, allora n r 1 = n 2).
Theorem 2 Condizione Necessaria e Suciente anche esista una fun-
zione (x) che, presa come uscita del sistema x = f(x)+g(x)u con f(x
0
) = 0,
dia grado relativo n
ovvero
anche esistano un cambiamento di variabili (x) e le funzioni di retroazione
statica (x) e (x) tali da linearizzare il sistema detto
`e che
A) rank[g(x
0
) ad
f
g(x
0
) . . . ad
n1
f
g(x
0
)] = n;
B) spang, ad
f
g, . . . , ad
n2
f
g sia involutivo.
Nel caso SISO, la condizione IFF composta da:
a) dimspang, ad
f
g, . . . , ad
n1
f
g = n;
134
b) la distribuzione g, ad
f
g, . . . , ad
n1
f
g `e involutiva.
In alcuni casi lidea `e banale.
Esempio.
Riprendiamo lequazione della dinamica di un link collegato a un motore:
= I q +mgLsin q.
Pongo
x
1
= q
x
2
= q
u =
_
x
1
x
2
_
=
_
_
x
2

mgL
I
sin x
1
_
_
+
_
0
1
I
_
u
Se faccio u = mgLsin x
1
+Iv ottengo
_
x
1
x
2
_
=
_
0 1
0 0
__
x
1
x
2
_
+
_
0
1
_
v
A questo punto, disegno v con metodi lineari, per ottenere comportamenti
arbitrari.
Esempio.
Nel caso del link con cedevolezza la cosa `e meno banale:
_
I q
1
+mgLsin q
1
+k(q
1
q
2
) = 0
J q
2
k(q
1
q
2
) =
Si pu`o notare che in questo caso si ha la nonlinearit`a nella prima equazione
e il controllo nella seconda. Pongo
x =
_
_
_
_
_
q
1
q
1
q
2
q
2
_
_
_
_
_
135
e
f =
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
2

mgL
I
sin x
1

k
I
(x
1
x
3
)
x
4
k
J
(x
1
x
3
)
_
_
_
_
_
_
_
_
_
_
_
_
_
_
g =
_
_
_
_
_
_
_
_
_
_
_
_
_
0
0
0
1
J
_
_
_
_
_
_
_
_
_
_
_
_
_
allora ottengo
_
g, [f g], [f[f g]], [f[f[f g]]]
_
=
_
_
_
_
_
0 0 0
k
IJ
0 0
k
IJ
0
0
1
J
0
k
J
2
1
J
0
k
J
2
0
_
_
_
_
_
matrice che ha rango 4 per k ,= 0 e IJ < . Inoltre g, ad
f
g, ad
2
f
g sono
costanti e di conseguenza sono involutivi.
Quindi deve essere possibile trovare (x). Come si trovano (x), (x) e
(x)?
La prima conponente di (x), z
1
=
1
(x), `e scelta come quella supercie
tangente a g, [f g], . . . , ad
n2
f
g (che sicuramente esiste), ma naturalmente
non a ad
n1
f
g.
Quindi

1
x
g = 0

1
x
[f g] = 0

1
x
[f[f g]] = 0
.
.
.

1
x
ad
n2
f
g = 0

1
x
ad
n1
f
g ,= 0
Nel nostro caso si ha
136

1
x
g = 0

1
x
4
= 0

1
x
[f g] = 0

1
x
3
= 0

1
x
[f[f g]] = 0

1
x
2
= 0

1
x
ad
3
f
g ,= 0

1
x
1
,= 0

1
deve essere funzione di x
1
solamente. Ad esempio
1
(x) = x
1
. Le altre
componenti di si ottengono cos`:

2
=

1
x
f = x
2
= L
f

1
(x)

3
=

2
x
f =
mgL
I
sin x
1

k
I
(x
1
x
3
) = L
2
f

1
(x)

4
=

3
x
f =
mgL
I
x
2
cos x
1

k
I
(x
2
x
4
) = L
3
f

1
(x)
Inne _

_
(x) =
L
n
f

1
L
g
Lf
n1

=
L
4
f

1
L
g
L
3
f

1
(x) =
1
L
g
Lf
n1

1
=
1
L
g
L
3
f

1
Nel nostro esempio
u =
IJ
k
(v a(x)) =
a(x)
k
IJ
+
1
k
IJ
v
a(x) =
mgL
I
sin x
1
(x
2
2
+
mgL
I
cos x
2
+
k
I
) +
k
I
(x
1
x
3
)(
k
I
+
k
J
+
mgL
I
cos x
1
)
e si ottiene
z
1
= x
2
z
2
= z
3
z
3
= z
4
z
4
= v
L
4
f

1
(x) = a(x)
L
g
L
3
f

1
(x) =
k
IJ
137
7.2.1 Procedura Operativa (Sistemi SISO)
Riassumiamo i passi da compiere per trovare un ingresso linearizzante e un
cambio di coordinate:
a) calcolare ad
i
f
g, i = 0, . . . , n 1;
b) vericare le condizioni necessarie e sucienti (A) e (B);
c) dalle equazioni dierenziali alle derivate parziali

x
[g(x) . . . ad
n2
f
g] = 0
integrare (x)
d) porre
(x) =
L
n
f
(x)
L
g
L
n1
f
(x)
(x) =
1
L
g
L
n1
f
(x)
e) cambiare le coordinate con
(x) = ((x), L
f
(x), . . . , L
n1
f
(x))
Esempio.
_
_
_
x
1
x
2
x
3
_
_
_ =
_
_
_
sin x
2
sin x
3
0
_
_
_ +
_
_
_
0
0
1
_
_
_u
[f g] =
_
_
_
0
c
3
0
_
_
_; [f [f g]] =
_
_
_
c
2
c
3
0
0
_
_
_
rank
_

_
0 0 1
0 1 0
1 0 0
_

_ = 3; [g [f g ]] =
_
_
_
0
s
3
0
_
_
_ spang, [f g]
_

x
3
= 0

x
2
c
3
= 0

= x
1
= z
1
L
f
= s
2
= z
2
L
2
f
= c
2
s
3
= z
3
L
3
f
= s
2
3
s
2
L
g
L
2
f
= c
2
c
3
138
quindi
u = (x) +(x)v = s
3
T
2
T
3
+
1
c
2
c
3
v
denito su

2
< x
2
<

2

2
< x
3
<

2
Il nostro sistema, con una retroazione opportuna, v = kz, ha tutti i poli in
1:
(s + 1)
3
= s
3
+ 3s
2
+ 3s + 1
k = (1 3 3).
***
Osservazione: la completa controllabilit`a dellapprossimazione lineare `e
condizione necessaria alla linearizzazione in retroazione.
Infatti, supponiamo che f(0) = 0 (se f(x
0
) = 0, traslo gli stati) ed eet-
tuiamo la seguente scomposizione
x = f(x) +g(x)u x = Ax +

f(x) + g(x)u +Bu
con

f(0) = 0 g(0) = 0
B = g(0)
A =
f
x
[
x=0



f
x
[
x=0
= 0
Calcolando
[f, g] = [Ax +

f, B + g] =
g
x
Ax +
g
x

f AB A g


f
x
B


f
x
g
troviamo
[f, g][
0
= AB
e in generale ad
k
f
g = (1)
k
A
k
B +p
k
(x), dove p
k
(0) = 0.
Quindi
rankg, ad
f
g, . . . , ad
n1
f
g

0
= rank[B, AB, . . . , A
n1
B]
Ci`o signica che imporre la condizione (A) equivale a richiedere la completa
controllabilit`a. Questo riduce il vantaggio della linearizzazione in retroazione
(ingresso-stati), perche modi marginalmente stabili non-controllabili (ad es-
empio poli complessi coniugati posti sullasse immaginario), ne impediscono
lapplicazione.
139
7.2.2 Linearizzazione Ingresso-Uscita
La linearizzazione esatta in retroazione (ingresso-stati) pu` o essere inapplica-
bile in certi casi:
a) se x = f(x) + g(x)u non soddisfa le condizioni necessarie e sucienti
di esistenza di una funzione di uscita (x) con grado massimo;
b) se il sistema ha una uscita h(x) con signicato sico tale da imporne
la scelta (soprattutto in problemi di inseguimento);
c) se non si vuole o non si riesce a integrare il sistema di equazioni dif-
ferenziali alle derivate parziali che deniscono luscita di grado relativo
massimo.
In questi casi, si pu`o comunque procedere a una linearizzazione esatta, an-
corche parziale (talvolta detta ingresso-uscita):
_
x = f(x) +g(x)u
y = h(x)
L
g
L
i
f
h(x) = 0 i = 0, 1, . . . , r 2
L
g
L
r1
f
h(x) ,= 0
r < n.
Posso ancora utilizzare le r funzioni indipendenti di cui dispongo come parte
di un cambiamento di variabili:
z
1
=
1
(x) = h(x)
z
2
=
2
(x) = L
f
h(x)
.
.
.
z
r
=
r
(x) = L
r1
f
h(x)
Ma restano da trovare n r funzioni indipendenti da queste. Questo in se
non `e dicile, spesso basta prendere alcuni dei vecchi stati. Procedendo
come fatto nel caso r = n, la dinamica delle nuove r variabili `e
z
1
= (
h
x
) x = L
f
h = z
2
z
2
= z
3
.
.
.
z
r1
= z
r
z
r
= L
r
f
h(x) +L
g
L
r1
f
h(x)u

x=
1
(z)
= b(z) +a(z)u
140
mentre per le restanti n r non ci possiamo aspettare nulla di speciale:
z
r+1
= q
r+1
(z) +p
r+1
(z)u
.
.
.
z
n
= q
n
(z) +p
n
(z)u
Luscita del nuovo sistema `e naturalmente ancora
y = h(x) = z
1
.
La dinamica delle variabili del secondo gruppo dunque non inuenza questa
uscita (dopo la retroazione).
La scelta delle nr variabili complementari deve solo soddisfare la condi-
zione di costruire, con le prime r funzioni, un cambiamento di variabili lecito
(invertibile), cio`e
det
_

x
_
_
_
_

1
.
.
.

n
_
_
_
_
_

_
,= 0
nella regione dinteresse.
`
E comodo peraltro scegliere le variabili complementari
r1
. . .
n
in modo
che
L
g

i
(x) = 0 r + 1 i n.
Infatti, in questo caso si ha
z
r+1
=

r+1
x
x = L
f

r+1
(x) +L
g

r+1
(x)u = q
r+1
(z)
.
.
.
z
n
= q
n
(z)
con x =
1
(z).
Cosicch`e, la dinamica delle variabili complementari oltrech`e ininuente sulluscita,
`e indipendente dagli ingressi.
Nelle nuove coordinate, possiamo dunque riscrivere il sistema nella forma
normale
_

= A
0
+b
0
v
= q(, ) y =
1
= c
0

dove
=
_
_
_
_
z
1
.
.
.
z
r
_
_
_
_
; =
_
_
_
_
z
r+1
.
.
.
z
n
_
_
_
_
;
141
A
0
=
_
_
_
_
_
_
0
.
.
. I
0
0 0 . . . 0
_
_
_
_
_
_
; b
0
=
_
_
_
_
_
_
_
0
.
.
.
0
1
_
_
_
_
_
_
_
;
c
0
= (1 0 . . . 0);
e lingresso in retroazione linearizzato `e
u =
b(, )
a(, )
+
1
a(, )
v
Se per le variabili non vale L
g

r1
(x) = 0, si avr`a pi` u in generale
= q(, ) +p(, )v
da un punto di vista ingresso-uscita, il sistema `e linearizzato; la sua f.d.t. `e
y(s)
v(s)
=
1
s
r
Resta per`o la dinamica interna, delle variabili .
La stabilizzazione del sottosistema linearizzato `e solo esterna e non implica
che il sistema nel suo complesso non possa avere componenti divergenti e
quindi inaccettabili.
`
E quindi fondamentale studiare cosa accade della dinamica delle variabili .
Per far questo, studiamo il problema:
_

= A
0
+b
0
v
v = k
= p(, )
determinando quali stati iniziali (
0
,
0
) e quali controlli mantengono luscita
costantemente a zero; questo perch`e le evoluzioni a partire da questi stati
iniziali e con quei controlli rappresentano i modi della parte inaccessibile

0
(t).
Ricordando che
y
1
0
2

1
0
3

2
0 . . .
r

r1
0
perci`o

0
= (t) = 0

r
= v v 0 u =
b(0, )
a(0, )
resta dunque
142
= q(0, )
0
qualsiasi.
Questa equazione in viene chiamata Zero Dinamica.
Il nome Zero Dinamica deriva dallanalogia con il compo rtamento dei sistemi
lineari che possiedono un polinomio degli zeri:
G(s) = k
b
0
+b
1
s +. . . +b
nr1
s
nr1
+s
nr
a
0
+a
1
s +. . . +a
n1
s
n1
+s
n
realizzato in forma minima (canonica di controllo) come
_
x = Ax +Bu
y = Cx
A =
_
_
_
_
_
_
0
.
.
. I
0
a
0
a
1
. . . a
n1
_
_
_
_
_
_
; B =
_
_
_
_
_
_
0
.
.
.
0
k
_
_
_
_
_
_
; C = (b
0
. . . b
nr1
1 0 . . . 0).
Trattando x = Ax + Bu, y = Cx come sistema non lineare, la sua forma
normale `e ottenuta ponendo

1
= y = Cx = b
0
x
1
+. . . +x
nr+1

2
= y = CAx = B
0
x
2
+. . . +x
nr+2
.
.
.

r
= y
(r1)
= CA
r1
x = B
0
x
r
+. . . +x
n
e scegliendo per complemento

1
= x
1
.
.
.

nr
= x
nr
.
Per questa scelta, si ha

x
(x) =

x
_
(x)
(x)
_
=
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
b
0
b
1
. . . b
nr1
1 0 . . . 0
0 b
0
. . . b
nr2
b
nr1
1 . . . 1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 . . . 0 b
0
b
r+1
. . . b
nr1
1
1 0 . . . 0 0 0 . . . 0
0 1 . . . 0 0 0 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 . . . 0 1 0 . . . 0 0
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
143
quindi lo jacobiano `e sicuramente non-singolare e inoltre L
g
(x) = ( I
nr
[ 0)B =
0.
La forma normale `e dunque
_

= A
0
+b
0
v
= q(, ) = P +Q
La dinamica di `e infatti certamente lineare; per di pi` u vale
Q =
_
_
_
_
_
_
_
0
.
.
. I
0
b
0
b
1
. . . b
nr1
_
_
_
_
_
_
_
infatti

1
= x
1
= x
2
=
2
.
.
.

nr1
=
nr

nr
= x
nr
= x
nr+1
=
=
1
b
0

1
b
1

2
. . . b
nr1
n r
La Zero Dinamica `e quindi
= q(0, ) = Q
cio`e, ha polinomio caratteristico
b
0
+b
1
s +. . . +b
nr1
s
nr1
+s
nr
ovvero il polinomio degli zeri di G(s). Gli zeri di trasmissione sono proprio
quei valori di s ( per i quali esistono condizioni iniziali tali per cui lingresso
e
st
lascia invariata luscita.
Limportanza dello studio della zero dinamica discende dal seguente teorema.
Theorem 3 Con riferimento alla forma normale
_

= A
0
+b
0
v
= q(, )
y =
1
una retroazione v = v() = k, con k = (k
0
. . . k
r
) coecienti di un
polinomio a radici con parte reale negativa, rende certamente asintoticamente
stabile il sistema non lineare originale se la Zero Dinamica = q(0, ) `e
asintoticamente stabile (in
0
= 0).
144
Il controllo che eettivamente stabilizza il sistema originale
_
x = f(x) +g(x)u
y = h(x)
`e
u(x) =
L
r
f
h(x)
L
g
L
r1
f
h(x)
+
1
L
g
L
r1
f
h(x)
(k
0

1
(x) . . . k
r1

r1
(x)).
Il risultato `e quasi banale se lapprossimazione lineare del sistema `e stabiliz-
zabile. Il linearizzato approssimante `e infatti
_


_
=
_
A 0
Q
_ _

_
+
_
B
0
0
_
u
con autovalori unione di quelli di A e quelli di Q (con Q vuota se il sistema
originario `e controllabile e Q stabile se il sistema originario `e stabilizzabile).
Il punto importante `e che la zero dinamica pu`o esser dimostrata stabile anche
quando la sua linearizzazione `e solo marginalmente stabile;cio`e possono es-
sere resi asintoticamente stabili anche sistemi la cui approssimazione lineare
possiede autovalori sullasse immaginario.
Esempio.
Prendiamo un sistema con:
f(x) =
_
_
_
x
3
x
3
2
x
2
x
2
1
x
3
_
_
_; g(x) =
_
_
_
0
1
1
_
_
_; y(x) = x
1
.
Calcoliamo il grado relativo
h(x) = x
1
L
f
h(x) = (1 0 0)f(x) = x
3
x
3
2
L
g
h(x) = (1 0 0)g(x) = 0
L
2
f
h(x) = (0 3x
2
2
1)f(x) = 3x
3
2
+x
2
1
x
3
L
g
L
f
h(x) = (0 3x
2
2
1)g(x) = 3x
2
2
+ 1 ,= 0
r = 2
Esiste unaltra uscita con r = 3?
Verichiamo le condizioni (A) e (B):
ad
f
g = [f g] =
_
_
_
0 2x
2
1
0 1 0
2x
1
0 1
_
_
_
_
_
_
0
1
1
_
_
_ =
_
_
_
3x
2
2
1
1
1
_
_
_
145
ad
2
f
g =
_
_
_
3x
2
2
1
1
6x
1
x
2
+ 2x
1
+ 1
_
_
_
[g [f g]] =
_
_
_
6x
2
0
0
_
_
_ span
_

_
_
_
_
0
1
1
_
_
_;
_
_
_
3x
2
2
1
1
1
_
_
_
_

_
La condizione (B) `e vericata, ma la (A) non lo `e . . .
rank [g(x) ad
f
g(x) ad
2
f
g(x)]

x=0
= 2
Non esiste allora una funzione (x) che dia grado relativo massimo per eet-
tuare una linearizzazione esatta.
Scegliamo le nuove coordinate:

1
= x
1

2
= L
f
h = x
3
x
3
2

1
(x):
L
g

1
= 0
d
1
_
_
_
0
1
1
_
_
_ = 0

1
= x
1

1
= x
2
+x
3
la scelta = x
1
non `e indipendente da
1
= x
1
; quindi scelgo = x
2
+x
3
(con la costante = 1).
(x) =
_
_
_
x
1
x
3
x
3
2
x
2
+x
3
_
_
_;

x
=
_
_
_
1 0 0
0 3x
2
2
1
0 1 1
_
_
_.
Forma normale:

1
=
2

2
= (x
2
1
+ 3x
3
2
+x
3
) + (3x
2
2
+ 1)u

1
=

3
x
(f +gu) = x
2
1
x
2
x
3
=
2
1

1
y =
1
146
Zero dinamica:
y 0
1
0,
2
0
1
=
1
,
1
(0)
_

_
u =
x
2
1
+ 3x
3
2
x
3
3x
2
2
+ 1
+
1
3x
2
2
+ 1
v
v = (k
1
k
2
)
_

1

2
_
Il sistema `e asintoticamente stabile (esternamente e internamente).
7.3 Inseguimento di traiettorie
Supponendo che il sistema
_
x = f(x) +g(x)u
y = h(x)
abbia grado relativo r e che sia stato posto nella forma normale
_

= A
0
+b
0

= q(, ) +p(, )
utilizzando lingresso linearizzante
u =
b(, )
a(, )
+
1
a(, )
,
desideriamo inseguire una traiettoria assegnata per luscita
y(t) = y(t).
Perche linseguimento sia perfetto, dovremo supporre
y(0) = h(x
0
) = y(0),
e se denisco il vettore

=
_
_
_
_
_
_
_
_
_
y

y
.
.
.
y
(r1)
_
_
_
_
_
_
_
_
_
147
si ha che
y(t) y(t), t (t) =

(t).
In pratica tutto ci`o implica che le variabili di stato coincidano con luscita
e le sue derivate in un intorno di t = 0.
In questo caso, scegliendo lingresso = y
(r)
, cio`e
u =
b(,

)
a(,

)
+
1
a(,

)
y
(r)
.
con soluzione di
= q(

, ) +p(

, ) y
(r)
otteniamo lo scopo:
y
(r)
=

r1
= b(, ) +a(, )
_

b(, )
a(, )
+
1
a(, )
y
(r)
_
= y
(r)
.
Naturalmente, nella pratica `e dicile poter ssare gli stati iniziali del sistema
e allo stesso tempo condizioni iniziali sbagliate non permetterebbero di ot-
tenere questo risultato. In tale caso, quanto di meglio si pu`o chiedere `e un
inseguimento asintotico cio`e tale che |y(t) y(t)| 0 per t .
Questo si ottiene sfruttando il controllo lineare :
= y
(r)
c
r1
(
r

r
) . . . c
0
(
1

1
)
Fissato
e =

il vettore di errore, ho
= y
(r)
c
T
e con c
T
= (c
0
c
1
. . . c
r1
)

r
= y
(r)
c
T
e e
(r)
1
+c
r1
e
(r1)
1
+. . . +c
0
e
1
= 0.
Scegliendo i coecienti c
i
in modo opportuno, lerrore di inseguimento viene
fatto convergere a zero con dinamica arbitraria (lineare).
Riconsideriamo la dinamica delle variabili :
= q(,

) +p(,

) y
(r)
e lingresso
u =
b(, )
a(, )
+
1
a(, )
y
(r)
148
Notando che y(t) (quindi y
(r)
,

(t) ) sono assegnati, posso vederlo come un
sistema che, prendendo le uscite desiderate per ingresso, fornisce come us-
cita gli ingressi necessari allinseguimento, usando come stati gli : Sistema
Inverso.
Il problema residuo nellinseguimento `e la limitatezza di , ed u .
Theorem 4 Sotto le seguenti ipotesi:
se y(t),

y(t), . . . , y
(r)
sono sucientemente piccoli,
se = f(, y) `e asintoticamente stabile e limitata,
e se c ha coecienti Hurwitz,
, sono limitati.
7.4 Linearizzazione in retroazione MIMO
Consideriamo un sistema quadrato
_

_
x = f(x) +

m
i=1
g
i
(x)u
i
y
1
= h
1
(x)
.
.
.
y
m
= h
m
(x)
149
e procediamo, analogamente al caso SISO, a dierenziare le uscite nche non
appare esplicitamente almeno uno degli ingressi:
_

_
y
1
= h
1
(x)
y
1
= L
f
h
1
(x)
.
.
.
.
.
.
y
(r
1
)
1
= L
r
1
f
h
1
(x) +L
g
1
L
r
1
1
f
h
1
(x)u
1
+. . . +L
gm
L
r
1
1
f
h
1
(x)u
m
(dove almeno una delle L
g
i
L
r
1
1
f
h
1
(x) ,= 0)
y
2
= h
2
(x)
y
2
= L
f
h
2
(x)
.
.
.
.
.
.
y
(r
2
)
2
= L
r
2
f
h
2
(x) +

m
i=1
L
g
L
r
2
1
f
h
2
(x)u
i
(dove almeno una delle L
g
i
L
r
2
1
f
h
2
(x) ,= 0)
.
.
.
.
.
.
.
.
.
.
.
.
y
m
= h
m
(x)
y
m
= L
f
h
m
(x)
.
.
.
.
.
.
y
(rm)
m
= L
rm
f
h
m
(x) +

m
i=1
L
g
L
rm1
f
h
m
(x)u
i
(dove almeno una delle L
g
i
L
rm1
f
h
m
(x) ,= 0)
Consideriamo le ultime equazioni di queste catene in forma matriciale; si ha
_
_
_
_
_
_
_
y
(r
1
)
1
.
.
.
.
.
.
y
(rm)
m
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
L
r
1
f
h
1
(x)
.
.
.
.
.
.
L
rm
f
h
m
(x)
_
_
_
_
_
_
_
+
_
_
_
_
_
_
_
L
g
1
L
r
1
1
f
h
1
(x) . . . L
gm
L
r
1
1
f
h
1
(x)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
L
g
1
L
rm1
f
h
m
(x) . . . L
gm
L
rm1
f
h
m
(x)
_
_
_
_
_
_
_
_
_
_
_
_
_
_
u
1
.
.
.
.
.
.
u
m
_
_
_
_
_
_
_
y = (x) +E(x)u
Se la matrice E(x) `e invertibile (in un intorno di un punto x
0
), si dice che il
sistema ha grado relativo vettoriale
r = (r
1
. . . r
m
)
T
150
e grado relativo totale r =

m
i=1
r
i
.
Se questo accade posso denire r funzioni dei vecchi stati

1
1
=
1
= h
1
(x)
2
1
=
r
1
+1
= h
2
(x) . . .
m
1
=
r+1
= h
m
(x)

1
2
=
1
= L
f
h
1
(x)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

1
r
1
=
r
1
= L
r
1
1
f
h
1
(x)
2
r
2
=
r
1
+r
2
= L
r
2
1
f
h
2
(x) . . .
m
rm
=
r
= L
rm1
f
h
m
(x)
che sono indipendenti e altre (n r) funzioni indipendenti da queste

1
(x) . . .
nr
(x)
tali che per i = 1, . . . , m
_

i
1
=
i
2

i
2
=
i
3
.
.
.

i
r
i
1
=
i
r
i

_
y
1
=
1
1
y
2
=
2
1
.
.
.
y
m
=
m
1

i
r
i
= b
i
(, ) +

m
j=1
a
ij
(, )u
j

_

_
righe di (x), E(x)
(con x =
1
(, ))
in cui interviene
lingresso
= q(, ) +

m
j=1
p
j
(, )u
j
Se poi trovo (x) : L
g
j
(x) = 0 j, scompare lultima sommatoria e resta
= q(, ) (ci`o `e possibile solo se spang
1
. . . g
m
`e involutivo).
Questa `e detta forma normale per il sistema MIMO a m-ingressi e m-uscite.
Il problema della linearizzazione in retroazione per un sistema
x = f(x) +
m

i=1
g
i
(x)u
i
consiste nel trovare un vettore di m funzioni
(x) =
_
_
_
_

1
(x)
.
.
.

m
(x)
_
_
_
_
ed una matrice di mm funzioni
(x) =
_
_
_
_

11
(x) . . .
1m
(x)
.
.
. . . .
.
.
.

m1
(x) . . .
mm
(x)
_
_
_
_
151
tali che, ponendo
u =
_
_
_
_
u
1
.
.
.
u
m
_
_
_
_
= (x) +(x)v
esista un cambio di coordinate = (x) nel quale sia

= A +Bu
A = diag(A
1
, . . . , A
m
), B = diag(b
1
, . . . , b
m
)
A
i
=
_
_
_
_
_
_
_
_
_
0 1 0 . . . 0
0 0 1 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . 1
0 0 0 . . . 0
_
_
_
_
_
_
_
_
_
, b
i
=
_
_
_
_
_
_
0
0
.
.
.
1
_
_
_
_
_
_
Il problema `e risolubile se e solo se esistono m funzioni di uscita h
1
(x), . . .,
h
m
(x) rispetto alle quali il sistema ha grado relativo r
1
, r
2
, . . ., r
m
, con
r
1
+r
2
+. . . +r
m
= n.
In questo caso, le nuove coordinate sono scelte come visto sopra:

1
1
= h
1
,
1
2
=

h
1
= L
f
h, . . . ,
2
2
= h
2
, etc. . .
Il controllo linearizzante `e
U = E
1
(x)(x) +E
1
(x)
(si ricordi lipotesi E(x) invertibile).
Theorem 5 La linearizzazione esatta (completa) in retroazione `e possibile
per il sistema
x = f(x) +
m

i=1
g
i
(x)u
i
se e solo se considerando:

0
= spang
1
. . . g
m

1
=
0
+ [f
0
]
.
.
.

i
=
i1
+ [f
i1
] = spanad
k
f
g
j
, 0 k i, 1 j m
si ha . . .
dim
i
= cost in un intorno di x, per i = 1, . . . , n 1
dim
n1
= (controllo linearizzante approssimante)

i
`e involutiva, con 0 i n 2.
152
Osservazione: se il sistema `e SISO, la condizione coincide con quella vista.
Se le uscite h
1
(x) . . . h
m
(x) sono gi`a assegnate, ovvero se non `e possibile
trovarne di perfettamente linearizzanti, potr`o procedere ad una linearizza-
zione parziale (ingresso-uscita). Se r
1
+. . . +r
m
= r < n e E(x) `e invertibile
(cio`e, `e denito un grado relativo), posso sempre applicare il controllo
u(x) = E
1
(x)(x) +E(x)
che ottiene la perfetta noninterazione e linearizzazione I/O:
y
(r
1
)
1
= h
(r
1
)
1
=
1
y
(r
2
)
2
= h
(r
2
)
2
=
2
.
.
.

_
catene di
r
i
integratori
Intrinsecamente, restano n r variabili di stato non visibili dal rapporto
I/O:
= q(, ) +p(, )u = q(, ) p(, )E
1
()() +p(, )E
1
()
Si hanno risulatati analoghi al caso SISO:
a) i controlli
i
= c
i
0

i
1
c
i
1

i
2
. . . c
i
r
i
1

i
r
i
+
i
pongono i poli delle
catene nelle posizioni desiderate (LHP);
b) la retroazione (a) rende tutto il sistema stabile se la zero dinamica
= q(0, ) +p(0, )u(0, )
`e asintoticamente stabile.
Se il sistema non ha grado relativo denito (E(x) singolare) non `e disaccop-
piabile, ma pu`o essere linearizzabile I/O
5
.
Esempio.
Supponiamo di avere il sistema
x = f(x) +g
1
(x)u
1
+g
2
(x)u
2
f(x) =
_
_
_
_
_
_
_
_
x
2
+x
2
2
x
3
x
1
x
4
+x
4
x
5
x
2
x
4
+x
1
x
5
x
2
5
x
5
x
2
2
_
_
_
_
_
_
_
_
5
Vedi testo Isidori
153
g
1
(x) =
_
_
_
_
_
_
_
_
0
0
cos(x
1
x
3
)
0
0
_
_
_
_
_
_
_
_
g
2
(x) =
_
_
_
_
_
_
_
_
1
0
1
0
1
_
_
_
_
_
_
_
_
_
y
1
= h
1
(x) = x
1
x
5
y
2
= h
2
(x) = x
4
In questo caso
r = 2 + 3
`e il grado relativo totale massimo.
***
7.5 Pendolo inverso
7.5.1 Modello sico
Le equazioni dinamiche del modello sono date da
_
(M +m) x +ml cos

ml sin

2
= u
ml cos x +ml
2

mgl sin = 0
dove M `e la massa del carrello, m `e la massa posta allestremit`a dellasta
(lasta si considera di peso trascurabile), l `e la lunghezza dellasta, x `e lascissa
del carrello e g `e laccelerazione di gravit`a. Lingresso u rappresenta una forza
applicata al carrello. Allo scopo di ottenere un sistema di equazioni in forma
standard poniamo
_

_
x
1
= x
x
2
=
x
3
= x
x
4
=

ottenendo
_

_
x
1
= x
3
x
2
= x
4
x
3
=
l sin x
2
x
2
4
mg sin x
2
cos x
2
+u
M +msin x
2
x
4
=
(M +m)g sin x
2
ml cos x
2
sin x
2
x
2
4
cos x
2
u
l(M +msin x
2
)
154
Adesso possiamo porre il sistema ane nella classica forma
x = f(x) +g(x)u
con
f(x) =
_

_
x
3
x
4
msin x
2
(lx
2
4
g cos x
2
)
M +msin x
2
(M +m)g sin x
2
ml sin x
2
cos x
2
x
2
4
l(M +msin x
2
)
_

_
g(x) =
_

_
0
0
1
M +msin x
2
cos x
2
l(M +msin x
2
)
_

_
Per avere un sistema SISO prendiamo come uscita soltanto langolo dellasta
(angolo nullo quando lasta `e in posizione verticale); quindi luscita sar`a
y = h(x) = x
2
Le linearizzazioni verranno eettuate intorno a
x
eq
=
_

_
0
0
0
0
_

_
punto di equilibrio instabile.
7.5.2 Linearizzazione approssimata
La linearizzazione approssimata sfrutta la formula di Taylor per linearizzare
il sistema non lineare
x = f(x) +g(x)u
attorno a un punto di equilibrio.
Prendiamo come punto di equilibrio x
eq
e applichiamo una volta Taylor
x = Ax +

f(x) + (B + g(x))u
155
con
A =

x
f(x)

x=xeq
=
_

_
0 0 1 0
0 0 0 1
0
mg
M
0 0
0
g(M+m)
lM
0 0
_

_
B =

x
g(x)

x=xeq
=
_

_
0
0
m
M
2
m
lM
2
_

_
Il nostro sistema approssimato `e allora
x = Ax +Bu
7.5.3 Linearizzazione esatta
Calcoliamo il grado relativo del sistema
L
g
h(x) = L
g
x
2
= [0 1 0 0]
_

_
0
0

_
= 0
L
f
h(x) = [0 1 0 0]f(x) = x
4
L
g
L
f
h(x) = L
g
x
4
= [0 0 0 1]g(x) =
cos x
2
l(M +msin x
2
)
L
g
L
f
h(x
eq
) =
1
lM
.
Il grado relativo del sistema `e r = 2. Quindi la linearizzazione esatta sar`a
parziale, perche abbiamo a disposizione soltanto due funzioni indipendenti
per il cambio di variabili:

1
= h(x) = x
2

2
= L
f
h(x) = x
4
156
Per completare il cambio di variabili dobbiamo trovarne altre due indipen-
denti dalle altre e che possibilmente soddisno la condizione L
g
z
i
= 0.
L
g

3
= 0

3
x
g(x) =
x
1
x
g(x) =[1 0 0 0]
_

_
0
0

_
= 0
per
3
= x
1
.
L
g

4
= 0

4
x
g(x) =

x
[x
3
cos x
2
+lx
4
]g(x) =
= [0 cos x
2
l]
_

_
0
0
l
ml
ml
2
(M +msin x
2
)
(cos x
2
)
ml
ml
2
(M +msin x
2
)
_

_
= 0
per
4
= x
3
cos x
2
+lx
4
(la velocita assoluta della punta dellasta).
Adesso il cambio di variabili `e completo
z = (x) =
_

1
= x
2

2
= x
4

3
= x
1

4
= x
3
cos x
2
+lx
4
x =
1
(z) =
_

_
x
1
=
3
x
2
=
1
x
3
=

4
l
2
cos
1
x
4
=
2
Il sistema complessivo nelle nuove variabili `e descritto da
_

1
=
2

2
=
(M +m)g sin
1
ml cos
1
sin
1

2
2
cos
1
u
l(M +msin
1
)

3
=

4
l
2
cos
1

4
=
(lm(cos
1
)
2
+ sin
1
lM +lm)
2
(M +msin
1
) cos
1
+
(m +m(cos
1
)
2
sin
1
M)
4
(M +msin
1
) cos
1
+. . .
. . . +
mg sin
1
(cos
1
)
3
+mg sin
1
cos
1
+gM sin
1
cos
1
(M +msin
1
) cos
1
157
Calcoliamo adesso lingresso linearizzante derivando luscita
y = x
2
y = x
2
= x
4
y = x
4
= v =
(M +m)g sin x
2
ml cos x
2
sin x
2
x
2
4
cos x
2
u
l(M +msin x
2
)
da cui
u =
sin x
2
cos x
2
[(M +m)g ml cos x
2
x
2
4
]
l(M +msin x
2
)
cos x
2
v = (x) +(x)v
Osserviamo adesso landamento della zero dinamica facendo evolvere libera-
mente il sistema partendo dallo stato iniziale x
eq
. Otteniamo lespressione
_

1
= 0

2
= 0

3
=
4

4
= 0
Si pu`o notare che la zero dinamica `e marginalmente stabile quindi il sistema
li- nearizzato sar`a asintoticamente stabile solo esternamente.
7.5.4 Confronto tra i due metodi di linearizzazione
In questo esempio si ricercano le dierenze tra due diversi metodi di linea-
rizzazione che si possono applicare su un sistema non lineare.
La linearizzazione standard si basa sullo sviluppo in serie di Taylor delle
funzioni caratterizzanti il sistema in studio. Questo processo di approssima-
zione genera un sistema lineare che modella il non lineare intorno ad un punto
di lavoro prestabilito. Sul modello lineare trovato si possono progettare con-
trollori in grado di far evolvere il sistema secondo le speciche date. Tali
controllori se applicati al non lineare di partenza manterranno le speciche
di progetto su punti vicini al punto di lavoro . Non e detto per o che se il
sistema si allontana troppo da tale punto non si generi instabilita perche il
modello lineare non approssima pi u il sistema originario non lineare.
La linearizzazione in feedback (o linearizzazione esatta) ricerca attraverso
un retroazione dello stato di generare un ingresso che linearizza il sistema
intorno ad un punto di lavoro. Come si puo vedere dalla gura 2 il sistema
visto dal nuovo ingresso v e lineare e sara caratterizzato da un modello simile
a quello generato dalla linearizzazione standard. Anche in questo caso il
158
controllore progettato sul modello lineare puo dare problemi di instabilita su
punti lontani dal punto di lavoro.
Si ricerca in questo esempio di vericare che lintorno di stabilita del
controllo eettuato sul modello lineare standard e pi u piccolo di quello sul
linearizzato in feedback. Per confrontare correttamente i due metodi occorre
che i controllori progettati siano tali da far si che i sistemi in retroazione
abbiano gli stessi poli e zeri (in pratica siano lo stesso sistema lineare). Il
sistema non lineare scelto e il pendolo inverso mostrato in gura 3 .
Lingresso del sistema e la forza applicata al carrello mentre luscita e la
misura dellangolo dellasta (Sistema di tipo SISO).
7.5.5 Linearizzazione in feedback
Il modello lineare ottenuto da questo metodo e un sistema con due poli
nellorigine. Come controllore si utilizza percio una rete correttrice ( rete an-
ticipatrice ) e un controllo proporzionale per stabilizzare il sistema ottenendo
il luogo delle radici mostrato in gura 4. La rete anticipatrice ha uno zero in
-2 e un polo in -20 mentre la scelta della componente proporzionale e stata
eettuata in modo da testare due diversi tipi di controllo :
1. K=12.5 : con questa scelta i poli del sistema in retroazione sono po-
sizionati in -5 -5 -10 .
2. K=100 : i poli in questo caso sono complessi coniugati .
7.5.6 Linearizzazione standard
Il modello lineare ottenuto con la funzione linmod.m di MATLAB presenta
poli in -1.4832 e 1.4832 . Il sistema e ovviamente instabile ed occorre sta-
bilizzarlo con un controllore in retroazione. Per usare lo stesso controllore
progettato per laltro metodo occorre portare il sistema ad avere due poli
nellorigine. Si eettua percio una retroazione puramente proporzionale e si
posizionano con un K=110 i poli nell origine ( vedi luogo delle radici di gura
5 ) . A questo sistema applico i controllori precedentemente progettati.
Ora i due sistemi in retroazione derivati dai due metodi sono identici. Per
il confronto occorre applicare il controllore progettato sul lineare standard al
sistema non lineare di partenza.
159
7.5.7 Controllo con K=12.5 e K=100
Si riportano nelle gure successive i graci relativi alle simulazioni eettuate
su MATLAB. Su ogni graco sono riportate le risposte dei sistemi diversi-
cate nel tratto :
1. - : controllo su sistema lineare standard
2. - - - - : controllo su sistema non lineare
3. - . - . : controllo su linearizzato in feedback
7.5.8 Conclusioni
Si puo notare dai graci che le risposte dei sistemi sono identiche con angolo
di partenza pari a 0.3 rad. Man mano che ci si allontana da questo angolo le
risposte si diversicano no ad arrivare al punto in cui il controllo, progettato
sul sistema lineare standard e applicato al non lineare, genera instabilita
(questo accade per K=100 e angolo di partenza 1.6 rad). Cio dimostra che ,
almeno in questo esempio, l insieme di convergenza del controllo sul sistema
lineare standard e pi u piccolo di quello del sistema linearizzato in feedback.
160
(x) x=f(x)+g(x)u
.
(x)
u v
+
+
x
Figura 7.1: Sistema con linearizzazione input-stati
161

q
mg
Figura 7.2: Link di un robot
162
mg
q
2
q
1

Figura 7.3: Link con cedevolezza


163
y
t
y(t)
y(t)
^
Figura 7.4: Inseguimento di tipo asintotico
164
Carrello
q
F
Figura 7.5: Pendolo inverso
165
125 (s+2)
(s+20)
controllore Sistema lineare
zl
angolo
0
riferimento
+
-
Sum
Sistema lineare in retroazione
Figura 7.6: Linearizzazione standard
166
du/dt
Derivative
1
Input
1
Output
MATLAB
Function
blocco
linearizzante
pendolo
dinamica
non lineare
Mux
in
v
u
Linearizzazione in feedback
Figura 7.7: Linearizzazione in feedback
167
Carrello
q
F
Figura 7.8: Pendolo inverso
168
-20 -15 -10 -5 0 5
-10
-5
0
5
10
Real Axis
I
m
a
g
A
x
i
s
Figura 7.9: Luogo delle radici
169
-3 -2 -1 0 1 2 3
-3
-2
-1
0
1
2
3
Real Axis
I
m
a
g
A
x
i
s
Figura 7.10: Luogo delle radici
170
0 0.5 1 1.5 2
-0.1
-0.05
0
0.05
0.1
0.15
0.2
0.25
0.3
tempo (ms)
l
i
n
e
a
r
e
-
-
-
n
o
n
l
i
n
e
a
r
e
-
-
l
i
n
.
e
s
a
t
.
-
.
-
(
r
a
d
)
Evoluzione angolo asta
Figura 7.11: Simulazione con k=12.5 e angolo 0.3
171
0 0.5 1 1.5 2
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
tempo (ms)
l
i
n
e
a
r
e
-
-
-
n
o
n
l
i
n
e
a
r
e
-
-
l
i
n
.
e
s
a
t
.
-
.
-
(
r
a
d
)
Evoluzione angolo asta
Figura 7.12: Simulazione con k=12.5 e angolo 0.8
172
0 0.5 1 1.5 2
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
tempo (ms)
l
i
n
e
a
r
e
-
-
-
n
o
n
l
i
n
e
a
r
e
-
-
l
i
n
.
e
s
a
t
.
-
.
-
(
r
a
d
)
Evoluzione angolo asta
Figura 7.13: Simulazione con k=12.5 e angolo 1.3
173
0 0.5 1 1.5 2
-1
0
1
2
3
4
5
6
7
tempo (ms)
l
i
n
e
a
r
e
-
-
-
n
o
n
l
i
n
e
a
r
e
-
-
l
i
n
.
e
s
a
t
.
-
.
-
(
r
a
d
)
Evoluzione angolo asta
Figura 7.14: Simulazione con k=12.5 e angolo 1.6
174
0 0.5 1 1.5 2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
0.25
0.3
tempo (ms)
l
i
n
e
a
r
e
-
-
-
n
o
n
l
i
n
e
a
r
e
-
-
l
i
n
.
e
s
a
t
.
-
.
-
(
r
a
d
)
Evoluzione angolo asta
Figura 7.15: Simulazione con k=100 e angolo 0.3
175
0 0.5 1 1.5 2
-0.4
-0.2
0
0.2
0.4
0.6
0.8
tempo (ms)
l
i
n
e
a
r
e
-
-
-
n
o
n
l
i
n
e
a
r
e
-
-
l
i
n
.
e
s
a
t
.
-
.
-
(
r
a
d
)
Evoluzione angolo asta
Figura 7.16: Simulazione con k=100 e angolo 0.8
176
0 0.5 1 1.5 2
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
tempo (ms)
l
i
n
e
a
r
e
-
-
-
n
o
n
l
i
n
e
a
r
e
-
-
l
i
n
.
e
s
a
t
.
-
.
-
(
r
a
d
)
Evoluzione angolo asta
Figura 7.17: Simulazione con k=100 e angolo 1.3
177
0 0.5 1 1.5 2
-1
0
1
2
3
4
5
6
7
tempo (ms)
l
i
n
e
a
r
e
-
-
-
n
o
n
l
i
n
e
a
r
e
-
-
l
i
n
.
e
s
a
t
.
-
.
-
(
r
a
d
)
Evoluzione angolo asta
Figura 7.18: Simulazione con k=100 e angolo 1.6
178
Appendice A
Appendice: Richiami di
Algebra Lineare
Si consideri il sistema di equazioni lineari
Ax = b, A IR
nm
1. Il sistema ha soluzione se e solo se b Im A;
2. Il sistema ha soluzione b se e solo se Im A = IR
n
, quindi se rank A =
n (si dice che A ha pieno rango righe). E necessario perci`o che m n;
3. Il sistema ha al pi` u ununica soluzione se ker A = 0;
Per n = m, si ha ovviamente una soluzione per ogni b, che `e anche
unica, se e solo se A `e invertibile: x = A
1
b.
Consideriamo il caso 2, in cui la soluzione di Ax = b esiste ma non `e
unica. Poniamoci il problema di trovare, tra le soluzioni, quella di lunghezza
minima. Vogliamo in altri termini risolvere il problema di minimo vincolato
x = arg min
x
x
T
x
Ax = b
Questo problema `e risolto facilmente col metodo dei moltiplicatori di La-
grange, denendo L = x
T
x +
T
(Ax b) e imponendo
L
x
=
L

= 0. Dalla
prima condizione si ha
x =
A
T

2
,
quindi
AA
T
= 2b
179
180
Dalla ipotesi che Aabbia pieno rango righe, segue che AA
T
`e invertibile:
infatti, questa matrice e quadrata, ed essendo le righe di A indipendenti, tali
sono anche le colonne di A
T
, che quindi non ha spazio nullo (cio`e, non esiste
alcun y tale che A
T
y = 0). Inoltre, poich`e sappiamo dal teorema fondamen-
tale dellalgebra che Im (A
T
) = ker

(A), nessun vettore nellimmagine di


A
T
pu`o appartenere al kernel di A. Quindi si ha che la soluzione di minima
lunghezza `e
x = A
T
(AA
T
)
1
b
Si osservi che la matrice A
R
def
= A
T
(AA
T
)
1
`e una inversa destra di A:
AA
R
= I
n
.
Se la lunghezza del vettore x fosse stata misurata in un altra metrica,
|x|
2
= x
T
Wx (con W simmetrica e positiva denita), la soluzione sarebbe
risultata x = W
1
A
T
(AW
1
A)
T
b. La matrice A
R
W
def
= W
1
A
T
(AW
1
A)
T
`e anchessa una inversa destra, pesata in W (quindi, le inverse destre non
sono uniche).

`
E interessante anche osservare come una metrica considerata su uno
spazio si trasformi cambiando le coordinate. Siano x = Tz le nuove coor-
dinate. Si ha: x
T
Wx = z
T
T
T
WTz. La matrice della metrica si trasforma
quindi per congruenza. Essendo W simmetrica e positiva denita (non
avrebbe senso altrimenti), esiste sempre un sistema di coordinate nel quale
la matrice della metrica `e diagonale: baster`a prendere per T la matrice or-
togonale diagonalizzante Q (Q
T
WQ = ). Scegliendo poi T = Q
1/2
, si
ha x
T
Wx = z
T
z, cio`e la matrice metrica `e identica.
Si consideri adesso invece il caso (3) in cui una soluzione (in generale)
non esista, ma che dimker(A) = 0. Ha senso in questo caso cercare la miglior
approssimazione, cio`e la x che minimizza la norma del residuo
x = arg min |Ax b|
2
Ponendo
(Ax b)
T
(Ax b)
x
= 2(A
T
Ax A
T
b)
T
= 0
si ha la soluzione ai minimi quadrati
x = (A
T
A)
1
A
T
b.
Linvertibilit`a `e garantita dallipotesi che A non abbia spazio nullo.
La matrice A
L
= (A
T
A)
1
A
T
`e una inversa sinistra: A
L
A = I
m
. Se
si considera una metrica W
b
sullo spazio dei residui, si ottiene A
L
W
b
=
(A
T
W
b
A)
1
A
T
W
b
.
181
Chiaramente, inverse destre e sinistre sono diverse in generale (anche
nelle dimensioni). Se una inversa destra e una sinistra coincidono, allora
questa `e lunica inversa A
1
di una matrice quadrata A.
Ci chiediamo ora se esiste una espressione unica per una inversa di
una matrice A (chiamiamola A
+
) che fornisca, nei diversi casi, le soluzioni
viste. Cio`e, A
+
= A
1
se esiste linversa; A
+
= A
R
se esiste linversa destra
sopra denita (cio`e se A ha pieno rango righe); A
+
= A
L
se esiste linversa
sinistra sopra denita (cio`e se A ha pieno rango colonne).
Desideriamo anche considerare i casi dove non esista ne inversa destra ne
sinistra, cio`e dove il sistema Ax = b non abbia alcuna soluzione in generale,
ma per i particolari b per cui ha soluzione, questa non e unica. In questo
caso, vorremmo che x = A
+
b fornisse, tra le soluzioni che approssimano la
soluzione con minima norma del residuo, quella che possiede norma minima.
Consideriamo dunque una matrice A n m, e rank (A) = r m.
Consideriamo la diagonalizzazione delle matrici simmetriche e semi-denite
positive ottenute per prodotto con la trasposta:
AA
T
= UMU
T
A
T
A = VNV
T
dove U `e n n, composta da n autovettori ortonormali di AA
T
ordinati in
modo che in M si trovino gli autovalori di AA
T
decrescenti in modulo lungo
la diagonale; e V `e mm, composta da m autovettori ortonormali di A
T
A
ordinati in modo che in N si trovino gli autovalori di A
T
A decrescenti in
modulo lungo la diagonale.
Naturalmente, si ha che le ultime n r colonne di U, e le ultime
mr colonne di V, sono contenute rispettivamente nel ker(AA
T
) = ker A
T
e nel ker(A
T
A) = ker A, e formano una base ortogonale di questi sottospazi.
Infatti, gli elementi sulla diagonale di M e N sulle righe e colonne di indice
superiore a r sono nulli.
Si osservi che i primi r valori diagonali (non nulli) di M e di N sono
eguali e positivi:
i
> 0, i = 1, . . . , r. Entrambe le matrici hanno poi
min(n, m) r autovalori nulli sulla diagonale. Inne, se n > m, la ma-
trice N ha nm altri autovalori nulli sulla diagonale; se n < m, `e la matrice
M ad avere mn altri autovalori nulli sulla diagonale.
Questa `e una conseguenza del fatto che gli autovalori di un prodotto
quadrato di matrici rettangolari, ad esempio BC, coincidono con quelli del
prodotto commutato, CB, eccetto che per un numero di autovalori nulli pari
alla dierenza di dimensioni tra le due matrici quadrate.
182
Possiamo quindi scrivere M =
T
e N =
T
, con n m, e

ii
=

i
def
=
i
, i = 1, . . . , r

jk
= 0, altrimenti
Gli r numeri positivi
i
sono detti valori singolari di A.
Le matrici U e V sinora considerate rappresentano basi ortonormali
arbitrariamente scelte (eccetto per il fatto che le ultime colonne sono una
base di ker A
T
e ker A, e le prime colonne sono una base di Im A e Im A
T
,
rispettivamente). Possiamo quindi scegliere una base, o meglio una relazione
tra le basi dei quattro sottospazi, particolarmente utile. Faremo ora vedere
che `e possibile fare questo in modo che si possa scrivere
A = UV
T
cio`e in modo da ottenere quella che viene chiamata Decomposizione ai Valori
Singolari (S.V.D.) di A.
Per far questo, ssiamo ad esempio arbitariamente una base ortonormale
di Im A
T
nelle prime r colonne di V, e cerchiamo le corrispondenti colonne
di U risolvendo AV = U, ovvero
U(:, i) =
1

i
AV(:, i), i = 1, . . . , r

`
E facile vericare che queste soluzioni sono eettivamente colonne ortonor-
mali (U(:, i)
T
U(:, j) =
ij
) e che formano una base di Im A: sono quindi
legittime scelte per le prime r colonne di U. Per le altre colonne di U e
V, baster`a prendere i complementi ortonormali (usando ad esempio Gram-
Schmidt).
Per costruire la SVD di una matrice A n m (qualunque!) basta
dunque:
1. Costruire A
T
A e trovarne gli r autovalori non nulli
i
. Porre
i
=

i
e costruire n m con
i
sulla diagonale;
2. Costruire una matrice ortonormale mm V le cui cui prime r colonne
siano una base di Im A
T
;
3. Porre U(:, i) =
1

i
AV(:, i) per le prime r colonne di U;
4. Estendere queste r colonne di U ad una base ortonormale di IR
n
.
5. Scrivere A = UV.
183
Si noti che quanto sopra si applica sia al caso n m che m n.
Nel secondo caso per`o, `e pi` u conveniente trovare gli autovalori di AA
T
, in
numero di n, e quindi applicare la procedura alla matrice A
T
. La procedura
non `e daltronde numericamente eciente ne stabile: per algoritmi migliori,
si vedano testi di analisi numerica.
Mediante la SVD, il problema di ottenere la soluzione di un sistema
lineare Ax = b qualunque, nel senso di trovare la miglior approssimazione di
minima norma, ha soluzione immediata. Riscriviamo infatti UV
T
x = b, e
cambiamo le coordinate in entrambe gli spazi dominio e codominio ponendo
x = V x e b = U

b. Si ha, nelle nuove coordinate x =



b, cio`e

1
x
1
=

b
1
.
.
. =
.
.
.

r
x
r
=

b
r
0x
r+1
=

b
r+1
.
.
. =
.
.
.
0x
n
=

b
n
La soluzione che minimizza la somma dei quadrati dei residui `e dunque x
1
=

b
1

1
, . . ., x
r
=

br
r
, con le altre componenti di x che non inuenzano il residuo e
che quindi sono arbitrarie. Ovviamente, daltronde, per minimizzare x
T
x =
x
T
V
T
V x = x
T
x, tali componenti si dovranno scegliere nulle. Tornando alle
vecchie coordinate, si trova cos` la soluzione desiderata.
La matrice A
+
che risolve il problema Ax = b nel senso suddetto `e
dunque
A
+
= V
+
U
T
dove
+
`e una matrice m n che ha sulla diagonale gli inversi dei valori
singolari di A, e zeri altrove.
A.0.9 Altre applicazioni della SVD
Compressione di dati. Si consideri per esempio una immagine di dimensione
N N, con N grande, e si desideri isolare (per limiti di risorse) i dati di
maggior rilievo contenuti nella matrice. Scrivendo la SVD della matrice dei
dati,
A = UV
T
= U(:, 1)
1
V(:, 1)
T
+U(:, 2)
2
V(:, 2)
T
+. . .
ogni termine della sommatoria contiene solo 2N dati. Troncando la somma-
toria quando i valori singolari (ordinati in senso decrescente) diminuiscono
al di sotto di un certo valore , si ottengono approssimazioni dellimmagine
di crescente risoluzione per 0.
184
Il massimo valor singolare di una matrice `e pari alla sua norma due,
cio`e alla massima amplicazione prodotta da A su un vettore x:
max
x
|Ax|
|x|
= max
x

x
T
A
T
Ax

x
T
x
=
1
Questa coincide col massimo autovalore solo se A `e simmetrica.
Una misura di quanto una matrice sia vicina alla singolarit`a `e il minimo
valore singolare (e NON il minimo autovalore, in generale): si consideri ad
esempio A =
_
1 1/
0 1
_
, in cui gli autovalori sono sempre 1, ma i valori
singolari sono invece dellordine di e 1/ per piccoli (la matrice tende
chiaramente alla singolarit`a per 0).