0% encontró este documento útil (0 votos)
70 vistas21 páginas

Controlador PID: Teoría y Aplicaciones

Este documento describe el funcionamiento de un controlador PID, incluyendo sus tres parámetros (proporcional, integral y derivativo) y cómo estos afectan la respuesta del sistema. También explica cómo ajustar manualmente los parámetros PID y cómo implementar un controlador PID en Arduino usando variables como el error actual, acumulado y la tasa de cambio para calcular la salida.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
70 vistas21 páginas

Controlador PID: Teoría y Aplicaciones

Este documento describe el funcionamiento de un controlador PID, incluyendo sus tres parámetros (proporcional, integral y derivativo) y cómo estos afectan la respuesta del sistema. También explica cómo ajustar manualmente los parámetros PID y cómo implementar un controlador PID en Arduino usando variables como el error actual, acumulado y la tasa de cambio para calcular la salida.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Teoría de

Sistemas Control Automático

Carlos Diego Ferrin Bolaños


Ing., M.Sc., Ph.D. (c)
Facultad de Ingeniería:
Departamento de Ingeniería de
Sistemas, Tecnología en Informática
Capítulo 6
Controlador PID

Facultad de Ingeniería:
Departamento de Ingeniería de
Sistemas, Tecnología en Informática
Contenido

1. Introducción
2. Funcionamiento
3. PID
4. Ajuste de los parámetros
PID
5. Controlador PID en
Arduino

3
1. Introducción

Un controlador PID (controlador proporcional, integral y derivativo) es un


mecanismo de control simultáneo por realimentación ampliamente usado en
sistemas de control industrial. Este calcula la desviación o error entre un valor
medido y un valor deseado.

4
1. Introducción

El algoritmo del control PID consta de tres


parámetros distintos: el proporcional, el
integral, y el derivativo. El valor
proporcional depende del error actual, el
integral depende de los errores pasados y
el derivativo es una predicción de los
errores futuros. La suma de estas tres
acciones es usada para ajustar el proceso
por medio de un elemento de control,
como la posición de una válvula de control
o la potencia suministrada a un
 
𝐾𝑝, 𝐾𝐼, 𝐾𝐷
calentador.

5
1. Introducción

Históricamente, se ha considerado que, cuando no se tiene conocimiento del proceso,


el controlador PID es el controlador más adecuado. Ajustando estas tres variables en el
algoritmo de control del PID, el controlador puede proveer una acción de control
adaptada a los requerimientos del proceso en específico. La respuesta del controlador
puede describirse en términos de respuesta del control ante un error, el grado el cual
el controlador sobrepasa el punto de ajuste, y el grado de oscilación del sistema.

El uso del PID para control no garantiza un control óptimo del sistema o la estabilidad
del mismo.

6
2. Funcionamiento

Para el correcto funcionamiento de un controlador PID que


regule un proceso o sistema se necesita, al menos:

1. Un sensor, que determine el estado del sistema (termómetro,


caudalímetro, manómetro, etc).

2. Un controlador, que genere la señal que gobierna al actuador.

3. Un actuador, que modifique al sistema de manera controlada


(resistencia eléctrica, motor, válvula, bomba, etc).

7
3. PID

Proporcional: La parte
proporcional consiste en el
producto entre la señal de
error y la constante
proporcional para lograr que
el error en estado
estacionario se aproxime a
cero, pero en la mayoría de
los casos, estos valores solo
serán óptimos en una
determinada porción del
rango total de control, siendo
distintos los valores óptimos 𝑃 ( 𝑡 ) = 𝐾 𝑃 ×𝑒 (𝑡 )
 
para cada porción del rango.

8
3. PID

Integral: El modo de control


Integral tiene como propósito
disminuir y eliminar el error en
estado estacionario, provocado
por perturbaciones exteriores y
los cuales no pueden ser
corregidos por el control
proporcional. El control integral
actúa cuando hay una desviación
entre la variable y el punto de
consigna, integrando esta
  𝑡
desviación en el tiempo y
sumándola a la acción 𝐼 ( 𝑡 )= 𝐾 𝐼 ×∫ 𝑒 ( 𝑡 ) 𝑑𝑡
proporcional. 0

9
3. PID

Derivativo: La acción derivativa


se manifiesta cuando hay un
cambio en el valor absoluto del
error; (si el error es constante,
solamente actúan los modos
proporcional e integral). La
función de la acción derivativa es
mantener el error al mínimo
corrigiéndolo proporcionalmente
con la misma velocidad que se
produce; de esta manera evita
que el error se incremente.   𝑑𝑒(𝑡 )
𝐷 (𝑡 ) =𝐾 𝐷 ×
𝑑𝑡
10
3. PID

Interpretación de las constantes:

Kp constante de proporcionalidad: se puede ajustar como el


