# Spherical Joint

Joint with one spherical primitive

Joints

## Description

This block represents a joint with three rotational degrees of freedom. One spherical primitive provides the three rotational degrees of freedom. The base and follower frame origins remain coincident during simulation.

Joint Degrees of Freedom

The joint block represents motion between the base and follower frames as a single time-varying transformation. The spherical primitive (S) applies this transformation, which causes the follower frame to rotate with respect to the base frame about an arbitrary 3-D axis. This joint primitive is not susceptible to gimbal lock.

Joint Transformation

A set of optional state targets guide assembly for each joint primitive. Targets include position and velocity. A priority level sets the relative importance of the state targets. If two targets are incompatible, the priority level determines which of the targets to satisfy.

Internal mechanics parameters account for energy storage and dissipation at each joint primitive. Springs act as energy storage elements, resisting any attempt to displace the joint primitive from its equilibrium position. Joint dampers act as energy dissipation elements. Springs and dampers are strictly linear.

Each joint primitive has a set of optional actuation and sensing ports. Actuation ports accept physical signal inputs that drive the joint primitives. These inputs can be forces and torques or a desired joint trajectory. Sensing ports provide physical signal outputs that measure joint primitive motion as well as actuation forces and torques. Actuation modes and sensing types vary with joint primitive.

## Dialog Box and Parameters

Expandable sections provide parameters and options for the different joint primitives. These primitives are the basic elements of a joint block. They can be of three types: Revolute, Prismatic, or Spherical. Joint blocks can have all, some, or none of these joint primitives. For example, the Weld joint block has none.

The expandable sections are hierarchical. The top level of an expandable section identifies joint primitive type and axis, e.g., X Prismatic Primitive (Px). Within a joint primitive section are four parameter groups. These contain parameters and options for a joint primitive's initial state, internal mechanics, actuation, and sensing.

### Spherical Primitive: State Targets

Specify the spherical primitive state targets and their priority levels. A state target is the desired value for one of the joint state parameters—position and velocity. The priority level is the relative importance of a state target. It determines how precisely the target must be met. Use the Model Report tool in Mechanics Explorer to check the assembly status for each joint state target.

Specify Position Target

Select this option to specify the desired joint primitive position at time zero. This is the relative rotation of the follower frame with respect to the base frame. It is resolved in the base frame. Selecting this option exposes priority and value fields.

Priority

Select state target priority. This is the importance level assigned to the state target. If all state targets cannot be simultaneously satisfied, the priority level determines which targets to satisfy first and how closely to satisfy them. This option applies to both position and velocity state targets.

Priority LevelDescription
`High (desired)`Satisfy state target precisely
`Low (approximate)`Satisfy state target approximately

 Note:   During assembly, high-priority targets behave as exact guides. Low-priority targets behave as rough guides.
Value

Select a method to specify the joint primitive state target.

MethodDescription
`None`Align base and follower frames.
`Aligned Axes`Align two follower frame axes with two base frame axes.
`Standard Axis`Specify a rotation angle about a standard axis (x, y, or z).
`Arbitrary Axis`Specify a rotation angle about a general [x, y, z] axis.
`Rotation Matrix`Specify a right-handed orthogonal rotation matrix.

`Aligned Axes`

Select two pairs of base-follower frame axes.

ParameterDescription
Pair 1First pair of base-follower frame axes to align.
Pair 2Second pair of base-follower frame axes to align. Axis choices depend on Pair 1 axis selections.

`Standard Axis`

Select a standard rotation axis, resolved in the base frame, and specify the follower frame rotation angle.

ParameterDescription
AxisStandard rotation axis (X, Y, or Z) resolved in the base frame.
AngleFollower frame rotation angle about the rotation axis with respect to the base frame.

`Arbitrary Axis`

Select a general 3-D rotation axis, resolved in the base frame, and specify the follower frame rotation angle.

ParameterDescription
AxisGeneral rotation axis [X Y Z] resolved in the base frame.
AngleFollower frame rotation angle about the rotation axis with respect to the base frame.

`Rotation Matrix`

Specify the 3×3 transformation matrix of a proper rotation between the base and follower frames. The matrix must be orthogonal and have determinant +1. The default value is ```[1 0 0; 0 1 0; 0 0 1]```.

Specify Velocity Target

Select this option to specify the desired joint primitive velocity at time zero. This is the relative angular velocity of the follower frame with respect to the base frame. It is resolved in the base frame. Selecting this option exposes priority and value fields. The priority field is identical to that used for the position state target.

Value

Enter a three element vector with the angular velocity components of the follower frame with respect to the base frame. Select a physical unit. The default is `deg/s` (degree/second).

