Unexpected velocity component in aerospace block set 6dof euler equations

I'm using the 6DoF equations of motion block and seeing a growing velocity component that I don't expect to see.
Initial conditions are:
  • Initial position in inertial axes [Xe,Ye,Ze]: 0, 0, 0
  • Initial velocity in body axes [U,v,w]: 25, 0, 0
  • Initial Euler orientation [roll, pitch, yaw]: 0, 0, 0
  • Initial body rotation rates [p,q,r]: [ 0, 0, 1]
  • Initial mass: 1
  • Inertia: Identity matrix [eye(3)]
Inputs:
  • F_xyz: 0 0 0
  • M_xyz: 0 0 0
All outputs are as expected except for a growing velocity term in V_e along the east (y) axis. This velocity term is gradually increasing as I run the simulation. I expect V_e to be [25, 0, 0] but instead I see [25, 5e-7, 0]. This also causes an error in the position X_e along the east (y) axis.
My guess is that this error is creeping in to the blockset equations from floating point error during the calculation of body acceleration (A_b) and then transformation and removal of the Coriolis effect to calculate NED velocity.
As a side note, Coriolis term in the body acceleration is half what I expect it to be. Any thoughts on either of this issues would be appreciated!

Answers (1)

First 2 things I would try out:
  1. Does that initial body rotation rate element of 1 affect the results at all? That is, if you changed that to [0, 0, 0], does the effect go away?
  2. If it is more of a numerical error, you could try going to the Solver settings and reducing the time step, increasing the tolerances, etc. Maybe this could help.
- Sebastian

1 Comment

The initial body rotation rate and velocity both affect the results. If either of these increase, the velocity error will increase as well. If I set them to zero, the effect goes away.
I will test adjusting the Solver settings and post back.

Sign in to comment.

Asked:

on 26 Mar 2015

Commented:

on 27 Mar 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!