27/04/2008
El control PID (Proporcional, Integral, Derivativo) es una técnica fundamental en automatización para mantener una variable de proceso (temperatura, velocidad, posición, etc.) en un valor deseado. Arduino, con su facilidad de uso y bajo costo, se convierte en una plataforma ideal para implementar controladores PID. En este artículo, exploraremos a fondo las librerías PID para Arduino, cómo utilizarlas, ajustar sus parámetros y solucionar problemas comunes.

¿Qué es un controlador PID?
Un controlador PID utiliza tres términos para ajustar la salida de un sistema y minimizar el error entre el valor deseado (setpoint) y el valor actual (feedback):
- Proporcional (P): Responde al error actual. Un error grande genera una salida grande, y viceversa. La ganancia proporcional (Kp) determina la magnitud de esta respuesta.
- Integral (I): Considera el error acumulado a lo largo del tiempo. Esto ayuda a eliminar el error en estado estacionario, pero puede generar sobreimpulso si no se ajusta correctamente. La ganancia integral (Ki) determina la influencia de este término.
- Derivativo (D): Anticipa cambios futuros en el error al considerar la tasa de cambio del error. Ayuda a reducir el sobreimpulso y la oscilación, pero puede amplificar el ruido si no se ajusta correctamente. La ganancia derivativa (Kd) determina la influencia de este término.
Librerías PID para Arduino
Existen varias librerías PID para Arduino disponibles, cada una con sus propias características y ventajas. Algunas de las más populares incluyen:
- PID_v1: Una librería sencilla y ampliamente utilizada, ideal para principiantes.
- PID AutoTune: Esta librería permite la auto-sintonización de los parámetros PID, simplificando el proceso de ajuste.
- SimplePID: Otra librería sencilla y fácil de usar, con una interfaz intuitiva.
La elección de la librería dependerá de tus necesidades específicas y nivel de experiencia. Para este tutorial, nos centraremos en una librería genérica, explicando los conceptos que se aplican a la mayoría de ellas.
Instalación de la Librería PID
La instalación de una librería PID en Arduino IDE suele ser sencilla. Generalmente, se realiza a través del Administrador de Librerías:

- Abre el IDE de Arduino.
- Ve a "Sketch" -> "Importar Librería" -> "Administrar Librerías…".
- Busca la librería PID deseada (por ejemplo, "PID_v1").
- Instala la librería haciendo clic en "Instalar".
Uso de la Librería PID en Arduino
Una vez instalada la librería, puedes incluirla en tu código con una línea como esta:

#include <PID_vh>A continuación, deberás crear un objeto PID y definir los parámetros de control:
//Define constantes para los pines de entrada y salidaconst int pinSensor = A0; //pin analogico para el sensor de temperaturaconst int pinActuador = 9; //pin digital para el actuador (PWM)//Define variables para el valor deseado, el valor actual y la salidadouble Setpoint, Input, Output;//Define los parametros PIDdouble Kp=2, Ki=5, Kd=1;//Crea el objeto PIDPID myPID(&Input, &Output, &Setpoint,Kp,Ki,Kd, DIRECT);void setup(){ Serial.begin(9600); //Configura el pin del actuador como salida PWM pinMode(pinActuador, OUTPUT); //Configura el PID myPID.SetMode(AUTOMATIC);}void loop(){ //Lee el valor del sensor Input = analogRead(pinSensor); //Calcula la salida del PID myPID.Compute(); //Escribe el valor de salida al actuador analogWrite(pinActuador,Output); //Imprime los datos en el monitor serial Serial.print("Setpoint: "); Serial.print(Setpoint); Serial.print(" Input: "); Serial.print(Input); Serial.print(" Output: "); Serial.println(Output); delay(100);}En este ejemplo, Inputes la lectura del sensor, Outputcontrola el actuador (por ejemplo, un motor o una resistencia), y Setpointes el valor deseado. Kp, Kiy Kdson las ganancias PID que deben ajustarse para obtener el mejor rendimiento.

Ajuste de los Parámetros PID
El ajuste de las ganancias PID es crucial para obtener un control óptimo. Un ajuste incorrecto puede provocar oscilaciones, sobreimpulso, o un tiempo de respuesta lento. Existen varios métodos para ajustar estos parámetros:
- Método de Ziegler-Nichols: Este método consiste en encontrar el valor de Kp que provoca oscilaciones sostenidas y luego calcular Ki y Kd a partir de ese valor.
- Ajuste manual: Se trata de ajustar iterativamente las ganancias PID, observando el comportamiento del sistema y modificando los valores hasta obtener el rendimiento deseado.
- Auto-sintonización: Algunas librerías PID ofrecen la posibilidad de auto-sintonizar los parámetros, simplificando el proceso.
Limitaciones de la Librería PID
Tener en cuenta las limitaciones de las librerías PID. Por ejemplo, algunas pueden tener limitaciones en la precisión, el rango de valores de entrada o salida, o la velocidad de procesamiento.
Solución de Problemas Comunes
Algunos problemas comunes al utilizar librerías PID en Arduino incluyen:
- Oscilaciones: Pueden ser causadas por ganancias PID mal ajustadas. Reduce la ganancia proporcional (Kp) para disminuir la amplitud de las oscilaciones.
- Sobreimpulso: Ocurre cuando la salida supera el valor deseado. Reduce la ganancia integral (Ki) y la ganancia derivativa (Kd) para reducir el sobreimpulso.
- Tiempo de respuesta lento: Se puede mejorar aumentando la ganancia proporcional (Kp).
- Error en estado estacionario: Puede ser corregido aumentando la ganancia integral (Ki).
Tabla Comparativa de Librerías PID
| Librería | Ventajas | Desventajas |
|---|---|---|
| PID_v1 | Sencilla, fácil de usar | Poca flexibilidad |
| PID AutoTune | Auto-sintonización | Puede ser compleja |
| SimplePID | Interfaz intuitiva | Menos funciones avanzadas |
Consultas Habituales
Aquí respondemos algunas de las consultas habituales sobre las librerías PID en Arduino :

- ¿Puedo usar librerías C++ en Arduino? Sí, Arduino está basado en C++ y puedes usar la mayoría de las librerías C++.
- ¿Cuál es el límite de la salida PID en Arduino? La salida del PID está limitada por el rango de valores del pin de salida del Arduino (generalmente 0-255 para PWM).
- ¿Cómo puedo ajustar los parámetros PID de forma óptima? La mejor forma de ajustar los parámetros PID depende de la aplicación específica y del sistema de control. Se recomienda empezar con valores bajos y ajustarlos iterativamente.
Las librerías PID para Arduino ofrecen una herramienta poderosa y accesible para implementar control de procesos en una amplia gama de proyectos. Con una comprensión adecuada de los principios PID y un ajuste cuidadoso de los parámetros, puedes lograr un control preciso y eficiente de tus sistemas.
Si quieres conocer otros artículos parecidos a Arduino librería pid para control de procesos puedes visitar la categoría Libros y Librerías.
