% Questo esempio mostra come la presenza di un campionamento 
% e di un ricostruttore di ordine zero all'interno di un anello 
% di controllo determini un peggiormento delle condizioni di stabilita' 
% del sistema retroazionato 
%
s=tf('s');
gs=25/(s*(s+1)*(s+10));		% Funzione di trasferimento gs
%
figure(1); hold off; clf
figure(2); hold off; clf
Tfin=15;
gs0=feedback(gs,1);			% Sistema retroazionato gs0=gs/(1+gs)
figure(1)
[y,t]=step(gs0,Tfin);		% Risposta al gradino del sistema retroazionato 
plot(t,y,'r'); hold on		% Graficazione con tratto di colore rosso
figure(2)
[re,im]=nyquist(gs,{0.1,100});  		% Risposta armonica del sistema gs 
plot(re(:,:),im(:,:),'r'); hold on	% Graficazione 
for T=[0.1:0.1:0.5]			% Al variare del periodo di campionamento T
  gz=c2d(gs,T,'zoh');		% Si discretizza (gz) il sistema gs
  figure(1)
  gz0=feedback(gz,1);		% Sistama discreto retroazionato: gz0=gz/(1+gz)
  [y,t]=step(gz0,Tfin);		% Risposta al gradico
  stairs(t,y); hold on		% Graficazione 
  figure(2)
  [re,im]=nyquist(gz,{0.1,100});  		% Risposta armonica  
  plot(re(:,:),im(:,:)); hold on	      % Graficazione 
end
figure(1)
plot([0 Tfin],[1,1],':k')
xlabel('Tempo (s)')
ylabel('Im[G(j*w)]')
title('Risposta al gradino del sistema retroazionato al variare di T')
%
figure(2)
plot(100*[-1 1],[0,0],':k',[0,0],100*[-1 1],':k')
plot(exp(j*2*pi*[0:0.01:1]),':k')
axis([-2.2 0.2 -1.2 0.4])  
xlabel('Re[G(j*w)]')
ylabel('Im[G(j*w)]')
title('Diagramma di Nyquist al variare del periodo di campionamento')
