Eigenvector slew


In aerospace engineering, especially those areas dealing with spacecraft, the eigenvector slew is a method to calculate a steering correction by rotating the spacecraft around one fixed axis, or a gimbal. This corresponds in general to the fastest and most efficient way to reach the desired target orientation as there is only one acceleration phase and one braking phase for the angular rate. If this fixed axis is not a principal axis a time varying torque must be applied to force the spacecraft to rotate as desired, though. Also the gyroscopic effect of momentum wheels must be compensated for.
That such a rotation exists corresponds precisely to a main result of the mathematical theory of rotation operators, the eigenvector of the rotation operator corresponding to the desired re-orientation is this axis.
Given the current orientation of the craft, and the desired orientation of the craft in cartesian coordinates, the required axis of rotation and corresponding rotation angle to achieve the new orientation is determined by computing the eigenvector of the rotation operator.

Problem

Let
be a body fixed reference system for a 3 axis stabilized spacecraft. The initial attitude
is given by
One wants to find an axis relative the spacecraft body
and a rotation angle such that after the rotation with the angle one has that
where
are the new target directions.
In vector form this means that

Solution

In terms of linear algebra this means that one wants to find an eigenvector with the eigenvalue = 1 for the linear mapping defined by
which relative to the
coordinate system has the matrix
Because this is the matrix of the rotation operator relative the base vector system the eigenvalue can be determined with the algorithm described in "Rotation operator ".
With the notations used here this is:
The rotation angle is
where "" is the polar argument of the vector corresponding to the function ATAN2 available in for example the programming language FORTRAN.
The resulting will be in the interval.
If then and the uniquely defined rotation vector is:
Note that
is the trace of the matrix defined by the orthogonal linear mapping and that the components of the "eigenvector" are fixed and constant during the rotation, i.e.
where are moving with time during the slew.