| SimMechanics | ![]() |
Actuating a Joint
You individually actuate each of the prismatic and revolute primitives of an assembled joint. You can apply
| Note You cannot actuate spherical or weld primitives, disassembled joints, or massless connectors. |
To actuate a prismatic or revolute joint primitive of an assembled joint:
A force or torque signal must be a scalar signal. A motion signal must be a 1-D array signal comprising three components: position, velocity, and acceleration. The directionality of the joint determines the response of the follower to the sign of the actuator signal (see Joint Directionality).
| Note SimMechanics allows you to connect multiple Actuators to the same primitive. But it halts and displays an error message if you attempt to update or simulate a model containing such a connection. Exception: You can apply a Joint Initial Condition Actuator and force or torque actuation (including stiction) to the same primitive. See Specifying Initial Positions and Velocities. |
Joint Actuator Example: Body Driver
The mech_body_driver model illustrates the use of Joint Actuators to create a custom driver.
The Body Driver subsystem accepts an 18-component signal that feeds the coordinates, velocities, and accelerations for all six relative DoFs between Body and Body1. The subsystem uses a Bushing block that contains three translational and three rotational primitives to represent the relative DoFs:
You can modify the body driver to move only one of the bodies, thereby creating a motion actuator. To move Body1 relative to World, for example, remove the blocks Body and Weld and connect the subsystem Body Driver directly to Ground.
Joint Stiction Actuator Example: Mixed Static and Kinetic Friction
The mech_dpen_sticky model in the Demos library illustrates a driven double pendulum, with "sticky" friction or stiction applied to both revolute joints with the Joint Stiction Actuator block.
Open the unmasked Joint1 or Joint2 Stiction Model blocks (marked in yellow) to view the subsystems:
Each Stiction subsystem contains a Joint Stiction Actuator block (marked in orange) that requires static and kinetic friction coefficients via their respective blocks. For either revolute, an angular velocity threshold, specified through the block dialog, determines if a joint locks. Once locked, the joint cannot move until a combination of forces reaches a threshold specified by the Forward Stiction Limit or Reverse Stiction Limit.
Run the model with different kinetic and static friction coefficients and different velocity thresholds. View the results in the Scope blocks and through a visualization window. You can find more details on how stiction works in SimMechanics by consulting the Joint Stiction Actuator block reference page.
Actuating a Driver
Actuating a Driver allows you to specify the time dependence of the rheonomic constraint applied by the Driver.
Specifying Initial Positions and Velocities
The Joint Initial Condition Actuator (JICA) block allows you to specify the initial positions and velocities of unactuated joints and hence the bodies attached to them. You can use JICA blocks to
The default initial velocity of a joint primitive is zero. You must use a JICA block to specify a joint's initial velocity if the initial velocity is not zero.
The CG CS origin settings in the dialog boxes of Body blocks specify the bodies' initial positions. Using JICA blocks, you can override these initial body positions by resetting their relative positions in the Joints connecting them.
Using JICA Blocks
Specifying initial conditions on a joint primitive is a special kind of actuation: one that occurs only once at the beginning of simulation. That is why the JICA block resides in the Sensors & Actuators library.
| Note A JICA block, unlike other Actuators, does not have an input port. The JICA's dialog box completely specifies the Actuator input. |
With a JICA block, you can specify the initial positions and velocities of any combination of prismatic and revolute primitives within a given Joint. (You cannot specify ICs for spherical and weld primitives.)
To specify the initial velocity and/or position of a joint primitive:
| Note Do not connect the JICA block to the Joint ports marked "B" or "F" (base or follower). These ports are intended for connecting to Bodies. |
JICA Example: A Simple Pendulum
Open mech_spen from the Demos library, then open the Sensors & Actuators library. Follow the steps from the preceding section, Using JICA Blocks, to connect one Joint Initial Condition Actuator block to the Revolute block and configure it. This Joint contains only one primitive, R1, which is the primitive listed in the JICA dialog box.
Set the initial conditions in two ways and compare the resulting simulations in the scope:
60 deg, which is 60o down from the left horizontal (30o clockwise from vertically down), and set the initial Velocity to 0 deg/s.
30 deg/s, leaving the initial Position (angle) at 60 deg.
The joint directionality is assigned in mech_spen so that the positive rotation axis is the +z-axis. Looking from the front, positive rotation swings down and right, counterclockwise.
| Modeling Actuators | Modeling Force Elements | ![]() |
Learn more about the latest releases of MathWorks products: |
| © 1994-2008 The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |