JointRRPPlanar revolute - revolute - prismatic joint aggregation (no constraints, no potential states) |
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.
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 |
cylinderColor |
Default Value: Modelica.Mechanics.MultiBody.Types.Defaults.JointColor Type: Color Description: Color of cylinders representing the revolute joints |
---|---|
boxColor |
Default Value: cylinderColor Type: Color Description: Color of prismatic joint box |
rodColor |
Default Value: Modelica.Mechanics.MultiBody.Types.Defaults.RodColor Type: Color Description: Color of the two rods connecting the joints |
specularCoefficient |
Default Value: world.defaultSpecularCoefficient Type: SpecularCoefficient Description: Reflection of ambient light (= 0: light is completely absorbed) |
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 |
Modelica.Mechanics.MultiBody.Examples.Loops Model of one cylinder engine with gas force and analytic loop handling |
Modelica.Mechanics.MultiBody.Examples.Loops.Utilities One cylinder with analytic handling of kinematic loop |