Skip to content

LQR Hover ​

Problem Statement ​

LQR hover control optimizes stabilization around a hover equilibrium by balancing state error and control effort. It gives a principled gain matrix and clean performance trade-offs through weighting matrices.

Model and Formulation ​

Linearized dynamics around hover:

x˙=Ax+Bu

Objective:

J=∫0∞(x⊤Qx+u⊤Ru)dt

Optimal policy:

u=−Kx,K=R−1B⊤P

where P solves the continuous-time algebraic Riccati equation.

Algorithm Procedure ​

  1. Linearize UAV dynamics around trim hover.
  2. Choose Q and R according to tracking vs effort priorities.
  3. Solve Riccati equation for P, then compute feedback gain K.
  4. Apply full-state feedback in the hover envelope.

Tuning Guidance ​

  • Increase position-state weights in Q for tighter hover.
  • Increase R to smooth actuation and reduce aggressive commands.
  • Re-linearize if operating point drifts far from hover assumptions.

Failure Modes and Diagnostics ​

  • Performance degrades in strongly nonlinear/aggressive regimes.
  • State-estimation latency can destabilize high-gain solutions.
  • Poorly scaled units in Q/R create unintuitive controller behavior.

Implementation and Execution ​

bash
python -m flybots.simulations.path_tracking.lqr_hover

Evidence ​

LQR Hover

References ​

Released under the MIT License.