Table of Contents

Class Kinematics

Namespace
NominalSystems.Maths
Assembly
NominalSystems.Maths.dll

[Nominal] This class defines functions for mathematical calculations between different rotation types. In this class, there are a number of different types of rotations:

  • DCM (Direction Cosine Matrix, 3x3 matricies)
  • Quat (Quaternions, 4-part vectors)
  • MRP (Modified Rodriguez Parameters, 3-part vectors)
  • Euler (with all 12 combinations in radians, 3-part vectors)
  • PRV (Principle Rotation Vector, 3-part vectors)
  • Gibbs (3-part vectors)

Each of the types have appropriate conversions between each other and have been unit tested. They are in the form of [A]2B, where [A] is the conversion from, [B] is the conversion 2 and (C) is an optional number ordering if a Euler angle is involved, describing the order that the Euler angle is transformed.


public static class Kinematics
Inheritance
Kinematics

Methods

AddEuler(Vector3, Vector3)

Computes the overall (X-Y-Z) Euler angle vector corresponding to two successive (X-Y-Z) rotations E1 and E2.
Only works for Euler angles of: (1-2-1), (1-3-1), (2-1-2), (2-3-2), (3-1-3), (3-2-3)

public static Vector3 AddEuler(Vector3 e1, Vector3 e2)

Parameters

e1 Vector3

[rad] Rotation E1

e2 Vector3

[rad] Rotation E2

Returns

Vector3

[rad] The rotated Euler

AddEuler121(Vector3, Vector3)

Computes the overall (1-2-1) Euler angle vector corresponding to two successive (1-2-1) rotations E1 and E2.

public static Vector3 AddEuler121(Vector3 e1, Vector3 e2)

Parameters

e1 Vector3

[rad] Rotation E1

e2 Vector3

[rad] Rotation E2

Returns

Vector3

[rad] The rotated Euler

AddEuler123(Vector3, Vector3)

Computes the overall (1-2-3) Euler angle vector corresponding to two successive (1-2-3) rotations E1 and E2.

public static Vector3 AddEuler123(Vector3 e1, Vector3 e2)

Parameters

e1 Vector3

[rad] Rotation E1

e2 Vector3

[rad] Rotation E2

Returns

Vector3

[rad] The rotated Euler

AddEuler131(Vector3, Vector3)

Computes the overall (1-3-1) Euler angle vector corresponding to two successive (1-3-1) rotations E1 and E2.

public static Vector3 AddEuler131(Vector3 e1, Vector3 e2)

Parameters

e1 Vector3

[rad] Rotation E1

e2 Vector3

[rad] Rotation E2

Returns

Vector3

[rad] The rotated Euler

AddEuler132(Vector3, Vector3)

Computes the overall (1-3-2) Euler angle vector corresponding to two successive (1-3-2) rotations E1 and E2.

public static Vector3 AddEuler132(Vector3 e1, Vector3 e2)

Parameters

e1 Vector3

[rad] Rotation E1

e2 Vector3

[rad] Rotation E2

Returns

Vector3

[rad] The rotated Euler

AddEuler212(Vector3, Vector3)

Computes the overall (2-1-2) Euler angle vector corresponding to two successive (2-1-2) rotations E1 and E2.

public static Vector3 AddEuler212(Vector3 e1, Vector3 e2)

Parameters

e1 Vector3

[rad] Rotation E1

e2 Vector3

[rad] Rotation E2

Returns

Vector3

[rad] The rotated Euler

AddEuler213(Vector3, Vector3)

Computes the overall (2-1-3) Euler angle vector corresponding to two successive (2-1-3) rotations E1 and E2.

public static Vector3 AddEuler213(Vector3 e1, Vector3 e2)

Parameters

e1 Vector3

[rad] Rotation E1

e2 Vector3

[rad] Rotation E2

Returns

Vector3

[rad] The rotated Euler

AddEuler231(Vector3, Vector3)

Computes the overall (2-3-1) Euler angle vector corresponding to two successive (2-3-1) rotations E1 and E2.

public static Vector3 AddEuler231(Vector3 e1, Vector3 e2)

Parameters

e1 Vector3

[rad] Rotation E1

e2 Vector3

[rad] Rotation E2

Returns

Vector3

[rad] The rotated Euler

AddEuler232(Vector3, Vector3)

Computes the overall (2-3-2) Euler angle vector corresponding to two successive (2-3-2) rotations E1 and E2.

public static Vector3 AddEuler232(Vector3 e1, Vector3 e2)

Parameters

e1 Vector3

[rad] Rotation E1

e2 Vector3

[rad] Rotation E2

Returns

Vector3

[rad] The rotated Euler

AddEuler312(Vector3, Vector3)

Computes the overall (3-1-2) Euler angle vector corresponding to two successive (3-1-2) rotations E1 and E2.

public static Vector3 AddEuler312(Vector3 e1, Vector3 e2)

Parameters

e1 Vector3

[rad] Rotation E1

e2 Vector3

[rad] Rotation E2

Returns

Vector3

[rad] The rotated Euler

AddEuler313(Vector3, Vector3)

Computes the overall (3-1-3) Euler angle vector corresponding to two successive (3-1-3) rotations E1 and E2.

public static Vector3 AddEuler313(Vector3 e1, Vector3 e2)

Parameters

e1 Vector3

[rad] Rotation E1

e2 Vector3

[rad] Rotation E2

Returns

Vector3

[rad] The rotated Euler

AddEuler321(Vector3, Vector3)

Computes the overall (3-2-1) Euler angle vector corresponding to two successive (3-2-1) rotations E1 and E2.

public static Vector3 AddEuler321(Vector3 e1, Vector3 e2)

Parameters

e1 Vector3

[rad] Rotation E1

e2 Vector3

[rad] Rotation E2

Returns

Vector3

[rad] The rotated Euler

AddEuler323(Vector3, Vector3)

Computes the overall (3-2-3) Euler angle vector corresponding to two successive (3-2-3) rotations E1 and E2.

public static Vector3 AddEuler323(Vector3 e1, Vector3 e2)

Parameters

e1 Vector3

[rad] Rotation E1

e2 Vector3

[rad] Rotation E2

Returns

Vector3

[rad] The rotated Euler

AddGibbs(Vector3, Vector3)

Provides the Gibbs vector which corresponds to performing two successive rotations Q1 and Q2 of the coordinate frame.

public static Vector3 AddGibbs(Vector3 q1, Vector3 q2)

Parameters

q1 Vector3

[-]First rotator

q2 Vector3

[-]Second rotator

Returns

Vector3

The Gibbs angle from the summation

AddMRP(Vector3, Vector3)

Provides the MRP vector which corresponds to performing two successive rotations Q1 and Q2 of the coordinate frame.

public static Vector3 AddMRP(Vector3 q1, Vector3 q2)

Parameters

q1 Vector3

[MRP] The first rotator

q2 Vector3

[MRP] The second rotator

Returns

Vector3

[MRP] The output MRP vector between two rotations

AddPRV(Vector3, Vector3)

Provides the principal rotation vector which corresponds to performing two successive principal rotations Q1 and Q2 of the coordinate frame.

public static Vector3 AddPRV(Vector3 qq1, Vector3 qq2)

Parameters

qq1 Vector3

[-] First principal rotation

qq2 Vector3

[-] Second principal rotation

Returns

Vector3

The PRV angle from the summation

AddQuat(Vector4, Vector4)

Provides the Euler parameter vector (Quaternion) which corresponds to performing two successive rotations B1 and B2 of the coordinate frame.

public static Vector4 AddQuat(Vector4 b1, Vector4 b2)

Parameters

b1 Vector4

[-] The first rotator

b2 Vector4

[-] The second rotator

Returns

Vector4

[-] The rotated Quaternion

BInvEuler121(Vector3)

Returns the 3x3 matrix which relates the derivative of the (1-2-1) Euler angle vector Q to the body angular velocity vector w.
w = [B(Q)] ^ (-1) dQ/dt

