WOLFRAM SYSTEM MODELER

# axesRotationsAngles

Return the 3 angles to rotate in sequence around 3 axes to construct the given orientation object # Wolfram Language

In:= `SystemModel["Modelica.Mechanics.MultiBody.Frames.TransformationMatrices.axesRotationsAngles"]`
Out:= # Information

This information is part of the Modelica Standard Library maintained by the Modelica Association.

#### Syntax

```angles = TransformationMatrices.axesRotationsAngles(T, sequence, guessAngle1);
```

#### Description

A call to this function of the form

```  TransformationMatrices.Orientation T;
parameter Integer sequence = {1,2,3};
Modelica.SIunits.Angle angles;
equation
angle = axesRotationAngles(T, sequence);
```

computes the rotation angles "angles[1:3]" to rotate frame 1 into frame 2 along axes sequence[1:3], given the transformation matrix T from frame 1 to frame 2. Therefore, the result of this function fulfills the following equation:

```T = axesRotation(sequence, angles)
```

The rotation angles are returned in the range

```-p <= angles[i] <= p
```

There are two solutions for "angles" in this range. Via the third argument guessAngle1 (default = 0) the returned solution is selected such that |angles - guessAngle1| is minimal. The orientation object T may be in a singular configuration, i.e., there is an infinite number of angle values leading to the same T. The returned solution is selected by setting angles = guessAngle1. Then angles and angles can be uniquely determined in the above range.

Note, that input argument sequence has the restriction that only values 1,2,3 can be used and that sequence ≠ sequence and sequence ≠ sequence. Often used values are:

```sequence = {1,2,3}  // Cardan angle sequence
= {3,1,3}  // Euler angle sequence
= {3,2,1}  // Tait-Bryan angle sequence
```