clc; clear close all % En dominio continuo s=tf('s'); Gp=1/(s*(s+2)); Gplc=feedback(Gp,1); Gc=9*(s+2)/(s+3); Gla=Gc*Gp; Glc=feedback(Gla,1); step(Glc,Gplc); legend('Sistema Compensado','Sistema No Compensado') % figure; margin(Gla) figure; bode(Glc) % Selección del periodo de muestreo wn=3; xita=0.5; wd=wn*sqrt(1-xita^2); Nd=100; % muestras x periodo de oscilación Td=wd/2/pi; T=Td/Nd; % En el dominio de tiempo discreto % T=0.001; td=0:T:5-T; ref1=ones(length(td),1); z=tf('z',T); Gpd=c2d(Gp,T); % Primera aproximación: Residuos % Gcd=c2d(Gc,T); Gcd1=(9*z-6*exp(-3*T)-3)/(z-exp(-3*T)); Glad1=Gcd1*Gpd; Glcd1=feedback(Glad1,1); % Segunda aproximación: Backward Gcd2=(9 + 18*T - 9*z^-1)/(1 + 3*T - z^-1); Glad2=Gcd2*Gpd; Glcd2=feedback(Glad2,1); % Tercera aproximación: Forward Gcd3=(9 + (18*T - 9)*z^-1)/(1 + (3*T - 1)*z^-1); Glad3=Gcd3*Gpd; Glcd3=feedback(Glad3,1); % Cuarta aproximación: Tustin Gcd4=(18 + 18*T + (18*T - 18)*z^-1)/(2 + 3*T + (3*T - 2)*z^-1); Glad4=Gcd4*Gpd; Glcd4=feedback(Glad4,1); figure; step(Glc,Glcd1,Glcd2,Glcd3,Glcd4,td); legend('SC en Tiempo Continuo','SCTD Aprox. Residuos','SCTD Aprox. Backward','SCTD Aprox. Forward','SCTD Aprox. Tustin') figure; bode(Gla,Glad1,Glad2,Glad3,Glad4); grid legend('SC en Tiempo Continuo','SCTD Aprox. Residuos','SCTD Aprox. Backward','SCTD Aprox. Forward','SCTD Aprox. Tustin') figure; bode(Glc,Glcd1,Glcd2,Glcd3,Glcd4); grid legend('SC en Tiempo Continuo','SCTD Aprox. Residuos','SCTD Aprox. Backward','SCTD Aprox. Forward','SCTD Aprox. Tustin') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%