matlab5 - Corsi a Distanza

Commenti

Transcript

matlab5 - Corsi a Distanza
Politecnico di Torino
Introduzione a MATLAB 5
Introduzione a matlab 5*
E
Control system toolbox
Diego Regruto Tomalino ([email protected])
DAUIN - Politecnico di Torino
Aprile 2002
* Questi lucidi sono una integrazione a “introduzione a MATLAB”
Versione 1.2 (X-1998) a cura di Michele Taragna .
Versione 1
1
Politecnico di Torino
Introduzione a MATLAB 5
La filosofia ad oggetti
• La principale novità introdotta nelle versioni di
MATLAB a partire dalla 5.0 consiste nella
possibilità di definire l’appartenenza degli
oggetti su cui si vuole lavorare a particolari
classi di oggetti predefinite. Questo permette di
gestire le tipiche operazioni tra oggetti della
stessa classe con maggiore praticità e di
accedere più rapidamente alle proprietà tipiche
dell’oggetto.
Versione 1
2
Politecnico di Torino
Introduzione a MATLAB 5
Alcune precisazioni
• Le versioni di MATLAB 5.x e 6 sono compatibili
completamente con le versioni precedenti.
• Le istruzioni e le funzioni predefinite di MATLAB
4 continuano, pertanto, ad essere funzionanti e
possono quindi essere utilizzate anche nelle
versioni 5.x e 6.
• In questi lucidi vengono presentati solo le
nuove funzioni e istruzioni offerte da MATLAB
5.x e dal CONTROL SYSTEM TOOLBOX 4.2 utili
a trattare problematiche di AUTOMATICA.
Versione 1
3
Politecnico di Torino
Introduzione a MATLAB 5
Funzione TF
• La definizione di un sistema dinamico può
essere effettuata attraverso tre diverse funzioni
(TF, SS e ZPK).
• TF: definisce un nuovo oggetto di tipo transfer
function a partire dai due vettori contenenti
rispettivamente i coefficienti del numeratore e
del
denominatore
della
funzione
di
trasferimento.
Esempio: G = TF([1 2],[1 5 78]) definisce la f.d.t.
s+2
G(s) = 2
s + 5s + 78
Versione 1
4
Politecnico di Torino
Introduzione a MATLAB 5
Funzione SS
• SS: definisce un nuovo oggetto di tipo state
space a partire dalle 4 matrici della descrizione in
variabili di stato (A,B,C,D).
Esempio:
G = SS(A,B,C,D) definisce il sistema G descritto
dalle equazioni di stato:
x! = Ax + Bu
y = Cx + Du
Versione 1
5
Politecnico di Torino
Introduzione a MATLAB 5
Funzione ZPK
• ZPK: definisce un nuovo oggetto di tipo zeropole-gain a partire da tre vettori contenenti
rispettivamente zeri, poli e guadano per s → ∞
Esempio:
G = ZPK([z1 z2],[p1 p2 p3],[k]) definisce il sistema
G descritto dalla seguente f.d.t:
k ( s − z1 )( s − z 2 )
G (s) =
( s − p1 )( s − p2 )( s − p3 )
Versione 1
6
Politecnico di Torino
Introduzione a MATLAB 5
Algebra degli schemi
a blocchi
• La descrizione dei sistemi dinamici mediante
oggetti di tipo TF, SS, ZPK ci offre il grande
vantaggio di poter operare in modo immediato
tutte le operazioni algebriche tra sistemi
dinamici interconnessi.
Versione 1
7
Politecnico di Torino
Introduzione a MATLAB 5
Dati due sistemi G1, G2 definiti da oggetti di tipo
TF, SS o ZPK, le operazioni di somma, prodotto e
rapporto tra sistemi dinamici ( intese nel senso
degli schemi a blocchi e, cioè, nel dominio di
Laplace) sono ottenute eseguendo tali operazioni
tra gli oggetti G1 e G2, cioè:
G1
G2
G1
+
G2
-
G1*G2
G1- G2
e analogamente per tutte le operazioni dell’algebra
degli schemi a blocchi:
Versione 1
8
Introduzione a MATLAB 5
Politecnico di Torino
R(s) +
G1
G2
Y(s)
-
T(s) = Y(s)/R(s) = G2*G1/(1+G2*G1)
N.B.: Le cancellazioni polo - zero vanno forzate con il
comando minreal:
T = G2*G1/(1+G2*G1); crea l’oggetto T senza operare le
cancellazioni
T = minreal(T); esegue le cancellazioni
Versione 1
9
Politecnico di Torino
Introduzione a MATLAB 5
Conversione tra classi di oggetti
• Dato un sistema G descritto mediante un
oggetto di tipo TF è possibile convertirlo in un
oggetto di tipo ZPK o SS e vicerversa nel modo
seguente:
G = TF(num, den); definisco G come oggetto TF
trasformo G in oggetto ZPK
G = ZPK(G);
trasformo G in oggetto SS
G = SS(G);
Versione 1
10
Politecnico di Torino
Introduzione a MATLAB 5
NOTA BENE
• SE SI OPERANO TROPPE CONVERSIONI DA TF
A ZPK e/o SS (e viceversa) OPPURE SE SI
OPERANO MOLTE OPERAZIONI ALGEBRICHE
TRA SISTEMI SI DEGRADA FORTEMENTE LA
PRECISIONE DEI RISULTATI A CAUSA DI
PROBLEMI DI CARATTERE NUMERICO.
Versione 1
11
Politecnico di Torino
Introduzione a MATLAB 5
Funzioni
TFDATA, SSDATA, ZPKDATA
• Dato un sistema dinamico descritto mediante
un oggetto di tipo TF o SS o ZPK, è possibile
estrarre da esso i vettori dei coefficienti del
numeratore e del denominatore, gli zeri, i poli, i
guadagni (sia quello stazionario che quello per
s→∞
→∞)
→∞ e le quattro matrici A,B,C,D della
descrizione in variabili di stato, mediante le
seguenti istruzioni:
Versione 1
12
Politecnico di Torino
•
•
•
•
Introduzione a MATLAB 5
[num,den] = tfdata(G,’v’); numeratore e denominatore
→∞
[z, p, k] = zpkdata(G,’v); zeri, poli e guadagno per s→∞
kst = dcgain(G); guadagno stazionario
[A,B,C,D] = ssdata(G); matrici delle equazioni di stato
• N.B. : Tali dati riguardanti il sistema G possono essere
ottenuti come appena indicato indipendentemente dal
fatto che l’oggetto descrivente il sistema sia della
classe TF, SS o ZPK.
Versione 1
13
Politecnico di Torino
Introduzione a MATLAB 5
Funzioni
STEP, IMPULSE, LSIM,
GENSIG, INITIAL
• Le risposte rispettivamente al gradino unitario e
all’impulso possono essere calcolate usando le
funzioni step e impulse nel seguente modo:
Esempio 1: [y,t] = step(G,tfinal) stampa la risposta
al gradino del sistema G definito da un oggetto
di tipo TF o SS o ZPK da tempo t=0 a tempo
t=tfinal. y contiene i valori dell’uscita e t e’ il
vettore dei campioni del tempo.
• N.B.: impulse lavora analogamente (vedi help in linea);
vedi help in linea per altre opzioni di questi comandi;
Versione 1
14
Politecnico di Torino
Introduzione a MATLAB 5
• Le risposta ad un ingresso arbitrario può, invece,
essere simulata con il comando LSIM nel seguente
modo:
Esempio :
t = 0:0.01:5; definisco l’intervallo di tempo
u = sin(t); costruisco l’ingresso u(t)
y = lsim(sys,u,t); simulo la risposta del sistema sys
Versione 1
15
Politecnico di Torino
Introduzione a MATLAB 5
• Il comando GENSIG permette di generare un
segnale periodico di tipo TYPE e periodo TAU
nel seguente modo:
[u,t] = gensig(TYPE,TAU)
Le opzioni possibili per TYPE sono:
1. TYPE = 'sin’ ; sinusoidale
2. TYPE = 'square’; onda quadra
3. TYPE = 'pulse’; impulso periodico
Versione 1
16
Politecnico di Torino
Introduzione a MATLAB 5
• Le risposta libera alle condizioni iniziali X(0) può
essere simulata con il comando INITIAL nel
seguente modo:
Esempio :
t = 0:0.01:5; definisco l’intervallo di tempo
[y,t,x] = initial(G,Xo) stampa la risposta libera a
partire dalle condizioni iniziali X(0)=Xo del
sistema G definito da un oggetto di tipo TF o SS
o ZPK da tempo t=0 a tempo t=tfinal. y contiene
i valori dell’uscita, x quelli dello stato del
sistema, e t è il vettore dei campioni del tempo.
Versione 1
17
Politecnico di Torino
Introduzione a MATLAB 5
Funzioni
BODE, NYQUIST, NICHOLS
• Le funzioni BODE, NYQUIST e NICHOLS sono
analoghe a quelle di MATLAB 4. L’unica
differenza consiste nella possibilita’ di operare
con queste funzioni direttamente su oggetti di
tipo TF, SS e ZPK.
Esempio:
BODE(G) stampa il diagramma di bode del
sistema G.
• N.B.: vedi help in linea per altre opzioni di questi comandi;
Versione 1
18
Politecnico di Torino
Introduzione a MATLAB 5
Funzione CTRB
calcola la matrice
• CO = CTRB(A,B)
controllabilita’ CO = [B AB A^2B ...].
di
• CO = CTRB(SYS) calcola la matrice di
controllabilita’ del sistema descritto dalle
matrici (A,B,C,D) della rappresentazione in
variabili di stato.
Versione 1
19
Politecnico di Torino
Introduzione a MATLAB 5
Funzione OBSV
calcola la matrice
• OB = OBSV(A,C)
osservabilita’ OB = [C; CA; CA^2; ...].
di
• OB = OBSV(SYS) calcola la matrice di
osservabilità del sistema descritto dalle matrici
(A,B,C,D) della rappresentazione in variabili di
stato.
Versione 1
20
Politecnico di Torino
Introduzione a MATLAB 5
Funzioni CTRBF, OBSVF
• [ABAR,BBAR,CBAR,T,K] = CTRBF(A,B,C)
Calcola la forma canonica di KALMAN di
controllabilità.
• [ABAR,BBAR,CBAR,T,K] = OBSVF(A,B,C)
Calcola la forma canonica di KALMAN di
osservabilità.
N.B.: l’help contiene la descrizione topologica
delle matrici ABAR, BBAR, etc. della
decomposizione canonica.
Versione 1
21
Politecnico di Torino
Introduzione a MATLAB 5
Funzioni PLACE, ACKER
• K = PLACE(A,B,P) calcola la matrice K dei guadagni in
retroazione dagli stati tale da far coincidere gli
autovalori della matrice A-B*K del sistema retroazionato
con quelli elencati nel vettore P.
• K = ACKER(A,B,P) compie la stessa operazione usando
la formula di Ackermann.
• N.B.: 1) PLACE non permette di piazzare autovalori con
molteplicità maggiore del numero di ingressi.
2) ACKER manifesta grossi problemi numerici quando la
matrice A ha dimensione maggiore di 10.
3) PLACE e ACKER possono anche essere utilizzati per il
calcolo dei guadagni L dell’osservatore nel seguente modo:
L =place(A',C',P)
Versione 1
22
Politecnico di Torino
Introduzione a MATLAB 5
Funzioni POLE, DAMP
• P = POLE(SYS) calcola i poli del sistema SYS.
• [Wn,Z] = DAMP(SYS) calcola le pulsazioni naturali
(Wn) e gli smorzamenti (Z) dei poli del sistema
SYS.
Versione 1
23
Politecnico di Torino
Introduzione a MATLAB 5
Funzioni ESTIM, REG
• EST = ESTIM(SYS,L) produce l’osservatore dello stato
del sistema SYS a partire dai guadagni L.
• RSYS = REG(SYS,K,L) produce il regolatore
(osservatore + retroazione dagli stati) a partire dai
gudagni L (osservatore) e K (retroazione dagli stati).
Versione 1
24