WOLFRAM SYSTEMMODELER

JointRRP

Planar revolute - revolute - prismatic joint aggregation (no constraints, no potential states)

Diagram

Wolfram Language

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

Information

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

This component consists of 2 revolute joints with parallel axes of rotation that and a prismatic joint with a translational axis that is orthogonal to the revolute joint axes, see the default animation in the following figure (the axes vectors are not part of the default animation):

model Joints.Assemblies.JointRRP

This joint aggregation introduces neither constraints nor state variables and should therefore be used in kinematic loops whenever possible to avoid non-linear systems of equations. It is only meaningful to use this component in planar loops. Basically, the position and orientation of the 3 joints as well as of frame_ia, frame_ib, and frame_im are calculated by solving analytically a non-linear equation, given the position and orientation at frame_a and at frame_b.

Connector frame_a is the "left" side of the first revolute joint whereas frame_ia is the "right side of this revolute joint, fixed in rod 1. Connector frame_b is the "right" side of the prismatic joint whereas frame_ib is the "left" side of this prismatic joint, fixed in rod 2. Finally, connector frame_im is the connector at the "right" side of the revolute joint in the middle, fixed in rod 2. The frames frame_b, frame_ib, frame_im are always parallel to each other.

The easiest way to define the parameters of this joint is by moving the MultiBody system in a reference configuration where all frames of all components are parallel to each other (alternatively, at least frame_a, frame_ia, frame_im, frame_ib, frame_b of the JointRRP joint should be parallel to each other when defining an instance of this component).

Basically, the JointRRP model consists internally of a universal - spherical - prismatic joint aggregation (= JointUSP). In a planar loop this will behave as if 2 revolute joints with parallel axes and 1 prismatic joint are connected by rigid rods.

Connectors (7)

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

frame_ia

Type: Frame_a

Description: Coordinate system at origin of frame_a fixed at connecting rod of revolute joints

frame_ib

Type: Frame_b

Description: Coordinate system at origin of frame_b fixed at connecting rod of revolute and prismatic joint

frame_im

Type: Frame_b

Description: Coordinate system at origin of revolute joint in the middle fixed at connecting rod of revolute and prismatic joint

axis

Type: Flange_a

Description: 1-dim. translational flange that drives the prismatic joint

bearing

Type: Flange_b

Description: 1-dim. translational flange of the drive bearing of the prismatic joint

Parameters (18)

animation

Value: true

Type: Boolean

Description: = true, if animation shall be enabled

n_a

Value: {0, 0, 1}

Type: Axis ()

Description: Axes of the two revolute joints resolved in frame_a (both axes are parallel to each other)

n_b

Value: {-1, 0, 0}

Type: Axis ()

Description: Axis of prismatic joint fixed and resolved in frame_b (must be orthogonal to revolute joint axes)

rRod1_ia

Value: {1, 0, 0}

Type: Position[3] (m)

Description: Vector from origin of frame_a to revolute joint in the middle, resolved in frame_ia

rRod2_ib

Value: {-1, 0, 0}

Type: Position[3] (m)

Description: Vector from origin of frame_ib to revolute joint in the middle, resolved in frame_ib (frame_ib is parallel to frame_b)

s_offset

Value: 0

Type: Position (m)

Description: Relative distance offset of prismatic joint (distance between the prismatic joint frames = s(t) + s_offset)

s_guess

Value: 0

Type: Position (m)

Description: Select the configuration such that at initial time |s(t0)-s_guess| is minimal

cylinderLength

Value: world.defaultJointLength

Type: Distance (m)

Description: Length of cylinders representing the revolute joints

cylinderDiameter

Value: world.defaultJointWidth

Type: Distance (m)

Description: Diameter of cylinders representing the revolute joints

boxWidthDirection

Value: {0, 1, 0}

Type: Axis ()

Description: Vector in width direction of prismatic joint, resolved in frame_b

boxWidth

Value: world.defaultJointWidth

Type: Distance (m)

Description: Width of prismatic joint box

boxHeight

Value: boxWidth

Type: Distance (m)

Description: Height of prismatic joint box

rodDiameter

Value: 1.1 * cylinderDiameter

Type: Diameter (m)

Description: Diameter of the two rods connecting the joints

checkTotalPower

Value: false

Type: Boolean

Description: = true, if total power flowing into this component shall be determined (must be zero)

e_a

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

Type: Real[3] ()

Description: Unit vector along axes of rotations, resolved in frame_a

e_ia

Value: jointUSP.e2_ia

Type: Real[3] ()

Description: Unit vector along axes of rotations, resolved in frame_ia

e_im

Value:

Type: Real[3] ()

Description: Unit vector along axes of rotations, resolved in frame_im

e_b

Value: jointUSP.prismatic.e

Type: Real[3] ()

Description: Unit vector along axes of translation of the prismatic joint, resolved in frame_b and frame_ib

Components (7)

world

Type: World

Description:

jointUSP

Type: JointUSP

Description:

shape_rev1

Type: Shape

Description:

shape_rev2

Type: Shape

Description:

shape_prism

Type: Shape

Description:

shape_rod1

Type: Shape

Description:

shape_rod2

Type: Shape

Description:

Used in Examples (1)

Engine1b_analytic

Model of one cylinder engine with gas force and analytic loop handling

Used in Components (3)

CylinderBase

One cylinder with analytic handling of kinematic loop

Cylinder_analytic_CAD

One cylinder with analytic handling of kinematic loop and CAD visualization

Cylinder

Cylinder type