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.
lqr
, or first discretize the linearized system. Also in your equation for $u(t)$ shouldn't there also be a $u_d(t)$? $\endgroup$c2dm
and Tustin's approximation, and then useddlqr
. With regards to $u_{d}(t)$, I don't have any feedforward control so $u_{d}(t) =0$ $\endgroup$