01Gancho
Sigues la línea, pero en las rectas oscilas y en las curvas te vas hacia afuera. ¿Qué término del PID arregla cada cosa?
02Concepto
Tu seguidor mide el error e cada Δt_c segundos. En cada paso k, el controlador PID calcula la acción de control u_k como la suma de tres términos, P, I y D, cada uno con su ganancia.
El término P, K_p·e_k, mira el presente: corrige en proporción al error de ahora. Con solo P, tu robot sigue la línea, pero oscila en las rectas y en las curvas se queda desplazado hacia afuera.
El término I, K_i·Σe_j·Δt_c, mira el pasado: acumula el error mientras dura. En una curva el error tiene un sesgo constante hacia afuera. Su suma crece y el término I empuja hacia adentro hasta reducirlo. Si el error dura mucho, la suma crece sin freno y luego tarda en descargarse. Por eso se limita, |Σe_j·Δt_c| ≤ I_max. Ese límite es el anti-windup.
El término D, K_d·(e_k − e_{k−1})/Δt_c, mira la tendencia: se opone a que el error cambie rápido. El motor no alcanza al instante la velocidad que le pides. Cuando por fin responde, el robot ya cruzó la línea, y así nace la oscilación. D frena el giro antes de que eso ocurra. Su contra es el ruido: una lectura que salta de un paso al siguiente da una diferencia grande, y D la amplifica.
Para sintonizar a mano, sube K_p hasta que el robot oscile. Añade K_d hasta que la oscilación se amortigüe. Añade al final un K_i pequeño que quite el sesgo de las curvas. La gráfica del PID muestra los tres términos por separado, así ves cuál actúa en cada tramo.
Queda elegir ω_base. En una curva de radio R, la rueda exterior va más rápido que el centro del robot, v_ext = v·(1 + L/2R). Si v_ext pasa de v_max, esa rueda satura y el robot no gira tan cerrado como pide el controlador. La curva más cerrada de la pista fija el límite de ω_base.
03Fórmulas
u_k· acción de control en el paso k · rad/sK_p· ganancia proporcional · rad/sK_i· ganancia integral · rad/s²K_d· ganancia derivativa · rade_k· error del controlador en el paso k · —e_{k−1}· error del controlador en el paso anterior · —e_j· error del controlador en el paso j · —Δt_c· período del lazo de control · s
e_j· error del controlador en el paso j · —Δt_c· período del lazo de control · sI_max· límite de la integral del error (anti-windup) · s
v_ext· velocidad de la rueda exterior en curva · m/sv· velocidad lineal del robot · m/sL· distancia entre ruedas · mR· radio de giro · mv_max· velocidad lineal máxima del robot · m/sω_base· velocidad base de las ruedas · rad/sr· radio de rueda · m
04Explora
Con el robot de referencia, el robot recorre la pista Curvas cerradas, con curvas de radio 0.15 m, con K_p = 20, K_i = 0, K_d = 0 y ω_base = 13 rad/s. La gráfica de error muestra cuánto se aparta de la línea y la del PID muestra los tres términos por separado, en cada instante.
CambiaK_d de 0 a 0.8Observala curva de error en las rectas: cuánto oscila y el tamaño de sus picos
¿Por qué se amortigua la oscilación?
Ver la respuesta
La curva de error oscila menos: los picos se achican y quedan solo los cambios de signo de las esquinas. El término D se opone a que el error cambie y frena el giro antes de que el robot cruce la línea, lo que compensa la respuesta lenta del motor. Medido en 12 s de simulación, los cambios de signo del error bajan de 38 a 22 y el RMS del error, de 0.334 a 0.283.
CambiaK_i de 0 a 2 y luego a 10, con K_d = 0.8Observala curva del término I en la gráfica del PID y cuánto se aleja de cero la curva de error en las curvas
¿Por qué se reduce el sesgo hacia afuera?
Ver la respuesta
El término I crece hasta un valor negativo estable en las curvas, y la curva de error se acerca más a cero según sube K_i. I acumula el sesgo constante hacia afuera que deja P y empuja hacia adentro hasta reducirlo. Medido en el simulador, el error medio pasa de −0.176 a −0.111 y a −0.036; en las curvas, de −0.286 a −0.199 y a −0.101.
Cambia«Límite integral» de 1 a 0.1, con K_i = 10Observala curva del término I en la gráfica del PID y la curva de error en las curvas
¿Por qué vuelve el sesgo?
Ver la respuesta
El término I queda plano en −1 rad/s y la curva de error vuelve a alejarse de cero en las curvas. El anti-windup mantiene |Σe_j·Δt_c| ≤ I_max, así que I no pasa de K_i·I_max = 10·0.1 = 1 rad/s, y eso no basta para compensar la curva. Medido en el simulador, el error medio vuelve de −0.036 a −0.138, y en ninguno de estos ajustes el robot pierde la línea.
05Al robot
La curva más cerrada de la pista Curvas cerradas tiene R = 0.15 m. En ella, la rueda exterior de tu robot va más rápido que su centro, y no puede pasar de v_max. Con la v_max y la distancia entre ruedas L de tu perfil, la velocidad máxima del robot en esa curva es:
La ω_base máxima es la que lleva la rueda exterior justo a v_max en esa curva:
Si tu perfil de «Mi robot» no es un robot móvil, el cálculo usa el robot de referencia.
Con el robot de referencia, v ≤ 0.670/(1 + 0.15/0.3) = 0.447 m/s y ω_base ≤ 13.96 rad/s. El Explora usa ω_base = 13 rad/s, por debajo de ese límite. Con una ω_base mayor, la rueda exterior satura en cada esquina: el controlador pide un giro que el motor no puede dar, y ninguna ganancia lo arregla. Para ir más rápido en esa pista necesitas más v_max o menos L, no más K_p.
06Verifica
E1Un controlador PID tiene K_p = 16.90 rad/s, K_i = 8.300 rad/s², K_d = 0.02000 rad y período Δt_c = 0.005000 s. En el paso k el error es e_k = 0.5400, en el paso anterior e_{k−1} = 0.6800, y la suma Σe_j·Δt_c vale −0.1300 s. ¿Cuál es la acción de control u_k, en rad/s?obligatorio
E2Tu seguidor tiene K_i = 8.500 rad/s² y mantiene un error constante e = 0.1900 durante t = 2.100 s. La suma del error parte de 0 y no llega a I_max = 1 s. ¿Cuánto vale el término I, en rad/s?obligatorio
E3Tu seguidor tiene K_d = 0.3000 rad. El error pasa de e_{k−1} = −0.6900 a e_k = 0.3900 en un paso Δt_c = 0.02000 s. ¿Cuánto vale el término D, en rad/s?obligatorio
E4Tu robot tiene v_max = 0.670 m/s, r = 0.032 m y L = 0.15 m. Entra en una curva de radio R = 0.4500 m. ¿Cuál es la ω_base máxima con la que la rueda exterior no supera v_max, en rad/s?
07Profundiza
- Åström, K. J. y Murray, R. M. Feedback Systems. An Introduction for Scientists and Engineers, 2.ª ed. Princeton University Press, 2021. ISBN 978-0-691-19398-4. Cap. 11, "PID Control".