# Prismatic Joint

Joint that allows relative motion along single axis

Libraries:
Simscape / Multibody / Joints

## Description

The Prismatic Joint block models a connection that limits the relative motion between two frames to one translational degree of freedom. This type of motion is common in hydraulic or pneumatic cylinders.

The Prismatic Joint block has only one prismatic primitive, which is along the z-axis of the base frame. During simulation, the z-axes of the base and follower frames align, and the follower frame moves with respect to the base frame along the z-axis, as shown in the image.

Meanwhile, the x and y axes of the follower frame remain parallel to the x and y axes of the base frame, respectively.

To specify the target of the initial state for a joint primitive, use the parameters under State Targets. The targets are specified in the base frame. You can also set the priority levels for the targets. If the joint is not able to satisfy all the state targets, the priority level determines which targets to satisfy first and how closely to satisfy them. For an example, see the Guiding Assembly section of How Multibody Assembly Works.

To model damping and the spring behavior for a joint primitive, use the parameters under Internal Mechanics. Use the Damping Coefficient parameter to model energy dissipation and the Spring Stiffness parameter to model energy storage. Joint springs attempt to displace the joint primitive from its equilibrium position, and joint dampers act as energy dissipation elements. The springs and dampers are strictly linear.

To specify the limits of a joint primitive, use the parameters under Limits. The lower and upper bounds define the width of the free region. The block applies a force to accelerate the joint position back to the free region when the position exceeds the bounds. The block uses a smoothed spring-damper method to compute the force. For more information about the smoothed spring-damper method, see the Description section of the Spatial Contact Force block.

The Force, Torque, and Motion parameters in the Actuation section control the motion of the joint primitives during simulation. For more information, see Specifying Joint Actuation Inputs. Additionally, the joint block has ports that output sensing data, such as position, velocity, acceleration, force, and torque, that you can use to perform analytical tasks on a model. For more information, see Sensing and Force and Torque Sensing.

To specify the joint mode configuration, use the Mode parameter. For more details, see Mode Configuration under the Ports and Parameters sections.

## Ports

### Frame

expand all

Base frame of the joint block.

Follower frame of the joint block.

### Input

expand all

Physical signal input port that accepts the actuation force for the joint primitive. The signal provides the value of the force that applies on both the base and follower frames of the joint primitive.

#### Dependencies

To enable this port, under Z Prismatic Primitive (Pz) > Actuation, set Force to ```Provided by Input```.

Physical signal input port that accepts the motion profile for the joint primitive. The signal provides the displacement of the follower frame with respect to the base frame along the joint primitive axis. Note that the signal must also contain the first and second derivatives of the displacement.

#### Dependencies

To enable this port, under Z Prismatic Primitive (Pz) > Actuation, set Motion to ```Provided by Input```.

Mode Configuration

Input port that controls the mode of the joint. The signal must be a unitless scalar. The joint mode is normal when the input signal is `0`, disengaged when the input signal is `-1`, and locked when the input signal is `1`. You can change the mode at any time during the simulation.

The table shows how the position and velocity of the joint change during transitions between modes.

TransitionsPositionVelocity
Normal to LockedThe joint position retains the current value and remains constant after the transition.The joint velocity becomes zero and remains constant after the transition.
Normal to DisengagedThe joint position retains the current value but can change in any direction after the transition.The joint velocity retains the current value but can change in any direction after the transition.
Locked to NormalThe joint position retains the current value but can change in the directions aligned with the joint degrees of freedom (DOFs) after the transition.The joint velocity remains at zero but can change in the directions aligned with the joint DOFs after the transition.
Locked to DisengagedThe joint position retains the current value but can change in any direction after the transition.The joint velocity remains at zero but can change in any direction after the transition.
Disengaged to NormalFor the directions aligned with the joint DOFs, the joint positions initially take values calculated by using Newton's method and can change thereafter. In the constrained directions, the joint positions become zero and remain constant after the transition.For the directions aligned with the joint DOFs, the joint velocities initially take values calculated by using Newton's method and can change thereafter. In the constrained directions, the joint velocities become zero and remain constant after the transition.
Disengaged to LockedFor the directions aligned with the joint DOFs, the joint positions initially take values calculated by using Newton's method and remain constant after the transition. In the constrained directions, the joint positions become zero and remain constant after the transition.The joint velocity becomes zero and remains constant after the transition.

#### Dependencies

