Lucherini, Luca - Università degli Studi di Siena

Università degli Studi di Siena
Facoltà di Ingegneria
Corso di Laurea specialistica in Ingegneria Informatica
Inseguimento ciclico di sistemi multi robot
con vincoli di connettività.
Relatore
Prof. Domenico Prattichizzo
Correlatore
Ing. Fabio Morbidi
Tesi di laurea di
Luca Lucherini
A. A. 2007/2008
2
Indice
1 Introduzione
1.0.1 Struttura della tesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 Controllo di una squadra di robot . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Invarianza controllata decentralizzata
2.1 Introduzione all’approccio geometrico e definizioni
2.1.1 Note sull’algebra dei sottospazi . . . . . . .
2.2 Il problema dell’invarianza decentralizzata . . . . .
2.3 L’approccio geometrico . . . . . . . . . . . . . . . .
2.4 L’approccio algebrico . . . . . . . . . . . . . . . . .
2.4.1 Caso con soluzione non unica . . . . . . . .
2.4.2 Studio di stabilità della Friend Matrix . . .
3 Controllo decentralizzato in retroazione
3.1 Consensus . . . . . . . . . . . . . . . . . . . . . .
3.2 Sistema multi-agente: Inseguimento ciclico . . . .
3.2.1 Controllo retroazionato per mantenimento
3.2.2 Modifiche al problema di ottimizzazione .
3.3 Risultati delle simulazioni e scelte progettuali . .
3.3.1 Strumenti per le simulazioni . . . . . . . .
3.3.2 Risultati del problema di ottimizzazione .
3.3.3 Definizione dei parametri liberi c e d . . .
3.4 Conclusioni . . . . . . . . . . . . . . . . . . . . .
3
5
6
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
9
9
11
11
13
14
14
. . . . . . . . .
. . . . . . . . .
di connettività
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
19
25
29
31
31
35
37
41
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
INDICE
Ringraziamenti
Durante il periodo in cui ho lavorato su questo progetto molte sono le persone che in svariati
modi mi hanno aiutato, alcune coscientemente, altre senza saperlo, un ringraziamento va
quindi a tutti coloro che mi hanno sostenuto in un modo o nell’altro.
In particolare vorrei ringraziare il Prof. Domenico Prattichizzo per avermi dato la possibilità di lavorare su questo progetto e l’Ing. Fabio Morbidi che mi ha aiutato durante una
consistente parte del mio lavoro. Senza queste due persone la realizzazione del qui presente
lavoro non sarebbe stata possibile.
Ultimi, ma più importanti di tutti, ringrazio i miei genitori che mi hanno permesso di
raggiungere questo obiettivo, credendo sempre nelle mie potenzialità e sostenendomi durante
tutti gli anni del mio corso di studi. Senza di loro non sarei potuto arrivare dove sono, grazie.
Capitolo 1
Introduzione
Negli ultimi anni abbiamo testimoniato un crescente interesse nella coordinazione e nel controllo dei sistemi multi agente. La ricerca in quest’area è stata stimolata dalle recenti migliorie
tecnologiche introdotte nell’ambito delle comunicazioni wireless e dalla constatazione che una
squadra di agenti può svolgere delle operazioni in maniera più efficace ed affidabile rispetto
ad un singolo robot. In particolare gli algoritmi di consenso hanno ricevuto una notevole
attenzione in questo campo. I Consensus problems hanno una lunga storia nell’informatica e
vanno di fatto a formare quello che potremmo chiamare il “fondamento” della computazione
distribuita. Lo studio formale di questi problemi trova le sue origini nel 1960 ad opera di
DeGroot. La sua idea di statistical consensus theory riappare due decenni dopo, in un lavoro
di aggregazione di informazioni con incertezza ottenute da sensori multipli. Lo sviluppo da
allora è stato notevole e distribuito su molti campi tra cui uno dei più noti è senza dubbio la
computazione distribuita su reti.
Negli stessi anni in cui si sviluppavano le prime idee sui problemi di consenso un altro
problema stava venendo intensivamente studiato ovvero la sintesi di regolatori che risultassero
invarianti rispetto ai disturbi. L’impostazione classica dello studio dei controlli invarianti si
basa sulla rappresentazione matematica dei sistemi dinamici mediante matrici di funzioni di
trasferimento e i criteri usualmente impiegati per giudicare della realizzabilità dell’invarianza
fanno riferimento a particolari proprietà di tali matrici. In accordo alla tendenza del tempo di
abbandonare nello studio dei sistemi dinamici complessi i metodi trasformazionali, che mal si
prestano all’analisi mediante dispositivi di calcolo automatici, si passò all’analisi nello spazio
degli stati ottenendo delle soluzioni al problema basate sull’approccio geometrico ovvero sullo
studio di sottospazi invarianti. Tra i pionieri di questo approccio troviamo Basile e Marro.
In questa tesi verrà preso in considerazione il framework dell’inseguimento ciclico, questo
problema ha già ricevuto una notevole attenzione nella letteratura in particolare nel caso con
dinamiche a singolo integratore. Più precisamente il caso qui presentato è quello di un sistema
multi agente con un comportamento globale coordinato che si basa su una semplice regola
locale. Il vantaggio dell’uso di una struttura di agenti decentralizzata (ovvero senza leader)
sono numerosi.
Nella letteratura preesistente la comunicazione tra i veicoli è sempre considerata possibile.
Questo però non è sempre vero in quanto i robot reali hanno un raggio di connettività limitato dovuto alle tecniche di propagazione del segnale. Si cercherà quindi una soluzione per
mantenere i veicoli sempre connessi, questa sarà attuata sottoponendo il sistema a limitazioni
sul controllo e sullo stato. La determinazione di un controllore che rispetti queste limitazioni
5
6
CAPITOLO 1. INTRODUZIONE
è in genere risolta risolvendo un problema di controllo non vincolato associato al sistema e
poi modificandone la soluzione affinchè i vincoli su stato e controllo vengano soddisfatti. Genericamente queste modifiche consistono nella saturazione del vettore di controllo, risultando
però in un sistema ad anello chiuso la cui stabilità non è sempre garantita. Degli approcci
più efficienti per la soluzione del problema in questione sono basati sulle proprietà degli insiemi positively invariant. Si definirà quindi un controllo in anello chiuso che mantenga la
connessione tra i veicoli sfruttando la teoria sugli invarianti.
Verrà inoltre analizzata la retroazione di un sistema e si cercherà di vincolare i controlli in
retroazione a dipendere da elementi specifici del vettore di stato. Per risolvere questo problema
si sfruttano elementi dalla teoria sugli invarianti, verrà introdotto il concetto di invarianza
controllata decentralizzata per sostituire un controllo centralizzato. Verranno analizzate due
soluzioni a questo problema, una geometrica ed una algebrica.
1.0.1
Struttura della tesi
La tesi è divisa in due parti principali:
• Nella prima parte viene trattato il problema dell’invarianza controllata decentralizzata
facendo un richiamo sulla teoria degli invarianti e passando poi a descrivere i due approcci
studiati per la soluzione del problema. Viene poi analizzato il sistema in retroazione
andando a vedere se questo è stabile.
• Nella seconda parte viene introdotto il problema del consenso ed il framework di lavoro.
Una volta mostrati i comportamenti ad anello aperto del sistema viene introdotto il
problema della comunicazione a raggio limitato. Si illustrano i vincoli che il sistema deve
rispettare e si và a definire il controllo in retroazione sfruttando la teoria sugli insiemi
positively invariant. Vengono poi mostrati i risultati delle simulazioni sul sistema ad
anello chiuso e si mostra come varia il comportamento del sistema al variare di alcuni
parametri.
1.1
Controllo di una squadra di robot
Parlando di robot la prima cosa che ci viene in mente sono senza dubbio quelle macchine con
sembianze umanoidi e volontà proprie a cui l’immaginario comune ci ha abituato a pensare.
Nonostante la realtà sia ancora distante da questa idea i progressi fatti negli ultimi anni sono
notevoli. Tra i tipi di robot attualmente impiegati nella ricerca troviamo:
• swarm robots;
• haptic interface robots;
• soft robot ed altri.
Il punto chiave nell’utilizzo di questi dispositivi è il loro controllo. Questo può essere attuato
su un solo robot oppure su una squadra di robot. Tra gli ambiti di ricerca che coinvolgono
squadre di robot troviamo:
• esplorazione di ambienti,
• pianificazione di percorsi,
1.1. CONTROLLO DI UNA SQUADRA DI ROBOT
7
• giochi di squadra.
Prendiamo ad esempio l’esplorazione di ambienti, il nostro controllo in questo caso sarà un
controllo di formazione. Con questo termine intendiamo il problema di controllare la posizione relativa e l’orientamento dei robot in un gruppo, permettendo al gruppo di muoversi in
formazione. Un approccio possibile per questo problema può essere quello del leader-follower,
in questo caso un robot della formazione, il leader, si muove seguendo una traiettoria predefinita, mentre gli altri robot, gli inseguitori (o follower), mantengono una postura desiderata
(distanza ed orientamento) dal leader. Il maggiore problema di questo approccio risiede nel
fatto che il ruolo del leader è essenziale per la formazione e questo và quindi ad influenzare
l’affidabilità del sistema. Va però detto che l’approccio presenta una particolare flessibilità e
modularità, particolarmente gradite nel caso in cui nuovi follower si uniscono alla formazione.
Questo tipo di approccio presenta una struttura degli agenti definita struttura centralizzata.
Nella prossima sezione useremo l’approccio geometrico per passare ad una struttura decentralizzata. I vantaggi che si ottengono sfruttando questo tipo di struttura sono molteplici:
• il sistema fornisce robustezza al fallimento di singoli agenti;
• il sistema fornisce maggiore modularità e flessibilità di una struttura tipica;
• la reattività e l’affidabilità del sistema sono maggiori.
8
CAPITOLO 1. INTRODUZIONE
Capitolo 2
Invarianza controllata decentralizzata
2.1
Introduzione all’approccio geometrico e definizioni
L’essenza dell’approccio geometrico consiste nello sviluppo di un supporto matematico in una
forma libera da coordinate, per poter così sfruttare risultati semplici ed eleganti, che facilitano
una comprensione del significato di istruzioni e procedure. L’elemento principale di questo
approccio è il concetto di invarianza di un sottospazio rispetto ad una trasformazione lineare.
2.1.1
Note sull’algebra dei sottospazi
Ci si riferirà di seguito a sottospazi X, Y, Z degli spazi vettoriali a dimensioni finite con prodotto interno Rn , Rm (C n , C m ) e si indicherà con A sia una matrice m × n reale (complessa)
sia la corrispondente trasformazione lineare da Rn a Rm (da C n a C m ). Le operazioni base
sui sottospazi sono:
1. Somma:
Z = X + Y = {z : z = x + y, x ∈ X, y ∈ Y }
(2.1)
2. Trasformazione lineare:
Y = AX = {y : y = Ax, x ∈ X}
(2.2)
3. Complementazione ortogonale:
Y = X ⊥ = {y : hy, xi = 0, x ∈ X}
(2.3)
Z = X ∩ Y = {z : z ∈ X, z ∈ Y }
(2.4)
4. Intersezione
5. Trasformazione lineare inversa
X = A−1 Y = {x : y = Ax, y ∈ Y }
(2.5)
Consideriamo adesso il seguente sistema lineare stazionario:
x(t)
˙
= Ax(t) + Bu(t)
(2.6)
y(t) = Cx(t)
(2.7)
9
10
CAPITOLO 2. INVARIANZA CONTROLLATA DECENTRALIZZATA
in cui u ∈ Rp , y ∈ Rq , x ∈ X = Rn e A, B, C indicano matrici reali di dimensioni opportune.
Nell’applicazione dell’approccio geometrico allo studio della struttura dei sistemi lineari stazionari risulta fondamentale poter stabilire se esistono traiettorie appartenenti a dati sottoinsiemi
dello spazio degli stati, specificatamente a sottospazi.
Lemma 1 (lemma fondamentale dell’approccio geometrico) Condizione necessaria e
sufficiente affinchè una generica traiettoria x|[t0 ,t1 ] del sistema 2.6 appartenga ad un dato
sottospazio L ⊆ X è che sia x(t)
˙
∈ L quasi ovunque in [t0 , t1 ]
Introduco adesso la definizione di sottospazio invariante.
Definizione 1 Sia V uno spazio vettoriale e A : V → V una funzione lineare. Un sottospazio
X ⊆ V si dice invariante in A o A-invariante se:
AX ⊆ X
Si consideri il sistema libero
x(t)
˙
= Ax(t)
(2.8)
vale la seguente proprietà.
Proprietà 1 Un sottospazio L ⊆ X è luogo di traiettorie del sistema 2.8 se e solo se è
invariante in A.
Il concetto di invariante risulta essenziale in rapporto alla controllabilità e osservabilità del
sistema a 3 mappe (2.6, 2.7). Con riferimento a questo sistema si indicano con Rt+1 (x) e Rt−1 (x)
rispettivamente gli insiemi degli stati raggiungibili dallo stato x nell’intervallo [0, t1 ] e degli
stati controllabili allo stato x nello stesso intervallo. Si indicano invece con ε−
t1 (u(·), y(·)) e
ε+
(u(·),
y(·))
rispettivamente
gli
insiemi
degli
stati
iniziali
e
finali
compatibili
con
la funzione
t1
di ingresso u(·) e quella di uscita y(·) nell’intervallo [0, t1 ] detti anche insieme degli stati
inosservabili e degli stati non ricostruibili in [0, t1 ] in relazione alle date funzioni di ingresso e
di uscita. Si citano adesso le seguenti proprietà:
Proprietà 2 Nel caso di sistemi lineari stazionari continui il sottospazio Rt+1 (0), degli stati
raggiungibili dall’origine nell’intervallo [0, t1 ] con t1 > 0, è min I(A, B), il minimo invariante
in A contenente il sottospazio delle azioni forzanti B.
Proprietà 3 Nel caso dei sistemi lineari stazionari continui il sottospazio ε−
t1 (0, 0), degli stati
inosservabili nell’intervallo [0, t1 ] con t1 > 0, è max I(A, C), il massimo invariante in A
contenuto nel sottospazio degli stati inaccessibili C.
Quanto finora visto è valido in assenza di controllo, nel caso in cui quest’ultimo sia presente
possiamo introdurre il concetto di invariante controllato.
Definizione 2 Dati una trasformazione lineare A : X → X e un sottospazio B ⊆ X, un
sottospazio V ⊆ X si dice invariante controllato in (A, B) se vale la relazione
AV ⊆ V + B
Si vuole adesso vedere qual’è il collegamento tra gli invarianti controllati ed i sistemi dinamici,
ci viene in aiuto la seguente proprietà:
2.2. IL PROBLEMA DELL’INVARIANZA DECENTRALIZZATA
11
Proprietà 4 Un sottospazio V ⊆ X è luogo di traiettorie del sistema 2.6 se e solo se è
invariante controllato in (A, B)
Citiamo adesso il seguente teorema
Teorema 1 Un sottospazio V ⊆ X è invariante controllato in (A, B) se e solo se esiste una
matrice F tale che (A + BF )V ⊆ V.
La F sopra definita è chiamata Friend Matrix. Sfruttando la F si ha che u = F x e quindi la
2.6 diventa:
x(t)
˙
= Ax(t) + BF x(t)
2.2
Il problema dell’invarianza decentralizzata
In genere la matrice F dipende da uno o più degli elementi del vettore di stato, noi vorremmo
vincolare F ad avere dipendenza da elementi precisi del vettore di stato, in modo da poter
decidere su quali elementi del vettore di stato agiscono gli ingressi.
Esempio
Consideriamo il caso in cui il vettore di stato x è composto da quattro elementi x = (x1 x2 x3 x4 )T ,
e la matrice B è tale per cui ho due ingressi. Vorremmo che gli ingressi siano vincolati alle
variabili di x nel modo seguente:
u1 = f unction of (x1 , x2 )
u2 = f unction of (x3 , x4 )
Per avere queste dipendenze la Friend Matrix deve avere la seguente struttura:


