Curvo Studio

Control PID de posición de un servomotor: realimentación del encoder, términos P, I y D y ajuste

Un servomotor es un motor combinado con un sensor de posición y un controlador que compara la posición ordenada con la medida y acciona el motor para eliminar la diferencia. El controlador más habitual es el PID: el término proporcional reacciona al error presente, el integral elimina el error persistente y el derivativo amortigua el movimiento para limitar el sobreimpulso.

Qué significa control en lazo cerrado

En un sistema en lazo abierto, como un motor paso a paso, el controlador envía una orden y supone que se ha ejecutado. En un sistema en lazo cerrado, el controlador mide el resultado y lo corrige.

Un lazo servo tiene cuatro partes:

  • La orden (consigna): dónde se quiere que esté el eje, o a qué velocidad.
  • El sensor: un encoder, un resolver o un potenciómetro que mide la posición real del eje.
  • El controlador: calcula el error, e = consigna − posición medida, y genera una salida de control.
  • El accionamiento y el motor: convierten la salida del controlador en corriente, y la corriente en par.

Siempre que una carga perturba el eje, el error deja de ser cero, el controlador reacciona en sentido contrario y la posición se recupera. El precio es que un lazo mal ajustado puede oscilar o volverse inestable, algo que los sistemas en lazo abierto no pueden hacer.

Realimentación del encoder y resolución

Un encoder incremental produce pulsos al girar el eje, con un par de canales en cuadratura para conocer el sentido. Un encoder absoluto indica el ángulo real, incluso tras conectar la alimentación. La resolución se expresa en cuentas por vuelta, a menudo como un número de bits: un encoder de n bits tiene 2^n cuentas por vuelta.

Un encoder de 17 bits tiene 131 072 cuentas por vuelta, así que una cuenta son 360° / 131 072 ≈ 0,0027°. El lazo no puede posicionar mejor de lo que resuelve su sensor, y una resolución gruesa hace además ruidoso el término derivativo, porque la velocidad se calcula a partir de diferencias de posición.

Los términos P, I y D

La salida del controlador PID es

u = Kp × e + Ki × ∫e dt + Kd × de/dt

Cada término tiene una función distinta.

  • Proporcional (Kp): la salida es proporcional al error presente. Una Kp mayor hace la respuesta más rápida y el sistema más rígido frente a perturbaciones, pero un valor demasiado alto causa sobreimpulso y oscilación. Con P sola suele haber un error en régimen permanente cuando actúa un par de carga constante.
  • Integral (Ki): acumula el error con el tiempo, de modo que incluso un pequeño error remanente acaba empujando la salida lo bastante como para eliminarlo. Elimina el error en régimen permanente pero añade retardo de fase, lo que aumenta el sobreimpulso, y puede saturarse (windup) cuando el actuador satura, por lo que la integral normalmente se limita.
  • Derivativo (Kd): reacciona a la velocidad de cambio del error. Actúa como un amortiguador, reduciendo el sobreimpulso y las oscilaciones, pero amplifica el ruido del sensor y la cuantización, por lo que normalmente se filtra.

Efectos de aumentar cada ganancia por separado, a grandes rasgos: Kp acorta el tiempo de subida y aumenta el sobreimpulso; Ki elimina el error en régimen permanente y aumenta el sobreimpulso; Kd reduce el sobreimpulso y el tiempo de establecimiento, pero puede añadir ruido.

Intuición de ajuste e imagen numérica

Un procedimiento manual habitual es:

1. Ponga Ki y Kd a cero. Aumente Kp hasta que el eje reaccione rápido pero empiece a sobrepasar u oscilar, y luego retroceda hasta la mitad de ese valor. 2. Añada Kd hasta que el sobreimpulso sea aceptable y la respuesta al escalón esté bien amortiguada. 3. Añada una Ki pequeña para eliminar el error remanente en régimen permanente, y deténgase en cuanto lo consiga sin que la respuesta oscile. 4. Pruebe con la carga real, un escalón real y una perturbación real, y compruebe que se mantiene estable con margen cuando cambia la carga.

Piense en Kp como un resorte, en Kd como un amortiguador y en Ki como una mano lenta que sigue girando hasta que desaparece el error. En un lazo P puro, el error de seguimiento a velocidad constante es la velocidad dividida por la ganancia. Un lazo con una ganancia de posición Kv = 50 1/s que sigue 600 rpm (10 vueltas por segundo, o 3600°/s) se retrasa respecto a la orden 3600 / 50 = 72°. Es mucho, y por eso los accionamientos de altas prestaciones usan ganancias altas y prealimentación de velocidad.

Los accionamientos industriales suelen anidar tres lazos: un lazo exterior de posición (P), un lazo intermedio de velocidad (PI) y un lazo interior de corriente (PI) que fija directamente el par. Los lazos interiores son rápidos y los exteriores más lentos, lo que facilita ajustar cada uno.

Servo de aficionado y servo industrial

