WOLFRAM SYSTEMMODELER

Revolute

Revolute cut-joint and translational directions may be constrained or released

Wolfram Language

In[1]:=
Click for copyable input
SystemModel["Modelica.Mechanics.MultiBody.Joints.Constraints.Revolute"]
Out[1]:=

Information

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

This model does not use explicit variables e.g. state variables in order to describe the relative motion of frame_b with respect to frame_a, but defines kinematic constraints between the frame_a and frame_b. The forces and torques at both frames are then evaluated in such a way that the constraints are satisfied. Sometimes this type of formulation is also called an implicit joint in literature.

As a consequence of the formulation the relative kinematics between frame_a and frame_b cannot be initialized.

In particular in complex multibody systems with closed loops this may help to simplify the system of non-linear equations. Please compare the translation log using the classical joint formulation and the alternative formulation used here in order to check whether this fact applies to the particular system under consideration.

In systems without closed loops the use of this implicit joint does not make sense or may even be disadvantageous.

See the subpackage Examples.Constraints for testing the joint.

Connectors (2)

frame_a

Type: Frame_a

Description: Coordinate system fixed to the component with one cut-force and cut-torque

frame_b

Type: Frame_b

Description: Coordinate system fixed to the component with one cut-force and cut-torque

Parameters (10)

x_locked

Value: true

Type: Boolean

Description: = true: constraint force in x-direction, resolved in frame_a

y_locked

Value: true

Type: Boolean

Description: = true: constraint force in y-direction, resolved in frame_a

z_locked

Value: true

Type: Boolean

Description: = true: constraint force in z-direction, resolved in frame_a

animation

Value: true

Type: Boolean

Description: = true, if animation shall be enabled (show sphere)

n

Value: {0, 1, 0}

Type: Axis ()

Description: Axis of rotation resolved in frame_a (= same as in frame_b)

sphereDiameter

Value: world.defaultJointLength / 3

Type: Distance (m)

Description: Diameter of sphere representing the spherical joint

e

Value: Modelica.Math.Vectors.normalizeWithAssert(n)

Type: Real[3] ()

Description: Unit vector in direction of rotation axis, resolved in frame_a (= same as in frame_b)

nnx_a

Value: if abs(e[1]) > 0.1 then {0, 1, 0} else if abs(e[2]) > 0.1 then {0, 0, 1} else {1, 0, 0}

Type: Real[3] ()

Description: Arbitrary vector that is not aligned with rotation axis n

ey_a

Value: Modelica.Math.Vectors.normalizeWithAssert(cross(e, nnx_a))

Type: Real[3] ()

Description: Unit vector orthogonal to axis n of revolute joint, resolved in frame_a

ex_a

Value: cross(ey_a, e)

Type: Real[3] ()

Description: Unit vector orthogonal to axis n of revolute joint and to ey_a, resolved in frame_a

Components (3)

world

Type: World

Description:

R_rel

Type: Orientation

Description: Dummy or relative orientation object from frame_a to frame_b

sphere

Type: Shape

Description:

Used in Examples (1)

RevoluteConstraint

Body attached by one spring and revolute joint or constrained to environment