Los controladores PID (Proporcional/Integral/Derivativo) (wikipedia) son muy utilizados para controlar procesos de todo tipo.
Existe mucha documentación en la web donde se explica la teoría asociada y desarrollos tanto analógicos como discretos.
Simplificando podemos decir que la idea es medir un valor y compararlo con el valor deseado. En base a la diferencia de ambos valores (error) se genera una señal de ajuste para lograr que el valor medido se aproxime al valor deseado. El valor de ajuste se calcula mediante tres componentes :
- Proporcional : Basado en el error actual (presente)
- Integral : Basado en el historial de errores (pasado)
- Derivativo : Basado en la proyección del error (futuro)
Vajuste = Kp * Proporcional + Ki * Integral + Kd * Derivativo
Las constantes de cada factor de la fórmula se seleccionan para determinar la curva de respuesta mas adecuada al proceso a controlar.
Cuando queremos utilizar un micro como controlador PID se utiliza un algoritmo discreto (se mide a ciertos intervalos de tiempo el valor de salida, se calcula el ajuste y se aplica la corrección).
A continuación tenemos un programa en pascal que permite simular el algoritmo PID en un micro de 8bits:
En la siguiente imagen podemos ver que el valor medido ya se aproximó al valor deseado, desplazándose hacia arriba y hacia abajo dependiendo del valor de interferencia r .
Es interesante ver como los factores Proporcional/Integral/Derivativo varían a lo largo de la simulación.
Algunos enlaces interesantes:
- Robot seguidor de líneas con PID
- Libreria PID para Arduino
- Ejemplo de uso de PID con Arduino
- Análisis detallado de parametrización de PID
- Paper : Diseño de un Controlador PID con Interfaz Gráfica de Control para un Sistema de Equilibrio Bi-hélice