Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il...

25
Politecnico di Milano Corso di Laurea in Ingegneria Aerospaziale Servosistemi Aerospaziali prof. Franco Bernelli Zazzera Nicola Morganti matr. 642686 A.A. 2004 - 2005

Transcript of Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il...

Page 1: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Politecnico di Milano

Corso di Laurea in Ingegneria Aerospaziale

Servosistemi Aerospaziali

prof. Franco Bernelli Zazzera

Nicola Morganti

matr. 642686

A.A. 2004 − 2005

Page 2: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Progetto Assegnato

• Tipo di esperimento:

– Pendolo Inverso

• Specifiche:

– Massa aggiunta in cima al pendolo di 37 g;

– Slitta inclinata di 5;

– Controllo LQR;

– Osservatore ridotto;

– Inseguimento di un comando armonico del carrello di ampiezza 20 cm con errore del 1%.

Page 3: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Indice del progetto

1 Modello agli stati 1

1.1 Descrizione del sistema fisico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Equilibrio e linearizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 Il motore elettrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.4 Il modello agli stati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Caratterizzazione della strumentazione 6

2.1 I potenziometri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Il motore elettrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 Il progetto del controllore 9

3.1 Il sistema non controllato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2 L’osservatore ridotto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3 Il controllo LQR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4 La simulazione numerica 12

4.1 Il modello Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.2 I risultati ottenuti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5 L’esperimento 16

5.1 Il modello Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.2 I risultati ottenuti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

A File Matlab 20

II

Page 4: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Capitolo 1Modello agli stati

1.1 Descrizione del sistema fisico

Il sistema fisico e composto da un’asta di massa mp e lunghezza l, incernierata alla base a un carrello

di massa mc e libero di scorrere su una guida inclinata di un angolo α rispetto al piano di appoggio. In

cima all’asta vi e posizionata una massa concentrata ma. Sul carrello e montato un motorino elettrico

in grado di generare una forza fx parallela alla guida, e due potenziometri: uno a contatto con la guida,

che ci fornisce lo spostamento longitudinale del carrello, e l’altro sulla cerniera dell’asta, indicante lo

scostamento angolare di quest’ultima. Schematizziamo il sistema fisico come in figura 1.1, dove:

θ

α

x, fx

ma

l,mp

mc

Figura 1.1: Schematizzazione del sistema fisico

• θ e la coordinata libera di spostamento dell’asta dalla verticale, positiva se oraria;

• x lo scostamento del carrello dalla posizione iniziale.

Ricaviamo l’equazioni della dinamica del nostro sistema tramite il metodo di Lagrange, ovvero:

d

dt

∂L

∂qk−

∂L

∂qk= fk (1.1)

1

Page 5: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Capitolo 1: Modello agli stati 2

con:

L = T + U (1.2)

Scriviamo quindi l’espressione dell’energia cinetica T :

T =1

2(mc + mp + ma) x2 +

1

2

(mp

3+ ma

)

l2θ2 +1

2(mp + 2ma) xθl cos (θ + α) (1.3)

e quella dell’energia potenziale:

U = − (mc + mp + ma) gx sinα −(mp

2+ ma

)

gl cos(θ) (1.4)

Indicando con mtot la massa totale del sistema, ovvero:

mtot = mc + mp + ma

e utilizzando l’espressioni 1.3 e 1.4 nella 1.2, possiamo applicare la 1.1 per le coordinate libere x e θ,

ottenendo le equazioni della dinamica del nostro sistema:

mtotx +1

2(mp + 2ma) l

(

θ cos (θ + α) − θ2 sin (θ + α))

+ cx + mtotg sinα = fx

(mp

3+ ma

)

l2θ +1

2(mp + 2ma) xl cos (θ + α) −

(mp

2+ ma

)

gl sin(θ) = 0

(1.5)

dove fx e la forza lungo il grado di liberta x, ovvero quella scambiata tra la guida e il carrello (fornita

dal motore elettrico) e cx un termine che rappresenta l’attrito tra il carrello e la guida, ipotizzato come

proporzionale alla velocita x.

1.2 Equilibrio e linearizzazione

Il nostro sistema e in equilibrio quando non si muove, ovvero se le derivate temporali delle grandezze

considerate sono nulle, dal sistema 1.5 abbiamo:

F = mtotg sinα

(mp

2+ ma

)

gl sin(θ) = 0

θ1 = 0

θ2 = π

(1.6)

L’unica soluzione accettabile e quella per θ = θ1, in quanto l’altra e fisicamente irrealizzabile per il nostro

esperimento. Quindi la configurazione di equilibrio che consideriamo per la linearizzazione sara:

θ = 0

∀x

(1.7)

Per semplicita si puo arbitrariamente porre x = 0. Si puo verificare che questo equilibrio e instabile,

infatti:∂2U

∂q2k

θ=θx=x

> 0 −→(mp

2+ ma

)

gl > 0

Scriviamo il nostro modello nella forma:

V · x + A ·x + B ·u = 0

Servosistemi Aerospaziali - A.A. 2004 − 2005Pagina 2 di 22

Page 6: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

3 1.3 Il motore elettrico

considerando θ, x, θ, x come vettore x degli stati del nostro sistema e linearizzando intorno alla posizione

di equilibrio. Otteniamo cosı:

1 0 0 0

0 1 0 0

0 0(mp

3+ ma

)

l21

2(mp + 2ma)l cos(α)

0 01

2(mp + 2ma)l cos(α) mtot

θ

x

θ

x

+

+

0 0 −1 0

0 0 0 −1

−(mp

2+ ma

)

gl 0 0 0

0 0 0 c

θ

x

θ

x

+

0

0

0

−1

fx = 0 (1.8)

1.3 Il motore elettrico

Il motore elettrico che fornisce la forza fx presente nel sistema 1.8 e comandato in tensione. Bisogna

quindi introdurre la dinamica del motore in modo da avere il legame tra la tensione V e la forza generata.

V

i

ω T

Rm Lm

Figura 1.2: Modello del motore elettrico

In figura 1.2 e rappresentato il modello di motore elettrico preso in considerazione. Indicando con T e V

rispettivamente la coppia e la tensione applicate, e con ω e i la velocita angolare del motore e la corrente

circolante, sfruttando la legge di Kirchhoff alle maglie e un bilancio di coppie, possiamo scrivere:

i = −Rm

Lmi −

hm

Lmω +

1

LmV

ω =Km

Jmi −

Bm

Jmω −

1

JmT

(1.9)

dove Rm e Lm sono la resistenza e l’induttanza interne al motore, hm e la costante della forza elettromo-

trice inversa, Km e la costante di coppia, Jm il momento d’inerzia del rotore, Bm il coefficiente di attrito

viscoso. Il motore ovviamente e anche dotato di un riduttore con rapporto τm > 1, il quale e collegato

mediante una ruota dentata di raggio rm ad una cremagliera, quindi la coppia in uscita e convertita in

forza, e la velocita angolare ω in velocita lineare x del carrello. Traduciamo quindi il tutto con le seguenti

Servosistemi Aerospaziali - A.A. 2004 − 2005Pagina 3 di 22

Page 7: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Capitolo 1: Modello agli stati 4

relazioni:

T =fxrm

τm

ω = τmx

rm

Inoltre il motore avra anche un rendimento ηm che ridurra la tensione V di alimentazione. Sostituendo

il tutto nel sistema 1.10 otteniamo:

i = −Rm

Lmi −

hmτm

Lmrmx +

ηm

LmV

x =Kmrm

Jmτmi −

Bm

Jmx −

r2m

Jmτ2m

fx

(1.10)

Si potrebbe pensare di aggiungere queste equazioni al sistema 1.8. Cio aggiungerebbe un solo stato al

sistema, la corrente i, in quanto la velocita x lo e gia. Si e notato che questo stato aggiunto, possiede una

dinamica molto piu veloce rispetto agli stati restanti del sistema: stiamo assistendo, per l’appunto, ad

un transitorio elettrico che e ordini di grandezza piu veloce di quello meccanico degli altri stati. Questo

comporta problemi in fase di progetto dell’osservatore perche dovrebbe essere molto veloce per seguire

questo stato introducendo quindi i disturbi sugli altri. Proprio per questo motivo, possiamo trascurare

la dinamica di i e quindi possiamo porre:

i = 0

Per cui il sistema si riduce a un’equazione algebrica:

fx = −τ2m

r2m

(

Kmhm

Rm+ Bm

)

x +Kmτmηm

RmrmV

Inserendo questa equazione nel sistema 1.8, abbiamo:

1 0 0 0

0 1 0 0

0 0(mp

3+ ma

)

l21

2(mp + 2ma)l cos(α)

0 01

2(mp + 2ma)l cos(α) mtot

θ

x

θ

x

+

+

0 0 −1 0

0 0 0 −1

−(mp

2+ ma

)

gl 0 0 0

0 0 0

[

c +τ2m

r2m

(

Kmhm

Rm+ Bm

)]

θ

x

θ

x

+

0

0

0

−Kmτmηm

Rmrm

V = 0

(1.11)

1.4 Il modello agli stati

Abbiamo ora tutti gli ingredienti per scrivere il modello agli stati. Osservando il sistema 1.11 vediamo

che risulta sempre scritto nella forma:

V · x + A ·x + B ·u = 0

Servosistemi Aerospaziali - A.A. 2004 − 2005Pagina 4 di 22

Page 8: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

