Model Based State Estimator

State and input vectors

$x = \left[\begin{array}{c} \phi_p\\ \phi_r\\ \omega_p\\ \omega_r \\ \omega_y \\ v_z \\ b_p \\ b_r \\ b_y \end{array}\right] \begin{array}{l}\rm{pitch~angle}\\\rm{roll~angle}\\\rm{pitch~velocity}\\\rm{roll~velocity}\\\rm{yaw~velocity}\\\rm{translation~velocity~in~z~direction}\\\rm{bias~of~pitch~gyro}\\\rm{bias~of~roll~gyro}\\\rm{bias~of~yaw~gyro}\end{array}\quad\,$ $u = \left[\begin{array}{c}F_f\\F_b\\F_r\\F_l\end{array}\right] \begin{array}{l}\rm{front~thrust}\\\rm{rear~thrust}\\\rm{right~thrust}\\\rm{left~thrust}\end{array}$

Parameters

$\begin{array}{ll}\ell&\rm{distance~of~motor~axis~to~center}\\\Phi_p&\rm{moment~of~inertia~pitch~axis}\\\Phi_r&\rm{moment~of~inertia~roll~axis}\\\Phi_y&\rm{moment~of~inertia~yaw~axis}\\\gamma&\rm{ratio~thrust~to~drag~moment~} M_i = \gamma F_i\end{array}$

Conservation of linear and angular momentum

$\begin{array}{ccl}\Phi_p\dot{\omega_p} &=& (F_b - F_f) \ell \\\Phi_r\dot{\omega_r} &=& (F_l - F_r) \ell \\\Phi_y\dot{\omega_y} &=& (F_f + F_b - F_r - F_l) \gamma \\ m \dot{v_z} &=& F_f + F_b + F_r + F_l \end{array}$

State space equation

$\underbrace{\frac{\partial}{\partial t} \left[\begin{array}{c} \phi_p\\ \phi_r\\ \omega_p\\ \omega_r \\ \omega_y \\ v_z \\ b_p \\ b_r \\ b_y \end{array}\right]}_{\dot{x}} = \underbrace{\left[\begin{array}{ccccccccc} 0&0&1&0&0&0&0&0&0 \\ 0&0&0&1&0&0&0&0&0 \\ 0&0&0&0&0&0&0&0&0 \\ 0&0&0&0&0&0&0&0&0 \\ 0&0&0&0&0&0&0&0&0 \\ 0&0&0&0&0&0&0&0&0 \\ 0&0&0&0&0&0&0&0&0 \\ 0&0&0&0&0&0&0&0&0 \\ 0&0&0&0&0&0&0&0&0 \end{array}\right]}_{A} \underbrace{\left[\begin{array}{c} \phi_p\\ \phi_r\\ \omega_p\\ \omega_r \\ \omega_y \\ v_z \\ b_p \\ b_r \\ b_y \end{array}\right]}_{x} + \underbrace{\left[\begin{array}{cccc} 0&0&0&0 \\ 0&0&0&0 \\ -\frac{\ell}{\Phi_p}&\frac{\ell}{\Phi_p}&0&0 \\ 0&0&-\frac{\ell}{\Phi_r}&\frac{\ell}{\Phi_r} \\ \frac{\gamma}{\Phi_y}&\frac{\gamma}{\Phi_y}&-\frac{\gamma}{\Phi_y}&-\frac{\gamma}{\Phi_y} \\ \frac{1}{m}&\frac{1}{m}&\frac{1}{m}&\frac{1}{m} \\ 0&0&0&0 \\ 0&0&0&0 \\ 0&0&0&0 \end{array}\right]}_{B} \underbrace{\left[\begin{array}{c}F_f\\F_b\\F_r\\F_l\end{array}\right]}_{u} $

$\underbrace{\left[\begin{array}{c} g_p\\g_r\\g_y\\\hat{b}\\ \hat{\phi}_p\\ \hat{\phi}_r\\\end{array}\right]}_{y} = \underbrace{\left[ \begin{array}{ccccccccc} 0&0&1&0&0&0&1&0&0 \\ 0&0&0&1&0&0&0&1&0 \\ 0&0&0&0&1&0&0&0&1 \\ 0&0&0&0&0&0&1&1&1 \\ 1&0&0&0&0&0&0&0&0 \\ 0&1&0&0&0&0&0&0&0 \end{array}\right]}_{C}  \underbrace{\left[\begin{array}{c} \phi_p\\ \phi_r\\ \omega_p\\ \omega_r \\ \omega_y \\ v_z \\ b_p \\ b_r \\ b_y \end{array}\right]}_{x}$

QCopter/EstimatorModel (last edited 2009-01-23 17:45:34 by StefanEngelke)