clear; close all; format long % Análisis de la influencia del compensador proporcional sobre el desempeño % transitorio y estacionario s=tf('s'); % Definición de las matrices de estado del sistema % x1=theta, x2=w Ra=0.2; La=0.005; b=0.1; J=1.85; Kt=0.1; Kb=1; Tm=J*Ra/(b*Ra + Kt*Kb); Km=Kt/(b*Ra + Kt*Kb); Va=200; Gp=Km/(s*Tm + 1); % Función de transferencia de la planta zpk(Gp) % Prueba a LA con tensión nominal figure; step(Va*Gp); legend('Respuesta a Lazo Abierto') Hs=10/200; %--------------------------------------------------------------------- Kp=1; % Ganancia proporcional Gc1=Kp; % Compensador proporcional Gla1=Gc1*Va*Gp; % Función de transferencia de lazo abierto % Función de transferencia de lazo cerrado Glc1=Gla1/(1 + Hs*Gla1); zpk(Glc1) % polos_la=pole(Gp); % polos_lc=pole(Glc); % figure; step(Gla) % figure; step(10*Glc) % legend('Respuesta Planta CC') %--------------------------------------------------------------------- %--------------------------------------------------------------------- Kp=5; % Ganancia proporcional Gc2=Kp; % Compensador proporcional Gla2=Gc2*Va*Gp; % Función de transferencia de lazo abierto % Función de transferencia de lazo cerrado Glc2=Gla2/(1 + Hs*Gla2); zpk(Glc2) %--------------------------------------------------------------------- %--------------------------------------------------------------------- Kp=10; % Ganancia proporcional Gc3=Kp; % Compensador proporcional Gla3=Gc3*Va*Gp; % Función de transferencia de lazo abierto % Función de transferencia de lazo cerrado Glc3=Gla3/(1 + Hs*Gla3); zpk(Glc3) %--------------------------------------------------------------------- % Ploteo figure; pzmap(Gp,Glc1,Glc2,Glc3) legend('Polo de la Planta','Polos Lazo Cerrado Kp=1','Polos Lazo Cerrado Kp=5','Polos Lazo Cerrado Kp=10') figure; step(10*Glc1,10*Glc2,10*Glc3) legend('Respuesta Lazo Cerrado Kp=1','Respuesta Lazo Cerrado Kp=5','Respuesta Lazo Cerrado Kp=10') % infostep=stepinfo(Glc1); % tse1=round(infostep.PeakTime+infostep.SettlingTime); % infostep=stepinfo(Glc2); % tse2=round(infostep.PeakTime+infostep.SettlingTime); % infostep=stepinfo(Glc3); % tse3=round(infostep.PeakTime+infostep.SettlingTime); paso=0.001; tfinal=3; t=0:paso:tfinal-paso; r=200*ones(length(t),1); y1=step(10*Glc1,t); e1=(r - y1); y2=step(10*Glc2,t); e2=(r - y2); y3=step(10*Glc3,t); e3=(r - y3); figure; plot(t,y1,t,e1,t,y2,t,e2,t,y3,t,e3) legend('Velocidad Kp=1','Señal de error Kp=1','Velocidad Kp=5','Señal de error Kp=5','Velocidad Kp=10','Señal de error Kp=10') % u=Gc*e; % figure; plot(t,e,t,u) % legend('Señal de error','Acción de Control')