Controllo Di Un Braccio Meccanico Mediante Reti Neurali

  • Uploaded by: Emanuele
  • 0
  • 0
  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Controllo Di Un Braccio Meccanico Mediante Reti Neurali as PDF for free.

More details

  • Words: 1,374
  • Pages: 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

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

Related Documents


More Documents from ""