Sei sulla pagina 1di 48

INTRODUZIONE A

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Documentazione
Sito web di Mathworks: www.mathworks.com seguendo i link alla voce support e possibile trovare i manuali di Matlab in formato pdf. (http://www.mathworks.com/access/helpdesk/help/techd oc/matlab.shtml) Un testo in italiano di introduzione a matlab e Simulink: Guida Operativa a MATLAB, SIMULINK e Control Toolbox Alberto Cavallo, Roberto Setola, & Francesco Vasca Liguori Editore, 1994
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

OUTLINE
Descrizione generale di MATLAB Quadro delle funzioni predefinite Definizione di matrici e vettori Definizione di polinomi Rappresentazione di sistemi dinamici lineari Analisi di sistemi di controllo Rappresentazione grafica dei dati

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Descrizione generale di Matlab


MATrix LABoratory Software esplicitamente realizzato per manipolazione di matrici Interattivo Interprete di comandi Elemento base: matrice (che non richiede dimensionamento) Sviluppato agli inizi degli anni '80, come sottoprodotto dei progetti LINPACK ed EISPACK, da The MathWorks Inc.

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Interfaccia MATLAB

Workspace COMMAND WINDOW

History

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Help di MATLAB
E disponibile un aiuto in linea accessibile direttamente dalla riga di comando. Digitando help nella riga di comando vengono restituite tutte le funzioni. Digitando invece help nome_funzione viene restituita la sintassi duso della funzione e una descrizione della stessa. E possibile anche utilizzare lhelp di windows associato al programma MATLAB. Sono presenti vari esempi dimostrativi accessibili digitando demos nella riga di comando. Infine si pu utilizzare la funzione lookfor per cercare allinterno della descrizione delle varie funzioni una parola chiave.

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

VARIABILI
MATLAB supporta nomi di variabili sino a 63 caratteri ed case sensitive. E possibile utilizzare lettere, numeri e i caratteri speciali che non hanno un corrispondente significato come operatori in MATLAB (praticamente solo lunderscore _). La variabile deve sempre cominciare con una lettera. E' opportuno non utilizzare i nomi delle funzioni predefinite da MATLAB, ci comporta l'annullamento del significato prestabilito da MATLAB per quella funzione e di conseguenza un messaggio di errore. Per assegnare una variabile non necessaria una precedente dichiarazione.

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

VARIABILI
Posso visualizzare il contenuto di una variabile inserendone semplicemente il nome dalla riga di comando. Utilizzando la funzione who viene restituita la lista di variabili definite nel workspace. La funzione whos fornisce anche una descrizione delle stesse indicandone anche la dimensione, il numero di bytes occupati e la classe. Ans una variabile di MATLAB dove viene memorizzato il risultato di una eventuale operazione se non viene specificata una variabile a cui assegnare il risultato. Variabili speciali:
eps = 2-52 rappresenta l'accuratezza (o Inf) infinito NaN risultato di 0/0 (Not A Number) pi
Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Guido Vagliasindi

VARIABILI
Range: da 10-308 a 10+308 Accuratezza: 16 cifre decimali Operatori: +, *, -, / (divisione destra), \ (divisione sinistra), ^ (elevamento a potenza) Uso "normale" delle parentesi per cambiare la priorit tra gli operatori MATLAB consente l'uso di numeri complessi: si usa il simbolo "i" o "j" per indicare la parte immaginaria. La dichiarazione di variabili complesse avviene moltiplicando la parte complessa per "i" o "j" e sommando la parte reale: z = 3+4*i; (niente spazi tra i termini) N.B. E equivalente usare z=3+4i; Tutte le funzioni MATLAB accettano variabili complesse come ingressi
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

MATRICI
Qualunque variabile considerata in MATLAB come una matrice, anche gli scalari e i vettori. In particolare uno scalare sar una matrice (1x1) mentre un vettore sar una matrice con una sola colonna (nx1) o con una sola riga (1xn). Una matrice pu essere inserita in MATLAB in diverse maniere:
a. b. c. d. assegnazione di lista di elementi generate da funzioni built-in create con un programma (m-file) caricate da file esterni (di dati)

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

MATRICI
a. Assegnazione di lista di elementi Bisogna: Separare gli elementi di una riga con spazi vuoti o virgole; Usare un punto e virgola ; o un invio per indicare la fine di ciascuna riga. Racchiudere lelenco intero di elementi tra parentesi quadre A=[1 2 3; 4 5 6; 7 8 9] A=[1,2,3; 4,5,6; 7,8,9] A= A=[1 2 3 123 456 456 789 7 8 9] Se alla fine di ciascuna assegnazione metto un ; non c echo. Una volta fornita la matrice essa sar memorizzata nel workspace e richiamabile semplicemente digitanto A e invio nella CW.
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

MATRICI
b. Generate da funzioni built-in
Loutput di alcune funzioni MATLAB costituito da una matrice. Alcune funzioni elementari che restituiscono una matrice come uscita sono:
eye(n,n) -> matrice identita nxn; zeros(n,m) -> matrice di zeri nxm; ones(n,m) -> matrice di uni nxm; rand(n,m) -> matrice nxm con elementi distribuiti uniformemente tra 0 e 1.

c. Create con un programma


In MATLAB possibile scrivere degli script definiti m-files che contengono al loro interno una sequenza di comandi elementari o chiamate a funzioni che vengono poi interpretate da MATLAB come se venisse scritta nella command window.
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

MATRICI
d. Caricate da file esterni (di dati)
Ciascuna variabile contenute nel workspace possono essere salvate su disco con il comando save nome_file lista_variabili <opzioni> E possibile salvare tutto il workspace nel file nome_file.mat semplicemente con il comando save nome_file E possibile richiamare le variabili salvate precedentemente con un save o contenute in file di dati ottenuti attraverso altri programmi o acquisizioni con i comandi load nome_file lista_variabili <opzioni> load nome_file <opzioni> Per un dettaglio delle opzioni, digitare help load e help save nella command window
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

MATRICI
E possibile accedere ai singoli elementi della matrice specificando la riga e la colonna. A(1,2) ans = 2 E possibile selezionare intere righe o intere colonne della matrice utilizzando la wildcard : A(1,:) A(:,2) ans = 1 2 3 ans = 2 5 8 E anche possibile selezionare porzioni di matrice con la seguente sintassi A(1:2,2:3) ans= 23 56
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Funzioni in MATLAB
MATLAB prevede un gran numero di funzioni matematiche standard Funzioni trigonometriche (sin, cos, tan, acos, asin, atan) Esponenziale e logaritmo (exp, log, log10, sqrt) Numeri complessi (abs -> modulo, angle -> fase, real -> parte reale, imag -> parte immaginaria) Per un elenco delle funzioni matematiche elementari digitare help elfun per un elenco pi avanzato help specfun o help elmat Esistono anche funzioni pi complesse, realizzate tramite m-file e raccolte in forma di libreria dette toolbox. Per maggiori informazioni possibile visitare il sito http://www.mathworks.com e scaricare i manuali dei singoli toolbox.
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Operazioni su matrici
Sono definite le normali operazioni aritmetiche: addizione + divisione / sottrazione moltiplicazione * elevamento a potenza ^

ADDIZIONE E SOTTRAZIONE Le operazioni si possono effettuare tra elementi della stessa dimensione ed elementi di dimensioni diverse. Esempio : A = [1 2 ; 2 1]; x = [1 2 3]'; y=x+1 B = [2 1; 1 2]; y=2 A-B A+B 3 ans = ans = 4 -1 1 33 1 -1 33
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Operazioni su matrici
PRODOTTO Anche in questo caso ci possono essere diverse combinazioni. Matrice * Matrice Matrice * Vettore Matrice * Scalare
A = [1 2 ; 2 1]; B = [2 1; 1 2]; A*B ans= 4 5 5 4 A = [1 2 ; 2 1]; x = [1 2]; x*A ans 5 4 A = [1 2 ; 2 1]; a=2; a*A ans 2 4 4 2

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Operazioni su matrici
DIVISIONE Sia A invertibile (quadrata, non singolare): A\B equivale a: A-1B inv(A)*B B/A equivale a: BA-1 B*inv(A) Si usa nella soluzione di sistemi di equazioni lineari: x = B/A soluzione di x*A = B x = A\B soluzione di A*x = B ELEVAMENTO A POTENZA Sia A matrice quadrata, p uno scalare (non necessariamente intero) A^p p-esima potenza di A ovvero A*A*A*.....*A se p intero

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Operazioni su matrici
FUNZIONI TRASCENDENTI exp(A) e sqrt(A) eseguono rispettivamente l'esponenziale e la radice quadrata dei singoli elementi si A expm(A), logm(A) e sqrtm(A) operano invece sulle matrici nella loro globalit: expm(A) I + A + A2/2 +... sqrtm(A) A^(1/2) TRASPOSIZIONE Loperatore di trasposizione di una matrice lapice . Se applicato ad un vettore lo trasforma da riga a colonna e viceversa. Se applicato ad una matrice a coefficienti complessi restituisce la matrice complessa coniugata trasporta.

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Operazioni su matrici
ALTRE FUNZIONI det(A) eig(A) inv(A) rank(A) trace(A) poly(A) norm(A) size(A) Calcola il determinante della matrice A Calcola gli autovalori della matrice A Calcola linversa della matrice A Calcola il rango della matrice A Calcola la traccia della matrice A Calcola i coefficienti del polinomio caratteristico di A Calcola la norma della matrice A Calcola le dimensioni della matrice A

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Array o vettori
I vettori hanno due funzioni fondamentali in Matlab: rappresentazione dei polinomi (un polinomio descritto dal vettore dei suoi coefficienti); rappresentazione di segnali (un segnale rappresentato mediante la sequenza dei valori che assume in un insieme di istanti di tempo, quindi mediante un vettore). Possono essere definiti: Con loperatore : : v=(0:10) v =0 1 2 3 4 5 6 7 8 9 10 v=(0:0.5:3) v =0 0.5 1 1.5 2 2.5 3 Come matrici riga o colonna: v=[1 2 3] v =1 2 3

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Operazioni su array
Finora gli operatori aritmetici visti agivano sulle matrici nella loro globalit Le operazioni sugli array si riferiscono ad operazioni aritmetiche eseguite elemento per elemento. Gli operatori su array si distinguono da quelli per matrici per il simbolo "." prima dell'operatore (niente spazio tra punto e operatore) Addizione (.+) e sottrazione (.-) sono le stesse Moltiplicazione (.*) e divisione (./ oppure .\) si differenziano: x = [1 2 3]; y = [4 5 6]; z = x.*y z= 4 10 18 z = x.\y z= 4 2.5 2
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Operazioni sui polinomi


Detto p un polinomio definito sotto forma di vettore pol=[1 2 5], possiamo utilizzare le seguenti funzioni roots(pol): calcola le radici del polinomio polyval(pol,0): calcola il valore del polinomio in un punto conv(p1,p2): esegue il prodotto tra polinomi [Q,R]=deconv(p1,p2): calcola la divisione tra polinomi. Restituisce in Q e R rispettivamente il quoziente e il resto. [R,P,K]=residue(p1,p2): calcola i residui, i poli e i termini diretti della espansione in fratti semplici del rapporto tra due polinomi p1 e p2.

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Operatori relazionali
Operatori relazionali: <, <=, >, >=, ==, ~= (~ alt-126) Operano una comparazione elemento per elemento. Il risultato
1 se il test TRUE 0 se il test FALSE

Operatori logici: & (and), | (or), ~ (not) Consentono di combinare pi operatori relazionali. Le variabili su cui operano vanno considerate
TRUE se diverse da 0 FALSE se uguali a 0

I risultati sono
1 se TRUE 0 se FALSE

>> a=(1>2)
a=0

>> a=(1<2)
a=1

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

GRAFICA 2D
plot(y): produce un grafico lineare degli elementi di y in cui le ascisse sono lindice degli elementi di y plot(x,y): produce un grafico lineare di y rispetto a x plot(x,y,colore_stile_marcatore): produce un grafico di y rispetto a x specificando il colore della linea, lo stile della linea e il marcatore per identificare gli elementi di y nel grafico plot(x1,y1,x2,y2,,xn,yn): produce un grafico multiplo. hold on: consente di aggiungere un tracciato ad un grafico preesistente xlabel(string), ylabel(string), title(string): consentono specificare una label per lasse x, lasse y e lintero grafico di

axis: consente di personalizzare la misurazione in scala e il rapporto di aspetto tra i tracciati


Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

GRAFICA 2D
subplot(m,n,p): permette di esporre grafici multipli sulla stessa finestra. Si trasforma la finestra della figura in una matrice mxn e si accede di volta in volta allelemento specificato in p. loglog(x,y): produce un grafico in scala logaritmica di y rispetto a x semilogx(x,y): produce un grafico in scala semilogaritmica, con un solo asse logaritmico (lasse x) semilogy(x,y): produce un grafico in scala semilogaritmica, con un solo asse logaritmico (lasse y) ginput: consente di risalire alle coordinate di un punto specifico

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Controllo di flusso
Cicli "for" for i = 1:n for j = 1:n A(i,j) = i+j, end metterli a fine ciclo!!! end for i = 1:2:n incrementi di 2 ad ogni iterazione Cicli "while" while (condizione) istruzioni; end

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Controllo di flusso
Operazioni condizionate... "if" if (espressione) istruzioni elseif (espressione) istruzioni else istruzioni end Si pu uscire in modo immediato da un ciclo con l'istruzione "break" while 1 n = input('scrivi un numero'); if n <= 0, break, end m = sqrt(n) end Questo programma stampa indefinitamente la radice del numero introdotto finch non si scrive un numero minore o uguale a zero.
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Controllo di flusso
Switch case switch variable case val1 istruzioni case val2 istruzioni case istruzioni otherwise istruzioni end

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Control System Toolbox


E un insieme di funzioni per lanalisi di sistemi dinamici (tipicamente lineari tempo invarianti LTI) e per la sintesi di controllori. E possibile visionare tutte le funzioni della libreria utilizzando help control. Tra queste funzioni andremo ad analizzare quelle preposte a:
Creazione di modelli LTI Conversioni tra modelli Analisi nel dominio del tempo Analisi nel dominio della frequenza

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Creazione di modelli LTI


Un generico sistema dinamico pu essere rappresentato in varie forme:
State-space Transfer-function Zero-Pole-Gain

MODELLI STATE-SPACE (SS) Dato un sistema in forma di stato

& x(t ) = Ax(t ) + Bu (t ) y (t ) = Cx(t ) + Du (t )


le cui matrici sono

0 1 0 , B = , C = [0 1], D = 0 A= 1 1 1 per creare il modello in MATLAB bisogna usare la funzione ss sys=ss(A,B,C,D);

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Creazione di modelli LTI


MODELLI TRANSFER-FUNCTION Dato un sistema in forma di stato rappresentato attraverso la relazione ingresso-uscita, cio la sua funzione di trasferimento

N ( s ) bm s m + ... + b0 s+2 G(s) = = = 3 n D( s ) an s + ... + a0 s + 2s + 4


per creare il modello in MATLAB bisogna usare la funzione tf num=[1 2]; den=[1 0 2 4]; sys=tf(num,den); Transfer function: s+2 ------------s^3 + 2 s + 4
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Creazione di modelli LTI


MODELLI ZERO-POLE-GAIN Dato un sistema in forma di stato rappresentato attraverso la relazione ingresso-uscita, cio la sua funzione di trasferimento

N ( s) G (s) = =K D( s)

(s + z )
i

(s + p )
i i =1

i =1 n

=3

( s + 1) ( s + 3)( s + 5)( s + 10)

per creare il modello in MATLAB bisogna usare la funzione zpk K=3; z=[-1]; p=[-3 -5 -10]; sys=zpk(z,p,K); Zero/pole/gain: 3 (s+1) -----------------(s+3) (s+5) (s+10)
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Conversione tra modelli


Le funzioni precedentemente introdotte (ss,tf,zpk) servono anche per convertire un sistema da una forma allaltra. Dato per esempio un sistema in forma di stato memorizzato nella variabile sys, se vogliamo convertirlo in termini di funzione di trasferimento posso scrivere sys1=tf(sys); Le funzioni ssdata, tfdata, zpkdata consentono di estrarre da un modello LTI qualsiasi i dati caratteristici di una particolare rappresentazione: [A,B,C,D]=ssdata(sys); [NUM. DEN]=tfdata(sys, v); [Z,P,K]=zpkdata(sys, v); Dove il parametro v da utilizzarsi per sistemi SISO specifica di restituire il risultato in forma vettoriale
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Operazioni sui modelli


sys=sys1+sys2

sys=sys1-sys2

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Operazioni sui modelli


sys=sys1+sys2

sys=sys1-sys2

sys=sys1*sys2

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Operazioni sui modelli


Altre funzioni utili che consentono di fornire alcune informazioni sul sistema espresso in qualunque delle rappresentazioni possibili: P=pole(sys); Restituisce i poli del sistema memorizzato nella variabile sys Z=zero(sys); Restituisce gli zeri del sistema memorizzato nella variabile sys [P Z]=pzmap(sys); Calcola poli e zeri del sistema e li salva nei vettori P e Z pzmap(sys); Disegna la mappa dei poli e zeri del sistema dcgain(sys); Calcola il guadagno statico del sistema sys [Wn, CSI]=damp(sys); Calcola smorzamento e pulsazione naturale dei poli del sistema
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Interconnessione tra modelli


Concatenazione
Orizzontale: sys=[sys1,sys2] Verticale: sys=[sys1;sys2]

Feedback sys=feedback(sys1,sys2)

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Analisi nel dominio del tempo


Lanalisi nel dominio del tempo comporta la valutazione della risposta del sistema agli ingressi canonici o di tipo generico Impulse risposta allimpulso
impulse(sys); Traccia la risposta ad impulso del sistema impulse(sys, Tend); Traccia la risposta allimpulso fino allistante di tempo specificato in Tend impulse(sys,t); Traccia la risposta allimpulso utilizzando il vettore degli istanti di tempo specificato impulse(sys1, sys2,,t); Traccia la risposta allimpulso di pi sistemi mettendole a confronto [Y,t]=impulse(sys); [Y]=impulse(sys,t); Calcola la risposta allimpulso e salva il risultato nel vettore Y. Il vettore del tempo pu essere specificato come output o parametri di ingresso
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Analisi nel dominio del tempo


step risposta al gradino
step(sys); Traccia la risposta ad un gradino del sistema step(sys, Tend); Traccia la risposta ad un gradino fino allistante di tempo specificato in Tend step(sys,t); Traccia la risposta ad un gradino utilizzando il vettore degli istanti di tempo specificato step(sys1, sys2,,t); Traccia la risposta ad un gradino di pi sistemi mettendole a confronto [Y,t]=step(sys); [Y]=step(sys,t); Calcola la risposta ad un gradino e salva il risultato nel vettore Y. Il vettore del tempo pu essere specificato come output o parametri di ingresso
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Analisi nel dominio del tempo


Initial evoluzione libera di un sistema
initial(sys, X0); Traccia l'evoluzione libera del sistema a partire dalla condizione iniziale X0 initial(sys, X0, Tend); Traccia l'evoluzione libera fino allistante di tempo specificato in Tend initial(sys,X0, t); Traccia l'evoluzione libera utilizzando il vettore degli istanti di tempo specificato initial(sys1, sys2,,X0,t); Traccia l'evoluzione libera di pi sistemi mettendole a confronto [Y,t]=initial(sys,X0); [Y]=initial(sys,X0,t); Calcola l'evoluzione libera e salva il risultato nel vettore Y. Il vettore del tempo pu essere specificato come output o parametri di ingresso
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Analisi nel dominio del tempo


lsim risposta ad un ingresso arbitrario
lsim(sys,u,t); Traccia la risposta del sistema allingresso descritto dai vettori u e t. lsim(sys,u,t,X0); Traccia la risposta del sistema allingresso u specificando le condizioni iniziali del sistema per listante di tempo t(1). Quando non specificato le condizioni iniziali sono considerate nulle lsim(sys1, sys2,,u,t,X0); Traccia la risposta di pi sistemi allingresso u mettendole a confronto [Y]=lsim(sys,u,t,X0); Calcola la risposta del sistema allingresso u e salva il risultato nel vettore Y. [Y,T,X]=lsim(sys,u,t,X0); Quando il sistema di tipo SS restituisce anche la traiettoria dello stato, una matrice con tante righe quanti sono gli istanti di tempi e tante colonne quanti sono gli stati del sistema
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB

Analisi nel dominio del tempo


Altre funzioni utili sono: ltiview Apre una interfaccia grafica per lanalisi della risposta nel tempo e in frequenza gensig Funzione che genera segnali periodici per la simulazione della risposta nel tempo con lsim stepfun Consente di creare la funzione a gradino da utilizzare eventualmente con lsim

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Analisi nel dominio della frequenza


bode diagramma di Bode
bode(sys); Traccia il diagrama di Bode (modulo e fase) del sistema. bode(sys,{wmin wmax}); Traccia il diagramma di Bode del sistema nellintervallo di frequenze specificato dai valori wmin e wmax bode(sys,w) Traccia il diagramma di Bode alle frequenze specificate nel vettore w bode(sys1,sys2,,w); Traccia il diagramma di Bode di pi sistemi mettendoli a confronto [MAG,PHASE]=bode(sys,w); [MAG,PHASE,w]=bode(sys); Calcola il diagramma di Bode e salva in MAG e PHASE i vettori dei guadani e degli sfasamenti. Il vettore w pu essere specificato come ingresso o richiesto come output

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Analisi nel dominio della frequenza


margin margine di fase e di guadagno
margin(sys); Traccia il diagrama di Bode (modulo e fase) del sistema indicando i margini di fase e di guadagno [Gm,Pm,Wg,Wp]=margin(sys); Calcola il diagramma di Bode e salva il margine di guadagno e di fase in Gm e Pm salvandone anche le frequenze in Wg e Wp.

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Analisi nel dominio della frequenza


nyquist diagramma di Nyquist
nyquist(sys); Traccia il diagrama di Nyquist del sistema. nyquist(sys,{wmin wmax}); Traccia il diagramma di Nyquist del sistema nellintervallo di frequenze specificato dai valori wmin e wmax nyquist(sys,w) Traccia il diagramma di Nyquist alle frequenze specificate nel vettore w nyquist(sys1,sys2,,w); Traccia il diagramma di Nyquist di pi sistemi mettendoli a confronto [RE,IMG]=nyquist(sys,w); [RE,IMG,w]=nyquist(sys); Calcola il diagramma di Nyquist e salva in RE e IMG i vettori della parte reale e immaginaria della risposta in frequenza. Il vettore w pu essere specificato come ingresso o richiesto come output

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Analisi nel dominio della frequenza


rlocus luogo delle radici
rlocus(sys); Traccia il luogo delle radici del sistema. rlocus(sys,k); Traccia il luogo delle radici del sistema utilizzando il vettore dei guadagni specificato rlocus(sys1,sys2,,k); Traccia il luogo delle radici di pi sistemi mettendoli a confronto [RE,IMG]=rlocus(sys,k); [RE,IMG,w]=rlocus(sys); Calcola il luogo delle radici e salva in RE e IMG i vettori della parte reale e immaginaria dei rami del luogo. Il vettore k pu essere specificato come ingresso o richiesto come output

Guido Vagliasindi

Controlli Automatici A.A. 06/07

Introduzione a MATLAB

Altre funzioni
obsv(A,C) restituisce la matrice di osservabilit per il sistema specificato ctrb(A,B) restituisce la matrice di controllabilit per il sistema dato [Abar,Bbar,Cbar,T,K]=obsvf(A,B,C) trasforma il sistema originario in uno equivalente in forma canonica di osservabilit, restituendo anche la matrice di trasformazione T e un vettore la cui somma (sum(K)) restituisce il numero di stati osservabili [Abar,Bbar,Cbar,T,K]=ctrbf(A,B,C) trasforma il sistema originario in uno equivalente in forma canonica di controllabilit, restituendo anche la matrice di trasformazione T e un vettore la cui somma (sum(K)) restituisce il numero di stati controllabili
Guido Vagliasindi Controlli Automatici A.A. 06/07 Introduzione a MATLAB