5 1.4 Il modello agli stati

Quello che noi vogliamo e scriverlo invece come:

x = Ax + Bu

y = Cx + Du

Avremo quindi le seguenti corrispondenze:

A = V −1A

B = V −1B

Ricordando inoltre che si misurano lo spostamento x del carrello e quello angolare θ dell’asta, avremo,

che lo stato delle uscite y sara cosı determinato:

C =

[

1 0 0 0

0 1 0 0

]

D =

[

0

0

]

Servosistemi Aerospaziali - A.A. 2004 − 2005Pagina 5 di 22

Page 9: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Capitolo 2Caratterizzazione della strumentazione

2.1 I potenziometri

Acquisiamo il segnale del potenziometro del carrello per 10 s, tendo ferma completamente la nostra

struttura e rappresentiamo il risultato in figura 2.1(a).

0 1 2 3 4 5 6 7 8 9 10−2.93

−2.925

−2.92

−2.915

−2.91

−2.905

−2.9

−2.895

−2.89

Tempo [s]

Segnale

[V]

Segnale acquisito

(a) Segnale del potenziometro acquisito per 10 s.

0 5 10 15 20 25 30 35 40 45 5010

−8

10−7

10−6

10−5

10−4

10−3

10−2

Frequenza [Hz]

Inte

nsi

ta

Spettro del segnale

(b) Trasformata di Fourier del segnale.

Figura 2.1: Acquisizione ed elaborazione del segnale del potenziometro del carrello.

Se eseguiamo la trasformata di Fourier del segnale, una volta eliminato l’offset, otteniamo il risultato di

figura 2.1(b). Come e possibile notare, il rumore di fondo e ergodico e quindi e possibile approssimarlo

con un rumore bianco con una varianza σc = 2.1208 · 10−5 V2. Infine confrontiamo l’uscita del nostro

sensore con una semplice riga: otteniamo un valore di sensibilita pari 11.1 V/m.

6

Page 10: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

7 2.2 Il motore elettrico

0 1 2 3 4 5 6 7 8 9 100.355

0.36

0.365

0.37

0.375

0.38

0.385

0.39

Tempo [s]

Segnale

[V]

Segnale acquisito

(a) Segnale del potenziometro acquisito per 10 s.

0 5 10 15 20 25 30 35 40 45 5010

−8

10−7

10−6

10−5

10−4

10−3

10−2

Frequenza [Hz]

Inte

nsi

ta

Spettro del segnale

(b) Trasformata di Fourier del segnale.

Figura 2.2: Acquisizione ed elaborazione del segnale del potenziometro dell’asta.

Procediamo allo stesso modo con il sensore dell’asta, ottenendo risultati analoghi rappresentati in figura

2.1. Questa volta la varianza del segnale e σc = 1.2045 · 10−5 V2. Allo stesso modo, utilizzando un

goniometro, possiamo valutarne la sensibilita: 4 V/rad.

2.2 Il motore elettrico

Le costanti misurate del motore elettrico sono Rm e rm, che confermano i valori dettati dalle specifiche,

dalle quali poi abbiamo preso tutti gli altri valori. Riguardo l’attrito viscoso del rotore Bm non vi e

nessuna indicazione. Possiamo porlo quindi nullo, senza comunque introdurre delle semplificazioni, in

quanto questo provochera un diverso valore della costante c che invece e stata calcolata. Valutando anche

la soglia minima di tensione alla quale il carrello si muove, causata dagli attriti statici otteniamo un

valore pari a circa ±0.4 V. Inoltre per tensioni esterne a ±6 V vi e la saturazione dell’attuatore. Per la

determinazione della costante c siamo ricorsi al confronto della risposta del sistema, in termini posizione

x e velocita x, con quella di un sistema massa-smorzatore ideale:

mcx + cx = fx

Trascurando ancora il transitorio della corrente e possibile riscrivere il tutto come:

mcx = −

[

c +τ2m

r2m

(

Kmhm

Rm+ Bm

)]

x +Kmτmηm

RmrmV

da cui il modello agli stati:

x

x

=

0 1

0 −1

mc

[

c +τ2m

r2m

(

Kmhm

Rm+ Bm

)]

x

x

+

0Kmτmηm

Rmrmmc

V

Ponendo c = 4.1 Ns/m otteniamo i risultati di figura 2.3.

Servosistemi Aerospaziali - A.A. 2004 − 2005Pagina 7 di 22

Page 11: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Capitolo 2: Caratterizzazione della strumentazione 8

0.5 1 1.5 2 2.5−0.05

0

0.05

0.1

0.15

Tempo [s]

Posi

zio

ne

[m]

Variazione di posizione

0.5 1 1.5 2 2.5−0.05

0

0.05

0.1

0.15

Tempo [s]

Velo

cit

