/ Proyectos / Industria / Sintonización de controladores PID
Sintonización de controladores PID: error compuesto y búsqueda en árbol binario
Optimizar las ganancias Kp, Ki y Kd de un PID no es minimizar un solo número: es balancear velocidad, sobreimpulso y esfuerzo de control en una sola función objetivo.
El objetivo era encontrar las ganancias Kp, Ki y Kd de un controlador PID para una planta modelada como función de transferencia, sin recurrir a prueba y error manual ni quedarse en el resultado genérico de Ziegler-Nichols. El punto de partida fue un notebook que hacía una búsqueda en malla y elegía la combinación con menor error cuadrático medio (MSE).
El problema real: minimizar solo el MSE encontraba ganancias que, en simulación, parecían buenas en promedio pero oscilaban alrededor de la referencia o exigían una señal de control demasiado agresiva para un actuador físico. El hallazgo más importante no fue el algoritmo de búsqueda, fue la función objetivo. Componer el error con seis criterios, no uno, cambió por completo qué combinaciones terminaban en el top del ranking.
Mapa del casoContenido
- Diagrama de la solución. Los bloques del pipeline, de la planta y el rango de ganancias hasta las ganancias validadas — incluye un simulador interactivo
- Construcción de la solución. Cómo una función objetivo mal planteada dirigió cada decisión
- Condiciones del proyecto. Restricciones reales y opciones descartadas antes de construir
- Pasos. Qué se dejó al agente y qué criterio se aplicó en cada uno
- Proceso de iteración. El ajuste documentado entre versiones de la función objetivo
- Descargables. Script, repositorio y simulador del proyecto
- Lecciones importantes. La lección concreta que deja este caso
Estructura de alto nivelDiagrama de la solución
Pasa el cursor sobre cada bloque para ver qué hace ese paso.
La malla de combinaciones y la simulación en lazo cerrado se mantuvieron separadas del cálculo del error compuesto, porque combinar demasiado pronto habría hecho más difícil auditar por qué una combinación quedaba mejor rankeada que otra.
Pruébalo con tu propia planta
Mismo motor del notebook (malla logarítmica + error compuesto + árbol binario), corriendo en tu navegador. No se envía nada a ningún servidor.
| # | Kp | Ki | Kd | Error compuesto | IAE | Overshoot | Tr (s) |
|---|
El error compuesto pondera IAE (30%), overshoot (20%), tiempo de subida (15%), energía de control (15%), error estacionario (10%) y oscilación (10%) — igual que en el notebook del repositorio. Esto es una herramienta de exploración: antes de llevar estas ganancias a un controlador físico, valida el modelo de planta con datos reales y respeta los límites de saturación y anti-windup de tu actuador.
Cómo se construyóConstrucción de la solución
Condiciones del proyecto
| Restricción | Dato |
|---|---|
| Objetivo inicial | Encontrar Kp, Ki, Kd que minimicen el error de seguimiento sin sacrificar estabilidad ni esfuerzo de control |
| Planta disponible | Modelo de función de transferencia de segundo orden, sin acceso a hardware real durante la sintonización |
| Métrica inicial del notebook | MSE puro sobre una referencia senoidal |
| Presupuesto de cómputo | Malla de 10×10×10 combinaciones, cada una con una simulación completa del lazo cerrado |
| Opción | Por qué se descartó |
|---|---|
| Usar solo MSE como función objetivo | Minimiza el error promedio pero ignora sobreimpulso, esfuerzo de control y oscilación: puede converger a ganancias agresivas e inestables en la práctica |
| Ordenar candidatos con sort() simple sobre una lista | Funciona, pero no deja una estructura lista para insertar nuevas evaluaciones sin reordenar todo desde cero |
| Error compuesto ponderado (IAE + overshoot + tiempo de subida + energía de control + error estacionario + oscilación) + árbol binario ordenado por error | Concentra la búsqueda en candidatos realmente utilizables en un controlador físico, y deja la estructura lista para escalar a una búsqueda incremental |
Pasos
Definición de la función objetivo
Agente: propuso minimizar solo el MSE del error de seguimiento.
Criterio aplicado: componer el error con IAE, overshoot, tiempo de subida, energía de control y error estacionario, cada uno con su propio peso, para evitar ganancias que minimizan el promedio del error pero generan sobreimpulso o gasto de energía excesivo.
Señal de referencia usada para sintonizar
Agente: usó una referencia senoidal para explorar la respuesta dinámica durante la búsqueda.
Criterio aplicado: cambiar a una rampa senoidal suave, sin discontinuidades de derivada, porque una referencia con cambios bruscos sesga la búsqueda hacia ganancias que responden bien a esa forma de entrada, no necesariamente a un escalón real.
Penalización de oscilaciones
Agente: no consideraba directamente la oscilación alrededor de la referencia, solo el error promedio.
Criterio aplicado: contar los cruces entre la salida y la referencia y sumar esa penalización al error compuesto, porque dos configuraciones con el mismo IAE pueden tener comportamientos muy distintos: una estable y otra oscilando de forma sostenida.
Estructura de datos para ordenar candidatos
Agente: ordenaba los resultados con sort() sobre una lista de diccionarios.
Criterio aplicado: insertar cada candidato en un árbol binario ordenado por error compuesto, de forma que el recorrido inorden entregue siempre el ranking completo, dejando la estructura lista para escalar a una búsqueda incremental, por ejemplo agregando generaciones de un algoritmo genético sin reprocesar todo desde cero.
Proceso de iteración
Ajuste documentado, no forzado
Las primeras corridas, con MSE puro como única métrica, entregaban un top-3 con sobreimpulsos de más de 30% y oscilaciones sostenidas alrededor de la referencia, aunque el MSE reportado fuera bajo. Al introducir el error compuesto, el ranking cambió por completo: las ganancias con menor "error" ya no eran las de menor MSE, sino las que balanceaban las seis métricas. Un efecto secundario esperable de una búsqueda en malla: el óptimo tendió a quedar en el borde del rango explorado para Kp y Ki, señal de que, en un proyecto real, el rango debería ampliarse o acotarse según los límites físicos del actuador, no dejarse arbitrario. Comparado contra Ziegler-Nichols, el error compuesto redujo tanto el sobreimpulso como el tiempo de asentamiento; comparado contra los resultados de Algoritmo Genético y Evolución Diferencial reportados en la literatura, la malla logarítmica con error compuesto llegó a soluciones de calidad comparable sin necesidad de implementar operadores de cruce y mutación completos.
CierreLecciones importantes
El trabajo de mayor impacto ocurrió antes de tocar el algoritmo de búsqueda. Componer el error con seis criterios en vez de uno fue más determinante para el desempeño real del controlador que cambiar la malla logarítmica por un Algoritmo Genético o Evolución Diferencial. Una función objetivo mal planteada optimiza perfectamente el número equivocado.
Este proyecto se queda deliberadamente en sintonización offline con un modelo conocido de la planta. El siguiente paso natural, para una planta cuyos parámetros cambian con el tiempo, es un esquema de reajuste online de las ganancias. Un buen punto de partida documentado, aplicado a un sector industrial real, es este trabajo sobre modelos neuro-difusos para el ajuste en línea de controladores PID: A Neuro-Fuzzy Model for Online Optimal Tuning of PID Controllers in Industrial System Applications to the Mining Sector. Para una revisión más amplia de algoritmos metaheurísticos aplicados a PID, esta referencia de acceso abierto es un buen mapa del estado del arte: Metaheuristic algorithms for PID controller parameters tuning: review, approaches and open problems.
Termina ya tu proyecto
¿Tienes un proyecto similar y no sabes por dónde empezar? Yo te ayudo a diseñarlo.
El 92% de los profesionales de datos desbloquea sus proyectos al ver ejemplos completos resueltos.
Sin registro. Acceso inmediato