Está en la página 1de 3

ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

FACULTAD DE INFORMÁTICA Y ELECTRÓNICA


ELECTRÓNICA Y AUTOMATIZACIÓN

CONTROL DISCRETO
Nombre: Esdras Enríquez (1)
Semestre: Sexto “A”
Fecha: 27/8/2021

Explicar en qué consiste el siguiente código de MATLAB,


El código de MATLAB representa un controlador PID discreto, realizado por los
métodos de Ziegler & Nichols y por la aproximación trapezoidal.
clear close all

%Periodo de Muestreo
Ts=8;

%Modelo del Proceso


k=1.175;
tau=140;
theta1=10;
theta = theta1 + Ts/2;
G=tf(k,[tau 1]);
G.iodelay = theta1;

%Discretización de la planta
Gd = c2d(G,Ts,'zoh');

Para calcular um modelo de tiempo discreto con tiempo de muestreo TS,


que se aproxima al modelo de tiempo continuo, Se puede utilizar el
parámetro Method, selecciona el método de discretización:

'zoh' Retención de orden cero en las entradas


'foh' Interpolación lineal de entradas
'impulse' Discretización invariante del impulso
'tustin' Aproximación Binomial (Tustin).
'matched' Método de emparejamiento por mínimos cuadrados del error entre las
repuestas frecuenciales.
'damped' Aproximación de Tustin amortiguada basada en la formula TRBDF2.

%Control PID por Ziegler y Nichols


kp=(1.2*tau)/(k*theta);
ti=2*theta; td=0.5*theta;
incontrolabilidad = theta / tau;
C=tf(kp*[ti*td ti 1],[ti 0]);
El método de sintonización que se utiliza es el método de Ziegler & Nichols que
permite definir las ganancias Proporcional, integral y derivativo a partir de la respuesta
de un sistema.

%Control PID Continuo


%Discretización del Control Continuo Bilineal
Cd=c2d(C,Ts,'tustin')

%Aproximacion Trapezoidal
Cd2=kp+kp/ti*Ts/2*tf([1 1],[1 -1],Ts)+kp*td*1/Ts*tf([1 -1],[1 0],Ts)

El método de aproximación trapezoidal se utiliza cuando se requiere una mayor


precisión en la conversión discreta, utiliza la integral se determina con la suma de los
trapezoides

%Tiempo de Simulación
nit = 30; t=0:Ts:(nit-1)*Ts;

%Escalon
r = ones(1,length(t));

% Calculo do controle PID digital Trapezoidal


q0=kp*(1+Ts/(2*ti)+td/Ts);
q1=-kp*(1-Ts/(2*ti)+(2*td)/Ts);
q2=(kp*td)/Ts;

%Potencias negativas %
Cz = filt([q0 q1 q2],[1 -1], Ts);

%Potencias positivas
Cz = tf([q0 q1 q2],[1 -1 0], Ts)

% Lazo Cerrado
H = feedback(series(G,C),1);
H1 = feedback(series(Gd,Cz),1);
H2 = feedback(series(Gd,Cd),1);

%Respuesta al escalón
y1 = step(H1,t);
y2 = step(H2,t);
figure(1)
subplot(211)
plot(t,r,'--r',t,y1,'-k','linewidth',2),grid on
xlabel('t(s)');
ylabel('T(C)');
title('PID Discreto Trapezoidal')
legend('Setpoint','Temperatura','location','southeast')
subplot(212)
plot(t,r,'--r',t,y2,'-k','linewidth',2),grid on
xlabel('t(s)');
ylabel('T(C)');
title('PID Discreto Discretizado')
legend('Setpoint','Temperatura','location','southeast')
En la figura se puede observar el trabajo del controlador PID utilizado el método de
Trapezoidal, y el Discretizado

También podría gustarte