x1
 x2 
F1,1 F1,2
0
0
u1


=
u2
0
0
F2,1 F2,2  x3 
x4
Sono stati analizzati due metodi per ottenere il risultato desiderato:
• Approccio geometrico;
• Approccio algebrico.
2.3
L’approccio geometrico
In questo approccio si cerca di raggiungere il risultato della decentralizzazione sfruttando le
nozioni teoriche sui sottospazi invarianti. Introduco la notazione che useró in seguito applicata
al caso con vettore di stato a quattro elementi.
x1
x3
x2 =
x1 =
x2
x4
x1 (k + 1)
A11 A12
x1 (k)
B1
u1 (k)
=
+
x2 (k + 1)
x2 (k)
B2
A21 A22
u2 (k)
12
CAPITOLO 2. INVARIANZA CONTROLLATA DECENTRALIZZATA
In questo caso tutte le Aij sono matrici 2*2, cosí come B1 e B2 . Divido inoltre in due parti
di uguale dimensione il sottospazio invariante:
V1
V=
V2
Sfruttando questa notazione posso riscrivere la definizione di sottospazio invariante controllato
come segue:
A11 V1 + A12 V2 ⊆ V1 + B1
A21 V1 + A22 V2 ⊆ V2 + B2
(2.9)
(2.10)
Scrivo adesso delle condizioni, solo sufficienti, che soddisfano 2.9 e 2.10:
A11 V1 ⊆ V1 + B1
A12 V2 ⊆ V1 + B1
⇓
A11 V1 + A12 V2 ⊆ V1 + B1
A21 V1 ⊆ V2 + B2
A22 V2 ⊆ V2 + B2
⇓
A21 V1 + A22 V2 ⊆ V2 + B2
Riscrivendo in forma matriciale le precedenti equazioni ottengo:
B1
V1
A11
0
V1
+
⊆
B2
V2
V2
0 A22
B1
V1
0 A12
V1
+
⊆
B2
V2
A21
0
V2
(2.11)
(2.12)
Per ottenere la F con la struttura desiderata modifico l’equazione 2.12 nel seguente modo,
inserendo così un ulteriore vincolo di conservatività:
0 A12
V1
V1
⊆
(2.13)
A21
0
V2
V2
Con questa modifica vado a chiedere che il sottospazio sia invariante semplice, chiedo quindi
che non ci sia bisogno del controllo per rimanervi. Se questo è vero allora la F può essere nulla
dove desiderato. Un metodo per trovare il sottospazio per cui valgono le equazioni 2.11, 2.13
è il seguente:
%Definisco le matrici...
A=[1 2 1 1; 4 0 -1 0; 0 0 1 0; 0 0 1 1]
B=[1 1 0 0;0 0 1 1]’
E=[1 0 0 0; 0 0 1 0]
Adiag=[A(1:2,1:2) zeros(2,2);zeros(2,2) A(3:4,3:4)]
Aandi=[zeros(2,2) A(1:2,3:4);A(3:4,1:2) zeros(2,2)]
Q1=robcoin([Adiag Aandi],[B zeros(size(B))], [E E])
13
2.4. L’APPROCCIO ALGEBRICO
Una volta trovato il più grande sottospazio che verifica le equazioni si calcola su questo la
Friend Matrix sfruttando la seguente istruzione Matlab:
F=effe(A,B,Q1)
La matrice così trovata dovrebbe essere decentralizzata e verificare quindi le seguenti:
A11 A12
B1
F1 0
+
= A + BF
A21 A22
B2
0 F2
A11 + B1 F1
A12
V1
V1
⊆
A21
A22 + B2 F2
V2
V2
2.4
L’approccio algebrico
Si affronterà adesso lo stesso problema con un nuovo approccio che in qualche modo è “meno”
geometrico e più algebrico. Riprendendo la definizione di invariante controllato è possibile
vedere che:
AV ⊆ V + B
(2.14)
X
AV = V B
(2.15)
U
X
Se il ker[V B] = 0 allora esiste un’unica
che risolve 2.15. Esplicitando rispetto a
U
X
ottengo:
U
#
X
= V B
AV
(2.16)
U
dove # stá per pseudo-inversa.
Sapendo che:
U = −F x
x∈V
posso scrivere che U = −F V, da cui ricavo che −V T F T = U T . Esiste peró un kernel di V T ,
l’equazione da cui calcolerò F T è quindi la seguente:
F T = −(V T )# U T + ker(V T )γ
(2.17)
A questo punto si vuole vedere se tra le ∞ F ne esiste almeno una con la struttura desiderata.
In 2.17 abbiamo a nostra disposizione un termine libero (γ), il nostro problema è risolvibile
se ∃γ tale per cui le parti indesiderate di −(V T )# U T possono essere azzerate. È immediato
vedere che mentre prima lavoravamo a livello di sottospazio invariante V stavolta lavoriamo
sulla F sfruttando il sottospazio invariante trovato senza vincoli alcuni sfruttando l’istruzione
matlab:
mainco(A,B,ker(E)).
Mostreró adesso con un esempio il procedimento utilizzato nell’algoritmo di soluzione di questo
approccio supponendo di voler trovare una struttura decentralizzata come vista precedentemente.
14
CAPITOLO 2. INVARIANZA CONTROLLATA DECENTRALIZZATA
Esempio
Iniziamo osservando l’equazione 2.17 e vedendo da cosa sono composti i suoi termini, come
nel caso precedente abbiamo un sistema a 2 ingressi u1 ed u2 .
p q
(V T )# U T =
(2.18)
r s
c
T
γ1 γ2
ker(V )γ =
(2.19)
d
Entrambi i termini sopra riportati sono dimensionalmenti uguali ad F T . Osservando 2.18
è facile vedere che per avere la struttura decentralizzata i termini q ed r dovrebbero essere
azzerati. Questo è possibile solo se si verificano le seguenti condizioni:
• d è nello spazio colonna di r
• c è nello spazio colonna di q.
Se queste condizioni sono rispettate allora é possibile trovare degli opportuni moltiplicatori
tali per cui la Friend Matrix assume struttura decentralizzata.
2.4.1
Caso con soluzione non unica
Abbiamo fino a questo momento supposto che ker[V B] fosse nullo nell’equazione
2.15,
se
X
però questa condizione viene a mancare allora non esiste una soluzione unica per
. Per
U
implementare questo nuovo scenario l’equazione 2.16 viene modificata come segue:
#
X
= V B
AV + ker V B ξ
(2.20)
U
La nuova U estratta dall’equazione 2.20 viene quindi sostituita nella formula della Friend
Matrix (equazione 2.17) ottenendo cosí la seguente:
F T = −(V T )# (Upart + Uomog )T + ker(V T )γ
(2.21)
La nostra nuova equazione presenta due gradi di libertà ξ e γ che sfrutteremo ancora una volta
per azzerare i contributi indesiderati di F . L’algoritmo che risolve questo approccio (dove
possibile) sfrutta il Symbolic Math Toolbox. Grazie a questo strumento si calcola una F i cui
termini sono equazioni nelle quali compaiono delle variabili “libere”. Tramite un procedimento
iterativo si vanno a scegliere degli opportuni valori per ξ e γ in modo da azzerare le equazioni
corrispondenti a zero nella F desiderata. L’approccio algebrico presenta genericamente dei
calcoli più complessi se paragonati a quelli a dell’approccio geometrico.
2.4.2
Studio di stabilità della Friend Matrix
Abbiamo fino ad ora imposto dei vincoli solo sulla forma della matrice F, si vuole ora analizzare
le proprietá di stabilitá dell’invariante V. A partire dalla proprietá 6.5.5 riportata su [2] ci
è noto che un invariante controllato V è stabilizzabile sia internamente sia esternamente se e
solo se esiste almeno una matrice reale F tale che sia (A + BF )V ⊆ V con A + BF stabile.
15
2.4. L’APPROCCIO ALGEBRICO
Come ben noto dalla teoria sui sistemi a tempo continuo, un sistema è stabile quando tutti
i suoi autovalori hanno parte reale negativa. Usando l’approccio algebrico otteniamo una F
della forma desiderata con al suo interno uno o più termini liberi. Purtroppo la risoluzione del
calcolo degli autovalori in forma simbolica è genericamente un calcolo computazionalmente
molto complesso. Mostrerò adesso un esempio di quello su cui viene fatto il calcolo degli
autovalori.
Esempio
Supponiamo di lavorare con le seguenti matrici A, B, C.




1 0
1 2 1 1
 1 0 
 2 2 −1 1 
1 1 1 1




