servosistemi aerospaziali...servosistemi aerospaziali - a.a. 2004−2005 pagina 2 di 22 3 1.3 il...
TRANSCRIPT
Politecnico di Milano
Corso di Laurea in Ingegneria Aerospaziale
Servosistemi Aerospaziali
prof. Franco Bernelli Zazzera
Nicola Morganti
matr. 642686
A.A. 2004 − 2005
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%.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
-(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
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