clear; close all; format long % Nuevos ejercicios año 2017 % Control del nivel de líquido en una cisterna % Análisis transitorio y estacionario s=tf('s'); % Modelo de la válvula Tv=5; % Constante de tiempo de la válvula en segundos Kv=2; % Ganancia estática de la válvula Gv=Kv/(s*Tv + 1); % Función de transferencia de la planta R=1.5; A=2; Ke=10; % Modelo de la cisterna o tanque Gt=R/(s*R*A + 1); step(Gt) legend('Respuesta a Lazo Abierto de la Planta') % Función de transferencia de lazo abierto sin compensador Gla=series(Gt,Gv); step(Gla) legend('Respuesta a Lazo Abierto con actuador') % Compensador PID % Gc=Kp + (Ki/s) + (s*Kd); %% Compensador proporcional % Gc=Kp; Gc1=0.5; % Función de transferencia de lazo abierto con compensador Gla1=series(Gc1,Gla); % Función de transferencia de lazo cerrado con compensador Glc1=feedback(Gla1,1); Gc2=1; Gla2=series(Gc2,Gla); Glc2=feedback(Gla2,1); Gc3=1.2; Gla3=series(Gc3,Gla); Glc3=feedback(Gla3,1); Gc4=1.5; Gla4=series(Gc4,Gla); Glc4=feedback(Gla4,1); Gc5=2; Gla5=series(Gc5,Gla); Glc5=feedback(Gla5,1); % Respuesta de lazo cerrado figure step(Glc1,Glc2,Glc3,Glc4,Glc5) title('Respuesta a lazo cerrado') legend('Kp=0,5','Kp=1','Kp=1,2','Kp=1,5','Kp=2') %% -------------------------------------------------------------- % Compensador proporcional-integral % Probar este conjunto de ganancias para observar los efectos: Kp=0.05; % Ganancia proporcional Ki=0.009; % Ganancia integral % cero_PI=Ki/Kp; % cero_PI=0.005714; % Ki=Kp*cero_PI; Gc=Kp + (Ki/s); % Gcpi=0.010092*(s+0.005714)/s; % Función de transferencia de lazo abierto Glac=series(Gla,Gc); % Función de transferencia de lazo cerrado Glc=feedback(Glac,1); [num,den]=tfdata(Glc,'v'); raices_num=roots(num) raices_den=roots(den) zpk(Glc) polos_la=pole(Glac); polos_lc=pole(Glc); figure; pzmap(Glc) figure; step(3*Glc) legend('Respuesta LC con PI') [W,Z]=damp(Glc) figure; bode(Glc) %% -------------------------------------------------------------- % Compensador proporcional-derivativo % Probar este conjunto de ganancias para observar los efectos: Kp=6; % Ganancia proporcional Kd=4.75; % Ganancia derivativa Gc=Kp + s*Kd; % Función de transferencia de lazo abierto Glac=series(Gla,Gc); % Función de transferencia de lazo cerrado Glc=feedback(Glac,1); [num,den]=tfdata(Glc,'v'); raices_num=roots(num) raices_den=roots(den) zpk(Glc) polos_la=pole(Glac); polos_lc=pole(Glc); figure; pzmap(Glc) figure; step(3*Glc) legend('Respuesta LC con PD') [W,Z]=damp(Glc) figure; bode(Glc) %% -------------------------------------------------------------- % Compensador PID close all clc Gcpi=0.08*(s+0.18)/s; Gcpd=4.75*(s+1.263); Gcpid=Gcpi*Gcpd; % Reajustado Gcpid=0.39478*(s+1.263)*(s+0.18)/s; % Función de transferencia de lazo abierto Glac=series(Gla,Gcpid); % Función de transferencia de lazo cerrado Glc=feedback(Glac,1); [num,den]=tfdata(Glc,'v'); raices_num=roots(num) raices_den=roots(den) zpk(Glc) polos_la=pole(Glac); polos_lc=pole(Glc); figure; pzmap(Glc) figure; step(3*Glc) [W,Z]=damp(Glc) legend('Respuesta LC con PID') figure; bode(Glc) figure; bode(Glac) figure; rlocus(Glac)