SimMechanics User`s Guide

SimMechanics User`s Guide
mech_pdf.book Page 1 Tuesday, June 18, 2002 1:27 PM
SimMechanics
®
For Use with Simulink
Modeling
Simulation
Implementation
User’s Guide
Version 1
mech_pdf.book Page 2 Tuesday, June 18, 2002 1:27 PM
How to Contact The MathWorks:
www.mathworks.com
comp.soft-sys.matlab
Web
Newsgroup
[email protected]
Technical support
Product enhancement suggestions
Bug reports
Documentation error reports
Order status, license renewals, passcodes
Sales, pricing, and general information
508-647-7000
Phone
508-647-7001
Fax
The MathWorks, Inc.
3 Apple Hill Drive
Natick, MA 01760-2098
Mail
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
For contact information about worldwide offices, see the MathWorks Web site.
SimMechanics User’s Guide
 COPYRIGHT 2001-2002 by The MathWorks, Inc.
The software described in this document is furnished under a license agreement. The software may be used
or copied only under the terms of the license agreement. No part of this manual may be photocopied or reproduced in any form without prior written consent from The MathWorks, Inc.
FEDERAL ACQUISITION: This provision applies to all acquisitions of the Program and Documentation by
or for the federal government of the United States. By accepting delivery of the Program, the government
hereby agrees that this software qualifies as "commercial" computer software within the meaning of FAR
Part 12.212, DFARS Part 227.7202-1, DFARS Part 227.7202-3, DFARS Part 252.227-7013, and DFARS Part
252.227-7014. The terms and conditions of The MathWorks, Inc. Software License Agreement shall pertain
to the government’s use and disclosure of the Program and Documentation, and shall supersede any
conflicting contractual terms or conditions. If this license fails to meet the government’s minimum needs or
is inconsistent in any respect with federal procurement law, the government agrees to return the Program
and Documentation, unused, to MathWorks.
MATLAB, Simulink, Stateflow, Handle Graphics, and Real-Time Workshop are registered trademarks, and
TargetBox is a trademark of The MathWorks, Inc.
Other product or brand names are trademarks or registered trademarks of their respective holders.
Printing History: December 2001
July 2002
Online only
First printing
Version 1 (Release 12.1+)
Revised for Version 1.1 (Release 13)
mech_pdf.book Page i Tuesday, June 18, 2002 1:27 PM
Contents
About This Guide
Using This Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Getting Online Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
For Further Help and Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Opening SimMechanics Demos . . . . . . . . . . . . . . . . . . . . . . . . . . . x
Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Mechanical Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Mechanical Conventions and Abbreviations . . . . . . . . . . . . .
Right-Hand Rule Is Assumed . . . . . . . . . . . . . . . . . . . . . . . . . . .
Common Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Glossary Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xiii
xiii
xiii
xiii
Introducing SimMechanics
1
Welcome to Physical Modeling . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
What Is SimMechanics? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
What’s in This Chapter? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
Related Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
Requirements for SimMechanics . . . . . . . . . . . . . . . . . . . . . . . . 1-3
Other Related Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
Running a Demo Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5
What This Demo Illustrates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6
Opening the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6
i
mech_pdf.book Page ii Tuesday, June 18, 2002 1:27 PM
Starting the Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9
Modifying the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-10
What Can You Do with SimMechanics? . . . . . . . . . . . . . . . . .
Modeling Machines with SimMechanics . . . . . . . . . . . . . . . . .
Bodies, Coordinate Systems, Joints, and Constraints . . . . . . .
Sensors and Actuators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simulating Mechanical Motion . . . . . . . . . . . . . . . . . . . . . . . . .
Visualizing and Animating Machines . . . . . . . . . . . . . . . . . . . .
1-17
1-17
1-18
1-19
1-19
1-21
Learning Basic Procedures
2
Introducing the SimMechanics Block Libraries . . . . . . . . . . 2-2
Viewing the Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
Creating SimMechanics Models . . . . . . . . . . . . . . . . . . . . . . . . 2-7
Essential Steps to Build a Model . . . . . . . . . . . . . . . . . . . . . . . . 2-7
Essential Steps to Configure and Run a Model . . . . . . . . . . . . . 2-9
ii
Contents
Building a Simple Pendulum . . . . . . . . . . . . . . . . . . . . . . . . . .
The World Coordinate System and Gravity . . . . . . . . . . . . . . .
Configuring a Ground Block . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring a Body Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring a Joint Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Adding Sensors and Starting the Simulation . . . . . . . . . . . . . .
2-11
2-12
2-12
2-14
2-20
2-24
Visualizing a Simple Pendulum . . . . . . . . . . . . . . . . . . . . . . .
Representing the Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Visualizing with Handle Graphics . . . . . . . . . . . . . . . . . . . . . .
Visualizing with Virtual Reality . . . . . . . . . . . . . . . . . . . . . . . .
2-30
2-31
2-32
2-34
A Four Bar Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring the Mechanical Environment Settings . . . . . . . .
Setting Up the Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring the Ground and Joint Blocks . . . . . . . . . . . . . . . .
2-36
2-38
2-40
2-42
mech_pdf.book Page iii Tuesday, June 18, 2002 1:27 PM
Configuring the Body Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-46
Sensing Motion and Running the Model . . . . . . . . . . . . . . . . . 2-51
Summary of Technical Vocabulary . . . . . . . . . . . . . . . . . . . . 2-57
Modeling Mechanical Systems
3
Modeling Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
About SimMechanics Models . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a SimMechanics Model . . . . . . . . . . . . . . . . . . . . . . . . .
Connecting SimMechanics Blocks . . . . . . . . . . . . . . . . . . . . . . . .
Interfacing SimMechanics Blocks to Simulink Blocks . . . . . . .
Setting SimMechanics Block Properties at the Command Line
Creating SimMechanics Subsystems . . . . . . . . . . . . . . . . . . . . .
Creating Custom SimMechanics Blocks with Masks . . . . . . . . .
3-2
3-2
3-3
3-3
3-5
3-5
3-5
3-7
Modeling Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
Modeling Grounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
Modeling Finite Rigid Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
Working with Body Coordinate Systems . . . . . . . . . . . . . . . . . 3-12
Modeling Joints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
About Joints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a Joint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modeling with Massless Connectors . . . . . . . . . . . . . . . . . . . . .
Modeling with Disassembled Joints . . . . . . . . . . . . . . . . . . . . .
Cutting Closed Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-17
3-17
3-23
3-26
3-29
3-32
Modeling Constraints and Drivers . . . . . . . . . . . . . . . . . . . . .
Directionality of Constraints and Drivers . . . . . . . . . . . . . . . .
Solving Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Restrictions on Using Constraint and Driver Blocks . . . . . . . .
Constraint Example: Gear Constraint . . . . . . . . . . . . . . . . . . .
Driver Example: Using the Angle Driver . . . . . . . . . . . . . . . . .
3-34
3-35
3-35
3-35
3-35
3-37
iii
mech_pdf.book Page iv Tuesday, June 18, 2002 1:27 PM
Modeling Actuators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Actuating a Body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Actuating a Joint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Actuating a Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying Initial Positions and Velocities . . . . . . . . . . . . . . . .
3-40
3-40
3-43
3-47
3-47
Modeling Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sensing Body Motions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sensing Joint Motions and Forces . . . . . . . . . . . . . . . . . . . . . .
Sensing Constraint Reaction Forces . . . . . . . . . . . . . . . . . . . . .
Modeling Sensor-Actuator Feedback . . . . . . . . . . . . . . . . . . . .
3-53
3-53
3-55
3-55
3-57
Checking Model Validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-58
Checking Schematic Topology . . . . . . . . . . . . . . . . . . . . . . . . . . 3-58
Counting Degrees of Freedom . . . . . . . . . . . . . . . . . . . . . . . . . . 3-61
Running Mechanical Models
4
Choosing Simulation Options . . . . . . . . . . . . . . . . . . . . . . . . . .
Choosing an Analysis Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Choosing an ODE Solver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting Assembly Tolerances . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Choosing a Constraint Solver . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-2
4-2
4-3
4-5
4-5
Mechanical Environment Settings Dialog Box . . . . . . . . . . . 4-7
Parameters Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7
Constraints Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9
Linearization Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10
Visualization Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12
Finding Forces from Motions . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14
Closed-Loop Example: Four-Bar System . . . . . . . . . . . . . . . . . 4-15
Open-Topology Example: Double Pendulum . . . . . . . . . . . . . . 4-19
iv
Contents
mech_pdf.book Page v Tuesday, June 18, 2002 1:27 PM
Trimming Mechanical Systems . . . . . . . . . . . . . . . . . . . . . . . . 4-24
Unconstrained Example: Spring-Loaded Double Pendulum . . 4-24
Constrained Example: Four-Bar System . . . . . . . . . . . . . . . . . 4-30
Linearizing SimMechanics Models . . . . . . . . . . . . . . . . . . . . . 4-35
Model Linearization Example: Double Pendulum . . . . . . . . . . 4-35
How SimMechanics Works . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Model Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Machine Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Force Analysis and Motion Integration . . . . . . . . . . . . . . . . . .
Stiction Mode Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-41
4-41
4-41
4-42
4-42
Troubleshooting Simulation Errors . . . . . . . . . . . . . . . . . . . .
Data Validation Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ground and Body Geometry Errors . . . . . . . . . . . . . . . . . . . . .
Joint Geometry Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Block Connection and Topology Errors . . . . . . . . . . . . . . . . . . .
Motion Singularity and Inconsistency Errors . . . . . . . . . . . . .
Analysis Mode Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-43
4-43
4-43
4-44
4-44
4-45
4-48
SimMechanics Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-49
Accelerator Mode Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . 4-49
Visualizing and Animating Machines
5
Choosing Visualization Options in SimMechanics . . . . . . . . 5-2
Uses of the SimMechanics Visualization Tools . . . . . . . . . . . . . 5-3
Setting Up Static and Dynamic Visualization . . . . . . . . . . . . . . 5-4
Rendering Body Shapes in SimMechanics . . . . . . . . . . . . . . .
Choosing the Body Shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Equivalent Ellipsoids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Convex Hulls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-5
5-5
5-5
5-8
v
mech_pdf.book Page vi Tuesday, June 18, 2002 1:27 PM
Viewing Machines with Handle Graphics . . . . . . . . . . . . . . . 5-10
Interpreting Special Handle Graphics Symbols . . . . . . . . . . . . 5-10
Manipulating the Handle Graphics Window . . . . . . . . . . . . . . 5-13
Viewing Machines in Virtual Reality . . . . . . . . . . . . . . . . . . . 5-14
Interpreting Special Virtual Reality Symbols . . . . . . . . . . . . . 5-15
Changing the Observer’s Viewpoint . . . . . . . . . . . . . . . . . . . . . 5-16
Creating a Custom Machine Visualization . . . . . . . . . . . . . . 5-20
Creating Virtual Worlds for SimMechanics Models . . . . . . . . 5-20
Interfacing SimMechanics with Virtual Worlds . . . . . . . . . . . . 5-24
SimMechanics Block Reference
6
Blocks – By Category . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating Bodies and Grounds . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating Joints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating Constraints and Drivers . . . . . . . . . . . . . . . . . . . . . . .
Creating Actuators and Sensors . . . . . . . . . . . . . . . . . . . . . . . .
Additional Useful Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-2
6-3
6-3
6-5
6-5
6-6
Blocks – Alphabetical List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7
SimMechanics Command Reference
7
vi
Contents
mech_pdf.book Page vii Tuesday, June 18, 2002 1:27 PM
Glossary
A
Selected Bibliography
B
vii
mech_pdf.book Page viii Tuesday, June 18, 2002 1:27 PM
viii Contents
mech_pdf.book Page ix Tuesday, June 18, 2002 1:27 PM
About This Guide
Using This Guide (p. x)
Overview of how to find help
Getting Online Help (p. xi)
Using the online help system to view documentation
Opening SimMechanics Demos (p. xii)
Opening demo model files online
Typographical Conventions (p. xiii)
Summary of special fonts and notations
Mechanical Units (p. xiv)
Physical units used in SimMechanics
Mechanical Conventions and
Abbreviations (p. xv)
Mechanical assumptions and abbreviations implicit in
this user’s guide
mech_pdf.book Page x Tuesday, June 18, 2002 1:27 PM
About This Guide
Using This Guide
Use this guide as you work with the software to learn about the powerful
capabilities of the SimMechanics.
Introductory Chapters
Beginning users with limited Simulink and/or mechanical simulation
experience will especially benefit by starting with the first two chapters:
• Read “Introducing SimMechanics” for an overview of features,
capabilities, and functions, and to run a model from the Demos Library.
• Use the “Learning Basic Procedures” chapter to open the block library,
review essential model building steps, and build simple tutorial models.
General Procedures and Advanced Features Chapters
• Learn in “Modeling Mechanical Systems” how to represent and analyze
machines with block diagrams.
• Continue with “Running Mechanical Models” to set up your simulation,
run models in various analysis modes, and troubleshoot errors.
• The “Visualizing and Animating Machines” chapter explains how to use
the SimMechanics visualization features.
Reference Chapters
• Consult “SimMechanics Block Reference” and “SimMechanics Command
Reference” for a description of each block’s operation, parameters, and
characteristics, and for command line functions.
• Entries in the “Glossary” define technical terms used in this guide.
• The “Selected Bibliography” lists additional resources that discuss the
theory applicable to SimMechanics.
Note This SimMechanics User’s Guide assumes that you already have some
experience with building and running models in Simulink.
x
mech_pdf.book Page xi Tuesday, June 18, 2002 1:27 PM
Getting Online Help
Getting Online Help
There are a number of easy ways to get online help as you work with
SimMechanics:
• Help Browser – There are several ways to open the Help browser:
- Select Full Product Family Help from the MATLAB Help menu.
- Select Help from the MATLAB View menu.
- Enter doc mech at the command line.
Use the Contents pane on the left of the Help browser to find a section or
chapter. Use the Search and Index features to find specific words.
• Block Library Browser – Click Help on the SimMechanics library menu bar
to open online Help on Simulink, blocks, shortcuts, S-functions, and demos.
• Context-sensitive help – To access the help for a block, right-click the block or
click Help on the block’s dialog box.
• Command line – Enter doc('block name') at the command line to access
the help for a block with the name block name. Spaces and capitalization in
the block name are ignored.
If the same block name appears in other blocksets, MATLAB returns an
Overloaded methods warning in the Command Window to flag those
instances.
• Help desk (via the Web) – Use a Web browser or the Help browser to connect
to the MathWorks Web site at URL http://www.mathworks.com. Follow the
Documentation link on the Support Web page for remote access to the
documentation.
For Further Help and Feedback
The MathWorks hopes that you find SimMechanics powerful and easy to use.
Your suggestions and comments are welcome.
[email protected]
[email protected]
[email protected]
[email protected]
Technical support
Product enhancement suggestions
Bug reports
Documentation error reports
For more contact and program information, visit the MathWorks Web site at
www.mathworks.com.
xi
mech_pdf.book Page xii Tuesday, June 18, 2002 1:27 PM
About This Guide
Opening SimMechanics Demos
The SimMechanics documentation makes extensive use of demo models. To
open a SimMechanics demo from the Help browser, click the Demos tab in the
Help Navigator pane on the left. Locate the demo in the list and open it. You
can also open demos by entering the model name at the command line.
xii
mech_pdf.book Page xiii Tuesday, June 18, 2002 1:27 PM
Typographical Conventions
Typographical Conventions
This User’s Guide assumes some or all of these conventions.
Item
Convention
Example
Example code
Monospace font
To assign the value 5 to A,
enter
A = 5
Function names, syntax,
filenames, directory/folder
names, and user input
Monospace font
The cos function finds the
cosine of each array element.
Syntax line example is
MLGetVar ML_var_name
Buttons and keys
Boldface with book title caps
Press the Enter key.
Literal strings (in syntax
descriptions in reference
chapters)
Monospace bold for literals
f = freqspace(n,'whole')
Mathematical
expressions
Italics for variables
This vector represents the
polynomial p = x2 + 2x + 3.
MATLAB output
Monospace font
Standard text font for functions,
operators, and constants
MATLAB responds with
A =
5
Menu and dialog box titles
Boldface with book title caps
Choose the File Options
menu.
New terms and for
emphasis
Italics
An array is an ordered
collection of information.
Omitted input arguments
(...) ellipsis denotes all of the
input/output arguments from
preceding syntaxes.
[c,ia,ib] = union(...)
String variables (from a
finite list)
Monospace italics
sysc = d2c(sysd,'method')
xiii
mech_pdf.book Page xiv Tuesday, June 18, 2002 1:27 PM
About This Guide
Mechanical Units
SimMechanics accepts any mixture of MKS (SI), cgs, and English units.
xiv
Quantity
MKS (SI)
cgs
English
Length
meter (m)
centimeter (cm)
inch (in),
foot (ft)
Time
second (s)
second (s)
second (s)
Mass
kilogram (kg)
gram(g)
slug (slug)
Velocity
meters/second (m/s)
centimeters/second
(cm/s)
inches/second (in/sec),
feet/second (ft/sec)
Acceleration
(Gravity)
meters/second2
(m/s2)
centimeters/second2
(cm/s2)
inches/second2 (in/s2),
feet/second2 (ft/s2)
Force
Newton (N)
dyne (dyn)
pound (lb)
Angle
radian (rad),
degree (deg)
radian (rad),
degree (deg)
radian (rad),
degree (deg)
Inertia
kilogram-meter2 (kg-m2)
gram-centimeter2
(g-cm2)
slug-foot2 (slug-ft2)
Angular velocity
radians/second (rad/s),
degrees/second (deg/s)
radians/second (rad/s),
degrees/second (deg/s)
radians/second (rad/s),
degrees/second (deg/s)
Angular
acceleration
radians/second2 (rad/s2),
degrees/second2 (deg/s2)
radians/second2 (rad/s2),
degrees/second2 (deg/s2)
radians/second2 (rad/s2),
degrees/second2 (deg/s2)
Torque
Newton-meter (N-m)
dyne-centimeter
(dyn-cm)
pound-foot (lb-ft)
mech_pdf.book Page xv Tuesday, June 18, 2002 1:27 PM
Mechanical Conventions and Abbreviations
Mechanical Conventions and Abbreviations
Right-Hand Rule Is Assumed
For rotational motion and vector cross products a × b, the right-hand (RH) rule
is always assumed.
Common Abbreviations
These are the abbreviations of mechanical terms most commonly used in this
guide:
Abbreviation
Meaning
CG
center of gravity
CS
coordinate system
DoF
degree of freedom
RF
reference frame
Glossary Terms
Special mechanical or SimMechanics terms are frequently hyperlinked to
entries in the “Glossary”.
xv
mech_pdf.book Page xvi Tuesday, June 18, 2002 1:27 PM
About This Guide
xvi
mech_pdf.book Page 1 Tuesday, June 18, 2002 1:27 PM
1
Introducing SimMechanics
SimMechanics is a tool to model mechanical systems for use with Simulink® and MATLAB®.
Welcome to Physical Modeling
(p. 1-2)
Introduction to SimMechanics and the Physical Modeling
environment
Related Products (p. 1-3)
Products you might want to use with SimMechanics and
requirements for virtual reality visualization
Running a Demo Model (p. 1-5)
A simple conveyor showing how to use SimMechanics blocks
in the Simulink environment
What Can You Do with
SimMechanics? (p. 1-17)
Survey of what SimMechanics does, including special
simulation features
mech_pdf.book Page 2 Tuesday, June 18, 2002 1:27 PM
1
Introducing SimMechanics
Welcome to Physical Modeling
Welcome to Simulink Physical Modeling, encompassing the modeling and
design of systems according to basic physical principles. Physical Modeling
runs within the Simulink environment and interfaces seamlessly with the rest
of Simulink and with MATLAB. Unlike other Simulink blocks, which represent
mathematical operations or operate on signals, Physical Modeling blocks
represent physical components or relationships directly.
What Is SimMechanics?
SimMechanics is a part of Physical Modeling. Its purpose is the engineering
design and simulation of mechanical systems of rigid bodies connected by
joints, with the standard Newtonian dynamics of forces and torques.
SimMechanics simulates translational and rotational motion in three
dimensions. SimMechanics provides you with a suite of tools to specify bodies
and their mass properties, their possible motions, kinematic constraints,
coordinate systems, and the means of initiating and measuring motions.
SimMechanics represents a mechanical system by a connected block diagram,
like other Simulink models, and can encompass hierarchical subsystems.
SimMechanics’ internal visualization tools display and animate simplified
representations of 3-D machines, before and during simulation, in these
environments:
• MATLAB Handle Graphics® window
• Virtual world rendered in a virtual reality viewer
What’s in This Chapter?
This chapter introduces you to the capabilities of SimMechanics and its
relationship to other MathWorks products:
• “Related Products” on page 1-3
• “Running a Demo Model” on page 1-5
• “What Can You Do with SimMechanics?” on page 1-17
1-2
mech_pdf.book Page 3 Tuesday, June 18, 2002 1:27 PM
Related Products
Related Products
The MathWorks provides several products that are especially relevant to the
kinds of tasks you can perform with SimMechanics.
Requirements for SimMechanics
You must have the following products installed to use SimMechanics:
• MATLAB 6.5
• Simulink 5.0
Virtual Reality-Based Visualization
The optional virtual reality-based visualization blocks in SimMechanics
requires the Virtual Reality Toolbox Version 3.0. The toolbox ships with its own
virtual reality viewer.
You can improve virtual reality speed and graphics resolution by adding a
graphics accelerator hardware card to your system. Animation of simulations
is sensitive to central processor and graphics card speed and memory.
Experiment to find a reasonable compromise between quality and speed for
your system.
Other Related Products
The toolboxes listed in the following table include functions that extend the
capabilities of MATLAB. The blocksets include blocks that extend the
capabilities of Simulink. These products will enhance your use of
SimMechanics in various applications.
For more information about any MathWorks software products, see either of
the following:
• The online documentation for that product if it is installed or if you are
reading the documentation from the CD
• The MathWorks Web site at www.mathworks.com; see the “Products” section.
1-3
mech_pdf.book Page 4 Tuesday, June 18, 2002 1:27 PM
1
Introducing SimMechanics
1-4
Product
Description
Control System Toolbox
Design and analyze feedback control systems
Dials & Gauges Blockset
Monitor signals and control simulation
parameters with graphical instruments
Optimization Toolbox
Solve standard and large-scale optimization
problems
SimPowerSystems
Model and simulate electrical power systems
Simulink
Design and simulate continuous- and
discrete-time systems
Stateflow®
Design and simulate event-driven systems
Virtual Reality Toolbox
Create and manipulate virtual reality worlds
from within MATLAB and Simulink
mech_pdf.book Page 5 Tuesday, June 18, 2002 1:27 PM
Running a Demo Model
Running a Demo Model
This demo model uses a few blocks in the library to simulate a simple machine
with feedback control. You will see how SimMechanics implements the model
in conjunction with standard Simulink features.
The demo model simulates a conveyor belt loading mechanism. A simple
controller (not shown), with a sensor and an actuator, guides the mechanism
with a saturation limit and anti-windup logic for the applied torque. The
controller is user-adjustable and sets the stopping point for the pusher.
Load
Link 2
Link 3
Belt
Pusher
Ground 2
Link 4
Ground 1
Mounting
Link 1
Ground 2
Conveyor Loader Mechanism
1-5
mech_pdf.book Page 6 Tuesday, June 18, 2002 1:27 PM
1
Introducing SimMechanics
What This Demo Illustrates
The conveyor mechanism demo illustrates some important features of
SimMechanics:
• Representing bodies and degrees of freedom with Body and Joint blocks,
respectively
• Using SimMechanics blocks with normal Simulink blocks
• Feeding in and feeding out Simulink signals to and from SimMechanics
blocks with Actuator and Sensor blocks, respectively
• Encapsulating groups of blocks into subsystems
• Visualizing and animating a machine by its component bodies
Caution You might want to make modifications to this demo model. To avoid
errors, be sure
• Not to attempt connecting Simulink signal lines directly to SimMechanics
blocks other than Actuators and Sensors
• To keep the collocation of the Body coordinate system origins on either side
of each assembled Joint to within assembly tolerances
Saving modified demo models in a different directory from the demos is
recommended.
Opening the Model
You can open the demo model in several ways. Here is the general procedure
for starting SimMechanics demos in the Launch Pad area of the MATLAB
desktop:
1 Open the SimMechanics entry.
2 Double-click the Demos subentry in the tree. This opens the MATLAB Help
browser with Demos selected in the left Help Navigator pane.
3 Double-click Conveyor Mechanism from the list of models in the list on the
left or on the right.
1-6
mech_pdf.book Page 7 Tuesday, June 18, 2002 1:27 PM
Running a Demo Model
Alternatively, you can open the same MATLAB Demos window by entering
demos at the MATLAB command line.
To get started quickly with this specific demo, you can use either of these steps:
• Enter mech_conveyor at the MATLAB command line.
• Online Help users can click mech_conveyor here.
The Block Diagram Model
The block diagram model opens in a model window.
Start
Stop
At the same time, a Scope block also opens with two plots, labeled Measured
Position and Torque, respectively.
1-7
mech_pdf.book Page 8 Tuesday, June 18, 2002 1:27 PM
1
Introducing SimMechanics
What the Model Contains
Note some features of the model:
• Ignore the Position Controller, Joint Sensor, and Joint Actuator blocks for a
moment. Note that the loading mechanism follows the tree of bodies and
joints shown in the Conveyor Loader Mechanism figure on page 1-5:
- There are four rotating link bodies and one sliding pusher body, as well as
three ground points on the immobile mounting represented by Ground
blocks. Double-click the Body and Ground blocks to see their dialog boxes.
- The pusher slides and the links rotate relative to one another and to the
ground points on the mounting. There are seven apparent degrees of
freedom (DoFs) in the machine, represented by seven Joints, but the
geometry constrains the motion to one actual DoF. Double-click the
Revolute blocks to see how rotational DoFs are expressed in their dialog
boxes.
- The Prismatic block expresses the linear motion of Pusher relative to
Ground_2. The Revolute block expresses the angular motion of Link4 (the
crank of the whole mechanism) relative to Ground_1.
• The Joint Sensor detects the position of Pusher via the Prismatic block. The
Joint Actuator applies torque to Link4 via the Revolute block. Double-click
the Sensor and Actuator blocks to view how the machine motions and
forces/torques are transformed into Simulink signals.
• The Position Controller subsystem converts the Pusher position information
into a feedback signal to actuate Revolute and thus Link4. You can open the
Position Controller block to view this subsystem, which is made of normal
Simulink blocks.
1-8
mech_pdf.book Page 9 Tuesday, June 18, 2002 1:27 PM
Running a Demo Model
The Reference Position block gives you control over the stopping position of
the pusher by modulating the control signal that actuates Revolute.
• In the Scope block, you can view both the Pusher position in millimeters
(mm) relative to Ground_2 as the Measured Position plot and the torque in
Newton-meters (N-m) applied to Link4 relative to Ground_1 as the Torque
plot.
Starting the Demo
You can now run the model as it is when you first open it:
1 In the Simulation menu, select Simulation parameters. The Simulation
parameters dialog box appears:
a The default Stop time is inf, so the simulation keeps running once you
start it. You should leave it at inf and stop the simulation manually the
first few times you run it.
Later you can apply a finite stop time (in seconds) if you want.
b Leave the Solver options entries at default values and close the box.
1-9
mech_pdf.book Page 10 Tuesday, June 18, 2002 1:27 PM
1
Introducing SimMechanics
2 From the Simulation menu, select Start. In Microsoft Windows, you can
also click the Start button in the model window toolbar.
The measured position of the pusher and the torque applied to maintain that
position start and remain essentially constant in the Scope plots.
3 To see greater detail at the simulation start, stop the simulation before the
time passes 20 seconds.
Modifying the Model
Here are two modifications of the demo you can try. One illustrates the simple
user-driven controller you can adjust to change the motion of the pusher. The
other illustrates a powerful feature of SimMechanics, visualization of a
machine and animation of its simulated motion.
To make these modifications, it is best to close and restart the demo.
1-10
mech_pdf.book Page 11 Tuesday, June 18, 2002 1:27 PM
Running a Demo Model
Changing the Pusher Reference Position
The Reference Position block is actually a Simulink Slider Gain block (from the
Simulink Math Library) and controls where the pusher comes to rest.
You can adjust the Reference Position block to change where the pusher stops:
1 Open the Reference Position block. You see an adjustable slider to set the
position of the pusher’s rest point.
2 Enter values in the Low and High fields to set the lower and upper limits of
the allowed slider range. The defaults in this demo are 0 and 0.2, with
implied units of meters (m).
3 Enter a value in the central field to set the pusher stopping point, which you
can also adjust by clicking and dragging the slider between the lower and
upper limits. The default is 0 (meters).
You can apply changes to the reference position to the simulation in two ways:
• Reset the Reference Position block first, then start the demo. You see the
pusher trajectory track differently now, toward the new stopping point.
For example, resetting the Reference Position to 0.1 and restarting the demo
produces these Scope plots, with Autoscale and zooming applied:
1-11
mech_pdf.book Page 12 Tuesday, June 18, 2002 1:27 PM
1
Introducing SimMechanics
The asymptotic measured position now tends to 100 mm (0.1 m), and the
torque applied to keep the pusher there has changed.
• Start the demo with the Reference Position block open and move the slider
up and down as the simulation runs. Watch the Scope. The measured
position and the necessary torque adjust to follow the new reference position.
Visualizing and Animating the Conveyor
You can visualize the conveyor mechanism as a static machine and animate the
simulation as well with the two visualization tools:
• One tool, based on MATLAB Handle Graphics, is built into SimMechanics.
• The other tool requires the Virtual Reality Toolbox.
With either visualization tool, you can display the bodies of the machine in two
possible abstract representations:
• Equivalent ellipsoids use the inertia tensors and masses of the bodies. Each
body has a unique homogeneous ellipsoid equivalent to it in mass and inertia
tensor.
1-12
mech_pdf.book Page 13 Tuesday, June 18, 2002 1:27 PM
Running a Demo Model
• Convex hulls use the attached Body coordinate systems (CSs) of the bodies.
A body must have at least four non-coplanar Body CS origins to enclose a
convex hull with nonzero volume. If the Body has fewer than four Body CS
origins or if the origins are coplanar or collinear or coincident, the
visualization tools render it with simpler figures (triangle, line, or point).
Handle Graphics Visualization. First try visualizing the conveyor with Handle
Graphics:
1 From the Simulation menu, click Mechanical environment. The
Mechanical Environment Settings dialog box appears.
2 Click the Visualization tab. Select the Draw machine in initial state and
Animate machine during simulation check boxes.
3 Leave the other defaults as they are and close the dialog.
Visualization Control
Default Value
Draw machine using
MATLAB Graphics
Represent bodies as
Convex hulls
Update machine
When diagram changes
A MATLAB Handle Graphics window appears, displaying the conveyor
machine at rest in its initial state.
The bodies are rendered in the default representation, as convex hulls. The
bodies and Body coordinate system axis triads are also displayed as defaults.
4 Change Reference Position to a nonzero value such as 0.1 or 0.2.
5 Restart the simulation. The Handle Graphics window animates the machine
in motion. You can compare this motion to the plots in the scope.
1-13
mech_pdf.book Page 14 Tuesday, June 18, 2002 1:27 PM
1
Introducing SimMechanics
SimMechanics special menu
Body centers of gravity
Convex
hulls of
machine
6 Click a body in the Handle Graphics window. The model window comes back
into focus with the corresponding Body block highlighted in color.
7 Open the special SimMechanics menu in the upper right of the Handle
Graphics window.
Here, you can reconfigure the special display properties for machines:
bodies, Body CS axis triads, colored fill-in patches connecting Body CSs on
the same body, and user viewpoint orientation.
8 Close the Handle Graphics window when you are finished.
1-14
mech_pdf.book Page 15 Tuesday, June 18, 2002 1:27 PM
Running a Demo Model
Virtual Reality Visualization. Now visualize the conveyor in virtual reality scene:
1 From the Simulation menu, click Mechanical environment. The
Mechanical Environment Settings dialog box appears.
2 Click the Visualization tab. Select the Draw machine in initial state and
Animate machine during simulation check boxes.
3 Using the pull-down menus, change Draw machine using to Virtual
Reality Toolbox and Represent bodies as to Equivalent ellipsoids.
Leave Update machine as When diagram changes.
A virtual reality viewer opens, displaying the conveyor machine at rest in its
initial state.
The bodies are rendered as equivalent ellipsoids.
4 Restart the simulation. The viewer now animates the machine in motion.
5 Use the virtual reality controls at the bottom of the virtual scene to change
the user viewing position and orientation:
- Moving the central dial pointer around the outside of the dial circle, you
can change the direction of your movement. Pressing the dial pointer itself,
you then move in that direction.
- Left-clicking and rolling your mouse in the scene changes your viewpoint.
- Right-clicking in the scene opens the control menu.
See “Viewing Machines in Virtual Reality” on page 5-14 for how to control
the virtual scene.
1-15
mech_pdf.book Page 16 Tuesday, June 18, 2002 1:27 PM
1
Introducing SimMechanics
Bodies
Viewpoint control buttons
Central dial
Navigation methods
6 While the animation is running, open the Reference Position block and move
the slider up and down. In addition to what you can see in the Scope plots,
the viewer directly animates the pusher trajectory in space as the
mechanism responds to your adjustment.
1-16
mech_pdf.book Page 17 Tuesday, June 18, 2002 1:27 PM
What Can You Do with SimMechanics?
What Can You Do with SimMechanics?
SimMechanics is a set of block libraries and special simulation features for use
in the Simulink environment. You connect SimMechanics blocks to normal
Simulink blocks through special Sensor and Actuator blocks.
The blocks in these libraries are the elements of a platform for modeling
mechanical systems consisting of any number of rigid bodies, connected by
joints representing translational and rotational degrees of freedom.
SimMechanics can represent machines with components organized into
hierarchical subsystems, as in normal Simulink models. You can impose
kinematic constraints, apply forces/torques, integrate Newton’s equations, and
measure resulting motions. You saw some of these features at work in the
Conveyor Loader demo model.
Glossary Terms For an explanation of special terms, see “Summary of
Technical Vocabulary” on page 2-57 and the “Glossary.”
Modeling Machines with SimMechanics
SimMechanics extends Simulink with a library of blocks for specifying a
mechanical system’s components and properties and solving the system’s
equations of motion. The blocks are similar to other Simulink blocksets, with
some properties unique to SimMechanics.
These are the major steps you follow, using SimMechanics, to build and run a
model representation of a machine:
• Specify body inertial properties, degrees of freedom, and constraints, along
with coordinate systems attached to bodies to measure positions and
velocities.
• Set up sensors and actuators to record and initiate body motions, as well as
apply forces/torques.
• Start the simulation, calling the Simulink solvers to find the motions of the
system, while maintaining any imposed constraints.
• Visualize the machine while building the model and animate the simulation
while running, using the Handle Graphics or virtual reality-based
visualization tool.
1-17
mech_pdf.book Page 18 Tuesday, June 18, 2002 1:27 PM
1
Introducing SimMechanics
Bodies, Coordinate Systems, Joints, and Constraints
SimMechanics supports user-defined Body blocks specified by their masses
and inertia tensors. You connect the bodies to one another with joints
representing the possible motions of bodies relative to one another, the
system’s degrees of freedom (DoFs). You can impose kinematic constraints on
the allowed relative motions of the system’s bodies. These constraints impose
restrictions on body DoFs or drive body motions as explicit functions of time.
The SimMechanics interface gives you many ways to specify coordinate
systems (CSs), constraints/drivers, and forces/torques. You can
• Attach coordinate systems (Body CSs) to different points on various Body
blocks to specify local axes and origins for actuating and sensing
• Take composite Joint blocks from the SimMechanics library or extend the
existing Joint library by constructing your own composite Joints from
primitive Joint blocks
• Use other Simulink tools as well as MATLAB expressions in the
SimMechanics environment
User-Defined Local Coordinate Systems
SimMechanics automatically sets up a single absolute inertial reference frame
and coordinate system (CS) called World. You can also set up your own Local
CSs:
• Grounded CSs attached to Ground blocks at rest in the World RF but
displaced from the World CS origin
• Body CSs fixed on the system’s rigid bodies and moving rigidly with the
bodies
Constraint Solver Types
Specifying functional algebraic or kinematic relations between any two DoFs,
you can constrain the motion of the system by connecting Constraint blocks to
pairs of Bodies. Connecting Driver blocks applies time-dependent constraints.
The applied constraints are interpreted in one of three constraint solver types:
tolerancing, machine precision, or stabilizing solvers.
1-18
mech_pdf.book Page 19 Tuesday, June 18, 2002 1:27 PM
What Can You Do with SimMechanics?
Sensors and Actuators
Sensors and Actuators are the blocks you use to interface between
non-SimMechanics Simulink blocks and SimMechanics blocks:
• Sensor blocks detect the motion of Bodies and Joints.
- Sensor block outputs are Simulink signals that you can use like any other
Simulink signal. You can connect a Sensor block to a Simulink Scope block
and display the motions in a system, such as positions, velocities, and
accelerations, as functions of time.
- You can feed these Sensor output signals back to a SimMechanics system
to specify forces/torques in the system, via Actuator blocks.
• Actuator blocks specify the motions of Bodies or Joints.
- They specify body or joint motion as explicit position, velocity, or
acceleration functions of time.
- They accept force/torque signals from Simulink and can apply
forces/torques on a body or joint from these signals. The Simulink signals
can include Sensor block outputs fed back from the system itself.
- They detect discrete locking and unlocking of Joints to implement
discontinuous friction forces.
- They prepare a system’s initial kinematic state (positions and velocities)
for forward integration of the Newtonian dynamics.
Simulating Mechanical Motion
SimMechanics Analysis Modes
SimMechanics provides four modes for analyzing the mechanical systems you
simulate:
• Forward dynamic analysis integrates applied forces/torques, maintaining
imposed constraints, and obtains resulting motions.
• Inverse dynamic analysis finds the forces/torques necessary to produce
user-specified motions in topologically open systems.
• Kinematic analysis finds the forces/torques necessary to produce
user-specified motions in topologically closed (loop) systems.
• Trimming analysis searches for steady or equilibrium states of a system.
1-19
mech_pdf.book Page 20 Tuesday, June 18, 2002 1:27 PM
1
Introducing SimMechanics
In the Conveyor Loader demo model, you analyzed the motion in the Forward
Dynamics mode. The model specified forces/torques and initial conditions, then
integrated Newton’s laws to obtain the machine’s motion.
Mathematical Conditions for Rigid Body Motion to Be Determined. For the Forward
Dynamics problem to be mathematically solvable, the system must satisfy
certain conditions:
• The masses and inertia tensors of all bodies are known.
• All forces and torques acting on each body at each instant of time are known.
• Any constraints among DoFs are specified as constraints among positions
and/or velocities alone. These are kinematic constraints; that is, zeroth- and
first-order differential constraints. If the constraints are mutually consistent
and are fewer in number than the DoFs, the system’s motion is nontrivial
and can be found by integration.
• Initial conditions (initial positions and velocities) are specified and
consistent with all constraints.
In Inverse Dynamics or Kinematics analysis modes, you specify the motions
instead and obtain the forces/torques needed to produce those motions.
Forward Dynamics
In the Forward Dynamics mode, SimMechanics uses the Simulink suite of
ordinary differential equation (ODE) solvers to solve the mechanical ODEs
(Newton’s equations). The ODE solvers project the motion of the DoFs onto the
mathematical manifold of the kinematic constraints and yield the
forces/torques of constraint acting within the system.
You can also use the Simulink linearization tool to linearize the forward motion
of a system and obtain its response to small perturbations in forces/torques,
constraints, and/or initial conditions.
Inverse Dynamics
SimMechanics can solve the reverse of the forward dynamics problem: instead
of starting with given forces/torques and finding the resulting motions, the
Inverse Dynamics mode determines the forces/torques needed to produce a
given set of motions that you apply to the machine. This mode only works with
open topology systems (model diagrams without closed loops).
1-20
mech_pdf.book Page 21 Tuesday, June 18, 2002 1:27 PM
What Can You Do with SimMechanics?
Kinematics
You cannot analyze machines represented by model diagrams with closed
topology (models with loops) using the Inverse Dynamics mode. The
Kinematics mode analyzes the motion of closed-loop models, including the
extra internal invisible constraints arising from loop closures.
You also use the Kinematics mode to determine the forces/torques needed to
produce a given set of motions applied to a closed-loop machine model.
Constraints can only appear in closed loops, so you use the Kinematics mode to
analyze constraint forces/torques as well.
Trimming
Finally, the Trimming mode searches for steady or equilibrium states in a
system’s motion using the Simulink trim command. The states, once found, are
the starting point for linearization analysis using the Simulink linmod and
dlinmod commands.
Visualizing and Animating Machines
Virtual Reality Visualization The SimMechanics virtual reality
visualization feature requires the optional Virtual Reality Toolbox. Refer to the
Virtual Reality Toolbox User’s Guide for full information on installing this
toolbox.
You can also animate more realistic renderings of bodies by creating your own
virtual world with the Virtual Reality Toolbox. Animating the motion of your
custom virtual bodies with sensor signals requires building your own interface
from SimMechanics to your virtual world. See “Creating a Custom Machine
Visualization” on page 5-20.
We recommend you allocate generous central processor power, graphics card
speed, and memory for the virtual reality feature, especially for animation.
SimMechanics supports two internal visualization/animation tools, powerful
aids in building, animating, and debugging machines that you saw in the
Conveyor Loader demo:
1-21
mech_pdf.book Page 22 Tuesday, June 18, 2002 1:27 PM
1
Introducing SimMechanics
• The Handle Graphics-based visualization tool built into SimMechanics. The
machine is displayed in a Handle Graphics window. You can use all the
standard Handle Graphics functions to change the viewer perspective. The
window also has options special to SimMechanics.
• An optional visualization tool, called internally by SimMechanics, based on
the Virtual Reality Toolbox. The machine is displayed in a virtual scene
through a virtual reality viewer. You can change user perspective in the
virtual scene. You can change the bodies’ properties only by changing their
model blocks, not directly through the viewer.
Both tools display the bodies and their Body coordinate systems (CSs) in an
abstract, simplified form. You can render the bodies as convex hulls or as
equivalent ellipsoids.
Visualizing Bodies During Machine Building
One way to use the visualization tool is while you’re building your machine:
• You can open a virtual world or Handle Graphics window before you start to
build and then watch the bodies appear and be configured in the display as
you create and configure them in your model window.
• You can also build a model without visualization, then open a virtual scene
or Handle Graphics window when you’re done to see the completed machine.
The first approach is especially useful if you’re just starting to learn how to use
SimMechanics and/or modeling complex machines. In that case, visualization
can guide you in assembling the body geometries and connections.
Representing Bodies
The visualization tools display your machine bodies in a virtual world or
Handle Graphics window. The tools have two abstract shapes to represent the
bodies, one derived from body mass properties, the other from bodies’ attached
Body coordinate systems (CSs). These shapes are geometric schematics,
because SimMechanics accepts only limited body information:
Mass properties. A rigid body’s dynamics are partly determined by the body’s
total mass and how that mass is distributed in space, as encapsulated in its
inertia tensor. Any rigid body has a unique corresponding homogeneous
ellipsoid with the same mass and inertia tensor.
1-22
mech_pdf.book Page 23 Tuesday, June 18, 2002 1:27 PM
What Can You Do with SimMechanics?
Using these equivalent ellipsoids is one visualization mode of representing a
body in space. The relative sizes of the ellipsoid axes indicate the relative
inertial moments about each axis.
Here is a rigid body represented by its virtual reality equivalent ellipsoid.
Body CS origins
World CS triad
Ellipsoid
surface
Geometric properties. In SimMechanics, every body is represented by a Body
block with at least one attached Body CS. The minimum Body CS origin is
located at the body’s center of gravity (CG).
1-23
mech_pdf.book Page 24 Tuesday, June 18, 2002 1:27 PM
1
Introducing SimMechanics
Other Body CSs can also be attached to a Body. In particular, any Joint,
Constraint/Driver, Actuator, or Sensor attached to a Body must be attached at
a Body CS origin.
The set of Body CS origins can be enveloped by a surface; if there are more than
three non-coplanar origins, the surface encloses a volume. The minimal surface
with outward-bending curvature enveloping this set is the convex hull, which
becomes the other abstract shape for visualizing a body in space. Fewer than
four CS origins produce simpler Body figures.
Here is the same body as a convex hull in a virtual scene. The Body CS origins
are coplanar in this case, and the hull is two triangles.
Body CS origins
Convex hull
World CS
triad
Virtual reality controls
1-24
mech_pdf.book Page 25 Tuesday, June 18, 2002 1:27 PM
What Can You Do with SimMechanics?
Animating Machine Motion During Simulation
Besides rendering your machine bodies either while you build a model or as a
completed model, you can also keep the visualization tools open while a model
is running in the Simulink model window. The Handle Graphics window or
virtual reality viewer animates the simulation of the bodies’ motions, whether
you choose to render the bodies as ellipsoids or as convex hulls, and moves in
parallel with however the model changes on the Simulink side.
1-25
mech_pdf.book Page 26 Tuesday, June 18, 2002 1:27 PM
1
Introducing SimMechanics
1-26
mech_pdf.book Page 1 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Constructing simple mechanical models with SimMechanics is easy to learn if you already know how
to make Simulink models. If you are not already familiar with Simulink, please see the Simulink
documentation.
Introducing the SimMechanics Block
Libraries (p. 2-2)
Overview of the SimMechanics block libraries for
representing machine components
Creating SimMechanics Models
(p. 2-7)
Summary of the most important steps for representing a
machine by a SimMechanics model
Building a Simple Pendulum (p. 2-11)
A beginning tutorial to model and simulate a simple
one-degree-of-freedom system
Visualizing a Simple Pendulum
(p. 2-30)
A tutorial that shows how to visualize a simple machine
with SimMechanics
A Four Bar Mechanism (p. 2-36)
A more advanced tutorial that models and simulates a
closed-loop machine
Summary of Technical Vocabulary
(p. 2-57)
Summary of special terms used in SimMechanics with
links to the Glossary chapter
mech_pdf.book Page 2 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Introducing the SimMechanics Block Libraries
SimMechanics is organized into hierarchical libraries of closely related blocks.
The next section, “Viewing the Blocks,” shows how to view these libraries and
gives you a summary of what they contain:
• “Bodies Library” on page 2-4
• “Joints Library” on page 2-5
• “Constraints & Drivers Library” on page 2-5
• “Sensors & Actuators Library” on page 2-5
• “Utilities Library” on page 2-5
• “Demos Library” on page 2-6
Viewing the Blocks
There are several ways to get to the top-level SimMechanics library on
Microsoft Windows and UNIX platforms.
2-2
mech_pdf.book Page 3 Tuesday, June 18, 2002 1:27 PM
Introducing the SimMechanics Block Libraries
Microsoft Windows Platforms
Microsoft Windows users can access the blocks through the Simulink Library
Browser. Open the SimMechanics entry in the contents tree.
You can also access the blocks directly inside the SimMechanics library in
several ways:
• In the Simulink Library Browser, right-click the SimMechanics entry.
• Click the SimMechanics entry in the Launch Pad area to expand its tree, and
then open the Block Library subentry.
• Enter mechlib at the MATLAB command line prompt.
UNIX Platforms
UNIX users can click the Simulink icon on the MATLAB menu bar, open the
Blocksets & Toolboxes library and then SimMechanics. You can also enter
mechlib at the command line.
2-3
mech_pdf.book Page 4 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
The SimMechanics Library
Once you perform one of these preceding steps, the SimMechanics library
opens.
Note This library displays six first-level block groups. You can expand each
library by double-clicking its icon. The Joints library contains two second-level
sublibraries. The Demos library opens the demos list in the Help browser.
The following sections summarize the blocks in each library. For an
explanation of special terms, see “Summary of Technical Vocabulary” on
page 2-57 and the “Glossary.” You can view the general SimMechanics
reference in the “SimMechanics Block Reference.”
Bodies Library
The Bodies library provides the Body block for representing user-defined
bodies by their mass properties (masses and inertia tensors), their positions
and orientations, and their attached Body coordinate systems (CSs). This
library also contains the Ground block representing immobile ground points,
which have their own Grounded CSs.
2-4
mech_pdf.book Page 5 Tuesday, June 18, 2002 1:27 PM
Introducing the SimMechanics Block Libraries
Joints Library
The Joints library provides the blocks to represent the relative motions
between bodies as degrees of freedom (DoFs). The library is made up of
assembled Joints listed individually and two sublibraries of specialized Joint
blocks.
An assembled joint restricts the Body CSs on the two bodies to which it is
connected. The assembled Joints are the primitive Prismatic, Revolute, and
Spherical blocks and ready-made composite Joints. Unless it is explicitly
labeled as disassembled, you can assume a generic Joint block is assembled.
Joints/Disassembled Joints Sublibrary. The Disassembled Joints sublibrary
provides blocks for disassembled joints, special joints that do not restrict the
Body CSs on the two connected bodies or the DoF axes of the two bodies. You
can only use Disassembled Joints to close a loop in your machine. You cannot
sense or actuate Disassembled Joints.
Joints/Massless Connectors Sublibrary. The Massless Connectors sublibrary
provides blocks for massless connectors, composite joints whose DoFs are
separated by a fixed distance. You cannot actuate or sense Massless
Connectors.
Constraints & Drivers Library
The Constraints & Drivers library provides blocks to specify prior restrictions
on DoFs between Bodies. These restrictions can be time-independent
constraints or time-dependent driving of DoFs with Simulink signals.
Sensors & Actuators Library
The Sensors & Actuators library provides blocks for sensing and initiating the
motions of joints and bodies. These blocks play a special role in connecting
SimMechanics blocks to other Simulink blocks, as described in “Connecting
SimMechanics Blocks” on page 3-3, “Modeling Actuators” on page 3-40, and
“Modeling Sensors” on page 3-53.
Utilities Library
The Utilities library contains miscellaneous blocks useful in building models.
2-5
mech_pdf.book Page 6 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Demos Library
The Demos library contains prewritten Simulink demonstration models using
SimMechanics and other Simulink blocks, as well as Stateflow blocks.
Double-clicking the Demos library icon calls the Help browser and displays the
SimMechanics demos list.
In the Help browser, click the Demos tab in the Help Navigator pane to the
left. To see the demos list, expand the Simulink entry, then click the
SimMechanics subentry. Double-click a demo model name in the list to open it.
2-6
mech_pdf.book Page 7 Tuesday, June 18, 2002 1:27 PM
Creating SimMechanics Models
Creating SimMechanics Models
To become comfortable building mechanical models, you might find it helpful
to work through the guided examples in subsequent sections of how to
configure and put together elements of SimMechanics to simulate simple
machines. This section gives you an overview of the model-building process
before you start:
• “Essential Steps to Build a Model”
• “Essential Steps to Configure and Run a Model” on page 2-9
The most important special terms used in this guide are summarized in
“Summary of Technical Vocabulary” on page 2-57.
Essential Steps to Build a Model
You use the same basic procedure for building a SimMechanics model
regardless of its complexity. The steps are similar to those for building a
regular Simulink model. More complex models add steps without changing
these basics:
1 Select Ground, Body, and Joint blocks. From the Bodies and Joints libraries,
drag and drop the Body and Joint blocks needed to represent your machine,
including at least one Ground block, into a Simulink model window.
Ground blocks are a special kind of Body and represent immobile ground
points at rest in absolute (inertial) space.
Body blocks represent rigid bodies.
Joint blocks represent relative motions between the Body blocks to which
they are connected.
2-7
mech_pdf.book Page 8 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
2 Position and connect blocks. Place Joint and Body blocks in proper relative
position in the model window and connect them in the proper order. The
essential result of this step is creation of a valid tree block diagram made of
Ground — Joint — Body — Joint — Body — ... — Body
with an open or closed topology and where at least one of the bodies is a
Ground block.
A Body can have more than two Joints attached, marking a branching of the
sequence. But Joints must be attached to two and only two Bodies.
3 Configure Body blocks. Click the Body blocks to open their dialog boxes;
specify their mass properties (masses and moments of inertia), then position
and orient the Bodies and Grounds relative to the World coordinate system
(CS) or to other CSs. You set up Body CSs here.
4 Configure Joint blocks. Click each of the Joint blocks to open its dialog box
and set translation and rotation axes and spherical pivot points.
5 Select, connect, and configure Constraint and Driver blocks. From the
Constraints & Drivers library, drag, drop, and connect Constraint and
Driver blocks in between pairs of Body blocks. Open and configure each
Constraint/Driver’s dialog box to restrict or drive the relative motion
between the two respective bodies of each constrained/driven pair.
6 Select, connect, and configure Actuator and Sensor blocks. From the Sensors
& Actuators library, drag and drop the Actuator and Sensor blocks that you
need to impart and sense motion. Reconfigure Body, Joint, and
Constraint/Driver blocks to accept Sensor and Actuator connections.
Connect Sensor and Actuator blocks. Specify control signals (applied
forces/torques or motions) through Actuators and measure motions through
Sensors.
Actuator and Sensor blocks connect SimMechanics blocks to
non-SimMechanics Simulink blocks. You cannot connect SimMechanics
blocks to regular Simulink blocks otherwise. Actuator blocks take inport
signals from normal Simulink blocks (for example, from the Simulink
Sources library) to actuate motion. Sensor block output ports generate
2-8
mech_pdf.book Page 9 Tuesday, June 18, 2002 1:27 PM
Creating SimMechanics Models
Simulink signals that you can feed to normal Simulink blocks (for example,
from the Simulink Sinks library).
In the most straightforward model of a machine, you apply forces/torques
and initial conditions, then start the simulation in the Forward Dynamics
mode to obtain the resulting motions. In the Kinematics and Inverse
Dynamics modes, you apply motions to all independent degrees of freedom.
With these modes, you can find the forces/torques needed to produce these
imposed motions.
7 Encapsulate subsystems. Systems made from SimMechanics blocks can
function as subsystems of larger models, like subsystems in normal
Simulink models. You can connect an entire SimMechanics model as a
subsystem to a larger model by using the Connection Port block in the
Utilities library.
Essential Steps to Configure and Run a Model
After you’ve built your model as a connected block diagram, you need to decide
how you want to run your machine, configure global settings, and set up
visualization.
• SimMechanics offers four analysis modes for running a machine model. The
mode you will probably use most often, at least at first, is Forward Dynamics.
But a more complete analysis of a machine makes use of the Kinematics,
Inverse Dynamics, and Trimming modes as well. You can create multiple
versions of the model, each with the same underlying machine, but
connected to Sensors and Actuators and configured differently for different
modes.
• You can also use the powerful visualization and animation features of
SimMechanics. You can visualize your machine as you build it or after you
are finished but before you start the simulation, as a tool for debugging the
machine geometry. You can also animate the machine model as you
simulate.
• Choose the analysis mode and configuring visualization, as well as other
important settings, in the Mechanical Environment Settings dialog box.
You might also need to reconfigure the Simulink Simulation Parameters
dialog for SimMechanics models. See “A Four Bar Mechanism” on page 2-36
for an example.
2-9
mech_pdf.book Page 10 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
The tutorials of this chapter introduce you to most of these steps.
Caution You might want to make modifications to these tutorial models. To
avoid errors, be sure
• Not to attempt connecting Simulink signal lines directly to SimMechanics
blocks other than Actuators and Sensors
• To keep the collocation of the Body coordinate system origins on either side
of each assembled Joint to within assembly tolerances
You should save multiple versions of models as you try different analysis
modes and configurations.
The first tutorial in the next section shows you how to configure the most basic
blocks in any model: Ground, Body, and a Joint, in order to create a simple
pendulum model. The second tutorial explains how to visualize and animate
the pendulum.
2-10
mech_pdf.book Page 11 Tuesday, June 18, 2002 1:27 PM
Building a Simple Pendulum
Building a Simple Pendulum
In this first tutorial, you drag, drop, and configure the most basic blocks needed
for any mechanical model, as well as add some sensors to measure motion. The
tutorial guides you through these aspects of model-building:
• “The World Coordinate System and Gravity” on page 2-12
• “Configuring a Ground Block” on page 2-12
• “Configuring a Body Block” on page 2-14
• “Configuring a Joint Block” on page 2-20
• “Adding Sensors and Starting the Simulation” on page 2-24
The end result is a model of a simple pendulum. The pendulum is a swinging
steel rod. We strongly recommend that users work through this tutorial first
before moving on to “Visualizing a Simple Pendulum” on page 2-30.
A Simple Pendulum: A Swinging Steel Rod
Opening the SimMechanics Block Library
Following one of the ways described earlier in the “Viewing the Blocks” section
in this chapter, open the SimMechanics library. Then from the SimMechanics
library, open a new, empty Simulink model window.
2-11
mech_pdf.book Page 12 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
The World Coordinate System and Gravity
Before you configure a Ground block, you need to understand SimMechanics’
internally defined fixed or “absolute” coordinate system (CS) called World. The
World CS sits at rest in the inertial reference frame also called World. The
World CS has an origin (0,0,0) and a triad of right-handed, orthogonal
coordinate axes.
The default World coordinate axes are defined so that
+x points right
+y points up (gravity in −y direction)
+z points out of the screen, in three dimensions
The vertical direction or up-and-down is determined by the gravity vector
direction (acceleration g) relative to the World axes. Gravity is a background
property of a model that you can reset before starting a simulation, but does
not dynamically change during a simulation.
See “Mechanical Environment Settings Dialog Box” on page 4-7 for displaying
global mechanical properties of SimMechanics models.
Configuring a Ground Block
World serves as the single absolute CS that defines all other CSs. But you can
create additional ground points at rest in World, at positions other than the
World origin, by using Ground blocks. Ground blocks, representing ground
points, play a dynamical role in machine models. They function as immobile
bodies.
2-12
mech_pdf.book Page 13 Tuesday, June 18, 2002 1:27 PM
Building a Simple Pendulum
Minimum Ground Block Every machine model must have at least one
Ground block.
Figure 2-1: A Ground Point Relative to World
Steps to Configuring the Ground Block
Now place a fixed ground point at position (3,4,5) in the World CS:
1 In the SimMechanics library, open the Bodies library.
2 Drag and drop a Ground block from the Bodies library into the model
window. Close the Bodies library.
3 Open the Ground block dialog box. Into the Grounded point/Location [x y
z] field, enter the vector [3 4 5]. Click OK to close the dialog box.
2-13
mech_pdf.book Page 14 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Properties of Grounds
At every ground point, a Grounded CS is automatically created:
• The origin of each Grounded CS is the ground point itself.
• The Grounded CS axes are always fixed to be parallel to the World CS axes,
as shown in Figure 2-1.
• You can use these Grounded CSs in setting up later Body CSs.
Configuring a Body Block
While you need at least one Ground block to make a machine model, a real
machine consists of one or more rigid bodies. So you need to translate the
components of a real machine into block representations. This section explains
how you use a Body block to represent each rigid body in your machine:
• “Characteristics of a Body Block” on page 2-15
• “Properties of the Simple Pendulum Body” on page 2-15
• “Configuring the Body Dialog” on page 2-17
Although the body is the most complicated component of a machine,
SimMechanics does not use the full geometric shape and mass distribution of
the body. SimMechanics only needs certain mass properties and simplified
2-14
mech_pdf.book Page 15 Tuesday, June 18, 2002 1:27 PM
Building a Simple Pendulum
geometric information about the body’s center of gravity, its orientation, and
the coordinate systems attached to the body.
Setting these properties sets the body’s initial conditions of motion, if you do
nothing else to the Body block or its connected Joints before simulating.
Characteristics of a Body Block
The main characteristics of a Body block are its mass properties, its position
and orientation in space, and its attached Body coordinate systems (CSs).
The mass properties include the mass and inertia tensor. The mass is a real,
positive scalar. The inertia tensor is a real, symmetric 3-by-3 matrix. It does
not have to be diagonal.
The position of the body’s center of gravity (CG) and orientation relative to some
coordinate system axes indicate where the body is and how it is rotated. These
are the body’s initial conditions during construction of the model and remain
so when you start the simulation, unless you change them before starting.
The attached Body CSs (their origins and coordinate axes) are fixed rigidly in
the body and move with it. The minimum CS set is one, the CS at the CG (the
CG CS), with its CS origin at the center of gravity of the body. The default CS
set is three, the CG CS and two additional CSs called CS1 and CS2 for
connecting to Joints on either side. See the next section, “Configuring a Joint
Block” on page 2-20.
Beyond the minimum CS at the CG, you can attach as many Body CSs on one
Body as you want. You need a separate CS for each connected Joint,
Constraint, or Driver and for each attached Actuator and Sensor.
The inertia tensor components are interpreted in the CG CS, setting the
orientation of the body relative to the CG CS axes. The orientation of the CG
CS axes relative to the World axes then determines the absolute initial
orientation of the body. Since the CG CS axes remain rigidly fixed in the body
during the simulation, this relative orientation of the CG CS axes and the body
does not change during motion. The inertia tensor components in the CG CS
also do not change. As the body rotates in inertial space, however, the CG CS
axes rotate with it, as measured by the absolute World axes.
Properties of the Simple Pendulum Body
The simple pendulum is a uniform, cylindrical steel rod of length 1 meter and
diameter 2 cm. The initial condition is the rod lying parallel to the negative
2-15
mech_pdf.book Page 16 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
x-axis, horizontal in the gravity field. One end of the rod, the fixed pivot for the
rod to swing, is located at the ground point (3,4,5). Its coordinate system is
called CS1. The center of gravity and the origin of the CG CS is the geometric
center of the rod. Take the CG CS axes to be parallel to the World axes as you
set up the pendulum.
Uniform steel has density ρ = 7.93 gm/cc (grams per cubic centimeter). In the
CG CS here, the inertia tensor I is diagonal, and Izz controls the swinging about
the z-axis, in the x-y plane. The inertia tensor is always evaluated with the
origin of coordinates at the CG. For a rod of length L = 1 m and radius r = 1 cm,
the mass m = ρπr2L = 2490 gm (grams), and the inertia tensor I reads
2
Ixx 0 0
0 Iyy 0 =
0 0 Izz
mr
----------2
0
0
mL
-----------12
0
1250
2
=
0
2
0
0
mL
-----------12
0
0
6
0
2.08 ×10
0
0
0
2.08 ×10
6
in gm-cm2 (gram-centimeters2). The x-axis is the cylinder’s symmetry axis.
Thus Iyy = Izz.
The mass and geometric properties of the body are summarized in the following
table and depicted in Figure 2-2 on page 2-17.
Body Data for the Simple Pendulum
Property
Value
Mass (gm)
2490
Inertia tensor (kg-m2)
2-16
[1.25e-4 0 0;
0 0.208 0;
0 0 0.208]
CG Position/Origin (m)
[ 2.5 4 5 ]
CS1 Origin (m)
[ 3 4 5 ]
mech_pdf.book Page 17 Tuesday, June 18, 2002 1:27 PM
Building a Simple Pendulum
Configuring the Body Dialog
Take the steps to configuring a Body block dialog box in several stages.
Figure 2-2: Equivalent Ellipsoid of Simple Pendulum with Coordinate Systems
Adding the Body Block. To start working with the Body block:
1 Open the Bodies library in the SimMechanics library.
2 Drag and drop a Body block into your model window.
3 Open the Body block dialog box. Note the two main areas you need to
configure:
- Mass properties — These are the mass and inertia tensor.
- Body coordinate systems — These are the details about the position and
orientation of the Body CSs.
Note To apply your dialog entries at any time, click Apply. To close a dialog,
click OK.
2-17
mech_pdf.book Page 18 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Body CS Add button
2-18
Body CS Delete button
mech_pdf.book Page 19 Tuesday, June 18, 2002 1:27 PM
Building a Simple Pendulum
Configuring the Body’s Mass Properties. Now enter the body’s mass and inertia
tensor:
1 Use the data from the table “Body Data for the Simple Pendulum” on page
2-16.
In the Mass field, enter 2490 and change the units to g (grams).
2 In the Inertia tensor field, enter [1.25e-4 0 0; 0 0.208 0; 0 0 0.208]
and leave the default units as kg-m2.
Configuring Body Coordinate Systems (Position). Configure the translational position
of the body and its Body CS origins in space:
1 Use the data from table “Body Data for the Simple Pendulum” on page 2-16,
and work on the Position pane. Vectors are assumed translated from the
World origin and oriented to the World axes.
2 Note the three default CSs in the Body dialog box. The CS at the CG is
necessary for any Body, and you will connect CS1 to the Ground with a Joint
shortly.
Delete CS2 by selecting its line in the Body CS list and clicking the Delete
button in the Body CS controls.
You have two already existing CSs not on this Body that you can use to
specify the positions of the Body CS origins that are on this Body:
- Preexisting World origin at [0 0 0]
- The Adjoining CS on the neighboring body, in this case the Grounded CS
origin at [3 4 5]
3 Specify the CG and CS1 origins relative to World:
a In the pull-down menu under Translated from origin of, choose World
for both CSs: CG and CS1.
b Under Origin position vector, specify the position of the origin of each
CS, translated from the World origin:
[3 4 5] for CS1
[2.5 4 5] for CG
2-19
mech_pdf.book Page 20 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
4 Select a CS relative to whose coordinate axes the components of the vectors
in the last step are measured. You choose these CS axes in the Components
in axes of menu. Select World for both CSs. Leave the units as m (meters).
Configuring Body Coordinate Systems (Orientation). Configure the rotational
orientation of the body and its Body CS axes in space:
1 Work on the Orientation pane. The default orientation for all CS axes is
parallel to World. The sign of all rotations is determined by the right-hand
rule.
Notice in Figure 2-2 that the CS1 and CG axes are oriented parallel to the
World axes, so the CS1 and CG axes need no rotation.
2 For both CSs, set the Relative to coordinate system menu to World.
3 For CG and CS1, leave the Orientation vector at default [0 0 0] and the
Specified using convention at default Euler X-Y-Z. Close the Body dialog.
Configuring a Joint Block
A machine is made up of Bodies with geometric and mass information. But
Bodies carry no information of how they move. The possible directions of
motion that a Body can take are called its degrees of freedom (DoFs), and this
section explains how you represent these DoFs by Joint blocks:
• “How to Connect a Joint Between Two Bodies” on page 2-21
• “Revolute Joint for the Simple Pendulum” on page 2-21
DoFs Are Relative In SimMechanics, DoFs and the Joints that represent
them are relative DoFs. That is, DoFs represent the possible motions between
one body and another. So a DoF is defined by a pair of bodies, and you must
connect every Joint to two and only two Bodies.
One (but not both) of the members of such a pair of Bodies can be a Ground.
The other member Body of such a pair then has its motion defined relative to a
fixed ground point. This fixed ground point does not have to be the same as the
2-20
mech_pdf.book Page 21 Tuesday, June 18, 2002 1:27 PM
Building a Simple Pendulum
World origin. A machine can have many such Ground-Body pairs and must
have at least one.
How to Connect a Joint Between Two Bodies
You represent relative motion of bodies with respect to one another by
connecting their Body blocks with Joints. You can connect a Body to one or
more Joints.
A Joint block is always connected to a specific point on the Body on either side
of the Joint. The specific point for anchoring a Joint on a Body is the origin of
a Body CS, and a Joint is therefore connected on one side to one Body at a Body
CS origin, and on the other side to the other Body at a Body CS origin.
Usually a Body is connected to a Joint on either side, so the default you saw
earlier in this tutorial for Body CSs in the Body dialog box is three Body CSs:
the CS at the center of gravity (CG) and two other CSs (CS1 and CS2). But a
Body at the end of a Body—Joint—…—Body chain is connected to only one
Joint.
Revolute Joint for the Simple Pendulum
In spite of the complexity of the concepts implicit in a Joint, the actual
configuration of a Joint block is fairly simple. Here you insert and configure one
revolute Joint block between the Ground and Body blocks you’ve already put
into the model window.
2-21
mech_pdf.book Page 22 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Figure 2-3: Simple Pendulum Connected to Ground via Revolute
Configuring the Revolute Joint Block. The geometry of the Joint connection is shown
in Figure 2-3. The ground point at (3,4,5) and the CS1 at (3,4,5) are actually the
same point in space, but have been separated in the figure for clarity. The
revolute rotation axis is along the +z direction:
1 Open the Joints library in the block library.
2 Drag and drop a Revolute block into your model window.
3 Rotate the Revolute block so that you can connect the base (B) side of the
Joint to the Ground block and the follower (F) side of the Joint to the Body
block. Make the two connections.
2-22
mech_pdf.book Page 23 Tuesday, June 18, 2002 1:27 PM
Building a Simple Pendulum
4 Open the Revolute dialog box. In the Parameters area, on the Axes pane,
configure the rotation axis to the World z-axis:
a Enter [0 0 1] under Axis of rotation [x y z]
b Leave the Reference csys at WORLD
c
Ignore the Advanced tab
Note several important things:
- Under Connection parameters, the Current base is located at
[email protected], which is the Grounded CS associated with the Ground block
located at (3,4,5) in World.
- Under Connection parameters, the Current follower is located at
[email protected], which is the CS1 on Body1 located at (3,4,5) in World.
- This Joint’s directionality runs from Ground to Body along the +z axis.
5 Close the Revolute dialog box.
2-23
mech_pdf.book Page 24 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Congratulations — you have now finished the simplest possible model of a
machine: a connected block diagram of Ground—Joint—Body. Your model
window should look like this.
Adding Sensors and Starting the Simulation
To measure the motion of the pendulum as it swings, you need to hook one or
more Simulink Scope blocks to your model. The special library of Actuators and
Sensor blocks gives you the means to input and output Simulink signals to and
from SimMechanics models. Sensors allow you to watch the mechanical motion
once you start the simulation, as the following explain:
• “Connecting and Configuring Pendulum Sensors”
• “Configuring Simulation Parameters and Mechanical Environment
Settings” on page 2-26
• “Starting and Interpreting the Motion” on page 2-27
Connecting and Configuring Pendulum Sensors
In this example, you measure the angular motion of the revolute joint:
1 In the block library, open the Sensors and Actuators library. Drag and drop
two Joint Sensor blocks into your model window.
2-24
mech_pdf.book Page 25 Tuesday, June 18, 2002 1:27 PM
Building a Simple Pendulum
2 Open the Revolute block. Change Number of sensor/actuator ports from 0
to 2 using the spinner menu. Two open connector ports
side of Revolute. Close Revolute.
appear on either
3 Connect these connector ports to the connector ports on the Joint Sensor
blocks. The open connector ports change to solid • .
4 Open the Simulink Library Browser. From the Sinks library, drag and drop
a Scope block and an XY Graph block into your model window. From the
Signal Routing library, drag and drop a Mux block as well. Connect the
Simulink outports > on the Joint Sensor blocks to the Scope and XY Graph
blocks as shown.
The lines from the outports > to the Scope and XY Graph blocks are normal
Simulink signal lines and can be branched. You cannot branch the lines
connecting SimMechanics blocks to each another at the round connector
ports • .
2-25
mech_pdf.book Page 26 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
5 Open Joint Sensor. Select only the Angle check box. Open Joint Sensor1.
Select only the Angular velocity check box. Leave the other defaults. Close
both Sensor blocks.
6 Save your model for future reference as spen.mdl.
You now need to configure the global parameters of your model before you can
run it.
Configuring Simulation Parameters and Mechanical Environment Settings
The Simulation Parameters dialog box is a standard feature of Simulink.
Reset its entries for this model to obtain more accurate simulation results.
1 In the Simulink menu bar, open the Simulation menu and click Simulation
parameters to open the Simulation Parameters dialog.
2 Change Relative tolerance to 1e-6 and Absolute tolerance to 1e-4.
If you want the simulation to stop after a finite time, change Stop time to a
finite number of seconds. The pendulum period is approximately 1.6 sec.
3 Close the Simulation Parameters dialog box.
A special feature of SimMechanics models is the Mechanical Environment
Settings dialog box.
1 In the Simulink menu bar, open the Simulation menu and click
Mechanical environment to open the Mechanical Environment Settings
dialog.
Note the default Gravity vector and units: [0 -9.81 0] m/s2, which points
in the −y direction, as shown in Figure 2-2 on page 2-17. Gravitational
acceleration g = 9.81 m/s2.
2 Close the Mechanical Environment Settings dialog.
2-26
mech_pdf.book Page 27 Tuesday, June 18, 2002 1:27 PM
Building a Simple Pendulum
Starting and Interpreting the Motion
You can now start your simulation and watch the pendulum motion via the
Scope and XY Graph blocks:
1 Open the XY Graph block dialog box. Set the following parameters.
Parameter
Value
x-min
0
x-max
200
y-min
-500
y-max
500
Leave Sample time at default and close the dialog.
2-27
mech_pdf.book Page 28 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
2 Open the Scope block and start the model. The XY Graph opens
automatically when you start the simulation.
3 View the full motion of both angle and angular velocity (in degrees and
degrees per second, respectively) as functions of time in Scope. Click
Autoscale if the motion is not fully visible.
Autoscale
Angle and Angular Velocity of the Simple Pendulum as Functions of Time
The motion is periodic but not simple harmonic (sinusoidal), because the
amplitude of the swing is so large (180 degrees from one turning point to the
other). Note that the zero of angle is the initial horizontal angle, not the
vertical. The zeros of motion are always the initial conditions.
The XY Graph shows the angle versus angular velocity, with no explicit time
axis. These two variables trace out a figure similar to an ellipse, because of the
conservation of total energy E:
1  dθ 2
--- J ------- + mgh ( 1 – sin θ ) = E = const
2  dt 
where J = Izz + mL2/4 is the inertial moment of the rod about its pivot point
(not the center of gravity). The two terms on the left side of this equation are
2-28
mech_pdf.book Page 29 Tuesday, June 18, 2002 1:27 PM
Building a Simple Pendulum
the kinetic and potential energies, respectively. The coordinate-velocity space
is the phase space of the system.
Phase Space Plot of Simple Pendulum Motion: Angular Velocity Versus Angle
The directionality of the Revolute Joint assumes that the rotation axis lies in
the +z direction. Looking at the pendulum from the front, follow Figure 2-1 on
page 2-13, Figure 2-2 on page 2-17, and Figure 2-3 on page 2-22. Positive
angular motion from this perspective is counterclockwise, following the
right-hand rule.
The next tutorial walks you through visualizing and animating this same
simple pendulum model.
2-29
mech_pdf.book Page 30 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Visualizing a Simple Pendulum
In this section, you learn how to view the swinging pendulum rod of the model
introduced in the last section using the SimMechanics visualization tools. Use
your saved spen.mdl model, or use the mech_spen model in the Demos library.
SimMechanics has two independent tools for visualizing a machine. One is an
internal tool based on MATLAB Handle Graphics. The other is an optional
virtual reality scene and requires the Virtual Reality Toolbox 3.0 to be
installed. Both tools display a machine by representing its bodies. The bodies
can be displayed in two ways, by equivalent ellipsoids and by closed surfaces
(convex hulls) enveloping the bodies’ coordinate systems.
Note You can find more on visualizing and animating machine models in
“Visualizing and Animating Machines” on page 5-1
This section explains how to visualize your pendulum with either tool, using
either body representation. You can view the pendulum before you start and,
separately, choose to animate it during simulation as well:
• “Representing the Bodies” on page 2-31
• “Visualizing with Handle Graphics” on page 2-32
• “Visualizing with Virtual Reality” on page 2-34
Starting Visualization
The first step is to open the Mechanical Environment Settings dialog box
from your model window:
1 On the Simulink menu bar, open the Simulation menu and open the
Mechanical environment entry. The Mechanical Environment Settings
dialog box appears. In the lower half, click the Visualization tab at the
right.
2 To view the pendulum in its static initial condition, select the Draw
machine in initial state check box.
To animate the pendulum visualization while the simulation is running,
select the Animate machine during simulation check box as well.
2-30
mech_pdf.book Page 31 Tuesday, June 18, 2002 1:27 PM
Visualizing a Simple Pendulum
3 Leave the dialog open until the end of this section, as you will need to
configure additional settings.
Representing the Bodies
The information that you use to specify body properties in a SimMechanics
model is enough to represent each body in certain special, simplified ways.
SimMechanics does not have the information about the bodies needed to
represent their full geometries.
Equivalent Ellipsoids
A rigid body has a unique equivalent ellipsoid, a homogeneous solid ellipsoid
with the same inertia tensor. For more about this representation figure for
rigid bodies, see “Rendering Body Shapes in SimMechanics” on page 5-5.
Because the rod has an axis of symmetry, the x-axis in this case, two of its three
generalized radii are equal: ay = az. The generalized radii of the equivalent
ellipsoid are ax = 5 ⁄ 3 ( L ⁄ 2 ) = 0.646 m and ay = az = 5 ( r ⁄ 2 ) = 1.12 cm.
2-31
mech_pdf.book Page 32 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Convex Hulls
Every Body has at least one Body coordinate system (CS) at the CG. A Body
also has one or more extra Body CSs for the attached Joints, as well as possible
Actuators and Sensors. Each Body CS has an origin point, and the collection of
all these points, in general, defines a volume in space. The minimum
outward-bending surface enclosing such a volume is the convex hull of the Body
CSs, and this is the alternative way that SimMechanics has to represent a
body.
You created the pendulum body with only two Body CSs, CG and CS1. The
convex hull for the pendulum rod is thus the minimum connecting figure, a line
joining the two Body CS origins.
Choosing the Body Representation
You can choose which displayed representation of the pendulum rod or any
machine bodies SimMechanics uses, by configuring the Visualization tab in
the Mechanical Environment Settings dialog box. In the Represent bodies
as menu, choose Convex hulls or Equivalent ellipsoids.
Continue to keep the Mechanical Environment Settings dialog box open.
Visualizing with Handle Graphics
The Handle Graphics-based visualization tool is built into SimMechanics. To
choose this visualization mode:
1 Use the Draw machine using menu to pick MATLAB Graphics.
2 Now click Apply or OK to apply all your visualization choices.
3 A MATLAB Handle Graphics window appears.
The displayed figure depends on the body representation you choose. The
convex hull appears.
2-32
mech_pdf.book Page 33 Tuesday, June 18, 2002 1:27 PM
Visualizing a Simple Pendulum
CG CS axis triad
SimMechanics
special menu
CG
Label for highlighted CS1
CS1 axis triad (highlighted)
Handle Graphics Window for Pendulum Rod (Convex Hull)
You can change the viewpoint and manipulate the image using standard
Handle Graphics techniques. Consult “Viewing Machines with Handle
Graphics” on page 5-10 as well. Experiment with the special SimMechanics
menu’s settings to see different ways of displaying the pendulum.
When you start the model, the body in the graphics window moves in step with
the simulation.
2-33
mech_pdf.book Page 34 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Visualizing with Virtual Reality
Note This optional feature requires the Virtual Reality Toolbox to be
installed on your MATLAB path.
To choose the Virtual Reality-based visualization tool, follow the previous steps
for Handle Graphics, but change the Draw machine using choice:
1 Open the Mechanical Environment Settings dialog box and click the
Visualization tab.
2 Use the Draw machine using menu to select Virtual Reality Toolbox.
3 Now click Apply or OK to reapply your visualization choices.
4 A virtual reality viewer, displaying a virtual scene, appears.
The displayed figure depends on the body representation you choose. The
equivalent ellipsoid looks like this.
2-34
mech_pdf.book Page 35 Tuesday, June 18, 2002 1:27 PM
Visualizing a Simple Pendulum
Rod
World CS Axes
CS1 CS
CG CS
Virtual reality controls
The next tutorial shows how to create, run, and visualize a model for a more
complex machine, a four bar mechanism. To configure Ground, Body, and Joint
blocks now means repeating and expanding upon the three blocks of the first
two tutorials.
2-35
mech_pdf.book Page 36 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
A Four Bar Mechanism
In this tutorial, you build a model of a planar four bar mechanism and practice
using some of the important SimMechanics features:
• “Configuring the Mechanical Environment Settings” on page 2-38
• “Setting Up the Block Diagram” on page 2-40
• “Configuring the Ground and Joint Blocks” on page 2-42
• “Configuring the Body Blocks” on page 2-46
• “Sensing Motion and Running the Model” on page 2-51
You are urged to go through “Building a Simple Pendulum” on page 2-11 and
“Visualizing a Simple Pendulum” on page 2-30 before proceeding with this
section.
The machine consists of three moving bars of homogeneous steel, two
connected at one end each to ground points and a third cross bar connecting the
first two. The base acts as an immobile fourth bar, with a Ground at each end.
The machine forms a single closed loop, and its motion is confined to two
dimensions.
The elementary parts of the machine are the bodies, while the revolute joints
are the idealized rotational degrees of freedom (DoFs) at each body-to-body
contact point. The bodies and the joints expressing the bodies’ relative motions
must be translated into corresponding SimMechanics blocks. If you want, you
can add elaborations such as Constraints, Drivers, Sensors, and Actuators to
this essential block diagram.
Counting the Degrees of Freedom
The three moving bars are constrained to move in a plane. So each bar has two
translational and one rotational DoFs, and the total number of machine DoFs,
before counting constraints, is 3*(2+1) = 9.
Because the motion of the bars is constrained, however, not all of these nine
DoFs are independent:
2-36
mech_pdf.book Page 37 Tuesday, June 18, 2002 1:27 PM
A Four Bar Mechanism
• In two dimensions, each connection of a body with another body or with a
ground point imposes two restrictions (one for each coordinate direction).
Such a restriction effectively eliminates one of the two body ends as
independently moving points, because its motion is determined by the next
body’s end.
• There are four such body-body or body-ground connections and therefore
eight restrictions implicit in the machine’s geometry.
The eight restrictions on the nine apparent DoFs reduce the DoFs to one, 9 − 8
= 1. There are four rotational DoFs between bars or between bars and grounds.
But three of these are dependent. Specifying the state of one rotational DoF
fully specifies the other three.
Bar 2
Bar 3
3
2
Bar 1
Revolutes
4
Ground 2
1
Base
Ground 1
Figure 2-4: Four Bar Mechanism
2-37
mech_pdf.book Page 38 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Configuring the Mechanical Environment Settings
Open a new blank model window from the SimMechanics library. First you
need to set the global mechanical environment.
On the model window toolbar, open the Simulation menu and click the
Mechanical environment entry.
The Mechanical Environment Settings dialog box appears.
The Mechanical Environment Settings Dialog Box Panes
Click the four tabs in succession to expose each pane.
2-38
Pane
Function
Parameters
Controls general settings for mechanical simulations
Constraints
Sets constraint tolerances and how constraints are
interpreted
mech_pdf.book Page 39 Tuesday, June 18, 2002 1:27 PM
A Four Bar Mechanism
Pane
Function
Linearization
Controls how SimMechanics models are linearized with
Simulink
Visualization
Configures the visualization tools
Note some important features of this dialog box:
- The Gravity vector field specifies the magnitude and direction of
gravitational acceleration and sets the vertical or up-down direction.
- The Linear and Angular assembly tolerance fields are also set here.
Change Angular assembly tolerance to 1e-3 deg (degrees).
- Leave the other defaults, except Visualization.
Setting the Visualization Pane
Visualization We recommend opening one of the visualization tools before
building a model. With it, you can keep track of your model components and
how they are connected, as well as correct mistakes.
To visualize the bodies as you build the machine, go to the Visualization pane
of Mechanical Environment Settings:
1 In the Draw machine using menu, select either Virtual Reality Toolbox
or MATLAB Graphics (Handle Graphics).
Leave Represent bodies as in default the Equivalent ellipsoids.
2 Select the Draw machine in initial state check box. Leave the Update
machine menu as default When diagram changes to see bodies appear and
change in the virtual world as you add and change them in the model.
If you want to animate the simulation later when you run the model, select
the Animate machine during simulation check box as well.
2-39
mech_pdf.book Page 40 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
3 Click OK or Apply.
If you chose Handle Graphics, an empty Handle Graphics window opens. If
you chose virtual reality, an empty virtual world appears in a virtual reality
viewer.
Either visualization window becomes populated with bodies as you add
them to the model.
If you open visualization after the model is built, the finished machine
appears.
Setting Up the Block Diagram
In this set of steps, you create Bodies, position them, connect them with Joints,
then configure the Body and Joint properties. The Body dialog boxes give you
many ways to represent the same machine in the same physical state. This
section explains one way.
Alternative, equivalent ways of configuring Bodies are discussed in “Body
Coordinate Systems” on page 3-10.
MAT-File Data Entry
The geometric and mass properties you need to specify for the Grounds and
Bodies in this model are listed in the tables of the following two sections,
“Configuring the Ground and Joint Blocks” on page 2-42 and “Configuring the
Body Blocks” on page 2-46.
Instead of typing the numerical values of these properties into the dialog boxes,
you can load the variable set you need into the workspace by entering
load fourbar_data
at the MATLAB command line. The variable name for each property is given
in the tables. Just enter the appropriate variable names in the appropriate
fields as you come to them in the dialog boxes.
Block Diagram Setup
Begin assembling the model with these steps:
2-40
mech_pdf.book Page 41 Tuesday, June 18, 2002 1:27 PM
A Four Bar Mechanism
1 In the block library, open the Bodies library. Drag and drop two Ground
blocks and three Body blocks into the new model window. Close the Bodies
library.
2 From the Joints library, drag and drop four Revolute blocks into the model
window.
3 Rotate and connect the blocks in the pattern shown in the following figure
or with an equivalent block diagram topology.
Use the block names shown in this figure for later consistency.
Figure 2-5: Connected Ground, Body, and Joint Blocks for Four Bar Model
2-41
mech_pdf.book Page 42 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Block diagram topology. The topology of the block diagram is the connectivity of
its elements. The elements are the Bodies and Grounds, connected by the
Joints. Unlike the model of “Building a Simple Pendulum” on page 2-11, the
four bar mechanism is a closed-loop machine. The two Ground blocks represent
points on the same absolute, immobile body, and they close the loop of blocks.
The simple pendulum has only one ground and does not close its block
connections.
To maintain consistent Body motion direction, make sure the Body coordinate
system (CS) port
pairs on each Body follow the sequence CS1-CS2, CS1-CS2,
etc., for each bar, moving from Ground_1 to Ground_2, from right to left, as
shown. To make the Joints consistent with the Body motion, the base-follower
pairs B-F, B-F, etc., should follow the same right-to-left sequence.
Configuring the Ground and Joint Blocks
Now configure the Ground blocks with the data from the following table.
Grounded coordinate systems (CSs) are automatically created.
Geometry of the Four Bar Base
This table summarizes the geometry of ground points.
Geometric Properties of the Four Bar Grounds
Property
Value
MAT-File Variable
Ground_1 point (m)
[ 0.434 0 0.04]
gpoint_1
Ground_2 point (m)
[-0.433 0 0.04]
gpoint_2
The base of the mechanism has these measurements:
• The base is horizontal, with length 86.7 cm.
• Ground_1 represents the ground point 43.3 cm to the right of the World CS
origin.
• Ground_2 represents the ground point 43.4 cm to the left of the World CS
origin.
• The bottom revolutes are 4 cm above the origin (x-z) plane.
2-42
mech_pdf.book Page 43 Tuesday, June 18, 2002 1:27 PM
A Four Bar Mechanism
Configuring the Ground Blocks
To represent ground points on the immobile base, configure the Ground blocks.
Use the variable names if you’ve loaded fourbar_data.mat into your
workspace:
1 Open Ground_1 and enter [ 0.434 0 0.04 ] or gpoint_1 in the Location
field.
2 Open Ground_2 and enter [-0.433 0 0.04 ] or gpoint_2 in the Location
field.
3 Leave both pull-down menus for units at default m (meters).
Configuring the Revolute Joints
The three nongrounded bars move in the plane of your screen (x-y plane), so you
need to make all the Revolute axes the z-axis (out of the screen):
2-43
mech_pdf.book Page 44 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
1 Open each Revolute’s dialog box in turn. In its Parameters area, note on the
Axes pane that the z-axis is the default: Axis of rotation [x y z] is set to [0
0 1] in each, relative to Reference csys WORLD. Leave these defaults.
A Revolute block contains only one primitive joint, a single revolute DoF. So
the Primitive is automatically Revolute. Its name internal to the block is
R1.
2 Leave these Revolute joint block defaults and ignore the Advanced tab.
The Body CS and base-follower joint directionality should be set up as shown
in the block diagram of Figure 2-5 on page 2-41. In the Connection
parameters area, the default Joint directionality for each Revolute
automatically follows the right-to-left sequence of Grounded and Body CSs:
• Revolute1: Base to follower: [email protected]_1 to [email protected]
• Revolute2: Base to follower: [email protected] to [email protected]
• Revolute3: Base to follower: [email protected] to [email protected]
• Revolute4: Base to follower: [email protected] to [email protected]_2
In this Joint directionality convention:
• At each Joint, the leftward Body moves relative to the rightward Body.
• The rotation axis points in the +z direction (out of the screen).
• Looking at the mechanism from the front in Figure 2-4, the positive
rotational sense is counterclockwise. All Joint Sensor and Actuator data are
interpreted in this sense.
2-44
mech_pdf.book Page 45 Tuesday, June 18, 2002 1:27 PM
A Four Bar Mechanism
2-45
mech_pdf.book Page 46 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Configuring the Body Blocks
Setting the Body properties is similar for each bar, but with different
2-46
mech_pdf.book Page 47 Tuesday, June 18, 2002 1:27 PM
A Four Bar Mechanism
• Mass properties
• Lengths and orientations
• Center of gravity (CG) positions
• Body coordinate systems (CSs)
to be entered into the dialog boxes.
In contrast to the first tutorial, where you specify Body CS properties with
respect to the absolute World CS, in this tutorial, you specify Body CS origins
on the bars in relative coordinates, displacing Bar1’s CS1 relative to Ground_1,
Bar2’s CS1 relative to Bar1, and so on, around the machine loop. You can refer
the definition of a Body CS to three types of coordinate systems:
• To World
• To the other Body CSs on the same Body
• To the Adjoining CS (the coordinate system on a neighboring body or ground
directly connected by a Joint to the selected Body CS).
The components of the displacement vectors for each Body CS origin continue
to be oriented with respect to the World axes. The rotation of each Body’s CG
CS axes is also with respect to the World axes, in the Euler X-Y-Z convention.
The following three tables summarize the body properties for the three bars.
Bar1 Mass and Body CS Data (MKS Units)
Property
Value
Variable Name
Mass
5.357
m_1
Inertia tensor
[1.07e-3 0 0; 0 0.143 0;
0 0 0.143]
inertia_1
CG Origin
[0.03 0.282 0] from CS1
cg_1
CS1 Origin
[0 0 0] from ADJOINING
cs1_1
CS2 Origin
[0.063 0.597 0] from CS1
cs2_1
CG Orientation
[0 0 83.1] from WORLD
orientcg_1
2-47
mech_pdf.book Page 48 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Bar2 Mass and Body CS Data (MKS Units)
Property
Value
Variable Name
Mass
9.028
m_2
Inertia tensor
[1.8e-3 0 0; 0 0.678 0;
0 0 0.678]
inertia_2
CG Origin
[-0.427 0.242 0] from CS1
cg_2
CS1 Origin
[0 0 0] from ADJOINING
cs1_2
CS2 Origin
[-0.87 0.493 0] from CS1
cs2_2
CG Orientation
[0 0 29.5] from WORLD
orientcg_2
Bar3 Mass and Body CS Data (MKS Units)
Property
Value
Variable Name
Mass
0.991
m_3
Inertia tensor
[2.06e-4 0 0; 0 1.1e-3 0;
0 0 1.1e-3]
inertia_3
CG Origin
[-0.027 -0.048 0] from CS1
cg_3
CS1 Origin
[0 0 0] from ADJOINING
cs1_3
CS2 Origin
[0 0 0] from ADJOINING
cs2_3
CG Orientation
[0 0 60] from WORLD
orientcg_3
Configuring the Bodies
Here are the common steps for configuring the Body dialogs of all three bars.
See the three preceding tables for Body dialog box mass property (mass and
inertia tensor) entries. The units are MKS: lengths in meters (m), masses in
kilograms (kg), and inertia tensors in kilogram-meters2 (kg-m2).
1 Open all three Body dialogs for each bar. Enter the mass properties for each
from the tables in the Mass and Inertia tensor fields.
2 Now work in the Body coordinate systems area, the Position pane:
2-48
mech_pdf.book Page 49 Tuesday, June 18, 2002 1:27 PM
A Four Bar Mechanism
a Set the Components in axes of menu, for each Body CS on each bar, to
WORLD.
b Leave units as default m (meters).
3 Set the Body CS properties for each Body CS on each bar from the data of
the preceding tables:
a Enter the Body CS origin position data for CG, CS1, and CS2 on each bar
from the tables or from the corresponding MAT-file variables.
b Set the Translated from origin of menu entries for each Body CS on
each bar according to the “from” information in the tables.
4 Select the Orientation pane by clicking its tab:
a Enter the Orientation vector for the CG on each bar from the tables or
from the corresponding MAT-files variables.
b Choose WORLD for Relative to coordinate system in each case.
c
Leave the other fields in their default values.
2-49
mech_pdf.book Page 50 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
2-50
mech_pdf.book Page 51 Tuesday, June 18, 2002 1:27 PM
A Four Bar Mechanism
The front view of the four bar mechanism, rendered as equivalent ellipsoids in
the virtual reality scene, looks like this.
Bar 3
Bar 2
Bar 1
World CS axes
Sensing Motion and Running the Model
You finish building your model by setting initial conditions and inserting
Sensors.
Before you start a machine simulation, you need to set its kinematic state or
initial conditions. These include positions/angles and linear/angular velocities.
This information, the machine’s initial kinematic state, is discussed further in
“Modeling Sensors” on page 3-53.
2-51
mech_pdf.book Page 52 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
You can sense motion in any model in two basic ways: sensing bodies or sensing
joints. Here you sense Joint motion, using Joint Sensor blocks and feeding their
Simulink signal outputs to Scope blocks.
Caution Because they are immobile, ground points cannot be moved, nor do
they have any motion to measure.
Therefore you cannot connect Ground blocks to Actuator or Sensor blocks.
Connecting the Joint Sensors
To sense the motion of the Revolute2 and Revolute3 blocks:
1 From the Sensors & Actuators library, drag and drop two Joint Sensor
blocks into the model window. Drag Joint Sensor next to Revolute2 and
Joint Sensor1 next to Revolute3.
2 Before you can attach a Joint Sensor block to a Revolute block, you need to
create a new open round connector port
dialog box:
on the Revolute. Open Revolute2’s
a In the Connection parameters area in the middle, adjust the spinner
menu Number of sensor/actuator ports to the value 1. Click OK.
A new connector port
appears on Revolute2.
b Connect this connector port to the open round connector port on Joint
Sensor.
3 Now repeat the same steps with Revolute3:
a Create one new connector port
on Revolute 3.
b Connect this port to Joint Sensor1.
4 Be sure to connect the outports > of the Sensor blocks to non-SimMechanics
blocks. These ports are normal Simulink signals.
Graphical Plot of Joint Motion with a Scope Block
Here you can view the Joint Sensor measurements of Revolute2 and
Revolute3’s motions using a Scope block from the Simulink Sinks library:
2-52
mech_pdf.book Page 53 Tuesday, June 18, 2002 1:27 PM
A Four Bar Mechanism
1 Open the Simulink Library Browser. From the Sinks library, drag and drop
a Scope block into your model window in between Joint Sensor and Joint
Sensor1 blocks. Rename the Scope block “Angle”.
2 Open the Angle block. In this scope window’s toolbar, open the Parameters
box. Under Axes, reset Number of axes to 2. Click OK. A second inport >
appears on the Angle block.
3 Expand the scope window for ease of viewing.
4 Connect the Joint Sensor and Joint Sensor1 block outports > to the Angle
block inports >.
5 Open Joint Sensor and Joint Sensor1:
a Note in the Measurements area, that Connected to primitive is set to
R1 in both blocks, indicating the first and only primitive revolute inside
Revolute2 and Revolute3 to which each Sensor can be connected.
b Select the Angle check box to measure just the angle. Leave the units in
default as deg (degrees). The Simulink line will contain one scalar.
Your completed model should look similar to the mech_four_bar Demo model.
2-53
mech_pdf.book Page 54 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Caution Sensor and Actuator blocks are the only blocks that can connect
SimMechanics blocks to non-SimMechanics Simulink blocks.
2-54
mech_pdf.book Page 55 Tuesday, June 18, 2002 1:27 PM
A Four Bar Mechanism
Configuring and Running the Simulation
Now take the final steps to prepare and start the model:
1 In the model window Simulation menu, select Simulation parameters:
a In the Solver pane, change Absolute tolerance to 1e-6.
b Leave the other defaults and click OK.
2 Now run the model by clicking Start Simulation in the Simulink toolbar.
The four bar machine will fall under the influence of gravity.
Note some features of the simulation:
• In this example, the machine starts from rest, with the initial velocities at
zero. So the initial state of the four bar machine is just the geometric state
that you set up in “Setting Up the Block Diagram” on page 2-40.
• The assembly at first falls over to the right, and the Revolute2 angle
decreases.
• Bar3 turns all the way around, and Bar2 and Bar1 turn back to the left. The
Revolute2 angle reverses direction. Revolute3 sweeps through a complete
turn. Angles are mapped to the interval (−180o,+180o] and exhibit
discontinuities.
• The motion repeats periodically, as there is no friction.
2-55
mech_pdf.book Page 56 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
Animation
If you leave your visualization tool open at the time you start the simulation
and select the Animate machine during simulation check box in the
Visualization pane of the Mechanical Environment Settings dialog box, the
visualized machine moves in step with the simulation.
You can now compare the animated motion with the Scope plots of the
Revolute2 and Revolute3 angles.
2-56
mech_pdf.book Page 57 Tuesday, June 18, 2002 1:27 PM
Summary of Technical Vocabulary
Summary of Technical Vocabulary
These sections summarize the special technical terms used in this guide and
point to more detailed definitions in the “Glossary”:
• “Topology of Mechanical Systems”
• “Coordinate Systems and Reference Frames”
• “Bodies and Mass Properties” on page 2-58
• “Joints, Constraints, and Drivers” on page 2-58
• “Sensors and Actuators” on page 2-58
Topology of Mechanical Systems
Mechanical systems can be characterized by their topology, or the global
connectivity of their elements. A SimMechanics model’s elements are the Body
blocks, and the connections are the Joints. A complex system in general is a
mixture of these basic topological classes: open systems, with subclasses of open
chains and open trees, and closed systems, which contain loops.
Coordinate Systems and Reference Frames
SimMechanics uses a family of coordinate systems (CSs) and reference frames
(RFs).
SimMechanics has a built-in inertial RF called World. Ground blocks
representing ground points are at rest in this RF. You can think of ground
points as fixed points on an infinitely large, immobile body. The World RF
defines the state of “no motion” or “at rest” for all systems.
World is also a CS, with an origin and axes:
+x points right
+y points up (gravity in −y direction)
+z points out of the screen, in three dimensions
Users can define additional Local CSs:
• Grounded CSs attached to Ground blocks at rest in the World RF but
displaced from the World CS origin
• Body CSs fixed in the system’s rigid bodies and moving rigidly with the
bodies
2-57
mech_pdf.book Page 58 Tuesday, June 18, 2002 1:27 PM
2
Learning Basic Procedures
In general bodies accelerate as they move. So Body CSs in general live in
noninertial RFs.
Bodies and Mass Properties
A body is defined in SimMechanics by its mass properties (mass and inertia
tensor), its position and orientation, and user-specified attached Body CSs.
Bodies carry no DoFs.
A body’s position is specified by the position of its center of gravity (CG). The
CG point is also the origin of the body’s CG coordinate system (CG CS). The
orientation of the CG CS axes is user-specified. The body also can have other
Body CSs attached to it. The origins and axes of these CSs are user-specified.
The orientation of the body itself is set by the components of its inertia tensor,
which are always interpreted in the body’s CG CS axes. The absolute
orientation of the body is then determined by the orientation of that body’s CG
CS axes with respect to World.
Joints, Constraints, and Drivers
Joints carry the degrees of freedom (DoFs) of a system in SimMechanics, but
none of its mass or inertia. DoFs represent the possible relative motions
between pairs of bodies and are specified by translational and rotational axes.
Joints can be primitive or composite, constrained or unconstrained, and
assembled or disassembled.
Constraints are functional relationships between the DoFs that hold regardless
of applied forces/torques. Drivers are special constraints that specify the
motion of DoFs as user-defined functions of time.
Sensors and Actuators
Sensors measure the motions of any body or joint, while actuators specify the
motion of a body or joint in various ways. Important specialized Actuator blocks
are the following:
• The Joint Actuator, which applies specified motions to a joint
• The Joint Initial Condition Actuator, which specifies a joint’s initial
conditions for integration
• The Joint Stiction Actuator, which applies static and kinetic friction to joint
motion
2-58
mech_pdf.book Page 1 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical
Systems
SimMechanics gives you a complete set of block libraries for modeling machine parts and connecting
them into a Simulink block diagram.
Modeling Machines (p. 3-2)
How to create a valid mechanical model with
SimMechanics and Simulink
Modeling Bodies (p. 3-8)
How to represent the machine environment and the mass
and geometric properties of bodies
Modeling Joints (p. 3-17)
How to represent degrees of freedom as joints
Modeling Constraints and Drivers How to represent time-independent and time-dependent
(p. 3-34)
constraints on relative body motions
Modeling Actuators (p. 3-40)
How to apply forces, motions, and initial conditions to
machines
Modeling Sensors (p. 3-53)
How to measure motions and forces in machines and
create feedback loops to model internal forces
Checking Model Validity (p. 3-58)
Special restrictions and requirements for block diagram
models with SimMechanics blocks
If you need more information on mechanics and rigid body dynamics, consult the physics and
engineering literature, beginning with the “Selected Bibliography.” Classic engineering mechanics
texts include Goodman and Warner [4], [5] and Meriam [11]. The books of Goldstein [3] and José and
Saletan [7] are more theoretically oriented.
mech_pdf.book Page 2 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
Modeling Machines
In SimMechanics the term machine refers to a dynamic system that includes
at least one rigid body. SimMechanics provides a library of Simulink blocks
that allow you to create Simulink models of machines.
About SimMechanics Models
A SimMechanics model consists of a block diagram comprising one or more
schematics, each of which is a set of connected blocks representing a machine.
For example, the following model contains two schematics.
Double pendulum
machine
Single pendulum
machine
Comparison to Other Simulink Models
A SimMechanics model differs significantly from other Simulink models in how
it represents a machine. An ordinary Simulink model represents the
mathematics of a machine’s motion, i.e., the algebraic and differential
equations that predict the machine’s future state from its present state. The
mathematical model enables Simulink to simulate the machine. By contrast, a
SimMechanics model represents the structure of a machine, the geometric and
3-2
mech_pdf.book Page 3 Tuesday, June 18, 2002 1:27 PM
Modeling Machines
kinematic relationships of its component bodies. SimMechanics converts this
structural representation to an internal, equivalent mathematical model. This
saves you from having to develop the mathematical model yourself.
Creating a SimMechanics Model
You create a SimMechanics model in much the same way you create any other
Simulink model. First, you create a Simulink model window. Then you drag
instances of Simulink blocks from the Simulink block library into the window
and draw lines to interconnect the blocks (see “Connecting SimMechanics
Blocks” on page 3-3).
The SimMechanics block library provides the following blocks specifically for
modeling machines:
• Body blocks that represent a machine’s components and the machine’s
immobile environment, or ground (see “Modeling Bodies” on page 3-8)
• Joint blocks that represent the degrees of freedom of one body relative to
another body or to a point on ground (see “Modeling Joints” on page 3-17)
• Constraint and Driver blocks that restrict motions of or impose motions on
bodies relative to one another (see “Modeling Constraints and Drivers” on
page 3-34)
• Initial condition blocks that specify the initial state of the machine
• Actuator blocks that specify forces or motions applied to joints and bodies
• Sensor blocks that output the forces and motions of joints and blocks
You can use blocks from other Simulink libraries in SimMechanics models. For
example, you can connect the output of SimMechanics Sensor blocks to Scope
blocks from the Simulink Sinks library to display the forces and motions of
your model’s bodies and joints. Similarly, you can connect blocks from the
Simulink Sources library to SimMechanics Driver blocks to specify relative
motions of your machine’s bodies.
Connecting SimMechanics Blocks
In general, you connect SimMechanics blocks in the same way you connect
other Simulink blocks: by drawing lines between them. Significant differences
exist, however, between connecting standard Simulink blocks and connecting
SimMechanics blocks. The following sections discuss these differences.
3-3
mech_pdf.book Page 4 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
Connection Lines
The lines that you draw between standard Simulink blocks, called signal lines,
represent inputs to and outputs from the mathematical functions represented
by the blocks. By contrast, the lines that you draw between SimMechanics
blocks, called Connection Lines, represent physical connections and
relationships among the bodies represented by the blocks. Also, you can draw
Connection Lines only between specialized connection ports available only on
SimMechanics blocks (see next section) and you cannot branch existing
Connection Lines. Connection Lines appear as solid black when connected and
as dashed red lines when either end is unconnected.
Connector Ports
Standard Simulink blocks have input and output ports. By contrast, most
SimMechanics blocks contain only specialized Connector Ports that permit you
to draw Connection Lines among SimMechanics blocks. SimMechanics
Connector Ports are of two types: Body CS ports and general-purpose ports.
Body CS ports appear on Body and Ground blocks and define connection points
on a body or ground. Each is associated with a local coordinate system whose
origin specifies the location of the associated connection point on the body.
Body CS port
General-purpose Connector Ports appear on Joint, Constraint, Driver, Sensor,
and Actuator blocks. They permit you to connect Joints to Bodies and connect
Sensors and Actuators to Joints, Constraints, and Drivers. General-purpose
Connector Ports appear as circles on the block icon. The circle is unfilled if the
port is unconnected and filled if the port is connected.
General-purpose Connector Port
3-4
mech_pdf.book Page 5 Tuesday, June 18, 2002 1:27 PM
Modeling Machines
Interfacing SimMechanics Blocks to Simulink Blocks
SimMechanics Actuator blocks (see “Modeling Actuators” on page 3-40) contain
standard Simulink input ports. Thus, you can connect standard Simulink
blocks to a SimMechanics model via Actuator blocks. Similarly, SimMechanics
Sensor blocks contain output ports (see “Modeling Sensors” on page 3-53).
Thus, you can connect a SimMechanics model to Simulink blocks via Sensor
blocks.
Sensor block
Simulink signal line
Simulink Sink block
Actuator block
Simulink signal line
Simulink Source block
Setting SimMechanics Block Properties at the
Command Line
You cannot use the Simulink set_param and get_param commands to set or get
SimMechanics block parameters. Instead, you must set block parameters via
the block dialog boxes. You can open the dialogs by double-clicking the block,
or by right-clicking the block and selecting Open block.
Creating SimMechanics Subsystems
Large, complex block diagram models are often hard to analyze. Enclosing
functionally-related groups of blocks in subsystems alleviates this difficulty
and facilitates reuse of block groups in different models.
You can create subsystems containing SimMechanics blocks that you can
connect to other SimMechanics blocks. You do this in two ways:
• Automatically
3-5
mech_pdf.book Page 6 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
• Manually
The Simulink User’s Guide explains more about creating subsystems.
Creating a Subsystem Automatically
To create a SimMechanics subsystem automatically:
1 Create the subsystem block diagram in your model window, leaving
unconnected ports for external connections.
2 Group-select the subsystem block diagram.
3 Select the Make subsystem command from the Simulink window.
The command replaces the block diagram with a Subsystem block containing
the selected block diagram. The command also creates and connects
SimMechanics Connection Port blocks for the ports that you left unconnected
in the block diagram. The Connection Port blocks in turn create Connector Port
icons on the subsystem icon, enabling you to connect external SimMechanics
blocks to the new subsystem.
Subsystem Connector Port
Creating a Subsystem Manually
Sometimes you need to make a subsystem configured differently from an
automatically created one. To create a SimMechanics subsystem manually:
3-6
mech_pdf.book Page 7 Tuesday, June 18, 2002 1:27 PM
Modeling Machines
1 Drag a Subsystem block into your model window.
2 Open the Subsystem block.
3 Create the subsystem block diagram in the subsystem window.
4 Drag a Connection Port block from the SimMechanics Utilities library into
the subsystem window for each port that you want to be available externally.
5 Connect the external Connector Ports to the Connection Port blocks.
Creating Custom SimMechanics Blocks with Masks
You can create your own SimMechanics blocks from subsystems, for example,
a spring-loaded Joint block or a sphere Body block. To do this, create a block
diagram that implements the functionality of your custom block, enclose the
diagram as a subsystem, and add a mask (i.e., user interface) to the subsystem.
To facilitate sharing your custom blocks across models or with other users,
create a Simulink block library and add these masked subsystem blocks to the
library. The Simulink User’s Guide explains how to create custom blocks with
masks.
3-7
mech_pdf.book Page 8 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
Modeling Bodies
The basic components of any machine are its constituent rigid bodies. In
SimMechanics, the term body refers to any point or spatially extended object
that has mass. SimMechanics bodies, unlike physical bodies, do not have
degrees of freedom. The SimMechanics Bodies library contains two blocks for
representing bodies in a Simulink model:
• Ground
Models a point on an ideal body of infinite mass and extent that serves as a
fixed environment for machines (see “Modeling Grounds” following).
• Body
Models rigid bodies of finite mass and extent, including their attached body
coordinate systems (see “Modeling Finite Rigid Bodies” on page 3-9).
Modeling Grounds
In SimMechanics, ground refers to a body of infinite mass and size that acts
both as a reference frame at rest for a system as a whole and as a fixed base for
attaching system components, e.g., the factory floor on which a robot stands.
SimMechanics Ground blocks enable you to represent points on ground in your
model. This in turn enables you to specify the degrees of freedom that your
system has relative to its environment. You do this by connecting Joint blocks
representing degrees of freedom between the Body blocks representing parts of
your machine and the Ground blocks representing ground points.
Each Ground block has a single Connector Port to which you can connect a
Joint block that can in turn be connected to a single Body block. Each Ground
block therefore allows you to represent the degrees of freedom between a single
part of your model and its environment. If you want to specify the motion of
other parts of your machine relative to the environment, you must create
additional Ground blocks.
Note To be valid, a SimMechanics model must contain at least one Ground
block connected to a Body block via a Joint block.
3-8
mech_pdf.book Page 9 Tuesday, June 18, 2002 1:27 PM
Modeling Bodies
The World Coordinate System
SimMechanics contains an internal master coordinate system and reference
frame called World. All grounds are at rest in World. The Connector Port of
each Ground block defines a grounded coordinate system called GND. The
GND coordinate system’s axes are parallel to World. By default the origin of
the grounded coordinate system coincides with the origin of the World
coordinate system. The Grounded point field of a Ground block’s dialog box
allows you to move the origin of GND to some other point in the World
coordinate system, as in the “Building a Simple Pendulum” example of the
“Learning Basic Procedures” chapter.
The GND coordinate system allows you to specify the positions and motions of
parts of your machine relative to fixed points in the environment.
Modeling Finite Rigid Bodies
The SimMechanics Body block enables you to model rigid bodies of finite mass
and extent. A body is rigid if its internal parts cannot move with respect to one
another.
About Body Blocks
A Body block allows you to specify the following attributes of a rigid body.
3-9
mech_pdf.book Page 10 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
Mass Properties. These include the body’s mass, which determines its response
to translational forces, and its inertia tensor, which determines its response to
rotational torques.
Body Coordinate Systems. By default a Body block defines three local coordinate
systems, one associated with a body’s center of gravity, labeled CG, and two
others, labeled CS1 and CS2, respectively, associated with two other points on
the body that you can specify. You can create additional body coordinate
systems or delete them as necessary.
A Body block’s dialog box allows you to specify a Body CS’s origin (see “Setting
a Body CS’s Position” on page 3-12) and orientation (see “Setting a Body CS’s
Orientation” on page 3-14). The origin and orientation of a body’s CG CS
specify the body’s initial location and orientation. The origins of the other body
coordinate systems specify the initial locations of other points on the body.
SimMechanics allows flexibility in specifying the origins and orientations of a
body’s coordinate systems. You can specify the origin and orientation of a body
CS relative to
• The World CS
• Any other CS on the same body
• The Adjoining CS, the CS on the neighboring body or ground directly
connected by a Joint, Constraint, or Driver to the selected Body CS you are
configuring.
This simplifies creation and maintenance of models. The only limitation is that
you must specify the origin and location of at least one of a model’s body
coordinate systems relative to the World CS.
Connector Ports. Any Body CS can display a Body CS Port. A Body CS Port
allows you to attach Joints, Actuators, and Sensors to a Body. By default, a
Body’s CS1 and CS2 coordinate systems each display a Body CS port. You can
display a port for any other Body coordinate system as well, including a Body’s
CG CS.
Creating a Body Block
To create a Body block:
1 Drag a Body block icon from the SimMechanics Bodies library and drop it
into your model window.
3-10
mech_pdf.book Page 11 Tuesday, June 18, 2002 1:27 PM
Modeling Bodies
2 Open the Body block’s dialog box.
3 Enter the mass of the body you are modeling in the Mass field.
4 Select the units of mass from the adjacent units list.
5 Enter a 3-by-3 matrix representing the body’s inertia tensor relative to its
center of gravity coordinate system (CG CS) origin and axes in the Inertia
field (see “Determining Inertia Tensors for Common Shapes” on page 3-11).
6 Enter the initial positions of the body’s CG and coordinate systems in the
Position pane.
7 Enter the initial orientation of the body’s CG and coordinate systems in the
Orientation pane.
8 Click OK or Apply.
Determining Inertia Tensors for Common Shapes
The following table enables you to determine the inertia tensors for some
common shapes. For each shape of mass m, the table lists the shape’s principle
moments of inertia, I1, I2, and I3, along the x-, y-, and z-axes of the shape’s CG
coordinate system.
Shape
I1
I2
I3
Thin rod of length L
2
1
------ mL
12
2
1
------ mL
12
0
Sphere of radius R
2
2
--- mR
5
2
2
--- mR
5
2
2
--- mR
5
Cylinder of radius R and
height h aligned along the
CG CS z-axis
Rectangular parallelopiped
of sides a, b, and c.
2
1
--- m ( R
4
+ 1--3- h )
2
2
1----m(b
12
+c )
2
2
1
--- m ( R
4
+ 1--3- h )
2
2
1----m(a
12
+c )
2
2
1
--- mR
2
2
1----m(a
12
2
+b )
3-11
mech_pdf.book Page 12 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
Shape
Cone of height h and base
radius R
Ellipsoid of semiaxes a, b,
and c
I1
I2
1-m ( --35- R
4
2
2
2
1
--- m ( b
5
+c )
+h )
2
I3
1-m ( --35- R
4
2
2
2
1
--- m ( a
5
+c )
+h )
2
2
3----mR
10
2
1
--- m ( a
5
2
+b )
The corresponding inertia tensor for the shape is the following 3-by-3 matrix:
I1 0 0
0 I2 0
0 0 I3
Working with Body Coordinate Systems
Every body in SimMechanics has body coordinate systems (CSs) attached to it.
The location of a body CS is the origin of that CS. The CS’s rectangular x-y-z
coordinate axes are rotated at some orientation. You set up body CS origins and
orientations before running your model. But once the bodies start to move, the
origins and orientations of a body’s CSs remain fixed in the body. The elements
of a body’s inertia tensor also remain fixed in the body.
The sections “Managing Body Coordinate Systems” on page 3-15 and “Creating
Body CS Ports” on page 3-16 explain how to create custom body coordinate
systems and Body CS ports or delete existing ports.
Setting a Body CS’s Position
The Position pane of a Body block’s dialog box allows you to specify the
position of any of a body’s local coordinate systems.
The Translated from origin of and Components in axes of lists in the pane
together specify which other of your model’s coordinate systems you use as
reference points and orientations to set up the coordinate systems of the body
you are configuring.
To specify the position of a Body CS:
3-12
mech_pdf.book Page 13 Tuesday, June 18, 2002 1:27 PM
Modeling Bodies
1 Open the Body block’s dialog box.
The dialog box’s Position pane lists the body’s local coordinate systems in a
table.
Each row specifies the position of the coordinate system specified in the
Name column.
2 Select the units in which you want to specify the origin of the Body CS from
the CS’s Units list.
3 Specify the reference coordinate systems for the Body CS, i.e., the coordinate
system relative to which you want to measure the Body CS origin and the
orientation of the Body CS’s coordinate axes. The choices are World, the
adjoining CS, and other Body CSs on the same Body.
3-13
mech_pdf.book Page 14 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
Body CS
reference
menu
You do this by selecting the origin and orientation of the specification CS
from the Body CS’s Translated from origin of and Components in axes of
lists, respectively. For example, suppose that you want to specify the
position of CS2 relative to another coordinate system, whose origin is at the
origin of CS1 but whose axes run parallel to those of the World CS. Then you
would select CS1 from the Translated from origin of list of CS2 and
WORLD from the Components in axes of list of CS2.
4 Enter a vector specifying the location of the Body CS in the Origin position
vector [x y z] field of the CS.
The components of the vector must be in the units that you selected and
relative to the coordinate system that you selected. For example, suppose
that you had selected m as the units for specifying CS2’s origin and CS1 and
WORLD as the origin and orientation of the position specification CS for
CS2. Now suppose that you want to specify the location of CS2 as 1 meter to
the right of CS1 along the World x-axis. Then you would enter [1 0 0] as
CS2’s position vector.
5 Click Apply to accept the position setting or OK to accept the setting and
dismiss the dialog box.
Setting a Body CS’s Orientation
The Orientation pane of a Body block’s dialog box allows you to specify the
orientation of any of a body’s local coordinate systems.
To specify the orientation of a Body CS:
3-14
mech_pdf.book Page 15 Tuesday, June 18, 2002 1:27 PM
Modeling Bodies
1 Open the Body block’s dialog box.
2 Select the dialog box’s Orientation pane.
3 Select the units (degrees or radians) in which you want to specify the
orientation of the CS from the CS’s Units pane.
4 Select the coordinate system relative to which you want to specify the
orientation of the Body CS from the Body CS’s Relative to coordinate
system list. The choices are World, the adjoining CS, and other Body CSs on
the same Body.
5 Select the convention you want to use to specify the orientation of the Body
CS from the CS’s Specified using convention list.
6 Enter a vector that specifies the orientation of the Body CS relative to the
selected specification CS, according to the selected specification convention.
7 Click Apply to accept the position setting or OK to accept the setting and
dismiss the dialog box.
Managing Body Coordinate Systems
You will often need to modify the default body coordinate systems of a Body
block. You might want to connect a Body to more than two Joints, in which case
you need not only more Body CSs, but their Body CS ports as well. Connecting
Actuators and Sensors to Bodies requires a Body CS and Body CS port for each
connection.
The Body coordinate systems panel of a Body block’s dialog box contains a
row of buttons that allow you to add, delete, duplicate, and reorder a Body’s
local coordinate systems.
3-15
mech_pdf.book Page 16 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
Down
Up
Delete
Duplicate
Add
To use these buttons, select a Body CS in the CS table and select
• Duplicate to duplicate the CS
• Delete to remove the selected CS from the table
• Up to move the CS’s entry one row up in the CS table
• Down to move the CS’s entry one row down in the CS table
Select Add to add a new CS.
Creating Body CS Ports
To add or delete a port from a Body block’s icon, open the block’s dialog box and
select or unselect the CS’s Show port check box in the dialog box’s Body CS
table. Click OK or Apply to confirm the change.
3-16
mech_pdf.book Page 17 Tuesday, June 18, 2002 1:27 PM
Modeling Joints
Modeling Joints
In SimMechanics, a joint represents the degrees of freedom (DoFs) that one
body (the follower) has relative to another body (the base). The base body can
be a finite rigid body or a ground. Unlike a physical joint, a SimMechanics joint
has no mass, although some joints have spatial extension (see “Modeling with
Massless Connectors” on page 3-26.
A SimMechanics joint does not necessarily imply a physical connection
between two bodies. For example, a SimMechanics Six-DoF joint allows the
follower, e.g., an airplane, unconstrained movement relative to the base, e.g.,
ground, and does not require that the follower ever come into contact with the
base.
SimMechanics joints only add degrees of freedom to a machine, because the
Body blocks carry no degrees of freedom. Contrast this with physical joints,
which both add DoFs (with axes of motion) and remove DoFs (by connecting
bodies). See “Counting Degrees of Freedom” on page 3-61.
SimMechanics provides an extensive Joints library with blocks for modeling
various types of joints. This section explains how to use these blocks.
About Joints
Modeling with Joint blocks requires an understanding of the following key
concepts:
• Joint primitives
• Joint types
• Joint axes
• Joint directionality
• Assembly restrictions
Joint Primitives
Each Joint block conceptually represents one or more joint primitives that
together specify the degrees of freedom that a follower body has relative to the
3-17
mech_pdf.book Page 18 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
base body. The following table summarizes the joint primitives found singly or
multiply in Joint blocks.
Primitive Type
Symbol
Degrees of Freedom
Prismatic
P
One degree of translational freedom along a
prismatic axis
Revolute
R
One degree of rotational freedom about a
revolute axis
Spherical
S
Three degrees of rotational freedom about a
pivot point
Weld
W
Zero degrees of freedom
Joint Types
The blocks in the SimMechanics Joints library fall into the following
categories:
• Primitive joints
Each of these blocks contains a single joint primitive. For example, the
Revolute block contains a revolute joint primitive.
Revolute joint
• Composite joints
These blocks contain combinations of joint primitives, enabling you to specify
multiple rotational and translational degrees of freedom of one body relative
3-18
mech_pdf.book Page 19 Tuesday, June 18, 2002 1:27 PM
Modeling Joints
to another. Some model idealized real joints, for example, the Gimbal and
Bearing joints.
Bearing joint
Others specify abstract combinations of degrees of freedom. For example, the
Six-DoF block specifies unlimited motion of the follower relative to the base.
The Custom Joint allows you to create joints with any desired combination
of rotational and translational degrees of freedom.
• Massless connectors
These blocks represent extended joints with spatially separated joint
primitive axes, for example, a Revolute-Revolute Massless Connector.
Massless connector
Revolute primitive
Revolute primitive
3-19
mech_pdf.book Page 20 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
• Disassembled joints
These blocks represent joints that SimMechanics assembles at simulation
time, for example, a Disassembled Prismatic.
Dislocated and
misaligned joint
primitives
See “Assembly Restrictions” on page 3-23 and “Modeling with Disassembled
Joints” on page 3-29.
Joint Axes
Joint blocks define one or more axes of translation or rotation along which or
around which a follower block can move in relation to the base block. The axes
of a Joint block are the axes defined by its component primitives:
• A prismatic primitive defines an axis of translation.
• A revolute primitive defines an axis of revolution.
• A spherical primitive defines a pivot point for axis-angle rotation.
For example, a Planar Joint block combines two prismatic axes and hence
defines two axes of translation.
Axis Direction. By default the axes of prismatic and revolute primitives point in
the same direction as the z-axis of the World coordinate system. A Joint block’s
dialog box allows you to point its prismatic and revolute axes in any other
direction (see “Directing Joint Axes” on page 3-24).
Axis Order. SimMechanics executes the motion of composite joints one joint
primitive at a time. A joint that defines more than one axis of motion also
defines the order in which the follower body moves along each axis or about a
3-20
mech_pdf.book Page 21 Tuesday, June 18, 2002 1:27 PM
Modeling Joints
pivot. The order in which the axes and/or pivot appear in the Joint block’s
dialog box is the order in which the follower body moves.
Different primitive execution orders are physically equivalent, unless the joint
includes one spherical or three revolute primitives. Pure translations and pure
two-dimensional rotations are independent of primitive ordering.
Joint Directionality
Directionality is a property of a joint that determines the dependence of the
joint on the sign of forces or torques applied to it. A joint’s directionality also
determines the sign of signals output by sensors attached to the joint.
SimMechanics assigns a directionality to every joint in your model. You must
be able to determine the directionality of a joint in order to actuate it correctly
and to interpret the output of sensors attached to it.
When assigning directionality to a joint, SimMechanics regards the joint’s
follower as moving relative to the joint’s base. SimMechanics then assigns a
directionality to the joint, taking into account the type of joint and the direction
of the joint’s axis, as follows.
Directionality of a Prismatic Joint. If the joint is prismatic, a positive force applied to
the joint moves the follower in the positive direction along the axis of
translation. A sensor attached to the joint outputs a positive signal if the
follower moves in a positive direction along the joint’s axis of translation
relative to the base.
Base
Axis Direction
Follower
Directionality of a Revolute Joint. If the joint is revolute, a positive torque applied to
the joint rotates the follower by a positive angle around the joint’s axis of
rotation, as determined by the right-hand rule. A sensor attached to the
3-21
mech_pdf.book Page 22 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
revolute joint outputs a positive signal if the follower rotates by a positive angle
around the joint’s axis of revolution, as determined by the right-hand rule.
Base
Follower
Axis Direction
Directionality of a Spherical Joint. Spherical joint directionality means the positive
sense of rotation of the three rotational DoFs. Pick a rotation axis, rotating
using the right-hand rule from the base Body CS axes. Then rotate the follower
Body about that axis in the right-handed sense.
Directionality of Composite Joints. SimMechanics assigns a directionality
separately to each joint primitive, based on the primitive’s type and the
direction of its axis of translation or rotation. In each case, SimMechanics
regards the follower body of the composite joint as moving relative to the base
body along or around the joint primitive’s axis.
The order of primitives in the composite Joint’s dialog determines the spatial
construction of the joint. The first listed primitive is attached to the base, the
second to the first, and so on, down to the follower, which is attached to the last
primitive. Moving the first listed primitive moves the subsequent primitives in
the list, as well as the follower, relative to the base. Moving any primitive
moves the primitives below it in the list (but not those above it), as well as the
follower. Moving the last listed primitive moves only the follower.
Changing the Directionality of a Joint. You can change the directionality of a joint by
rewiring the Joint block to reverse the roles of the base and follower bodies or
by reversing the sign (direction) of the joint axis.
3-22
mech_pdf.book Page 23 Tuesday, June 18, 2002 1:27 PM
Modeling Joints
Assembly Restrictions
Many joints impose one or more restrictions, called assembly restrictions, on
the positions of the bodies that they join. The conjoined bodies must satisfy
these restrictions at the beginning of simulation and thereafter within
assembly tolerances that you can specify (see “Setting Assembly Tolerances” on
page 4-5). For example, the attachment points of revolute and spherical joints
must coincide within assembly tolerances; the attachment points of a Prismatic
joint must be collinear with the prismatic axis within assembly tolerances; the
attachment points of a Planar joint must be coplanar, etc. Composite joints,
e.g., the Six-DoF joint, impose assembly restrictions equal to the most
restrictive of its joint primitives. See the block reference for each Joint for
information on the assembly restrictions, if any, that it imposes. Positioning
bodies so that they satisfy a joint’s assembly restrictions is called assembling
the joint.
All joints except joints in the SimMechanics Disassembled Joints sublibrary
require manual assembly. Manual assembly entails your setting the initial
positions of conjoined bodies to valid locations (see “Assembling Joints” on
page 3-25). SimMechanics assembles disassembled joints during the model
initialization phase of simulation. It assumes that you have already assembled
all other joints before the start of simulation. Hence joints that require manual
assembly are called assembled joints. During model initialization and at each
time step, SimMechanics also checks to ensure that your model’s bodies satisfy
all assembly restrictions. If any of your model bodies fails to satisfy assembly
restrictions, Simulink halts the simulation and displays an error message.
Creating a Joint
A joint must connect exactly two bodies. To create a joint between two bodies:
1 Select the Joint from the SimMechanics Joints library that best represents
the degrees of freedom of the follower body relative to the base body.
2 Connect the base Connector Port of the Joint block (labeled B) to the point
on the base block that serves as the point of reference for specifying the
degrees of freedom of the follower block.
3 Connect the follower Connector Port of the Joint block (labeled F) to the
point on the follower block that serves as the point of reference for specifying
the degrees of freedom of the base block.
3-23
mech_pdf.book Page 24 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
4 Specify the directions of the joint’s axes (see “Directing Joint Axes” on
page 3-24).
5 If you plan to attach Sensors or Actuators to the Joint, create an additional
port for each Sensor and Actuator (see “Creating Actuator and Sensor Ports
on a Joint” on page 3-24).
6 If the joint is an assembled joint, assemble the bodies joined by the joint (see
“Assembling Joints” on page 3-25).
Directing Joint Axes
By default the prismatic and revolute axes of a joint point in the same direction
as the z-axis of the World coordinate system. To change the direction of the axis
of a joint primitive:
1 Open the joint’s dialog box and select a reference coordinate system for
specifying the axis direction from the coordinate system list associated with
the axis primitive.
The options are the World coordinate system or the local coordinate systems
of the base or follower attachment point. Choose the coordinate system that
is most convenient.
Primitive axis
direction vector
Reference
coordinate
system menu
2 Enter in the primitive’s axis direction field a vector that points in the desired
direction of the axis in the selected coordinate system.
Creating Actuator and Sensor Ports on a Joint
To create additional Connector Ports on a Joint for Actuators and Sensors,
open the Joint’s dialog box and set the Number of sensor/actuator ports to
the number of Actuators and Sensors you plan to attach to the Joint.
3-24
mech_pdf.book Page 25 Tuesday, June 18, 2002 1:27 PM
Modeling Joints
Port spinner
Apply the setting by clicking OK or Apply.
Assembling Joints
You must manually assemble all assembled joints in your model. Assembling a
joint requires setting the initial positions of its base and follower attachment
points such that they satisfy the assembly restrictions imposed by the joint (see
“Assembly Restrictions” on page 3-23). Consider, for example, the model
discussed in “A Four Bar Mechanism” on page 2-36. This model comprises
three bars connected by revolute joints to each other and to two ground points.
The model collocates the CS origins of the Body CS ports connected to each
Joint, thereby satisfying the assembly restrictions imposed by the revolute
joints.
[email protected]
Bar 2
Revolute 3
[email protected]
Bar 3
Assembled Revolute Joint in the Four Bar Mechanism
3-25
mech_pdf.book Page 26 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
Modeling with Massless Connectors
Massless connectors simplify the modeling of machines that use a relatively
light body to connect two relatively massive bodies. For example, you could use
a Body block to model such a connector. But the resulting equations of motion
might be ill-conditioned, because that connecting body’s mass is small, and the
simulation can be slow or error prone. Similarly, a massless connector avoids
global inconsistencies that can arise if you use a Constraint block to model the
connector.
A massless connector consists of a pair of joints located a fixed distance apart.
Think of a massless connector as a massless rod with a joint primitive affixed
at each end.
Revolute joint
Revolute joint
Massless rigid rod
Revolute axis
The initial orientation and length of the massless connector are defined by a
vector drawn from the base attachment point to the follower attachment point.
During simulation, the orientation of the massless connector can change but
not its length. In other words, the massless connector preserves the initial
separation of the base and follower bodies during machine motion.
3-26
mech_pdf.book Page 27 Tuesday, June 18, 2002 1:27 PM
Modeling Joints
Note You cannot actuate or sense a massless connector.
The SimMechanics Joints/Massless Connectors sublibrary contains three
Massless Connectors:
• One with two revolute primitives (Revolute-Revolute)
• One with a revolute primitive and a spherical primitive (Revolute-Spherical)
• One with two spherical primitives (Spherical-Spherical)
You can set the direction of the axes of the revolute primitives.
Creating a Massless Connector
To create a massless connector between two bodies:
1 Drag an instance of a Massless Connector block from the Massless
Connectors sublibrary into your model and connect it to the base and
follower blocks.
If necessary, point the axes of the connector’s revolute joints in the direction
required by the dynamics of the machine you are modeling.
2 Assemble the connector by setting the initial positions of the base and
follower body attachment points to the initial positions required by your
machine’s structure.
During simulation, the massless connector maintains the initial separation
between the bodies though not necessarily the initial relative orientation.
Massless Connector Example: Triple Pendulum
Consider a triple pendulum comprising massive upper and lower bodies and a
middle body of negligible mass. The following model uses a Revolute-Revolute
massless connector to model such a pendulum.
3-27
mech_pdf.book Page 28 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
In this model, the joint axes of the Revolute-Revolute connector have their
default orientation along the World z-axis. As a result, the lower arm (Body1)
rotates parallel to the World’s x-y plane.
Massless Connector Example: Four Bar Mechanism
The following model replaces one of the bars (Bar2) in the mech_four_bar
model from the Demos library with a Revolute-Revolute massless connector.
3-28
mech_pdf.book Page 29 Tuesday, June 18, 2002 1:27 PM
Modeling Joints
This model changes the Body CS origins of Bar3 to the following values.
Name
Origin position vector
Translated from origin of
CG
[-0.027 0.048 0]
CS1
CS1
[0.054 0.096 0]
[email protected]_2
CS2
[0 0 0]
[email protected]_2
This creates a separation between Bar3 and Bar1 equal to the length of Bar2
in the original model.
Try simulating both the original and the modified model. Notice that the
massless connector version moves differently, because you eliminated the mass
of Bar2 from the model. Notice also that the massless bar does not appear in
the animation of the massless connector version of the model.
Revolute primitive
Massless connector
Revolute primitive
Modeling with Disassembled Joints
The SimMechanics Joints/Disassembled Joints sublibrary contains a set of
joints that SimMechanics automatically assembles at the start of simulation;
that is, SimMechanics positions the joints such that they satisfy the assembly
3-29
mech_pdf.book Page 30 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
restrictions imposed by the type of joint, e.g., prismatic or revolute. Using these
joints eliminates the need for you to assemble the joints yourself.
Disassembled joints differ from assembled joints in significant ways. An
assembled joint primitive has only one axis of translation or revolution or one
spherical pivot point. A disassembled prismatic or revolute primitive has two
axes of translation or rotation, one for the base and one for the follower body.
A disassembled spherical primitive similarly has two pivot points.
Note Disassembled joints can appear only in closed loops and each closed
loop can contain only one disassembled joint.
The dialog box for a disassembled joint allows you to specify the direction of
each axis.
During model assembly, SimMechanics determines a common axis of
revolution or translation that satisfies model assembly restrictions, and aligns
the base and follower axes along the common axis.
Controlling Automatic Assembly
During model assembly, SimMechanics might move bodies connected by
assembled joints from their initial positions in order to assemble the
disassembled joints. SimMechanics’ solution to the assembly problem cannot
be predicted beforehand, except in simple cases. To prevent SimMechanics
from moving bodies during model assembly, use Joint Initial Condition
3-30
mech_pdf.book Page 31 Tuesday, June 18, 2002 1:27 PM
Modeling Joints
Actuator (JICA) blocks to specify the initial positions of bodies whose positions
you want to remain fixed during the assembly process. This forces
SimMechanics to find assembly solutions that satisfy the initial conditions
specified by the JICA blocks.
Disassembled Joint Example: Four Bar Mechanism
This example creates and runs a model of a disassembled four bar machine.
Disassembled
joint
Refer to the tutorial “A Four Bar Mechanism” on page 2-36, and the
mech_four_bar demo:
1 Disconnect the Joint Sensor1 block from the Revolute3 block.
2 Replace Revolute3 with a Disassembled Revolute block from the
Joints/Disassembled Joints sublibrary.
3-31
mech_pdf.book Page 32 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
3 Open the Disassembled Revolute dialog box and, under Axis of rotation for
both Base and Follower axes, enter [0 0 1]. Close the dialog.
4 Open the Bar2 dialog box and displace its CS2 origin from Bar 3’s CS1
origin, thus dislocating the joint.
5 Rerun the model.
Note that the motion is different from the manually assembled case.
Bar 2
Disassembled Revolute
Bar 3
Cutting Closed Loops
Simulink cannot solve models whose block schematics contain closed loops. To
simulate a model containing closed loops, SimMechanics internally converts a
closed-loop model to an open-loop model, by cutting each of the model’s closed
loops once, at a Joint, Constraint, or Driver block.
You can specify the Joint to cut if the loop does not contain a disassembled
joint. To do this, open the Joint’s dialog box and select the Mark as the
preferred cut joint option check box on the Advanced pane in that Joint’s
dialog Parameters area. If you do not specify a preference, Simulink cuts the
loop at a Disassembled Joint block if the loop contains one; otherwise, at a
3-32
mech_pdf.book Page 33 Tuesday, June 18, 2002 1:27 PM
Modeling Joints
Constraint or Driver block if the loop contains a Constraint block; otherwise, at
the Joint that has the fewest degrees of freedom.
Note SimMechanics cuts a loop at a disassembled joint regardless of your
preferred cut.
To display automatically cut joints, select the Mark automatically cut joints
check box on the Constraints pane of the Mechanical Environment Settings
dialog box (see “Constraints Pane” on page 4-9).
Refer to “Modeling with Disassembled Joints” on page 3-29 for more on
disassembled joints. Consult “Checking Schematic Topology” on page 3-58 to
see how SimMechanics analyzes closed loops in the model schematic.
3-33
mech_pdf.book Page 34 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
Modeling Constraints and Drivers
The SimMechanics Constraints & Driver library provides a set of blocks to
model constraints on the relative motions of two bodies. You model the
constraint by connecting the appropriate Constraint or Driver block between
the two bodies. As with joints, the blocks each have a base and follower
Connector Port, with the body connected to the follower port viewed as moving
relative to the body connected to the base port. For example, the following
model constrains Body2 to move along a track that is parallel to the track of
Body1.
The blocks enable you to model time-independent constraints or
time-dependent drivers.
• Constraint and unactuated Driver blocks model scleronomic
(time-independent) constraints.
• Actuated Driver blocks (see “Actuating a Driver” on page 3-47) model
rheonomic (time-dependent) constraints.
Holonomic constraint functions depend only on body positions, not velocities:
f ( x , x ; t) = 0
B F
Constraints of the form
g ( x , x· , x , x· ; t) = 0
B B F F
can sometimes be integrated into a form dependent only on positions; but if not,
they are nonholonomic.
See the reference pages for information on the specific constraint that a
Constraint or Driver block imposes.
Constraints and drivers can only remove degrees of freedom from a machine.
Constraints and unactuated Drivers prevent the machine from moving in
certain ways. Actuated Drivers externally impose a relative motion between
3-34
mech_pdf.book Page 35 Tuesday, June 18, 2002 1:27 PM
Modeling Constraints and Drivers
pairs of bodies, and those pairs of bodies are no longer free to respond to
externally applied forces or torques. See “Counting Degrees of Freedom” on
page 3-61.
Directionality of Constraints and Drivers
Like joints, constraints and drivers have directionality. The sequence of base
to follower body determines the directionality of the constraint or driver. The
directionality determines how the sign of Driver Actuator signals affects the
motion of the follower relative to the base and the sign of signals output by
constraint and driver sensors.
Solving Constraints
When simulating a model, SimMechanics uses a constraint solver to find the
motion, given the model’s Constraint and Driver blocks. You can specify both
the constraint solver type and the constraint tolerances that SimMechanics
uses to find the constraint solution. See “Choosing a Constraint Solver” on
page 4-5 for more information.
Restrictions on Using Constraint and Driver Blocks
The following restrictions apply to the use of Constraint and Driver blocks in a
model:
• Constraint and Driver blocks can appear only in closed loops.
• A closed loop cannot contain more than one Constraint or Driver block.
• A Constraint or Driver must connect exactly two Bodies.
Constraint Example: Gear Constraint
The mech_gears model in the Demos library illustrates the Gear Constraint.
Open the Body and Gear Constraint blocks.
3-35
mech_pdf.book Page 36 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
Body1 and Body2 have their CG positions 2 meters apart. CS1 and CS2 on
Body1 are collocated with the Body1 CG, and similarly, CS1 and CS2 on Body2
are collocated with the Body2 CG.
The Gear Constraint between them has two pitch circles. One is centered on
the CS2 at the base Body, which is Body1, and has radius 1.5 meters. The other
is centered on CS1 at the follower Body, which is Body2, and has radius 0.5
meters. The distance between CS2 on Body1 and CS1 on Body2 is 2 meters. The
sum of the pitch circle radii equals this distance, as it must.
Visualizing the Gear Motion
The demo is set up to open the visualization feature automatically upon
simulation start, with Handle Graphics and convex hulls, as explained in
“Viewing Machines with Handle Graphics” on page 5-10. Start the simulation
and watch the CG CS axis triads spin around. The CG triad at Body2 rotates
three times faster than the CG triad at Body1, because the pitch circle centered
on Body2 is three times smaller.
3-36
mech_pdf.book Page 37 Tuesday, June 18, 2002 1:27 PM
Modeling Constraints and Drivers
You can see the same behavior in the Scope. The upper plot shows the motion
of Revolute2, and the lower plot the motion of Revolute1. Note that angular
motion is mapped to the interval (−180o, +180o] degrees.
The Gear Constraint is inside a closed loop formed by
Ground_1–Revolute1–Body1–Gear Constraint–Body2–Revolute2–
Ground_2
Although Ground_1 and Ground_2 are distinct blocks, they represent different
points on the same immobile ground at rest in World. So the blocks form a loop.
Driver Example: Using the Angle Driver
The following two models illustrate the Angle Driver, both with and without a
Driver Actuator. The first is mech_angle_unact from the Demos library. Open
the Body2 block.
3-37
mech_pdf.book Page 38 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
The bodies form a double pendulum of two rods. The Body Sensor is connected
to Body2 at CS3 = CS2 and measures all three components of Body2’s angular
velocity vector with respect to the ground.
The Angle Driver is connected between Body2 and Ground_2. Because the
Angle Driver is not actuated in this model, it acts as a time-independent
constraint to hold the angle between Body2 and Ground_2 constant at its
initial value during the simulation.
Visualizing the Angle Driver Motion
The demo is set up to open the visualization feature automatically upon
simulation start, with Handle Graphics and convex hulls, as explained in
“Viewing Machines with Handle Graphics” on page 5-10. Start the simulation.
The upper body swings like a pendulum, but the lower body maintains its
horizontal orientation with respect to the horizontal ground. The Scope
measures Body2’s angular velocity with respect to ground, and this remains at
zero.
The second model is mech_angle_act from the Demos library. Open the Driver
Actuator block.
3-38
mech_pdf.book Page 39 Tuesday, June 18, 2002 1:27 PM
Modeling Constraints and Drivers
The Driver Actuator drives the Angle Driver block. The Actuator accepts a
constant angular velocity signal from the Simulink blocks. The Actuator also
requires the angle itself and the angular acceleration, together with the
angular velocity, in a vector signal format.
The Body Sensor again measures three components of Body2’s angular velocity
with respect to the ground. Constant1 drives the angle at 15o/second. While the
simulation is running, this angle changes at the constant rate. But at the same
time, the assembly and the constant length of the two pendulum rods must be
maintained by Simulink, while both rods are subject to gravity. These
requirements slow the simulation down, as they require increasing computing
power to maintain all of them simultaneously.
As in the Gear Constraint model, the two Ground blocks in these models
represent points on the same immobile ground at rest in World, so the Angle
Driver is part of a closed loop.
3-39
mech_pdf.book Page 40 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
Modeling Actuators
The SimMechanics Sensors & Actuators library provides a set of Actuator
blocks that enable you to apply time-dependent forces and motions to bodies,
joints, and drivers.
Note SimMechanics allows you to connect an Actuator to a Ground. But it
displays an error if you attempt to simulate or update a model containing such
a connection. This is because ground is immobile and hence cannot be
actuated.
You can use Actuator blocks to perform the following tasks:
• Apply a time-varying force or torque to a body or joint
• Specify the position, velocity, and acceleration of a joint or driver as a
function of time
• Specify the initial position and velocity of a joint primitive
In general, actuators can apply any combination of forces and motions to a
machine provided that
• The applied forces and motions are consistent with each other and with the
machine’s geometry, constraints, and assembly restrictions.
• It is possible to find a unique solution for the motion of each actuated degree
of freedom (DoF).
Actuating a Body
You can use actuators to apply forces and/or torques, but not motions, to bodies.
(You can apply motions to a body indirectly, using Joint Actuators. See
“Applying Motions to Bodies” on page 3-43.)
To actuate a body:
1 If there is not already an unused Connector Port available for the Actuator,
create a Body CS port on the Body for the Actuator. See the Body block
reference if you need to learn how.
3-40
mech_pdf.book Page 41 Tuesday, June 18, 2002 1:27 PM
Modeling Actuators
2 Drag a Body Actuator block from the Sensors & Actuators library into your
model and connect its output port to a Body CS port on the Body.
3 Open the Actuator’s dialog box.
4 Choose to apply a force or torque to the body:
- Select the Apply force check box if you want to apply a force to the body,
and select the units of force from the adjacent list.
- Select the Apply torque check box if you want to apply a torque to the
body, and select the units of torque from the adjacent list.
5 Select the coordinate system used to specify the applied torque from the
Using reference coordinate system list.
The list allows you to choose either the World CS or the Body CS of the port
to which you attached the Actuator.
6 Create vector signals that specify the value of the applied torque and force
at each time step.
You can use any Simulink source block (for example, an Input port or a Sine
Wave block) or combination of Simulink blocks to create the Body Actuator
signal. You can also use the output of a Sensor block connected to the Body
as input to the Sensor, thereby creating a feedback loop. Such loops are
useful for modeling springs and dampers (see “Modeling Sensor-Actuator
Feedback” on page 3-57.)
3-41
mech_pdf.book Page 42 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
7 Connect the force and/or torque signal to the input port of the Actuator.
If you are applying both a force and a torque to the body, connect the force
and torque signals to the inputs of a two-input Mux block. Then connect the
output of the Mux block to the input of the Actuator.
Body Actuator Example: Pure Kinetic Friction
The mech_ballistic_kin_fric model in the Demos library provides an
example of how to implement pure kinetic friction. This type of friction is a
continuous force that depends on a body’s motion relative to a medium (such as
air), as well as on physical characteristics of the body. Kinetic friction, unlike
“stiction,” involves no “sticking” or locking of motion, and the friction is not
discontinuous. While you could use the Joint Stiction Actuator, this is not
necessary. This model applies air friction or drag to a projectile with a Body
Actuator.
Open the Air Drag subsystem. If you double-click the block, a mask dialog box
opens asking for the drag coefficient Cd. If you right-click the block and select
Look under mask, the subsystem itself appears:
The Air Drag subsystem computes the air friction according to a standard air
friction model. (See the Aerospace Blockset documentation for more
information.) The drag always opposes the projectile’s motion and is
proportional to the product of the air density, the projectile’s cross-sectional
area, and the square of its speed.
3-42
mech_pdf.book Page 43 Tuesday, June 18, 2002 1:27 PM
Modeling Actuators
Run the model with the default drag coefficient (zero). The XY Graph window
opens to plot the parabolic path of the projectile. Now open the Air Drag dialog
again and experiment with different drag coefficients Cd. Start with small
values such as Cd = 0.05. For a rigid sphere, Cd is two. The effect of the drag is
dramatic in that case.
Applying Motions to Bodies
The Body Actuator block cannot actuate a Body with motion signals. But you
can construct such body motion actuators with a combination of other blocks.
See “Joint Actuator Example: Body Driver” on page 3-45.
Actuating a Joint
You individually actuate each of the prismatic and revolute primitives of an
assembled joint. You can apply
• Forces or translational motions (but not both) to prismatic primitives
• Torques or rotational motions (but not both) to revolute primitives
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:
1 Create an Actuator port on the Joint block for the primitive (see “Creating
Actuator and Sensor Ports on a Joint” on page 3-24).
2 Drag a Joint Actuator or Joint Stiction Actuator from the Sensors &
Actuators library into your model and connect its output port to the Actuator
port on the Joint.
The remaining steps in this procedure apply to the creation of a standard
Joint Actuator. For information on creating a stiction actuator, which
applies classical Coulombic friction to a prismatic or revolute joint, see the
Joint Stiction Actuator block reference page.
3 Open the Joint Actuator’s dialog box.
3-43
mech_pdf.book Page 44 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
4 Select the primitive you want to actuate from the Connected to primitive
list on the dialog box.
5 Select the type of actuation you want to apply, either Generalized forces or
Motion.
6 If you are actuating a prismatic primitive:
- If you selected Generalized Forces as the actuation type, select the units
of force from the Apply force list.
- If you selected Motion as the actuation type, select the units for each
motion to be actuated (position, velocity, acceleration).
7 If you are actuating a revolute primitive:
- If you selected Generalized Forces as the actuation type, select the units
of torque from the Apply torque list.
- If you selected Motion as the actuation type, select the units for each
motion to be actuated (angle, angular velocity, angular acceleration).
8 Click OK to apply your choices and dismiss the dialog box.
Each joint primitive that you motion-actuate is lost as a true degree of
freedom in your machine. That is because the DoF can no longer respond
freely to externally applied forces or torques. See “Counting Degrees of
Freedom” on page 3-61.
9 Create a signal that specifies the applied force, torque, or motions at each
time step.
You can use any Simulink source block or any combination of blocks to
create the actuator signal. You can also connect the output of a Sensor block
attached to the Joint to the Actuator input, thereby creating a feedback loop.
You can use such loops to model springs and dampers attached to the 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” on
page 3-21).
3-44
mech_pdf.book Page 45 Tuesday, June 18, 2002 1:27 PM
Modeling Actuators
10 Connect the Actuator signal to the Actuator port on the Joint.
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” on page 3-47.
Joint Actuator Example: Body Driver
The mech_body_driver model in the Demos library 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
3-45
mech_pdf.book Page 46 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
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:
3-46
mech_pdf.book Page 47 Tuesday, June 18, 2002 1:27 PM
Modeling Actuators
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.
To actuate a Driver:
1 Create an additional Connector Port on the Driver for the Actuator.
Create the additional port in the same way you create an additional Driver
port on a Joint (see “Creating Actuator and Sensor Ports on a Joint” on
page 3-24).
2 Drag an instance of a Driver Actuator from the Sensors & Actuators library
into your model.
3 Connect the Actuator’s output port to the Actuator port on the Driver.
4 Create a signal that specifies the time dependence of the Driver constraint.
5 Connect the actuation signal to the input port of the Driver Actuator.
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
3-47
mech_pdf.book Page 48 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
• Specify a nonzero initial joint velocity
The default initial velocity of a joint is zero. You must use one or more JICA
blocks to specify a joint’s initial velocity if the initial velocity is not zero.
• Override the initial position settings of a body pair
The CG CS origin settings in the dialog boxes of Body blocks specify the
bodies’ initial positions. You can override these initial body positions by
resetting their relative positions in the joints connecting them with JICA
blocks.
Using JICA Blocks
Specifying initial conditions on a joint is similar to actuating a joint. In fact, you
can think of specifying initial conditions as 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. That
is because the JICA’s dialog box specifies the Actuator input.
You must specify initial conditions separately for each desired translational
and rotational DoF by connecting each corresponding prismatic and revolute
primitive to a JICA. (You cannot specify ICs for weld and spherical primitives.)
To specify the initial velocity and/or position of a joint primitive:
1 Drag a JICA block from the Sensors & Actuators library and drop it into
your model window.
2 Create an additional Connector Port on the Joint block containing the
primitive whose initial condition you want to specify.
3 Connect the Connector Port on the JICA block to the new Connector Port on
the Joint block.
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.
3-48
mech_pdf.book Page 49 Tuesday, June 18, 2002 1:27 PM
Modeling Actuators
4 Open the JICA block’s dialog box.
5 Select the primitive you want to actuate from the Connected to primitive
list.
6 Enter the initial velocity of the primitive, relative to the Body CSs attached
to the Joint, in the Initial velocity field.
7 Select the velocity units from the list to the right of the Initial velocity field.
8 Enter the initial position vector of the primitive, relative to the Body CSs
attached to the Joint, in the Initial position field.
9 Click Apply or OK.
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” on
page 3-48, to connect and configure one Joint Initial Condition Actuator block
to the Revolute block. This Joint contains only one primitive, R1, which the
Actuator automatically selects by default in this case.
3-49
mech_pdf.book Page 50 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
Set the initial conditions in two ways and compare the resulting simulations in
the Scope:
1 First set the Initial position (angle) to 60 deg, which is 60o down from the
left horizontal (30o left and up from vertically down), and the Initial
velocity to 0 deg/s.
2 Run the simulation for one second. Note in Scope that the initial angle
(yellow curve) is displaced upward to 60o, while the initial velocity (purple
curve) still starts at zero.
3-50
mech_pdf.book Page 51 Tuesday, June 18, 2002 1:27 PM
Modeling Actuators
Initial angle
Initial angular velocity
3 Now reset the Initial velocity to 30 deg/s, leaving the Initial position
(angle) at 60 deg.
4 Rerun the simulation for one second. Note in Scope that the initial angle is
still displaced upward to 60o, but the initial velocity is also displaced upward
to 30o/sec.
3-51
mech_pdf.book Page 52 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
Initial angle
Initial angular velocity
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.
3-52
mech_pdf.book Page 53 Tuesday, June 18, 2002 1:27 PM
Modeling Sensors
Modeling Sensors
The SimMechanics Sensors & Actuators library provides a set of Sensor blocks
that enable you to measure
• Body motions (see “Sensing Body Motions” on page 3-53)
• Joint motions and forces or torques on joints (see “Sensing Joint Motions and
Forces” on page 3-55)
• Constraint reaction forces and torques (see “Sensing Constraint Reaction
Forces” on page 3-55)
Note You can feed Sensor output back into Actuator blocks to model springs,
dampers, and other mechanical devices that depend on force feedback. See
“Actuating a Body” on page 3-40, “Actuating a Joint” on page 3-43, and
“Modeling Sensor-Actuator Feedback” on page 3-57.
Sensing Body Motions
To sense the position, velocity, or acceleration of a body represented by a Body
block:
1 If the Body block does not have a spare local coordinate system with a Body
CS port, create one (see “Managing Body Coordinate Systems” on
page 3-15).
2 Drag a Body Sensor block from the Sensors & Actuators library into your
model.
3 Connect its Connector Port to a spare Body CS port on the Body.
4 Open the Sensor’s dialog box.
3-53
mech_pdf.book Page 54 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
5 Select the coordinate system relative to which the sensor measures its
output from the With respect to coordinate system list.
6 Select the check boxes next to the motions that you want to sense (see the
Body Sensor block reference page).
7 If you have chosen to sense more than one type of motion and want the
Sensor to multiplex the motions into a single output signal, select the
Output selected parameters as one signal check box.
8 Click OK or Apply.
9 Connect the output of the Body Sensor block to a Simulink Scope or other
signal sink or to a motion feedback loop, depending on your needs.
3-54
mech_pdf.book Page 55 Tuesday, June 18, 2002 1:27 PM
Modeling Sensors
Sensing Joint Motions and Forces
The SimMechanics Joint Sensor block enables you to measure the motions of
joints. It can also measure the relative forces and torques between the bodies
connected to the joint. These include the computed force or torque (the force or
torque needed to reproduce the joint’s motion) and the reaction force and torque
on a joint primitive. (You cannot measure the computed force or torque on a
spherical or weld primitive.) You must connect a separate Joint Sensor block to
a Joint block for each joint primitive that you want to sense.
To sense the motions, forces, and torques of a joint primitive contained by a
Joint block:
1 If the Joint block does not have a spare Sensor port, create one (see
“Creating Actuator and Sensor Ports on a Joint” on page 3-24).
2 Drag a Joint Sensor block from the Sensors & Actuators library into your
model.
3 Connect its Connector Port to the spare Sensor port on the joint.
4 Use the Sensor’s dialog box to configure the Sensor to measure the motions,
forces, and torques that you want to measure (see the Joint Sensor block
reference page).
5 Connect the output of the Joint Sensor block to a Simulink Scope or other
signal sink or to a motion feedback loop, depending on your needs.
Sensing Constraint Reaction Forces
The SimMechanics Constraint & Driver Sensor block enables you to measure
the reaction forces and torques induced on the constraints modeled by
SimMechanics Constraint and Driver blocks.
To sense the reaction force and/or torque induced by a Constraint or Driver
block:
1 If the Constraint or Driver block does not have a spare Sensor port, create
one.
2 Drag a Constraint & Driver Sensor block from the Sensors & Actuators
library into your model.
3-55
mech_pdf.book Page 56 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
3 Connect its Connector Port to a spare Sensor port on the Constraint or
Driver block.
4 Open the Sensor block’s dialog box.
5 Select the body (follower or base) on which to measure the reaction force
from the Reactions measured on list.
6 Select the coordinate system relative to which the Sensor measures its
output from the With respect to coordinate system list.
7 Select the Reaction torque check box if you want the Sensor to output the
reaction torque on the base (or follower) body.
8 Select the Reaction force check box if you want the Sensor to output the
reaction force on the base (or follower) body.
9 If you have chosen to output both reaction force and torque and want the
Sensor to multiplex them into a single output signal, select the Output
selected parameters as one signal check box.
10 Click OK or Apply.
11 Connect the output of the Body Sensor block to a Simulink Scope or other
signal sink or to a motion feedback loop, depending on your needs.
3-56
mech_pdf.book Page 57 Tuesday, June 18, 2002 1:27 PM
Modeling Sensors
Modeling Sensor-Actuator Feedback
You can use sensor-actuator feedback loops to model springs, dampers, and
more complex internal forces (forces the machine applies to itself as a result of
its motion). For example, Hooke’s law states that the force exerted by an
extended spring is proportional to its displacement from its unextended
position: F = −kx.
The following SimMechanics model models a spring that obeys Hooke’s law.
The model uses the Gain block labeled Spring Constant to multiply the
displacement of the prismatic joint labeled Spring along the World’s y-axis by
the spring constant -0.8. The output of the Gain block is the force exerted by
the spring. The model feeds the force back into the prismatic joint via the
Actuator labeled Force. The model encapsulates the spring block diagram in a
subsystem to clarify the model and to allow a spring to be inserted elsewhere.
3-57
mech_pdf.book Page 58 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
Checking Model Validity
Simulink can simulate a SimMechanics model only if it is valid. A model is
valid if it satisfies the following rules:
• Every schematic in the model is topologically valid (see “Checking Schematic
Topology” on page 3-58).
• The model contains at least one degree of freedom (see “Counting Degrees of
Freedom” on page 3-61).
Checking Schematic Topology
To avoid simulation failures, you must ensure that the topology of your block
diagram is valid. A block diagram is topologically valid if each schematic that
it contains is valid. A schematic is valid if its spanning tree is valid. Thus to
determine if your model is valid, first determine the spanning tree of each
schematic that it contains and then the validity of the resulting spanning trees.
Determining a Schematic’s Spanning Tree
To determine the spanning tree of a schematic, remove all blocks from the
schematic except Body and Joint blocks and open every closed loop in the
resulting reduced schematic. To open a closed loop, conceptually follow the
loop-cutting rules in “Cutting Closed Loops” on page 3-32.
For example, here is a schematic with two closed loops.
3-58
mech_pdf.book Page 59 Tuesday, June 18, 2002 1:27 PM
Checking Model Validity
Cutting the top loop at the Disassembled Prismatic and removing the Parallel
Constraint block (thus simultaneously cutting the bottom loop) yields the
schematic’s spanning tree.
Removed Constraint block
X
Cut disassembled joint
Determining the Validity of a Spanning Tree
To be valid, a spanning tree must meet the following requirements:
3-59
mech_pdf.book Page 60 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
• The spanning tree must have at least one Ground block to serve as a
reference to World.
• Every Joint block must be connected to exactly two Body blocks.
• Every non-Ground Body block must have a unique path to a Ground block.
(This need not be true of the model schematic itself.) This ensures that, while
each body moves via joints relative to other bodies, SimMechanics can
resolve all bodies’ motions into absolute motions with respect to World.
• Every non-Ground Body block at an end of a sequence of Bodies must have
nonzero inertia (mass or inertial moment) associated with all joint primitives
that can move. Each translational DoF must carry a nonzero mass, and each
rotational DoF a nonzero inertial moment. This prevents infinite
accelerations when forces are applied.
Examples of Invalid Schematic Topologies
Here are some examples of invalid topologies:
• This one-loop schematic lacks a Ground block.
• This open machine schematic has a dangling Joint block.
3-60
mech_pdf.book Page 61 Tuesday, June 18, 2002 1:27 PM
Checking Model Validity
Dangling joint
• Another open machine schematic features a zero-mass body at one end of a
chain of bodies.
Massless
body
The last two invalid examples are dynamically (but not topologically)
equivalent, because a zero-mass body is dynamically no body at all.
Counting Degrees of Freedom
Identifying and counting the independent degrees of freedom (DoFs) of a
machine are important for trimming and linearizing SimMechanics models
(see “Trimming Mechanical Systems” on page 4-24 and “Linearizing
SimMechanics Models” on page 4-35) and for correcting simulation errors (see
“Troubleshooting Simulation Errors” on page 4-43).
Your SimMechanics model must have at least one DoF to be valid. A free
physical body has six DoFs: three translational and three rotational. But in a
3-61
mech_pdf.book Page 62 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
machine, connections between bodies by joints, constraints, and drivers, and
motion actuation by joint and body actuators reduce the machine’s
independent DoFs to a smaller number. You also reduce a body’s DoFs if you
confine the machine’s motion to one or two spatial dimensions.
In SimMechanics, a Body block has no DoFs. Connecting Joints to a Body adds
DoFs to the machine. The joint primitives represent the body’s DoFs relative to
other connected Bodies or Grounds. Connecting Constraint and Driver blocks
to Bodies or motion-actuating joint primitives in Joints removes DoFs from the
machine.
Finding Independent Degrees of Freedom
Here is the formula for determining the number of independent DoFs your
model has:
# of independent DoFs = # of body DoFs + # of primitive DoFs −
# of motion restrictions
The following three steps define each term on the right-hand side:
1 Calculate the number of body DoFs from the number of Body and Joint
blocks in your model:
# of body DoFs = 6 * (number of Bodies − number of Joints)
If you have confined the machine to move in only two dimensions, replace
the 6 by 3. If you have confined the machine to move in only one dimension,
replace the 6 by 1.
2 Calculate the number of primitive DoFs by adding up the primitive DoFs
from the Joint dialog boxes:
- Count one for each prismatic (P) or revolute (R) primitive.
- Count three for each spherical (S) primitive.
- Count zero for each weld (W) primitive.
Do not count a primitive DoF that is motion-actuated by a Joint Actuator.
3 Calculate the number of motion restrictions by adding up the motion
restrictions of each Joint Actuator, Constraint, and Driver block. Different
3-62
mech_pdf.book Page 63 Tuesday, June 18, 2002 1:27 PM
Checking Model Validity
blocks from the Constraints & Drivers library impose different numbers of
motion restrictions.
Constraint Block
Restrictions
Driver Block
Restrictions
Gear
One
Angle
One
Parallel
Two
Distance
One
Point-Curve
Two
Linear
One
Velocity
One
Be sure not to count redundant motion restrictions. These are restrictions
that forbid the motion of joint primitives that could not move anyway even
if the constraint were removed, because of how the joints are configured.
Example: A body is connected to a ground by a single prismatic. You place a
constraint on the body that prevents it from moving perpendicularly to the
prismatic axis. The body could not move in that direction even if you
removed the constraint. So the constraint is redundant, and you would not
count it as a motion restriction.
DoF Example: Double Pendulum
The mech_dpen model from the Demos library represents planar double
pendulum motion actuated by a Joint Actuator.
3-63
mech_pdf.book Page 64 Tuesday, June 18, 2002 1:27 PM
3
Modeling Mechanical Systems
The double pendulum has two rigid bodies, such as two rods, confined to move
in two dimensions. Ignoring the Joint Actuator temporarily, there are two
bodies, two joints, and two revolute primitives, and thus 3 * (2 − 2) + 2 = 2
independent DoFs. There are many ways to represent these two DoFs, but the
two revolute primitives are the simplest way.
Including the Joint Actuator in the DoF count removes the revolute primitive
in the Revolute block as an independent DoF. So this model actually only has
one independent DoF, the revolute primitive in the Revolute1 block.
DoF Example: Four Bar Mechanism
The four bar mechanism of “A Four Bar Mechanism” on page 2-36 has four
revolutes. You can establish that only 3 * (3 − 4) + 4 = 1 of these DoFs is actually
independent and arrive at the same result obtained in “A Four Bar
Mechanism.”.
3-64
mech_pdf.book Page 1 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical
Models
SimMechanics gives you multiple ways to simulate and analyze machine motion in the Simulink
environment. Running a mechanical simulation is similar to running a simulation of any other type
of Simulink model. It entails setting various simulation options, starting the simulation, and dealing
with simulation errors. See the Using Simulink guide for a general discussion of these topics. This
chapter focuses on aspects of simulation specific to SimMechanics models.
Choosing Simulation Options
(p. 4-2)
Special settings in SimMechanics and Simulink for running
mechanical models
Mechanical Environment
Settings Dialog Box (p. 4-7)
Controlling the SimMechanics simulation parameters
Finding Forces from Motions
(p. 4-14)
Examples of the Inverse Dynamics and Kinematics analysis
modes of SimMechanics
Trimming Mechanical Systems
(p. 4-24)
Examples of finding machine steady states with the
Trimming mode of SimMechanics
Linearizing SimMechanics
Models (p. 4-35)
Determining the linear response of trimmed mechanical
systems with SimMechanics and Simulink
How SimMechanics Works
(p. 4-41)
Overview of how SimMechanics analyzes and simulates a
mechanical model
Troubleshooting Simulation
Errors (p. 4-43)
Fixing SimMechanics simulation errors
SimMechanics Limitations
(p. 4-49)
How to use compatible Simulink simulation tools with
SimMechanics models
mech_pdf.book Page 2 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Choosing Simulation Options
Simulink provides an extensive set of simulation options that apply to any type
of model. SimMechanics provides additional options that apply specifically to
simulating mechanical system models. The following sections discuss these
additional mechanical system-specific options and standard options for which
mechanical models entail special consideration.
Choosing an Analysis Mode
You can use SimMechanics to compute the motion that results from applying
forces to a mechanical system or the forces required to produce a specified
motion in a mechanical system. To compute either type of result, you must
build an appropriate model and choose an appropriate mode of analysis. The
Parameters pane (see “Parameters Pane” on page 4-7) of the Mechanical
Environment Settings dialog box provides the following modes of analysis,
each appropriate for a particular type of model.
Forward Dynamics Mode
Computes the positions and velocities of a system’s bodies at each time step,
given the initial positions and velocities of its bodies and any forces applied to
the system. Use this mode to simulate a model that represents the initial
positions and velocities of the system’s bodies and the forces on those bodies.
You ran the examples from previous chapters in the Forward Dynamics mode:
• “Running a Demo Model” on page 1-5
• “Building a Simple Pendulum” on page 2-11 and “A Four Bar Mechanism” on
page 2-36
as well as the many examples of “Modeling Mechanical Systems.”.
Inverse Dynamics Mode
Computes the forces required to produce a specified velocity for each body of an
open-loop system. Use this mode to simulate an open-loop system whose model
specifies the velocity of every degree of freedom of every body at every time
step. See “Open-Topology Example: Double Pendulum” on page 4-19 for an
example of using this mode to find the forces on an open-loop system.
4-2
mech_pdf.book Page 3 Tuesday, June 18, 2002 1:27 PM
Choosing Simulation Options
Kinematics Mode
Computes the forces required to produce a specified velocity for each body of a
closed-loop system. Use this mode to simulate a closed-loop system whose
model specifies the velocity of every independent degree of freedom at every
time step. See “Closed-Loop Example: Four-Bar System” on page 4-15 for an
example of using this mode to find the forces on a closed-loop system.
Trimming Mode
This is a variant of Forward Dynamics mode that allows you to run the
Simulink trim command on your model. The trim command in turn allows you
to find steady-state solutions for your model (see “Equilibrium Point
Determination” in the “Analyzing Simulation Results” section of the Simulink
documentation or enter help trim at the MATLAB command line).
Trimming mode inserts a subsystem and an output port at the top level of your
model. These blocks output signals corresponding to the constraints on the
system represented by your model. Configure the trim command to find
equilibrium points where the constraint signals are 0. This ensures that the
equilibrium points found by the trim command satisfy the constraints on the
modeled system. See “Constrained Example: Four-Bar System” on page 4-30
for an example of using this mode to find the equilibrium points of a
constrained system.
Choosing an ODE Solver
SimMechanics uses an ODE solver to solve a system’s equations of motion,
typically in tandem with a constraint solver (see “Choosing a Constraint
Solver” on page 4-5). Simulink provides an extensive set of ODE solvers that
represent the most advanced numerical techniques available for solving
differential equations in general and equations of motion in particular. The
Solver pane of a model’s Simulation Parameters dialog box allows you to
select any of these solvers for use by Simulink in solving the model’s dynamics
(see “The Solver Pane” in the Simulink User’s Guide more information).
The Dormand-Prince solver (ode45) that Simulink uses by default works well
for many mechanical systems, but might require too much time to solve
systems that are stiff, that is, have bodies that move at widely varying speeds
or that have many discontinuities in their motion. An example of a stiff system
is a pair of coupled oscillators in which one oscillator is much lighter than the
other and hence oscillates much more rapidly. Any of the following solvers
4-3
mech_pdf.book Page 4 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
might require significantly less time than the default solver to solve a stiff
system:
• ode15s: Variable-order solver based on a backward differentiation rule
(variant of Gear’s method).
• ode23t: Trapezoidal rule solver. Use this solver if your system is slightly
stiff, to avoid numerical damping.
• ode23tb: Implicit Runge-Kutta method solver combining trapezoidal rule
and a backward differentiation rule of order 2. More efficient than ode15s if
the solution has many discontinuities.
• ode23s: Modified Rosenbrock method solver of order 2. This solver is also
more efficient than ode15s, if the solution has many discontinuities.
Try each of these solvers in turn and then use the solver that gives the best
results.
Setting ODE Solver Tolerances
By default Simulink automatically determines the absolute tolerance used by
ODE solvers. The resulting tolerance might not be small enough for a
mechanical system, particularly a nonlinear or chaotic system. Try running a
simulation with the relative tolerance set to 1e-3 (the default) and the absolute
tolerance set to 1e-4. Then increase the tolerances if the simulation takes too
long or decrease them if the solution is not sufficiently accurate.
If your model contains one or more Joint Stiction Actuator blocks, you must
also take into account the velocity thresholds of these blocks when setting the
absolute tolerance of the ODE solver. If the absolute tolerance of the solver is
greater than a joint’s velocity threshold, the simulation might never detect the
unlocking of a joint. To prevent this from happening, set the absolute tolerance
to be no more than 10% of the size of the smallest stiction velocity threshold in
your model.
Handling Singularities
Singularities in a system’s equations of motions can dramatically slow down a
standard Simulink ODE solver or even prevent it from finding a solution to a
system’s equations of motions. Because singularities are frequent in
mechanical equations of motion, SimMechanics provides an optional feature,
called Robust Singularity Handling, that works in tandem with the currently
selected ODE solver to solve singular equations of motions efficiently. This
4-4
mech_pdf.book Page 5 Tuesday, June 18, 2002 1:27 PM
Choosing Simulation Options
feature can enable Simulink to simulate models that otherwise cannot be
simulated or cannot be solved in a reasonable amount of time because of the
singularities.
To enable this feature, select Use robust singularity handling on the
Constraints pane of the Mechanical Environment Settings dialog (see “Use
Robust Singularity Handling” on page 4-10). Because this option requires extra
computation whether or not singularities exist, you should select this option
only as a last resort, i.e., select this option only if you cannot find a standard
Simulink solver that solves your model in a reasonable amount of time without
it.
Setting Assembly Tolerances
A model’s Mechanical Environment Settings dialog allows you to specify a
linear and an angular assembly tolerance (see “Parameters Pane” on page 4-7).
These tolerances specify the precision with which:
• A model must specify the initial locations and angles of a system’s joints.
• SimMechanics must solve the initial positions and angles of a model’s
unassembled joints.
Simulink checks the locations and angles of a model’s assembled joints during
the model initialization phase of a simulation. If any of the joint locations or
angles fail to meet the corresponding assembly tolerances, Simulink halts the
simulation and displays an error message. If this happens, you should check
your model to ensure that it specifies the locations and angles of its assembled
joints to the precision specified on the Parameters pane of the Mechanical
Environment Settings dialog. If not, either change the locations and angles
that fail to meet the assembly tolerances or increase the tolerances themselves.
Choosing a Constraint Solver
If your model contains implicit or explicit constraints on a system’s motion,
SimMechanics uses a constraint solver to find a solution to its equations of
motion that meet the constraints. The Constraints pane of the Mechanical
Environment Settings dialog (see “Constraints Pane” on page 4-9) allows you
to select one of the following solvers to solve the constraints specified by your
model:
• Stabilizing
4-5
mech_pdf.book Page 6 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
• Tolerancing
• Machine precision
The following sections describe these solvers.
Stabilizing Constraint Solver
Adds a self-correcting term to the state equations to be solved that stabilizes
the numerical solution, i.e., causes it to gravitate toward, rather than drift
away from, the actual solution. SimMechanics uses this solver by default. It is
typically faster than the other solvers, but can stop at a solution that exceeds
the model’s assembly tolerances. If assembly tolerance errors occur during the
simulation, use one of the following solvers instead.
Tolerancing Constraint Solver
Solves the constraints on the system’s states to the tolerance that you specify.
Specifically the solver stops refining the numerical solution of the state
equation when the difference between two successive solutions satisfies the
equation
|error| < |rtol * x + atol|
where error is the difference between successive solutions, rtol is the relative
constraint tolerance (see “Constraint Relative Tolerance” on page 4-10), x is the
state to be solved, and atol is the absolute constraint tolerance (see “Constraint
Absolute Tolerance” on page 4-10).
Use this solver if you plan to run the simulation in Kinematics mode and you
want to trade off simulation accuracy for simulation time. Relaxing the
constraint solver tolerances generally reduces the time required to simulate
the model. Decreasing the tolerances increases the accuracy of the simulation
but also increases the time required to simulate the model.
Machine-Precision Constraint Solver
Solves the constraints to the numerical precision of the computer on which the
simulation is running. Select this solver if you want to obtain the most accurate
simulation permitted by the computer, regardless of simulation time.
4-6
mech_pdf.book Page 7 Tuesday, June 18, 2002 1:27 PM
Mechanical Environment Settings Dialog Box
Mechanical Environment Settings Dialog Box
The Mechanical Environment Settings dialog box allows you to choose
simulation options that are specific to models using SimMechanics blocks. To
display this dialog, select Mechanical environment from the model’s
Simulation menu. The Mechanical Environment Settings dialog appears.
The dialog groups SimMechanics global settings onto four tabbed panes:
Parameters, Constraints, Linearization, and Visualization. The following
sections explain the settings on each pane.
Parameters Pane
This pane includes the following simulation settings.
Gravity Vector and Units
The value of this parameter is a MATLAB vector that specifies the magnitude
and direction of gravitational acceleration in the model’s world coordinate
system. The adjacent list box specifies the units that the vector represents. The
default vector is [0 -9.81 0]. The default units are m/s2 (meters per square
second). Use the menu to the right if you want to reset the units.
4-7
mech_pdf.book Page 8 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Analysis Mode
Specifies the type of analysis to be performed during the simulation. Choose
one from the menu. See “Choosing an Analysis Mode” on page 4-2 for more
information.
Analysis Mode
Description
Forward dynamics
Computes the positions and velocities of the system’s
bodies, given forces, torques, and initial conditions.
This is the default mode.
Inverse dynamics
Computes the forces and torques required to produce
the specified motions of an open system (see
“Open-Topology Example: Double Pendulum” on
page 4-19).
Kinematics
Computes the forces and torques required to produce
the specified motions of a closed-loop system (see
“Closed-Loop Example: Four-Bar System” on
page 4-15).
Trimming
Variant of Forward Dynamics mode to be used with
the Simulink trim command to determine
steady-state or other points in the state space of a
system (“Trimming Mechanical Systems” on
page 4-24).
Linear Assembly Tolerance
Maximum separation allowed between bodies connected by prismatic joints.
The default is 1e-3 m. Use the menu on the right to set the units. See “Setting
Assembly Tolerances” on page 4-5 for more information.
Angular Assembly Tolerance
Maximum separation allowed between bodies connected by revolute joints.
Default is 1e-3 rad. Use the menu on the right to set the units. See “Setting
Assembly Tolerances” on page 4-5 for more information.
4-8
mech_pdf.book Page 9 Tuesday, June 18, 2002 1:27 PM
Mechanical Environment Settings Dialog Box
Constraints Pane
This pane contains settings for models that contain constraint or driver blocks.
Constraint Solver Type
Type of solver used to solve constraints on the mechanical system’s states
specified by the model’s constraint and driver blocks. Choose one from the
menu. See “Choosing a Constraint Solver” on page 4-5 for more information.
Solver Type
Description
Stabilizing
Adds a self-correcting term to the state equations to
be solved that stabilizes the numerical solution, i.e.,
causes it to gravitate toward, rather than drift away
from, the actual solution. This is the default.
Tolerancing
Solves the constraints on the system’s states to a
specified degree of accuracy.
Machine precision
Solves the constraints to the numerical precision of
the computer on which the simulation is running.
4-9
mech_pdf.book Page 10 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Constraint Relative Tolerance
The relative tolerance used by the Tolerancing constraint solver to determine
when to stop refining a solution. Default is 1e-4. See “Tolerancing Constraint
Solver” on page 4-6 for more information.
Constraint Absolute Tolerance
The absolute tolerance used by the Tolerancing constraint solver to determine
when to stop refining the solution of a model state. Default is 1e-4. See
“Tolerancing Constraint Solver” on page 4-6 for more information.
Use Robust Singularity Handling
Select this check box if you want Simulink to take extra steps to handle
singularities in a system’s equations of motion. This option increases the
length of time required to solve a system’s equations of motion regardless of
whether they have singularities. Hence, you should select this option only as a
last resort, i.e., only if Simulink ODE solvers cannot otherwise solve the
system’s equations of motion or require an excessively long time to do so.
Show automatically cut joints
Selecting this check box causes Simulink to mark the icons of Joint or
Constraint/Driver blocks that it cuts during simulation of the model.
Automatically cut joint mark
Linearization Pane
This pane allows you to specify the type of state perturbation used by the
Simulink model linearization command, linmod, when linearizing a
SimMechanics model (see “Linearizing SimMechanics Models” on page 4-35).
4-10
mech_pdf.book Page 11 Tuesday, June 18, 2002 1:27 PM
Mechanical Environment Settings Dialog Box
State Perturbation Type
Specifies the type of state perturbation used by linmod to linearize a
mechanical systems model.
• Adaptive perturbation computes the size of the perturbation used at each
step in the linearization process to ensure accurate computation of the
linearization coefficients.
• Fixed perturbation uses the perturbation size specified in the
Perturbation size field.
Fixed perturbation is generally faster but can also be less accurate than
adaptive perturbation. You therefore should choose the fixed option only if the
adaptive option takes an excessively long time and you are willing to devote
time to finding, either analytically or experimentally, a fixed perturbation size
that produces an accurate linearization of your model. If you choose the fixed
option, you should check its results against the linearization produced by the
adaptive option.
Perturbation Size
Specifies the relative size of the perturbation used by the Fixed perturbation
option. The size is relative to the size of the state being perturbed.
4-11
mech_pdf.book Page 12 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Visualization Pane
This pane enables you to select various visualization options for your model.
For additional information on visualization, see “Visualizing and Animating
Machines” chapter.
Draw Machine Using
Specifies the visualization tool that Simulink uses to render your model when
you are building and/or simulating the model. If the Virtual Reality Toolbox is
installed on your system, the adjacent menu allows you to choose between
MATLAB Graphics or the Virtual Reality Toolbox. If the Virtual Reality
Toolbox is not installed on your system, Simulink uses MATLAB (Handle)
Graphics to render your model.
Represent Bodies As
Specifies the type of shape used to render the model’s bodies. You can choose
Equivalent ellipsoids or Convex hulls. See “Rendering Body Shapes in
SimMechanics” on page 5-5.
4-12
mech_pdf.book Page 13 Tuesday, June 18, 2002 1:27 PM
Mechanical Environment Settings Dialog Box
Draw Machine in Initial State
Selecting this check box causes Simulink to render the model in its initial state
when you select the Apply or OK button on the Mechanical Environment
Settings dialog and at the times specified by the Update machine option.
Update Machine
Specifies when Simulink updates the initial state rendering of your model. The
menu options are
• When diagram changes (whenever you change your block diagram)
• Only at Update diagram (whenever you select Update diagram from the
model’s Edit menu)
Animate Machine During Simulation
Selecting this check box causes Simulink to animate the model’s visualization
during simulation, i.e., recreate the rendering of the model at each time step to
show the current positions of the model’s bodies.
4-13
mech_pdf.book Page 14 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Finding Forces from Motions
The SimMechanics Kinematics and Inverse Dynamics modes (see “Choosing an
Analysis Mode” on page 4-2) enable you to find all the forces on a closed-loop
system or an open system, respectively, given a model that completely specifies
the system’s motions. Because the model specifies the positions, velocities, and
accelerations of the model’s components, these modes, unlike Forward
Dynamics mode, do not need to compute these quantities. Consequently,
Kinematics and Inverse Dynamics modes take less time to compute the forces
on a system. The time saving depends on the size and complexity of the system
being simulated.
To use these modes, you must first build a model of the system that specifies
completely the positions, velocities, and accelerations of the system’s joints and
bodies. Such a model is called a kinematic model. You create a kinematic model
by creating and interconnecting blocks representing the bodies and joints of the
system and then connecting actuators to the joints to specify the motions of the
bodies.
A model does not have to actuate every joint to specify completely the motions
of a system. In fact, the model need actuate only as many joints as there are
independent degrees of freedom in the system. (See “Counting Degrees of
Freedom” on page 3-61.) For example, a model of a four-bar mechanism need
actuate only one of the mechanism’s joints, because a four-bar mechanism has
only one degree of freedom. To avoid overconstraining the model’s solution, the
number of actuated joints should not exceed the number of degrees of freedom.
Attempting to simulate an overconstrained model causes Simulink to halt the
simulation and display an error message.
The following sections illustrate use of Kinematics and Inverse Dynamics
modes to find the forces on the joints of a closed- and an open-loop system,
respectively.
4-14
mech_pdf.book Page 15 Tuesday, June 18, 2002 1:27 PM
Finding Forces from Motions
Closed-Loop Example: Four-Bar System
Note The Kinematics mode works only on closed topologies and requires
motion-actuating every independent DoF (see “Counting Degrees of Freedom”
on page 3-61). There must also be no Joint Stiction Actuators and no
nonholonomic constraints.
Consider the four-bar system used to illustrate model building in the tutorial
titled “A Four Bar Mechanism” on page 2-36.
Revolute1
Suppose that you want to keep this system from collapsing under its own
weight. Because this system has only one degree of freedom, applying a
counterclockwise torque to the joint labeled Revolute1 would accomplish this
objective. But how much torque is sufficient?
To answer this question, you must first build a kinematic model of the
stationary four-bar system. The kinematic model must specify the structure of
the four-bar system and its motion over time. The four-bar model from the
four-bar tutorial specifies the structure of the system. You can therefore use
the tutorial model as a starting point for creating the kinematic model. You can
find this version of the tutorial in the demo model mech_four_bar_forw.
4-15
mech_pdf.book Page 16 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
To turn the tutorial model into a kinematic model, you must specify how the
system moves over time. In particular, you want the model to specify that the
system remains stationary. Because a four-bar system has only one degree of
freedom, you need specify only that one of the joints remains stationary. You
can use a Joint Actuator to accomplish this task.
The following diagram shows a kinematic model derived from the tutorial
model in this manner. This system is modeled in the demo mech_four_bar_kin.
4-16
mech_pdf.book Page 17 Tuesday, June 18, 2002 1:27 PM
Finding Forces from Motions
The model uses a Joint Actuator block driven by a Constant block to specify the
motion on the Revolute1 joint. The Constant block outputs a three-element
vector that specifies the angular position, velocity, and acceleration,
respectively, of the joint as 0. The model uses a Joint Sensor block connected to
a Scope block to display the resulting torque on the joint and a To Workspace
block to save the torque signal to the MATLAB workspace. Running this model
in Kinematics mode (see “Choosing an Analysis Mode” on page 4-2) reveals
that the torque on the Revolute1 joint is 27.9032 n-m.
To verify that the computed torque is, indeed, the torque required to keep the
system stationary, create a forward-dynamics model that applies the computed
torque to the Revolute1 joint. This model is contained in the demo
mech_four_bar_stat.
4-17
mech_pdf.book Page 18 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Now run the model in Forward Dynamics mode, with the Revolute1 Angle
Scope open.
The Scope display reveals that the model does, indeed, remain stationary,
although only for about 1.5 seconds. This is to be expected, as the computed
force is not exact and the system is unstable.
4-18
mech_pdf.book Page 19 Tuesday, June 18, 2002 1:27 PM
Finding Forces from Motions
Open-Topology Example: Double Pendulum
Note The Inverse Dynamics mode works only on open topologies and
requires motion-actuating every independent DoF (see “Counting Degrees of
Freedom” on page 3-61).
Consider a double pendulum consisting of two thin rods each one meter long
and weighing one kilogram. Suppose that the upper rod is initially rotated 15
degrees from the perpendicular.
How much torque is required to keep the pendulum stationary? Solving this
problem entails building a kinematic model of the stationary pendulum. The
model must represent the geometry of the double pendulum and specify that it
remains stationary throughout the simulation.
The kinematic model can take different approaches to specifying the initial
state of the pendulum. One approach uses Body block parameters to specify the
initial states. Another approach uses Actuator block parameters.
4-19
mech_pdf.book Page 20 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Using Body Block Parameters to Specify Initial Conditions
The following diagram illustrates the Body block approach to modeling initial
states. The model is a demo, mech_dpend_invdyn1.
This model represents the pendulum by two Body blocks and two Revolute
Joint blocks. The CS1 axis of the upper body (B1) of the pendulum is rotated 15
degrees from the perpendicular (see annotation for block B1). The coordinate
systems for the lower block (B2) are aligned with CS1 of the upper block. The
CS1 of B2 is rotated -15 degrees relative to CS1 of B1; i.e., it is perpendicular
to the world coordinate system. Actuator blocks connected to the joint blocks
specify that the pendulum should not move from its initial position. The model
uses sensor blocks connected to To Workspace blocks to output the torques on
the upper and lower joints as MATLAB workspace variables torque_upper and
torque_lower, respectively.
4-20
mech_pdf.book Page 21 Tuesday, June 18, 2002 1:27 PM
Finding Forces from Motions
Using Actuator Blocks to Specify the Initial States
The following diagram shows the use of Actuator blocks to specify the initial
state of the kinematic model. The system is modeled in the demo
mech_dpend_invdyn2.
Using the actuators to specify the displacement slightly simplifies the
configuration of the body blocks.
Simulating either model in Inverse Dynamics mode (required for open-loop
models; see “Choosing an Analysis Mode” on page 4-2) causes Simulink to
compute the joint torques required to maintain the pendulum in its initial
position. The torques are 3.8085 and 0 newton-meters, respectively. You can
verify that these are the correct answers by creating a version of the model that
applies the computed torques to the joints and simulating the model in
4-21
mech_pdf.book Page 22 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Forward Dynamics mode. For example, the following diagram illustrates a
forward dynamics version of the kinematic model that uses the joint actuators
to specify the initial angular displacement of the pendulum bodies. You can
find the model in a demo, mech_dpend_stat.
Note that this body uses Initial Condition blocks to specify the initial 15 degree
displacement of the upper body from the vertical in the world coordinate
system and the corresponding initial -15 degree displacement of the lower body
from the vertical in the coordinate system of the upper body. The negative
displacement of the lower body is equivalent to positioning it as vertical in the
world coordinate system.
Simulating this model in Forward Dynamics mode results in the following
display on the upper joint scope.
4-22
mech_pdf.book Page 23 Tuesday, June 18, 2002 1:27 PM
Finding Forces from Motions
The scope reveals that the upper joint never moves from its initial 15 degree
displacement, thus confirming that the computed torque is correct.
4-23
mech_pdf.book Page 24 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Trimming Mechanical Systems
Trimming a mechanical system refers to the process of finding solutions for the
model that satisfy conditions on its inputs, outputs, and states that you specify,
for example, steady-state solutions where some or all of the derivatives of the
system’s states are zero. To use this command to trim a system represented by
a SimMechanics model, you must select the SimMechanics Trimming mode
(see “Trimming Mode” on page 4-3). You must also specify the initial states of
the system and the conditions that the solutions must satisfy. The following
examples illustrate the process of trimming unconstrained and constrained
mechanical systems, respectively.
Note You cannot use Driver or Joint Initial Condition Actuator blocks while
trimming a model.
Unconstrained Example: Spring-Loaded Double
Pendulum
Consider the following spring-loaded double pendulum.
The joint connecting the upper and lower arms of this pendulum contains a
torsional spring and damper system that exert a counterclockwise force
4-24
mech_pdf.book Page 25 Tuesday, June 18, 2002 1:27 PM
Trimming Mechanical Systems
directly proportional to the angular displacement and velocity of the joint,
respectively. Suppose that the lower arm is folded upwards almost vertically
and then allowed to fall under the force of gravity. At what point does the
spring-damper system reach equilibrium; i.e., at what point does it cease to
unfold?
To find an equilibrium point for this system:
1 Build a SimMechanics model of the system.
This diagram shows an example of such a demo model, mech_dpend_trim.
This model uses Body blocks to model the upper and lower arms of the
pendulum and a Revolute Joint block (J1) to model the connection between
the pendulum and ground. The model uses a Subsystem block (J2) to model
4-25
mech_pdf.book Page 26 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
the spring-loaded revolute joint between the arms. The subsystem in turn
uses a negative feedback loop consisting of Revolute Joint, Joint Sensor,
Joint Actuator, Gain, and Sum blocks to model the spring-loaded joint. The
feedback loop models a torsional spring and damper by multiplying the
angular displacement and velocity, respectively, of the joint by constants.
The loop sums the resulting torques and feeds them back into the joint via
the Joint Actuator block. The result is that the joint experiences a torque
that opposes its motion and is proportional to its angular displacement and
velocity.
The spring and damper constants used in this model were chosen by running
the model with various candidate values and choosing the ones that resulted
in a moderate deflection of the pendulum.
2 Determine the layout of the model’s state vector.
You need to determine the layout of the model’s state vector in order to tell
the trim command where in the model’s state space to start its search for the
pendulum’s equilibrium point (the point where it stops unfolding). Use the
SimMechanics mech_stateVectorMgr command to perform this task.
>> v = mech_stateVectorMgr('mech_dpend_trim/G');
>> v.StateNames
ans =
'mech_dpend_trim/J2/RevoluteJoint:R1:Position'
'mech_dpend_trim/J1:R1:Position'
'mech_dpend_trim/J2/RevoluteJoint:R1:Velocity'
'mech_dpend_trim/J1:R1:Velocity'
The StateNames field of the state vector object returned by
mech_stateVectorMgr lists the names of the model’s states in the order in
which they appear in the model’s state vector. Thus the field reveals that the
model’s state vector has the following structure:
x(1)
x(2)
x(3)
x(4)
4-26
=
=
=
=
position
position
velocity
velocity
of
of
of
of
lower
upper
lower
upper
joint
joint
joint
joint
(J2)
(J1)
(J2)
(J1)
mech_pdf.book Page 27 Tuesday, June 18, 2002 1:27 PM
Trimming Mechanical Systems
3 Determine an initial state vector.
The initial state vector specifies the point in a system’s state space where the
trim command starts its search for an equilibrium point. The trim command
searches the state space outward from the starting point, returning the first
equilibrium point that it encounters. Thus, the starting point should not be
at or near any of a system’s trivial equilibrium points. In the case of the
double pendulum, the point [0; 0; 0; 0] (i.e., the pendulum initially folded up
and stationary) is a trivial equilibrium point and therefore to be avoided.
The initial state vector must also be a column vector and must specify
angular states in radians.
Often, the choice of a good starting point can be found only by experiment,
that is, by running the trim command repeatedly from different starting
points to find a nontrivial equilibrium point. This is true of the double
pendulum of this example. Experiment reveals that the following starting
point
ix(1)
ix(2)
ix(3)
ix(4)
=
=
=
=
J2
J1
J2
J1
(lower joint) angle = -35 degrees = -0.6109 radians
(upper joint) angle = -10 degrees = -0.1745 radians
angular velocity = 0 radians/sec
angular velocity = 0 radians/sec
yields a nontrivial equilibrium point. Therefore you can save time by
creating an initial state vector set to these values.
>> ix = [-0.6109; -0.1745; 0; 0];
Note The trim command ignores initial states specified by Initial Condition
blocks. Thus, you cannot use these blocks to specify the starting point for
trimming a model. If your model contains IC blocks, create the initial state
vector as if the blocks did not exist.
4 Set Trimming as the analysis type on the Parameters pane of the
Mechanical Environment Settings dialog (see “Choosing an Analysis
Mode” on page 4-2).
This option inserts a constraints subsystem and associated output at the top
level of the model.
4-27
mech_pdf.book Page 28 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Constraint output
SimMechanics inserts the constraint output in order to make the
constraints available to the trim command. The spring-loaded double
pendulum has no constraints. Hence the constraint output port outputs
nothing and is not needed to trim the pendulum.
5 Enter the following commands to find the nearest equilibrium point to the
starting point determined in
ix = [-0.6109; -0.1745; 0; 0];
iu = [];
[x,u,y,dx]=trim('mech_dpend_trim',ix, iu);
The array ix specifies the starting point determined in step 3. The array iu
specifies the initial inputs of the system. Its value is null because the system
has no inputs. The third command executes the form of the trim command
that finds a system’s steady-state (equilibrium) points, i.e., the points where
the system’s state derivatives are zero. The array x contains the state vector
corresponding to the first equilibrium point that the trim command finds:
x =
-0.8882
-0.3165
-0.0000
4-28
mech_pdf.book Page 29 Tuesday, June 18, 2002 1:27 PM
Trimming Mechanical Systems
0.0000
The resulting states are angular positions and velocities expressed in units
of radians. Based on the layout of the model’s state vector determined in step
2, the pendulum reaches equilibrium when its upper joint has deflected to
an angle of -18.1341 degrees and its lower joint to an angle of -50.8901
degrees.
6 Running the model in Forward Dynamics mode confirms that this is indeed
an equilibrium point of the pendulum.
The simulation reveals that the spring stops unfolding after about nine
seconds, that is, it reaches a steady-state point. At this point the angles of
the upper and lower joints are about -18 and -50 degrees, respectively, and
the velocities are zero. The trim command can find the values of these states
precisely.
4-29
mech_pdf.book Page 30 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Constrained Example: Four-Bar System
Consider a planar four-bar system consisting of a crank, a coupler, and a
rocker. The following figure shows a block diagram and a convex hull diagram
of the four-bar system. The model is the demo mech_four_bar_trim.
Crank
Rocker
Suppose you want to find out the torque required to turn the crank at a
constant angular velocity of 1 radian/sec over a range of crank angles. The
following procedure uses the trim command and the SimMechanics Trimming
mode to determine the torque:
1 Cut the closed loop that represents the four-bar system at the joint
(Revolute1) connecting the rocker to ground (see “Modeling Bodies” on
page 3-8).
Manually cutting the rocker joint ensures that SimMechanics does not cut
the four-bar loop at the crank joint and thereby eliminate the crank’s
position and velocity from the system’s state vector.
2 Select Signal Dimensions from the model’s Format menu.
This causes Simulink to display the width of signals on the model diagram
and hence enables you to read the number of constraints on the four-bar
system from the diagram in the next step.
4-30
mech_pdf.book Page 31 Tuesday, June 18, 2002 1:27 PM
Trimming Mechanical Systems
3 Set the analysis mode for the model to Trimming (see “Trimming Mode” on
page 4-3).
This causes SimMechanics to insert a subsystem and an output block that
output a signal representing the mechanical constraints on the four-bar
system.
Constraint output
The width of the constraint signal (4) reflects the fact that the four-bar
system is constrained to move in a plane and thus has only four constraints:
two position constraints and two velocity constraints.
4 Determine the layout of the system’s state vector.
Use the state vector manager mech_stateVectorMgr to perform this task:
Handle = get_param(find_system('mech_four_bar_trim/
Revolute2'),'handle');
StateManager = mech_stateVectorMgr(Handle{1});
StateManager.StateNames
ans =
'mech_four_bar_trim/Revolute2:R1:Position'
'mech_four_bar_trim/Revolute3:R1:Position'
'mech_four_bar_trim/Revolute4:R1:Position'
'mech_four_bar_trim/Revolute2:R1:Velocity'
'mech_four_bar_trim/Revolute3:R1:Velocity'
'mech_four_bar_trim/Revolute4:R1:Velocity'
5 Specify the initial state vector x0 and the index array ix:
x0
= [0;0;0;0;0;1];
4-31
mech_pdf.book Page 32 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
ix
= [3;6];
The array x0 specifies that the trim command should start its search for a
solution with the four-bar system in its initial position and with the crank
moving at an angular velocity (state 6) of 1 radian/sec. The array ix specifies
that the angular position (state 3) and velocity (state 6) of the crank must
equal their initial values, 0 radians and 1 radian/sec, respectively, at the
equilibrium point. It is not necessary to constrain the other states because
the four-bar system has only one global position DoF and only one global
velocity DoF.
6 Specify zero as the initial estimate for the crank torque:
u0
= 0;
7 Set up the trim command to drive the constraint outputs to 0:
y0
iy
= [0;0;0;0];
= [1;2;3;4];
The y0 array specifies that the initial values of the constraint outputs are 0.
The iy array specifies that the constraint outputs at the solution point must
equal their initial values (0). This assures that the solution satisfies the
mechanical constraints on the system.
Note The four-bar system has only constraint outputs. If you were trimming
a system with nonconstraint outputs, you would have to include the
nonconstraint outputs in the initial output vector.
8 Specify the state derivatives to be trimmed:
dx0 = [0;0;1;0;0;0];
idx = [6];
The dx0 array specifies the initial derivatives of the four-bar system’s states.
In particular, it specifies that the initial derivative of the crank angle (i.e.,
the crank angle velocity) is 1 radian/sec and all the other derivatives (i.e.,
velocities and accelerations) are 0. The idx array specifies that the
acceleration of the crank at the solution point must be 0, i.e., the crank must
4-32
mech_pdf.book Page 33 Tuesday, June 18, 2002 1:27 PM
Trimming Mechanical Systems
be moving at a constant velocity. It is not necessary to constrain the
accelerations of the other states because the system has only one velocity
DoF.
Note The four-bar system has only mechanical states. If you were trimming
a system that has nonmechanical states, you would have to include the
nonmechanical states in the initial state vector.
9 Trim the system at the initial crank angle to verify that you have correctly
set up the trim operation:
[x,u,y,dx] =
trim('mech_four_bar_trim',x0,u0,y0,ix,[],iy,dx0,idx);
Trim the system over a range of angles. Use the following program to
perform this task.
Angle = [];
Input = [];
State = [];
dAngle = 2*pi/10;
Constraint = [];
for i=1:11;
x0(3) = (i-1)*dAngle;
x0(6) = 1;
[x,u,y,dx] =
trim('mech_four_bar_trim',x0,u0,y0,ix,[],iy,dx0,idx);
disp(['Iteration: 'num2str(i) ,' completed.']);
Angle(i) = x0(3);
Input(:,i) = u;
State(:,i) = x;
Constraint(:,i) = y;
if (i>3),
u0 = spline(Angle,Input,Angle(end) + dAngle);
x0 = spline(Angle,State,Angle(end) + dAngle);
else
x0 = x;
u0 = u;
4-33
mech_pdf.book Page 34 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
end;
end;
10 Plot the results.
Use the following program to perform this task:
figure(1);
plot(Angle,Input);
grid;
xlabel('Angle (rad)');
ylabel('Torque (Nm)');
title('Input torque vs crank angle');
The following figure shows the resulting plot.
4-34
mech_pdf.book Page 35 Tuesday, June 18, 2002 1:27 PM
Linearizing SimMechanics Models
Linearizing SimMechanics Models
The Simulink linmod command creates linear time-invariant (LTI) state-space
models from Simulink models. You can use this command to generate an LTI
state-space model from a SimMechanics model, for example, to serve as input
to Control System Toolbox commands that generate controller models. The
linmod command allows you to specify the point in state space about which it
linearizes the model (the operating point). You should choose a point where
your model is in equilibrium, i.e., where the net force on the model is zero. You
can use the Simulink trim command to find a suitable operating point (see
“Trimming Mechanical Systems” on page 4-24). By default linmod uses an
adaptive perturbation method to linearize a SimMechanics model. The
Mechanical Environment Settings dialog box allows you to specify that
linmod use a fixed perturbation method instead (see “Linearization Pane” on
page 4-10). The following example illustrates the use of linmod to linearize a
SimMechanics model.
Note Before linearizing a model, perform at least one simulation in Forward
Dynamics mode. See “Choosing an Analysis Mode” on page 4–2.
Model Linearization Example: Double Pendulum
Consider a double pendulum initially hanging straight up and down.
4-35
mech_pdf.book Page 36 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
The net force on the pendulum is zero in this configuration. The pendulum is
thus in equilibrium.
The following figure shows a SimMechanics demo model of the pendulum,
mech_dpend_forw.
4-36
mech_pdf.book Page 37 Tuesday, June 18, 2002 1:27 PM
Linearizing SimMechanics Models
To linearize this model, enter
[A B C D] = linmod('mech_dpend_forw');
at the MATLAB command line. This form of the linmod command linearizes
the model about the model’s initial states.
Note The linmod command ignores initial states specified by Initial
Condition blocks. If you want to linearize a model about an operating point
partly or entirely specified by IC blocks, you must pass an initial state vector
to the linmod command. Similarly, if the system to be linearized has inputs,
you must pass an initial input vector to the linmod command. See the Simulink
documentation on the linmod command for more information.
4-37
mech_pdf.book Page 38 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
The double pendulum model in this example contains no IC blocks or inputs.
It is therefore unnecessary to pass any additional arguments (other than the
model’s name) to the command to linearize the model.
The matrices A, B, C, D returned by the linmod command correspond to the
standard mathematical representation of an LTI state-space model:
x· (t) = Ax ( t ) + Bu ( t )
y ( t ) = Cx ( t ) + Du ( t )
where x is the model’s state vector, y is its outputs, and u is its inputs. The
double pendulum model has no inputs or outputs. Consequently, only A is not
null. This reduces the state-space model for the double pendulum to
x· (t) = Ax ( t )
where
A =
0
0
-137.3400
39.2400
0
0
39.2400
-19.6200
1.0000
0
0
0
0
1.0000
0
0
This model specifies the relationship between the state derivatives and the
states of the double pendulum. The state vector of the LTI model has the same
format as the state vector of the SimMechanics model. The SimMechanics
mech_stateVectorMgr command gives the format of the state vector as follows:
vm = mech_stateVectorMgr('mech_dpend_forw/G');
ans =
'mech_dpend_forw/J2:R1:Position'
'mech_dpend_forw/J1:R1:Position'
'mech_dpend_forw/J2:R1:Velocity'
'mech_dpend_forw/J1:R1:Velocity'
4-38
mech_pdf.book Page 39 Tuesday, June 18, 2002 1:27 PM
Linearizing SimMechanics Models
Multiplying A by the state vector x yields the differential state equations
corresponding to the LTI model of the double pendulum.
·
θ 1 = – 19.6200θ 1 + 39.2400θ 2
·
θ 2 = 39.2400θ 1 – 132.66033θ 2
where
θ 1 = position of top joint (J1)
θ 2 = position of bottom joint (J2)
The following Simulink model implements the state space model represented
by these equations.
This model in turn allows creation of a model, located in mech_dpend_lin, that
computes the LTI approximation error.
4-39
mech_pdf.book Page 40 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Running the model twice with the upper joint deflected 2 degrees and 5
degrees, respectively, shows an increase in error as the initial state of the
system strays from the pendulum’s equilibrium position and as time elapses.
This is the expected behavior of a linear state-space approximation.
2 degrees
4-40
5 degrees
mech_pdf.book Page 41 Tuesday, June 18, 2002 1:27 PM
How SimMechanics Works
How SimMechanics Works
You might find a brief overview of how SimMechanics works helpful for
understanding and fixing errors, a topic discussed in “Troubleshooting
Simulation Errors” on page 4-43.
There are four major steps of machine simulation. The first two occur before
SimMechanics actually starts machine motion.
• “Model Validation”
• “Machine Initialization”
• “Force Analysis and Motion Integration” on page 4-42
• “Stiction Mode Iteration” on page 4-42
Model Validation
SimMechanics first checks your data entries from the dialogs and the local
connections among neighboring blocks. It then validates the Body coordinate
systems; the joint, constraint, and driver geometries; and the model topology.
Machine Initialization
The assembly tolerances of Joints that you manually assembled are checked
next.
SimMechanics then cuts each closed loop once. An invisible internal constraint
replaces each cut Joint, Constraint, or Driver block. SimMechanics checks all
constraints and drivers for mutual consistency and eliminates redundant
constraints.
Any Joint Initial Condition Actuators now impose initial positions and
velocities, changing body geometries from their dialog box configurations as
necessary. SimMechanics then finds an assembly solution for disassembled
joints and initializes them in position and velocity. Assembly tolerances are
checked again.
A “sticky” joint primitive, actuated by a Joint Stiction Actuator, can be in one
of three stiction modes: locked, waiting, or unlocked. SimMechanics finds a
mutually consistent set of stiction modes for all sticky joints.
4-41
mech_pdf.book Page 42 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Force Analysis and Motion Integration
In the Forward Dynamics or Trimming analysis modes, SimMechanics now
begins the solution of machine motion by applying and integrating external
forces and torques, stepping in simulation time. It maintains assembly,
constraint, and solver tolerances and checks constraint and driver consistency.
It also detects whether, within one Joint block, distinct joint primitive axes
align and destroy an independent DoF (joint axis singularity).
In the Inverse Dynamics and Kinematics modes, SimMechanics now applies
motion actuators and drivers to find the machine motion and derive forces and
torques. It also checks tolerances and consistency and detects singular
alignment of joint primitives.
Stiction Mode Iteration
If stiction is present, SimMechanics checks at each time step whether the
sticky joints transition from one stiction mode to another, then checks for
mutual consistency of locked and unlocked sticky joint primitives across the
whole machine.
4-42
mech_pdf.book Page 43 Tuesday, June 18, 2002 1:27 PM
Troubleshooting Simulation Errors
Troubleshooting Simulation Errors
SimMechanics simulations can stop before completion with one or more error
messages. You might find the previous section, “How SimMechanics Works” on
page 4-41, useful for tracing errors. Some common errors also appear in
“Modeling Machines” on page 3-2 and “Checking Model Validity” on page 3-58.
This section discusses generic error types.
Most errors and error-fixing strategies fall into broad categories. These
groupings are reflected in the keywords occurring in the error messages that
SimMechanics displays.
• “Data Validation Errors”
• “Ground and Body Geometry Errors”
• “Joint Geometry Errors” on page 4-44
• “Block Connection and Topology Errors” on page 4-44
• “Motion Singularity and Inconsistency Errors” on page 4-45
• “Analysis Mode Errors” on page 4-48
Data Validation Errors
Every numerical entry you make in SimMechanics must be a real numerical
expression or MATLAB equivalent. Spatial vectors are 3-vectors, such as [3 4
5]. Spatial tensors are 3-by-3 matrices, such as rotation matrices and the
inertia tensor.
Note You can specify a two-dimensional curve in the Point-Curve Constraint
block with 2-vectors.
Ground and Body Geometry Errors
Every model must have a least one Ground block. Every Body block must have
at least one Body CS, defined at the body’s center of gravity (CG). You must
directly or indirectly define the Body coordinate systems (CSs) of a machine
relative to a Ground or to World. You cannot enter cyclic Body CS definitions.
For example, defining CS3 relative to CS2, defining CS2 relative to CS1, then
defining CS1 relative to CS3, results in a definition both cyclic and missing any
4-43
mech_pdf.book Page 44 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
reference to a Ground or World. You could break the cycle by referencing CS1
to a Ground or to World.
To be rendered in visualization, a Body must be connected to at least one Joint
that is connected to the rest of the machine. You cannot visualize with
equivalent ellipsoids a body whose principal inertial moments do not satisfy
the triangle inequalities. (See “Rendering Body Shapes in SimMechanics” on
page 5-5.)
Joint Geometry Errors
The geometric configuration of joints, constraints, and drivers can conflict with
assembly requirements and restrictions on certain blocks.
Assembly Violated
Assembled joints must satisfy assembly tolerances on their connected Body
CSs at all times. Disassembled joints assembled at machine initialization must
also satisfy assembly tolerances during the simulation.
Zero Massless Connector Distance
The initial distance between two Body CS origins connected by a massless
connector must be nonzero. The massless connector holds the distance between
two Body CS origins constant during motion.
Composite Joints: Restrictions Among Primitives
Certain composite Joint blocks place restrictions on their primitive joint axes.
For example, Bearing must have its prismatic axis P1 aligned to its third
revolute axis R3.
Block Connection and Topology Errors
General rules on how to connect SimMechanics blocks are discussed in the
“Modeling Mechanical Systems” chapter. In particular, consult that chapter’s
sections:
• “Modeling Machines” on page 3-2
• “Checking Model Validity” on page 3-58
Some restrictions are properties of individual blocks, as explained in their
reference pages. See the “SimMechanics Block Reference.”
4-44
mech_pdf.book Page 45 Tuesday, June 18, 2002 1:27 PM
Troubleshooting Simulation Errors
Motion Singularity and Inconsistency Errors
Motion simulation errors often occur because of singularities or dividing by
very small numbers. SimMechanics can integrate certain singularities, at a
cost (see “Choosing an ODE Solver” on page 4-3).
Inconsistencies in motion arise from misapplication of constraints, drivers, and
actuators and from conflicting stiction requirements.
Zero Masses and Moments of Inertia
A body moving on a prismatic axis must have nonzero mass if you actuate it
with forces. A body rotating about a revolute axis or pivoting about a spherical
must have nonzero inertial moments about the axis or pivot if you actuate it
with torques. If you want a massless rigid body, consider using a Massless
Connector from the Joints/Massless Connectors sublibrary.
Note You can use point bodies (nonzero mass but zero moments) in
SimMechanics, if the connected revolute axes and spherical pivots are
dislocated from the body. Although the moments are zero about a point body’s
CG, the displacement of the body from the axis or pivot shifts the moments
from zero to nonzero values.
Alignment of Distinct Primitives
Within a single Joint block, two distinct prismatic axes or two distinct revolute
axes should never align during the simulation. If either occurs, a translational
or rotational DoF is lost, and SimMechanics cannot determine the subsequent
motion. An example of primitive axis alignment singularity is “gimbal lock.”
Two of the three revolute primitive axes in the Gimbal block become parallel,
reducing the number of independent DoFs in the Joint from three to two.
No Degrees of Freedom
Your machine cannot move if it has no degrees of freedom. Each Constraint,
Driver, and motion-actuating Actuator block you add to a model reduces the
number of independent DoFs. (See “Counting Degrees of Freedom” on
page 3-61.) Cure such errors by removing one or more of these blocks from your
model, until you have at least one independent DoF.
4-45
mech_pdf.book Page 46 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Redundant Constraints
Some constraints can restrict what another constraint is already restricting.
Fix these errors by identifying and removing the redundancies.
Violated Constraints
Some machine motions or simulations might not be able to maintain assembly
tolerances at a particular simulation step while simultaneously satisfying the
constraints. One or more joints become disassembled, followed by an error.
You can correct this situation in several ways. First, identify the joint,
constraint, or driver causing the error and examine its physical configuration
when the error occurs to isolate the conflict. Then try any combination of these
steps:
• Decrease the ODE solver tolerances.
• Switch to a more robust ODE solver.
• Decrease the constraint solver tolerances.
• Switch to the machine precision constraint solver.
• Increase the assembly tolerances.
See “Choosing an ODE Solver” on page 4-3, “Choosing a Constraint Solver” on
page 4-5, and “Constraints Pane” on page 4-9.
SimMechanics tries to harmonize your choices of ODE solver and solver
tolerances, constraint solver and tolerances, and assembly tolerances in this
dynamic hierarchy:
4-46
mech_pdf.book Page 47 Tuesday, June 18, 2002 1:27 PM
Troubleshooting Simulation Errors
Conflicting Actuators
You cannot put more than one actuator on a joint primitive. The Joint Stiction
Actuator block does accept an input signal for nonfrictional forces/torques,
which the block adds to the stiction.
Note You can simultaneously place an initial condition actuator and a
force/torque actuator on a joint primitive.
Sticky Joints in Conflict
If your machine has two or more stiction-actuated (“sticky”) joints, a conflict
among them can put SimMechanics into an infinite loop and prevent
determination of the machine motion. Or one locked joint can prevent the other
joints, sticky or not, from moving. The machine stops.
For example, one sticky joint becomes unlocked and requires the other to lock,
which then requires the first to lock.
4-47
mech_pdf.book Page 48 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
Remove these conflicts by removing one or more stiction actuators or by
changing the Joint Stiction Actuator locking thresholds.
Analysis Mode Errors
Certain restrictions apply to the analysis modes presented in “Choosing an
Analysis Mode” on page 4-2. Consult individual analysis modes for more:
• “Finding Forces from Motions” on page 4-14
• “Trimming Mechanical Systems” on page 4-24
• “Linearizing SimMechanics Models” on page 4-35
4-48
mech_pdf.book Page 49 Tuesday, June 18, 2002 1:27 PM
SimMechanics Limitations
SimMechanics Limitations
Some Simulink features and tools do not work with models containing
SimMechanics blocks:
• You cannot change the block properties of SimMechanics blocks at the
command line. See “Setting SimMechanics Block Properties at the
Command Line” on page 3-5.
• The following tools do not work with SimMechanics models.
- External mode
- Profiler
- Real-Time Workshop
• The following tools and features work with SimMechanics models but only
on non-SimMechanics blocks in those models.
- Execution order tags do not appear on SimMechanics blocks.
- SimMechanics blocks do not invoke user-defined callbacks.
- You cannot tune SimMechanics block parameters.
- You cannot set breakpoints on SimMechanics blocks.
- You cannot use the Fixed-Point Blockset Interface with SimMechanics
blocks.
- The Report Generator does not generate information on SimMechanics
blocks.
- The S-Function Target tool cannot generate an S-function from a
subsystem containing SimMechanics blocks.
Accelerator Mode Restrictions
Certain SimMechanics features require algebraic loops to detect discrete
events and are incompatible with Accelerator mode:
• Stiction implemented with Joint Stiction Actuator blocks.
• Detecting a point leaving the end of a constraint curve in the Point-Curve
Constraint block.
4-49
mech_pdf.book Page 50 Tuesday, June 18, 2002 1:27 PM
4
Running Mechanical Models
4-50
mech_pdf.book Page 1 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating
Machines
You can visualize your machine’s bodies in SimMechanics with two different tools. One tool is based
on Handle Graphics, a built-in feature of MATLAB. The other uses an internal SimMechanics
interface to the optional Virtual Reality Toolbox. You can also construct your own virtual worlds and
interface them to SimMechanics.
Choosing Visualization Options in Different ways that SimMechanics renders and animates
SimMechanics (p. 5-2)
component rigid bodies of machines
Rendering Body Shapes in
SimMechanics (p. 5-5)
Understanding and choosing body shapes for machine
components visualizations
Viewing Machines with Handle
Graphics (p. 5-10)
Viewing machine bodies in SimMechanics with MATLAB
Handle Graphics
Viewing Machines in Virtual
Reality (p. 5-14)
Viewing machine bodies in SimMechanics with Virtual
Reality Toolbox
Creating a Custom Machine
Visualization (p. 5-20)
Building an interface from SimMechanics to an external
virtual world machine representation
mech_pdf.book Page 2 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
Choosing Visualization Options in SimMechanics
You need to make three choices to set up SimMechanics visualization:
• Visualize the machine’s initial state and/or animate its motion
• Pick which kind of body shape for the machine components you want, convex
hulls or equivalent ellipsoids
• Render the scene with MATLAB Handle Graphics or Virtual Reality Toolbox
You implement these choices via the Mechanical Environment Settings
dialog box. From the Simulink menu bar, select Simulation, then Mechanical
environment. The Mechanical Environment Settings dialog opens. Click the
Visualization tab. The Visualization pane appears below the tab. Keep this
dialog open so you can see the visualization options. See “Mechanical
Environment Settings Dialog Box” on page 4-7 for more.
The sections of this chapter guide you to making the appropriate visualization
choices within SimMechanics. The present section explains the why and how
of visualizing the machine’s initial state and animating its motion:
• “Uses of the SimMechanics Visualization Tools” on page 5-3
• “Setting Up Static and Dynamic Visualization” on page 5-4
5-2
mech_pdf.book Page 3 Tuesday, June 18, 2002 1:27 PM
Choosing Visualization Options in SimMechanics
You can find more on the body shapes in the next section:
• “Rendering Body Shapes in SimMechanics” on page 5-5
These two sections spell out the procedures for setting up the two
SimMechanics visualization tools:
• “Viewing Machines with Handle Graphics” on page 5-10
• “Viewing Machines in Virtual Reality” on page 5-14
You can bypass the built-in visualization tools of SimMechanics by creating a
virtual reality world of your own design to represent your machine’s bodies.
With Virtual Reality Toolbox, you build a custom interface from your model to
the virtual world and animate its virtual bodies:
• “Creating a Custom Machine Visualization” on page 5-20
Uses of the SimMechanics Visualization Tools
The visualization tools of SimMechanics serve two distinct purposes, static and
dynamic visualization. In both cases, you can change your observer viewpoint
and navigate through the scene. You can change the body properties of the
visualization only by changing the corresponding Body blocks in your model.
Changing a body’s mass, inertia tensor, and coordinate systems can change its
visual rendering.
Static Rendering
Static rendering of machines in their initial state, during construction. Either
choice is valid:
• Open the visualization before or while you build your model. You render each
body as you add it to your model. Having a visualization tool open during
model building lets you keep track of your machine parts and how they are
connected. You can see unphysical or mistaken constructions before you
finish the model.
• Open the visualization after you finish the model. All the bodies in the model
appear together.
Dynamic Animation
Animation of machines while the SimMechanics model is running. Use this
feature to watch the model’s dynamics in three dimensions and visualize
5-3
mech_pdf.book Page 4 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
motions and relationships more easily than is possible with Scope blocks alone.
The “Running Mechanical Models” chapter presents the steps for running
SimMechanics models.
Setting Up Static and Dynamic Visualization
Begin configuring the Visualization pane of the Mechanical Environment
Settings dialog box:
1 You can separately choose static and/or animated visualization:
- Render the static machine in its initial state by selecting the Draw
machine in initial state check box.
- Animate the machine during simulation by selecting the Animate
machine during simulation check box.
2 Choose the updating mode in the Update machine pull-down menu. The
visualization tools reflect changes to the Simulink model by either
immediate or delayed update:
- The When diagram changes option updates the visualized machine
immediately upon changes to the Simulink model. For complex models,
frequent visualization updates can be slow.
- The Only at Update diagram option ignores changes you make to the
model until you choose Update diagram in the model window Edit menu.
This option allows you to update the visualization in one step after making
a large number of changes.
3 Implement your visualization choices at any time by clicking Apply.
Clicking OK applies your choices and closes the dialog box. A visualization
window opens.
4 Refresh the entire visual scene at any time by selecting Update diagram
from the model window Edit menu.
5-4
mech_pdf.book Page 5 Tuesday, June 18, 2002 1:27 PM
Rendering Body Shapes in SimMechanics
Rendering Body Shapes in SimMechanics
The visualization tools render the bodies in either of two shapes:
• Equivalent ellipsoid for each body, based on its mass properties and center
of gravity (CG) position, explained in “Equivalent Ellipsoids” on page 5-5
• Convex hull for each body, based on its Body coordinate systems (CSs),
explained in “Convex Hulls” on page 5-8
Choosing the Body Shape
You choose the body rendering in the Visualization pane, with the Represent
bodies as menu. Choose Equivalent ellipsoids or Convex hulls. The default
is Equivalent ellipsoids.
Equivalent Ellipsoids
The inertia tensor I of a rigid body is real and symmetric, so it has three real
eigenvalues (I1,I2,I3) and three orthogonal eigenvectors. These eigenvectors
are the principal axes of the body. In the coordinate system defined by those
axes, the inertia tensor is diagonal. The trace of the inertia tensor, Tr(I) = I1 +
I2 + I3, is the same in any coordinate system with its origin at the body’s center
of gravity (CG).
Every rigid body has a unique equivalent ellipsoid, a homogeneous solid
ellipsoid of the same inertia tensor. The ellipsoid surface is given by
x 2  y 2  z 2
 -----+ ------ + ------ = 1
a 
a 
a 
y
z
x
The three parameters (ax,ay,az) are the generalized radii of the ellipsoid. For
axis i = 1,2,3
ai =
5 ( ( Tr ( I ) – 2I i ) ⁄ ( 2m ) )
5-5
mech_pdf.book Page 6 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
Triangle Inequalities
The principal moments (I1,I2,I3) must satisfy the triangle inequalities:
I +I ≥I
2
3
1
I +I ≥I
3
1
2
I +I ≥I
1
2
3
Violation of the triangle inequality for Ii leads to an unphysical imaginary
generalized radius ai.
Caution Visualizing the equivalent ellipsoids of bodies whose principal
moments do not satisfy the triangle inequalities leads to a SimMechanics
error.
Ellipsoids with Special Symmetry
In general, all three Ii, i = 1,2,3, are unequal. Such a body is an asymmetric top.
If two of the three Ii are equal (double degeneracy), the body is a symmetric top.
The third axis is the axis of symmetry. If all three Ii are equal (triple
degeneracy), the body is a spherical top and dynamically equivalent to a
homogeneous sphere.
Reduced-dimension Ellipsoids
In special cases, the equivalent ellipsoid reduces to a planar, linear, or point
figure.
Let (i,j,k) label the three axes (1,2,3) = (x,y,z) in any order.
• For a true ellipsoid, with nonzero volume, all the ai are nonzero. The triangle
inequalities are strict inequalities in this case:
Ij + I > Ii
k
Ik + Ii > Ij
I +I >I
i
k
j
5-6
mech_pdf.book Page 7 Tuesday, June 18, 2002 1:27 PM
Rendering Body Shapes in SimMechanics
• For an ellipse, with zero volume but nonzero area, one ai = 0 and the other
two aj, ak are nonzero. One of the triangle inequalities becomes an equality:
I +I = I
j
i
k
I +I >I
k
i
j
Ii + I > Ik
j
• For a line, with zero volume and area but nonzero length, two ai, aj = 0 and
the third ak is nonzero. Two of the triangle inequalities become equalities:
Ij + I
= Ii
k
I + I = Ij
k
i
I +I >I
i
k
j
Equivalently, Ii = Ij are nonzero and Ik = 0.
• For a point, with no spatial extent, all three ai vanish. All three triangle
inequalities become equalities:
Ij + I
= Ii
k
Ik + Ii = Ij
I + I = Ik
i
j
Equivalently, all three Ii vanish.
Example: Simple Pendulum Rod
Consider the simple pendulum rod in “Visualizing a Simple Pendulum” on
page 2-30. You can open the model by entering mech_spen at the command line.
The rod length L = 1 m, and its radius r = 1 cm. The inertia tensor is
2
Ixx 0 0
0 Iyy 0 =
0 0 Izz
mr
----------2
0
0
mL
-----------12
0
0
0
mL
-----------12
0
2
2
5-7
mech_pdf.book Page 8 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
Because the rod has an axis of symmetry, the x-axis in this case, two of its three
principal moments are equal: Iyy = Izz, and two of its three generalized radii are
equal: ay = az. The rod is a symmetric top and, since r is much smaller than L,
its equivalent ellipsoid is almost a line of zero volume and area.
The generalized radii of the equivalent ellipsoid are ax = 5 ⁄ 3 ( L ⁄ 2 ) = 0.646
m and ay = az = 5 ( r ⁄ 2 ) = 1.12 cm. This is the rod rendered in virtual reality:
Ellipsoid surface
Center of gravity
Convex Hulls
Every Body has at least one Body coordinate system (CS) at the CG. A Body
also has one or more extra Body CSs for the attached Joints, as well as possible
Actuators and Sensors. Each Body CS has an origin point, and the collection of
all these points, in general, defines a volume in space. The minimum
outward-bending surface enclosing such a volume is the convex hull of the Body
CSs, and this is the alternative way SimMechanics has to render a body.
To enclose a nonzero volume, the set must have at least four non-coplanar Body
CSs. Three non-collinear Body CSs are rendered instead by a triangle, and two
non-coincident origins by a line. One is displayed just as a point. (The
minimum one Body CS would be just the CG CS.) Four or more coplanar origins
are rendered by a triangle, three or more collinear origins are rendered by a
line, and two or more coincident origins are rendered by a point.
5-8
mech_pdf.book Page 9 Tuesday, June 18, 2002 1:27 PM
Rendering Body Shapes in SimMechanics
Example: Four Cylinder Engine Crank
Refer to the four-cylinder engine model of the Demos library by entering
mech_fceng at the command line.
Double-click the Engine Block subsystem and note the Crank block
representing the engine crank. This Body block has six Body CSs. Visualize the
engine as convex hulls with Handle Graphics. The large block in your
visualization is this engine crank, and it encloses a nonzero volume.
Four-cylinder engine crank
Engine cylinders
Four Cylinder Engine Example: Engine Crank Convex Hull (Yellow)
5-9
mech_pdf.book Page 10 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
Viewing Machines with Handle Graphics
The Handle Graphics feature for viewing your machine is built into
SimMechanics. It uses a special set of symbols to draw bodies and Body
coordinate systems (CSs). Use of the Handle Graphics tool is explained in the
following sections, “Interpreting Special Handle Graphics Symbols” and
“Manipulating the Handle Graphics Window” on page 5-13.
Note The Handle Graphics visualization feature is based on the Handle
Graphics tools of MATLAB. Refer to the MATLAB graphics documentation for
a full discussion of Handle Graphics.
This section mainly focuses on features special to the SimMechanics Handle
Graphics tool. Certain standard Handle Graphics features are disabled or
missing in the SimMechanics window.
Choosing the Handle Graphics Visualization Tool
You choose this visualization tool in the Visualization pane of the Mechanical
Environment Settings dialog:
1 In the Draw machine using menu, choose MATLAB Graphics.
2 Click Apply or OK. A Handle Graphics window opens.
Interpreting Special Handle Graphics Symbols
When SimMechanics calls the internal Handle Graphics window, it uses
special conventions to render the bodies of your machine. You can control some
of these conventions through the special SimMechanics options menu.
The default major features of the Handle Graphics window are
• The window displays all the machine’s bodies. If a body has one of these
associated surfaces, the surface is shaded red:
- Equivalent ellipsoid
- Convex hull of one or more surface patches (a triangle of coplanar points
or an enclosing surface of four or more points)
A line convex hull is a black stick figure.
5-10
mech_pdf.book Page 11 Tuesday, June 18, 2002 1:27 PM
Viewing Machines with Handle Graphics
• Surfaces used in marking out enclosed convex hull volumes or coplanar
triangles are tiled with patches.
• Clicking a body in the Handle Graphics window causes the following:
- The rendered body changes color to yellow.
- The model window comes back to focus with the associated Body block
highlighted in red.
The mech_body_driver model from the Demos library is shown with Body1
(the fixed body) highlighted.
Highlighted Body block
SimMechanics options menu
Highlighted Handle Graphics body
Handle Graphics Window with Body and Body Block Highlighting
Legend of Handle Graphics Symbols
The machine is rendered with two special symbols:
5-11
mech_pdf.book Page 12 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
• The center of gravity (CG) point of each body is marked by a circle-plus
symbol
.
• Each Body CS is marked by coordinate axis triads. The color coding is X-Y-Z
axes = RGB = red-green-blue.
Controlling the Visualization. You can control special SimMechanics features of
this Handle Graphics window by using the SimMechanics menu in the middle
of the menu bar.
SimMechanics Options Menu for Handle Graphics Visualization
SimMechanics Menu for the Handle Graphics Visualization Window
5-12
Menu Item
Function
Default
Display
Bodies, triads, patches
Selected (all)
Orientation
X-Y, Y-Z, X-Z, 3D views
X-Y
Enable
Model
Highlighting
Body highlighting
Selected
mech_pdf.book Page 13 Tuesday, June 18, 2002 1:27 PM
Viewing Machines with Handle Graphics
SimMechanics Menu for the Handle Graphics Visualization Window
Menu Item
Function
Default
Enable
Automatic
Axis Resize
Automatically resize axes and window
to fit body motion
Selected
Show Legend
Open Help browser to symbol legend
You can turn each of the features on or off by selecting the item in the menu.
An active item shows a check mark.
The 3D view is trimetric, from viewpoint (1,−1,1). Enable Automatic Axis
Resize automatically resizes the axes and window to fit the machine motion
during the animation.
The Show Legend option opens the online Help browser to this page.
Manipulating the Handle Graphics Window
The other controls on the Handle Graphics visualization tool are standard on
all MATLAB Handle Graphics windows. Refer to the MATLAB Graphics
documentation for a complete presentation of how to configure Handle
Graphics windows and objects.
For SimMechanics model visualizations, the Zoom in, Zoom out, and Rotate
3D functions are especially useful. Select the icon and click in the figure area
to activate the function. Click, hold, and roll the figure to rotate the machine in
three dimensions.
View menu
Zoom In
Zoom Out
Rotate 3D
Handle Graphics Window Viewing Controls
The View menu contains the useful Camera Toolbar, also discussed in the
MATLAB Graphics documentation.
5-13
mech_pdf.book Page 14 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
Viewing Machines in Virtual Reality
The virtual reality feature for viewing your machine requires the separate
Virtual Reality Toolbox. It too symbolizes bodies and Body coordinate systems
(CSs) in a special way. Use of the virtual reality visualization is presented in
this section, in “Interpreting Special Virtual Reality Symbols” on page 5-15 and
“Changing the Observer’s Viewpoint” on page 5-16.
Note This optional feature requires the Virtual Reality Toolbox to be installed
on your MATLAB path. You can use the default toolbox viewer or the blaxxun
Contact viewer (version 4.4) plug-in. Both ship with the toolbox. This user’s
guide assumes that you are using the default Virtual Reality Toolbox viewer.
The blaxxun viewer must be installed separately and works only on Windows
platforms.
Refer to the Virtual Reality Toolbox documentation for full information on
installing the toolbox and using the toolbox viewer. If the Virtual Reality
Toolbox is not installed, the option Virtual Reality Toolbox in the Draw
machine using menu is missing.
Choosing the Virtual Reality Visualization Tool
SimMechanics has an invisible internal interface to the Virtual Reality
Toolbox, activated in the Visualization pane of the Mechanical Environment
Settings dialog as follows:
1 In the Draw machine using menu, choose Virtual Reality Toolbox.
2 Click Apply or OK. The viewer opens with an embedded virtual scene.
What you see in the virtual reality scene is a virtual world containing virtual
objects, the bodies of your machine.
The virtual scene displays the bodies along with associated CSs.
5-14
mech_pdf.book Page 15 Tuesday, June 18, 2002 1:27 PM
Viewing Machines in Virtual Reality
Interpreting Special Virtual Reality Symbols
Refer to the tutorial “A Four Bar Mechanism” on page 2-36. Open the
mech_fourbar model from the Demos library and start the virtual reality
visualization.
The machine bodies are rendered with special symbols, as shown in this virtual
scene.
Bodies
Body CGs
Body CSs
World CS axes
Virtual Reality Scene: Four-Bar Mechanism
The major features of virtual reality visualization are as follows:
• The virtual scene displays all the machine’s bodies. If a body has an
associated surface,
- Equivalent ellipsoid
5-15
mech_pdf.book Page 16 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
- Convex hull of one or more surface patches (a triangle of coplanar points
or an enclosing surface of four or more points)
the associated surface is red. A line convex hull is a black stick figure.
• The center of gravity (CG) point of each body is marked by a Body CG icon,
.
• The World CS is marked by a large coordinate axis triad and Body CSs by
small triads. The color coding is X-Y-Z axes = RGB = red-green-blue.
Changing the Observer’s Viewpoint
The Virtual Reality Toolbox contains a viewer as the default method for
viewing virtual worlds. This section reviews the features and controls of the
viewer.
The creation, configuration, and removal of virtual objects in the virtual world
is entirely under the control of SimMechanics. You can add, change, or
eliminate a virtual object only by making the corresponding change to the
mechanical model in your Simulink model window.
The user’s view of the virtual world, however, is under your control, through
the viewer control panel at the bottom of the virtual scene.
Hide panel
Information
Headlight toggle
Viewpoint control
Navigation wheel
Navigation method
Wireframe toggle
Virtual Reality Toolbox Viewer Control Panel
Viewpoint Control
There are three buttons on the control panel that affect the viewpoint of the
scene. The center circular button resets the view to the current viewpoint. This
button is useful when you have been moving about the scene and need to
reorient yourself.
5-16
mech_pdf.book Page 17 Tuesday, June 18, 2002 1:27 PM
Viewing Machines in Virtual Reality
You can use the right and left arrows associated with viewpoint control to
browse through predefined viewpoints. These buttons are inactive if other
viewpoints are not specified by the author. You can also use the Page Up and
Page Down keys to navigate through these viewpoints.
Control Menu
Access the control menu by right-clicking in the viewer window. You can use
the control menu to specify a predefined viewpoint or change the appearance of
the control panel. You can also control the navigation method, speed, and
rendering of the virtual world. For more information about navigation
methods, see “Navigation” on page 5-18. For more information about
rendering, see “Rendering” on page 5-18.
Changing the Navigation Speed
1 In the viewer window, right-click.
A menu similar to this one appears.
2 Select Navigation.
3 Select Speed, then Very Slow.
Your navigation speed within the virtual world is much slower than before.
Note Your navigation speed controls the distance you move with each
keystroke. It does not affect animation speed.
Set a higher speed for large machines and a slower speed for more controlled
navigation in smaller machines.
5-17
mech_pdf.book Page 18 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
Rendering
You can change the rendering of the scene through the control panel or the
control menu. The virtual scene is illuminated both by ambient lighting and a
“headlight” shining directly ahead from your viewpoint. The most basic
rendering operation is turning the camera headlight and the lighting of the
scene on or off. When Headlight is off, the scene can appear dark.
The ambient lighting from all directions is controlled by Lighting. When
Lighting is off, the virtual world appears as if lit in all directions. Shadows
disappear and the scene loses some of its three-dimensional quality.
If Transparency is off, transparent objects are rendered as solid objects.
Turning Wireframe on changes the scene’s objects from solid to wireframe
renderings.
Navigation
You can navigate through the virtual scene with either the control panel,
control menu, or your mouse.
Control Panel. The center navigation wheel and two curved buttons on either
side move you about the scene. Experiment by moving backward and forward
and side to side until you become comfortable with the controls.
Control Menu. Right click in the viewer window to access the control menu.
Select Navigation, and the control menu appears.
From this menu, you can reset the viewpoint so that it is pointed straight ahead
by choosing Straighten up. You can also return to the current viewpoint by
choosing Go to current viewpoint.
Mouse 3-D Roll. You can execute a 3-D roll in your viewpoint at any time by
clicking and holding anywhere in the virtual scene and then dragging the
cursor. Your viewpoint rolls in the direction you drag the cursor.
Learning More About Virtual Reality Toolbox
The best way to become comfortable moving around in a virtual world is to
practice with a variety of movement modes and viewpoints. Consult the Virtual
Reality Toolbox documentation for more details on controlling your virtual
reality scene.
5-18
mech_pdf.book Page 19 Tuesday, June 18, 2002 1:27 PM
Viewing Machines in Virtual Reality
Note to Users of Virtual Reality Toolbox Using the internal
SimMechanics virtual reality feature adds no new blocks to your model.
SimMechanics feeds all virtual reality signals to the virtual scene internally,
and the Virtual Reality Toolbox interface is not visible in the model window.
5-19
mech_pdf.book Page 20 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
Creating a Custom Machine Visualization
Note This section assumes that Virtual Reality Toolbox is installed on your
system and that you are familiar with it and with creating virtual worlds.
Refer to the Virtual Reality Toolbox User’s Guide for full details on installing
and using this toolbox.
You can bypass the visualization features built into SimMechanics and create
a machine animation in a virtual world of your own design. This gives you the
power to animate a more realistic visualization of your machine. You create a
virtual world, populate it with bodies represented as virtual objects using the
Virtual Reality Modeling Language (VRML), then interface the virtual world
with your SimMechanics model. Creating your own virtual animation requires
a new or existing virtual world for your model and an interface between them.
This section explains how to use a separately created virtual world with
SimMechanics:
• “Creating Virtual Worlds for SimMechanics Models”
• “Interfacing SimMechanics with Virtual Worlds” on page 5-24
Creating Virtual Worlds for SimMechanics Models
The Virtual Reality Toolbox User’s Guide and VRML books such as Marrin and
Campbell [9] explain how to create virtual objects and assemble them into
virtual worlds. This section highlights the special requirements to make a
virtual world usable as a visualization for a SimMechanics model.
As you create a virtual world populated by virtual bodies, you must create each
component body, then plan and implement the geometry of the machine’s
initial state. Doing this yourself is a major difference from the SimMechanics
virtual reality visualization, where the bodies are created, placed, and oriented
automatically. Use a VRML authoring tool that can read VRML as a native
format to create and edit virtual reality .wrl files. If you are familiar with raw
VRML source code, you can use a plain text editor or the MATLAB editor to edit
the files.
You represent each body by a virtual object encoded in a .wrl file.You also
create a master .wrl file to represent the virtual world that refers to body .wrl
5-20
mech_pdf.book Page 21 Tuesday, June 18, 2002 1:27 PM
Creating a Custom Machine Visualization
files, placing and orienting these body in the larger scene. You can define a
body’s position and orientation with respect to:
• The overall virtual world, corresponding to the SimMechanics coordinate
system World
• Another body in the machine, corresponding to Body coordinate systems in
SimMechanics
You can nest body references to other bodies in VRML hierarchies, but you
must define at least one body’s position and orientation with respect to the
overall virtual world. Place and orient the bodies in their initial states,
corresponding with the initial state of the SimMechanics simulation.
Each body’s .wrl file contains a hierarchical tree starting with the Transform
node. Among Transform’s fields must be translation and rotation fields to
specify the body’s position and orientation in space. If a body is nested below
another body, its position and orientation are defined with respect to the next
body up the hierarchy.
Creating your own virtual world gives you great flexibility in representing your
machine:
• You can render bodies in as much or as little detail as you want, with shapes,
colors, textures, etc., of your own choosing.
• You can include or omit bodies that you do not animate.
• You can create a computer-aided design (CAD) representation of your
machine and export it into VRML files.
• If you only translate a body, you can omit the rotation field from its
Transform node.
• If you only rotate a body, you can omit the translation field from its
Transform node.
Example: Viewing Custom External VRML Files for the Conveyor Loader
The demo model mech_conveyor_vr is a modified version of the original
conveyor model mech_conveyor and comes with external VRML files
containing static renderings of the machine parts in their initial positions. This
example uses the V-Realm Builder® VRML authoring tool in the Virtual
Reality Toolbox to view the files.
5-21
mech_pdf.book Page 22 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
1 In the \toolbox\physmod\mech\mechdemos\ directory, open these files:
base.wrl, convmech.wrl, link1.wrl, link2.wrl, link3.wrl,
link4.wrl, pusher.wrl
2 Click the Test Mode button
and view the complete machine in the Main
view. Right-click in this window to configure the navigation. If the colors
seem washed out, toggle off the headlight.
Main view
Toggle Headlight
These conveyor parts are more realistic than the equivalent ellipsoids or
convex hulls available with the built-in SimMechanics virtual reality tool:
5-22
mech_pdf.book Page 23 Tuesday, June 18, 2002 1:27 PM
Creating a Custom Machine Visualization
3 On the left side of your VRML editor window, examine the node tree of
convmech.wrl that refers to the six VRML files representing each
component body:
Virtual world entry
Links
Pusher
Base
The hierarchy of body position and orientation references is flat in this
model. Each body is separately referenced to the top level of the hierarchy,
New World.
5-23
mech_pdf.book Page 24 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
4 Expand one of the nodes. Each body node has, among others, rotation and
translation fields:
Link1 transform
Rotation field
Translation field
The exception is the Pusher transform, which has only a translation field. In
the SimMechanics model, the pusher only translates along one axis.
Interfacing SimMechanics with Virtual Worlds
To animate a body, you need to measure its motion in your SimMechanics
simulation and export that information to the virtual world. This requires
connecting Body Sensor blocks to the Bodies you want to animate in your
model, then creating an interface that animates the virtual bodies with the
body sensor motion signals.
Adding and Configuring Body Sensors
Refer to “Sensing Body Motions” on page 3-53 for general information on how
to use Body Sensors. Connect the Body Sensors to Body coordinate systems
(CSs) on the bodies whose motions you want to animate. The Body block
reference discusses how to create and configure Body CSs. You need to take
these special steps to export the signals of a body sensor to your virtual world:
5-24
mech_pdf.book Page 25 Tuesday, June 18, 2002 1:27 PM
Creating a Custom Machine Visualization
1 Make sure the Body Sensor’s Body CS reference origin and orientation
follow the body’s defining VRML hierarchy.
Example: You define a new Body CS on a body to connect the Body Sensor.
If you defined the VRML body’s position with respect to the center of gravity
(CG) of a second, neighboring body in your VRML files, you should set the
Translated from origin of field of the new Body CS to the origin of the CG
CS of the second body.
2 In the Body Sensor dialog, select the [x; y; z] Position check box if you want
to animate the body’s translational motion.
Select the [3 x 3] Rotation matrix check box if you want to animate the
body’s rotational motion.
3 Choose the coordinate system in which the body motions are measured in
the With respect to coordinate system pull-down menu. You can pick
Absolute (World) or Local (Body CS). This coordinate system should be
the same as the coordinate system used to define the body’s position and
orientation in the VRML files.
A Simulink output port > appears on the block for each of the motion signals.
The translational signal is a 3-vector of spatial coordinates: (x, y, z). The
rotational signal is a 9-vector, column-wise representation of the 3-by-3
orthogonal rotation matrix R: (R11, R21, R31, R12, ... ).
Animating the Virtual World Bodies
Animating the virtual bodies requires interfacing the body sensor signals in
the SimMechanics model with the VRML translation and/or rotation fields in
the .wrl files. You accomplish this with the VR Sink block, which you can find
in the Virtual Reality Toolbox block library. Enter
vrlib
at the command line. Drag a copy of the VR Sink block into your model.
Open the VR Sink dialog box. In the Source file field in the World properties
area, enter the name of the VRML file that represents your model’s virtual
world. This is the file that refers to the other .wrl files representing the
component bodies of your machine. If the virtual world VRML file is not the
5-25
mech_pdf.book Page 26 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
same directory as your model, enter the file’s path relative to the model. Click
Apply.
In the VRML tree window, the node list of the virtual world .wrl file appears.
Expand the tree of each component body in the list to view that body’s check
box list. Select the rotation and/or translation check boxes as needed for each
body. Simulink input ports > appear on the block icon for each of these selected
check boxes. The ports are labeled node.field. The node is the name for the
body. The field is named either rotation or translation.
Converting Body Sensor Signals into VRML Format
You are now ready to connect the Body Sensor output signals to the VR Sink
block. But you might need to modify those signals for valid use in VRML.
• You can connect the translational motion signal line directly from the output
port of the Body Sensor to the node.translation input port on the VR Sink.
The VRML node tree directly accepts translation motion as a 3-vector signal
of rectangular coordinates (x,y,z).
Make sure that the translational motion signal refers to the same coordinate
system used to define the body’s position in the VRML files.
• You cannot directly connect the rotational motion signal line to the VR Sink.
The Body Sensor output represents orientation with a 3-by-3 rotation matrix
R, while VRML accepts orientation represented as the axis-angle 4-vector
form [ n θ ], where n = (nx, ny, nz) is a 3-vector representing the rotation axis
and θ is the rotation angle.
Open the SimMechanics Utilities library. For each rotational motion signal,
drag a RotationMatrix2VR block into your model. Connect the rotation
signal from the Body Sensor block to the RotationMatrix2VR block. Then
connect the latter block to the corresponding node.rotation input port on
VR Sink for that body. This block converts the 3-by-3 R matrix signal into the
4-vector VRML form.
Close the VR Sink block dialog. Your SimMechanics model now animates the
virtual world.
Example: Interfacing the Conveyor Loader Model and Virtual World
In the mech_conveyor_vr demo model, open the Body Sensor1 block. The block
measures the translational and rotational motion of Link3 in the conveyor:
5-26
mech_pdf.book Page 27 Tuesday, June 18, 2002 1:27 PM
Creating a Custom Machine Visualization
The Body Sensor1 block has two Simulink output signals.
The other Body Sensor blocks are similar, except for Body Sensor2, which
measures only the translational motion of the pusher. All the Body Sensors
measure body motions with respect to World, the frame in which the conveyor
base is at rest. Each motion signal represents the body’s displacement relative
to its initial position.
The mech_conveyor_vr model contains a Virtual Reality Toolbox interface to
the model’s custom VRML files.
5-27
mech_pdf.book Page 28 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
From blocks
RotationMatrix2VR blocks
Goto blocks
VR Sink block
Conveyor Loader Model with Custom Virtual Reality Interface
1 Trace each body sensor signal through the model. The signals are routed
through pairs of Simulink Goto and From blocks.
5-28
mech_pdf.book Page 29 Tuesday, June 18, 2002 1:27 PM
Creating a Custom Machine Visualization
2 Open the VR Sink block. The Source file is convmech.wrl, the master file
for this virtual world. The VRML tree on the right reproduces the node tree
visible in the VRML editor for convmech.wrl.
Source file
Link1 node
Rotation and translation fields
3 Expand and scroll down the VRML trees. The trees for Link1, Link2, Link3,
Link4, and Pusher list the field inputs for accepting motion signals.
- The Link component bodies require both translational and rotational
motions. All the Links have actively selected check boxes for their rotation
and translation field inputs.
- The Pusher body requires only translational motion. Only the translation
field check box is selected for the Pusher.
Each of the nine Simulink input ports on the VR Sink block is named
node.field. The Base of the conveyor does not move, so its node has no
motion input fields.
5-29
mech_pdf.book Page 30 Tuesday, June 18, 2002 1:27 PM
5
Visualizing and Animating Machines
4 In the VR Sink dialog, click View in the World properties / Source file
area.
Your Virtual Reality Toolbox viewer opens, displaying the conveyor machine
scene. The scene is identical to that visible in the VRML editor (see
“Example: Viewing Custom External VRML Files for the Conveyor Loader”
on page 5-21).
5 Close all the dialog boxes by clicking OK, leaving the viewer open.
6 Click the Start button in the model window.
As in the original mech_conveyor demo, starting the model opens the
Reference Position slider bar that you can move from side to side. As you
do so, watch the pusher in the viewer move in parallel.
5-30
mech_pdf.book Page 1 Tuesday, June 18, 2002 1:27 PM
6
SimMechanics Block
Reference
This chapter contains complete information on every block in SimMechanics. Refer to this chapter
when you need to find detailed information on a particular block.
Blocks – By Category (p. 6-2)
The SimMechanics blocks summarized by block library
Blocks – Alphabetical List (p. 6-7)
The SimMechanics blocks listed alphabetically by name
mech_pdf.book Page 2 Tuesday, June 18, 2002 1:27 PM
6
SimMechanics Block Reference
Blocks – By Category
This section consists of the block library hierarchy, a structured list of the
SimMechanics libraries; and the block library contents, a listing of all
SimMechanics blocks arranged by library.
Use the Simulink Library Browser or the SimMechanics library to access the
blocks directly, guided by this hierarchical library list. The subsequent pages
contain reference information for all blocks in SimMechanics, arranged by
library and in alphabetical order by block name.
Bodies Library
Contains blocks representing rigid bodies and ground points.
Joints Library
Contains blocks representing relative motion degrees of freedom (DoFs)
between bodies.
Disassembled Joints
Contains blocks representing initially misaligned DoFs between bodies.
Massless Connectors
Contains blocks representing rigidly separated DoF pairs between bodies.
Constraints & Drivers Library
Contains blocks to restrict or externally drive relative DoFs between bodies.
Sensors & Actuators Library
Contains blocks to initiate and measure motion.
Utilities Library
Contains additional useful blocks for modeling and simulating machines.
Demos Library
Contains Simulink model files with SimMechanics blocks. Online Help users
can click this library name to browse the demos.
6-2
mech_pdf.book Page 3 Tuesday, June 18, 2002 1:27 PM
Creating Bodies and Grounds
Body
Customizable rigid body
Ground
Immobile point at rest in World
Creating Joints
Creating Assembled Joints
Bearing
Composite: one prismatic, three
revolutes
Bushing
Composite: three prismatics, three
revolutes
Custom Joint
Customizable composite joint: up to
three translational and three
rotational DoFs
Cylindrical
Composite: one prismatic, one
revolute (axes aligned)
Gimbal
Composite: three revolutes
In-Plane
Composite: two prismatics
Planar
Composite: two prismatics, one
revolute
Prismatic
Primitive: one translational DoF
Revolute
Primitive: one rotational DoF
Screw
Composite: one prismatic, one
revolute (constrained)
Six-DoF
Composite: three prismatics, one
spherical
6-3
mech_pdf.book Page 4 Tuesday, June 18, 2002 1:27 PM
6
SimMechanics Block Reference
Spherical
Primitive: three rotational DoFs at
pivot
Telescoping
Composite: one prismatic, one
spherical
Universal
Composite: two revolutes
Weld
Primitive: no DoFs (rigid)
Creating Disassembled Joints
Disassembled Cylindrical
Misaligned translational-rotational
DoFs
Disassembled Prismatic
Misaligned translational DoF
Disassembled Revolute
Misaligned rotational DoF
Disassembled Spherical
Dislocated spherical DoF
Creating Massless Connectors
6-4
Revolute-Revolute
Composite: revolute separated
revolute
Revolute-Spherical
Composite: revolute separated
spherical
Spherical-Spherical
Composite: spherical separated
spherical
mech_pdf.book Page 5 Tuesday, June 18, 2002 1:27 PM
Creating Constraints and Drivers
Angle Driver
Specify angle between two body
axes as function of time
Distance Driver
Specify distance between two body
CS origins as function of time
Gear Constraint
Constrain two bodies rotating along
two tangent pitch circles
Linear Driver
Specify vector component between
two Body CS origins as function of
time
Parallel Constraint
Constrain two body axes to be
parallel
Point-Curve Constraint
Constrain motion of one body along
curve on another body
Velocity Driver
Specify projected linear and
angular velocities of two bodies as a
function of time
Creating Actuators and Sensors
Body Actuator
Apply force/torque or motion to a
body
Body Sensor
Measure body motion
Constraint & Driver Sensor
Measure constraint force/torque
between pair of constrained bodies
Driver Actuator
Apply motion to pair of constrained
bodies
Joint Actuator
Apply force/torque or motion to a
joint primitive
6-5
mech_pdf.book Page 6 Tuesday, June 18, 2002 1:27 PM
6
SimMechanics Block Reference
Joint Initial Condition Actuator
Apply initial position and velocity to
joint primitive
Joint Sensor
Measure joint motion and
force/torque
Joint Stiction Actuator
Apply friction to joint primitive
Additional Useful Blocks
6-6
Connection Port
Connector Port for a subsystem
Continuous Angle
Convert bounded angular signals
to unbounded signals
RotationMatrix2VR
Convert rotation matrix to
rotation axis and angle
mech_pdf.book Page 7 Tuesday, June 18, 2002 1:27 PM
Blocks – Alphabetical List
Blocks – Alphabetical List
6
Angle Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9
Bearing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12
Body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17
Body Actuator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-28
Body Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-32
Bushing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-36
Connection Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-41
Constraint & Driver Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-43
Continuous Angle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-46
Custom Joint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-48
Cylindrical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-55
Disassembled Cylindrical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-59
Disassembled Prismatic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-64
Disassembled Revolute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-68
Disassembled Spherical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-72
Distance Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-75
Driver Actuator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-78
Gear Constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-82
Gimbal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-86
Ground . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-91
In-Plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-93
Joint Actuator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-98
Joint Initial Condition Actuator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-103
Joint Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-106
Joint Stiction Actuator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-113
Linear Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-120
Parallel Constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-123
Planar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-126
Point-Curve Constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-131
Prismatic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-140
Revolute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-144
Revolute-Revolute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-148
Revolute-Spherical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-153
RotationMatrix2VR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-158
Screw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-160
6-7
mech_pdf.book Page 8 Tuesday, June 18, 2002 1:27 PM
6
Six-DoF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-165
Spherical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-169
Spherical-Spherical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-174
Telescoping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-178
Universal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-182
Velocity Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-187
Weld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-191
mech_stateVectorMgr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4
6-8
mech_pdf.book Page 9 Tuesday, June 18, 2002 1:27 PM
Angle Driver
Purpose
6Angle Driver
Library
Constraints & Drivers
Description
The Angle Driver block drives axis vectors defined on two Bodies. You specify
fixed base and follower body axis vectors aB, aF in the Body CS on either side
of the Driver on each body, then drive the angle between the body axis vectors
as a function of time.
Specify the angle between two body axis vectors as a function of time
The Angle Driver block specifies the angle θ defined by
cos θ = |aB ⋅ aF|/(|aB||aF|)
as a function of time: θ = f(t). You connect the Angle Driver to a Driver Actuator
block.
The Simulink input signal into the Driver Actuator specifies the
time-dependent driving function f(t) and its first two derivatives, as well as
their units. If you do not actuate Angle Driver, this block acts as a
time-independent constraint that freezes the angle between the two body axes
at its initial value during the simulation.
Drivers restrict relative degrees of freedom (DoFs) between a pair of bodies as
specified functions of time. Locally in a machine, they replace a Joint as the
expression of the DoFs. Globally, Driver blocks must occur topologically in
closed loops. Like Bodies connected to a Joint, the two Bodies connected to a
Drivers are ordered as base and follower, fixing the direction of relative motion.
You can also connect a Driver block to a Constraint & Driver Sensor, which
measures the reaction forces/torques between the driven bodies.
6-9
mech_pdf.book Page 10 Tuesday, June 18, 2002 1:27 PM
Angle Driver
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Angle Driver block to
a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “Angle Driver base and follower
Body Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the Angle Driver
block to a Body CS Port on a Body, this parameter is automatically reset to
the name of this Body CS. See the following “Angle Driver base and
follower Body Connector Ports” figure.
Number of sensor/actuator ports
Using this spinner menu, you can set the number of extra Connector Ports
needed for connecting Driver Actuator and Constraint & Driver Sensor
blocks to this Driver. The default is 0.
To activate the Driver, connect a Driver Actuator.
6-10
mech_pdf.book Page 11 Tuesday, June 18, 2002 1:27 PM
Angle Driver
The base (B)–follower (F) Body sequence determines the sense of positive
motion. Positive rotation is the follower rotating in the right-handed sense
about the rotation axis.
Base Body Connector Port
Follower Body Connector Port
Angle Driver base and follower Body Connector Ports
Parameters
Fixed axis
For the Base and Follower bodies, respectively, enter the body axis
vectors. The defaults are [1 0 0].
Reference csys
Using the pull-down menu, choose the coordinate system (World, the base
Body CS, or the follower Body CS) whose coordinate axes the Base and
Follower body axis vectors are oriented with respect to. This CS also
determines the absolute meaning of reaction forces/torques at this Driver.
The defaults are WORLD.
See Also
Constraint & Driver Sensor, Driver Actuator, Parallel Constraint, Velocity
Driver
See “Modeling Constraints and Drivers” on page 3-34 for more on restricting
DoFs with Drivers.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on using drivers in closed loops.
See “Creating Constraints and Drivers” on page 6-5.
6-11
mech_pdf.book Page 12 Tuesday, June 18, 2002 1:27 PM
Bearing
Purpose
6Bearing
Library
Joints
Description
The Bearing block represents a composite joint with one translational degree
of freedom (DoF) as one prismatic primitive and three rotational DoFs as three
revolute primitives. There are no constraints among the primitives. Unlike
Telescoping, Bearing represents the rotational DoFs as three revolutes, rather
than as one spherical.
Represent a composite joint with one translational and three rotational DoFs
Caution A joint with three revolute primitives becomes singular if two or
three of the rotation axes become parallel (“gimbal lock”). The simulation
stops with an error in this case.
You must connect each side of the Joint block to a Body block at a Body
coordinate system (CS) point. The Bearing block is assembled: the origins of
these Body CSs must lie along the primitive axes, and the Body CS origins on
either side of the Joint must be spatially collocated points, to within assembly
tolerances.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
6-12
mech_pdf.book Page 13 Tuesday, June 18, 2002 1:27 PM
Bearing
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify reference CSs to define the directions of
the joint axes.
6-13
mech_pdf.book Page 14 Tuesday, June 18, 2002 1:27 PM
Bearing
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Bearing block to a
Body CS Port on a Body, this parameter is automatically reset to the name
of this Body CS. See the following “Bearing base and follower Body
Connector Ports” figure.
The base Body is automatically connected to the first joint primitive R1 in
the primitive list in Parameters.
Current follower
When you connect the follower (F) Connector Port on the Bearing block to
a Body CS Port on a Body, this parameter is automatically reset to the
6-14
mech_pdf.book Page 15 Tuesday, June 18, 2002 1:27 PM
Bearing
name of this Body CS. See the following “Bearing base and follower Body
Connector Ports” figure.
The follower Body is automatically connected to the last joint primitive P1
in the primitive list in Parameters.
Number of sensor/actuator ports
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.
The motions of prismatic and revolute primitives are specified in linear and
angular units, respectively.
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 moving around the rotational
axis following the right-hand rule.
Base Body Connector Port
Follower Body Connector Port
Bearing base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are required. Each DoF primitive in Bearing has
an entry line. These lines specify the direction of the axes of action of the DoFs
that the Bearing represents.
Name - Primitive
The primitive list states the names and types of joint primitives that make
up the Bearing block: revolute primitives R1, R2, R3, and prismatic
primitive P1.
Axis of action [x y z]
Enter here as a three-component vector the directional axes defining the
allowed motions of these primitives and their corresponding DoFs:
6-15
mech_pdf.book Page 16 Tuesday, June 18, 2002 1:27 PM
Bearing
- Prismatic: axis of translation
- Revolute: axis of rotation
The default vectors are shown in the dialog box above. The axis is a directed
vector whose overall sign matters.
To prevent singularities and simulation errors, no two of the revolute axes
can be parallel.
Reference csys
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 WORLD.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Bushing, Cylindrical, Gimbal, Prismatic, Revolute
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-16
mech_pdf.book Page 17 Tuesday, June 18, 2002 1:27 PM
Body
Purpose
6Body
Library
Bodies
Description
The Body block represents a rigid body whose properties you customize. The
representation you specify includes:
Represent a customizable rigid body
• The body’s mass and moment of inertia tensor
• The coordinates for the body’s center of gravity (CG)
• Any number of optional Body coordinate systems (CSs)
A rigid body is defined in space by the position of its CG (or center of mass) and
its orientation in some CS.
Setting Body Initial Conditions The initial position and orientation of a
body are set by the entries in its Body dialog. These initial conditions remain
unchanged; unless, with a Joint Initial Condition Actuator, you change the
initial conditions of the Joint(s) connected to the Body prior to starting the
simulation, or you actuate the Body with a Body Actuator.
In SimMechanics, you enter the body’s properties in two classes, the geometric
properties and the mass properties:
• The geometric properties are defined by the body’s Body CSs.
- The minimum required Body CS is the CS with its origin at the CG. The
CG point specifies both the initial position of the whole body and the origin
of the CG CS. You must also orient the CG CS axes.
- You can place any number of additional Body CSs on a body. You must
define each Body CS by the position of its origin and the orientation of its
CS axes.
- Each connection of a Joint, Constraint/Drive, Actuator, or Sensor block to
a Body requires an anchor point on the Body. This anchor point is one of
the Body CS origins.
- Body CSs on the block available for connections are shown by Body CS
ports
on the sides of the block. You can show or hide each Body CS on
the block sides.
6-17
mech_pdf.book Page 18 Tuesday, June 18, 2002 1:27 PM
Body
- The set of a body’s Body CS origins (including the CG CS) defines the
body’s convex hull, one of the visualization shapes available for
representing a body in space.
• The mass properties are defined by the body’s mass and inertia tensor.
- The mass is the body’s inertia and controls the translational acceleration
of the CG in response to an applied force.
- The inertia tensor measures the distribution of mass density in the body
and controls the rotational acceleration of the body about the CG in
response to an applied torque.
- The components of the inertia tensor control the initial orientation of the
body and are always interpreted as being in the CG CS axes. The
orientation of the CG CS axes with respect to another CS external to the
body (the World CS, a CS on a Ground, or a CS on another Body) then
determines the orientation of the body with respect to other bodies or with
respect to World.
- The body’s inertia tensor defines its principal axes and moments and its
equivalent ellipsoid, one of the visualization shapes available for
representing a body in space.
Default Initial State of a Body
These two sets of properties determine a body’s initial position and orientation:
• The initial position of a body is set by the position of its CG.
• The initial orientation is set by its inertia tensor components (in the CG CS)
and the orientation of the CG CS axes with respect to other CSs in the
machine.
The initial conditions of a machine can be changed with Joint Initial Condition
Actuator blocks before starting a simulation. If you do not change the initial
state of a Body before simulation, SimMechanics sets its initial
position/orientation to its Body dialog box entries. SimMechanics also sets the
Body’s initial linear/angular velocities to zero in this case.
6-18
mech_pdf.book Page 19 Tuesday, June 18, 2002 1:27 PM
Body
Dialog Box and
Parameters
The dialog box has two active areas, Mass Properties and Body Coordinate
Systems.
Mass
Properties
Mass
Enter the mass of the body in the first field and choose units in the
pull-down menu to the right. The mass must be a positive, real number or
MATLAB equivalent. The defaults are 1 and kg (kilograms).
Inertia tensor
Enter the inertia tensor (with respect to the Body CG CS axes) in the first
field and choose units in the pull-down menu to the right. The tensor must
be a 3-by-3 real, symmetric matrix. The default tensor is eye(3), the
MATLAB 3-by-3 identity matrix. A zero tensor zeros(3,3) defines a point
mass. The units default is kg-m2 (kilograms-meters2).
6-19
mech_pdf.book Page 20 Tuesday, June 18, 2002 1:27 PM
Body
Body
Coordinate
Systems
Configuring a Body Coordinate System
You set up Body CSs in the Body coordinate systems area:
• The default configuration consists of three Body CSs: the required CG CS
attached to the body’s CG and two other optional Body CSs, called “CS1” and
“CS2”, for connecting Joints, Constraints, or Drivers.
• You can configure the CG CS but not delete it. You also cannot create
additional CG CSs, although you can duplicate the CG CS with a different
name. (See following.)
• The other CSs can be configured or deleted as you want.
• Configuring a Body CSs requires two groups of steps:
- positioning the Body CS origin in the Position panel
- orienting the Body CS axes in the Orientation panel.
• Defining Body CSs requires referring to other, pre-existing CSs in the model.
In a given Body block, you can refer to Body and grounded CSs in three ways.
The references must be to:
- World
- Other Body CSs on the same body
- The Adjoining CS, the coordinate system on a neighboring body or ground
directly connected to the selected Body CS by a Joint, Constraint, or
Driver.
Selected CS = [email protected]
Adjoining CS = [email protected]
• Toggle between the Position or Orientation panels with the tabs.
Each Body CS is labeled with a name, CG for the CG CS, and CS1, CS2, etc.,
for additional CSs.
6-20
mech_pdf.book Page 21 Tuesday, June 18, 2002 1:27 PM
Body
Configuring the Position fields
The Position fields for each Body CS specify the position of that CS’s origin as
a translation vector:
- The numerical components of the vector carry units.
- The origin is displaced from the origin of another, pre-existing CS in your
machine by this translation vector.
- The translation vector’s components are oriented with respect to another
set of CS axes.
Highlight each Body CS to configure it.
Origin position vector [x y z]
Enter the translation vector that defines the position of the Body CS’s
origin.
The special entry for the CG CS origin places the entire body.
Units
Choose linear units for the translation vector. The default is m (meters).
Translated from the origin of
In the pull-down menu, choose the other, pre-existing CS in your machine
that defines the starting point for the translation vector. The choices are
WORLD, ADJOINING, and the other Body CSs on this Body. The ending point
of the translation vector is this Body CS’s origin.
6-21
mech_pdf.book Page 22 Tuesday, June 18, 2002 1:27 PM
Body
For the CG CS, the default starting-point CS is WORLD. For the additional
Body CSs (CS1, CS2, etc.), the default starting point CS is this Body’s CG.
Components in the axes of
In the pull-down menu, choose the CS whose axes define the orientation of
the translation vector’s components. The choices are WORLD, ADJOINING, and
the other Body CSs on this Body. The translation vector’s components are
projected along the axes of the CS chosen in this column.
For the CG CS, the default orientation CS is WORLD. For the additional Body
CSs (CS1, CS2, etc.), the default orientation CS is this Body’s CG.
Configuring the Orientation Fields
The Orientation fields for each Body CS specify the orientation of that CS’s
triad of axes as a rotation:
- The orientation vector specifying the rotation vector has three
components.
- The numerical components of the vector carry units.
- The rotation is oriented with respect to some other, pre-existing set of CS
coordinate axes in your machine.
- The orientation vector’s components are interpreted in the convention of a
rotation representation.
Highlight each Body CS to configure it.
6-22
mech_pdf.book Page 23 Tuesday, June 18, 2002 1:27 PM
Body
Orientation vector
Enter the components of the rotation that defines the orientation of the
Body CS’s axes. The geometric meaning of these components is determined
by the Specified using convention column.
The special entry for the CG CS orients the CG CS axes. Together with the
Inertia tensor entry in Mass properties, the CG CS axes orient the whole
body with respect to another CS in your machine.
Units
Choose angular units for the rotation, degrees or radians. The default is
deg (degrees).
Relative to coordinate system
In the pull-down menu, choose the other, pre-existing CS in your machine
that defines the starting orientation for the rotation. The choices are WORLD,
ADJOINING, and the other Body CSs on this Body.
Specified using convention
In the pull-down menu, choose the representation type for the rotation:
Rotation Type
Orientation vector components
Quaternion
[nx*sin(θ/2) ny*sin(θ/2) nz*sin(θ/2) cos(θ/2)]
3x3Transform
3-by-3 orthogonal rotation matrix R
Euler
Rotation angles about: [X-axis Y-axis Z-axis]
Rotation Conventions
There are three generic conventions for representing rotations:
• Euler
The Euler angle convention specifies the rotation of the Body CS axes by
rotating about three axes in a sequence. The components of the 1-by-3 row
vector are the angles of rotation about the X-, Y-, and Z-axes, respectively, in
degrees or radians.
For example, Euler X-Y-Z means, rotate about the original X-axis, then
about the intermediate Y-axis, and then about the next intermediate Z-axis.
6-23
mech_pdf.book Page 24 Tuesday, June 18, 2002 1:27 PM
Body
Another example: Euler X-Z-Y means, rotate about the original X-axis, then
about the intermediate Z-axis, and then about the next intermediate Y-axis.
• 3-by-3 Transform
The transform convention specifies the rotation as a dimensionless 3-by-3
orthogonal rotation matrix. The inverse of an orthogonal matrix R is equal
to its transpose: R-1 = RT.
The columns of R are the (x,y,z) unit vectors of the Body CS axes. The units
menu is inactive.
• Quaternion
The quaternion convention specifies the rotation in angle-axis form as a
dimensionless 1-by-4 row vector:
[nx*sin(θ/2) ny*sin(θ/2) nz*sin(θ/2) cos(θ/2)]
n = (nx,ny,nz) is a three-component vector of length unity: n*n = nx2 + ny2 +
nz2 = 1.
The unit vector n specifies the axis of rotation. The rotation angle about that
axis is θ and follows the right-hand rule.
Managing the Body Coordinate Systems List
The Body coordinate system controls (see the following “Body coordinate
systems controls” figure) allow you to add, duplicate, reorder, and delete Body
CSs on a Body block:
• To add a Body CS to the list:
- Highlight an existing Body CS in the list.
- Click the Add button (see the following “Body coordinate systems controls”
figure).
A new Body CS will appear immediately below the Body CS you
highlighted. New Body CSs are named in sequence after the current ones:
CS3, CS4, etc.
• To duplicate a Body CS in the list:
- Highlight the Body CS you want to duplicate.
6-24
mech_pdf.book Page 25 Tuesday, June 18, 2002 1:27 PM
Body
- Click on the Duplicate button (see the following “Body coordinate systems
controls” figure).
A new Body CS with the same configuration but a different name will
appear immediately below the Body CS you highlighted. New Body CSs
are named in sequence after the current ones: CS3, CS4, etc.
• To change the position of a Body CS in the list:
- Highlight the Body CS whose position you want to change.
- Click on the Up or Down button (see the following “Body coordinate
systems controls” figure) until the Body CS is where you want it.
• To delete a Body CS from the list:
- Highlight the Body CS you want to delete.
- Click on the Delete button (see the following “Body coordinate systems
controls” figure).
The Body CS you highlighted disappears.
• You cannot delete the Body’s CG CS.
Managing Body CS Ports on a Body Block
To connect a Joint, Constraint/Driver, Actuator, or Sensor block to a Body block
requires an existing and configured Body CS in the Body to anchor the other
block to:
• These other blocks define, constraint, impart, and measure the motion of
bodies with respect to the origin and coordinate axes of Body CSs. Connect
each of these blocks to a Body CS with a connection line.
• The actual connection line running from the other block to the Body block
must be anchored to a displayed Body CS Port
on the side of the Body
block in the model window.
Body CS Port
• A displayed Body CS Port on a Body block indicates a Body CS with the
displayed name configured internally within the Body block.
6-25
mech_pdf.book Page 26 Tuesday, June 18, 2002 1:27 PM
Body
• Not all the Body CSs configured inside a Body block need to be displayed,
however.
See the following “Body coordinate systems controls” figure.
Show port
Select this check box for any Body CS to create a corresponding Body CS
Port
on the side of the Body block. The Body CS on that line in the Body
CS list is now accessible for connection to other blocks.
Unselect this check box to remove the Body CS Port corresponding to that
Body CS on that line in the list.
The defaults are: unselected for CG, selected for CS1 and CS2.
To apply your choices to the displayed Body block, click Apply.
Port side
From the pull-down menu, choose which side of the Body block you want
the Body CS Port for that Body CS to be placed on, Left or Right.
The defaults are Left for CG and CS1 and Right for CS2.
To apply your choices to the displayed Body block, click Apply.
6-26
mech_pdf.book Page 27 Tuesday, June 18, 2002 1:27 PM
Body
Show port
check box
Add CS
Duplicate CS
Delete CS
CS Up
CS Down
Port side
menu
Body coordinate systems controls
See Also
Body Actuator, Body Sensor, Body Sensor, Ground
See “Modeling Bodies” on page 3-8, “Creating Body CS Ports” on page 3-16, and
“Choosing Visualization Options in SimMechanics” on page 5-2 for more on
setting up Bodies in machines.
See “Modeling Sensors” on page 3-53for setting general initial conditions
(positions and velocities) of DoFs in a machine.
6-27
mech_pdf.book Page 28 Tuesday, June 18, 2002 1:27 PM
Body Actuator
Purpose
6Body Actuator
Library
Sensors & Actuators
Description
The Body Actuator block actuates a Body block with a generalized force signal,
representing a force/torque applied to the body:
Apply force/torque to a body
• Force for translational motion
• Torque for rotational motion
The generalized force is a function of time specified by a Simulink input signal.
This signal can be any Simulink signal, including a signal feedback from a
Sensor block.
The Body Actuator applies the actuation signal in the reference coordinate
system (CS) specified in the block dialog box.
The inport is the Simulink input signal. The output is the Connector Port you
connect to the Body block you want to actuate.
You should carefully distinguish the Body Actuator from the Driver blocks:
• The Body Actuator block applies generalized forces to one body in a specified
reference CS.
• The Driver blocks drive relative degrees of freedom between pairs of bodies.
Other Ways to Actuate Bodies
The Body Actuator block actuates a Body with force/torque signals only. To
actuate a Body with motion signals or initial conditions, or to drive the relative
degrees of freedom between a pair of Bodies, see “Actuating a Joint” on
page 3-43 and “Joint Actuator Example: Body Driver” on page 3-45.
The mech_body_driver model from the Demos library shows how to drive the
relative DoFs between a pair of bodies. To actuate one body alone, use this
model and replace the second Body block with a Ground block. To set body
initial conditions, replace the second Body block with a Ground block and the
Joint Actuators with Joint Initial Condition Actuators.
6-28
mech_pdf.book Page 29 Tuesday, June 18, 2002 1:27 PM
Body Actuator
Dialog Box and
Parameters
The dialog box has one active area, Actuation.
Actuation
Actuating body at coordinate system
This field is not active. You choose the Body CS at which to apply the
actuation by connecting it to the Body Actuator.
Using reference coordinate system
In the pull-down menu, choose the coordinate system (CS) in which the
actuating force/torque is interpreted: either the Local (Body CS) to which
the Actuator is connected or the default Absolute (World).
6-29
mech_pdf.book Page 30 Tuesday, June 18, 2002 1:27 PM
Body Actuator
Here is a Body Actuator connected to a Body:
Actuation applied at Body CS
Body actuated
Simulink signal in
You must connect the Body Actuator to the Body at one of that Body’s attached
Body CSs, at the corresponding Body CS Port. The actuation signal acts on the
Body at that Body CS’s origin.
Generalized
Forces
You can apply a force, a torque, or both generalized forces to a body.
If you apply both, you need to bundle the torque and force vectors into a
6-component signal, in the order shown in the dialog box.
Apply torque
Select the check box if part or all of the actuating signal is a rotational
torque. The default is unselected. The Simulink torque input is a
3-component bundled signal.
In the pull-down menu, choose units for the actuating torque. The default
is N-m (Newton-meters).
Apply force
Select the check box if part or all of the actuating signal is a translational
force. The default is selected. The Simulink force input is a 3-component
bundled signal.
In the pull-down menu, choose units for the actuating force. The default is
N (Newtons).
See Also
6-30
Body, Body Sensor, Driver Actuator, Joint Actuator, Joint Initial Condition
Actuator
mech_pdf.book Page 31 Tuesday, June 18, 2002 1:27 PM
Body Actuator
See “Actuating a Joint” on page 3-43 and “Joint Actuator Example: Body
Driver” on page 3-45.
See “Creating Bodies and Grounds” on page 6-3 and “Creating Constraints and
Drivers” on page 6-5.
In Simulink, see the Signal Routing Library and the Sources Library.
6-31
mech_pdf.book Page 32 Tuesday, June 18, 2002 1:27 PM
Body Sensor
Purpose
6Body Sensor
Library
Sensors & Actuators
Description
The Body Sensor block detects the position, velocity, and/or acceleration of a
body represented by a Body block.
Measure body motion
The Body Sensor measures the motion in the reference coordinate system (CS)
specified in the block dialog box.
You can measure one, two, or all three of these motion types:
• Translational motion of a body, in terms of linear position, velocity, and/or
acceleration vectors
• Rotational motion of a body, in terms of angular velocity and/or acceleration
vectors
• Rotational motion of a body, in terms of a 3-by-3 rotation matrix
The input is the Connector Port connected to the Body being sensed. The
outport is a set of Simulink signals or one bundled Simulink signal of the
position, velocity, and/or acceleration vector(s) and/or the rotation matrix of the
body.
6-32
mech_pdf.book Page 33 Tuesday, June 18, 2002 1:27 PM
Body Sensor
Dialog Box and
Parameters
The dialog box has one active area, Measurements.
Measurements
Measuring Body coordinate system
This field is not active. You choose the Body CS at which to measure the
motion by connecting it to the Body Sensor.
With respect to coordinate system
In the pull-down menu, choose the coordinate system in which the body
motion is measured: either the Local (Body CS) to which the Actuator is
connected or the default Absolute (World).
6-33
mech_pdf.book Page 34 Tuesday, June 18, 2002 1:27 PM
Body Sensor
Here is a Body Sensor connected to a Body:
Body CS
Body measured
Simulink signal out
You must connect the Body Sensor to the Body at one of that Body’s attached
Body CSs, at the corresponding Body CS Port. The sensor measures the motion
of that Body CS.
Select the check box(es) for each of the possible measurements you want to
make:
• Linear motion: Position, Velocity, and Acceleration vectors
• Angular motion: Angular velocity and Angular acceleration vectors and
Rotation matrix:
- The Rotation matrix is the 3-by-3 orthogonal rotation matrix R:
R
R
R
11 12 13
R
R
R
21 22 23
R 31 R 32 R 33
representing rotational orientation and satisfying RTR = RRT = 1. The
components are output column-wise as a 9-component row vector: (R11,
R21, R31, R12, ... ).
- If you choose the With respect to coordinate system as Absolute
(World), the Rotation matrix measures the body’s rotational orientation
with respect to its initial orientation. If you choose the With respect to
coordinate system above as Local (Body CS), the Rotation matrix
returns the 3-by-3 identity matrix.
6-34
mech_pdf.book Page 35 Tuesday, June 18, 2002 1:27 PM
Body Sensor
Each vector measurement is a row vector in the Simulink output signal.
In the pull-down menus, choose the units for each of the measurements you
want:
• Linear motion: the defaults are m (meters), m/s (meters/second), m/s2
(meters/second2), and N (Newtons), respectively, for Position, Velocity, and
Acceleration.
• Angular motion: the defaults are deg/s (degrees/second) and deg/s2
(degrees/second2), respectively, for Angular velocity and Angular
acceleration. The Rotation matrix is dimensionless.
Output selected parameters as one signal
Select this check box to convert the output signals into a single bundled
signal. The default is selected. If you unselect it, the Body Sensor block will
grow as many Simulink outports as there are active signals selected, in the
same order top to bottom, in the dialog box.
If the check box is selected, the Simulink signal out has all the active
(selected) signals ordered into a single row vector, in the same order you see
in the dialog box. Unselected components are removed from the vector
signal.
See Also
Body, Body Actuator, Constraint & Driver Sensor, Joint Sensor
See “Creating Bodies and Grounds” on page 6-3.
In Simulink, see the Signal Routing Library and the Sinks Library.
6-35
mech_pdf.book Page 36 Tuesday, June 18, 2002 1:27 PM
Bushing
Purpose
6Bushing
Library
Joints
Description
The Bushing block represents a composite joint with three translational
degrees of freedom (DoFs) as three prismatic primitives and three rotational
DoFs as three revolute primitives. There are no constraints among the
primitives. Unlike Six-DoF, Bushing represents the rotational DoFs as three
revolutes, rather than as one spherical.
Represent a composite joint with three translational and three rotational DoFs
Caution A joint with 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.
You must connect each side of the Joint block to a Body block at a Body
coordinate system (CS) point. The Bushing block is assembled: the origins of
these Body CSs must lie along the primitive axes, and the Body CS origins on
either side of the Joint must be spatially collocated points, to within assembly
tolerances.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify reference CSs to define the directions of
the joint axes.
6-36
mech_pdf.book Page 37 Tuesday, June 18, 2002 1:27 PM
Bushing
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Bushing block to a
Body CS Port on a Body, this parameter is automatically reset to the name
of this Body CS. See the following “Bushing base and follower Body
Connector Ports” figure.
The base Body is automatically connected to the first joint primitive P1 in
the primitive list in Parameters.
6-37
mech_pdf.book Page 38 Tuesday, June 18, 2002 1:27 PM
Bushing
Current follower
When you connect the follower (F) Connector Port on the Bushing block to
a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “Bushing base and follower Body
Connector Ports” figure.
The follower Body is automatically connected to the last joint primitive R3
in the primitive list in Parameters.
Number of sensor/actuator ports
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.
The motions of prismatic and revolute primitives are specified in linear and
angular units, respectively.
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 moving around the rotational
axis following the right-hand rule.
Base Body Connector Port
Follower Body Connector Port
Bushing base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are required. Each DoF primitive in Bushing has
an entry line. These lines specify the direction of the axes of action of the DoFs
that the Bushing represents.
Name - Primitive
The primitive list states the names and types of joint primitives that make
up the Bushing block: prismatic primitives P1, P2, P3, and revolute
primitives R1, R2, R3.
6-38
mech_pdf.book Page 39 Tuesday, June 18, 2002 1:27 PM
Bushing
Axis of action [x y z]
Enter here as a three-component vector the directional axes defining the
allowed motions of these primitives and their corresponding DoFs:
- Prismatic: axis of translation
- Revolute: axis of rotation
The default vectors are shown in the dialog box above. 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.
Reference csys
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 WORLD.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Bearing, Cylindrical, Gimbal, Prismatic, Revolute, Six-DoF
6-39
mech_pdf.book Page 40 Tuesday, June 18, 2002 1:27 PM
Bushing
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-40
mech_pdf.book Page 41 Tuesday, June 18, 2002 1:27 PM
Connection Port
Purpose
6Connection Port
Library
Utilities
Description
The Connection Port block, placed inside a subsystem composed of
SimMechanics blocks, creates a SimMechanics open round Connector Port on
the boundary of the subsystem. Once connected to a Connection Line, the Port
becomes solid • .
Create a Connector Port for a subsystem
You connect individual SimMechanics blocks and subsystems made of
SimMechanics blocks to one another with SimMechanics Connection Lines,
instead of normal Simulink signal lines. These are anchored at the open, round
Connector Ports . Subsystems constructed out of SimMechanics blocks
automatically have such open round Connector Ports. You can add additional
Connector Ports by adding Connection Port blocks to your subsystem.
Drag and drop a Connection Port block into the parent SimMechanics
subsystem to create a Connector that parent subsystem’s boundary.
Dialog Box and
Parameters
Port number
This field labels the subsystem Connector Port created by this block.
Multiple Connector Ports on the boundary of a single subsystem require
different numbers as labels. The default value for the first Port is 1.
Port location on parent subsystem
Choose here on which side of the parent subsystem boundary the Port is
placed. The choices are left or right. The default choice is left.
6-41
mech_pdf.book Page 42 Tuesday, June 18, 2002 1:27 PM
Connection Port
See Also
6-42
In Simulink, see Creating Subsystems.
mech_pdf.book Page 43 Tuesday, June 18, 2002 1:27 PM
Constraint & Driver Sensor
Purpose
6Constraint & Driver Sensor
Library
Sensors & Actuators
Description
The Constraint & Driver Sensor block measures the force/torque of constraint
(reaction force/torque) between a pair of bodies. You connect the block to the
Constraint or Driver block connected between the two Bodies. The output
signal is the reaction force/torque.
Measure constraint force/torque between a pair of constrained bodies
The Constraint & Driver Sensor measures the reaction force/torque in the
reference coordinate system (CS) specified in the block dialog box. The
Constraint or Driver block connects a base and a follower Body. You choose in
the dialog box to measure the reaction force/torque on either the base or the
follower Body.
The input is the Connector Port connected to the Constraint or Driver block you
want to sense. The outport is a set of Simulink signals or one bundled Simulink
signal of the reaction force/torque vector(s).
Dialog Box and
Parameters
The dialog box has one active area, Measurements.
Measurements
Reactions measured on
In the pull-down menu, choose to measure the reaction force/torque on the
base (B) or follower (F) Body. The default is Base.
6-43
mech_pdf.book Page 44 Tuesday, June 18, 2002 1:27 PM
Constraint & Driver Sensor
With respect to coordinate system
In the pull-down menu, choose the CS in which the reaction force/torque or
motion is interpreted. The default is Absolute (World).
Here is a Constraint & Driver Sensor connected to a Gear Constraint, which
connects and constraints two Bodies:
Constraint/Driver measured
Simulink signal out
You must add an Sensor port (Connector Port) to the Constraint/Driver block
to connect the Constraint & Driver Sensor to it. The base (B)–follower (F) Body
sequence on the two sides of the Joint determines the sense of the Constraint
& Driver Sensor data.
Reaction torque
Select the check box if you want to measure the reaction torque. The
default is selected. The torque is a row vector in the Simulink output
signal.
In the pull-down menu, choose the units for the reaction torque. The
default is N-m (Newton-meters).
Reaction force
Select the check box if you want to measure the reaction force. The default
is selected. The force is a row vector in the Simulink output signal.
In the pull-down menu, choose the units for the reaction force. The default
is N (Newtons).
6-44
mech_pdf.book Page 45 Tuesday, June 18, 2002 1:27 PM
Constraint & Driver Sensor
Output selected parameters as one signal
Select this check box to convert the output signals into a single bundled
signal. The default is selected. If you unselect it, the Constraint & Driver
Sensor block will grow as many Simulink outports as there are active
signals selected, in the same order top to bottom, in the dialog box.
If the check box is selected, the Simulink signal out has all the active
signals bundled into a single row vector, ordered in the order shown in the
dialog box. The type of the signal components depends on which
measurements are active (selected).
See Also
Body Sensor, Driver Actuator, Joint Sensor
See “Creating Constraints and Drivers” on page 6-5.
In Simulink, see the Signal Routing Library and the Sinks Library.
6-45
mech_pdf.book Page 46 Tuesday, June 18, 2002 1:27 PM
Continuous Angle
Purpose
6Continuous Angle
Library
Utilities
Description
The Continuous Angle block converts a measured angle signal restricted to the
semi-open interval (−180o, +180o] degrees or (−π,+π] radians to a continuous,
unbounded angle not restricted to any interval. This block requires the angle
and the angular velocity as input signals. The continuous, unbounded angle is
the output signal.
Convert discontinuous, bounded angular output from a sensor to continuous,
unbounded angular output
The Joint Sensor block outputs the absolute rotational measurement of
revolute motion as a bounded angle in the interval (−180o, +180o] degrees or
(−π,+π] radians. Motion that crosses the boundaries of this interval causes
discontinuities in the measured angle, from +180o to −180o or vice versa. Use
the Continuous Angle block if you want to convert this restricted angular
measurement to an unbounded measurement.
Dialog Box and
Parameters
The dialog box has one active area, Parameters.
Parameters
Angle measured in
Choose the units for the input angle and the output continuous angle,
either deg (degrees) or rad (radians). The default is deg.
Rate measured in
Choose the units for the input rate (angular velocity), either deg/s
(degrees/second) or rad/s (radians/second).
6-46
mech_pdf.book Page 47 Tuesday, June 18, 2002 1:27 PM
Continuous Angle
See Also
Joint Sensor
See “Additional Useful Blocks” on page 6-6.
6-47
mech_pdf.book Page 48 Tuesday, June 18, 2002 1:27 PM
Custom Joint
Purpose
6Custom Joint
Library
Joints
Description
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:
Represent a customizable composite joint with up to three translational and
three rotational degrees of freedom
• Up to three translational DoFs as three prismatic primitives
• Up to three rotational DoFs:
- As a single spherical primitive
- As 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.
Caution 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.
The Custom Joint block’s primitives are assembled: you must connect each side
of the Joint block to a Body block at a Body coordinate system (CS) point, and
the origins of these Body CSs must be spatially collocated points, within
assembly tolerances.
You can connect the Custom Joint to Actuator and Sensor blocks, with each
Actuator and Sensor connecting to an individual primitive. You cannot connect
a spherical primitive to an Actuator block.
6-48
mech_pdf.book Page 49 Tuesday, June 18, 2002 1:27 PM
Custom Joint
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
Any Joint block represents only the abstract relative motion of two bodies, not
the bodies themselves. You must specify a reference CS to define the direction
of the joint axes.
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
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 “Custom Joint base and follower
Body Connector Ports” figure.
6-49
mech_pdf.book Page 50 Tuesday, June 18, 2002 1:27 PM
Custom Joint
The base Body is automatically connected to the first joint primitive in the
primitive list in Parameters.
Current follower
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 “Custom Joint base and
follower Body Connector Ports” figure.
The follower Body is automatically connected to the last joint primitive in
the primitive list in Parameters.
Number of sensor/actuator ports
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.
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-handed sense about the
rotation axis.
• Positive rotation is the follower rotating in the right-handed sense as shown
in the Spherical block figure.
Base Body Connector Port
Follower Body Connector Port
Custom Joint base and follower Body Connector Ports
Parameters
6-50
Toggle between the Axes and Advanced panels with the tabs.
mech_pdf.book Page 51 Tuesday, June 18, 2002 1:27 PM
Custom Joint
The entries on the Axes pane 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.
Name - Primitive
In the pull-down menu, select a label and primitive type for this DoF. Up
to three prismatic primitives P1, P2, P3 are allowed. The rotational DoFs
are represented by up to three revolute primitives: R1, R2, R3. A spherical
primitive S can take all three allowed rotational DoFs instead.
The default value is R1 - Revolute.
Axis of action [x y z]
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.
Reference csys
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
6-51
mech_pdf.book Page 52 Tuesday, June 18, 2002 1:27 PM
Custom Joint
meaning of forces/torques and motion along/about the joint axis. The
default is WORLD.
The field is not active for a spherical primitive.
Managing the Joint Primitives List in a Custom Joint
The Custom Joint primitives list controls (see the following “Custom Joint
primitives list controls” figure) allow you to add, reorder, and delete joint
primitives in a Custom Joint block:
• To add a joint primitive to the primitives list:
- Highlight an existing primitive name in the list.
- Click on the Add button (see the following “Custom Joint primitives list
controls” figure).
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 following “Custom Joint
primitives list controls” figure) 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 following “Custom Joint primitives list
controls” figure).
The primitive you highlighted disappears.
• Custom Joint requires at least one primitive, which you cannot delete.
6-52
mech_pdf.book Page 53 Tuesday, June 18, 2002 1:27 PM
Custom Joint
Add
Primitive Up
Primitive Down
Delete primitive
Custom Joint primitives list controls
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Bushing, Gimbal, Joint Actuator, Joint Initial Condition Actuator, Joint
Sensor, Joint Stiction Actuator, Prismatic, Revolute, Six-DoF, Spherical
6-53
mech_pdf.book Page 54 Tuesday, June 18, 2002 1:27 PM
Custom Joint
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-54
mech_pdf.book Page 55 Tuesday, June 18, 2002 1:27 PM
Cylindrical
Purpose
6Cylindrical
Library
Joints
Description
The Cylindrical block represents a composite joint with one translational
degree of freedom (DoF) as one prismatic primitive and one rotational DoF as
one revolute primitive. The translation and rotation axes must be parallel.
Represent a composite joint with one translational DoF and one rotational
DoF, with parallel translation and rotation axes
You must connect each side of the Joint block to a Body block at a Body
coordinate system (CS) point. The Cylindrical block is assembled: the origins of
these Body CSs must lie along the primitive axes, and the Body CS origins on
either side of the Joint must be spatially collocated points, to within assembly
tolerances.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify reference CSs to define the directions of
the joint axes.
6-55
mech_pdf.book Page 56 Tuesday, June 18, 2002 1:27 PM
Cylindrical
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Cylindrical block to
a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “Cylindrical base and follower
Body Connector Ports” figure.
The base Body is automatically connected to the first joint primitive P1 in
the primitive list in Parameters.
Current follower
When you connect the follower (F) Connector Port on the Cylindrical block
to a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “Cylindrical base and follower
Body Connector Ports” figure.
6-56
mech_pdf.book Page 57 Tuesday, June 18, 2002 1:27 PM
Cylindrical
The follower Body is automatically connected to the last joint primitive R1
in the primitive list in Parameters.
Number of sensor/actuator ports
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.
The motions of prismatic and revolute primitives are specified in linear and
angular units, respectively.
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 moving around the rotational
axis following the right-hand rule.
Base Body Connector Port
Follower Body Connector Port
Cylindrical base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are required. Each DoF primitive in Cylindrical
has an entry line. These lines specify the direction of the axes of action of the
DoFs that the Cylindrical represents.
Name - Primitive
The primitive list states the names and types of joint primitives that make
up the Cylindrical block: prismatic revolute P1 and revolute primitive R1.
Axis of action [x y z]
Enter here as a three-component vector the directional axes defining the
allowed motions of these primitives and their corresponding DoFs:
- Prismatic: axis of translation
- Revolute: axis of rotation
6-57
mech_pdf.book Page 58 Tuesday, June 18, 2002 1:27 PM
Cylindrical
The default vectors are shown in the dialog box above. The axes are
directed vectors whose overall sign matters.
The two axes P1 and R1 in Cylindrical must be aligned.
Reference csys
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 WORLD.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Disassembled Cylindrical, Prismatic, Revolute, Screw
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-58
mech_pdf.book Page 59 Tuesday, June 18, 2002 1:27 PM
Disassembled Cylindrical
Purpose
6Disassembled Cylindrical
Library
Joints/Disassembled Joints
Description
The Disassembled Cylindrical block represents a composite joint, one
translational and one rotational degrees of freedom (DoF) along and about a
pair of specified misaligned axes between two bodies. SimMechanics
automatically assembles (aligns) the two axes at simulation start.
Represent a disassembled cylindrical joint, with one translational DoF and one
rotational DoF along and about misaligned axes, with no constraints
A cylindrical joint is composite, with two DoFs and a single specified axis: a
prismatic primitive translating along the axis, and a revolute primitive
rotating about the axis. There are no constraints between the two primitives.
This block is disassembled: you must connect each side of the Joint block to a
Body block at a Body coordinate system (CS) point, but the origins of these
Body CSs do not need to be spatially collocated points or lie along a joint axis.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies. The disassembled translation-rotation joint axes are associated with
the base and follower Bodies, respectively.
6-59
mech_pdf.book Page 60 Tuesday, June 18, 2002 1:27 PM
Disassembled Cylindrical
You can only use a Disassembled Joint block to close a loop. One loop must have
no more than one disassembled joint. You cannot connect a Disassembled Joint
to an Actuator or Sensor block.
Disassembled cylindrical axes of follower (blue) and base (red)
6-60
mech_pdf.book Page 61 Tuesday, June 18, 2002 1:27 PM
Disassembled Cylindrical
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Disassembled
Cylindrical block to a Body CS Port on a Body, this parameter is
automatically reset to the name of this Body CS. See the following
“Disassembled Cylindrical base and follower Body Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the Disassembled
Cylindrical block to a Body CS Port on a Body, this parameter is
automatically reset to the name of this Body CS. See the following
“Disassembled Cylindrical base and follower Body Connector Ports” figure.
6-61
mech_pdf.book Page 62 Tuesday, June 18, 2002 1:27 PM
Disassembled Cylindrical
Base Body Connector Port
Follower Body Connector Port
Disassembled Cylindrical base and follower Body Connector Ports
Parameters
There is one Axes panel.
The entries on the Axes pane are required. They specify the directions of the
two misaligned axes of the translational-rotational DoFs that the
Disassembled Cylindrical represents.
Name
This column automatically displays the names of the two misaligned
rotation axes attached to base and follower bodies, respectively.
Axis of action [x y z]
Enter here as two three-component vectors the two misaligned directional
axes along and about which the base and follower bodies respectively can
translate and rotate. The default vectors are [1 0 0] and [0 1 0],
respectively. The axes are directed vectors whose overall signs matter.
Reference csys
Using the pull-down menu, choose the coordinate systems (World, the base
Body CS, or the follower Body CS) whose coordinate axes the two vector
axes of translation-rotation are oriented with respect to. The defaults are
WORLD.
6-62
mech_pdf.book Page 63 Tuesday, June 18, 2002 1:27 PM
Disassembled Cylindrical
See Also
Cylindrical, Disassembled Prismatic, Disassembled Revolute, Disassembled
Spherical
See “Modeling Joints” on page 3-17 for more on representing DoFs with
Disassembled Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting disassembled joints.
6-63
mech_pdf.book Page 64 Tuesday, June 18, 2002 1:27 PM
Disassembled Prismatic
Purpose
6Disassembled Prismatic
Library
Joints/Disassembled Joints
Description
The Disassembled Prismatic block represents a single translational degree of
freedom (DoF) along a pair of specified misaligned axes between two bodies.
SimMechanics automatically assembles (aligns) the translation axes at
simulation start.
Represent a disassembled prismatic joint with one translational degree of
freedom along misaligned axes
This block is disassembled: you must connect each side of the Joint block to a
Body block at a Body coordinate system (CS) point, but the origins of these
Body CSs do not have to lie along a joint axis. As with the Prismatic Joint, these
Body CS origins do not need to be spatially collocated points either.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies. The disassembled joint axes are associated with the base and follower
Bodies, respectively.
You can only use a disassembled Joint block to close a loop. One loop must have
no more than one disassembled joint. You cannot connect a Disassembled Joint
to an Actuator or Sensor block.
Disassembled prismatic axes of follower (blue) and base (red)
6-64
mech_pdf.book Page 65 Tuesday, June 18, 2002 1:27 PM
Disassembled Prismatic
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Disassembled
Prismatic block to a Body CS Port on a Body, this parameter is
automatically reset to the name of this Body CS. See the following
“Disassembled Prismatic base and follower Body Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the Disassembled
Prismatic block to a Body CS Port on a Body, this parameter is
automatically reset to the name of this Body CS. See the following
“Disassembled Prismatic base and follower Body Connector Ports” figure.
6-65
mech_pdf.book Page 66 Tuesday, June 18, 2002 1:27 PM
Disassembled Prismatic
Base Body Connector Port
Follower Body Connector Port
Disassembled Prismatic base and follower Body Connector Ports
Parameters
There is one Axes panel.
The entries on the Axes pane are required. They specify the directions of the
two misaligned axes of the translational DoF that the Disassembled Prismatic
represents.
Name
This column automatically displays the names of the two misaligned
translation axes attached to base and follower bodies, respectively.
Axis of translation [x y z]
Enter here as two three-component vectors the two misaligned directional
axes along which the base and follower bodies respectively can translate.
The default vectors are [1 0 0] and [0 1 0], respectively. The axes are
directed vectors whose overall signs matter.
Reference csys
Using the pull-down menu, choose the coordinate systems (World, the base
Body CS, or the follower Body CS) whose coordinate axes the two vector
axes of translation are oriented with respect to. The defaults are WORLD.
6-66
mech_pdf.book Page 67 Tuesday, June 18, 2002 1:27 PM
Disassembled Prismatic
See Also
Disassembled Cylindrical, Disassembled Revolute, Disassembled Spherical,
Prismatic
See “Modeling Joints” on page 3-17 for more on representing DoFs with
Disassembled Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closing loops with disassembled joints.
6-67
mech_pdf.book Page 68 Tuesday, June 18, 2002 1:27 PM
Disassembled Revolute
Purpose
6Disassembled Revolute
Library
Joints/Disassembled Joints
Description
The Disassembled Revolute block represents a single rotational degree of
freedom (DoF) along a pair of specified misaligned axes between two bodies.
SimMechanics automatically assembles (aligns) the rotation axes at
simulation start.
Represent a disassembled revolute joint with one rotational degree of freedom
about misaligned axes
This block is disassembled: you must connect each side of the Joint block to a
Body block at a Body coordinate system (CS) point, but the origins of these
Body CSs do not need to be spatially collocated points or lie along a joint axis.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies. The disassembled joint axes are associated with the base and follower
Bodies, respectively.
You can only use a disassembled Joint block to close a loop. One loop must have
no more than one disassembled joint. You cannot connect a Disassembled Joint
to an Actuator or Sensor block.
Disassembled revolute axes of follower (blue) and base (red)
6-68
mech_pdf.book Page 69 Tuesday, June 18, 2002 1:27 PM
Disassembled Revolute
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Disassembled
Revolute block to a Body CS Port on a Body, this parameter is
automatically reset to the name of this Body CS. See the following
“Disassembled Revolute base and follower Body Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the Disassembled
Revolute block to a Body CS Port on a Body, this parameter is
automatically reset to the name of this Body CS. See the following
“Disassembled Revolute base and follower Body Connector Ports” figure.
6-69
mech_pdf.book Page 70 Tuesday, June 18, 2002 1:27 PM
Disassembled Revolute
Base Body Connector Port
Follower Body Connector Port
Disassembled Revolute base and follower Body Connector Ports
Parameters
There is one Axes panel.
The entries on the Axes pane are required. They specify the directions of the
two misaligned axes of the rotational DoF that the Disassembled Revolute
represents.
Name
This column automatically displays the names of the two misaligned
rotation axes attached to base and follower bodies, respectively.
Axis of rotation [x y z]
Enter here as two three-component vectors the two misaligned directional
axes about which the base and follower bodies respectively can rotate. The
default vectors are [1 0 0] and [0 1 0], respectively. The axes are directed
vectors whose overall signs matter.
Reference csys
Using the pull-down menu, choose the coordinate systems (World, the base
Body CS, or the follower Body CS) whose coordinate axes the two vector
axes of rotation are oriented with respect to. The defaults are WORLD.
6-70
mech_pdf.book Page 71 Tuesday, June 18, 2002 1:27 PM
Disassembled Revolute
See Also
Disassembled Cylindrical, Disassembled Prismatic, Disassembled Spherical,
Revolute
See “Modeling Joints” on page 3-17 for more on representing DoFs with
Disassembled Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closing loops with disassembled joints.
6-71
mech_pdf.book Page 72 Tuesday, June 18, 2002 1:27 PM
Disassembled Spherical
Purpose
6Disassembled Spherical
Library
Joints/Disassembled Joints
Description
The Disassembled Spherical block represents three rotational degrees of
freedom (DoF) about a pair of specified dislocated pivots at the two bodies,
separated “ball-in-socket” joints. SimMechanics automatically assembles
(collocates) the spherical pivots at simulation start.
Represent a disassembled spherical joint with three rotational degrees of
freedom about dislocated pivots
Two rotational DoFs specify a directional axis, and a third rotational DoF
specifies rotation about that directional axis. The sense of each rotational DoF
is defined by the right-hand rule. Unlike the Gimbal block, the Disassembled
Spherical block cannot become singular.
This block is disassembled: you must connect each side of the Joint block to a
Body block at a Body coordinate system (CS) point, but the origins of these
Body CSs (the dislocated pivots) do not need to be spatially collocated points.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies. The disassembled joint pivots are associated with the base and follower
Bodies, respectively.
You can only use a disassembled Joint block to close a loop. One loop must have
no more than one disassembled joint. You cannot connect a Disassembled Joint
to an Actuator or Sensor block.
Disassembled spherical pivots of follower (blue) and base (red)
6-72
mech_pdf.book Page 73 Tuesday, June 18, 2002 1:27 PM
Disassembled Spherical
Dialog Box and
Parameters
The dialog box has one active area, Connection parameters. The other area,
Parameters, is inactive.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Disassembled
Spherical block to a Body CS Port on a Body, this parameter is
automatically reset to the name of this Body CS. See the following
“Disassembled Spherical base and follower Body Connector Ports” figure.
Current follower
When you connect the base (F) Connector Port on the Disassembled
Spherical block to a Body CS Port on a Body, this parameter is
automatically reset to the name of this Body CS. See the following
“Disassembled Spherical base and follower Body Connector Ports” figure.
6-73
mech_pdf.book Page 74 Tuesday, June 18, 2002 1:27 PM
Disassembled Spherical
Base Body Connector Port
Follower Body Connector Port
Disassembled Spherical base and follower Body Connector Ports
Parameters
There is one Axes panel.
The entries on the Axes pane are automatic. They specify the dislocated pivot
points of the spherical DoF that the Disassembled Spherical represents.
Name
This column automatically displays the names of the two dislocated pivot
points attached to base and follower bodies, respectively.
Reference orientation [x y z]
This field is not active.
Reference csys
This field is not active.
See Also
Disassembled Cylindrical, Disassembled Prismatic, Disassembled Revolute,
Gimbal, Spherical
See “Modeling Joints” on page 3-17 for more on representing DoFs with
Disassembled Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closing loops with disassembled joints.
6-74
mech_pdf.book Page 75 Tuesday, June 18, 2002 1:27 PM
Distance Driver
Purpose
6Distance Driver
Library
Constraints & Drivers
Description
The Distance Driver block drives the distance between the origins of two Body
coordinate system (CS) as a function of time that you specify. This function
must always remain nonnegative during the simulation.
Specify the distance between two Body CS origins as a function of time
Let r1, r2 be the vector positions of the origins of CS1 on one Body, CS2 on the
other Body. The Distance Driver specifies the scalar distance |r1 - r2| between
these points as a function of time:
|r1 - r2| = f(t).
You connect the Distance Driver to a Driver Actuator block.
The Simulink input signal into the Driver Actuator specifies the
time-dependent driving function f(t) and its first two derivatives, as well as
their units. If you do not actuate Distance Driver, this block acts as a
time-independent constraint that freezes the distance between the two Body
CSs at its initial value during the simulation.
Drivers restrict relative degrees of freedom (DoFs) between a pair of bodies as
specified functions of time. Locally in a machine, they replace a Joint as the
expression of the DoFs. Globally, Driver blocks must occur topologically in
closed loops. Like Bodies connected to a Joint, the two Bodies connected to a
Drivers are ordered as base and follower, fixing the direction of relative motion.
You can also connect a Driver block to a Constraint & Driver Sensor, which
measures the reaction forces/torques between the driven bodies.
6-75
mech_pdf.book Page 76 Tuesday, June 18, 2002 1:27 PM
Distance Driver
Dialog Box and
Parameters
The dialog box has one active area, Connection parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Distance Driver block
to a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “Distance Driver base and follower
Body Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the Distance Driver
block to a Body CS Port on a Body, this parameter is automatically reset to
the name of this Body CS. See the following “Distance Driver base and
follower Body Connector Ports” figure.
Number of sensor/actuator ports
Using this spinner menu, you can set the number of extra Connector Ports
needed for connecting Driver Actuator and Constraint & Driver Sensor
blocks to this Driver. The default is 0.
To activate the Driver, connect a Driver Actuator.
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.
6-76
mech_pdf.book Page 77 Tuesday, June 18, 2002 1:27 PM
Distance Driver
Base Body Connector Port
Follower Body Connector Port
Distance Driver base and follower Body Connector Ports
See Also
Constraint & Driver Sensor, Driver Actuator, Linear Driver, Weld
See “Modeling Constraints and Drivers” on page 3-34 for more on restricting
DoFs with Drivers.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on using drivers in closed loops.
See “Creating Constraints and Drivers” on page 6-5.
6-77
mech_pdf.book Page 78 Tuesday, June 18, 2002 1:27 PM
Driver Actuator
Purpose
6Driver Actuator
Library
Sensors & Actuators
Description
The Driver Actuator block actuates a Driver block connected between a pair of
bodies. You connect the block to the Driver block connected between the Bodies.
The Driver block represents a time-dependent (rheonomic) constraint on a
relative degree of freedom (DoF) between the two bodies. A Driver requires a
time-dependent function to specify the relative position, velocity, and
acceleration of the connected Bodies. The output of the Driver Actuator is this
time-dependent function f(t) and its first two derivatives.
Apply relative motion between a pair of constrained bodies through a driver
You specify these three functions as a bundled Simulink input signal. This
signal can be any Simulink signal, including a signal feedback from a Sensor
block, satisfying these conditions:
• The signal must consist of three bundled components.
- Exception: The Velocity Driver requires two bundled components.
• The three components must be ordered (f(t), df(t)/dt, d2f(t)/dt2).
- Exception: The Velocity Driver requires a function and its derivative (f(t),
df(t)/dt).
• Each successive signal component must be the time derivative of the
previous component.
• The specific meaning of f(t) depends on the connected Driver block being
actuated. Select the specific Driver block for details.
Linear Motions
Angular Motions
Distance Driver
Angle Driver
Linear Driver
Velocity Driver
The Driver connects a base (B) and a follower (F) Body. The base–follower
sequence determines the sense of the actuation signal. The inport is the
Simulink input signal. The output is the Connector Port you connect to the
Driver block you want to actuate.
6-78
mech_pdf.book Page 79 Tuesday, June 18, 2002 1:27 PM
Driver Actuator
Note You do not have to connect a Driver block to a Driver Actuator. If you do
not actuate a Driver, the Driver block acts as a time-independent constraint
that freezes the driven relative DoF between the Bodies at its initial value
during the simulation.
Dialog Box and
Parameters
The dialog box has one active area, Actuation.
6-79
mech_pdf.book Page 80 Tuesday, June 18, 2002 1:27 PM
Driver Actuator
Actuation
Here is a Driver Actuator connected to a Distance Driver, which connects two
Bodies:
Driver actuated
Simulink signal in
You must add an Actuator port (Connector Port) to the Driver block to connect
the Driver Actuator to it. The base (B)–follower (F) Body sequence on the two
sides of the Driver determines the sense of the Driver Actuator data.
The Driver Actuator drives the relative motion between the two Bodies
connected to the Driver. The nature of the connected Driver block determines
the exact meaning of the actuation data, including the choice of units.
Position
In the pull-down menu, choose the units of the actuating f(t) you apply to
the relative motion of the bodies.
If the Driver Actuator is connected to a Velocity Driver, this field does not
appear.
Velocity
In the pull-down menu, choose the units of the actuating df(t)/dt you apply
to the relative motion of the bodies.
If the Driver Actuator is connected to a Velocity Driver, this field refers to
f(t).
Acceleration
In the pull-down menu, choose the units of the actuating d2f(t)/dt2 you
apply to the relative motion of the bodies.
6-80
mech_pdf.book Page 81 Tuesday, June 18, 2002 1:27 PM
Driver Actuator
If the Driver Actuator is connected to a Velocity Driver, this field refers to
df(t)/dt.
See Also
Body Actuator, Constraint & Driver Sensor, Joint Actuator
See “Creating Constraints and Drivers” on page 6-5.
In Simulink, see the Signal Routing Library and the Sources Library.
6-81
mech_pdf.book Page 82 Tuesday, June 18, 2002 1:27 PM
Gear Constraint
Purpose
6Gear Constraint
Library
Constraints & Drivers
Description
The two Bodies connected by a Gear Constraint block are each restricted to
turn relative to another along pitch circles centered at each body. The pitch
circle centers are the origins of the Body coordinate systems (CSs) at which the
Gear Constraint block is connected on either side. The pitch circles are tangent
at one contact point.
Constrain the rotational motion of two bodies to move along tangent pitch
circles
Let r1, r2 be the radii of the two pitch circles and ω1, ω2 the angular velocities
of the two bodies. The Gear Constraint requires that:
ω1 r 1 = ω2 r 2 .
You specify the radii r1, r2 of the pitch circles.
You must also connect the two Bodies connected by a Gear Constraint to a
third, carrier Body by Revolute or Cylindrical Joints. The constrained pair of
Bodies rotate relative to one another about distinct rotational axes. These axes
do not have to be parallel.
Constraints restrict relative degrees of freedom (DoFs) between a pair of
bodies. Locally in a machine, they replace a Joint as the expression of the DoFs.
Globally, Constraint blocks must occur topologically in closed loops. Like
Bodies connected to a Joint, the two Bodies connected to a Constraint are
ordered as base and follower, fixing the direction of relative motion.
You can connect a Constraint block to a Constraint & Driver Sensor, but not to
an Actuator. The Constraint & Driver Sensor measures the reaction
forces/torques between the constrained bodies.
6-82
mech_pdf.book Page 83 Tuesday, June 18, 2002 1:27 PM
Gear Constraint
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Gear Constraint
block to a Body CS Port on a Body, this parameter is automatically reset to
the name of this Body CS. See the following “Gear Constraint base and
follower Body Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the Gear Constraint
block to a Body CS Port on a Body, this parameter is automatically reset to
the name of this Body CS. See the following “Gear Constraint base and
follower Body Connector Ports” figure.
6-83
mech_pdf.book Page 84 Tuesday, June 18, 2002 1:27 PM
Gear Constraint
Number of sensor ports
Using this spinner menu, you can set the number of extra Connector Ports
needed for connecting Constraint & Driver Sensor blocks to this
Constraint. The default is 0.
The base (B)–follower (F) Body sequence determines the sense of positive
motion. Positive rotation is the follower rotating in the right-handed sense
about the rotation axis.
Base Body Connector Port
Follower Body Connector Port
Gear Constraint base and follower Body Connector Ports
A simple example of a valid part of a model with a Gear Constraint:
6-84
mech_pdf.book Page 85 Tuesday, June 18, 2002 1:27 PM
Gear Constraint
The Body CS origins [email protected] and [email protected] must be separated and
oriented in such a way that the gear pitch circles are in contact and tangent at
one point.
Parameters
Pitch circle located at base
Enter Radius and Units for the pitch circle centered at base Body CS. The
defaults are 1 and m (meters).
Pitch circle located at follower
Enter Radius and Units for the pitch circle centered at follower Body CS.
The defaults are 1 and m (meters).
See Also
Constraint & Driver Sensor, Cylindrical, Revolute
See “Modeling Constraints and Drivers” on page 3-34 for more on restricting
DoFs with Constraints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on using constraints in closed loops.
See “Creating Constraints and Drivers” on page 6-5.
6-85
mech_pdf.book Page 86 Tuesday, June 18, 2002 1:27 PM
Gimbal
Purpose
6Gimbal
Library
Joints
Description
The Gimbal block represents a composite joint with three rotational degrees of
freedom (DoFs) as three revolute primitives. There are no constraints among
the primitives.
Represent a composite joint with three rotational DoFs
Caution A joint with three revolute primitives becomes singular if two or
three of the rotation axes become parallel (“gimbal lock”). The simulation
stops with an error in this case.
You must connect each side of the Joint block to a Body block at a Body
coordinate system (CS) point. The Gimbal block is assembled: the origins of
these Body CSs must lie along the primitive axes, and the Body CS origins on
either side of the Joint must be spatially collocated points, to within assembly
tolerances.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
6-86
mech_pdf.book Page 87 Tuesday, June 18, 2002 1:27 PM
Gimbal
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify reference CSs to define the directions of
the joint axes.
6-87
mech_pdf.book Page 88 Tuesday, June 18, 2002 1:27 PM
Gimbal
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Gimbal block to a
Body CS Port on a Body, this parameter is automatically reset to the name
of this Body CS. See the following “Gimbal base and follower Body
Connector Ports” figure.
The base Body is automatically connected to the first joint primitive R1 in
the primitive list in Parameters.
Current follower
When you connect the follower (F) Connector Port on the Gimbal block to a
Body CS Port on a Body, this parameter is automatically reset to the name
of this Body CS. See the following “Gimbal base and follower Body
Connector Ports” figure.
6-88
mech_pdf.book Page 89 Tuesday, June 18, 2002 1:27 PM
Gimbal
The follower Body is automatically connected to the last joint primitive R3
in the primitive list in Parameters.
Number of sensor/actuator ports
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.
The motion of revolute primitives is specified in angular units.
The base (B)–follower (F) Body sequence determines the sense of positive
motion. Positive rotation is the follower moving around the rotational axis
following the right-hand rule.
Base Body Connector Port
Follower Body Connector Port
Gimbal base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are required. Each DoF primitive in Gimbal has
an entry line. These lines specify the direction of the axes of action of the DoFs
that the Gimbal represents.
Name - Primitive
The primitive list states the names and types of joint primitives that make
up the Gimbal block: revolute primitives R1, R2, R3.
Axis of action [x y z]
Enter here as a three-component vector the directional axes defining the
allowed motions of these primitives and their corresponding DoFs:
- Revolute: axis of rotation
The default vectors are shown in the dialog box above. The axis is a directed
vector whose overall sign matters.
To prevent singularities and simulation errors, no two of the revolute axes
can be parallel.
6-89
mech_pdf.book Page 90 Tuesday, June 18, 2002 1:27 PM
Gimbal
Reference csys
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 WORLD.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Revolute, Spherical
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-90
mech_pdf.book Page 91 Tuesday, June 18, 2002 1:27 PM
Ground
Purpose
6Ground
Library
Bodies
Description
A Ground block represents an immobile ground point at rest in the absolute
inertial World reference frame (RF). Connecting it to a Joint prevents one side
of that Joint from moving.
Represent an immobile point at rest in World
Ground is a type of Body, but you can connect only one side of a Ground to a
Joint block. A Ground block automatically carries a Grounded coordinate
system (CS). This Grounded CS is inertial, at rest in the World reference frame,
with coordinate axes parallel to the World axes:
+x points right
+y points up (gravity in −y direction)
+z points out of the screen, in three dimensions
But a Ground’s origin is the ground point, which in general is shifted with
respect to the World origin.
Every valid SimMechanics model must have at least one Ground block.
Multiple Ground blocks represent different fixed points in the global inertial
World. In the topology of a machine model, multiple Ground blocks function as
a single body.
You cannot connect a Sensor or Actuator to a Ground block, because the ground
point cannot be moved.
Dialog Box and
Parameters
6-91
mech_pdf.book Page 92 Tuesday, June 18, 2002 1:27 PM
Ground
Grounded point
Enter in this field the position of the ground point translated from the
origin of the World CS. The position is specified as a translation vector
(x,y,z), with components projected on to the fixed World CS axes. Set the
Ground position units using the pull-down menu to the right. The defaults
are [0 0 0] and m (meters).
See Also
Body
See “Creating Body CS Ports” on page 3-16 and “Modeling Joints” on
page 3-17for more on setting up Grounds.
6-92
mech_pdf.book Page 93 Tuesday, June 18, 2002 1:27 PM
In-Plane
Purpose
6In-Plane
Library
Joints
Description
The In-Plane block represents a composite joint with two translational degrees
of freedom (DoFs) as two prismatic primitives. There are no constraints among
the primitives.
Represent a composite joint with two translational DoFs
Caution A joint with two prismatic primitives becomes singular if the two
translation axes become parallel. The simulation stops with an error in this
case.
You must connect each side of the Joint block to a Body block at a Body
coordinate system (CS) point. The In-Plane block is assembled: the origins of
these Body CSs must lie along the primitive axes, within assembly tolerances.
But the Body CS origins on either side of the Joint do not have to be spatially
collocated points.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
6-93
mech_pdf.book Page 94 Tuesday, June 18, 2002 1:27 PM
In-Plane
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify reference CSs to define the directions of
the joint axes.
6-94
mech_pdf.book Page 95 Tuesday, June 18, 2002 1:27 PM
In-Plane
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the In-Plane block to a
Body CS Port on a Body, this parameter is automatically reset to the name
of this Body CS. See the following “In-Plane base and follower Body
Connector Ports” figure.
The base Body is automatically connected to the first joint primitive P1 in
the primitive list in Parameters.
Current follower
When you connect the follower (F) Connector Port on the In-Plane block to
a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “In-Plane base and follower Body
Connector Ports” figure.
6-95
mech_pdf.book Page 96 Tuesday, June 18, 2002 1:27 PM
In-Plane
The follower Body is automatically connected to the last joint primitive P2
in the primitive list in Parameters.
Number of sensor/actuator ports
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.
The motion of prismatic primitives is specified in linear units.
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.
Base Body Connector Port
Follower Body Connector Port
In-Plane base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are required. Each DoF primitive in In-Plane has
an entry line. These lines specify the direction of the axes of action of the DoFs
that the In-Plane represents.
Name - Primitive
The primitive list states the names and types of joint primitives that make
up the Bushing block: prismatic primitives P1, P2.
Axis of action [x y z]
Enter here as a three-component vector the directional axes defining the
allowed motions of these primitives and their corresponding DoFs:
- Prismatic: axis of translation
The default vectors are shown in the dialog box above. The axis is a directed
vector whose overall sign matters.
To prevent singularities and simulation errors, the two prismatic axes
cannot be parallel.
6-96
mech_pdf.book Page 97 Tuesday, June 18, 2002 1:27 PM
In-Plane
Reference csys
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 WORLD.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Planar, Prismatic
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-97
mech_pdf.book Page 98 Tuesday, June 18, 2002 1:27 PM
Joint Actuator
Purpose
6Joint Actuator
Library
Sensors & Actuators
Description
A joint between two bodies represents relative degrees of freedom (DoFs)
between the bodies. The Joint Actuator block actuates a Joint block connected
between two Bodies with one of these signals:
Apply force/torque or motion to a joint primitive
• A generalized force:
- Force for translational motion along a prismatic joint primitive
- Torque for rotational motion about a revolute joint primitive
• A motion:
- Translational motion for a prismatic joint primitive, in terms of linear
position, velocity, and acceleration. The velocity signal must be the
derivative of the position signal, and the acceleration the derivative of the
velocity.
- Rotational motion for a revolute joint primitive, in terms of angular
position, velocity, and acceleration. The angular velocity signal must be
the derivative of the angle signal, and the angular acceleration the
derivative of the angular velocity.
The generalized force or the motion is a function of time specified by a Simulink
input signal. This signal can be any Simulink signal, including a signal
feedback from a Sensor block.
The Joint Actuator applies the actuation signal along/about the joint axis in the
reference coordinate system (CS) specified for that joint primitive in the Joint’s
dialog box. The Joint connects a base and a follower Body. The base–follower
sequence determines the sense of the actuation signal.
The inport is the Simulink input signal. The output is the Connector Port you
connect to the Joint block you want to actuate. A Joint Actuator block actuates
one joint primitive at a time:
• A primitive Joint (Prismatic or Revolute) has only one primitive within the
Joint to actuate.
• A composite Joint has multiple joint primitives within, and you must choose
which of those primitives to actuate with the Joint Actuator.
6-98
mech_pdf.book Page 99 Tuesday, June 18, 2002 1:27 PM
Joint Actuator
You cannot connect a Joint Actuator to a Spherical or spherical primitive.
Dialog Box and
Parameters
The dialog box has one active area, Actuation.
Actuation
Connected to primitive
In the pull-down menu, choose the joint primitive within the Joint that you
want to actuate with the Joint Actuator. A primitive Joint block has only
one joint primitive.
You cannot connect a Joint Actuator to a spherical primitive.
If the Joint Actuator is not connected to a Joint block, this menu shows only
Unknown.
6-99
mech_pdf.book Page 100 Tuesday, June 18, 2002 1:27 PM
Joint Actuator
Here is a Joint Actuator connected to a Prismatic that connects two Bodies:
Joint actuated
Simulink signal in
You must add an Actuator port (Connector Port) to the Joint block to connect
the Joint Actuator to it. The base (B)–follower (F) Body sequence on the two
sides of the Joint determines the sense of the Joint Actuator data.
Using the radio buttons, you can toggle between the two types of actuation,
Generalized forces and Motion.
Generalized
Forces
This option interprets the actuation signal as a force or a torque between the
Bodies connected by the Joint block you are actuating.
Apply torque (revolute only)
In the pull-down menu, choose units for the actuation torque. The default
is N-m (Newton-meters). This choice is valid only if you connect this
Actuator block to a revolute primitive.
The Simulink input is a 1-component signal.
6-100
mech_pdf.book Page 101 Tuesday, June 18, 2002 1:27 PM
Joint Actuator
Apply force (prismatic only)
In the pull-down menu, choose units for the actuation force. The default is
N (Newtons). This choice is valid only if you connect this Actuator block to
a prismatic primitive.
The Simulink input is a 1-component signal.
Motion
This option interprets the actuation signal as a motion of the joint primitive to
which you connect the Joint Actuator.
Apply translational motion (prismatic only)
In the pull-down menus, choose units for the linear actuation Position,
Velocity, and Acceleration. The defaults are m (meters), m/s
(meters/second), and m/s2 (meters/second2), respectively.
The Simulink input is a bundled 3-component signal with components in
the order shown in the dialog box.
Apply rotational motion (revolute only)
In the pull-down menus, choose units for the angular actuation Angle,
Angular Velocity, and Angular Acceleration. The defaults are deg
(degrees), deg/s (degrees/second), and deg/s2 (degrees/second2),
respectively.
The Simulink input is a bundled 3-component signal with components in
the order shown in the dialog box.
6-101
mech_pdf.book Page 102 Tuesday, June 18, 2002 1:27 PM
Joint Actuator
See Also
Joint Initial Condition Actuator, Joint Sensor, Joint Stiction Actuator,
Prismatic, Revolute
See “Creating Joints” on page 6-3.
In Simulink, see the Signal Routing Library and the Sources Library.
6-102
mech_pdf.book Page 103 Tuesday, June 18, 2002 1:27 PM
Joint Initial Condition Actuator
Purpose
6Joint Initial Condition Actuator
Library
Sensors & Actuators
Description
The Joint Initial Condition Actuator block supplies a joint primitive in a Joint
block with initial value data. The initial values are the position and velocity of
that joint primitive and fully specify the initial state of motion (initial
kinematic state) of that primitive.
Apply initial position and velocity to a joint primitive before starting
simulation
When you build your machine, the geometric configuration implicitly specifies
the initial positions/angles of bodies relative to one another and to World. The
Ground, Body, and Joint layout process, however, only specifies initial
coordinates (degrees of freedom), not their corresponding velocities. Starting a
simulation in this state implicitly sets all initial velocities to zero. You can set
the full initial kinematic state, both positions and velocities, of all joint
primitives by using the Joint Initial Condition Actuator block.
You can set initial position and velocity for two primitive types:
• Translational initial conditions for a prismatic primitive, in terms of linear
position and velocity
• Rotational initial conditions for a revolute primitive, in terms of angular
position and velocity
This block actuates one joint primitive at a time.
The Joint Initial Condition Actuator applies the initial state along/about the
joint axis in the reference coordinate system (CS) specified for that joint
primitive in the Joint’s dialog box. The Joint connects a base and a follower
Body. The base–follower sequence determines the sense of the actuation signal.
The output is the Connector Port you connect to the Joint block you want to
actuate. You set the initial linear or angular position and velocity in the block’s
dialog box, so there is no inport or input signal.
You cannot connect a Joint Initial Condition Actuator to a Spherical or
spherical primitive.
6-103
mech_pdf.book Page 104 Tuesday, June 18, 2002 1:27 PM
Joint Initial Condition Actuator
Dialog Box and
Parameters
The dialog box has one active area, Actuation.
Actuation
Connected to primitive
In the pull-down menu, choose the joint primitives within the Joint that
you want to actuate with the Joint Initial Condition Actuator. A primitive
Joint block has only one joint primitive.
You cannot connect a Joint Initial Condition Actuator to a spherical
primitive.
If the Joint Initial Condition Actuator is not connected to a Joint block, this
menu shows only Unknown.
Here is a Joint Initial Condition Actuator connected to a Prismatic, which
connects two Bodies:
Joint actuated with initial conditions
6-104
mech_pdf.book Page 105 Tuesday, June 18, 2002 1:27 PM
Joint Initial Condition Actuator
You must add an Actuator port (Connector Port) to the Joint block to connect
the Joint Initial Condition Actuator to it. The base (B)–follower (F) Body
sequence on the two sides of the Joint determines the sense of the Joint Initial
Condition Actuator data.
Initial position
In this field, set the initial linear or angular position, depending on
whether this Actuator is connected to a prismatic or revolute primitive. The
default is 0.0.
In the pull-down menu, choose the units for the initial position, linear or
angular. The default for linear units is m (meters); for angular units, the
default is deg (degrees).
Initial velocity
In this field, set the initial linear or angular velocity, depending on whether
this Actuator is connected to a prismatic or revolute primitive. The default
is 0.0.
In the pull-down menu, choose the units for the initial velocity, linear or
angular. The default for linear units is m/s (meters/second); for angular
units, the default is deg/s (degrees/second).
See Also
Joint Actuator, Joint Sensor, Joint Stiction Actuator, Prismatic, Revolute
See “Using JICA Blocks” on page 3-48for setting general initial conditions
(positions and velocities) of DoFs in a machine.
See “Creating Joints” on page 6-3.
In Simulink, see the Signal Routing Library and the Sources Library.
6-105
mech_pdf.book Page 106 Tuesday, June 18, 2002 1:27 PM
Joint Sensor
Purpose
6Joint Sensor
Library
Sensors & Actuators
Description
The Joint Sensor block measures the position, velocity, and/or acceleration of a
joint primitive in a Joint block.
Measure the motion and force/torque of a joint primitive
The Joint Sensor measures the motion along/about the joint axis (or about the
pivot point for a spherical primitive) in the reference coordinate system (CS)
specified for that joint primitive in the Joint’s dialog box. The Joint connects a
base and a follower Body. The base–follower sequence determines the sense of
the motion.
Depending on the joint primitive being sensed, you measure one of these
motion types:
• Translational motion for a prismatic joint primitive, in terms of linear
position, velocity, and/or acceleration
• Rotational motion for a revolute joint primitive, in terms of angular position,
velocity, and/or acceleration
• Spherical motion for a spherical joint primitive, in terms of a quaternion,
quaternion derivative, and/or quaternion second derivative
The input is the Connector Port connected to the Joint being sensed. The
outport is a set of Simulink signals or one bundled Simulink signal of the
position, velocity, and/or acceleration of the joint primitive.
A Joint Sensor block measures one joint primitive at a time:
• A primitive Joint (Prismatic or Revolute) has only one primitive within the
Joint to sense.
• A composite Joint has multiple joint primitives within, and you must choose
which primitive to sense with the Joint Sensor.
6-106
mech_pdf.book Page 107 Tuesday, June 18, 2002 1:27 PM
Joint Sensor
Dialog Box and
Parameters
The dialog box has one active area, Measurements.
Measurements
Connected to primitive
In the pull-down menu, choose the joint primitive within the Joint that you
want to measure with the Joint Sensor. A primitive Joint block has only
one joint primitive.
6-107
mech_pdf.book Page 108 Tuesday, June 18, 2002 1:27 PM
Joint Sensor
If the Joint Sensor is not connected to a Joint block, this menu shows only
Unknown.
Here is a Joint Sensor connected to a Prismatic that connects two Bodies:
Joint measured
Simulink signal out
You must add an Sensor port (Connector Port) to the Joint block to connect the
Joint Sensor to it. The base (B)–follower (F) Body sequence on the two sides of
the Joint determines the sense of the Joint Sensor data.
The Measurements pane you see in the Joint Sensor dialog depends on the
type of joint primitive to which you connect the Joint Sensor.
Prismatic joint primitive (P)
Select the check box(es) for each of the possible measurements you want to
make: Position, Velocity, Acceleration, Computed Force, Reaction
Torque, and Reaction Force.
The computed force is that force along the prismatic axis which reproduces
the follower motion with respect to base.
The reaction force and/or torque is (are) 3-component vector(s) of the force
and/or torque that the joint primitive transfers to the base or follower Body.
In the Reactions measured on pull-down menu, choose which Body the
reaction force and/or torque vector(s) is (are) measured on, Base or
Follower. The default is Base. Also choose With respect to coordinate
system for the reaction torque and/or force. The default is Absolute
(World).
6-108
mech_pdf.book Page 109 Tuesday, June 18, 2002 1:27 PM
Joint Sensor
In the pull-down menus, choose the units for each of the measurements you
want. The defaults are m (meters), m/s (meters/second), m/s2
(meters/second2), N (Newtons), and N-m (Newton-meters), respectively, for
Position, Velocity, Acceleration, Force, and Torque.
The bundled Simulink output signal for a prismatic primitive has these
measurements ordered in a row vector. Unselected components are removed
from the vector signal:
Position
Velocity
Acceleration
Computed
Force
Reaction Torque
(3-vector)
Reaction Force
(3-vector)
Revolute joint primitive (R)
Select the check box(es) for each of the possible measurements you want to
make: Angle, Angular velocity, Angular acceleration, Computed
Torque, Reaction Torque, and Reaction Force.
The computed torque is that torque about the revolute axis which
reproduces the follower motion with respect to base.
The reaction force and/or torque is (are) 3-component vector(s) of the force
and/or torque that the joint primitive transfers to the base or follower Body.
6-109
mech_pdf.book Page 110 Tuesday, June 18, 2002 1:27 PM
Joint Sensor
In the Reactions measured on pull-down menu, choose which Body the
reaction force and/or torque vector(s) is (are) measured on, Base or
Follower. The default is Base. Also choose With respect to coordinate
system for the reaction torque and/or force. The default is Absolute
(World).
In the pull-down menus, choose the units for each of the measurements you
want. The defaults are m (meters), m/s (meters/second), m/s2
(meters/second2), N (Newtons), and N-m (Newton-meters), respectively, for
Position, Velocity, Acceleration, Force, and Torque.
Note The absolute angle of revolute motion is mapped on to the interval
(−180o, +180o] degrees or (−π,+π] radians.
6-110
mech_pdf.book Page 111 Tuesday, June 18, 2002 1:27 PM
Joint Sensor
The bundled Simulink output signal for a revolute primitive has these
measurements ordered in a row vector. Unselected components are removed
from the vector signal:
Angle
Angular
Velocity
Angular
Acceleration
Computed
Torque
Reaction Force
(3-vector)
Reaction Torque
(3-vector)
Spherical joint primitive (S)
Select the check box(es) for each of the possible measurements you want to
make: Quaternion, Quaternion, derivative, and Quaternion, second
derivative, Reaction Torque, and Reaction Force.
The reaction force and/or torque is (are) 3-component vector(s) of the force
and/or torque that the joint primitive transfers to the base or follower Body.
In the Reactions measured on pull-down menu, choose which Body the
reaction force and/or torque vector(s) is (are) measured on, Base or
Follower. The default is Base. Also choose With respect to coordinate
system for the reaction torque and/or force. The default is Absolute
(World).
The quaternion is dimensionless. The time unit for the derivatives is
seconds. Each quaternion measurement is a 4-component row vector.
6-111
mech_pdf.book Page 112 Tuesday, June 18, 2002 1:27 PM
Joint Sensor
The bundled Simulink output signal for a spherical primitive has these
quaternion measurements ordered into a larger row vector. Unselected
components are removed from the vector signal:
Quaternion
(4-vector)
Quaternion,
derivative
(4-vector)
Quaternion,
second derivative
(4-vector)
Reaction Torque
(3-vector)
Reaction Force
(3-vector)
Output selected parameters as one signal
Select this check box to convert all the output signals into a single bundled
signal. The default is selected. If you unselect it, the Joint Sensor block will
grow as many Simulink outports as there are active signals selected, in the
same order top to bottom, in the dialog box.
If the check box is selected, the Simulink signal out has all the active
signals ordered into a single row vector. The order and type of the signal
components depend on the joint primitive, as listed in the Simulink signal
tables above.
See Also
Body Sensor, Constraint & Driver Sensor, Joint Actuator, Joint Initial
Condition Actuator, Joint Stiction Actuator, Prismatic, Revolute, Spherical
See “Creating Joints” on page 6-3.
In Simulink, see the Signal Routing Library and the Sinks Library.
6-112
mech_pdf.book Page 113 Tuesday, June 18, 2002 1:27 PM
Joint Stiction Actuator
Purpose
6Joint Stiction Actuator
Library
Sensors & Actuators
Description
The Joint Stiction Actuator block applies stiction (classical friction) to a
prismatic or revolute joint primitive. The stiction is regulated by an idealized
model whose parameters you specify. (See “Stiction Theory” following.) The
Joint Stiction Actuator applies stiction to the joint primitive as a relative
force/torque between the joint’s connected Bodies. The bodies can experience
additional forces independent of the joint.
Apply classical friction to a joint primitive
The inports are Simulink signals. The output is a Connector Port. You cannot
connect a Joint Stiction Actuator to a Spherical block or spherical primitive.
Restrictions on simultaneous actuators and sensors:
• You cannot actuate a joint primitive simultaneously with a Joint Stiction
Actuator and a Joint Actuator. But with the Joint Stiction Actuator inport
External Actuation, you can apply to the joint primitive an external
(nonfrictional) force/torque actuation signal equivalent to applying a Joint
Actuator.
• You can simultaneously actuate a joint primitive with a Joint Stiction
Actuator and a Joint Initial Condition Actuator.
• You can also simultaneously actuate a joint primitive with a Joint Stiction
Actuator and measure the force/torque along/around the joint primitive with
a Joint Sensor.
6-113
mech_pdf.book Page 114 Tuesday, June 18, 2002 1:27 PM
Joint Stiction Actuator
Dialog Box and
Parameters
The dialog box has one active area, Stiction actuation.
Connected to primitive
In the pull-down menu, choose the joint primitive within the Joint which
you want to actuate with the Joint Stiction Actuator. A primitive Joint
block has only one joint primitive.
You cannot connect a Joint Stiction Actuator to a spherical primitive.
If the Joint Stiction Actuator is not connected to a Joint block, this menu
shows only Unknown.
External force units
In the pull-down menu, choose units for the external nonfrictional
force/torque Fext. The default is N (Newtons) if connected to a prismatic
primitive and N-m (Newton-meters) if connected to a revolute primitive.
Kinetic friction units
In the pull-down menu, choose units for the kinetic friction force/torque FK.
The default is N (Newtons) if connected to a prismatic primitive and N-m
(Newton-meters) if connected to a revolute primitive.
Locking velocity threshold (MKS-SI units)
Enter the positive relative velocity of the joint primitive below which the
joint locks by static friction. Above that velocity, the joint is unlocked. The
6-114
mech_pdf.book Page 115 Tuesday, June 18, 2002 1:27 PM
Joint Stiction Actuator
units must be MKS: for a prismatic primitive, meters/second; for a revolute
primitive, radians/second.
Summary of Joint Stiction Actuator inport signals
All the Simulink inports are 1-component signals. Here is an example of a
prismatic joint connected between two bodies and actuated with stiction:
External actuation
Kinetic friction
Static friction lower limit
Static friction upper limit
Static friction
Joint Stiction Actuator Simulink Inport Signals
Summary of Joint Stiction Actuator Input Signals
Simulink inport
Friction Model Symbol
Description
External
actuation
Fext
External nonfrictional
force/torque
Kinetic Friction
FK
Kinetic friction
Forward Stiction
Limit
F Sf < 0
Static friction lower limit
6-115
mech_pdf.book Page 116 Tuesday, June 18, 2002 1:27 PM
Joint Stiction Actuator
Summary of Joint Stiction Actuator Input Signals
Simulink inport
Friction Model Symbol
Description
Static Friction
Ftest
Static test friction
Reverse Stiction
Limit
F Sr > 0
Static friction upper
limit
Units
You specify units in the dialog box only for the external nonfrictional and
kinetic friction forces/torques, Fext and FK. These two friction signals are used
to integrate the physical motion of the joint and have physical significance in
the model context. So units are necessary for Fext and FK.
The other three signals are compared only to one another in the locking
condition FSf < Ftest < FSr. These friction signals are not used to integrate
motion and thus do not have units set in the dialog box. But they must have the
same implicit units for comparison.
Caution The threshold velocity vth must be set greater than the Absolute
tolerance in the Simulation Parameters dialog box to avoid a meaningless
threshold value.
Never set Absolute tolerance to auto if stiction actuators are present in a
model. A recommended setting is to make vth at least 10 times the Simulation
Parameters absolute tolerance.
See “Choosing Simulation Options” on page 4-2for a discussion of setting
simulation parameters.
Example
The mech_dpen_sticky model in the Demos library has two revolute joints
actuated with stiction. See “Joint Stiction Actuator Example: Mixed Static and
Kinetic Friction” on page 3-46.
Stiction Theory
Kinematics
v and a are the velocity and acceleration along/around a joint primitive axis.
These quantities are relative between the two bodies at the joint ends and
6-116
mech_pdf.book Page 117 Tuesday, June 18, 2002 1:27 PM
Joint Stiction Actuator
signed ± to indicate forward or reverse. The joint directionality is set by the
base (B)-follower (F) Body sequence of Bodies attached to the joint primitive
being actuated.
Continuous Motion
A joint subject to stiction, if unlocked, moves in continuous motion. During this
motion, you can apply two forces/torques at the joint primitive:
• a kinetic friction force/torque FK:
- FK < 0 retards forward motion
- FK > 0 retards reverse motion
• an external, non-frictional force/torque Fext
Discrete Modes: Locked, Wait, Unlocked
Besides its continuous motion state, a joint actuated by stiction has multiple
discrete modes. The Joint Stiction Actuator switches a joint primitive between
locked and unlocked modes via event detection. In one mode, the joint locks
rigidly; in the other, it moves with the kinetic friction and external,
nonfrictional forces/torques FK and Fext applied.
You specify the switching event by a two-condition threshold, constructed from
four user-specified inputs. (See the following “Discrete Joint Stiction Modes
and Transition Thresholds” figure).
• Joint unlocking threshold velocity vth > 0 via the block dialog box.
• Static friction limits FSf< 0 and FSr > 0 for forward and reverse motion, and
a static test friction Ftest, all three specified via Simulink signals. The static
test friction Ftest and forward/reverse limits FSf and FSr can be functions of
machine state and/or time.
The static test and kinetic frictions Ftest and FK and the threshold velocity vth
can be discontinuous, but should be physically sensible.
Locked Mode
In this mode, v and a of the joint are zero. The static computed force/torque FS
at the joint is internally computed to maintain this mode: Fext + FS + FF − FB
= 0. The forces/torques FB, FF are the forces/torques on the base and follower
Bodies apart from those forces/torques acting at the joint.
6-117
mech_pdf.book Page 118 Tuesday, June 18, 2002 1:27 PM
Joint Stiction Actuator
The mode remains locked as long as FSf < Ftest < FSr.
In most realistic friction models, you would set Ftest equal to the computed FS.
Wait Mode
If the static test friction Ftest leaves the static friction range [FSf, FSr], the joint
has passed the first threshold condition for unlocking, and the simulation
enters Wait Mode.
A search begins for a mode of this joint consistent with the modes of all other
joints. During the search, the net force/torque at the joint primitive F = Fext +
FK is computed, where FK is the kinetic friction. If a < 0, the search returns to
the Locked Mode. Once consistent modes for all joints are found, the simulation
restarts, integrating a to obtain v. When v exceeds vth, the second threshold
condition, the joint unlocks.
This mode prevents infinite cycling between Locked and Unlocked Modes,
although it can noticeably slow down the simulation. The mode search uses an
algebraic loop, which displays warnings at the MATLAB command line.
Unlocked Mode
In the Unlocked Mode, the joint primitive moves, actuated by the sum of the
external, non-frictional force/torque Fext and the kinetic friction FK. The joint
returns to the Locked Mode if Simulink detects v crossing zero.
6-118
mech_pdf.book Page 119 Tuesday, June 18, 2002 1:27 PM
Joint Stiction Actuator
Discrete Joint Stiction Modes and Transition Thresholds
See Also
Joint Actuator, Joint Initial Condition Actuator, Joint Sensor, Prismatic,
Revolute
See “Creating Joints” on page 6-3.
In Simulink, see the Signal Routing Library and the Sources Library, and Zero
Crossing Detection.
6-119
mech_pdf.book Page 120 Tuesday, June 18, 2002 1:27 PM
Linear Driver
Purpose
6Linear Driver
Library
Constraints & Drivers
Description
The Linear Driver block specifies a component of the vector difference of Body
coordinate system (CS) origins as a function of time.
Specify a component of the vector difference of two Body CS origins as a
function of time
Let r1, r2 be the vector positions of the origins of CS1 on one Body, CS2 on the
other Body, and R = r1 - r2. The Linear Driver block specifies one of the vector
components of R = (X,Y,Z), projected on to the World CS axes, as a function of
time:
X, Y, or Z = f(t).
You connect the Linear Driver to a Driver Actuator block.
The Simulink input signal into the Driver Actuator specifies the
time-dependent driving function f(t) and its first two derivatives, as well as
their units. If you do not actuate Linear Driver, this block acts as a
time-independent constraint that freezes the vector component between the
two Body CS origins at its initial value during the simulation.
Drivers restrict relative degrees of freedom (DoFs) between a pair of bodies as
specified functions of time. Locally in a machine, they replace a Joint as the
expression of the DoFs. Globally, Driver blocks must occur topologically in
closed loops. Like Bodies connected to a Joint, the two Bodies connected to a
Drivers are ordered as base and follower, fixing the direction of relative motion.
You can also connect a Driver block to a Constraint & Driver Sensor, which
measures the reaction forces/torques between the driven bodies.
6-120
mech_pdf.book Page 121 Tuesday, June 18, 2002 1:27 PM
Linear Driver
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Linear Driver block
to a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “Linear Driver base and follower
Body Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the Linear Driver
block to a Body CS Port on a Body, this parameter is automatically reset to
the name of this Body CS. See the following “Linear Driver base and
follower Body Connector Ports” figure.
Number of sensor/actuator ports
Using this spinner menu, you can set the number of extra Connector Ports
needed for connecting Driver Actuator and Constraint & Driver Sensor
blocks to this Driver. The default is 0.
To activate the Driver, connect a Driver Actuator.
6-121
mech_pdf.book Page 122 Tuesday, June 18, 2002 1:27 PM
Linear Driver
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.
Base Body Connector Port
Follower Body Connector Port
Linear Driver base and follower Body Connector Ports
Parameters
World axis
In the pull-down menu, choose the component of the vector difference R
between the Body CS origins that you want to drive as a function of time.
The components are measured with respect to the World CS axes. The
choices are X, Y, or Z. The default is X.
See Also
Constraint & Driver Sensor, Distance Driver, Driver Actuator
See “Modeling Constraints and Drivers” on page 3-34 for more on restricting
DoFs with Drivers.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on using drivers in closed loops.
See “Creating Constraints and Drivers” on page 6-5.
6-122
mech_pdf.book Page 123 Tuesday, June 18, 2002 1:27 PM
Parallel Constraint
Purpose
6Parallel Constraint
Library
Constraints & Drivers
Description
The two Bodies connected by a Parallel Constraint are restricted in their
relative rotational motion. The Parallel Constraint is connected on either side
to a Body CS, one on each Body. A vector aB defined in one Body CS on the base
body remains parallel to a second vector aF defined in another Body CS on the
follower body.
Constrain the body axis vectors of two bodies to be parallel
The Parallel Constraint block requires that:
|aB ⋅ aF|/(|aB||aF|) = 1.
You specify the initial direction to which both vectors must remain parallel.
Constraints restrict relative degrees of freedom (DoFs) between a pair of
bodies. Locally in a machine, they replace a Joint as the expression of the DoFs.
Globally, Constraint blocks must occur topologically in closed loops. Like
Bodies connected to a Joint, the two Bodies connected to a Constraint are
ordered as base and follower, fixing the direction of relative motion.
Parallel Constraint is assembled: the Body CS origin on the base body must be
initially collocated with the Body CS origin on the follower body, to within
assembly tolerance.
You can connect a Constraint block to a Constraint & Driver Sensor, but not to
an Actuator. The Constraint & Driver Sensor measures the reaction
forces/torques between the constrained bodies.
6-123
mech_pdf.book Page 124 Tuesday, June 18, 2002 1:27 PM
Parallel Constraint
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Parallel Constraint
block to a Body CS Port on a Body, this parameter is automatically reset to
the name of this Body CS. See the following “Parallel Constraint base and
follower Body Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the Parallel
Constraint block to a Body CS Port on a Body, this parameter is
automatically reset to the name of this Body CS. See the following “Parallel
Constraint base and follower Body Connector Ports” figure.
Number of sensor ports
Using this spinner menu, you can set the number of extra Connector Ports
needed for connecting Constraint & Driver Sensor blocks to this
Constraint. The default is 0.
6-124
mech_pdf.book Page 125 Tuesday, June 18, 2002 1:27 PM
Parallel Constraint
The base (B)–follower (F) Body sequence determines the sense of positive
motion. Positive rotation is the follower rotating in the right-handed sense
about the rotation axis.
Base Body Connector Port
Follower Body Connector Port
Parallel Constraint base and follower Body Connector Ports
Parameters
Parallel constraint axis [x y z]
Enter the axis vector defining the initial direction of the two body axis
vectors ab, af. These body axis vectors are restricted to always remain
parallel to this initial axis. The default is [1 0 0].
Reference csys
Using the pull-down menu, choose the coordinate system (World, the base
Body CS, or the follower Body CS) whose coordinate axes the initial
Parallel constraint axis is oriented with respect to. This CS also
determines the absolute meaning of reaction forces/torques at this
Constraint. The default is WORLD.
See Also
Angle Driver, Constraint & Driver Sensor, Velocity Driver
See “Modeling Constraints and Drivers” on page 3-34 for more on restricting
DoFs with Constraints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on using constraints in closed loops.
See “Creating Constraints and Drivers” on page 6-5.
6-125
mech_pdf.book Page 126 Tuesday, June 18, 2002 1:27 PM
Planar
Purpose
6Planar
Library
Joints
Description
The Planar block represents a composite joint with two translational degrees
of freedom (DoFs) as two prismatic primitives and one rotational DoFs as one
revolute primitives. The rotation axis must be orthogonal to the plane defined
by the two translation axes.
Represent a composite joint with two translational DoFs and one rotational
DoF, with the rotational axis orthogonal to the plane of the translational axes
Caution A joint with two prismatic primitives becomes singular if the two
translation axes become parallel. The simulation stops with an error in this
case.
You must connect each side of the Joint block to a Body block at a Body
coordinate system (CS) point. The Planar block is assembled: the origins of
these Body CSs must lie along the primitive axes, and the Body CS origins on
either side of the Joint must be spatially collocated points, to within assembly
tolerances.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
6-126
mech_pdf.book Page 127 Tuesday, June 18, 2002 1:27 PM
Planar
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify reference CSs to define the directions of
the joint axes.
6-127
mech_pdf.book Page 128 Tuesday, June 18, 2002 1:27 PM
Planar
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Planar block to a
Body CS Port on a Body, this parameter is automatically reset to the name
of this Body CS. See the following “Planar base and follower Body
Connector Ports” figure.
The base Body is automatically connected to the first joint primitive P1 in
the primitive list in Parameters.
Current follower
When you connect the follower (F) Connector Port on the Planar block to a
Body CS Port on a Body, this parameter is automatically reset to the name
6-128
mech_pdf.book Page 129 Tuesday, June 18, 2002 1:27 PM
Planar
of this Body CS. See the following “Planar base and follower Body
Connector Ports” figure.
The follower Body is automatically connected to the last joint primitive R1
in the primitive list in Parameters.
Number of sensor/actuator ports
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.
The motions of prismatic and revolute primitives are specified in linear and
angular units, respectively.
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 moving around the rotational
axis following the right-hand rule.
Base Body Connector Port
Follower Body Connector Port
Planar base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are required. Each DoF primitive in Planar has
an entry line. These lines specify the direction of the axes of action of the DoFs
that the Planar represents.
Name - Primitive
The primitive list states the names and types of joint primitives that make
up the Planar block: prismatic primitives P1, P2 and revolute primitives R1.
Axis of action [x y z]
Enter here as a three-component vector the directional axes defining the
allowed motions of these primitives and their corresponding DoFs:
- Prismatic: axis of translation
6-129
mech_pdf.book Page 130 Tuesday, June 18, 2002 1:27 PM
Planar
- Revolute: axis of rotation
The default vectors are shown in the dialog box above. The axis is a directed
vector whose overall sign matters.
To prevent singularities and simulation errors, the two revolute axes
cannot be parallel.
Reference csys
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 WORLD.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
In-Plane, Prismatic, Revolute
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-130
mech_pdf.book Page 131 Tuesday, June 18, 2002 1:27 PM
Point-Curve Constraint
Purpose
6Point-Curve Constraint
Library
Constraints & Drivers
Description
The two Bodies connected by a Point-Curve Constraint can only move relative
to one another if a point on one body moves along a curve on the other body.
The point on one body is the origin of the Body coordinate systems (CS) to
which one side of the Point-Curve Constraint is connected. The corresponding
curve starting point on the other body is the origin of the Body CS to which the
other side of the Point-Curve Constraint is connected.
Constrain the motion of a point on one body to be along a curve on another body
Specifying the Curve You specify the curve function on the second body as
a spline with break points and end conditions. The spline is a piecewise cubic
polynomial, with the pieces joined at user-specified breakpoints:
(x1,y1,z1) , (x2,y2,z2) , … , (xN,yN,zN)
and boundary conditions applied at the spline’s endpoints, (x0,y0,z0) and
(xN+1,yN+1,zN+1). The spline curve and its first two derivatives are continuous
at each breakpoint.
Constraints restrict relative degrees of freedom (DoFs) between a pair of
bodies. Locally in a machine, they replace a Joint as the expression of the DoFs.
Globally, Constraint blocks must occur topologically in closed loops. Like
Bodies connected to a Joint, the two Bodies connected to a Constraint are
ordered as base and follower, fixing the direction of relative motion.
For the Point-Curve Constraint, the base is the Body carrying the Point, and
the follower is the Body carrying the Curve. The Point-Curve Constraint is
assembled: the Body CS origin on the base (Point) body must initially be
collocated with the Body CS origin on the follower (Curve) body, to within
assembly tolerance.
You can connect a Constraint block to a Constraint & Driver Sensor, but not to
an Actuator. The Constraint & Driver Sensor measures the reaction
forces/torques between the constrained bodies.
6-131
mech_pdf.book Page 132 Tuesday, June 18, 2002 1:27 PM
Point-Curve Constraint
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and Spline
specification. It stores the defining information of a single spline for the
constraint.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Point-Curve
Constraint block to a Body CS Port on a Body, this parameter is
automatically reset to the name of this Body CS. See the following
“Point-Curve Constraint base and follower Body Connector Ports” figure.
This Body CS origin is the point of the Point-Curve Constraint.
Current follower
When you connect the follower (F) Connector Port on the Point-Curve
Constraint block to a Body CS Port on a Body, this parameter is
6-132
mech_pdf.book Page 133 Tuesday, June 18, 2002 1:27 PM
Point-Curve Constraint
automatically reset to the name of this Body CS. See the following
“Point-Curve Constraint base and follower Body Connector Ports” figure.
This Body CS origin is the starting point of the curve of the Point-Curve
Constraint.
Number of sensor ports
Using this spinner menu, you can set the number of extra Connector Ports
needed for connecting Constraint & Driver Sensor blocks to this
Constraint. The default is 0.
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.
Base (Point) Body Connector Port
Follower (Curve) Body Connector Port
Point-Curve Constraint base and follower Body Connector Ports
Spline
Specification
The Point-Curve Constraint dialog box gives you two ways to specify the spline
curve. The first way is entering in this dialog box the coordinates of
breakpoints and endpoints on the follower and is valid for defining curves in up
to three dimensions.
The second way is graphically displaying and editing the spline in the Edit
spline editor (see following), valid only for two-dimensional curves on the
follower.
Break points
List here the x-components, the y-components, and the z-components,
respectively, of the breakpoints and endpoints that define the spline:
X: enter (x0, x1, …, xN+1) as a vector.
Y: enter (y0, y1, …, yN+1) as a vector.
Z: enter (z0, z1, …, zN+1) as a vector.
6-133
mech_pdf.book Page 134 Tuesday, June 18, 2002 1:27 PM
Point-Curve Constraint
All three fields require nonnull entries. The number of components in each
vector should be the same. Exception and shortcut: if all the Z components
are the same, just enter one number in the Z vector. The Break points list
replicates this number to expand out a full vector.
0] in
If there are no X and/or Y components, you must still enter [0
that/those field(s). If there are no Z components, you must still enter at
least [0] in the Z field (using the replication/expansion shortcut).
The pull-down menu for each spatial dimension lists the history of those
previous breakpoints created by the graphical spline editor (see following)
within a single dialog box session. Closing the dialog box destroys this
history, and only the current breakpoint list is retained.
Units
In the pull-down menu, choose the linear units for distances on the
constrained bodies. The default is m (meters).
End conditions
In the pull-down menu, choose the type of end (boundary) condition on the
spline curve. The possible conditions are:
End Condition
Definition
Minimum Number
of Points
natural
Match each endslope to the slope
of the cubic that fits the first four
points at that end
Two points
not-a-knot
Only the curve and its first
derivative are continuous at first
and last interior points
Four points
periodic
Match the first and second
derivatives of the two endpoints
Two points, three
recommended
The default is natural. The periodic end condition closes the spline.
Allow the point to fall off the curve
If the check box is selected, the base point continues with unconstrained
motion if it reaches an endpoint and leaves the spline on the follower. The
6-134
mech_pdf.book Page 135 Tuesday, June 18, 2002 1:27 PM
Point-Curve Constraint
direction of motion at the instant the base point leaves the constraint is
tangent to the spline.
If the check box is unselected, and the base point attempts to leave the
spline on the follower, the simulation stops with an error. The default is
unselected.
Edit spline
Click here to open the optional Edit spline dialog box.
The Edit spline dialog box provides alternative numerical entry and
graphical editing methods for defining the constraint spline. But it can
define only two-dimensional curves in the x-y coordinate directions on the
follower Body. The Edit spline editor ignores any z-components in existing
breakpoints.
6-135
mech_pdf.book Page 136 Tuesday, June 18, 2002 1:27 PM
Point-Curve Constraint
Edit Spline
The numerical entry area lies on the left side of the Edit spline dialog box, the
graphical editing area on the right side.
Graphical toolbar
Graphical breakpoint
and curve display
Breakpoint list
Breakpoint
numerical entry
Breakpoint list
controls
Point-Curve Constraint Spline Editor
Graphical Editing of Spline Points
1 To place a breakpoint in the graphical display, place your cursor at the
position where you want the breakpoint. The Cursor location display in the
lower right indicates your current cursor coordinates in the display.
6-136
mech_pdf.book Page 137 Tuesday, June 18, 2002 1:27 PM
Point-Curve Constraint
2 Then click at the desired point. A circle appears where you clicked, and
simultaneously, the breakpoint is listed in the Breakpoints (x-y) list.
Continuing to add breakpoints generates the spline (red curve).
3 Use the Graphical toolbar controls to edit the spline graphically in the
display:
Append breakpoints
Move breakpoints
Insert breakpoints
Delete breakpoints
Zoom In
Zoom Out
Auto Fit
Grid On/Off
Axes properties
- Remove points by clicking on the Delete breakpoints icon. Your cursor
turns into an eraser symbol. With it, select and click the breakpoints you
want to delete.
- Insert new (interior) breakpoints by clicking on the Insert breakpoints
icon. Your cursor acquires a small circle. Click on the positions, near the
existing curve, where you want the new breakpoints. The editor modifies
the spline to fit the new breakpoints.
- Add new endpoints and extend the curve by clicking on the Append
breakpoints icon. Your cursor acquires a small circle. Click on the
positions, near the existing endpoints, to where you want to extend the
curve. The editor modifies the spline to fit the new endpoints.
- Move existing endpoints by clicking on the Move breakpoints icon. Click
and drag the breakpoints you want to move, then drop them where you
want them.
The editor modifies both the spline red curve in the graphical display and the
Breakpoints (x-y) list as you make these changes.
Additional graphical toolbar controls:
- Zoom In/Zoom Out and Auto Fit: Standard Handle Graphics zooming
and auto resizing of graphics display.
- Grid On/Off: Turn the graphical display x-y grid on or off.
6-137
mech_pdf.book Page 138 Tuesday, June 18, 2002 1:27 PM
Point-Curve Constraint
- Axes properties: Edit properties of graphical display.
Numerical Editing of Spline Points
Use the numerical entry controls, instead of the graphical editing tools, to edit
breakpoints by text entry.
Breakpoints (x-y)
You can also add, delete, and edit the breakpoints via this Breakpoints list:
Select an existing breakpoint by highlighting it with your cursor.
Add a breakpoint by moving the highlighted selection to the empty line
below the last breakpoint with your cursor control.
In x: and y: enter the x- and y-coordinates of the currently selected
breakpoint.
Update breakpoint
After editing an existing breakpoint or entering a new one, update the
breakpoint list by clicking here. The new or changed breakpoint appears in
the graphical display as a circle.
Delete point
Click here to delete the currently selected breakpoint.
Delete all
Click here to delete all the breakpoints in the Breakpoint list.
End conditions
In the pull-down menu, choose the type of end (boundary) condition on the
spline curve. The possible conditions are natural, not-a-knot, and
periodic. The default is natural.
Closing the Edit spline dialog box
Clicking on Apply or OK updates the breakpoints stored in the main
Point-Curve Constraint dialog box.
Previous breakpoint lists are stored in the history pull-down menus of the main
Point-Curve Constraint dialog box’s Break points list. This history is
6-138
mech_pdf.book Page 139 Tuesday, June 18, 2002 1:27 PM
Point-Curve Constraint
destroyed if you close the main dialog box, and only the current Breakpoint list
is retained.
See Also
Constraint & Driver Sensor
See “Modeling Constraints and Drivers” on page 3-34 for more on restricting
DoFs with Constraints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on using constraints in closed loops.
See “Creating Constraints and Drivers” on page 6-5.
For more about representing curves as splines, see the Spline Toolbox User’s
Guide tutorial.
6-139
mech_pdf.book Page 140 Tuesday, June 18, 2002 1:27 PM
Prismatic
Purpose
6Prismatic
Library
Joints
Description
The Prismatic block represents a single translational degree of freedom (DoF)
along a specified axis between two bodies. A prismatic joint is one of
SimMechanics primitive joints, along with revolute and spherical.
Represent a prismatic joint with one translational degree of freedom
The Prismatic block is assembled: you must connect each side of the Joint block
to a Body block at a Body coordinate system (CS) point, and the origins of these
Body CSs must lie along the prismatic axis, to within assembly tolerances.
These Body CS origins do not need to be collocated in space.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify a reference CS to define the direction of
the joint axis.
Prismatic motion of follower (blue) relative to base (red)
6-140
mech_pdf.book Page 141 Tuesday, June 18, 2002 1:27 PM
Prismatic
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Prismatic block to a
Body CS Port on a Body, this parameter is automatically reset to the name
of this Body CS. See the following “Prismatic base and follower Body
Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the Prismatic block
to a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “Prismatic base and follower Body
Connector Ports” figure.
Number of sensor/actuator ports
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.
6-141
mech_pdf.book Page 142 Tuesday, June 18, 2002 1:27 PM
Prismatic
The motion of a Prismatic is specified in linear units.
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.
Base Body Connector Port
Follower Body Connector Port
Prismatic base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are required. They specify the direction of the
translational DoF that the Prismatic represents.
Name
This column automatically displays the name of each primitive joint
contained in the Joint block. For Prismatic, there is only one primitive
joint, a prismatic, labeled P1.
Primitive
This column automatically displays the type of each primitive joint
contained in the Joint block. For Prismatic, there is only one primitive type,
labeled Prismatic.
6-142
mech_pdf.book Page 143 Tuesday, June 18, 2002 1:27 PM
Prismatic
Axis of translation [x y z]
Enter here as a three-component vector the directional axis along which
this translational DoF can move. The default vector is [0 0 1]. The axis is
a directed vector whose overall sign matters.
Reference csys
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
translation is oriented with respect to. This CS also determines the
absolute meaning of force and motion along the joint axis. The default is
WORLD.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Disassembled Prismatic, Joint Actuator, Joint Initial Condition Actuator,
Joint Sensor, Joint Stiction Actuator, Revolute, Spherical
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-143
mech_pdf.book Page 144 Tuesday, June 18, 2002 1:27 PM
Revolute
Purpose
6Revolute
Library
Joints
Description
The Revolute block represents a single rotational degree of freedom (DoF)
about a specified axis between two bodies. The rotational sense is defined by
the right-hand rule. A revolute joint is one of SimMechanics primitive joints,
along with prismatic and spherical.
Represent an assembled revolute joint with one rotational degree of freedom
The Revolute block is assembled: you must connect each side of the Joint block
to a Body block at a Body coordinate system (CS) point, and the origins of these
Body CSs must be spatially collocated points, to within assembly tolerances.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify a reference CS to define the direction of
the joint axis.
Revolute motion of follower (blue) relative to base (red)
6-144
mech_pdf.book Page 145 Tuesday, June 18, 2002 1:27 PM
Revolute
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Revolute block to a
Body CS Port on a Body, this parameter is automatically reset to the name
of this Body CS. See the following “Revolute base and follower Body
Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the Revolute block to
a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “Revolute base and follower Body
Connector Ports” figure.
Number of sensor/actuator ports
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.
6-145
mech_pdf.book Page 146 Tuesday, June 18, 2002 1:27 PM
Revolute
The motion of a Revolute is specified in angular units.
The base (B)–follower (F) Body sequence determines the sense of positive
motion. Positive rotation is the follower rotating in the right-handed sense
about the rotation axis.
Base Body Connector Port
Follower Body Connector Port
Revolute base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are required. They specify the direction of the
rotation axis of the DoF that the Revolute represents.
Name
This column automatically displays the name of each primitive joint
contained in the Joint block. For Revolute, there is only one primitive joint,
a revolute, labeled R1.
Primitive
This column automatically displays the type of each primitive joint
contained in the Joint block. For Revolute, there is only one primitive type,
labeled Revolute.
6-146
mech_pdf.book Page 147 Tuesday, June 18, 2002 1:27 PM
Revolute
Axis of rotation [x y z]
Enter here as a three-component vector the directional axis about which
this rotational DoF can move. The default vector is [0 0 1]. The axis is a
directed vector whose overall sign matters.
Reference csys
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
rotation is oriented with respect to. This CS also determines the absolute
meaning of torque and motion about the joint axis. The default is WORLD.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Disassembled Revolute, Joint Actuator, Joint Initial Condition Actuator, Joint
Sensor, Joint Stiction Actuator, Prismatic, Spherical
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-147
mech_pdf.book Page 148 Tuesday, June 18, 2002 1:27 PM
Revolute-Revolute
Purpose
6Revolute-Revolute
Library
Joints/Massless Connectors
Description
The Revolute-Revolute block represents a composite joint composed of two
revolute joint primitives. The Body coordinate systems (CSs) on either side of
the Joint are each connected to a revolute primitive. The primitives are
separated spatially by a vector of constant length but variable direction
connecting the two Body CS origins. Both revolute primitives are assembled.
Represent a composite joint composed of two revolute primitives spatially
separated by a massless connector of constant length
Caution This joint becomes singular if the two revolute primitive axes align
with the vector separating the primitives. The simulation stops with an error
in this case.
You specify the two revolute axes of these two joint primitives in the dialog box.
The distance separation between the two axes is computed automatically from
the Body CS origins to which the Joint is connected. This distance separation
(the magnitude of the vector between the Body CS origins) remains fixed at its
initial value during the simulation. This initial value must be nonzero.
You cannot connect a Massless Connector to an Actuator or a Sensor block.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify a reference CS to define the directions of
the joint axes.
6-148
mech_pdf.book Page 149 Tuesday, June 18, 2002 1:27 PM
Revolute-Revolute
Massless Connector between Revolute and Revolute Joints
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
6-149
mech_pdf.book Page 150 Tuesday, June 18, 2002 1:27 PM
Revolute-Revolute
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Revolute-Revolute
block to a Body CS Port on a Body, this parameter is automatically reset to
the name of this Body CS. See the following “Revolute-Revolute base and
follower Body Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the
Revolute-Revolute block to a Body CS Port on a Body, this parameter is
automatically reset to the name of this Body CS. See the following
“Revolute-Revolute base and follower Body Connector Ports” figure.
The base (B)–follower (F) Body sequence determines the sense of positive
motion. Positive rotation is the base or follower rotating in the right-handed
sense about its respective rotation axis.
Base Body Connector Port
Follower Body Connector Port
Revolute-Revolute base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are required. They specify the direction of the
rotation axes of these DoFs that the Revolute-Revolute represents.
6-150
mech_pdf.book Page 151 Tuesday, June 18, 2002 1:27 PM
Revolute-Revolute
Name
This column automatically displays the name of each primitive joint
contained in the Joint block. For Revolute-Revolute, there are two revolute
primitives, labeled R1 and R2, connecting to base and follower, respectively.
Primitive
This column automatically displays the type of each primitive joint
contained in the Joint block. For Revolute-Revolute, there is only one
primitive type, labeled Revolute.
Axis of rotation [x y z]
Enter here as a three-component vector the directional axis about which
these rotational DoFs can move. The default vectors are [0 0 1] and [0 1
0]. The axes are directed vectors whose overall signs matter.
Reference csys
Using the pull-down menu, choose the coordinate system (World, the base
Body CS, or the follower Body CS) whose coordinate axes the vector axes of
rotation are oriented with respect to. These CSs also determine the
absolute meaning of torque and motion about the primitive axes. The
defaults are WORLD.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
6-151
mech_pdf.book Page 152 Tuesday, June 18, 2002 1:27 PM
Revolute-Revolute
See Also
Revolute
See “Modeling Joints” on page 3-17 for more on representing DoFs with
Massless Connectors.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-152
mech_pdf.book Page 153 Tuesday, June 18, 2002 1:27 PM
Revolute-Spherical
Purpose
6Revolute-Spherical
Library
Joints/Massless Connectors
Description
The Revolute-Spherical block represents a composite joint composed of a
revolute and a spherical joint primitive. The base Body coordinate system (CS)
on one side of the Joint is connected to the revolute primitive, and the follower
Body CS is connected to the spherical primitive. The primitives are separated
spatially by a vector of constant length but variable direction connecting the
two Body CS origins. Both primitives are assembled.
Represent a composite joint composed of a revolute and a spherical primitive
spatially separated by a massless connector of constant length
Caution This joint becomes singular if the revolute primitive axis aligns with
the vector separating the primitives. The simulation stops with an error in
this case.
You specify the revolute axis of the revolute joint primitives in the dialog box.
The distance separation between the two axes is computed automatically from
the Body CS origins to which the Joint is connected. This distance separation
(the magnitude of the vector between the Body CS origins) remains fixed at its
initial value during the simulation. This initial value must be nonzero.
You cannot connect a Massless Connector to an Actuator or a Sensor block.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify a reference CS to define the direction of
the joint axis.
6-153
mech_pdf.book Page 154 Tuesday, June 18, 2002 1:27 PM
Revolute-Spherical
Massless Connector between Revolute and Spherical Joints
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
6-154
mech_pdf.book Page 155 Tuesday, June 18, 2002 1:27 PM
Revolute-Spherical
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Revolute-Spherical
block to a Body CS Port on a Body, this parameter is automatically reset to
the name of this Body CS. See the following “Revolute-Spherical base and
follower Body Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the
Revolute-Spherical block to a Body CS Port on a Body, this parameter is
automatically reset to the name of this Body CS. See the following
“Revolute-Spherical base and follower Body Connector Ports” figure.
The base (B)–follower (F) Body sequence determines the sense of positive
motion. Positive rotation is the base rotating in the right-handed sense about
its rotation axis or the follower pivoting as shown for the Spherical Joint.
Base Body Connector Port
Follower Body Connector Port
Revolute-Spherical base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are required. They specify the direction of the
rotation axis of one of the DoFs that Revolute-Spherical represents.
6-155
mech_pdf.book Page 156 Tuesday, June 18, 2002 1:27 PM
Revolute-Spherical
Name
This column automatically displays the name of each primitive joint
contained in the Joint block. For Revolute-Spherical, there are one revolute
and one spherical primitive, labeled R1 and S, connecting to base and
follower, respectively.
Primitive
This column automatically displays the type of each primitive joint
contained in the Joint block. For Revolute-Spherical, there are two
primitive types, labeled Revolute and Spherical.
Axis of action [x y z]
Enter here as a three-component vector the directional axis about which
the rotational DoF can move. The default vector is [0 0 1]. The axis is a
directed vector whose overall sign matters.
This field is not active for the Spherical primitive.
Reference csys
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
rotation is oriented with respect to. This CS also determines the absolute
meaning of torque and motion about the primitive axis. The default is
WORLD.
This field is not active for the Spherical primitive.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
6-156
mech_pdf.book Page 157 Tuesday, June 18, 2002 1:27 PM
Revolute-Spherical
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Revolute, Spherical
See “Modeling Joints” on page 3-17 for more on representing DoFs with
Massless Connectors.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-157
mech_pdf.book Page 158 Tuesday, June 18, 2002 1:27 PM
RotationMatrix2VR
Purpose
6RotationMatrix2VR
Library
Utilities
Description
A rotation with respect to an initial orientation has many equivalent
representations. A common and important one is the 3-by-3 orthogonal rotation
matrix R, where R-1 = RT and RTR = RRT = 1, the 3-by-3 identity matrix.
Another important representation is the combination of rotation axis (a unit
vector n) and angle of rotation θ about that axis. The sign of rotation follows the
right-hand-rule.
Convert a 3-by-3 rotation matrix to an equivalent VRML form of rotation axis
and angle
The RotationMatrix2VR block converts the 3-by-3 rotation matrix
representation of orientation to its equivalent representation as a rotation axis
and angle about that axis, the form used in Virtual Reality Modeling Language
(VRML) and the Virtual Reality Toolbox for orienting bodies. The input and
output signals are bundled Simulink signals.
The most common use of rotations is to represent the orientation of a body with
respect to some coordinate system (CS) axes.
Dialog Box and
Parameters
The dialog box has no active areas.
6-158
mech_pdf.book Page 159 Tuesday, June 18, 2002 1:27 PM
RotationMatrix2VR
Representations of rotation signals
The rotation matrix R has the form:
R
R
R
11 12 13
R 21 R 22 R 23
R
R
R
31 32 33
The input signal to the RotationMatrix2VR block is the R matrix components
passed column-wise and bundled into a single 9-component Simulink signal:
[R11 R21 R31 R12 ].
The output signal is the equivalent rotation represented as the axis of rotation,
a unit vector n = (nx,ny,nz), with
n*n = nx2 + ny2 + nz2 = 1,
and the angle of rotation θ about that axis. The sign of the rotation follows the
right-hand rule. The output signal is bundled into a single 4-component
Simulink signal:
[nx ny nz θ].
See Also
Body
See entries on axis-angle rotation, Euler angles, quaternion, and rotation
matrix in “Glossary” for more details on representing body orientation.
For more on virtual reality and VRML, see the Virtual Reality Toolbox User’s
Guide.
6-159
mech_pdf.book Page 160 Tuesday, June 18, 2002 1:27 PM
Screw
Purpose
6Screw
Library
Joints
Description
The Screw block represents a composite joint with one translational degree of
freedom (DoF) as one prismatic primitive and one rotational DoF as one
revolute primitive. The translation and rotation axes are parallel. The
translational and rotational DoFs are constrained by a pitch constraint to have
proportional motion.
Represent a composite joint with one translational DoF and one rotational
DoF, with parallel translation and rotation axes and a linear pitch constraint
between translational and rotational motion
You must connect each side of the Joint block to a Body block at a Body
coordinate system (CS) point. The Screw block is assembled: the origins of
these Body CSs must lie along the primitive axes, and the Body CS origins on
either side of the Joint must be spatially collocated points, to within assembly
tolerances.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify a reference CS to define the direction of
the joint axis.
6-160
mech_pdf.book Page 161 Tuesday, June 18, 2002 1:27 PM
Screw
Dialog Box and
Parameters
The dialog box has three active areas, Connection parameters, Parameters,
and Pitch parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Screw block to a Body
CS Port on a Body, this parameter is automatically reset to the name of this
Body CS. See the following “Screw base and follower Body Connector Ports”
figure.
The base Body is automatically connected to the joint primitive R1 in the
primitive list in Parameters.
6-161
mech_pdf.book Page 162 Tuesday, June 18, 2002 1:27 PM
Screw
Current follower
When you connect the follower (F) Connector Port on the Bushing block to
a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “Screw base and follower Body
Connector Ports” figure.
The follower Body is automatically connected to the joint primitive R1 in
the primitive list in Parameters.
Number of sensor/actuator ports
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.
The motion of revolute primitives is specified in angular units.
The base (B)–follower (F) Body sequence determines the sense of positive
motion. Positive rotation is the follower moving around the rotational axis
following the right-hand rule.
Base Body Connector Port
Follower Body Connector Port
Screw base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are required. Each DoF primitive in Screw has
an entry line. These lines specify the direction of the axes of action of the DoFs
that the Screw represents.
Name - Primitive
The primitive list states the name and type of the joint primitive that
makes up the Screw block: revolute primitive R1.
Axis of action [x y z]
Enter here as a three-component vector the directional axes defining the
allowed motions of this primitive and its corresponding DoF:
6-162
mech_pdf.book Page 163 Tuesday, June 18, 2002 1:27 PM
Screw
- Revolute: axis of rotation
The default vectors are shown in the dialog box above. The axis is a directed
vector whose overall sign matters.
Reference csys
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 WORLD.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
Pitch
Parameters
The Pitch parameters control how far the screw translates for each revolution.
6-163
mech_pdf.book Page 164 Tuesday, June 18, 2002 1:27 PM
Screw
Pitch
Linear distance the screw travels along the screw axis for each complete
revolution (turn) of 2π radians (360o). The default is 1.
Units (per revolution)
In the pull-down menu, choose the units for the pitch linear distance. The
default is mm (millimeters).
See Also
Cylindrical, Prismatic, Revolute
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-164
mech_pdf.book Page 165 Tuesday, June 18, 2002 1:27 PM
Six-DoF
Purpose
6Six-DoF
Library
Joints
Description
The Six-DoF block represents a composite joint with three translational
degrees of freedom (DoFs) as three prismatic primitives and three rotational
DoFs as one spherical primitives. There are no constraints among the
primitives. Unlike Bushing, Six-DoF represents the rotational DoFs as one
spherical, rather than as three revolutes.
Represent a composite joint with three translational and three rotational DoFs
Caution A joint with three prismatic primitives becomes singular if two or
three of the translation axes become parallel. The simulation stops with as
error in this case.
You must connect each side of the Joint block to a Body block at a Body
coordinate system (CS) point. The Six-DoF block is assembled: the origins of
these Body CSs must lie along the primitive axes, and the Body CS origins on
either side of the Joint must be spatially collocated points, to within assembly
tolerances.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify reference CSs to define the directions of
the joint axes.
6-165
mech_pdf.book Page 166 Tuesday, June 18, 2002 1:27 PM
Six-DoF
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Six-DoF block to a
Body CS Port on a Body, this parameter is automatically reset to the name
of this Body CS. See the following “Six-DoF base and follower Body
Connector Ports” figure.
The base Body is automatically connected to the first joint primitive P1 in
the primitive list in Parameters.
Current follower
When you connect the follower (F) Connector Port on the Six-DoF block to
a Body CS Port on a Body, this parameter is automatically reset to the
6-166
mech_pdf.book Page 167 Tuesday, June 18, 2002 1:27 PM
Six-DoF
name of this Body CS. See the following “Six-DoF base and follower Body
Connector Ports” figure.
The follower Body is automatically connected to the last joint primitive S
in the primitive list in Parameters.
Number of sensor/actuator ports
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.
The motion of prismatic primitives is specified in linear units. The motion
of spherical primitives is specified by a dimensionless quaternion.
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 spherical motion is the follower rotating in the
right-handed sense as shown in the Spherical block figure.
Base Body Connector Port
Follower Body Connector Port
Six-DoF base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are required. Each DoF primitive in Six-DoF has
an entry line. These lines specify the direction of the axes of action of the DoFs
that the Six-DoF represents.
Name - Primitive
The primitive list states the names and types of joint primitives that make
up the Six-DoF block: prismatic primitives P1, P2, P3, and spherical
primitive S.
Axis of action [x y z]
Enter here as a three-component vector the directional axes defining the
allowed motions of these primitives and their corresponding DoFs:
- Prismatic: axis of translation
6-167
mech_pdf.book Page 168 Tuesday, June 18, 2002 1:27 PM
Six-DoF
- Spherical: field is not active
The default vectors are shown in the dialog box above. The axis is a directed
vector whose overall sign matters.
To prevent singularities and simulation errors, no two of the prismatic axes
can be parallel.
Reference csys
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 WORLD.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Bushing, Gimbal, Prismatic, Spherical
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-168
mech_pdf.book Page 169 Tuesday, June 18, 2002 1:27 PM
Spherical
Purpose
6Spherical
Library
Joints
Description
The Spherical block represents three rotational degrees of freedom (DoFs) at a
single pivot point, a “ball-in-socket” joint. Two rotational DoFs specify a
directional axis, and a third rotational DoF specifies rotation about that
directional axis. The sense of each rotational DoF is defined by the right-hand
rule, and the three rotations together form a right-handed system. A spherical
joint is one of the SimMechanics primitive joints, along with prismatic and
revolute.
Represent an assembled spherical joint with three rotational degrees of
freedom
The Spherical block is assembled: you must connect each side of the Joint block
to a Body block at a Body coordinate system (CS) point, and the origins of these
Body CSs must be spatially collocated points, within assembly tolerances.
You cannot connect a Spherical block to an Actuator block. Unlike the Gimbal
block, the Spherical block cannot become singular.
You can connect all Joint blocks to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
Any Joint block represents only the abstract relative motion of two bodies, not
the bodies themselves.
6-169
mech_pdf.book Page 170 Tuesday, June 18, 2002 1:27 PM
Spherical
Spherical motion of follower (blue) relative to base (red)
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
6-170
mech_pdf.book Page 171 Tuesday, June 18, 2002 1:27 PM
Spherical
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Spherical block to a
Body CS Port on a Body, this parameter is automatically reset to the name
of this Body CS. See the following “Spherical base and follower Body
Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the Spherical block to
a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “Spherical base and follower Body
Connector Ports” figure.
Number of sensor/actuator ports
Using this spinner menu, you can set the number of extra Connector Ports
needed for connecting Joint Sensor blocks to this Joint. The default is 0. A
Spherical cannot be connected to an Joint Actuator.
The motion of a Spherical is three DoFs specified in quaternion form.
The base (B)–follower (F) Body sequence determines the sense of positive
motion. Positive rotation is the follower rotating in the right-handed sense as
shown in the figure above.
Base Body Connector Port
Follower Body Connector Port
Spherical base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are automatic. They specify the orientation of the
spherical DoF that the Spherical represents.
6-171
mech_pdf.book Page 172 Tuesday, June 18, 2002 1:27 PM
Spherical
Name
This column automatically displays the name of each primitive joint
contained in the Joint block. For Spherical, there is only one primitive
joint, a spherical, labeled S.
Primitive
This column automatically displays the type of each primitive joint
contained in the Joint block. For Spherical, there is only one primitive type,
labeled Spherical.
Reference orientation [x y z]
This field is not active.
Reference csys
This field is not active.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
6-172
mech_pdf.book Page 173 Tuesday, June 18, 2002 1:27 PM
Spherical
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Disassembled Spherical, Gimbal, Joint Sensor, Prismatic, Revolute
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-173
mech_pdf.book Page 174 Tuesday, June 18, 2002 1:27 PM
Spherical-Spherical
Purpose
6Spherical-Spherical
Library
Joints/Massless Connectors
Description
The Spherical-Spherical block represents a composite joint composed of two
spherical joint primitives. The Body coordinate systems (CSs) on either side of
the Joint are connected to the spherical primitives. The primitives are
separated spatially by a vector of constant length but variable direction
connecting the two Body CS origins. Both primitives are assembled.
Represent a composite joint composed of two spherical primitives spatially
separated by a massless connector of constant length
The distance separation between the two axes is computed automatically from
the Body CS origins to which the Joint is connected. This distance separation
(the magnitude of the vector between the Body CS origins) remains fixed at its
initial value during the simulation. This initial value must be nonzero.
You cannot connect a Massless Connector to an Actuator or a Sensor block.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify a reference CS to define the directions of
the joint axes.
Massless Connector between Spherical and Spherical Joints
6-174
mech_pdf.book Page 175 Tuesday, June 18, 2002 1:27 PM
Spherical-Spherical
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Spherical-Spherical
block to a Body CS Port on a Body, this parameter is automatically reset to
the name of this Body CS. See the following “Spherical-Spherical base and
follower Body Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the
Spherical-Spherical block to a Body CS Port on a Body, this parameter is
automatically reset to the name of this Body CS. See the following
“Spherical-Spherical base and follower Body Connector Ports” figure.
The base (B)–follower (F) Body sequence determines the sense of positive
motion. Positive rotation is the base or follower pivoting as shown for the
Spherical Joint.
6-175
mech_pdf.book Page 176 Tuesday, June 18, 2002 1:27 PM
Spherical-Spherical
Base Body Connector Port
Follower Body Connector Port
Spherical-Spherical base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are automatic. They specify the orientation of the
spherical DoFs that the Spherical-Spherical represents.
Name
This column automatically displays the name of each primitive joint
contained in the Joint block. For Spherical-Spherical, there are two
spherical primitives, labeled S1 and S2, connecting to base and follower,
respectively.
Primitive
This column automatically displays the type of each primitive joint
contained in the Joint block. For Spherical-Spherical, there is only one
primitive type, labeled Spherical.
Reference orientation [x y z]
These fields are not active.
Reference csys
These fields are not active.
6-176
mech_pdf.book Page 177 Tuesday, June 18, 2002 1:27 PM
Spherical-Spherical
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Spherical
See “Modeling Joints” on page 3-17 for more on representing DoFs with
Massless Connectors.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-177
mech_pdf.book Page 178 Tuesday, June 18, 2002 1:27 PM
Telescoping
Purpose
6Telescoping
Library
Joints
Description
The Telescoping block represents a composite joint with one translational
degree of freedom (DoF) as one prismatic primitive and three rotational DoFs
as one spherical primitive. There are no constraints among the primitives.
Unlike Bearing, Telescoping represents the rotational DoFs as one spherical,
rather than as three revolutes.
Represent a composite joint with one translational and three rotational DoFs
You must connect each side of the Joint block to a Body block at a Body
coordinate system (CS) point. The Telescoping block is assembled: the origins
of these Body CSs must lie along the primitive axes, and the Body CS origins
on either side of the Joint must be spatially collocated points, to within
assembly tolerances.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify a reference CS to define the direction of
the joint axis.
6-178
mech_pdf.book Page 179 Tuesday, June 18, 2002 1:27 PM
Telescoping
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Telescoping block to
a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “Telescoping base and follower
Body Connector Ports” figure.
The base Body is automatically connected to the first joint primitive S in
the primitive list in Parameters.
Current follower
When you connect the follower (F) Connector Port on the Telescoping block
to a Body CS Port on a Body, this parameter is automatically reset to the
6-179
mech_pdf.book Page 180 Tuesday, June 18, 2002 1:27 PM
Telescoping
name of this Body CS. See the following “Telescoping base and follower
Body Connector Ports” figure.
The follower Body is automatically connected to the last joint primitive P1
in the primitive list in Parameters.
Number of sensor/actuator ports
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.
The motion of prismatic primitives is specified in linear units. The motion
of spherical primitives is specified by a dimensionless quaternion.
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 spherical motion is the follower rotating in the
right-handed sense as shown in the Spherical block figure.
Base Body Connector Port
Follower Body Connector Port
Telescoping base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are required. Each DoF primitive in Telescoping
has an entry line. These lines specify the direction of the axes of action of the
DoFs that the Telescoping represents.
Name - Primitive
The primitive list states the names and types of joint primitives that make
up the Telescoping block: spherical primitive S and prismatic primitives P1.
Axis of action [x y z]
Enter here as a three-component vector the directional axes defining the
allowed motions of these primitives and their corresponding DoFs:
- Prismatic: axis of translation
- Spherical: field is not active
6-180
mech_pdf.book Page 181 Tuesday, June 18, 2002 1:27 PM
Telescoping
The default vectors are shown in the dialog box above. 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.
Reference csys
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 WORLD.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Bearing, Prismatic, Six-DoF, Spherical
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-181
mech_pdf.book Page 182 Tuesday, June 18, 2002 1:27 PM
Universal
Purpose
6Universal
Library
Joints
Description
The Universal block represents a composite joint with two rotational degrees
of freedom (DoFs) as two revolute primitives. There are no constraints among
the primitives.
Represent a composite joint with two rotational DoFs
Caution A joint with two revolute primitives becomes singular if the two
rotation axes become parallel (“gimbal lock”). The simulation stops with an
error in this case.
You must connect each side of the Joint block to a Body block at a Body
coordinate system (CS) point. The Universal block is assembled: the origins of
these Body CSs must lie along the primitive axes, within assembly tolerances.
But the Body CS origins on either side of the Joint do not have to be spatially
collocated points.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
6-182
mech_pdf.book Page 183 Tuesday, June 18, 2002 1:27 PM
Universal
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves. You must specify reference CSs to define the directions of
the joint axes.
6-183
mech_pdf.book Page 184 Tuesday, June 18, 2002 1:27 PM
Universal
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Universal block to a
Body CS Port on a Body, this parameter is automatically reset to the name
of this Body CS. See the following “Universal base and follower Body
Connector Ports” figure.
The base Body is automatically connected to the first joint primitive R1 in
the primitive list in Parameters.
Current follower
When you connect the follower (F) Connector Port on the Universal block
to a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “Universal base and follower Body
Connector Ports” figure.
6-184
mech_pdf.book Page 185 Tuesday, June 18, 2002 1:27 PM
Universal
The follower Body is automatically connected to the last joint primitive R2
in the primitive list in Parameters.
Number of sensor/actuator ports
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.
The motion of revolute primitives is specified in angular units.
The base (B)–follower (F) Body sequence determines the sense of positive
motion. Positive rotation is the follower moving around the rotational axis
following the right-hand rule.
Base Body Connector Port
Follower Body Connector Port
Universal base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are required. Each DoF primitive in Universal
has an entry line. These lines specify the direction of the axes of action of the
DoFs that the Universal represents.
Name - Primitive
The primitive list states the names and types of joint primitives that make
up the Universal block: revolute primitives R1, R2.
Axis of action [x y z]
Enter here as a three-component vector the directional axes defining the
allowed motions of these primitives and their corresponding DoFs:
- Revolute: axis of rotation
The default vectors are shown in the dialog box above. The axis is a directed
vector whose overall sign matters.
To prevent singularities and simulation errors, the two revolute axes
cannot be parallel.
6-185
mech_pdf.book Page 186 Tuesday, June 18, 2002 1:27 PM
Universal
Reference csys
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 WORLD.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Gimbal, Revolute
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-186
mech_pdf.book Page 187 Tuesday, June 18, 2002 1:27 PM
Velocity Driver
Purpose
6Velocity Driver
Library
Constraints & Drivers
Description
The Velocity Driver block drives a linear combination of the projected
translational and angular velocities of two Bodies. The velocities are projected
by inner products on to constant vectors you specify.
Specify a linear combination of the linear and angular velocities of two bodies
as a function of time
Let vB, vF be the two body velocity vectors and ωB, ωF be the two body angular
velocity vectors. Let cB, cF, dB, dF be constant vectors. The subscripts ‘B’ and
‘F’ refer to base and follower bodies. The Velocity Driver block specifies this
linear combination:
cB ⋅ vB + dB ⋅ ωB - cF ⋅ vF - dF ⋅ ωF = f(t)
as a function of time f(t). You specify the vectors cB, cF, dB, dF. You also connect
the Velocity Driver to a Driver Actuator block.
The Simulink input signal into the Driver Actuator specifies the
time-dependent driving function f(t) and its first two derivatives, as well as
their units. If you do not actuate Velocity Driver, this block acts as a
time-independent constraint that freezes the constraint linear combination at
its initial value during the simulation.
Drivers restrict relative degrees of freedom (DoFs) between a pair of bodies as
specified functions of time. Locally in a machine, they replace a Joint as the
expression of the DoFs. Globally, Driver blocks must occur topologically in
closed loops. Like Bodies connected to a Joint, the two Bodies connected to a
Drivers are ordered as base and follower, fixing the direction of relative motion.
You can also connect a Driver block to a Constraint & Driver Sensor, which
measures the reaction forces/torques between the driven bodies.
6-187
mech_pdf.book Page 188 Tuesday, June 18, 2002 1:27 PM
Velocity Driver
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Velocity Driver block
to a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “Velocity Driver base and follower
Body Connector Ports” figure.
Current follower
When you connect the follower (F) Connector Port on the Velocity Driver
block to a Body CS Port on a Body, this parameter is automatically reset to
the name of this Body CS. See the following “Velocity Driver base and
follower Body Connector Ports” figure.
6-188
mech_pdf.book Page 189 Tuesday, June 18, 2002 1:27 PM
Velocity Driver
Number of sensor/actuator ports
Using this spinner menu, you can set the number of extra Connector Ports
needed for connecting Driver Actuator and Constraint & Driver Sensor
blocks to this Driver. The default is 0.
To activate the Driver, connect a Driver Actuator.
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-handed
sense about the rotation axis.
Base Body Connector Port
Follower Body Connector Port
Velocity Driver base and follower Body Connector Ports
Parameters
Angular velocity units
From the pull-down menu, choose the common units for all angular
velocities. The default is deg/s (degrees/second).
The vectors dB and dF implicitly carry the units conversion of length/angle.
The driving function f(t) has the linear velocity units that you set in the
Driver Actuator block that you connect to Velocity Driver. If the f(t) units
differ from the units set in Linear velocity units in this dialog box, the
vectors dB and dF implicitly carry the additional units conversion.
Linear velocity units
From the pull-down menu, choose the common units for all linear
velocities. The default is m/s (meters/second).
The driving function f(t) has the linear velocity units that you set in the
Driver Actuator block that you connect to Velocity Driver. If the f(t) units
differ from the units set here, the vectors cB and cF implicitly carry the
units conversion.
6-189
mech_pdf.book Page 190 Tuesday, June 18, 2002 1:27 PM
Velocity Driver
Velocity coefficients for base
Under [x y z], enter the Angular velocity and Linear velocity coefficient
vectors for the base Body. These are the components of dB and cB,
respectively. The defaults are [1 0 0].
In the pull-down menus, choose the coordinate systems (WORLD or BASE)
whose coordinate axes the vectors dB and cB are oriented with respect to.
The defaults are WORLD.
The vectors dB and cB carry the implicit units conversion to convert all
velocities to the common linear velocity units of f(t) that you set in the
connected Driver Actuator block.
Velocity coefficients for follower
Under [x y z], enter the Angular velocity and Linear velocity coefficient
vectors for the follower Body. These are the components of dF and cF,
respectively. The defaults are [1 0 0].
In the pull-down menus, choose the coordinate systems (WORLD or
FOLLOWER) whose coordinate axes the vectors dF and cF are oriented with
respect to. The defaults are WORLD.
The vectors dF and cF carry the implicit units conversion to convert all
velocities to the common linear velocity units of f(t) that you set in the
connected Driver Actuator block.
See Also
Angle Driver, Constraint & Driver Sensor, Driver Actuator, Parallel
Constraint
See “Modeling Constraints and Drivers” on page 3-34 for more on restricting
DoFs with Drivers.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on using drivers in closed loops.
See “Creating Constraints and Drivers” on page 6-5.
6-190
mech_pdf.book Page 191 Tuesday, June 18, 2002 1:27 PM
Weld
Purpose
6Weld
Library
Joints
Description
The Weld block represents a joint with no degrees of freedom (DoFs). The two
Bodies connected to either side of the Weld block are locked rigidly to one
another, with no possible relative motion.
Represent a joint with no DoFs
You must connect each side of the Joint block to a Body block at a Body
coordinate system (CS) point. The Weld block is assembled: the origins of these
Body CSs must lie along the primitive axes, within assembly tolerances. But
the Body CS origins on either side of the Joint do not have to be spatially
collocated points.
You can connect any Joint block to two and only two Body blocks, and Joints
have a default of two Connector Ports for connecting to base and follower
Bodies.
A Joint block represents only the abstract relative motion of two bodies, not the
bodies themselves.
6-191
mech_pdf.book Page 192 Tuesday, June 18, 2002 1:27 PM
Weld
Dialog Box and
Parameters
The dialog box has two active areas, Connection parameters and
Parameters.
Connection
Parameters
Current base
When you connect the base (B) Connector Port on the Weld block to a Body
CS Port on a Body, this parameter is automatically reset to the name of this
Body CS. See the following “Weld base and follower Body Connector Ports”
figure.
The base Body is automatically connected to the joint primitive W in the
primitive list in Parameters.
Current follower
When you connect the follower (F) Connector Port on the Bushing block to
a Body CS Port on a Body, this parameter is automatically reset to the
name of this Body CS. See the following “Weld base and follower Body
Connector Ports” figure.
The follower Body is automatically connected to the joint primitive W in the
primitive list in Parameters.
6-192
mech_pdf.book Page 193 Tuesday, June 18, 2002 1:27 PM
Weld
Number of sensor/actuator ports
Using this spinner menu, you can set the number of extra Connector Ports
needed for connecting Joint Sensor blocks to this Joint. The default is 0.
You cannot actuate a Weld joint, and a Weld joint undergoes no motion. A Joint
Sensor measures zero motion, but in general nonzero reaction forces, at this
joint.
Base Body Connector Port
Follower Body Connector Port
Weld base and follower Body Connector Ports
Parameters
Toggle between the Axes and Advanced panels with the tabs.
The entries on the Axes pane are inactive for Weld. This block has no DoF
primitives.
Name - Primitive
The primitive list states the names and types of joint primitives that make
up the Bushing block: a rigid primitive W representing no motion.
Axis of action [x y z]
This field is inactive.
Reference csys
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 WORLD.
The Advanced pane is optional. You use it to control the way SimMechanics
interprets the topology of your schematic diagram.
6-193
mech_pdf.book Page 194 Tuesday, June 18, 2002 1:27 PM
Weld
Mark as the preferred cut joint
In a closed loop, one and only one joint is cut during the simulation.
SimMechanics does the cutting internally and automatically.
If you want this particular joint to be weighted preferentially for cutting
during the simulation, select the check box. The default is unselected.
See Also
Distance Driver
See “Modeling Joints” on page 3-17 for more on representing DoFs with Joints.
See “Checking Schematic Topology” on page 3-58 and “How SimMechanics
Works” on page 4-41 for more on closed loops and cutting.
6-194
mech_pdf.book Page 1 Tuesday, June 18, 2002 1:27 PM
7
SimMechanics Command
Reference
This table indicates the tasks performed by the command described in this chapter.
Command
Purpose
mech_stateVectorMgr
Display and set machine state vector
mech_pdf.book Page 2 Tuesday, June 18, 2002 1:27 PM
mech_stateVectorMgr
Purpose
7mech_stateVectorMgr
Synopsis
You must call mech_stateVectorMgr with one argument, the pathname or
handle of any block in the machine whose state you want:
Display and set the machine state with a state vector manager
MachineState = mech_stateVectorMgr('pathname')
MachineState = mech_stateVectorMgr('handle')
You obtain the pathname and handle with the Simulink gcb and gcbh
commands.
You can also call mech_stateVectorMgr with an indirect call to the block
pathname or handle. Select one of the SimMechanics blocks in the machine and
enter one of these commands:
MachineState = mech_stateVectorMgr(gcb)
MachineState = mech_stateVectorMgr(gcbh)
The command mech_stateVectorMgr returns an object MachineState.
The state manager object includes only the state of a machine made of
SimMechanics blocks. Simulink associates the machine to one of the machine’s
Ground blocks.
Description
The state of the machine is its kinematic state.
The kinematic state consists of all the linear/angular positions and velocities of
all degrees of freedom (DoFs) in the machine:
• Prismatic and revolute joint primitives each have two state components, a
position and a velocity.
• Spherical joint primitives each have eight state components, a quaternion
and a quaternion derivative.
• Point-Curve Constraints each have one predictor state component, the arc
parameter velocity of the point along the curve.
• If the joint primitive is motion actuated with a Joint Actuator block, that
joint primitive loses its state components.
• The weld primitive W also has no state.
The total number of state components is
7-2
mech_pdf.book Page 3 Tuesday, June 18, 2002 1:27 PM
mech_stateVectorMgr
N = 2*(# of prismatics + # of revolutes) + 8*(# of sphericals)
+ (# of Point-Curve Constraints),
not including any motion-actuated joint primitives.
Input
Arguments
There is one input argument. The argument must be a SimMechanics block’s
full pathname or handle, or an indirect call to the pathname or handle using
the commands gcb or gcbh.
The input block name or handle must refer to a SimMechanics block. The state
manager created by the command references the machine to which this block
belongs. The full path name starts with the model name and continues through
any subsystem hierarchy:
pathname = modelname/subsystem1/etc.../blockname
You can obtain the pathname or handle of any block by selecting that block in
a window and entering gcb or gcbh at the command line.
You can combine these steps into one step with an indirect pathname or handle
call. Select a SimMechanics block in the model window and enter either
command:
mech_stateVectorMgr(gcb)
mech_stateVectorMgr(gcbh)
instead.
Output
Arguments
The output of mech_stateVectorMgr is an object MachineState of class
MECH.StateVectorMgr.
A machine is a connected set of SimMechanics blocks. Each machine must have
at least one Ground block. Simulink chooses one of the Ground blocks as the
machine root. The state vector manager object refers to this root as a proxy for
the whole machine.
The MachineState object has four properties.
7-3
mech_pdf.book Page 4 Tuesday, June 18, 2002 1:27 PM
mech_stateVectorMgr
Property
Variable Type
Content
MachineState.Machi
neName
string
'modelname/subsyst
em1/etc.../rootgro
undblock'
MachineState.X
1-by-N real array
[ 0 0 ... 0 ]
MachineState.Block
States
array of N block state
managers
Joint primitives and
Point-Curve
Constraints
MachineState.State
Names
cell array of N strings
Names of joint
primitives and
Point-Curve
Constraints
Entering the mech_stateVectorMgr command or querying the entire object
returns a summary of the object contents by property.
The MachineState.X property does not show the actual machine state, but only
indicates the number of state components.
The block state managers of BlockStates are arranged in the array by class:
MECH.RPJointStateMgr, MECH.SJointStateMgr, and
MECH.PointCurveStateMgr.
Querying the
State Manager
Object
Once you define a MachineState object, you can query the properties
individually by entering full property name:
Examples
Some examples illustrate the use of the state vector manager.
MachineState.MachineName
MachineState.X
State Vector Manager Example: One Primitive
Open the model mech_spen in the Demos library. Select one of the
SimMechanics blocks and enter
7-4
mech_pdf.book Page 5 Tuesday, June 18, 2002 1:27 PM
mech_stateVectorMgr
machinestate = mech_stateVectorMgr(gcb)
at the command line. The command returns
machinestate =
MECH.StateVectorMgr
MachineName: 'mech_spen/Ground'
X: [0 0]
BlockStates: [1x1 MECH.RPJointStateMgr]
StateNames: {2x1 cell}
The first line in the object is the class and the last four are the properties. The
model mech_spen contains one Joint block (a Revolute), with two states (angle
and angular velocity).
Now query individual properties. Entering machinestate.machinename
returns
mech_spen/Ground
referring to the one Ground block in the model. Entering machinestate.X
returns
0
0
indicating a two-component state vector (N = 2).
Entering machinestate.blockstates returns
MECH.RPJointStateMgr
BlockName: 'Revolute'
Primitive: 'R1'
Position: 0
PositionUnits: 'rad'
Velocity: 0
VelocityUnits: 'rad/s'
7-5
mech_pdf.book Page 6 Tuesday, June 18, 2002 1:27 PM
mech_stateVectorMgr
FixedAtT_0: 'off'
There are one Joint and no Point-Curve Constraints, and the Joint is a
Revolute. So there is only one state manager of class MECH.RPJointStateMgr.
This property gives detailed Joint information: block name, primitive name,
position and velocity values and units, and the presence or absence of initial
condition actuators.
Entering machinestate.statenames returns
'Revolute:R1:Position'
'Revolute:R1:Velocity'
the names of the Joint block, the joint primitive, and the states.
State Vector Manager Example: Multiple Primitives
Construct an unnamed model with Ground and Body blocks connected by a
Telescoping Joint. Then select one of the blocks and enter machinestate =
mech_stateVectorMgr(gcb) at the command line. Simulink returns
machinestate =
MECH.StateVectorMgr
MachineName: 'untitled/Ground'
X: [0 0 0 0 0 0 0 0 0 0]
BlockStates: [2x1 MECH.BlockStateMgr]
StateNames: {10x1 cell}
The unnamed model is still associated with its Ground block. There are two
primitives, a spherical and a prismatic, and hence 10 components in the state
vector. To see those primitive names, enter machinestate.statenames to
obtain
'Telescoping:S:Quaternion:1'
'Telescoping:S:Quaternion:2'
'Telescoping:S:Quaternion:3'
'Telescoping:S:Quaternion:4'
7-6
mech_pdf.book Page 7 Tuesday, June 18, 2002 1:27 PM
mech_stateVectorMgr
'Telescoping:P1:Position'
'Telescoping:S:Quaternion_dot:1'
'Telescoping:S:Quaternion_dot:2'
'Telescoping:S:Quaternion_dot:3'
'Telescoping:S:Quaternion_dot:4'
'Telescoping:P1:Velocity'
The quaternion and the prismatic position make the first five components,
while the quaternion derivative and prismatic velocity make the last five.
See Also
Point-Curve Constraint, Prismatic, Revolute, Spherical
See “Counting Degrees of Freedom” on page 3-61.
See “Trimming Mechanical Systems” on page 4-24 and “Linearizing
SimMechanics Models” on page 4-35.
In Simulink, see gcb, gcbh, gcs.
7-7
mech_pdf.book Page 8 Tuesday, June 18, 2002 1:27 PM
mech_stateVectorMgr
7-8
mech_pdf.book Page 1 Tuesday, June 18, 2002 1:27 PM
A
Glossary
mech_pdf.book Page 2 Tuesday, June 18, 2002 1:27 PM
A
Glossary
actuator
An actuator converts a Simulink signal into SimMechanics force/torque or
motion signals.
• You can configure a body actuator to apply forces/torques to a body either as
an explicit function of time or through feedback forces/torques.
• You can configure a joint actuator to apply forces/torques between the bodies
connected on either side of the joint.
• You can configure a driver actuator to apply relative motion between the
bodies connected on either side of the driver.
• SimMechanics also has two specialized actuators, one for setting joint initial
conditions and one for applying stiction to a joint.
In SimMechanics, an Actuator block has an open round SimMechanics
Connector Port
for connecting with a Body, Joint, or Driver block and an
angle bracket > Simulink inport for connecting with normal Simulink blocks,
such as Source blocks for generating force/torque signals.
See also body, Connector Port, driver, initial condition actuator, joint, primitive
joint, sensor, and stiction actuator.
adjoining CS
The adjoining CS of a Body CS is the CS on the neighboring body or ground
directly connected to the original Body CS by a Joint, Constraint, or Driver.
See also body, Body CS, coordinate system (CS), grounded CS, and World.
assembled joint
Restricts the Body coordinate systems (CSs) on the two bodies at either end of
the joint.
• For an assembled prismatic joint, the two Body CS origins must lie along the
prismatic axis. The two Bodies translate relatively along the same axis.
For an assembled joint with multiple prismatic primitives, the two Body CS
origins must lie in the plane or space defined by the directions of the
prismatic axes.
• For an assembled revolute joint, the two Body CS origins must be collocated.
The two Bodies rotate relatively about the same axis.
For an assembled joint with multiple revolute primitives, the two Body CS
origins must be collocated.
• For an assembled spherical joint, the two Body CS origins must be collocated
at the spherical primitive’s pivot point. The two Bodies pivot relatively about
this common origin.
A-2
mech_pdf.book Page 3 Tuesday, June 18, 2002 1:27 PM
Glossary
A
You specify an assembly tolerance for assembled joints, the maximum
dislocation distance allowed between all pairs of assembled Body CS origins
and the maximum angle of misalignment between all pairs of assembled Body
motion axes. If the distance dislocations and/or axis misalignments in an
assembled joint grow larger than the assembly tolerance, the simulation stops
with an error.
See also assembly tolerance, Body CS, disassembled joint, joint, and primitive
joint.
assembly
tolerance
Determines how closely an assembled joint must be collocated and aligned. An
assembled joint is connected on either side to Body coordinate systems (CSs) on
two Bodies and restricts the relative configurations and motions of those Body
CSs.
The assembly tolerances set the maximum dislocation of Body CS origins and
maximum misalignment of motion axes allowed in assembled joints during the
simulation.
• For assembled prismatic primitives, each pair of Body CS origins must lie in
the subspace defined by the prismatic axis(es). Each pair of Bodies translates
along this (these) common axis(es).
• For assembled revolute primitives, each pair of Body CS origins must be
collocated and their respective rotational axes aligned. Each pair of Bodies
rotates about this (these) common axis(es).
• For an assembled spherical primitive, the pair of Body CS origins must be
collocated. The two Bodies pivot about this common origin.
If the two Body CSs separate or the joint axes misalign in a way that makes
their connecting assembled joint primitives no longer respect the assembly
tolerances, the simulation stops with an error.
See also assembled joint, Body CS, disassembled joint, and joint.
axis-angle
rotation
A representation of a three-dimensional spherical rotation as a rotation axis
vector n = (nx,ny,nz) of unit length (n*n = nx2 + ny2 + nz2 = 1) and a rotation
angle θ. Define the rotation axis by the vector n; rotate about that axis by θ
using the right-hand rule.
The rotation axis direction is equivalent to specifying two independent angles;
θ is the third independent angle making up the rotation.
In VRML, you represent body rotations by a vector signal [nx ny nz θ].
A-3
mech_pdf.book Page 4 Tuesday, June 18, 2002 1:27 PM
A
Glossary
See also degree of freedom (DoF), Euler angles, primitive joint, quaternion,
right-hand rule, rotation matrix, and VRML.
base (base body)
The point from which the joint is directed. The joint directionality runs from
base to follower body.
Joint directionality sets the direction and the positive sign of all joint
position/angle, motion, and force/torque data.
See also body, directionality, follower (follower body), and right-hand rule.
body
The basic element of a mechanical system or machine. It is characterized by
• Its mass properties (mass and inertia tensor)
• Its position and orientation in space
• Any attached Body coordinate systems
Bodies are connected to one another by joints. Bodies carry no degrees of
freedom.
You can attach to a Body block any number of Body coordinate systems (CSs).
All SimMechanics Bodies automatically maintain a minimum of one Body CS
at the body’s center of gravity (CG). The Body block has special axis triad CS
ports , instead of the open, round Connector Ports , to indicate the attached
Body CSs.
See also actuator, adjoining CS, Body CS, center of gravity (CG), convex hull,
coordinate system (CS), degree of freedom (DoF), equivalent ellipsoid, inertia
tensor, joint, local CS, mass, and sensor.
Body CS
A local coordinate system (CS) attached to a body, carried along with that
body’s motion. In general, bodies accelerate as they move, and therefore Body
CSs define noninertial reference frames.
You can attach any number of Body CSs to a Body block, and you can choose
where to place the Body CS origins and how to orient the Body CS axes. The
Body block has special axis triad CS ports
instead of the open, round
Connector Ports, to give you access to these Body CSs for connecting Joint,
Sensor, and Actuator blocks.
Every Body block has an automatic, minimum Body CS at its center of gravity
(CG). By default, it also has two other Body CSs for connection to adjacent
Joints. The origin and axis orientation of each Body CSs once set by the user
A-4
mech_pdf.book Page 5 Tuesday, June 18, 2002 1:27 PM
Glossary
A
during Body configuration, are interpreted as fixed rigidly in that body during
the simulation.
See also body, Body CS, center of gravity (CG), convex hull, coordinate system
(CS), ground, grounded CS, local CS, reference frame (RF), and World.
center of gravity
(CG)
The center of gravity or center of mass of a extended body is the point in space
about which the entire body balances in a uniform gravitational field. For
translational dynamics, the body’s entire mass can be considered as if
concentrated at this point.
Every Body block has an automatic, minimum Body coordinate system (CS)
with its origin at the CG. This origin point and the Body CS coordinate axes
remain fixed rigidly in the body during the simulation.
See also body, Body CS, degree of freedom (DoF), inertia tensor, kinematics, and
primitive joint.
CG
See center of gravity (CG).
closed loop
system
You can disconnect a closed loop system into two separate systems only by
cutting more than one joint. The number of closed loops is equal to the
minimum number, minus one, of cuttings needed to disconnect the system into
two systems.
See also open system and topology.
composite joint
A joint compounded from more than one joint primitive and thus representing
more than one degree of freedom. The joint primitives constituting a composite
joint are the primitives of that joint.
A spherical primitive represents three rotational degrees of freedom, but is
treated as a primitive.
See also constrained joint, degree of freedom (DoF), joint, and primitive joint
Connection Line
You connect each SimMechanics block to another by using SimMechanics
Connection Lines. These lines function only with SimMechanics blocks. They
do not carry signals, unlike normal Simulink lines, and cannot be branched.
You cannot link Connection Lines directly to Simulink lines.
Connection Lines appear red and dashed if they are not anchored at both ends
to a Connector Port . Once you so anchor them, the lines become black and
solid.
See also actuator, Connector Port, and sensor.
A-5
mech_pdf.book Page 6 Tuesday, June 18, 2002 1:27 PM
A
Glossary
Connector Port
A special anchor for a Connection Line. Each SimMechanics block has one or
more open round SimMechanics Connector Ports for connecting to other
SimMechanics blocks. You must connect these round ports only to other
SimMechanics round ports. When an open Connector Port is attached to a
Connection Line, the Port changes to solid • .
A special Connection Port block is provided in the Library Browser to create a
round SimMechanics Connector Port for an entire subsystem on that
subsystem’s boundary.
See also actuator, Connection Line, and sensor.
constrained
joint
A composite joint with one or more built-in constraints relating the joint’s
primitives.
An example is the Screw block, which has a prismatic and a revolute primitive
with their motions in fixed ratio. Only one of these degrees of freedom is
independent.
See also degree of freedom (DoF), joint, and primitive joint.
constraint
A restriction between degrees of freedom imposed independently of any applied
forces/torques. A constraint removes one or more independent degrees of
freedom, unless that constraint is redundant and restricts degrees of freedom
that otherwise could not move anyway. Constraints can also create
inconsistencies with the applied forces/torques that lead to simulation errors.
Constraints are kinematic; that is, they must involve only coordinates and/or
velocities. Higher derivatives of coordinates (accelerations, etc.) are
determined by the Newtonian force/torque equations and cannot be
independently constrained.
Constraints can be holonomic (integrable into a form involving only
coordinates) or nonholonomic (not integrable; that is, irreducibly involving
velocities).
The relationship specified by a constraint can be an explicit function of time
(rheonomic) or not (scleronomic). In SimMechanics, scleronomic constraints are
called Constraints, and rheonomic constraints are called Drivers.
SimMechanics Constraint/Driver blocks are attached to pairs of Body blocks.
See also body, degree of freedom (DoF), directionality, and driver.
A-6
mech_pdf.book Page 7 Tuesday, June 18, 2002 1:27 PM
Glossary
convex hull
A
The surface of minimum area with convex (outward-bowing) curvature that
passes through all the spatial points in a set. In three dimensions, this set must
contain at least four non-coplanar points to make a closed surface with nonzero
enclosed volume.
In SimMechanics, the convex hull is an option for visualizing a body. The set of
points is all the Body coordinate system (CS) origins configured in that Body
block. The visualization of an entire machine is the set of the convex hulls of all
its bodies.
If a Body has fewer than four non-coplanar Body CSs, its convex hull is a
lower-dimensional figure: three Body CSs produce a triangle without volume;
two Body CSs produce a line without area; and one Body CS (the CS at the
center of gravity) a point without length.
See also body, Body CS, and equivalent ellipsoid.
coordinate
system (CS)
A coordinate system is defined, in a particular reference frame (RF), by a choice
of origin and orientation of coordinate axes, assumed orthogonal and Cartesian
(rectangular). An observer attached to that CS measures distances from that
origin and directions relative to those axes.
SimMechanics has two CS types:
- World: global or absolute inertial CS at rest
- Local CS:
Grounded CS
Body CS
See also body, Body CS, convex hull, grounded CS, local CS, reference frame
(RF), and World.
CS
A coordinate system (CS).
degree of
freedom (DoF)
A single coordinate of relative motion between two bodies. Such a coordinate is
free only if it can respond without constraint or imposed motion to externally
applied forces or torques. For translational motion, a DoF is a linear coordinate
along a single direction. For rotational motion, a DoF is an angular coordinate
about a single, fixed axis.
A prismatic joint primitive represents a single translational DoF. A revolute
joint primitive represents a single rotational DoF. A spherical joint primitive
represents three rotational DoFs in angle-axis form. A weld joint primitive
represents zero DoFs.
A-7
mech_pdf.book Page 8 Tuesday, June 18, 2002 1:27 PM
A
Glossary
See also body, coordinate system (CS), dynamics, joint, and kinematics.
directionality
The directionality of a joint, constraint, or driver is its direction of forward
motion.
The joint directionality is set by the order of the joint’s connected bodies and
the direction of the joint axis vector. One body is the base body, the other the
follower body. The joint direction runs from base to follower, up to the sign of
the joint axis vector. Reversing the base-follower order or the joint axis vector
direction reverses the forward direction of the joint.
Joint directionality sets the direction and the positive sign of all joint
position/angle, motion, and force/torque data.
Directionality of constraints and drivers is similar, except there is no joint axis,
only the base-follower sequence.
See also base (base body), body, follower (follower body), joint, and right-hand
rule.
disassembled
joint
A disassembled joint does not need to respect the assembly tolerance of your
machine.
• For a disassembled prismatic primitive, the Body coordinate system (CS)
origins do not have to lie on the prismatic axis. The Bodies translate
relatively along misaligned axes.
• For a disassembled revolute primitive, the Body CS origins do not have to be
collocated. The Bodies rotate relatively about misaligned axes.
• The a disassembled spherical primitive, the Body CS origins do not have to
be collocated. The Bodies pivot relatively about these two dislocated origins.
You can only use disassembled joints in a closed loop, with no more than one
per loop.
See also assembled joint, assembly tolerance, closed loop system, and topology.
A-8
DoF
A degree of freedom (DoF).
driver
A constraint that restricts degrees of freedom as an explicit function of time (a
rheonomic constraint) and independently of any applied forces/torques. A
driver removes one or more independent degrees of freedom, unless that driver
is inconsistent with the applied forces/torques and leads to a simulation error.
mech_pdf.book Page 9 Tuesday, June 18, 2002 1:27 PM
Glossary
A
In SimMechanics, you specify the driver function of time in a dialog box in
terms of an input Simulink signal from a Driver Actuator.
SimMechanics Driver blocks are attached to pairs of Body blocks.
See also actuator, body, constraint, directionality, and degree of freedom (DoF).
dynamics
A forward dynamic analysis of a mechanical system specifies:
• Topology of how bodies are connected
• Degrees of freedom (DoFs) and constraints among DoFs
• All external forces/torques applied to bodies
• Initial condition of all DoFs:
- Initial linear coordinates and velocities
- Initial angular coordinates and velocities
The analysis then solves Newton’s laws to find the system’s motion for all later
times.
Inverse dynamics is the same, except that the system’s motion is specified and
the forces/torques necessary to produce this motion are determined.
Dynamics is distinguished from kinematics by explicit specification of
externally applied forces/torques.
See also constraint, degree of freedom (DoF), kinematics, and topology.
equivalent
ellipsoid
The equivalent ellipsoid of a body is the homogeneous solid ellipsoid, centered
at the body’s center of gravity, with the same principal moments of inertia and
principal axes as the body. A homogeneous solid ellipsoid is the simplest body
with, in general, three distinct principal moments.
Every body has a unique equivalent ellipsoid, but a given homogeneous
ellipsoid corresponds to an infinite number of other, more complicated bodies.
The rotational dynamics of a body depend only on its equivalent ellipsoid
(which determines its principal moments and principal axes), not on its
detailed shape.
In SimMechanics, the equivalent ellipsoid is an option for visualizing a body.
See also body, convex hull, dynamics, inertia tensor, principal axes, and
principal inertial moments.
A-9
mech_pdf.book Page 10 Tuesday, June 18, 2002 1:27 PM
A
Glossary
Euler angles
A representation of a three-dimensional spherical rotation as a product of three
successive independent rotations about three independent axes by three
independent (Euler) angles.
See also axis-angle rotation, degree of freedom (DoF), primitive joint,
quaternion, right-hand rule, and rotation matrix.
follower
(follower body)
The point to which the joint is directed. The joint directionality runs from base
to follower body.
Joint directionality sets the direction and the positive sign of all joint
position/angle, motion, and force/torque data.
See also base (base body), body, directionality, and right-hand rule.
ground
A ground or ground point is a special point fixed at rest in the absolute or global
inertial World reference frame.
Each ground has an associated grounded coordinate system (CS). The
grounded CS’s origin is identical to the ground point, and its coordinate axes
are always parallel to the coordinate axes of World.
See also body, coordinate system (CS), grounded CS, and World.
grounded CS
A local CS attached to a ground point. It is at rest in World, but its origin is
wherever the ground point is and therefore in general shifted with respect to
the World CS origin. The coordinate axes of a grounded CS are always parallel
to the World CS axes.
The World coordinate axes are defined so that:
+x points right
+y points up (gravity in −y direction)
+z points out of the screen, in three dimensions
You automatically create a Gounded CS whenever you set up a Ground block.
See also adjoining CS, body, Body CS, coordinate system (CS), ground, local
CS, and World.
inertia tensor
A-10
The inertia or moment of inertia tensor of an extended rigid body describes its
internal mass distribution and the body’s angular acceleration in response to
an applied torque.
mech_pdf.book Page 11 Tuesday, June 18, 2002 1:27 PM
Glossary
A
Let V be the body’s volume and ρ(r) its mass density, a function of position r
within the body. Then the inertia tensor Iij is:
I ij =
∫ dV [ δ ij r
2 – r r ] ρ( r )
i j
V
This tensor is a real, symmetric 3-by-3 matrix or equivalent MATLAB
expression.
SimMechanics always assumes the inertia tensor of a body is evaluated in that
body’s center of gravity coordinate system (CG CS). That is, the origin is set to
the body’s CG and the coordinate axes are the CG CS axes.
Because the CG CS of a Body block is fixed rigidly in the body during
simulation, the values of the inertia tensor components do not change as the
body rotates.
See also body, Body CS, equivalent ellipsoid, mass, principal axes, and
principal inertial moments.
initial condition
actuator
An initial condition actuator gives you a way to move a system’s degrees of
freedom nondynamically to prepare a system for dynamical integration, in a
way consistent with all constraints.
In SimMechanics, the initial conditions are applied to a joint primitive.
See also actuator, dynamics, and kinematics.
joint
Represents one or more mechanical degrees of freedom between two bodies.
Joint blocks connect two Body blocks in a SimMechanics schematic. Joints
have no mass properties such as mass or an inertia tensor.
A joint primitive represents one translational or rotational degree of freedom
or one spherical (three rotational degrees of freedom in angle-axis form).
Prismatic and revolute primitives have motion axis vectors. A weld primitive
has no degrees of freedom.
A primitive joint contains one joint primitive. A composite joint contains more
than one joint primitive.
Joints have a directionality set by their base-to-follower Body order and the
direction of the joint primitive axis. The sign of all position/angle, motion, and
force/torque data is determined by this directionality.
A-11
mech_pdf.book Page 12 Tuesday, June 18, 2002 1:27 PM
A
Glossary
See also actuator, assembled joint, base (base body), body, composite joint,
constrained joint, constraint, degree of freedom (DoF), directionality,
disassembled joint, follower (follower body), ground, inertia tensor, massless
connector, primitive joint, and sensor.
kinematics
A kinematic analysis of a mechanical system specifies topology, degrees of
freedom (DoFs), velocities, and constraints, without explicit specification of
externally applied forces/torques or integration of Newton’s laws for the
system’s motion as a function of time.
The kinematic state of a machine at some time is the set of all
• Instantaneous positions
• Instantaneous velocities
of all bodies in the system, for both linear (translational) and angular
(rotational) DoFs of the bodies.
Specification of externally applied forces/torques and explicit solution of the
system’s motion as a function of time are given in the system’s dynamics.
See also constraint, degree of freedom (DoF), dynamics, and topology.
local CS
A local coordinate system (CS) is attached to either a Ground or a Body:
• Grounded CS
• Body CS
You define Body CSs when you configure the properties of a Body. A Grounded
CS is automatically defined when you represent a ground point by a Ground
block.
A grounded CS is always at rest in the World reference frame. The origin of this
Grounded CS is the same point as the ground point and therefore in general
not the same as the World CS origin.
A Body CS is fixed rigidly in the body and carried along with that body’s
motion. To indicate an attached coordinate system, a Body block has a special
axis triad CS port
in place of the open, round Connector Port .
See also body, Body CS, coordinate system (CS), grounded CS, reference frame
(RF), and World.
A-12
mech_pdf.book Page 13 Tuesday, June 18, 2002 1:27 PM
Glossary
machine
precision
constraint
A
A machine precision constraint is maintained on the constrained degrees of
freedom to the precision of computer processor arithmetic.
The precision to which the constraint is maintained depends on scale or the
physical system of units.
See also constraint, stabilizing constraint, and tolerancing constraint.
mass
The Newtonian mass, the proportionality between a force on a body and the
resulting translational acceleration of that body.
Let V be the body’s volume and ρ(r) its mass density, a function of position r
within the body. Then the mass m is:
m =
∫ dV ρ( r )
V
The mass is a real, positive scalar or equivalent MATLAB expression.
A body’s mass is insensitive to choice of coordinate system origin or coordinate
axes orientation.
See also body and inertia tensor.
massless
connector
A massless connector is equivalent to two joints whose respective axes are
spatially separated by a fixed distance. You can specify the gap distance and
the axis of separation. The space between the degrees of freedom is filled by a
rigid connector of zero mass.
You cannot actuate or sense a massless connector.
See also disassembled joint and joint.
open system
You can disconnect an open system into two separate systems by cutting no
more than one joint.
Such systems can be divided into two types:
• An open chain is a series of bodies connected by joints and topologically
equivalent to a line.
• An open tree is a series of bodies connected by joints in which at least one
body has more than two joints connected to it. Bodies with more than two
connected joints define branch points in the tree. A tree can be disconnected
into multiple chains by cutting the branch points.
A-13
mech_pdf.book Page 14 Tuesday, June 18, 2002 1:27 PM
A
Glossary
The end body of a chain is a body with only one connected joint.
See also closed loop system and topology.
physical tree
You obtain the physical tree representation of a machine topology from the full
machine topology by removing actuators and sensors and cutting each closed
loop once.
See also closed loop system, open system, spanning tree, and topology.
primitive joint
A primitive joint expresses one degree of freedom (DoF) or coordinate of motion.
This DoF can be translation along one direction (prismatic joint) or rotation
about one fixed axis (revolute joint).
In SimMechanics, a spherical joint (two rotations to specify directional axis,
one rotation about that axis) is also treated as a primitive joint.
These three types of primitive joints are the joint primitives from which
composite joints are built up.
A weld primitive has no degrees of freedom.
See also composite joint and joint.
principal axes
The inertia tensor of a body is real and symmetric and therefore can be
diagonalized, with three real eigenvalues and three orthogonal eigenvectors.
The principal axes of a body are these eigenvectors.
See also equivalent ellipsoid, inertia tensor, and principal inertial moments.
principal
inertial
moments
The inertia tensor of a body is real and symmetric and therefore can be
diagonalized, with three real eigenvalues and three orthogonal eigenvectors.
The principal inertial moments or principal moments of inertia of a body are
these eigenvalues, the diagonal values when the tensor is diagonalized.
The principal moments of a real body satisfy the triangle inequalities: the sum
of any two moments is greater than or equal to the third moment.
If two of the three principal moments are equal, the body has some symmetry
and is dynamically equivalent to a symmetric top. If all three principal
moments are equal, the body is dynamically equivalent to a sphere.
See also equivalent ellipsoid, inertia tensor, and principal axes.
A-14
mech_pdf.book Page 15 Tuesday, June 18, 2002 1:27 PM
Glossary
quaternion
A
A quaternion represents a three-dimensional spherical rotation as a
four-component row vector of unit length:
q = [nx*sin(θ/2) ny*sin(θ/2) nz*sin(θ/2) cos(θ/2)],
with q*q = 1. The vector n = (nx,ny,nz) is a three-component vector of unit
length: n*n = 1. The unit vector n specifies the axis of rotation. The rotation
angle about that axis is θ and follows the right-hand rule.
The axis-angle representation of the rotation is just [ n θ ].
See also axis-angle rotation, degree of freedom (DoF), Euler angles, primitive
joint, right-hand rule, and rotation matrix.
reference frame
(RF)
The state of motion of an observer.
An inertial RF is a member of a set of all RFs moving uniformly with respect to
one another, without relative acceleration.
An RF is necessary but not sufficient to define a coordinate system (CS). A CS
which requires an origin point and a oriented set of three orthogonal axes.
See also coordinate system (CS), local CS, and World.
RF
A reference frame (RF).
right-hand rule
The right-hand rule is the standard convention for determining the sign of a
rotation: point your right thumb into the positive rotation axis and curl your
fingers into the forward rotational direction.
See also degree of freedom (DoF), directionality, and joint.
rotation matrix
A representation of a three-dimensional spherical rotation as a 3-by-3 real,
orthogonal matrix R: RTR = RRT = 1, where RT is the transpose of R.
R
R
R
11 12 13
R = R
R
21 22 R 23
R
R
R
31 32 33
In general, R requires three independent angles to specify the rotation fully.
There are many ways to represent the three independent angles. Here are two:
• You can form three independent rotation matrices R1, R2, R3, each
representing a single independent rotation. Then compose the full rotation
A-15
mech_pdf.book Page 16 Tuesday, June 18, 2002 1:27 PM
A
Glossary
matrix R as a product of these three: R = R3*R2*R1. The three angles are
Euler angles.
• You can represent R in terms of an axis-angle rotation n = (nx,ny,nz) and θ,
with n*n = 1. Form the antisymmetric matrix ω̂ :
ω̂ =
0 –n z n y
n
0 –n x
z
–n n
0
y x
Then Rodrigues’ formula simplifies R:
R = exp ( ω̂θ ) = 1ˆ + ω̂ sin θ + ω̂ 2 ( 1 – cos θ )
The three independent angles are θ and the two needed to orient n.
See also axis-angle rotation, degree of freedom (DoF), Euler angles, primitive
joint, right-hand rule, and quaternion.
schematic
diagram
A connected group of SimMechanics blocks. An entire block diagram in a
Simulink model window has one or more schematics, each representing a
distinct machine.
sensor
Measures the motion of, or forces/torques acting on, a body or joint. A sensor
can also measure the reaction forces in a constraint or driver constraining a
pair of bodies.
In SimMechanics, a Sensor block has an open round SimMechanics Connector
Port for connecting with a Body or Joint block and an angle bracket >
Simulink outport for connecting with normal Simulink blocks, such as a Sinks
block like Scope.
See also actuator, body, Connector Port, constraint, driver, joint, and primitive
joint.
spanning tree
You obtain the spanning tree representation of a machine topology from the
full machine topology by removing everything except bodies and joints and
cutting each closed loop once.
See also closed loop system, open system, physical tree, and topology.
A-16
mech_pdf.book Page 17 Tuesday, June 18, 2002 1:27 PM
Glossary
stabilizing
constraint
A
Modifies the dynamics of a system such that the constraint manifold is
attractive, without changing the constrained solution. This constraint solver
type is computationally the most efficient.
The precision to which the constraint is maintained depends on scale or the
physical system of units.
See also constraint, machine precision constraint, and tolerancing constraint.
stiction actuator
Applies discontinuous friction forces to a joint primitive according to the
relative velocity of one body with the other body.
If this relative velocity drops below a specified threshold, the relative motion
ceases and the bodies or joints become locked rigidly to one another by static
friction.
Above that threshold, the bodies or joints move relative to one another with
kinetic friction.
See also actuator, composite joint, dynamics, joint, and primitive joint.
tolerancing
constraint
A tolerancing constraint is maintained on the constrained degrees of freedom
only up to a specified accuracy and/or precision.
This accuracy/precision is independent of any accuracy/precision limits on the
solver used to integrate the system’s motion, although constraints cannot be
maintained to greater accuracy than the accuracy of the solver.
The precision to which the constraint is maintained depends on scale or the
physical system of units.
Tolerancing constraints are useful in realistic simulation of slippage (“slop” or
“play”) in constraints.
See also constraint, machine precision constraint, and stabilizing constraint.
topology
The global connectivity of the elements of a machine.
For mechanical models, the elements are bodies and the connections are joints,
constraints, and drivers. Two topologies are equivalent if you can transform one
system into another by continuous deformations and without cutting
connections or joining elements.
An open system has no closed loops.
A-17
mech_pdf.book Page 18 Tuesday, June 18, 2002 1:27 PM
A
Glossary
• An open chain is topologically equivalent to a line; and each body is
connected to only two other bodies, if the body is internal, or one other body
if it is at an end.
• An open tree has one or more branch points. A branch point is where an
internal body is connected to more than two other bodies. A tree can be
disconnected into multiple chains by cutting at the branch points.
A closed loop system has one or more closed loops. The number of closed loops
is equal to the minimum number of joints, minus one, that must be cut to
dissociate a system into two disconnected systems.
An actual system can have one of these primitive topologies or can be built up
from multiple primitive topologies.
See also body, closed loop system, joint, and open system.
VRML
Virtual Reality Modeling Language, an open, Web-oriented ISO standard for
defining three-dimensional virtual worlds in multimedia and the Internet. The
Virtual Reality Toolbox uses VRML to create and populate virtual worlds with
user-defined bodies.
In VRML, body rotations are represented in the axis-angle form. The
SimMechanics RotationMatrix2VR block converts rotation matrices to the
equivalent axis-angle forms.
See also axis-angle rotation and the Web3D Consortium online at
www.web3d.org.
World
In SimMechanics, World is both the absolute inertial reference frame (RF) and
absolute coordinate system (CS) in that RF. World has a fixed origin and fixed
coordinate axes that cannot be changed.
The World coordinate axes are defined so that:
+x points right
+y points up (gravity in −y direction)
+z points out of the screen, in three dimensions
See also adjoining CS, coordinate system (CS), ground, grounded CS, and
reference frame (RF).
A-18
mech_pdf.book Page 1 Tuesday, June 18, 2002 1:27 PM
B
Selected Bibliography
mech_pdf.book Page 2 Tuesday, June 18, 2002 1:27 PM
B
Selected Bibliography
[1] Featherstone, R., Robot Dynamics Algorithms. Boston: Kluwer Academic
Publishers, 1987.
[2] Gill, P. E., W. Murray, and M. Wright, Practical Optimization. San Diego:
Academic Press, 1981.
[3] Goldstein, H., Classical Mechanics, Second Edition. Reading,
Massachusetts: Addison-Wesley, 1980.
[4] Goodman, L. E., and W. H. Warner, Statics. Mineola, New York: Dover
Publications, 2001 (original edition, 1964).
[5] Goodman, L. E., and W. H. Warner, Dynamics. Mineola, New York: Dover
Publications, 2001 (original edition, 1963).
[6] Haug, E. J., Computer-Aided Kinematics and Dynamics of Mechanical
Systems, Volume 1: Basic Methods. Boston: Allyn & Bacon, 1989.
[7] José, Jorge V., and Eugene J. Saletan, Classical Dynamics: A Contemporary
Approach. Cambridge: Cambridge University Press, 1998.
[8] JPL DARTS Web page on spatial operator algebra:
http://dshell.jpl.nasa.gov/references.html.
[9] Marrin, C., and B. Campbell, Teach Yourself VRML 2 in 21 Days.
Indianapolis, Indiana: Sams.net, 1997.
[10] Marsden, J. E., and T. S. Ratiu, Introduction to Mechanics and Symmetry,
Second Edition. New York: Springer-Verlag, 1999.
[11] Meriam, J. L. Engineering Mechanics, Fourth Edition, two volumes. New
York: John Wiley and Sons, 1997.
[12] von Schwerin, R., MultiBody System SIMulation: Numerical Methods,
Algorithms, and Software. Berlin: Springer-Verlag, 1999.
B-2
mech_pdf.book Page 1 Tuesday, June 18, 2002 1:27 PM
Index
A
actuator 3-40
Body Actuator block 3-40
Driver Actuator block 3-47
Joint Actuator block 3-43
Joint Initial Condition Actuator block 3-48
Joint Stiction Actuator block 3-43
analysis modes
choosing 4-2
overview 1-19
See also Forward Dynamics mode, Inverse
Dynamics mode, Kinematics mode,
Trimming mode
Angle Driver block 6-9
assembling joints
See joint
assembly tolerances 3-23
setting 4-5
B
Bearing block 6-12
block libraries 6-2
block library
viewing 2-2
Bodies library 2-4
body
Body block 3-9
body coordinate system 3-10
rigid 3-9
Body Actuator block 6-28
Body block 6-17
body coordinate system
adding and deleting 3-15
Body CS Ports
See ports
Body Sensor block 6-32
Bushing block 6-36
C
closed loop
choosing cut joint 3-32
constraint or driver block in 3-35
cutting 3-32
disassembled joint in 3-30
closed topology
See topology
computed force 3-55
computer-aided design (CAD)
see virtual reality
Connection Lines
See lines
Connection Port block 6-41
Connector Ports
See ports
constraint 3-34
Constraint block 3-34
directionality 3-35
holonomic 3-34
nonholonomic 3-34
rheonomic 3-34
scleronomic 3-34
Constraint & Driver Sensor block 6-43
constraint solvers
properties of 4-5
constraint tolerances
definition of 4-6
Constraints & Drivers library 2-5
Continuous Angle block 6-46
convex hull 5-8
coordinate system 3-9
Custom Joint block 6-48
I-1
mech_pdf.book Page 2 Tuesday, June 18, 2002 1:27 PM
Index
cutting joints
automatic in closed loops 3-32
marking cut joint 4-10
Cylindrical block 6-55
D
degree of freedom 3-17
apparent vs. independent 3-61
counting 3-61
relative 3-17
rotational 3-18
spherical 3-18
translational 3-18
weld 3-18
Demos library 2-6
Disassembled Cylindrical block 6-59
disassembled joint
See joint
Disassembled Prismatic block 6-64
Disassembled Revolute block 6-68
Disassembled Spherical block 6-72
Distance Driver block 6-75
driver 3-34
actuating 3-47
directionality 3-35
Driver block 3-34
Driver Actuator block 6-78
dynamics 1-20
E
equivalent ellipsoid 5-5
errors
See simulation
fixing errors
I-2
F
Forward Dynamics mode
overview 1-20
friction
See stiction
G
Gear Constraint block 6-82
Gimbal block 6-86
ground
Ground block 3-8
ground point 3-8
grounded coordinate system 3-9
Ground block 6-91
H
Handle Graphics
setting up visualization 5-10
special symbols 5-10
user controls 5-13
I
inertia tensor 3-10
In-Plane block 6-93
internal forces
via sensor-actuator feedback 3-57
Inverse Dynamics mode
finding forces from motion 4-14
overview 1-20
setting up motion actuation 4-14
simulating in 4-19
mech_pdf.book Page 3 Tuesday, June 18, 2002 1:27 PM
Index
J
M
joint 3-17
assembly restrictions 3-23
automatic assembly of disassembled 3-30
automatic cutting 3-32
directionality 3-21
disassembled joint 3-29
Joint block 3-17
joint primitives 3-17
manual assembly of 3-23
massless connector 3-26
primitive axis 3-20
primitive vs. composite 3-18
Joint Actuator block 6-98
Joint Initial Condition Actuator block 6-103
Joint Sensor block 6-106
Joint Stiction Actuator block 6-113
Joints library 2-5
Disassembled Joints sublibrary 2-5
Massless Connectors sublibrary 2-5
machine
representing with blocks 3-2
SimMechanics model of 3-2
mask 3-7
mass 3-10
massless connector
See joint
Mechanical Environment Settings 4-7
Constraints panel 4-9
Linearization panel 4-10
Parameters panel 4-7
Visualization panel 4-12
K
kinematics 1-20
Kinematics mode
finding forces from motion 4-14
overview 1-21
setting up motion actuation 4-14
simulating in 4-15
L
Linear Driver block 6-120
lines
Connection Lines 3-4
signal lines 3-4
N
Newton’s laws 1-20
O
ODE
See Simulink
open topology
See topology
P
Parallel Constraint block 6-123
Planar block 6-126
Point-Curve Constraint block 6-131
ports
Body CS ports 3-4
Connector Ports 3-4
Simulink ports 3-4
Prismatic block 6-140
I-3
mech_pdf.book Page 4 Tuesday, June 18, 2002 1:27 PM
Index
Q
quaternion 6-24
R
reaction force 3-55
reference frame 3-9
Revolute 6-144
Revolute block 6-144
Revolute-Revolute block 6-148
Revolute-Spherical block 6-153
RotationMatrix2VR block 6-158
S
schematic 3-2
spanning tree 3-58
Screw block 6-160
sensor 3-53
Body Sensor block 3-53
Constraint & Driver Sensor block 3-55
Joint Sensor block 3-55
Sensors & Actuators library 2-5
simulation
fixing errors 4-43
internal SimMechanics steps 4-41
Simulink
choosing ODE solver 4-3
setting ODE solver tolerances 4-4
singularities
handling 4-4
setting robust handling 4-10
Six-DoF block 6-165
spanning tree
See schematic
Spherical block 6-169
Spherical-Spherical block 6-174
I-4
stiction
classical Coulomb theory 6-116
Joint Stiction Actuator block 3-43
mixed static-kinetic friction 3-46
pure kinetic friction 3-42
subsystem
in SimMechanics 3-5
T
technical vocabulary, summary of 2-57
Telescoping block 6-178
topology
invalid 3-60
model 3-58
validity of 3-59
Trimming mode
overview 1-21
simulating in 4-24
with constrained systems 4-30
with unconstrained systems 4-24
troubleshooting
See simulation
fixing errors
U
Universal block 6-182
Utilities library 2-5
V
Velocity Driver block 6-187
virtual reality
computer-aided design (CAD) 5-21
custom interface to SimMechanics 5-20
observer controls 5-16
mech_pdf.book Page 5 Tuesday, June 18, 2002 1:27 PM
Index
setting up visualization 5-14
special symbols 5-15
Virtual Reality Toolbox
as related product 1-4
used in visualization 1-3
using with SimMechanics 5-14
visualization
body shape 5-5
customized virtual reality animation 5-20
Handle Graphics 5-10
overview 1-21
rendering vs. animation 5-3
virtual reality 5-14
W
Weld block 6-191
World 3-9
I-5
mech_pdf.book Page 6 Tuesday, June 18, 2002 1:27 PM
Index
I-6
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement