# LQR control and system dynamics linearization

I recently finished a project that simulated the dynamics and control of a 6DOF quadcopter model using a state-space LQR control approach, but I had a few questions that I wanted to ask that might help me develop the model further. From the literature, if we have a general nonlinear dynamical model of the form,

$$\dot{x}(t) = f(x(t),u(t))$$

then the "standard" approach to control engineering is to linearize the nonlinear system dynamics into the form,

$$\dot{x}(t) = Ax(t) + Bu(t)$$

where, $$A = \frac{\partial f}{\partial x}, \space B = \frac{\partial f}{\partial u}$$ are constant matrices that have been evaluated at an equilibrium state $x = x_{eq}$ and $u=u_{eq}$ (for a quadrotor this equilibrium state is a hover with pitch, roll and yaw equal to zero and control inputs being enough to counteract gravity). Once this is done, we can then use our $A$ and $B$ matrices to find the "optimal" LQR gain matrix $K$ by solving the Riccati equation (or equivalently using MATLAB's lqr function), and use this gain in a control law of the form $$u(t) = -K(x(t)-x_d(t))$$ to find our control inputs $u(t)$, that allow us to track a desired state trajectory $x_d(t)$ by applying $u(t)$ to our full nonlinear system dynamics $\dot{x}(t)=f(x(t),u(t))$.

This approach worked pretty well for the quadrotor simulation, but I was wondering why we're required to linearize our system dynamics about an equilibrium point. Wouldn't it also be possible to have a time-varying state-transition matrix $A(t)$ and time-varying control matrix $B(t)$, that would be computed using the same linearization process above, except that instead of linearizing about the hover equilibrium state we would linearize about our current state $x(t)$, which would then allow us to re-compute the LQR gain matrix at each time-step? This would then give us a time-varying gain matrix $K$, and would presumably give us better tracking capabilities since our next state $x(t+1)$ would be close to our previously linearized state. Any advice would be much appreciated, since I'm struggling to find out why linearization always occurs around static equlibrium points, and not about current states.

• I assume you meant find $K$ using lqr, or first discretize the linearized system. Also in your equation for $u(t)$ shouldn't there also be a $u_d(t)$? – fibonatic Jul 22 '18 at 12:23
• Thanks for the catch fibonatic. I transformed the linearized $A$ and $B$ matrices into discrete form using c2dm and Tustin's approximation, and then used dlqr. With regards to $u_{d}(t)$, I don't have any feedforward control so $u_{d}(t) =0$ – JeffR1993 Jul 22 '18 at 18:36