Matlab

Da Skypedia.

Comandi per lo studio di sistemi lineari in Matlab

In Matlab un sistema lineare può essere definito in tre modi:

sys=ss(A,B,C,D)

definisce il sistema SYS dalle matrici A, B, C e D.

sys=zpk(z,p,k)

definisce il sistema mediante gli zeri, i poli ed il guadagno della sua funzione di trasferimento.

sys=tf(num,den)

definisce il sistema mediante i coefficienti del numeratore e del denominatore della sua funzione di trasferimento.

Se ad esempio il sistema ha la funzione di trasferimento 10s(s-2)/(s+1)(s+3) possiamo usare le istruzioni

zpk([0 2],[-1 -3],10)

oppure

tf([10 -20 0],[1 4 3])

(tenendo conto che la funzione equivale a (10s^2-20s)/(s^2+4s+3)).

Dalla versione 6.0 del Matlab è possibile inserire la funzione di trasferimento in forma simbolica usando i comandi:

s=tf('s')

oppure

s=zpk('s')
sys=10*s*(s-2)/(s+1)/(s+3)
evalfr(sys,s)

Valuta il valore (complesso) della funzione di trasferimento alla frequenza complessa s (usare abs e phase per calcolarne modulo e fase in radianti).

Diagrammi di Bode

bode(sys)

Per calcolare il margine di ampiezza e il margine di fase con le relative pulsazioni, __evidenziandole__ sui diagrammi di Bode:

margin(sys)


Diagrammi di Nyquist

nyquist(sys)

Il comando nyquist del Matlab non visualizza le circonferenze all'infinito.


Esempio sul tracciamento del diagramma di Nyquist

Il diagramma di Nyquist
>> sys = zpk([0 -3],[-1 -3 -10], 10)
 
Zero/pole/gain:
    10 s (s+3)
------------------
(s+1) (s+3) (s+10)

>> nyquist(sys)

Diagrammi di Nichols

nichols(sys)

Per attivare/disattivare lo zoom e la griglia nel grafico si usano i comandi **zoom** e **grid**. Per sovrapporre al diagramma di Nichols le curve della carta di Nichols usare il comando **ngrid**.

Il luogo delle radici (positivo)

rlocus(sys)

Software utile

Links