a[m

/s]

Variazione di velocita

Figura 2.3: Variazione di velocita e posizione del carrello all’ingresso di un 1 [V] per 1 [s]

La velocita la ricaviamo utilizzando uno pseudo-derivatore con frequenza di taglio a 6 Hz. Come si puo

vedere dai grafici, otteniamo una buona approssimazione della posizione mentre non avviene esattamente

lo stesso per la velocita. Cio e dovuto al fatto che abbiamo ipotizzato l’attrito proporzionale alla velocita,

cosa che nella realta non e proprio rigorosamente vera. Il valore del coefficiente c lo scegliamo quindi in

modo che minimizzi l’errore e tale, da avere la risposta del sistema il piu vicino possibile a quella reale.

Servosistemi Aerospaziali - A.A. 2004 − 2005Pagina 8 di 22

Page 12: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Capitolo 3Il progetto del controllore

3.1 Il sistema non controllato

Utilizzando come strumento di calcolo il Matlab 5.3 valutiamo gli autovalori della matrice caratteristica

del sistema A:

A =

0 0 1.0000 0

0 0 0 1.0000

28.5124 0 0 40.8089

−3.3082 0 0 −18.8294

→ λ =

0

4.7742

−4.3784

−19.2252

L’autovalore nullo λ1 rappresenta la possibilita di avere una posizione di equilibrio per qualunque valore

di x, mentre l’autovalore positivo λ2 rappresenta l’instabilita intrinseca del nostro sistema.

3.2 L’osservatore ridotto

Da specifiche dobbiamo utilizzare un osservatore ridotto, quindi visto che i trasduttori danno in uscita

le posizioni dell’asta e del carrello, ma non le velocita, assegnamo il compito di osservare quest’ultime al

nostro osservatore ridotto. Verifichiamo innanzitutto l’osservabilita del nostro sistema tramite il calcolo

del rango della matrice N cosı definita:

N = [ CT AT CT AT 2

CT AT 3

CT ]

dove A e C sono le matrici del nostro sistema. Il rango risultante e pari a 4, il che vuol dire che il sistema

e completamente osservabile. Spezziamo lo stato in due parti:

x1 =

θ

x

x2 =

θ

x

questo comporta dividere la matrice A in quattro blocchi e la matrice B in due:

A =

[

A11 A12

A21 A22

]

B =

[

B11

B22

]

9

Page 13: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Capitolo 3: Il progetto del controllore 10

L’osservatore non e nient’altro che un sistema lineare che riceve in ingresso la prima parte dello stato,

x1, e il comando u e da in uscita lo stato osservato x2. La sua dinamica e esprimibile come:

z = Fz + Gu + Hx1

x2 = Cz11 + Lx1

avendo posto:

C11 = eye(2)

LT = place(AT22, AT

12CT11, [ω1 ω2])

F = A22 − LC11A12

G = B2 − LC11B1

H = (A21 + FLC11 − LC11A11)C−111

All’interno del comando place, ω1 e ω2 sono i poli dell’osservatore. Il loro posizionamento lo scegliamo

come un buon compromesso tra una maggiore velocita e quindi un controllo piu pronto e un’uscita meno

influenzata dai disturbi.

3.3 Il controllo LQR

Il tipo di controllo assegnato e un controllo proporzionale agli stati. Dobbiamo quindi decidere come agire

sul nostro sistema. Per garantire un buon inseguimento del comando sinusoidale assegnato dalle specifiche,

dobbiamo aggiungere degli stati: uno che si comporta come il comando di riferimento da inseguire e un

integratore che e indispensabile per eliminare sia il contributo della gravita, che tenderebbe a far cadere

il carrello da un lato, sia per evitare che il carrello stesso non torni nella posizione iniziale. Scriviamo a

tal punto la dinamica di questi nuovi stati aggiuntivi:

zins = zins

zins = −Ω2zins

iex= x − zins

(3.1)

indicando con zins e zins gli stati del segnale di riferimento, con Ω la pulsazione della sinusoide da inseguiree con iex

l’integratore dell’errore sulla posizione. Cosı facendo se inseriamo queste equazioni, nel sistema1.11, otteniamo:

1 0 0 0 0 0 0

0 1 0 0 0 0 0

0 0

(

mp

3+ ma

)

l21

2(mp + 2ma)l cos(α) 0 0 0

0 01

2(mp + 2ma)l cos(α) mtot 0 0 0

0 0 0 0 1 0 0

0 0 0 0 0 1 0

0 0 0 0 0 0 1

θ

x

θ

x

zins

zins

iex

+

+

0 0 −1 0 0 0 0

0 0 0 −1 0 0 0

(

mp

2+ ma

)

gl 0 0 0 0 0 0

0 0 0

