Trayectoria

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

Control on/off y proporcional

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

01Gancho

Tu robot ve la línea a la derecha (p = +0.4). ¿Cuánto más rápido debe ir la rueda izquierda que la derecha para volver a centrarla?

02Concepto

El arreglo de sensores te da la posición de la línea p. Si la quieres centrada, el error del controlador es directamente e = p: positivo con la línea a la derecha, negativo a la izquierda.

El controlador convierte el error en una acción de control u, en rad/s, y la reparte entre las ruedas: ω_L = ω_base + u y ω_R = ω_base − u. Las ruedas mueven al robot, el robot mueve el arreglo y el arreglo mide un nuevo error. Ese circuito es un lazo cerrado.

El controlador más simple es el on/off: gira siempre con la misma corrección u_0, hacia el lado que marca el signo del error. Nunca manda u = 0, así que incluso con la línea centrada el robot gira hacia un lado, la cruza y gira hacia el otro. La oscilación es permanente.

El control proporcional corrige en proporción al error: u = K_p·e. Error pequeño, corrección pequeña. Con los datos del gancho y K_p = 8 rad/s, u = 8·0.4 = 3.2 rad/s: la rueda izquierda va 2u = 6.4 rad/s más rápido que la derecha.

La ganancia K_p decide el comportamiento. Con K_p bajo, el robot corrige despacio y en una curva el error crece hasta que la línea sale del arreglo. Con K_p alto, oscila: el motor no cambia de velocidad al instante, la corrección llega tarde y el robot cruza la línea antes de que termine.

K_p tampoco puede crecer sin límite. La rueda rápida pide ω_base + K_p·|e|, y ninguna rueda gira más rápido que ω_max. Para no saturar con el error más grande, ω_base + K_p·|e|_max ≤ ω_max.

Lo que corrige al robot es su velocidad angular. Según la cinemática directa, ω = (ω_R − ω_L)·r/L = −2·u·r/L. Con u positiva, ω es negativa: el robot gira a la derecha, hacia la línea.

03Fórmulas

  • e · error del controlador · —
  • p · posición de la línea bajo el arreglo, en [−1, 1] · —
  • u · acción de control · rad/s
  • u_0 · amplitud del control on/off · rad/s
  • e · error del controlador · —
  • u · acción de control · rad/s
  • K_p · ganancia proporcional · rad/s
  • e · error del controlador · —
  • ω_L, ω_R · velocidad angular de rueda izquierda y derecha · rad/s
  • ω_base · velocidad base de las ruedas · rad/s
  • u · acción de control · rad/s
  • ω · velocidad angular del robot · rad/s
  • ω_L, ω_R · velocidad angular de rueda izquierda y derecha · rad/s
  • r · radio de rueda · m
  • L · distancia entre ruedas · m
  • u · acción de control · rad/s
  • K_p · ganancia proporcional · rad/s
  • ω_max · velocidad angular máxima de la rueda · rad/s
  • ω_base · velocidad base de las ruedas · rad/s
  • |e|_max · error máximo considerado · —

04Explora

El robot de referencia sigue la pista Óvalo con control proporcional, K_p = 8 y velocidad base ω_base = 15 rad/s. La escena muestra la pista, el robot con sus sensores y la traza que deja; las gráficas muestran el error e y la velocidad angular ω del robot en el tiempo.

CambiaK_p de 8 a 2Observala primera curva en la escena

¿Por qué el robot se sale?

Ver la respuesta

En la curva el robot necesita una ω que, con u = K_p·e, solo aparece con un error grande. Con K_p = 2 el error crece hasta que la línea sale del arreglo, a t ≈ 1.59 s. Con K_p = 8 el mismo giro pide un error cuatro veces menor, y el robot da 2 vueltas en 15 s (≈ 6.04 s y ≈ 5.85 s) sin perderla.

CambiaK_p a 20Observala gráfica del error en las rectas

¿Por qué oscila de lado a lado?

Ver la respuesta

El motor tarda en cambiar de velocidad, así que la corrección llega tarde y el robot cruza la línea antes de que termine. En los primeros 5 s el error cambia de signo 10 veces, frente a 4 con K_p = 8. En la 2.ª vuelta la oscilación saca al robot de la línea, a t ≈ 7.9 s.

Cambiael controlador a On/off y «Corrección» u_0 de 4 a 8 rad/sObservala traza en la escena y la gráfica del error

¿Por qué hay zigzag permanente aunque la recta sea perfecta?

Ver la respuesta

On/off siempre manda ±u_0 y nunca u = 0, así que el robot cruza la línea una y otra vez: 25 cambios de signo en 15 s, un RMS del error de 0.32 (RMS: el error típico, la raíz de la media de los cuadrados) y una vuelta de ≈ 8.86 s sin perder la línea. Con u_0 = 4 rad/s la conmutación es tan rápida que el motor la suaviza y el error apenas se ve (RMS 0.003). Con u_0 ≥ 8.5 rad/s el zigzag crece hasta perder la línea.

Al cambiar de controlador, el widget vuelve a los valores por defecto del nuevo (ω_base = 10 rad/s, u_0 = 4 rad/s). Por eso on/off va al final.

05Al robot

Vuelve al gancho con tu robot. Con K_p = 8 y e = 0.4, la acción de control es u = 3.2 rad/s, y con ω_base = 15 rad/s los comandos de rueda son:

Estos comandos no dependen de tu robot. La velocidad angular que producen sí, porque depende del radio de rueda r y de la distancia entre ruedas L de tu perfil de «Mi robot»:

Con el robot de referencia, ω = −1.365 rad/s: gira a la derecha, hacia la línea.

La ganancia máxima sin saturar depende de ω_max, que sale de las rpm del motor y de la reducción de tu perfil. Con ω_base = 15 rad/s y |e|_max = 1:

Si tu perfil no es un robot móvil, los dos cálculos usan el robot de referencia. Si su ω_max no supera ω_base = 15 rad/s, ninguna K_p positiva evita saturar y el cálculo de K_p máxima también usa el robot de referencia.

Con el robot de referencia, K_p ≤ 5.94. El K_p = 8 de Explora la supera: con la línea en el borde del arreglo, la rueda rápida pediría 15 + 8 = 23 rad/s, más de los 20.94 rad/s que da. La rueda solo satura cuando |e| supera (20.94 − 15)/8 = 0.74.

06Verifica

E1Tu robot sigue la línea con control proporcional: K_p = 3.000 rad/s, error e = −0.9200 y velocidad base ω_base = 13.50 rad/s. ¿Cuánto valen la acción de control u y las velocidades de rueda ω_L y ω_R, en rad/s?obligatorio

1rad/s2rad/s3rad/s

E2Tu controlador manda ω_L = 13.78 rad/s a la rueda izquierda y ω_R = 1.220 rad/s a la derecha. Con r = 0.032 m y L = 0.15 m, ¿cuál es la velocidad angular ω del robot, en rad/s?obligatorio

rad/s

E3Tu robot tiene ω_max = 20.94 rad/s y sigue la línea con ω_base = 7.000 rad/s. Con |e|_max = 1, ¿cuál es la K_p máxima, en rad/s, para que ninguna rueda sature?obligatorio

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