Controllo di un braccio meccanico mediante reti neurali

12

Click here to load reader

Transcript of Controllo di un braccio meccanico mediante reti neurali

Page 1: 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

Page 2: Controllo di un braccio meccanico mediante reti neurali

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θ .

Page 3: Controllo di un braccio meccanico mediante reti neurali

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:

Page 4: Controllo di un braccio meccanico mediante reti neurali

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

Page 5: Controllo di un braccio meccanico mediante reti neurali

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

α αα ε α

−+ −

Page 6: Controllo di un braccio meccanico mediante reti neurali

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

Page 7: Controllo di un braccio meccanico mediante reti neurali

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

Page 8: Controllo di un braccio meccanico mediante reti neurali

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:

Page 9: Controllo di un braccio meccanico mediante reti neurali

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

Page 10: Controllo di un braccio meccanico mediante reti neurali

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.

Page 11: Controllo di un braccio meccanico mediante reti neurali

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

Page 12: Controllo di un braccio meccanico mediante reti neurali

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)