Control Automático Educación

Todo sobre Ziegler Nichols – Sintonia de Control PID

Hola controleros y controleras sean bienvenidos una vez más a otra entrada de la página de Control Automático Educación, donde vamos a continuar con nuestro curso de Control Realimentado. Hoy vamos a aprender cómo utilizar las reglas clásicas de sintonía del controlador PID propuestas por Ziegler Nichols, veremos sus ventajas, desventajas y en que situaciones es más conveniente utilizarlas. Todo muy bien explicado y hasta con videos, ejemplos y ejercicios resueltos.

Antes que nada, te invito a VER EL CURSO GRATUITO DE CONTROL REALIMENTADO.

Control PID

PID ISA

Los controladores PID (proporcional, integral y derivativo) son ampliamente utilizados en la industria como sistemas de control, y como ya lo hemos visto en nuestro curso, la función de transferencia del PID viene dado por:

G_c(s)=K_p\left(1+\dfrac{1}{\tau_is}+\tau_ds\right)

donde es la ganancia proporcional, el tiempo integral y el tiempo derivativo.

Si el controlador recibe la señal de error como entrada (ver figura arriba), la salida del controlador es dada por:

u(t)=K_p\left[e(t)+\dfrac{1}{\tau_i}\int_{0}^{t}e(t)dt+\tau_d\dfrac{de(t)}{dt}\right]

Donde la ecuación anterior la podemos reescribir en términos de ganancias de la siguiente forma:

G_c(s)=K_p+\dfrac{K_i}{s}+K_ds

donde es la ganancia proporcional, la ganancia integral y la ganancia derivativa.

Sintonía de Controladores PID usando Ziegler-Nichols

Video en EspañolVideo em Português

Existen dos reglas de sintonía propuesta por los ingenieros Ziegler y Nichols en 1942 para poder determinar los parámetros del controlador PID tomando como base la respuesta transitoria del sistema.

Por lo tanto, este tipo de sintonía es especialmente útil, principalmente cuando NO SE CONOCE EL MODELO MATEMÁTICO DE LA PLANTA. Obviamente también puede ser aplicado si el modelo de la planta es conocido, sin embargo, podemos coincidir que existen estrategias más interesantes cuando el modelo es conocido.

Los dos métodos de Ziegler-Nichols apuntan a obtener un sobre impulso máximo del 25% ante una entrada del tipo escalón.

Las reglas de Ziegler Nichols las abordaremos en detalle a continuación.

Se cree que en aquella época Ziegler, que era del departamento de ventas, necesitaba un procedimiento de ajuste para los PID para aumentar las ventas del controlador, fue así como comenzó a trabajar con Nichols en el departamento de investigación, realizando centenas de pruebas sobre sistemas con las más variadas dinámicas.

Ziegler y Nichols – Método 1 (Lazo Abierto)

Este método de Ziegler Nichols se realiza con el sistema en lazo abierto, donde el controlador se coloca en modo manual para poder generar una variación del tipo escalón en la propia salida del controlador PID.

Esto quiere decir que la planta, en su entrada recibirá una entrada del tipo escalón (generalmente escalón unitario) y a partir de la respuesta de salida se obtienen los parámetros del PID. Este es el metodo de la curva de reaccion de ziegler-nichols.

Sin embargo, para poder usar este método es necesario que el sistema tenga un comportamiento del tipo sigmoidal o forma de S, esto quiere decir que la respuesta no puede tener sobre impulsos en lazo abierto, ni poseer una dinámica integradora que crezca constantemente con el tiempo.

La curva S esta definida por 2 constantes. Por el retardo en el tiempo y por la constante de tiempo , es decir viene dado por un sistema de primer orden con retardo, cuya función de transferencia es:

G_p(s)=\dfrac{C(s)}{U(s)}=\dfrac{Ke^{-Ls}}{\tau s+1}

Por lo tanto podemos obtener los parámetros del sistema de primer orden con retardo de la siguiente forma: El retardo y la constante de tiempo se obtiene dibujando la tangente en el punto de inflexión de la curva sigmoidal y determinar las intersecciones de la línea tangente con el eje del tiempo y el eje donde como se muestra en la siguiente figura:

