Saltar al contenido
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 K_p es la ganancia proporcional, \tau_i el tiempo integral y \tau_d el tiempo derivativo.

Si el controlador recibe la señal de error e(t) como entrada (ver figura arriba), la salida del controlador u(t) 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 K_p es la ganancia proporcional, K_i la ganancia integral y K_d 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.

Control PID en Manual

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.

Forma S Ziegler Nichols

La curva S esta definida por 2 constantes. Por el retardo en el tiempo L y por la constante de tiempo \tau, 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 c(t)=K como se muestra en la siguiente figura:

Ziegler Nichols

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 K_p, \tau_i y \tau_d de acuerdo con la siguiente tabla de Ziegler y Nichols:

Controlador K_p \tau_i \tau_d
P \dfrac{\tau}{KL} \infty 0
PI 0.9\dfrac{\tau}{KL} \dfrac{L}{0.3} 0
PID 1.2\dfrac{\tau}{KL} 2L 0.5L
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 s=-1/L

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

Cuidados del Metodo 1

  • Según el autor Corripio (1990) las ecuaciones de sintonia de Ziegler y Nichols es buena cuando el factor de incontrolabilidad (L/\tau) está entre 0.1 y 0.3, o sea para procesos que no tengan un retardo dominante. Sin embargo algunos autores admiten que puede subir hasta 1.4
  • Esta sintonia fue creada para controles analógicos y no para controles digitales. Por lo tanto si el periodo de muestreo (T_s) del sistema es grande, las formulas anteriormente vistas pueden generar un declino mayor al 25% tendiendo para la inestabilidad. Una opción es aumentar el retardo a un valor igual a la mitad del periodo de muestreo L'=L+T_s/2 antes de utilizar los valores de la tabla.

  • 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:

Ganancia Limite Ziegler y Nichols

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: K_u, y a partir del gráfico podemos calcular el Periodo Crítico: P_u que puede ser calculado también a través de la frecuencia critica como: P_u=2\pi/\omega_u

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

Controlador K_p \tau_i \tau_d
P 0.5K_u \infty 0
PI  0.45K_u \dfrac{1}{1.2}P_u 0
PID  0.6K_u 0.5P_u 0.125P_u
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 s=-4/P_u

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.

Respuesta de un Sistema en Lazo Cerrado

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

  • Se observa que la ganancia del controlador (K_p) es inversamente proporcional a la ganancia del sistema (K)
  • La ganancia del controlador (K_p) es inversamente proporcional a la razón entre el tiempo muerto y la constante de tiempo (L/\tau) conocida como el factor de incontrolabilidad. Cuanto más grande sea esta razón más difícil será controlar el sistema y más pequeño tendrá que ser la ganancia del controlador.
  • El tiempo integral del controlador (\tau_i) está relacionado con la dinámica del proceso (L), o sea entre más lento (mayor retardo) mayor deberá ser el tiempo integral. Esto quiere decir que el controlador deberá esperar más tiempo antes de repetir la acción proporcional.
  • El tiempo derivativo del controlador (\tau_d) también está relacionado con la dinámica del proceso (L), o sea entre más lento (mayor retardo) mayor deberá ser el tiempo derivativo. Ziegler y Nichols siempre utilizaron una razón de ¼ entre \tau_d/\tau_i, por lo tanto \tau_i=4\tau_d.

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

  • Errores de modelado
  • Interacciones entre los lazos de control en sistemas multivariables (MIMO)
  • Por el motivo del PID actualmente ser usado como un control digital y no uno analógico.
  • Por el criterio utilizado por Z&N de usar una razón de declino de ¼ (25%), dado que muchas veces es poco robusto, dando una holgura muy pequeña del limite de estabilidad, con lo que cualquier no linealidad del proceso puede inestabilizarlo.
  • De forma práctica, se sugiere disminuir las ganancias propuestas por los autores e irlas aumentando gradualmente en función del comportamiento del sistema. Recuerda que estas formulas no garantizan un desempeño especifico ni la estabilidad de lazo cerrado.

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:

Ziegler Nichols Metodo 1

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

Ziegler Nichols en Lazo Abierto
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

