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 17
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3
Emanuele Duca 18
La legge dinamica che governa il movimento del braccio è la seguente:
α + βθɺ ɺ ɺɺ Jθ = mgl sin(θ ) − θ +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:
{
e1 =θ −θr e =θɺ −θɺ 2
r
Le theta utilizzate sono state: θr =
π 8
[sin ( t ) + sin(π t ) + sin(3 t ) + sin (2 .1 6 t )]
π θɺr = [cos(t ) + π cos(π t ) + 3cos(3t ) + 2.16cos(2.16t )]
8 −π θɺɺr = [sin(t ) + π 2 sin(π t ) + 9sin(3t ) + 4.32sin(2.16t )] 8
La costante
π 8
è inserita per limitare i vari θ r .
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 19
Definiamo ora la dinamica dell’errore:
{
eɺ1 = e2 eɺ2 = f (θ ,θɺ) − θɺɺr + bu
Arrivati a questo punto è utile ricordare un lemma: Data una funzione g(y) : R n → R n La funzione può essere riscritta come: g( y2 ) – g( y1 )=M( y2 , y1 )( y2 - y1 ) 1
dg [ y1 + α ( y2 − y1 )] dy 0
in cui M= ∫
f (θ ,θɺ) sarà pari ad:
f (θ ,θɺ) = f ( z1 , z2 ) + φ (e, z )e1 + φ (e, z )e2
In cui: e = [e1; e2 ] z = [θ ;θɺ ] r
r
x = [θ ;θɺ]
Definendo ora una nuova variabile ottengo:
{
e1 = e1 e2 = e2 + λ e1
Ne consegue che:
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 20
eɺ1 = e2 − λ e1 eɺ2 = eɺ2 + λ e1
eɺ1 =e2 −λe1 eɺ2 = f (z1, z2) +e1(φ1 −λφ2 −λ2) +e2(φ2 +λ) −θɺɺr +bu
Potremmo infine definire un φ1 ,φ2 in modo da semplificare la nostra soluzione:
{ {
φ1 =(φ1 −λφ2 −λ2) φ2 =(φ2 +λ) eɺ1 = e2 − λe1 eɺ2 = f (z1, z2 ) +φ1e1 +φ2e2 −θɺɺr + bu
3. Controllo Stabilizzante Come gia detto è utilizzato in parallelo alla rete neurale:
1 us = (−ke2 + θɺɺr ) 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 20
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. RBF =
N
∑
α ie
−
1 2a
2
z − wi2
1
wi sono i centri dei neuroni, mentre α i le altezze ed a è costante .
Inoltre supponiamo di definire l’errore nella stima nel seguente modo:
∃α *i : f ( z ) − α *iφi ( 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 αɺˆ
vi ( z ) = ηφi ( z )e2 αɺˆ = Pr oj[vi ( z ),αˆ i ] In cui αˆ i rappresentano le stime mentre η è costante.
Pr oj[vi ( z ),αˆ i ] =
{
vi ( z ) vi ( z )(1 − p(t ))
Dove p(t) è considerata come: p(t)=
if ( αˆi < α m )or (αˆi vi ( z ) < 0) else αˆi 2 − α m2 (α m + ε ) 2 − α m
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 22
Il controllo adattativi sarà del tipo:
1 N ua = ∑αˆ iφi ( z ) b i =1 Questo controllo andrà a sottrarsi a quello stabilizzante per dare vita al controllo finale che governerà il braccio meccanico. Infine quindi:
u = u s − ua
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 22
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 23
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 24
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 25
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 26
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 27
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)
Esercizi del corso di Reti Neurali per il Controllo: Esercizio3
Emanuele Duca 28