Trayectoria

De la física al robot móvil · Tema 6.3

Control PID

Tiempo estimado
40 min
Ruta: 0 de 27 temas
Seccionesver ▾ocultar ▴

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/s
  • K_p · ganancia proporcional · rad/s
  • K_i · ganancia integral · rad/s²
  • K_d · ganancia derivativa · rad
  • e_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 · s
  • I_max · límite de la integral del error (anti-windup) · s
  • v_ext · velocidad de la rueda exterior en curva · m/s
  • v · velocidad lineal del robot · m/s
  • L · distancia entre ruedas · m
  • R · radio de giro · m
  • v_max · velocidad lineal máxima del robot · m/s
  • ω_base · velocidad base de las ruedas · rad/s
  • r · 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

rad/s

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

rad/s

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

rad/s

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?

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".

¿Viste un error en este tema?Escríbenos por correo