[

c +τ2

m

r2m

(

Kmhm

Rm

+ Bm

)

]

0 0 0

0 0 0 0 0 −1 0

0 0 0 0 Ω2 0 0

0 −1 0 0 1 0 0

θ

x

θ

x

zins

zins

iex

+

0

0

0Kmτmηm

Rmrm

0

0

0

V = 0

(3.2)

Servosistemi Aerospaziali - A.A. 2004 − 2005Pagina 10 di 22

Page 14: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

11 3.3 Il controllo LQR

Il nostro sistema di controllo avra come fine l’annullamento della differenza tra il riferimento e gli stati

veri, ovvero possiamo definire questi errori come:

ex = x − zins

ex = x − zins

(3.3)

e con una trasformazione dello stato:

x′ = Tx −→

θ

ex

θ

ex

zins

zins

iex

1 0 0 0 0 0 0

0 1 0 0 −1 0 0

0 0 1 0 0 0 0

0 0 0 1 0 −1 0

0 0 0 0 1 0 0

0 0 0 0 0 1 0

0 0 0 0 0 0 1

θ

x

θ

x

zins

zins

iex

metterne in evidenza la loro dinamica. Scrivendo quindi il sistema 3.2 come:

V ′ · x + A′ ·x + B′ ·u = 0

e sostituendo x = T−1x′, possiamo definire le matrici A′ e B′ usate nel controllo come:

A′ = −TV ′−1A′T−1

B′ = −TV ′−1B′

Avremo quindi che il nostro controllo LQR agira su sette stati. I guadagni corrispettivi sono ottenibili

per mezzo della funzione lqr di Matlab, nella quale utilizzeremo le matrici A′ e B′ appena ottenute.

Servosistemi Aerospaziali - A.A. 2004 − 2005Pagina 11 di 22

Page 15: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Capitolo 4La simulazione numerica

4.1 Il modello Simulink

In figura 4.1 rappresentiamo il modello completo usato per la simulazione numerica al calcolatore.

zinsGraphics

z*insGraphics

100

m2cm1

100

m2cm

errorep

errore

confronto

180/pi

Rad2deg1

180/pi

Rad2deg

-mtot*g*sin(alpha) Posizione

u

y

x* theta*

Osservatore Ridotto

signal1

signal2

signal3

signal4

signal5

signal6

signal7

x' = Ax+Bu y = Cx+Du

Modello

K

MatrixGain

s

1

Segnale

Inseguimento

epxex

zpins

zins

x

theta

xp

thetap

Errore di velocità

Generatore dell'errore sulla velocità

Errore di posizione

Generatore dell'errore sulla posizione

Pulito Disturbato

Generatoredi Rumore

Carrello

Pulito Disturbato

Generatoredi Rumore

Asta

-K-

x

zpins

zins

ex

ex

epx

theta

thetap

theta

1

1/(2*pi*10)s+1

Filtro 10HzCarrello

1

1/(2*pi*10)s+1

Filtro 10HzAsta

Errore %

Errore

du/dt

Derivative

m

m

Segnale e Limiti

Errore

Errore %

Confrontotra i segnali

Confronto

Angolo* Asta1

Angolo Asta

Carrello*1

Carrello

Figura 4.1: Schema della simulazione numerica

Il blocco modello contiene le matrici del modello matematico del nostro esperimento, definite nella sezione

1.4 a pag.4. Le uscite del nostro sistema sono ovviamente θ e x. queste vengono fatte passare per i blocchi

di generatore di rumore, cosı composti:

12

Page 16: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

13 4.1 Il modello Simulink

1

Disturbato

Band-LimitedWhite Noise

1

Pulito

Figura 4.2: Generatore di Rumore

che simulano il disturbo attraverso dei rumori bianchi regolati con le stesse varianze calcolate nella sezione

2.1. Questi vengono quindi fatti passare in un filtro passabasso con frequenza di taglio a 10 Hz. Da qui

vanno nel nostro osservatore ridotto, cosı composto:

1

x* theta*

x' = Ax+Bu y = Cx+Du

Osservatore

K

MatrixGain1

m2

y

1

u

Figura 4.3: Osservatore ridotto

Nel blocco osservatore ridotto e presente tutta la dinamica dell’osservatore tranne la matrice D che

e stata posta nulla. Questa soluzione e stata necessaria per evitare che Matlab trovi un loop algebrico

che coinvolge il comando al sistema. La parte dell’uscita direttamente dipendente dall’ingresso viene

recuperata con un guadagno matriciale, sviluppato esternamente. Adesso abbiamo tutti e quattro gli

stati del nostro sistema e quindi, dopo aver creato il segnale da inseguire, tramite dei blocchi di differenza

possiamo facilmente creare gli stati e gli errori sui quali si basa il nostro controllo LQR. Per la sinusoide

