Solving an ordinary differential equation including a rotation matrix

I would like to solve the following first order ODEs in MATLAB:
R_dot = R*u_hat;
P_dot = R*v;
m_dot = m*u_hat + n*v + l
n_dot = n*u_hat + f;
With states:
R, P, m, n
I am familiar with Matlab's ode45 solver and have used it before, but on vectors only.
However, I was wondering if this could be applied on rotation matrices such as R.
Keeping in mind that R must remain orthonormal and:
inv(R) = R'
Thanks!

 Réponse acceptée

I found the solution to be in chapter 6 of the Technical Report of Oliver J. Woodman, "An introduction to inertial navigation".
I simply implemented my own ODE solver for that.
Regards,
Omar

Plus de réponses (1)

Bruno Luong
Bruno Luong le 16 Août 2020
Might be you should rewrite ODE with the rotation not in term of 3x3 matrix but euler-rotation vector 3x1, then you should not worry much about constraint violation due to integration.

1 commentaire

Hi Bruno Luong,
I found the solution to be in chapter 6 of the Technical Report of Oliver J. Woodman, "An introduction to inertial navigation".
I simply implemented my own ODE solver for that.
Regards,
Omar

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by