clear all; clc; close all; % tanque calefaccionado pkg load control s = tf('s'); t = 0:0.05:30; Kc = input('Kc = '); %ganancia del controlador % CONTROLADOR PID tauI = 1; tauD = 0; % constantes de tiempo del controlador CON = Kc*(1+1/(tauI*s)+tauD*s); % func. de tr. del controlador % PROCESO K1 = 1; tau1 = 5; K2 = 1; tau2 = 5; p1 = K1/(tau1*s+1);p2 = K2/(tau2*s+1); % proceso de 2º orden % TERMOCUPLA TRANMITTER Km = 0.32; taum = 0.1 ; TT = Km/(taum*s+1); % TRANSDUCTOR I/P KIP = 0.75; % VALVULA DE CONTROL Kv = 1; tauv = 0.5; CV = Kv/(tauv*s+1); % bucle de control al aplicar escalón en set point NUM = CON*KIP*CV*p2; DEN = 1 + CON*KIP*CV*p2*TT; rp = Km*NUM/DEN; [num den] = tfdata(rp, 'v'); vp = roots(den); % calcula los polos h = 'ESTABLE'; i = 1; while i < length(vp) && h=='ESTABLE' if sign(real(vp(i))) == -1 i=i+1 else h = 'INESTABLE'; end end disp(h);disp(vp); z=step(rp,t)*5; plot(t',z') xlabel('t') ylabel('y') title('respuesta a cambio de 5 en set point')