prendiamo un periodo di 10 s. Impostiamo i poli dell’osservatore a −68 rad/s e −76.5 rad/s. La matrici Q

e stata impostata inzialmente in base alla teoria del massimo valore consentito e poi meglio caratterizzata

mediante varie simulazioni numeriche. La scelta finale e caduta su:

Q =

100000

rad2 0 0 0 0 0 0

0500

m20 0 0 0 0

0 0100

rad2/s20 0 0 0

0 0 0300

m2/s20 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 093000

m2s2

Si puo constatare che buon inseguimento e ottenibile tramite dei pesi “forti” sullo stato θ e sull’errore

integrale. Pesi inferiori vengono assegnati agli altri stati rimanenti e obbligatoriamente nulli per i riferi-

menti, in quanto questi non sono e non devono essere controllati. La matrice R la scegliamo in modo da

Servosistemi Aerospaziali - A.A. 2004 − 2005Pagina 13 di 22

Page 17: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Capitolo 4: La simulazione numerica 14

mantenere il comando entro dei limiti accettabili, quindi R = [5]. Cosı facendo otteniamo come guadagni:

K = [−263.3649 − 149.6009 − 47.9929 − 89.3000 − 10.3769 − 9.2080 − 136.3818]

e come poli in anello chiuso:

E =

−29.4409 + 3.6246i

−29.4409 − 3.6246i

−2.0001

−1.2212 + 1.7654i

−1.2212 − 1.7654i

−0.0000 + 0.6283i

−0.0000 − 0.6283i

4.2 I risultati ottenuti

Passiamo quindi ad osservare i risultati ottenuti dalla simulazione numeri utilizzando i parametri appena

descritti. In figura 4.4 possiamo osservare l’andamento lungo i primi due periodi della sinusoide di

riferimento, scostata dell’errore dettato dalle specifiche del ±1%, e quella realmente percorsa dal nostro

sistema simulante.

0 2 4 6 8 10 12 14 16 18 20−5

0

5

10

15

20

25

30

35

40

45Sinusoide percorsa nel tempo

t [s]

x[c

m]

0 0.5 1 1.5 2 2.5 3−5

0

5

10

15

20

25

30Dettaglio del transitorio iniziale

t [s]

x[c

m]

Figura 4.4: Confronto tra il segnale da inseguire con un errore del ±1% e il risultato della simulazione

con un dettaglio del transitorio iniziale

Nella figura 4.5, rappresentiamo l’andamento dell’errore nel tempo.

Servosistemi Aerospaziali - A.A. 2004 − 2005Pagina 14 di 22

Page 18: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

15 4.2 I risultati ottenuti

0 2 4 6 8 10 12 14 16 18 20−1.4

−1.2

−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

Andamento dell’errore nel tempo

t [s]

ex

[cm

]

0 2 4 6 8 10 12 14 16 18 200

1

2

3

4

5

6

7

Andamento dell’errore percentuale assoluto nel tempo

t [s]

ex

[%]

Figura 4.5: Andamento dell’errore nel tempo.

Come si puo notare la specifica, risulta pienamente soddisfatta mentre il transitorio e possibile interpre-

tarlo come il tempo che serve all’integratore per entrare pienamente in funzione ed eliminare il distur-

bo costante dovuto alla gravita. Per completezza riportiamo anche il diagramma dell’andamento della

posizione angolare dell’asta nel tempo.

0 2 4 6 8 10 12 14 16 18 20−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

Posizione angolare dell’asta

t [s]

θ

Figura 4.6: Andamento della posizione angolare durante la simulazione

Come e possibile osservare, non viene compiuto un errore maggiore a 0.6 durante la simulazione.

Servosistemi Aerospaziali - A.A. 2004 − 2005Pagina 15 di 22

Page 19: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Capitolo 5L’esperimento

5.1 Il modello Simulink

In figura 5.1 rappresentiamo il modello completo usato per l’esperimento in laboratorio

volt comando

saturazione

z*ins

zins

riferimento

in Out

misure

100

m2cm

inseguimento

x

zins

inseguimento

errore

graficierrore

Bad Link

Time-Base

Terminator

Switch

Soglia

180/pi

Rad2deg1u

y

x* theta*

Osservatore Ridotto

signal1

signal2

signal3

signal4

signal5

signal6

signal7

K

MatrixGain

s

1

e

ep

xp

zpins

zins

thetap

x

theta

zpins

xp

Errore di velocità

Generatore dell'errore sulla velocità

zins

x

Errore di posizione

Generatore dell'errore sulla posizione

[e]

[zpins]

[zins]

[ep]

[zpins]

[xp]

[zins]

[zins]

[x]

[x]

[thetap]

[e]

[x]

[theta]

[theta]

1

1/100s+1

Filtro2

1