valor de la ganancia del controlador o el porcentaje de banda
proporcional.

Ki constante de integración: indica la velocidad con la que se


repite la acción proporcional.

Kd constante de derivación: hace presente la respuesta de la


acción proporcional duplicándola, sin esperar a que el error se
duplique.

11
4. Ajuste de los parámetros PID

El objetivo de los ajustes de los parámetros PID es lograr que el bucle de control corrija
eficazmente y en el mínimo tiempo los efectos de las perturbaciones; se tiene que
lograr la mínima integral de error. Si los parámetros del controlador PID (la ganancia del
proporcional, integral y derivativo) se eligen incorrectamente, el proceso a controlar
puede ser inestable.

Ajustar un lazo de control significa ajustar los parámetros del sistema de control a los
valores óptimos para la respuesta del sistema de control deseada.

Método de
Ajuste Manual Ziegler-Nichols

12
4. Ajuste de los parámetros PID

Ajuste manual:
• Si el sistema debe mantenerse online, un método de ajuste consiste en establecer
primero los valores de I y D a cero. A continuación, incremente P hasta que la salida
del lazo oscile.
• Luego establezca P a aproximadamente la mitad del valor configurado previamente.
Después incremente I hasta que el proceso se ajuste en el tiempo requerido
(aunque subir mucho I puede causar inestabilidad).
• Finalmente, incremente D, si se necesita, hasta que el lazo sea lo suficientemente
rápido para alcanzar su referencia tras una variación brusca de la carga.

Un lazo de PID muy rápido alcanza su setpoint de manera veloz, un lazo de PID no tan
rápido alcanza su setpoint de manera no tan veloz. Algunos sistemas no son capaces
de aceptar este disparo brusco.

13
5. Controlador PID en Arduino

14
5. Controlador PID en Arduino

Para implementar un controlador PID en un código o un programa de Arduino, se


deben conocer cinco parámetros: constantes proporcionales, integrales y derivadas,
valor de entrada y valor de llegada. El cálculo del PID debe estar dentro de una función
de bucle.

La primera parte de la función debería ser determinar el tiempo transcurrido. En


Arduino, el tiempo actual puede ser determinado por milis():

currentTime = millis();

elapsedTime = currentTime - previousTime;

15
5. Controlador PID en Arduino

A continuación, se debe determinar el error:

error = setPoint - input;

Recuerda que la integral del error es el error acumulativo en el tiempo:

cumError += error * elapsedTime;

16
5. Controlador PID en Arduino

La derivada del error es la tasa de cambio del error:

rateError = (error - lastError)/elapsedTime;

Por último, la salida calculada es:

output = Kp * error + Ki * cumError + Kd * rateError;

Aquí, el Kp, Ki y Kd son las constantes predeterminadas. Finalmente, las variables


deben ser anotadas para la siguiente iteración:

lastError = error;
previousTime = currentTime;
17
5. Controlador PID en Arduino

//PID constants double computePID (double inp){


double kp = 2; currentTime = millis();
double ki = 5; //get current time
double kd = 1; elapsedTime = (double)(currentTime - previousTime);
unsigned long currentTime, previousTime; //compute time elapsed from previous computation
double elapsedTime; error = setPoint - input;
double error; // determine error
double lastError; cumError += error * elapsedTime;
double input, output, setPoint; // compute integral
double cumError, rateError; rateError = (error - lastError)/elapsedTime;
// compute derivative
void setup(){ double out = kp*error + ki*cumError + kd*rateError;
previousTime = millis(); //PID output
lastError = 0; lastError = error;
} //remember current error
void loop(){ previousTime = currentTime;
input = analogRead(A0);
//read from rotary encoder connected to A0
//remember current time
return out;
1
output = computePID(input); delay(100); //have function return the PID output
analogWrite(3, output); }
//control the motor based on PID value
}
18
5. Controlador PID en Arduino
#include <PID_v1.h>
#define PIN_INPUT 0
#define PIN_OUTPUT 3
//Define Variables we'll be connecting to
double setPoint, input, output;
//Specify the links and initial tuning parameters
double Kp=2, Ki=5, Kd=1;
PID myPID(&input, &output, &setPoint, Kp, Ki, Kd, DIRECT);

void setup() {
//initialize the variables we're linked to
Input = analogRead(PIN_INPUT);
setPoint = 100;
2
//turn the PID on
myPID.SetMode(AUTOMATIC);
}

void loop() {
Input = analogRead(PIN_INPUT);
myPID.Compute();
analogWrite(PIN_OUTPUT, Output);
}

19
20
Gracias
Contacto: Carlos Ferrin
e-mail: cdferrinb@unicatolica.edu.co
RG: https://www.researchgate.net/profile/Carlos_Ferrin

Facultad de Ingeniería:
Departamento de Ingeniería de
Sistemas, Tecnología en Informática

También podría gustarte