Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

Linear-Quadratic Regulator

  • También llamado: LQR, linear quadratic regulator
  • Categoría: Control › Feedback control
  • Etiquetas: optimal-control, feedback-control, state-space, riccati-equation, stabilization

Un controlador óptimo por realimentación para sistemas lineales con costes cuadráticos de estado y de entrada, cuya solución es una matriz de ganancia obtenida de una ecuación de Riccati.

Definición

Un regulador lineal cuadrático (LQR) (linear-quadratic regulator) encuentra la ley de realimentación que minimiza un coste cuadrático para un sistema con dinámica lineal. En tiempo discreto, la dinámica es x_{k+1} = A x_k + B u_k y el coste es la suma a lo largo del tiempo de xᵀQx + uᵀRu, donde Q pondera el error de estado y R pondera el esfuerzo de control. El control óptimo es una realimentación lineal del estado, u = −Kx, y la ganancia K se obtiene de la ecuación de Riccati: una recursión hacia atrás para un horizonte finito, o la ecuación algebraica de Riccati para un horizonte infinito. Kalman formuló el problema en esta forma en 1960, y el LQR sigue siendo uno de los fundamentos del control moderno.

En la práctica, los ingenieros eligen Q y R en lugar de colocar polos directamente. Entradas mayores en Q hacen que el controlador luche con más fuerza contra los errores en esos estados; un R mayor hace que use menos esfuerzo de los actuadores. La regla de Bryson, que fija cada peso diagonal en uno dividido por el cuadrado del mayor valor aceptable, es un punto de partida habitual. Con realimentación del estado completo, el LQR en tiempo continuo tiene márgenes de robustez garantizados, incluidos al menos 60 grados de margen de fase en cada canal de entrada. Estas garantías no se mantienen cuando el estado lo estima un observador; combinar el LQR con un filtro de Kalman da el control LQG, que es óptimo para ruido gaussiano pero no tiene márgenes garantizados.

La mayoría de los robots son no lineales, así que el LQR se aplica a una linealización. Linealizar alrededor de un equilibrio, como un péndulo invertido en posición vertical o un cuadrirrotor en vuelo estacionario, da un controlador que funciona dentro de una región de atracción alrededor de ese punto. Linealizar a lo largo de una trayectoria da el LQR variante en el tiempo, y repetir el proceso alrededor de trayectorias mejoradas lleva al LQR iterativo y a la programación dinámica diferencial. El LQR no maneja restricciones como los límites de par; el control predictivo basado en modelo las añade resolviendo en línea una optimización con restricciones, y un MPC lineal sin restricciones con coste cuadrático y un horizonte lo bastante largo reproduce la ganancia del LQR. Muchos diseños de MPC también usan el coste por venir (cost-to-go) del LQR como coste terminal.

Por qué importa

El LQR ofrece una forma fundamentada de diseñar controladores por realimentación con varias entradas a partir de un modelo y dos matrices de pesos, con garantías de estabilidad para el sistema linealizado. Es el punto de partida del seguimiento de trayectorias, el control del equilibrio y gran parte del control óptimo y predictivo.

Aplicaciones clave

  • Control del equilibrio de péndulos invertidos, robots autoequilibrados sobre ruedas y humanoides
  • Estabilización del vuelo estacionario y de la actitud de multirrotores
  • Seguimiento de trayectorias con LQR variante en el tiempo
  • Coste terminal y controlador local en el control predictivo basado en modelo
  • Controladores estabilizadores para la optimización iterativa de trayectorias

En la práctica

Un equipo que construye un robot autoequilibrado de dos ruedas lo modela como un carro con un péndulo invertido y linealiza la dinámica alrededor de la posición vertical, lo que da las matrices A y B para el cabeceo, la velocidad de cabeceo, la posición de las ruedas y la velocidad de las ruedas. Ajusta Q para penalizar mucho el cabeceo y poco la posición de las ruedas, elige R a partir del límite de par de los motores con la regla de Bryson y calcula K con un solucionador de Riccati en tiempo discreto a la frecuencia de control de 200 Hz. En las pruebas, el robot mantiene el equilibrio, pero los motores se saturan tras un empujón fuerte, así que aumenta R hasta que los comandos se mantienen dentro de los límites para las perturbaciones esperadas. Un estimador de estado fusiona los datos de la IMU y de los encoders para proporcionar el estado completo que necesita el controlador.

Ideas erróneas comunes

  • El LQR maneja los límites de los actuadores — ignora las restricciones, así que la saturación debe comprobarse por separado o gestionarse con MPC
  • El LQR solo funciona con robots lineales — se aplica habitualmente a sistemas no lineales mediante linealización, válida cerca del punto de operación o de la trayectoria
  • El LQR siempre es robusto — sus márgenes garantizados requieren realimentación del estado completo; con un observador, como en el LQG, hay que comprobar la robustez
  • Q y R vienen de la física — son decisiones de diseño que equilibran el seguimiento frente al esfuerzo y se ajustan a la tarea

Quién debería saberlo

  • Ingenieros de control que diseñan controladores por realimentación
  • Desarrolladores de robots con patas, autoequilibrados y aéreos
  • Investigadores de optimización de trayectorias y MPC
  • Estudiantes de robótica que aprenden control óptimo

Tecnologías relacionadas

  • Solucionadores de la ecuación de Riccati (Riccati Equation Solvers)
  • Filtro de Kalman (Kalman Filter)
  • Control LQG (LQG Control)
  • LQR iterativo (Iterative LQR)
  • python-control y MATLAB Control System Toolbox

Términos relacionados

  • Model Predictive Control
  • Differential dynamic programming
  • Hamilton-Jacobi-Bellman Equation (HJB)
  • Region of attraction
  • PID Controller
  • Double Integrator

Vídeos

  • What Is Linear Quadratic Regulator (LQR) Optimal Control? | State Space, Part 4: MATLAB
  • Linear Quadratic Regulator (LQR) Control for the Inverted Pendulum on a Cart [Control Bootcamp]: Steve Brunton

Este sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.