Solving an ordinary differential equation including a rotation matrix

4 views (last 30 days)
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!

Accepted Answer

Omar Alahmad
Omar Alahmad on 3 Sep 2020
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

More Answers (1)

Bruno Luong
Bruno Luong on 16 Aug 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 Comment
Omar Alahmad
Omar Alahmad on 3 Sep 2020
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

Sign in to comment.

Categories

Find more on Numerical Integration and Differential Equations in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!