Con riferimento alla funzione di trasferimento G(s) ed al suo controllore D(s) dell'esempio interattivo 1.4.1, in questo paragrafo mostreremo la differenza tra le due precedenti tecniche di discretizzazione: Eulero e Matched Z Trasform.
Al sistema in retroazione negativa
, discretizzato del
con i due suddetti metodi ad una frequenza di campionamento di 15Hz,
sono associate le due risposte al gradino riportate in
Fig. 1.5 e generate con il seguente codice matlab.
Matlab code - drag and drop:
% M-file: comparison.m
numG=1;
denG=[1 1 0];
Ko=70;
numD=Ko*[1 2];
denD=[1 10];
num=conv(numG,numD);
den=conv(denG,denD);
[numcl,dencl]=feedback(num,den,1,1);
tf=1;
t=0:.01:tf;
yc=step(numcl,dencl,t);
axis([0 1 0 1.6])
plot(t,yc,'-'),grid
hold on
% digital
Ws= 15; % Hz
T=1/Ws;
[numGd,denGd]=c2dm(numG,denG,T,'zoh');
a=2;
b=10;
% Meetodo di Eulero
numDd=Ko*[1 -(1-a*T)]
denDd=[1 -(1-b*T)]
numd=conv(numGd,numDd);
dend=conv(denGd,denDd);
[numcld,dencld]=feedback(numd,dend,1,1);
N=tf*Ws+1;
yd=dstep(numcld,dencld,N);
td=0:T:(N-1)*T;
plot(td,yd,'*')
plot(td,yd,'-')
xlabel('tempo (sec)')
ylabel('risposta al gradino, casi continuo e discreto')
% Matched Z Trasform
[numDd,denDd]=c2dm(numD,denD,T,'matched')
numd=conv(numGd,numDd);
dend=conv(denGd,denDd);
[numcld,dencld]=feedback(numd,dend,1,1);
yd=dstep(numcld,dencld,N);
plot(td,yd,'o')
plot(td,yd,'-')
hold off
Figure 1.5: Risposta al gradino nel caso discreto (15Hz) con i metodi
Matched Pole-Zero (o--- ) e di Eulero (*---) e per il caso tempo
continuo (---).