At its core, a multibody system is a set of bodies linked through joints and bound by kinematic constraints such as gears. Forces and torques of various types enable you to actuate the various bodies, while sensors enable you to sense the resulting motion. In Simscape™ Multibody™ software, you use blocks to directly represent these components.
Consider the Simscape Multibody four-bar featured example.
You can open this model at the MATLAB® command prompt by entering
The model consists of solid body subsystems interconnected through
Joint blocks. The Joint blocks define the degrees of freedom available
between bodies. The body subsystems define, through an underlying
block diagram, the solid properties of the body.
Basic Components of sm_four_bar Model
The body subsystems in turn consist of Solid blocks interconnected through Rigid Transform blocks. The Solid blocks provide the solid properties, including geometry, inertia, color, and frames—axis triads that encode all position and orientation information in a model. The Rigid Transform blocks rotate and translate the solids to ensure proper body assembly.
The figure shows the underlying block diagram for a binary link body subsystem. This diagram includes three Solid blocks, representing the central and distal portions of the binary link. Two Rigid Transform blocks translate the distal solids to their proper locations near the ends of the central solid. The diagram includes a strictly optional Reference Frame block.
Body Subsystem Components
Other common blocks in a model include:
World Frame — Adds an inertial reference frame to the model.
Rigid Transform — Rotates and translates bodies and other frames relative to each other.
Mechanism Configuration — Defines the gravitational constant in a model.
Solver Configuration — Sets Simscape local solver options such as types, tolerances, and time steps. This is the only required block in a model.
You can actuate a model by applying a force or torque to a rigid body or to a joint. To represent forces and torques acting on a rigid body, Simscape Multibody provides a Forces and Torques library. Drag a block from this library and connect it to the rigid body frame(s) that you want to apply the force or torque to.
|External Force and Torque||General force and/or torque originating outside of the multibody model|
|Internal Force||General force pair between two arbitrary frames|
|Spring and Damper Force||Spring-damper force pair between two arbitrary frames|
|Inverse Square Law Force||Force pair with inverse dependence on the square distance between two arbitrary frames (e.g., Coulomb electrostatic forces)|
|Gravitational Field||Gravitational pull of a point mass on all rigid bodies as a function of their distances to the point mass itself|
The figure shows a four-bar model with an External Force and Torque block for force and torque prescription at a crank link frame.
To specify the force or torque acting at a joint, Simscape Multibody provides a selection of actuation inputs directly in the joint blocks. Each joint primitive—the basic component of a joint block—provides a selection of actuation inputs specific to that primitive.
Joint actuation inputs can be of two types:
Motion — Specify the time-varying trajectory of a given joint primitive.
Force or torque — Specify the time-varying actuation force or torque acting at a given joint primitive.
The figure shows a four-bar model with an actuation torque acting at a revolute joint.
You can sense various dynamical variables between frame pairs, e.g., for analysis or control design. Sensing outputs can be of two types:
Motion — Compute and output the relative position, velocity, or acceleration between two Simscape Multibody frames. You can sense motion between joint frames, by using the sensing capability of joint blocks, or between arbitrary frames, by using the Transform Sensor block.
Force or torque — Compute and output the forces and torques acting between two Simscape Multibody frames. You can sense force and torque between the port frames of certain Forces and Torques blocks, such as the Inverse Square Law Force block, or between the port frames of a joint block.
Joint blocks enable you to sense different types of forces and torques between their respective port frames, including:
Actuation force or torque acting at a given joint primitive.
Constraint force and torque acting joint-wide to prevent motion normal to the joint degrees of freedom.
Total force and torque, including constraint and joint primitive actuation contributions, acting joint-wide.
The figure shows a four-bar model with a Transform Sensor block for trajectory coordinate sensing between a coupler link frame and the world frame.