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