# JointRRP

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

# 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):

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.

# Parameters (18)

animation Value: true Type: Boolean Description: = true, if animation shall be enabled Value: {0, 0, 1} Type: Axis Description: Axes of the two revolute joints resolved in frame_a (both axes are parallel to each other) Value: {-1, 0, 0} Type: Axis Description: Axis of prismatic joint fixed and resolved in frame_b (must be orthogonal to revolute joint axes) 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 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) Value: 0 Type: Position (m) Description: Relative distance offset of prismatic joint (distance between the prismatic joint frames = s(t) + s_offset) Value: 0 Type: Position (m) Description: Select the configuration such that at initial time |s(t0)-s_guess| is minimal Value: world.defaultJointLength Type: Distance (m) Description: Length of cylinders representing the revolute joints Value: world.defaultJointWidth Type: Distance (m) Description: Diameter of cylinders representing the revolute joints Value: {0, 1, 0} Type: Axis Description: Vector in width direction of prismatic joint, resolved in frame_b Value: world.defaultJointWidth Type: Distance (m) Description: Width of prismatic joint box Value: boxWidth Type: Distance (m) Description: Height of prismatic joint box Value: 1.1 * cylinderDiameter Type: Diameter (m) Description: Diameter of the two rods connecting the joints Value: false Type: Boolean Description: = true, if total power flowing into this component shall be determined (must be zero) Value: Modelica.Math.Vectors.normalizeWithAssert(n_a) Type: Real[3] Description: Unit vector along axes of rotations, resolved in frame_a Value: jointUSP.e2_ia Type: Real[3] Description: Unit vector along axes of rotations, resolved in frame_ia Value: Type: Real[3] Description: Unit vector along axes of rotations, resolved in frame_im 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

# Inputs (4)

cylinderColor Default Value: Modelica.Mechanics.MultiBody.Types.Defaults.JointColor Type: Color Description: Color of cylinders representing the revolute joints Default Value: cylinderColor Type: Color Description: Color of prismatic joint box Default Value: Modelica.Mechanics.MultiBody.Types.Defaults.RodColor Type: Color Description: Color of the two rods connecting the joints Default Value: world.defaultSpecularCoefficient Type: SpecularCoefficient Description: Reflection of ambient light (= 0: light is completely absorbed)

# Connectors (7)

frame_a Type: Frame_a Description: Coordinate system fixed to the component with one cut-force and cut-torque Type: Frame_b Description: Coordinate system fixed to the component with one cut-force and cut-torque Type: Frame_a Description: Coordinate system at origin of frame_a fixed at connecting rod of revolute joints Type: Frame_b Description: Coordinate system at origin of frame_b fixed at connecting rod of revolute and prismatic joint Type: Frame_b Description: Coordinate system at origin of revolute joint in the middle fixed at connecting rod of revolute and prismatic joint Type: Flange_a Description: 1-dim. translational flange that drives the prismatic joint Type: Flange_b Description: 1-dim. translational flange of the drive bearing of the prismatic joint

# Components (7)

world Type: World Type: JointUSP Type: Shape Type: Shape Type: Shape Type: Shape Type: Shape

# Used in Examples (1)

 Engine1b_analytic Modelica.Mechanics.MultiBody.Examples.Loops Model of one cylinder engine with gas force and analytic loop handling

# Used in Components (1)

 CylinderBase Modelica.Mechanics.MultiBody.Examples.Loops.Utilities One cylinder with analytic handling of kinematic loop