0.0032s+1

Filtro1

1

0.0032s+1

Filtrom

m

[0 0]

Constant1

Clock2

Bad Link

Carrello

Bad Link

Asta

Angolo* Asta1

Bad Link

Analog Output

Carrello*1

Figura 5.1: Modello dell’esperimento

Non vi e nulla di diverso concettualmente rispetto allo schema di figura 5.1, se non per il fatto che ora

c’e l’interfaccia con il pendolo vero. Ovviamente non vi e piu bisogno di simulare i rumori, mentre come

16

Page 20: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

17 5.1 Il modello Simulink

prima abbiamo due filtri a 10 Hz. I segnali acquisiti dai potenziometri vengono poi mandati all’interno

del blocco misure, rappresentato dallo schema di figura 5.2.

1

Out

In1 Out1

offset1

In1 Out1

offset

100

m2cm

carrello

-K-

Rad2deg1

1/11.1

Gain3

1/4

Gain2

Demux

Demux1

Angolo Asta

1

in

Figura 5.2: Calcolo delle posizioni

Esso ha il compito di eliminare l’offset della misura, tramite il sottosistema offset rappresentato in

figura 5.3.

1

Out1Switch

Sum3

Sum1

Product

Memory2

Memory1

Memory

1

Constant1

1

In1

Figura 5.3: Eliminazione dell’offset

Questo provvede a calcolare il valor medio ottenuto in ingresso all’istante iniziale, in modo da eliminare il

piu possibile il rumore, che come detto e considerato bianco e quindi a valor medio nullo. Una volta cal-

colato, il valore viene poi restituito al blocco misure e sottratto al segnale in ingresso. Quindi utilizzando

i valori trovati nel capitolo 2 convertiamo la misura da volt a metri, per il carrello, e da volt a radianti

per l’asta. Il sistema e poi concepito in modo tale che il controllo incominci a funzionare solo dopo un

secondo in modo tale da riuscire ad acquisire il valore iniziale. Il comando, invece, prima di essere inviato

al motorino passa principalmente attraverso due blocchi, uno di saturazione e l’altro di soglia che servono

a limitare, nell’intervallo ± 0.4 ÷ 6 V, l’ampiezza del comando stesso. Nella realta bisogna evitare anche

un comando a frequenza troppo elevata che porterebbe il motore ad essere troppo “nervoso”. Una buona

soluzione per questa situazione la troviamo utilizzando un filtro di 16 Hz a monte del motore. I parametri

relativi all’osservatore e al controllo LQR rimangono gli stessi della simulazione numerica.

Servosistemi Aerospaziali - A.A. 2004 − 2005Pagina 17 di 22

Page 21: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Capitolo 5: L’esperimento 18

5.2 I risultati ottenuti

Passiamo quindi ad osservare i risultati ottenuti dall’esperimento utilizzando i parametri appena descritti.

In figura 5.4 possiamo osservare l’andamento lungo il primo periodo della sinusoide di riferimento, scostata

dell’errore dettato dalle specifiche del ±1%, e quella realmente percorsa dal nostro pendolo. Come si

0 1 2 3 4 5 6 7 8 9 10−5

0

5

10

15

20

25

30

35

40

45Sinusoide percorsa nel tempo

t [s]

x[c

m]

3 3.5 4 4.5 5 5.5 6 6.5 725

30

35

40

Dettaglio del transitorio iniziale

t [s]

x[c

m]

Figura 5.4: Confronto tra il segnale da inseguire con un errore del ±1% e il risultato dell’esperimento con

un dettaglio del transitorio iniziale.

poteva prevedere nella realta non otteniamo gli ottimi risultati ottenuti nella simulazione numerica.

Nella figura 5.5(a), rappresentiamo l’andamento dell’errore nel tempo. Come si puo notare la specifica

0 1 2 3 4 5 6 7 8 9 100

2

4

6

8

10

12

Errore percentuale

t [s]

ex

[%]

(a) Andamento dell’errore percentuale nel tempo.

0 1 2 3 4 5 6 7 8 9 10−6

−4

−2

0

2

4

6Comando

t [s]

[V]

(b) Andamento del comando nel tempo.

Figura 5.5: Andamento dell’errore percentuale e del comando nel tempo.

dell’1% non risulta piu soddisfatta. Vediamo comunque che dopo il transitorio iniziale l’errore si mantiene

intorno al 3% con un picco del 5.5% circa, subito dopo il cambio di direzione nel pendolo. Questo e

Servosistemi Aerospaziali - A.A. 2004 − 2005Pagina 18 di 22

Page 22: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

19 5.2 I risultati ottenuti

dovuto facilmente al comportamento instabilizzante della massa aggiunta in cima al pendolo. In figura

5.5(b) e rappresentato invece l’andamento del comando nel tempo mentre in figura 5.6 rappresentiamo