Resolution Frame

From the drop-down list, select a resolution frame. This is the frame in which the state target is resolved. It identifies the axes the velocity vector components apply to. The default is `Follower`.

### Spherical Primitive: Internal Mechanics

Specify the spherical primitive internal mechanics. This includes linear spring and damping forces, accounting for energy storage and dissipation, respectively. To ignore internal mechanics, keep spring stiffness and damping coefficient values at the default value of `0`.

Equilibrium Position

Select a method to specify the spring equilibrium position. The equilibrium position is the rotation angle between base and follower port frames at which the spring torque is zero.

MethodDescription
`None`Align base and follower frames.
`Aligned Axes`Align two follower frame axes with two base frame axes.
`Standard Axis`Specify a rotation angle about a standard axis (x, y, or z).
`Arbitrary Axis`Specify a rotation angle about a general [x, y, z] axis.
`Rotation Matrix`Specify a right-handed orthogonal rotation matrix.

`Aligned Axes`

Select two pairs of base-follower frame axes.

ParameterDescription
Pair 1First pair of base-follower frame axes to align.
Pair 2Second pair of base-follower frame axes to align. Axis choices depend on Pair 1 axis selections.

`Standard Axis`

Select a standard rotation axis, resolved in the base frame, and specify the follower frame rotation angle.

ParameterDescription
AxisStandard rotation axis (X, Y, or Z) resolved in the base frame.
AngleFollower frame rotation angle about the rotation axis with respect to the base frame.

`Arbitrary Axis`

Select a general 3-D rotation axis, resolved in the base frame, and specify the follower frame rotation angle.

ParameterDescription
AxisGeneral rotation axis [X Y Z] resolved in the base frame.
AngleFollower frame rotation angle about the rotation axis with respect to the base frame.

`Rotation Matrix`

Specify the 3×3 transformation matrix of a proper rotation between the base and follower frames. The matrix must be orthogonal and have determinant +1. The default value is ```[1 0 0; 0 1 0; 0 0 1]```.

Spring Stiffness

Enter the linear spring constant. This is the torque required to displace the joint primitive by a unit angle. The term linear refers to the mathematical form of the spring equation. The default is `0`. Select a physical unit. The default is `N*m/deg`.

Damping Coefficient

Enter the linear damping coefficient. This is the torque required to maintain a constant joint primitive angular velocity between base and follower frames. The default is `0`. Select a physical unit. The default is `N*m/(deg/s)`.

### Spherical Primitive: Actuation

Specify actuation options for the spherical joint primitive. Actuation modes include Torque only. Selecting a torque input adds the corresponding physical signal port to the block. Use this port to specify the actuation torque signal.

Torque

Select a source for the actuation torque. The default setting is `None`.

Actuation Torque SettingDescription
`None`Apply no actuation torque.
`Provided by Input`Apply an actuation torque based on a physical signal. The signal specifies the torque acting on the follower frame with respect to the base frame. An equal and opposite torque acts on the base frame. Selecting this option exposes additional parameters.

Torque (X), Torque (Y), Torque (Z)

Select in order to actuate the spherical joint primitive about each standard Cartesian axis (X, Y, Z) separately. The block exposes the corresponding physical signal ports. Use these ports to specify the actuation torque signals. The signals must be scalar values.

Torque (XYZ)

Select in order to actuate the spherical joint primitive about an arbitrary axis [X Y Z]. The block exposes the corresponding physical signal port. Use this port to specify the actuation torque signal. The signal must be a 3-D vector.

Frame

Select the frame to resolve the actuation torque signal in. The axes of this frame establish the directions of the X, Y, and Z torque components. The default setting is `Base`.

### Spherical Primitive: Sensing

Select the motion variables to sense in the spherical joint primitive. The block adds the corresponding physical signal ports. Use these ports to output the numerical values of the motion variables.

The block measures each motion variable for the follower frame with respect to the base frame. It resolves that variable in the resolution frame that you select from the Frame drop-down list.

Motion VariablesDescription
PositionQuaternion describing follower frame rotation with respect to base frame. The quaternion coefficients are $\left[\mathrm{cos}\left(\frac{\theta }{2}\right),{n}_{x}\mathrm{sin}\left(\frac{\theta }{2}\right),{n}_{y}\mathrm{sin}\left(\frac{\theta }{2}\right),{n}_{z}\mathrm{sin}\left(\frac{\theta }{2}\right)\right]$. The measurement is the same in all measurement frames.
Velocity (X), Velocity (Y), Velocity (Z)Angular velocity components about X, Y, and Z axes.
Velocity3–D angular velocity vector with components about X, Y, and Z axes.
Acceleration (X), Acceleration (Y), Acceleration (Z)Angular acceleration components about X, Y, and Z axes.
Acceleration3–D angular acceleration vector with components about X, Y, and Z axes.

