Saltar al contenido

Control I+PD

A continuación vamos a ver una modificacion del controlador PID denominada control I+PD, donde unicamente será integrado el error y será restado la suma de la parte proporcional y derivativa de la salida.

Dicha modificación es bastante usada para mejorar el control del proceso, especialmente cuando no se desean cambios bruscos, provocados cuando la señal de error entra en el bloque proporcional y derivativo del controlador.

Control PID

Los controladores PID (Proposicional – Integral – Derivativo) se utilizan ampliamente en diversas aplicaciones industriales donde se necesita que la variable a controlar siga la referencia y rechace perturbaciones.

El control PID proporciona un rendimiento óptimo y robusto para una amplia gama de condiciones de funcionamiento de procesos estables, inestables y no lineales.

Este controlador tiene diferentes configuraciones las cuales se clasifican como PID ideal, PID en serie, y  PID paralelo.

Dado que un controlador PID ideal tiene dificultades en la practica debido a su naturaleza irrealizable, solamente es considerado principalmente para fines académicos.

PID ISA

Controladores PID paralelos son ampliamente utilizados en las industrias debido a que se puede implementar fácilmente en forma analógica o digital.

PID Paralelo

Los principales inconvenientes de los controladores PID paralelos básicos son los efectos que provoca la falta de la acción proporcional y derivativa sobre el proceso. Con el fin de minimizar estos efectos, se realizan modificaciones a la estructura de regulador PID paralelo, las cuales son conocidas como ID-P y I-PD.

Control I+PD

A continuación veremos la modificación del controlador PID conocida como Control I+PD, cuyo diagrama de bloques podemos verla a continuación:

Controlador I+PD
Estructura del controlador I+PD

La ley de control continua del controlador I+PD es la siguiente:

u(t)=-k_cy(t)+\frac{k_c}{t_i}\int e(t)dt-k_ct_d\frac{\mathrm{d} y(t)}{\mathrm{d} t}

La ley de control discreta del controlador I+PD es la siguiente:

u(k)=u(k-1)+k_c\left [ -y(k)+y(k-1)+\frac{T_s}{t_i}\left [ y_i(k)-y(k) \right ]+\frac{t_d}{T_s}\left [ 2y(k-1)-y(k)-y(k-2) \right ] \right ]

Donde T_s es el periodo de muestreo

Diseño por medio del RST

Al igual que vimos en la entrada anterior, este controlador I+PD también puede ser recibir los parámetros realizando un diseño por asignación de polos por medio del RST. Es decir que podemos enmascarar el RST en el control I+PD.

R(z^{-1})=1 T(z^{-1})=\frac{k_cT_s}{t_i} S(z^{-1})=S_0+S_1z^{-1}+S_2z^{-2}

donde:

S_0=kc\left [ 1+\frac{T_s}{t_i}+\frac{t_d}{T_s} \right ] S_1=-k_c\left [ 1+2\frac{t_d}{T_s} \right ] S_2=\frac{k_ct_d}{T_s}

Se garantiza entonces que

T(1)=S(1)

Implementación del I+PD

Veamos el siguiente ejemplo de implementación de un controlador I+PD para un proceso X representado por la siguiente funcion de transferencia de tercer orden:

G_p(s)=\frac{1}{(5s+1)(3s+1)(s+1)}

Se realizo una identificación de la dinámica del proceso off-line y se levanto el siguiente modelo matemático de primer orden.

G_m(s)=\frac{e^{-2.86s}}{6.709s+1}

De esta manera el controlador debe ser proyectado con la funcion de transferencia que se obtuvo de la identificacion. Y ser probado en el modelo real. Así se podrá determinar la robustez del control ante la presencia de errores de modelaje.

En el fondo este controlador continua siendo un control PID, por lo que usted puede usar cualquier técnica de sintonía de controlador PID, y lo que cambia seria la forma de estructurar los bloques. En este caso, fue empleada la sintonia por ZIEGLER y NICHOLS.

A continuación te dejo algunas entradas que explican la sintonia de controladores PID:

Código en MATLAB I+PD

El código en MATLAB implementado para este controlador se muestra a continuación:

[sociallocker id=»948″]