public static Matrix3 BInvEuler121(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BInvEuler123(Vector3)

Returns the 3x3 matrix which relates the derivative of the (1-2-3) Euler angle vector Q to the body angular velocity vector w.
w = [B(Q)] ^ (-1) dQ/dt

public static Matrix3 BInvEuler123(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BInvEuler131(Vector3)

Returns the 3x3 matrix which relates the derivative of the (1-3-1) Euler angle vector Q to the body angular velocity vector w.
w = [B(Q)] ^ (-1) dQ/dt

public static Matrix3 BInvEuler131(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BInvEuler132(Vector3)

Returns the 3x3 matrix which relates the derivative of the (1-3-2) Euler angle vector Q to the body angular velocity vector w.
w = [B(Q)] ^ (-1) dQ/dt

public static Matrix3 BInvEuler132(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BInvEuler212(Vector3)

Returns the 3x3 matrix which relates the derivative of the (2-1-2) Euler angle vector Q to the body angular velocity vector w.
w = [B(Q)] ^ (-1) dQ/dt

public static Matrix3 BInvEuler212(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BInvEuler213(Vector3)

Returns the 3x3 matrix which relates the derivative of the (2-1-3) Euler angle vector Q to the body angular velocity vector w.
w = [B(Q)] ^ (-1) dQ/dt

public static Matrix3 BInvEuler213(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BInvEuler231(Vector3)

Returns the 3x3 matrix which relates the derivative of the (2-3-1) Euler angle vector Q to the body angular velocity vector w.
w = [B(Q)] ^ (-1) dQ/dt

public static Matrix3 BInvEuler231(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BInvEuler232(Vector3)

Returns the 3x3 matrix which relates the derivative of the (2-3-2) Euler angle vector Q to the body angular velocity vector w.
w = [B(Q)] ^ (-1) dQ/dt

public static Matrix3 BInvEuler232(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BInvEuler312(Vector3)

Returns the 3x3 matrix which relates the derivative of the (3-`-1) Euler angle vector Q to the body angular velocity vector w.
w = [B(Q)] ^ (-1) dQ/dt

public static Matrix3 BInvEuler312(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BInvEuler313(Vector3)

Returns the 3x3 matrix which relates the derivative of the (3-1-3) Euler angle vector Q to the body angular velocity vector w.
w = [B(Q)] ^ (-1) dQ/dt

public static Matrix3 BInvEuler313(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BInvEuler321(Vector3)

Returns the 3x3 matrix which relates the derivative of the (3-2-1) Euler angle vector Q to the body angular velocity vector w.
w = [B(Q)] ^ (-1) dQ/dt

public static Matrix3 BInvEuler321(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BInvEuler323(Vector3)

Returns the 3x3 matrix which relates the derivative of the (3-2-3) Euler angle vector Q to the body angular velocity vector w.
w = [B(Q)] ^ (-1) dQ/dt

public static Matrix3 BInvEuler323(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BInvGibbs(Vector3)

Returns the 3x3 matrix which relates the derivative of Gibbs vector Q to the body angular velocity vector w.
w = 2[B(Q)] ^ (-1) dQ/dt

public static Matrix3 BInvGibbs(Vector3 q)

Parameters

q Vector3

[-] Input Euler Angle Vector

Returns

Matrix3

[-] 3x3 Matrix

BInvMRP(Vector3)

Returns the 3x3 matrix which relates the derivative of MRP vector Q to the body angular velocity vector w.
w = 4 [B(Q)]^(-1) dQ/dt

public static Matrix3 BInvMRP(Vector3 q)

Parameters

q Vector3

[MRP] Input MRP vector

Returns

Matrix3

[MRP] 3x3 Matrix

BInvPRV(Vector3)

Returns the 3x3 matrix which relates the derivative of Principal Rotation vector Q to the body angular velocity vector w.
w = [B(Q)]^(-1) dQ/dt

public static Matrix3 BInvPRV(Vector3 q)

Parameters

q Vector3

[-] Input Principal Rotation Vector

Returns

Matrix3

[-] 3x3 Matrix

BInvQuat(Vector4)

Returns the 3x4 matrix which relates the derivative of Euler parameter vector Q to the body angular velocity vector w.

public static Matrix BInvQuat(Vector4 q)

Parameters

q Vector4

[-] Input Euler Parameter (Quaternion)

Returns

Matrix

[-] 3x4 Matrix

BMatEuler121(Vector3)

Returns the 3x3 matrix which relates the derivative of the body angular velocity vector w to the derivative of (1-2-1) Euler angle vector Q.
w = dQ/dt = [B(Q)] w

public static Matrix3 BMatEuler121(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BMatEuler123(Vector3)

Returns the 3x3 matrix which relates the derivative of the body angular velocity vector w to the derivative of (1-2-3) Euler angle vector Q.
w = dQ/dt = [B(Q)] w

public static Matrix3 BMatEuler123(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BMatEuler131(Vector3)

Returns the 3x3 matrix which relates the derivative of the body angular velocity vector w to the derivative of (1-3-1) Euler angle vector Q.
w = dQ/dt = [B(Q)] w

public static Matrix3 BMatEuler131(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BMatEuler132(Vector3)

Returns the 3x3 matrix which relates the derivative of the body angular velocity vector w to the derivative of (1-3-2) Euler angle vector Q.
w = dQ/dt = [B(Q)] w

public static Matrix3 BMatEuler132(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BMatEuler212(Vector3)

Returns the 3x3 matrix which relates the derivative of the body angular velocity vector w to the derivative of (2-1-2) Euler angle vector Q.
w = dQ/dt = [B(Q)] w

public static Matrix3 BMatEuler212(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BMatEuler213(Vector3)

Returns the 3x3 matrix which relates the derivative of the body angular velocity vector w to the derivative of (2-1-3) Euler angle vector Q.
w = dQ/dt = [B(Q)] w

public static Matrix3 BMatEuler213(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BMatEuler231(Vector3)

Returns the 3x3 matrix which relates the derivative of the body angular velocity vector w to the derivative of (2-3-1) Euler angle vector Q.
w = dQ/dt = [B(Q)] w

public static Matrix3 BMatEuler231(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BMatEuler232(Vector3)

Returns the 3x3 matrix which relates the derivative of the body angular velocity vector w to the derivative of (2-3-2) Euler angle vector Q.
w = dQ/dt = [B(Q)] w

public static Matrix3 BMatEuler232(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BMatEuler312(Vector3)

Returns the 3x3 matrix which relates the derivative of the body angular velocity vector w to the derivative of (3-1-2) Euler angle vector Q.
w = dQ/dt = [B(Q)] w

public static Matrix3 BMatEuler312(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BMatEuler313(Vector3)

Returns the 3x3 matrix which relates the derivative of the body angular velocity vector w to the derivative of (3-1-3) Euler angle vector Q.
w = dQ/dt = [B(Q)] w

public static Matrix3 BMatEuler313(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BMatEuler321(Vector3)

Returns the 3x3 matrix which relates the derivative of the body angular velocity vector w to the derivative of (3-2-1) Euler angle vector Q.
w = dQ/dt = [B(Q)] w

public static Matrix3 BMatEuler321(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BMatEuler323(Vector3)

Returns the 3x3 matrix which relates the derivative of the body angular velocity vector w to the derivative of (3-2-3) Euler angle vector Q.
w = dQ/dt = [B(Q)] w

public static Matrix3 BMatEuler323(Vector3 q)

Parameters

q Vector3

[rad] Input Euler Angle Vector

Returns

Matrix3

[rad] 3x3 Matrix

BMatGibbs(Vector3)

Returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of Gibbs vector Q.
dQ/dt = 1 / 2[B(Q)] w

public static Matrix3 BMatGibbs(Vector3 q)

Parameters

q Vector3

[-] Input Gibbs vector

Returns

Matrix3

[-] 3x3 matrix

BMatMRP(Vector3)

Returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of MRP vector Q.
dQ/dt = 1/4 [B(Q)] w

public static Matrix3 BMatMRP(Vector3 q)

Parameters

q Vector3

[MRP] Input MRP vector

Returns

Matrix3

[MRP] 3x3 matrix

BMatPRV(Vector3)

Returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of principal rotation vector Q.
dQ/dt = [B(Q)] w

public static Matrix3 BMatPRV(Vector3 q)

Parameters

q Vector3

[-] Input Principal Rotation Vector

Returns

Matrix3

[-] 3x3 matrix

BMatQuat(Vector4)

Returns the 4x3 matrix which relates the body angular velocity vector w to the derivative of Euler parameter vector Q.
dQ/dt = 1 / 2[B(Q)] w

public static Matrix BMatQuat(Vector4 q)

Parameters

q Vector4

[-] Input Euler Parameter (Quaternion)

Returns

Matrix

[-] 4x3 matrix

DCM2Euler121(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding(1-2-1) Euler angle set.

public static Vector3 DCM2Euler121(Matrix3 DCM)

Parameters

DCM Matrix3

[-] Input Direction cosine matrix

Returns

Vector3

Vector3[rad] Euler angle

DCM2Euler123(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding(1-2-3) Euler angle set.

public static Vector3 DCM2Euler123(Matrix3 DCM)

Parameters

DCM Matrix3

[-] Input Direction cosine matrix

Returns

Vector3

Vector3[rad] Euler angle

DCM2Euler131(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding(1-3-1) Euler angle set.

public static Vector3 DCM2Euler131(Matrix3 DCM)

Parameters

DCM Matrix3

[-] Input Direction cosine matrix

Returns

Vector3

Vector3[rad] Euler angle

DCM2Euler132(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding(1-3-2) Euler angle set.

public static Vector3 DCM2Euler132(Matrix3 DCM)

Parameters

DCM Matrix3

[-] Input Direction cosine matrix

Returns

Vector3

Vector3[rad] Euler angle

DCM2Euler212(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding(2-1-2) Euler angle set.

public static Vector3 DCM2Euler212(Matrix3 DCM)

Parameters

DCM Matrix3

[-] Input Direction cosine matrix

Returns

Vector3

Vector3[rad] Euler angle

DCM2Euler213(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding(2-1-3) Euler angle set.

public static Vector3 DCM2Euler213(Matrix3 DCM)

Parameters

DCM Matrix3

[-] Input Direction cosine matrix

Returns

Vector3

Vector3[rad] Euler angle

DCM2Euler231(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding(2-3-1) Euler angle set.

public static Vector3 DCM2Euler231(Matrix3 DCM)

Parameters

DCM Matrix3

[-] Input Direction cosine matrix

Returns

Vector3

Vector3[rad] Euler angle

DCM2Euler232(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding(2-3-2) Euler angle set.

public static Vector3 DCM2Euler232(Matrix3 DCM)

Parameters

DCM Matrix3

[-] Input Direction cosine matrix

Returns

Vector3

Vector3[rad] Euler angle

DCM2Euler312(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding(3-1-2) Euler angle set.

public static Vector3 DCM2Euler312(Matrix3 DCM)

Parameters

DCM Matrix3

[-] Input Direction cosine matrix

Returns

Vector3

Vector3[rad] Euler angle

DCM2Euler313(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding(3-1-3) Euler angle set.

public static Vector3 DCM2Euler313(Matrix3 DCM)

Parameters

DCM Matrix3

[-] Input Direction cosine matrix

Returns

Vector3

Vector3[rad] Euler angle

DCM2Euler321(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding(3-2-1) Euler angle set.

public static Vector3 DCM2Euler321(Matrix3 DCM)

Parameters

DCM Matrix3

[-] Input Direction cosine matrix

Returns

Vector3

Vector3[rad] Euler angle

DCM2Euler323(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding(3-2-3) Euler angle set.

public static Vector3 DCM2Euler323(Matrix3 DCM)

Parameters

DCM Matrix3

[-] Input Direction cosine matrix

Returns

Vector3

Vector3[rad] Euler angle

DCM2Gibbs(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding 3x1 Gibbs vector Q.

public static Vector3 DCM2Gibbs(Matrix3 DCM)

Parameters

DCM Matrix3

[-] Input cosine matrix

Returns

Vector3

Vector3[-] The output Gibbs vector

DCM2MRP(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding 3x1 MRP vector Q where the MRP vector is chosen such that |Q| <= 1.

public static Vector3 DCM2MRP(Matrix3 DCM)

Parameters

DCM Matrix3

[-] The input matrix

Returns

Vector3

Vector3[MRP] The output MRP vector

DCM2PRV(Matrix3)

Translates the 3x3 direction cosine matrix DCM into the corresponding 3x1 principal rotation vector Q, where the first component of Q is the principal rotation angle phi(0<= phi <= Pi)

public static Vector3 DCM2PRV(Matrix3 DCM)

Parameters

DCM Matrix3

[-] The Input Matrix

Returns

Vector3

[-] The Principle Rotation vector

DCM2Quat(Matrix3)

DCM2Quat Q = DCM2Quat(C) translates the 3x3 direction cosine matrix C into the corresponding 4x1 euler parameter vector Q, where the first component of Q is the non-dimensional Euler parameter Beta_0 >= 0. Transformation is done using the Stanley method.

public static Vector4 DCM2Quat(Matrix3 dcm)

Parameters

dcm Matrix3

[-] The DCM directional cosine matrix

Returns

Vector4

[-] The Quaternion result

Euler1(double)

Creates an elementary rotation matrix

public static Matrix3 Euler1(double x)

Parameters

x double

[rad] The body axis position

Returns

Matrix3

[rad] Returns the elementary rotation matrix about the second body axis.

Euler2(double)

Creates an elementary rotation matrix

public static Matrix3 Euler2(double x)

Parameters

x double

[rad]The body axis position

Returns

Matrix3

[rad] Returns the elementary rotation matrix about the second body axis.

Euler2DCM121(Vector3)

Returns the direction cosine matrix in terms of the 1-2-1 Euler angles. Input Q must be a 3x1 vector of Euler angles.

public static Matrix3 Euler2DCM121(Vector3 q)

Parameters

q Vector3

[rad] Input Euler angle

Returns

Matrix3

Matrix3[-] Direction cosine matrix

Euler2DCM123(Vector3)

Returns the direction cosine matrix in terms of the 1-2-3 Euler angles. Input Q must be a 3x1 vector of Euler angles.

public static Matrix3 Euler2DCM123(Vector3 q)

Parameters

q Vector3

[rad] Input Euler angle

Returns

Matrix3

Matrix3[-] Direction cosine matrix

Euler2DCM131(Vector3)

Returns the direction cosine matrix in terms of the 1-3-1 Euler angles. Input Q must be a 3x1 vector of Euler angles.

public static Matrix3 Euler2DCM131(Vector3 q)

Parameters

q Vector3

[rad] Input Euler angle

Returns

Matrix3

Matrix3[-] Direction cosine matrix

Euler2DCM132(Vector3)

Returns the direction cosine matrix in terms of the 1-3-2 Euler angles. Input Q must be a 3x1 vector of Euler angles.

public static Matrix3 Euler2DCM132(Vector3 q)

Parameters

q Vector3

[rad] Input Euler angle

Returns

Matrix3

Matrix3[-] Direction cosine matrix

Euler2DCM212(Vector3)

Returns the direction cosine matrix in terms of the 2-1-2 Euler angles. Input Q must be a 3x1 vector of Euler angles.

public static Matrix3 Euler2DCM212(Vector3 q)

Parameters

q Vector3

[rad] Input Euler angle

Returns

Matrix3

Matrix3[-] Direction cosine matrix

Euler2DCM213(Vector3)

Returns the direction cosine matrix in terms of the 2-1-3 Euler angles. Input Q must be a 3x1 vector of Euler angles.

public static Matrix3 Euler2DCM213(Vector3 q)

Parameters

q Vector3

[rad] Input Euler angle

Returns

Matrix3

Matrix3[-] Direction cosine matrix

Euler2DCM231(Vector3)

Returns the direction cosine matrix in terms of the 2-3-1 Euler angles. Input Q must be a 3x1 vector of Euler angles.

public static Matrix3 Euler2DCM231(Vector3 q)

Parameters

q Vector3

[rad] Input Euler angle

Returns

Matrix3

Matrix3[-] Direction cosine matrix

Euler2DCM232(Vector3)

Returns the direction cosine matrix in terms of the 2-3-2 Euler angles. Input Q must be a 3x1 vector of Euler angles.

public static Matrix3 Euler2DCM232(Vector3 q)

Parameters

q Vector3

[rad] Input Euler angle

Returns

Matrix3

Matrix3[-] Direction cosine matrix

Euler2DCM312(Vector3)

Returns the direction cosine matrix in terms of the 3-1-2 Euler angles. Input Q must be a 3x1 vector of Euler angles.

public static Matrix3 Euler2DCM312(Vector3 q)

Parameters

q Vector3

[rad] Input Euler angle

Returns

Matrix3

Matrix3[-] Direction cosine matrix

Euler2DCM313(Vector3)

Returns the direction cosine matrix in terms of the 3-1-3 Euler angles. Input Q must be a 3x1 vector of Euler angles.

public static Matrix3 Euler2DCM313(Vector3 q)

Parameters

q Vector3

[rad] Input Euler angle

Returns

Matrix3

Matrix3[-] Direction cosine matrix

Euler2DCM321(Vector3)

returns the direction cosine matrix in terms of the 3-2-1 euler angles. Input Q must be a 3x1 vector of euler angles.

public static Matrix3 Euler2DCM321(Vector3 q)

Parameters

q Vector3

[rad] Input Euler angle

Returns

Matrix3

Matrix3[-] Direction cosine matrix

Euler2DCM323(Vector3)

Returns the direction cosine matrix in terms of the 3-2-3 Euler angles. Input Q must be a 3x1 vector of Euler angles.

public static Matrix3 Euler2DCM323(Vector3 q)

Parameters

q Vector3

[rad] Input Euler angle

Returns

Matrix3

Matrix3[-] Direction cosine matrix

Euler2Gibbs121(Vector3)

Translates the (1-2-1) Euler angle vector E into the Gibbs vector Q.

public static Vector3 Euler2Gibbs121(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] The output Gibbs vector

Euler2Gibbs123(Vector3)

Translates the (1-2-3) Euler angle vector E into the Gibbs vector Q.

public static Vector3 Euler2Gibbs123(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] The output Gibbs vector

Euler2Gibbs131(Vector3)

Translates the (1-3-1) Euler angle vector E into the Gibbs vector Q.

public static Vector3 Euler2Gibbs131(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] The output Gibbs vector

Euler2Gibbs132(Vector3)

Translates the (1-3-2) Euler angle vector E into the Gibbs vector Q.

public static Vector3 Euler2Gibbs132(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] The output Gibbs vector

Euler2Gibbs212(Vector3)

Translates the (2-1-2) Euler angle vector E into the Gibbs vector Q.

public static Vector3 Euler2Gibbs212(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] The output Gibbs vector

Euler2Gibbs213(Vector3)

Translates the (2-1-3) Euler angle vector E into the Gibbs vector Q.

public static Vector3 Euler2Gibbs213(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] The output Gibbs vector

Euler2Gibbs231(Vector3)

Translates the (2-3-1) Euler angle vector E into the Gibbs vector Q.

public static Vector3 Euler2Gibbs231(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] The output Gibbs vector

Euler2Gibbs232(Vector3)

Translates the (2-3-2) Euler angle vector E into the Gibbs vector Q.

public static Vector3 Euler2Gibbs232(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] The output Gibbs vector

Euler2Gibbs312(Vector3)

Translates the (3-1-2) Euler angle vector E into the Gibbs vector Q.

public static Vector3 Euler2Gibbs312(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] The output Gibbs vector

Euler2Gibbs313(Vector3)

Translates the (3-1-3) Euler angle vector E into the Gibbs vector Q.

public static Vector3 Euler2Gibbs313(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] The output Gibbs vector

Euler2Gibbs321(Vector3)

Translates the (3-2-1) Euler angle vector E into the Gibbs vector Q.

public static Vector3 Euler2Gibbs321(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] The output Gibbs vector

Euler2Gibbs323(Vector3)

Translates the (3-2-3) Euler angle vector E into the Gibbs vector Q.

public static Vector3 Euler2Gibbs323(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] The output Gibbs vector

Euler2MRP121(Vector3)

Translates the (1-2-1) Euler angle vector E into the MRP vector Q.

public static Vector3 Euler2MRP121(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[MRP] MRP vector

Euler2MRP123(Vector3)

Translates the (1-2-3) Euler angle vector E into the MRP vector Q.

public static Vector3 Euler2MRP123(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[MRP] MRP vector

Euler2MRP131(Vector3)

Translates the (1-3-1) Euler angle vector E into the MRP vector Q.

public static Vector3 Euler2MRP131(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[MRP] MRP vector

Euler2MRP132(Vector3)

Translates the (1-3-2) Euler angle vector E into the MRP vector Q.

public static Vector3 Euler2MRP132(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[MRP] MRP vector

Euler2MRP212(Vector3)

Translates the (2-1-2) Euler angle vector E into the MRP vector Q.

public static Vector3 Euler2MRP212(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[MRP] MRP vector

Euler2MRP213(Vector3)

Translates the (2-1-3) Euler angle vector E into the MRP vector Q.

public static Vector3 Euler2MRP213(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[MRP] MRP vector

Euler2MRP231(Vector3)

Translates the (2-3-1) Euler angle vector E into the MRP vector Q.

public static Vector3 Euler2MRP231(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[MRP] MRP vector

Euler2MRP232(Vector3)

Translates the (2-3-2) Euler angle vector E into the MRP vector Q.

public static Vector3 Euler2MRP232(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[MRP] MRP vector

Euler2MRP312(Vector3)

Translates the (3-1-2) Euler angle vector E into the MRP vector Q.

public static Vector3 Euler2MRP312(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[MRP] MRP vector

Euler2MRP313(Vector3)

Translates the (3-1-3) Euler angle vector E into the MRP vector Q.

public static Vector3 Euler2MRP313(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[MRP] MRP vector

Euler2MRP321(Vector3)

Translates the (3-2-1) Euler angle vector E into the MRP vector Q.

public static Vector3 Euler2MRP321(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[MRP] MRP vector

Euler2MRP323(Vector3)

Translates the (3-2-3) Euler angle vector E into the MRP vector Q.

public static Vector3 Euler2MRP323(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[MRP] MRP vector

Euler2PRV121(Vector3)

Translates the (1-2-1) Euler angle vector E into the principal rotation vector vector Q.

public static Vector3 Euler2PRV121(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] Principal rotation vector

Euler2PRV123(Vector3)

Translates the (1-2-3) Euler angle vector E into the principal rotation vector vector Q.

public static Vector3 Euler2PRV123(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] Principal rotation vector

Euler2PRV131(Vector3)

Translates the (1-3-1) Euler angle vector E into the principal rotation vector vector Q.

public static Vector3 Euler2PRV131(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] Principal rotation vector

Euler2PRV132(Vector3)

Translates the (1-3-2) Euler angle vector E into the principal rotation vector vector Q.

public static Vector3 Euler2PRV132(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] Principal rotation vector

Euler2PRV212(Vector3)

Translates the (2-1-2) Euler angle vector E into the principal rotation vector Q.

public static Vector3 Euler2PRV212(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] Principal rotation vector

Euler2PRV213(Vector3)

Translates the (2-1-3) Euler angle vector E into the principal rotation vector Q.

public static Vector3 Euler2PRV213(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] Principal rotation vector

Euler2PRV231(Vector3)

Translates the (2-3-1) Euler angle vector E into the principal rotation vector Q.

public static Vector3 Euler2PRV231(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] Principal rotation vector

Euler2PRV232(Vector3)

Translates the (2-3-2) Euler angle vector E into the principal rotation vector Q.

public static Vector3 Euler2PRV232(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] Principal rotation vector

Euler2PRV312(Vector3)

Translates the (3-1-2) Euler angle vector E into the principal rotation vector Q.

public static Vector3 Euler2PRV312(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] Principal rotation vector

Euler2PRV313(Vector3)

Translates the (3-1-3) Euler angle vector E into the principal rotation vector Q.

public static Vector3 Euler2PRV313(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] Principal rotation vector

Euler2PRV321(Vector3)

Translates the (3-2-1) Euler angle vector E into the principal rotation vector Q.

public static Vector3 Euler2PRV321(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] Principal rotation vector

Euler2PRV323(Vector3)

Translates the (3-2-3) Euler angle vector E into the principal rotation vector Q.

public static Vector3 Euler2PRV323(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector3

Vector3[-] Principal rotation vector

Euler2Quat121(Vector3)

Translates the 1-2-1 Euler angle vector E into the Euler parameter vector Q.

public static Vector4 Euler2Quat121(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector4

Vector4[-] Euler Parameter

Euler2Quat123(Vector3)

Translates the 1-2-3 Euler angle vector E into the Euler parameter vector Q.

public static Vector4 Euler2Quat123(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector4

Vector4[-] Euler Parameter

Euler2Quat123(double, double, double)

Converts a series of 3 angles, in the order of the first, second and third, to a quaternion. The angles must be in radians.

public static Vector4 Euler2Quat123(double a, double b, double c)

Parameters

a double

[rad] Angle #1

b double

[rad] Angle #2

c double

[rad] Angle #3

Returns

Vector4

A quaternion that represents the angle

Euler2Quat131(Vector3)

Translates the 1-3-1 Euler angle vector E into the Euler parameter vector Q.

public static Vector4 Euler2Quat131(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector4

Vector4[-] Euler Parameter

Euler2Quat132(Vector3)

Translates the 1-3-2 Euler angle vector E into the Euler parameter vector Q.

public static Vector4 Euler2Quat132(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector4

Vector4[-] Euler Parameter

Euler2Quat212(Vector3)

Translates the 2-1-2 Euler angle vector E into the Euler parameter vector Q.

public static Vector4 Euler2Quat212(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector4

Vector4[-] Euler Parameter

Euler2Quat213(Vector3)

Translates the 2-1-3 Euler angle vector E into the Euler parameter vector Q.

public static Vector4 Euler2Quat213(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector4

Vector4[-] Euler Parameter

Euler2Quat231(Vector3)

Translates the 2-3-1 Euler angle vector E into the Euler parameter vector Q.

public static Vector4 Euler2Quat231(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector4

Vector4[-] Euler Parameter

Euler2Quat232(Vector3)

Translates the 2-3-2 Euler angle vector E into the Euler parameter vector Q.

public static Vector4 Euler2Quat232(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector4

Vector4[-] Euler Parameter

Euler2Quat312(Vector3)

Translates the 3-1-2 Euler angle vector E into the Euler parameter vector Q.

public static Vector4 Euler2Quat312(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector4

Vector4[-] Euler Parameter

Euler2Quat313(Vector3)

Translates the 3-1-3 Euler angle vector E into the Euler parameter vector Q.

public static Vector4 Euler2Quat313(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector4

Vector4[-] Euler Parameter

Euler2Quat321(Vector3)

Translates the 3-2-1 Euler angle vector E into the Euler parameter vector Q.

public static Vector4 Euler2Quat321(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector4

Vector4[-] Euler Parameter

Euler2Quat323(Vector3)

Translates the 3-2-3 Euler angle vector E into the Euler parameter vector Q.

public static Vector4 Euler2Quat323(Vector3 e)

Parameters

e Vector3

[rad] Input Euler angle

Returns

Vector4

Vector4[-] Euler Parameter

Euler3(double)

Creates an elementary rotation matrix

public static Matrix3 Euler3(double x)

Parameters

x double

[rad] The body axis position

Returns

Matrix3

[rad] Returns the elementary rotation matrix about the third body axis.

Gibbs2DCM(Vector3)

Returns the direction cosine matrix in terms of the 3x1 Gibbs vector Q.

public static Matrix3 Gibbs2DCM(Vector3 q)

Parameters

q Vector3

[-] Gibbs vector

Returns

Matrix3

Matrix3[-] Directional Cosine Matrix

Gibbs2Euler121(Vector3)

Translates the Gibbs vector Q into the (1-2-1) Euler angle vector E.

public static Vector3 Gibbs2Euler121(Vector3 q)

Parameters

q Vector3

[-] Gibbs vector

Returns

Vector3

Vector3[rad] Euler angle

Gibbs2Euler123(Vector3)

Translates the Gibbs vector Q into the (1-2-3) Euler angle vector E.

public static Vector3 Gibbs2Euler123(Vector3 q)

Parameters

q Vector3

[-] Gibbs vector

Returns

Vector3

Vector3[rad] Euler angle

Gibbs2Euler131(Vector3)

Translates the Gibbs vector Q into the (1-3-1) Euler angle vector E.

public static Vector3 Gibbs2Euler131(Vector3 q)

Parameters

q Vector3

[-] Gibbs vector

Returns

Vector3

Vector3[rad] Euler angle

Gibbs2Euler132(Vector3)

Translates the Gibbs vector Q into the (1-3-2) Euler angle vector E.

public static Vector3 Gibbs2Euler132(Vector3 q)

Parameters

q Vector3

[-] Gibbs vector

Returns

Vector3

Vector3[rad] Euler angle

Gibbs2Euler212(Vector3)

Translates the Gibbs vector Q into the (2-1-2) Euler angle vector E.

public static Vector3 Gibbs2Euler212(Vector3 q)

Parameters

q Vector3

[-] Gibbs vector

Returns

Vector3

Vector3[rad] Euler angle

Gibbs2Euler213(Vector3)

Translates the Gibbs vector Q into the (2-1-3) Euler angle vector E.

public static Vector3 Gibbs2Euler213(Vector3 q)

Parameters

q Vector3

[-] Gibbs vector

Returns

Vector3

Vector3[rad] Euler angle

Gibbs2Euler231(Vector3)

Translates the Gibbs vector Q into the (2-3-1) Euler angle vector E.

public static Vector3 Gibbs2Euler231(Vector3 q)

Parameters

q Vector3

[-] Gibbs vector

Returns

Vector3

Vector3[rad] Euler angle

Gibbs2Euler232(Vector3)

Translates the Gibbs vector Q into the (2-3-2) Euler angle vector E.

public static Vector3 Gibbs2Euler232(Vector3 q)

Parameters

q Vector3

[-] Gibbs vector

Returns

Vector3

Vector3[rad] Euler angle

Gibbs2Euler312(Vector3)

Translates the Gibbs vector Q into the (3-1-2) Euler angle vector E.

public static Vector3 Gibbs2Euler312(Vector3 q)

Parameters

q Vector3

[-] Gibbs vector

Returns

Vector3

Vector3[rad] Euler angle

Gibbs2Euler313(Vector3)

Translates the Gibbs vector Q into the (3-1-3) Euler angle vector E.

public static Vector3 Gibbs2Euler313(Vector3 q)

Parameters

q Vector3

[-] Gibbs vector

Returns

Vector3

Vector3[rad] Euler angle

Gibbs2Euler321(Vector3)

Translates the Gibbs vector Q into the (3-2-1) Euler angle vector E.

public static Vector3 Gibbs2Euler321(Vector3 q)

Parameters

q Vector3

[-] Gibbs vector

Returns

Vector3

Vector3[rad] Euler angle

Gibbs2Euler323(Vector3)

Translates the Gibbs vector Q into the (3-2-3) Euler angle vector E.

public static Vector3 Gibbs2Euler323(Vector3 q)

Parameters

q Vector3

[-] Gibbs vector

Returns

Vector3

Vector3[rad] Euler angle

Gibbs2MRP(Vector3)

translates the Gibbs vector Q1 into the MRP vector Q.

public static Vector3 Gibbs2MRP(Vector3 q1)

Parameters

q1 Vector3

[-] Input Gibbs vector

Returns

Vector3

Vector3[MRP] MRP vector

Gibbs2PRV(Vector3)

Translates the Gibbs vector Q1 into the principal rotation vector Q.

public static Vector3 Gibbs2PRV(Vector3 q1)

Parameters

q1 Vector3

[-]Input Gibbs vector

Returns

Vector3

Vector3[-] Principal rotation vector

Gibbs2Quat(Vector3)

Translates the Gibbs vector Q1 into the Euler parameter vector Q.

public static Vector4 Gibbs2Quat(Vector3 q1)

Parameters

q1 Vector3

[-]The input gibbs vector

Returns

Vector4

Vector4[-] Euler parameter

MRP2DCM(Vector3)

Translate the Modified Rodrigues Parameters into the equivalent Direction Cosine Matrix (DCM).

public static Matrix3 MRP2DCM(Vector3 v)

Parameters

v Vector3

[MRP] The MRP vector

Returns

Matrix3

Matrix3[-] Direction Cosine Matrix

MRP2Euler121(Vector3)

Translates the MRP vector Q into the (1-2-1) Euler angle vector E.

public static Vector3 MRP2Euler121(Vector3 q)

Parameters

q Vector3

[MRP] Input MRP vector

Returns

Vector3

Vector3[rad] Euler angle

MRP2Euler123(Vector3)

Translates the MRP vector Q into the (1-2-3) Euler angle vector E.

public static Vector3 MRP2Euler123(Vector3 q)

Parameters

q Vector3

[MRP] Input MRP vector

Returns

Vector3

Vector3[rad] Euler angle

MRP2Euler131(Vector3)

Translates the MRP vector Q into the (1-3-1) Euler angle vector E.

public static Vector3 MRP2Euler131(Vector3 q)

Parameters

q Vector3

[MRP] Input MRP vector

Returns

Vector3

Vector3[rad] Euler angle

MRP2Euler132(Vector3)

Translates the MRP vector Q into the (1-3-2) Euler angle vector E.

public static Vector3 MRP2Euler132(Vector3 q)

Parameters

q Vector3

[MRP] Input MRP vector

Returns

Vector3

Vector3[rad] Euler angle

MRP2Euler212(Vector3)

Translates the MRP vector Q into the (2-1-2) Euler angle vector E.

public static Vector3 MRP2Euler212(Vector3 q)

Parameters

q Vector3

[MRP] Input MRP vector

Returns

Vector3

Vector3[rad] Euler angle

MRP2Euler213(Vector3)

Translates the MRP vector Q into the (2-1-3) Euler angle vector E.

public static Vector3 MRP2Euler213(Vector3 q)

Parameters

q Vector3

[MRP] Input MRP vector

Returns

Vector3

Vector3[rad] Euler angle

MRP2Euler231(Vector3)

Translates the MRP vector Q into the (2-3-1) Euler angle vector E.

public static Vector3 MRP2Euler231(Vector3 q)

Parameters

q Vector3

[MRP] Input MRP vector

Returns

Vector3

Vector3[rad] Euler angle

MRP2Euler232(Vector3)

Translates the MRP vector Q into the (2-3-2) Euler angle vector E.

public static Vector3 MRP2Euler232(Vector3 q)

Parameters

q Vector3

[MRP] Input MRP vector

Returns

Vector3

Vector3[rad] Euler angle

MRP2Euler312(Vector3)

Translates the MRP vector Q into the (3-1-2) Euler angle vector E.

public static Vector3 MRP2Euler312(Vector3 q)

Parameters

q Vector3

[MRP] Input MRP vector

Returns

Vector3

Vector3[rad] Euler angle

MRP2Euler313(Vector3)

Translates the MRP vector Q into the (3-1-3) Euler angle vector E.

public static Vector3 MRP2Euler313(Vector3 q)

Parameters

q Vector3

[MRP] Input MRP vector

Returns

Vector3

Vector3[rad] Euler angle

MRP2Euler321(Vector3)

Translates the MRP vector Q into the (3-2-1) Euler angle vector E.

public static Vector3 MRP2Euler321(Vector3 q)

Parameters

q Vector3

[MRP] Input MRP vector

Returns

Vector3

Vector3[rad] Euler angle

MRP2Euler323(Vector3)

Translates the MRP vector Q into the (3-2-3) Euler angle vector E.

public static Vector3 MRP2Euler323(Vector3 q)

Parameters

q Vector3

[MRP] Input MRP vector

Returns

Vector3

Vector3[rad] Euler angle

MRP2Gibbs(Vector3)

Translates the MRP vector Q1 into the Gibbs vector Q.

public static Vector3 MRP2Gibbs(Vector3 q1)

Parameters

q1 Vector3

[MRP]Input MRP vector

Returns

Vector3

Vector3[-] Gibbs vector

MRP2PRV(Vector3)

Translates the MRP vector mrp into the principal rotation vector

public static Vector3 MRP2PRV(Vector3 mrp)

Parameters

mrp Vector3

[MRP]The MRP input

Returns

Vector3

Vector3[-] The vector output

MRP2Quat(Vector3)

Translates the MRP vector Q1 into the Euler parameter vector q (i.e. a Quaternion).

public static Vector4 MRP2Quat(Vector3 q1)

Parameters

q1 Vector3

[MRP] The Modified Rodrigues Parameters to be converted to a quaternion

Returns

Vector4

Vector4[-] Output Euler parameter vector

MRPShadow(Vector3)

Forces a switch from the current MRP to its shadow set

public static Vector3 MRPShadow(Vector3 qin)

Parameters

qin Vector3

[MRP] Current MRP

Returns

Vector3

Vector3[MRP] MRP's shadow set

MRPSwitch(Vector3, double)

MRPSwitch(Q,s2,s) checks to see if v3Norm(Q) is larger than s2. If yes, then the MRP vector Q is mapped to its shadow set.

public static Vector3 MRPSwitch(Vector3 q, double s2)

Parameters

q Vector3

[-] The input vector

s2 double

[rad] The angle

Returns

Vector3

The MRP in the correct form

Mi(double, int)

Returns the rotation matrix corresponding to a single axis rotation about axis a by the angle theta.

public static Matrix3 Mi(double theta, int a)

Parameters

theta double

[rad] Angle theta

a int

[rad] Axis

Returns

Matrix3

Matrix3[rad] Rotation matrix

PRV2DCM(Vector3)

Returns the direction cosine matrix in terms of the 3x1 principal rotation vector

public static Matrix3 PRV2DCM(Vector3 q)

Parameters

q Vector3

[-] Input principal rotation vector

Returns

Matrix3

Matrix3[-] Direction cosine matrix

PRV2Euler121(Vector3)

Translates the principal rotation vector Q into the (1-2-1) Euler angle vector E.

public static Vector3 PRV2Euler121(Vector3 q)

Parameters

q Vector3

[-] Input principal rotation vector

Returns

Vector3

Vector3[rad] Euler angle

PRV2Euler123(Vector3)

Translates the principal rotation vector Q into the (1-2-3) Euler angle vector E.

public static Vector3 PRV2Euler123(Vector3 q)

Parameters

q Vector3

[-] Input principal rotation vector

Returns

Vector3

Vector3[rad] Euler angle

PRV2Euler131(Vector3)

Translates the principal rotation vector Q into the (1-3-1) Euler angle vector E.

public static Vector3 PRV2Euler131(Vector3 q)

Parameters

q Vector3

[-] Input principal rotation vector

Returns

Vector3

Vector3[rad] Euler angle

PRV2Euler132(Vector3)

Translates the principal rotation vector Q into the (1-3-2) Euler angle vector E.

public static Vector3 PRV2Euler132(Vector3 q)

Parameters

q Vector3

[-] Input principal rotation vector

Returns

Vector3

Vector3[rad] Euler angle

PRV2Euler212(Vector3)

Translates the principal rotation vector Q into the (2-1-2) Euler angle vector E.

public static Vector3 PRV2Euler212(Vector3 q)

Parameters

q Vector3

[-] Input principal rotation vector

Returns

Vector3

Vector3[rad] Euler angle

PRV2Euler213(Vector3)

Translates the principal rotation vector Q into the (2-1-3) Euler angle vector E.

public static Vector3 PRV2Euler213(Vector3 q)

Parameters

q Vector3

[-] Input principal rotation vector

Returns

Vector3

Vector3[rad] Euler angle

PRV2Euler231(Vector3)

Translates the principal rotation vector Q into the (2-3-1) Euler angle vector E.

public static Vector3 PRV2Euler231(Vector3 q)

Parameters

q Vector3

[-] Input principal rotation vector

Returns

Vector3

Vector3[rad] Euler angle

PRV2Euler232(Vector3)

Translates the principal rotation vector Q into the (2-3-2) Euler angle vector E.

public static Vector3 PRV2Euler232(Vector3 q)

Parameters

q Vector3

[-] Input principal rotation vector

Returns

Vector3

Vector3[rad] Euler angle

PRV2Euler312(Vector3)

Translates the principal rotation vector Q into the (3-1-2) Euler angle vector E.

public static Vector3 PRV2Euler312(Vector3 q)

Parameters

q Vector3

[-] Input principal rotation vector

Returns

Vector3

Vector3[rad] Euler angle

PRV2Euler313(Vector3)

Translates the principal rotation vector Q into the (3-1-3) Euler angle vector E.

public static Vector3 PRV2Euler313(Vector3 q)

Parameters

q Vector3

[-] Input principal rotation vector

Returns

Vector3

Vector3[rad] Euler angle

PRV2Euler321(Vector3)

Translates the principal rotation vector Q into the (3-2-1) Euler angle vector E.

public static Vector3 PRV2Euler321(Vector3 q)

Parameters

q Vector3

[-] Input principal rotation vector

Returns

Vector3

Vector3[rad] Euler angle

PRV2Euler323(Vector3)

Translates the principal rotation vector Q into the (3-2-3) Euler angle vector E.

public static Vector3 PRV2Euler323(Vector3 q)

Parameters

q Vector3

[-] Input principal rotation vector

Returns

Vector3

Vector3[rad] Euler angle

PRV2Gibbs(Vector3)

Translates the principal rotation vector q0 into the Gibbs vector Q.

public static Vector3 PRV2Gibbs(Vector3 q0)

Parameters

q0 Vector3

[-] Input principal rotation vector

Returns

Vector3

Vector3[-] Gibbs vector

PRV2MRP(Vector3)

PRV2MRP(Q) translates the principal rotation vector Q1 into the MRP vector Q.

public static Vector3 PRV2MRP(Vector3 q0)

Parameters

q0 Vector3

[-] The rotation vector

Returns

Vector3

Vector3[MRP] The output vector

PRV2Quat(Vector3)

Translates the principal rotation vector Q1 into the Euler parameter vector Q.

public static Vector4 PRV2Quat(Vector3 q0)

Parameters

q0 Vector3

[-] Input principal rotation vector

Returns

Vector4

Vector4[-] Euler parameter vector

Quat2DCM(Vector4)

Returns the direction cosine matrix in terms of the 4x1 euler parameter vector Q. The first element is the non-dimensional euler parameter, while the remain three elements form the euler parameter vector.

public static Matrix3 Quat2DCM(Vector4 q)

Parameters

q Vector4

[-] Input euler parameter vector

Returns

Matrix3

[-] Direction Cosine Matrix

Quat2Euler121(Vector4)

Translates the Euler parameter vector Q into the corresponding (1-2-1) Euler angle vector E.

public static Vector3 Quat2Euler121(Vector4 q)

Parameters

q Vector4

[-] Input Euler Parameter vector

Returns

Vector3

Vector3[rad] Euler angle vector

Quat2Euler123(Vector4)

Translates the Euler parameter vector Q into the corresponding (1-2-3) Euler angle vector E.

public static Vector3 Quat2Euler123(Vector4 q)

Parameters

q Vector4

[-] Input Euler Parameter vector

Returns

Vector3

Vector3[rad] Euler angle vector

Quat2Euler131(Vector4)

Translates the Euler parameter vector Q into the corresponding (1-3-1) Euler angle vector E.

public static Vector3 Quat2Euler131(Vector4 q)

Parameters

q Vector4

[-] Input Euler Parameter vector

Returns

Vector3

Vector3[rad] Euler angle vector

Quat2Euler132(Vector4)

Translates the Euler parameter vector Q into the corresponding (1-3-2) Euler angle vector E.

public static Vector3 Quat2Euler132(Vector4 q)

Parameters

q Vector4

[-] Input Euler Parameter vector

Returns

Vector3

Vector3[rad] Euler angle vector

Quat2Euler212(Vector4)

Translates the Euler parameter vector Q into the corresponding (2-1-2) Euler angle vector E.

public static Vector3 Quat2Euler212(Vector4 q)

Parameters

q Vector4

[-] Input Euler Parameter vector

Returns

Vector3

Vector3[rad] Euler angle vector

Quat2Euler213(Vector4)

Translates the Euler parameter vector Q into the corresponding (2-1-3) Euler angle vector E.

public static Vector3 Quat2Euler213(Vector4 q)

Parameters

q Vector4

[-] Input Euler Parameter vector

Returns

Vector3

Vector3[rad] Euler angle vector

Quat2Euler231(Vector4)

Translates the Euler parameter vector Q into the corresponding (2-3-1) Euler angle vector E.

public static Vector3 Quat2Euler231(Vector4 q)

Parameters

q Vector4

[-] Input Euler Parameter vector

Returns

Vector3

Vector3[rad] Euler angle vector

Quat2Euler232(Vector4)

Translates the Euler parameter vector Q into the corresponding (2-3-2) Euler angle vector E.

public static Vector3 Quat2Euler232(Vector4 q)

Parameters

q Vector4

[-] Input Euler Parameter vector

Returns

Vector3

Vector3[rad] Euler angle vector

Quat2Euler312(Vector4)

Translates the Euler parameter vector Q into the corresponding (3-1-2) Euler angle vector E.

public static Vector3 Quat2Euler312(Vector4 q)

Parameters

q Vector4

[-] Input Euler Parameter vector

Returns

Vector3

Vector3[rad] Euler angle vector

Quat2Euler313(Vector4)

Translates the Euler parameter vector Q into the corresponding (3-1-3) Euler angle vector E.

public static Vector3 Quat2Euler313(Vector4 q)

Parameters

q Vector4

[-] Input Euler Parameter vector

Returns

Vector3

Vector3[rad] Euler angle vector

Quat2Euler321(Vector4)

Translates the Euler parameter vector Q into the corresponding (3-2-1) Euler angle vector E.

public static Vector3 Quat2Euler321(Vector4 q)

Parameters

q Vector4

[-] Input Euler Parameter vector

Returns

Vector3

Vector3[rad] Euler angle vector

Quat2Euler323(Vector4)

Translates the Euler parameter vector Q into the corresponding (3-2-3) Euler angle vector E.

public static Vector3 Quat2Euler323(Vector4 q)

Parameters

q Vector4

[-] Input Euler Parameter vector

Returns

Vector3

Vector3[rad] Euler angle vector

Quat2Gibbs(Vector4)

Translates the Euler parameter vector Q1 into the Gibbs vector Q.

public static Vector3 Quat2Gibbs(Vector4 q1)

Parameters

q1 Vector4

[-] Input Euler parameter vector

Returns

Vector3

Vector3[-] Gibbs vector

Quat2MRP(Vector4)

Translates the Euler parameter vector Q1 into the MRP vector Q.

public static Vector3 Quat2MRP(Vector4 q1)

Parameters

q1 Vector4

[-] Input Euler parameter vector

Returns

Vector3

Vector3[MRP] MRP vector

Quat2PRV(Vector4)

Translates the Euler parameter vector Q1 into the principal rotation vector Q.

public static Vector3 Quat2PRV(Vector4 q1)

Parameters

q1 Vector4

[-] The rotational quaternion

Returns

Vector3

Vector3[-] PRV

SubEuler121(Vector3, Vector3)

Computes the relative (1-2-1) Euler angle vector from E1 to E.

public static Vector3 SubEuler121(Vector3 e, Vector3 e1)

Parameters

e Vector3

[rad] To Euler

e1 Vector3

[rad] From Euler

Returns

Vector3

Vector3[rad] Relative Euler angle vector from E1 to E

SubEuler123(Vector3, Vector3)

Computes the relative (1-2-3) Euler angle vector from E1 to E.

public static Vector3 SubEuler123(Vector3 e, Vector3 e1)

Parameters

e Vector3

[rad] To Euler

e1 Vector3

[rad] From Euler

Returns

Vector3

Vector3[rad] Relative Euler angle vector from E1 to E

SubEuler131(Vector3, Vector3)

Computes the relative (1-3-1) Euler angle vector from E1 to E.

public static Vector3 SubEuler131(Vector3 e, Vector3 e1)

Parameters

e Vector3

[rad] To Euler

e1 Vector3

[rad] From Euler

Returns

Vector3

Vector3[rad] Relative Euler angle vector from E1 to E

SubEuler132(Vector3, Vector3)

Computes the relative (1-3-2) Euler angle vector from E1 to E.

public static Vector3 SubEuler132(Vector3 e, Vector3 e1)

Parameters

e Vector3

[rad] To Euler

e1 Vector3

[rad] From Euler

Returns

Vector3

Vector3[rad] Relative Euler angle vector from E1 to E

SubEuler212(Vector3, Vector3)

Computes the relative (2-1-2) Euler angle vector from E1 to E.

public static Vector3 SubEuler212(Vector3 e, Vector3 e1)

Parameters

e Vector3

[rad] To Euler

e1 Vector3

[rad] From Euler

Returns

Vector3

Vector3[rad] Relative Euler angle vector from E1 to E

SubEuler213(Vector3, Vector3)

Computes the relative (2-1-3) Euler angle vector from E1 to E.

public static Vector3 SubEuler213(Vector3 e, Vector3 e1)

Parameters

e Vector3

[rad] To Euler

e1 Vector3

[rad] From Euler

Returns

Vector3

Vector3[rad] Relative Euler angle vector from E1 to E

SubEuler231(Vector3, Vector3)

Computes the relative (2-3-1) Euler angle vector from E1 to E.

public static Vector3 SubEuler231(Vector3 e, Vector3 e1)

Parameters

e Vector3

[rad] To Euler

e1 Vector3

[rad] From Euler

Returns

Vector3

Vector3[rad] Relative Euler angle vector from E1 to E

SubEuler232(Vector3, Vector3)

Computes the relative (2-3-2) Euler angle vector from E1 to E.

public static Vector3 SubEuler232(Vector3 e, Vector3 e1)

Parameters

e Vector3

[rad] To Euler

e1 Vector3

[rad] From Euler

Returns

Vector3

Vector3[rad] Relative Euler angle vector from E1 to E

SubEuler312(Vector3, Vector3)

Computes the relative (3-1-2) Euler angle vector from E1 to E.

public static Vector3 SubEuler312(Vector3 e, Vector3 e1)

Parameters

e Vector3

[rad] To Euler

e1 Vector3

[rad] From Euler

Returns

Vector3

Vector3[rad] Relative Euler angle vector from E1 to E

SubEuler313(Vector3, Vector3)

Computes the relative (3-1-3) Euler angle vector from E1 to E.

public static Vector3 SubEuler313(Vector3 e, Vector3 e1)

Parameters

e Vector3

[rad] To Euler

e1 Vector3

[rad] From Euler

Returns

Vector3

Vector3[rad] Relative Euler angle vector from E1 to E

SubEuler321(Vector3, Vector3)

Computes the relative (3-2-1) Euler angle vector from E1 to E.

public static Vector3 SubEuler321(Vector3 e, Vector3 e1)

Parameters

e Vector3

[rad] To Euler

e1 Vector3

[rad] From Euler

Returns

Vector3

Vector3[rad] Relative Euler angle vector from E1 to E

SubEuler323(Vector3, Vector3)

Computes the relative (3-2-3) Euler angle vector from E1 to E.

public static Vector3 SubEuler323(Vector3 e, Vector3 e1)

Parameters

e Vector3

[rad] To Euler

e1 Vector3

[rad] From Euler

Returns

Vector3

Vector3[rad] Relative Euler angle vector from E1 to E

SubGibbs(Vector3, Vector3)

Provides the Gibbs vector which corresponds to the relative rotation to frame Q1 from frame Q2, with Q1 and Q2 both rotations from the same original frame.

public static Vector3 SubGibbs(Vector3 q1, Vector3 q2)

Parameters

q1 Vector3

[-] To Gibbs vector

q2 Vector3

[-] From Gibbs vector

Returns

Vector3

Vector3[-] The relative rotation to Q1 from Q2

SubMRP(Vector3, Vector3)

Provides the MRP vector which corresponds to the relative rotation to frame Q1 from frame Q2, with Q1 and Q2 both rotations from the same original frame.

public static Vector3 SubMRP(Vector3 q1, Vector3 q2)

Parameters

q1 Vector3

[MRP] The first rotator

q2 Vector3

[MRP] The second rotator

Returns

Vector3

[MRP] The relative rotation to Q1 from Q2

SubPRV(Vector3, Vector3)

Subtracts a principle rotation vector (PRV)

public static Vector3 SubPRV(Vector3 q10, Vector3 q20)

Parameters

q10 Vector3

[-] To PRV

q20 Vector3

[-] From PRV

Returns

Vector3

[-] The relative rotation to Q10 from Q20

SubQuat(Vector4, Vector4)

Provides the Euler parameter vector which corresponds to the relative rotation to frame B1 from frame B2, with B1 and B2 both rotations from the same original frame.

public static Vector4 SubQuat(Vector4 b1, Vector4 b2)

Parameters

b1 Vector4

[-] To Quaternion

b2 Vector4

[-] From Quaternion

Returns

Vector4

Vector4[-] The relative rotation to B1 from B2

UpAxis2DCM(Vector3)

Returns a DCM matrix that aligns the up axis with the given direction.

public static DCM UpAxis2DCM(Vector3 up)

Parameters

up Vector3

The up axis to align with

Returns

DCM

The DCM that is aligned to the up axis

UpAxis2DCM(Vector3, Vector3)

Returns a DCM matrix that aligns the up axis with another alignment axis.

public static DCM UpAxis2DCM(Vector3 up, Vector3 alignment)

Parameters

up Vector3

The target up axis

alignment Vector3

The alignment axis (secondary)

Returns

DCM

The DCM that is the axis transposition

UpAxis2DCMMatrix(Vector3)

Returns a DCM matrix that aligns the up axis with the given direction.

public static Matrix3 UpAxis2DCMMatrix(Vector3 up)

Parameters

up Vector3

The up axis to align with

Returns

Matrix3

The DCM that is aligned to the up axis

WrapAngle(double)

Makes sure that the angle X lies within +/- PI.

public static double WrapAngle(double x)

Parameters

x double

[rad] The angle

Returns

double

The value that is wrapped to (-PI, PI]

WrapVector3(Vector3)

Wraps a Vector3 set of angles to between +/- PI. This will have the values between (-PI, PI].

public static Vector3 WrapVector3(Vector3 v)

Parameters

v Vector3

The input vector that needs to be wrapped

Returns

Vector3

The vector wrapped between (-PI, PI]