Control PID Ziegler Nichols Metodo 1

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}
Metodo Grafico

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.

PID por Ziegler Nichols

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.

Ejemplo Ziegler Nichols Ganancia Limite

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 s=(j\omega)

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

  • Ingeniería de Control Moderna. Katsuhiko Ogata. Editorial Prentice Hall.
  • Controles Típicos de Equipamentos e Processos Industriais. Eng. Mario Cesar M. Massa de Campos , Eng. Herbert Campos Gonçalves Teixeira
  • Tuning of Industrial Control Systems by Armando B. Corripio (1990)
Summary
Sintonía de Control PID usando Ziegler - Nichols
Article Name
Sintonía de Control PID usando Ziegler - Nichols
Description
Ziegler y Nichols fueron dos ingenieros que elaboraron la primera metodología inovadora objetiva y muy simple para la sintonia de controladores PID. Su trabajo tuvo un papel determinante en la diseminación de los algorítmos de control en la industria. Sus dos métodos mas populares permiten obtener los parametros del control PID sin necesidad de conocer el modelo del proceso.
Author
Publisher Name
Control Automático Educación
Publisher Logo

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Comentarios (39)

me falto aclararte que el sistema de control a implementar trabajaria con voltajes de entre 12 a 220 voltios en directa, con corrientes controlables todo por pwm. La temperatura del reactor de hidrogeno se eleva en el tiempo generando un aumento significativo y hasta desproporcionado del numero de amperios. Si hago un control que se pare en 3 amperios, a una temperatura de 30 grados, a medida que sube la temperatura, tambien sube la carga en amperios, y es eso lo que quiero que haga el sistema, poder pararlo con un display digital en 3 amperios (puede ser mas) por ejemplo, y que se quede hay sin importar que la temperatura se suba, pero haciendo el control de es mas que justo y sufiiciente. Mi correo es [email protected]. Con gusto te puedo recibir el mensaje al privado del correo. Muchas bendiciones.

Responder

buenos dias estimado sergio. Muchas bendiciones y felicitaciones por tu trabajo de enseñar con profesionalismo y etica. El presente e mail es para hacerte algunas preguntas sobre un sistema de control que quiero implementar con pics o microcontroladores en ccs compiler. El sistema que quiero automatizar es un sistema de control de amperios (carga) con pwm, que puede estar de entre 0 a 10 amperios, 10 a 20 amperios o sistemas de mayor potencia de entre 20 a 50 amperios o mas para hacer control sobre reactores de hidrogeno, muy frecuentemente utilizados en el area automotriz como ahorradores de combustible y en motores de diesel o gasolina estacionarios. Estoy interesado en estudiar este tema de los sistemas de control, para lograr ese desarrollo pero no se por donde arrancar. Tengo estudios en matematicas de universidad de hace años atras y me puedo nivelar en eso. Estoy estudiando programacion de pics en pic c y he visto algunos videos tuyos. El sistema de control lo pude hacer con un tl494 y me ha funcionado de maravilla pero quiero encriptar el codigo fuente para que no me lo copien y poder comercializarlo ya que estoy en un proceso de diversificacion de mis actividades como tecnico electronico de ecus automotrices y quiero migrar al tema del hidrogeno en el menor tiempo posible. Aprte de eso trabajo como diseñador electronico en electronica analoga, porque en el tema de la digital fue muy poca mi preparacion en la universidad donde estudie. Que consejo me darias y por donde puedo arrancar en el tema de los sistemas de control? Un abrazo desde venezuela y saludos. Exitos!!!!!!!!!

Responder

Buenas estimado, te consulto en el método 2 de Z-N en el SIMULINK has multiplicado todas las ganancias (ya sea para el control P, PI y PID) por 0.5, ha que se de eso?

Responder

Para hacerle un ajuste a la sintonia y volverla mas conservadora. En ese caso estaba disminuyendo la ganancia proporcional a la mitad para disminuir un poco la agresividad.

Responder

Excelente! Una ultima consulta, para el script de Matlab es posible utilizar directamente el comando margin apicado a G*H siendo G= Gv*Gp, tambien se podría utilizar la teoría del LGR para hallar el Ku.

