Controllo di un braccio meccanico mediante reti neurali
Click here to load reader
Transcript of Controllo di un braccio meccanico mediante reti neurali
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 17
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 17
ESERCIZIO3
1. Introduzione L’esercizio si propone di utilizzare una rete neurale RBF (Radial Basis Function ) in parallelo ad un controllo stabilizzante in modo tale che l’errore di inseguimento di una traiettoria desiderata sia il più piccolo possibile.
2. Sistema Meccanico Il sistema da controllare è costituito da un braccio meccanico di lunghezza l=2m e di un peso pari a 10 Kg. Il manipolatore è in grado di effettuare spostamenti massimi pari a 360°. Di seguito è riportato il sistema di riferimento utilizzato.
Theta
l
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 18
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 18
La legge dinamica che governa il movimento del braccio è la seguente:
sin( )J mgl uα βθθ θ θ
θ 2
+= − + 1+
ɺɺɺ ɺ
ɺ
In cui: J = Momento di Inerzia θ = Spostamento Angolare θɺ = Velocità Angolare θɺɺ = Accelerazione Angolare m = Massa del braccio l = Lunghezza del braccio g = Costante gravitazionale α β, = Parametri per la definizione dell’attrito u = Ingresso Fissando rθ come la traiettoria richiesta al braccio possiamo definire:
{ 1
2
r
r
e
e
θ θθ θ
= −
= −ɺ ɺ
Le theta utilizzate sono state:
[sin( ) sin( ) sin(3 ) sin(2.16 )]8r t t t tπθ π= + + +
[cos( ) cos( ) 3cos(3 ) 2.16cos(2.16 )]8r t t t tπθ π π= + + +ɺ
2[sin( ) sin( ) 9sin(3 ) 4.32sin(2.16 )]8r t t t tπθ π π−= + + +ɺɺ
La costante 8
π è inserita per limitare i vari rθ .
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 19
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 19
Definiamo ora la dinamica dell’errore:
{ 1 2
2 ( , ) r
e e
e f buθ θ θ=
= − +
ɺ
ɺ ɺɺɺ Arrivati a questo punto è utile ricordare un lemma: Data una funzione g(y) :n n→R R La funzione può essere riscritta come: g( 2y ) – g( 1y )=M( 2y , 1y )( 2y - 1y )
in cui M=1
1 2 1
0
[ )]dg
y y ydy
α+ ( −∫
( , )f θ θɺ sarà pari ad:
( , )f θ θɺ 1 2 1 2( , ) ( , ) ( , )f z z e z e e z eφ φ= + +
In cui: 1 2[ ; ]
[ ; ]
[ ; ]
r r
e e e
z
x
θ θθ θ
=
=
=
ɺ
ɺ
Definendo ora una nuova variabile ottengo:
{ 1 1
2 2 1
e e
e e eλ== +
Ne consegue che:
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 20
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 20
{ 1 2 1
2 2 1
e e e
e e e
λλ
= −= +
ɺ
ɺ ɺ
{ 1 2 1
22 1 2 1 1 2 2 2( , ) ( ) ( ) r
e e e
e f z z e e bu
λφ λφ λ φ λ θ
= −
= + − − + + − +
ɺ
ɺɺɺ Potremmo infine definire un 1 2,φ φ in modo da semplificare la nostra soluzione:
{2
1 1 2
2 2
( )
( )
φ φ λφ λφ φ λ
= − −= +
{ 1 2 1
2 1 2 1 1 2 2( , ) r
e e e
e f z z e e bu
λφ φ θ
= −
= + + − +
ɺ
ɺɺɺ 3. Controllo Stabilizzante Come gia detto è utilizzato in parallelo alla rete neurale:
2
1( )s ru ke
bθ= − + ɺɺ
k nel caso analizzato è stato fissato pari ad 8 in realtà con k elevati si sarebbe potuto controllare il braccio meccanico ma non esistono attuatori con dinamiche così elevate, per questo motivo si affianca al controllo stabilizzante un controllo adattativi
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 21
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 21
4. Controllo Adattativo La realizzazione di tale controllo è effettuata mediante più neuroni a base radiale con altezze e centri diversi, le quali identificano i pesi sinaptici.
22
1
2
1
iN z w
aiR B F eα
− −= ∑
� �
iw sono i centri dei neuroni, mentre iα le altezze ed a è costante . Inoltre supponiamo di definire l’errore nella stima nel seguente modo:
* *: ( ) ( )i i if z zα α φ ε∃ − ≤
A questo punto si possono effettuare delle stime mediante un operatore di proiezione. Questo algoritmo analizza i parametri al suo ingresso, se essi non rispettano una soglia definita dal progettista allora modificherà la loro dinamica in modo tale che questi parametri non crescano troppo. L’algoritmo è definito nel modo che segue: a partire da v e dall’evoluzione dinamica delle stime α̂ɺ
2( ) ( )i iv z z eηφ=
ˆ ˆPr [ ( ), ]i ioj v zα α=ɺ In cui ˆiα rappresentano le stime mentre η è costante.
ˆPr [ ( ), ]i ioj v z α ={ ( )
( )(1 ( ))i
i
v z
v z p t− ˆ ˆ( ) ( ( ) 0)i m i iif or v z
else
α α α< <
Dove p(t) è considerata come: p(t)=2 2
2
ˆ
( )i m
m m
α αα ε α
−+ −
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 22
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 22
Il controllo adattativi sarà del tipo:
1
1ˆ ( )
N
a i ii
u zb
α φ=
= ∑
Questo controllo andrà a sottrarsi a quello stabilizzante per dare vita al controllo finale che governerà il braccio meccanico. Infine quindi:
s au u u= −
5. Simulazioni in Simulink Come primo procedimento per verificare il corretto funzionamento del modello matematico il sistema viene simulato senza controllo.
Figura 1 Modello senza controllo
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 23
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 23
Si opera fornendo una condizione iniziale molto piccola, in questo modo il braccio inizierà ad oscillare intorno alla sua posizione di riposo ovvero π :
Figura 2 Grafico del braccio senza controllo
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 24
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 24
Come già anticipato prima sono state scelte tre traiettorie , ,r r rθ θ θɺ ɺɺ ,le quali compaiono nell’ordine citato:
Figura 3 Riferimenti
Sotto è mostrata il modello per il controllo del braccio, i vari blocche sono stati raggruppati mediante il comando di Simulino control+G per rendere più ordinato il progetto:
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 25
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 25
Figura 4 Progetto
Andiamo ad analizzare i blocchi più significativi ovvero il blocco RBF, e il controllo. Il blocco RBF è il seguente:
Figura 5 Blocco RBF
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 26
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 26
Questo blocco è costituito da 5 RBF le quali produrranno le φ per l’algoritmo di proiezione.
Figura 6 Andamento delle w
Si può notare che le stime tendono a convergere, questo è un fatto molto importante per il funzionamento del controllo. Passiamo ora all’applicazione del controllo e alla stima dell’errore.
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 27
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 27
Figura 7 Applicazione dei controlli
Figura 8 Grafico del controllo sovrapposto al riferimento
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 28
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3 Emanuele Duca 28
Figura 9 Errore del sistema
Come si può notare il controllo segue discretamente la traiettoria desiderata commettendo un errore che si attesta sui 0.038 radianti (ovvero un errore di qualche grado), queste due risultati in aggiunta alle considerazioni fatte delle funzioni RBF e sulle stime ci permettono di dire che la rete fornisce una buona performance nonostante un numero di RBF utilizzate relativamente basso (5)