To enable this port, under Mode Configuration, set Mode to `Provided by Input`.

### Output

expand all

Physical signal port that outputs the position of the primitive. The value is the displacement of the follower frame with respect to the base frame.

#### Dependencies

To enable this port, under Z Prismatic Primitive (Pz) > Sensing, select Position.

Physical signal port that outputs the velocity of the primitive.

#### Dependencies

To enable this port, under Z Prismatic Primitive (Pz) > Sensing, select Velocity.

Physical signal port that outputs the acceleration of the primitive.

#### Dependencies

To enable this port, under Z Prismatic Primitive (Pz) > Sensing, select Acceleration.

Physical signal port that outputs the actuator force acting on the joint primitive.

#### Dependencies

To enable this port, under Z Prismatic Primitive (Pz) > Sensing, select Actuator Force.

Physical signal port that outputs the lower-limit force. The block applies the force when the joint primitive position is less than the lower bound of the free region. The force applies to both the base and follower frames of the joint primitive to accelerate the position back to the free region.

#### Dependencies

To enable this port, under Z Prismatic Primitive (Pz) > Sensing, select Lower-Limit Force.

Physical signal port that outputs the upper-limit force. The block applies the force when the joint primitive position exceeds the upper bound of the free region. The force applies to both the base and follower frames of the joint primitive to accelerate the position back to the free region.

#### Dependencies

To enable this port, under Z Prismatic Primitive (Pz) > Sensing, select Upper-Limit Force.

Physical signal port that outputs the constraint force that acts in the joint. The force maintains the translational constraints of the joint. For more information, see Measure Joint Constraint Forces.

#### Dependencies

To enable this port, under Composite Force/Torque Sensing, select Constraint Force.

Physical signal port that outputs the constraint torque that acts in the joint. The torque maintains the rotational constraints of the joint. For more information, see Force and Torque Sensing.

#### Dependencies

To enable this port, under Composite Force/Torque Sensing, select Constraint Torque.

Physical signal port that outputs the total force that acts in the joint. The total force is the sum of the forces transmitted from one frame to the other through the joint. The figure shows a crank-slider piston modeled using a Prismatic Joint block.

The total force that acts at the joint includes the actuator force (FA), internal force (FI), and constraint forces (FC). For more information, see Force and Torque Sensing.

#### Dependencies

To enable this port, under Composite Force/Torque Sensing, select Total Force.

Physical signal port that outputs the total torque that acts in the joint. The total torque is the sum of the torques transmitted from one frame to the other through the joint. The torque includes actuation, internal, limit, and constraint torques. For more information, see Force and Torque Sensing.

#### Dependencies

To enable this port, under Composite Force/Torque Sensing, select Total Torque.

## Parameters

expand all

### Z Prismatic Primitive (Pz)

Select this parameter to enable parameters that specify the position target of the joint primitive.

Priority level of the position target, specified as ```High (desired)``` or ```Low (approximate)```.

#### Dependencies

To enable this parameter, under Z Prismatic Primitive (Pz) > State Targets, select Specify Position Target.

Position target of the joint primitive, specified as a scalar in units of length.

#### Dependencies

To enable this parameter, under Z Prismatic Primitive (Pz) > State Targets, select Specify Position Target.

Select this parameter to enable parameters that specify the velocity target of the joint primitive.

Priority level of the velocity target, specified as ```High (desired)``` or ```Low (approximate)```.

#### Dependencies

To enable this parameter, under Z Prismatic Primitive (Pz) > State Targets, select Specify Velocity Target.

Velocity target of the joint primitive, specified as a scalar in a unit of linear velocity.

#### Dependencies

To enable this parameter, under Z Prismatic Primitive (Pz) > State Targets, select Specify Velocity Target.

Position where the spring force is zero, specified as a scalar in units of length. The value specifies the position of the primitive.

Stiffness of the internal spring-damper force law for the joint primitive, specified as a scalar in units of linear stiffness.

Damping coefficient of the internal spring-damper force law for the joint primitive, specified as a scalar in units of linear damping coefficient.

Select this parameter to enable parameters that specify the lower limit of the joint primitive.

Lower bound of the free region of the joint primitive, specified as a scalar in units of length.

#### Dependencies

To enable this parameter, under Z Prismatic Primitive (Pz) > Limits, select Specify Lower Limit.

Stiffness of the spring at the lower bound, specified as a scalar in units of linear stiffness.

#### Dependencies

