Revolute

Revolute joint (1 rotational degree-of-freedom, 2 potential states, optional axis flange)

    Revolute

Library

Modelica/Mechanics/MultiBody/Joints

Description

Joint where frame_b rotates around axis n which is fixed in frame_a. The two frames coincide when the rotation angle "phi = 0".

Optionally, two additional 1-dimensional mechanical flanges (flange "axis" represents the driving flange and flange "support" represents the bearing) can be enabled via parameter useAxisFlange. The enabled axis flange can be driven with elements of the Modelica.Mechanics.Rotational library.

In the "Advanced" menu it can be defined via parameter stateSelect that the rotation angle "phi" and its derivative shall be definitely used as states by setting stateSelect=StateSelect.always. Default is StateSelect.prefer to use the joint angle and its derivative as preferred states. The states are usually selected automatically. In certain situations, especially when closed kinematic loops are present, it might be slightly more efficient, when using the StateSelect.always setting.

If a planar loop is present, e.g., consisting of 4 revolute joints where the joint axes are all parallel to each other, then there is no longer a unique mathematical solution and the symbolic algorithms will fail. Usually, an error message will be printed pointing out this situation. In this case, one revolute joint of the loop has to be replaced by a Joints.RevolutePlanarLoopConstraint joint. The effect is that from the 5 constraints of a usual revolute joint, 3 constraints are removed and replaced by appropriate known variables (e.g., the force in the direction of the axis of rotation is treated as known with value equal to zero; for standard revolute joints, this force is an unknown quantity).

In the following figure the animation of a revolute joint is shown. The light blue coordinate system is frame_a and the dark blue coordinate system is frame_b of the joint. The black arrow is parameter vector "n" defining the translation axis (here: n = {0,0,1}, phi.start = 45o).

Parameters

Revolute_0

NameLabelDescriptionData TypeValid Values

mo_useAxisFlange

useAxisFlange

= true, if axis flange is enabled

Number

0
1

mo_animation

animation

= true, if animation shall be enabled (show axis as cylinder)

Scalar

true
false

mo_n

n

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

Vector of size 3

mo_phi_offset

phi_offset

Relative angle offset (angle = phi_offset + phi)

Scalar

mo_e

e

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

Vector of size 3

Revolute_1

NameLabelDescriptionData TypeValid Values

mo_cylinderLength

cylinderLength

Length of cylinder representing the joint axis

Scalar

mo_cylinderDiameter

cylinderDiameter

Diameter of cylinder representing the joint axis

Scalar

mo_cylinderColor

cylinderColor

Color of cylinder representing the joint axis

Vector of size 3

mo_specularCoefficient

specularCoefficient

Reflection of ambient light (= 0: light is completely absorbed)

Scalar

Revolute_2

NameLabelDescriptionData TypeValid Values

mo_stateSelect

stateSelect

Priority to use joint angle phi and w=der(phi) as states

Structure

mo_stateSelect/choice1

StateSelect.never

Number

0
1

mo_stateSelect/choice2

StateSelect.avoid

Number

0
1

mo_stateSelect/choice3

StateSelect.default

Number

0
1

mo_stateSelect/choice4

StateSelect.prefer

Number

0
1

mo_stateSelect/choice5

StateSelect.always

Number

0
1

Revolute_3

NameLabelDescriptionData TypeValid Values

mo_phi

phi

phi

Structure

mo_phi/fixed

fixed

Cell of scalars

true
false

mo_phi/start

start

Cell of scalars

mo_w

w

w

Structure

mo_w/fixed

fixed

Cell of scalars

true
false

mo_w/start

start

Cell of scalars

mo_a

a

a

Structure

mo_a/fixed

fixed

Cell of scalars

true
false

mo_a/start

start

Cell of scalars

mo_tau

tau

tau

Structure

mo_tau/fixed

fixed

Cell of scalars

true
false

mo_tau/start

start

Cell of scalars

mo_angle

angle

angle

Structure

mo_angle/fixed

fixed

Cell of scalars

true
false

mo_angle/start

start

Cell of scalars

Ports

NameTypeDescriptionIO TypeNumber

frame_a

implicit

Coordinate system fixed to the joint with one cut-force and cut-torque

input

1

frame_b

implicit

Coordinate system fixed to the joint with one cut-force and cut-torque

output

1

Port 3

implicit

1-dim. rotational flange that drives the joint

input

mo_useAxisFlange

Port 4

implicit

1-dim. rotational flange of the drive support (assumed to be fixed in the world frame, NOT in the joint)

output

mo_useAxisFlange