La respuesta anterior, también puede ser obtenida aproximando a un sistema de segundo orden sobreamortiguado a dinámicas semejantes a un sistema de primer orden.

De esa forma Ziegler y Nichols sugirieron un ajuste PID estableciendo los valores de , y de acuerdo con la siguiente tabla de Ziegler y Nichols:

Controlador
P 0
PI 0
PID
Tabla de Ziegler Nichols – Método 1

Si reemplazamos estos valores en la ecuación del PID

G_c(s)=K_p\left(1+\dfrac{1}{\tau_is}+\tau_ds\right)
G_c(s)=1.2\dfrac{\tau}{KL}\left(1+\dfrac{1}{2Ls}+0.5Ls\right)
G_c(s)=0.6\dfrac{\tau}{K}\dfrac{\left(s+\dfrac{1}{L}\right)^2}{s}

Podemos notar que el controlador está colocando un polo en el origen y dos ceros en

NOTA: Muchas veces para mejorar la respuesta del sistema, deberemos disminuir la ganancia del controlador. Una practica común es dividir , para obtener una respuesta más suave.

Cuidados del Metodo 1


  • Curso de Sistemas de Control en Dispositivos Microcontrolados en UDEMY (PIC y ARDUINO)
  • Certificado de Aprobación una vez finalices el Curso
  • DESCUENTO si accedes directamente con los siguientes botones de acceso.
  • NOTA: Si buscas el curso directamente en UDEMY o si lo adquieres en otra plataforma distintas a las mostradas anteriormente NO OBTENDRÁS NINGUN DESCUENTO sobre el valor final del Curso.

Ziegler y Nichols – Método 2 (Lazo Cerrado)

Este segundo método de ajuste debe realizarse con el sistema en lazo cerrado donde inicialmente colocaremos la parcela integral y derivativa en cero y únicamente comenzaremos a aumentar experimentalmente la ganancia proporcional del controlador paulatinamente, hasta conseguir en la salida (variable medida por los sensores) una respuesta oscilatoria con una amplitud constante.

El método de oscilación de ziegler-nichols puede ser visto graficamente a continuación:

Si NO se encuentra ninguna ganancia que consiga hacer oscilar el sistema, entonces este segundo Método de Ziegler Nichols NO puede ser aplicado.

Estas oscilaciones son tipicas cuando el lazo cerrado de control presenta sistemas de orden superior.

Una vez se consigue la respuesta oscilatoria con una amplitud constante, nos indica que dicha ganancia que consiguió esa respuesta será nuestra Ganancia Limite, Ganancia Ultima o Ganancia Crítica: , y a partir del gráfico podemos calcular el Periodo Crítico: que puede ser calculado también a través de la frecuencia critica como:

Con estos dos parámetros procedemos a encontrar las constantes de nuestro controlador siguiendo el siguiente Ajuste PID mostrado en la tabla:

Controlador
P 0
PI 0
PID
Tabla de Ziegler Nichols – Método 2

Si reemplazamos estos valores en la ecuación del PID

G_c(s)=K_p\left(1+\dfrac{1}{\tau_is}+\tau_ds\right)
G_c(s)=0.6K_u\left(1+\dfrac{1}{0.5P_us}+0.125P_us\right)
G_c(s)=0.075K_u P_u\dfrac{\left(s+\dfrac{4}{P_u}\right)^2}{s}

Podemos notar que el controlador está colocando un polo en el origen y dos ceros en

Sobre el Método 2

  1. Es claro que este tipo de sintonía tiene su mayor ventaja principalmente cuando no conocemos el modelo matemático de la planta que deseamos controlar, y por eso simplemente incrementando la ganancia podremos encontrar la ganancia y periodo críticos.
  2. Cuando el sistema llega a la ganancia crítica o ganancia límite, indica que esta al borde de la inestabilidad. Gráficamente en el diagrama de polos y ceros, nos indica que los polos del sistema de lazo cerrado se encuentran sobre el eje imaginario, y un pequeño incremento en la ganancia provocará la inestabilidad.
  3. Para que el sistema oscile, deberá tener un orden igual o superior a 3, o por lo menos deberá tener un retardo de tiempo, que hará que los polos crucen por el eje imaginario.