Un servo de aficionado (RC) es un pequeño motor de CC, una caja reductora, un potenciómetro y una placa de control en una sola carcasa. La orden es un pulso cada 20 ms cuya anchura, normalmente de 1 a 2 ms con 1,5 ms en el centro, fija el ángulo objetivo en un intervalo limitado, a menudo de unos 180°. El potenciómetro aporta la realimentación y la placa ejecuta una ley de control sencilla, normalmente proporcional. Es barato y tiene resolución gruesa y par limitado.

Un servo industrial es un motor independiente, normalmente de tipo PMSM o BLDC con encoder, más un servoaccionamiento con lazos de corriente, velocidad y posición. Se gobierna con pulsos de paso y dirección, una tensión analógica o un bus de campo. Ofrece un alto par de pico, a menudo tres veces el par nominal en aceleraciones breves, respuesta rápida y herramientas de ajuste en el accionamiento. El coste es mayor y requiere ajuste.

Cómo modela el simulador un servomotor

El simulador del servomotor de Curvo Studio no incluye un controlador PID ni un gráfico de respuesta al escalón. Modela el comportamiento en régimen permanente de un eje servo ajustado con un encoder, y usa una única ganancia de lazo de posición, Kv, para mostrar el efecto de la rigidez del lazo.

Se supone que el accionamiento tiene un lazo de corriente que hace la corriente proporcional al par. El motor sigue la velocidad ordenada hasta el techo de velocidad fijado por la tensión de alimentación. La carga eleva la corriente en proporción al par hasta que el accionamiento alcanza su pico, tomado como tres veces el par nominal. Más allá, el eje no puede mantener la orden y el simulador informa del límite de par, en lugar de frenarse en silencio.

El error de seguimiento es el retardo del lazo proporcional, 6 × rpm / Kv en grados, que desaparece cuando el eje se detiene. La respuesta de arranque es una aproximación de primer orden cuyo tiempo de subida depende de la ganancia del lazo y de la carga. La resolución del encoder se fija en bits y la placa de características muestra las cuentas por vuelta. El modelo no tiene acción integral, acción derivativa, sobreimpulso ni oscilación, de modo que esos efectos se describen aquí pero no se simulan.

Pruébelo en el simulador del servomotor

En el simulador del servomotor, pruebe estos experimentos.

  • Fije la Velocidad de consigna y lea la velocidad del rotor y el Error de seguimiento. Compruebe el error de seguimiento con 6 × rpm / Kv.
  • Suba la Ganancia del lazo de posición y observe cómo el error de seguimiento se reduce en proporción.
  • Dé a la Velocidad de consigna un signo negativo para invertir el sentido.
  • Aumente el control deslizante de Carga mecánica (hasta 350 %). Las lecturas de Par y Corriente de fase suben juntas, porque la corriente sigue al par. Lleve la carga por encima del 300 % del par nominal y el simulador informa del límite de par.
  • Baje la Tensión de alimentación por debajo del valor nominal y vea cómo cae el techo de velocidad, mientras el par sigue disponible.
  • Cambie la Resolución del encoder (de 8 a 24 bits) y lea la indicación de cuentas por vuelta.

Pruébalo en el simulador

Preguntas frecuentes

¿Qué es el control PID en un servomotor?
El control PID calcula la orden del motor a partir del error de posición con tres términos: proporcional al error, proporcional a su integral en el tiempo y proporcional a su velocidad de cambio. Juntos hacen que el eje alcance el objetivo con rapidez, con poco sobreimpulso y sin error persistente.
¿Qué hace el término P en un servo?
El término proporcional fija la rigidez. Una ganancia mayor da una respuesta más rápida y un error menor, pero también más sobreimpulso y, si es demasiado alta, oscilación. Con P sola, una carga constante suele dejar un error en régimen permanente.
¿Por qué añadir un término integral?
El término integral acumula cualquier error remanente y aumenta la salida hasta que desaparece, por lo que elimina el error en régimen permanente causado por cargas constantes o por rozamiento. Demasiada acción integral causa sobreimpulso y windup, por lo que se mantiene pequeña y limitada.
¿Qué hace el término derivativo?
El término derivativo responde a la rapidez con que cambia el error y actúa como un amortiguamiento. Reduce el sobreimpulso y las oscilaciones, pero amplifica el ruido del sensor, por lo que normalmente se combina con un filtro y se mantiene moderado.
¿Cuál es la diferencia entre un motor paso a paso y un servo?
Un motor paso a paso funciona en lazo abierto y mantiene la posición contando pasos, pero puede perder pasos con una sobrecarga sin saberlo. Un servo mide la posición con un encoder y corrige el error continuamente, lo que da mayor velocidad, reserva de par y certeza de la posición, a un coste mayor.
¿En qué se diferencian los servos de aficionado de los industriales?
Un servo de aficionado es una pequeña unidad integrada con un potenciómetro y un controlador sencillo, que se ordena con pulsos de 1 a 2 ms. Un servo industrial usa un motor independiente con un encoder de alta resolución y un accionamiento con lazos anidados de corriente, velocidad y posición, para mayor par y precisión.