Indicazioni Matlab per il tracciamento di: diagrammi di Bode (esatti e asintotici), polari e luogo delle radici.

È possibile utilizzare il software di calcolo Matlab per effettuare il tracciamento dei diagrammi di Bode, polari e del luogo delle radici di funzioni F(s) della variabile complessa s. Innanzitutto, in Matlab, la funzione F(s) può essere definita nel seguente modo. Sia per esempio

F(s) = 5(s+0.5)/[(s+2)(s+5)].

Si definisce allora prima un vettore di coefficienti del numeratore, in cui vengono riportati i coefficienti del polinomio a numeratore a partire da quello di grado massimo:

num = 5*[1 0.5];

poi quelli del denominatore:

den = conv([1 2],[1 5]);

dove la funzione conv equivale al prodotto di due polinomi, in questo caso (s+2), che ha coefficienti [1 2], e (s+5), che ha per coefficienti [1 5]. Dopodiché si può definire F(s) con il comando

F = tf(num,den)

che, riportato senza punto e virgola, permette di vedere il valore della F assegnata e di controllarne la correttezza:

F =

5 s + 2.5
------------------
s^2 + 7 s + 10

I diagrammi di Bode possono essere generati digitando:

bode(F);

quelli polari mediante

nyquist(F);

il luogo delle radici per K' positivo mediante

rlocus(F);

e quello per K' negativo mediante

rlocus(-F);

Trasferendo lo script bode_asymptotic.m contenuto in questo file zip nella cartella corrente o nel path delle funzioni Matlab, si possono tracciare i diagrammi asintotici di Bode digitando

bode_asymptotic(num,den);

I diagrammi generati da questo script applicato all'esempio qui considerato sono riportati nella figura in basso: in rosso il diagramma asintotico, in blu quello esatto (identico cioè a quello generato col comando bode(F)). Alla prova scritta è richiesto il tracciamento dei diagrammi asintotici (quelli rossi) con l'unica eccezione del caso del termine quadratico con ζ=0 in cui vanno tracciati i diagrammi esatti.

N.B. Lo script bode_asymptotic.m sembra accettare solo funzioni proprie (grado(den)>=grado(num)) e a volte produce dei diagrammi di fase con angoli che differiscono da quelli visti a lezione per un multiplo di 360 gradi (e dunque equivalenti). Il comando bode(F) invece accetta anche funzioni non proprie.