.ModelicaAdditions.MultiBody.CutJoints.Revolute

Information

A revolute joint is a joint with 1 rotational degree of freedom.
An instance of this class is used as cut joint to break a kinematic
loop of a multibody system. Note, that a CutJoint.Revolute joint cannot
be used in a planar (2D) loop, since here e.g. the constraint force
orthogonal to the plane of the loop is not unique if only rigid
bodies are within the loop. For a unique solution, additional
assumptions have to be made, e.g., that this force is zero.
These additional assumptions are stated in class  RevoluteCut2D .
Therefore use this class, if a revolute joint has to be used as
cut joint in a planar loop.

Parameters:
  n: Axis of rotation with respect to the inertial frame in the
     home position.  n  must not necessarily be a unit vector.

Based on  n , two vectors  npx  and  npy  are constructed which
are perpendicular to  n  (e.g., if n=[0 0 1] then npx=[1 0 0]
and npy=[0 1 0]). The 5 constraint equations on position level state,
that the distance between the origins of frame_a and frame_b is zero
and that the rotation axis transformed with the relative direction
cosine matrix S_rel, is perpendicular to npx and to npy.
The following constraint forces (= Lagrange multipliers) are used:

  fc[3]: Constraint forces in the direction of fa in [N].
  tc[2]: Constraint torques in the direction of npx and npy in [Nm]
         (ta = [npx, npy]*tc).

Generated at 2024-11-21T19:25:40Z by OpenModelicaOpenModelica 1.24.2 using GenerateDoc.mos