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 (---).