%% Controle PID e Controle I+PD
clc,clear all,close all;
nit = 200; umin = 0; umax = 4.9; ts = 0.1;
u(1:10) = 0; erro(1:10) = 0; y(1:10) = 0;
% Referência
r(1:50) = 1; r(51:100) = 4; r(101:150) = 2; r(151:nit) = 4.5;

%Modelo da Planta
num=[1];
den=[6.709 1];
gm=tf(num,den);

d=2.865; %Retrasso do modelo
kp=num(1); %Ganho do modelo
tao=den(1); %Constante de tempo do modelo

%Planta del Sistema Real
den2=conv([5 1],[3 1]);
den2=conv(den2,[1 1]);
gp=tf(num,den2);





%% Discretiza modelo da planta
T=2;                            %Tiempo de muestreo
ftz=c2d(gp,T);                  %Planta Discreta
[B,A]=tfdata(ftz,'v');          %Divide Numerador em B e denominador em A
gpz=filt(B,A,T,'name','Planta'); 

%% Calculo do controle por Z-N

th=d+T/2;   %Retraso
kc=(1.2*tao)/(kp*th);
ti=2*th;
td=0.5*th;
%% Calculo do controle PID digital
q0=kc*(1+T/ti+td/T);
q1=-kc*(1+(2*td)/T);
q2=(kc*td)/T;
%% Malha de controle PID
for k = 5:nit
   
    y(k)=B(2)*u(k-1)+B(3)*u(k-2)+B(4)*u(k-3)-A(2)*y(k-1)-A(3)*y(k-2)-A(4)*y(k-3);
%     Erro
      erro(k) = r(k) - y(k);
%     Controle PI
      u(k) = u(k-1) + q0*erro(k) + q1*erro(k-1) + q2*erro(k-2);
    if u(k) >= umax 
     u(k) = umax;
     elseif u(k) <= umin
     u(k) = umin;
    end
end

t = 0:T:(nit-1)*T;

figure(1)
subplot(2,1,1),plot(t,r,'--k',t,y,'-r','Linewidth',2.5)
title('Controle PID');
xlabel('Tempo (s)');
ylabel('Velocidade');
legend('y_r','y','Location','SouthEast')
grid on;
hold
subplot(2,1,2),plot(t,u,'b','Linewidth',2)
xlabel('Tempo (s)');
ylabel('Controle (volts)');
legend('u')
grid on;

%% Malha de controle I+PD
u(1:10) = 0; erro(1:10) = 0; y(1:10) = 0;
for k = 5:nit
   
    y(k)=B(2)*u(k-1)+B(3)*u(k-2)+B(4)*u(k-3)-A(2)*y(k-1)-A(3)*y(k-2)-A(4)*y(k-3);
%     Erro
      erro(k) = r(k) - y(k);
%     Controle PI
      u(k) = u(k-1) + kc*(-y(k)+y(k-1)+(T/ti)*erro(k)+(td/T)*(2*y(k-1)-y(k)-y(k-2)));
    if u(k) >= umax 
     u(k) = umax;
     elseif u(k) <= umin
     u(k) = umin;
    end
end

t = 0:T:(nit-1)*T;

figure(2)
subplot(2,1,1),plot(t,r,'--k',t,y,'-r','Linewidth',2.5)
title('Controle I+PD');
xlabel('Tempo (s)');
ylabel('Velocidade');
legend('y_r','y','Location','SouthEast')
grid on;
hold
subplot(2,1,2),plot(t,u,'b','Linewidth',2)
xlabel('Tempo (s)');
ylabel('Controle (volts)');
legend('u')
grid on;

 

[/sociallocker]

Se muestra a continuación las respuestas obtenidas, donde se compara la estructura PID y la estructura I+PD.

Control PID  vs Control I+PD

Como se puede evidenciar la estructura PID presenta una acción de control mucho mas agresiva en comparación a la acción de control de la estructura I+PD. Queda entonces introducido la estructura I+PD para efectuar control de procesos.

Eso es todo por la entrada del dia de hoy, espero les haya gustado y hayan aprendido algo nuevo. Si te ha servido el contenido de esta entrada, de los videos y los códigos de implementación y deseas apoyar mi trabajo invitandome a un café super barato, puedes hacerlo en el siguiente link:

👉 Invitar a Sergio a un Café ☕️

Que esten muy bien, nos vemos en la siguiente entrada.