next up previous contents
Next: Dalla L-trasformata alla Z-trasformata Up: Sistemi a dati campionati Previous: Sistemi a dati campionati

iM-Esempio: periodo di campionamento

 

In questo paragrafo si riporta un esempio per mostrare cosa succede quando si usano due diversi periodi di campionamento.

1) Data la funzione di trasferimento

displaymath3586

compensata dal seguente controllore:

displaymath3587

si determini la risposta al gradino del sistema in anello chiuso (retroazione negativa) per il sistema continuo. Il seguente m-file genera la risposta impulsiva riportata in Fig. 1.2

Matlab code - drag and drop:

% m-file: rimpsc.m

hold off
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.5])
plot(t,yc,'-'),grid
xlabel('tempo')
ylabel('risposta al gradino, sistema tempo continuo')
hold off

   figure2577
Figure 1.2: Risposta al gradino di tex2html_wrap_inline3590

Quindi si effettui la discretizzazione del sistema con uno ZOH ed una frequenza di campionamento pari a 20Hz e 40Hz. Il campionameto a 40Hz fornisce una migliore approssimazione (discreta) della funzione di risposta al gradino del sistema in retroazione, come si evince da un confronto della Fig. 1.3 e Fig. 1.4 generate rispettivamente con i seguenti codici Matlab.

Matlab code - drag and drop:

% m-file: twenty.m 

hold off
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.5])
%  digitale 
Ws= 20;  % Hz
T=1/Ws;
[numGd,denGd]=c2dm(numG,denG,T,'zoh');
a=2;
b=10;
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;
yd=dstep(numcld,dencld,N);
td=0:T:(N-1)*T;
plot(td,yd,'*')
hold on
plot(td,yd,'-')
plot(t,yc)
xlabel('tempo (sec)')
ylabel('risposta sis. tempo continuo e discreto (Ws=20)')
hold off

   figure2591
Figure 1.3: Risposta al gradino del sistema tempo continuo e tempo discreto. Frequenza di campionamento: 20Hz.

Matlab code - drag and drop:

% m-file: forty.m 

hold off
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.5])
%  digitale 
Ws= 40;  % Hz
T=1/Ws;
[numGd,denGd]=c2dm(numG,denG,T,'zoh');
a=2;
b=10;
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;
yd=dstep(numcld,dencld,N);
td=0:T:(N-1)*T;
plot(td,yd,'*')
hold on
plot(td,yd,'-')
plot(t,yc)
xlabel('tempo (sec)')
ylabel('risposta sis. tempo continuo e discreto (Ws=40)')
hold off

   figure2602
Figure 1.4: Risposta al gradino del sistema tempo continuo e tempo discreto. Frequenza di campionamento: 40Hz.



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