To enable this parameter, under Z Prismatic Primitive (Pz) > Limits, select Specify Lower Limit.

Damping coefficient at the lower bound, specified as a scalar in units of linear damping coefficient.

#### Dependencies

To enable this parameter, under Z Prismatic Primitive (Pz) > Limits, select Specify Lower Limit.

Region to smooth the spring and damper forces, specified as a scalar in units of length.

The block applies the full value of this force when the penetration reaches the width of the transition region. The smaller the region, the sharper the onset of forces and the smaller the time step required of the solver. In the trade-off between simulation accuracy and simulation speed, reducing the transition region improves accuracy while expanding it improves speed.

#### Dependencies

To enable this parameter, under Z Prismatic Primitive (Pz) > Limits, select Specify Lower Limit.

Select this parameter to enable parameters for specifying the upper limit of the joint primitive.

Upper bound for the free region of the joint primitive, specified as a scalar in units of length.

#### Dependencies

To enable this parameter, under Z Prismatic Primitive (Pz) > Limits, select Specify Upper Limit.

Stiffness of the spring at the upper bound, specified as a scalar in units of stiffness.

#### Dependencies

To enable this parameter, under Z Prismatic Primitive (Pz) > Limits, select Specify Upper Limit.

Damping coefficient at the upper bound, specified as a scalar in units of linear damping coefficient.

#### Dependencies

To enable this parameter, under Z Prismatic Primitive (Pz) > Limits, select Specify Upper Limit.

Region to smooth the spring and damper forces, specified as a scalar in units of length.

The block applies the full value of this force when the penetration reaches the width of the transition region. The smaller the region, the sharper the onset of forces and the smaller the time step required of the solver. In the trade-off between simulation accuracy and simulation speed, reducing the transition region improves accuracy while expanding it improves speed.

#### Dependencies

To enable this parameter, under Z Prismatic Primitive (Pz) > Limits, select Specify Upper Limit.

Option to provide the actuation force for the joint primitive, specified as the values in the table.

Actuation Force SettingDescription
`None`No actuation force.
`Provided by Input`Input port f specifies the actuation force for the joint primitive..
```Automatically computed```The block automatically calculates the amount of force required to satisfy the motion inputs to the mechanism. Note that if you set this parameter to `Automatically computed`, it doesn’t mean that you must use ```Provided by Input``` for the Motion parameter for the same joint primitive. The automatically computed force could be to satisfy a motion input somewhere else in the mechanism.

Option to provide the actuation motion for the joint primitive, specified as the values in the table.

Actuation Motion SettingDescription
```Automatically computed```The block computes and applies the joint primitive motion based on model dynamics.
`Provided by Input`Input port p specifies the actuation motion for the joint primitive.

Select this parameter to enable the output port p.

Select this parameter to enable port v.

Select this parameter to enable port a.

Select this parameter to enable port f.

Select this parameter to enable port fll.

Select this parameter to enable port ful.

### Mode Configuration

Joint mode for the simulation, specified as one of these values:

ModeDescription
`Locked`Locked mode constrains all the degrees of freedom (DOFs) for the joint. The locked joint maintains its initial assembly position with zero velocity during the simulation. The joint block can sense forces or torques in accordance with the settings of the Internal Mechanics, Limits, and Actuation parameters.
`Normal`Normal mode enables the DOFs and the constraints of the joint work as intended during the simulation.
`Disengaged`Disengaged mode releases the joint from all constraints throughout the simulation. The settings for Internal Mechanics, Limits, and Actuation parameters do not affect the disengaged joint. All output ports output zero.
`Provided by Input`The `Provided by Input` option allows you to specify the joint mode by using an input signal. For more information, see the port mode in the Input section.

### Composite Force/Torque Sensing

Measurement direction, specified as one of these values:

• `Follower on Base` — The block senses the force and torque that the follower frame exerts on the base frame.

• `Base on Follower` — The block senses the force and torque that the base frame exerts on the follower frame.

This parameter affects only the output signals under the Composite Force/Torque Sensing section. Reversing the direction changes the sign of the measurements. For more information, see Force and Torque Measurement Direction.

Frame used to resolve the measurements, specified as one of these values:

• `Base` — The block resolves the measurements in the coordinates of the base frame.

• `Follower` — The block resolves the measurements in the coordinates of the follower frame.

This parameter affects only the output signals under the Composite Force/Torque Sensing section.

## Version History

Introduced in R2012a