C=
B=
A=
0 −1 
1 1 1 1
1 0 0 0 
0 −1
0 0 1 1
Applicando l’approccio algebrico ottengo la seguente F :
−1.16666 + y20 −1.16666 + y20
0
F =
0
0
−0.3333 −
y0
2
0
−0.6666 −
y0
2
Come si vede questa è proprio della forma desiderata, però la presenza di y0 1 rende la computazione degli autovalori di A + BF non solubile dal calcolatore. Oltretutto questo non è
neppure uno dei casi peggiori che si possono presentare.
Alternative al calcolo diretto degli autovalori
Per poter ovviare alla presenza di termini liberi all’interno delle matrici, che risulta in un
problema computazione, si presentano 2 vie principali:
• Cercare di diminuire la complessitá della matrice in questione sfruttando opportuni
artifici matematici.
• Usufruire di opportuni teoremi per verificare le proprietá degli autovalori direttamente
dalla matrice A + B × F
Strada 1
Al fine di semplificare la computazione si cerca di ridurre la complessitá della matrice tramite
artefici matematici. Si può sfruttare ad esempio un cambiamento di base tramite la matrice
T = [V V ⊥ ]. Svolgendo il calcolo:
T −1 × (A + BF ) × T
nel caso in cui ker[V B] = 0 ottengo una matrice la cui prima colonna é composta da zeri,
questo perché c’é un autovalore nell’origine e posso quindi analizzare il blocco di dimensioni
n − 1 × n − 1 rimanente. Andiamo a osservare le modifiche apportate dal cambiamento di
base, possiamo riscrivere il cambiamento di base come segue:
T −1 × (A + BF ) × T ⇒ T −1 × A × T + T −1 × BF × T
1
y0 è il parametro libero a nostra disposizione in questo caso.
16
CAPITOLO 2. INVARIANZA CONTROLLATA DECENTRALIZZATA
Andando ad analizzare la moltiplicazione di F e T, sostituisco ad F l’equazione 2.17 opportunamente trasposta ottenendo cosí:
F = −U ((V T )# )T + γ T (ker(V T ))T γ
(2.22)
Tramite oppurtune considerazioni algebriche si vede che é possibile semplificare come segue:
((V T )# )T × T = [eye(size(V, 2)) zeros(rimanenticolonne)]
(ker(V T ))T × T = [zeros(size(V, 2)) eye(rimanenticolonne)]
Purtroppo questo metodo non porta a semplificazioni degne di nota, si decide quindi di vedere
se esistono teoremi matematici che possano aiutarci nell’analisi.
Strada 2
Tra i teoremi che consentono di analizzare le proprietá degli autovalori di una matrice a partire
dalla sua struttura troviamo il Teorema di Gershgorin. Questo afferma il seguente:
Teorema
P 2 Sia A una matrice di dimensioni n*n, con componenti aij . Per i ∈ {1, ...n} scrivi
Ri = i6=j |aij | dove |aij | é il valore assoluto dell’elemento in questione. Sia D(aii , Ri ) il disco
chiuso centrato in aii e di raggio Ri . Questi dischi sono chiamati Dischi di Gerschgorin.
Teorema 3 (di Gerschgorin) Ogni autovalore di A giace all’interno di almeno uno dei
dischi di Gerschgorin D(aii , Ri ).
Si puó a questo punto fare in modo che le nostre variabili simboliche assumano valori tali per
cui questo teorema é soddisfatto, se questo é possibile la stabilitá dell’invariante V è verificata.
Per soddisfare la nostra condizione sulla stabilità si devono definire i cerchi in modo che siano
interamente nella zona del piano a parte reale negativa. Purtroppo questo teorema presenta
una condizione solamente sufficiente per la stabilitá, puó quindi succedere che i cerchi non
siano interamente nella zona a parte reale negativa, ma che gli autovalori siano comunque
validi per la stabilitá. Questa è purtroppo una forte limitazione all’applicazione di questo
metodo in forma di algoritmo.
Considerazioni
Dovendo valutare i due approcci sopra illustrati possiamo dire che l’approccio algebrico trova
soluzione in un maggior numero di applicazioni, pur essendo meno elegante e compatto rispetto
all’approccio geometrico. Punto saldo nell’analisi dei due approcci è comunque il fatto che i
metodi sono risultati troppo conservativi.
Capitolo 3
Controllo decentralizzato in
retroazione
La decentralizzazione come introdotta precedentemente è principalmente una tematica teorica,
nella realtà il problema sopra introdotto deve essere modificato opportunamente. Il problema
dovrà quindi subire una generalizzazione o più che altro una caratterizzazione. Quest’ultima potrebbe consistere nell’inserimento dei legami tra i robot, o nella definizione dei loro
comportamenti, si vanno quindi ad aggiungere dei vincoli al nostro problema.
Di seguito verrà introdotto il lavoro effettuato per controllare una squadra di robot, questi
erano stati focalizzati su un obiettivo comune, il cui raggiungimento era ottenuto con l’ausilio
di un algoritmo di consenso, che provvedeva alla coordinazione dei loro movimenti.
3.1
Consensus
Nelle reti di agenti “consensus” significa raggiungere un accordo riguardante una certa quantità
di interesse che dipende dallo stato di tutti gli agenti. Un “algoritmo di consenso” (o protocollo)
è una regola di interazione che definisce lo scambio di informazioni tra un agente e tutti i suoi
“vicini” sulla rete.
Per poter lavorare con queste tematiche introduco di seguito alcuni dei concetti necessari.
La topologia di interazione di una rete di agenti è rappresentata usando un grafo direzionato
G = (V, E) in cui V={1, 2,· · · ,n} è il set di nodi ed E ⊆ V × V l’insieme degli archi. I vicini
di un agente sono denotati da Ni = {j ∈ V : (i, j) ∈ E}, sono quindi vicini due agenti i cui
rispettivi nodi sono connessi da un arco orientato da i verso j. Un semplice algoritmo per
raggiungere un accordo riguardante lo stato di n agenti integratori con dinamica x˙i = ui può
essere espresso come un sistema lineare su un grafo
x˙i (t) =
X
j∈Ni
(xj (t) − xi (t)), xi (0) = zi
questo protocollo prende il nome di “average consensus”. La dinamica collettiva del gruppo
di agenti che segue l’algoritmo può essere riscritta come:
x˙ = −Lx
17
18
CAPITOLO 3. CONTROLLO DECENTRALIZZATO IN RETROAZIONE
dove L è il grafo laplaciano della rete ed i suoi elementi sono definiti come:
−1, j ∈ Ni
lij =
|Ni |, j = i
In questa formula |Ni | denota il numero di vicini del nodo i. Vista la definizione
di grafo
P
laplaciano la somma di tutte le righe di L dà zero come risultato visto che j lij = 0. Quindi
il grafo laplaciano ha sempre un autovalore nullo λ1 = 0. Questo autovalore nullo corrisponde
all’autovettore 1=(1, · · · , 1)T perchè 1 appartiene al null-space di L (L1 = 0). Si può quindi
trovare un equilibrio del sistema in uno stato della forma P
x∗ = (α, · · · , α)T = α1 in cui tutti
1
gli agenti concordano. Questo valore di consenso è α = n i zi o in altre parole la media dei
valori iniziali degli agenti.
Se si volessero analizzare delle proprietà di convergenza degli algoritmi di consenso dovremmo sfruttare le proprietà spettrali della matrice laplaciana. In accordo con il teorema di
Gerschgorin, tutti gli autovalori di L nel piano complesso sono situati in dischi chiusi centrati
in ∆ + 0j il cui raggio è ∆ = maxi di . Per grafi non orientati, L è una matrice simmetrica
con autovalori reali, il set di autovalori può essere quindi ordinato in ordine ascendente come:
0 = λ1 ≤ λ2 ≤ · · · ≤ λn ≤ 2∆
Come precedentemente citato l’autovalore nullo è noto come autovalore banale di L. Il secondo
più piccolo autovalore del laplaciano λ2 rappresenta una misura di prestazioni per l’algoritmo
di consenso ed è chiamato “algebraic connectivity” di un grafo.
Altri tipi di algoritmi di consenso
Oltre all’average consensus algorithm in letteratura troviamo molti altri algoritmi come ad
esempio il Weighted-Average Consensus. In questo protocollo viene sfruttato un vettore dei
pesi γ = (γ1 , · · · , γn ) per modificare la dinamica collettiva come segue:
K x˙ = −Lx
dove K = diag(γ1 , · · · , γn ). Questo equivale ad un nodo con rapporto variabile di integrazione
basato sul protocollo
X
γi x˙i =
aij (xj − xi )
j∈Ni
Negli esempi visti sopra gli algoritmi di consenso trovano un accordo sulla base delle condizioni
iniziali degli agenti, esistono però anche algoritmi che forniscono agli agenti degli “obiettivi”
time-varying. Un esempio di questo tipo di protocolli può essere quello studiato da Ren e
Sorensen in [6]. In questo articolo una squadra di agenti ha l’obiettivo di mantenere una certa
formazione mentre insegue un centroide tempo variante, l’elemento su cui si vuole raggiungere
un accordo è in questo caso il centro della formazione. La squadra di agenti è divisa tra leader
e follower, i primi conoscono le coordinate del centroide mentre i secondi devono ottenerle
tramite un algoritmo di consenso. In questo caso le dinamiche degli agenti sono più complesse
e dipendono dal centroide stimato da ogni veicolo ξ˙ivc . La stima per i leader viene fatta usando
la seguente:
P
vc [ξ˙vc − γ(ξ vc − ξ vc )]
ξ˙dvc − γ(ξivc − ξdvc ) + nj=1 gij
j
i
j
vc
Pn
,
ξ˙i =
vc
1 + j=1 gij
3.2. SISTEMA MULTI-AGENTE: INSEGUIMENTO CICLICO
19
mentre per i follower viene utilizzata:
Pn
gvc [ξ˙jvc − γ(ξivc − ξjvc )]
˙ξ vc = j=1 ij P
n
i
vc
j=1 gij
dove ξdvc sono le reali coordinate del centroide passate ai leader, γ è un parametro positivo ed
i termini gij definiscono se c’è comunicazione tra un veicolo e l’altro.
Questo protocollo è stato citato per mostrare le potenzialità di questo tipo di algoritmo,
queste sono tutt’altro che limitate e grazie alla loro versatilità gli algoritmi di consenso si
prestano per essere utilizzati in una vasta gamma di applicazioni.
3.2
Sistema multi-agente: Inseguimento ciclico
Andiamo adesso ad introdurre il framework di lavoro che è stato utilizzato. Il nostro sistema
multiagente si basa sul “cyclic pursuit”, ogni agente conosce quindi solo lo stato dell’agente a
lui successivo, la topologia di interazione tra gli agenti è rappresentata in Figura 3.1. In questa
struttura non sono presenti leader, il sistema di agenti può essere definito decentralizzato. I
vantaggi di questo tipo di struttura sono già stati elencati nella sezione 1.1 e non verranno
quindi nuovamente citati.
<
=
0
>
1
2
?
3
@
;4
5
6
/7
8
9
:.A
-B
+
,C
*#
D
$
%
)"E
(F
!&
G
'K
JH
L
M
IN
~
O
}P
|m
Q
u
w
v{zyxtR
sln
ko
p
q
rS
T
jU
g
h
V
ia
b
d
ce
W
f_
`^]X
\Y
Z
[
2
3
1
i
n
Figura 3.1: Topologia di interazione tra gli agenti nel cyclic pursuit
Una matrice circolante di ordine n è una matrice quadrata della forma:


c1 c2 · · ·
cn
 cn c1 · · · cn−1 


C= .
.. . .
..  .
 ..
.
.
. 
c2
c3 · · ·
c1
Gli elementi di ogni riga di C sono identici a quelli della precedente riga ma spostati di
un elemento verso destra (l’elemento che uscirebbe dalla matrice viene reinserito a sinistra).
L’intera matrice è quindi definita unicamente dalla prima riga e può essere riscritta come
C = circ[c1 , c2 , · · · , cn ].
L’utilizzo di questo tipo di matrici è comodo per poter determinare prontamente autovalori ed
autovettori della stessa (è possibile diagonalizzare C tramite una matrice di Fourier). Risultati
20
CAPITOLO 3. CONTROLLO DECENTRALIZZATO IN RETROAZIONE
equivalenti sono validi anche nel caso di matrici circolanti a blocchi in cui l’intera matrice è
definita dal primo blocco di righe, una matrice di questo tipo si può riscrivere come:
A = circ[A1 , A2 , · · · , An ].
Il nostro framework è composto da n agenti mobili la cui posizione è definita ad ogni istante
t ≥ 0 da ξi (t) = [xi (t), yi (t)]T . La cinematica di ogni robot è descritta da un semplice
integratore:
ξ˙i (t) = ui (t)
Nella strategia di inseguimento ciclico classica l’ingresso è:
ui = k(ξi+1 − ξi ), k ∈ R+ .
(3.1)
Si ha quindi che l’agente i insegue il suo vicino, l’agente i + 1, lungo la linea di vista, con
velocità proporzionale al vettore che và dall’agente i all’agente i + 1. Il parametro k verrà
considerato da qui in avanti, senza perdità di generalità pari ad 1.
Inseriamo adesso una nuova ipotesi nel nostro problema, si suppone che ogni robot insegua
il suo vicino lungo una linea di vista ruotata di un angolo α ∈ [−π, π] comune a tutti gli agenti.
L’ingresso di controllo per ogni veicolo (equazione 3.1) viene quindi modificato come segue:
ui (t) = R(α)(ξi+1 (t) − ξi (t)),
dove R(α) è una matrice di rotazione così definita:
cos(α) sin(α)
R(α) =
− sin(α) cos(α)
Volendo scrivere il nostro nuovo sistema in una notazione compatta possiamo riformulare la
dinamica globale del sistema come segue:
˙ = Aξ(t),
ξ(t)
dove ξ = [ξ1T , ξ2T , · · · , ξnT ] ed A è una matrice circolante a blocchi descritta dalla seguente
equazione:
A = circ[−R(α), R(α), 02 , · · · , 02 ],
dove 02 è una matrice di zeri a dimensione 2 × 2.
Per poter conoscere i comportamenti del sistema si devono analizzare i suoi autovalori, si
sfrutta quindi la seguente formula per ottenere una diagonalizzazione a blocchi di A:
Di = A1 + ϕi A2 + ϕ2i A3 + · · · + ϕin−1 An , i = 1, 2, · · · , n.
(3.2)
Partendo dalla forma diagonale a blocchi di A è facile ricavare gli autovalori che risultano
essere una collezione di:
±jα
, i = 1, 2, · · · , n.
λ±
i = (ϕi − 1)e
Per poter esplicitare la struttura degli autovalori definisco:
i−1
±
θi =
π±α .
n
21
3.2. SISTEMA MULTI-AGENTE: INSEGUIMENTO CICLICO
Dopo aver effettuato alcune manipolazioni algebriche posso scrivere gli autovalori nel seguente
modo:
i−1
±
λi = 2 sin
π (− sin θi± + j cos θi± ).
n
Si può facilmente vedere che la matrice A ha un autovalore nullo a molteplicità 2 e che vale
la seguente proprietà:
+
λ+
i = 2, 3, · · · , n,
(3.3)
i = λn−i+2
dove λ denota il complesso coniugato di λ. Un’altro elemento necessario per lo studio dei possibili comportamenti è la conoscenza degli autovettori, si devono quindi studiare gli autovettori
della nostra matrice A i quali hanno la seguente struttura1 :
i
h
(n−1)
(n−1) T
,
wi+ = 1, j, ϕi , jϕi , · · · , ϕi
, jϕi
i
h
(n−1)
(n−1) T
,
wi− = 1, −j, ϕi , −jϕi , · · · , ϕi
, −jϕi
−
−
dove wi+ corrisponde all’autovalore λ+
i e wi corrisponde a λi .
Visto che A è diagonalizzabile la soluzione generale del sistema avrà la seguente forma:
ξ(t) =
q mλ
X
Xk
αkj etλk wkj ,
(3.4)
k=1 j=1
dove q è il numero di autovalori distinti, i parametri αkj sono costanti ed i termini wkj sono
gli autovettori corrispondenti al k-esimo autovalore. È possibile riscrivere l’equazione 3.4
estraendo i due autovettori corrispondenti all’autovalore nullo e sostituendoli con i seguenti:
1
1
= (w1+ + w1− ) = [1, 0, 1, 0, · · · , 1, 0, 1],
wG
2
1 +
2
wG = (w1 − w1− ) = [0, 1, 0, 1, · · · , 0, 1, 0],
2j
ottenendo così:
ξ(t) =
q mλ
X
Xk
1
2
+ yG wG
,
αkj etλk wkj + xG wG
(3.5)
k=2 j=1
dove xG e yG sono le coordinate del baricentro. Si possono adesso andare ad analizzare i
comportamenti del sistema al variare dell’angolo α.
Se |α| < πn tutti gli autovalori non nulli risiedono nel semipiano sinistro aperto del piano
complesso. Abbiamo quindi che:
1
2
lim ξ(t) = xG wG
+ yG wG
.
t→+∞
Da questo deriva che, per ogni condizione iniziale, tutti gli agenti convergono esponenzialmente
ad un singolo punto limite che risulta essere il baricentro, il comportamento è mostrato in
Figura 3.2 (a) e (b), come si può vedere più l’angolo è piccolo e più veloce è la convergenza.
Se α = nπ , allora oltre ai due autovalori nulli ci sono altri due autovalori non nulli che
risiedono sull’asse immaginario, mentre tutti gli altri autovalori risiedono nel semipiano sini−
stro aperto del piano complesso. Gli autovalori immaginari sono λ+
n e λ2 ed il loro valore
1
Per informazioni più dettagliate riguardo gli autovalori e gli autovettori del sistema si rimanda a [4].
22
CAPITOLO 3. CONTROLLO DECENTRALIZZATO IN RETROAZIONE
è ∓j2 sin( πn ) = ∓jγ. Possiamo riscrivere l’equazione 3.5 estraendo anche i due autovettori
corrispondenti agli autovalori puramente immaginari ottenendo così:
ξ(t) =
q mλ
Xk
X
1
2
αkj etλk wkj + d1 e−jtγ wn+ + d2 ejtγ w2− + xG wG
+ yG wG
,
(3.6)
k=4 j=1
dove d1 e d2 sono due costanti. Si sostituiscono poi le due eigenfunction complesse con due
eigenfunction reali ed independenti ottenute come segue:
1 jtγ −
e w2 + e−jtγ wn+ ,
2
1 jtγ −
e w2 − e−jtγ wn+ .
=
2j
1
wdom
=
2
wdom
Otteniamo quindi, definendo δi =
2π(i−1)
n
i = 1, 2, · · · , n :
1
wdom
= [cos(δ1 + γt), sin(δ1 + γt), · · · , cos(δn + γt), sin(δn + γt)]T ,
2
wdom
= [sin(δ1 + γt), − cos(δ1 + γt), · · · , sin(δn + γt), − cos(δn + γt)]T .
Per t → +∞ si ha quindi:
1
2
2
1
+ xG wG
+ yG wG
.
+ c2 wdom
ξ(t) = c1 wdom
Dopo un transitorio, la traiettoria di ogni agente risulta essere (assumendo c1 6= 0 e c2 6= 0):
xi (t) ≃ c1 cos(δi + γt) + c2 sin(δi + γt) + xG ,
yi (t) ≃ c1 sin(δi + γt) − c2 cos(δi + γt) + yG ,
p
ovvero un moto circolare centrato nel baricentro avente raggio r = c21 + c22 e periodo 2π
γ .
Gli agenti risultano inoltre essere equispaziati visto che la distanza angolare tra l’agente i e
l’agente i + 1 è 2π
n . Il comportamento in questo caso è mostrato
in Figura 3.2(c).
L’ultimo caso rimasto da analizzare è quello con α ∈ nπ , 2π
n . Qui oltre ad avere la coppia di
−
autovalori nulli ho una coppia di autovalori complessi positivi (λ+
n e λ2 con valori β ∓jγ). Con
procedimenti analoghi al caso precedente, otteniamo che le traiettorie degli agenti risultano
essere (per c1 6= 0 e c2 6= 0):
xi (t) ≃ eβt (c1 cos(δi + γt) + c2 sin(δi + γt)) + xG ,
yi (t) ≃ eβt (c1 sin(δi + γt) − c2 cos(δi + γt)) + yG ,
ovvero una spirale logaritmica con tasso di crescita β, mostrata in Figura 3.2(d).
Comunicazione tra i veicoli
Come in tutti i problemi di consensus è necessario che i veicoli possano comunicare per poter
raggiungere un accordo, fino ad ora la comunicazione tra i veicoli era data per scontata,
andiamo adesso ad introdurre delle condizioni in presenza delle quali si ha che i veicoli sono
connessi.
23
3.2. SISTEMA MULTI-AGENTE: INSEGUIMENTO CICLICO
6
6
5.5
5.5
5
5
4.5
4.5
R1
4
y [m]
y [m]
R
2
R3
3.5
R
4
R1
R
2
4
R3
R
4
3.5
3
3
2.5
2.5
2
2
1.5
−3
−2
−1
0
x [m]
1
2
3
−2.5
−2
−1.5
−1
−0.5
(a)
0
x [m]
0.5
1
1.5
2
2.5
(b)
43
x 10
6
3
5
2
1
R1
R1
R2
y [m]
y [m]
4
R3
3
R2
0
R3
R4
R4
−1
2
−2
1
−3
−3
−2
−1
0
1
x [m]
2
3
4
5
−4
−3
−2
(c)
−1
0
x [m]
1
2
3
4
43
x 10
(d)
Figura 3.2: (a),(b) Traiettorie del sistema con |α| < πn rispettivamente con α =
(c)Traiettoria del sistema con α = nπ (d)Traiettoria del sistema per |α| > πn
<
=
0
>
1
2
?
3
@
;4
5
6
/7
8
9
:.A
-B
+
,C
*#
D
$
%
)"E
(F
!&
G
'K
JH
L
M
IN
~
O
}P
|m
Q
u
w
v{zyxtR
sln
ko
p
q
rS
T
jU
g
h
V
ia
b
d
ce
W
f_
`^]X
\Y
Z
[
veicolo i
veicolo i + 1
ri+1
Figura 3.3: Situazione di connessione tra 2 veicoli.
π
5
eα=
π
9
24
CAPITOLO 3. CONTROLLO DECENTRALIZZATO IN RETROAZIONE
Come evidenziato anche in [3], il veicolo i + 1 si dice connesso al veicolo i al’istante di
tempo t se il veicolo i è all’interno del disco di comunicazione con raggio ri+1 2 in quel preciso
momento (vedi Figura 3.3).
Due veicoli (i ed i + 1) si dicono connessi per ogni istante di tempo t ≥ 0 se il veicolo i
è sempre all’interno del disco di comunicazione del veicolo i + 1 per ogni t ≥ 0. Un metodo
per mantenere la connettività potrebbe essere quello di cercare un raggio che me la preservi.
Supponiamo che il disco di comunicazione del veicolo i + 1 abbia raggio
ri+1 ≥ max ||(T [2i − 1, 2i] − T [2i + 1, 2i + 2])eAt T −1 ξ(0)||,
t≥0
dove i ∈ {1, 2, · · · , n}, la matrice di trasformazione T è
T = ℜ(w1+ ) ℑ(w1+ ) ℜ(w2+ ) · · · ℜ(wn+ ) ℑ(wn+ ) ,
ed eAt è una matrice diagonale a blocchi fatta come segue:
eAt = blkdiag[I2 , B2 (t), B3 (t), · · · , Bn (t)],
cos(ℑ(λ+
)t) sin(ℑ(λ+
)t)
ℜ(λ+
)t
k
k
e k ∈ {2, 3, · · · , n}, allora gli agenti
dove Bk (t) = e k
+
− sin(ℑ(λ+
k )t) cos(ℑ(λk )t)
raggiungono il rendezvous o convergono ad una formazione circolare equispaziata senza perdere
la connettività per ogni t ≥ 0.
Alternativamente si può provare a creare un controllo retroazionato per il sistema che
mi assicuri la connettività dei veicoli e quindi che ||ξi (t) − ξi+1 (t)|| < ri+1 . Osservando la
letteratura esistente in fatto di controllo vincolato si vede che è possibile creare dei controllori
che rispettano dei vincoli lineari sullo stato. Per poter usufruire di tali risultati si sostituisce
il disco di connettività dei robot con dei quadrati (vedi figura 3.4).
Al fine di scegliere un quadrato correlato al disco di comunicazione originale si presentano
due opzioni:
1. scegliere il più piccolo quadrato contenente il disco di comunicazione originale,
2. scegliere il più grande quadrato contenuto nel disco di comunicazione originale.
Il primo caso presenterà un’area di copertura maggiore e più precisamente di circa il 21%,
infatti:
area quadrato = 4r 2 , area triangolo = πr 2
surplusarea = (4 − π)r 2 ≈ 0.858r 2
0.858r 2
→
≈ 21% area in eccesso.
4r 2
Equivalentemente per l’altro caso abbiamo:
area triangolo = πr 2 , area quadrato interno = 2r 2
surplusarea2 = (π − 2)r 2 ≈ 1.141r 2
1.141r 2
≈ 36% area in meno.
→
πr 2
Sono state quindi mostrate le differenze di area nei due casi, qualora si volesse lavorare pensando ai dischi come riferimento, queste sono le differenze di cui si deve tenere conto. Da ora
in poi ci si riferirà al raggio pensando a metà del lato del quadrato cioè alla distanza (minima)
che separa il centro del quadrato da un suo lato.
2
Il disco di raggio ri+1 definisce l’area di trasmissione del veicolo i + 1.
25
3.2. SISTEMA MULTI-AGENTE: INSEGUIMENTO CICLICO
quadrato esterno
1
0.5
ri
0
−0.5
quadrato interno
−1
−1.5
−1
−0.5
0
0.5
1
1.5
Figura 3.4: Trasformazione del disco di comunicazione in un quadrato
3.2.1
Controllo retroazionato per mantenimento di connettività
Il nostro scopo è quello di creare un controllo retroazionato che impedisca al raggio di connettività tra i veicoli di superare il limite consentito, si vuole quindi imporre dei vincoli sul
vettore di stato. Il nostro problema rientra nella classe dei Linear Constrained Regulation
Problem. Al fine di risolvere questa tematica siamo partiti dai risultati presenti in [5]. In
questo articolo viene studiato come determinare una legge di controllo lineare u(t) = F x(t)
che deve rispettare tre tipi di vincoli:
1. vincoli sul vettore di controllo u(t);
2. vincoli sul vettore di stato;
3. vincoli sull’insieme degli stati iniziali.
Andiamo adesso ad analizzare i vincoli e come vogliamo che siano nel nostro caso di interesse.
Il vincolo sull’ampiezza dell’ingresso di controllo è del tipo −ρL ≤ u ≤ ρU , questo serve
soprattutto a dare un feeling reale al problema, mettendo delle limitazioni che rispecchiano
quelle meccaniche.
Il vincolo sul vettore di stato è quello per noi di maggiore interesse ed è del tipo Dx ≤ c
con D ∈ Rp×n , rank(D) = n, p ≥ n e c > 0. Il nostro scopo è come già detto contenere la
distanza tra i veicoli, si sfrutteranno a questo scopo dei vincoli del tipo |x1 − x2 | < r. Da
notare che nell’articolo [5] è richiesto che il vettore di stato sia vincolato ad appartenere ad
un poliedro chiuso. Per fare questo si inseriscono oltre ai vincoli necessari per il nostro scopo
anche dei vincoli ausiliari del tipo |x1 + x2 | < M , in cui M è un parametro opportunamente
grande tale per cui il problema non risulta realmente vincolato. Abbiamo così inserito dei
bound sulla distanza tra i veicoli ottenendo lo spazio di lavoro rappresentato in Figura 3.5 (è
rappresentato lo spazio che contiene una coordinata di un veicolo).
26
CAPITOLO 3. CONTROLLO DECENTRALIZZATO IN RETROAZIONE
<
=
0
>
1
2
?
3
@
;4
5
6
/7
8
9
:.A
-B
+
,C
*#
D
$
%
)"E
(F
!&
G
'K
JH
L
M
IN
~
O
}P
|m
Q
u
w
v{zyxtR
sln
ko
p
q
rS
T
jU
g
h
V
ia
b
d
ce
W
f_
`^]X
\Y
Z
[
|x1 − x2 | < r
|x1 + x2 | < M
"
#
&$
$
%
!$
!#
!"
!!
!"
!#
!$
%
&'
$
#
"
!
Figura 3.5: Schematizzazione dei vincoli sul vettore di stato.
Per quanto concerne l’ultimo vincolo questo ha una forma analoga al precedente ed è
Gx ≤ w, con G ∈ Rq×n con rank(G) = n, q ≥ n e w > 0. Il nostro unico vincolo sugli stati
iniziali è che i veicoli siano in condizioni di connettività quindi i vincoli sono gli stessi che per
il vettore di stato.
Andiamo adesso ad analizzare le condizioni per l’esistenza del controllore lineare vincolato,
queste si basano sul concetto di positive invariance. Un insieme non vuoto Ω si dice insieme
positively invariant del sistema (S) se e solo se x0 ∈ Ω implica che:
x(t; x0 ; t0 ) ∈ Ω per ogni t0 ∈ T e t ≥ t0 ,
dove x(t; t0 ; x0 ) è la traiettoria di S con condizioni iniziali (t0 , x0 ). Definiamo adesso alcuni
insiemi che utilizzeremo successivamente:
Q(F, ρL , ρU ) = {x ∈ Rn : −ρL ≤ F x ≤ ρU }
è l’insieme poliedrale associato alla legge di controllo in retroazione, ovvero la regione degli
stati dove il vettore di controllo non viola il primo vincolo,
P (D, c) = {x ∈ Rn : Dx ≤ c}
è invece l’insieme degli stati che soddisfano il secondo vincolo, per la stessa notazione il set
degli stati iniziali che soddisfano il terzo vincolo è indicato da P (G, w). La legge di controllo
u = F x con F ∈ Rm×n è una soluzione dell’LCRP se e solo se:
1. Gli autovalori λi , i = 1, 2, · · · , n, della matrice A+BF hanno parte reale negativa.
2. Esiste un insieme positevely invariant Ω ⊆ Rn del sistema ad anello chiuso x˙ = (A +
BF )x tale che valgono le seguenti:
P (G, w) ⊆ Ω ⊆ P (D, c)
3.2. SISTEMA MULTI-AGENTE: INSEGUIMENTO CICLICO
27
Ω ⊆ Q(F, ρL , ρU )
I risultati sopra citati possono essere sfruttati in molti differenti algoritmi, l’approccio che noi
seguiremo si basa sul seguente corollario:
Corollario 1 Supponiamo che F sia una matrice m × n tale che:
• gli autovalori λi , i = 1, 2, · · · , n, della matrice A+BF abbiano parti reali negative3 ,
• P (G, w) sia un insieme positevely invariant del sistema ad anello chiuso,
• P (G, w) ⊆ Q(F, ρL , ρU ).
Se queste richieste sono verificate allora la legge di controllo in retroazione è una soluzione
dell’LCRP.
Al fine di soddisfare tutte le richieste sopra citate si inizia con la ricerca di condizioni
algebriche tali per cui P (G, w) è un insieme positevely invariant rispetto al sistema in anello
chiuso. È noto che un sistema asintoticamente stabile possiede insiemi hyperellipsoidal positevely invariant. Questi insiemi sono generati da funzioni di Lyapunov quadratiche xT P x,
dove P ∈ Rn×n è una funzione simmetrica definita positiva che soddisfa l’equazione matriciale
P A + AT P − Q = 0, e Q ∈ Rn×n è una matrice simmetrica definita positiva. Usando una
funzione di Lyapunov non quadratica possiamo anche generare degli insiemi positively invariant di tipo poliedrale come nel caso di P (G, w). Al fine di definire queste funzioni di tipo
Lyapunov si introducono le matrici reali n × n di tipo Mn .
Definizione 3 La matrice reale n × n B = (bij ) si dice appartenente alla classe Mn se e solo
se bij ≥ 0, per ogni i 6= j.
Visto che P (G, w) è un insieme chiuso può essere definito dall’espressione
P (G, w) = {x ∈ Rn : v(x) ≤ 1}
dove
v(x) = max
1≤i≤q
(Gx)i
wi
,
(3.7)
(Gx)i denota l’i-esima componente del vettore Gx. La seguente proposizione fornisce una
condizione necessaria e sufficiente per cui v(x) definita in 3.7 risulta essere una funzione di
Lyapunov e con essa P (G, w) un insieme positively invariant del sistema.
Proposizione 1 Il set poliedrale P (G, w) è un insieme positively invariant del sistema y˙ = Ay
se e solo se esiste una matrice H ∈ Rq×q tale che:
H ∈ Mq ,
GA − HG = 0
e Hw ≤ 0.
Una conseguenza diretta di quanto appena detto è la seguente:
Proposizione 2 Supponiamo F ∈ Rm×n e che esista una matrice H ∈ Rq×q tale che:
1. H ∈ Mq ,
3
La matrice B è stata supposta una matrice identità di dimensioni opportune, quindi la matrice F è
dimensionalmente uguale ad A.
28
CAPITOLO 3. CONTROLLO DECENTRALIZZATO IN RETROAZIONE
2. Hw ≤ 0,
3. GA + GBF = HG,
4. gli autovalori λi , i = 1, 2, · · · , n, della matrice A+BF abbiano parte reale negativa,
5. P (G, w) ⊆ Q(F, ρL , ρU ).
Allora la legge di controllo u = F x è una soluzione dell’LCRP.
Alcune delle condizioni riportate sopra possono essere sostituite o modificate opportunamente4
per raggiungere il seguente risultato:
Proposizione 3 Se esiste una matrice stabile H ∈ Mq ed una matrice F ∈ Rm×n che soddisfa
le seguenti:
1. Hw ≤ 0,
2. GA + GBF = HG,
3. −ρL ≤ F xi ≤ ρU , i = 1, 2, · · · , r, 5
allora la legge di controllo u = F x è una soluzione dell’LCRP.
Come si può facilmente vedere l’applicazione del precedente metodo è facilmente attuabile
tramite il seguente problema di ottimizzazione vincolata:
funz. obiettivo: J(F, H, ε) = max ε
L
vincoli : GA + GBF = HG,
(3.8)
Hw ≤ −εw,
(3.9)
i
U
−ρ ≤ F x ≤ ρ , i = 1, 2, · · · , r,
hij ≥ 0, i 6= j,
ε ≥ 0,
(3.10)
(3.11)
(3.12)
(3.13)
dove ε è un numero reale.
Osservando il problema di ottimizzazione si vede che compare un nuovo parametro, ovvero
ε, questo viene inserito nel vincolo 3.9 per velocizzare la convergenza dell’algoritmo, infatti
maggiore sarà ε e minore sarà il valore del prodotto Hw. Al fine di massimizzare la velocità
di convergenza la funzione obiettivo viene dedicata a ε.
Risultati dopo l’applicazione del controllo trovato come soluzione dell’LCRP
Una volta risolto il problema di ottimizzazione definito nella precedente sezione abbiamo a
nostra disposizione una matrice F da utilizzare per il controllo in retroazione. Andiamo
a vedere il comportamento che assume il sistema ad anello chiuso utilizzando la suddetta
matrice.
4
5
per approfondimenti sulle modifiche si rimanda a [5]
Con xi si indicano i vertici del poliedro chiuso P (G, w)
29
3.2. SISTEMA MULTI-AGENTE: INSEGUIMENTO CICLICO
4
4
3.5
3.5
3
R1
3
R1
R2
R2
2.5
R3
y [m]
y [m]
R3
2.5
2
1.5
2
1
1.5
0.5
1
0.5
1
1.5
2
x [m]
2.5
3
3.5
0
−1
−0.5
0
(a)
0.5
1
1.5
x [m]
2
2.5
3
3.5
4
(b)
Figura 3.6: (a) Traiettoria del sistema ad anello aperto nel caso di rendezvous al baricentro;
(b) Traiettoria del sistema ad anello chiuso
Come si può vedere dalla Figura 3.6(b) si ha una convergenza diretta verso l’origine che
indubbiamente mantiene i veicoli connessi, ma al prezzo di annullare le dinamiche pre-esistenti
dei veicoli. Andando a vedere la struttura della matrice A+F si vede che questa è: −y ∗I, dove
y è un parametro positivo ed I è una matrice identità di dimensioni opportune. I problemi
causati da questa struttura sono i seguenti:
1. perdita delle dinamiche originali del sistema,
2. perdita del punto di equilibrio originale del sistema.
Si devono quindi cercare delle modifiche da apportare al problema di ottimizzazione che
abbiano un impatto più “conservativo” sulle dinamiche.
Nota: per quanto riguarda il parametro y questo risulta coincidere con il parametro ε
presente nella funzione obiettivo del mio problema di programmazione lineare.
3.2.2
Modifiche al problema di ottimizzazione
Il sistema ad anello aperto presentava delle particolari caratteristiche quali ad esempio:
• la circolarità,
• la dipendenza di ogni veicolo da un solo vicino6 .
Al fine di mantenere queste caratteristiche sono stati inseriti degli opportuni vincoli nel
problema di ottimizzazione. Questi sono riassumibili con:
F = circ[F1 , F2 , 02 , · · · , 02 ]
dove F1 , F2 ∈ R2×2 . Questi vincoli utilizzati da soli sono inutili e non risolvono nessuno dei
nostri problemi, infatti anche la struttura precedentemente trovata dal problema di ottimizzazione rispetta questi vincoli, è però importante inserirli al fine di evitare soluzioni con una
forma non desiderata.
6
Le dinamiche del veicolo i dipendono anche dalla posizione del veicolo i+1.
30
CAPITOLO 3. CONTROLLO DECENTRALIZZATO IN RETROAZIONE
Analizziamo adesso il problema della convergenza al baricentro. Come visto precedentemente dalla teoria sul consenso il nostro sistema dovrebbe convergere ad un punto che è la
media delle condizioni iniziali di ogni veicolo. Le proprietà precedentemente riportate valevano per via della struttura del grafo laplaciano, tra le caratteristiche di quest’ultimo che ci
interessa replicare c’è il fatto che la somma degli elementi di ogni riga è nulla. Questa dà luogo
alla presenza dell’autovalore nullo, il quale ci permette di avere un equilibrio del sistema in un
punto del tipo β ∗(1, 1, · · · , 1). Questo andrebbe sicuramente bene nel caso monodimensionale
ma non nel nostro caso. Il punto di equilibrio che noi vogliamo raggiungere è del tipo:
x∗ = [β, γ, β, γ, · · · , β, γ]T ∈ R2 n
dove β e γ sono rispettivamente la media delle coordinate iniziali x e di quelle y. Si può
facilmente intuire che questo punto risulta essere un equilibrio del sistema se la somma di
tutti gli elementi che moltiplicano una coordinata x su una riga è 0, e se anche la somma di
tutti gli elementi che moltiplicano una coordinata y è a sua volta nulla. Il vincolo può essere
schematizzato come segue:
Pn
Fi,2j−1 = 0 Pj=1
(3.14)
n
i = 1, · · · , n,
j=1 Fi,2j = 0
dove n è il numero di veicoli che compongono il sistema. Un modo alternativo per vedere
questo vincolo è il seguente:
Se x∗ ∈ ker(A + BF ) allora il sistema in anello chiuso ha un equilibrio in x∗ .
Se il vincolo sul baricentro è soddisfatto allora il mio sistema in retroazione avrà per
costruzione una coppia di autovalori in 0, che sono sempre presenti anche nel sistema ad
anello aperto. Purtroppo questo vincolo non esclude la più banale delle soluzioni ovvero
F = −A, al fine di evitare questa evenienza indesiderata si impone un vincolo che non annulli
degli elementi di F. Dopo vari test è stato visto che gli elementi di cui è più facile evitare
l’annullamento sono quelli sulla diagonale dei blocchi F1 ed F2 . Imponendo dei vincoli del
tipo Fi,j ≥ Ai,j sugli elementi designati si riusciva ad evitare l’annullamento delle dinamiche
ad anello chiuso. Formalizziamo quest’ultimo vincolo. Le matrici F1 ed F2 appartengono ad
R2×2 per costruzione e si ripetono n volte nella matrice F. Si vuole quindi che:
F1,i,i 6= R(α)i,i i = 1, 2,
F2,i,i 6= −R(α)i,i in modo tale da poter evitare la soluzione banale del problema. Visto che la matrice R(α) è
nota si vanno a sostituire i rispettivi elementi nei vincoli:
F1,i,i 6= cos(α) i = 1, 2.
(3.15)
F2,i,i 6= − cos(α) Osservando i vincoli in 3.15 si notano facilmente due cose:
1. I vincoli sono speculari,
2. i vincoli non sono lineari,
3. i vincoli dipendono da α.
31
3.3. RISULTATI DELLE SIMULAZIONI E SCELTE PROGETTUALI
La specularità dei vincoli è dovuta a 3.14 ed al fatto che ogni agente dipende complessivamente
da soli 2 veicoli, si può quindi utilizzare solo uno dei due vincoli e soddisfare comunque anche
l’altro7 . Per quanto riguarda la non linearità dei vincoli, vista la natura del problema da
risolvere (ottimizzazione lineare), si deve provvedere ad una sostituzione. Il valore che si vuole
evitare divide la retta dei punti possibili in due parti, si deve quindi scegliere se nella soluzione
noi vogliamo:
F2,i,i > −κ · cos(α);
F2,i,i < −κ · cos(α),
(3.16)
(3.17)
dove i = 1, 2 e κ è un parametro che uso per evitare che la soluzione vada a cadere in un
punto che differisce di un infinitesimo dal punto che non desidero8 . Da vari test il vincolo 3.16
risulta essere il migliore, questo viene però applicato in una sua variante shiftata:
F2,i,i > κ · cos(α), i = 1, 2,
(3.18)
Il motivo dietro a questa scelta verrà spiegato nella sezione 3.3.1, dove si illustrano anche
alcune tematiche legate alla scelta del solver per l’ottimizzazione. Per quanto riguarda la
dipendenza dei vincoli da α questo potrebbe essere un problema visto che noi usiamo angoli
α ∈ [−π, π], andando però ad osservare la funzione coseno si vede che nell’intervallo [−π, 0]
ed in quello [0, π] il comportamento è uguale quindi si può lasciare il vincolo invariato senza
agire su eventuali cambi di segno. Ora che tutti i vincoli sono stati introdotti non ci resta che
vedere la formulazione finale del nostro problema di ottimizzazione:
3.3
funz.obiettivo : {















vincoli :














GA + GBF = HG,
Hw ≤ 0,
−ρL ≤ F xi ≤ ρU , i = 1, 2, · · · , r,
hij ≥ 0, i 6= j,
FP
= circ[F1 , F2 , 02 , · · · , 02 ],
n
Fi,2j−1 = 0 Pj=1
n
i = 1, · · · , n,
j=1 Fi,2j = 0
F2,i,i > κ · cos(α).
Risultati delle simulazioni e scelte progettuali
In questa sezione mostrerò alcuni risultati delle simulazioni ed illustrerò gli strumenti necessari
per svolgerle. Il nostro “workbench” è stato Matlab.
3.3.1
Strumenti per le simulazioni
Le nostre simulazioni si articolavano in due passi principali:
• ricerca di una soluzione per il problema di ottimizzazione vincolata,
7
8
Si sceglie di utilizzare il vincolo su F2
Ovviamente κ sarà minore di 1 se uso il vincolo 3.16, mentre sarà maggiore di 1 se uso 3.17, κ > 0.
32
CAPITOLO 3. CONTROLLO DECENTRALIZZATO IN RETROAZIONE
• simulazione del sistema retroazionato.
Per svolgere il primo passo è stato usato un solver per programmazione lineare, mentre per la
simulazione è stato usato un modello simulink.
Scelta del solver per l’ottimizzazione
La scelta iniziale per il nostro solver è stata quella di usare il “linprog” e cioè il solver standard
fornito con Matlab. La cosa che si nota immediatamente usando questo solver è che le soluzioni
che trova hanno una scarsa accuratezza (dell’ordine di 10−5 ), oltre a questo si vede che variando
i vincoli le soluzioni che fornisce non sono sempre valide, capita infatti di fornire dei vincoli
e di vederli non rispettati (pur sapendo che esiste una soluzione valida che sfrutta tutti i
vincoli). Il linprog è inoltre molto dipendente dalla funzione obiettivo del problema. Per
ovviare a queste tematiche è stato impiegato il solver “Nag”. Oltre a presentare una maggiore
robustezza computazionale ed una migliore accuratezza nei calcoli (dell’ordine di 10−15 ) in
questo solver i vincoli vengono soddisfatti sempre dove possibile. È stato grazie a queste sue
qualità che è stato possibile raggiungere la formulazione finale del problema. Ovviamente la
maggiore accuratezza richiede un alto numero di iterazioni per poter raggiungere la precisione
richiesta sui risultati finali. Prendendo ad esempio un sistema con 3 veicoli, impiegando per il
solver un numero di iterazioni pari a 3500 si raggiunge una precisione di 10−13 , in questo caso
il solver conclude i suoi calcoli fornendo una soluzione “parziale”, in realtà questa soluzione
rispetta tutti i vincoli ed è quindi utilizzabile per le simulazioni.
Adesso che è stata definita l’accuratezza del solver è facile giustificare il fattore moltiplicativo κ nell’equazione 3.16, se questo mancasse il solver potrebbe tranquillamente maggiorare
nella sua soluzione quella cifra di un infinitesimo. Così facendo il vincolo sarebbe ugualmente
soddisfatto ma nella mia matrice di retroazione avrei elementi che non si annullano per via di
un infinitesimo e quindi la dinamica sarebbe comunque assente.
Passaggio del problema alla forma canonica.
Come noto dalla teoria la forma standard per un problema di ottimizzazione lineare è la
seguente:
funz.obiettivo : {J(x)
Aeq x = beq ,
vincoli :
Ax ≤ b,
Osservando il problema di ottimizzazione su cui noi lavoriamo si vede immediatamente che
deve essere trasformato per raggiungere una forma standard. La prima cosa da fare per
passare in una forma canonica è definire quali sono le variabili che devono essere calcolate
come soluzione del problema e che quindi andranno a costituire il vettore x. Una delle nostre
incognite è indubbiamente F, mentre l’altra è H. Il vettore x sarà quindi costituito da tutti gli
elementi di H ed F ordinati opportunamente. Prendiamo adesso alcuni vincoli del problema
originario ed adattiamoli per passare in forma standard. Iniziamo con il vincolo Hw ≤ 0,
questo si trasforma in:
wm · x ≤ 0,
33
3.3. RISULTATI DELLE SIMULAZIONI E SCELTE PROGETTUALI
dove wm 9 è una matrice fatta come segue

0 ··· 0 w
 0 ··· 0 0

wm =  .
.
 .. · · · .. · · ·
0 ··· 0 ···
0 ···
w ···
.. . .
.
.
0 ···
0
0
..
.
w



.

Prendiamo adesso un altro vincolo ovvero GA + GBF = HG, questo
tm2 )x = mga , dove10 tm1 e tm2 sono matrici fatte come segue:



G1,:
0 ···
0 ···
0 G:,1
0
 0 G1,: · · ·


0 ··· 
0

 0 G:,2



..
.
.
 0
 0
.
0 ··· 
···
.
0



 0


···
0 G1,: · · · 
0

 0 G:,n
 G2,:
 0

0
·
·
·
0
·
·
·
0
G
:,1



 0 G2,: · · ·
 0
0 ··· 
0
G:,2






..
..

.
0 ··· 
···
tm1 = 
0
.
 0
 , tm2 =  0
 0


···
0 G2,: · · · 
0
G:,n

 0
 ..


.
.
.
.
..
..
..
.. 
 .
 0
0
···



 Gq,:
 0

0
·
·
·
0
·
·
·
0
0



 0


G
·
·
·
0
·
·
·
0
0
0
q,:






.
..
 0
 0
0 ··· 
···
0
0
0
···
0 Gq,: · · ·
0
0
0
si trasforma in (tm1 +
···
···
0
0
···
···
···
···
0
0
0
0
···
···
..
.
0
0
···
···
···
···
0
G:,1
G:,2
..
.
G:,n


























Riguardo a tm2 si deve precisare che la prima colonna di zeri sono in realtà dei vettori di zeri,
di lunghezza pari al numero di elementi corrispondenti ad F su x. Per quanto riguarda mga
questo è un vettore colonna che contiene tutti gli elementi della moltiplicazione matriciale
G × A ordinati per righe. Esplicitati questi due vincoli si può vedere chiaramente la struttura
di x, la prima parte è composta dagli elementi di F ordinati per colonna e a seguire ci sono gli
elementi di H ordinati per riga. Un’altro vincolo che richiede un minimo di attenzione è quello
sull’ampiezza del segnale di ingresso ovvero −ρL ≤ F xi ≤ ρU . Al fine di soddisfare questo
vincolo è richiesta la conoscenza di tutti i vertici del poliedro all’interno del quale si vuole
vincolare lo stato. Per ottenere le coordinate dei vertici noi utilizziamo il multi-parametric
toolbox11 . I comandi per creare il poliedro definito dall’equazione Gx ≤ w ed estrarne i vertici
sono i seguenti:
P = polytope(G,w); %crea il politopo a partire dalla matrice G e dal vettore w.
V = extreme(P).
Tralascio la trasformazione in forma standard degli altri vincoli perchè banale a questo
punto. È adesso possibile risolvere il problema di ottimizzazione, l’unica cosa rimasta da fare
è estrarre gli elementi di F dal vettore soluzione e rimetterli in forma matriciale in modo da
poterli usare per le simulazioni. Questo è facilmente fattibile con un ciclo for annidato oppure
usando la seguente istruzione:
9
In questa matrice gli elementi w corrispondono al vettore precedentemente definito.
Con G1,: si intende la prima riga di G che è la matrice dei vincoli sullo stato iniziale.
11
vedi [1]
10
34
CAPITOLO 3. CONTROLLO DECENTRALIZZATO IN RETROAZIONE
F = reshape(X(1:m*n),n,m)’;
Nell’istruzione matlab sopra m ed n sono banalmente il numero di righe e colonne su cui
vogliamo ridisporre F.
Simulazione del sistema
Come già precedentemente citato per la simulazione viene usato Simulink, questo tool ci
permette di ricostruire tramite appositi blocchi il nostro sistema. Le dinamiche che utilizziamo
sono a singolo integratore quindi si sfrutteranno gli appositi blocchi “integrator”, in totale
saranno usati n · 2 blocchi dove n è sempre il numero di veicoli.
Ad ogni blocco corrisponde quindi una coordinata di un veicolo, una cosa importante
di cui è necessario assicurarsi prima di cominciare la simulazione è settare come condizione
iniziale per il blocco integratore la variabile legata alla coordinata del blocco. Si procede poi a
collegare opportunamente i blocchi ottenendo così il modello in figura 3.7. Le coordinate dei
Figura 3.7: Modello Simulink del sistema con 4 agenti
veicoli vengono salvate ad ogni passo di campionamento in apposite variabili per poter essere
successivamente sfruttate nelle rappresentazioni grafiche.
3.3. RISULTATI DELLE SIMULAZIONI E SCELTE PROGETTUALI
3.3.2
35
Risultati del problema di ottimizzazione
Andando a risolvere il problema di ottimizzazione sopra definito si vede che a prescindere dal
numero di veicoli impiegati, la soluzione che trovo ha una struttura “canonica”. Mostriamo
con un esempio questa struttura (prendo il caso a 3 veicoli)


−a
sin(α)
a
−sin(α)
0
0
 −sin(α)

−b
sin(α)
b
0
0




0
0
−a
sin(α)
a
−sin(α)
,
F =
(3.19)


0
0
−sin(α)
−b
sin(α)
b



a
−sin(α)
0
0
−a
sin(α) 
sin(α)
b
0
0
−sin(α)
−b
dove i parametri a e b sono i due termini definiti con i vincoli di maggiorazione al fine di non
ottenere un sistema retroazionato nullo. Osservando l’equazione 3.19 si vede chiaramente che
la F è schematizzabile come circ [−F1 , F1 , 0, · · · , 0] , in cui il blocco F1 è visibile nell’equazione
appena citata. Ovviamente questa struttura si ottiene se il problema ha dei valori di r ed M
opportuni e tali per cui esista una matrice H che soddisfa i vincoli. Nel caso questi parametri
non avessero valori opportuni la nostra soluzione diventerebbe banalmente F = −A, che
fornendoci un sistema globalmente nullo mantiene sempre i veicoli connessi12 . Tralasciando
il caso banale che risulta essere di scarso interesse, abbiamo visto come è fatta la matrice di
retroazione nel caso in cui il problema di ottimizzazione viene risolto completamente. Possiamo
quindi osservare che il sistema ad anello chiuso ha una struttura a doppia diagonale come quella
che segue:


−c 0
c
0
0 ··· 0
 0 −d 0
d
0 ··· 0 


 0
0 −c 0
c ··· 0 




..
..
..
..
A + BF =  ...
,
. 0 
.
. 0
.


 0
0 ···
0 −d 0
d 


 c
0
0 ···
0 −c 0 
0
d
0
0 ···
0 −d
dove c = a + cos(α) e d = b + cos(α).
Essendo noto il sistema possiamo iniziare a fare speculazioni sul comportamento o più in
particolare sugli autovalori del sistema. Al fine di poter definire gli autovalori in forma chiusa
si sfruttano le proprietà della matrice ciclica. Una volta definito
ϕi = e
2(i−1)πj
n
sfruttiamo l’equazione 3.2 per trasformare la matrice A + BF in una matrice diagonale a
blocchi. Per poter meglio esplicare questa trasformazione sfrutterò un esempio, scelgo il caso
a 3 veicoli13 per brevità e semplicità.
D1 = −F1 + ϕ1 F1 , ϕ1 = e0 = 1
D2 = −F1 + ϕ2 F1 , ϕ2 = e
D3 = −F1 + ϕ3 F1 , ϕ3 = e
12
13
2πj
n
4πj
n
.
La nostra condizione iniziale è per ipotesi con tutti i veicoli in comunicazione.
Con F1 indico il blocco che si ripete all’interno della matrice A + BF .
36
CAPITOLO 3. CONTROLLO DECENTRALIZZATO IN RETROAZIONE
Ora che i blocchi diagonali sono definiti posso riscrivere A+BF come segue:


(ϕ1 − 1)c
0
0
0
0
0


0
(ϕ1 − 1)d
0
0
0
0




0
0
(ϕ2 − 1)c
0
0
0


(A + BF )diag = 

0
0
0
(ϕ
−
1)d
0
0
2




0
0
0
0
(ϕ3 − 1)c
0
0
0
0
0
0
(ϕ3 − 1)d
(3.20)
Una volta terminata la trasformazione, la teoria sulle matrici circolanti mi dice che gli autovalori del sistema sono la collezione degli autovalori di ogni singolo blocco Di . Osservando
la matrice in 3.20 e vedendo la struttura diagonale dei miei blocchi risulta banale definire gli
autovalori del sistema, che sono i seguenti:
λ+
i = (ϕi − 1)c,
λ−
i
= (ϕi − 1)d.
(3.21)
(3.22)
A questo punto non ci resta che richiamare una piccola notazione di analisi complessa per
poter trasformare gli autovalori.
Noto che:
ejx = cos(x) + j sin(x),
posso riscrivere gli autovalori in funzione di seni e coseni ottenendo ad esempio:
2π
2π
+
− 1 + j sin
c.
λ2 = cos
n
n
Sono stati così esplicitati gli autovalori del mio sistema in retroazione. Ovviamente il mio
scopo è quello di avere un sistema stabile14 , andiamo quindi a vedere quali sono le condizioni
tali per cui questo si verifica. Guardando la forma degli autovalori nelle equazioni 3.21 e 3.22
si vede che per ottenere autovalori stabili si devono utilizzare dei parametri c e d positivi.
Questo è dovuto al fatto che la parte reale di ϕ − 1 è sempre negativa. Vediamo di giustificare
questa affermazione, partiamo riprendendo la forma generale del parametro ϕi :
2(i−1)πj
2(i − 1)π
2(i − 1)π
+ j sin
.
= cos
ϕi = e n
n
n
La parte reale di questo parametro è banalmente quella definita dal coseno. Questa funzione
può assumere valori appartenenti al range [−1, 1]. Visto che nei nostri autovalori compare il
termine (ϕi − 1) questo ci dice che la parte reale di questo termine potrà appartenere al range
[-2,0] per via dello shift dato dal termine unitario. Andiamo a vedere quando la parte reale
di questo termine potrebbe assumere valore nullo. Questo avviene ogni qualvolta l’argomento
del coseno assume un valore pari a 2π o un suo multiplo. Nel nostro caso si vorrebbe quindi
che:
2(i − 1)π
= 2π,
n
ovvero che:
i−1
= 1 → (i − 1) = n.
n
14
Il sistema è più precisamente marginalmente stabile in quanto ci sono due autovalori nulli per costruzione.
3.3. RISULTATI DELLE SIMULAZIONI E SCELTE PROGETTUALI
37
Ma il parametro i può assumere solo valori tra 1 ed n, quindi questa evenienza non si verificherà
mai ed abbiamo così dimostrato quanto precedentemente affermato.
Ora che sappiamo che i termini c e d devono essere positivi per la stabilità possiamo capire
per quale motivo il vincolo dell’equazione 3.17 non portava ad avere soluzione. Questo andava
ad imporre dei valori positivi per la parte reale degli autovalori e quindi c’erano dei problemi
con la matrice H che moltiplicata per il vettore w non poteva assumere valori positivi in quanto
vincolata.
3.3.3
Definizione dei parametri liberi c e d
Osservando la matrice ad anello chiuso del sistema abbiamo studiato le caratteristiche degli
autovalori e visto che i parametri c e d devono essere positivi. Non abbiamo però definito dei
valori specifici per questi termini, che possono essere posizionati arbitrariamente nell’intervallo
tra 0 e +∞ (a patto di scegliere degli opportuni valori per r ed M ). Essendo il nostro scopo
originario quello di fare in modo che il sistema in anello chiuso fosse il più verosimigliante
possibile a quello ad anello aperto potremmo sfruttare questi due parametri liberi per fare
in modo che gli autovalori del sistema retroazionato siano il più vicino possibile a quelli
originali. Per poter svolgere questo compito possiamo sfruttare svariati metodi, qui di seguito
ne verranno presentati due:
1. il metodo analitico;
2. il metodo empirico.
In entrambi i metodi si cercherà di minimizzare la distanza tra gli autovalori dei due sistemi.
Al fine di minimizzare questa differenza noi sfruttiamo una norma, tra le opzioni disponibili
potremmo scegliere:
• norma 1, ||(x1 , x2 )||1 = |x1 | + |x2 |
p
• norma 2, ||(x1 , x2 )||2 = |x1 |2 + |x2 |2
• norma ∞, max(|x1 |, |x2 |).
Dovendo noi lavorare su valori complessi la norma 2 ci resta particolarmente comoda in quando
ci restituisce un valore per la distanza che è interamente reale. Ora che abbiamo definito la
norma da utilizzare vediamo i due metodi.
Metodo analitico
Per poter usare questo metodo definisco due vettori z e w, il primo contenente tutti gli autovalori ad anello aperto ed il secondo contenente quelli ad anello chiuso. Quello che vogliamo
fare è effettuare la seguente minimizzazione:
min ||z − w||2 ,
c,d
dove ||z − w||2 =
p
|z1 − w1 |2 + |z2 − w2 |2 + · · · + |zn − wn |2 .
38
CAPITOLO 3. CONTROLLO DECENTRALIZZATO IN RETROAZIONE
Sviluppo i calcoli nel caso di 3 robot per poter fornire una soluzione (trascuro i due
autovalori nulli perchè tanto sono sempre presenti in entrambi i vettori). I miei vettori
diventano:




(ϕ2 − 1)c
(ϕ2 − 1)e+jα

 (ϕ2 − 1)e−jα 

 , w =  (ϕ2 − 1)d 
z=
 (ϕ3 − 1)c 
 (ϕ3 − 1)e+jα 
−jα
(ϕ3 − 1)e
(ϕ3 − 1)d
Andandoli a sostituire nella norma ottengo:
v
2 2
u
√ !
√ !
u
3
3
3
3
(cos(α + j sin(α) − c)) + − −
(cos(α − j sin(α) − d)) +
||z − w||2 = t − −
2
2
2
2
2 2
√ !
√ !
3
3
3
3
(cos(α + j sin(α) − c)) + − +
(cos(α − j sin(α) − c)) .
+ − +
2
2
2
2
Svolgendo i conti sotto radice posso semplificare fino ad ottenere:
p
||z − w||2 = 12 + 6c2 + 6d2 − 12c · cos(α) − 12d · cos(α)
A questo punto posso usare il metodo del gradiente per trovare il minimo, in pratica cerco il
valore del parametro che mi annulla la sua derivata parziale (in quel punto il problema ha un
minimo).
12c − 12 cos(α)
∂||z − w||2
= p
,
2
∂c
2 12 + 6c + 6d2 − 12c · cos(α) − 12d · cos(α)
12d − 12 cos(α)
∂||z − w||2
= p
.
2
∂d
2 12 + 6c + 6d2 − 12c · cos(α) − 12d · cos(α)
(3.23)
(3.24)
Osservando le equazioni 3.23 e 3.24, si vede che queste si annullano in un valore comune
che è c = d = cos(α). Con passaggi analoghi è possibile verificare il risultato per qualunque
dimensione dei vettori z e w.
Metodo empirico
Nel metodo sopra descritto si vanno a minimizzare le distanze tra autovalori correlati, vengono
associati insieme i λ+
i corrispondenti all’anello chiuso e all’anello aperto (lo stesso vale per i
λ−
).
Si
crea
così
un
metodo
di assegnamento fisso, ma questa non è la scelta migliore possibile.
i
Infatti osservando la proprietà degli autovalori riportata nell’equazione 3.3, si vede che gli
autovalori sono a coppie complesse coniugate. Visto che questa proprietà si riscontra anche
nel sistema ad anello chiuso conviene assegnare le coppie di autovalori complesse coniugate a
termini nel sistema retroazionato con lo stesso parametro. Una volta associate le coppie di
autovalori si definisce la seguente notazione, ℜ(aa) e ℑ(aa) sono rispettivamente la parte reale
e la parte immaginaria dell’autovalore ad anello aperto, mentre ℜ(ac) e ℑ(ac) sono parte reale
e immaginaria dell’autovalore ad anello chiuso. Si vanno adesso ad analizzare una ad una le
coppie di autovalori e si controlla in quale dei seguenti casi siamo:
• ℜ(aa) > ℜ(ac) e ℑ(aa) > ℑ(ac),
3.3. RISULTATI DELLE SIMULAZIONI E SCELTE PROGETTUALI
39
• ℜ(aa) < ℜ(ac) e ℑ(aa) > ℑ(ac),
• ℜ(aa) > ℜ(ac) e ℑ(aa) < ℑ(ac),
• ℜ(aa) < ℜ(ac) e ℑ(aa) < ℑ(ac).
Da test sperimentali si trova che il parametro con il quale ottengo la
tra una
h minore distanza
i
ℜ(aa) ℑ(aa)
coppia di autovalori appartiene all’intervallo di valori compreso tra ℜ(ac) , ℑ(ac) , ovviamente
con gli estremi che si possono scambiare a seconda del
h caso in cui
i sono (per esempio nel
ℑ(aa) ℜ(aa)
terzo dei casi sopra riportati il mio intervallo sarà tra ℑ(ac) , ℜ(ac) ). Si provvede quindi a
calcolare gli intervalli sopra descritti per ogni coppia di autovalori, una volta fatto questo si
effettua un’unione tra gli intervalli riguardanti uno stesso parametro facendo attenzione al
fatto che l’intervallo di valori ottenuto sia continuo, se ad esempio ci sono delle discontinuità
nell’intervallo che si ottiene queste vengono rimosse ([−1, −0.5] ∪ [−0.4, 0.2] diventa [-1,0.2]).
Ottenuti questi insiemi di valori non resta che trovare il valore che mi minimizza la distanza
tra tutti gli autovalori.
Riassumendo, i passaggi da svolgere sono i seguenti:
1. creare associazioni tra le coppie di autovalori,
2. trovare intervalli con soluzione migliore per ogni coppia di autovalori,
3. fare unione degli intervalli trovati al passo precedente,
4. trovare i valori migliori per c e d all’interno dei due intervalli trovati al passo 3.
Commenti sui 2 metodi: Il primo metodo presenta una soluzione univoca che però risulta
essere banale, il secondo metodo d’altra parte dà soluzioni migliori ma che variano ad ogni
angolo α. In più questo secondo metodo ha un problema notevole che è quello dell’assegnamento, infatti seppur facilmente fattibile da un operatore umano questa tematica risulta essere
complessa da implementare algoritmicamente per un numero di autovalori non piccolo.
Grafici delle simulazioni
Ora che sono stati definiti anche dei valori per c e d possiamo mostrare i risultati delle nostre
modifiche sul controllo in anello chiuso. Le simulazioni riportate in figura 3.8 sono state fatte
con 3 veicoli, un angolo α = π4 , un valore del raggio r = 2 ed M = 10. I valori di c e d sono
nel caso del metodo analitico c = d = 0.7070, mentre nel caso del metodo empirico c = 0.7070
e d = 0.9660. Come si può vedere nonostante il comportamento differisca ancora da quello
in anello aperto questa volta il risultato è decisamente migliore, da notare che tutti i vincoli
sulle distanze sono rispettati.
Per quanto riguarda i valori del metodo empirico si vede che i robot convergono più rapidamente lungo un asse, questo è dovuto al fatto di avere valori per c e d diversi (la convergenza
più rapida è sull’asse cui corrisponde il parametro maggiore). Facendo delle simulazioni al
variare dei parametri c e d è inoltre possibile notare che più questi crescono e maggiore è la
velocità di convergenza, esempi di quanto detto sono visibili in figura 3.9
40
CAPITOLO 3. CONTROLLO DECENTRALIZZATO IN RETROAZIONE
4
4
R1
3.8
R1
3.8
R
R
2
3.6
R3
3.6
3.4
3.4
3.2
3.2
y [m]
y [m]
2
R3
3
3
2.8
2.8
2.6
2.6
2.4
2.4
2.2
2.2
2
3
3.5
4
x [m]
4.5
2
5
3
3.5
4
x [m]
(a)
5
(b)
Distanza lungo asse x
Distanza lungo asse x
2
2
1.8
1.8
1.6
1.6
1.4
1.4
|x − x |
1
2
|x2 − x3|
1.2
1
1
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0
1
2
3
4
5
t [s]
6
7
8
|x − x |
1
9
10
0
|x1 − x3|
0
1
2
3
4
(c)
5
t [s]
6
7
8
9
10
(d)
Distanza lungo asse y
Distanza lungo asse y
2
2
1.8
1.8
1.6
1.6
1.4
1.4
|y1 − y2|
|y1 − y2|
|y − y |
2
1.2
|y − y |
3
2
1.2
|y − y |
1
1
1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
3
|y − y |
3
1
0
2
|x2 − x3|
1.2
|x1 − x3|
0.8
0
4.5
3
0.2
0
1
2
3
4
5
t [s]
6
7
8
9
10
(e)
0
0
1
2
3
4
5
t [s]
6
7
8
9
10
(f)
4
3.5
R1
R2
R
3
y [m]
3
2.5
2
3
3.5
4
x [m]
4.5
5
5.5
(g)
Figura 3.8: (a) Traiettorie con i parametri del metodo analitico; (b) Traiettorie con i parametri
del metodo empirico; (c),(d) Distanze dei veicoli lungo l’asse x con i parametri rispettivamente
del metodo analitico e di quello empirico; (e),(f) Distanze dei veicoli lungo l’asse y con i
parametri rispettivamente del metodo analitico e di quello empirico; (g) Traiettorie originali
ad anello aperto.
41
4
4
3.5
3.5
3
3
y [m]
y [m]
3.4. CONCLUSIONI
2.5
2
2.5
2
R1
1.5
R1
1.5
R2
R2
R3
1
R4
0
0.5
1
1.5
2
2.5
x [m]
3
3.5
4
4.5
R3
1
5
(a)
R4
0
0.5
1
1.5
2
2.5
x [m]
3
3.5
4
4.5
5
(b)
4
3.5
y [m]
3
2.5
2
R1
1.5
R2
R3
1
R
4
0
0.5
1
1.5
2
2.5
x [m]
3
3.5
4
4.5
5
(c)
Figura 3.9: (a) Comportamento con parametri pari a c = d = 5; (b)Comportamento con
parametri pari a c = d = 40; (c)Comportamento con parametri pari a c = d = 300.
3.4
Conclusioni
Il metodo di controllo retroazionato nasce come un’alternativa alla condizione di connettività
sul raggio del disco di comunicazione. L’obiettivo che ci eravamo prefissati era di trovare una
soluzione in cui il valore del raggio dei dischi di comunicazione potesse essere fissato da un
utente, rimuovendo così la sua dipendenza dagli autovalori e dagli autovettori del sistema.
Quello che abbiamo ottenuto è un sistema funzionante che garantisce la situazione di
comunicazione tra i veicoli mentre questi svolgono le loro funzioni. Andiamo adesso a valutare
pregi e difetti del risultato trovato.
Tra i pregi troviamo sicuramente l’utilizzo di un problema di programmazione lineare
per la risoluzione del problema, questo automatizza il calcolo dei risultati per qualunque
scenario, lasciando all’utente come unica richiesta il settaggio dei parametri dello spazio di
lavoro iniziale15 . Inoltre la libertà di scelta dei due parametri c e d ci permette di variare la
velocità con cui i robot si muovono permettendoci di adattare il task alle nostre necessità.
15
Tra questi parametri troviamo ad esempio l’angolo di vista α, il raggio r ed il parametro fittizio M .
42
CAPITOLO 3. CONTROLLO DECENTRALIZZATO IN RETROAZIONE
Purtroppo l’utilizzo di un problema di ottimizzazione per risolvere la computazione della
matrice di retroazione porta anche delle problematiche. Infatti la soluzione al problema non è
univoca ma solo una delle ∞ possibili, basta osservare il vincolo 3.18 per capirlo. Chi sceglie
la soluzione all’interno dell’insieme di quelle possibili è ovviamente il solver che và quindi
ad assumere una discreta importanza, solver diversi potrebbero portare a soluzioni diverse
in quanto sfruttano algoritmi con filosofie non identiche. Si deve poi anche citare il fatto
che il raggio di comunicazione dei veicoli non influisce direttamente sulla soluzione, ma solo
sulla matrice H, assume quindi una notevole importanza il rapporto tra i parametri r ed M ,
inoltre la H viene modificata a seconda dell’evenienza dal solver che talvolta sceglie soluzioni
limitanti per i nostri scopi. Questa eccessiva importanza del solver nella scelta delle soluzioni
ci ha impedito di replicare il comportamento che il sistema originale ottiene con un angolo di
vista α = nπ .
Pensando a sviluppi futuri per questo metodo possiamo immaginare di rimuovere il vincolo
che limita le dipendenze di ogni veicolo a se stesso ed al suo vicino che lo precede in formazione.
Un possibile scenario potrebbe essere quello di avere dipendenze da tre veicoli, ci sarebbe
quindi “dialogo” tra un veicolo ed i suoi due vicini, quello che lo precede in formazione e quello
che lo segue. Questo andrebbe a cambiare la struttura stessa del sistema retroazionato, non
saremmo più nel caso del cyclic pursuit. Questa modifica sostanziale ci permetterebbe però
una possibile svolta in quanto i parametri da controllare non sarebbero più 8, ma ben 1216 .
Con questi nuovi parametri il mio sistema si complicherebbe ed anche le semplici dinamiche
di anello chiuso di cui disponiamo al momento ne uscirebbero modificate. Non sarebbe quindi
da escludere che il solver avendo a disposizione una maggiore libertà facesse scelte più proficue
permettendoci quindi un ulteriore avvicinamento verso le dinamiche originali di anello aperto.
16
Questo vale nel caso con dipendenza da 3 veicoli, se il numero di dipendenze aumentasse ancora i parametri
liberi sarebbero 4 · num.dipendenze.
Bibliografia
[1] M. Kvasnica, P. Grieder, and M. Baotić. Multi-Parametric Toolbox (MPT), 2004.
[2] Giovanni Marro. Teoria dei Sistemi e del Controllo. Zanichelli, 1993.
[3] F. Morbidi, G. Ripaccioli, and D. Prattichizzo. On Connectivity Maintenance in Linear
Cyclic Pursuit. In Proc. IEEE Int. Conf. Robot. Automat, 2009, to appear.
[4] M. Pavone and E. Frazzoli. Decentralized Policies for Geometric Pattern Formation and
Path Coverage. ASME J. Dyn. Syst. Meas. Contr., 129(5):633–643, 2007.
[5] Marina Vassilaki and George Bitsoris. Constrained regulation of linear continuous-time
dynamical systems. Syst. Control Lett., 13(3):247–252, 1989.
[6] Nathan Sorensen Wei Ren. Distributed coordination architecture for multi-robot formation
control, 2004.
43