Sei sulla pagina 1di 12

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

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
1+ θɺ2 
 
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 = [sin ( t ) + sin(π t ) + sin(3 t ) + sin (2 .1 6 t )]
8
π
θɺ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 è inserita per limitare i vari θ r .
8

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
in cui M= ∫ [ y1 + α ( y2 − y1 )]
0
dy
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.

N 1
−  z − wi2
RBF = ∑ α ie
2
2a

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 ))
if ( αˆi < α m )or (αˆi vi ( z ) < 0)
else

αˆi 2 − α m2
Dove p(t) è considerata come: p(t)=
(α 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