Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Relatore:
Presentata da:
Chiar.mo Prof.
Luca Furieri
Lorenzo Marconi
II Sessione
Anno Accademico 2013-2014
Introduzione
Il sempre crescente numero di applicazioni di reti di sensori, robot cooperanti e formazioni di veicoli, ha fatto s` che le problematiche legate al coordinamento di gruppo
diventassero tra le pi`
u studiate nellambito della teoria dei controlli. La sfida principale in tali applicazioni `e quella di raggiungere un comportamento di gruppo prestabilito
utilizzando algoritmi decentralizzati e locali, piuttosto che dei controllori centralizzati
ai quali riferirsi. Molto simile al problema del coordinamento `e quello dellagreement,
o consensus: lobiettivo `e quello di portare variabili di interesse ad un valore comune.
Risolvendo tale problema, diventa possibile pensare ad un numero estremamente vasto di
applicazioni, spaziando ad esempio dallo studio dei comportamenti di gruppo nei branchi
e negli stormi di organismi viventi alla computazione distribuita o alla sorveglianza di
foreste per prevenire incendi. In questo lavoro, il focus applicativo `e posto sul controllo
di formazione di un network di veicoli, le cui traiettorie di riferimento vengono generate
utilizzando algoritmi locali di coordinamento.
La strategia che verr`a studiata ha una natura distribuita: non `e prevista la presenza
di un leader o di un coordinatore esterno di altra natura. Piuttosto, la formazione raggiunta `e ottenuta come conseguenza dellinterazione locale tra i singoli veicoli.
I sistemi dinamici, che possono essere di qualsiasi natura (biologica, fisica, ecc...)
vengono solitamente rappresentati mediante i cosiddetti diagrammi a blocchi: il sistema
`e cio`e raffigurato come un box che riceve delle variabili in ingresso e ne produce altre in
uscita. Tuttavia, nel momento in cui pensiamo ad un insieme di sistemi dinamici comunicanti ed interagenti tra di loro, si viene a creare una nuova struttura pi`
u complessa,
i
ii
INTRODUZIONE
chiamata rete di sistemi dinamici o semplicemente gruppo, in cui ogni sistema dinamico `e rappresentato da un nodo o agente, ed esistono dei collegamenti tra i vari nodi che
permettono ad un agente di interagire con i suoi vicini nella rete. Nellottica di una rete
di tal genere, assumono grande importanza i problemi di consenso e sincronizzazione. In
una rete di agenti, consensus indica il raggiungimento di un agreement relativamente ad
una certa quantit`a di interesse che dipende dallo stato di tutti gli agenti. Un algoritmo
(o protocollo) di consenso `e una legge di interazione che regola lo scambio di informazioni tra un agente ed i suoi vicini nella rete al fine di raggiungere un accordo complessivo.
Struttura e finalit`
a della tesi.
Lo scopo dellelaborato `e duplice. Da una parte si vuole fornire una trattazione teorica del problema del consenso e della sincronizzazione su sistemi ad una o pi`
u variabili
di stato. Dallaltra si vogliono utilizzare tali risultati teorici per unattivit`a in ambiente
Matlab/Simulink, con il fine applicativo di generare le traiettorie di riferimento per un
gruppo di quadrirotori in formazione. Alla stesura di questo elaborato `e stata affiancata
lattivit`a di laboratorio presso il Center for Research on Complex Automated Systems
(CASY-DEI Universit`a di Bologna).
Il capitolo 1 presenta tutti gli strumenti matematici e teorici che saranno ripresi e
sfruttati nei capitoli seguenti. In particolare, si introducono:
Teoria dei Grafi.
Forma e trasformazione di Jordan.
Il prodotto di Kronecker.
Formalizzazione del problema del Consenso.
Modelli nello spazio degli stati e cambi di variabile.
INTRODUZIONE
Nel capitolo 2, viene mostrato il comportamento di una rete di integratori connessi
tra di loro e viene analizzato sotto quali condizioni il consenso viene raggiunto. Per
verificare i risultati noti in letteratura, sono state svolte simulazioni in ambiente Matlab
Simulink: i casi presi in esame comprendevano sia condizioni di topologie di comunicazioni fisse che casi di topologie tempo varianti.
Il capitolo 4 entra nel dettaglio del modello simulativo per la generazione di traiettorie, che serviranno come generatori di riferimento per un gruppo di quadrirotori. Sar`a
possibile impostare raggio e coordinate del centro della traiettoria target, simulando un
tipico scenario di loitering di un sistema multi-robot. La teoria del consenso sia su sistemi integratori che oscillatori sar`a sfruttata per ottenere questo risultato.
iii
iv
INTRODUZIONE
Indice
Introduzione
1.1
1.1.1
1.1.2
1.1.3
Il prodotto di Kronecker. . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1
1.3
1.4
1.4.1
1.4.2
10
La definizione di consenso . . . . . . . . . . . . . . . . . . . . . . . . . .
11
1.2
1.5
13
Il protocollo di consenso. . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.1.1
14
16
2.2.1
16
2.2.2
La propriet`a di contrazione
. . . . . . . . . . . . . . . . . . . . .
19
2.3
20
2.4
23
2.2
vi
INDICE
2.4.1
23
2.4.2
26
2.4.3
30
33
3.1
34
3.2
35
3.2.1
Loutput consensus . . . . . . . . . . . . . . . . . . . . . . . . . .
36
37
3.3.1
38
3.3.2
41
3.4
43
3.5
44
3.5.1
47
3.3
49
51
4.1.1
53
4.2
54
4.3
55
57
5.1
La Ground Station . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
5.2
I risultati di laboratorio. . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
Conclusioni
65
Bibliografia
67
Schema Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.2
Grafo Connesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.3
Grafo Sconnesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
2.4
Modello Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
2.5
29
2.6
31
3.1
48
4.1
51
4.2
54
4.3
55
4.4
56
5.1
Quadrirotori CrazyFlie. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
5.2
59
5.3
Optitrack. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
5.4
60
5.5
61
5.6
63
5.7
63
5.8
64
vii
Capitolo 1
Teoria e strumenti matematici.
Nello studio di problemi di coordinamento e sincronizzazione di Sistemi Multiagente
(MAS), la comunicazione tra agenti assume un ruolo fondamentale. Il sistema dinamico
complessivo infatti, `e il risultato dellinterconnessione di un certo numero di agenti, che
comunicano tra loro secondo una precisa topologia di comunicazione.
Supponiamo dunque che pi`
u sistemi interagiscano luno con laltro tramite una rete di
comunicazione o una rete di sensing, oppure con una combinazione di entrambe: appare
naturale modellare queste interazioni tra i sistemi mediante grafi diretti o indiretti.
1.1
dove = {1, 2, 3, 4} e = {(1, 2), (2, 3), (3, 4)}. Si noti che le coppie di nodi non sono
ordinate.
Si parla invece di grafo diretto nel caso in cui sia formato da coppie ordinate di
nodi. In tal caso, la presenza dellarco (i, j) denota che il sistema i pu`o ricevere
informazioni dal sistema j, ma non viceversa. Quello che segue `e un esempio di grafo
diretto.
1
dove = {1, 2, 3, 4} e = {(2, 1), (3, 2), (3, 4)} e le coppie di nodi sono ordinate.
Archi che collegano un nodo con se stesso non sono ammessi, cio`e i , (i, i)
/ . Considereremo nel resto della tesi che G sia un grafo diretto, se non esplicitato altrimenti.
1.1.1
La propriet`
a di connessione.
Definite le matrici rappresentative, `e possibile stabilire se un grafo diretto `e connesso
attraverso lanalisi degli autovalori della matrice Laplaciana associate a tale grafo. Vale
infatti il seguente teorema:
Teorema 1. Supponiamo che G = (, ) sia un grafo diretto tale che ogni elemento
della matrice di adiacenza A associata appartenga allinsieme {0} {, +} per un
certo > 0 . Allora G `e connesso se e solo se il secondo autovalore della Laplaciana
associata L ha parte reale positiva, cio`e se <(2 (L)) 0, dove per convenzione il secondo
autovalore di L `e quello con la seconda parte reale pi`
u piccola.
1.1.2
Le definizioni finora date sono facilmente estendibili a grafi con topologia di connessione variabile nel tempo. Anche le matrici rappresentative A(t), L(t) saranno dunque
dipendenti dal tempo: questa osservazione ci porta a considerare la matrice di adiacenza
R t+T
media nel periodo T, definita come A(t)avg = T1 t A( )d .
Definizione 3. Il grafo GT avg (t) indotto da AT (t)avg si dice uniformemente connesso se
t R, {i , i centroide di GT (t)}, cio`e se GT avg (t) `e connesso per ogni t. Si pu`
o
verificare la connessione di GT avg (t) allistante t sfruttando il Teorema 1 .
1.1.3
da quei nodi (se esistono), chiamati residui, che possono avere degli archi entranti provenienti da nodi di qualcuna delle iCC, ma non degli archi uscenti diretti a nodi delle
iCC. Tale grafo viene detto grafo residuo.
1.2
Il prodotto di Kronecker.
a B ... a1n B
11
A B = ...
...
...
a b
a11 b11
11 11
...
...
...
...
AB =
...
...
...
...
1.2.1
...
... ...
...
...
a1n b12
a1n b22
...
...
...
a1n bp2
...
...
...
... ...
...
...
...
...
...
... ...
...
...
...
... am1 b1q ... ... amn b11 amn b12 ...
... am1 b2q ... ... amn b21 amn b22 ...
...
...
... ...
...
...
...
... am1 bpq ... ... amn bp1 amn bp2 ...
a1n b2q
...
a1n bpq
...
...
amn b1q
amn b2q
...
amn bpq
Propriet`
a del prodotto di Kronecker
Bilinearit`
a e associativit`
a
Il prodotto di Kronecker `e un caso speciale di prodotto tensoriale, dunque `e bilineare
e associativo:
A (B + C) = A B + A C.
(A + B) C = A C + B C.
(kA) B = A (kB) = k(A B).
(A B) C = A (B C).
Tuttavia, questo prodotto non `e commutativo.
Prodotto misto
Se A, B, C, D sono matrici tali che esiste il prodotto righe per colonne tra A e C e
tra B e D, allora esiste anche (A B)(C D) e vale che:
i j ,
i = 1, ..., n; j = 1, ..., q.
1.3
x(t)
= Ax(t) + Bu(t)
(1.1)
1.4
La scelta del modello che rappresenta il comportamento del nostro sistema non `e
affatto univoca. Consideriamo infatti il modello 1.1 : se prendiamo una trasformazione
lineare T Rdd biunivoca e quindi non singolare, possiamo effettuare un cambio di
variabili definendo il vettore di stato z come
z(t) = T x(t).
(1.2)
x(t) = T 1 z(t).
(1.3)
Sostituendo la 1.3 nelle equazioni in 1.1, dopo aver moltiplicato a sinistra per T si
ottiene il modello:
(1.4)
A0 = T AT 1 ,
B 0 = T B,
C 0 = CT 1 ,
D0 = D.
(1.5)
Questo sistema dinamico `e equivalente a quello descritto dalle equazioni 1.1 nel senso
che, per un ingresso u(t), t t0 , e due stati iniziali xt0 e zt0 correlati dalla condizione
zt0 = T xt0 , le traiettorie dello stato in 1.1 e in 1.4 sono effettivamente legati dalla condizione 1.3 e i movimenti delluscita sono identici. Tutto ci`o `e semplicemente verificabile
per sostituzione. Ne ricaviamo che le quadruple di matrici (A, B, C, D) e (A, B, C,
1.4.1
Nel problema del consenso risulta utile effettuare un cambio di variabili sugli stati
per portare la matrice Laplaciana che descrive le connessioni tra i sistemi in una forma
pi`
u comoda. In particolare ci interessa ottenere una matrice diagonale, in modo che le
equazioni che descrivono levoluzione di ogni sistema dipendano soltanto dalle variabili di
stato del sistema stesso e non da quelle dei sistemi suoi vicini nel grafo di comunicazione.
Teorema 3 (Diagonalizzabilit`a di una matrice). Una matrice A si dice diagonalizzabile
se e solo se V, , = V 1 AV , dove V `e una opportuna matrice invertibile formata
da autovettori di A, mentre `e una matrice diagonale. In tal caso A e sono matrici
simili, e cio`e hanno:
Stesso determinante.
Stessa traccia.
Stesso rango.
Stessi autovalori.
Purtroppo per`o non tutte le matrici sono diagonalizzabili. Prendiamo ad esempio la
matrice Laplaciana
2 1 1
L= 0
1 1
1 0
1
10
Dal momento che lautospazio relativo al suo autovalore = 2 ha dimensione 1 nonostante la corrispondente molteplicit`a aritmetica sia pari a 2, non `e possibile trovare
una matrice V formata di autovettori di L che abbia rango pari a 3. Non esiste quindi
una matrice diagonale simile ad L.
1.4.2
Una matrice in forma di Jordan `e una matrice diagonale a blocchi del tipo
J1
0
... ...
J =
0
Jk
dove Ji `e il blocco di Jordan relativo allautovalore i , definito come
11
i 1
Ji =
0
...
...
...
...
...
0 .
Esso contiene cio`e sulla diagonale il valore i ed il valore 1 in ogni posizione (i, i + 1).
Notiamo che qualora tutti i blocchi di Jordan abbiano dimensione unitaria, la matrice
in forma canonica di Jordan `e diagonale.
1.5
La definizione di consenso
(1.6)
12
(1.7)
Ci sono diversi strumenti utilizzabili per lanalisi del problema: quello a cui siamo
pi`
u interessati `e lanalisi delle propriet`a spettrali delle matrici associate al grafo di comunicazione del sistema. Altri metodi di analisi, come vedremo nel capitolo 2, si basano
sul concetto di funzione di Lyapunov.
Capitolo 2
Lalgoritmo di consenso e
simulazioni su sistemi Integratori.
Abbiamo definito in 1.5 il problema del consenso su sistemi dinamici; siamo adesso
interessati ad illustrare quale protocollo, basato sulla topologia di comunicazione, permetta di generare un ingresso di controllo che porti alla convergenza dei sistemi su un
valore comune.
2.1
Il protocollo di consenso.
x k = uk ,
dove xk `e lo stato del sistema e uk `e lingresso di controllo.
Se definiamo tale ingresso come:
13
(2.1)
14
uk =
n
X
aki (xi xk ) =
i=1
n
X
lki xi ,
(2.2)
i=1
dove lki `e lelemento ki della matrice Laplaciana associata al grafo G, abbiamo applicato quello che in letteratura `e chiamato protocollo di consenso. Tale azione di controllo
dipende dalla differenza relativa tra le variabili di stato (termini del tipo xi xk ) di
agenti che sono effettivamente comunicanti (contributo degli elementi aki oppure lki ).
x = Lx
(2.3)
dove
x = col(x1 , x2 , ..., xn ).
La soluzione nel tempo dellequazione 2.3, `e data da
x(t) = eLt x0
(2.4)
2.1.1
Verifichiamo adesso che lalgoritmo di consenso sopra descritto porta alla convergenza
degli stati su valori coincidenti, attraverso lanalisi spettrale della matrice laplaciana L
supposta per il momento indipendente dal tempo. Vale:
0 = 0 `
e autovalore di L. Dal momento che la somma degli elementi su ogni
riga `e nulla per definizione, il determinante `e sicuramente nullo, cio`e rank(L) < n.
Visto che dim(Ker(L)) = n rank(L), ne deriva che la dimensione dellautospazio
relativo allautovalore 0 `e non nulla, quindi 0 `e autovalore.
Visto che L1n = 0n , ne ricaviamo subito che 1n `e autovettore destro di L.
15
L`
e una matrice con autovalori a parte reale non negativa.
Nel caso di grafo non diretto, si pu`o dimostrare che gli autovalori sono reali non
negativi. Per provarlo, occorre introdurre una definizione:
Definizione 7. Si definisce Laplaciana dellarco (i, j) la matrice L(i,j) che consiste
dei valori non nulli relativi al solo arco (i, j). Se larco `e ad esempio (1, 2), allora
1 1 0 ... 0
1 1 0 ... 0
1 1
[zeri]
L(1,2) = 0
0 0 ... 0 =
1 1
0
0 0 ... 0
dove con si indica la somma di Kronecker. Si pu`o quindi scrivere che
L=
L(i,j)
(i,j)
Notando che
1
1
= 1 1
1 1
1
1
xT L(1,2) x = x1 x2
x1
1 1 = (x1 x2 )2
1
x2
1
(i,j)
L(i,j) )x =
(xi xj )2
(i,j)
dimostrando cos` che xT Lx `e una forma quadratica e L `e quindi semidefinita positiva per definizione (ricordiamo che una matrice semidefinita positiva ha autovalori
reali non negativi).
16
(2.5)
Dal momento che ogni vettore del tipo kn rappresenta un vettore di stati che hanno
raggiunto il consenso ( tutti gli stati hanno lo stesso valore k), ne deduciamo che tutti
gli stati di consenso sono anche possibili stati di equilibrio.
2.2
Effettuare unanalisi spettrale della matrice Laplaciana non `e lunico approccio che
possiamo seguire per analizzare la convergenza dellequazione 2.3 sugli stati di consenso.
Altri approcci si basano sul trovare opportune funzioni di Lyapunov che ci garantiscano
la stabilit`a esponenziale, con alcuni vantaggi derivanti quali una descrizione qualitativa
pi`
u comprensibile del comportamento dei sistemi.
2.2.1
Analisi di stabilit`
a tramite funzioni di Lyapunov.
17
x(t)
= Ax(t),
x Rn
(2.6)
V (x) = xT P x
(2.7)
dove P `e definita simmetrica e positiva. Questa funzione V `e continua ed ha le derivate parziali prime continue. Perci`o, dal momento che P `e definita positiva, lorigine
`e lunico punto di minimo di V . Dunque, una forma quadratica definita positiva come
questa `e una possibile candidata funzione di Lyapunov.
Rimane da determinare come V (x) sia influenzato dalle dinamiche del sistema. Si ha
d
V (x) = xT P x
dt
= x T P x + xT P x
T
(2.8)
= x A P x + x P Ax
= xT (AT P + P A)x
Pertanto, definendo la matrice
Q = AT P + P A
(2.9)
V (x) = xT Qx
(2.10)
si ha
La funzione V (x) `e nuovamente una forma quadratica e V sar`a una funzione di Lyapunov se la matrice Q `e semidefinita positiva. Infatti, se Q `e semidefinita positiva si pu`o
affermare che il sistema `e asintoticamente stabile e converge cio`e con velocit`a esponenziale.
18
x(t)
= Lx(t), x Rn
la convergenza pu`o essere verificata considerando la funzione candidata di Lyapunov
xT (t)x(t)
=
V (x, t) =
2
Pn
i=1
x2i
(2.11)
Risulta che
x T x + xT x
xT LT x xT Lx
xT (LT + L)x
V (x, t) =
=
=
.
2
2
2
(2.12)
Nel caso in cui il grafo associato ad L sia non diretto, L risulta essere simmetrica
e dunque vale
V (x, t) = xT Lx.
(2.13)
{x Rn | V (x, t) = xT Lx = 0} {1n | R}
(2.14)
ovvero, linsieme di stati di consenso corrisponde allinsieme di stati di equilibrio attrattivo, come volevamo mostrare.
Nel caso che il grafo sia invece diretto, continua a valere la 2.12, ma non pi`
u la 2.13.
Daltra parte, sotto lipotesi di un grafo diretto fortemente connesso, oppure debolmente
connesso e bilanciato, vale che
(2.15)
19
2.2.2
La propriet`
a di contrazione
x k = akl (xl xk ).
Essa si basa sul fatto che ogni sistema xk varia proporzionalmente alla distanza
che corre tra lo stato di ogni sistema comunicante ed esso stesso, cio`e alla quantit`a
xl xk , l comunicante. In altre parole, ogni stato si muove sempre in direzione degli
altri stati collegati nel grafo di comunicazione. Varr`a dunque che min{x1 , ..., xn } non pu`o
decrescere e max{x1 , ..., xn } non pu`o crescere. Possiamo dunque introdurre la funzione
di Lyapunov
(2.16)
x = L(t)x
Si assuma che L(t) sia una funzione limitata e quasi-continua nel tempo. Si assuma
inoltre che L(t) sia Metzler con somme di righe nulle. Se esiste un indice k {1, ..., n},
20
t+T
A(s)ds
t
ha la propriet`a che tutti i nodi possono essere raggiunti dal nodo k (ed `e cio`e connesso), allora il set degli stati di consenso `e uniformemente ed esponenzialmente stabile.
In particolare, tutte le componenti di ogni soluzione (t) del sistema lineare considerato
convergono a un valore comune per t .
La funzione di Lyapunov di cui si `e parlato in questa sottosezione permette di
dimostrare il teorema.
2.3
k=
1X
xi (0),
n i=1
(2.17)
andando a risolvere quello che viene chiamato in letteratura problema dellaverageconsensus. Purtroppo ci`o non `e garantito dal semplice fatto che il grafo sia connesso,
come vediamo nel seguito.
Notiamo innanzitutto che il valore finale di convergenza deve essere quel valore k tale
che:
k1n = limt+ x(t) = limt+ (eLt )x0 = Rx0 .
(2.18)
k1n = Rx0
Pn
i=1
ui = 0, x Rn ,
Dimostrazione.
lonna del Laplaciano `e nulla. La somma degli elementi della colonna j-esima
corrisponde a:
n
X
lij =
i=1
n
X
i=1,i6=j
e nel caso che venga posta a 0, porta a osservare che il nodo j deve essere bilanciato.
Le stesse osservazioni valgono per ogni altra colonna, dimostrando lequivalenza tra
laffermazione 1 e la 2.
Per quanto riguarda lequivalenza tra la 2 e la 3, vale che:
0=
n
X
i=1
ui = 1T u = 1T Lx,
21
22
Per verificare la validit`a di quanto detto su un caso reale, prendiamo come esempio
il seguente grafo:
1
u1 = (x2 x1 ) + (x3 x1 )
u2 = (x3 x2 )
u3 = x1 x3
da cui segue che
Pn
i=1
1
4
1
4
1
4
1
4
R = wr wl T = 14
1
4
1
2
1
2
1
2
e il valore di convergenza sar`a Rx0 = 14 (x1 (0) + x2 (0) + 2x3 (0)), diverso dal valor
medio.
Sfruttando i risultati ottenuti, enunciamo il seguente teorema riassuntivo:
Teorema 7. Si consideri una rete di integratori con una topologia costante rappresentata
da un grafo G diretto e fortemente connesso. Il protocollo del consenso `e globalmente
asintoticamente stabile e risolve il problema dellaverage-consensus se e soltanto se il
grafo `
e bilanciato e debolmente connesso. Nel caso il grafo non sia bilanciato,
2.4
2.4.1
Per questa simulazione abbiamo utilizzato il modello simulink di figura 2.1, che implementa lequazione differenziale x = Lx. Esso `e composto di una matrice Laplaciana
23
24
1
s
K*u
Scope
Integratore
Laplaciana
1
X
1 x0
1
0
0
0 1
1 1
0
0
0
L = 0 1 1
0
0
0
0 1 1
0
0
0
0 1 1
25
100
x1
x2
x3
x4
x5
50
50
0
4
Time
26
1 0 1 0 0
1 1 0 0 0
L= 0 0 0 0 0
0 0 0 1 1
0 0 0 0 0
.
ll risultato della simulazione `e riportato in Figura 2.3.
In questo caso notiamo che i sistemi 1,2,3 e i sistemi 4,5 raggiungono due valori di
consenso differenti: nonostante il grafo complessivo risulti sconnesso, infatti, i sottografi
relativi ai sistemi 1,2,3 e a 4,5 sono connessi.
2.4.2
Fino ad ora si `e fatto riferimento a matrici Laplaciane costanti nel tempo ed abbiamo
riscontrato, come previsto dalla teoria, che il consenso tra tutti i sistemi viene raggiunto
se e solo se il grafo di comunicazione `e connesso.
27
100
x1
x2
x3
x4
x5
50
50
0
4
Time
Il caso pi`
u interessante dal punto di vista dello studio della convergenza dellalgoritmo di consenso `e quello in cui tutte le matrici appartenenti al set L1 , L2 , . . . , Lm sono
associate ad un grafo di comunicazione sconnesso: la seguente simulazione `e volta a
studiare proprio questa configurazione. Utilizzeremo, per semplicit`a, soltanto i seguenti
due grafi sconnessi
28
1 1 0
L1 = 0 1 1
0
0 0
0
0 0
0
1 0 0 0 1
0 1 0 1 0
0 0
0 0 L2 = 0 1 1 0
0
0 0
0 0 0 0
0
1 1
0 0 0 0
0
0
1
Scope
L* u
Laplaciana
1
s
Integrator
To Workspace
x0
Assertion1
20
<= 0
Clock
Compare
To Constant
Chiamata
a sostituzione.
Scope1
29
100
x1
x2
x3
x4
x5
50
50
0
10
Time
15
20
30
2.4.3
10
a cui corrisponde la matrice Laplaciana
31
Lresidui
0
0 0 0
0
0 0 0
0
1 1 0 0
0
0 0 0
0
0 1 1 0
0
0 0 0
0
0
0 0 1 1 0 0 0
0
0
0 0 0
1 1 0 0
0
=
0
0 0 0
0
0 0 0
0
0
0 0 0
0 1 1 0
0
1 0 0 0 1 0 0 2
0
0 1 0 1 0
0 0 0
2
0
0 0 0
0
0 0 1 1
I sistemi 1,2,3 e 4,5,6,7 formano due iCC, mentre i sistemi 8,9,10 sono dei residui e
non fanno parte di una terza iCC. Il risultato della simulazione, in figura 2.6, mostra che
i sistemi 8,9,10 (tratteggiati al fine di metterli in evidenza) riescono a raggiungere un
proprio valore di consenso intermedio tra i valori di consenso dei sistemi 1,2,3 e dei sistemi
4,5,6,7. Ci`o `e in effetti conforme alla natura dei sistemi residuali, che pur non essendo in
comunicazione tra loro ricevono le informazioni dalle stesse componenti indipendenti del
grafo e finiscono quindi per raggiungere un accordo sul valore da assumere a regime.
80
60
40
20
0
20
40
60
80
100
4
Time
32
Capitolo 3
Sistemi Multiagente Multivariabile.
Nelle precedenti simulazioni abbiamo considerato sistemi descritti da una sola variabile di stato, la cui risposta libera era costante ed uguale al valore di partenza: tale
scelta, effettuata per una maggiore semplicit`a concettuale, era giustificata dal fatto che
eravamo in quella sede interessati principalmente a testare lefficacia e il campo di applicazione dellalgoritmo di consenso stesso, piuttosto che alla natura delle traiettorie sulle
quali raggiungere il consenso.
Abbiamo tuttavia introdotto nel primo capitolo gli strumenti matematici che ci servono per gestire sistemi descritti da pi`
u di una variabile di stato. Per questi motivi ci
accingiamo adesso a mostrare in che modo sia possibile ottenere il consenso su particolari
sistemi multivariabile.
Abbiamo visto in 1.3 come rappresentare, tramite modelli nello spazio degli stati,
sistemi con pi`
u variabili di stato. La matrice A, chiamata anche matrice di sistema,
contiene linformazione sullevoluzione libera degli stati del sistema dinamico sotto esame;
in particolare, se i , i = 1, ..., n sono gli autovalori di A, la traiettoria degli stati x(t)
sar`a combinazione lineare di tutti i termini del tipo ei t . Ne deduciamo che:
Sistemi dinamici con matrici di stato contenti un autovalore a parte reale positiva hanno stati che divergono nel tempo, ed `e pertanto poco sensato pensare al
33
34
3.1
In fisica, viene chiamato oscillatore armonico qualunque sistema meccanico che reagisce ad una perturbazione dallequilibrio con una accelerazione di richiamo proporzionale
..
allo spostamento subito: esso `e quindi descritto dallequazione del moto x = x, dove
x rappresenta la posizione delloscillatore ed > 0 la pulsazione espressa in rad/sec. La
soluzione dellequazione differenziale `e data da x(t) = Asin(t + ), dove A rappresenta
lampiezza delloscillazione e la fase: sia A che dipendono dalle condizioni al contorno
x(0) e x(0).
35
Dal momento che siamo interessati ad una descrizione in termini di variabili di stato,
appare naturale effettuare la seguente scelta per il modello:
x 1 = x2
(3.1)
x 2 = x1
nel quale x1 rappresenta la posizione delloscillatore
e x2 la sua velocit`a.
0 1
Possiamo anche considerare modelli con un numero arbitrario di stati che hanno evoluzione sinusoidale, per questo nella trattazione teorica che segue considereremo matrici
S di sistemi oscillanti d-dimensionali.
3.2
Sia xk Rp il vettore degli stati del k-esimo sistema del nostro network (composto
da n sistemi). Come `e noto, levoluzione libera di uno dei sistemi oscillatori `e descritta
dallequazione differenziale x k = Sxk , dunque considerando un network di n sistemi,
definendo x = [x1 x2 . . . xn ]T vale la seguente equazione di evoluzione libera:
x = (In S)x.
(3.2)
Per quanto riguarda lingresso di controllo, oltre a sfruttare le informazioni relative al grafo di comunicazione tramite la matrice L, sar`a necessario definire una matrice di guadagni K Mpp sulla quale potere agire liberamente, ottenendo lequazione
complessiva:
x = [(In S) (L K)]x
(3.3)
36
3.2.1
Loutput consensus
Fino ad ora linformazione scambiata tra i sistemi `e sempre corrisposta alla differenza
tra i loro stati interni: pi`
u realisticamente, i sistemi sono in grado di scambiarsi linformazione relativa alla differenza tra le loro uscite, definite come opportune funzioni sugli
stati. Ogni sistema sar`a cio`e descritto dal seguente set di equazioni:
x k = Sxk + uk
(3.4)
yk = Hxk
con uk ingresso di controllo definito come
uk = K
N
X
j=1
lkj (t)yj =
N
X
lkj (t)KHxj
j=1
(contributo calcolato sulle uscite degli altri stati tramite la Laplaciana) e H la matrice
di uscita
Dunque, in caso di output consensus lequazione del set di sistemi controllati che
consideriamo `e:
x = [(In S) (L KH)]x
(3.5)
Con analogia al caso del consensus o sincronizzazione tramite differenza degli stati,
se siamo in grado di scegliere K in modo che [(In S) (L KH)] sia Hurwitz, ci
aspettiamo (come mostrato nel paragrafo 3.3.1) di raggiungere il consenso delle uscite
sulla funzione:
y(t) = HeSt x
37
(3.6)
che espone ancora i modi di S, ma presenta il contributo della matrice H che seleziona
quali stati sono disponibili in uscita per essere misurati.
3.3
T =
1
1(n1)1
01(n1)
In1
0 L12
= T 1 LT =
L
22
0 L
(3.7)
12 CN 1 vettore riga e L
22 M(N 1)(N 1) .
con L
Un caso specifico di trasformazione T su L, `e quello che porta L nella sua forma di
Jordan:
Definizione 9 (Traformazione TJ sulla Laplaciana L). Sia TJ la matrice che porta
cio`e tale che L
= T 1 LTJ : dal momento che
L nella sua forma canonica di Jordan L,
J
TJ `e formato da autovettori ed autovettori generalizzati di L, e che 1n `e autovettore di
L, possiamo scrivere che
38
TJ = (1n TJ )
(3.8)
J =
L
01(N 1)
0(N 1)1
22
L
J
(3.9)
3.3.1
x = [(In S) (L KH)]x
(3.10)
.
Se applichiamo adesso il cambio di coordinate z = (T 1 In )x, allora
z = (T 1 In )x
= (T 1 In )[(In S) (L KH)]x
= (T 1 In )[(In S) (L KH)](T In )z.
(3.11)
(3.12)
KH)]z
= (T 1 In )[(T S) (T L
KH)]z
= [(In S) (L
al posto di L.
ovvero unespressione analoga a quella in (3.10) con L
evidenziata in (3.7), il sistema nelle coordinate z
Vista la particolare struttura di L
diventa:
(3.13)
z 2 = [(In1 S) (L
22 KH)]z2
dove z1 Rp (p rappresenta il numero di stati del singolo sistema) e z2 Rp(n1) .
Dal momento che la prima colonna di T `e 1n , vale inoltre che
xk = z1 + Tk z2 , k = 1, . . . , n.
(3.14)
z 2 = [(In1 S) (L
22 KH)]z2
39
40
dove z1 = z1 (0) + R2 z2
il quale ci assicura che z1 tende esponenzialmente ad una traiettoria dipendente dai
valori iniziali che espone i modi di S. Utilizzando il lemma (1) e considerando la (3.14),
otteniamo subito la seguente conclusione:
Proposizione 1. Si consideri il sistema controllato
(3.15)
e si supponga che
22 KH)]
[(In1 S) (L
sia Hurwitz. Allora esistono K > 0, > 0 ed una matrice R Mpnp tale che per ogni
x(0), la k-esima componente dello stato x dellintero set di sistemi controllati soddisfa
x = Sx,
soluzione che dipende da x = f (x1 (0), . . . , xn (0)) dove f `e una opportuna funzione
lineare.
y(t) = HeSt x
3.3.2
0 L12
= T 1 LT =
L
22
0 L
a cui ci eravamo ricondotti tramite T nel paragrafo 3.3.1. Sia poi M M(n1)(n1) una
matrice a valori complessi tale che
22 M 1
= ML
scelta in modo che sia diagonale; in tal caso i valori sulla diagonale di corrispondono agli autovalori non nulli di L. La trasformazione M 1 In porta la matrice 3.5 ad
assumere la forma
(In1 S) ( KH)
(3.16)
S i (L)KH.
dove indichiamo con i li-esimo autovalore di L.
(3.17)
41
42
Proposizione 2. Gli autovalori della matrice [(In S) (L KH)] hanno tutti parte
reale negativa se e solo se la matrice S-i (L)KH ha tutti gli autovalori a parte reale
negativa, per ogni i.
Utilizziamo adesso un approccio basato sulle funzioni di Lyapunov per rendere Hurwitz le matrici Ai = S i KH: infatti i problemi di trovare delle funzioni di Lyapunov
Vi sugli stati zi tali che V i < 0 e quello di rendere Hurwitz le matrici S i KH sono in
corrispondenza biunivoca.
La condizione da soddisfare seguendo questo approccio `e che per ogni i, valga
(3.18)
V = ziT P zi
e chiamando P lunica soluzione simmetrica definita positiva dellequazione algebrica
di Riccati (CARE):
SP + P S T 2P H T HP + aIn = 0.
(3.19)
Tale soluzione P esiste sicuramente nel caso che S sia la matrice di un oscillatore
lineare.
Si pu`o verificare che in questo caso la scelta di K = P H T risolve il problema appena
enunciato. Infatti, chiamando lautovalore non nullo con la parte reale pi`
u piccola,
utilizzando K = P H T nellespressione della matrice Ai e ricordando che P `e la soluzione
dellequazione CARE, vale
43
(3.20)
N
X
akj (yj yk )
k = 1, . . . , N
(3.21)
j=1
3.4
x = [(IN S) (L KH)]x
(3.22)
Effettuiamo dunque il seguente cambio di variabili sugli stati sfruttando la trasformazione di Jordan ed il prodotto di Kronecker:
z = (TJ1 Id )x
ed otteniamo
(3.23)
44
KH)]z
z = [(IN S) (L
(3.24)
z1 = Sz1
(3.25)
z 2 = [(IN 1 S) (L
22 KH)]z2
J
Dunque z1 ha unevoluzione indipendente dalle altre variabili. Inoltre `e possibile scegliere K in modo che il sistema con stato z2 sia Hurwitz, cio`e che esponga modi che si
annullano asintoticamente per t > +, ovvero che z2 (t) converga esponenzialmente a
0 per ogni z2 (0).
(3.26)
3.5
S=
1 0
3
la cui matrice Laplaciana `e
1
0 1
L = 1 1
0
0 1 1
.
Come visto nella sottosezione 3.4, `e opportuno portare L nella sua forma di Jordan
per capire verso cosa convergeranno gli stati di tutti i sistemi una volta applicato il
L
controllo di consenso.
Si ha che la matrice di similitudine `e
1
1
1
e la Laplaciana diventa cos`
22
L
J
0
0
0
= 0 1.5 0.866i
0
0
1.5 + 0.866i
Come mostrato in 3.4, `e allora possibile effettuare il cambio di variabili sugli stati
definito da z = (TJ1 I2 )w ed ottenere il seguente modello nello spazio degli stati
z1 = Sz1
z 2 = [(IN 1 S) (L
22 K)]z2
J
come avevamo gi`a osservato in (3.25).
45
46
(3.27)
.
Ci`o significa, visto che z 2 tende ad annullarsi, che gli stati x1i , x2i (posizione e velocit`a) dei 3 oscillatori presi in considerazione andranno a consenso sulla traiettoria di
z1 = col(z1i , z2i ) per qualunque set di valori iniziali.
TJ1 I2
1
3
1
3
1
3
0
0
0
1
1
1
0
0
0
3
3
3
1
0.1667 + 0.2887i
0
0
0.1667 0.2887i
0
3
0
0.1667 + 0.2887i
0
0.1667 0.2887i 0 3
1
0.1667 0.2887i
0
0.1667 + 0.2887i
0
0
3
1
0
0.1667 0.2887i
0
0.1667 + 0.2887i 0 3
e dunque
z1 (t) =
(3.28)
A regime, se il consenso `e stato raggiunto (dato per assunto dal momento che la matrice che descrive levoluzione di z 2 `e assunta Hurwitz), avremo, ricorrendo ad un piccolo
abuso di notazione, che x1 = x2 = x3 e dunque che 13 (x1 + x2 + x3 ) = x1 =
x2 = x3 = z1 .
3.5.1
I valori iniziali di di posizione e velocit`a dei 3 oscillitori sono stati posti, a titolo di
esempio, pari a (1, 2), (3, 3) e (5, -5). La matrice H, che come abbiamo
detto
rappresenta
1 1
: ogni sistema
la trasformazione tra stati ed uscite, `e stata posta pari a H =
10 10
avr`a cio`e due uscite, la prima corrispondente alla somma tra posizione e velocit`a, la
seconda pari a 10 volte la somma tra posizione e velocit`a.
0.5016 0.4985
0.0032 0.0317
e dunque K =
,
particolare otteniamo che P =
0.4985 0.5797
0.0812 0.8118
ponendo a = 1 e = 1.5, cio`e pari alla parte reale del secondo autovalore di L. Si noti
che la scelta di a influisce sulla velocit`a di convergenza del protocollo.
47
48
Uscita 1
4
2
0
2
4
5
Time
10
5
Time
10
60
Uscita 2
40
20
0
20
40
Come previsto, le due uscite dei tre sistemi vanno a consenso su due traiettorie di
pulsazione 1 rad/sec.
Capitolo 4
Generazione di traiettorie circolari
per il loitering di pi`
u robot.
Il coordinamento di sistemi multi-robot ha come obiettivo quello di ottenere delle
prestazioni migliori rispetto alluso di singoli agenti, garantendo una maggiore robustezza
e performance generale di sistema. Diventa infatti possibile risolvere sotto-problemi in
parallelo, riducendo sia il tempo per il completamento del compito dellintero sistema
che il carico computazionale. Inoltre, lassenza di un singolo master decisionale rende
il sistema distribuito pi`
u robusto e resistente ai guasti (il fallimento di un singolo agente
non implica il fallimento dellintero network).
Tuttavia, nellutilizzo di sistemi multi-agente emergono nuovi problemi e difficolt`a:
Coordinare un numero elevato di agenti
Gestire uninformazione locale e non centralizzata
Gestire lelevata necessit`a di comunicazione
Il consenso fornisce alcuni possibili vantaggi relativamente a questi problemi, rispetto ad altre tecniche comunemente utilizzate in letteratura. In primis `e completamente
decentralizzato e leader-less di natura, inoltre si basa su uno scambio di informazioni
semplice e contenuto.
49
50
Come applicazione dei risultati provenienti dalla teoria sviluppata in questo lavoro,
si `e dunque pensato al caso del raggiungimento del consenso di pi`
u veicoli su di una traiettoria circolare. In particolare si vuole che tali agenti, qualunque siano le loro posizioni
iniziali nello spazio, vadano a circolare su di una traiettoria di dato raggio e centro con
velocit`a impostata, facendo inoltre in modo che a regime le loro posizioni rappresentino
i vertici di un poligono regolare. Queste richieste sono quelle tipicamente necessarie in
un contesto di loitering attorno ad un agente/punto dello spazio obiettivo: si richiede
ai droni di pattugliare larea circostante volando in circolo ed eventualmente di seguire
lobiettivo se questi `e in moto.
51
p0
x0
p_rev0
Constant
In1 Out1
K*u
Uniformazione_Inv
Sfaso_inv
K*u
Uniformazione
CONSENSO OSCILLATORI
p_sfasato
Sfaso
Scope3
Out1
4.1
52
Le uscite sono state considerate coincidenti con gli stati degli oscillatori (H `e quindi
la matrice identit`a) che vengono interpretati come le posizioni X e Y degli agenti.
Fatte queste considerazioni preliminari, abbiamo supposto che gli agenti comunicassero tra loro secondo una certa topologia connessa, ed `e stato creato uno script Matlab
che si occupa di:
Generare la Laplaciana L connessa associata a tale grafo.
Effettuare la sintesi della matrice K necessaria al raggiungimento del consenso (si
veda 3.3.2)
Creare la matrice U = [(In S) (L KH)] da utilizzare nel modello Simulink.
Allinterno del blocco CONSENSO OSCILLATORI troviamo uno schema chiuso in
retroazione del tutto analogo a quelli utilizzati nelle simulazioni del capitolo 2, eccezion
fatta per la matrice U al posto della matrice L.
53
U nif ormazione = In
1
w
A. Dunque tra i due stati delloscillatore, che vengono interpretati come coordinate
4.1.1
Per il raggiungimento di una formazione, non solo `e necessario che gli agenti seguano
la stessa traiettoria circolare a regime, ma si richiede anche che si dispongano secondo
una ben precisa geometria. Con il solo consenso di oscillatori descritto in 4.2, infatti,
gli agenti andrebbero a coincidere nelle posizioni, fatto che in una realizzazione fisica su
veicoli corrisponderebbe ad uno scontro: si impongono dunque degli opportuni sfasamenti
alle traiettorie dei singoli agenti, in modo che vadano a disporsi sulla circonferenza target
secondo i vertici di un poligono regolare. Al fine di raggiungere questo obiettivo, `e stato
sufficiente osservare che a regime i due stati degli oscillatori seguono un andamento
temporale del tipo
x1 (t)
sin(t + )
x2 (t)
cos(t + )
(4.1)
e che dunque `e possibile combinarli algebricamente secondo le formule di addizione/sottrazione di seno e coseno per imporre un qualunque sfasamento alle traiettorie di
regime (trasformandole cio`e in sin(t + + ), cos(t + + ) per qualunque ). Si
`e quindi inserita una funzione embedded nel modello con lo scopo di effettuare queste
manipolazioni sia a valle del blocco CONSENSO OSCILLATORI (trasformazione diretta sulle traiettorie) che a monte (trasformazione inversa sulle posizioni iniziali per far s`
54
Nelle figure 4.2 e 4.3 riportiamo il consenso degli oscillatori prima e dopo lapplicazione dello sfasamento.
Posizione X
100
50
0
50
100
5
Time
10
5
Time
10
Posizione Y
100
50
0
50
100
4.2
come nel caso delloscillatore virtuale, gli integratori virtuali dovranno comportarsi da
centroidi indipendenti nel grafo di comunicazione complessivo, in modo che il loro valore
non venga mai influenzato e che tutti gli altri integratori convergano su di loro a regime.
55
60
Posizione X
40
20
0
20
40
5
Time
10
5
Time
10
Posizione Y
100
50
50
.
x
x
x(0) = [0 0 ... xref ]0
= L ,
.
0
y
y
y(0) = [0 0 ... yref ]
4.3
Per una maggiore comprensione della simulazione, si riportano in figura 4.4 le traiettorie in X e in Y di sei agenti nelle seguenti ipotesi:
Condizioni iniziali : Tutti e sei gli agenti partono dalle coordinate (50,50).
Raggio della traiettoria 10.
Pulsazione di percorrenza: tutti gli oscillatori hanno = 1rad/sec dentro alla
matrice di sistema.
Richieste sul centro: La richiesta iniziale sulle coordinate `e (100,100), per poi
passare ogni 15 secondi al successivo vertice di un quadrato di lato 200. La sequenza
56
Posizione X
200
100
0
100
200
0
10
20
30
Time
40
50
60
10
20
30
Time
40
50
60
Posizione Y
200
100
0
100
200
Figura 4.4: Traiettorie X e Y con cambio di richiesta sul centro ogni 15 secondi.
Capitolo 5
Il setup di laboratorio e lo schema
della Ground Station.
Lobiettivo dellesperienza di laboratorio `e stato quello di realizzare il consenso di tre
quadrirotori CrazyFlie su una traiettoria assoluta circolare di raggio impostato e velocit`a decisa a priori, utilizzando come centro mobile una macchina telecomandata o un
qualunque altro agente in movimento.
58
Per passare i dati dal sistema Optitrack a Matlab, una volta lanciato il software
di tracking, si utilizza un programma locale chiamato NatNet, il quale invia i dati
su una porta UDP letta da Matlab: attraverso il modello della Ground Station,
si utilizzano le informazioni cos` ricevute per la generazione di traiettorie ed il
controllo. (Figura 5.3).
Modello Matlab/Simulink della Ground Station: si occupa di generare le
59
60
Joypad: dopo averlo collegato ad una porta USB, bisogna lanciare un programma
(chiamato Joypad Parser ) il cui compito `e quello di prendere i pacchetti di dati
relativi alla pressione di pulsanti e comunicarli a Matlab mediante pacchetto UDP.
Il joypad verr`a sfruttato per cambiare la modalit`a di funzionamento: si vuole
infatti che i quadrirotori decollino e si portino alla stessa quota prima di entrare in
modalit`a di inseguimento del consenso.
5.1
La Ground Station
Si `e sfruttato un modello Simulink preesistente, chiamato Ground Station, che permette di utilizzare i dati acquisiti dal sistema OptiTrack e da un Joystick per generare
gli ingressi di controllo dei quadrirotori (figura 5.5) . Lo schema prevede la presenza di
una macchina a stati il cui scopo `e dare la possibilit`a allutente di selezionare una mo-
61
62
5.2
I risultati di laboratorio.
63
1.5
xcons [m]
1
0.5
0
0.5
1
1.5
0
10
10
15
20
25
15
20
25
1.5
1
x* [m]
0.5
0
0.5
1
1.5
0
time [s]
1.5
0
0.5
0.5
1
1.5
0
y* [m]
ycons [m]
1
0.5
0
0.5
1
5
3
10
15
20
25
15
20
25
1.5
1
y* [m]
0.5
0
0.5
1
1.5
0
10
time [s]
64
x [m]
x
*
x
1
0
1
0
10
15
20
y
y*
y [m]
1
0
1
0
10
15
20
z [m]
25
25
z
z*
0
1
0
10
15
20
time [s]
25
Conclusioni
Abbiamo nel corso di questo lavoro soddisfatto gli obiettivi che ci eravamo posti.
Nei primi tre capitoli si `e trattato da un punto di vista prettamente teorico il problema
del consenso e della convergenza del protocollo di consenso nei casi mono e multivariabile, utilizzando un approccio controllistico basato sullanalisi tramite modelli nello spazio
degli stati. Affiancando la spiegazione dellefficacia dei metodi per risolvere i problemi
mono e multivariabile, si sono effettuate varie simulazioni in ambiente Matlab/Simulink
per trovare riscontro delleffettiva realizzabilit`a di quanto mostrato nella teoria.
Tale modello `e stato inserito in quello della Ground Station (capitolo 5) permettendo
cos`, prendendo opportuni accorgimenti implementativi, di sperimentare fisicamente il
coordinamento di gruppo in laboratorio.
65
66
CONCLUSIONI
Sviluppi futuri.
Non si `e previsto un modo di evitare le eventuali collisioni tra gli agenti durante il
transitorio del consenso: le traiettorie vengono generate garantendo soltanto la convergenza sulla circonferenza desiderata, senza imporre ulteriori vincoli. Per questo motivo,
in laboratorio ci si `e curati di posizionare i quadrirotori in posizioni iniziali non rischiose. Tuttavia, per rendere maggiormente implementabile ed affidabile lo schema di
coordinamento proposto, sviluppi futuri dovranno affrontare questo importante problema.
Bibliografia
[1] P. Wieland, From Static to Dynamic Couplings in Consensus and Synchronization
among Identical and Non-Identical Systems, PhD thesis, Universitat Stuttgart,
2010.
[2] L. Moreau, Stability of multi-agent systems with time-dependent communication
link, IEEE Trans. Automat. Contr., 50(2), pp. 169-182, 2005.
[3] C. Godsil, G. Royle, Algebraic Graph Theory, Springer.
[4] M. Arcak. Passivity as a design tool for group coordination, IEEE Trans. Aut.
Contr., 52(8), pp. 1380-1390, 2007.
[5] A. Isidori, L. Marconi, G. Casadei, Robust output synchronization of a network
of heterogeneous nonlinear agents via nonlinear regulation theory, IEEE Trans. on
Aut. Contr.
[6] Dispense del corso di Sistemi Robotici Distribuiti, Universit`a di Pisa, docente:
Dott.ssa Lucia Pallottino.
[7] Bolzern Paolo, Scattolini Riccardo, Schiavoni Nicola, Fondamenti di Controlli
Automatici, McGraw-Hill .
67