Responder

El comando margin me hallaría Ku y Pu aplicado a G*H..

Responder

Y respecto al bloque PID del Simulink el valor de N=100 no conviene modificarlo? El N corresponde a un filtro pasa-bajos para la acción derivativa?

Responder

Hola! buenas queria consultarte sobre el metodo ya que estoy realizando un proyecto de esto y mi funcion de transferencia es 0.10/s+0.0474 lazo abierto y mi step me sale que comienza desde el cero, no forma esa S en el grafico, y lo hago con el metodo del porcentaje (28% y 63%) y al realizar los calculos me sale todo en negativo. me podria orientar al saber que paso esoty haciendo mal.

Responder

Para llevar a cabo la sintonización de los diversos controladores utilizando la curva de reacción, ya sea por el
método de Ziegler-Nichols o por el criterio de Cohen- Coon, es necesario disponer de un registro gráfico de la
respuesta de lazo abierto al escalón del sistema 𝑮(𝒔) como se ilustra en la figura 1. Supongamos que en este
caso la entrada aplicada al sistema es 𝒓(𝒕) = 𝟏, de tal manera que el proceso pueda representarse mediante un
modelo de primer orden τ y con un atraso de tiempo 𝑻𝒂, de acuerdo con la ecuación
Mediante un método de aproximación analítico de la curva de reacción a una entrada escalón, se puede obtener
la función de transferencia 𝐺(𝑠) del sistema, la cual, para el sistema representado en la curva, viene dada por:
𝐺(𝑠) =
4
(𝑠 + 2)
3
a. Mediante Matlab o Simulink, realizar la grafica de la respuesta del sistema en lazo abierto a una entrada
escalón.
b. Representar en diagrama de bloques el sistema a lazo cerrado, considerando el sensor ideal y
determinar la función de transferencia 𝑻(𝒔).
c. Mediante Matlab o Simulink, graficar la función de transferencia en lazo cerrado 𝑻(𝒔).
d. Determinar analíticamente con la ayuda de Matlab, el valor de τ y 𝑻𝒂 y representar gráficamente.
e. Llenar la tabla mostrada a continuación mediante el criterio de Ziegler-Nichols con los valores
respectivos.
f. Determinar las funciones de transferencia en el dominio de la frecuencia de los controladores P, PI, y
PID.
g. Mediante el uso de Simulink, determinar la respuesta del sistema ante cada una de las diferentes
acciones de control mencionadas en el inciso anterior, concluyendo lo mas representativo de cada una.
h. Mediante la herramienta de sintonización automática, buscar los valores del controlador PID, que
anulen el sobre pico del sistema, y lleven a cero el error en estado estable

Responder

Buenas tardes un saludo gran explicacion del video una consulta estoy usando el codigo de matlab pero nose a que hace referencia esta linea gracias:
G=tf([1],conv([2 1],[5 1]));

Responder

Ese sería el sistema real, el cual modelamos a través de ZN y obtenemos un modelo de primer orden como aproximación de dicho sistema real.

Responder

buenas noches muy clara la explicación muchas gracias por la información. Una consulta estoy trabajando con un emulador de panel el cual posee dos controles no de tensión y uno de corriente y quería saber como podría hacer en ese caso la sintonizaron de mis dos controladores. Muchas gracias por su tiempo.

Responder

Una forma es usando la estrategia de ZyN mostrado aqui, si las respuestan tienen forma de S usas el método uno, si consigues hacerlo oscilar en lazo cerrado, puedes usar el método 2. También puedes usar otras estrategias como la asignación de polos que hemos tratado aquí en el sitio web.

Responder

Buenas tardes, podrías subir videos sobre el análisis de polos y ceros con Matlab, ANALIZANDO GRADOS, AMPLITUD, ETC. Muchas gracias. Juan Cruz Calzada, estudiante de Ingeniería de UNICEN.

Responder

Tengo una entrada que te puede interesar sobre los ceros del sistema.

Responder

Necesito ayuda con un problema de controlllll

Responder

