next up previous contents
Next: Sintesi dei controllori discreti Up: Tecniche di discretizzazione approssimate Previous: Distorsione Armonica

iM-Esempio: Confronto tra la MZT e la trasformata di Tustin

In questo paragrafo si esegue un confronto tra due tecniche di discretzzazione: la Matched Z Transform (1.6.2) e la trasformata di Tustin (1.6.5).

Si consideri la funzione di trasferimento per un sistema passa basso del primo ordine:

displaymath3710

e si esegua la discretizzazione con questi metodi alle pulsazioni di campionamento di 100rad/sec e di 20 rad/sec.

Le Fig. 1.6 e Fig. 1.7 mostrano come entrabi i metodi si comportano bene per pulsazioni inferiori a circa 1/4 della pulsazione di campionamento.

Ovviamente nel caso in cui la pulsazione di campionamento è più alta del punto di rottura quest'ultimo sarà accuratamente riprodotto anche dopo la discretizzazione.

Con una pulsazione di campionamento pari a 100rad/sec si ottengono le seguenti approssimazioni, praticamente identiche.

displaymath3711

Si confronti la Fig. 1.6.

Con una pulsazione di campionamento pari a 20rad/sec si ottengono le seguenti approssimazioni:

displaymath3712

Si confronti la Fig. 1.7.

   figure2740
Figure 1.6: Effetto della discretizzazione con il metodo MZT e di Tustin con una pulsaione di campionamento pari a 100rad/sec.

   figure2747
Figure 1.7: Effetto della discretizzazione con il metodo MZT e di Tustin con una pulsazione di campionamento pari a 20rad/sec.

Il file Matlab che genera questi plot e'

Matlab code - drag and drop:

% M-file: mzttc.m

clg
w=logspace(-1,2,100);
l=length(w);

% piano-s
num=5;
den=[1 5];
[magC,phaseC]=bode(num,den,w);
axis([-1 2 -2 0]);
figure(1)
loglog(w,magC,'-')
ylabel('Ampiezza')
xlabel('Frequenza (rad/sec)')
title('100 rad/sec  T=1/15 sec')
hold on

%              T = 1/15 sec
T = 1/15;

%  MZT
num=.143*[1 1];
den=[1 -.715];
[mag1,phase]=dbode(num,den,T,w);

% Tustins
num=.143*[1 1];
den=[1 -.713];
[mag2,phase]=dbode(num,den,T,w);

loglog(w,mag1,'--',w,mag2,'-.')
hold off

%              T = 1/3 sec
figure(2)
loglog(w,magC,'-')
ylabel('Ampiezza')
xlabel('Frequenza (rad/sec)')
title('20 rad/sec  T=1/3 sec')
hold on
T = 1/3;

%  MZT
num=.405*[1 1];
den=[1 -.189];
wp=w;
wp=wp(wp < 24);
[mag1,phase]=dbode(num,den,T,wp);

% Tustins
num=.454*[1 1];
den=[1 -.0914];
[mag2,phase]=dbode(num,den,T,wp);
loglog(wp,mag1,'--',wp,mag2,'-.')
hold off


Domenico Prattichizzo
Wed Jun 25 08:08:49 MET DST 1997