Con estos valores de Ku y Pu en la tabla de Ziegler y Nichols se usa como criterio de sintonia de desempeño una razón de declino igual a ¼ (igual a C/A de la siguiente figura). Sin embargo, a pesar de esta razón de declino ser considerada la mas óptima los autores alertan que no siempre debe ser usado esta sintonia, como por ejemplo en el control de nivel de un tanque pulmón.

Podemos notar que, en la práctica, colocar el sistema en forma oscilatoria puede provocar que llevemos nuestro sistema a variar dentro de una zona de operación no segura y no existen garantías de que la variable controlada estará en todo momento dentro de un rango con limites específicos. Por lo tanto, esta sintonia no es muy utilizada en plantas industriales.

Generalmente para plantas con dinámicas complicadas, pero sin términos integradores, las sintonias de Ziegler y Nichols pueden ser aplicadas. Sin embargo, si la planta tiene un polo integrador, no se pueden aplicar estas sintonias. Una forma rápida de poder entender esto, es como vimos al comienzo, en el controlador desactivamos las acciones integral y derivativa para solo variar la proporcional hasta alcanzar la ganancia limite. Solo que en un sistema con un polo integrador, implica como si la parcela integral del lazo de control no se pudiera desactivar, y por lo tanto, no vamos a alcanzar esas oscilaciones.

Observaciones Generales de la sintonia de Z&N

Consideraciones Finales con Ziegler y Nichols

La sintonía con Ziegler y Nichols sirve como una referencia inicial, sin embargo esta sintonía puede inestabilizar algunos lazos de control por diversas razones

Ejemplos de Sintonia de PID por Ziegler y Nichols

Vamos a solucionar algunos sistemas utilizando ambos métodos de sintonia PID con Ziegler-Nichols y veremos algunos conceptos personales que tengo con relación a este método.

Recuerda que en este sitio web ya hemos realizado varios ejercicios de controladores PID que puedes ver en la sección de Control Realimentado.

Metodo 1 (Lazo Abierto)

Considere que tenemos un sistema el cual no sabemos su modelo matemático, sin embargo presenta un comportamiento en forma de S de la siguiente forma:

Trazando la tangente en el punto de inflexión podemos encontrar los parametros de una función de transferencia de primer orden con retardo.

G_p=\dfrac{2e^{-2s}}{9s+1}

El factor de incontrolabilidad para este sistema esta dentro de la zona controlable (0.1 a 0.3)

\dfrac{L}{\tau}=\dfrac{2}{9}=0.222

Aplicando las ecuaciones de la tabla del método 1, tenemos los siguientes parametros para los controles:

Control proporcional

K_p=\dfrac{\tau}{K\ L}=\dfrac{9}{(2)(2)}=2.25

Control Integral

K_p=0.9\dfrac{\tau}{K\ L}=0.9\dfrac{9}{(2)(0)}=2.025
\tau_i=\dfrac{L}{0.3}=\dfrac{2}{0.3}=6.66

Control Derivativo

K_p=1.2\dfrac{\tau}{K\ L}=1.2\dfrac{9}{(2)(2)}=2.7
\tau_i=2L=2(2)=4
\tau_d=0.5L=0.5(2)=1

La respuesta del control en los tres casos es la siguiente

Mi opinion del Método

Este es un método clasico, donde como ya lo hablé la ganancia del controlador tiende a ser elevada. Si ustedes dividen la ganancia del control por 2, van a ver una mejora significativa en los controladores P y PI (Queda como tarea para ustedes).

Podemos ver que con la tangente, se intenta identificar el sistema en una función de transferencia de primer orden con retardo, sin embargo en mi opinion, los parametros no son los más adecuados, principalmente cuando comparamos ambas graficas:

Se puede notar que ambas graficas no son tan próximas en el trasiente. Además por ser una respuesta en forma de S, es sencillo determinar los parametros del sistema directamente de la grafica.

Aplicando las tecnicas de identificación de la curva de reacción, o simplemente en una inspección gráfica, ese sistema estabiliza en un tiempo=20 y podria aproximar el retardo en 3.