Amigo gracias por la informacion y los videos que subes me han servido muchisimo no sabes las dudas que me has aclarado, eres un gran profesional que Dios te bendiga y guarde siempre y saludos te mando de mi parte desde Astracán- Rusia

Responder

Muchas gracias Ismael me alegra poder haber contribuido un poco en tu formación. Saludos para ti desde Rio de Janeiro Brasil.

Responder

Cordial Saludo, me podrias explicar a que se refiere el término declino y razon de declino? Gracias

Responder

es la velocidad de caída de la respuesta.

Responder

Buenísimo !!!!

Responder

Gracias!!!

Responder

Buenas, como han dicho no podemos implementar estos dos métodos de Ziegler – Nichols cuando en la planta tienes un termino integrador. Entonces como o qué proceso puedo utilizar para diseñar un controlador para la siguiente planta: 0.25/(s(5s+1)(0.5s+1)). Por favor, necesito ayuda urgente con esto, todo lo que encuentro está explicado solo para sistemas de 2o orden…

Responder

Puedes usar un control RST por ejemplo:

https://controlautomaticoeducacion.com/control-de-procesos/controlador-por-asignacion-de-polos/

Responder

Pero en el RST se necesitan determinar tambien los bloques S y T los cuales no puedo utilizarlos ya que se me especifica que el controladors debe ser del tipo PID pudiendo ser este: PD, PI, PDD, etc etc

Responder

Y si enmascaras el RST dentro del controlador PID? Asignando los dos polos dominantes como complejos conjugados y un tercer polo no dominante, unas 10 veces más alejados de la parte real de los polos dominantes.

https://controlautomaticoeducacion.com/control-de-procesos/3-enmascarar-control-rst-en-control-pid/

Responder

EN EL METODO 2 DE ZIEGLER MARCA ERROR DE UNA VARIABLE QUE CREASTE Y NO ESTA COMPARTIDA PID_Ku

el archivo de simulink no lo abre , gracias por tu ayuda

Responder

Hola Victor, la función PID_Ku si está compartida, debes dar click donde dice descargar archivos. Sin embargo, la acabo de disponibilizar directamente en el post si lo que quieres es copiarla y pegarla directamente en tu computador.
El archivo de simulink está hecho en matlab 2018. Si tienes una versión anterior a esa, el archivo no te abrirá. Sin embargo viendo el video, puedes crear tu propio archivo de Simulink. Saludos!

Responder

buen dia , estoy tratando de descargar el diagrama de simulink pero no me permte abrirlo, mi duda es que en el bloque de función de transferencia como se introdújo la funcion de transferencia si el bloque en mi Matlab no me lo permite.

saludos desde monterrey mexico

Responder

La funcion de transferencia en simulink es num=2 y den=[10 7 1]

Responder

Hola Sergio! Puedes colocar los archivos en Simulink para estos métodos?
Te felicito por tu excelente trabajo!!!

Responder

Moisés, ai en la pagina están los Archivos de SIMULINK para descargarlos. Siempre han estado aí. En la parte del código donde dice click aqui. Saludos

Responder

¿Hace falta una libreria para trabajar con los archivos .m?
No los puedo correr.

Responder

Talvez algo que tenga que ver con Latex, porque me aparecen errores a partir de la linea 56(
“A quoted character vector is unterminated”)

Responder

Volvi a montar el código. A veces esos códigos generan problemas aca el sitio web y se desorganizan. Gracias por informar. Saludos

Responder

Como hago en matlab para encontrar el punto de inflexión, ya que hacerlo al ojo es muy difícil y este controlador necesita precisión, gracias.

Responder

Hola Felipe, coloqué el código en Matlab que usé para solucionar ese ejemplo, en el código encuentro el punto de inflexión a través de la derivada de la FT. Saludos

Responder

EXCELENTES TUS VIDEOS!!!! el método 2 de ziegler-nichols, dónde está?? del lugar de las raices no tenes ninguno? y de nyquist? abrazo gigante!!!

Responder

Todavía no he grabado el método 2, y todos los temas que comentas también los iré montando poco a poco. Como me gustaría tener tiempo completo para el canal, pero lastimosamente no es así. Lento pero seguro vamos colocando contenido. un abrazo Barby!!

Responder