JointRRP
Planar revolute - revolute - prismatic joint aggregation (no constraints, no potential states)
Library
Modelica/Mechanics/MultiBody/Joints/Assemblies
Description
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
Name | Label | Description | Data Type | Valid Values |
---|---|---|---|---|
mo_animation | animation | = true, if animation shall be enabled | Scalar | true |
mo_n_a | n_a | Axes of the two revolute joints resolved in frame_a (both axes are parallel to each other) | Vector of size 3 | |
mo_n_b | n_b | Axis of prismatic joint fixed and resolved in frame_b (must be orthogonal to revolute joint axes) | Vector of size 3 | |
mo_rRod1_ia | rRod1_ia | Vector from origin of frame_a to revolute joint in the middle, resolved in frame_ia | Vector of size 3 | |
mo_rRod2_ib | rRod2_ib | Vector from origin of frame_ib to revolute joint in the middle, resolved in frame_ib (frame_ib is parallel to frame_b) | Vector of size 3 | |
mo_s_offset | s_offset | Relative distance offset of prismatic joint (distance between the prismatic joint frames = s(t) + s_offset) | Scalar | |
mo_s_guess | s_guess | Select the configuration such that at initial time |s(t0)-s_guess| is minimal | Scalar | |
mo_e_a | e_a | Unit vector along axes of rotations, resolved in frame_a | Vector of size 3 | |
mo_e_ia | e_ia | Unit vector along axes of rotations, resolved in frame_ia | Vector of size 3 | |
mo_e_im | e_im | Unit vector along axes of rotations, resolved in frame_im | Vector of size 3 | |
mo_e_b | e_b | Unit vector along axes of translation of the prismatic joint, resolved in frame_b and frame_ib | Vector of size 3 |
Name | Label | Description | Data Type | Valid Values |
---|---|---|---|---|
mo_cylinderLength | cylinderLength | Length of cylinders representing the revolute joints | Scalar | |
mo_cylinderDiameter | cylinderDiameter | Diameter of cylinders representing the revolute joints | Scalar | |
mo_cylinderColor | cylinderColor | Color of cylinders representing the revolute joints | Vector of size 3 | |
mo_boxWidthDirection | boxWidthDirection | Vector in width direction of prismatic joint, resolved in frame_b | Vector of size 3 | |
mo_boxWidth | boxWidth | Width of prismatic joint box | Scalar | |
mo_boxHeight | boxHeight | Height of prismatic joint box | Scalar | |
mo_boxColor | boxColor | Color of prismatic joint box | Vector of size 3 | |
mo_rodDiameter | rodDiameter | Diameter of the two rods connecting the joints | Scalar | |
mo_rodColor | rodColor | Color of the two rods connecting the joints | Vector of size 3 | |
mo_specularCoefficient | specularCoefficient | Reflection of ambient light (= 0: light is completely absorbed) | Scalar |
Name | Label | Description | Data Type | Valid Values |
---|---|---|---|---|
mo_checkTotalPower | checkTotalPower | = true, if total power flowing into this component shall be determined (must be zero) | Scalar | true |
Name | Label | Description | Data Type | Valid Values |
---|---|---|---|---|
mo_totalPower | totalPower | totalPower | Structure | |
mo_totalPower/fixed | fixed | Cell of scalars | true | |
mo_totalPower/start | start | Cell of scalars |
Ports
Name | Type | Description | IO Type | Number |
---|---|---|---|---|
frame_a | implicit | Coordinate system fixed to the component with one cut-force and cut-torque | input | 1 |
frame_b | implicit | Coordinate system fixed to the component with one cut-force and cut-torque | output | 1 |
frame_ia | implicit | Coordinate system at origin of frame_a fixed at connecting rod of revolute joints | input | 2 |
frame_ib | implicit | Coordinate system at origin of frame_b fixed at connecting rod of revolute and prismatic joint | output | 2 |
frame_im | implicit | Coordinate system at origin of revolute joint in the middle fixed at connecting rod of revolute and prismatic joint | output | 3 |
axis | implicit | 1-dim. translational flange that drives the prismatic joint | input | 3 |
bearing | implicit | 1-dim. translational flange of the drive bearing of the prismatic joint | output | 4 |