l’andamento della posizione angolare nel tempo.

0 1 2 3 4 5 6 7 8 9 10

−1

−0.5

0

0.5

1

Posizione angolare dell’asta

t [s]

θ

Figura 5.6: Andamento della posizione angolare durante l’esperimento

Come e possibile osservare, non viene compiuto un errore maggiore a 1.25 durante la simulazione.

Servosistemi Aerospaziali - A.A. 2004 − 2005Pagina 19 di 22

Page 23: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

Appendice AFile Matlab

%------ Progetto Pendolo Inverso

mc=0.4967;%Kg

mp=0.210;%Kg

ma=0.037;%Kg

alpha=pi/36*0;%rad

l=0.61;%m

g=9.81;%m/s^2

taum=3.7;

km=0.00767;%Nm/A

rm=0.00635;%m

Rm=2.6;%Ohm

hm=0.00767;%V/(rad/s)

c=4.1%Ns/m;

mtot=mc+mp+ma;%Kg

Bm=0;

etam=0.9;

Om=2*pi/10%rad/s;

%------ stato del sistema x=theta x theta* x* zins z*ins iex

v=[1 0 0 0 0 0 0;

0 1 0 0 0 0 0;

0 0 (mp/3+ma)*l^2 0.5*(mp+2*ma)*l*cos(alpha) 0 0 0;

0 0 0.5*(mp+2*ma)*l*cos(alpha) mtot 0 0 0;

0 0 0 0 1 0 0;

0 0 0 0 0 1 0;

0 0 0 0 0 0 1;]

a=[0 0 -1 0 0 0 0;

0 0 0 -1 0 0 0;

20

Page 24: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

-(mp/2+ma)*g*l 0 0 0 0 0 0;

0 0 0 c+taum^2/rm^2*(km*hm/Rm+Bm) 0 0 0;

0 0 0 0 0 -1 0;

0 0 0 0 Om^2 0 0;

0 -1 0 0 1 0 0;]

b=[0 0 0 -1*(km*taum*etam/(Rm*rm)) 0 0 0]’;

%------ trasformo lo stato del sistema x=theta ex theta* ex* zins z*ins ix

T=[1 0 0 0 0 0 0;

0 1 0 0 -1 0 0;

0 0 1 0 0 0 0;

0 0 0 1 0 -1 0;

0 0 0 0 1 0 0;

0 0 0 0 0 1 0;

0 0 0 0 0 0 1]

AA=-T*inv(v)*a*inv(T);

BB=-T*inv(v)*b;

CC=[1 0 0 0 0 0 0;0 1 0 0 0 0 0];

DD=[0 0]’;

sis_com=ss(AA,BB,CC,DD);

poli_sis_com=pole(sis_com)

A=-inv(v(1:4,1:4))*a(1:4,1:4);

B=-inv(v(1:4,1:4))*b(1:4);

C=[1 0 0 0; 0 1 0 0];

D=[0 0]’;

sis=ss(A,B,C,D);

poli_sis=pole(sis)

%------- Osservabilita e Controllabilita del sistema

Q=ctrb(sis);

N=obsv(sis);

q=rank(Q);

n=rank(N);

if (q>=4 & n>=4)

disp(’Il sistema e osservabile e controllabile’)

else

if(q>=4 & n<4)

disp(’Il sistema e controllabile ma non osservabile ’)

21

Page 25: Servosistemi Aerospaziali...Servosistemi Aerospaziali - A.A. 2004−2005 Pagina 2 di 22 3 1.3 Il motore elettrico considerando θ,x,θ,˙ x˙ come vettore x degli stati del nostro

else

if(q<4 & n>=4)

disp(’Il sistema e osservabile ma non controllabile ’)

else

disp(’Il sistema non e ne osservabile ne controllabile’)

end

end

end

%------- Osservatore Ridotto

%Riduzione delle matrici

Axx=A(1:2,1:2);

Axy=A(1:2,3:4);

Ayx=A(3:4,1:2);

Ayy=A(3:4,3:4);

Bx=B(1:2);

By=B(3:4);

Cxx=eye(2);

Lt=place(Ayy’,Axy’*Cxx’,8.5*[-8.0,-9.0]);

L=Lt’;

%Matrici Osservatore Ridotto

F=Ayy-L*Cxx*Axy;

G=By-L*Cxx*Bx;

H=(Ayx+F*L*Cxx-L*Cxx*Axx)*(inv(Cxx));

Arid=F;

Brid=[G H];

Crid=eye(2);

Drid=[L zeros(2,1)];

%----- Controllo LQR

lqr_Q=diag([100000 500 100 300 0 0 93000]);

R=(5);

[K,S,E]=lqr(AA,BB,lqr_Q,R)

22