Sabiendo que la constante de tiempo es tomar el tiempo de estabilización y dividirlo por 4, con una simple inspección consigo determinar que el sistema tiene la siguiente función de transferencia:

G_p=\dfrac{2e^{-3s}}{5s+1}

Podemos ver como mejoramos la aproximación del sistema notoriamente. Si aplicamos las ecuaciones de la tabla del metodo 1 con este nuevo sistema y lo comparamos con el sistema encontrado con el punto de inflexión, veremos una mejora en el control. Comparando el PID tenemos.

Ejemplo Método 2 de Ziegler – Nichols

Suponga que un proceso industrial se encuentra representado por el siguiente diagrama de bloques y obtenga la sintonia de Ziegler y Nichols usando el Método 2 y un software de Simulación para verificar los resultados.

Aumentando la ganancia se obtiene que:

K_u=10
P_u=1.9

Aplicando las ecuaciones de la tabla del método 1, tenemos los siguientes parametros para los controles:

Control proporcional

K_p=0.5(10)=5

Control Integral

K_p=0.45(10)=4.5
\tau_i=1.9/1.2= 1.5833

Control Derivativo

K_p=0.6(10)=6
\tau_i=1.9/2= 0.95
\tau_d=1.9/8=0.2375

Forma analítica

Cuando tenemos el modelo del sistema, no es necesario hacer experimentos para encontrar la ganancia limite, pues podemos valernos del modelo para ese objetivo.

Función de transferencia de lazo cerrado:

G_{LC}=\dfrac{CVP}{1+ CVPS }
G_{LC}=\dfrac{1/2K_c(s+2)}{1/6s^3+s^2+11/6s+1+K_c }

Ecuación característica

1/6s^3+s^2+11/6s+1+K_c=0

Dominio de la frecuencia

1/6(j\omega)^3+(j\omega)^2+11/6(j\omega)+1+K_c=0

donde

j=\sqrt{-1}; j^2=-1; j^3=j^2j=-j

de esa forma, se tiene que:

-1/6j\omega^3-\omega^2+11/6j\omega+1+K_c=0
j\left( 11/6\omega-1/6\omega^3\right)+1+k_c-\omega^2=0

Encontrando las raíces, igualando a cero la parte real y la parte imaginaria.

Parte imaginaria:

\left( 11/6-1/6\omega^2\right) \omega=0, 

Soluciones:

\omega=0
\omega=\sqrt{11}=\pm 3.316

Parte real

Si\ \omega=0 ,\ entonces\ K_c=-1
Si\ \omega=3.316,\ entonces\ k_c=10

Periodo

Pu=2\pi/\omega = 1.8945

Descargar Diagramas de Simulink y Códigos en MATLAB

Ambos códigos están disponibles para descarga donde ejemplificamos el controlador pid en matlab usando las dos reglas de zielger y nichols.

Pero antes que nada, te invito a que te matricules a mi curso COMPLETO DE SIMULINK donde aprenderás a modelar sistemas y diseñar controladores con esta potente herramienta. Si sigues los pasos dando click en la siguiente imagen obtendrás un descuento promocional y acceso a una masterclass. (CLICK EN LA IMAGEN)

  • Curso de SIMULINK DESDE CERO UDEMY
  • Certificado de Aprobación una vez finalices el Curso
  • DESCUENTO si accedes directamente con el siguiente boton de acceso.
  • NOTA: Si buscas el curso directamente en UDEMY o si lo adquieres en otra plataforma distintas a las mostradas anteriormente NO OBTENDRÁS NINGUN DESCUENTO sobre el valor final del Curso.

Método 1

Archivo de la sintonia Metodo 1: click aqui

