Improving system identification results?

36 Views Asked by At

I'm performing system identification of the lateral closed-loop dynamics of a quadrotor. My model receives a setpoint and should return position and acceleration. I've proposed a second order model of the type, see equations, and solved it with MATLAB's greyest():

$\begin{bmatrix} v_y \\ a_y \end{bmatrix} = \begin{bmatrix}0&1 \\-\omega^2&-2\xi\omega \end{bmatrix} \begin{bmatrix}y \\ v_y \end{bmatrix} + \begin{bmatrix} 0 \\ \omega^2 \end{bmatrix} y_0$

$\begin{bmatrix} y \\ a_y \end{bmatrix} = \begin{bmatrix}1&0 \\-\omega^2&-2\xi\omega \end{bmatrix} \begin{bmatrix}y \\ v_y \end{bmatrix} + \begin{bmatrix} 0 \\ \omega^2 \end{bmatrix} y_0$

The model performs very well for the position, 97% on a cross-validation dataset, but the performance is very low for acceleration 43%.

Note the acceleration dataset comes out from an accelerometer so it's noisy, I've already tried low pass filtering the noise to improve performance with no positive results.

Any ideas on how to improve this?

Thanks!

1

There are 1 best solutions below

0
On

What is $\xi$? Maybe the following (related to dead-reckoning) is way different than what you are actually asking? but...

  • Results tend to be greatly improved if your sensor-fusion system/algorithm includes magnetometer data: "sensor fusion using magnetometers can reduce the average error in position obtained by the system after 60 seconds from over 150 m to around 5 m." (Woodman 2007)
  • "errors in orientation propagating through the algorithm are by far the main source of error in the system." (Woodman 2007)
  • Kalman filtering tends to be quite popular: "There are many techniques for performing sensor fusion, the most popular of which are Kalman and particle filters." (Woodman 2007 page 33)

References