Joint with custom combination of prismatic, revolute, and spherical joint primitives
The Custom Joint block is a composite joint that you can customize with a specified combination of primitives (prismatic, revolute, or spherical) representing the most general and unconstrained degrees of freedom (DoFs) in three dimensions:
Up to three translational DoFs as three prismatic primitives
Up to three rotational DoFs:
As a single spherical primitive
As one, two, or three revolute primitives
The sense of rotational DoFs is defined by the right-hand rule. One spherical or three revolutes together form a right-handed system.
You can add, configure, and delete these primitives from the Custom Joint, with a minimum and default of one primitive. The properties of each primitive are the same as the individual Joints of the same names.
Warning: A joint with two or three revolute primitives becomes singular if two or three of the rotation axes become parallel ("gimbal lock"). A joint with two or three prismatic primitives becomes singular if two or three of the translation axes become parallel. The simulation stops with errors in these cases.
A joint with three revolute primitives must be configured in the initial state with the three revolute primitive axes mutually orthogonal. There are no restrictions on the primitive axes once the simulation starts, except to prevent any two of the primitive axes from becoming parallel.
You can connect Actuator and Sensor blocks to a Custom Joint, with each Actuator and Sensor connecting to an individual primitive. You cannot connect an Actuator to a spherical primitive.
A Joint block represents the relative degrees of freedom between two bodies, not the bodies themselves.
You must connect any Joint block to two and only two Body blocks, the base and the follower. All Joints have two connector ports for these connections, defining the direction of joint motion (base to follower). You connect each side of the Joint block to these Body blocks at a Body coordinate system (CS) port.
You specify the joint primitive axes, if any, in the Joint dialog.
This Joint block is assembled and places restrictions on the connected Body CSs.
If the Joint has one or more prismatic primitives, the origins of the connected Body CSs must lie in the span of the prismatic axes:
|Number of Prismatic Primitives||Span of Primitive Axes|
|One||Along the primitive axis|
|Two||In the plane of the primitive axes|
|Three||Anywhere in three-dimensional space|
The dialog has two active areas, Connection parameters and Parameters.
The base (B)-follower (F) Body sequence determines the sense of positive motion:
Positive translation is the follower moving in the direction of the translation axis.
Positive rotation is the follower rotating in the right-hand rule about the rotation axis.
When you connect the base (B) connector port on the Custom Joint block to a Body CS Port on a Body, this parameter is automatically reset to the name of this Body CS. See the following figure, Custom Joint Base and Follower Body Connector Ports.
The base Body is automatically connected to the first joint primitive in the primitive list in Parameters.
When you connect the follower (F) connector port on the Custom Joint block to a Body CS Port on a Body, this parameter is automatically reset to the name of this Body CS. See the following figure, Custom Joint Base and Follower Body Connector Ports.
The follower Body is automatically connected to the last joint primitive in the primitive list in Parameters.
Using this spinner menu, you can set the number of extra connector
ports needed for connecting Joint Actuator and Joint Sensor blocks
to this Joint. The default is
0. A spherical primitive
cannot be connected to an Actuator.
The motion of a prismatic primitive is specified in linear units. The motion of a revolute primitive is specified in angular units. The motion of a spherical primitive is three DoFs specified in quaternion form.
Custom Joint Base and Follower Body Connector Ports
Switch between the Axes and Advanced tabs.
The entries on the Axes tab are required. Each DoF primitive in Custom Joint has an entry line. These lines specify the direction of the axes of action of the DoFs that the Custom Joint represents.
In the pull-down menu, select a label and primitive type for
this DoF. Up to three prismatic primitives
allowed. The rotational DoFs are represented by up to three revolute
A spherical primitive
S can take all three allowed
rotational DoFs instead.
The default value is
R1 - Revolute.
Enter here as a three-component vector the directional axis defining the allowed motion of this primitive and its corresponding DoF:
Prismatic: axis of translation
Revolute: axis of rotation
Spherical: field is not active
The default vector is
[0 0 1]. The axis is
a directed vector whose overall sign matters.
To prevent singularities and simulation errors, no two of the revolute axes and no two of the prismatic axes can be parallel.
Using the pull-down menu, choose the coordinate system (World,
the base Body CS, or the follower Body CS) whose coordinate axes the
vector axis of action is oriented with respect to. This CS also determines
the absolute meaning of forces/torques and motion along/about the
joint axis. The default is
The field is not active for a spherical primitive.
The Custom Joint primitives list controls, in the figure, allow you to add, reorder, and delete joint primitives in a Custom Joint block.
Custom Joint Primitives List Controls
To add a joint primitive to the primitives list:
Highlight an existing primitive name in the list.
Click on the Add button (see the preceding figure, Custom Joint Primitives List Controls).
A new primitive will appear immediately below the primitive you highlighted.
To change the position of a joint primitive in the list:
Highlight the primitive whose position you want to change.
Click on the Up or Down button (see the preceding figure, Custom Joint Primitives List Controls) until the primitive is where you want it.
To delete a joint primitive from the list:
Highlight the primitive you want to delete.
Click on the Delete button (see the preceding figure, Custom Joint Primitives List Controls).
The primitive you highlighted disappears.
Custom Joint requires at least one primitive, which you cannot delete.
The Advanced tab is optional. You use it to control the way Simscape™ Multibody™ simulation interprets the topology of your schematic diagram.
In a closed loop, the simulation internally and automatically cuts one and only one joint.
If you want this particular joint to be weighted preferentially for cutting during the simulation, select the check box. The default is not selected.
See Modeling Degrees of Freedom for more on representing DoFs with Joints.