%% Sintonia del Controlador Ziegler y Nichols (Metodo 1)
% Sergio Andres Castaño Giraldo
% https://controlautomaticoeducacion.com
% Rio de Janeiro - 2019
clc
clear all
close all
%Modelo del sistema
G=tf([2],conv([2 1],[5 1]));
G.iodelay=1;
%tiempo
dt=0.01;
t=0:dt:35;
%Entrada
u(1:length(t))=1;
%Salida
y=lsim(G,u,t);
dy=diff(y)/dt; %Derivada
dy2=diff(dy)/dt;
%Encontrar el punto de inflexion y su derivada
% el punto donde la pendiente de la respuesta escalón tiene su valor máximo (punto de inflexión)
[m,p]=max(dy);
yp=y(p);
tp=t(p);
tm=0:20; 
ym=m*(tm-tp)+yp; %Ecuacion de la recta
%Parametros obtenidos por ZN
k=2;
L=2;
tau=9;
G1=tf([k],[tau 1]);
G1.iodelay=L;
y1=lsim(G1,u,t);
%Parametros obtenidos directamente de la grafica
L2=3;
tau2=20/4;
G2=tf([k],[tau2 1]);
G2.iodelay=L2;
y2=lsim(G2,u,t);
%Grafica
figure
plot(t(1:end-1),dy,'linewidth',3);
title('Derivada de la función de transferencia');
axis([0 35 0 0.25]); 
box off
ylabel('$$c(t)$$','FontSize',20,'Interpreter','latex')
xlabel('$$t$$','FontSize',20,'Interpreter','latex')
set(gca,'FontSize',(20) )
figure
plot([t(1) t(end)],[2 2],'--k',[11 11],[0 2],'--k','linewidth',2);
hold on
plot(t,y,tp,yp,'o',tm,ym,'-r','linewidth',3);
axis([0 35 0 3]); 
box off
ylabel('$$c(t)$$','FontSize',20,'Interpreter','latex')
xlabel('$$t$$','FontSize',20,'Interpreter','latex')
set(gca,'FontSize',(20) )
figure
plot([t(1) t(end)],[2 2],'--k','linewidth',2);
hold on
plot(t,y,t,y1,'--',t,y2,'--','linewidth',3);
%text(-1.5,2,'$$K$$','FontSize',20,'interpreter','latex')
axis([0 35 0 3]); 
box off
ylabel('$$c(t)$$','FontSize',20,'Interpreter','latex')
xlabel('$$t$$','FontSize',20,'Interpreter','latex')
set(gca,'FontSize',(20) )
% Grafica de Controladore
alfa=0; %Filtro do PID
Kc=tau/(k*L);
C=Kc;
[c1,tc1]=step((C*G)/(1+C*G));
figure
subplot(3,1,1)
plot([tc1(1) tc1(end)],[1 1],tc1,c1,'linewidth',3)
title('Control P')
set(gca,'FontSize',(20) )
%PI
Kc=(0.9*tau)/(k*L);
ti=3.33*L; td=0;
C=tf(Kc*[ti*td ti 1],[ti 0]);
[c1,tc1]=step((C*G)/(1+C*G));
subplot(3,1,2)
plot([tc1(1) tc1(end)],[1 1],tc1,c1,'linewidth',3)
title('Control PI')
set(gca,'FontSize',(20) )
%PID
Kc=(1.2*tau)/(k*L);
Kc=Kc/1;  
ti=2*L; td=0.5*L;
C=tf(Kc*[ti*td ti 1],[ti 0]);
[c1,tc1]=step((C*G)/(1+C*G));
subplot(3,1,3)
plot([tc1(1) tc1(end)],[1 1],tc1,c1,'linewidth',3)
title('Control PID')
set(gca,'FontSize',(20) )
Kc2=(1.2*tau2)/(k*L2);
Kc2=Kc2/1;  
ti2=2*L2; td2=0.5*L2;
alfa=0; %Filtro do PID
C2=tf(Kc2*[ti2*td2 ti2 1],[alfa*td2*ti2 ti2 0]);
figure
step((C*G)/(1+C*G),(C2*G)/(1+C2*G))
legend('PID por Inflexión','PID por Grafica')

Método 2

Archivos del método 2 click aqui.

%% Sintonia del Controlador Ziegler y Nichols (Metodo 2)
% Sergio Andres Castaño Giraldo
% https://controlautomaticoeducacion.com
% Rio de Janeiro - 2019

close all
clear all
clc
%Funcion de transferencia (Válvula - Planta)
G=tf(1,conv([1/3 1],[1 1]));
%Funcion de transferencia (Sensor)
H=tf(1,[1/2 1]);

%Animación del incremento de la acción proporcional del controlador

