Facolt`a di Ingegneria
Centro Interdipartimentale
Enrico Piaggio
Indice
1 Cinematica Vincolata
1.1 Introduzione . . . . . . . .
1.1.1 Il Teorema del Dini
1.2 Carrello vincolato . . . . .
1.2.1 Binario rettilineo .
1.2.2 Binario circolare .
1.3 Luniciclo e il biciclo . . .
1.3.1 Uniciclo . . . . . .
1.3.2 Unicicli cooperanti
1.3.3 Biciclo . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.3.2 Studio di e . . . . . . . . . . . . . . . . . .
2.3.3 Controllore alternativo in backstepping . . . . .
3 Dinamica dei veicoli
3.1 Introduzione . . . . . . . . . . . . .
3.2 Dinamica di un carrello vincolato .
3.2.1 Binario rettilineo . . . . . .
3.2.2 Binario circolare . . . . . .
3.3 Dinamica delluniciclo e del biciclo
3.3.1 Uniciclo . . . . . . . . . . .
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4
5
7
7
9
10
10
13
15
.
.
.
.
.
.
.
.
.
.
.
19
19
20
22
25
26
40
45
52
52
56
57
.
.
.
.
.
.
64
64
66
66
67
69
69
3.3.2
3.3.3
Unicicli cooperanti . . . . . . . . . . . . . . . . . . . . 71
Biciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
79
79
79
82
86
89
Capitolo 1
Cinematica Vincolata
1.1
Introduzione
(1.1)
Essendo il modello cinematico senza vincoli, `e possibile imporre una velocit`a arbitraria lungo ognuna delle direzioni dello spazio di stato Q del sistema. Questa apparente incongruenza con la percezione comune che si ha di
qualsiasi sistema meccanico deriva dallaver completamente trascurato tutti gli eetti dinamici presenti sul sistema. Nel caso di modello cinematico
senza vincoli, la trattazione teorica non ha alcun signicato, essendo sempre
possibile de facto un qualsiasi moto arbitrario.
Si supponga perci`o che alcune coordinate qi , con i = 1, . . . , r n, siano
vincolate fra di loro. I vincoli possono esprimere dei legami riguardanti direttamente le variabili di stato qi o la loro velocit`a qi . Esempi di vincoli di
posizione, o olonomi, sono esprimibili come:
Cv (q) = 0
.
Cv (q, t) = 0
(1.2)
Cv (q, t)
d
Cv (q, t)
Cv (q, t) =
q +
= 0.
dt
q
t
(1.3)
(1.4)
(1.6)
Le equazioni vincolari (1.4) ed il relativo metodo riportato in (1.5), rappresentano un importante strumento per lo studio delle propriet`a dei sistemi non lineari con vincoli anolonomi. Nella robotica mobile, la semplicit`a
costruttiva determina spesso la comparsa di vincoli anolonomi, perci`o lo studio dei metodi introdotti n qui facilita lo studio ed il controllo di questi
particolari sistemi meccanici.
1.1.1
2.
f
(x0 , y0)
y
= 0
= yex y + 1
= xex y 1
Osservando che f
(0, 0) = 1 = 0, `e possibile applicare il Teorema del
y
Dini, il quale ci dice che esite una funzione F (x) tale che le soluzioni del
problema sono date localmente dai punti (x, F (x)). In questo modo sappiamo
che esistono altre soluzioni dellequazione f (x, y) = 0, funzione di una sola
variabile.
Il Teorema del Dini, nella forma pi`
u generale ed utile per i nostri scopi `e
il seguente:
Teorema 1.2. Sia D un insieme aperto in IRn+m e sia data la funzione
vettoriale
f : D IRm , f = (f1 , f2 , . . . , fm )T
con f1 , f2 , . . . , fm C 1 (D). Si indichi con x = (x1 , x2 , . . . , xn ) e con y =
(y1 , y2, . . . , ym ). Siano
Jx = f
x
Jy = f
y
dove Jx IRmn e Jy IRmm . Si supponga inoltre che in (
x0 , y0) =
0
(x01 , . . . , x0n , y10 , . . . , ym
) D siano vericate le seguenti condizioni:
x0 , y0) = (0, 0, . . . , 0)
1. f (
2. det(Jy ) = 0
6
Le coordinate
x0 , y0 ), con Dx IRn e Dy
Allora esiste un intorno W = Dx Dy di (
IR , ed una funzione vettoriale F : Dx Dy tale che:
m
x, y) = (0, 0, . . . , 0) (
x, y) {Dx Dy } y = F (
x)
f (
Inoltre, F C 1 (Dx ) e:
F
x, F (
x))
(
x) = (Jy1 Jx )(
x
1.2
Carrello vincolato
1.2.1
Binario rettilineo
Come primo esempio si consideri un carrello vincolato ad un binario rettilineo, rappresentato in gura 1.1. Il carrello ha una massa m ed un momento
di inerzia rispetto allasse verticale Z pari a Iz . Le coordinate generalizzate
siano q = [x, y, ]T .
7
dt
I due vincoli espressi in forma Pfaana sono:
x
sin b cos b 0
y
A(q)q =
= 0,
0
0
1
(1.9)
dove `e possibile notare come il rango della matrice A(q) sia costante e pari a
due al variare della congurazione del binario.
Lo spazio nullo della matrice sar`a quindi di dimensione unitaria e pari a:
cos b
(1.10)
S(q) = sin b ,
0
che permette di esprimere il legame tra la velocit`a delle coordinate generalizzate q con le quasi velocit`a :
cos b
q = sin b .
(1.11)
0
Osservazione 1.1. I due vincoli presenti in questo esempio sono chiaramente olonomi, limitando di fatto le posizioni geometriche raggiungibili dal
carrello. Si noti come possono essere eliminati dal sistema una volta che
si tenga in considerazione la sola coordinata indipendente relativa allunico
grado di libert`
a posseduto dal sistema, cio`e la posizione assunta dal carrello
sulla retta di pendenza b .
In maniera pi`
u rigorosa, applicando il Teorema del Dini `e possibile giungere agli stessi riultati. Per far questo `e suciente mostrare che x IR e
y IR2 , con f : IR3 IR2 :
y x tan b b
f =
b
8
1.2.2
Binario circolare
Nel secondo esempio il carrello `e vincolato su un binario circolare, rappresentato in gura 1.2. Le coordinate generalizzate siano nuovamente q =
[x, y, ]T .
Come nellesempio precedente, si procede con lindividuazione dei vincoli.
Stavolta lequazione che descrive il binario circolare `e x2 + y 2 = R2 . Il
caso di binario circolare con centro diverso dallorigine aggiunge solo alcune
complicazioni di calcolo ma non `e rilevante per la trattazione teorica del
metodo. Per il primo vincolo:
1
Cv (q) = x2 + y 2 R2 = 0
.
v1 (q))
d(C
= 2xx + 2y y = 0
dt
(1.12)
(1.13)
(1.14)
A questo punto `e necessario calcolare una base del nucleo di A(q), la quale
sar`a nuovamente di dimensione pari ad 1, come ad esempio:
y
y
(1.15)
S(q) = x q = x
1
1
Osservazione 1.2. Si noti come la quasi velocit`
a rappresenti la velocit`
a di
avanzamento del carrello, diretta in modo che il carrello percorra il binario
in senso antiorario.
Osservazione 1.3. Anche in questo secondo caso ci si trova di fronte a
vincoli olonomi. Il sistema possiede nuovamente un solo grado di libert`
a.
1.3
Luniciclo e il biciclo
In questo paragrafo si presenteranno due tipologie di veicoli su ruote, particolarmente usati e studiati nel campo della robotica mobile a causa delle
loro caratteristiche cinematiche e dinamiche: luniciclo ed il biciclo. Questa
tipologia di veicoli ricopre gran parte delle problematiche legate allo studio
del controllo che si incontrano comunemente nei sistemi meccanici mobili,
pur mantenendo una certa semplicit`a descrittiva e costruttiva.
1.3.1
Uniciclo
interasse che agiscono su due ruote indipendenti ma non sterzanti. La caratteristica principale di un uniciclo `e il poter ruotare liberamente senza un
limite di curvatura: questo permette rotazioni che lasciano invariata la posizione, cio`e rotazioni attorno allasse verticale passante per il punto centrale
dellinterasse delle ruote attuate. Ad un veicolo dotato delle caratteristiche
sopra elencate, il moto lungo una direzione parallela allinterasse delle ruote
sar`a chiaramente negato.
La gura 1.3 riporta un veicolo di tipo uniciclo. Le coordinate scelte
per localizzare univocamente luniciclo sul piano sono q = [x, y, ]T , dove la
coppia (x, y) indica la coordinata cartesiana del punto di mezzo dellinterasse
del veicolo, punto per il quale passa istante per istante lasse Z solidale al
veicolo e perpendicolare al piano del moto, e con orientazione del veicolo
rispetto allasse orizzontale X.
Limpossibilit`a di moto nella direzione parallela allinterasse, si traduce
in un vincolo sulle velocit`a q.
Questo unico vincolo pu`o essere espresso nel
modo seguente:
Cv1 (q, t) = x sin y cos = 0 .
11
(1.16)
(1.17)
Si noti lanalogia con il primo vincolo denito sul carrello con binario
rettilineo: anche in quel caso la direzione lungo la direzione dellinterasse
delle ruote era interdetta dalla presenza del binario.
A questo punto `e necessario calcolare una base nel nucleo di A(q), la quale
sar`a senzaltro di dimensione pari a 2, come ad esempio:
cos 0
cos 0
S(q) = sin 0 q = sin 0 ,
(1.18)
0
1
0
1
Come `e stato evidenziato precedentemente, le quasi velocit`a forniscono
linsieme delle velocit`a per il carrello compatibili con il vincolo. Il legame
q = S(q) `e quindi il modello cinematico del veicolo, ottenuto trascurando
tutti i termini dinamici e mappando i possibili controlli come controlli di
velocit`a, compatibili con i vincoli imposti dal problema reale. Nei veicoli
reali, la dinamica `e compensata da un controllore di basso livello, solitamente
un PID che rende possibile il controllo del veicolo con ingressi di velocit`a
compatibili con i vincoli: le quasi velocit`a = [1 , 2 ]T .
Dallequazione (1.18) `e possibile ricavare uninterpretazione sica delle
quasi velocit`a: 1 rappresenta la velocit`a lineare o di avanzamento del veicolo,
essendo essa diretta perpendicolarmente al vincolo e quindi allinterasse delle
ruote, mentre 2 `e la velocit`a angolare attorno allasse Z.
Osservazione 1.4. Il vincolo imposto da questo particolare tipo di sistema
dinamico `e puramente anolonomo e non pu`o essere ottenuto per derivazione
di un vincolo olonomo. Il veicolo infatti pu`o raggiungere qualsiasi punto del
piano di moto (il sistema non lineare `e completamente raggiungibile).
Osservazione 1.5. Dal punto di vista pratico e realizzativo, il veicolo uniciclo `e controllato utilizzando direttamente le velocit`
a di rotazione della ruota
destra r e sinistra l indipendentemente. Questo perch`e facilita la realizzazione dei controllori di coppia PID di basso livello impiegati per rendere
possibile ladozione del modello cinematico. In particolare si avr`
a la seguente
relazione:
1 = r2 (r + l )
2 = Lrr (r l )
dove r `e il raggio delle ruote attuate ed Lr `e la lunghezza dellinterasse delle
ruote. Si noti come questa relazione metta in risalto che 2 `e positiva in
senso antiorario.
12
Figura 1.4: Due unicicli cooperanti. La distanza tra i due unicicli `e costante
e pari L. Una possibile scelta delle coordinate `e q = [x1 , y1 , 1 , 1 , 2]T .
1.3.2
Unicicli cooperanti
Si consideri il sistema di gura (1.4). Le coordinate scelte per localizzare univocamente i due unicicli cooperanti sono [xi , yi, i , i]T , con i = 1, 2. La coppia (xi , yi ) indica la coordinata cartesiana del punto di mezzo dellinterasse
del veicolo iesimo, i `e lorientazione del veicolo rispetto allasse orizzontale
X, mentre i `e langolo tra lasta, di lunghezza L, che collega i due robot,
e la normale allinterasse delle ruote. Notando che 8 coordinate sono superiori al numero necessario per individuare completamente il sistema alcune
coordinate saranno dipendenti tra loro, dipendenza che in generale sar`a non
lineare. Infatti:
2 = 1 1 + 2
2 = 1 1 + 2
x2 = x1 + L cos(1 1 )
x = x 1 L(1 1 ) sin(1 1 ) .
2
y2 = y1 + L sin(1 1 )
y2 = y 1 + L(1 1 ) cos(1 1 )
(1.19)
Il set minimo di variabili in grado di individuare univocamente il sistema
sar`a quindi q = [x1 , y1 , 1 , 1, 2 ]T .
Osservazione 1.6. Si noti come il vincolo sulla distanza tra i due unicicli,
costante e pari ad L, sia gi`a incorporato nelle (1.19). Le equazioni (1.19)
possono essere viste come una applicazione del Teorema del Dini.
13
(1.20)
x 1
y1
cos 1
0
0
0
sin 1
1 = 0 ,
L
cos
0
0
cos
2
1
0
0
L
cos
sin
2
1
(1.22)
ker(A(q)) = span 1 , 0 , sin(2 1 ) .
0
1
0
1
0
0
q =
L cos 2 cos 1
L cos 2 sin 1
sin(2 1 )
0
0
0
0
1
1
0
0
0
0
0
1
2 .
(1.23)
Anche in questo caso si possono dare delle interpretazioni siche alle quasi
velocit`a. 1 `e la velocit`a di avanzamento del veicolo uno in grado di rispettare
il vincolo uniciclo e la distanza relativa dal veicolo numero due. Si noti come
invertendo il pedice 1 con 2 si ottiene lequazione cinematica del veicolo due
(ovvio se si pensa alla simmetria del sistema e allarbitrariet`a della scelta
delle coordinate). Le quasi velocit`a 2 e 3 sono una funzione delle velocit`a
angolari dei due veicoli rispettivamente.
14
x1 = x1
y1 = y1
1 = 1
q =
.
1 = 2
2 = 2
La matrice dei vincoli diverr`
a:
sin 1 cos 1 0 0 0
A(
q) =
sin 1 cos 1 0 0 0
che ha uno spazio nullo di dimensione dim(ker(A(
q ))) = 4. Il punto di
singolarit`
a q fa quindi acquistare, istantaneamente, mobilit`
a al sistema.
Si pu`o infatti notare che in questa congurazione gli interassi dei due
veicoli sono orientati secondo il link di unione di lunghezza L. Questo comporta che anche i vincoli di tipo uniciclo sono allineati e rappresentano di
fatto per la struttura un solo vincolo. Inoltre, in questa congurazione, lulteriore vincolo imposto dal link di congiunzione `e istantaneamente rispettato,
dato che il moto istantaneo lungo questa direzione `e interdetto dal vincolo uniciclo. Le altre congurazioni con interassi paralleli hanno comunque
dim(ker(A(
q))) = 3 a causa di questo ultimo vincolo, che altrimenti sarebbe
violato.
Osservazione 1.8. Il modello in studio in queste note pu`
o essere generalizzato al caso di sistemi composti da un numero n arbitrario di unicicli
cooperanti.
1.3.3
Biciclo
Un biciclo `e la schematizzazione di un uniciclo con un secondo uniciclo collegato rigidamente, cio`e a distanza ssa. Essendo un caso particolare del
caso di unicicli cooperanti, si pone di solito langolo di aggancio tra il link
di collegamento ed il secondo uniciclo costantemente pari a 2 , mentre la
trazione pu`o essere relativa allanteriore o al posteriore. Nella gura 1.5 `e
rappresentato un veicolo biciclo. Due possibili scelte per le coordinate relative alla posizione del biciclo sono qa = [xa , ya , , ]T o qp = [xp , yp , , ]T ,
dove (xa , ya ) e (xp , yp ) sono rispettivamente le coordinate del centro dellinterasse delluniciclo anteriore e posteriore, dove `e lorientazione del link di
connessione rispetto allasse X e dove `e lorientazione delluniciclo anteriore rispetto al link di connessione. Sono necessarie solo quattro coordinate
15
ya = yp + L sin
y a = yp + L cos
con qp = [xp , yp , , ]T .
Il doppio vincolo uniciclo, ancora intrinsecamente anolonomo:
1
Cv (qp , t) = x a sin( + ) y a cos( + ) = 0
,
Cv2 (qp , t) = x p sin y p cos = 0
16
(1.25)
dalle quali, una volta sostituite le equazioni (1.24), si ottiene la relativa forma
Pfaana:
x p
cos 0
sin 0
Sp (qp ) =
(1.27)
1 tan 0 .
L
0
1
Analizzando la relazione cinematica che se ne ottiene qp = Sp (qp ), `e
possibile notare che per questa base del ker(A(qp )) la quasi velocit`a 1 `e
la velocit`a di avanzamento delluniciclo posteriore, mentre 2 `e la velocit`a
angolare di sterzata delluniciclo anteriore. Per questo motivo, il modello
cinematico che se ne ottiene viene solitamente indicato come biciclo a trazione
posteriore. Se lobiettivo fosse stato la schematizzazione cinematica di un
veicolo a trazione anteriore la scelta della base sarebbe stata:
cos cos 0
sin cos 0
.
Sa (qp ) =
(1.28)
1 sin
0
L
0
1
Si noti come la scelta iniziale sulle coordinate non inuisce sulla scelta
della trazione. Si scelga adesso di riferire la posizione rispetto alle coordinate
qa = [xa , ya , , ]T :
x p = x a + L sin
xp = xa L cos
.
(1.29)
yp = ya L sin
y p = ya L cos
Restando valido il doppio vincolo uniciclo (1.25) ed una volta sostituite
le equazioni (1.29), si ottiene la relativa forma Pfaana:
a
sin( + ) cos( + ) 0 0
ya = 0 ,
(1.30)
A(qa )qa =
sin
cos
L 0
17
cos( + ) cos
sin( + ) cos
qa = Sp (qa ) =
1 cos sin
L
0
0
0
,
0 2
1
(1.31)
cos( + ) 0
sin( + ) 0 1
qa = Sa (qa ) =
.
(1.32)
1 sin
0 2
L
0
1
Osservazione 1.9. La dierenza tra modello cinematico riferito allanteriore qa o al posteriore qp `e dovuta alla asimmetria del sistema rispetto ai due
unicicli componenti il sistema. Al contrario, nel caso degli unicicli cooperanti tale dierenza non si riscontra, data la simmetria del sistema. La scelta
del riferimento `e di solito legata al tipo di task da risolvere ed alla relativa
semplicit`a nel controllore adottabile.
Osservazione 1.10. Si noti come il veicolo di tipo biciclo non aumenti in nessuna congurazione la propria mobilit`
a, cio`e dim(ker(A(qa ))) =
dim(ker(A(qp ))) = 2 in ogni punto dello spazio. Questa propriet`
a pu`o anche
essere subito notata se si ricorda che il biciclo `e un caso particolare degli unicicli cooperanti e che non pu`
o mai assumere la congurazione con maggiore
mobilit`a ricavata in quel caso.
18
Capitolo 2
Controllo cinematico dei veicoli
2.1
Introduzione
2.1.1
I criteri di stabilit`
a di Lyapunov
x
20
lequilibrio `e anche globalmente asintoticamente stabile. Il sistema avr`a quindi una regione di asintotica stabilit`a pari a tutto lo spazio di stato (G.A.S.).
Il metodo diretto di Lyapunov non permette di dire niente sullequilibrio
nel caso in cui la Lf V(x) sia n.s.d. In tal caso, si adottano due ulteriori
teoremi che si basano sul concetto di insieme invariante.
Definizione 2.2. Un insieme M `e invariante per un sistema dinamico se le
traiettorie che contengono punti di M sono tutte contenute in M.
Teorema 2.1. (Lasalle) Sia V(x) C 1 p.d. e si supponga inoltre che esista
un k IR t.c. le superci di livello V(x) = k siano chiuse e delimitino in
tal modo linsieme limitato k = {x|V(x) < k}. Sia inoltre Lf V(x) 0,
x k . Si denisca linsieme = {x k |Lf V(x) = 0} e si indichi con
M il massimo insieme invariante contenuto in . M `e massimo nel senso
che `e il pi`
u grande insieme nel senso insiemistico. Allora, ogni traiettoria
x(x0 , t) del sistema con x0 k converge allinsieme M, ossia:
lim
inf x(x0 , t) m = 0
t m(t)M
Osservazione 2.1. Si noti che il teorema di Lasalle vale per V(x) dipendenti
dal tempo solo tramite il vettore di stato x(t). Invece, se la V(x, t) dipende
esplicitamente dal tempo, il teorema resta valido con lipotesi aggiuntiva di
Lf V(x, t) uniformemente continua in t. Sapendo che una qualsiasi funzione
g(x) si dice uniformemente continua su un intervallo se > 0, > 0 tale
che x, y con x y < si ha g(x) g(y) < , lipotesi sulla V(x, t)
pu`o essere dimostrata ad esempio mostrando che dtd Lf V(x, t) `e limitata t.
Teorema 2.2. (Krasowskii) Se V(x) `e p.d. e Lf V(x) p.s.d., ma non
contiene traiettorie del sistema eccetto che lequilibrio, allora il sistema, oltre
ad essere stabile, `e anche asintoticamente stabile.
Per concludere questo breve richiamo sulla teoria di stabilit`a di Lyapunov,
si considerano due ulteriori estensioni riguardanti linstabilit`a.
Teorema 2.3. (Lyapunov) Sia Br un intorno dellorigine di raggio r.
x Br
Siano inoltre V(x) C 1 , V(0) = 0 e Lf V(x) p.d. Se r > 0,
tale che V(
x) > 0, lequilibrio nellorigine `e instabile.
Teorema 2.4. (Cetaev) Sia Br un intorno dellorigine di raggio r e V(x)
C 1 . Se dato un insieme aperto tale che:
0 ()
x Br , V(x = 0) > 0 e Lf V(x = 0) > 0
21
per x = 0 e x () Br , V(x) = 0
allora lorigine del sistema `e un punto di equilibrio instabile per il sistema
x = f (x).
Osservazione 2.2. Si noti che con lapproccio alla Lyapunov i controllori
ricavabili sono regolari (smooth) e tempo invarianti.
2.1.2
x = Ax + Bu
z = Az
y = Cx + Du
y = Cz + Du
= T B e C = CT 1 .
dove A = T AT 1 , B
Osservazione 2.3. La trasformazione di coordinate espressa precedentemente `e un omomorsmo, cio`e una applicazione lineare tra i sottospazi X e
Z. Pi`
u precisamente, un omomorsmo tra due spazi vettoriali X e Z `e una
applicazione lineare f : X Z che verica le seguenti propriet`
a:
1. f (x1 + x2 ) = f (x1 ) + f (x2 ), x1 , x2 X
2. f (x) = f (x), x X e IR
Se il sistema `e non lineare, assume rilevanza lo studio di cambiamenti di
coordinate non lineari, del tipo:
z = (x) ,
22
1 (x1 , x2 , . . . , xn )
1 (x)
2 (x) 2 (x1 , x2 , . . . , xn )
(x) = .. =
,
..
.
.
n (x)
n (x1 , x2 , . . . , xn )
cos x1 0
2x1 1
,
= f (x(t)) + g(x(t))u(t)
,
y(t) = h(x(t)) + w(x(t))u(t)
e si denisca il cambiamento di coordinate:
z(t) = (x(t)) .
Si faccia la derivata rispetto al tempo della precedente equazione:
z(t)
=
(x) dx(t)
(x)
dz(t)
=
=
[f (x(t)) + g(x(t))u(t)] ,
dt
x
dt
x
y(t) = h(z(t))
+ w(z(t))u(t)
dove:
f(z(t))
=
(x)
f (x(t))
x
(x)
g(x(t))
x
g(z(t)) =
h(z(t))
= [h(x(t))]
x(t)=1 (z(t))
x(t)=1 (z(t))
x(t)=1 (z(t))
w(z(t))
= [w(x(t))]x(t)=1 (z(t))
le quali legano il vecchio sistema con la nuova rappresentazione nello spazio
di stato.
Osservazione 2.4. Si noti che nel caso di sistemi lineari, il cambiamento
di coordinate `e anchesso lineare. In altre parole, se (x(t)) = T x(t),
le espressioni ricavate in precedenza per i sistemi non lineari si riducono a
quelle classiche relative ai sistemi lineari.
24
2.2
Prima di entrare nel merito del progetto dei possibili controllori utili per
il completamento di determinati task, `e utile classicare i diversi tipi di
problemi di controllo per i veicoli mobili:
Path following: il robot deve raggiungere e seguire un determinato
cammino geometrico nello spazio cartesiano, partendo da una generica
posizione iniziale, facente parte o meno del cammino geometrico (vedere
gura 2.2, a));
Trajectory tracking: il robot deve raggiungere e seguire una determinata
traiettoria geometrica nello spazio cartesiano (i.e. un cammino geometrico associato ad una certa legge temporale) partendo da una generica posizione iniziale, facente parte o meno della traiettoria (vedere
gura 2.2, b)).
Pointtopoint motion: il robot deve raggiungere una deteminata congurazione desiderata allinterno partendo da una generica congurazione iniziale (vedere gura 2.2, c));
25
2.2.1
Path following
Nel problema del path following al controllore `e fornita una descrizione cartesiana del luogo geometrico sul quale si dovr`a portare il robot. Il luogo geometrico `e generalmente parametrizzato con un set di parametri, quali curvatura
e/o lunghezza dellarco del cammino da seguire. Per questo tipo particolare
di task, la dipendenza dal tempo `e chiaramente non rilevante, in quanto lunico parametro da controllare `e legato allerrore geometrico di piazzamento
tra robot e cammino da seguire. Per questo motivo `e pratica comune nella
letteratura ssare la velocit`a di avanzamento del veicolo mobile (uno dei controlli a disposizione) ad un valore costante o variabile con una legge tempo
variante, lasciando solo i rastanti ingressi come controlli a disposizione. Il
problema del path following pu`o cos` essere ridenito come il problema della
stabilizzazione a zero di una funzione scalare, in generale funzione di tutte
le variabili di stato del sistema meno una (legata alla rinuncia del controllo
della velocit`a lineare), come ad esempio la distanza relativa tra path e veicolo
(si veda la gura 2.2, a)), utilizzando solo un sottoinsieme delle variabili di
controllo.
Stabilizzazione sulla retta y = 0
Si consideri il problema della stabilizzazione di un veicolo di tipo uniciclo
sullasse orizzontale y = 0. Il modello cinematico del veicolo uniciclo, ricavato
nel capitolo 1 relativo alla cinematica vincolata, `e riportato per comodit`a di
seguito:
cos 0
q = sin 0 u ,
(2.1)
0
1
dove q = [x, y, ]T ed u = [v, ]T con v velocit`a di avanzamento lineare,
mentre `e la velocit`a angolare del veicolo (ci si riferisca alla gura 1.3).
Come riportato precedentemente, nel problema del path following `e possibile rinunciare al controllo della velocit`a di avanzamento del veicolo, che
viene cos` considerata costante e pari a v = 0 (si noti che nel caso v = 0 il
problema non avrebbe soluzione: il veicolo `e libero solamente di ruotare su
se stesso). La stabilizzazione sulla retta y = 0 con velocit`a di avanzamento
lineare costante comporta la stabilizzazione su una traiettoria di riferimento,
ma non su un punto di equilibrio. Questo fa s` che il sistema non possa essere
stabilizzato asintoticamente se considerato nel suo spazio di stato completo.
Daltro canto, se si considera il particolare problema in esame, `e facile notare
come sulla traiettoria di equilibrio, la posizione sullasse x non sia rilevante,
26
xeq = vt
yeq = 0 .
(2.2)
eq = 0
Questo fatto ci permette di concludere che `e suciente costruire una
funzione di Lyapunov p.s.d. su tutto lo spazio di stato ma p.d. per le
coordinate di interesse, ossia:
V(q) = 12 (y 2 + 2 )
Lf V(q) = y sin
v +
(2.3)
ossia funzione diretta del tempo (ad esempio, avente alcuni parametri tempo
varianti). La presenza esplicita del tempo porta ad avere una funzione di
Lyapunov di controllo V(q, t), cio`e anchessa direttamente dipendente dal
tempo. Anche la derivata direzionale dipender`
a direttamente dal tempo. Se
si ha V(q, t) p.d. e la corrispondente Lf V(q, t) n.d. non `e detto che il sistema
converga, potrebbe, ad esempio, essere solamente marginalmente stabile. La
stessa cosa pu`
o succedere qualora si inseriscano forzosamente nella funzione
di Lyapunov termini direttamente dipendenti dal tempo.
Si consideri un sistema non lineare con la seguente dinamica:
x 1 = x1 + x22
,
x 2 = x32 + x1 + u
e si consideri la candidata di Lyapunov:
1
V(x1 , x2 , t) = (x21 + x22 )et ,
2
con costante > 0. La funzione `e chiramente p.d. rispetto a tutto lo spazio
di stato q = (x1 , x2 ). Si consideri la sua derivata direzionale:
1
Lf V(x1 , x2 , t) = (x21 + x1 x22 x42 + x2 x1 + x2 u)et (x21 + x22 )et .
2
Sostituendo il controllo u = x1 x2 x1 , si ottiene una derivata direzionale
n.d. su tutto lo spazio di stato. Le cose sembrano funzionare e sarebbe possibile concludere sullasintotica stabilit`
a dellequilibrio. Questo `e vero se e
solo se la velocit`a di convergenza delle traiettorie del sistema verso lorigine
`e almeno esponenziale di ordine k > . Se cos` non fosse, per t +,
lesponenziale et potrebbe essere nullo prima che le traiettorie del sistema
possano aver raggiunto lorigine. Questo comporterebbe lesistenza di triettorie del sistema interamente contenute nellinsieme invariante massimo, ossia
linsieme dei punti dove la derivata direzionale si annulla. In questo caso si
avrebbe semplice stabilit`a. Inoltre, uno studio sulla dimensione dellinsieme
invariante massimo rileva che essa non `e pi`
u solo legata alle caratteristiche
dinamiche del sistema non lineare sotto esame, ma `e dipendente anche dal
parametro contenuto nellesponenziale.
Utilizzando lunico grado di libert`a presente, la velocit`a angolare del veicolo , `e necessario rendere denita negativa la Lf V(q). Il primo termine
della derivata deve essere cancellato in quanto non denito in segno, mentre
`e ancora possibile rendere denito negativo il secondo termine. Si consideri
perci`o la seguente scelta per la velocit`a angolare:
= y
sin
v K
28
(2.4)
theta:0.00011871
40
50
30
40
20
30
10
0
20
y:2.2159e005
y:2.3377e014
theta:3.2443e014
60
10
0
10
20
30
10
40
20
50
30
60
40
40
30
20
10
10
x :40.9448
20
30
40
50
60
60
50
40
30
20
10
x :4.1886
10
20
30
40
theta:2.5559e014
40
30
20
y:7.7651e015
10
0
10
20
30
40
50
60
60
50
40
30
20
10
0
x :41.6919
10
20
30
40
cos 2 cos 1
cos 2 sin 1
1
q =
L sin(2 1 )
0
0
0 0
0 0
v1
1 0
(2.6)
1 ,
2
1 0
0 1
x1
x1
y1
y1
= q = 1 ,
(q) =
(2.7)
1
1 1
1 1 + 2
2
q
):
la quale porta al seguente sistema cinematico (q = (q)
q
q=1 (
q)
q =
cos 1 cos(2 )
sin 1 cos(2 )
0
1
sin(
2 1 )
L
0
0
0
1
0
0
0
0
0
0
1
u,
(2.8)
2 = 1 L v K2 sin(2 1)
q) = K1 12 K2 sin2 (2 1), n.s.d. se K1 , K2 > 0.
la quale porta a Lf V(
Si rende cos` necessario lutilizzo dei teoremi di Krasowskii e Lasalle, infatti
si ottiene che Lf V(
q) = 0 se (1 , 2 ) = (0, 0). In questo punto si ottiene che
le velocit`a angolari assumono i seguenti valori:
v
1 = y1 cos
.
(2.11)
2 = y1 cos
v L v
Anch`e ci siano traiettorie del sistema interamente contenute nellinsieme
q) = 0, ossia anch`e tale insieme sia invariante rispetto alle traiettorie
Lf V(
del sistema, deve essere necessariamente 1 = 2 = 0, la qual condizione
`e vericata se e solo se = y1 = 0. La retta y = 0 `e quindi un punto
asintoticamente stabile per il sotto spazio di interesse, mentre corrisponde
ad una traiettoria di riferimento asintoticamente stabile per lintero sistema.
Implementando il controllore come riportato in (2.10), ssando le costanti di guadagno K1 = 10 e K2 = 1, imponendo il valore della velocit`a di
avanzamento costante v = 10 e scegliendo come condizione iniziale il punto q0 = [x1 , y1 , 1 , , 2 ]T = [0, 20, 2 , 4 , 2 ]T , `e possibile ottenere i risultati
simulativi riportati in gura 2.5.
Come ulteriore esempio, sono riportate anche le simulazioni relative alle
stesse scelte dei parametri, ma tenendo i due unicicli molto pi`
u vicini tra loro
(L = 1).
Stabilizzazione su una retta generica
Se il cammino geometrico da seguire `e ancora una volta una retta, ma di
pendenza e oset b, cio`e se il luogo geometrico non `e pi`
u descritto dallequazione y = 0 ma dallequazione y = x tan + b, si vorrebbe utilizzare
ancora una volta il controllore riportato precedentemente. La soluzione consiste nel rototraslare il sistema di riferimento, facendo coincidere la retta
generica con lasse delle ascisse. Questa operazione si pu`o ottenere con il
seguente cambiamento delle coordinate di riferimento del veicolo:
x cos + y sin b sin
x
(2.12)
q = y = (q) = x sin + y cos b cos ,
32
theta:1.8612e010
theta:3.6022e020
70
40
60
20
50
20
y:3.0378e020
y:4.6801e010
40
30
20
40
60
10
80
100
10
20
20
10
10
20
30
x :51.9964
40
50
60
70
100
80
60
40
x :98.5021
20
20
40
theta:2.9335e026
100
y:5.1167e026
80
60
40
20
20
20
20
40
60
80
100
x :95.1462
x cos y sin
x
q) = x sin + y cos + b .
q = y = 1 (
+
(2.13)
cos 0
(2.14)
q = sin 0 u ,
0
1
33
ed `e quindi possibile applicare la stessa strategia di controllo trovata precedentemente. In tal caso `e possibile raggiungere asintoticamente il pun = (
to (
x, y, )
vt, 0, 0), che nelle vecchie coordinate corrisponde al punto
(x, y, ) = (
v t cos , vt sin + b, ), il quale corrisponde a portare il veicolo
sulla retta yeq = xeq tan + b con orientazione pari a eq = . Il problema dellinseguimento del cammino geometrico `e quindi risolto con lo stesso
controllore stabilizzante calcolato al punto precedente.
Osservazione 2.7. Si noti come questo problema espresso nelle coordinate
iniziali sia di dicile soluzione. Il problema nasce essenzialmente dalla difcolt`
a nella scrittura di una funzione di Lyapunov p.d. e con derivata direzionale non troppo complessa ed in grado di fornire indicazioni sul calcolo
del controllo stabilizzante.
Per una verica pratica dei risultati ottenuti con la teoria di Lyapunov,
anche in questo caso il controllore `e stato implementato e simulato con
Simulink. Fissando la costante di guadagno K , la velocit`a di avanzamento
costante v e la condizione iniziale q0 = [x0 , y0, 0 ]T come nel caso precedente,
`e possibile ottenere i risultati riportati in gura 2.6, riferiti alle coordinate
iniziali q.
Allo stesso modo possono essere ottenuti questi risultati replicando lo
studio per gli unicicli cooperanti.
Stabilizzazione su una circonferenza
Si supponga di dover stabilizzare il veicolo uniciclo sul cammino geometrico
individuato da una generica circonferenza di raggio R > 0 e centro nellorigine (ogni circonferenza di centro diverso dallorigine pu`o essere ricondotta
al caso di centro nellorigine applicando un opportuno cambiamento di coordinate, pi`
u precisamente una traslazione della terna di riferimento). Come
notato in precedenza, lo studio di un controllore stabilizzante, tempo invariante e regolare alla Lyapunov pu`o essere semplicato a seconda del tipo di
rappresentazione adottato. Per la stabilizzazione su una circonferenza ed
ipotizzando velocit`a di avanzamento costante v = v = 0, `e suciente stabilizzare due sole coordinate sul punto desiderato, la terza descriver`a il moto
di riferimento.
Osservazione 2.8. Una circonferenza su un piano descrive un luogo geometrico che vincola una coordinata di posizione allaltra x2 + y 2 = R2 ma
ssa anche langolo di orientamento del veicolo = arctan( xy ) (si ricordi
il binario circolare descritto nel capitolo 1), il veicolo ha invece tre d.o.f.
sul piano (si ricorda che il modello cinematico delluniciclo `e completamente
raggiungibile).
34
theta:0.7854
theta:0.78455
40
40
30
30
20
10
20
0
y:34.5543
y:12.8441
10
10
20
10
30
20
40
50
30
60
40
40
30
20
10
0
10
x :27.8441
20
30
40
60
50
40
30
20
10
x :19.5293
10
20
30
40
theta:0.7854
60
50
40
y:8.1182
30
20
10
10
20
20
10
10
20
x :6.8818
30
40
50
60
x2 + y 2
y
(q) = arctan( x ) + 2
= q = ,
(2.15)
y
arctan( x )
con la trasformazione di coordinate inversa:
cos
x
1
sin
q) =
=q= y ,
(
+ 2
(2.16)
v
v
= sin
= sin
1
= cos
v
= cos
v ,
(2.17)
1
v
= cos
v
= cos
dove si `e posto per comodit`a v =
v . Si noti che questo cambiamento nella
velocit`a di avanzamento costante v `e sempre lecito, ricordando che nellorigine
il dieomorsmo non `e denito. Si denisce cos` la seguente candidata di
Lyapunov:
V(
q) = 12 ( R)2 + 12 2
.
(2.18)
Lf V(
q) = ( R) sin
v + cos
v
Ponendo = ((R) sin +cos )
v +K `e possibile ottenere Lf V(
q) =
2
`
K , che risulta essere n.s.d. anche nel sottospazio di interesse. E ancora
una volta necessario ricorrere a KrasowskiiLasalle: si nota infatti che per
= 0 la derivata direzionale Lf V(
q) = 0, ma si ottiene anche che =
(( R) + 1)
v che, sostituita nella dinamica di , implica:
= ( R)
v
(2.19)
uguale a zero solo nel caso in cui = R come desiderato (si ricorda ancora
una volta che per lorigine il dieomorsmo non `e denito). Il punto (, ) =
(0, 0) `e un punto asintoticamente stabile per il veicolo. Questa congurazione
corrisponde alla stabilizzazione del veicolo sulla circonferenza.
Per una verica pratica dei risultati ottenuti con la teoria di Lyapunov,
anche in questo caso il controllore `e stato implementato e simulato con
Simulink. Fissando la costante di guadagno K = {100, 10}, la velocit`a
di avanzamento costante v = 10 e la condizione iniziale q0 = [x0 , y0 , 0 ]T =
[0, 20, 2 ] come nei casi precedenti, `e possibile ottenere i risultati riportati in
36
theta:48.2667
theta:51.5905
60
30
25
20
40
15
20
10
y:2.433
y:16.6026
5
0
0
5
20
10
15
40
20
25
40
20
0
x :36.3917
20
40
60
25
20
15
10
0
x :9.6995
10
15
20
25
30
theta:32.8685
60
40
y:4.7161
20
20
40
60
60
40
20
0
x :39.721
20
40
60
gura 2.7, riferiti alle coordinate iniziali q. Dalle gure riportate `e possibile
notare come la costante di guadagno inuisca sulla velocit`a di convergenza
del veicolo sul cammino geometrico prescelto.
Anche per la stabilizzazione sulla circonferenza `e possibile scegliere il caso
di unicicli cooperanti. Si scelga a tal proposito il seguente dieomorsmo
locale (anchesso non `e denito nellorigine):
(q) = q =
!
x21 + y12
arctan( xy11 ) 1 +
arctan( xy11 )
37
(2.20)
x1
cos
y1 sin
= +
q) = q =
1 (
1
2
2
2
(2.21)
q =
cos(2 ) sin
0 0
0 0
cos(2 ) cos
cos(2 ) cos 1 0
L cos(2 + ) 0 0
0
0 1
1 ,
(2.22)
sin
cos(2 )
v + cos(2 ) cos
v + K
(2.24)
v K2 (2 ).
(2.26)
2 = cos(2 + )
L
Scegliendo quindi come funzione di Lyapunov globale la seguente:
q ) + V2 (
q) ,
V(
q) = V1 (
38
(2.27)
p.s.d. sullintero spazio di stato (si nota infatti come le variabili di stato e
la somma + 2 siano di fatto fuori controllo), la funzione risulta essere p.d.
nel sottospazio di interesse. Facendone la derivata direzionale e sostituendo
i controlli calcolati in (2.24) e in (2.26), `e possibile ottenere:
q) = K 2 K2 (2 )2
Lf V(
(2.28)
(2.29)
(2.30)
theta:17.021
60
40
y:2.5495
20
20
40
40
20
0
x :9.6695
20
40
60
2.2.2
Trajectory tracking
theta:12.5083
theta:31.5782
60
60
50
50
40
40
30
30
20
10
y:9.8686
y:39.9326
20
10
10
0
20
10
30
20
40
50
30
50
40
30
20
10
0
x :2.3205
10
20
30
40
50
60
30
20
10
10
x :1.616
20
30
40
50
60
theta:15.381
60
50
40
y:4.7431
30
20
10
10
20
30
30
20
10
10
20
x :1.6115
30
40
50
60
cinematico:
x
cos v
y = sin v ,
(2.31)
x r
cos r vr
y r = sin r vr ,
(2.32)
r
r
per il quale siano note le velocit`a di riferimento (vr (t), r (t)) t. Per questo
tipo di problema si ammette, come negli esempi sul path following, la conoscen41
e1
xr x
(2.33)
e = e2 = yr y .
e3
r
Linseguimento di una traiettoria con errore nullo a regime pu`o essere cos`
ricondotto al problema della stabilizzazione nellorigine nello spazio di stato
e. Notando che lerrore di inseguimento prescinde dalla posizione assoluta
dei due veicoli rispetto ad una terna ssa di riferimento < W >, ma dipende
solamente dalla loro posizione relativa, `e possibile riferire le variabili errore
rispetto ad una terna di riferimento solidale con il veicolo inseguitore < I >
ed orientata opportunamente, come riportato in gura 2.10. Il legame tra le
due terne, pu`o essere espresso con la rototraslazione (nel piano) I TW :
W
py , (2.34)
p = TW p = sin cos x sin y cos
0
0
1
1
42
la quale esprime il legame tra la posizione (xr , yr ) rispetto alla terna solidale
al veicolo inseguitore. Per ottenere la cinematica del nuovo errore di posizione
rispetto alla terna < I > `e necessario derivare rispetto al tempo:
xr
e1
e
)v
v
+
e
cos(
1
r
r
2
I
e2 = TW yr
. (2.35)
=
e2
sin(r )vr e1
1
1
Osservazione 2.10. La dinamica dellerrore posizionale riportata nella equazione
(2.35) poteva anche essere dedotta con considerazioni siche anziche geometriche. Infatti, con riferimento alla terna < I >, `e possibile notare come la
parte di velocit`
a dellerrore e 1 dovuta al veicolo di riferimento dipenda dallorientazione relativa tra i due veicoli, mentre quella dellinseguitore dipenda
dalla propria velocit`a di avanzamento lineare, essendo la terna posizionata con lasse XI orientato lungo la direzione di avanzamento (vincolo cinematico, gura 2.10). Ragionamenti analoghi possono essere intrapresi per la
velocit`a e2 .
Lerrore di orientamento rimane immutato, non avendo signicato nella
terna < I >. Lo spazio di stato nale da stabilizzare nellorigine avr`a cos` la
seguente cinematica:
vr cos e3 v + e2
e 1
(2.36)
e = e 2 = vr sin e3 e1 .
r
e 3
Si scelga perci`o una candidata di Lyapunov p.d. (si ricorda che in questo
caso ci interessa la stabilizzazione su tutto lo spazio di stato e), come ad
esempio:
V(e) = 12 (e21 + e22 ) + Ke3 (1 cos e3 )
,
Lf V(e) = e1 (vr cos e3 v + e2 ) + e2 (vr sin e3 e1 ) + Ke3 sin e3 (r )
(2.37)
dove Ke3 > 0 `e un grado di libert`a aggiunto per il progetto del controllo
stabilizzante. Scegliendo i controlli:
v = vr cos e3 + e1
(2.38)
= + 1 e v + sin e ,
r
Ke3 2 r
e2 r + K1e e22 vr
e 1
3
e1 = 0
0
e 2 =
Lf V(e) = 0
(2.39)
.
e3 = 0
1
Ke e2 vr
e 3
3
43
theta:0.79534
theta:11.9238
50
40
40
30
20
20
y:34.5857
y:25.1571
10
10
20
20
30
40
40
60
50
50
40
30
20
10
0
x :30.4214
10
20
30
40
60
50
40
20
theta:9.9088
0
x :44.5929
20
40
theta:99.91
40
40
30
30
20
20
10
y:20
y:8.866
10
0
0
10
10
20
20
30
20
10
10
20
30
40
x :4.5662
40
40
30
20
10
0
x :8.4454e011
10
20
30
40
equazione y = x 10. Se invece il veicolo di riferimento ha come condizione iniziale q0r = [xr0 , y0r , 0r ]T = [0, 10, 0]T e velocit`a [vr , r ]T = [10, 1]T ,
la sua traiettoria descrive una circonferenza di raggio R = 10 nello spazio di
stato del veicolo, percorsa a velocit`a costante (gura 2.11, in basso a sinistra). Si noti come questi due ultimi esempi corrispondono al problema del
path following con laggiunta di una legge dinamica di percorrenza del luogo.
Questa soluzione pi`
u fessibile della precedente ha comportato lutilizzo della
velocit`a di avanzamento del veicolo.
Nel quarto ed ultimo esempio (gura 2.11, in basso a destra) il veicolo di
riferimento ha come condizione iniziale q0r = [xr0 , y0r , 0r ]T = [0, 20, 0]T ed il
veicolo inseguitore q0i = [xi0 , y0i , 0i ]T = [0, 20, 0]T . Le velocit`a del riferimento
sono stavolta [vr , r ]T = [0, 1]T corrispondenti ad un caso estremo di sola
rotazione. Come stabilito dallo studio teorico, il problema risulta risolvibile
anche in questa condizione estrema.
2.2.3
0
cos
sin , 0
D=
(2.40)
0
1
la quale ha dimensione nel punto di equilibrio prescelto q0 = [x0 , y0 , 0 ]T =
[0, 0, 0]T pari a due, ossia i due campi vettoriali di ingresso sono linearmente
indipendenti. Per il teorema di Brockett, il problema della stabilizzazione
potrebbe essere risolto se e solo se si abbia a disposizione un numero di ingressi pari alla dimensione dello spazio di stato del sistema, condizione non
vericata nel caso delluniciclo essendo il veicolo anolonomo e sottoattuato.
Se ne deduce che non `e possibile trovare una legge di controllo regolare
e tempo invariante in grado di stabilizzare il veicolo nel punto desiderato.
In particolare, non `e possibile trovare alcun controllore alla Lyapunov, per
denizione regolare e tempo invariante, in grado di risolvere il problema della
stabilizzazione su un punto.
Osservazione 2.12. Si osservi come la condizione precedente, specializzata per il caso di sistema non lineare ane negli ingressi e senza termine di
deriva, possa essere ottenuta direttamente dalla terza condizione del teorema
di Brockett. Si consideri infatti la mappa , espressa gracamente in gura 2.12 (si riporta solo il piano (x, y) per semplicit`
a). Si noti come nel caso
in cui il sistema sia nellintorno dellorigine (x, y, ) = (x , y , ) con ingressi (v, ) = (v , 0) linsieme di arrivo della mappa non contiene lorigine del
sistema di riferimento.
47
x2 + y 2
=
,
arctan( xy )
y
arctan( x ) +
con la trasformazione di coordinate inversa:
cos
x
y = sin ,
+
(2.41)
(2.42)
= cos v
= cos v
1
= sin v
= sin v
,
(2.43)
= 1 sin v
= sin v
0
cos
D = sin , 0
(2.44)
sin
1
la quale ha dimensione nel punto di equilibrio prescelto q0 = [0 , 0 , 0 ]T =
[0, 0, 0]T pari ad uno, ossia i due campi vettoriali di ingresso sono stavolta
linearmente dipendenti. Per il teorema di Brockett, si deduce che `e possibile
trovare una legge di controllo regolare e tempo invariante in grado di stabilizzare il veicolo nel punto desiderato. Si ricorda che questo risultato `e stato
reso possibile dallaver applicato un cambiamento di coordinate che non `e un
dieomorsmo globale.
Osservazione 2.14. Si osservi come la condizione precedente, specializzata per il caso di sistema non lineare ane negli ingressi e senza termine di
deriva, possa essere ottenuta direttamente dalla terza condizione del teorema di Brockett. Si consideri infatti la mappa , espressa gracamente in
gura 2.14 (si riporta solo il piano (, ) per semplicit`
a). Si noti come nel
caso in cui il sistema sia nellintorno dellorigine (, , ) = ( , , ) con
ingressi (v , ) = (v , 0) linsieme di arrivo della mappa sia un insieme
aperto contenente lorigine del sistema di riferimento scelto.
Si cerchi quindi di stabilizzare il veicolo utilizzando un controllore alla
Lyapunov, e si consideri a tal proposito la seguente candidata:
V(
q) = 12 (2 + 2 + 2)
,
(2.45)
q) = 2 cos v + sin v + sin v
Lf V(
dove > 0 `e un grado di libert`a aggiuntivo a disposizione del progettista.
Scegliendo i seguenti controlli:
v = cos
,
(2.46)
sin cos
= sin cos +
+
49
si ottiene Lf V(
q) = 2 cos2 2 s.n.d.. Notando che:
=0
Lf V(
q) = 0
= =
=0
(2.47)
Osservazione 2.16. Si consideri il problema della stabilizzazione sullorigine con il vincolo addizionale || < , cio`e che il veicolo si parcheggi nella
posizione desiderata senza perdere di vista lorigine del sistema di riferimento. Si consideri la funzione di Lyapunov p.d. rispetto al sottospazio
(, ):
2 2
V(, ) =
+
,
2
2
per la quale, applicando i controlli ricavati precedentemente, si ottiene:
Lf V(, ) = 2 ,
che `e n.s.d. rispetto al sottospazio di interesse. Si consideri allora lellisse
2
nel piano (, ) denita da V(, )
. Se la condizione iniziale (0 , 0 )
2
`e dentro lellisse, vi permarr`
a durante il movimento denito dai controlli
calcolati precedentemente (la derivata direzionale `e n.s.d.).
A questo punto `e possibile osservare che per ogni condizione iniziale (0 , 0 )
tale per cui 0 < , `e possibile scegliere il valore di per cui levoluzione di
rimane connata nellintervallo aperto (, ). Infatti, scegliendo:
20
,
2 02
si ottiene subito:
V(0 , 0 ) =
2 2
20 2
2
20
+ 2 0 2 0 =
2
0 2
2(2 02 )
2
T
, 16
] .
q0 = [x0 , y0 , 0 ]T = [50, 10, ]T , ossia q0 = [0 , 0, 0 ]T = [50.99, 16
1
Con questi dati si ottiene subito 3 . Nel terzo esempio la scelta fatta `e
= 12 . Si noti come la traittoria descritta dal veicolo verica le condizione
sullorientamento.
51
2.3
Si consideri il modello cinematico del biciclo a trazione anteriore con riferimento sulluniciclo posteriore in coordinate cartesiane [x, y, , ]:
x
cos cos
sin cos
y
sin
=
L
0
0
0
v .
0
1
(2.48)
x2 + y 2
arctan xy
=
(2.49)
y
+ arctan ,
x
cos cos
0
v
sin
cos
(2.50)
= sin cos sin 0 .
L
0
1
2.3.1
(2.51)
#
2
v = cos2 + L22 ( + ) sin cos + k
$L
%
.
(2.52)
(+) sin cos +k ]
= arctan
cos
In realt`a queste sono solo leggi nominali. Le leggi eettive saranno:
sin
v sin = v
sin = L ( + ) sin cos + k
sin
sin
le quali tengono in considerazione limpossibilit`a di accesso diretto alla variabile . Questo comporta una leggera variazione rispetto alle relazioni (2.52)
dove il caloclo della rimane invariato, mentre si ottiene stavolta:
($
$
2
%2
%2 2
sin
cos
sin cos
L
2
v =
+ k
cos +
( + )
2
cos
sin
(2.54)
Sostituendo nella dinamica (2.50) si ottiene:
2 cos
cos
cos
cos
=
. (2.55)
cos
sin
sin cos
sin cos cos sin ( + ) + k
2
1
1
2
2
2
V = ( + + ) + 2 ,
1 2
cos
sin
2
2
(2.56)
Lf V1 = cos
cos
( + ) sin cos
cos
cos sin
k 2 2 + .
sin
sin
53
2
=
=
.
(2.57)
cos sin
cos sin
cos sin
)
sin (
sin cos
=
(2.58)
v sin ()
= + L cos k ,
(
)
ed il denominatore:
2
(2.60)
di .
Si noti che `e ben denita perche 2 2 (questa condizione `e
garantita da (2.52)). Con la scelta dei controlli (v , ) si ottiene:
Lf V1 =
2
cos
cos2 2 k ,
cos
(2.61)
, e 0, ,
,
,
.
, ,
Gli elementi appartenenti a 0 sono: , ,
Scegliendo
,
.
0, ,
2
4
si ottiene che =
v sin ( )
L cos ( )
) sin cos
(+
= +
=
cos sin
k
(2.62)
tale punto = 0.
Alternativamente, se si sostituisce la prima delle (2.53), si ottiene per :
= +
v sin ( )
L cos ()
(2.63)
= 0.
In 0, , , si ha dunque = 0, allora sapendo che || < 2 per lappartenenza allinsieme 0 e ricordando (2.62) segue che = . Ricordando
la cinematica delle variabili di stato controllate, se = 0 e = si ha = 0
e = 0, mentre per le altre due variabili di stato si ha:
"
)
(+
= sin cos 1
= sin cos
,
(2.64)
= sin cos
55
2.3.2
Studio di e
+
.
= arctan
cos
(2.65)
2
K3
K1 2 K 2 2
+ 2 +
+
2
2
2
(2.66)
Se 0 pi`
u velocemente di e , larctan `e comunque denita e = 2 ,
col segno denito dal numeratore. In questultimo caso potrebbe non essere
denita la a causa del termine cos2 . Tenendo presente (2.65) si ottiene:
2
[L ( + ) sin cos + Lk 2 ]
,
=+
2 cos
cos2
(2.67)
quando 0.
Osservazione 2.18. Resta comunque da ricordare che il dieomorsmo
adottato in partenza non `e denito per = 0, ed in tal caso si pu`
o considerare
una stabilit`a pratica anziche asintotica.
Per
quanto riguarda la , i problemi si hanno quando il determinante
2.3.3
Si presenta adesso un ultimo esempio nel quale la stabilizzazione del biciclo `e risolta utilizzando, praticamente invariati, i controlli precedentemente
calcolati per luniciclo. In questo ultimo caso si far`a decisamente ricorso alla tecnica del backstepping, in grado di risolvere i problemi di calcolo e di
R.A.S. riscontrati nel caso precedente.
57
0
0
cos
0
0
sin
= sin vu + 1 u + 0
0
1
0
(2.69)
Invertendo le (2.68) `e possibile ottenere il valore desiderato della v , velocit`a di avanzamento lineare del biciclo, e del corrispondente valore desiderato
dellangolo :
L
v = vu +u
cos +sin
.
(2.70)
= arctan Lu
vu
Ricordando che le relazioni (2.70) sono solo nominali e che in realt`a non
`e possibile accedere ma solo a si ottiene:
L
v = vu +u
cos +sin
.
(2.71)
= arctan Lu
vu
Si studi adesso la derivata prima della :
=
dove `e
v u
2 vu 2
L
[(vu u u v u ) u vu ]
+ L2 u2
(2.72)
= 21 2 [ sin cos ( )
sin2 )] + 2 cos2
.
= cos cos v
= (sin cos L sin )v
= sin cos v
(2.73)
V(
q) = 12 (2 + 2 + 2 ) + 12 ( )
Lf V(
q) = 2 cos cos v + ( + ) sin cos v L sin v + ( )(
)
(2.74)
nella quale sostituendo:
"
+
vu
u
v = cos +
sin
L
,
(2.75)
= K ( ),
si ottiene inne:
cos
cos
sin
2
vu +(+) sin
vu
u K ( )
cos
cos
sin
(2.76)
Si noti come anche in questo caso esistano gli stessi problemi riscontrati
precedentemente dovuti alla imperfetta denizione nel segno dei termini con
tenenti cos
e sin
. Inoltre, questi termini possono divergere, rispettivamente
cos
sin
in = = e = = 0.
q) = 2 cos
Lf V(
59
60
theta:3.1416
theta:3.1378
20
40
10
30
y:3.3683e047
y:4.3613e023
20
10
10
20
30
10
40
20
20
10
10
x :1.28e020
20
30
50
50
40
40
30
20
10
x :1.4461e042
theta:3.1416
10
20
theta:3.1416
70
20
60
10
50
40
y:1.2794e056
y:1.7307e055
10
20
30
20
10
30
0
40
50
50
10
40
30
20
10
x :1.332e041
10
20
20
20
10
10
20
30
x :1.3337e042
40
50
60
70
61
theta:3.1416
3
90
80
2.5
70
(/2)
60
2
Value
y:9.1175e011
50
40
30
20
1.5
10
0
0.5
10
0
10
10
20
30
40
x :0.0068934
50
60
70
80
90
L V
f
10
12
14
16
18
t (sec)
theta:3.1416
80
50
60
Value
y:2.8289e011
100
40
150
20
200
250
10
12
14
16
18
t (sec)
20
20
20
40
60
80
x :0.0024121
62
theta:3.1423
theta:3.1316
30
60
25
40
20
20
10
y:1.7503e008
y:0.00017145
15
20
40
5
60
10
80
15
20
20
15
10
5
x :0.011647
10
15
20
25
30
100
100
80
60
40
20
x :5.0623e005
20
40
60
theta:3.1422
30
20
y:6.328e009
10
10
20
30
30
20
10
0
x :1.6967e005
10
20
63
Capitolo 3
Dinamica dei veicoli
3.1
Introduzione
.
(3.2)
dt q
q
Dalla equazione (3.2) e possibile giungere ad una formulazione, di validit`a
generale, che esprime il legame tra le coppie , applicate ai punti q di un
generico sistema robotico, e le accelerazioni, le velocit`a e le posizioni q, q,
q:
q + C(q,
q)q + Fv q + Fs sgn(q)
+ G(q) ,
J T (q)h = B(q)
(3.3)
dove, oltre alle usuali coppie , alla matrice di inerzia B(q), alla matrice delle
forze mutue C(q,
q) e alla matrice dei termini potenziali G(q), sono stati inseriti tre ulteriori termini per rappresentare le forze di reazione dellambiente
J T (q)h, le forze di attrito viscoso Fv q e statico Fs sgn(q).
completamente il moto del sistema. Come `e stato notato nel capitolo 1, ai veicoli mobili non `e possibile applicare direttamente il metodo perche le componenti del vettore q non sono indipendenti ma soggette a vincoli imposti dalla
particolare struttura del sistema. Una via praticabile potrebbe essere leliminazione del vincolo attraverso un opportuno cambio di coordinate, soluzione
non sempre possibile e non algoritmica. Un modo pi
u sistematico di procede permette lincorporazione dei vincoli direttamente nellequazione della
dinamica.
Utilizzando i moltiplicatori di Lagrange , i vincoli possono essere inseriti sia nella equazione (3.2) che, attraverso la forma Pfaana (1.4), nella
equazione della dinamica in forma classica (3.3). In questultimo caso si avr`a:
= B(q)
q + C(q,
q)q + G(q) + AT
,
(3.4)
A
q + A q = 0
che `e possibile riscrivere in forma matriciale come:
C(q,
q)q G(q) +
B(q) AT
q
=
.
A
0
A q
(3.5)
( C(q,
q)q G(q)) A+
q = (I A+
B 1 A)B
B 1 Aq .
+T
1 T 1
= AB1 ( C(q,
q)q G(q)) + (AB A ) Aq
(3.6)
(3.7)
dove S(q) `e una matrice base di ker(A(q)) (si veda a tal proposito il capitolo 1). Le equazioni vincolari ed i relativi metodi riportati in (1.4) e (1.5) rappresentano un importante strumento per lo studio delle propriet`a dei sistemi
dinamici non lineari con vincoli anolonomi, e quindi hanno particolare rilevanza per la robotica mobile dove i vincoli anolonomi sono una caratteristica
intrinseca dei particolari sistemi dinamici.
65
3.2
3.2.1
Binario rettilineo
$ $ %
%T
m
x
1
1
2
2
2
d L
L
T = 2 m(x + y ) + 2 Iz
y = ,
= m
U =0
dt q
q
Iz
(3.8)
T
dove le coppie = [x , y , ] .
Lenergia potenziale `e nulla ipotizzando il piano orizzontale di riferimento
delle coordinate allineato con il binario rettilineo. Come era lecito aspettarsi
dal modello sico preso in esame, nella equazione (3.8) lunico termine diverso
da 0 rispetto alla equazione generale della dinamica (3.3) `e B(q), per di pi`
u
diagonale.
I vincoli espressi in forma Pfaana sono riportati in (1.9), con la base
del nullo riportata in (1.10). In tal caso `e possibile utilizzare il metodo delle
quasi velocit`a:
cos b
cos b
q = sin b q = sin b .
(3.9)
0
0
Le quasi velocit`a forniscono linsieme delle velocit`a per il carrello compatibili con il vincolo. Si noti daltronde che sostituire il valore di q trovato in (3.9) nellequazione della dinamica (3.8) porterebbe a determinare
erroneamente:
m cos b = x
m sin b = y .
(3.10)
0 =
dove la coppia esercitata attorno allasse Z `e identicamente nulla, coppia
compatibile con il vincolo ma non signicativa dal punto di vista sico. Infatti, in realt`a essa sar`a assorbita dalla reazione vincolare del binario rettilineo. Per calcolare le reazioni vincolari si deve procedere con il metodo dei
66
m
0
0
sin b
0
m
0 cos b
0
0
Iz
0
0
sin b cos b 0
0
0
1
0
0
0
1
0
0
x
y
1
2
x
y
0
0
(3.11)
sin
cos
x
b
y
b
1
2 =
dove `e possibile notare come le reazioni vincolari del binario annullino la
componente ortogonale al binario (1 ) e leventuale rotazione attorno allasse
Z (2 ).
Se non interessano le reazioni
vincolari
si procede con il metodo delle
d
L
L
T
quasi velocit`a, ponendo S(q) dt q q + S(q)T AT = S(q)T . In
questo modo le forze e le coppie presenti nel sistema vengono proiettate nel
nullo della matric A(q): il vincolo `e stato cos` introdotto nella dinamica del
sistema. Si ottiene cos` m(
x cos b + y sin b ) = x cos b + y sin b . A questo
punto `e possibile sostituire le q calcolate secondo lequazione (3.9), ottenendo:
m = r ,
(3.13)
dove r = x cos b + y sin b `e la forza lungo la rotaia, essendo laccelerazione del carrello compatibile con il vincolo.
3.2.2
Binario circolare
Nel secondo esempio il carrello `e vincolato su un binario circolare, rappresentato in gura 1.2. Il carrello ha una massa m ed un momento di inerzia rispetto allasse verticale Z pari a Iz . Le coordinate generalizzate sono
nuovamente q = [x, y, ]T .
Le assunzioni fatte sulle energie in gioco riportate nella equazione (3.8)
sono ancora valide in questo caso. I due vincoli espressi in forma Pfaana sono riportati in (1.14), la quale permette di esprimere il legame tra la
67
y
y
x
q = x q = x + y 2 .
1
1
0
Procedendo con i moltiplicatori
vincolari:
m 0
0 x y
0 m 0 y x
0 0 Iz 0 R2
x y
0 0 0
y x R2 0 0
(3.14)
x
y
1
2
x
y
2
x + y 2
0
(3.15)
2
2
2 )+yR2 (y x )
x
y
R (Iz +mR2 )
y =
R2 (Iz +mR2 )
x +
.
(3.16)
= xIyzy
+mR2
2 +y 2 )
x
+y
m(
x
1 = x y R2
y )+mR
2 = Iz (yRx2x
(Iz +mR2 )
Le reazioni vincolari di questo secondo esempio sono pi`
u complesse di
quelle trovate per il binario rettilineo in quanto i vincoli dipendono dalla
posizione assunta dal carrello sul binario.
Se non interessano le reazioni
vincolari
si procede con il metodo delle quasi
d
L
L
T
velocit`a, ponendo S(q) dt q q + S(q)T AT = S(q)T e portando
il sistema nella forma generale (3.3):
m 0 0
S(q)T B(q)S(q) = S(q)T 0 m 0 S(q) = Iz + m(x2 + y 2 ) = Iz + mR2
0 0 Iz
m 0 0
x
,
T
T
0
m
0
y
S(q) B(q)S(q) = S(q)
=0
0 0 Iz
0
S(q)T = yx + xy + = r
(3.17)
2
`e possibile ottenere la relazione nale (Iz + mR ) = r , la quale esprime
il legame, dovuto allaccelerazione compatibile con il vincolo , tra linerzia
totale attorno al centro del carrello e la relativa coppia.
68
Figura 3.1: Uniciclo di massa m e momento di inerzia rispetto allasse verticale Z pari a Iz . Una possibile scelta delle coordinate generalizzate `e
q = [x, y, ]T .
3.3
3.3.1
Uniciclo
cos 0
cos 0
sin 0
q = sin 0 q = sin 0 + cos 0 .
0
1
0
1
0
0
(3.18)
Osservazione 3.2. Come `e stato evidenziato precedentemente, le quasi velocit`a forniscono linsieme delle velocit`
a per il carrello compatibili con il
vincolo. Il legame q = S(q) fornisce il modello cinematico del veicolo, ottenuto trascurando tutti i termini dinamici e mappando i possibili controlli
come controlli di velocit`
a, compatibili con i vincoli imposti dal problema reale.
Nei veicoli reali, la dinamica `e compensata da un controllore di basso livello,
solitamente un PID, rendendo possibile il controllo del veicolo con ingressi di
velocit`a compatibili con i vincoli: le quasi velocit`
a = [1 , 2 ]T .
Il calcolo delle reazioni vincolari passa attraverso il metodo dei moltiplicatori di Lagrange, come riportato nella equazione (3.5):
x
m
0
0
sin
y
0
m
0
cos
0
0
Iz
0
sin cos 0
0
y
=
. (3.19)
x cos y sin
= Iz
x + sin y)
x
y
dove la forza di reazione vincolare `e composta da quattro termini: i primi
due rappresentano le forze di reazione dirette lungo linterasse del veicolo, mentre gli ultimi due tengono conto delle interazioni mutue tra le varie
velocit`a. La presenza delle forze di Coriolis negli ultimi due termini di
ne annulleranno leetto nella dinamica, la quale dipender`a solamente dalla
matrice delle inerzie B(q).
Il metodo delle quasi velocit`a viene applicato ponendo come al solito
70
T + S(q)T B(q)S(q).
S(q)T = S(q)T B(q)S(q)
In questo modo si ottiene:
x cos + y sin
S(q) =
m 0
T
S(q) B(q)S(q) =
0 Iz
T
S(q) B(q)S(q) = 0
(3.21)
1
(
m x
Iz
cos + y sin )
(3.22)
3.3.2
Unicicli cooperanti
Si consideri il sistema di gura (3.2). I veicoli uno e due avranno rispettivamente una massa m1 e m2 . Il loro momento di inerzia rispetto allasse
verticale Z sar`a rispettivamente pari a I1 e I2 . Il link di collegamento si
suppone di massa e momento di inerzia trascurabili.
Le coordinate scelte per localizzare univocamente i due unicicli cooperanti sono [xi , yi , i , i ]T , con i = 1, 2. La coppia (xi , yi) indica la coordinata
cartesiana del punto di mezzo dellinterasse del veicolo iesimo, i `e lorientazione del veicolo rispetto allasse orizzontale X, mentre i `e langolo tra
lasta, di lunghezza L, che collega i due robot e la normale allinterasse delle
ruote.
Data la simmetria del sistema meccanico in studio, le energie in gioco
saranno la somma delle energie di ciascun veicolo:
T = 12 m1 (x 21 + y12 ) + 12 I1 12 + 12 m2 (x 22 + y22 ) + 12 I2 22
.
U =0
(3.23)
Figura 3.2: Due unicicli cooperanti. La distanza tra i due unicicli `e costante
e pari L. I veicoli uno e due avranno rispettivamente una massa m1 e m2 .
Il loro momento di inerzia rispetto allasse verticale Z sara`a rispettivamente
pari a I1 e I2 . Una possibile scelta delle coordinate `e q = [x1 , y1, 1 , 1 , 2 ]T .
individuare univocamente il sistema sar`a q = [x1 , y1, 1 , 1 , 2 ]T . Sostituendo (1.19) nellespressione delle energie (3.23), si ottiene:
T (q,
q) =
1
[(m1
2
U(q) = 0
(3.24)
Osservazione 3.3. Notare che se il link di connessione fosse stato elastico,
nel calcolo delle energie in gioco un ulteriore termine in grado di tenere in
conto lenergia elastica accumulata nel vincolo sarebbe stato necessario.
Calcolando (3.2) e ricordando lespressione dei vincoli in forma Pfaana (1.21), si ottiene lequazione della dinamica vincolata:
= B(q)
q + C(q,
q)q + T A(q)
72
(3.25)
m1 + m2
0
s
s
0
0
m
+
m
c
c
0
1
2
2
2
c
I1 + I2 + m2 L (I2 + m2 L ) I2
B(q) = s
s
c
(I2 + m2 L2 )
I2 + m2 L2
I2
0
0
I2
I2
I2
0
0
(1 1 )c (1 1 )c
0
0
(1 1 )s (1 1 )s
C(q,
q) =
m2 L
m2 L
(1 1 )c (1 1 )s
( )c
(1 1 )s
m2 L
m2 L
1
1
0
0
0
0
0
0
0
,
0
0
(3.26)
nelle quali = y 1 sin(1 1 ) + x 1 cos(1 1 ), c = m2 L cos(1 1 ) e
s = m2 L sin(1 1 ).
A questo punto `e necessario esprimere il legame tra le accelerazioni generalizzate q e le quasi velocit`a:
q =
0
0
0
0
0
0
0
0
0
0
L cos 2 cos 1 0 0
L cos 2 sin 1 0 0
sin(2 1 ) 1 0
0
1 0
0
0 1
(3.27)
1 + 1
S(q)T =
2
2
2m2 L cos 2 sin 1 sin(2 1 ) + L2 cos2 2 (m1 + m2 ) + sin2 (2 1 )(I1 +
T
S(q) B(q)S(q) =
I1 sin(2 1 )
I2 sin(2 1 )
0 0
= ( 2 1 ) cos(2 1 )I1 0 0
S(q)T B(q)S(q)
(2 21 ) cos(2 1 )I2 0 0
3.3.3
Biciclo
Un biciclo `e la schematizzazione di un uniciclo con un secondo uniciclo collegato rigidamente a distanza ssa. Nella gura 3.3 `e rappresentato un veicolo
biciclo con massa sullanteriore pari a ma e momento di inerzia Ia , mentre
mp e Ip sono le stesse grandezze riferite alluniciclo posteriore. Le coordinate
presenti nel sistema in grado di individuare completamente il sistema dinamico saranno q = [xp , yp , xa , ya , , ]T . Supponendo che il biciclo sia formato
dalla connessione di due unicicli, le energie in gioco saranno la somma delle
energie di ciascuno:
2
T = 12 mp (x 2p + y p2 ) + 12 Ip 2 + 12 ma (x 2a + y a2) + 12 Ia ( + )
.
U =0
74
(3.30)
Si noti come lenergia cinetica T sia espressa relativamente a sei diverse coordinate, ma due delle sei coordinate saranno linearmente dipendenti dalle altre. Due possibili scelte per le coordinate generalizzate relative alla posizione del biciclo sono qa = [xa , ya , , ]T (riferite allanteriore)
o qp = [xp , yp , , ]T (riferite al posteriore). Si veda a tal proposito la discussione fatta nel paragrafo 1.3.3. Scegliendo ad esempio qp e sostituendo
in (3.30), si ottiene:
T (qp , qp ) =
1
((mp
2
(3.31)
U(qp ) = 0
Ricordando che T (qp , qp ) = 12 qpT B(q)qp e che in questo caso lequazione (3.2)
75
0
ma L sin
mp + ma
0
m
+
m
ma L cos
p
a
B(qp ) =
ma L sin ma L cos Ip + Ia + ma L2
0
0
Ia
0
0
0
0
p ) = C(qp , qp ) =
B(q
ma L cos ma L sin
0
0
0
0
Ia
Ia
ma L cos
ma L sin
0
0
,
0
0
0
0
(3.32)
dalle quali `e possibile ottenere lequazione delle forze generalizzate con vincolo:
qp + C(qp , qp )qp + T A(qp )
= B(qp )
(3.33)
con le coppie = [x , y , , ]T .
Osservazione 3.5. Notare che se il link di connessione fosse stato elastico,
nel calcolo delle energie in gioco un ulteriore termine in grado di tenere in
conto lenergia elastica accumulata nel vincolo sarebbe stato necessario.
Si scelga di esprimere la dinamica rispetto al posteriore, utilizzando la
matrice dei vincoli in forma Pfaana riportata in (1.26). Procedendo lo
studio con il modello con trazione posteriore, si ottiene la dinamica di qp
rispetto alle quasi velocit`a:
sin
cos
q =
1
L cos2
0
0
cos 0
sin 0
0
+ 1
tan 0
0
L
0
1
0
(3.34)
x
y
1
2
=H,
76
(3.35)
dove:
0
ma L sin
0
mp + ma
+
m
m
L
cos
0
0
m
p
a
a
ma L sin ma L cos Ip + Ia + ma L2 Ia
W =
0
0
Ia
Ia
sin( + ) cos( + )
L cos()
0
sin
cos
0
0
x + ma L cos
y + ma L2 sin
x cos + y sin )
+ ma L(
H=
sin( + )
sin
cos( + ) cos
L cos()
0
0
0
0
0
0
0
(3.36)
In questo caso la matrice W in (3.35) `e singolare nei punti in cui simultaneamente = k1 e = 2 + k2 con k1 , k2 = 0, 1, . . . . In tal caso `e ancora
possibile il calcolo delle reazioni vincolari utilizzando la relazione (3.6). Il
calcolo esplicito delle reazioni vincolari espresse in funzione dei parametri
del biciclo risulta computazionalmente complesso e non aggiunge niente alla
trattazione teorica di queste note, perci`o non viene riportato esplicitamente.
Il metodo delle quasi velocit`a viene applicato ponendo come al solito
p )T +S(qp )T B(qp )S(qp ) +S(qp )T C(qp , qp )S(qp ),
S(qp )T = S(qp )T B(qp )S(q
dove:
x cos + y sin + L1 tan
T
S(qp ) =
1
1
2
2
2
Ia tan
2 cos2 (cos (L mp Ia Ip ) + Ip + Ia + ma L )
T
L
L
S(qp ) B(qp )S(qp ) =
1
I tan
Ia
L a
)
*
,
tan
2
2
2
(L ma cos + (Ip + Ia + ma L )) 0
cos2 L2
T
0
2 Ia
L cos
2ma tan 0
S(qp )T C(qp , qp )S(qp ) =
0
0
(3.37)
le quali ci permettono di ottenere le accelerazioni del biciclo compatibili con
i vincoli:
1 =
2 =
(3.38)
77
Si provi per esercizio a calcolare il modello dinamico del veicolo negli altri
tre casi utilizzando il metodo delle quasi velocit`a.
78
Capitolo 4
Controllo dinamico dei veicoli
4.1
Introduzione
Nel capitolo 4 sono stati presentati una serie di risultati per il controllo dei
veicoli sul modello cinematico. In questo capitolo saranno presentati gli stessi
risultati qualora si passi dal modello cinematico del veicolo al corrispondente
modello dinamico. Come aermato anche nei capitoli precedenti, i risultati
ottenuti con le funzioni di Lyapunov di controllo (comunemente indicate
in letteratura con lacronimo CLF, Control Lyapunov Function), ossia la
funzione di Lyapunov ottenuta sostituendo i controlli in velocit`a ottenuti
come retroazione dello stato, vorrebbero essere utilizzati anche per il controllo
sul modello dinamico, minimizzando il pi`
u possibile il lavoro di adattamento
al nuovo modello.
Di seguito viene presentato lo strumento principe da utilizzare nel passaggio da modello cinematico a corrispondente dinamico: lintegratore backstepping.
4.2
Integratore backstepping
(4.1)
(x)
V(x)
[f (x) + g(x)]
g(x),
x
x
con K > 0.
Nel caso in cui LF V(x) sia s.n.d., allora la nuova funzione di Lyapunov
estesa permette di asserire sulla stabilit`a, non asintotica, dellequilibrio. In
tal caso lo studio deve essere ulteriormente esteso con lanalisi di Krasowskii
Lasalle.
Il sistema (4.1) pu`o essere ricondotto al modello cinematico del veicolo,
per il quale esiste una legge di stabilizzazione in retroazione u = (x), denita
dal controllo ricavato precedentemente. Se gli eetti dinamici = fd (x, ) ,
con coppie di controllo, potessero essere inseriti come `e stato fatto nel caso
dellintegratore:
x = f (x) + g(x)
,
(4.2)
= fd (x, )
lo studio del controllo dinamico potrebbe avvalersi del teorema sullintegratore backstepping.
Per poter applicare con successo questa tecnica `e necessario estendere la
tecnica dellintegratore backstepping al caso MIMO. In tal caso si ha:
x = f (x) + g(x) = f (x) + g1 (x)1 + g2 (x)2 + + gm (x)m = F (x, )
.
= u
(4.3)
Per il sistema cinematico di partenza si supponga lesistenza di m leggi
di controllo in retroazione dierenziabili con continuit`a (regolari) ui = i (x),
con i (0) = 0 i = 1, . . . , m, e di una funzione di Lyapunov V(x) : IRn IR
che abbia LF V(x) 0.
80
1 (x)
u1 = K1 ( 1 (x)) + x
[f (x) + g(x)] V(x)
g1 (x)
m (x)
[f (x) + g(x)] V(x)
gm (x)
um = Km ( m (x)) + x
x
con Ki > 0. Sostituendo questi controlli nella derivata direzionale della
candidata di Lyapunov `e possibile ottenere:
LF Ve (x, ) = LF V(x)K1 (1 1 (x))2 K2 (2 2 (x))2 + +Km (m m (x))2 ,
(4.6)
ovvero la stessa derivata deirezionale del caso iniziale con laggiunta dei termini di backstepping. Come anticipato precedentemente, LF Ve (x, ) dipender`a
dalle caratteristiche di LF V(x).
Con riferimento al modello dinamico ed al backstepping, per tutti i controllori dinamici sviluppati in queste note si suppone di utilizzare uno schema
di montaggio sistema/controllore comune, riportato in gura 4.1. Le simulazioni sono tutte eettuate in ambiente Simulink.
81
4.3
Path following
Si consideri il problema della stabilizzazione di un uniciclo su una circonferenza. Si riporta brevemente il modello cinematico del sistema utilizzato:
sin
v
0
= cos
v + 1 ,
(4.7)
cos
v
0
(4.9)
v = m1 (x cos + y sin )
,
= Iz
(4.10)
v
m
(4.11)
dove, per semplicit`a, v e sono le coppie di controllo. Lultima trasformazione necessaria riguarda la trasformazione da v a v :
v
sin v 2 . (4.12)
+ v = sin v 2 + v v =
v = v v = v
m
Il modello dinamico complessivo sar`a dunque:
sin v
cos v
=
v cos v 2
v
m sin v
Iz
82
(4.13)
Come riportato nello studio dei controlli sul modello cinematico, i problemi di inseguimento di cammini geometrici possono essere risolti rinunciando al controllo sulla velocit`a di avanzamento lineare, ponendo v = v = 0
costante, al quale corrisponde v = v = v dipendente dal tempo. Questo
corrisponde ad avere una coppia di attuazione di equilibrio v = mv = 0 e
quindi una evoluzione per la v pari a:
v = sin v 2 .
(4.14)
Per la stabilizzazione del modello dinamico si applichi la tecnica dellintegratore in backstepping. Si denisca la candidata di Lyapunov estesa:
1
Ve (
q , ) = V(
q) + ( )2 ,
2
(4.15)
V(
q)
g(
q)),
q
(4.16)
con Kb > 0 costante di backstepping da denire in base alle desiderate velocit`a di convergenza per il veicolo. Il calcolo del momento angolare passa
pari a:
attraverso il calcolo della ,
2
= (2 R) sin (
v )2 (( R) sin + cos ) sin (
v )2 +
,
[( R) cos sin
v sin
v + K ](cos
v )
2
(4.17)
v.
sempre denita, anche nel caso in cui 0, dove vale = K (R )
Inne:
V(
q)
g(
q)) = .
(4.18)
q
Sostituendo tutto nella candidata di Lyapunov estesa Ve (
q , ) e facendone la derivata direzionale si ottiene subito:
Lf Ve (
q , ) = ( R) sin
v + cos
v Kb ( )2 + ( )
,
= Kb ( )2 K 2
(4.19)
dalla quale `e possibile notare come si sia ottenuta la stessa derivata direzionale del caso cinamtico con laggiunta del termine di backstepping.
Per una verica pratica dei risultati ottenuti con la teoria di Lyapunov ed
il backstepping, il controllore `e stato implementato e simulato con Simulink.
Come nel caso cinematico, si ssi la costante di guadagno K = 10 e la condizione iniziale q0 = [x0 , y0, 0 , v, ]T = [0, 20, 2 , 10, 0]. In questo caso `e
83
theta:51.4082
theta:14.063
60
40
30
40
20
y:4.2007
y:3.0147
20
10
0
20
10
40
20
60
60
40
20
0
x :39.8888
20
40
30
30
60
20
10
10
20
30
40
x :9.0859
theta:46.1746
40
2000
K = 0.1
b
K = 10
b
1500
30
1000
20
500
Valore
y:6.0811
10
10
500
1000
1500
20
2000
30
2500
30
20
10
0
x :8.5834
10
20
30
40
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
t (sec)
= ,
il problema facendo lipotesi che i controlli calcolati sul modello cinematico
siano il riferimento per il modello dinamico, disaccoppiando il problema.
Il montaggio da eettuare, concettualmente identico a quello riportato in
gura 2.1 ma ottenuto sfruttando il formalismo di Simulink, `e riportato in
gura 4.3.
Osservazione 4.1. Come si pu`
o notare dalla gura 4.3, il modello dinamico
`e completamente disaccoppiato dal relativo cinematico, utilizzato come generatore di riferimenti per le velocit`
a da inseguire. Nella parte dinamica `e stato
implementato il controllore ottenuto con la funzione di Lyapunov Ve (q, ),
q)
g(
q)). Questo implica una diversa convergenza
tranne per il termine V(
q
al luogo geometrico di riferimento, anche se non apprezzabile visivamente.
Questo tipo di controllo `e possibile se si dispone di un sensore in grado di
misurare laccelerazione (simulato nello schema con il blocco derivativo).
85
theta:51.4817
theta:14.0536
40
60
30
40
20
y:3.5205
y:3.3883
20
10
0
20
10
40
60
60
20
40
20
0
x :39.8575
20
40
30
30
60
20
10
10
20
30
40
x :9.3652
theta:47.0259
40
30
20
y:10.0057
10
10
20
30
30
20
10
0
x :1.0398
10
20
30
40
4.4
Trajectory Tracking
e1
vr cos e3 v + e2
e = e2 = vr sin e3 e1 .
(4.20)
e3
r
86
Ke3 2 r
vr cos e3 v + e2
e 1
e 2 vr sin e3 e1
r
e =
e 3 =
v
v
m
Iz
(4.23)
(4.24)
Per la stabilizzazione del modello dinamico si applichi la tecnica dellintegratore in backstepping (la seconda tecnica di compensazione della dinamica
non viene riportata ed `e lasciata al lettore come utile esercizio). Si denisca
la candidata di Lyapunov estesa:
1
1
Ve (e, v, ) = V(e) + (v V (e))2 + ( (e))2 ,
2
2
(4.25)
dove (e) e V (e) rappresentano le leggi di stabilizzazione nel caso cinematico (riportate in (4.22)). Due possibili leggi per le coppie di controllo
a disposizione v e sono:
"
g(e))
v = m(Kbv (v V (e)) + dVdt(e) V(e)
e
,
(4.26)
V(e)
theta error:3.0728e005
theta error:1.9204e007
40
40
30
30
20
10
20
Y error:0.0001879
Y error:3.4175e005
0
10
10
20
30
40
10
50
60
20
70
30
30
20
10
0
10
X error:3.9424e005
20
30
40
70
60
50
40
30
20
10
X error:8.5041e005
10
20
30
40
theta error:0.0021097
200
200
150
150
Y error:5.0089
Y error:3.6434e005
theta error:6.9578e007
100
50
100
50
50
100
X error:6.7556e005
150
200
50
100
X error:4.9231
150
200
invece q0i = [xi0 , y0i , 0i , v, ]T = [0, 20, 2 , 0, 0]T . Si noti come un cambiamento
nel tuning delle costanti di guadagno di backstepping, ssando ad esempio
Kb = 10, porta il sistema ad avere una convergenza verso il riferimento
molto lenta.
Lo studio del controllore e le relative simulazioni pensando ad uno schema
del tipo di gura 4.3 non sono state riportate e si lasciano come utile esercizio
al lettore.
4.5
PointToPoint Motion
= cos v
= 1 sin v
= 1 sin v
= cos v
= sin v
,
= sin v
(4.30)
(4.33)
dove, per semplicit`a, v e sono le coppie di controllo. Il modello dinamico (4.33) necessita della trasformazione v v :
+ v = cos v 2 + v v =
v = v v = v
Il modello dinamico complessivo sar`a dunque:
cos v
sin v
= sin v
v
v
m + cos v 2
Iz
v
+ cos v 2 . (4.34)
m
(4.35)
Per la stabilizzazione del modello dinamico si applichi la tecnica dellintegratore in backstepping. Si denisca la candidata di Lyapunov estesa:
1
1
q ))2 ,
q , v , ) = V(
q) + (v V (
q ))2 + ( (
Ve (
2
2
90
(4.36)
dove (
q ) e V (
q ) rappresentano le leggi di stabilizzazione nel caso cinematico (riportate in (4.32)). Due possibili leggi per le coppie di controllo a
disposizione v e sono:
"
q)
q )) + V (
q ) V(
g1 (
q))
v = m(Kbv (v V (
q
,
(4.37)
V(
q)
q )) + (
q ) q g2 (
q ))
= Iz (Kb ( (
con Kbv > 0 e Kb > 0 costanti di backstepping, rispettivamente per la
velocit`a lineare ed angolare, da denire in base alle desiderate velocit`a di
convergenza per il veicolo. Il calcolo delle coppie angolari v e passa
attraverso il calcolo delle derivate temporali delle rispettive leggi cinematiche
q ), rispettivamente pari a:
q ) e (
di stabilizzazione V (
q ) = sin2 v sin
V (
q ) = 1 2 ((cos2 sin2 ) + 2 2 cos2 sin cos ) .
(
theta:15.7078
theta:3.1416
40
40
30
30
20
10
y:2.8494e012
y:1.8609e030
20
10
10
20
30
10
40
20
20
10
10
x :3.9472e020
20
30
50
50
40
40
30
20
10
0
x :4.1926e008
20
30
40
Coppie v
10
x 10
theta:3.1416
K = 10
bv
Kbv = 100
30
4
20
y:1.0357e031
10
2
10
20
30
0
40
50
50
1
40
30
20
10
0
x :2.906e020
10
20
30
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
t (sec)
sul modello dinamico `e necessario ssare il valore delle costanti di backstepping, mediandole tra velocit`a di inseguimento e spesa per il controllo. Si ssi
perci`o Kbv = 10 e Kb = 100. m = 10 e Iz = 1 sono rispettivamente la massa
ed il momento di inerzia del veicolo. Con le scelte elencate `e possibile ottenere
i risultati riportati in gura 4.6, in alto a sinistra. Nel secondo esempio la
posizione iniziale del veicolo `e q0 = [x0 , y0 , 0 ]T = [30, 20, 0, 0, 1]T (gura 4.6, in alto a destra). Per valutare linuenza della costante di guadagno di
backstepping sulla convergenza del veicolo, nel terzo esempio la costante relativa alla velocit`a di avanzamento `e ssata a Kbv = 100, valore che permette
una convergenza del modello dinamico sul cinematico pi`
u veloce rispetto
al caso precedente. Si ottiene cos` una traiettoria pi`
u regolare rispetto alla spirale ottenuta nellesempio precedente (gura 4.6, in basso a sinistra).
Alzando il valore della costante di guadagno di backstepping si ha un aumento della coppia bv generata, ottenendo per`o un tempo di risposta pi`
u basso
92
93
Capitolo 5
Controllo di Veicoli Mediante
Linearizzazione in Retroazione
5.1
In questo paragrafo richiameremo brevemente la teoria su cui si basa la tecnica della linearizzazione in retroazione (feedback linearization) per poi applicarla nella risoluzione di problemi di controllo cinematico per veicoli di
tipo uniciclo e biciclo.
Tali veicoli rientrano nella classe di sistemi non lineari ani nel controllo
x = f (x) +
m
+
gi(x)ui ;
ui IR
i=1
5.1.1
Sia dato
x = f (x) + g(x)u
y = h(x)
(5.1)
sistema non lineare SISO in forma ane nel controllo avente lorigine come
punto di equilibrio
f (0) = 0
e dove y = h(x) rappresenta la funzione di uscita del sistema non lineare in
esame. Derivando h(x) una prima volta si ottiene
h
h
x =
(f (x) + g(x)u) = Lf h + Lg hu
x
x
dove Lf h e Lg h sono le derivate direzionali della funzione h lungo i campi
vettoriali f (x) e g(x), note come Liebrackets (o Liederivative).
Qualora Lg h = 0 in y non appare lingresso u come in y. Procedendo con
le derivate successive si trova
Lf h
y =
x = L2f h + Lg Lf hu
x
per la derivata seconda. Se Lg Lf h = 0 anchessa non presenta lingresso
u. Procedendo con derivazioni successive se u appare alla derivata generica
k-esima avremo
y =
(k)
(k1)
y (k) = Lf h + Lg Lf
(r1)
hu con Lg Lf
h(x = 0) = 0
Diremo allora che il sistema possiede grado relativo r rispetto alla funzione
di uscita h se
(r2)
1. Lg h = Lg Lf h = Lg L2f h = . . . = Lg Lf
un intorno dellorigine x = 0.
(r1)
2. Lg Lf
h = 0 identicamente nulle in
h(x = 0) = 0.
1 (x) = 0
Potendo scegliere una retroazione degli stati sugli ingressi e dunque la posizione dei
95
5.1.2
Linearizzazione input-stati
h(x)
y
z1
z2 y Lf h(x)
z3 y L2f h(x)
z = (x) =
(5.2)
=
=
..
..
..
.
.
.
(n1)
zn
y (n1)
Lf
h(x)
Occorre vericare che il cambiamento di variabili sia ammissibile cio`e che
det
(x)
= 0
x
z1
= z2
..
.
(5.3)
zn1 = zn
(n)
(n1)
zn
= Lf h + Lg Lf
hu = a(x) + b(x)u
con b(x) = 0 in un intorno di x = 0.
Se adesso deniamo la retroazione non lineare
u=
a(x)
1
[a(x) + v] =
+
=
b(x)
b(x) b(x)
(n)
Lf h
(n1)
Lg Lf
h
1
(n1)
Lg Lf
h
0 1 0
0 0 1
0 0 0
0 0 0
= (x) + (x)
... 0
... 0
.. ;
..
. .
... 1
... 0
96
0
0
..
.
B=
0
1
con
(n)
(x) =
Lf h
(n1)
Lg Lf
a(x)
;
b(x)
(x) =
(n1)
Lg Lf
=
h
b(x)
z1
z2
..
.
z =
zn1
zn
0
0
..
.
1
0
..
.
0 ...
1 ...
.. . .
.
.
0 0 0 ...
0 0 0 ...
0
0
..
.
z1
z2
..
.
1 zn1
0
zn
0
0
..
.
+
0
1
= Az + b
5.1.3
Linearizzazione input-output
Nal caso in cui il grado relativo r < n si pu`o ricorrere ad una linearizzazione
input-output (o linearizzazione parziale.
Nella ricerca del cambiamento di variabili z = (x) possiamo scegliere per
le prime r nuove variabili le derivate della funzione di uscita h no allr-esima
come visto prima
z1 = h(x)
z2 = Lf h
z3 = Lg Lf h
..
.
(r1)
zr = Lg Lf
= Lf h = z2
= Lg Lf h = z3
..
.
zr1 = zr
(r)
(r1)
zr
= Lf h + Lg Lf
hu
= a(x) + b(x)u =
Per quanto riguarda le restanti nr variabili possiamo scrivere le seguenti
espressioni generali:
zr+1 = qr+1 (z) + pr+1 (z)u
zr+2 = qr+2 (z) + pr+2 (z)u
..
.
= qn (z) + pn (z)u
zn
Il sistema nelle sue nuove coordinate pu`o essere pertanto scritto nella forma
normale
= A0 + b0
(5.4)
= q(, ) + p(, )u
y = 1 = c0
dove
z1
z2
..
.
Rr1 ;
zr
Rnr1 ;
I
0
zn
0
..
A0 = .
0
0
zr+1
zr+2
..
.
Rrr ;
... 0
0
..
b0 = . Rr1 ;
0
1
c0 = [1 0 . . . 0] R1r ;
con ingresso linearizzante u come prima pari a
u=
a(x)
+
= (x) + (x)
b(x) b(x)
5.1.4
Per semplicit`a studieremo sistemi quadrati, tante uscite quanti sono gli ingressi (m), cio`e
x = f (x) + m
i=1 gi (x)ui
y1 = h1 (x)
(5.5)
..
y = h (x)
m
y1
y 1
..
.
(r )
y1 1
= h1 (x)
= Lf h1 (x)
(r )
(r 1)
(r 1)
h1 (x)um
..
.
..
ym
y m
..
(r )
(r )
(r 1)
(r 1)
(r 1)
(dove almeno una delle Lgi Lf m hm (x) = 0)
Raggruppando le ultime equazioni da ciascuna delle m catene in forma
99
matriciale
(r )
y1 1
..
.
..
.
(rm )
ym
(r )
Lf 1 h1 (x)
..
.
..
.
(rm )
Lf hm (x)
(r 1)
Lg1 Lf 1
(r 1)
. . . Lgm Lf 1 h1 (x)
..
..
..
.
.
.
..
..
..
.
.
.
(rm 1)
(rm 1)
Lg1 Lf
hm (x) . . . Lgm Lf
hm (x)
h1 (x)
u1
..
.
..
.
um
y = (x) + E(x)u
r = (r1 , . . . rm )T
,m
i=1 ri .
11 = 1 = h1 (x)
21 = 2 = Lf h1
..
.
..
.
(r 1)
1
r1 = r1 = Lf 1 h1
12 = r1 +1 = h2 (x)
22 = r1 +2 = Lf h2
..
.
..
.
(r 1)
2
r2 = r1 +r2 = Lf 2 h2
. . . 1m = r1 +...+rm1 +1 = hm (x)
. . . 2m = r1 +...+rm1 +2 = Lf hm
..
..
.
.
..
..
.
.
(r 1)
m
. . . rm = r = Lf m hm
1i = 2i
2i = 3i
..
.
i
= i
,
(con x = 1 (, ))
rii = i = ai (, ) + m
j=1 bij (, )uj
in cui interviene
un ingresso uj
ri 1
ri
= q(, ) + m
i=1 pj (, )uj
y1 = 11
y2 = 12
..
ym = 1m
(5.6)
Come nel caso SISO se il grado relativo totale `e pari alla dimensione
dello spazio di stator = r1 + r2 + + rm = n non esiste zero dinamica e
possiamo linearizzare esattamente il sistema (5.5) attraverso il cambiamento
di variabili = (x). A questo punto non rimane che cercare un vettore di
m funzioni i (x)
1 (x)
..
(x) =
.
m (x)
ed una matrice (x) IRmm di funzioni ii (x)
11 (x) . . . 1m (x)
..
..
..
(x) =
.
.
.
m1 (x) . . . mm (x)
u1
Per far questo imponiamo che il vettore dei nuovi riferimenti sia pari al
vettore y delle derivate di ordine massimo su ciascun canale
(r )
y1 1
.
..
=
.. = y = (x) + E(x)u
.
(r )
ymm
Ricavando lingresso u dalla relazione appena scritta otteniamo
u = E 1 (x)(x) + E 1 (x) = (x) + (x)
con
(x) = E 1 (x)(x);
(x) = E 1 (x);
= A + B
y1 = h1 (x) = 1
y = h (x) =
2
2
r1 +1
y
=
h
(x)
=
3
3
r1 +r2 +1
..
ym = hm (x) = r1 +...+rm1 +1
dove
= [1 , . . . , r1 , r1 +1 , . . . , r1 +r2 , . . . , r1 +...+rm1 +1 , . . . , r=n ]T R1n ;
A = diag(A1 , . . . , Am ) Ai Rri ri ;
B = diag(b1 , . . . , bm ) bi Rri 1 ;
Ai =
0
0
..
.
1
0
..
.
0 ...
1 ...
.. . .
.
.
0 0 0 ...
0 0 0 0
0
0
..
.
1
0
102
bi =
0
0
..
.
1
i = 1, . . . , m
5.1.5
La tecnica descritta nora viene chiamata linearizzazione in retroazione statica per distinguerla dalla linearizzazione in retroazione dinamica. Questultima rappresenta un modo per ottenere un grado relativo quando questo non
`e denito (b(x) = 0 nel caso SISO oppure matrice E(x) non invertibile nel
caso MIMO) per poter cos` procedere con lalgoritmo descritto nei paragra
precedenti.
Con questo metodo `e spesso possibile linearizzare completamente il sistema non lineare e non avere alcuna zero dinamica da studiare. Il prezzo
da pagare per`o `e costituito da un allargamento dello spazio di stato con una
conseguente complicazione dei calcoli.
Lidea alla base di questa tecnica consiste nellintrodurre un ritardo su
uno degli ingressi del sistema in modo da poter proseguire con il calcolo delle
derivate successive delle funzioni di uscita h ed ottenere pertanto luguaglianza tra grado relativo e dimensione dello spazio di stato la cui dimensione per`o
`e aumentata del numero di ritardi inseriti sugli ingressi reali del sistema. Nel
capitolo successivo sar`a fornito un esempio concreto di applicazione di tale
tecnica.
5.2
Uniciclo
Nel seguente paragrafo verr`a arontato il problema del controllo del modello cinematico delluniciclo utilizzando la tecnica della linearizzazione in
103
5.2.1
Path Following
x
2
cos
0
+
gi (q)ui = sin v + 0
(5.7)
q = y =
i=1
0
1
x
cos v
0
q = y = sin v + 0 = f (q) + g(q)u
0
1
(5.8)
1
y
(q) = 2 = sin v
(5.9)
x
Nellequazione (5.9) sono state introdotte le variabili i e la variabile ;
la prime due si riferiscono alla parte linearizzata del sistema, mentre rappresenta la variabile non controllabile delluniciclo appartenente alla zero
dinamica. Utilizzando la notazione matriciale abbiamo la nuova dinamica
per luniciclo nelle nuove coordinate
1 = 2
(5.10)
=
2
= cos v
Lingresso linearizzante risulta quindi
(5.11)
cos v
(si noti come non sia denito se = 2 ).
La linearizzazione in retroazione si concretizza ponendo = k ovvero
retroazionando il nuovo stato sul nuovo ingresso una volta moltiplicato per
degli opportuni coecienti raccolti nel vettore k:
1
= k = k0 k1
(5.12)
= k0 1 k1 2
2
=
Questi ki non sono altro che i coecienti del polinomio che stabilizza la
variabile di stato y = 1 , infatti sapendo che = 2 = 1 abbiamo
= 1 = k0 1 k1 1
1 + k1 1 + k0 1 = 0
[0, 2]
Per avere uscita nulla (y = 0) devessere zero o il che vuol dire che
siamo nella situazione di orientazione corretta per il veicolo. Spostandoci
sullevoluzione della zero dinamica in queste condizioni abbiamo
+v
=0
=
(5.13)
v
=
cio`e luniciclo si muove con velocit`a costante v nella direzione con le x
crescenti o decrescenti a seconda delle condizioni iniziali.
Risultati delle simulazioni
Partendo dal punto iniziale q0 di coordinate [2, 2, /3]T , scegliendo k0 =
6, k1 = 5 (i poli quindi sono reali) ed utilizzando il modello Simulink di
gura 5.2 sono stati ottenuti i risultati mostrati nei graci della gura 5.3.
Figura 5.2: Modello Simulink per il problema del Path Following (sullasse
x) per un uniciclo
107
x
x cos + y sin b sin
q = y = (q) = x sin + y cos b cos
x cos y sin
x
q = y = 1 (q) = x sin + y cos + b
+
Questo cambiamento `e un dieomorsmo globale, cio`e `e invertibile e
regolare con jacobiano a rango pieno su tutto lo spazio di stato.
Nelle nuove coordinate il modello cinematico delluniciclo risulter`a:
cos 0
cos sin 0
(q)
q =
q = sin cos 0 sin 0 u =
q
0
1
0
0
1
x2 + y 2
(5.14)
q = = (q) = arctan( xy ) + 2
y
arctan( x )
con cambiamento di coordinate inverso
x
cos
q = y = 1 (q) = sin
+ 2
dove indica la distanza del punto di mezzo dellinterasse delluniciclo dallorigine, `e lo scostamento dellorientazione del veicolo rispetto alla tangente
alla circonferenza in quel punto e `e una terza coordinata indipendente dalle
altre due.
Da notare come il dieomorsmo (q) non sia globale perche non denito
nellorigine ( = 0). Tuttavia ci`o non costituisce un problema purche non si
intersechi tale punto.
Il modello dellunicilo nel nuovo sistema di coordinate risulta
v sin
0
v sin
0
v
q = = cos + 1 = v cos + 1 =
v
cos
0
v cos
0
109
= f (q) + g(q)u
dove per comodit`a si `e posto v =
v . Ci`o `e possibile a patto di rimanere
distanti dallorigine dove sappiamo non essere denito il dieomorsmo (q).
Si noti come prima v e poi v siano nel vettore di deriva f (q) avendo
considerato come nel caso precedente la velocit`a di avanzamento del veicolo
costante, rendendola di fatto un parametro del modello stesso. Adesso non
resta che applicare la linearizzazione in retroazione.
Il luogo geometrico dei punti sul quale vorremmo stabilizzare luniciclo
`e individuato da = R e = 0, pertanto dovendo cercare una funzione di
uscita h(q) una possibile scelta potrebbe essere h(q) = R.
Procedendo con le derivazioni successive troviamo:
h(q) = R = 1
= v sin = 2 = 1
h(q)
= v sin + v cos =
h(q)
=
v2 sin2 + v cos (
v cos ) =
2
= v v cos =
dove si `e indicato con il nuovo ingresso. Come nel caso precedente la
linearizzazione non `e completa in quanto il grado relativo `e r = 2, quindi per
avere un cambiamento di coordinate (q) di dimensione 3 occorre denire
una terza coordinata . Una scelta possibile `e = .
In denitiva abbiamo
R
1
(q) = 2 = v sin
1 = 2
=
2
= v cos
con retroazione linearizzante
=
cos v cos
1 + k1 1 + k0 1 = 0
[0, 2]
= = v cos =
v
R
=
vt
= t
R
valida in caso di moto circolare uniforme (a
in virt`
u della relazione = Rv
regime R e quindi v = Rv ).
Luniciclo pertanto si muove sul luogo geometrico desiderato.
Risultati delle simulazioni
5.2.2
Trajectory Tracking
h2 (q) = y;
Siamo pertanto nel caso MIMO; il passo successivo consiste nel calcolare il
grado relativo tramite la derivazione ripetuta delle hi no alla comparsa di
uno dei due ingressi:
z1 = h1 (q) = x
z2 = h2 (q) = y
z1 = cos v
z2 = sin v
Apparentemente il grado relativo totale sembrerebbe essere r = 1+1 = 2;
in realt`a non `e denito perche controllando la matrice E(q)
1
z1
cos 0
v
=
=
=
= E(q)u
2
z2
sin 0
./
0
E(q)
112
3 = y
3 = sin v
= sin v + cos v
3
= sin + cos v
1 = x
1 = cos v
= cos v sin v
1
= cos sin v
1
= =
= E(q)u
=
2
sin
cos v
3
con v = 0 la matrice E(q) `e non singolare, il grado relativo `e denito e risulta
r = 2 + 2 = 4 = 3 + 1 = n. Possiamo procedere con la linearizzazione esatta.
Il cambiamento di coordinate
1
x
2 cos v
= (q) =
3 = y
4
sin v
`e ammissibile (con v = 0) e la retroazione linearizzante `e
cos
sin
1
1
=
u = E (q) =
sin /v cos /v
2
113
(5.17)
Non rimane che costruire le retroazioni dei nuovi stati i sui nuovi ingressi
i e posizionare i poli a nostro piacimento in modo da annullare lerrore e
denito dallequazione (5.15). In denitiva possiamo scrivere:
1 = 1 = xr + 1 x r + 0 xr + =
= xr + 1 x r + 0 xr +
0 1
./
= xr + 1 x r + 0 xr 0 1 1 2 =
= xr 1 (1 x r ) 0 (1 xr )
1
2
=
0 0
0 3
4
( x ) + ( x ) + ( x ) = 0
- 1 ./ r0 1 - 1 ./ r0 0 - 1 ./ r0
ex
e x
(5.18)
ex
0 0 o
./
= yr + 1 y r + 0 yr 0 3 1 4 =
= yr 1 (3 y r ) 0 (3 yr )
1
2
=
1
0 3
4
( y ) + ( y ) + ( y ) = 0
- 3 ./ r0 1 - 3 ./ r0 0 - 3 ./ r0
ey
e y
(5.19)
ey
115
(a)
(b)
116
(c)
(d)
(e)
Figura 5.3: Andamento delluniciclo nel piano XY (a) e delle variabili x (b),
y (c), (d) e (e) nel tempo.
117
(a)
(b)
118
(c)
(d)
(e)
Figura 5.4: Andamento delluniciclo nel piano XY (a) e delle variabili x (b),
y (c), (d) e (e) nel tempo nel caso di punto iniziale distante.
119
Figura 5.5: Modello Simulink per il problema del Path Following (su una
circonferenza) per un uniciclo
120
(a)
(b)
121
(c)
(d)
(e)
Figura 5.6: Andamento delluniciclo nel piano XY (a) e delle variabili (b),
(c), (d) e (e) nel tempo
122
(a)
(b)
123
(c)
(d)
(e)
Figura 5.7: Andamento delluniciclo nel piano XY (a) e delle variabili (b),
(c), (d) e (e) nel tempo nel caso di punto iniziale distante.
124
(a)
125
(b)
Figura 5.8: Modelli Simulink per il problema del Trajectory Tracking: (a)
anello di controllo, (b) uniciclo di riferimento.
126
(a)
(b)
127
(c)
(d)
Figura 5.9: Andamenti nel tempo degli errori per ciascuna variabile di stato,
ex = x xr (a), ey = y yr (b), e = r (c), e andamento nel piano XY
dei due unicicli (d).
128
(a)
(b)
Figura 5.10: Andamento nel piano XY dei due unicicli in caso di un solo
ingresso sinusoidale (a) o entrambi (b).
129
5.3
Biciclo
5.3.1
Path Following
x p
cos
y p sin
= 1
v +
q =
tan
L
0
0
0
0
1
(5.20)
1 = h(q) = y
1 = sin v
2
1 = cos = vL cos tan
2
(3)
3
2
= a(q) + b(q)u =
Lingresso compare nella derivata terza di h(q), quindi il grado relativo del sistema `e r = 3. Dato che n = 4, abbiamo che r < n e occorre una
variabile indipendente per avere un cambiemento di variabili z = (q) completo; per questo motivo abbiamo perci`o una zero dinamica (linearizzazione
parziale, input-output).
130
1
y
1
2 1
sin v
z = (, ) = (q) =
3 = 1 = v2 cos tan
L
1 = 2
2 = 3
(5.21)
3
= cos v
e la retroazione linearizzante risulta
(3)
1 = a(q) + b(q)u =
131
v 3 sin tan2 L
L
+ 2
=
2
2
2
L v cos (1 + tan ) v cos (1 + tan2 )
v tan tan2
L
=
+
2
(1 + tan )L v cos (1 + tan2 )
1
T
(3)
2 =
1 = = k T = k0 k1 k2
3
= k0 1 k1 2 k2 3 =
= k0 1 k1 1 k2 1
(3)
1 + k2 1 + k1 1 + k0 1 = 0
2 = 1 = sin v = 0 = 0,
[0, 2]
v2
v2
cos tan = 0
tan = 0 = 0, [0, 2]
L
L
Per tali valori di e levoluzione della varibile `e
+v
=0
= x = x = cos v
v
=
quindi in questa situazione il biciclo si trova esattamente sullasse x (y = 0,
= 0 o , = 0 o ) con velocit`a v a seconda della condizione iniziale.
3 = 2 =
132
Figura 5.12: Modello Simulink per il problema del Path Following (sullasse
x) per un biciclo.
(a)
(b)
134
(c)
(d)
135
x2 + y 2
y
= (q) = arctan( x ) y +
q=
arctan( x )
(5.22)
x
cos
y
sin
q=
= (q) = +
2
Ancora una volta tale cambiamento di coordinate non `e denito nellorigine ( = 0).
Nel nuovo sistema il modello cinematico del biciclo `e
0
sin
(q)
cos L tan
0
q =
v
+
(5.23)
q =
=
0
cos
q
0
1
h(q) = R = 1
= sin
v = 2
h(q)
2 2
2
h(q) =
v Lv cos tan = 3
2 3
2
h(3) (q) =
v 3 sin Lv2 sin tan2 Lv cos (1 + tan2 ) =
= a(q) + b(q)u =
con al solito nuovo ingresso.
Tuttavia notiamo come lingresso compaia nella derivata terza di h(q)
pertanto il grado relativo del sistema `e r = 3. Per avere un cambiamento
136
1
R
1
2 1
sin
v
z = (, ) = (q) =
2 v2
2
3 = 1 =
v L cos tan
1 = 2
2 = 3
(5.24)
3 =
= cos
v
con retroazione linearizzante
(3)
h(3) (q) = 3 = 1 = a(q) + b(q)u =
vL sin
v sin tan2
L
2
2
2
cos (1 + tan ) L cos (1 + tan )
v cos (1 + tan2 )
1
T
(3)
2 =
1 = = k T = k0 k1 k2
3
= k0 1 k1 2 k2 3 =
= k0 1 k1 1 k2 1
(3)
1 + k2 1 + k1 1 + k0 1 = 0
=R
v = R sin
v = 0 = 0,
2 = 1 = sin
[0, 2]
v2
R
v2
v2
cos tan = 0 R
v2
tan = 0
3 = 2 =
L
L
L
L
= arctan
R
R
Per tali valori di levoluzione della variabile (indipendente da ) `e
+
v
=0
= = cos
v
v
=
tan =
==
+
vt = + vt
R
v t = vt
R
=0
=
5.3.2
Trajectory Tracking
x post
0
cos
0
ypost sin
(5.26)
q =
= 1 tan v + 0
L
0
1
h 2 (q) = sin v
h2 (q) = ypost ;
h 1 (q)
h 2 (q)
cos 0
v
=
= E(q)u
sin 0
./
0
E(q)
Per superare questo inconveniente utilizziamo la tecnica della linearizzazione in retroazione dinamica. Inseriamo un primo ritardo sullingresso v
denendo a = v. Notiamo infatti che con la scelta fatta per le funzioni di
uscita, nelle derivate prime compare solo lingresso v e non .
Se adesso deriviamo le hi (q) otteniamo:
h2 (q) = y
h1 (q) = x
h1 (q) = cos v
h 2 (q) = sin v
2
2 (q) = a sin + v2 cos tan
h1 (q) = a cos vL sin tan
h
L
e visto che lingresso non compare ancora, inserendo un secondo ritardo
sullingresso v ovvero a = b possiamo eettuare una terza operazione di
derivazione sulle funzioni di uscita arrivando cos` a
3va
v2 v
(3)
2
2
h1 (q) = b cos
sin tan
cos tan + sin (1 + tan )
L
L L
(3)
h2 (q)
v2
3va
v
2
2
cos tan +
= b sin +
sin tan + cos (1 + tan )
L
L
L
3
2
sin tan Lv 2 cos tan2
cos vL sin (1 + tan2 )
b
3va
L
+
3va
v3
v2
2
2
sin
cos tan L2 sin tan
cos (1 + tan )
L
L
= (q) + E(q)u
Essendo detE =
1 + tan2 se v = 0 la matrice E non `e invertibile
e non esiste grado relativo r. Se queste condizioni non sono vericate allora
E 1 esiste ed r = 3 + 3 = 6 = 4 + 2 = n + 2. La linearizzazione `e esatta
(input-stati ) e 1 e 2 sono i nuovi ingressi.
Avendo allargato lo spazio di stato con linserimento dei due ritardi
sullingresso v ([x, y, , , v, a]T ) il modello cinematico del biciclo `e il seguente
x
v cos
0
0
y v sin 0
0
v
tan 0
L
+ b + 0
q =
(5.27)
=
1
0
0
v
0
0
a
0
1
0
a
v2
L
140
Il cambiamento di variabili
= (q) =
1
2
3
4
5
6
h1 (q)
h 1 (q)
1 (q)
h
h2 (q)
h 2 (q)
2 (q)
h
x
v cos
2
a cos vL sin tan
y
v sin
2
a sin + vL cos tan
= u = E 1 (q)(q) + E 1 (q) =
) 3
*
v
2
cos 1 + sin 2
tan
2
L
=
+
L sin
L cos
3 tan a
v2 (1+tan
v(1+tan
2 ) 1 + v 2 (1+tan 2 ) 2
2 )
(si noti come per v = 0 il controllo diverga). Non resta che costruire le
le retroazioni degli stati i sui nuovi ingressi i posizionando i poli a nostro
piacimento in modo da annullare lerrore denito dallequazione (5.25):
(3)
1 = 1
(3)
= xr + 2 xr + 1 x r + 0 xr + =
(3)
= xr + 2 xr + 1 x r + 0 xr +
0 1 2
./
0 0 0
0
(3)
= xr + 2 xr + 1 x r + 0 xr 0 1 1 2 2 3 =
(3)
= xr 2 (1 xr ) 1 (1 x r ) 0 (1 xr )
(3)
) + ( x ) + ( x ) + ( x ) = 0
(1 x(3)
./ r 0 2 - 1 ./ r0 1 - 1 ./ r0 0 - 1 ./ r0
(3)
ex
ex
e x
141
ex
1
2
3
4
5
6
2 = 4
(3)
= yr + 2 yr + 1 yr + 0 yr + =
(3)
= yr + 2 yr + 1 yr + 0 yr +
0 0 0 0 1
./
(3)
2
0
1
2
3
4
5
6
= yr + 2 yr + 1 yr + 0 yr 0 4 1 5 2 6 =
(3)
= yr 2 (4 yr ) 1 (4 yr ) 0 (4 yr )
(3)
(4 yr(3) ) +2 (4 yr ) +1 (4 y r ) +0 (4 yr ) = 0
./
0
- ./ 0
- ./ 0
- ./ 0
ey
(3)
ey
(3)
e y
ey
(3)
yr (t) = R sin t
dove `e la pulsazione di rotazione. Dal modello cinematico del biciclo si riu precisamente
cava il valore degli ingressi del biciclo di riferimento vr e r ; pi`
!
x r = R sin t = cos r vr
vr = x 2r + y r2 = R
yr = +R cos t = sin r vr
sin r vr
R cos t
yr
= cot t
=
= tan r =
x r
cos r vr
R sin t
142
r = arctan cot t
r = (1 + cot2 t)
1
=
(1 + cot2 t)
R
tan r
r = =
L
r = arctan
L
R
r = r = 0
143
(e)
(f)
Figura 5.13: Andamento del biciclo nel piano XY (a) e delle variabili x (b),
y (c), (d), (f) e (e) nel tempo.
144
(a)
(b)
145
(c)
(d)
146
(e)
(f)
Figura 5.14: Andamento del biciclo nel piano XY (a) e delle variabili x (b),
y (c), (d), (e) e (f) nel tempo partendo da un punto iniziale distante.
147
(a)
(b)
148
(c)
(d)
149
(e)
(f)
Figura 5.15: Andamento del biciclo nel piano XY (a) e delle variabili (b),
(c), (d), (e) e (f).
150
(a)
(b)
151
(c)
(d)
152
(e)
(f)
Figura 5.16: Andamento del biciclo nel piano XY (a) e delle variabili (b),
(c), (d), (e) e (f).
153
(a)
(b)
Figura 5.17: Modelli Simulink per il problema del Trajectory Tracking: (a)
anello di controllo con biciclo inseguitore e (b) biciclo di riferimento.
154
(a)
(b)
155
(c)
(d)
156
(e)
(f)
157
(g)
(h)
Figura 5.18: Andamento del biciclo nel piano XY (a), degli errori ex = xxr
(b), ey = y yr (c), e = r (d), e = r (e), delle variabili v e a e
del controllo (h).
158