Frame

Select the frame to resolve the measurement in. The axes of this frame establish the directions of X, Y, and Z vector components. The default setting is `Base`.

### Composite Force/Torque Sensing

Select the composite, or joint-wide, forces and torques to sense. These are forces and torques that act not at individual joint primitives but at the whole joint. Options include constraint and total forces and torques.

During simulation, the block computes the selected composite forces and torques acting between the base and follower port frames. It outputs these variables using physical signal output ports. Check the port labels to identify the output variables at different ports.

Direction

Forces and torques acting at joints do so in pairs. Newton's third law of motion requires that every action be accompanied by an equal and opposite reaction. If the base frame of a joint exerts a force or torque on the follower frame, then the follower frame must exert an equal and opposite force or torque on the base frame.

Select whether to sense the composite forces and torques exerted by the base frame on the follower frame or vice versa. The force and torque vector components are positive if they point along the positive X, Y, and Z axes of the selected resolution frame.

Resolution Frame

You can resolve a vector quantity into Cartesian components in different frames. If the resolution frames have different orientations, then the measured components are themselves different—even though the vector quantity remains the same.

Select the frame in which to resolve the sensed force and torque variables. Possible resolution frames include `Base` and `Follower`. The block outputs the Cartesian components of the sensed force and torque vectors as observed in this frame.

Constraint Force

Joint blocks with fewer than three translational degrees of freedom forbid motion along one or more axes. For example, the Gimbal Joint block forbids translation along all axes. To prevent translation along an axis, a joint block applies a constraint force between its base and follower port frames. Constraint forces are orthogonal to joint translation axes and therefore do no work.

Select the check box to compute and output the 3-D constraint force vector [fcx, fcy, fcz] acting at the joint. Only constraint force components that are orthogonal to the joint translational degrees of freedom have nonzero values. Selecting this option causes the block to expose physical signal port fc.

Constraint Torque

Joint blocks with fewer than three rotational degrees of freedom forbid motion about one or more axes. For example, the Cartesian Joint block forbids rotation about all axes. To prevent rotation about an axis, a joint block applies a constraint torque between its base and follower port frames. Constraint torques are orthogonal to joint rotation axes and therefore do no work.

Select the check box to compute and output the 3-D constraint torque vector [tcx, tcy, tcz] acting at the joint. Only constraint torque components that are orthogonal to the joint rotational degrees of freedom have nonzero values. Selecting this option causes the block to expose physical signal port tc.

Total Force

A joint block generally applies various forces between its port frames:

• Actuation forces that drive prismatic joint primitives.

• Internal spring and damper forces that resist motion at prismatic joint primitives.

• Constraint forces that forbid motion in directions orthogonal to prismatic joint primitives.

The net sum of the different force components equals the total force acting between the joint port frames. Select the check box to compute and output the 3-D total force vector [ftx, fty, ftz]. Selecting this option causes the block to expose physical signal port ft.

Total Torque

A joint block generally applies various torques between its port frames:

• Actuation torques that drive revolute or spherical joint primitives.

• Internal spring and damper torques that resist motion at revolute or spherical joint primitives.

• Constraint torques that forbid motion in directions orthogonal to the revolute or spherical joint primitive axes.

The net sum of the different torque components equals the total torque acting at a joint. Select the check box to compute and output the 3-D total torque vector [ttx, tty, ttz]. Selecting this option causes the block to expose physical signal port tt.

## Ports

The block contains frame ports B and F, representing base and follower frames, respectively. Selecting actuation or sensing options from the dialog box exposes additional physical signal ports. Use the ports to input an actuation signal or to output the chosen sensing parameter.

A unique label identifies the actuation or sensing component associated with a port. This label can contain one or two letters. The first letter identifies the actuation or sensing parameter, applied to or measured from the follower frame. The second letter identifies the axis for that parameter, resolved in the base frame. This letter can be x, y, or z.

The table describes the first letters in the port labels for this block.

Port LabelDescriptionTypeInput/Output
tTorqueActuation inputScalar if associated with an axis (e.g., tx). Three-element vector otherwise (e.g., t).
QQuaternion rotationSensing outputFour-element vector
wAngular velocitySensing outputScalar if associated with an axis (e.g., wx). Three-element vector otherwise (e.g., w).
bAngular accelerationSensing outputScalar if associated with an axis (e.g., bx). Three-element vector otherwise (e.g., b).