Los controladores Proporcional Integral Derivativo PID son muy útiles e incluso imprescindibles en muchas aplicaciones de control, por ejemplo el robot equilibrista o el B-robot, el servo-taladro o el control de drones o cualquier otro sistema en el que un robot tiene que mantener una orientación, posición o velocidad determinada.
Hay muchas librerías que implementan controladores PID, pero yo sólo he probado la librería "Arduino PID Library" de Brett Beauregard que se puede descargar de GitHub (enlace) o instalarse directamente desde el gestor de librerías del Arduino IDE. En este artículo delArduino Playground se explica como usarla: enlace
El principal problema de un controlador PID es ajustar las ganacias de la parte proporcional, derivativa e integral Kp, Ki y Kd.
En esta página de Luis Llamas se explican varios procedimientos: enlace . Mi favorito es el método manual P,I,D y se hace de la siguiente manera:
Empezar poniendo Kd y Ki a cero y Ki a 1. Probar e ir doblando el valor de Kd hasta que el sistema empiece a oscilar, reducir hasta obtener una oscilación amortiguada.
Poner Ki = Kp/tiempo de muestreo . El tiempo de muestreo por defecto es 200ms = 0.2S. Ajustar en caso necesario.
Poner Kd = Kp*tiempo de muestreo. Ajustar en caso necesario
Enlaces
Luis LLamas, medir la orientación con Arduino y el MPU6050
Guía del uso de la librería PID por el autor: enlace
Métodos manuales para sintonizar un PID: enlace
Estupendo thread en el que se discuten varias aproximaciones teórico-prácticas al ajuste de un PID: enlace
Vídeos
Como ajustar las ganancias de un PID: enlace
Conceptos básicos de sistemas de control: enlace
Función de transferencia: enlace
Control PID por asignación de polos: enlace
Sistemas de segundo orden: enlace