ts=0.1;
nit=10/ts;
t = 0:ts:(nit-1)*ts;
R=ones(1,length(t)); %Escalon unitario
set(figure,'Color', [1 1 1] );
for k=0:2:10
    %Lazo Cerrado
    Gc=feedback(k*G,H);
    y=lsim(Gc,R,t);
    for i=1:length(t)
        plot(t(1:i),y(1:i),'-r','Linewidth',4)
        xlabel('Time','interpreter','latex','FontSize',22);
        ylabel('Output','interpreter','latex','FontSize',22);
        title(strcat("K=", num2str(k)),'FontSize',22);
        set(gca,'XTick', [] ,'YTick', [] )
        box off
        axis([0 t(end) min(y)-0.1 max(y)+0.1])
        hold on
        pause(1e-5);
    end
    hold off
end

% Funcón de transferencia con la ecuacion característica
G_eq=tf(1,[1/6 1 11/6 1]);

figure
[C1,Kc1,ti1,td1,Ku1,Tu1] = PID_Ku(G_eq,'P',1,1); %Planta, control, tipo, graficar
title('Control P - Ganancia Limite')

figure
[C2,Kc2,ti2,td2,Ku2,Tu2] = PID_Ku(G_eq,'PI',1,1); %Planta, control, tipo, graficar
title('Control PI - Ganancia Limite')

figure
[C3,Kc3,ti3,td3,Ku3,Tu3] = PID_Ku(G_eq,'PID',1,1); %Planta, control, tipo, graficar
title('Control PID - Ganancia Limite')

Mi librería del Control PID por Ganancia Limite

function [C,Kc,ti,td,Ku,Tu] = PID_Ku(varargin)
% Controlador P,PI,PID por Ziegler & Nichols por ganho ultimo
% Os parâmetros Ku e Tu se poden evaluar pelo diagrama de Bode do sistema
% continuo em malha  aberta
% [C,Kc,ti,td,Ku,Tu] = PID_Ku(P,Controller,MF)
% C   =  Função de transferencia do controlador
% Kc  =  Ação Proporcional
% ti  =  Tempo integral
% td  =  Tempo derivativo
% Ku  =  Ganho Ultimo
% Tu  =  Periodo do Ganho Ultimo
% P   =  Função de Transferencia do Processo
% Controller= Selecciona o tipo de controle 'P','PI' (default),'PID' 
% type = 1(default)- Controlador Normal, 2 - controlador Lento
% MF   =  Grafico do controlador em Malha Fechada (1-graficar, 0-Nao graficar)
% ______________________________________________________________________
% by: Sergio Castaño
% https://controlautomaticoeducacion.com/
%

ni = nargin;
no = nargout;
titlewin='PID Ultimate Gain Ziegler and Nichols';
 if ni ==0
     error('Sem parâmetros escreva >>help PID_Ku')
 end   
 if ni == 1
    P=varargin{1};
    Controller='PI';
    type=1;
    MF=0;
 end
 
 if ni == 2
    P=varargin{1};
    Controller=varargin{2};
    type=1;
    MF=0;
 end
 
 if ni == 3
    P=varargin{1};
    Controller=varargin{2};
    type=varargin{3};
    MF=0;
 end
 
 if ni == 4
    P=varargin{1};
    Controller=varargin{2};
    type=varargin{3};
    MF=varargin{4};
 end

 
 if ni > 5
    error('Muitos parâmetros de entrada escreva >>help PID_Ku')
 end
 
[Ku,~,Wcg1,~] = margin(P);
Tu=2*pi/Wcg1;
if strcmp(Controller,'P')
        Kc=0.5*Ku/type; ti=0; td=0;
        C=tf(Kc,1);
end
 if strcmp(Controller,'PI')
        Kc=(0.45*Ku)/type; ti=Tu/1.2; td=0;
        C=tf(Kc*[ti*td ti 1],[ti 0]);
 end
 if strcmp(Controller,'PID')
        Kc=0.6*Ku/type; ti=Tu/2; td=Tu/8;
        C=tf(Kc*[ti*td ti 1],[ti 0]);
 end
 
 if MF==1
     step((C*P)/(1+C*P));
 end
    
end

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.

Bibliografia

Salir de la versión móvil