Anda di halaman 1dari 365

Matrix Methods in the Design

Analysis of MultiBody Systems

by

John J. Uicker, Jr.


Professor Emeritus
Department of Mechanical Engineering
University of Wisconsin
Madison, Wisconsin
and

Pradip N. Sheth
Associate Professor
Department of Mechanical Engineering
University of Virginia
Charlottesville, Virginia

Copyright 2007, J. J. Uicker, Jr., and P. N. Sheth


This material is solely for the personal use of students of the courses at the
University of Wisconsin - Madison and University of Virginia. It is not to be sold,
reproduced, or further distributed.

Preface

Preface
Multibody mechanical systems have an important and pervasive presence in both real and virtual
mechanisms, linkages, and machinery. They appear in robotic and other automated machines
and vehicles, on and off road vehicles, appliances, aerospace systems, biomechanical models of
musculo-skeletal systems including gait and athletic activity models, rehabilitation aids and
assistive devices, injury models of occupant dynamics in vehicular crash or other events, and
many other devices and systems. Recent applications of tensegtity structures to deployable
systems in space as well as to kinetic architectural systems have further increased the interest in
multibody systems. Computer graphics animation technology also relies on multibody
simulations.
During the past three decades, powerful general-purpose analytical and computational tools
have evolved for analyzing the spatial motions, forces, and dynamics of these systems. Control
and dynamic aspects of the design of real-time controllers for these systems are evolving into a
unified analytic treatment. Matrix modeling procedures and associated symbolic/numeric
computational schemes provide a generic computational foundation for analyzing these systems.
This textbook focuses on the analytic techniques that are fundamental to the modeling and
analysis of these systems.
A number of texts are available dealing with analytical and computational methods for
multibody mechanical systems, and an obvious question is: why this textbook and what makes
this textbook unique? Our motivation for writing this textbook is summarized in the following:

The material presented in this textbook is developed from the original research, software
development, and industrial applications by the authors and their students over the past three
decades. Both authors have been involved in the evolution and development of the original
Denavit-Hartenberg matrix model of kinematic analysis into general purpose computational
tool IMP1, research and industrial applications of IMP and the associated methods. This
textbook presents the general purpose analytical formulations and powerful computational
procedures which have proven highly successful and efficient in tools such as IMP.

The power and ease of use made possible by general-purpose higher level languages such as
MATLAB provide significant complementary opportunities for applying these analytical
foundations to complex systems, and the ability to produce customized codes for complex
systems is exploited in this textbook, by utilizing the pre-packaged code provided as a
supplement to this textbook. This pre-packaged code includes (i) the entire C language based
library of subroutines and functions comprising the IMP system, and (ii) general purpose
MATLAB scripts in m files. These two sources of buliding blocks provide a powerful toolset

1.

P.N.Sheth and J.J.Uicker, "IMP (Integrated Mechanisms Program), A Computer-Aided Design Analysis System
for Mechanisms and Linkages," Journal of Engineering for Industry, ASME Transactions, vol. 94, May 1972,
pp. 454-464.

Preface

ii

for the readers to create customized software for their own multibody systems, both for
custom simulations and also for embedding the code in a control system. The reader may
optionally utilize a programming language such as C, FORTRAN, or VISUAL BASIC to
complete some homework problems, although the prepackaged toolset in C or MATLAB will
allow much rapid prototyping of simulation.

The analytical and the numerical processes presented in this textbook have become unifying
foundations upon which further developments in multibody systems continue to occur. This
textbook , therefore, is intended to establish a research and development reference for
engineers in industry and academia.

Much of the material presented in this textbook forms the basis for a graduate level course
taught at the University of Virginia and at the University of Wisconsin-Madison, although
additional details are included here that may be too long for a formal one semester course.
Although usually taught for mechanical engineering students, the material should be
understandable to those with technical backgrounds including:
First year college-level physics (statics and dynamics);
Some matrix algebra (at least matrix multiplication);
Interest in digital simulation of mechanical systems.
Some exposure to programming with MATLAB or C, although this can be learned rather
quickly during the course.

The typical audience of students utilizing this material has included:


Graduate students or advanced senior level students in Mechanical and Aerospace
Engineering with interest in dynamics and controls, robotics, spacecraft and other aerospace
vehicle systems, and associated subsystems such as deployable structures, machine systems,
on and off road vehicle systems, occupant dynamics, and injury models in accident scenarios.
Biomechanics students interested in computer models of musculo-skeletal systems, gait
analysis, rehabilitation aids, or athletic activity models.
Electrical engineering students interested in robotics and automation.
Computer Science students interested in animation and visualization of dynamic systems.
Students from the School of Architecture interested in design and development of kinetic
structures.

The topics covered in a course from this text can develop some or all portion(s) of the
following list, putting emphasis on topics in which the participants show the most interest:

Historical perspectives on numerical kinematics and dynamics.

Definitions and terminology.

Review, if needed, of matrix algebra, through multiplication and inversion.

Coordinate systems and the location of a point in 3-D. Homogeneous coordinates.

Transformations between coordinate systems. Homogeneous 4 4 transformation matrices.

Preface

iii

Constraint equations and their transformation matrix representation. Definitions of joint


types, joint variables; degrees of freedom for (relative) joint motions. Modeling of three
dimensional rotations with Euler parameters versus Euler angles.

Representation of body shapes; kinematic shape matrices. Significance and ramifications of


the rigid-body assumption. Its relationship to representation of physical shapes (for graphic
animation) and to solid modeling (for collision detection).

Topological (connectivity) analysis of articulated mechanical systems. Open-loop versus


closed-loop systems. Loop and tree determination.

The (relative) motions allowed by various joint types. Motion axes. Screw coordinates.
Plcker vectors.

Derivatives of transformation matrices and their geometric interpretation. Numeric methods


for determining such derivatives.

Loop-closure constraints on relative velocities. The Jacobian matrix for the system.

Mobility of the system and independent degrees of freedom. Determination of independent


versus dependent joint variables. Choice of independent variables and its impact on
numerical conditioning. Interpretation of the determinant of the Jacobian as a "quality
index".

Numerical solution of the loop-closure equations. Closed-form versus numerical solution


trade-offs. Single position analysis of the system. Discussion of accuracy and tolerances.

Distinguishing kinematic from static from dynamic analysis.

Velocity and acceleration analysis; numeric solutions.

Mass distribution and the inertia matrix of a body.

Formulation of kinetic and potential energy expressions.

Lagranges equation. The (nonlinear) dynamic equations of motion of a mechanical system.


Comparison of approaches and results with a minimum set of generalized coordinates versus
the full set using Lagrange multipliers for constraints. Trade-offs.

Linearization of the dynamic equations of motion. Recognition of the mass and stiffness
matrices, and their dependence on system geometry. Complexity caused by gyroscopic and
Coriolis accelerations.

Reduction of the equations of motion to the static case.

Numeric search for static equilibrium position. Newton-Raphson versus gradient search
techniques. Recognition of stable, unstable, or neutral equilibrium positions. Discussion of
accuracy and tolerances.

Preface

iv

Frequency domain analysis. Eigenvalues and eigenvectors and their physical interpretations.
Determination of resonant frequencies, damping ratios, and stability. Modal transfer
functions.

Fourier and Laplace transforms of the equations of motion. Dynamic system transfer
functions and their poles and zeroes. System stability. Control system assumptions which do
NOT fit articulated systems.

Discussion of numeric time integration techniques and their fitness for the solution of the
present class of differential equations.

Stiff differential equations. Gears algorithm versus modal integration. Choice of time-step.

Discussion of numeric integration accuracy and tolerances, their dependence on time-step,


and how integration error may be sensed. Variable time-step methods.

Discussion of various models of damping, and how they may be incorporated into the
equations of motion.

Derivatives of kinematic formulae with respect to geometric (dimensional) parameters.

Formulation of static and dynamic constraint force analysis by virtual work approach versus
solution of Newtons laws.

Over-constraint and the numeric detection of indeterminate force components. Their effects
on analysis under different solution techniques.

Discussion of virtual derivatives and their relationship to dimensional accuracy


(manufacturing tolerances).

Discussion of the use of virtual derivatives for design optimization.

Discussion of the application of the material presented in this text to other areas of
CAD/CAM. Formulation of other problems in geometry, particularly moving geometry.

It must be recognized that the material presented in this text is intended for numeric solution,
not hand solution. A particularly simple multibody system is chosen and is solved by hand
throughout most of the chapters to demonstrate the process of solution. The pre-developed
functions written in C from IMP and MATLAB code (m files) which may accompany this text
are intended to facilitate piecing together numeric solutions for more complex multibody systems
by writing appropriate function calls in a main script for a specific problem.
The matrix methods have been extensively tested, both in the classroom and in the world of
engineering industry. In the classroom, the authors have tested the drafts of this text in
senior/graduate level courses at the University of Wisconsin Madison and the University of
Virginia for several years, and the authors are indebted to all of those students for their trials and
their suggestions for improvements. As for use in engineering industry, the methods presented
herein have been the basis for the software system known as the Integrated Mechanisms Program

Preface

(IMP). First released in 1972, IMP has continued to be extensively refined, updated, and used in
many companies and academic institutions to analyze widely diverse mechanical systems. IMP
continues to be used and its many users also deserve much credit for the authors insights and the
experience reflected in the methods described herein.

J. J. Uicker, Jr.
P. N. Sheth

Preface

vi

Table of Contents
Preface
Table of Contents
List of Figures
Chapter 1: Concepts and Definitions
Chapter 2: Topology and Structural Analysis
Chapter 3: Modeling Mechanisms with Transformation Matrices
Chapter 4: Position Analysis (Analytic)
Chapter 5: Displacements and Derivatives
Chapter 6: Position Analysis (Numeric)
Chapter 7: Velocity Analysis
Chapter 8: Acceleration Analysis
Chapter 9: Modeling Dynamic Aspects of Machinery
Chapter 10: Dynamic Equations of Motion
Chapter 11: Linearized Equations of Motion
Chapter 12: Equilibrium Analysis
Chapter 13: Frequency Response of Machinery

Preface

vii

Chapter 14: Time Response of Machinery


Chapter 15: Collision Detection
Chapter 16: Impact Analysis
Chapter 17: Constraint Force Analysis
Chapter 18: Accounting for Flexibility
Chapter 19: Sensitivity to Design Tolerances
Chapter 20: Design Optimization of Machinery

Preface

viii

Notation
A

global second kinematic derivative operator matrix

B
C
D

global derivative operator matrix

error matrix for loop closure equation

force

generalized force

H
I

identity matrix

mass matrix of a link

Jacobian

stiffness matrix

Lagrangian

mass matrix

N
O

origin of coordinates

P
link-joint path matrix;
Cartesian point position vector
Q

local derivative operator matrix

absolute point position

shape transformation matrix

Preface

ix

homogeneous transformation matrix

kinetic energy

potential energy

global first kinematic derivative operator matrix

X
Y
Z
a

number of connected assemblies

b
c

general constant

d
degree of a link;
differentiation operator symbol;
infinitesimal change symbol;
general constant distance
e

2.71828 (exponential constant)

f
mobility;
number of degrees of freedom
g

gravitational acceleration

general index

i
general index;
link label
i

Cartesian x-axis unit vector

j
general index;
joint label
j-

link label of link preceding joint j

j+

link label of link following joint j

Preface

Cartesian y-axis unit vector

k
general index;
generalized coordinate label
k

Cartesian z-axis unit vector

number of links;
index of fixed link
m

general index

number of joints

o
p

Cartesian point position vector

q
r

local homogeneous point position vector

general distance or displacement

t
time;
intermediate axis
u
auxiliary coordinate axis;
curve shape function
v
auxiliary coordinate axis;
curve shape function
w
homogeneous coordinate;
auxiliary coordinate axis
x

coordinate axis

coordinate axis

coordinate axis

Preface

xi


u-axis ("roll") Euler angle;
global acceleration operator matrix

v-axis ("pitch) Euler angle

w-axis ("yaw") Euler angle

small increment operator symbol;


Kronecker delta

partial differentiation operator symbol

small quantity;
tolerance

general angle

avoid (similar to i)

avoid (similar to k)

number of loops;
eigenvalue

coefficient of Coulomb friction

avoid (similar to v)

avoid (similar to o)

3.14592654

radius of curvature

pitch of a helix

time increment

Preface

xii

avoid (similar to u and v)

vector of joint variables

avoid (similar to X and X)

vector of generalized coordinates

global velocity operator matrix

Preface

xiii

avoid (similar to A)

avoid (similar to B)

link-joint incidence matrix

change symbol; displacement prefix

avoid (looks like E)

avoid (looks like Z)

avoid (looks like H)

rotation sub-portion of transformation matrix

avoid (looks like I)

avoid (looks like K)

loop-joint loop matrix

avoid (looks like M)

avoid (looks like N)

avoid (looks like O)

product operator

avoid (looks like P)

summation operator

avoid; (looks like T)

6-D screw axis or line coordinate vector

joint transformation matrix

avoid (looks like X)

Preface

xiv

Preface

Ball vectors or Plcker vectors

xv

Position Equations
Generalized coordinates
1

2
=
!

f

....................................... (4-1)

Joint variables
1j
1
2

j
2
= j =
!
!
f

j j
n

j = 1, 2, , n ...............................(4-2)

Adjacent link transformation


T j , j + = S j , j j S j +1, j

j = 1, 2, , n ...............................(4-4)

Transformation products along a path


Tik = Ti ,i +1Ti +1,i + 2 !Tk 1,k

i, k = 1, 2, , .............................(4-5)

Transformation products
Tik = TihThk

i, h, k = 0,1, , .........................(4-6)

Inverse transformation
Tik1 = Tki

i, k = 0,1, , ...........................(4-11)

Position of a point of link i


Ri = T0 Ti ri

i = 1, 2, , ................................(4-9)

Loop closure
T00 = I

Preface

i = 1, 2, , .............................(4-10)

xvi

First Kinematic Derivative Equations


Derivative operator for joint j

Qj =
j ( j ) j 1
j

j = 1, 2, , n .............................(5-32)

Kinematic derivative of a joint transformation

j ( j ) = Q j j ( j )
j = 1, 2, , n .............................(5-28)
j
Derivative operator for joint j in global coordinates
D j = (T0 j S j j ) Q j (T0 j S j j )

j = 1, 2, , n .............................(5-29)

Kinematic derivative of the global position of link i

T0 i ( j ) = P ( i, j ) D jT0i ( j )
i = 1, 2, , j = 1, 2, , n ......(5-31)
j
Kinematic derivative of the inverse global position of link i
1
T0 i ( j ) = T0i 1 ( j ) P ( i, j ) D j
i = 1, 2, , j = 1, 2, , n ......(8-20)
j
Kinematic derivative of global position of a point of link i

Ri ( j ) = P ( i, j ) D j Ri ( j )
i = 1, 2, , j = 1, 2, , n
.(5-30)
j
First kinematic derivative of a joint variable

j ,k = j
j = 1, 2, , n
k

k = 1, 2, , f ......(7-8)

Solution for first kinematic derivatives of joint variables


n

( i, j ) D
j

j ,k

=0

i = 1, 2, ,

k = 1, 2, , f

j =1

J = 0

....................................................(7-9)

Kinematic derivative operator for link i


n

Wi ,k = P ( i, j ) D j j ,k

i = 1, 2, ,

k = 1, 2, , f .....(7-17)

j =1

Kinematic derivative of the global position of link i


T0i
= Wi ,k T0i
i = 1, 2, , k = 1, 2, , f .....(7-18)
k

Preface

xvii

Kinematic derivative of global position of a point of link i


Ri
Ri,k =
= Wi ,k T0i ri = Wi , k Ri
i = 1, 2, , k = 1, 2, , f .....(7-23)
k

Kinematic derivatives of a Dj operator matrix


D j
1
= P ( j , h ) Dh D j D j Dh + j , h (T0 j S j , j ) Qj (T0 j S j , j )

h, j = 1, 2, , n .............(8-22)

D j
k

= W j ,k D j D jW j ,k + (T0 j S j , j ) Qj j , k (T0 j S j , j )

Preface

j = 1, 2, , n

k = 1, 2, , f ....(8-23)

xviii

First Time Derivative Equations


Joint variable velocities
$ = $

......................................(7-13)

Solution for joint variable velocities


n

( i, j ) D $
j

=0

i = 1, 2, , .............................(7-14)

j =1

J $ = 0

......................................(7-15)

$
$dep = J 111J 12 J 111J 13 $ = dep

......................................(7-16)

Velocity operator for link i


n

i = P ( i, j ) D j$j

i = 1, 2, , ..............................(7-20)

j =1

i = Wi ,k$ k

i = 1, 2, , ..............................(7-22)

k =1

Velocity of a point of link i


R$i = i Ri

i = 1, 2, , ..............................(7-25)

Velocity of link i
T$0i = iT0i

i = 1, 2, , ..............................(7-21)

Time derivative of a Dj operator matrix


1
D$ j = j D j D j j + (T0 j S j , j ) Qj$j (T0 j S j , j )

j = 1, 2, , n .............................(8-24)

Preface

xix

Second Kinematic Derivative Equations


Second kinematic derivative of a joint variable
h h, j
h = 1, 2, , n j , k = 1, 2, , f .(8-25)
h, j ,k =

=
k j k
h,k , j = h, j ,k
j , k = 1, 2, , f .........................(8-35)
Solution for joint variable second kinematic derivatives
n
i = 1, 2, ,
1
.(8-27)
Ci, j ,k = ( i, h ) Wh ,k Dh DhWh ,k + (T0 h S h ,h ) Qh (T0 h S h ,h ) h, j

j , k = 1, 2, , f
h =1

= J 1 C%
j , k = 1, 2, , f .........................(8-33)
dep , j , k

( C% )
j ,k

11

J J

1
21 11

( )
( C% ) = 0
j ,k

j ,k

j , k = 1, 2, , f .........................(8-34)

Second kinematic derivative operator for link i


n

1
Ai , j ,k = P ( i, h ) Dhh, j , k + Wh ,k Dh DhWh ,k + (T0 h S h ,h ) Qh (T0 h S h ,h ) h, j

h =1
i = 1, 2, , j , k = 1, 2, , f ..(8-45)
Ai ,k , j + Wi ,kWi , j = Ai , j ,k + Wi , jWi ,k
i = 1, 2, , j , k = 1, 2, , f ..(8-47)

Second kinematic derivative of global position of link i


T0 i
i = 1, 2, , j , k = 1, 2, , f ..(8-46)

= ( Ai , j ,k + Wi , jWi ,k ) T0 i
k j
Second kinematic derivative of position of a point of link i
Ri
i = 1, 2, , j , k = 1, 2, , f ..(8-48)
Ri, j ,k =

= ( Ai , j ,k + Wi , jWi , k ) Ri
k j

Preface

xx

Second Time Derivative Equations


Joint variable accelerations
f
f
f
d 2
$$h = 2h = h, j$$ j + h, j , k$ j$ k
dt
j =1
k =1 j =1

h = 1, 2, , n .............................(8-36)

Acceleration operator for link i


n

1
i = P ( i, h ) Dh$$h + h Dh Dh h + (T0 h Sh ,h ) Qh$h (T0 h Sh ,h ) $h
h =1

i = 1, 2, , ......(8-50)

i = Wi , j$$ j + Ai , j ,k$ k$ j
j =1

i = 1, 2, , ..............................(8-51)

j =1 k =1

Acceleration of a point of link i


f
f
f
$$ = W $$ + ( A + W W )$ $ R
R
i
i, j
i , j ,k
i , j i ,k
j k
i
k =1 j =1
j =1

$$ = ( + ) R
R
i
i
i i
i

i = 1, 2, , ..............................(8-55)

Acceleration of link i
f
f
f

T$$0i = Wi , j$$ j + ( Ai , j ,k + Wi , jWi ,k )$ k$ j T0i


j =1 k =1
j =1

$$
T0i = ( i + ii ) T0i

i = 1, 2, , ..............................(8-53)

Preface

i = 1, 2, , ..............................(8-54)

i = 1, 2, , ..............................(8-52)

xxi

Equations of Motion
Non-linear equations of motion
f

t
t
Trace

Wh ,i (T0 h J hT0 h )Wh , j $$ j


j =1
h =1

f
f
t

+ Trace Wh ,i (T0 h J hT0th ) ( Ah , j ,k + Wh , jWh ,k ) $ j$ k
j =1 k =1
h =1

+ h,i chh, j
j =1 h =1
n

+ h,i kh (h h 0 )

i, j = 1, 2, , FGC

h =1

0
0

= g tWh ,i (T0 h J hT0th )


0
h =1

1
n

+ h f h ( t )
h =1

Linearized Equations of Motion for FGCs


[ M ]{$$x} + [ D ]{ x$} + [ K ]{ x} = {F }
Generalized small displacements of FGCs
x j = j ( t + t ) j ( t )
j = 1, 2, , FGC
Generalized mass matrix

M i , j = Trace Wh ,i (T0 h J hT0th ) Wht, j


h =1

i, j = 1, 2, , FGC

Generalized damping matrix


n

Di , j = h,i chh, j

i, j = 1, 2, , FGC

h =1

Generalized stiffness matrix

Preface

xxii

K i , j = kh h,i , j (h h 0 ) + h,ih, j
h =1

0
0

t
t
g ( Ah ,i , j + Wh ,iWh , j ) (T0 h J hT0 h )
0
h =1

1

i, j = 1, 2, , FGC

h,i , j f h ( t )
h =1

Generalized force vector


SGC

Fi = Trace Wh ,i (T0 h J hT0th ) Wht, j $$ j


j
h =1

f
f
t

Trace Wh ,i (T0 h J hT0th ) ( Ah , j ,k + Wh , jWh ,k ) $ j$ k
j =1 k =1
h =1

SGC n

h,i chh, j$ j
j

h =1

h,i kh (h h 0 )

i = 1, 2, , FGC

h =1

0
0

t
t
g Wh ,i (T0 h J hT0 h )
0
h =1

1
n

fh (t )
+ h,i
h=1

Preface

xxiii

Chapter 1: Concepts and Definitions


1.1 Mechanical Design: Synthesis versus Analysis
There are two completely different aspects of the study of mechanical systems, design and
analysis. The concept embodied in the word design might be more properly termed synthesis,
the process of contriving a scheme or a method of accomplishing a given purpose. Design is the
process of developing the sizes, shapes, material compositions, arrangements of parts, and
manufacturing processes such that the final system will perform a prescribed task. Although
there are many phases of the design process that can be approached in a well ordered, scientific
manner, the process is by its very nature as much an art as a science. It calls for imagination,
intuition, creativity, judgement, and experience. The role of science in the design process is to
provide tools to be used as the designer practices this art.
In the synthesis of a mechanical system there are three basic stages which correspond
approximately to three basic steps in the design process. The first stage is designated type
synthesis; it deals with the fundamental decisions a designer makes as to the type of machine,
device, or system to be used. Initially, for example, such decisions include whether a machine
should be used at all, or whether an electronic circuit or hydraulic device should be used instead.
After deciding on use of a mechanism, for example, we must then ponder the relative merits of
linkages as compared with gear trains or perhaps belts and pulleys.
Once the type synthesis has been accomplished, we have some general boundaries set on
what the final system will be like. Further study must then go into the details of specifying its
basic internal characteristics. The types and numbers of parts and the types and numbers of
joints connecting them must be decided. This process is called number synthesis. At this stage
we do not concern ourselves with the exact detailed shapes of the parts or their strength or wear
characteristics, but we are concerned with their overall arrangement. "Will this configuration
have the desired degrees of freedom, and can it be proportioned to properly perform the task?"
are typical of the questions to be considered at this time.
Given at least tentative answers to these questions, we are in a position to attempt the third
stage, dimensional synthesis. It is here that we assign dimensions, materials, weights, strengths,
and other properties to each of the members or parts of the design. Either by calculation, or by
experimental tests, or by intuition and experience we make all of the detailed decisions which are
necessary before the product can be manufactured. It is during the process of evaluating the
various interacting alternatives and choosing an hoped for optimum among them that we find
need for a large collection of mathematical and scientific methods. These tools do not make the
decisions for us; we have every right to exert our imagination and creative abilities, even to the
extent of overriding mathematical recommendations. Science based techniques are useful,
however, in generating, comparing and judging various alternatives.
Probably the largest collection of scientific methods at our disposal falls into a category

Chapter 1 Concepts and Definitions

called analysis. These are the techniques which allow us to critically examine an already existing
or proposed design in order to judge its suitability for a given task. Thus, in itself, analysis is not
a creative science, but rather is used for evaluating and rating things already conceived. We
should also bear in mind that, though the majority of our effort is spent on techniques of analysis,
the real goal is synthesis, the design of a product or system. Analysis is simply a tool. It is,
however, a vital tool and will invariably be used during the design process.

Figure 1.1 The science of mechanics.


The branch of scientific analysis which deals with motions and forces is called mechanics.
As shown in Figure 1.1, it is made up of two parts, statics and dynamics. Statics deals with the
analysis of stationary systems, that is, those in which time is not a factor. Dynamics, on the other
hand, deals with systems which change with time.
Dynamics is also made up of two major disciplines, first distinguished by Euler in 1775:1
"The investigation of the motion of a rigid body may be conveniently separated
into two parts, the one geometrical, the other mechanical. In the first part, the
transference of the body from a given position to any other position must be
investigated without respect to the causes of the motion, and must be represented
by analytical formulae which will define the position of each point of the body.
This investigation will therefore be referable solely to geometry, or rather to
stereotomy.
"It is clear that by the separation of this part of the question from the other, which
belongs properly to Mechanics, the determination of the motion from dynamical
principles will be made much easier than if the two parts were undertaken
conjointly."
These two aspects of dynamics were later recognized as the distinct sciences of kinematics

1.

Leonhard Euler (1707-83), Novi commentarii Academiae Petropolitanae, vol. 20, 1775; also in Theoria motus
corporum solidorum seu rigidorum ..., 1765. The translation is by A. B. Willis, Principles of Mechanism, 2nd
ed., p.viii, 1870. The word "stereotomy" at the end of the first paragraph refers to the art of stonecutting.

Chapter 1 Concepts and Definitions

and kinetics, which treat the motion and the forces producing it, respectively.2
The predominate problem in mechanical system analysis, as will become evident, is often one
of kinematics, and one major emphasis in this book is on that topic. Statics and kinetics,
however, are also important parts of any complete design analysis, and these topics are covered
in depth as well.

1.2 Multibody Systems and Mechanisms3


A multibody syatem can be defined as a collection of bodies (or parts), in which some or all of
the bodies are interconnected by joints which constrain the relative motion between the jointed
bodies. However, the presence of joints or connections is not an absolute requirement for a
multibody system; the bodies may be "restrained", rather than constrained, by interconnections
with other bodies via such elements as springs or dampers. There are a number of abstract
concepts which must be considered for a precise and a rigourous definition of a multibody
system for modeling purposes, including (i) a "body", (ii) a "joint", (iii) constrained relative
motion, (iv) restraint, (v) "spring", and (vi) "damper".
The general definition of a multibody system covers a very large variety and many different
kinds of systems. The radio controlled car model shown in Figure 1.2 is an example of a
multibody system.

Figure 1.2 Multibody model of a radio controlled car showing the front and the rear
suspension systems.

2.

Kinematics was first defined as a separate study by Andre Marie Ampere (1775-1836) in his Essai sur le
Philosophie des Sciences, ou exposition analytiqiue dune classification naturelle de toutes les connaissances
humaines, Paris, 1834. He chose the French name cinmatique from the Greek word meaning motion.

3.

An interesting narrative on the history of mechanism design and analysis is found in R. S. Hartenberg and J.
Denavit, Kinematic Synthesis of Linkages, McGraw-Hill, Inc., New York, 1964, pp. 1-27.

Chapter 1 Concepts and Definitions

The NASA Mars Exploration Rover, Figure 1.3, is another example of a multibody system.

Figure 1.3 NASA Mars Exploration Rover is a multibody system,


Biomechanical models of human motion, as shown in Figure 1.4, and also bipedal walking
robots, such as that in Figure 1.5, represent another example of multibody systems.

Figure 1.4 Biomechanical model for human gait and detailed model of a foot with articulated
appendages are examples of multibody systems.

Chapter 1 Concepts and Definitions

Figure 1.5 The MIT/NSF bipedal Walking Robot is another example of a multibody system.
Deployable systems and structures are widely used in space applications, as shown in Figure 1.6.
These systems are also taking an important role in the design of new architectural concepts called
"kinetic structures". These may also involve tensegrity systems, and all of these are examples of
multibody systems.

Figure 1.6 Deployment sequence of a hoop/column space antenna (NASA Langley Research
Center).
Stewart's Platform (shown in Figure 1.7) has been a popular system for a large number of
applications since the 1960's, including many recent adaptations as parallel robotic systems.
Parallel (Figure 1.8) and serial robots (Figure 1.9) are also examples of multibody systems.

Chapter 1 Concepts and Definitions

Figure 1.7 Stewart's Platform is a multibody mechanical system.

Figure 1.8 Multibody examples of parallel manipulators.

Figure 1.9 The standard serial manipulator is a multibody system.


Mechanisms and machinery constitute important classes of multibody systems. Of course,
the variety of possible systems is unlimitedone example of a mechanism is shown in Figure

Chapter 1 Concepts and Definitions

1.10.

Figure 1.10 Turbula machine for powder blending applications; taken from
http://www.glenmills.com/product_showcase/index-powder.shtml.
Speaking rigorously, a mechanism is defined as an assemblage of mechanical parts, movably
connected by joints to form a mechanical chain with one part fixed and having the purpose of
transforming motion.4 In contrast to a general multibody system, a "mechanism" is considered to
have one of the bodies fixed, while a general multibody system can be an unrooted free flying
system. Although this definition includes several terms which must themselves be more precisely
defined, this is the inherent pitfall of any first definition. However, a start must be made
somewhere, and this definition is perhaps as good a place as any.
Some light might be shed on the meaning of the word mechanism by discussing first what is
not meant. Let us distinguish first between the words mechanism and structure. A structure is
also an assemblage of mechanical parts connected by joints, but its purpose is definitely not to
transform motion. A structure, such as a truss, is intended to be rigid. It can perhaps be mobile
in the sense of being moved from place to place. However, it has no internal mobility; no
relative motion takes place between its parts or members. A mechanism on the other hand does
have this freedom among its various members to move relative to one another. Indeed the whole
purpose of a mechanism is to utilize these relative motions in transforming or modifying some
given input motion to produce a different output motion. For example, a shaft set in a pair of
bearings is not a mechanism since the intent is to transmit the input motion to the output, rather
4.

Much of the material in this chapter is based on definitions originally set down by Professor Franz Reuleaux
(1829-1905), a German kinematician whose work, Theoretische Kinematik: Grundzge einer Theorie des
Maschinenwesens, Friedrich Vieweg & Sohn, Braunschweig, 1875, marked the beginning of a systematic
treatment of kinematics. For an English translation including additional reading see Alexander. Blackie William
Kennedy(1847-1928), Kinematics of Machinery, Outlines of a Theory of Machines, McMillan & Co., Ltd.,
London, 1876; reprinted by Dover Publications, Inc., New York, 1963. Reuleauxs second book, Lehrbuch der
Kinematik, Zweiter Band: Die praktischen Beziehungen der Kinematik zur Geometrie und Mechanik, Friedrich
Vieweg & Sohn, Braunschweig, 1900, also made a lasting impression but, unfortunately, has not been translated
into English.

Chapter 1 Concepts and Definitions

than to transform it, but it can be viewed as a multibody system. A speed reducing set of gears
between input and output shafts, on the other hand, does form a mechanism.
This brings us to distinguish between the words machine and mechanism. A machine is an
assemblage of fixed and moving parts for doing work, a device for applying power or changing
its direction. It differs from a mechanism in its purpose. In a machine, force, torque, work, and
power are the predominant concepts. In a mechanism, even though it may transmit power or
force, the predominant concept is one of altering motion.

1.3 Planar, Spherical, and Spatial Mechanisms


Mechanisms, like so many other things, may be categorized in several different ways in order to
better emphasize their similarities and differences. One such grouping divides mechanisms into
planar, spherical, and spatial categories. Of course, all three groups have many things in
common, but there must also be some criterion to distinguish them. The criterion is to be found,
in this instance, in the characteristics of the motions of the individual parts.
A planar mechanism is one in which all particles describe planar curves and all of these
curves lie in parallel planes; that is, the loci of all points are planar curves parallel to a common
plane. Due to this characteristic it is possible to represent the locus of any chosen point in its true
size and shape on a single drawing or figure. The motion transformation of any such mechanism
is called coplanar. The planar four-bar linkage, the disk-cam and follower, and the slider-crank
mechanism are familiar examples of planar mechanisms.
A spherical mechanism is one in which each moving body (or its extension) has some point
which remains stationary as the system moves and in which the stationary points of all bodies lie
at a common location. That is, the locus of any point is a curve contained in a spherical surface
and the spherical surfaces defined by several arbitrarily chosen points are all concentric. The
motions of all particles can therefore be completely described by their radial projections on the
surface of a unit sphere with properly chosen center. The Hooke universal joint is perhaps the
most familiar example of a spherical mechanism.
Spatial mechanisms, on the other hand, include no such restrictions on the relative motions of
their particles. The motion transformation is not necessarily coplanar, nor must it be concentric.
A spatial mechanism may have particles with loci of double curvature. Any linkage which
contains a screw joint, for example, is a spatial mechanism since the relative motion within a
screw joint is helical.
Thus, the overwhelmingly large category of planar mechanisms, and also the category of
spherical mechanisms, are only special cases or subsets of the more inclusive category, spatial
mechanisms. They occur as a consequence of special geometry in the locations or orientations of
their joint axes. Unique geometric situations can yield their own particular mechanisms.
If planar and spherical mechanisms are only special cases of spatial mechanisms, why is it
desirable to identify them separately? Because of the particular geometric conditions which

Chapter 1 Concepts and Definitions

identify these types, many simplifications are possible in their design and analysis. As pointed
out above, it is possible to observe the motions of all particles of a planar linkage in true size and
shape from a single direction. Said in another way, all motions can be represented graphically in
a single view. Thus graphical techniques are well suited to their solution, as is demonstrated by
an abundance of texts on the kinematics of mechanisms. Since spatial mechanisms do not enjoy
this fortunate geometry, visualization can become difficult, and more powerful techniques are
needed for their analysis.
Since the vast majority of mechanisms in use today are planar, we may question the need for
the more complicated techniques to be developed in later chapters. There are several reasons
why more powerful methods are of value, even though the "simpler" graphical techniques have
been mastered. First, they provide new, alternative methods which solve the same problems in a
different way. Thus they provide a means for checking results. Certain problems by their nature
may be more amenable to one method than to another. Secondly, methods which are analytic in
nature are better suited to solution by digital computation than are graphical techniques. Thirdly,
even though the majority of useful linkages are planar and well suited to graphic solution, the
few remaining must also be analyzed, and techniques should be known for analyzing them.
Fourthly, one possible reason that planar linkages are so common is that good methods of
analysis of the more general spatial systems have not been readily available. Therefore their
design and use has not been common, even though they may inherently be better suited for
certain applications. Finally, spatial mechanisms are much more common in practice than their
formal description indicates.
Consider a "planar" four-bar linkage. It has four bodies connected by four pin joints whose
axes are "parallel". This parallelism is a mathematical hypothesis; it is not a reality. The joint
axes, as produced in a shop -- in any shop, no matter how good -- are only approximately
parallel. If the joint axes are far out of parallel there is binding in no uncertain terms, and the
system only moves because the bodies flex and twist producing loads in the bearings. If the axes
are nearly parallel, the system operates because of looseness in the bearings or flexibility of the
bodies. A common way for compensating for small non-parallelism is to connect the bodies
with self-aligning bearings, actually spherical joints allowing three-dimensional rotation. Such a
planar linkage is thus really a low-grade spatial mechanism.

1.4 Mechanical Part


Let us now look more closely at one of the terms which has been used frequently in the previous
sections. The term is part, or more precisely, mechanical part. A mechanical part is defined as a
machine component which is considered completely rigid and which may contain joint elements
for connecting it to other parts.
One of the key concepts in this definition is that of rigidity. Since the purpose of a
mechanism is to transform motion, its analysis usually begins with a study of its kinematics. The
assumption that all members or bodies are rigid is a key in isolating kinematic effects from those
of kinetics; it allows major simplifications in the analysis process. Stated explicitly, the
assumption is that there is no change in distance between any two arbitrarily chosen points of the

Chapter 1 Concepts and Definitions

same mechanical part no matter what loads are applied.


It is true that no real machine part is completely rigid, each having elastic (and also thermal)
properties characteristic of its shape and material. As such the mechanical part is an idealization
of a real machine component. But it is this idealization which allows the kinematics of a
mechanical system to be studied separately from kinetic (and thermal) effects. Machines which
depend on flexibility of their members for their motion, such as the four-bar linkage with
nonparallel axes discussed earlier, cannot be idealized as consisting of mechanical parts and,
therefore, do not fit the strict definition of a mechanism. Analysis techniques for such machines
must either accept this approximation, or will necessarily be complicated by the need for
simultaneous kinematic and kinetic (and perhaps even thermal) analysis.
Whereas a real machine part is made up of particles of mass and has material properties, a
body has only geometric properties, that is, points or locations. This brings us to the concept of
the extended mechanical part. The entire three-dimensional space which contains a mechanical
part and which moves with the part can be thought of as an extension of that part. Thus it can be
quite proper to speak of points on a body which fall outside of the boundaries of its physical
shape. Also because of this concept it is permissible to speak of coincident points or locations on
two or more bodies, even though two different physical parts cannot occupy the same space at the
same time.
As mentioned in the definition of a mechanism, a body carries the elements (mating surfaces)
of joints which connect it to other bodies. Thus bodies can be subdivided into categories wherein
unary parts describe those carrying a single joint element, binary parts carry two joint elements,
ternary parts carry three, and so on. It should be noticed that, in kinematics, the only function
which a body serves is to insure that the relative positions of its joint elements do not change,
that is, the purpose of a body is to hold its joint elements in constant geometric relationship.

1.5 Mechanical Chain and Kinematic Inversion


When several mechanical parts are movably connected by joints they are said to form a
mechanical chain. If every body in the chain is connected to at least two others the chain
includes one or several closed loops and is called a closed chain; if not, the chain is referred to as
open. If the chain consists entirely of binary parts it is a simple chain. Compound chains,
however, contain other than binary parts and may form more than a single closed loop.
Examples are shown in Figure 1.11

Chapter 1 Concepts and Definitions

10

Figure 1.11 (a) Open mechanical chain; (b) simple chain; (c) compound chain.
Referring to the definition of a mechanism in Section 1.2, we see that it is necessary to have
one part fixed. When we say that a part is fixed we mean that it is chosen as the frame of reference for the movement of other bodies, that is, that the motions of other points on the
mechanism are measured with respect to a coordinate system attached to this fixed body. This
fixed part in a practical machine usually takes the form of a stationary platform or base or
housing rigidly attached to such a base, and is called the frame or ground or base. The question
of whether this reference frame is truly stationary (in the sense of being an inertial frame of
reference) is immaterial in the study of kinematics since masses are neglected, but does become
important in the investigation of kinetics where inertial forces are considered. In either case,
once a frame member is designated (and other conditions are met), the kinematic chain becomes
a mechanism and, as the input is moved through various positions, all other bodies have well
defined motions with respect to the chosen frame.
If, for the same mechanical chain, a different body is chosen as the frame, the relative
motions between the various parts are not altered but their absolute motions with respect to the
new base may be dramatically different. The process of designating a different part for the frame
of a mechanism is known as kinematic inversion. Examples are shown in Figure 1.12.

Figure 1.12 Examples of kinematic inversion.


Chapter 1 Concepts and Definitions

11

1.6 Joints and Joint Elements


As will be seen in later chapters, one contributing factor in determining the relative motions of
two points is the assumption that all bodies are rigid and that, therefore, two points of the same
body can only move on spherical loci with respect to each other. However, this fact alone is not
enough to completely specify the kinematics of a mechanical system since it tells nothing about
the relative motions of points on different bodies. These relative motions between bodies cannot
be completely arbitrary. They too must be constrained to have the proper relative motions, those
chosen by the designer for the particular task to be performed.
In kinematics, a joint is defined as a mechanical connection between two (and only two)
bodies. The designer restricts (but does not necessarily eliminate) the relative motions allowed
between bodies by the choice of the particular types and locations of joints to be used in
connecting the bodies together. Thus we are led to the conclusion that, in addition to the
constant (rigid) geometric relationship between joints on the same body, the nature of the joints
and the relative motions which they permit between the bodies joined are essential in
determining the kinematics of a mechanical system. For this reason it is important to look more
closely at the nature of joints in general terms and, in particular, at several of the more common
types.
Since a joint is used to connect two mechanical parts together, the joint is not a physical
entity in itself; it is composed of two ingredients, the two mating surfaces on the connected parts.
The two mating surfaces, when considered separately, are each referred to as a joint element and,
joined together, they form a kinematic pair (of elements) or a joint. If it is desirable to
distinguish between the two elements making up a joint, their shapes usually make it natural to
refer to one as the hollow element and the other as the solid or full element as shown in Figure
1.13.5

5.

Some joints do not have this obvious hollow and solid geometry, as for example in the case of a flat joint. The
two may then be arbitrarily distinguished by assigning one term to each.

Chapter 1 Concepts and Definitions

12

Figure 1.13 Hollow and solid elements of a revolute joint.


The controlling factor which determines the relative motion allowed by a given joint is the
shapes of the mating surfaces or elements. Each type of joint has its own characteristic shapes
for the elements, and each allows a given type of motion which is determined by the possible
ways in which these two elemental surfaces can move with respect to each other. For example, a
pin joint usually has cylindric elements with provision on the ends to prevent axial motion.
Assuming a good fit without backlash, these surfaces only permit relative rotational motion.
Thus a pin joint allows the two connected parts to experience relative rotation with respect to
each other about their common axes. So too, other joint types each have their own characteristic
element shapes and relative motions. These element shapes restrict the otherwise arbitrary
motions of two unconnected bodies to some prescribed type of relative motion, thus producing
constraints on the motion of the total mechanism.
It should be pointed out that the element shapes may be subtly disguised and difficult to
recognize. For example, a pin joint might include a ball bearing, and the two mating surfaces, as
such, may not be recognized as those of a pin joint. Nevertheless, if the motions of the
individual balls are not of interest, the overall relative motion allowed by such a joint is not
altered and the joint is still of the same generic type; it allows relative rotation about a single
axis. So too, the diameter of the pin used (and, in most cases, other dimensional data) are of no
more importance in kinematics than the exact sizes and shapes of the connected bodies. Thus the
criteria which distinguish different joint types are the relative motions which they permit rather
than the detailed physical shapes of the elements, even though these may provide vital clues.
As stated previously, the primary function of a mechanical part is to hold a fixed geometric
relationship between its joint elements. In a similar way, the only kinematic function of a joint is
to determine the relative motion(s) allowed between the connected bodies. Other features are
determined for other reasons and are unimportant in the study of kinematics.
When a kinematic problem is formulated it is necessary to recognize the type(s) of the
relative motion(s) permitted in each of the joints and to assign to each some variable parameter(s)
for measuring or calculating the motion(s). There will be as many of these parameters as degrees
of freedom in relative motion allowed by the joint in question, and they are referred to as joint
variables. Thus the only joint variable of a pinned joint is an angle measured between reference
lines fixed in the adjacent bodies, while a ball-and-socket joint has three joint variables (perhaps
three angles) to specify the relative three-dimensional rotation allowed between its elements.

1.7 The Six Lower Pairs


Since a joint refers to the joining of the kinematic elements of a pair of bodies, a kinematic pair
was the name given to a joint by Reuleaux. He also divided pairs into two categories which he
called higher and lower pairs, the latter category consisting of precisely the six types listed in
Table 1.1, to be described in this Section. He distinguished between the categories by noting that
the lower pairs, such as the pin joint, have surface contact between their joint elements, while
higher pairs, such as the connection between a disk-cam and its follower, have line or point

Chapter 1 Concepts and Definitions

13

contact between the elemental surfaces. However, as noted above in the case of a ball bearing,
this criterion may be misleading. Instead, we should look for distinguishing features in the
relative motion(s) which the joint allows.

Figure 1.14 Contrast of relative motions between elements of a higher pair.


Consider two machine elements, labeled i and k, one circular and the other straight, rolling on
each other without slip as shown in Figure 1.14. Choosing the two coincident points Pi and Pk
attached to bodies i and k, respectively, at the point of contact, notice the locus that each traces
out in the coordinate system of the other body as the joint moves. In this case, the point Pk of the
straight body k traces an involute on the circular body i, while the point Pi traces out a cycloid on
body k. The characteristic to be noticed is the dissimilarity between the curves. This is a mark of
a higher pair. In a lower pair, such as a pin joint, on the other hand, the loci traced by a pair of
coincident points of the connected bodies are similar curves, circles for a pin joint, differing only
in the directions in which they are traced. A corollary to this is the observation that
interchanging the hollow and solid elements of a lower pair between the two bodies does not
affect their relative motion. This is illustrated for a pin joint in Figure 1.15.

Chapter 1 Concepts and Definitions

14

Figure 1.15 Inversion of the hollow and solid elements of a revolute joint.
The six joint types defined by Reuleaux to form the category referred to as lower pairs are
listed in Table 1.1 and are shown in Figure 1.16.

Table 1.1
Characteristics of the Lower Pairs
Joint
type
Helical

Symbol
H()

Joint
variable(s)
or s

Degrees of
freedom
1

Relative
motion
helical

Motion
type
spatial

Revolute

circular

planar

Prismatic

linear

planar

Cylindric

and s

cylindric

spatial

Spheric

,',"

spheric

spheric

Flat

s,s',

planar

spatial

Chapter 1 Concepts and Definitions

15

Figure 1.16 The six lower pairs: (a) helical joint; (b) revolute joint; (c) prismatic joint;
(d) cylindric joint; (e) spheric joint; (f) flat joint.
The most general of the six lower pairs defined by Reuleaux, the one from which all others
may be derived, is the helical or screw joint. It carries the symbol H() where represents the
pitch of the screw. The helical joint consists of a solid element borne by the "bolt" and a hollow
element carried by the "nut" and, as with other lower pairs, the loci traced by coincident points
are identical, in this case helical. If one of the joint elements is turned through an angle
relative to the other, it also advances by an axial distance s. The relationship between and
s is an invariant property of the helix defined as its pitch, = s/, the axial advance per unit
rotation. When is specified then s is determined and vice-versa. Either or s may therefore be used as the joint variable defining the relative displacement of the elements. However,
since and s are interrelated through the pitch, the joint has only one degree of freedom in
relative motion, and only one of these variables may be chosen as the joint variable.
Two other lower pairs are formed by allowing the pitch of a helical joint to reach its two
extreme values. On setting the pitch to zero, we see that s becomes zero and only relative

Chapter 1 Concepts and Definitions

16

rotation is possible; the "threads" become circumferential bands. This type of joint, which could
be written H(0), is so common in linkages, appearing as a pinned joint, that it is given its own
symbol R and is called a revolute joint. The revolute joint has only one degree of freedom and,
since there is no axial advance, the joint variable is the relative rotation between the elements.
When the pitch of a helical joint is made infinite, the "threads" align themselves axially
allowing only relative axial translation. This type of joint also has one degree of freedom, and
the joint variable is the relative axial translation between the joint elements s. Again, this pair
could be denoted symbolically as H() but it is so important, appearing whenever there is
rectilinear translation, that it is given the name prismatic joint and is denoted by the symbol P.
Of these three types of joints, the helical joint and its two descendants, the revolute and
prismatic joints, each has a single degree of freedom; each has its own unique type of relative
motion, helical, circular, and rectilinear motion, respectively; each may be described by a single
joint variable; and each may be located by its distinctive geometric axis. The remaining three
lower pairs each have more than one degree of freedom and can be thought of as equivalent to
series combinations of revolute and prismatic joints.
The cylindric joint is equivalent to a revolute joint mounted coaxially with a prismatic joint.
It has two degrees of freedom since the axial advance and the rotation are independent of each
other. Thus its two joint variables are and s. The cylindric joint is denoted by the symbol C.
The ball-and-socket joint is an example of a spheric or globular joint. It may be visualized as
a combination of three consecutive revolute joints with three non-coplanar axes all intersecting at
a single point. Although any three intersecting non-coplanar axes will suffice, mutually
perpendicular axes are often chosen for convenience in visualization and ease in calculations.
The spheric joint has three degrees of freedom and the joint variables may be chosen as , ',
and ", the relative motions in each of the three independent revolutes. The symbol S is used to
denote a spheric joint.
The sixth and final type of lower pair is the flat or planar joint, denoted by the symbol F.
The joint elements of a flat joint are planes, constrained to remain in contact but free to move by
sliding upon one another. The relative motion is general planar motion, having three degrees of
freedom. It may be visualized as two non-parallel translations in the plane and one rotation about
an axis normal to the plane. Thus it is equivalent to two prismatic joints and a properly oriented
revolute joint connected in series; its three joint variables can be chosen as s, s', and .
As pointed out earlier, the lower pairs are very common in the construction of practical
mechanisms and, in some cases, all of a mechanical systems joints are lower pairs. A
mechanism which is made up entirely of lower pairs is referred to as a linkage.
Planar linkages utilize only revolute and prismatic joints. Although a flat joint might
theoretically be included, this would impose no constraint(s) on the relative motion in the plane
and thus would be equivalent to an opening in the chain. Planar motion also requires that the
axes of all prismatic joints be parallel to the plane of motion and that all revolute joints have axes
normal to the plane of motion.

Chapter 1 Concepts and Definitions

17

Spherical linkages are constituted entirely of revolute joints since a spheric joint would be
equivalent to an opening in the chain and all other lower pairs have non-spheric motion. In
spheric linkages, the axes of all revolute joints must intersect at a single point.
One could argue that Reuleaux should have included two more joint types in his compilation
of lower pairs. One of these might be called a rigid joint; it is defined here as a joint which has
zero degrees of freedom and allows no motion between the connected bodies. The other might
be called an open joint; it is defined here as a logical connection with six degrees of freedom and
allows complete freedom between the "connected" bodies. On the other hand, one could argue
that these two joint types do not truly fit the definition of a joint in the first place, and should not
be included. Nevertheless, these two additional joint types do allow significant advantages in the
simulation of mechanical systems, and are included in later chapters of this text.

1.8 Higher Pairs and Kinematic Equivalence


In spite of the common occurrence of lower pairs in practical systems, the methods developed in
later chapters would be quite inadequate if no consideration were given to higher pairs.
However, by definition, the higher pairs include all joint types not mentioned in the list of lower
pairs, and thus are unlimited in variety. A systematic accounting of all possible higher pairs and
their motion characteristics is, therefore, not a realistic objective. Examples of higher pairs are
shown in Figure 1.17.
Let us return once again to the observation that two unconnected bodies have six degrees of
freedom in relative motion in three dimensional space, three in relative translation and three in
relative rotation, and that the objective of including a joint is to impose conditions or constraints
on these six independent relative motions, that is to make them dependent on each other in a
specified relationship. For example, in a helical joint two translations and two rotations are completely constrained (eliminated) and the remaining translation and rotation are made dependent
on each other through the equation defining the pitch.

Chapter 1 Concepts and Definitions

18

Figure 1.17 Examples of higher pairs.


One way of analyzing mechanical systems including higher pairs is to find a proper
combination of lower pairs which enforces the same relative motion restrictions and thus can be
used as a model for the higher pair. Such a combination is referred to as a kinematic equivalent.
One example is shown in Figure 1.18. There are no hard and fast rules for discovering these
proper combinations and the process may require a certain amount of ingenuity on the part of the
analyst, especially as the constraint conditions become more complex.

Figure 1.18 Example of kinematic equivalence.

Chapter 1 Concepts and Definitions

19

It should be pointed out that a kinematically equivalent combination of lower pairs may be
found which properly restricts the relative motion as desired, but which has force transmission
characteristics entirely different from the higher pair being modeled. Thus, attention must also
be given to static and dynamic equivalence if these types of analyses are to be performed on the
model.

1.9 Restraints Versus Constraints


Joints provide interconnections between bodies and in our modeling paradigm. They restrict the
relative motion between the interconnected bodies to specific motions determined by the type of
the joint. For example., a revolute joint only allows relative rotation about the joint axis between
the two interconnected bodies. For modeling, the "joints" are thus considered to strictly enforce
specific constraints on the relative motions of the interconnected bodies.
On the other hand, bodies may be "restrained by interconnections such as springs or
dampers, which do not strictly enforce relative motion constraints, but nevertheless restrain the
relative motions of the the interconnected bodies through energy storage and/or release. Of
course, a joint however stiff in the directions of its constraints may be modeled as providing
restraint in the directions its relative motion. It should be clear that the use of a joint, (a
constraint") or the use of a softer restraint" is a modeling decision, determined for the specific
system and the complexity desired in modeling the system.

Chapter 1 Concepts and Definitions

20

Page intentionally blank.

Chapter 1 Concepts and Definitions

21

Chapter 2: Topology and Structural Analysis


2.1

Introduction

In order to make a systematic study of multi-body mechanical systems and to develop general
methods for their analysis by digital computer, we must be able to recognize and precisely
describe certain basic information which governs their operation. For example, it is clear that, at
some point, we must explicitly identify certain dimensional information, such as part shapes and
dimensions, in order to perform the analysis. However, before we reach this stage, another even
more basic problem confronts us. We must first study each system enough to determine how its
various parts are interrelated, that is, which is connected to which, and what is the nature of each
connection.
In the classic methods of analysis, both graphic and analytic, this task of recognizing the
basic structure of a mechanical system did not require reduction to a step by step procedure. No
real difficulties arose since the analyst, through experience, developed a "feel" for analyzing
problems of a given type. As the analysis progressed, s/he could continually make decisions as
to what steps needed be taken next and what techniques might be applied to accomplish each
step.
However, if a general method for use on a digital computer is to be developed, the problem of
recognizing a system's topology, the interrelationships between its parts, must be dealt with in a
more systematic manner. It is not possible to depend on a computer to know how to "guide" the
solution process. It is necessary to discover and adopt a unified procedure, common to all
situations which might be encountered. This algorithmic development for guiding the complete
numerical simulation can also augment and complement the physical feel for the system.
The success of a generalized approach, therefore, depends on the development of general
algorithms whereby a computer can recognize and manipulate systems of widely differing
structure without placing awkward requirements or special conventions on the task of data
preparation. Insofar as possible, all problems should be handled by one consistent procedure.
The challenge, therefore, is to devise procedures powerful enough that they are common to as
wide a variety of multi-body mechanical systems as possible.
In keeping with this philosophy, the purpose of this chapter is to develop a general algorithm
for studying the topology of a multi-body mechanical system, that is, the number of bodies, the
number and types of joints, the pattern in which the bodies and joints are arranged, the number
and pattern of closed loops (if any), and other such characteristics which are determined solely by
the connectivity of the system. This phase of the analysis of a system is referred to as structural
analysis.
In order to describe the topology of a multi-body mechanical system explicitly and precisely,
it is necessary to choose a format which can be understood by others for the purposes of

Chapter 2: Topology and Structural Analysis

17

communication. It will also be advantageous if this format can be manipulated directly to


determine such features as closed loops. Several formats are possible and each has its own
advantages depending on what features are to be sought through manipulation.
One way of describing structural characteristics, for example, is through a photograph or
drawing such as that shown in Figure 2.1. Clearly this provides a complete description; however,
it also includes a plethora of irrelevant information which tends to disguise the true nature of the
topology.

Figure 2.1

Hydraulic clamp (courtesy, Lapeer Mfg. Co., Lapeer, MI)

Another approach, common throughout the history of traditional kinematics, is the use of
schematic drawings such as that shown in Figure 2.2. Such schematics suppress many of the fea-

Figure 2.2

Schematic drawing for the hydraulic clamp of Figure 2.1.

tures which are unimportant in structural analysis. However, they still retain the aura of "shape",
and can become misleading for this reason. Also, though such diagrams are well suited to human
communication, they are not well suited to manipulation by computer; a numeric format would
be preferable.

2.2

The Incidence Matrix1

We recall from Chapter 1 that all mechanical systems are made up of only two basic types of

1.

The remainder of this chapter relies on the branch of mathematics called graph theory. See, for example, F.
Harary and Z. Norman, The Theory of Graphs, Addison-Wesley, Reading, MA, 1963.

Chapter 2: Topology and Structural Analysis

18

entities, machine parts and joints. Their definitions are repeated here:
Mechanical Part (Body): A mechanical part is a rigid body which may contain
joint elements for connecting it to other bodies.
Joint: A joint is the connection between two (and only two) joint elements of
separate bodies which provides constraints on the relative motions of the two
bodies so joined.
Notice that a joint does not exist merely by the fact that both joint elements exist; it also
requires that they be joined. Therefore a joint is considered a separate entity, in itself, distinct
from the two elements.
Once each of the bodies and joints has been identified for a given system, the problem of
structural analysis is one of describing the relationships which exist between them. Precise
discussion of these relationships requires two further definitions:
Incidence: A joint is said to be incident to each of the two bodies containing its
joint elements.
Mechanical Graph (Assembly): A mechanical graph or assembly consists of a set
of bodies, a set of joints, and a prescribed incidence relationship between these
two sets.
Thus a mechanical graph uniquely defines those characteristics of a multi-body mechanical
system which are essential to its structural analysis, and at the same time strips away all other
features such as the geometry and material properties of the bodies. These features will, of
course, be reintroduced at a later stage in the analysis, but are not pertinent to a system's
topology. The incidence relationships for the clamp example of Figure 2.2 are given in Table
2.1.2

Table 2.1
Incidence Table for Figure 2.2
Joint
A
B
C
D
E
F
G

Connects from Body


6
3
3
1
2
6
2

to Body
3
5
4
4
5
1
6

One further property must be defined in order to achieve maximum flexibility in the

2.

In this example, letters rather than numbers are used for joint labels to reduce confusion between the body and
joint labels. Notice also that the stationary body is intentionally chosen to have the highest body label (6); the
reason for this becomes clear in Section 2.5.

Chapter 2: Topology and Structural Analysis

19

upcoming manipulation scheme. Each joint must be assigned an arbitrary orientation. If the
orientation of a joint j is chosen as directed from body i to body k, then the joint is said to be
negatively incident with body i and positively incident with body k. A mechanical graph in
which every joint is assigned an orientation is called an oriented mechanical graph or oriented
assembly.
Another way to represent the topology is through a graphical representation which perhaps
aids in the visualization of the topological structure of a complex system. In this representation, a
body is represented as a node and a joint is represented as an arc in the graphical representation.
If the orientation of joint j is selected as directed from body i to body k, then the arc for joint j is
directed from the node representing body i to the node representing body k as shown in Figure
2.3.
Joint j

Body i

Figure 2.3

Body k

Visual representation of a kinematic graph where a body is represented as a node


and a joint is represented as a directed arc connecting two nodes

With this convention, the oriented graph for the clamp mechanism of Figure 2.2 according to
the orientations chosen in Table 2.1 is depicted in Figure 2.4.
D
Body 1

Body 4

C
A

Body 3

Body 6
B
G
Body 2
E

Figure 2.4

Body 5

The oriented graph of the hydraulic clamp mechanism of Fig. 2-2 showing the
joint orientations chosen in Table 2-1

With the above definitions we are now prepared to define a new and very useful format for
expressing the incidence relations of a mechanical system. The information contained in the

Chapter 2: Topology and Structural Analysis

20

incidence table or in the oriented graph can be written in the form of an incidence matrix, in
which each row represents a body, each column represents a joint, and the entries define the
incidence between corresponding rows and columns. For a system having bodies and n joints
the incidence matrix is an ( n ) matrix. The entry in row i and column j is defined as
follows:

+1 if joint j is positively incident with body i;

(i, j ) = 1 if joint j is negatively incident with body i;


0 if joint j is not incident with body i.

(2.1)

Therefore, for the example of Figure 2.2, assuming that the orientations of the joints are
chosen as shown in Table 2.1, the incidence matrix is
0 0 0 1 0 1 0
0 0 0 0 1 0 1

1 1 1 0 0 0 0
=

0 0 1 1 0 0 0
0 1 0 0 1 0 0

1 0 0 0 0 1 1
A

1
2
3
4
5
6

The incidence matrix completely describes the topology of the oriented mechanical graph
and, therefore, also completely describes the structure of the multi-body mechanical system. It
also has the advantage that it can be communicated to and manipulated by a digital computer,
and thus provides a working tool as well as a convenient symbolism. A few further definitions
will bring out some simple tests which can be performed on the incidence matrix.
A system is said to contain a self-loop whenever there is a joint for which both joint elements
are contained in the same body, that is, whenever a joint connects a body to itself. Self-loops,
such as that shown in Figure 2.5, are of no interest in kinematics since they permit no relative
motion. They can be easily detected, however, since each "proper" joint is represented by a
column of the incidence matrix having exactly two nonzero entries, one positive and one
negative. Any self-loops should be eliminated from the incidence matrix (and from the count of
the joints) before further manipulations are performed.

Chapter 2: Topology and Structural Analysis

21

Figure 2.5

Self-loop.

The degree of a body is defined as the number of joints which are incident with that body.
Thus, a binary part has degree two; a ternary part has degree three; and so on.3 The degree of a
body can be found by summing the absolute values of the elements of the corresponding row of
the incidence matrix. Alternatively, the degree of all bodies can be found as the diagonal
elements of the product of the incidence matrix with its transpose.
d i = ( t ) ( i, i )

i = 1, 2,...,

(2.2)

Another interesting property can be found by summing this equation over all bodies.

= trace t = 2n

(2.3)

i =1

This shows that, since the number of joints in any mechanical system must be an integer, the
number of bodies of odd degree must be even.

2.3

Connectedness and Assemblies

An assembly (mechanical graph) is said to be connected if and only if its bodies cannot be
grouped into subsets such that no joint is incident with a body from each subset, that is, if and
only if it is not possible to relabel the bodies and joints such that the incidence matrix becomes
block diagonal.

= 11

0 22

(2.4)

If a mechanical graph is not connected, it does not represent a single assembly, and its

3.

Notice that the degree of a body counts joint elements only when they are contained in joints. Thus, a "ternary"
part, for example, in which one joint element is not joined to another body is only of degree two.

Chapter 2: Topology and Structural Analysis

22

unconnected subassemblies may (although they need not4) be analyzed as separate systems.5
Since there are (!n!) permutations of body and joint labeling sequences, Eq. (2.4) does not
provide a suitable test for connectivity. Such a test is provided, however, from the following
theorem, taken from graph theory:6
Theorem 2.1: The incidence matrix of a mechanical graph containing bodies
and including a connected assemblies has rank (-a).

2.4

Kinematic Loops

A task of utmost importance in the structural analysis of a mechanical system is the


determination, if they exist, of any kinematic loops. All multibody analysis techniques in one
way or another depend upon the recognition of such loops for proper formulation of the essential
constraint equations. In any computer-aided design scheme involving mechanical systems, either
the program must be restricted to a presupposed topology, or the user must identify any
kinematic loops, or an algorithm must be incorporated into the software which can identify any
closed loops from known information. In this section an algorithm for discovering kinematic
loops based on the incidence matrix is presented.
First, the terminology must be precisely defined:
Kinematic Path: A kinematic path is a sequence of joints, (j1,j2,...,jk), for which
there exists a corresponding sequence of bodies, (0,1,...,k), such that joint ji is
incident with bodies i-1 and i for each joint of the sequence.
Kinematic Loop: A closed kinematic path (0 = k) is called a kinematic loop.
Also, a kinematic path or kinematic loop is said to be oriented if a "direction" is designated
for the sequence of joints.
Since we have decided on a matrix representation to denote the incidence relationships of a
given system, it seems natural to consider a similar notation for expressing its kinematic loops.
Therefore, the oriented loop matrix L is defined such that each row represents an oriented loop
and the columns again correspond to the joints of the system. The entry in row i, column j, of the
oriented loop matrix is defined as follows:

4.

An example of a situation where simultaneous analysis may be desired or even required is when the analyst is
considering possible collision between bodies of two unconnected subassemblies.

5.

Physically unconnected assemblies may be logically connected by means of the "open" joint; see Section 3.9.8.

6.

See, for example, S. Seshu and M. B. Reed, Linear Graphs and Electrical Networks, Addison-Wesley
Publishing Co., Reading, MA, 1961, p.93.

Chapter 2: Topology and Structural Analysis

23

+1

L ( i, j ) = -1

if joint j is contained in loop i, and if the orientation


of loop i and the orientation of joint j are the same;
if joint j is contained in loop i, and if the orientation
of loop i and the orientation of joint j are opposite;

(2.5)

if joint j is not contained in loop i.

For the clamp example of the last section, therefore, an oriented loop matrix containing all
possible loops can be found directly by inspection of Figure 2.2.

1 0 1 1 0 1 0
1 1 0 0 1 0 1

0 1 1 1 1 1 1
L=

1 0 1 1 0 1 0
1 1 0 0 1 0 1

0 1 1 1 1 1 1

(2.6)

The desired algorithm need not generate all possible loops, as shown for this example. It is
clear, for instance, that the final three rows of the above matrix represent the same loops as the
first three rows, but are oppositely oriented. Also, careful inspection will verify that the third
row is equal to the sum of the first two. It is only necessary to generate enough loops to
completely characterize the system. That is, we seek a complete set of independent kinematic
loops.
Returning our attention to the incidence matrix, consideration of Theorem 2.1 insures that it
can be partitioned as follows:

12

= 11

21 22

(2.7)

where 11 is the largest possible nonsingular square submatrix. It is of order -a, and 21 and 22
contain a rows, and where a is the number of unconnected assemblies. Some relabeling of the
bodies (rows) and joints (columns) may be required to achieve a nonsingular submatrix for 11.
However, this is assured possible since, according to Theorem 2.1, the rank of is -a.
For the example which we have been treating, relabeling is not required. The submatrices for
this example are:

Chapter 2: Topology and Structural Analysis

24

0 0 0 1 0
0 0 0 0 1

1 1 1 0 0
11

= 0 0 1 1 0
21 0 1 0 0 1

1 0 0 0 0
A B C D E

1 0
0 1

0 0
12

= 0 0
11 0 0

1 1
F G

It is interesting to note the significance of this partitioning. The submatrices 11 and 21,
taken together, also represent a mechanical graph, but not the same assembly as the original.
This new system has the same bodies as the original, but has certain of its joints (F and G)
disconnected as shown in Figure 2.6. It is clear in this example that precisely the proper number
of joints are disconnected so that the assembly remains connected but no longer contains any
kinematic loops.

Figure 2.6

Kinematic tree for Figure 2.2.

Is this a coincidence? No. Theorem 2.1 ensures that the multi-body mechanical system
retains a connected assemblies as long as 11 is nonsingular and contains -a rows. Therefore, it
is always possible to disconnect at least [n-(-a)] joints (although the choice of which joints may
not be arbitrary) without dividing any of the assemblies. But not more than this number of joints
can be disconnected since, if one more joint were disconnected, 11 would contain only (-a-1)
columns and, according to Theorem 2.1 the system would then consist of (a+1) assemblies.
These partially disconnected assemblies have such interesting properties with regard to
topological studies that they are given a special name. A mechanical graph which is connected
but contains no loops is called a tree or kinematic tree. One fundamental property of a kinematic
tree is that it possesses a unique kinematic path between any two of its bodies. Therefore, as can
be seen from Figure 2.6, when any of the disconnected joints is reconnected a unique loop is
produced, consisting of the reconnected joint and the joints of the unique path through the tree.
The set of n ( a ) joints which were disconnected to form the tree are called the cut set.
Each joint of the cut set can be reconnected, one at a time, and a unique loop will be formed for
each. Also, since each of these contains at least one joint (the reconnected joint) which appears
in no other loop, the loops found in this manner must be independent. But, since n ( a )
joints were disconnected in forming the tree, this procedure shows that there are at least

Chapter 2: Topology and Structural Analysis

25

NL = n + a independent kinematic loops in a mechanical system.7 Later in this section we


will show that the rank of the oriented loop matrix L cannot be greater than NL. Therefore, the

set of kinematic loops generated by this process also provides a complete set of independent
kinematic loops for the system.
Suppose that we are successful in finding the NL kinematic loops by the procedure described
above. Suppose also that we form the oriented loop matrix L including only these NL
independent loops. If they are taken in the proper order and if the proper orientation is chosen for
each, then the oriented loop matrix can be partitioned as follows:

L = [ L1 I ]

(2.8)

where I is the (NLNL) identity matrix and the rows of L1 correspond to the unique oriented paths
through the tree. The arbitrary negative sign is chosen to produce a positive result in Eq. (2.10),
below.
An extremely simple algorithm for generating the paths in L1 is based on another important
theorem from graph theory:8
Theorem 2.2: When the columns of the incidence matrix and the oriented loop
matrix L are ordered consistently, these two matrices are orthogonal. That is

Lt = 0

(2.9)

where Lt indicates the transpose of L.


Partitioning the matrices as indicated above and applying this theorem, therefore,

11 12 L1t

=0
21 22 I
or, on expanding the top row of submatrices,

11 Lt1 12 = 0
Since 11 was chosen to be nonsingular, this equation can be readily solved for the unknown
portion of the oriented loop matrix:
L1 = ( 111 12 )

(2.10)

7.

This number has also found much significance in other applications of graph theory and is alternatively referred
to as the nullity, the connectivity, the cyclomatic number, or the first Betti number of the graph. The digraph
NL is used to avoid duplicate symbolism in later chapters.

8.

Proof is omitted here; see for example, Seshu, op. cit., p.92.

Chapter 2: Topology and Structural Analysis

26

Using this procedure on our clamp example problem, we find by Eq. (2.10) that

1 1
0 1

111 = 1 0

1 0
0 1

1
1
0

0
0

1 1
0 1

L1t = 1 0

1 0
0 1

1 0 1 1 0 1 0
L = 1 1 0 0 1 0 1
A B C D E F G

(2.11)

(2.12)

Having successfully found the rank of for this example to be five while the number of
bodies is six verifies that the system consists of a = 1 assembly. Checking the entries of Eq.
(2.12) against the first two rows of Eq. (2.6) above, we verify that we have indeed found a valid,
complete, and independent set of oriented kinematic loops for the system. These are shown in
Figure 2.7.

Figure 2.7

Oriented kinematic loops of Eq. (2.12) for Figure 2.2.

Several paragraphs earlier we made use of the fact that the rank of cannot be greater than
that which gives NL = n - + a in order to prove that NL loops form a complete and independent
set. This can be shown directly from Theorem 2.2. Since and L are orthogonal, we know that
the rank of plus the rank of L cannot exceed the dimension of their common vector space, the
vector space of all joints in the system.9

rank() + rank(L) n
Theorem 2.1 tells us that the rank of is -a. Therefore,
rank (L) = n - + a = NL

(2.13)

In this section we have seen that the incidence matrix can be manipulated to produce a
complete set of independent kinematic loops which can be used for analysis of the system. It will
9.

Sylvester's law of nullity; see, for example, Seshu, op. cit., p.67.

Chapter 2: Topology and Structural Analysis

27

be noted from Eq. (2.10) that the matrix can be found directly by performing those row
operations which are required to reduce the original incidence matrix to its row echelon form:

11 12 I Lt1

21 22 0 0
The valid row operations allowed for reducing to this form are:
(a) A row may be replaced by its negative.
(b) A row may be added to or subtracted from another.
(c) A row or column may be switched with another.
Switching rows is equivalent to relabeling bodies while switching columns is equivalent to
relabeling joints. If these operations are used, however, the rearranged order of the original row
and column labels must be recorded for later use in interpreting the body and joint labels in the
results.

2.5

Kinematic Paths

Another topological matrix for which we will find many uses in the coming chapters is called the
path matrix, and is labeled P. It is an (n) matrix whose rows show the joints which appear in
the path from the base body to each of the other bodies of the system. These paths will be useful,
for example, in calculating the motion of a given body by adding the relative motions of the
joints along the path to that body.
The entry in row i, column j, of the oriented path matrix is defined as follows:

+1

P ( i, j ) = -1

if joint j is contained in the path from the base body to body i, and if the
orientation of joint j and the orientation of that path are the same;
if joint j is contained in the path from the base body to body i, and if the
orientation of joint j and the orientation of that path are opposite;

(2.14)

if joint j is not contained in the path from the base body to body i.

The oriented path matrix can be found by a procedure very similar to that used in finding the
loop matrix. The process is nicely shown by continuing the clamp example problem shown
above. If, for that example, we augment the original incidence matrix with an () identity
matrix on its right, it appears as follows:

Chapter 2: Topology and Structural Analysis

28

0
0

1
I]=
0
0

0
0
0

0
0

Using the row operations enumerated above, this augmented incidence matrix can be reduced
to row echelon form, exactly as was done above to find the loop matrix, but working also on the
additional columns of the identity matrix. The final reduced form is:

L1t

111 =

1 1

0 1

0 1

0 1

0
0

0
0

0
0

0
0

1
0

1
0

0 1
1 1

0
1

0
1

0
1

0
0

0
0
0

0
0

The sixth and seventh columns of this result confirm the L1t portion of the loop matrix, as
was shown above, and the later columns show how 111 was found for Eq. (2.11) above. The
final row of unit entries (in the later columns) will be explained below.
If the upper right ( 111 ) portion of this result is transposed, we obtain the path matrix.
1 t
P = 11

( )

1
1

P=1
1

(2.15)

0
0
0

0
0

1
2
3
4
5
6

A B C D E F G
where the last two columns of zeroes have been added to represent the cut set joints F and G.
We can see from this matrix that the path from the base (body 6) to body 2, for example, goes
through joints A and B with positive orientation and through joint E with reversed orientation.
This and the paths to other bodies can be confirmed by comparison with Figure 2.2.

Chapter 2: Topology and Structural Analysis

29

From this example it is clear that the path matrix can be found directly from the transpose of

111 . This is true for this example and also in general. However, for multi-body mechanical
systems containing more than one assembly, another phenomena arises. We can see this best by
following through another example. Therefore, we now seek the oriented loop and path matrices
for the system shown in Figure 2.8 Without taking any notice of its unconnected, multi-assembly
characteristics we form the incidence matrix. This is

Figure 2.8
1 1 0 0 0 0 0
1 0 1 0 0 0 0

0 1 1 0 0 0 0

0 0 0 1 0 1 0

=
0 0 0 1 1 0 0

0 0 0 0 1 0 1
0 0 0 0 0 1 1

1
2
3
4
5
6
7

where, again, row and column labels have been added to indicate the body labels (numbers) and
joint labels (letters).
Now, when this matrix is augmented with a (77) identity matrix,

Chapter 2: Topology and Structural Analysis

30

1 1 1 0 0 0 0 0
2 1 0 1 0 0 0 0
3 0 1 1 0 0 0 0

4 0 0 0 1 0 1 0
5 0 0 0 1 1 0 0

6 0 0 0 0 1 0 1
7 0 0 0 0 0 1 1

0
0
0

0
0

0
1

and, when this augmented matrix is reduced to row echelon form, it yields
A
1
2
4

5
6

3
7

0 1

-1

0
0
0

0
0

0
1

Here we see that it was necessary to rearrange rows and columns of the original matrix in
order to find this form. Notice also the rearrangement of the body and joint numbers shown as
labels for the rows and columns; we see that the matrix was only of rank 5 since the rows for
bodies 3 and 7 both became zeroes. Thus there are a = 2 assemblies and NL = n - + a = 2
kinematic loops.
Of course, it would be possible to separate the bodies into two disjoint groups and treat each
assembly as a separate multi-body mechanical system. It would also be possible to artificially
include another fictitious joint into the graph (say between bodies 3 and 7), a joint which
produces no constraint on the motions of the connected bodies, to logically, though not physically, connect the two assemblies.10 We choose not to do either in this example in order to show
how to proceed with multiple, unconnected assemblies.
The oriented loop and path matrices can now be formed in the same manner as in the
previous example. They are

10.

Such a joint type is explained in Chapter 3; it is called an open joint.

Chapter 2: Topology and Structural Analysis

31

A B D E F G C
L=0
1

0
1

1
0

1
0

1
0

1 0
0 1

and
A

0
1

0
P=
0
0

0
0

-1 1

0
0
0

0
0

0
0

1/3
2/3
3/3
4/7
5/7
6/7
7/7

We note here that each path formed in this multi-assembly problem falls totally within an
individual assembly. The fact that the rows which originally corresponded to bodies 3 and 7
were those that reduced to zeroes shows that bodies 3 and 7 are the two reference (base) bodies
of the two separate assemblies. The entries in the bottom-right quadrant of the row reduced
matrix show that the paths to bodies 1, 2, and 3 are all with reference to body 3 as a base body for
their assembly, while the paths for bodies 4, 5, 6, and 7 are found with respect to body 7 as their
base body.
If desired, we can now rearrange the columns of the oriented loop and path matrices to match
the original order of the joint labels. This gives:

A B C D E F G
L=0
1

0
1

0
1

1
0

1
0

1
0

1
0

and
A

0
1

0
P=
0
0

0
0

-1 1

0
0
0

0
0

0
0

Chapter 2: Topology and Structural Analysis

1/3
2/3
3/3
4/7
5/7
6/7
7/7

32

In order to find paths with respect to the body which is actually stationary, even for a singleassembly multi-body mechanical system, it is necessary to choose the original body labeling such
that the fixed body is represented by the final row of the incidence matrix. We note that this was
done in the above examples. If it is not done, then paths will be found with respect to the highest
labeled body of each assembly.
We can see from the above examples that these row reduction operations are extremely
simply performed, even by hand computation. All entries remain either +1, 0, or -1 throughout
the procedure.11 Also, on a computer, integer arithmetic operations can be used, thus gaining
speed and avoiding any risk of rounding or truncation errors.

11.

This property, called the unimodular property, is more fully explained in Seshu, op. cit., pp. 88-115.

Chapter 2: Topology and Structural Analysis

33

Problems
2.1

Find the oriented loop and path matrices for the multi-body mechanical shown by the
following Fig. P2.1 and incidence table:
B
A

2
1

Figure P2.1

Incidence Table
from body i
to body j
1
2
2
3
2
4
3
5
4
5
5
6
5
7
6
8
7
8
8
1

Joint
A
B
C
D
E
F
G
H
J
K

2.2

The following Fig. P2.2a shows a model of Stewarts platform, one type of parallel
robotic system.
S6

S5
S4

MOVING BODY
PLATFORM

MOVING BODY
PLATFORM

Si
S1

CYLi

S3
S2

Pi

U6

U5

PISTON i

U4

Ui
U1

U3

FIXED
BASE BODY

FIXED
BASE BODY

U2

Figure P2.2a

P2.2b

In this system, there are two main bodiesthe "Moving Body Platform" and the "Fixed
Chapter 2: Topology and Structural Analysis

34

Base Body". The motions of the Moving Body Platform relative to the Fixed Base Body
are controlled by six struts. Each of these six struts is attached to the Fixed Base Body by
a universal joint and to the Moving Body Platform by a ball joint. These struts are linear
actuators and for our purposes assume that hydraulic actuators are used. The schematic
on the right in the Fig. 2.2b shows a typical strut. For modeling, the actuator is composed
of two bodies, PISTONi and CYLi, and these two bodies are connected by a prismatic
joint Pi. A directed graph of Stewart's platform, with the orientations of joints arbitrarily
selected, is shown in the following Fig. P2.2c.

Moving Body
Platform

S6

S1

S5
S2

CYL6

S4
S3

CYL1

CYL2
CYL4

CYL5

CYL3
P1

P2

P4

P5

P6

P3
PISTON4
PISTON2

PISTON1

PISTON5

PISTON3
PISTON6
U2

U3

U4
U5

U1

U6

Fixed Base
Body

Figure P2.2c Directed graph of Stewarts platform of Fig. 2.2a


The incidence matrix corresponding to the directed graph is shown in the table below.
Moving Body
Platform
CYL1
PISTON1
CYL2
PISTON2
CYL3
PISTON3
CYL4
PISTON4
CYL5
PISTON5
CYL6
PISTON6
FixedBase
Body

S1

P1

U1

S2

P2

U2

S3

P3

U3

S4

P4

U4

S5

P5

U5

S6

P6

U6

-1

-1

-1

-1

-1

-1

1
0
0
0
0
0
0
0
0
0
0
0

-1
1
0
0
0
0
0
0
0
0
0
0

0
-1
0
0
0
0
0
0
0
0
0
0

0
0
1
0
0
0
0
0
0
0
0
0

0
0
-1
1
0
0
0
0
0
0
0
0

0
0
0
-1
0
0
0
0
0
0
0
0

0
0
0
0
1
0
0
0
0
0
0
0

0
0
0
0
-1
1
0
0
0
0
0
0

0
0
0
0
0
-1
0
0
0
0
0
0

0
0
0
0
0
0
1
0
0
0
0
0

0
0
0
0
0
0
-1
1
0
0
0
0

0
0
0
0
0
0
0
-1
0
0
0
0

0
0
0
0
0
0
0
0
1
0
0
0

0
0
0
0
0
0
0
0
-1
1
0
0

0
0
0
0
0
0
0
0
0
-1
0
0

0
0
0
0
0
0
0
0
0
0
1
0

0
0
0
0
0
0
0
0
0
0
-1
1

0
0
0
0
0
0
0
0
0
0
0
-1

Utilize the incidence matrix and appropriate software to compute the oriented loops for
this system, and answer the following questions:

Chapter 2: Topology and Structural Analysis

35

1. Which joints are cut to create trees? ________________________________


2. How many independent loops were identified? ________________________
Write the oriented loop matrix computed by your code arranged in the column sequence
of the incidence matrix corresponding to the columns of the matrix above.

2.3

Figure P23a shows a model of a multibody system which represents the stance posture of
a walking "bug" robot. All joints are revolute joints and are designated J1, J2, , J10.
The various bodies are identified as BODY 1 (ground), BODY 2, etc. and there are a total
of nine (9) bodies.

BODY 5
J6
J4

J7
BODY 8

BODY 3
J2

J3

J8

J9

BODY 6
J5

BODY 7
BODY 9

BODY 4
BODY 2

J1

J10

BODY 1

BODY 1

Figure P2.3a Schematic diagram of a bug robot.


1. Select the orientations of the various joints and, based on your choice of orientations,

construct the incidence matrix for this model.


2. Utilize appropriate software to compute the independent loops and show the oriented
loop matrix, with the joints in columns in the sequence J1, J2, J3, , J10.
3. Suppose this "bug" robot raises one of its feet as shown in Fig. P2.3b and a new body

(BODY 10) is extended from BODY 7 and a new revolute joint J11 is formed
between BODY 7 and BODY 10. The original joint J1 which formerly connected
BODY 1 and BODY 2 in the stance posture now connects BODY 2 to the new
BODY 10.

Chapter 2: Topology and Structural Analysis

36

BODY 5
J6
J4

J7
BODY 8

BODY 3
J2

J3

J8

J9

BODY 6
J5

BODY 7
BODY 9

BODY 4
BODY 2

J11
BODY 10
J1
J10
BODY 1

Figure P2.3b Second posture of bug robot.


Modify your incidence matrix and utilize appropriate software to compute the new
oriented loop matrix.

2.4

Figure P2.4a shows a model of a folding/unfolding deployable system.


BODY 1
J10
J9
B13
B9

J11
J12

B3

J7

B12

J8

B14

B8

J18
J19

B7

J16
J6

J13
J17
B15

B5

B11

B6

J20

J14

J4

B2

J15
B10

J5
B4

J2
J3

J1

BODY 1

Figure P2.4a Model of a deployable system.

Chapter 2: Topology and Structural Analysis

37

In this system, there are fifteen (15) bodies and twenty (20) joints. Joints J1 and J20 are
prismatic joints while all others are revolute joints. A directed graph of this system, with
the orientations of the joints arbitrarily selected, is shown in Fig. P2.4b.

J10
B13

J11

BODY 1

J1
B12

J20

B2

J12

J2
J9

B4

J3

B14

J19

J5

B3

B10

J13

J18

B5

J16
J15

J17

B9

B15
J4
J14

B6

J7

B11
J6
J8

B8

B7

Figure P2.4b. Directed graph of the deployable system of Fig. P2.4a.


The incidence matrix corresponding to the directed graph of Fig. 2.4b is shown in the
table in Fig. P2.4c.
Joints Ji

BODY 1
B2
B3
B4
B5
B6
B7
B8
B9
B10
B11
B12
B13
B14
B15

10

11

12

13

14

15

16

17

18

19

20

-1
1
0
0
0
0
0
0
0
0
0
0
0
0
0

0
-1
0
1
0
0
0
0
0
0
0
0
0
0
0

0
0
0
1
0
0
0
0
0
-1
0
0
0
0
0

0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0

0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
-1
1
0
0
0
0
0
0

0
0
0
0
0
0
-1
1
0
0
0
0
0
0
0

1
0
0
0
0
0
0
0
-1
0
0
0
0
0
0

1
0
0
0
0
0
0
0
0
0
0
0
-1
0
0

0
0
0
0
0
0
0
0
0
0
0
1
-1
0
0

0
0
0
0
0
0
0
0
0
0
0
1
0
-1
0

0
0
0
0
0
0
0
0
0
0
0
0
0
1
-1

0
0
0
0
0
0
0
0
0
0
-1
0
0
0
1

0
0
0
0
0
0
0
0
0
-1
1
0
0
0
0

0
0
0
0
1
0
0
0
0
0
-1
0
0
0
0

0
0
1
0
0
0
0
0
0
0
-1
0
0
0
0

0
0
1
0
0
0
0
-1
0
0
0
0
0
0
0

0
0
1
0
0
0
0
0
0
0
0
-1
0
0
0

1
0
-1
0
0
0
0
0
0
0
0
0
0
0
0

Figure P2.4c. Incidence matrix for the deployable system of Fig. P2.4b
Utilize the incidence matrix and apprpriate software to compute the oriented loops for

Chapter 2: Topology and Structural Analysis

38

this system, and answer the following questions:


(a) Which joints are cut to create trees? ________________________________
(b) How many independent loops are identified? ________________________
(c) Write the oriented loop matrix computed by your code arranged in the column
sequence corresponding to the columns in the table of Fig. P2.4c.

Chapter 2: Topology and Structural Analysis

39

Chapter 3: Modeling Machines with Transformation


Matrices
3.1

Introduction

Before the formulation of a computationally oriented analytical method for multibody


systems is carried out, consider first the essential characteristics of the problem being solved.
What are the chief difficulties encountered in the design and analysis of a mechanical system? It
is not the laws of mechanics as such which cause difficulty; it is the fact that, once a problem has
been formulated, it is often too formidable algebraically to be easily solved. This complexity
does not arise from the static and dynamic force relationships, but from the kinematics -- the
changing geometry. The basic constraint equations which govern the motions within a machine
come from the fact that the rigid bodies hold their respective joint elements in constant spatial
relationships to one another, and these rigid bodies form chains of bodies, many of which are
also closed loop chains. This type of constraint invariably leads to a set of highly nonlinear
simultaneous algebraic equations.
Since the difficulties in an analytic approach to multibody system analysis stem from the
geometry, it is necessary to choose a mathematical formulation suited to this type of problem.
One such formulation is based on the use of matrices to represent the transformation equations
between coordinate systems fixed in successive parts. This approach has been developed into an
extremely general and powerful technique for mechanical system analysis, and the next several
chapters are devoted to its presentation. Before this can be presented effectively, however, we
must become familiar with a number of the basic operations which render matrix algebra so
useful in performing coordinate transformations. The purpose of this chapter, therefore, is to
develop this foundation.

3.2

Homogeneous Coordinates of a Point

The position of a point in three-dimensional Euclidean space is determined once three


independent coordinates are given. We are all familiar, for example, with the Cartesian coordinates of a point as the projections of the point onto the three axes of a Cartesian reference frame.1
Once the points position is known then unique x,y,z coordinates are determined. Also,
conversely, if values are assigned to the x,y,z coordinates, the position of the point is uniquely
determined.
It is also possible to define the position of a point in many other ways. We may recall, for
1.

Ren Descartes (1596-1650), Discours de la mthod pour bien conduire sa raison et chercher la vrit dans
les sciences, or Discourse on methods for conducting reason and seeking truth in the sciences, Leiden, 1637.
Cartesian coordinates were introduced in the third appendix which is titled La Gometrie and which focusses
on the connections between geometry and algebra.

Chapter 3: Modeling Machines with Transformation Matrices

example, using cylindric or spheric coordinates for problems in which these were more suitable.
As a less common example, suppose that we define (instead of a set of Cartesian reference axes)
a tetrahedron of reference, whose vertices are A, B, C, and D. Suppose also that we wish to
determine the location of a point P which, to avoid complications, we assume to be inside of our
tetrahedron of reference. Let us next define symbols for the volumes of the four smaller
tetrahedrons determined by the point P and each of the four faces of the tetrahedron of reference.
We define these volumes by the symbols V1 = Volume(PBCD), V2 = Volume(PCDA), V3 =
Volume(PDAB), and V4 = Volume(PABC). We could think of these four volumes as being four
coordinates of the point P since, once the tetrahedron of reference and the point are chosen, these
coordinates are uniquely determined, and conversely.2 The fact that this method requires four
coordinates to locate a point in three-dimensional space is explained by the fact that the four
coordinates are not independent. They must sum to the volume of the tetrahedron of reference.
These are not the type of coordinates we shall use in the coming methods. This discussion is
brought out solely to emphasize the fact that coordinates can be defined in a number of different
ways. There is nothing sacred about Cartesian, or cylindric, or spheric coordinates; in fact, in
certain applications, a completely strange point coordinate definition may add appreciably to the
power, flexibility, and ease of use of the developed formulae. The above example also illustrates
that, although at least three coordinates are necessary to define the location of a point in threedimensional space, more than three coordinates may be used as long as three and only three are
independent.
Throughout the remainder of this text we will be working with a definition of point
coordinates which form a special case of homogeneous coordinates, sometimes referred to as
affine or projective coordinates.3 In homogeneous coordinates, four coordinates are used to
define the location of a point in three-dimensional space. When these are written in column vector form, the position of a point is given by

r1
2
r
r = 3
r
4
r

(3.1)

The conditions which relate the four homogeneous coordinates to the Cartesian coordinates
of the same point are as follows:
px =

r1
r4

py =

r2
r4

pz =

r3
r4

(3.2)

2.

These are referred to as the Feuerbach coordinates of the point. The original reference is: Karl Wilhelm
Feuerbach (1800-1834), Grundriss zu analytischen Untersuchungen der dreieckigen Pyramide, Nremberg,
1827.

3.

Homogeneous coordinates were introduced by August Ferdinand Mbius (1790-1868) in his work, Der
barycentrische Calcul, in Crelle's Journal fr die reine und angewandte Mathematik, 1827. An excellent
general reference is E. A. Maxwell, General Homogeneous Coordinates in Space of Three Dimensions,
Cambridge University Press, London, 1951.

Chapter 3: Modeling Machines with Transformation Matrices

Thus, if we are given the homogeneous coordinates of a point, we can quite easily find the
Cartesian coordinates of the same point by dividing the four-dimensional homogeneous position
vector r by its last coordinate r4
px
y
p
r = z
p

1

(3.3)

One reason that these coordinates are referred to as homogeneous is that any polynomial
relating Cartesian position coordinates can be written in homogeneous form by recasting it in
terms of homogeneous coordinates. For example, if the Cartesian coordinates are related by the
quadratic equation
x 2

(p )

+ 2 p x + ( p y ) 2 p y p z + 3 p z = 18

this can be rewritten in homogeneous coordinates as


1 2

(r )

+ 2r 1r 4 + ( r 2 ) 2r 2 r 3 + 3r 3 r 4 18 ( r 4 ) = 0

We note that, since each term is of the same order, all of the homogeneous position coordinates ri
can be multiplied by an arbitrary constant without affecting the validity of the equation. Thus,
using homogeneous coordinates, we are free to rescale the position vector r by any nonzero
multiplier at will. When the problem solution is completed, the Cartesian coordinates can be
found by dividing r by its fourth element r4 as shown in Eq. (3.2).
Another interesting characteristic of homogeneous point coordinates is that, with them, we
can describe the location of a point infinitely distant from the origin of coordinates. For
example, the homogeneous position vector

r i r cos ( r,i )

r j
= r cos ( r, j )
r=
r k r cos ( r,k )


0
0

(3.4)

describes a point whose Cartesian coordinates are all infinite. This point is located infinitely far
from the origin along a line whose direction is determined by the first three components of the
vector r. Note that the homogeneous coordinates of such a point at infinity are all finite. Thus
the point is uniquely described in a manner which can be manipulated on a computer without
numeric difficulty.
The study of homogeneous coordinates is rich in history and, since its beginnings, has been
closely connected with the study of kinematics. Although we shall not have need for all of the
elegance in this book, you will find that this and the related fields of affine and projective

Chapter 3: Modeling Machines with Transformation Matrices

geometry provide fascinating reading and add further insight into the work of the coming
chapters.4

3.3

Three Dimensional Angular Orientation

One of the most basic problems of kinematics is that of describing three dimensional rotations or,
more precisely, of specifying the angular orientation of a rigid body with respect to a known
frame of reference. Clearly, the orientation of a rigid body is completely determined once a set of
coordinate axes fixed to the body has been located relative to a known reference frame. In this
Section we will assume that the origins of the two coordinate systems remain coincident so that
we may concentrate solely on their relative angular orientation. A typical problem of this type is
that of describing the position of a spinning top such as that shown in Figure 3.1.
The top carries a right-hand Cartesian coordinate system x1 y1 z1 which must be located
relative to a fixed coordinate system x2 y2 z2 .5
One fruitful way of describing the relative angular relationship between two coordinate
systems is through what are called direction cosines. If p is the position vector of some arbitrary

Figure 3.1 Orientation of a spinning top.


point on the top, and if i, j, k and i , j , k represent unit vectors along the x2 y2 z2 and x1 y1 z1
axes, respectively, then the component of p along the x2 axis, for example, can be expressed as
follows:
4.

An excellent account of the history of these methods (including an extensive bibliography) is given in J. L.
Coolidge, A History of Geometrical Methods, Dover Publications, Inc., New York, 1963.

5.

The part labels, 1 for the top and 2 for the stationary reference frame, follow our convention of Chapter 2 that
the fixed body carries the highest index.

Chapter 3: Modeling Machines with Transformation Matrices

p x2 = i p = ( i i ) p x1 + ( i j ) p y1 + ( i k ) p z1
!
!
!
= cos(i, i) p x1 + cos(i, j ) p y1 + cos(i, k ) p z1

(3.5)

where cos(i"
, j ) , for example, denotes the cosine of the angle between the i and j unit vectors.
Expressing the p y2 and p z2 components of p in the same format, and grouping the results
into a single matrix equation, we obtain

#
"
"
p x2 cos(i, i) cos(i, j ) cos(i, k ) p x1


y2
y1
"
!
!

p = cos( j, i ) cos( j, j ) cos( j, k ) p


z1
p z2 cos( k"
, i) cos( k!
, j ) cos( k!
, k ) p

or

p2 = 21 p1

(3.6)

Such a (3x3) matrix is called a rotation matrix and is useful for transforming any free vector
from one coordinate system to another. The nine direction cosines in the matrix 21 completely
describe the instantaneous angular orientation of the x1,y1,z1 coordinate system with respect to the
x2,y2,z2 coordinate system.
We know, however, that the nine direction cosines cannot be independent since a rigid body
has only three degrees of freedom in spatial rotation. There must be six additional equations
relating these directions cosines. These may be found by considering the fact that the magnitude
of the vector p must be identical in both coordinate systems,
2

( p ) +( p ) +( p ) = ( p ) +( p ) +( p )
x2

y2

z2

x1

y1

z1

Rewriting this in matrix form, we see that


p2t p2 = p1t p1

(3.7)

where the superscript t indicates the transpose of the matrix. Now, substituting Eq. (3.6) into this
expression yields
p1t 21t 21 p1 = p1t p1

which can only be satisfied for all values of p if

21t 21 = I

(3.8)

This, in turn, shows that

Chapter 3: Modeling Machines with Transformation Matrices

21t = 211

(3.9)

A matrix having this interesting property is said to be an orthogonal matrix, and Eq. (3.9) is
one expression for what are called the orthogonality conditions. This matrix equation includes
the six conditions relating the nine direction cosines of Eq. (3.6).
Since these direction cosines are not all independent, it is not convenient to use them as the
"coordinates" which describe the angular orientation of the spinning top. It would be more
suitable to find a set of three independent parameters, preferably angles, for describing such a
three-dimensional rotation.
Although a number of possible sets of parameters have been suggested in the literature, one
classical method is the specification of three angles as shown in Figure 3.2. A moving coordinate
system x1,y1,z1 is initially coincident with the reference coordinate system x2,y2,z2. It is first
rotated about its own x2 axis through a counterclockwise angle , after which the y1 axis finds
itself in a new position labeled y .6 The coordinate system is then rotated about this new y axis
through a counterclockwise angle , the x and z axes reaching new positions designated x
and z . Finally, the system is rotated through a third counterclockwise angle about this new z
axis, with the new x and y reaching new locations called x1 and y1.
These three rotations -- taken in the order given7 -- may be chosen to uniquely describe an
arbitrary three-dimensional rotation. These choices of angles, taken in this order, are called the
Tait-Bryan angles.8 Taken under different sets of conventions the three angles are more generally
referred to as Euler angles. Once the order and sign conventions are specified, three angles are
unique and are sufficient to specify the relative angular orientation of any two arbitrarily oriented
Cartesian coordinate systems.9
One might be tempted to try to represent the group of three successive rotations by means of
6.

The convention used consistently throughout this text, that counterclockwise angles are positive, is not
arbitrary. It is required by such conventions as k = i x j and the assumption that we wish to use right- handed
Cartesian coordinate systems, with their y axes taken counterclockwise from their x axes as seen from their
positive z axes.

7.

There is little agreement among different authors on which axes the three successive rotations are to be taken
about and in which order; a wide variety of definitions exist. See, for example, H. Goldstein, Classical
Mechanics, Addison-Wesley Publishing Co., Inc., Reading, MA, 1959, pp.107-108. Care must be taken when
comparing detailed final results with texts using other conventions.

8.

These are named after Peter Guthrie Tait (1831-1901). They are also called Cardano angles, after Gerolamo
Cardano (1501-1576). Sometimes, with the x axis aligned with the fore-aft axis of a craft or vehicle, with the y
axis lateral, and with the z axis vertical, these three angles are referred to as nautical angles and called roll,
pitch, and yaw angles, respectively.

9.

There are certain positions, for example with the conventions used here, where the angle is equal to 90,
for which there are not unique values for and for a chosen orientation since, at such an orientation, the
and angles are measured about collinear axes. Such an orientation does not have three independent angles
and full three-dimensional rotational motion about such an orientation cannot be described by this choice of
variables. All choices of sets of Euler angles share this difficulty. There is always at least one orientation
where two of the rotation axes are collinear, causing a singularity called "gimbal lock" in the description.

Chapter 3: Modeling Machines with Transformation Matrices

a vector directed along each axis of rotation and having a magnitude defined by the size of the
angle; the three component vectors would represent the three individual rotations. However, this
representation would be misleading. The net rotation, the resultant of the three angles taken in
succession, would not be represented by the sum of the three individual "rotation vectors". This
is evident when we remember that the order of the three rotations is vital, and is not taken into
account by the laws of vector addition. On the other hand, the Tait-Bryan angles (which do not
form a vector) can be used quite conveniently in our matrix formulation, as we will see, since
angular rotations are combined by matrix multiplication, which is not commutative and does
preserve the sequence.
In order to express the rotation transformation matrix 21 in terms of Tait-Bryan angles we
proceed in the sequence indicated in Figure 3.2. The first rotation takes place about the x2 axis
and has a rotation matrix of the form
p2 = p

0
1

= 0 cos
0 sin

sin
cos
0

Chapter 3: Modeling Machines with Transformation Matrices

(3.10)

Figure 3.2 Tait-Bryan angles.


The second rotation takes place about the y axis and is characterized by the transformation
p = p

cos
= 0
sin

sin
1
0
0 cos
0

(3.11)

Finally, the third rotation takes place about the z axis and has a rotation matrix of the form
p " = p1

cos
= sin
0

sin
cos
0

0
0
1

Chapter 3: Modeling Machines with Transformation Matrices

(3.12)

To combine these three rotations into a single transformation matrix we substitute Eq. (3.12)
into Eq. (3.11) and then substitute the result into Eq. (3.10). This gives
p2 = p1

and, on comparing with Eq. (3.6), we find that the total direction cosine matrix relating the
orientations of coordinate systems x2,y2,z2 and x1,y1,z1 must be of the form

21 =
cos cos

21 = cos sin + sin sin cos


sin sin cos sin cos

(3.13)

cos sin

sin

sin cos
cos cos

(3.14)

sin sin cos sin cos


sin cos + cos sin sin

cos cos

(3.15)

cos cos sin sin sin


sin cos + cos sin sin

From Eq. (3.9) we can also write

211 = 21t = t t t

1
21

cos cos
= cos sin

sin

cos sin + sin sin cos


cos cos sin sin sin
sin cos

The reader is asked to verify that

21 = +1

3.4

(3.16)

Euler Parameters

As mentioned in the previous Section, there is one major difficulty with the use of any set of
Euler angles for the specification of spatial orientation. No matter which set of conventions is
chosen for the definition of Euler angles, there is always a singularity in the specification for
some values of the angles. It would be nice to have a method of specification of threedimensional rotations which does not display such a singularity for any values of orientation.
The Euler parameters provide such a description.10
Figure 3.3 shows the x1 y1z1 coordinate frame rotating with respect to the x2 y2 z2 axes. By
Euler's theorem (see Section 5.2) we will see that the moving body can achieve its modified
10.

The material in this Section is adapted from:


(1) P. E. Nikravesh, "Spatial Kinematic and Dynamic Analysis with Euler Parameters", Computer Aided
Analysis and Optimization of Mechanical System Dynamics, E. J. Haug (ed.), NATO ASI Series,
Springer-Verlag, 1984, ISBN 0-387-12887-5, pp.261-281.
(2) P. E. Nikravesh, R. A. Wehage, and O. K. Kwon, "Euler Parameters in Computational Kinematics and
Dynamics", Parts I and II, Journal of Mechanisms, Transmissions, and Automation in Design, ASME
Transactions, vol. 107, 1985, pp. 358-369.

Chapter 3: Modeling Machines with Transformation Matrices

position by a single rotation about an axis of rotation, identified in Figure 3.3 by the vector u .

u x


u = u y
z
u
Axis to achieve rotation of
of
toachievth
to x2 y2 z2
Xx1 yY1 z1Z relative
orientat
e relati
e to
th X 0 Y 0ion
Z 0 coordina
ve fram
e
te
e

y2
$

u is a unit vector
ofrotation
rotati
along the
axis

on

y1

x1

x2

z2

z1

Figure 3.3 Rotation of x1 y1 z1 axes about an axis of rotation u .


This vector is a unit vector and defines the positively oriented axis of rotation.
x 2

y 2

z 2

(u ) + (u ) + (u )

=1

The components of u are identical in both coordinate frames.


Given that the rotation about the u axis to achieve the orientation x1 y1 z1 is by some angle ,
we define a new vector with components

e1 u x
2 y
e = u sin ( )
e3 u z

Note that the components of this vector are the same in both coordinate frames, because it is
aligned with the axis of rotation. We also define a fourth parameter, e4 = cos ( ) , so that the
total set becomes a unit vector

Chapter 3: Modeling Machines with Transformation Matrices

10

e1
2
e
{e} = 3
e
e 4

2

where ( e1 ) + ( e2 ) + ( e3 ) + ( e 4 ) = 1 or {e} {e} = 1 . These four parameters are called the Euler
parameters for the rotation. Taken together they form a four dimensional algebra, consisting of a
Cartesian vector along with a scalar, and this set of four is also called a quaternion.11
t

Expressed in terms of Euler parameters, the transformation matrix for the rotation of the
x1 y1 z1 coordinate frame with respect to the x2 y2 z2 coordinate frame is

( e1 )2 ( e2 )2 ( e3 )2 + ( e4 )2

21 =
2e1e2 + 2e3e4

2e1e3 2e2e4

2e1e2 2e3e4
2

2 3
1 4
2e e 2e e
(3.17)
2
2
2
2
( e1 ) ( e2 ) + ( e3 ) + ( e4 )

2e1e3 + 2e2e4

( e1 ) + ( e2 ) ( e3 ) + ( e4 )

2e2e3 + 2e1e4

For situations in which a numerical form of the transformation matrix is already known and
we wish to compute the corresponding Euler parameters, we may desire a numerical procedure to
do this.12
Let us suppose that the rotational transformation is available in numeric form, that is, that
( i, j ) are known numeric values.13 From Eq. (3.17), we see that14

{(

trace ( ) = { (1,1) + ( 2, 2 ) + ( 3, 3)} = e1


2

) (e ) (e )
2

( )}

+ 3 e4

But, since we know that ( e1 ) + ( e2 ) + ( e3 ) + ( e4 ) = 1, therefore, ( e4 ) ={trace ( ) + 1} , or

e4 = trace ( ) + 1

(3.18)

where the sign may be selected arbitrarily.


Computation of the other parameters now involves consideration of numerical issues such as
divisions by small numbers or subtraction of numbers which are nearly equal but not numerically
11.

First developed by Sir William Rowan Hamilton (1805-1865), Lectures on Quaternions: Containing a
Systematic Statement of a New Mathematical Method. Dublin, Hodges and Smith, 1853.

12.

The material in the remainder of this Section is adapted from O. Friberg, "Computation of Euler Parameters
From Multipoint Data", Journal of Mechanisms, Transmissions, and Automation in Design, ASME
Transactions, June 1988, vol. 110, pp. 116-121.

13.

Here the symbol ( i , j ) refers to the element of in row i and column j.

14.

The trace of a square matrix is defined as the sum of the terms on the major diagonal.

Chapter 3: Modeling Machines with Transformation Matrices

11

identical. For these reasons, we establish an acceptable precision threshold such that e4 is
considered close to zero if e4 .15 There are two possible cases:

Case 1: In this case, e4 > .


We note from the diagonal terms that
e1 = 1 + 2 (1,1) trace ( )
e2 = 1 + 2 ( 2, 2 ) trace ( )

(3.19)

e3 = 1 + 2 ( 3, 3) trace ( )
and, by subtracting off-diagonal elements of [ ] , we also have

( 4e )
= (1,3) ( 3,1) ( 4e )
= ( 2,1) (1, 2 ) ( 4e )

e1 = ( 3, 2 ) ( 2,3)
e2
e3

(3.20)

Equations (3.20) might be used to compute the three parameters e1 , e 2 , e3 once the sign of e4 has
been selected. However, a better numerical approach is to utilize the magnitudes given by Eqs.
(3.19) together with sign information from the numerators of Eqs. (3.20). The reason for this
choice is that, when e4 0 , the transformation matrix approaches symmetry and, in that
situation, numerical cancellation effects can occur in the numerators of Eqs. (3.20). It should
also be noted that, when e4 0 , then trace( ) 1 might result and "zero" divided by "zero"
situations might occur in Eqs. (3.20) if the divisions were attempted.

Case 2: In this case, e4 .


4

If e has been determined numerically to be essentially zero according to the threshold , then
we have,
e 2 e3 = ( 3, 2 ) + ( 2,3)
e1e3 = (1,3) + ( 3,1)

(3.21)

e1e 2 = ( 2,1) + (1, 2 )

Also,

15.

The IMP software system uses = (10 )

for this threshold.

Chapter 3: Modeling Machines with Transformation Matrices

12

e1 = (1,1) + 1
e 2 = ( 2, 2 ) + 1

(3.22)

e3 = ( 3,3) + 1

Since

1 2

2 2

3 2

4 2

(e ) + (e ) + (e ) + (e )

= 1 , with e 4

being numerically small, at least one of

e1 , e 2 , or e3 must be nonzero. From Eqs. (3.22) above, we can select the largest numeric value

and arbitrarily assign it a plus or minus sign, and then utilize Eqs. (3.21) to compute the
remaining two Euler parameters. Thus, in this case, when the rotation transformation matrix
is essentially symmetric, it is convenient to use only the row and column of corresponding to
the largest diagonal element.

Example 3.1:
As an illustrative example, consider the coordinate frames shown in Figure 3.4. In this case, the
x1 y1 z1 frame is rotated such that the x1 axis is precisely opposite to positive z2 , the z1 axis is
opposite to positive y2 , and the y1 axis completes the right handed coordinate system by aligning
itself parallel to x2 .

xX
1 1

10

5
0

y2
Y
0

y1

Y1
z1

x2

X0

Z1

Zz20
Figure 3.4 Example 3.1.
By inspection, the rotation matrix is:

x2 0 1 0 x1


y2 = 0 0 1 y1
z 1 0 0 z
2
1
This (3x3) rotation matrix is the matrix for computation of the corresponding Euler parameters.

Chapter 3: Modeling Machines with Transformation Matrices

13

First from Eq. (3.18) we find


e 4 = trace( ) + 1 = 1 = +0.500

where we have arbitrarily selected the positive sign. Note that this is Case 1.
Next, from Eqs. (3.19) give:

e1 =

e 2 =

e 3 =

e 2 = +

e 3 =

and Eqs. (3.20) give:

e1 = +

Thus, we have the definition of signs as well as magnitudes of the four Euler parameters.

e1 0.500
2

e 0.500
3 =

e 0.500
e4 0.500
Since e4 = cos ( ) = 0.500 , we see that the angle of rotation is = 120% and the unit vector
along the axis of rotation to achieve the orientation of the x1 y1 z1 frame is

e1 u x
0.500
2 y

e = u sin ( ) = 0.500
e3 u z
0.500


which shows that
u x 1 3 0.577

y

u = 1 3 = 0.577
u z

1 3 0.577

Example 3.2:
As another example, consider the coordinate frames shown in Figure 3.5.

Chapter 3: Modeling Machines with Transformation Matrices

14

Yy20

Xx11
xX
2

zZ
2

z1Z1
0

yY
1

Figure 3.5 Example 3.2.


In this case, the rotation matrix is:

x2 1 0 0 x1


y2 = 0 1 0 y1
z 0 0 1 z
2
1

e4 = trace( ) + 1 = 0
Note that this is Case 2. Therefore, from Eqs. (3.22):
e1 = 0

e2 = 0

e3 = 1

We select e3 = +1 . Then, Eqs. (3.21) give e1 = 0 and e2 = 0 .


Euler parameters,

Thus, we now have all four

e1 0
2
e 0
3 =
e 1
e4 0
Since e4 = cos ( ) = 0 , the angle of rotation is = 180% . The unit vector along the axis of
rotation to achieve this orientation of the x1 y1 z1 frame is

Chapter 3: Modeling Machines with Transformation Matrices

15

e1 u x
0
2 y

e = u sin ( ) = 0
e3 u z
1


which shows that
u x 0
y
u = 0
u z 1

3.5

Transformation of Coordinates

In Section 3.3 we demonstrated that the position vector of a point in a Cartesian coordinate
system can be transformed into an equivalent position vector in a second Cartesian coordinate
system by multiplying by the rotation matrix as was shown in Eq. (3.6). This transformation,
however, was restricted to the case where the two coordinate systems shared coincident origins.
In this Section we will remove this restriction and develop a general transformation of coordinates in three dimensional space.
Consider the arbitrarily chosen point p of Figure 3.6. The two Cartesian position vectors pi
and pk of this point are related by the vector equation
pi = pk + pOk

(3.23)

zk

pk

zi

pi
p xk

Ok

p yk

pOk

xk

p zk
yk

pOzik
xi
Ok

xi

p zi

pOyik

xi

p yi
yi

Figure 3.6 General 3-D coordinate transformation.


Chapter 3: Modeling Machines with Transformation Matrices

16

If we write each of these vectors in terms of its components along its own coordinate axes,
then, referring to Figure 3.7, we have

pi = p xi i + p yi j + p zi k
pk = p xk i + p yk j + p zk k
xi

yi

zi

(3.24)

pOk = p O i + p O j + p O k

zk

pk

pi

Ok

p zk

pOk

xk

xk

yk

p yk

zi
Ok

xi
Ok

xi

zi

p zi

p yi

pOyik

p xi
yi

Figure 3.7 General 3-D coordinate transformation.


Adding these according to Eq. (3.23) we obtain
p xi i + p yi j + p zi k = p xk i + p yk j + p zk k + p Oxi i + p Oyi j + p Ozi k
k

(3.25)

Now taking the dot product of this equation with each of the unit vectors i, j, and k in turn,
we obtain three scalar equations:

Chapter 3: Modeling Machines with Transformation Matrices

17

( )
( )
cos ( !
j, j ) + p cos ( !
j, k ) + p
cos ( k!
, j ) + p cos ( k!
, k ) + p

p xi = p xk cos i#
, i + p yk cos i"
, j + p zk cos i"
, k + p Oxi

( )

( )
cos ( k"
, i ) + p

p yi = p xk cos "
j, i + p yk
p zi = p xk

yk

zk

zk

yi
Ok

zi
Ok

In terms of homogeneous position coordinates these can be written


cos i#
, i
px
y
"
p = cos j, i
pz
, i
cos k"
1

( )
j, j )
( ) cos ( !
, j)
( ) cos ( k!
( )

cos i"
, j

( )
cos ( !
j, k )
cos ( k!
, k )
cos i"
,k

p Oxi x
k
p
yi y
pO p
k
pz
zi
pO
k
1 k
1

(3.26)

where the final row of the new (4x4) transformation matrix simply expresses the identity, 1 = 1.16
We can extend the utility of the above equation by noting that a point at infinity (in the sense
of Eq. (3.4)) is also properly transformed by the same (4x4) matrix.17 Therefore we can say in
complete generality that the transformation between any two three-dimensional Cartesian
coordinate systems labeled i and k is expressed by the equation

ri = Tik rk

(3.27)

where ri and rk represent the homogeneous position vectors of a point expressed in the i and k
coordinate systems, respectively, and Tik is a (4x4) transformation matrix of the form
cos i#
, i

cos "
j, i

Tik =

cos k"
, i

( )
j, j )
( ) cos ( !
, j )
( ) cos ( k!
( )

cos i"
, j

( )
cos ( !
j, k )
cos ( k!
, k )
cos i"
,k

p Oxi
k

p Oyi
k

p Ozi
k

(3.28)

In terms of the Tait-Bryan angles relating coordinate systems i and k, from Eq. (3.14) we can
write

16.

The simplicity of the bottom row of this matrix results from our assumption of rigid body transformations; it is
not so in the more general fields of affine or projective transformations. It can also be viewed as a constraint
that the scale (a unit distance) in the i coordinate system is equal to the scale (a unit distance) in the k
coordinate system.

17.

The reader may wish to verify that, after transformation, a point at infinity remains at infinity. Note how this
results from the special rigid body form of the bottom row of the matrix.

Chapter 3: Modeling Machines with Transformation Matrices

18


cos cos

cos sin + sin sin cos


Tik =
sin sin cos sin cos

cos sin

sin

cos cos sin sin sin

sin cos

sin cos + cos sin sin

cos cos

p Oxi
k

yi
pO
k

zi
pO
k

(3.29)

By expanding the determinant of Tik along its bottom row and using Eq. (3.16) it is easy to
demonstrate that

Tik = +1

(3.30)

Although the (3x3) rotation submatrix remains orthogonal, however, this orthogonality
property [Eq. (3.9)] does not always extend to the entire (4x4) transformation matrix.

3.6

Body Coordinate Systems

Consider the problem of describing the shape of the rigid machine part pictured in Figure 3.8.
From our structural analysis studies in Chapter 2 we have already assumed that each body has an
identifying label i; we find it convenient to use these same identifying labels here. To allow a
precise definition of what we mean by "shape" we now assume that a right-hand Cartesian
coordinate system xi,yi,zi is chosen for each machine part and is rigidly attached to its own body
at some convenient, but arbitrary, location.

Figure 3.8 Body coordinate system.


The position of a body will be described by calculating the position of -- the transformation
matrix for -- this body coordinate system with respect to some overall fixed coordinate system
for the system. Once we find the position of the bodys coordinate system, we know all that is
necessary to define the position of the part and all its features. This will be shown later; at this
time we only note that such a coordinate system must be defined for each body, and that it is the
primary coordinate system for locating other items such as points attached to that body. We also

Chapter 3: Modeling Machines with Transformation Matrices

19

note that this coordinate system can be used as the reference for specifying the shape of the body,
the joint element locations, the center of mass location, the mass moments of inertia, and so on,
and that, as long as bodies are considered rigid, all such properties remain constant in that body
coordinate system as the system moves.

3.7

Joint and Auxiliary Coordinate Systems

It was pointed out in Section 1.4 that the primary function which a rigid body serves is to insure
that the relative positions of its joint elements do not change; that is, the purpose of a machine
part is to hold its joint elements in constant geometric relationship. To reflect this we define
another right-hand Cartesian coordinate system at each of the joint elements, defined to be
aligned conveniently with the natural axes of that joint. Such an auxiliary coordinate system may
also be convenient for locating an important shape feature of a body such as a hole or a keyway
or a handle as shown in Figure 3.9.

Figure 3.9 Joint coordinate system attached to a body.


Much more will be said in later sections about how these joint coordinate systems are chosen
to locate each type of joint element; however, we need not be concerned with such conventions at
present. Here we only note the need to develop a technique for specifying data for the initial
location and orientation of each joint or auxiliary coordinate system and storing this data in a
form that can be conveniently used (and held constant) in later parts of the analysis.

3.8

Specifying Data for a Coordinate System

Information about the shapes of the parts of a mechanical system is usually available in the form
of x,y,z Cartesian coordinate data for certain key points. This comes about since, at least in early
design stages, a sketch or layout drawing of a mechanical system is usually the primary source of
dimensional data. At other times, such as in the analysis of an existing machine, perhaps the

Chapter 3: Modeling Machines with Transformation Matrices

20

detail drawings or CAD18 data files for individual parts may provide a more convenient source of
information for dimensions. In any case, however, it is usually quite easy to obtain x,y,z
coordinate data for strategic points.
Here we assume that data is specified in a convenient measurement coordinate system whose
axes are labeled x,y,z and that we wish to locate another coordinate system whose axes are
labeled u,v,w. We want to establish a procedure for determining the location and orientation of
u,v,w with respect to x,y,z; that is, we wish to find data for the transformation matrix of the
following equation19

x T (1,1) T (1, 2 ) T (1,3) T (1, 4 ) u


y T 2,1 T 2, 2 T 2,3 T 2, 4 v
( ) ( ) ( )
= ( )
z T ( 3,1) T ( 3, 2 ) T ( 3,3) T ( 3, 4 ) w


0
0
1 1
1 0

(3.31)

To establish a general procedure we require that the following data be specified, all measured
along some chosen set of x,y,z axes:20
(a)

Coordinates x1,y1,z1 of the origin of the u,v,w coordinate system. This is the point labeled
1 in Figure 3.10.

(b)

Coordinates x2,y2,z2 of a point lying on the positive w axis, such as point 2 in Figure 3.10.

(c)

Coordinates x3,y3,z3 of a point lying on the positive u axis, such as point 3 in Figure 3.10.

Figure 3.10 Specifying data to locate a coordinate system.


18.

Acronym for Computer-Aided Design.

19.

The symbolism T(i,j) refers to row i, column j, of the transformation matrix T. It is used here to avoid the
definition of yet further subscripts.

20.

This coordinate system is chosen conveniently for measurement of the data. It need not be the same as that
used for other body coordinate systems since, except for the base (frame), its location will not be kept for later
analysis.

Chapter 3: Modeling Machines with Transformation Matrices

21

From the definition of the first of these data points we set u = v = w = 0, x = x1 , y = y1 , and
z = z1 in Eq. (3.31); doing this shows that T(1,4) = x1, T(2,4) = y1, and T(3,4) = z1 as we should
expect. Procedurally this means that the data for the first point can be entered directly into the
fourth column of the transformation matrix without change.
We next use the difference between x2,y2,z2 and x1,y1,z1 and their definitions to show that

x2 x1 T (1,1) T (1, 2 ) T (1,3)


y y T 2,1 T 2, 2 T 2,3
( ) ( )
2 1 = ( )
z2 z1 T ( 3,1) T ( 3, 2 ) T ( 3,3)


0
0
0 0

x1 0
T (1,3)
0

y1
T ( 2,3)

= w2
T ( 3,3)
z1 w2

1 0
0

From this we find


w2 =

( x2 x1 ) + ( y2 y1 ) + ( z2 z1 )
T (1,3) = ( x2 x1 ) w2
T ( 2,3) = ( y2 y1 ) w2
T ( 3,3) = ( z2 z1 ) w2

Procedurally, this shows that we may fill the third column of our matrix by taking the
differences between the data for the second and first points, and that we should then normalize
this column to become a unit vector. This should be no surprise since the third column of the
transformation denotes the direction of the unit vector for the w axis as measured in the x,y,z
system.
In a similar fashion, we use the difference between points x3,y3,z3 and x1,y1,z1 and their
definitions to show that
u3 =

( x3 x1 ) + ( y3 y1 ) + ( z3 z1 )
T (1,1) = ( x3 x1 ) u3
T ( 2,1) = ( y3 y1 ) u3
T ( 3,1) = ( z3 z1 ) u3

Thus, the first column of the transformation matrix is found by taking the differences
between the data for the third and first points and then normalizing. This first column represents
the unit vector for the u axis as measured in the x,y,z system.
Once the first and third columns of the matrix are found and normalized, we find the entries
of the second column by remembering that the vector cross product between unit vectors along
the w axis (column 3) and u axis (column 1) yields a unit vector along the v axis. Thus,

Chapter 3: Modeling Machines with Transformation Matrices

22

T (1, 2 ) = T ( 2,3 ) T ( 3,1) T ( 3, 3) T ( 2,1)


T ( 2, 2 ) = T ( 3,3) T (1,1) T (1,3 ) T ( 3,1)
T ( 3, 2 ) = T (1, 3) T ( 2,1) T ( 2,3 ) T (1,1)
This completes the entries for the entire transformation matrix. However, it is wise to
question the quality of the result in a case where inaccurate data might be given. The above
procedure insures that the origin of the u,v,w system is properly located to match the data for
point 1. Similarly, the u and w directions always exactly match those implied by the data points
given. In addition, even though the data points are not required to be separated by unit distances,
columns 3 and 1 have been normalized to represent unit vectors for w and u.
So where might faulty data cause a problem? First, if the data for points 2 and 1 show them
to be coincident, then the values computed for w2 yield zeroes and the procedure must terminate
(or produce a division by zero during normalization). Similarly, the value of u3 must be tested
for zero to protect against coincident data for points 3 and 1. Second, if either w2 or u3 is smaller
than some acceptable tolerance value, the orientation of the w axis or u axis is of questionable
accuracy21. Third, there is the possibility that the data for all three points prove them to be nearly
collinear. This would result in the second column of the matrix being unacceptably small or
perhaps even zero. This too must be tested and treated as an error in the data.
Finally, it is likely that the three points, even though not collinear, are probably not situated
to form an exact right angle. In this case, the u and w axes become unit vectors but are not
exactly perpendicular to each other. To guard against this, the second column of the final matrix
is also normalized after it is found. By normalization of the second column we guarantee that the
v axis is a unit vector perpendicular to both the u and w axes. We then recalculate an adjusted u
axis which is perpendicular to both v and w by forming another vector cross product overwriting
the previous data for u stored in column 1:
T (1,1) = T ( 2, 2 ) T ( 3, 3) T ( 3, 2 ) T ( 2,3)
T ( 2,1) = T ( 3, 2 ) T (1, 3) T (1, 2 ) T ( 3,3)
T ( 3,1) = T (1, 2 ) T ( 2,3) T ( 2, 2 ) T (1,3)
In effect, this last step revises the original convention, stated near the start of this Section. To
account for possible inaccuracy the convention for choosing the data for point 3 has now
become:
The coordinates x3,y3,z3 of a point lying in the half-plane defined by the w axis and the
positive u axis such as point 3 shown in Figure 3.10

21.

This also shows why it is unwise to choose a measurement coordinate system x,y,z which is located extremely
distant from the points for which data are being measured. Since the computer has finite precision it sacrifices
accuracy (requiring small differences between large values) to choose the global coordinate system of a car, for
example, when specifying data for the internal workings of the glove compartment lock.

Chapter 3: Modeling Machines with Transformation Matrices

23

3.9

Modeling Dimensional Characteristics of a Body

Let us now review our progress to this point. In Chapter 2 we learned how a computer program
can be written to accept information on the topology of a mechanical system, and which can discover the kinematic loops and paths from the fixed frame to each and every other part. In finding
these we assigned identifying numbers (labels) to every body and every joint.
We now assume that there exists an agreed upon absolute Cartesian coordinate system
x0,y0,z0 which is assumed stationary and which is the primary coordinate system in which results
are expected.
In Section 3.6, we noted that each machine part carries a body coordinate system xi,yi,zi,
where i is the identifying label of the body. Data for the initial location of each of the body
coordinate systems may be supplied by the methods shown in Section 3.8. For points of each
body i:
Ri = T0i ri

i = 1,2,, (3.32)

where ri shows the homogeneous coordinates of a point attached to body i, measured with respect
to xi,yi,zi, and Ri shows the homogeneous coordinates of the same point with respect to the
absolute system, x0,y0,z0. Thus, for each part of the mechanical system, we assume that data is
supplied as described above by which we find initial numeric values for each of the
transformation matrices for the body coordinate frames with respect to the fixed frame. This
assumes that it is convenient to gather the initial data in the global coordinate system, as from a
layout drawing. These data, however, are all given for only one position of the mechanical
system, and change when the system moves.
In Section 3.7, we saw that there may also be need for several joint and auxiliary coordinate
systems attached to the various bodies, to define joint element locations and orientations, for
example. Data for the initial locations of these are also supplied in the same way. We have:
R j = T0 j rj

(3.33)

where subscript j identifies the label of a joint or auxiliary coordinate system and rj shows the
homogeneous coordinates of a point measured in coordinate system uj,vj,wj. Rj shows
homogeneous coordinate data for the same point with respect to the global reference frame,
x0,y0,z0.
For the case of joint or auxiliary coordinate systems, however, we do not choose to store the
T0j data as such. By setting Eq. (3.33) equal to Eq. (3.32) we see that
ri = Sij rj

(3.34)

Sij = T0i 1T0 j

(3.35)

where

Chapter 3: Modeling Machines with Transformation Matrices

24

This Sij matrix, called the shape matrix for joint or auxiliary coordinate system j, is the data
which we store for later calculations since this matrix remains constant when the system moves.
Keeping this shape matrix constant during the motion is our technique for enforcing the rigid
body assumption for body i; it insures that each joint element and each auxiliary coordinate
system retains a constant geometric relationship to its own body coordinate system.
If we prefer to enter data for a body from a detail drawing of that part alone, comparing Eq.
(3.31) and Eq. (3.34) shows that the procedure of Section 3.8 can be used to find the Sij matrix
directly. If not, we can collect the T0j data for the joint or auxiliary coordinate systems with
respect to the global reference frame from the layout drawing as shown in Eq. (3.33). Then, once
the body coordinate systems have been located and the T0i data are complete, Eq. (3.35) can be
used to find the shape matrices.22
By one of these procedures, we assume that a shape matrix Sij is found for each joint element
and each auxiliary coordinate system before any further analysis is attempted for the system.
These form the primary dimensional data for our computer model of the mechanical system.
For any point of the system, then, once we have coordinate data for a particular point of
interest on one of the bodies, and once this data is known with respect to one of the joint or
auxiliary coordinate systems, we can use Eq. (3.34) to find its position with respect to the body
and then use Eq. (3.32) to find its absolute global position. As the system moves, the T0i
matrices change showing the movement of each body; these same T0i matrices may then be used
to update the changed global positions of any points attached to body i.
We note also that very detailed shape models of the bodies might be used, such as finite
element models for stress analysis, or solid models for animated picture generation or
interference detection between the bodies. In each case, no matter how complex the shape
model, each mechanical parts data can be stored unambiguously with respect to its body
coordinate system, and remains constant with respect to that coordinate system as the system
moves (as long as we accept the rigid body assumption for the part shapes). All movement of a
mechanical part is simulated by modifying the T0i matrix for that body, and this implicitly
changes the global positions of all points of that part model simultaneously. Thus, we have a
very general and widely applicable procedure for measuring and storing all critical dimensional
parameters of the moving bodies of a mechanical system.

3.10

Modeling Joint Motion Characteristics

The above descriptions of the body shapes, however, do not tell the whole story. As pointed out
in Chapter 1, one of the primary purposes of a mechanical system is to transform motion, and the
shape matrices and local coordinate data for all points of interest on the parts are treated as
constant because of our rigid body assumption. We must now provide a means for characterizing
22.

Note that the coordinate system used for data collection need not necessarily match the "global" coordinate
system used later during the simulation of the final mechanical system. We need only be consistent until the
shape matrix is found. Since this is independent of the coordinate system in which the data was gathered for
finding it, we can use a different measurement coordinate system for finding another shape matrix.

Chapter 3: Modeling Machines with Transformation Matrices

25

the motions allowed in the machine; that is, we must find a convenient matrix description for the
constraints provided by the joints of the mechanical system.
The motion(s) taking place within a joint are fully described if we write an equation for the
relative motion between that joints two contacting joint element surfaces. However, to keep
generality, we must choose some standard procedure for describing this relative motion, a
procedure which can be applied to any kind of joint. Since there are an unlimited variety of joint
types, and since each has its own particular characteristic motion, it is not reasonable to look for
a single set of equations describing all joint types. We can, however, find a consistent procedure
for formulating such equations, and show how it is used for each of the lower pairs and a few
examples of particular types of higher pairs. If the procedure is general, it can then be extended
to new types of joints as the need arises.
We first assume that each of the two mating joint elements carries one of the Cartesian joint
coordinate systems discussed in Section 3.7.23 We assume for each joint j that a joint coordinate
system u j v j w j is rigidly attached to the "preceding" joint element and another u j vj wj is rigidly
attached to the "following" joint element, where the "preceding" and "following" elements are
distinguished by the defined orientation of the joint as explained in Section 2.2.24 These
coordinate systems are shown for a revolute joint, as an example, in Figure 3.11.
Since the transformation matrix of Eq. (3.27) can be adapted to describe the relative location
and orientation of any two coordinate systems, we can formulate such an equation relating
coordinate system u j vj wj to u j v j w j and it will result in a transformation matrix. If we give this
new transformation matrix the symbol j the transformation will be of the form
rj = j ( j ) rj

j = 1,2,, n (3.36)

where j is a vector containing as many joint variables as required for the freedom(s) of joint j.
Since the joint is movable, the elements of the transformation j change value depending on the
posture of the joint. The remaining task, therefore, is to derive the form of the joint matrix, j ,
for each type of joint which we expect to encounter in our analysis.25
It was pointed out in Chapter 1 that the helical joint is the parent of both the revolute and the
prismatic joints, and that the remaining lower pairs may be simulated by kinematically equivalent
combinations of these. Aside from the fact that revolute, prismatic, and helical joints each have a
single degree of freedom, the other feature common to these three is that each has an easily
identified axis for its relative motion. These joint axes provide a convenient starting place for the
mathematical description of joint motions since the choice of the coordinate axes for these joint
23.

Note here the necessity for defining a joint such that it connects two and only two joint elements.

24.

Note that these are the same joint coordinate systems which were used for shape matrices defined in Section
3.9.

25.

Note that two major restrictions have been placed on our methods so far. We have assumed that the system to
be analyzed consists entirely of rigid bodies, and that all of its joint types fall among those for which the
explicit form of the j matrix can be written.

Chapter 3: Modeling Machines with Transformation Matrices

26

types can be based on the locations and orientations of the joint axes.

3.10.1

Revolute Joint (Figure 3.11)

Figure 3.11 Coordinate systems for a revolute joint.


The following additional conventions are now imposed on the choice of the u j v j w j and
u j vj wj axes for a revolute joint:
1.

The w j and wj axes must be chosen along the joint motion axis; they must be collinear
and must have the same positive sense.26

2.

The origins of the two coordinate systems must be coincident.

Within these restrictions the axes may be chosen at will.


The joint variable for a revolute joint is designated j and is the counterclockwise angle
measured from positive u j to positive u j about the positive w j , wj axes.
The joint transformation matrix is represented by j ( j ) and is easily found by restricting
Eq. (3.29) according to the conditions stated.

cos j

sin j
j ( j ) =
0

sin j

cos j
0
0

0 0

0 0
1 0

0 1

(3.37)

On the other hand, if accurate values of j ( j ) are known numerically, say by the methods

26.

The w j and wj axes are chosen so that, in the case of a two-dimensional problem, the motion lies in the
common u v and uj vj planes.
j

Chapter 3: Modeling Machines with Transformation Matrices

27

of Section 3.8, then the values of the joint variable may be found as follows:27

j ( 2,1) j (1, 2 )

j (1,1) + j ( 2, 2 )

j = tan1

(3.38)

where j ( i, k ) refers to row i, column k of the matrix j .

3.10.2

Prismatic Joint (Figure 3.12)

Figure 3.12 Coordinate systems for a prismatic joint.


The additional conventions imposed on the choice of the u j v j w j and u j vj wj
prismatic joint are:

axes for a

1.

The u j and u j axes must be selected parallel to the joint motion direction; they must be
collinear and have the same positive sense.28

2.

The w j and wj axes must be parallel and have the same positive sense.

Within these restrictions the axes may be chosen at will.


The joint variable for a prismatic joint is designated j and is measured from w j to wj
measured in the direction of positive u j , u j .
The transformation matrix for a prismatic joint is:

27.

Note that the signs of the numerator and denominator must be considered separately to achieve the proper
quadrant for j . Note also that the possible division by zero must be avoided. When programming for digital
computation, the atan 2( , ) function provides both of these services directly.

28.

The prismatic joint motion axis is not unique. Any convenient axis parallel to the direction of the relative joint
motion may be chosen. The axis conventions are chosen here so that, in the case of a two-dimensional
problem, all motion lies in the common u j v j and u j vj planes.

Chapter 3: Modeling Machines with Transformation Matrices

28

1
0
j ( j ) =
0

0 0 j
1 0 0
0 1 0

0 0 1

(3.39)

If accurate values of j ( j ) are known numerically, then the values of the joint variable may
be found from:

j = j (1, 4 )

(3.40)

where j (1, 4 ) refers to row 1, column 4 of the matrix j .

3.10.3

Helical Joint (Figure 3.13)

sj

Figure 3.13 Coordinate systems for a helical joint


The conventions imposed on the choice of the u j v j w j and u j vj wj axes for a helical (screw)
joint are:
1.

The w j and wj axes must be chosen along the joint motion axis; they must be collinear
and have the same positive sense.

2.

The u j and u j axes must be chosen such that they coincide when the joint variable is
zero.

There are two possible choices for the joint variable of a helical joint. The rotational motion
is designated j , the angle from positive u j to positive u j and is measured counterclockwise
Chapter 3: Modeling Machines with Transformation Matrices

29

about positive w j , wj . The accompanying translational motion in the helical joint is designated
s j and is the distance from u j to u j measured along positive w j , wj .
There is only one joint variable possible, however, since a helical joint only exhibits one
degree of freedom in relative motion, and the two variables s j and j are related by the pitch j
of the screw.

j = s j = j j

(3.41)

We take the sliding distance s j to be the joint variable since this leads to no ambiguity when
the rotation extends beyond one full cycle.
The transformation matrix for a helical joint under these conventions is:
cos ( j j ) sin ( j j )

sin
cos ( j j )
j ( j ) = ( j j )

0
0

0
0

0 0

1 j

0 1
0

(3.42)

If accurate values of j ( j ) are known numerically, then the value of the joint variable may
be found from:

j = j ( 3, 4 )

(3.43)

where j ( 3, 4 ) refers to row 3, column 4 of the matrix j .

Chapter 3: Modeling Machines with Transformation Matrices

30

3.10.4

Cylindric Joint (Figure 3.14)

Figure 3.14 Coordinate systems for a cylindric joint


The conventions imposed on the choice of the u j v j w j and u j vj wj axes for a cylindric joint
are:
1.

The w j and wj axes must be chosen along the common joint motion axis.

2.

They must be collinear and have the same positive sense.


There are two joint variables
1j
j = 2
j

(3.44)

The first joint variable is the angle 1j from positive u j to positive u j counterclockwise about
positive w j , wj . The second joint variable is the distance j2 from u j to u j measured along
positive w j , wj .
The transformation matrix for a cylindric joint under these conventions is:

Chapter 3: Modeling Machines with Transformation Matrices

31

cos 1j

1
sin j
j ( j ) =
0
0

0 0

1 2j
0 1

sin 1j 0
cos 1j
0
0

(3.45)

If accurate values of j ( j ) are known numerically, then the values of the joint variables
may be found as follows:29

j ( 2,1) j (1, 2 )

j (1,1) + j ( 2, 2 )

1j = tan1

(3.46)

= j ( 3, 4 )
2
j

where j ( i, k ) refers to row i, column k of the matrix j .

3.10.5

Spheric Joint (Figure 3.15)

The only condition imposed on the placement of the u j v j w j and u j vj wj coordinate axes for a
spheric joint is that they must be chosen such that their origins are coincident and are located at
the center of the relative rotation of the spheric joint.

Figure 3.15 Coordinate systems for a spheric joint.


29.

Note that the signs of the numerator and denominator must be considered separately to achieve the proper
quadrant for 1j ; also the possible division by zero must be avoided. When programming for digital
computation, the atan 2( , ) function provides both of these services directly.

Chapter 3: Modeling Machines with Transformation Matrices

32

Euler parameters are used to describe the rotation between the two coordinate systems. The
choice of Euler parameters rather than Tait-Bryan or other angles avoids the difficulty of a
singular position as discussed in Section 3.4. Therefore, the spheric joint has four joint variables

1j
2

j = j3
j
4
j

(3.47)

with the additional constraint condition


2

( ) ( ) ( ) ( )
1j

+ 2j

+ 3j

+ 4j

=1

(3.48)

The transformation matrix for a spheric joint under these conventions is:

(1 )2 (2 )2 (3 )2 + (4 )2
21j2j 23j4j
21j3j + 2j2j4
j
j
j
j
2
2
2
2

21jj2 + 23j j4
(1j ) + (j2 ) (3j ) + (j4 )
2j23j 21jj4

j ( j ) =

2
2
2
2
21j3j 2j2j4
2j23j + 21jj4
(1j ) (j2 ) + (3j ) + (j4 )

0
0
0

0
(3.49)

If accurate values of j ( j ) are known numerically, then the values of the Euler parameters may
be found as discussed in Section 3.4. First, the fourth Euler parameter, j4 , is found by Eq. (3.18)
. Then, depending on its magnitude, we can proceed to find 1j , 2j , and 3j by Eqs. (3.19) and
(3.20) if 4j > , or by Eqs. (3.21) and (3.22) if 4j .

3-10.6

Flat Joint (Figure 3.16)

Chapter 3: Modeling Machines with Transformation Matrices

33

Figure 3.16 Coordinate systems for a flat joint.


The conventions for the assignment of the u j v j w j and u j vj wj coordinate axes for a planar or
flat joint are:
1.

The u j v j and u j vj planes must coincide and must be parallel to the two mating surfaces.

2.

The w j and wj axes must both be positively directed to the same side of this common
plane.

The three joint variables for the planar joint are the two rectilinear translation coordinates, 1j
measured along positive u j and j2 measured parallel to positive v j , respectively, and 3j the
rotation from positive u j to positive u j measured counterclockwise about positive w j , wj .

1j

j = j2
3j

(3.50)

The flat joint transformation matrix fitting these conventions is as follows:

cos 3j

sin 3j
j ( j ) =
0
0

sin 3j
cos 3j
0
0

0 1j

0 j2

1 0
0 1

(3.51)

If accurate values of j ( j ) are known numerically, then the values of the joint variables
may be found as follows:30

1j = j (1, 4 )
j2 = j ( 2, 4 )

(3.52)

j ( 2,1) j (1, 2 )

j (1,1) + j ( 2, 2 )

3j = tan1

where j ( i, k ) refers to row i, column k of the matrix j .

30.

Note that the signs of the numerator and denominator must be considered separately to achieve the proper
quadrants for 3j ; also the possible division by zero must be avoided. When programming for digital computation, the atan 2( , ) function provides both of these services directly.

Chapter 3: Modeling Machines with Transformation Matrices

34

3-10.7

Rigid Joint (Figure 3.17)

Figure 3.17 Coordinate systems for a rigid joint.


The single convention for the assignment of the u j v j w j and u j vj wj coordinate axes for a
rigid joint is that they must coincide.
The rigid joint allows no relative motion between the connected bodies. Therefore, it has no
joint variables. The rigid joint transformation matrix is as follows:
1
0
j =
0

3-10.8

0 0 0
1 0 0
=I
0 1 0

0 0 1

(3.53)

Open Joint (Figure 3.18)

Figure 3.18 Coordinate systems for an open joint.


Chapter 3: Modeling Machines with Transformation Matrices

35

There are no special conventions for the assignment of the u j v j w j and u j vj wj coordinate
axes for an open joint; they may each be chosen completely arbitrarily.31
Since we choose to use Euler parameters to describe the rotation between the two coordinate
systems, the open joint has seven joint variables. The seven joint variables for the open joint are
the three rectilinear translation coordinates defining the translations followed by the four Euler
parameters defining the orientation for the relative motion between the "connected" bodies.
1j
2
j
3j

j = j4
5
6j
j
7
j

(3.54)

with the additional constraint


2

( ) ( ) ( ) ( )
4j

+ 5j

+ 6j

+ 7j

=1

(3.55)

Here, as with the spheric joint, our choice of the use of Euler parameters for the rotational joint
variables rather than Tait-Bryan or other angles avoids the possibliity of a singular position as
discussed in Section 3.4.
Under these conventions the open joint transformation matrix is as follows:

(4 )2 (5 )2 (6 )2 + (7 )2
24j 5j 26j 7j
2j46j + 25j 7j
j
j
j
j

4 5
6 7
4 2
5 2
6 2
7 2
2

+
2

25j 6j 2j47j
(
)
(
)
(
)
(
j
j
j
j
j
j
j
j)
j (j ) =

2
2
2
2
24j j6 25j j7
25j j6 + 2j4j7
(j4 ) (5j ) + (j6 ) + (j7 )

0
0
0

1j

(3.56)

3j

1
2
j

Since there are six degrees of freedom, and seven joint variables with one constraint, it is
clear that the open joint places no constraint on the relative motion(s) between the bodies.
If accurate values of j ( j ) are known numerically, then values of the Euler parameters may
be found as discussed in Section 3.4. First, the seventh Euler parameter, 7j , is found by Eq.
(3.18). Then, depending on its magnitude, we proceed to find the values of j4 , 5j , and 6j by
Eqs. (3.19) and (3.20) if 7j > , or by Eqs. (3.21) and (3.22) if 7j .

31.

Convenience in definition of motion input or interpretation of results, particularly force results, may give
advantages to a particular choice of location and/or orientation; see Chapter 17 for details.

Chapter 3: Modeling Machines with Transformation Matrices

36

3-10.9

Parallel-Axis Gear Joint (Figure 3.19)

Figure 3.19 Coordinate systems for a parallel-axis gear joint.


The parallel axis gear joint is chosen as an example to illustrate how the proper
transformation matrix may be derived for a higher pair. In concept, the same general procedure
can be applied to other higher pairs as the need arises, no matter what the joint type. It is true
that the relative motion in certain higher pairs may be difficult to describe analytically. However,
once this relative motion is modeled as a transformation between coordinate systems attached to
the two mating elements, then the transformation matrix provides a standard canonical
representation for this joint type and the many methods of the coming chapters become
immediately applicable.
For a parallel axis gear joint the coordinate systems are chosen as shown in Figure 3.19.32
The assumptions are:33
1.

The wj and wj axes lie must along the respective rotation axes of the two gears, must be
parallel, and must have the same positive sense.

2.

The common perpendicular directed from w j to wj is designated positive t j .

3.

There is one position 1j for the joint such that the positive u j and positive u j axes are
both directed along positive t j .

32.

The variety of tooth forms included here include spur gears, helical gears, and herringbone gears, all having
involute tooth profiles. A circular disk rolling without slip against another may also be modeled by treating the
pressure angle and helix angle as zero.

33.

It is assumed that the gears do not lose contact with each other and that the teeth of one do not hit the bottom of
the tooth space of the mating gear. If either of these were to happen, the transformation matrix shown would
not accurately represent the true relative motion of the joint.

Chapter 3: Modeling Machines with Transformation Matrices

37

The parallel axis gear joint has three joint variables.34

1j

j = j2
3j

(3.57)

The first joint variable is the angle 1j from positive u j to positive t j and measured
counterclockwise about positive w j . The second joint variable is the possible increase in centerto-center distance j2 beyond its nominal value, measured from w j to wj along the t j axis. The
third joint variable is the distance 3j , measured from the uj,vj plane to the uj,vj plane along wj or
wj. The joint also has four invariant parameters necessary for complete characterization of its
motion, the two pitch radii, R j and Rj , respectively, their normal pressure angle, j , and their
helix angle, j .35 Because of the assumption of involute tooth profiles, even though the center to
center distance may not exactly match the design value ( R j + Rj ) , or the axial sliding distance 3j
may not be zero, the rotation of the gear attached to u j vj wj with respect to the t j axis may be
calculated.
This yields the following transformation matrix for a parallel axis gear joint:

cos

sin
j ( j ) =
0

sin

cos

( R + R + ) cos
( R + R + ) sin
j

2
j

1
j

2
j

1
j

3
j

(3.58)

where is found from

= ( Rj + Rj ) 1j + sgn( F ) ( Rj + Rj + j2 ) ( Rj + Rj ) cos j ( Rj + Rj ) sin j + 3j tan j Rj

and where F is positive when the force transmitted between the gear teeth causes the backlash to
be taken up such that counterclockwise rotation of the u j vj wj gear increases, negative if it

34.

Notice that the assumptions do not define that the center to center distance of the two gears must match the sum
of their pitch radii, nor that the two gears must lie in a common plane. These constraints are provided by the
other joints and body shapes of the system, those which control the positions of the two shafts on which the
gears are mounted. Notice, however, that it is assumed that the two gear axes are parallel; this was assumed to
avoid complexity in the transformation matrix. The second and third joint variables defined here are usually
constant parameters, but they allow small changes in center distance and axial adjustment during installation or
operation. If defined as constants they would result in the calculation of statically indeterminate force
components. See Chapter 17 for details.

35.

The helix angle is defined such that a positive axial sliding motion 3j of the u j vj wj gear produces a positive
rotational change in the angle of the gear with respect to the u j v j w j gear. For spur gears the helix angle is
zero. For herringbone gears a helix angle of zero should be used and the value of 3j should also be set to zero.

Chapter 3: Modeling Machines with Transformation Matrices

38

decreases. 36 This transformation matrix is also valid for a joint with an internal gear; however, in
such a case, the pitch radius of the internal gear, either R j or Rj , must be treated as negative.
If accurate values of j ( j ) are known numerically, then the values of the joint variables
may be found as follows:37

1j = tan1 j ( 2, 4 ) j (1, 4 )
j2 = j (1, 4 ) + j ( 2, 4 ) ( R j + Rj )
2

(3.59)

3j = j ( 3, 4 )
where j ( i, k ) refers to row i, column k of the matrix j .

3-10.10 Involute Rack and Pinion Joint (Figure 3.20)

Figure 3.20 Coordinate systems for an involute rack and pinion joint.
Since the transformation matrix for a parallel-axis gear joint is valid for both internal and
external gears, we would expect that it might also be used to describe a rack and pinion.
36.

The term preceded by sgn( F ) may be ignored in the calculation of with very little error, probably less than
the error of manufacturing tolerances. This is a great saving in the difficulty of kinematic analysis where
forces need not otherwise be analyzed. The term is included rather than ignored in these equations, however,
since it can not be ignored in the calculation of (virtual) derivatives and will become important in finding the
tooth force transmitted through the gear mesh. This term and its derivatives cause the tooth force to be applied
at the proper pressure angle; ignoring it would cause the parallel axis gear joint to transmit force as would
happen with high-friction disks with no pressure angle. This can be seen by the methods of Chapter 17.

37.

Note that the signs of the numerator and denominator must be considered separately to achieve the proper
1
quadrant for j ; also the possible division by (1, 4 ) = 0 must be avoided. When programming for digital
computation, the atan 2( , ) function provides both of these services directly.
j

Chapter 3: Modeling Machines with Transformation Matrices

39

However, this is not the case; this would require locating the coordinate system for the rack
element at its infinitely remote center of curvature, and would provide a very inconvenient
description of such a joint.
For the involute rack and pinion joint38 the orientation must be chosen to go from the rack to
the pinion.39 The coordinate systems are chosen as shown in Figure 3.20. The assumptions are:
1.

The wj axis must lie along the pinion axis of rotation. The wj axis, attached to the rack,
must be parallel to wj , and must have the same positive sense.

2.

The u j v j axes are fixed to the rack and are chosen such that uj is directed along the pitch
surface of the rack, i.e. in the direction of relative motion of the pinion.

3.

There is one position for which u j v j and u j vj are parallel, and for which v j w j and vj wj
are coplanar.
The involute rack and pinion joint has three joint variables.
1j

j = j2
3j

(3.60)

These three, 1j , Rj + j2 , and 3j , are the three relative coordinates, u j v j w j , of the u j vj wj


origin. The joint also has three invariant parameters necessary for complete characterization of
its motion, the pitch radius Rj of the pinion, the normal pressure angle j , and the helix angle
j which may be zero. 40
Because of the characteristics of the involute tooth profile, even though the pinion center
offset distance Rj + j2 might not exactly match the pitch radius, the rotation of the pinion with
respect to the u j axis will be 1j Rj .
38.

The variety of tooth forms included here include spur, helical, and herringbone teeth. All are assumed to have
involute tooth profiles. A circular disk rolling without slip against a flat surface may also be modeled by
treating the pressure angle and helix angles as zero.

39.

Note that this rule must be followed even as early as when finding the kinematic loops and paths as was
discussed in Chapter 2.

40.

Notice that these assumptions do not define that the pinion center offset distance from the pitch surface of the
rack must match the pitch radius of the pinion, or that the central planes of the pinion and rack must be
coplanar. These constraints can be provided by the other joints and body shapes of the system, those which
control the positioning of the rack with respect to the shaft on which the pinion is mounted. However, notice
also that it is assumed that the central planes of the rack and pinion are parallel, and that the teeth remain in
proper mesh. The second and third joint variables defined here are usually constant parameters, but they
allow small changes in center distance and axial adjustment during installation or operation. If defined as
constants they would result in the calculation of statically indeterminate force components. See Chapter 17 for
details. The helix angle is defined such that a positive axial sliding motion of the pinion produces a positive
rotational change in the angle of the gear with respect to the rack. For spur gear teeth on the pinion the helix
angle is zero; for herringbone teeth a helix angle of zero should be used and the value of must also be set to
zero.
3

Chapter 3: Modeling Machines with Transformation Matrices

40

These conditions yield the following transformation matrix for the involute rack and pinion
joint:
cos sin 0
1j

2
sin cos 0 Rj + j
j ( j ) =
(3.61)

3
0
0
1

0
0
0
1

where

= 1j + sgn ( F ) j2 tan j 3j tan j Rj


and where F is positive when the force transmitted between the gear teeth causes the backlash to
be taken up such that counterclockwise rotation of the u j vj wj gear increases, negative if it
decreases.41
If accurate values of j ( j ) are known numerically, then the values of the joint variables
may be found as follows:

1j = j (1, 4 )
j2 = j ( 2, 4 ) Rj

(3.62)

3j = j ( 3, 4 )
where j ( i, k ) refers to row i, column k of the matrix j .

41.

The term preceded by sgn ( F ) may be ignored in the calculation of with very little error, probably less than
the error of ignoring manufacturing tolerances. This is a great saving in the difficulty of kinematic analysis
where forces need not otherwise be analyzed. The term is included rather than ignored in these equations,
however, since it can not be ignored in the calculation of (virtual) derivatives as will become important in
finding the tooth force transmitted through the mesh. This term and its derivatives cause the tooth force to be
applied at the proper pressure angle; ignoring it would cause the rack and pinion joint to transmit force as
would happen with a high-friction disk, but with no pressure angle. This can be seen by the methods of
Chapter 17.

Chapter 3: Modeling Machines with Transformation Matrices

41

3-10.11 Straight-Tooth Bevel Gear Joint (Figure 3.21)

Figure 3.21 Coordinate systems for a straight-tooth bevel gear joint.


For a straight-tooth involute bevel gear joint the coordinate systems are chosen as shown in
Figure 3.21. The assumptions are:
1.

The w j and wj axes intersect at a common apex for the two pitch cones and lie along the
respective rotation axes of the two bevel gears. Both are positive directed outward from
the apex toward the two gears.

2.

The common perpendicular to both w j and wj is given the symbol ti with positive
direction chosen in the sense of the vector cross product ti = w j wj .

3.

There is one position for the joint such that the positive u j and positive u j axes are
coincident and both are aligned along positive t j .
The straight tooth bevel gear joint has two joint variables.

1j
(3.63)
j = 2
j
The first joint variable is the angle 1j from positive ti to positive ui measured counterclockwise
about positive w j . The joint has two invariant parameters, the two pitch-cone half-angles, j
and j , respectively. The second joint variable j2 is the possible increase in shaft intersection
angle beyond the sum of the two pitch-cone half-angles, measured counterclockwise from w j to

Chapter 3: Modeling Machines with Transformation Matrices

42

wj about the positive t j axis.42

Because of the assumption of involute tooth profiles, the rotation of the bevel gear attached to
u j vj wj with respect to the t j axis may be calculated. This yields the following transformation
matrix for a bevel gear joint:

cos1j cos sin1j cos sin cos1j sin + sin1j cos cos sin1j sin

sin1j cos + cos1j cos sin sin1j sin + cos1j cos cos cos1j sin

j ( j ) =
sin sin
sin cos
cos

0
0
0

0
1

(3.64)

where

= ( tan j tan j ) 1j
= j + j + j2
If accurate values of j ( j ) are known numerically, then the values of the joint variables
may be found as follows:43

j (1, 3)

j ( 2, 3)

1j = tan1

(3.65)

j2 = cos1 j ( 3, 3) j j
where j ( i, k ) refers to row i, column k of the matrix j .
This transformation matrix is also valid for a joint with an internal bevel gear; but, in such
cases, the pitch cone angle of the internal gear, either j or j , must be treated as negative.

42.

Notice that these assumptions do not define that the angle between the two intersecting axes necessarially
matches the sum of the two pitch-cone half-angles. This constraint may be provided by other joints and body
shapes of the system, those which control the positions of the two shafts on which the bevel gears are mounted.
It is assumed that the gears do not come out of contact with each other and that the teeth of one do not touch
bottom in the tooth space of the mating gear. If either of these were to happen, the transformation matrix
shown would not accurately represent the true relative motion of the joint.

43.

Note that the signs of the numerators and denominators must be considered separately to achieve the proper
quadrant for . Also the possible division by ( 2, 3 ) = 0 must be avoided. When programming for digital
computation, the atan 2( , ) function provides both of these services directly.
1

Chapter 3: Modeling Machines with Transformation Matrices

43

3-10.12 Point on a Planar Curve Joint (Figure 3.22)

Figure 3.22 Typical situations modeled by a point on a planar curve joint. Note placement of
coordinate systems.
Several different types of joints are treated together in this Section since their formulations
and transformations are the same. Some typical situations are shown in Figure 3.22. The name
chosen for this type of joint comes from their common characteristic. In each situation, the
designers intent is to cause a chosen point of the "following" element of the joint to follow a
curve defined by the shape of the "preceding" element. Typical examples include a pin
constrained to follow a slot, or a roller following the pitch curve of a disk cam.

Chapter 3: Modeling Machines with Transformation Matrices

44

For this type of joint the coordinate systems are chosen as shown. The assumptions are:
1.

The u j v j and u j vj axes are attached to the joint elements containing the "curve" and the
"point", respectively.44 Both are chosen in planes parallel to the plane of the "curve".45
The w j and wj must be parallel and must be positively directed to the same side of the
plane of the "curve".

2.

The "curve" is defined by two specified functions, u ( 1j ) and v ( 1j ) . These functions are
continuous, single valued, and at least twice differentiable functions of the same
independent variable, 1j .46
The point on a planar curve joint has three joint variables.
1j

j = j2
3j

(3.66)

The first joint variable is the value of the independent parameter for equations, u ( 1j ) and
v ( 1j ) , defining the curve 1j . The second joint variable j2 is the angle from the positive u j
axis to the positive u j axis, measured counterclockwise about the positive w j axis. The third
joint variable is the distance 3j , measured from the u j v j plane to the u j vj plane along w j or
wj .47
These conventions yield the following transformation matrix for a point on a planar curve
joint:

44.

Note that this must be considered when setting the joint orientation, before finding the kinematic loops and
paths as discussed in Chapter 2.

45.

In real three-dimensional problem situations, the joint often consists of a straight line for the "point" element
which is constrained to follow a right-cylindric ruled surface for the "curve" element (defined by the curve and
a generating line which remains parallel to the w j axis).

46.

As a practical matter, these functions must be programmed for digital computation. Rather than program anew
for each new curve, it is highly advantageous to choose a standard form for the functions that can be
programmed once and will be widely applicable. Fourier series, for example, might be chosen as the standard
form for the software.

47.

Notice that the assumptions do not define that the "point" offset distance from the "curve" must be zero, or that
the planes of the "point" and the "curve" must be coplanar. These constraints may be provided by other joints
and body shapes of the system, those which control the positioning of the "point" body and the body to which
the "curve" is attached. However, it is assumed that the planes of the "point" and "curve" are parallel resulting
in the third joint variable remaining essentially constant. If this third joint variable were defined as a
constant, however, this would result in the calculation of a statically indeterminate force component in the w j
direction. See Chapter 17 for details.

Chapter 3: Modeling Machines with Transformation Matrices

45

cos j2

sin j2
j ( j ) =
0

sin 2j
cos j2
0
0

0 u 1j

0 v 1j

3
1
j

0
1

( )
( )

(3.67)

If accurate values of j ( j ) and 1j are known numerically, then the values of the other joint
variables may be found as follows:48

j ( 2,1) j (1, 2 )

j (1,1) + j ( 2, 2 )

j2 = tan1

(3.68)

= j ( 3, 4 )
3
j

where j ( i, k ) refers to row i, column k of the matrix j .

3-9.13

Line Tangent to a Planar Curve Joint (Figure 3.23)

Figure 3.23 Typical situation modeled by a line tangent to a planar curve joint. Note
placement of the coordinate systems.
The name for this type of joint comes from its relative motion characteristic. Here the
designers intent is to cause a chosen straight line of the "following" element of the joint to
remain tangent to a curve defined by the shape of the "preceding" element. Typical examples
48.

The inability to solve in closed form for 1j stems from the unspecified parametric form of the functions
defining the curve shape, and thus the inability to numerically find their inverses. Note also that the signs of
the numerators and denominators must be considered separately to achieve the proper quadrant for j2 ; and that
the possible division by zero must be avoided. When programming for digital computation, the atan 2( , )
function provides both of these services directly.

Chapter 3: Modeling Machines with Transformation Matrices

46

include a flat surface constrained to remain in contact with a curved surface as exemplified by a
flat-faced follower sliding on the pitch curve of a disk cam.
For this type of joint, the coordinate systems are chosen as shown. The assumptions are:
1.

The u j v j and u j vj axes are attached to the joint elements containing the "curve" and the
"line", respectively.49 Both are chosen in planes parallel to the plane of the "curve".50 The
w j and wj must be parallel and must be positively directed to the same side of the plane
of the "curve".

2.

The u j axis is defined along the "line" which is to remain tangent to the "curve".

3.

The "curve" is defined by two specified functions, u ( 1j ) and v ( 1j ) . These functions are
continuous, single valued, and at least twice differentiable functions of the same
independent variable, 1j .51
The line tangent to a planar curve joint has three joint variables.
1j

j = j2
3j

(3.69)

The first joint variable is the value of the independent parameter for the curve 1j . The second
joint variable j2 is the position along the u j axis of the point of tangency. The third joint
variable is the distance 3j , measured from the u j v j plane to the u j vj plane along w j or wj .52
These conventions yield the following transformation matrix for a line tangent to a planar
curve joint:

49.

Note that this must be considered when setting the joint orientation, before finding the kinematic loops and
paths as discussed in Chapter 2.

50.

In real problem situations, the joint often consists of a flat surface for the "line" element which is constrained to
follow a right-cylindric ruled surface for the "curve" element (defined by the curve and a generating line which
remains parallel to the w j axis).

51.

As a practical matter, these functions must be programmed for digital computation. Rather than program anew
for each new curve, it is highly advantageous to choose a standard form for the functions that can be
programmed once and will be widely applicable. Fourier series, for example, might be chosen as the standard
form for the software.

52.

Notice that the assumptions do not define that the planes of the "line" and the "curve" must be coplanar. This
constraint may be provided by other joints and body shapes of the system, those which control the positioning
of the "line" body and the body to which the "curve" is attached. However, notice that it is assumed that the
planes of the "line" and "curve" are parallel, resulting in the third joint variable remaining essentially
constant. If this third joint variable were defined as a constant, however, this would result in the calculation of
a statically indeterminate force component in the w j direction. See Chapter 17 for details.

Chapter 3: Modeling Machines with Transformation Matrices

47

cos

sin
j ( j ) =
0

0 u 1j j2 cos

0 v 1j j2 sin

1
j

0
1

( )
( )

sin
cos
0
0

(3.70)

where
d
1
d 1 v j
= tan 1 j
d u 1
j
d 1
j

( )
( )

If accurate values of j ( j ) , 1j and j2 are known numerically, then the value of the third
joint variable may be found as follows:53

3j = j ( 3, 4 )

(3.71)

where j ( 3, 4 ) refers to row 3, column 4 of the matrix j .

53.

The inability to solve in closed form for j and j stems from the unspecified parametric form of the functions
defining the curve shape, and thus the inability to numerically find their inverses.

Chapter 3: Modeling Machines with Transformation Matrices

48

APPENDIX
DERIVATION OF EULER PARAMETERS
FOR
3-D ROTATIONS OF A RIGID BODY
Consider the general, 3-dimensional rotation of the coordinate frame X 1Y1Z1 relative to the frame
X 2Y2 Z 2 where both reference frames are initially coincident. The premise, based on Euler's

theorem, is that the general arbitrary angular orientation of X 1Y1Z1 can be achieved by a single
$
rotation about a skewed axis of rotation V as depicted in the figure A-1 below.

$
Axis of rotation V

Q1

Y2

$
R1

Z1

$
R2

O1

Z2

O2

90%

Q2
Y1

X2

X1

Figure A-1: Arbitrary rotation of X 1Y1Z1 relative to X 2Y2 Z 2 and the associated rotation
$
axis V

In Figure A-1, Q1 and Q2 are positions 1 and 2, respectively, of a point Q in the plane
$
normal to the axis of rotation V . Thus, Q1 and Q2 lie on a circular arc defined by angle .
Vectors R1 and R2 respectively point to Q1 and Q2 from the origin O1 and O2 of the coordinate
systems. The point C is the center of rotation of the angular rotation . The radius from C to
$
Q1 and also from C to Q2 is a . The view of the circular arc from the axis of rotation V is
shown in Figure A-2.

Chapter 3: Modeling Machines with Transformation Matrices

49

a
Q1

90%

a
$
R
Q2

Figure A-2: Geometry as viewed along vector V

From the geometric construction of Figure A-2, and with reference to Figure A-1,

$
$
$
$
R2 = R1 + R and also, R = Q D + DQ
1
2

$
DQ2 = a sin , and from Figure A-1, a = R1 sin

The vectors

R1 and O1C form a right triangle as shown in Figure A-3, and

a = R1 sin , which can be expressed as the vector cross product: a = Vu R1 ,

where Vu is a unit vector along the axis of rotation V , and R1 is the initial
vector to point Q1 as defined in Figure A-1.

Therefore, since vector DQ2 is normal to to the plane containing V and R1 ,

DQ2 can be represented as: DQ2 = a sin

Vu R1

= Vu R1 sin

Vu R1
a
Q1

$
R1

C
90%

O1

Figure A-3: Right triangle formed by R1 and O1C

Chapter 3: Modeling Machines with Transformation Matrices

50

Similarly, since the magnitude of vector Q1 D = a a cos = (1 cos ) a,


and from trigonometric identity 1 cos = 1 cos ( 2 + 2 ) = 2sin 2 2 ,

Q1 D = 2a sin 2 2 ; since Q1 D is normal to DQ2 , the vector Q1 D can be represented


as:

(($ (($ (($


V
(((($
(($ (($ (($
u Vu R1

Q1 D = 2a sin 2
= 2 Vu Vu R1 sin 2

2
a
2
((($ (((($ (((($
$
$ ((($
Also, since R2 = R1 + R , and R = Q1 D + DQ2 , we can express:

(($ (($
(($ (($ (($
(($ (($
R2 = R1 + 2 Vu Vu R1 sin 2 + Vu R1 sin

2
(($ (($
The vector cross product Vu R1 can be represented as a matrix product:

0
(($ (($
Vu R1 = Vuz
Vuy

The matrix

Vuz
0
Vux

Vuy R1x

Vux R1 y =
0 R1z

[Vu ]{R1}
33

31

[Vu ] is a skew-symmetric matrix containing the x, y, z components of the unit

33
(($
(($
vector Vu ; since Vu is along the axis of rotation, these x, y, z components are identical in the

coordinate frames X 1Y1Z1 and X 2Y2 Z 2 . The vector { R1} contains the x, y, z components of the
31
(($
R1 vector in the X 1Y1Z1 coordinate frame.

(($ (($ (($


Similarly, Vu Vu R1 =

) [Vu ][Vu ]{R1} = [Vu ] {R1}


2

33

33

31

33

31

The column vector { R2 } can now be expressed in the matrix form as:
3x3

R2 x
2
{R2 } = R2 y = {R1}+ [Vu ]{R1} sin + 2 [Vu ] {R1} sin 2 2
3 x3
3 x3
3x3
R 3 x3 3 x3
2z
2

Or, { R2 } = [ I ]+ [Vu ] sin + 2 [Vu ] sin 2 2 { R1},


3x3
3x3
3 x3 3 x3
3x3
1 0 0
Where [ I ] is a ( 3 3) identity matrix, [ I ] = 0 1 0
3x3
3 x3
0 0 1
Chapter 3: Modeling Machines with Transformation Matrices

51

This relationship can be represented in a compact form as:


2

{R2 } = [ A]{R1}, where [ A] = [ I ]+ [Vu ] sin + 2 [Vu ]


3 x3

3x3

3x3

3 x3

3x3

3x3

sin 2 2

3x3

The matrix [ A] is the rotation transformation matrix, and is expressed


3 x3

in terms of the angle of rotation and a unit vector {Vu } along the axis
of rotation.
Now, if we utilize the trigonometric identity sin = sin 2 2 = 2 sin 2 cos 2 ,

sin 2 2 = [ I ]+ 2 [Vu ] sin 2 [ I ] cos 2 + [Vu ] sin 2


3 x3
3x3
3 x3
3 x3
3 x3
3x3
3 x3
3x3

Now, define four parameters which are termed Euler parameters:

[ A] = [ I ]+ 2 [Vu ] sin 2 cos 2 + 2 [Vu ]

e1 = Vux sin 2 ; e 2 = Vuy sin 2 ; e3 = Vuz sin 2 ; e 4 = cos 2


These four parameters are not independent, but they are constrained by the
relationship:
2

(e ) + (e ) + (e ) + (e )
1

= Vux2 + Vuy2 + Vuz2 sin 2 2 + cos 2 2 = sin 2 2 + cos 2 2 = 1,

since Vux2 + Vuy2 + Vuz2 = 1

Thus, the transformation matrix [ A] can be expressed as:


0
[ A] = [ I ] + 2 e3
e 2

e 3
0
1

0
e2

1
4
e [ I ] e + e 3
e 2
0

e 3
0
e1

e2

e1
0

1 2 e3 2 + e 2 2
( ) ( )

This can be further simplified as:

[ A] = 2 ( e1e2 + e3e4 )

1 3
2 4
2 ( e e e e )

2 ( e1e 2 e 4 e3 )

1 2 ( e3 ) + ( e1 )
2 ( e 2 e3 + e1e 4 )

2 ( e1e3 + e 2 e 4 )
2

2 ( e 2 e3 e1e 4 )

1 2 ( e 2 ) + ( e1 )

Since, e02 + e12 + e22 + e32 = 1, the diagonal terms can also be alternately represented in the [ A] matrix as:
( e1 )2 ( e2 ) 2 ( e3 )2 + ( e4 )2

2e1e 2 + 2e3e 4
[ A] =

2e1e3 2e 2 e 4

2e1e 2 2e3e 4
2

( e1 ) + ( e 2 ) ( e3 ) + ( e4 )
2e 2 e3 + 2e1e4

Chapter 3: Modeling Machines with Transformation Matrices

2 3
1 4
2e e 2e e

2
2
2
2
( e1 ) ( e 2 ) + ( e3 ) + ( e 4 )

2e1e3 + 2e 2 e 4

52

Problems
3.1

The figure shown represents a slider-crank linkage to be used in the design of a nonlinear
weighing device.

a) Form all of the shape matrices Sij assuming that the lengths of the parts are both equal to
some given length l .
b) Form the joint matrices j in symbolic form.

3.2

Verify Eq. (3.16) by direct computation.

3.3

Verify Eq. (3.30) by direct computation.

3.4

It was stated during the derivation of the rotational transformation matrix Eq. (3.14) using
Tait-Bryan angles that this method of modeling three-dimensional rotation leads to a
singularity called "gimbal lock" when the angle = 90% . Demonstrate this singularity
mathematically.

Chapter 3: Modeling Machines with Transformation Matrices

53

Chapter 4: Position Analysis (Analytic)


4.1

Introduction

"Position" is a term which signifies information on where an item is. If the item in question is a
particle or point, its position might be specified by its distance from and angular orientations of a
line drawn to that point with respect to some set of reference axes whose location is assumed
known. If we choose to work with a Cartesian coordinate system, we may specify the position of
a point by giving its x, y, and z coordinates. If we choose to work in cylindrical or spherical
coordinates, on the other hand, another set of parameters would be given. In Section 3.2 we
discussed a system of homogeneous coordinates for the position of a point. In any case, the
position of a point is a vector quantity, having at least three scalar components (in threedimensional space) called coordinates.
Let us now consider the term position when applied to something other than a point. In order
to specify the location of a body or system of points, for example, it is necessary to specify more
than just three coordinates. It is necessary to specify enough coordinates that the location of each
and every point is uniquely determined. If all of these coordinates are grouped into a single
vector (according to some agreed upon set of conventions), then the resulting vector describes the
position of the system of points.
The term position may also be used to describe the location of a rigid body. For this specific
type of system six coordinates, perhaps the position of one point and three angular orientation
values, are sufficient since a rigid body has six degrees of freedom in three-dimensional space.
In Section 4.3 we will choose the (4x4) homogeneous coordinate transformation matrix T0i to
represent the position of the body with label i. Although T0i contains sixteen entries, only six of
these are independent.
In the kinematics and dynamics of mechanical systems we are not only concerned with the
position of a point or a single rigid body, but of an assembly of rigid bodies; we wish to describe
the position of an entire system. Used in this way, the term position has the connotation
conveyed in the word configuration. The robotics community has come to refer to this as a
pose; however, the word posture might be more appropriate1.
The word position, therefore, may be used in a variety of ways depending on the situation.
Each requires the specification of a vector of coordinates, defined by some agreed upon set of
conventions, with respect to some known frame of reference.
One common means of describing the position of a mechanical system is by a vector of
1.

The Webster Comprehensive Dictionary: International Edition, 1996, states under its definition of attitude,
Synonyms: pose, position, posture. A posture is assumed without any special reference to expression of
feeling; A pose is a position studied for artistic effect or considered with reference to such an effect.

Chapter 4: Position Analysis (Analytic)

coordinates listing the positions of a set of independent "input" joint variables, that is, by
specifying the values of a number of joint variables j equal to f, the mobility of the system, the
number of independent degrees of freedom. These are called the generalized coordinates and
they describe the position of the system since, in many cases, they uniquely determine the
position of each and every point of every body and the values of all joint variables. That is to
say, there is usually only one unique configuration corresponding to a given set of generalized
coordinates. We shall denote a generalized coordinate by the symbol k and note that each is
equivalent to one of the joint variable values; that is, k = j for some k and j. Listing the full
vector of f generalized coordinates in a chosen order, we define the generalized position vector
which describes the configuration of the system.

1

2
=
!

f

(4.1)

This, however, is not the complete story. In some mechanical systems, the bodies can be
assembled in more than one way and, depending on how they are assembled, the positions of
some bodies may be quite different even for identical positions of the generalized coordinates.
Such a case is exemplified by the planar four-bar linkage shown in Figure 4.1 where the broken
lines show a second possible configuration of the same system with the same setting for the
"input" angle.

Figure 4.1

Multiple closures of a planar four-bar linkage.

In order to precisely describe the posture of such a system, it is necessary to specify some
additional information which distinguishes the position vector of one "closure" of the system
from other possible closures. Therefore we define the position vector for a system as a vector

Chapter 4: Position Analysis (Analytic)

which explicitly includes all of the joint variables rather than just the generalized coordinates2.

1

= 2
!

n

(4.2)

These coordinates, of course, are not always independent. They may be related by constraint
equations, for example the constraints for loop closure or the constraints for Euler parameters, as
will be explained later.

4.2

Consecutive Transformations

Just as in the construction of a machine, we start by manufacturing the individual parts before we
join them together, so too, in the construction of a mathematical model for a mechanical system,
we have begun by deriving analytical descriptions of the individual pieces, the bodies and the
joints. We will now join these pieces together and show that, in combination, they can be made
to simulate the true system. Then, in later chapters, we will be in a position to use this
mathematical model to perform the various phases of analysis.
Let us start by showing how, in terms of our transformation matrices, we can "attach" two
bodies by means of a joint with label j. We recall from Eq. (3.36) that
rj = j ( j ) rj

where rj and rj refer to the u j v j w j and u j vj wj coordinates of the same point measured in two
different joint coordinate systems, those attached to the mating joint elements of the two bodies
connected by joint j.
Since we have allowed labeling of both bodies and joints in arbitrary order, we now define
the ligatures j- and j+ to stand for the labels of the two bodies which immediately precede (is
negatively incident with) and follow (is positively incident with) the joint with label j,
respectively, as defined by the chosen joint orientation. This notation is necessary to avoid future
confusion since j, by symbolism, does not infer a value for another symbol, such as i, but does
when written as j- or j+. It is also important to emphasize that, while j is a joint label, j- and j+
are body labels. Figure 4.2 illustrates this nomenclature, where the j- body is body i, while the j+
body is the body k, both reflecting the direction of the joint j as established from the topological
analysis.
Now, applying Eq. (3.34) to each of the mating joint elements, we see that

2.

It should be remembered that some of the joints may require more than one joint variable; all joint variables are
included in the vector.

Chapter 4: Position Analysis (Analytic)

Ri = T0 i ri = T0 j rj ; and since i j ,
ri = rj = T0i 1T0 j rj = T0,1j T0 j rj = S j , j rj
and, similarly,

rj + = S j + , j rj = S j + , j j 1rj , since, by definition, rj = j rj and rj = j S j +1, j rj +


These are two more representations for the same point in the coordinate systems of the two
bodies joined by joint j.

yk
JOINT j

vj

yi

xk

uj
uj

vj

wj

wj

zk
BODY k

xi
j + BODY

zi
BODY i
j BODY

Figure 4.2

Definition of nomenclature for the various body coordinate frames in relation to


the direction of the joint as established by a topological analysis.

We found it advantageous to define the joint coordinate systems on each of the bodies in
order to derive the relationships between the joint elements. If we recognize that rj and rj + are
merely two different descriptions for the same point and that there is no restriction on what point
is chosen, we can combine these three equations into a single transformation as follows:3

rj = S j , j j S j +1, j rj +

j = 1, 2, , n

(4.3)

This equation says that, if we know the position vector of an arbitrary point in the x j + y j + z j +
coordinate system of the body following joint j, we may find its position coordinates in the
3.

Note that the order of the matrix multiplications is important. A rotation of coordinate axes followed by a
translation, for example, in general, is not equal to the same translation followed by the same rotation; i.e.,
S S .
.

Chapter 4: Position Analysis (Analytic)

x j y j z j coordinate system of the body preceding joint j. This concept of transforming to


coordinates in a different body is extremely important, and is fundamental to the coming
chapters.
Before going further with our development, let us first review our progress up to here, and
perhaps tie together a few loose ends. Recall that in Chapter 2 we went to great lengths to
establish each independent closed loop through the linkage, and in so doing, we started by
assigning an identifying label to each body and another to each joint. We then used these labels
in our algorithm for determining the kinematic loops of the system, and the kinematic paths from
the fixed body to each of the moving bodies.
Then in Chapter 3 we defined a number of coordinate systems. Each body was assigned a
body coordinate system xi yi zi which had a subscript i identifying the body label. Several joint
coordinates systems u j v j w j were also defined and each of these carries a subscript j identifying
the joint label to which it applies. In developing the transformation matrices, we found the joint
matrix j ( j ) which describes the relative position of each joint and each of these has a
subscript j denoting the label of the joint it describes. However, the shape matrix Si , j , which
describes a geometric characteristic of a body, rather than being subscripted by the body label
alone, carries a double subscript; it shows first the body label i to which it belongs, and then the
joint label j to which it applies.
In Eq. (3.34) we have a means to transform the position coordinates of any point from any
joint or auxiliary coordinate system to its appropriate body coordinate system. Then, in Eq. (4.3),
we have a means to transform these to the position coordinates of the same point in the
coordinate system of the preceding body of the kinematic loop or path. But, if this is possible,
we can also apply the procedure recursively and transform to position coordinates on any
previous body in the loop or path. If we presume for the moment that the bodies and joints are
labelled consecutively along the paths as illustrated in Figure 4.3, and if, for example, we have
position coordinates r5 of some point attached to body 5 and wish to transform them to position
coordinates measured in body coordinate system 1, then by repeated applications of Eq. (4.3) we
find that
r1 = S1 A A S 2A1 S 2 B B S3B1 S3C C S 4C1 S 4 D D S5D1 r5
Although the bodies and joints of a mechanical system are not usually labelled in consecutive
order, this equation shows in concept how, knowing the position vector of a point in the
coordinate system of its own body (where it can be easily measured), we may find its position
vector in the coordinate system of any other body by repetitive matrix transformations.

Chapter 4: Position Analysis (Analytic)

JOINT A

wA

y1

x2

vA

vA
BODY 1

y2

uA

wA

uA

z2
BODY 2

vB

JOINT B

uB

wB

x1

vB

z1

wB

uB
BODY 3

Topological path
direction

y3

z3
vC

y4

x4
BODY 4

wD

y5

x5
z5

uC
wC

vD

uC

wC

vC

z4

x3

JOINT C

uD

vD
uD
wD

JOINT D

BODY 5

Figure 4.3

Consecutive coordinate frames and corresponding transformationsin this case,


the bodies and joints are numbered sequentially in increasing order along the
directed path. This is not always the case and a record keeping method within the
digital computer solution is needed to map the sequence of bodies and joints in
the directed path.

We notice in the above equation the continuing pattern of products of shape and joint
transformation matrices. These products appear throughout our remaining work and are given
their own symbol. For each joint j (connecting and oriented from body number j- to body
number j+) we define4

4.

This definition can only be applied


consistent with the defined orientation of each joint. If the opposite
1
1
orientation is desired, then Tj +, j = Tj , j + must be used as shown in Eq. (4.12). This is not the same as S j +, j j S j , j ,
S S
but is equal to
.
j +, j

j , j

Chapter 4: Position Analysis (Analytic)

T j , j + = S j , j j S j +1, j

j = 1, 2, , n

(4.4)

Then, for consecutive products of these along the kinematic paths, we define
Tik = Ti ,i +1Ti +1,i + 2 !Tk 1,k

i, k = 1, 2, ,

(4.5)

In applying these equations, however, we must remember that the subscripts do not usually
occur in consecutive numerical order (as implied by the subscripts "i+1", "i+2", and "k-1"), but
in the order of appearance of the body labels in the kinematic paths and loops through the system
as were determined in Chapter 2.5
We note that Eq. (4.5) also gives us a very convenient and compact notation since it shows
that
Tik = TihThk

i, h, k = 0,1, ,

(4.6)

Thus, if we know the transformation Tih from body i to body h and the transformation Thk
from body h to body k, then their product gives the transformation from body i to body k. Even
though the two paths may include several bodies and joints each, the total transformation,
consisting of a product of several factors, is naturally collapsed into a single symbol. With this
notation, the transformation between any two xyz (body) coordinate systems in the mechanical
system can be expressed by the simple equation
ri = Tik rk

4.3

i, k = 1, 2, ,

(4.7)

Absolute Position

The absolute position of a point on one of the moving bodies is quite often of major importance
in a design problem. Obviously this can be found by applying Eq. (4.7) to transform the local
coordinates of the point (measured in the coordinate system of the body to which the point is
attached). However, to which coordinate system should the position vector be transformed?
Which xyz coordinate system is the absolute frame of reference?
To give ourselves maximum flexibility we choose a coordinate system x0 y0 z0 which we
define to be the absolute coordinate system. The only restriction we place on the choice of this
system is that it be stationary or, more properly, that it be an inertial coordinate system if the
analysis is to include dynamic effects. Otherwise, it is chosen totally arbitrarily to best fit the
problem. This absolute coordinate system, carrying the subscript 0, is the one in which all results
are found. Positions measured in this coordinate system are called absolute positions.

5.

This may not be good mathematical notation. However, the meaning is clear and comfortable to use for hand
computation. For digital computation, a programming language should be chosen which has provision for
hierarchical data structures; body and joint data records may then be organized in linked lists (queues) in the
order of the kinematic loops and paths.

Chapter 4: Position Analysis (Analytic)

Reviewing Section 3.9 reminds us that we reserved the symbol Ri to stand for the absolute
position vector of a point of the body with label i.

R x0
y0
R
Ri = z
R 0

1

i = 1, 2, , (4.8)

and, from Eq. (3.33),


Ri = T0i ri

i = 1, 2, ,

(4.9)

Assuming that the stationary (ground) member, if any, of our mechanical system is numbered
body as recommended in Chapter 2, we have already collected data for the transformation
matrix T0 while we were finding the body matrices. If body is stationary, then the T0 matrix
remains constant as the system moves. If not, it is variable but, either way, we have data for it at
the initial position. In either case, we can write
Ri = T0 Ti ri

i = 1, 2, , (4.10)

where Ti can be computed as shown in Eq. (4.5) according to the path found in Chapter 2 from
body i back to the fixed body .

4.4

The Loop Closure Equation

Since Eq. (4.7) holds for the position of a point on bodies i and k, suppose that we choose to
apply this to a mechanical system containing one or more closed kinematic loops such as those
discovered in the loop matrix of Chapter 2. Suppose also that we choose i to represent a certain
body in the loop, then trace through the bodies and joints in sequence until we meet body k. If
we continue around the loop until it closes on itself, we can write Eq. (4.7) with bodies k and i
being the same body. In this case we have
ri = Tii ri

or, transforming to the absolute coordinate system,


Ri = T0 i ri = T0iTii ri = T0iTiiTi 0 Ri = T00 Ri

where the matrix T00 is the product of transformations from ground to the first body of the loop,
then around the loop, then back to ground.
Since we have made no special restrictions on the choice of the point Ri, this equation must
hold for all possible choices of the point. This condition can only be satisfied if
Tii = I

when we work in the coordinate system of body i, or

Chapter 4: Position Analysis (Analytic)

T00 = T0iTiiTi 0 = I

i = 1, 2, , NL

(4.11)

when we work in global coordinates.


This equation is the matrix form of the loop closure equation. It shows that, no matter which
body is chosen as a starting point, when consecutive transformations are made around a closed
kinematic loop, finally returning to the original coordinate system, this matrix product must equal
the identity transformation, the (4x4) identity matrix.
This loop closure equation inherently contains all of the kinematic constraint conditions
which must be satisfied by a mechanical system containing closed kinematic loops such that the
loops remain closed for all possible positions of the system. As the system moves and the joint
variables change, they must all change in unison such that this equation is always satisfied for
each and every closed loop. This extremely powerful equation can be used, as will be shown in
this and subsequent chapters, to derive all the kinematic information possible for the mechanical
system.
Another very useful identity can be obtained from the loop closure equation by taking into
account the recursive nature of the products of the transformation matrices. From Eq. (4.6) we
have
Tik Tki = Tii = I

By multiplying this equation by the inverse of Tik we obtain


Tik1 = Tki

i, k = 0,1, , (4.12)

Before continuing, it should be pointed out that, because of the special properties of rigid
body transformations, the inverse of such a transformation matrix is extremely simple to form. If
we choose the following notation to identify the translation and rotation submatrices,

ik
Tik =
0

POk

then, because of the orthogonality of the rotation submatrix, it is easily verified that the inverse
matrix is of the form6
1
ik

6.

ikt
=
0

ikt POk

(4.13)

This special form of the inverse is very easily found, even by hand computation. It is also easily programmed
for digital computation, and operates much more economically than a general matrix inversion technique.

Chapter 4: Position Analysis (Analytic)

4.5

Closed-Form Solution for Joint Variable Positions

According to the above discussion we see that, in order to solve for the values of the joint
variables of a mechanical system, we must first specify the generalized coordinates , the values of the f independent joint variables. We may also be required to specify certain additional
information if it becomes necessary to distinguish between multiple possible closures of the
system.
Those with experience in applying graphical techniques may consider determining the
position of a system a trivial problem since, once a layout drawing is completed, any of the joint
variables can be determined directly from the drawing.7 On the contrary, as we shall come to
appreciate in the remainder of this chapter, the determination of the values of the dependent joint
variables for a given input position is usually the most difficult problem of kinematic analysis.
Once these are known, the remaining problems of kinematics are relatively easily solved. This
observation holds true for most analytical methods and comes about primarily as a result of the
nature of the constraints. The rigid body restriction, that two points of a body remain a constant
distance apart, as well as the rotational motions found in many types of joints, invariably leads to
either trigonometric or quadratic equations. Since there must be at least as many of these
equations as unknown joint variables, their simultaneous solution can be quite tedious.
However, there are some systems -- usually zero- or single-loop systems, where the numbers
of bodies and joints are small -- for which it is possible to obtain closed-form solutions. We
shall present a few examples here to illustrate the approach. In general the procedure is always
the same; the necessary simultaneous equations are found by performing the matrix multiplications indicated in the loop-closure equation, Eq. (4.11), and these are solved by whatever
algebraic techniques the analyst is able to muster.
The matrix loop-closure equation produces all of the simultaneous equations necessary for
the solution of any given problem and the method of formulation or the number of equations is
not left to chance. None of the essential equations will be overlooked, as might happen if a given
problem were formulated intuitively. However, there is no guarantee that their solution by hand
calculation is feasible.

Example 4.1: Hooke Universal Shaft Coupling


We choose the Hooke universal shaft coupling as a first example since solutions known from
other methods allows comparison of results. The Hooke joint, shown in Figure 4.4, is a spherical
linkage consisting of four bodies connected by four revolute joints.8 It also has two other
distinguishing features: first, that all four revolute axes intersect at a common point, and second,
7.

For example, see J. E. Shigley, Kinematic Analysis of Mechanisms, 2nd ed., McGraw-Hill Book Co., New York,
1969; see especially the first paragraph of Section 3.7, p.52.

8.

This system is also referred to as a Cardan coupling. An Italian, Girolamo Cardano (1501-1576) was the first to
describe this joint. The Englishman, Robert Hooke (1635-1703) first applied it to the transmission of rotary
motion.

Chapter 4: Position Analysis (Analytic)

10

that three of the four fixed angles at these intersections are right angles.
It is assumed here that the shaft carrying joint D is the input shaft, body 3, and its rotation
= D is a known function of time. The output shaft, body 1, has rotation A , whose functional
relationship to must be determined. We also note that the dependent joint variables and,
although not of primary concern, might also be useful for predicting wear or choosing proper
bearings.

JOINT B

BODY 1
JOINT C

BODY 2

JOINT D
BODY 3

JOINT A

BODY 1

h
BODY 3
JOINT B

BODY 4

Figure 4.4

Example 4.1: Hooke universal shaft coupling. Note revolute joints, joint B and
joint C, each have two contacts creating a single joint B and a single joint C
respectively. Also, the inertial coordinate frame x0 y0 z0 is placed to coincide with
the Ground Body 4 coordinate frame x4 y4 z4 .

Chapter 4: Position Analysis (Analytic)

11

(a)

(b)
(c)
Figure 4.5

Example 4.1: Placement of body and joint coordinate systems for (a) body 1, (b)
body 2, (c) body 3.

In this problem it is not necessary to perform a formal structural analysis, as discussed in


Chapter 2, since the loop is easily determined by inspection. With the body and joint coordinate
axes chosen as shown in Figure 4.4 and Figure 4.5, the shape matrices can also be found, either

Chapter 4: Position Analysis (Analytic)

12

directly by inspection of the figures or by the methods of Section 3.9. The topological path
direction chosen for this analysis, as reflected by the selection of the unprimed and primed
coordinate frames in Figure 4.5, is:
BODY
4

JOINT A

BODY
1

BODY
2

JOINT B

BODY
3

JOINT C

JOINT D

Figure 4.6

Example 4.1: The selected toplogical directional path and loop.

The shape matrices are:

T04 = I

x4
uA
0
y
v
1
4
A
= S4 A ; S4 A =
0
z4
wA

1
1
0

x1
u A
0 0
y
v
0 1
1
A

= S1 A ; S1 A =
1 0
z1
wA

1
1
0 0

1 d1
0 0
0 0

0 1

0 1 d1
0 0 h
1 0 0

0 0 1

x1
uB
0
y
v
0
1
B

= S1B ; S1B =
1
z1
wB

1
1
0

1 0 0
0 1 0
0 0 0

0 0 1

x2
u B
y
v
2
B
= S2 B ; S2 B = I
z2
wB
1
1
x2
uC
0 1 0 0
y
v
0 0 1 0
2
C

= S2C ; S2C =

z
w
1
0
0
0
2
C

1
1
0 0 0 1
x3
uD
1 0 0 0
y
v
0 1 0 0
3
D

=
S
;
S
=

3D
3D

z
w
0
0
1
d
2
3
D

1
1
0
0
0
1

Chapter 4: Position Analysis (Analytic)

x3
uC
0 0
y
v
0 1
3
C
= S 3C ; S 3 C =
1 0
z3
wC

1
1
0 0

1 0
0 0
0 0

0 1

13

x4
u D
0 sin
y
v
1
0
4
D

=
S
;
S
=

4D
4D
0 cos
z4
wD

1
1
0
0

cos
0
sin
0

d 2 cos

d 2 sin

Perhaps the transformation matrix S 4 D is not quite as obvious as the other Sij matrices. One
way to establish this matrix is to follow the procedure desribed in Section 3.8 for specifying the
data. In this case, the transformation from the x4 y4 z4 coordinate frame to the u D vD wD coordinate
frame is desired. Data for three points on the u D vD wD coordinate frame relative to the x4 y4 z4
coordinate frame are required:

d 2 cos

Point 1 on the origin of the u D vD wD coordinate frame: h


d sin
2

Point 2 on the positive side of wD axis, say arbitraily 10 units from the origin Point 1 above

d 2 cos + 10 cos

in the x4 and z4 directions, noting that the height h remains constant:


h

d sin + 10sin
2

d 2 cos

Point 3 on the positive side of u D direction, arbitrarily 10 units from Point 1: h + 10


d sin
2

Now follow the procedure of Section 3.8 to obtain the matrix S 4 D shown above.
Since all four joints are revolutes, the four joint matrices are each of the form given by Eq. (3.37)

cos j

sin j
j ( j ) =
0

sin j
cos j
0
0

0 0

0 0
1 0

0 1

j = A, B, C , D

Next, following Eq. (4.4), we evaluate the four matrix products9

9.

Notice that joint D is defined here to be oriented from body 3 to body 4. Thus the T34 matrix is formulated,
rather than T43 . See Example 4.2: for contrast.

Chapter 4: Position Analysis (Analytic)

14

T41 = S 4 A A S1A1

0
1
0 sin
A
=
0 cos A

0
0

T12 = S1B B S 2B1

sin B
0
=
cos B

T23 = S 2C C S3C1

0 cos C
1
0
=
0 sin C

0
0

T34 = S3 D D S 4D1

sin sin
cos sin
=
cos

cos A
sin A
0

cos B
0
sin B
0

cos
sin
0
0

0
h
0

0 0
1 0
0 0

0 1

sin C
0
cos C
0

0
0
0

sin cos
cos cos
sin
0

h cos
h sin

Based on these four transformations, we could write the loop closure equation from Eq.
(4.11).
T12T23T34T41 = I

However, in this particular problem, it is more convenient to rewrite this in the form
T34T41 = (T12T23 )

since T12 and T23 have no translation terms and, therefore, the matrix inversion can be done quite
easily by Eq. (4.13).
Taking advantage of this, the above equation becomes

Chapter 4: Position Analysis (Analytic)

15

sin sin
cos sin

cos

cos sin A + sin cos A cos

cos cos A sin sin A cos

sin sin A cos cos A cos

sin cos A + cos sin A cos

cos A sin

sin A sin

cos B

sin cos
B
C
=
sin B sin C

sin B

sin C

cos B cos C

cos C

cos B sin C

0
0
0

0
0
0

Since both sides of this equation must be equal, we may now equate various individual terms
to discover the relationships between the input variable and the remaining dependent joint
variables j . The input-output relationship, for example, is found by equating the elements of
the first row, second column. This gives

A = tan1 ( tan cos )


The value of B is found directly from row one, column one

B = cos1 ( sin sin )


and, dividing the elements of row three, column one by those of row two, column one we find an
equation for C in terms of

cos tan

C = tan1

As discussed earlier we can group these solutions into a single vector which describes the
posture (configuration) of the system as a function of the single generalized coordinate .
tan1 ( tan cos )
A

1
cos ( sin sin )
= B =

1
C tan1

cos tan

Although we may be tempted to stop here, considering this to be a complete solution, we note
that the quadrants of A , B , and C are not yet determined. We conclude, however, since the
Hooke universal joint can only be used in situations where is an obtuse angle, cos is
always negative. Also, we note from Figure 4.4 that sin B always remains negative. Using this
information we can determine from the remaining elements of the above matrix equation that
sin C is always positive and that cos A always carries the same sign as cos . Thus all
quadrants can also be determined.

Chapter 4: Position Analysis (Analytic)

16

The reason that the quadrants could not be discovered directly from the equations, the reason
that the figure had to be consulted for clues, is that there is more than one way in which this
system could have been assembled. The same equations also describe the other possible closure
(where the cross is rotated 180 about its y2 axis and the output shaft is rotated 180 about y1 ).
In order to remove this ambiguity, to specify which closure is being analyzed, it was necessary to
note that sin B remains negative.
The foregoing analysis applies only to a "perfect" Hooke universal joint, that is, one in which
the joint axes truly intersect and do so in exact right angles. If the angles are not exactly 90, the
situation is not too bad since the only effect on the above equations is small. If, however, the
axes do not truly intersect, the linkage is no longer spherical. Such a case might happen, for
example, if the d1 and d 2 distances used in the shape matrices of the frame were slightly
different than those used in the shape matrices of the output and input shafts. The analysis would
proceed in the same fashion; however, the elements of the fourth column of the matrix products
would not cancel to produce exact identities. At best, they might be equal for only discrete
values of and not for a continuous range of motion input. Also, since real machine parts are
always designed with tolerances because of imperfect manufacture, the real Hooke universal joint
(as manufactured) might not exactly match the dimensions used in the above equations. Yet it
still might be movable, if only because of looseness in the revolute joint bearings and for slight
flexing of the "rigid" parts.

Chapter 4: Position Analysis (Analytic)

17

Example 4.2: Disk Cam System


As a second example we choose the disk cam with reciprocating flat-faced follower system
shown in Figure 4.7.

Figure 4.7

Example 4.2: Disk cam with reciprocating flat-faced follower.

Again the loops and paths are obvious by inspection. The coordinate systems are chosen as
shown in the figure. The shape matrices, obtained by inspection, are as follows:

T03 = S1 A = S1B = S 2 B = S3 A = I

S 2C

0 1
1 0
=
0 0

0 0

0 0
0 0
1 0

0 1

S 3C

Chapter 4: Position Analysis (Analytic)

0 1
1 0
=
0 0

0 0

e
0 R0
1 0

0 1

18

The shape of the cam is defined by the following functions:

( )

u B1

( )

v B1

=
R
0

1
1
R0 + 2 2B sin 2B

L
+
4 2B1 + sin 2B1
2

) sin

1
1

R0 + 2 2B sin 2B

=
R + L 4 2 1 + sin 2 1
B
B
0 2

) cos

) sin

1
B

1
B

1
B

) cos

1
B

(1 cos 2 ) cos

1
B

1
B

(1 cos 2 ) cos
1
B

(1 cos 2 ) sin

1
B

1
B

(1 cos 2 ) sin

1
B

1
B

1
B

0 B1 <

B1 < 2
0 B1 <

B1 < 2

From these, using Eq. (3.72) to model cam joint B as a line tangent to a planar curve joint, we
find (after some effort) that
d
1
d 1 v B
= tan1 B
d u 1
B
dB1

( )
( )

= tan1 tan B1 = B1

and
cos B1

B (B ) = sin B
0

sin B1
cos B1

0
0

0 u B1 B2 cos B1

0 v B1 + B2 sin B1

1
B3

0
1

( )
( )

Joints A and C are modeled by Eq. (3.37) and Eq. (3.39), respectively.
Therefore, since the cam is driven by A = , we can now formulate the following matrix
products:

T31 = S3 A A S1A1

T12 = S1B B S 2B1

cos
sin
=
0

cos B1

sin B1
=
0

sin B1
cos B1

0
0

Chapter 4: Position Analysis (Analytic)

sin
cos

0
0

0 0
0 0
1 0

0 1

0 u B1 B2 cos B1

0 v B1 + B2 sin B1

1
B3

0
1

( )
( )

19

1
0
=
0

T23 = T321 = S 2C C1S3C1

1 0 ( R0 + C )

0 1
0

0 0
1

0 0

Notice here that joint B is oriented from body 1 to body 2 and the matrix B is used to find
T12 . However, joint C is oriented from body 3 to body 2 and C1 is required in finding T23 . We
might, instead, find T32 using C and invert it. Either way, an inversion is required in one or the
other since the orientations of joints B and C are not both consistent with the loop orientation.
Another approach would be to reorganize the loop equation itself, as was done in Example 4.1:;
here we show the alternative approach.
The loop closure equation, (4.11), gives
T33 = T31T12T23 = I
cos( ) sin( )

sin( B1 ) cos( B1 )

0
0

0
0

1
B

1
B

0 u( )cos v(B1 )sin B2 + e cos( B1 ) + ( R0 + C ) sin( B1 )

0 u(B1 )sin v(B1 )cos B2 + e sin( B1 ) ( R0 + C ) cos( B1 )


=I

1
B3

0
1

(
(

1
B

)
)

By equating the elements of column 1, rows 1 and 2, with those of the identity matrix we find

cos B1 = 1

sin -B1 = 0

B1 =

Then, equating the elements of column 4 and simplifying gives

( )
( )
(
u ( ) sin + v ( ) cos ( R

u B1 cos v B1 sin B2 + e = 0
1
B

1
B

+ C ) = 0

B3 = 0
Finally, rearranging and further simplifying, the solutions for the joint variables are

L
1
1 cos 2 ) e
(

= B2 =
0

B L 2 sin 2

<

(
)
C 2

4 2 + sin 2 ) <2
(
2

Chapter 4: Position Analysis (Analytic)

20

Taking these solutions back to (4.10) we find the transformation matrices which show the
absolute positions of the two moving bodies. These are

cos
sin
T01 = T03T31 =
0

sin
cos
0
0

0 0
0 0
1 0

0 1

and

0
T02 = T03T31T12 =

0 0

R0 + 2 ( 2 sin 2 )
1 0
R + L ( 4 2 + sin 2 )
0 2
0 1
0
0 0

0 <

<2

Example 4.3: SCARA Robot


The next example is a Selective Compliant Articulated Robot for Assembly, also called a
SCARA robot. A picture is shown in Figure 4.8.

Figure 4.8

Example 4.3: Selective Compliant Articulated Robot for Assembly (SCARA).


Adept model Cobra 600. (Courtesy Adept Technology, Inc., Livermore, CA)

Chapter 4: Position Analysis (Analytic)

21

The body and joint labels and the coordinate systems chosen for this device are shown in
Figure 4.9.10 The shape matrices, obtained by inspection, are as follows:

Figure 4.9

Placement of body and joint coordinate systems for the SCARA robot of Example 4.3:

1
0
T01 =
0

S2 B

1 0
0 1
=
0 0

0 0

S 4C

0
0
=
1

0 0
1 0
0 1
0 0
0 d2
0 0
1 0

0 1

1 0 0
0 1 0
0 0 0

0 0 1

x0
y0
z0

1
0
S1 A =
0

S3 B

S4 D

1 0
0 1
=
0 0

0 0

1
0
=
0

0
1 0 0
0 1 h1

0 0 1
0 0

0 d3
0 0
1 0

0 1

0
1 0 0
0 1 h4

0 0 1

S2 A = I

S3C

0 0

S5 D

0 1
0 0
=
1 0

0 0

1
0
=
0

0 0
1 0
0 0

0 1

0
1 0 0
0 1 h5

0 0 1
0 0

Recognizing that joint C is prismatic and all others are revolutes, we formulate the matrix
products
10.

Note that this problem has no closed loops and also that, contrary to our usual convention, the fixed body here is
labeled body 1.

Chapter 4: Position Analysis (Analytic)

22

T12 = S1 A A S 2A1

T23 = S 2 B B S3B1

cos A
sin
A
=
0

cos B
sin
B
=
0

T34 = S3C C S 4C1

T45 = S 4 D D S5D1

sin A
cos A
0
0

sin B
cos B
0
0
1
0
=
0

cos D
sin
D
=
0

0
0 0
1 h1

0 1
0

0 d 2 + d 3 cos B
0
d3 sin B

1
0

0
1

0
1 0
0
0 1 C

0 0
1
0

sin D

0
0
1 h4 + h5

0
1
0

cos D
0
0

Next, multiplying these together along the path, we get


cos A
sin
A
T02 = T01T12 =
0

sin A
cos A
0
0

cos ( A + B ) sin ( A + B )

sin ( A + B ) cos ( A + B )
T03 = T02T23 =

0
0

0
0

x0
0
y0
1 z0 + h1

0
1
0

0 x0 + d 2 cos A + d 3 cos ( A + B )

0 y0 + d 2 sin A + d3 sin ( A + B )

1
z0 + h1

0
1

cos ( A + B ) sin ( A + B ) 0 x0 + d 2 cos A + d 3 cos ( A + B )

sin ( A + B ) cos ( A + B ) 0
y0 + d 2 sin A + d 3 sin ( A + B )

T04 = T03T34 =

0
0
1
z0 + h1 C

0
0
0
1

Chapter 4: Position Analysis (Analytic)

23

cos ( A + B D ) sin ( A + B D ) 0 x0 + d 2 cos A + d3 cos ( A + B )

sin ( A + B D ) cos ( A + B D ) 0
y0 + d 2 sin A + d3 sin ( A + B )

T05 = T04T45 =

0
0
1
z0 + h1 (C + h4 + h5 )

0
0
0
1

This last matrix tells the absolute position, including the orientation with respect to the
x0 y0 z0 coordinate system, of the gripper coordinate system x5 y5 z5 . If, for example, the tip end of
the tool held by the gripper is located at the position,
0
0

r5 =
4.0 in

1
then its absolute position is given by

x0 + d 2 cos A + d3 cos ( A + B )

y + d 2 sin A + d3 sin ( A + B )
R5 = T05 r5 = 0
z0 + h1 (C + h4 + h5 + 4.0 in )

We notice that, in this problem, there is no closed loop and no loop closure equation is
required. All joint variables are independent; that is, the system has mobility four. Once the four
joint motions are all specified as functions of time, then all other position information is found as
shown here. This is the problem which the robotics community refers to as the direct or forward
kinematics problem.

Example 4.4: Inverse Kinematics for a SCARA Robot


For our next example let us consider the problem of programming the SCARA robot of the
previous example to perform a specified motion. This is the problem which roboticists term the
inverse kinematics problem.
Suppose, for example, that we wish the robot of Example 4.3: to cause the tip end of the tool
held by the gripper to travel without rotating along a circular path in an oblique plane. That is to
say, suppose that we wish to cause the robot tool motion specified by
1 0 0 5 cos t
0 1 0 4 sin t

T05 ( t ) =
0 0 1 3 sin t

1
0 0 0
Our task is to find the proper functions of time for each of the joint variables to achieve this

Chapter 4: Position Analysis (Analytic)

24

motion specification.
Setting the elements of this desired motion specification matrix equal to those of T05 found in
Example 4.3:, we get
cos ( A + B D ) = 1
sin ( A + B D ) = 0
x0 + d 2 cos A + d3 cos ( A + B ) = 5 cos t
y0 + d 2 sin A + d3 sin ( A + B ) = 4 sin t
z0 + h1 (C + h4 + h5 ) = 3 sin t
If we have a robot for whch the dimensions are
d 2 = 12"

x0 = 12"

y0 = 0

z0 = 0

d3 = 10"

h1 = 8"

h4 = 1"

h5 = 1"

then, solving these equations for the joint variables, we find11


2
3
4

1 32 sin t + 5616 + 2240 cos t 1432 cos t 240 cos t 9 cos t


2 tan

164 + 80 cos t + 3 cos2 t

A
2

1 28 + 40 cos t + 3 cos t

cos

= B =
80

C
6 3 sin t

D
2
3
4

1 40 sin t 45744 + 20160 cos t 8088 cos t 2160 cos t 81cos t


2
tan

356 + 220 cos t + 9 cos2 t

We see here that, for the requirement that the gripper should follow the specified path
without rotation, it is necessary to specify and solve the "rotation" equations of the T05 ( t ) path;
we find after solution that D must be controlled by the above equation to keep the gripper from
rotating.
Although the physical system of the SCARA robot has no closed loops, in a sense we can say
that the problem specification, the request that the gripper perform the specified motion, forms a
constraint which "closes a loop. The requirement that T05 of the physical robot must equal the
requested T05 ( t ) is equivalent to a loop closure equation.
As with other loop closure problems, the task of finding closed form position solutions can
be tedious as shown by the form of the above solutions. We note also that this must be done
11.

Note that this is the solution for positive A ; there is another solution with negative A .

Chapter 4: Position Analysis (Analytic)

25

again for each new command path to be followed.

Example 4.5: Fergusons Paradox


For our next example let us consider the epicyclic gear train called Fergusons paradox12 and
shown in Figure 4.10. In this gear train, sun gears 3, 4, and 5 are all in mesh with the same
planet gear 2. The input is the rotation of the planet carrier 1 while sun gears 3 and 4 provide
two output rotations; sun gear 5 is fixed.

Handle to
rotate
the Planet
Carrier

Planet

Planet
Carrier

Sun
Gear

Sun
Gear

Sun
Gear

Figure 4.10 Example 4.5: Fergusons paradox.


12.

James Ferguson (1710-1776), Scottish physicist, instrument maker, astronomer, and fellow of the Royal Society,
first published this device under the title, The Description and Use of a New Machine Called the Mechanical
Paradox, London, 1764.

Chapter 4: Position Analysis (Analytic)

26

The loops and paths for this problem, found by the methods of Chapter 2, are
1
L = 1
1
A

1
1
B

0
0

P=0

0
0

1
0 0 1 1 0
1 1 0 0 0
C D E F G
0

0
0

Let us assume that the gear teeth are all standard13 full-depth involute spur gear ( j = 0 )
teeth with pressure angle of j = 20 and diametral pitch of P = 20 teeth per inch. The numbers
of teeth on the gears are:
N 2 = 10,

N 3 = 101,

N 4 = 99,

N 5 = 100,

and, from these, we find14 the pitch circle radii

RC = RE = RG = 0.250",

RC = 2.525",

RE = 2.475",

RG = 2.500".

The shape matrices are:15

T05 = S1B = S3C = S3 D = S 2 E = S 4 E = S 4 F = S5G = I


1
0
S1 A =
0

0 0 2.775
1 0
0
0 1
0

0 0
1

S2 A

1
0
=
0

0 0 0
1 0 0
0 1 2

0 0 1

S5 B

1
0
=
0

0 0 0
1 0 0
0 1 3

0 0 1

S 2C

1
0
=
0

0 0 0
1 0 0
0 1 1

0 0 1

13.

American Gear Manufacturers Association (AGMA) and American National Standards Institute (ANSI) have
set standards for interchangeable involute gear tooth forms. Contact American Gear Manufacturers
Association, 1500 King Street, Suite 201, Alexandria, VA 22314.

14.

Standard gear calculations are covered in many texts. See, for example, J. J. Uicker, Jr., G. E. Pennock, and J.
E. Shigley, Theory of Machines and Mechanisms, 3rd.ed., Oxford University Press, New York, 2003, esp.
Chapter 6.

15.

Notice that, in S1A , the center to center distance of pinion 2 from the shaft of gears 3, 4, and 5 are all 2.775".
This produces a correct mesh at G ; however, the meshes at C and E are not mounted at their design distances.
This explains how the three gear meshes, with different pitch radii, all coexist. The actual meshes at C and E are
not mounted properly and are not operating at their nominal 20 pressure angles.

Chapter 4: Position Analysis (Analytic)

27

S5 D

1
0
=
0

0 0 0
1 0 0
0 1 2

0 0 1

S5 F

1
0
=
0

0 0 0
1 0 0
0 1 1

0 0 1

S 2G

1
0
=
0

0
1 0 0
0 1 1

0 0 1
0 0

From Eq. (3.60) we find the following joint matrices for the gear meshes:16

cos 11.1C1

C (C ) = sin 11.1C

)
)

cos 10.9E1

E (E ) = sin 10.9E

)
)

cos 11.0G1

G (G ) = sin 11.0G

)
)

(
(

(
(

(
(

(
)
cos (11.1 )

0
0

( 2.775 + ) cos
( 2.775 + ) sin

C3

(
)
cos (10.9 )

0
0

( 2.725 + ) cos
( 2.725 + ) sin

E3

(
)
cos (11.0 )

0
0

( 2.750 + ) cos
( 2.750 + ) sin

G3

sin 11.1C1
1
C

sin 10.9E1
1
E

sin 11.0G1
1
G

2
C

1
C

2
C

1
C

2
E

1
E

2
E

1
E

2
G

1
G

2
G

1
G

Having these, we can now evaluate the matrix products for each joint

T12 = S1 A A S 2A1

cos A
sin
A
=
0

T51 = S5 B B S1B1

16.

cos
sin
=
0

sin A

cos A
0
0
sin

cos
0
0

0 2.775
0
0
1
2

0
1
0 0
0 0
1 3

0 1

Here, since we have no information about the direction of rotation or loading, we assume that the sgn ( F ) terms
are negligible.

Chapter 4: Position Analysis (Analytic)

28

T32 = S3C C S 2C1

cos 11.1C1

sin 11.1C1
=

(
(

T53 = S5 D D S3D1

T42 = S 4 E E S 2E1

cos 10.9E1

sin 10.9E1
=

(
(

T54 = S5 F F S 4F1

T52 = S5G G S 2G1

cos 11.0G1

sin 11.0G1
=

(
(

)
)

(
)
cos (11.1 )

( 2.775 + ) cos
( 2.775 + ) sin

C3 1

sin 11.1C1
1
C

cos D
sin
D
=
0

)
)

sin D

cos D
0
0

2
C

1
C

2
C

1
C

( 2.725 + ) cos
( 2.725 + ) sin

E3

1
E

sin F

cos F
0
0

2
E

1
E

2
E

1
E

( 2.750 + ) cos
( 2.750 + ) sin

G3 + 1

1
G

0 0
0 0
1 0

0 1

(
)
cos (11.0 )

sin 11.0G1

0 0
0 0
1 2

0 1

(
)
cos (10.9 )

sin 10.9E1

cos F
sin
F
=
0

)
)

2
G

1
G

2
G

1
G

Guided by the non-zero entries of the L matrix, we now formulate the three loop equations.17
These are
T55 = T51T12T521 = I
cos + A 11G1

sin + A 11G1
=

(
(

17.

)
)

(
cos ( +

)
11 )

sin + A 11G1
A

0
0

1
G

0 2.775 cos 2.75 + G2 cos + A 10G1

2
1
0 2.775 sin 2.75 + G sin + A 10G

G3
1

0
1

(
(

) (
) (

)
)

By using Eq. (4.12) we see that negative entries in the loop matrix always lead to inverse matrices in the loop
equation products. This is a direct result of the original choice of orientation in defining the joints, and could be
avoided by reversal of those choices. However, reversing the choice of joint orientation also affects the sign
convention of the joint variable(s) found and also the definitions and signs of the force components found in
Chapter 17.

Chapter 4: Position Analysis (Analytic)

29

T55 = T51T12T321T531 = I
cos +A 11.1C1 D

sin +A 11.1C1 D
=

(
(

)
)

(
cos( + 11.1

)
)

sin +A 11.1C1 D
1
C

0
0

0 2.775cos 2.775 +C2 cos +A 10.1C1

0 2.775sin 2.775 +C2 sin +A 10.1C1

1
C3

0
1

(
(

) (
) (

)
)

T55 = T51T12T421T541 = I
cos + A 10.9E1 F sin +A 10.9E1 F 0 2.775cos 2.725 + E2 cos + A 9.9E1

sin + A 10.9E1 F cos + A 10.9E1 F 0 2.775sin 2.725 + E2 sin +A 9.9E1


=

0
0
1
E3

0
0
0
1

Setting the elements of these loop equation products to those of the identity matrix, we get the
following independent equations:

(
(

)
)

(
(

)
)

(
(

) (
) (

)
)

+ A 11G1 = 0

(
) (
2.775 sin ( 2.75 + ) sin ( +

)
)=0

2.775 cos 2.75 + G2 cos + A 10G1 = 0


2
G

10G1

G3 = 0
+ A 11.1C1 D = 0

(
) (
2.775 sin ( 2.775 + ) sin ( +

)
)=0

2.775 cos 2.775 + C2 cos + A 10.1C1 = 0


2
C

10.1C1

C3 = 0
+ A 10.9E1 F = 0

(
) (
2.775 sin ( 2.775 + ) sin ( +

)
)=0

2.775 cos 2.725 + E2 cos + A 9.9E1 = 0


2
E

9.9E1

E3 = 0
and, from these, we can solve for the joint variables

Chapter 4: Position Analysis (Analytic)

30

10
A

B
C1 (100 101 )
2
0
C
3
0
C
D (1 101 )
= E1 = (100 99 )

E2 0.050
3
0
E
F (1 99 )
1

G
2
0.025
G3
0
G

Finally, guided by the entries of the path matrix, we now express the position of each body as
a function of the independent variable .

T05 = I
cos
sin
T01 = T05T51 =
0

sin
cos
0
0

cos (11 ) sin (11 )

sin (11 ) cos (11 )


T02 = T01T12 =

0
0

0
0

0 0
0 0
1 3

0 1

0 2.775 cos

0 2.775 sin

1
1

0
1

cos ( 101) sin ( 101)

sin ( 101) cos ( 101)


T03 = T05T53 =

0
0

0
0

cos ( 99 ) sin ( 99 )

sin ( 99 ) cos ( 99 )
T04 = T05T54 =

0
0

0
0

0 0

0 0
1 2

0 1
0 0

0 0
1 1

0 1

In the final analysis we find that a single input crank turns by an angle carrying a thick

Chapter 4: Position Analysis (Analytic)

31

planet gear 2 around the periphery of fixed sun gear 5. This causes two other similar (almost
identical looking) sun gears, 3 and 4 to also rotate. However, sun gear 3 rotates by (1 101) in
the same direction as the input crank, while sun gear 4 rotates by (1 99 ) in the opposite
direction.
It was pointed out in footnote 15 that the center to center distance of 2.775" is not equal to the
sum of the pitch radii for all three gear meshes. Therefore all three cannot properly mesh
according to their design specifications. A comparison is presented in Table 4.1.

Table 4.1
Example 4.5: Fergusons Paradox
Comparison of Gear Meshes
Joint

C
E
G

Nominal
Center
Distance
2.775"
2.725"
2.750"

Chapter 4: Position Analysis (Analytic)

Actual
Pressure
Angle
20.000
22.667
21.373

Actual
Contact
Ratio
1.199
0.679
1.132

32

Problems
4.1

Continue from the results of Problem 3.1 to find the following:


a) Form the transformation matrices T0i for all four bodies.
b) Form the loop-closure equation T00 = I in symbolic form.
c) Solve the loop closure equation for closed-form expressions for each of the joint variables
as functions of the independent variable = A .
d) Substitute the results of c) into a) and reform each of the T0i matrices as a function of
alone.

4.2

Verify Eq. (4.13) for the inverse transformation matrix shown at the end of Section 4.4.

Chapter 4: Position Analysis (Analytic)

33

[Page intentionally blank.]

Chapter 4: Position Analysis (Analytic)

34

Chapter 5: Displacements and Derivatives


5.1

Displacement

In Chapter 3 we studied how mechanical systems can be modeled by transformation matrices.


Then, in Chapter 4 we studied methods to solve for the positions of different parts of a system at
a particular moment in time. However, our study of mechanical systems must now move on to
the much more interesting topic of motion.
If a particle or body or system has a known position and is subsequently moved to a new
position, it is said to have undergone a displacement, defined by the difference between its later
and initial positions. Displacement is therefore a vector quantity whose components consist of
changes in the various position coordinates, that is, the differences between the later position
coordinates and those of some earlier reference position. For a mechanical system, therefore, we
might say that the displacement between some initial time t0 and some later time t1 is given by

= ( t1 ) ( t0 )

(5.1)

However, just as we saw with position, this might leave doubt between possible different
closures of a system. Therefore, it is safer to use

= ( t1 ) ( t0 )

(5.2)

The absolute displacement of a body with label i is given by

T0i = T0i ( t1 ) T0i ( t0 ) i = 1, 2, ,

(5.3)

and, since a point does not move with respect to the coordinate system of its own body, the
absolute displacement of a point attached to body i is

Ri = Ri ( t1 ) Ri ( t0 ) = T0i ri

i = 1, 2, ,

(5.4)

Notice that displacement depends only on the two bounding positions of the interval; no
information regarding how the later position was achieved is necessary for its determination. If a
linkage mechanism, for example, is operated continuously for several cycles but is finally
stopped in exactly the same position from which it started, it has undergone zero displacement
(even though it may have traversed a great number of cycles) since its initial and final positions
are identical. Similarly, if we fly from Chicago to London and return, we travel a great distance
but our displacement is zero.
Suppose we wish to describe the displacement of a rigid body as it moves from some initial
position to a later position. Suppose that we wish to describe this change in position of the body
starting with data for the displacements of a few points attached to the body. In three dimensions

Chapter 5: Displacements and Derivatives

113

a minimum of three non-collinear points must be measured to define a bodys motion since their
nine coordinates, subject to the three constant distance constraints between them, give enough
data for determining the six degrees of freedom of the moving body.
Suppose that we choose to measure the initial positions of three chosen points with respect to
some stationary coordinate system, and denote these data by Cartesian coordinate position
vectors, P1 ( t0 ) , P2 ( t0 ) , and P3 ( t0 ) . Suppose that we also measure the position coordinates of
the same three points after the body has moved, P1 ( t1 ) , P2 ( t1 ) , and P3 ( t1 ) . From these data, we
wish to describe the displacement of the moving body in such a way that we are able to calculate
the new position of any other point of the same body.
The moving body carries a body coordinate system, x, y, z . Suppose we choose this moving
coordinate system coincident with the global system at the initial time t0 . This choice is convenient since it gives T ( t0 ) = I and, by Eq. (3.32), ri = Ri ( t0 ) identifies the local homogeneous
coordinates of the points.1
Now, to simplify the calculations below, we generate data for an additional fourth point of
the moving body. Suppose we choose this additional point by the equation

P4 ( t0 ) = P1 ( t0 ) + P2 ( t0 ) P1 ( t0 ) P3 ( t0 ) P1 ( t0 )

(5.5)

Since the original three points are assumed distinct and non-collinear, this fourth point is
linearly independent of the first three.
Since all points belong to the same rigid body, the later position of this same point can be
found by a similar calculation

P4 ( t1 ) = P1 ( t1 ) + P2 ( t1 ) P1 ( t1 ) P3 ( t1 ) P1 ( t1 )
According to Eq. (5.4), we can write in homogeneous coordinates that

R ( t1 ) = ( I + T ) R ( t0 )
and, from this, we define a new matrix T which transforms the points to the altered position
coordinates R ( t1 ) from the initial position values, R ( t0 ) .

T = I + T

(5.6)

R ( t1 ) = TR ( t0 )

Writing this equation four times, once for each of our points, we can group these into a single
matrix equation as follows:

R1 ( t1 )
1.

R2 ( t1 ) R3 ( t1 ) R4 ( t1 ) = T R1 ( t0 )

R2 ( t0 ) R3 ( t0 ) R4 ( t0 )

The subscript for body label is not used in this section. Since there is only one moving body, moving with
respect to the absolute frame, this should not cause confusion. Also, the subscripts showing point number or
time state are used in this section only.

Chapter 5: Displacements and Derivatives

114

and, since the matrix of initial point position data is square (44) and non-singular (since the four
points are not coplanar), this equation can be solved to find the T matrix as follows:

T = R1 ( t1 )

R2 ( t1 ) R3 ( t1 ) R4 ( t1 ) R1 ( t0 )

R2 ( t0 ) R3 ( t0 ) R4 ( t0 )

(5.7)

Once this T matrix is known, any chosen point of that same moving body can be specified
by its initial position r = R ( t0 ) , and its displaced position R ( t1 ) can by found by Eq. (5.6). A
numeric example will illustrate.

Example 5.1
Suppose we have measured data for the position coordinates of three points of a moving body
such that:

0
P1 ( t0 ) = 0

0

2
P2 ( t0 ) = 0

0

0
P3 ( t0 ) = 5

0

2.872
P1 ( t1 ) = 4.757
6.469

1.493
P2 ( t1 ) = 3.927
5.281

6.098
P3 ( t1 ) = 1.137
5.251

From Eqs. (5.5) we calculate data for a fourth independent point

0
P4 ( t0 ) = 0
10

6.162
P4 ( t1 ) = 10.270
1.197

Eq. (5.7) is now used to find the T ( t1 ) matrix


2.872
4.757
T ( t1 ) =
6.469

6.162 0 2 0 0
10.270 0 0 5 0
5.281
5.251
1.197 0 0 0 10

1
1
1
1 1 1 1
0.32904
2.87154
0.68936 0.64538
0.41461
0.72396 0.55134 4.75653

=
0.59404 0.24366 0.7666 8 6.46932

0
0
0
1

1.493
3.927

6.098
1.137

and the displacement matrix for this body over this time interval can now be found from Eq.
(5.6).

Chapter 5: Displacements and Derivatives

115

1.68936 0.64538 0.32904 2.87154


0.41461 0.27604 0.55134 4.75653

T = T ( t1 ) I =
0.59404 0.24366 1.76668 6.46932

0
0
0
0

From the T ( t1 ) matrix we can find the displaced position of any additional point(s) of the
body as follows
2
5
R5 ( t0 ) =
0

1

4.720
0.308

R5 ( t1 ) = T ( t1 ) R5 ( t0 ) =
4.063

or, from the displacement matrix T , we can find the displacement of the additional point(s) of
the body.
2 2.720
5 5.308

R5 = T =
0 4.063

1 0
From this example we see that the T ( t1 ) matrix appears similar in many ways to our
transformation matrix of previous sections. We see the characteristic zeroes and unity in the
bottom row and a quick check verifies that the upper-left (33) submatrix is orthogonal with
determinant of positive one, as a rotation submatrix must be. Was this accidental or unique to
this example? No; these properties are true in the general case and proof is shown in the next
section.
We see here that there are two quite different ways in which a transformation can be viewed.
It can be seen as a relationship between one coordinate system and another; Tik of the previous
chapters answers the question, "Where is the coordinate system of body k when measured with
respect to the coordinate system of body i at a chosen moment in time?" On the other hand it can
be seen as a relationship between two different positions of the same moving coordinate system
at two different values of time; the T ( t1 ) matrix of this section answers the question, "What is
the displaced position of this particular coordinate system at time t1 with respect to its initial
position?"

Chapter 5: Displacements and Derivatives

116

5.2

Eulers and Chasles Theorems

Eulers theorem states that:2


The simplest possible motion that achieves a general three-dimensional rotation
of a rigid body with one point fixed is a single rotation about a fixed axis through
the fixed point.
Removing the condition of having a stationary point, however, Chasles theorem states that:3
The simplest possible motion that produces a general three-dimensional
displacement of a rigid body is a helical motion about a fixed axis of a screw with
fixed pitch.
The objective in this section is to show how the parameters (axis, pitch, and extent of
displacement) of this helical motion can be found from the T matrix.

2.

Leonhard Euler (1707-1783), "Formulae generales pro translatione quacumque corporum rigidorum," Novi
Comentarii Academiae Petropolitanae, vol. 20, 1776, pp. 189-207; also in Theoria motus corporum solidorum
seu rigidorum ..., 1765.

3.

Michel Chasles (1793-1880), "Note sur les Proprietes Generales du Systeme de Deux Corps Semblables entreux
et places dune maniere quelconque dans lespace; et sur le deplacement fini ou infiniment petit dun corps
solide libre," Bulletin des Sciences Mathematiques de Ferrussac, vol. 14, Paris, 1830, pp. 321-326.

Chapter 5: Displacements and Derivatives

117

yAt Initial Position

Initial Position
uAt

Initial Position
vAt

Initial
position
of the
moving
body

zAt Initial Position

xAt Initial Position

Figure 5.1 Equivalent screw joint displacement of a rigid body.


Figure 5.1 shows a rigid body (identified by the coordinate axes xyz ) moving along the axis
of a helical joint with respect to a fixed coordinate system. Its original position is also shown by
broken lines. Note that the body coordinates ( xyz ) of the moving body are coincident with the
fixed axes at the initial position as previously assumed. The two joint coordinate systems ( uvw
and u vw ) are shown, and they are also coincident with each other at the initial position. These
coordinate systems are consistent with the assumptions of Section 3.10.3; therefore, Eqs. (3.41)
and (3.42) apply as a valid description of this helical joint.

=
cos ( ) sin ( )

sin ( ) cos ( )
( ) =

0
0

0
0

Chapter 5: Displacements and Derivatives

(5.8a)

0 0

0 0
1

0 1

(5.8b)

118

Realizing that the shape matrices before and after the joint are identical and are both constant,
we can write Eq. (4.3) for this situation
R ( t1 ) = S ( t1 ) S 1r

(5.9)

When we recognize that r = R ( t0 ) we can see that our T ( t1 ) matrix can be expressed as
T ( t1 ) = S ( t1 ) S 1

(5.10)

since ( t0 ) = 0 and ( 0 ) = I , T ( t0 ) = I , as was originally assumed. Similarly, from Eq. (5.3),


the displacement of a body from its original position to a new position at an arbitrary time t1 is
given by

T ( t1 ) = S ( t1 ) S 1 I
All of these expressions are just different ways of expressing the displacement of a moving
body in its simplest canonical form, the equivalent helical motion of Chasles theorem. The
T ( t1 ) matrix for the displacement of any moving rigid body up to some value of time t1 with
respect to its original position can be written as equivalent to the displacement of a helical joint,
as shown in Figure 5.1.
Our problem now is that, usually, we do not have a real helical joint connecting the moving
body to ground. We usually specify or find the T ( t1 ) matrix by other methods, as were shown in
Chapter 4, for example. Once we know the T ( t1 ) matrix, we may want to discover the
parameters of the "equivalent" screw. Where is the screw axis, what is its pitch, and how much
does it move?

#
We use the notation cos w
, x0 , for example, to denote the direction cosines of the screw
axis w with respect to the global axes, and T ( i, k ) to refer to row i, column k of the matrix
T ( t1 ) . By expanding Eq. (5.10) symbolically, the reader can verify that the direction cosines of
the screw axis can be found by comparing the sizes of the diagonal elements and performing the
corresponding one of the following four sets of calculations:
If T (1,1) = T ( 2, 2 ) = T ( 3,3) = 1 , then we set

( )
#
d cos ( w
, y ) = T ( 2, 4 )
#
d cos ( w
, z ) = T ( 3, 4 )
#
d cos w
, x0 = T (1, 4 )
0

(5.11a)

Chapter 5: Displacements and Derivatives

119

or if T (1,1) is largest we set

( )
#
d cos ( w
, y ) = T (1, 2 ) + T ( 2,1)
#
d cos ( w
, z ) = T (1, 3) + T ( 3,1)

#
d cos w
, x0 = 1 + T (1,1) T ( 2, 2 ) T ( 3, 3 )
(5.11b)

or if T ( 2, 2 ) is largest we set

( )
#
d cos ( w
, y ) = 1 T (1,1) + T ( 2, 2 ) T ( 3, 3 )
#
d cos ( w
, z ) = T ( 2, 3) + T ( 3, 2 )
#
d cos w
, x0 = T ( 2,1) + T (1, 2 )

(5.11c)

or if T ( 3,3) is largest we set

( )
#
d cos ( w
, y ) = T ( 3, 2 ) + T ( 2, 3)
#
d cos ( w
, z ) = 1 T (1,1) T ( 2, 2 ) + T ( 3, 3 )
#
d cos w
, x0 = T ( 3,1) + T (1, 3)

(5.11d)

The vector of direction cosines of the screw axis w can now be normalized to form a unit
vector, thus eliminating the value of d.4
Next we define the following notation for the rotation and translation submatrices of T.

T =
0

P0
1

T (1, 4 )

P0 = T ( 2, 4 )
T ( 3, 4 )

cos

w = cos

cos

, x )
( w#

, y )
( w#

#
w
,
z
( )
0

(5.12)

Recalling Eq. (5.10), we see that the T ( t1 ) matrix is related to the screw matrix ( ) by
a similarity transformation. Using the theory of such transforms, the trace5 of a matrix remains

4.

If T (1,1) = T ( 2, 2 ) = T ( 3, 3 ) = 1 and the direction cosines also become null according to Eq. (5.11a), then the
original T ( t ) was an identity matrix signifying that there was no displacement and thus no unique screw axis.
Note that this conclusion can not be reached without considering the fourth column because of the possibility of
translation with no rotation.
1

5.

The trace of a square matrix is defined as the sum of the terms on the major diagonal.

Chapter 5: Displacements and Derivatives

120

invariant through such a transformation.6 Thus we can write


trace T ( t1 ) = trace ( )

Putting values into both sides of this equation, it can be solved for the rotation of the screw7

= cos1 {T (1,1) + T ( 2, 2 ) + T ( 3, 3) 1}

(5.13)

Recognizing that all points of the moving body have equal displacement components parallel
to the screw axis, we can find the travel of the screw by finding that component of the displacement of the origin of the xyz axes

= wt P0

(5.14)

which may give either a positive a or negative value. A negative value at this point (with
positive ) implies a left-handed screw. Here we choose a convention where the screw is
always right-handed. When translation appears negative from Eq. (5.14) we reverse the
signs of all components of w, , and also , thus making it positive.8 However, since this
changes to negative, we also add 2 to to again make it positive.
Once both the translation and the rotation are found, and both are positive, the pitch
of the screw is found from Eq. (5.8a).9

(5.15)

If we wish to find a point on the screw axis, we recognize that such a point P only
experiences a displacement along the screw axis w. Thus, for such a point,

P0 P

P
w
= +

1 1 1
0

or, taking the top three rows only,

( I ) P = w P0

(5.16)

This equation does not have a unique solution for P since it satisfies any and all points on the
axis. Therefore, it is no surprise that the coefficient matrix has rank two and cannot be inverted.
6.

See, for example, G. A. Korn & T. M. Korn, Mathematical Handbook or Scientists and Engineers, McGrawHill Book Co., New York, 1961, Sec. 14.6.2.

7.

The positive (counter-clockwise) angle 0 is chosen temporarily; this will be adjusted later as
explained following Eq. (5.14). We could also have added any multiple of 2 to this rotation; however,
consistent with Chasles theorem, we are seeking the simplest solution as our canonical form.

8.

Making these sign reversals changes our arbitrary choice of the positive sense of the screw axis w.

9.

If = 0 we have a case of no rotation. Then, if 0 , there is translation only; the pitch for such a case is
= . If both are zero, then there was no displacement, and thus no screw axis and no pitch.

Chapter 5: Displacements and Derivatives

121

However, after choosing one component of P, the other two can be found.10
Another possibility is to find the single point on the screw axis which is closest to the global
origin. This is the point for which the P vector is perpendicular to the screw axis. This condition
provides a fourth equation, gives the set rank three, and makes it solvable for the three
coordinates of P.

I
w P0
wt P =

(5.17)

Example 5.2
Continuing with the same data used inExample 5.1, let us find the screw that corresponds to that
displacement. From Example 5.1 we have

0.68936 0.64538 0.32904 2.87154


0.41461 0.72396 0.55134 4.75653

T =
0.59404 0.24366 0.76668 6.46932

0
0
0
1

First we compare the three diagonal values in the rotation submatrix and, since T ( 2, 2 ) is the
largest11, we proceed with Eq. (5.11c)

d cos ( w, x0 ) = 1.05999
d cos ( w, y0 ) = 3.18000
d cos ( w, z0 ) = 0.79500
Normalizing these, we find the unit vector of the screw axis

cos ( w, x0 ) 0.30769

w = cos ( w, y0 ) = 0.92308
cos ( w, z0 ) 0.23077

From Eq. (5.13) we find = 150.00 = 5 / 6 rad . However, Eq. (5.14) gives the travel of
the screw = 5.000 . Since this value is negative, we make the sign reversals described after
Eq. (5.14) above

10.

Again, in the case of = 0 , we are dealing with no rotation. In such a case, the w axis shows the direction of
translation. However, any axis with this direction can serve; thus the matrix ( I ) is null and any choice of P
is valid. We will choose P = 0 (the origin) for our canonical form for such cases and neither Eq. (5.16) nor Eq.
(5.17) need be used.

11.

Notice that T ( 2, 2 ) is identified as largest even though T ( 3, 3 ) is of larger absolute magnitude since
T ( 2, 2 ) > T ( 3, 3 ) .

Chapter 5: Displacements and Derivatives

122

0.30769
w = 0.92308
0.23077

= 5.000 in
= 210 = 7 / 6 rad

Then we use Eq. (5.15) to find the pitch of the screw.

30
= 1.364 in/rad
7

Finally, Eq. (5.17) is used to find one point on the screw axis.

1.68936 0.64538 0.32904


4.40999
0.41461 0.27604 0.55134 x 0.14114

y =

0.59404 0.24366 1.76668 5.31547

0
0.30769 0.92308 0.23077

x = 2.858 in

5.3

y = 0.426 in

z = 2.106 in

Interpolation of Positions or Displacements

A subject which is a continuing source of error in the design analysis of mechanical systems is
that of interpolation. Suppose, for example, that we know the position T ( t0 ) of a parked car
with no load in its trunk and a second position T ( t1 ) of the same car with a load of 50 pounds in
its trunk. Suppose we wish to predict the position of that same parked car with a load of 20
pounds.
Would it be reasonably accurate to predict that this would be about
T = T ( t0 ) + ( 20 50 ) T ( t1 ) T ( t0 ) ? No; this is not necessarily a reasonable prediction.
One problem with this approach is in the notation chosen. We used symbols of T ( t0 ) and
T ( t1 ) as functions of time, and then chose to interpolate as if they were functions of load; we did
not mean that (20/50) of the time had elapsed. This formula may have been more fitting if we
had used symbols such as T ( F0 ) and T ( F1 ) .
Does the position of the car not also depend, for example, on where in the trunk the load is
placed? Will the car pitch and roll, or only change its height? Well, this is told by the change of
the rotation submatrices of the transformation. However, it does imply that the pitch and roll will
progress uniformly as the load increases, and at equivalent fractional rates.
A much more significant error, however, comes from using linear interpolation of a nonlinear functional relationship. We have no right to assume that the load deflection relationship
of the vehicle suspension is linear. This issue of non-linearity is ever present in kinematics and
often forgotten, even by experienced analysts, when interpolating.
As another example, let us suppose that the body of Example 5.1, above is moving at
constant velocity through the two positions given. What would be the positions of the three

Chapter 5: Displacements and Derivatives

123

measured points when the time increment is one third complete? With our stipulation of
constant velocity motion, we might mistakenly assume that linear interpolation is allowable and
write

0.43688 0.21513 0.10968 0.95718


0.31820 0.90799 0.18378 1.58551
1

T = I + T =
0.19801 0.08122 0.41111 2.15644
3

0
0
0
1

But, upon multiplying this by the the positions of the points in question, we find that the
distances between the points change! In addition, it is easily verified that the rotation portion of
this matrix does not fit the orthogonality conditions, 1 t ; thus this cannot be a valid rigid
body transformation matrix!
What went wrong here? Why didnt this work? Again, we inappropriately assumed linearity.
With rotation, the displacements of points are not along straight lines; their equations involve
trigonometric functions and are nonlinear.
Another symptom of this is that we assumed all twelve elements of the T matrix could change
linearly as if all were independent. However, in reality, all twelve elements can not be independent since the body has only six degrees of freedom in 3-D motion. The six constraints, which
we failed to enforce are the orthogonality conditions which are quadratic, not linear.
We might remedy this shortcoming by assuming that the body moves along its screw axis, as
found in Example 5.2, and that the independent variable ( t ) varies linearly; Eq. (5.10) shows
that this is equivalent to

T ( t ) = S ( t ) S 1
This is a valid formula for interpolating the locus of a single moving rigid body. However,
considering Figure 5.1 should convince us that the motion is nonlinear and that points of the
moving body follow helical, not linear, point paths.
As another example, consider the displacement of the connecting rod of the slider-crank
system shown in Figure 5.2. If we were to use the methods of Section 5.2 to find the screw axis
of this displacement, we would find that the "screw" is a revolute ( = 0 ) located at point P.
However, this implies circular point paths with centers at P for the two joint centers marked B
and C, which contradicts the constraints of the overall system. What is wrong now?

Chapter 5: Displacements and Derivatives

124

Figure 5.2 Displacement of a slider crank system.


Here, the problem is that we falsely presumed a helical motion (about a single fixed axis) for
the body while this is not consistent with the constraints of the system. The real slider-crank
system has mobility of only one. The loop closure equation might have been solved and the
motion ( T ) of the connecting rod would have become a function of the crank angle alone. If
we wish to interpolate between positions of the connecting rod, we should interpolate values of
, the single truly independent variable, and then solve for corresponding positions of the
connecting rod, perhaps by the methods of Chapter 4.
From these examples we should be forewarned that interpolating positions or displacements
requires great care. The following recommendations are about all that the authors can offer for a
general method:

Careful thought should be given to what is desired and what number and choice of
independent variables should be used.

The problem should be parameterized in terms of that choice of independent variable(s).

Interpolation increments, linear or otherwise, should only be chosen for the independent
variable(s).

Incremented values of position or displacement of other joint variable(s), or points, or bodies,


or the system, should then be found directly from the values of the independent variable(s) by
kinematically valid methods such as those of Chapter 4.

5.4

Small Displacement of a Helical Joint

Let us now change our point of view and consider a situation which, at first glance, may seem
quite different from that taken heretofore. Let us consider the movement of a helical joint since,
according to Chasles theorem, it is the general parent of all other single degree of freedom
Chapter 5: Displacements and Derivatives

125

motions. Also, different from Section 5.2, let us choose to view the movement from the
preceding bodys joint coordinate system, rather than from the fixed or absolute coordinate
systems as before. With respect to this preceding bodys joint coordinate system, u j v j w j , the
following bodys joint coordinate system, u j vj wj , appears to move with only the helical motion
of the joint itself, and this motion is represented by Eq. (3.42)

cos ( j j ) sin ( j j )

sin
cos ( j j )
j ( j ) = ( j j )

0
0

0
0

0 0

1 j

0 1
0

Taking the arbitrary value of j as our initial reference position, let us consider a
displacement of the joint of size . After such a displacement, the altered joint matrix
becomes

cos ( j + ) j sin ( j + ) j

sin + cos +
(
) j
) j
( j
j ( j + ) = j

0
0

0
0

0
0

1 ( j + )

0
1

But, using trigonometric identities for sine and cosine of sums of angles,

cos ( j ) cos ( j j )

sin ( ) sin ( )
j
j
j

sin cos
(
( j j )
j)
j ( j + ) =
+ cos sin
(
( j j )
j)

0
0

1 ( + j )

0
1

sin ( j ) cos ( j j )

0
cos ( j ) sin ( j j )

cos ( j ) cos ( j j )

sin ( j ) sin ( j j )

0
0

and this can be factored into a product of two transformations


cos ( j ) sin ( j )

sin j ) cos ( j )
j ( j + ) = (

0
0

0
0

0 cos ( j j ) sin ( j j )

0 0 sin ( j j ) cos ( j j )

0
0
1

0 1
0
0
0

0 0

1 j

0 1
0

This equation says that the total transformation can be viewed as accomplished by two

Chapter 5: Displacements and Derivatives

126

coaxial screws of equal pitch, the first incremented by the change in joint variable and the second
positioned as originally.12

j ( j + ) = j ( ) j ( j )

(5.18)

Suppose we now subtract the original position of this helical joint in order to find its
displacement. Equation (5.3) gives

j ( j ) = j ( j + ) j ( j )
= j ( ) j ( j ) j ( j )
= j ( ) I j ( j )
cos ( j ) 1
sin ( j )

cos ( j ) 1
= sin ( j )

0
0

0
0

0
0
0

0
j( j)

(5.19)

If we now restrict ourselves to small displacements, we can make the usual (first order) small
angle approximations, cos ( j ) 1 and sin ( j ) j , and the above equation
reduces to the form
0

j
j ( j )
0

j
0
0
0

0
0 0
j ( j )
0

0 0
0

where is assumed small in the sense that .


Recognizing that is a common scalar factor, we define the following matrix
0
1
Qj = j
0

1 j
0
0
0

0 0
0 0
0 1

0 0

(5.20)

so that the equation for the small displacement of a helical joint reduces to

j ( j ) Q j j ( j )
12.

(5.21a)

For the helical joint these two matrices are of the same form and commute in multiplication,
( ) ( ) = ( ) ( ) , meaning that the change in joint variable can happen either preceding or following
the original motion. This is not true for all joint types. For the most meaningful interpretation of the derivative
operator matrices to be defined below we put them in the order shown.

Chapter 5: Displacements and Derivatives

127

It is left as an exercise for the reader to verify, by a parallel development, that the same Q j
matrix can be used with the inverse matrix as follows

j1 ( j ) j1 ( j ) Q j

(5.21b)

Looking back to Eq. (5.19) we can now write an equation for the joint matrix after a small
displacement.

j ( j + ) I + Q j j ( j )

j = 1, 2, , n

(5.22a)

j = 1, 2, , n

(5.22b)

or, for the inverse matrix,

j1 ( j + ) j 1 ( j ) I Q j

From the beginning of this section, we have been working in the u j v j w j coordinate system,
aligned with the "preceding" element of the joint. It is frequently more convenient to express
these same equations in the coordinate system of the preceding body. Suppose, for example, that
we identify a point attached to the body labelled i which follows the joint and has coordinates ri
with respect to that body.13 If we now shift our viewpoint and imagine that we stand on the body
labelled j- immediately preceding joint j, from coordinate system x j y j z j the position of our
point is given by Eq. (4.3)
ri ( j ) = S j , j j ( j ) S j +1, j ri

where the symbol ri ( j ) has been chosen to remind us that the point is attached to body i, but, as
seen from coordinate system j-, moves when the joint variable j changes. After a displacement
of the joint variable the position of the point changes to
ri ( j + ) = S j , j j ( j + ) S j +1, j ri

or, if the joint is oriented in the reverse sense, then, as seen from coordinate system j+,
ri ( j + ) = S j + , j j 1 ( j + ) S j 1, j ri

If is small, Eqs. (5.22a) and (5.22b) may be used to approximate these by


ri ( j + ) S j , j I + Q j j ( j ) S j +1, j ri

or
ri ( j + ) S j + , j j1 ( j ) I Q j S j 1, j ri
13.

It may appear that i and either j+ or j- are different labels for the same body. In the beginning, this is true. It is
advantageous, however, to carry two labels so that joint orientation differences can be resolved. In addition, we
will see shortly that i can be the label of any body "following" joint j, that is for which joint j is in the path to
body i.

Chapter 5: Displacements and Derivatives

128

and, by insertion of appropriate identity factors after the square brackets, these may be put into
the form
ri ( j + ) I + S j , j Q j S j 1, j ri

(5.23a)

or, when joint j has reversed orientation,


ri ( j + ) I S j + , j j 1Q j j S j +1, j ri

(5.23b)

Continuing to work in the coordinate system preceding joint j on the path to body i, we
recognize the small displacement of our moving point of body i as

ri ( j ) S j , j Q j S j 1, j ri ( j )
or

ri ( j ) S j + , j j 1Q j j S j +1, j ri ( j )
depending on the orientation of joint j.
We should notice here that body i is no longer required to be the body which immediately
follows joint j. These equations are valid for a point attached to any body i which is displaced by
the movement of joint j where we recognize that ri and ri are expressed in the coordinate
system of the body which precedes joint j along the path to body i. If the displacement of joint j
does not move body i, then these equations do not pertain. To keep this clear in the equation
itself and simplify the treatment of joint orientation, we can take advantage of the path matrix P
of Section 2.5 as follows.

ri ( j ) P ( i, j ) S j , j Q j S j 1, j ri ( j )

i = 1, 2, ,
j = 1, 2, , n

(5.24a)

or

ri ( j ) P ( i, j ) S j + , j j1Q j j S j +1, j ri ( j )

i = 1, 2, ,
j = 1, 2, , n

(5.24b)

where P ( i, j ) symbolizes the entry in row i, column j of path matrix P. This modification not
only coalesces the dual equations for different joint orientations, it directly yields zero
displacement when joint j is not on the path to the point.
We can do an exactly parallel development while picturing ourselves using the absolute
coordinate system, x0 y0 z0 . Here the position of the point of body i is expressed by Eq. (4.9)
Ri ( j ) = T0 j S j , j j ( j ) S j +1, jT j + ,i ri = T0 i ( j ) ri
or, if joint j happens to be oriented the other way, by

Chapter 5: Displacements and Derivatives

129

Ri ( j ) = T0 j + S j + , j j1 ( j ) S j 1, jT j ,i ri = T0i ( j ) ri
Since we assume that bodies preceding joint j on the path to body i are (appear to be) not
moving and thus all motion comes from the displacement of helical joint j, a small displacement
of the joint results in
Ri ( j + ) T0 j S j , j I + Q j j ( j ) S j +1, jT j + ,i ri
or
Ri ( j + ) T0 j + S j + , j j1 ( j ) I Q j S j 1, jT j ,i ri
Now, by insertion of appropriate identity factors, these become
1

Ri ( j + ) T0 j S j , j I + Q j (T0 j S j , j ) T0 j S j , j j ( j ) S j +1, jT j + ,i ri
or
1

Ri ( j + ) T0 j + S j + , j j1S j 1, j S j , j I Q j (T0 j + S j + , j j1S j 1, j S j , j ) T0 j + S j + , j j1S j 1, jT j ,i ri


Remembering that j- is the body which precedes joint j and body j+ follows it in the
originally defined joint orientation, we find that both orientations are expressed by the single
equation
1
Ri ( j + ) I + P ( i, j ) (T0 j S j , j ) Q j (T0 j S j , j ) Ri ( j )

(5.25)

from which we find

Ri ( j ) P ( i, j ) (T0 j S j , j ) Q j (T0 j S j , j ) Ri ( j )

i = 1, 2, ,

(5.26)

i = 1, 2, ,

(5.27)

and, from Eq. (5.4), the small displacement of body i is

T0i ( j ) P ( i, j ) (T0 j S j , j ) Q j (T0 j S j , j ) T0i ( j )

We should notice in all of these equations that the movement is coming entirely from the
small displacement in joint j. The Q j matrix carries the information about the axis and
motion capability of joint j, and is most naturally defined in the joint j coordinate system. We
see in Eqs. (5.23a) and (5.23b) and Eqs. (5.24a) and (5.24b) how this axis and motion information are transformed into the preceding body j- coordinate system or, in Eqs. (5.25), (5.26), and
(5.27), into the absolute coordinate system; in all cases this is done by similarity transformations.
Thus, in all of these equations, the terms in the square brackets of each reflect the same
information, the motion freedom and axis information of Q j and the size of the motion
increment , but each is transformed to a suitable coordinate system for the object being
displaced.

Chapter 5: Displacements and Derivatives

130

We should also notice that body index i is not referenced in the square bracketed operators,
and that joint index j and body index j- are only referenced in the square brackets, not in the
items being displaced. This makes perfect sense; joint index j must appear in each square
bracket operator since that joint is the only item being incremented, and body index j- is sometimes used as the convenient coordinate system for expressing its axis.
The conclusion from these observations is that, when joint j is the only joint being displaced,
the above formulae can be used for movement of an item associated with any body index i which
is displaced as a result of the movement of joint j, that is for any body i for which joint j is in the
path to that body from ground. Of course, when multiple joint variables along such a path are
being displaced simultaneously, the above formulae only predict the displacement of the item
associated with body i coming from the single joint j; combinations with other simultaneous joint
displacements will be discussed later.

5.5

Derivative Operator Matrices

Let us continue the same line of thinking to infinitesimally small displacements. If, for example,
we consider the small displacement of joint j, we have Eqs. (5.21a) and (5.21b). If we seek the
absolute displacement of a point of body i resulting from the small displacement of joint j, we
have Eq. (5.26).
If we look for the rate of change of the position of body j+ with respect to body j- resulting
from the change in the variable of joint j, then we are looking for the derivative of j ( j ) with
respect to j . Using Eq. (5.21a) this can be found directly from its definition as follows:

j ( j )

j ( j ) = lim
0
j

j = 1, 2, , n

(5.28)

= Q j j ( j )
If we seek the rate of change of the absolute position of a point attached to body i with
respect to the change in position of joint j, then we are looking for the derivative of Ri ( j ) with
respect to j . Using Eq. (5.26), this becomes
1

Ri ( j ) = P ( i, j ) (T0 j S j , j ) Q j (T0 j S j , j ) Ri ( j )

and, similarly for the rate of change of the absolute position of body i itself with respect to the
change in position of joint j, we have from Eq. (5.27),
1

T0i ( j ) P ( i, j ) (T0 j S j , j ) Q j (T0 j S j , j ) T0 i ( j )

Chapter 5: Displacements and Derivatives

131

Let us now define the following derivative operator matrix14


D j = (T0 j S j , j ) Q j (T0 j S j , j )

j = 1, 2, , n

(5.29)

which immediately reduces the previous two equations to

Ri ( j ) = P ( i, j ) D j Ri ( j )
j

i = 1, 2, ,
j = 1, 2, , n

(5.30)

and

T0i ( j ) = P ( i, j ) D jT0i ( j )
j

i = 1, 2, ,
j = 1, 2, , n

(5.31)

Of Eqs. (5.28) through (5.31), Eq. (5.28) is considered the most fundamental since the others
are a direct consequence of this one and the definition of Eq. (5.29). If, for example, Eq. (5.28)
is used to differentiate Eq. (4.9) with respect to joint variable j , and Eq. (5.29) is then used to
simplify the notation, Eq. (5.30) is a direct result.
It should be pointed out that partial differentiation symbolism is used in these equations to
remind us that they account only for displacements resulting from changes in the single joint
variable j , and do not include possible additional simultaneous displacements resulting from
other joint variable changes along the path to body i. Similarly, the factor P ( i, j ) reminds us
that joint j must be on the path from ground to body i; if joint j is not on this path, then T0i , for
example, is not a function of j and Eq. (5.31) yields zero.
We also stress here that Eqs. (5.28), (5.30) and (5.31) are not approximations; they yield
exact values for the derivatives! The approximation of small displacement used in Eqs. (5.21a)
and (5.21b) and in Eq. (5.27) become exact when we pass to the limit of 0 . This
observation is extremely important and will be raised again in evaluating numerical accuracy in
coming chapters. This ability to differentiate precisely is a unique advantage of the matrix
methods presented here over other numerical methods where derivatives are often replaced by
approximate finite differences and can lead to numerical error.
Reviewing this section reminds us that we started from the assumption of the previous
sections that our displacement is that of a helical joint. However, the same concepts can be
applied to any single joint freedom, j . Returning to Eq. (5.28), let us generalize the idea. Let
us simply define a derivative operator matrix, Q j , as follows:15

14.

We must be careful in interpreting the notation of this definition. Here the body j- is the body immediately
preceding joint j as originally defined, irrespective of its orientation in the path to body i.

15.

If joint j has more than one joint variable, then we define a derivative operator matrix Q defined for
differentiation with respect to each of the joint variables .

Chapter 5: Displacements and Derivatives

132

Qj =
j ( j ) j 1
j

j = 1, 2, , n

(5.32)

Once we define Q j in this way, Eq. (5.28) must hold true for any joint type or any joint
variable, helical or not. Also, Eqs. (5.29), (5.30), and (5.31) must hold true as well.
As usual, there is an attendant penalty; we must work out and program the appropriate form
of the Q j matrix for each type of joint and for each variable of each type of joint. However,
these are not hard to find by using Eq. (5.32) and they are listed here for all of the joint types of
Section 3.10.

5.5.1

Revolute Joint:
0 1
1 0
Qj =
0 0

0 0

5.5.2

0 0 1
0 0 0
0 0 0

0 0 0

(5.34)

Helical Joint:
0
1
Qj = j
0

5.5.4

(5.33)

Prismatic Joint:
0
0
Qj =
0

5.5.3

0 0
0 0
0 0

0 0

1 j
0
0
0

0 0
0 0
0 1

0 0

(5.35)

Cylindric Joint:
0 1
1 0
Q1j =
0 0

0 0

0 0
0 0
0 0

0 0

0
0
Q 2j =
0

Chapter 5: Displacements and Derivatives

0 0 0
0 0 0
0 0 1

0 0 0

(5.36)

133

5.5.5

Spheric Joint:
2 1j

2 j2
1
Qj =
2 3j

2 3j
4
2
3
Q j = j1
2 j

2 2j
2 1j
2 4j
0

2 3j
2 j4
2 1j
0

0
0

2 j2
1
2
2
Qj = j4
2 j

2 1j
2 j2
2 3j
0

2 j4
2 3j
2 j2
0

2 1j
2 j2
2 3j
0

0
0

2 j4

2 3
4
Q j = 2j
2 j

2 3j
2 j4
2 1j
0

2 j4
2 3j
2 j2
0

0
0

2 j2
2 1j
2 j4
0

0
0

(5.37)

with the additional constraint equation among the first-order displacements that

2 1j 1j + 2 j2 j2 + 2 3j 3j + 2 j4 4j = 0

5.5.6

Flat Joint:

0
0
Q1j =
0

5.5.7

0 0 1
0 0 0
0 0 0

0 0 0

0
0
Q 2j =
0

0 0 0
0 0 1
0 0 0

0 0 0

0 1

1 0
Q 3j =
0 0

0 0

0 j2

0 1j
0 0

0 0

(5.38)

Rigid Joint:

The rigid joint has no joint variables. Therefore no derivative operator matrices are defined for it.

5.5.8

Open Joint:

0
0
1
Qj =
0

0 0 1
0 0 0
0 0 0

0 0 0

0
0
2
Qj =
0

0 0 0
0 0 1
0 0 0

0 0 0

0
0
3
Qj =
0

0 0 0
0 0 0
0 0 1

0 0 0

2j4 25j 2j6 21jj4 2j25j 23jj6


25j 2j4 27j 21j5j + 2j2j4 23j 7j
5

2j 24j 27j 21j5j 2j2j4 + 23j7j 5 2j4 25j 2 6j 21jj4 2 2j 5j 23j 6j


4

Qj =
Q =
(5.39)
26j 27j 2j4 21j6j 22j 7j 23j j4 j 27j 26j 25j 21jj7 + 2j2j6 23j 5j

0
0
0
0
0
0
0

Chapter 5: Displacements and Derivatives

134

26j 27j 2j4 21jj6 + 2j27j + 23j j4


27j 26j 25j 21j 7j 22j 6j + 23j5j
7

2j 26j 25j 21jj7 2j2j6 + 23j5j 7 26j 27j 24j 21j 6j 22j 7j 23j 4j
6

Qj = 4
Q =
2j 25j 2j6 21jj4 2j25j 23j j6 j 25j 24j 27j 21j 5j + 22j4j 23j7j

0
0
0
0
0
0
0

with the additional constraint equation among the first-order displacements that

2 j4 j4 + 2 5j 5j + 2 j6 j6 + 2 j7 j7 = 0

5.5.9

Parallel-Axis Gear Joint:

0 1

R j + Rj
1
Qj =
1 0
Rj

0 0

0 0

Q 2j =

0
0
0

j2
R j 1 +
sin 1j

R j + Rj

j2
1
R j 1 +
cos j

R
+
R
j
j

0 1

2
sgn ( F ) R j + Rj + j
1 0

2
2
R j + Rj + 2j ( R j + Rj ) cos j 0 0

0 0

0 1

tan

0
j 1
Q 3j =

Rj 0 0

0 0

0
0

sin 1j

0 cos 1j

0
0
0
0
0

(5.40)

( R + R + ) sin
( R + R + ) cos

2
j

2
j

1
j

1
j

5.5.10 Involute Rack and Pinion Joint:


0 1

1 1 0
1
Qj =
Rj 0 0

0 0

0 j2

0 1j
0 0

0 0

Chapter 5: Displacements and Derivatives

135

0
0
Q 2j =
0

0
0
0
0

0
0
0
0

0
1 sgn ( F ) tan j

0
Rj

0 1

tan j 1 0
3
Qj =
Rj 0 0

0 0

0 1

1 0

0 0
0 0

0 Rj + j2

0
1 1j

0
0

0
0

(5.41)

0 Rj + j2

0
1j

0
1
0
0

5.5.11 Straight-Tooth Bevel Gear Joint:


0
1
Q1j =
0

1
0
0
0

0
0
0
0

0
0

0 tan j cos
+
0 tan j cos 1j sin

0
0

0
0
Q 2j =
1
1
sin j cos j
0
0

cos

cos 1j sin

sin 1j sin

sin 1j sin

sin 1j
cos 1j
0
0

0
0

0
0

(5.42)

5.5.12 Point on a Planar Curve Joint:


u =

0
0
Q1j =
0

0 0 u
0 0 v
0 0 0

0 0 0

u 1j
1j

v =

0 1

1 0
Q 2j =
0 0

0 0

v ( 1j )

1
0 u ( j )

0
0

0
0

( )

v 1j
1j

( )

0
0
Q 3j =
0

0 0 0
0 0 0
0 0 1

0 0 0

(5.43)

5.5.13 Line Tangent to a Planar Curve Joint:


u =

u 1j
1
j

( )

v =

v 1j
1
j

( )

Chapter 5: Displacements and Derivatives

u =

u
1j

v =

v
1j

136

0
0
Q1j =
0
0

0
0

5.6

= tan1

0 u + v
0 v u
0
0

0
0

0
0
Q 2j =
0

u v vu
2

( u ) ( v )

(5.44)

0 0 cos
0 0 sin
0 0
0

0 0
0

0
0
Q 3j =
0

0 0 0
0 0 0
0 0 1

0 0 0

Instantaneous Screw Axes and Ball Vectors

Looking over the different forms which the derivative operator matrices, Q j , take on for different
joints and joint variables, we notice an interesting pattern. We see that the bottom row is always
zero and the upper-left (33) submatrix is always anti-symmetric (skew-symmetric); that is, each
has the form16

0 f
f
0
Q=
e d

0
0

e
d
0
0

a
b
c

(5.45)

The reason that our Q j matrices share this pattern can be thought of as a consequence of
Chasles theorem. Although each of these matrices was found for a different joint type or joint
variable, each came from the differential displacement of a moving coordinate system as the
result of the displacement of a single joint variable. Thus, by Chasles theorem, each is
equivalent to a differential displacement of some screw. The pattern shown above identifies this
screw.
To understand the geometric significance of this pattern we refer back to Section 5.4 and Eq.
(5.21a). If we consider the small displacement, u , v, w , of an arbitrary point, u , v, w ,
attached to the body following a certain joint as the joint variable undergoes a small displacement, , then we can write from Eq. (5.21a) that

r = ( ) r = [Q ] ( ) r = [Q ] r
Writing this out explicitly, we get

16.

This seems to be contradicted by Qj operators for the spheric joint, Eqs. (5.37), and the open joint, Eqs. (5.39),
which employ Euler parameters to describe rotation. However, the statement is still true under the conditions
imposed by the additional contraint for each.

Chapter 5: Displacements and Derivatives

137

u a
0 f
v = b + f
0

w c
e d

e u
d v
0 w

Next we divide all entries of our Q matrix by a constant, normalizing it such that
d 2 + e 2 + f 2 = 1 , and we absorb the normalizing constant into such that the above equation
becomes

u a
0 f
v = b + f
0

w c
e d

e u
d v
0 w

If we now define two Cartesian vectors

a
= b
c

d
%
= e
f

(5.46)

we see that the second term of the above equation for r is in the form of a vector cross product,
% r , where r is the vector of Cartesian coordinates of the chosen moving point.
Let us now find the components of the above equation in the direction of the unit vector % .

[d

u
f ] v = [ d
w

a
f ] b + [ d
c

0 f
f ] f
0
e d

e u
d v = [ d
0 w

a
f ] b
c

% t r = % t
But this equation says that the component of the small displacement dr in the direction of %
is independent of the choice of the point. This is to say that all points of the body have equal
displacements in the % direction. Remembering that we expect the pattern to have the
properties of a screw, we can now identify that the % unit vector shows the orientation of the
screw axis. We can also recognize the pitch of the screw as the rate of displacement in the axis
direction per unit rotation of the screw.17

r
= %
= [d e

a
f ] b = % t
c

(5.47)

Let us now find the location of a point p which is on the screw axis, thus uniquely locating
17.

This is the instantaneous pitch of the screw. Since we are dealing with the displacement of an arbitrary joint
type, not necessarily an helical joint, the pitch may change as the joint moves.

Chapter 5: Displacements and Derivatives

138

the axis. Remembering that a point on the screw axis experiences only the displacement along
the axis, we write

p
= + % p = %

Let us now take the vector cross product of % with all terms of this equation.

p %
= + % ( % p ) = % % = 0

When we replace the triple vector product by the vector identity

% ( % p ) = ( % p ) % ( % % ) p
our equation for point p on the screw axis becomes

( % p ) % ( % % ) p + % = 0
This equation, of course, fits all points on the screw axis and does not have an unique
solution. Since we only seek one point to locate the axis, let us choose the particular point p on
the screw axis for which % p = 0 . This is the point p for which the vector p is perpendicular
to the screw axis. The solution for this point p is

p=

%
( % % )

(5.48a)

or, rewriting this in terms of the original six parameters

0 f
1
f
p= 2 2
0
2
d +e + f
e d

e a
d b
0 c

(5.48b)

Thus, overall, we have shown that the Q j differentiation operator matrices carry the full
information of the screw axis for the corresponding small displacement of one joint variable.
The screw can now be identified since Eq. (5.46) gives its direction, Eq. (5.47) gives its pitch,
and Eqs. (5.48a) and (5.48b) give a point on its axis.
We notice that the (44) matrix form of Q j is convenient for use as a differentiation operator.
However, there are only six independent parameters in the operator and these can equally well be
kept in the form of the two 3-D Cartesian vectors and % of Eq. (5.46). These vectors are
perhaps more convenient for geometric identification of the instantaneous screw axis. They are
called the Ball vectors of the screw.18
18.

Sir Robert Stawell Ball (1840-1913), Lowndeen Professor of Astronomy and Geometry, Cambridge University,
A Treatise on the Theory of Screws, 1900, Cambridge University Press, Cambridge, 544 pp., reprinted in 1998.

Chapter 5: Displacements and Derivatives

139

The same information can also be stored as a single six-dimensional vector, called screw
coordinates

a
b

c
=
d
e

f

(5.49)

This format may be best for computer storage, and will appear in later chapters. No matter
which format is chosen, the six parameters identify the same information, the instantaneous
screw axis and the pitch of the differential motion.
Throughout this section we have treated the Q j differentiation operator matrices as expressed
in the uvw coordinate system of a joint. However, we have already seen similar forms such as
S j j Q j S j 1 j , which are expressed in the coordinate system of body j-, immediately preceding joint
j, and
1
D j = (T0 j S j j ) Q j (T0 j S j j )

which are expressed in the absolute coordinate system. Each of these is related to Q j by a
similarity transformation. Therefore, each is of the form

TQT 1 =
0

P0 % t

1 0
0 0

t
t
t P0 % % P0
=

1
0
0

Here we see that these other forms of differentiation operator matrices also have a bottom
row of zeroes. The upper-left (33) rotation
submatrix is of the form % t and, since
t
t
% = % , we find that % t = % t . Therefore, the rotation submatrix
remains anti-symmetric after the similarity transformation. Therefore, these transformed
differentiation operator matrices are of the same characteristic form assumed in Eq. (5.45), and
any of these can be used as the basis for finding an instantaneous screw axis or a set of Ball
vectors or screw coordinates. Equations (5.46), (5.47), (5.48a), and (5.48b) apply equally to all
of these differentiation operators, no matter in which coordinate system they happen to be
expressed. The resulting screw axis is found in coordinates corresponding to the form which is
used.

The Ball vectors or screw coordinates discussed in this section uniquely identify the axis and
pitch of a screw along and about which a moving body is displaced to a new position with
respect to a reference body. Thus they identify a unique screw. It will be noticed, however, that
they do not, in general, identify the magnitude of the displacement taken on this screw. The six
parameters a, b, c, d , e, f form a homogeneous set in the sense that the set can be multiplied by

Chapter 5: Displacements and Derivatives

140

any non-zero constant and will still identify the same screw. Thus they identify the screw, not its
displacement. Also, since the set can be scaled by an arbitrary constant, only five are
independent.
Sometimes we may wish to specify the magnitude of the displacement of the screw, a sixth
independent value; we may choose to scale the screw coordinates to express this magnitude.
They will then identify the same screw and also the same displacement experienced, all within
the same vector, which is no longer homogeneous. Such a helical displacement of a given
magnitude is called a twist, and a twist can be identified by properly scaled Ball vectors or screw
coordinates. The differential twist associated with our operator matrix Q j , for example, had
scaled Ball vectors of % d and d .

Example 5.3
As an illustrative example, let us find the Ball vectors and the screw coordinates and the screw
parameters for the differential displacement of the first joint variable of a parallel-axis gear joint
as defined by Eq. (5.40). Assuming proper mounting such that j2 = 3j = 0 we have
0 1

R j + Rj ) 1 0
(
1
Qj =

Rj
0 0
0 0

R j sin 1j

0 R j cos 1j

0
0

0
0
0

From Eqs. (5.46) and (5.49) we can immediately write the Ball vectors and the screw
coordinates for this joint variable:

R j sin 1j

j = R j cos 1j

0
%
= 0
1

R j sin 1j

1
R j cos j

Equation (5.47) gives = 0 for the pitch, which makes sense since 1j allows only simple
rotation. Equation (5.48b) gives one point on the screw axis

R j cos 1j

p = R j sin 1j

Chapter 5: Displacements and Derivatives

141

and we recognize that the locus of this point as 1j chages is the pitch circle, specified in
u j , v j , w j coordinates, while the orientation of the screw axis is parallel to wj as specified by % j .

5.7

Line Coordinates and Plcker Vectors

Another branch of algebraic geometry which is closely related to homogeneous coordinates and
to screw coordinates is that of line coordinates, first elucidated by Plcker. 19
We recall from Section 3.2 that the homogeneous coordinates of a point require four
coordinates,

x
y
R=
z

w
We also recall that a plane can be described by a homogeneous vector of four coefficients,

A
B
P=
C

D
These two representations, working together, can be used to express the equation of the
plane.

P t R = Ax + By + Cz + Dw = 0
and both P and R are homogeneous in the sense that either or both can be scaled by arbitrary
(non-zero) multipliers without changing their geometric meaning or the validity of the plane
equation.
A homogeneous representation of a straight line is provided by a set of Plcker vectors or by
a 6-D vector of line coordinates. The Plcker vectors of a line are defined as two vectors with
Cartesian coordinates

d
% = e
f

a
= p % = b
c

(5.50)

where % is a vector directed along the line, and p is the Cartesian position vector of a point on
the line. The vector % is often normalized to become a unit vector but need not be so. The
19.

Julius Plcker (1801-1868), J., Neue Geometrie des Raumes gegrndet auf die Betrachtung der Geraden Linie
als Raumelement, Leipzig (B.G.Tebner, 1868-69), pp. 1-374.

Chapter 5: Displacements and Derivatives

142

vector is the moment which the % vector makes about the origin of coordinates. Thus the
first Plcker vector, % , defines the orientation of the line while the second, , defines its
location in space and distinguishes that particular line from all other lines parallel to it.
The Plcker vectors of a line can be found from the homogeneous coordinates of two points
located on the line, or from the homogeneous coefficients of two planes which intersect in the
line, as follows:

d = x1w2 w1 x2

d = A1 D2 D1 A2

e = y1w2 w1 y2

e = B1 D2 D1 B2

f = z1w2 w1 z2

f = C1 D2 D1C2

a = y1 z2 z1 y2

a = B1C2 C1 B2

b = z1 x2 x1 z2

b = C1 A2 A1C2

c = x1 y2 y1 x2

c = A1 B2 B1 A2

(5.51)

The Plcker vectors of this section are not the same as the Ball vectors of Section 5.6 unless
the screw axis in question happens to be of zero pitch. In that special case they are identical.
When the pitch is not zero, the Plcker vectors of a screw axis are found from the entries of the
derivative operator matrix by

d
%
= e
f

a d
%
= p = b e
c f

(5.52)

In either case the pitch computed from Eq. (5.47) gives = 0 and the Plcker vectors % and
are perpendicular to each other.

= % t = 0

(5.53)

Equation (5.48a) can be used to compute the position of a point p to locate the line.

p=

%
( % % )

0 f
1
f
p=
0
2
2
2
d +e + f
e d

e a d
d b e

0 c f

(5.54)

Except for this adjustment for pitch, the Ball vectors of a screw and the Plcker vectors of a
line are identical. The Ball vectors were also listed in a single vector called the screw
coordinates in Eq. (5.49). The same can be done for the Plcker vectors of a line, and these are
called line coordinates.

Chapter 5: Displacements and Derivatives

143

a
b

c
=
d
e

f

(5.55)

To review, the six component vector of a twist has six independent parameters, and defines
the size of the displacement as well as the properties of the screw. The Ball vectors and screw
coordinates have only five independent parameters; they are homogeneous and can be scaled by
any non-zero multiplier. They do not define the size of the displacement, only the screw. The
Plcker vectors and line coordinates have only four independent parameters; they are
homogeneous and can be scaled arbitrarily, and they must fit Eq. (5.53). They do not define the
size of the displacement or the parameters of the screw; they only define the line along which the
screw axis is located.
The primary assets of Plcker vectors and line coordinates in the context of this text are:

that they were developed before Ball vectors and screw coordinates and, therefore, are of
historic interest;

that they may be known to a wide set of readers who may be comfortable with them;
that the mental picture of as the moment of % about the origin of coordinates may add an

intuitive geometric notion of value to some.


However, in the coming chapters, the screw coordinates appear as a natural result of the
material itself.

Chapter 5: Displacements and Derivatives

144

Problems
5-1

Continue from the results of Problems 3.1 and 4.1 to find the following:
a) Form the Qj derivative operator matrix for each joint.
b) Form the Dj derivative operator matrix for each joint as a function of .

5-2

Prove Eq. (5.21b) for the derivative of the inverse transformation matrix shown in
Section 5.4.

Chapter 5: Displacements and Derivatives

145

Chapter 6: Position Analysis (Numeric)


6.1

Introduction

In Chapter 4 we studied how the position of some mechanical systems can be found analytically
using hand calculations to find closed form solutions. Typically this requires forming the
necessary transformation matrices, and ensuring that all dependent position variables are made
consistent with the constraints expressed by the loop closure equations. We solved several
example problems, in both 2-D and 3-D, to illustrate the process, but we also found that the
calculations quickly became burdensome, even for problems with only a few unknown joint
variables. In principle the methods look powerful, but in practice they quickly reach a limit on
practicality.
Does this mean that the methods are not adequate? Not exactly. Rather it means that we are
in need of a better means of calculating. Perhaps these tedious computations should be automated for solution by numerical methods using a computer.
Let us reflect on the nature of the problem of position analysis of a mechanical system. In
general, the number of bodies ( l ) is usually reasonably small, typically limited by cost and the
desire for simplicity and reliability to tens of moving parts or less. The number of joints (n) is of
the same order. The number of closed loops () is usually much smaller. The number of joint
variables ( j ) is of the same order as the number of joints. However, the number of independent
variables ( k ) is almost always very low. After all, the whole point of our mechanical system is
to control the movements of the parts to only those which are required for proper function of the
system; this is very often only one, and is rarely more than ten.
Let us say, for example, that a complex industrial machine is made as a single assembly and
that it has a mobility of f = 8 ; let us also say that it contains only revolute and prismatic joints
and has = 10 closed kinematic loops. With these given, the topological formulae of Chapter
2 show that the number of bodies is l = 59 and the number of joints is n = 68 . These are fair
estimates for a reasonably complex mechanical system.

Now let us consider the nature of the constraint equations for such a system. They are
products of transformation matrices containing trigonometric functions of ten or so joint variables each. Thus each constraint equation is a polynomial of approximately tenth degree in sines
and cosines of unknown joint angles, and there are 6 = 60 such equations. However, once we
use trigonometric identities to reduce all sines and cosines to tangents of half-angles, we have 60
equations of degree 20 in our 60 unknown joint half-angles. Eliminating one unknown from this
set of equations doubles the degree of those remaining; thus we have only 59 equations in 59
unknowns, but of degree 40; then 58 equations of degree 80; 57 equations of degree 160; etc.
Are we getting a message here?

Chapter 6: Position Analysis (Numeric)

When (and if) we finally get our long sought single equation in one unknown, its degree is
horrendous; what will we do with it to solve for that one unknown? Since it is a polynomial of
extremely high degree, we will take it to the computer to find its many, many roots; wont we?
Then we will take each of these roots and return to the previous equation to solve for the second
last unknown; again doing root finding of a very high degree polynomial, collecting even more
combinations of roots found; etc. ... Sure we will! What else can we do? After all, there is
proof that a general polynomial of degree higher than four can not be solved in closed form.1
Fortunately, there is a better way! In this chapter we start by agreeing that the nature of the
problem requires a numeric solution, and formulate our method to enhance this approach.

6.2

Initial Configuration

Once the problem has been modeled on a computer, a structural analysis is performed in
accordance with Chapter 2 to identify the complete topology, including numbers of bodies,
joints, joint types and joint variables, number of assemblies, and identifying any kinematic loops
and all kinematic paths. A data structure is formulated in computer memory which reflects the
topology of the system modeled.
Numeric data is entered next to specify the exact shapes, sizes, and initial locations and
orientations of all components. Of course, this data entry stage requires many modeling
decisions of the user. Not the least of these is the choice of an initial configuration, a single
modeling position of the system which is used for the specification of numeric data. If a layout
drawing of the design exists, the position shown in that drawing serves very nicely. If not, it
may be worthwhile to create one, either on paper or in a CAD system. An actual hardware
system or a 3-D physical scale model will also serve here as long as we choose a specific
position for each generalized coordinate. The important thing is to insure that there is a source
of accurate geometric data, all captured at one consistent configuration of the system and known
to fit together into a real machine, at least at the initial configuration.
Choices on locations of coordinate systems are also made at this stage. Not only must there
be an agreed upon global coordinate system x0 y0 z0 , but also a body coordinate system ( xi yi zi )
must be chosen for each machine part, two joint coordinate systems, ( u j v j w j ) and ( uj vj wj ), must
be identified for each joint, and other auxiliary coordinate systems may also be specified.
Next, the locations and orientations of all coordinate systems are entered and transformation
matrices are formulated numerically, perhaps by the methods of Section 3.8. All required shape
matrices S j , j and S j + , j are found and stored for later usage. Simultaneously, initial joint
matrices j are formulated numerically for each joint at this initial position. From these the
methods of Section 3.10 are used to extract initial numeric position values of all joint variables
j , each depending on its own joint type. Some of these are, of course, the initial position
values of the generalized coordinates k . As all of this numeric data is being collected,
1.

See, for example, G. A. Korn and T. M. Korn, Mathematical Handbook for Scientists and Engineers, McGrawHill Book Company, Inc., New York, 1961, esp. Section 1.6.3.

Chapter 6: Position Analysis (Numeric)

pertinent tests are made to insure that the numeric values of each joint matrix j are consistent
with the assumptions made in Section 3.10 with respect to the placement and orientation of joint
coordinate systems for the corresponding joint types. When discrepancies are discovered
between modeling assumptions and the numeric values received, the computer software can
warn the user with an appropriate message and allow the interactive correction of the model until
all data are consistent with assumptions.
Finally, when the data entry phase of analysis is completed, the computer memory contains a
validated model of the mechanical system at the initial modeling position. This computer model
may or may not match the real mechanical system intended by the user. It may or may not be
movable or, if it is, the motion may or may not represent the true motion of the real machine.
However, in any case, it will be a model of a possible mechanical system.

6.3

Solution for a Nearby Position2

Once all data are entered and consistency with assumptions is verified, accurate numeric values
are known for all joint variables j at the initial position. Suppose, however, that we wish to
move the model to another nearby position. Suppose that the new desired position is specified
by the user by changing some or all of the independent joint variables k to new position values
which we assume are "close" to their initial position values. The problem which we wish to
solve now is to find a way to update the other joint variable values to be consistent with the new
generalized coordinates, thus moving the system model to this new position.
Since we assume that the new position is close to the previously known position, we now
assume that the new unknown values of the dependent joint variables are also close to their
known preceding values. That is, we assume that the new unknown values are of the form3

j = j + j

j = 1, 2,K , n

(6.1)

where j represent small changes from the known position values.


We must now consider how these small position changes can be made consistent with the
constraints of the loop closure equations. Since we have changed the generalized coordinate
position values k , we must recalculate the numeric values of the joint matrices j according to
their joint types and the formulae in Section 3.10 and the values of the individual transformation
matrices of Eq. (4.4)
T j , j + = S j , j j S j +1, j
2.

The original research for this and subsequent sections, before the many extensions shown here, was first
published as: J. J. Uicker, Jr., J. Denavit, and R. S. Hartenberg, "An Iterative Method for the Displacement
Analysis of Spatial Mechanisms," Journal of Applied Mechanics, ASME Transactions, June 1964, pp.309-314.

3.

For joints with more than one variable there will be as many jk and jk as there are variables in each joint.

Chapter 6: Position Analysis (Numeric)

As we calculate new products of transformation matrices along the paths of the model and
products of transformation matrices around the kinematic loops, we find that the T00 products
around the loops are no longer equal to the identity transformation since some joint variables
have been changed to new position values and others have not. Because of this, the loop closure
equations are not satisfied. Instead of the identity transformation, the products T00 are in error
by small amounts which we represent by the matrix E.
T00 = I + E

Of course, if we knew the small changes j of Eq. (6.1), all calculations could be redone
and the errors E would not exist. Our problem, therefore, is to find the j corrections necessary to eliminate the errors E in the loop closure constraint equations.
Let us expand the loop closure equation in Taylor series in the neighborhood close to the
known values of j . To first order this gives
T00
j + L = I
j =1 j
n

T00 +

where there is one term in this summation for each joint variable j which appears in the loop
being considered.
If we take advantage of the D j differentiation operator matrices, then by Eq. (5.31) our
Taylor series becomes
n

T00 + L ( i, j ) D jT00 j + L = I
j =1

where L ( i, j ) symbolizes the entry of row i, column j of the loop matrix and is used to provide
sign information consistent with the existence and orientation of each joint j in each loop i.
Rearranging this equation slightly, it becomes
n

L ( i, j ) D
j =1

T001 I = Ei

i = 1, 2,K , NL

(6.2)

which is a set of (4 4) matrix equations relating the n unknown error corrections, j .


Realizing that each matrix has only six independent entries, we can, without loss of information,
replace each of these matrices by its screw coordinates. Therefore, referring to Eqs. (5.45) and
(5.49) for form, we define the following screw coordinate vectors

Chapter 6: Position Analysis (Numeric)

D j (1, 4 )

D j ( 2, 4 )
D j ( 3, 4 )
D j =

D j ( 3, 2 )
D (1,3)
j

D j ( 2,1)

Ei (1, 4 )

Ei ( 2, 4 )
E ( 3, 4 )
E i = i

Ei ( 3, 2 )
E (1,3)
i

Ei ( 2,1)

j = 1, 2,K , n

(6.3)

i = 1, 2,K , NL

With these definitions Eq. (6.2) reduces to


n

L ( i, j ) D
j

j =1

E i

i = 1, 2,K , NL

(6.4)

where 6-D screw coordinate vectors have replaced the (4 x 4) matrices. There is an equation of
this form for each of the loops of the system, and they relate the n error correction unknowns,
j .
In addition to these equations, we must include an additional equation for each joint which
employs Euler parameters for its joint variables. From a first-order Taylor series expansion of
Eq. (3.48) we will have an additional constraint equation of the form

( ) ( ) ( ) ( )

2 1j 1j + 2 j2 j2 + 2 3j 3j + 2 j4 j4 = 1 1j

2
j

3
j

4
j

(6.5)

for each spheric joint and, from a similar expansion of Eq. (3.55), we will have an additional
constraint equation of the form

( ) ( ) ( ) ( )

2 j4 j4 + 2 5j 5j + 2 j6 j6 + 2 j7 j7 = 1 j4

5
j

6
j

7
j

(6.6)

for each open joint of the system.


We now wish to display these equations in a more standard form; however, the process is
better shown by example. Suppose, we take the gear train problem of Example 4.5, Figure 4.10;
the loop matrix for this three-loop example was found to be
A B C
1
L = 1
1

D E

0 0 -1
-1 -1 0
1 -1 -1 0 0 0
1 0
1 0

0
0

Developing the explicit form of Eq. (6.4) for this example we find that it is

Chapter 6: Position Analysis (Numeric)

D A

D A

DA

D B
D
B

D B

0
D

0
D

0
D

0
D

A

B
D G C E1


0 D = E 2


0 E E 3

F

G

The procedure shown by this example can be generalized for any rigid body mechanical
system. It always results in a set of linear equations of the form
J = E

(6.7)

For a system with loops and n joint variables, the coefficient matrix J of this set of
equations has ( 6NL + NC ) rows and n columns, where is the number of constraint equations
for the Euler parameters of spheric and open joints in the system. The coefficient matrix of Eq.
(6.7) is called the Jacobian.4 It is always of the same form as the loop matrix L found in Chapter
2 for the same problem, except that each non-zero entry of L which had a value of 1 is now
replaced by a screw coordinate vector of D j in the column of J corresponding to the joint
variable for joint j. The zero entries of L are replaced by columns of six zeroes. When a joint j
has more than one joint variable, then the corresponding screw vectors D kj for each joint
variable are entered into successive columns of J . The coefficients of the constraint equations
of the form of Eqs. (6.5) and (6.6) relating the Euler parameters of each spheric and open joint
are entered as additional rows of J using these same columns. The column vector E is
filled with the screw coordinate vectors of Eq. (6.3) showing the errors in closure for each of the
loops, with additional entries from the right-hand sides of Eqs. (6.5) and (6.6) for the
additional constraint equations. The unknowns of this set of equations (6.7) are the error
corrections j (or jk ) for the joint variables, taken in the same order as the columns of J .

Of course, we started this section by assuming that one or more of the joint variables had
intentionally been changed to a nearby position; that or those joint variable(s) already have new
values and do not need "corrections". We may as well delete these columns from J , and the
corresponding "corrections" from the column of unknowns. Although we will later show a better
procedure, for now let us consider these eliminated.
If the J matrix is square and non-singular then Eq. (6.7) can be solved directly by matrix
inversion

= J 1 E
4.

The determinant of this matrix was studied in depth by Carl Gustav Jacob Jacobi (1804-1851), and was
presented in "De Determinantibus Functionalibus," Crelle, vol. 22, 1841.

Chapter 6: Position Analysis (Numeric)

More will be said later about problems in which J is either singular or is not square.
Once the j error corrections are found, they are added to the previous values of the joint
variables according to Eq. (6.1) giving improved values for the dependent joint variables.
However, since our equations were linearized by dropping higher-order terms of the Taylor
series, these may still not be of sufficient accuracy; if not, then the process is repeated iteratively
until the accuracy is acceptable.
To repeat the process means accepting the improved joint variables to replace the previous
values of j , recomputing the joint matrices j using these improved values, finding new
transformation matrices and products T0i and derivative operator matrices D j , new coefficient
and error matrices J and E, and then new corrections j .
With each iteration of this process, the values of the joint variables improve to better fit the
loop closure constraints and the T00 matrix products more closely approximate the identity
matrix. Therefore the Ei matrix entries, showing errors in loop closure, become smaller and the
corresponding columns of constants also become smaller, leading to smaller error corrections
j . Ultimately, when all Ei matrix entries and j corrections become smaller than an agreed
upon tolerance value, the process is declared finished. Much more will be said on this iteration
process and its convergence in the sections to follow. However, after convergence, the new
updated values of all joint variables and all transformation matrices and derivative operator
matrices are in conformance with the loop closure constraints at the new position of the system.

6.4

Avoiding Convergence to a False Solution

Once the iteration process of the previous section converges to the specified tolerance level, are
we assured that this numeric solution represents a valid position for the real mechanical system?
Unfortunately, there are conditions when this may not be the case. Let us look more closely at
what our numerical procedure has and has not assured.
We have continued to monitor and are assured that the column of constants E has become
zero (within our agreed tolerance). Comparing this with Eqs. (6.4) and (6.3) and remembering
from Section 5.5 that the bottom row of each D j matrix is always zero assures us that all offdiagonal terms of each Ei have become zero in Eq. (6.2). Thus, remembering the orthogonality
conditions of all transformation matrices, we have assured for each loop that
1 0 0
0 1 0
T00 =
0 0 1

0 0 0

0
0
0

But our iteration equation does nothing to insure that the three diagonal elements of the rotation
submatrices have converged to positive unit values to match the identity matrix.
Chapter 6: Position Analysis (Numeric)

We do know, in addition, from the properties of our transformations that the determinant of
each T00 matrix is always positive unity. However, it is still conceivable that our iteration
process could converge with a T00 matrix having two negative unit values on its main diagonal.
Geometrically, this would mean a rotation error of 180 in a loop about one of the major global
axes without correction by our iteration process. Worse yet, experience has proven that this can
and has sometimes happened in practice, even for very simple systems moving through small
displacements.
Fortunately, once this problem was discovered, a very simple correction was found. The
definition of Ei in Eq. (6.3) is, therefore, modified as follows
Ei (1, 4 )

Ei ( 2, 4 )

E
3,
4
(
)
i
E i =

Ei ( 3, 2 ) + Ei ( 3,3) + Ei ( 2, 2 )
E (1,3) + E (1,1) + E ( 3,3)
i
i
i

2,1
+
2,
2
+
E
E
E
(
)
(
)

i
i (1,1)
i

i = 1, 2,K , NL

(6.8)

This modification is equivalent to adding two of the diagonal terms to each of the offdiagonal rotation terms of Eq. (6.2) before the screw coordinates are extracted. However, since
all D j matrices had zeroes on their diagonals, this causes no changes in the vectors or the J
matrix. This change in definition of Ei has no effect on the convergence or accuracy of the
iteration process when converging toward a valid solution since the changes are in the quadratic
and higher terms of the Taylor series.5 However, if the process comes even remotely close to
one of the false solutions, a very large correction is made which avoids convergence toward such
a solution. This heuristic modification has been tested in software, has totally eliminated the
problem, and has shown no further problems in many years of usage.

6.5

Numerical Solution of the Iteration Equation

In Section 6.3, Eq. (6.7) was solved by inversion of the J matrix of coefficients on the
assumption that it was square and non-singular. This strategy was used to simplify the
explanation and avoid confusion for the reader; however, it is not the full story.
Let us now consider, for example, the simulation of a simple four-bar linkage when the input
crank angle has been set to a new position. We discover that there are only three joint variables
for which corrections j need to be found. Yet there are six equations. In that case, as for all
planar linkages, the out of plane components of the screw coordinate vectors are zero, thus
leaving only three nontrivial equations in the three unknowns. Similarly, if we consider a
5.

The diagonal terms of a helical transformation matrix are unity and cos where, hopefully, is a small angle.
However, the Taylor series of cos for small angles has no first order term.

Chapter 6: Position Analysis (Numeric)

spherical linkage, such as the universal shaft coupling of Example 4.1, only the three rotational
components of the screw coordinates carry values and all translation equations are null. Therefore, only three unknowns can be found per loop for planar or spherical problems.
From these and many other situations with special geometry we can see that there are not
always six useful equations per loop. Often, some of the equations become simple identities and
cannot yield solutions for unknowns. The J matrix may carry more rows than columns, yet still
be meaningful. Still it is not clear at the time the software is being developed which equations
carry meaningful information for a given problem, and which may be null or trivial identities.
Another circumstance which can lead to difficulty is when special geometric situations, such
as parallelism or intersection of multiple joint axes, lead to some screw coordinates which are
linear combinations of others. Again, this gives a J matrix which has no inverse, either because
it is not square or because some of its rows are linear combinations of others. The J matrix of
Eq. (6.7) results from an algorithm which assures that it always has ( 6NL + NC ) equations, but
there is no guarantee that these equations are independent and non-trivial. Similarly, there is no
guarantee that there are ( 6NL + NC ) joint variables which need corrections.
We can say with certainty that the ( 6NL + NC ) equations contained in J represent all of the
constraints which must be enforced between the unknown joint variables. There are no other
kinematic constraints. No more than ( 6NL + NC ) joint variables can be found from the
constraint equations. However, this does not assure that ( 6NL + NC ) joint variable corrections
can always be found since some equations may be either trivial or redundant.
It is also possible that a mechanical problem can be posed wherein the J matrix has more
than ( 6NL + NC ) unknown joint variables. This happens, for example, in problems of higher
mobility if less than the full set of generalized coordinates are identified and given values by the
user. In such a case, the additional joint variables of the undiscovered degrees of freedom cannot
be found from the loop closure constraints. The positions of those joint variables must be found
some other way. They cannot be found from Eqs. (6.7).
In the general case, therefore, the J matrix may not be square and also it may be singular in
the sense that it may have rank less than ( 6NL + NC ) . How then are we to solve Eq. (6.7) for its
unknown joint variable corrections, j , if standard matrix inversion software cannot be used?
Historically, the earliest solution to this dilemma was put forward for the case where J has
more rows than columns; that is, where there are more equations than unknowns.6 The argument
was made that, since the process is iterative, the best root-mean-squared (rms) approximation to
all ( 6NL + NC ) equations could be accepted, and would then be corrected again, if needed, in
later iterations. Therefore, Eq. (6.7) was approximated by

( J J ) = J
tt

6.

tt

Uicker, op.cit.

Chapter 6: Position Analysis (Numeric)

and, since the coefficient matrix was now square, the solution

= ( J tt J

J tt E

was accepted. In general, this approach did give acceptable solutions for many cases. However,
later study showed that it sometimes converged more slowly to a solution, thus requiring more
iterations. Much worse, however, was the robustness of this approach when the system moved
into or near positions of poor mechanical advantage. Near such a position, the determinant of J
(if it is square) becomes small and the determinant of ( J tt J ) becomes quadratically even
smaller. Thus the accuracy of joint variable corrections become poor near such a position and
convergence to a solution was sometimes in doubt.
Fortunately, a much more robust algorithm has been found for the solution of Eq. (6.7).7 It is
the Gauss-Jordan method of elimination8 with a special variation of complete pivoting.9 This
algorithm starts by assuming that the joint variables are arranged such that those which represent
known generalized coordinates i carry the largest identification numbers and, therefore, are
represented in the rightmost columns of the J matrix. Next the J matrix is filled with screw
coordinate vectors as explained in Section 6.3 and then augmented on the right by a
( 6NL + NC ) ( 6NL + NC ) identity matrix (where we wish to develop the "inverse" of J ).
Subdividing the columns of J into those for the unknown joint variables and those associated
with the generalized coordinates, we have

[J 1

J3

I]

Now we proceed with Gauss-Jordan elimination algorithm except for one small but
important variation. We seek the largest possible pivot element, but searching only the J 1
submatrix. That is, we search only in those columns which are not known to represent
generalized coordinates. Finding the pivot element, we switch this row to the top and switch this
column to the left. Then we divide all elements of the pivot row by that element, thus making
the pivot element unity. Then, by adding or subtracting correct multiples of that modified pivot
row to each of the other rows in succession, we zero all other elements in the pivot column, thus
eliminating that variable from all equations except the first.
We then identify the largest remaining pivot element, again searching only the remaining
portion of the modified J 1 submatrix. Switching that row and that column to second, we also
place it on the main diagonal. We then normalize that row and eliminate that variable from all
other equations by subtracting proper multiples from each of the others. We continue in this

7.

P. N. Sheth, "Improved Iterative Techniques for the (4x4) Matrix Method of Kinematic Analysis," MS Thesis,
University of Wisconsin - Madison, Madison, 1968.

8.

See, for example, K. S. Kaiser, Numerical Analysis, McGraw-Hill Book Company, Inc., 1957, Section 10.4.

9.

Other methods could be similarly adapted if the modified pivoting is adapted. Choleskys method or Crouts
method of lower-upper matrix factorization would be good alternative choices.

Chapter 6: Position Analysis (Numeric)

10

same manner and the augmented J matrix evolves as we do this.


The Gauss-Jordan elimination operations are, of course, all valid matrix row operations.
Except for the reordering of rows and columns, they are equivalent to pre-multiplying the
original augmented J matrix as follows
J 111
J 111J 12
J 111J 13
J 111
0 J 11 J 12 J 13 I 0 I
0
=

1
J
J 22 J 23 0 I 0 J 22 J 21J 111J 12 J 23 J 21J 111J 13 J 21J 111 I
J 21J 11 I 21

(6.9)

Here the different submatrices of the original augmented J matrix are shown separated by
horizontal and vertical lines. A second row of symbols has been added to distinguish rows
above and below the current pivot element; also, the original J 1 columns have been separated
into columns to the left ( J i1 ) and to the right ( J i 2 ) of the current pivot element.
Thus, as we continue to the next elimination step, we search out a new pivot element in the
submatrix containing J 22 J 21J 111J 12 , then switch this pivot element to the top left of this
submatrix by changing rows and columns. When we eliminate multiples of this row from all
other rows, we again reach the state shown, except that the identity matrix at the top left has
increased size by one, and the area to be searched for the next pivot has decreased by one row
and column.
As we continue, we finally reach a state where, either (a) we run out of rows of the original
J matrix, or (b) the largest pivot element found in the ever-shrinking J 22 J 21J 111J 12 submatrix is either zero or essentially zero (less than a given tolerance).10 When this state is reached,
the J matrix stored in computer memory has, within this tolerance, reached the form
I J 111J 12

0
0

J 111J 13
0

J 111
0

J 21J 111 I

Notice that the entries in the rows below J 111J 13 are also shown as zeroes. These remainders
should be checked by the software. If they are not small, if non-negligible size elements still
remain in this area, it is a signal that the user has set as an independent input the position of a
joint variable which could (and should) be determined from others; such a situation should be
treated as an error in the input data.
Once the Gauss-Jordan elimination process finishes, the form of Eq. (6.7)
J = E

10.

The tolerance used here may be set to the round-off tolerance of the computer system used, but need not be
smaller than the strictest dimensional tolerance of the manufactured part dimensions. The IMP software uses a
default tolerance of 10-10.

Chapter 6: Position Analysis (Numeric)

11

has been reduced to


I J 111J 12

0
0

1
J 111J 13 J 111
0 E1
2 =

0
J 21J 111 I E 2

(6.10)

where E1 and E 2 refer to portions of the original E vector, but shown subdivided to fit the
subdivision of the preceding matrix. 1 refers to the corrections just found. 3 are
"corrections" whose labels refer to the generalized coordinates i and, since these are already
set to "correct" positions, 3 is now set to zero. 2 is a set of "corrections" recommended for
variables not yet found, but which cannot be solved from the loop closure constraints. Lacking
further information, these are also set to zero. With this, the set of equations becomes
1
1 J 11 E1
= 0

2
3 0

(6.11)

with the additional condition, that the equations require


E 2 = J 21J 111 E1

This condition may not be satisfied exactly, particularly in early iterations; however, when
the iteration process converges, both E1 and E 2 approach zero, and the condition is satisfied
automatically.
In applying Eq. (6.11) we must remember that multiple row and column changes take place
during the pivoting steps of the Gauss-Jordan algorithm. While this is happening the original
row and column identification labels must be tracked so that, when Eq. (6.11) is applied, the
modified ordering of the original J column numbers can be used to tell which joint variables
are to be corrected by which elements of 1 .
The astute reader might legitimately ask why the J matrix was augmented with a full
identity matrix, rather than just augmenting J with the single column E matrix. Similarly, why
were the columns of J 3 kept, if they are multiplied by 3 = 0 at the end? The answers to these
questions will become clear in the next and later chapters where we will see that the information
found in these columns at the end of the process is extremely useful and meaningful, and comes
as a "free" by- product of the iteration process.

6.6

Identification of Generalized Coordinates

Probably the most valuable by-product of the iterative solution process described in Section 6.5
is that it automatically discovers the mobility of our mechanical system and selects an
Chapter 6: Position Analysis (Numeric)

12

"optimum" choice of independent generalized coordinates.


As the Gauss-Jordan algorithm is applied to the inversion of the J matrix of the loop
closure equation coefficients, the modified pivoting algorithm avoids choosing any of the userspecified generalized coordinates and avoids allowing them to be "corrected" by the constraint
equations. However, having said this, the pivoting algorithm does use the largest available
coefficients in J , in the order found, to solve for remaining joint variables where possible. The
choice of the largest available elements of J for use as pivot elements assures the best possible
numerical accuracy and minimizes round-off and truncation errors.
As pivot elements are chosen, the choices are made implicitly of which joint variables are to
be corrected, that is, which are the independent joint variables of the system. All joint variables
which are solved from the loop closure constraints are dependent variables and those which are
not solvable in this way must be independent variables; that is, they are additional generalized
coordinates.
The positions of the generalized coordinates, as we have just seen, are not solved from the
kinematic constraints, the loop closure equations. Their positions must be set by other factors;
they may be independently set by the user, or they may take on positions as a result of static and
dynamic forces imposed on them. These are subjects for later chapters. Either way, the joint
variables in the group 2 are independent and are additional generalized coordinates k not
originally identified by the user. This explains why we set their "corrections" 2 to zero, thus
leaving them in their previously known positions.
It may seem arbitrary to choose generalized coordinates for our mechanical system based on
numerical convenience. However, it will become clear in later chapters that the choice of largest
pivot elements also selects those joint variables which have the best mechanical advantage and
are, in this sense, the optimum choices for generalized coordinates.
We should also take careful note that the final decision on the mobility of our mechanical
system is a result of our iterative kinematic analysis, not a declaration made by the user; thus it is
not subject to errors of human intuition or judgement. The mobility of our mechanical system is
f = n rank ( J

(6.12)

Also, the generalized coordinates for the system come in two groups. Some of these, which
we call specified generalized coordinates (SGC), are given specified positions by the user. We
give the symbol to the number of SGC joint variables. Others, called free generalized
coordinates (FGC), numbering joint variables, are discovered by the system during the
above iteration process.
Note also that the number of free generalized coordinates, and the choice of joint
variables representing them, are discovered anew each time our system reaches a new position.
There is no assurance that either the number or the choice of variables for them will be the
same from one position to another. As a system moves through a "dead-center" or other special
Chapter 6: Position Analysis (Numeric)

13

geometry position, for example, it is very possible that the mobility may change (since a screw
axis may become linearly dependent on others), and there may result an additional
(instantaneous) degree of freedom (an FGC) at such a position which did not exist at the
previous position and which may not exist at the next. We must be watchful for this possibility
in later phases of the analysis where it can complicate our techniques. However, this is the
physical nature of such a system; such complications can not be avoided.

6.7

Scaling Internal Distance Units

So far in this text no mention has been made of units for the various physical quantities. This is
fitting since the laws of science must hold true in spite of the choice of units used as long as the
units chosen form a consistent set. Thus there has been no mention of whether distance units are
to be measured in inches or millimeters or miles or even light years; it should not matter as long
as we are consistent for all distance measurements.
Yet experience shows that our choice of distance unit can have a major impact on the
convergence rate and numerical accuracy of the iterative solution to the loop closure equations.
Perhaps this is most easily understood by considering the tolerance used in testing for
convergence. Suppose, as an example, that an automotive suspension system is being simulated
and that, in view of manufacturing tolerances, we hope to achieve solutions accurate to 0.05
mm. Length and distance data are entered in millimeters and range from quite small to perhaps
5000 mm. Thus we already see five orders of magnitude difference between what we consider
"large" and "small" distances for such a problem.
However, far more insidious, suppose that the same suspension problem contains a rotating
arm of length 500 mm. To what accuracy must we calculate the arms orientation to insure our
required distance accuracy of 0.05 mm? This implies an accuracy of approximately 0.0001
radians for calculation of angular quantities;11 if the arm were longer, the angular accuracy
requirement would be even more strict. Recalling that our iterative solution of the loop closure
equations is used to solve for a combination of both distance and angular unknowns in , what
accuracy should be chosen in testing for convergence?
We see that there can easily be about five orders of magnitude difference between the
magnitude of distance and angular parameters even in a very reasonable problem. Yet a typical
digital computer with 32-bit accuracy in single precision calculations can only carry accuracy to
about six significant figures. Does this mean that we must, or even that we should, use double
precision calculations? No! The real problem here is the difference in magnitude of distance
and angular numeric values and the fact that they mix together in the position equations. This is
a problem of scaling, and should be treated as such.12
11.

Remember that angular quantities are always treated in radians in all higher level programming languages; the
programmer has no choice.

12.

It is the opinion of these authors that most double precision software is not required, but is the result of lack of
care by the analyst in the problem formulation. Usually, in simulating problems of the real world, numerical illconditioning comes from poor problem formulation, not from the laws of nature.

Chapter 6: Position Analysis (Numeric)

14

If, when all data are first entered, we seek out the minimum and maximum values of all
position coordinates in the problem, we can discover the limiting dimensions of the rectangular
volume in which the problem is defined. Suppose that we take the diagonal distance across this
volume, and define this distance to be one internal length unit. Then, using this distance as a
scale factor, all distance units for other data are scaled to this distance as an internal unit of
length. This insures that all distance values in the computer are fractional, as are typical angular
values which are always in radians. All numeric values are now of the same general magnitude.
All calculations are now carried out to precision of about six significant figures of meaningful
accuracy with respect to each other. When results are printed the internal distance units are
converted back to the users preferred units by the inverse of the same scale factor.
With this scaling procedure in place, experience shows that position solutions can be iterated
to an accuracy tolerance of about 0.00001 internal units with only a few iterations for a typical
problem. For our car suspension example this is equivalent to accuracy of approximately
0.00057 for angular values and 0.05 mm for distances. With this scaling procedure, the
accuracy is suited to the problem at hand without the penalties on speed and memory caused by
double precision calculations.13

6.8

Quality Index

In Section 6.6 we discussed how the mobility of a particular problem may change if it
reaches a position where some of its screw coordinates become linearly dependent on others.
We noted that a new FGC may appear as we pass through such a position, and then disappear
again once the dependency no longer exists. Such phenomena do happen in real mechanical
equipment design. Such a position might be called a "dead-center" position in some
applications. In others, the problem might be said to have a poor "pressure angle". In others, we
may have reached the "end of stroke", and cannot move the input any further. In yet others, we
may say that the system has reached a "toggle" position. In many different applications we may
hear that a machine has either good or poor mechanical advantage. We are not yet in a position
to give a precise definition to the term mechanical advantage. This will come with our study of
force analysis. Even now, however, we can define a general measure of how well a system is
likely to serve its intended purpose.
Reviewing the Gauss-Jordan elimination method of Section 6.5 we see that, as each pivot
element is identified, these can be multiplied together and, at the end, this product gives the
determinant of the J 11 portion of the J matrix, the submatrix that was actually inverted. We
define the absolute value of this determinant as , which we call the quality index of the
mechanical system being simulated.
Q =| det ( J 111 ) |
13.

(6.13)

J. Angeles, "Is There a Characteristic Length of a Rigid-Body Displacement?", Mechanism and Machine
Theory, vol. 41, no. 8, August, 2006, pp. 884-896. This paper has an extensive review of many authors'
attempts to find a "characteristic length", and then proves that such a length is not possible for the general case
since it must approach zero. A problem dependent engineering definition must be used instead.

Chapter 6: Position Analysis (Numeric)

15

As the name implies, this value is a general indicator of how well the system is suited to
performing its function. Its definition allows the quality index to be found for any kinematic
system, and it describes a qualitative measure of performance similar to many of the application
specific terms named above, (dead-center, pressure angle, etc.).
As a system moves from one position to another, the quality index changes. When its value
is high, that is good; when it becomes small, that is an indication that the system is approaching a
special geometry (singularity) position where the mobility ( and f) may increase. By itself,
the value of the quality index means nothing. However, if this value is monitored as the
system moves, it is a very good indicator of increasing or decreasing functionality of the system
for the task simulated.
We will see in coming chapters that calculation of any derivatives for our mechanical system
is done by inverting the same J matrix. When its determinant becomes small, this implies that
all derivative equations become more nearly ill-conditioned. When the quality index becomes
very small, all derivatives of the system become doubtful together. Thus, all aspects of the
systems performance, (velocity ratios, force transmission, influnce of friction, positioning
accuracy, effects of manufacturing tolerances, etc.) deteriorate. When one of these degenerates,
they all decay together; this is the meaning of a dramatically decreasing value of the quality
index.

6.9

Convergence and Robustness

The iteration procedure described in this chapter was first proposed in 1963 and has been
discussed in depth by many for a wide variety of applications.14 The originator, this author, has
been party to many discussions and inquiries; this author has also supported the use of this
algorithm in commercial software since 1970 and has shared the experiences of literally
hundreds of real-world applications. Still there is little agreement on the merits and
disadvantages of the approach. In fact, there is so much dis-information based on opinions of
those with no first-hand experience, that this forms one primary motivation for this text. The
primary concerns of critics are on issues of computational speed, rate of convergence, robustness
of the algorithm, and on the size of the largest displacement for which it will converge.
The first of these questions, that of computational speed and rate of convergence, is always
raised by a critic who assumes that any "iterative" technique must take "a large number" of
iterations to converge to an acceptable precision and will therefore be slow and impractical.
That criticism simply doesnt apply in this case. Numerical analysis texts show that the NewtonRaphson iteration technique (which is the technique used here15) has quadratic convergence, and
14.

Uicker, op.cit.

15.

This root finding procedure was first published by Joseph Raphson (1648-1715) in his Analysis aequationum
universalis, London, 1690. However, historians have shown that he had become aware of private notes of Sir
Isaac Newton (1643-1727) which were written in 1671 but were not published until almost fifty years later as
part of I. Newton, De methodis fluxionum et serierum in finitorum, London, 1736.

Chapter 6: Position Analysis (Numeric)

16

is often the method of choice for solution of non-linear equations in multiple variables because
of its rapid convergence.16 The original publication on the application of this method to
mechanisms reports an example set of calculations for a single-loop 3-D linkage with six
dependent joint variables. The rate of convergence, taken from that example, is shown in Table
6.1.17

Table 6.1
Convergence Rate for an Iteration Process Example
Joint\Iteration
2 (deg)
3 (in)
4 (deg)
5 (in)
6 (deg)
7 (in)

-5.150
0.0012
0.302
-0.863
-5.560
-0.0615

-0.163
-0.112
0.255
0.170
-0.236
-0.151

0.000596
0.000740
-0.000569
-0.000748
0.000537
0.000796

0.0000016
0.0000001
0.0000005
0.0000002
0.0000001
0.0000001

The convergence rate shown by this example is not a fluke; it is very typical of the authors'
forty plus years of experience, even for problems with many loops and many more unknown
variables. The first iteration corrects all variables so that errors are all of the same general
magnitude. Later iterations improve the accuracy of all variables simultaneously at a rate of two
or three orders of magnitude with each iteration. Typical problems require three or four or
sometimes (rarely) five iterations to converge to accuracy close enough for engineering
applications.
Experience shows that no problem ever iterates more than six times and still reaches a
solution. Either it converges in fewer iterations, or it fails to converge at all. If it fails to
converge, then either (a) it reaches the limit of the computers accuracy without achieving the
requested tolerance (which was probably unnecessarily small), or (b) it diverges quickly and
dramatically, giving huge correction terms that become larger rather than smaller with each
iteration.
The first problem, decreasing size corrections which do not reach the requested tolerance,
indicate that the requested tolerance limit is too strict for the accuracy of the computer. The only
choices under these conditions are to relax the requested tolerance, or to change the software to
use double-precision calculations.
The second problem, divergence of the iteration process, indicates that (a) the position
sought cannot be reached, perhaps because it is past the limit of travel which the input crank can
achieve, or that (b) the new position is not "nearby" to the position from which the iteration
16.

See, for example, M. L. James, G. M. Smith, and J. C. Wolford, Applied Numerical Methods for Digital
Computation with FORTRAN and CSMP, 2nd ed., IEP-A Dun-Donnelley Publisher, New York, 1977, pp.100102.

17.

Uicker, op.cit.

Chapter 6: Position Analysis (Numeric)

17

process was started, thus defying the assumption of our Taylor series expansion. When this is
the case an intermediate position can be chosen and two (or more) increments can be used with
success.
This, of course, raises the question of how close is "nearby". How large a change in position
can be found with success? How near to the final position do the initial estimates have to be to
assure convergence? This question is not easy to answer with a simply applied criterion.
Once a problem is modeled at some original position, it is probably unwise to try to turn an
input crank by 180 or more in a single step; however, it is surprising how often this may be
successful. It is the authors experience that it is much more likely that a solution will be found
than that the iteration process will diverge. However, when a large displacement is taken in a
single step, it is also possible that a valid solution may be found, but not necessarily the solution
that the user intended. We must remember that multiple real solutions may exist for the
nonlinear loop-closure equations. There may be other configurations in which the same machine
parts can be assembled for the requested crank angle. However, even if the process converges to
one of these alternate solutions, this does not assure that the real system can move continuously
from one solution to the other. If the iteration process were to converge to a different closure,
then it may be necessary to take the physical system apart and reassemble it to reach the later
position. This other closure may be a clearly valid solution to the loop closure equations, but not
what the user expected or intended.
Fortunately, the iteration process, as presented, does not switch from one closure to another
as long as the new position is in the neighborhood of the starting position. This still does not
answer the question, however, of "how close is nearby?" The author has no clear answer for
this. It is amazingly "far" when the system is in a "nice" position with a good-sized value for the
quality index. However, as the quality index drops, it is wise to reduce to smaller displacement
increments if simulated motion is to continue.
Probably the most comforting advice the authors can offer from experience is that, if a real
machine -- one that functions well in hardware -- is being simulated, then the increment size at
which the user wishes to see the output reported will not cause a problem. This is not very
scientific, but it is an honest report of many years of experience.
The most extensive study of convergence and robustness of this iteration process was done in
1993 by Olsen in his study of its applicability to the control of a six degree of freedom manipulator.18 His purpose was to test the validity of the following premise expressed in different ways in
different texts on robotics:
"We will split all proposed manipulator solution strategies into two broad
classes: closed-form solutions and numerical solutions. Because of their iterative
nature, numerical solutions generally are much slower than the corresponding
closed-form solution; in fact, so much so that for most uses, we are not interested

18.

W. J. Olsen, "On the Real Time Inverse Kinematics Solution for the General Six Degree of Freedom
Manipulator," MS Thesis, University of Wisconsin - Madison, Madison WI, 1994.

Chapter 6: Position Analysis (Numeric)

18

in the numerical approach to solution of kinematics."19


Olsens work was done specifically on a Cincinnati-Milacron model T3-726 robotic
manipulator; however, he used the iterative solution explained here so that his software would fit
any serial, mobility six robotic arm without reprogramming, solely by changing data.
His tests were done by starting from a variety of locations, scattered throughout the
workspace, and giving commands to move to other specified locations, also chosen haphazardly.
In each case he recorded the accuracy with which this command displacement was achieved after
one, then two, then three iterations. He then plotted the accuracy of the resulting displacement
versus the total distance of the requested displacement after each iteration of the algorithm. The
results of these experiments are shown in the log-log plot of Figure 6.1.

Figure 6.1

Displacement Accuracy as a Function of Algorithm Iterations and Point to


Point Displacement Distances. (Copied with permission from Olsen.)

The figure shows the expected scatter that comes from experimental work. It also shows
scatter coming from the differences in the quality index (conditioning of the equations) in
different parts of the workspace. However, it shows amazing consistency in spite of very large
differences in the displacement distances requested.
Figure 6.2, also taken from Olsen, shows the same information as Figure 6.1, but with the
data curve-fit to reduce the scatter and make the graph easier to interpret. The three shaded
boundaries show limitations coming from the application itself. The vertical shaded boundary
19.

J. J. Craig, Introduction to Robotics Mechanics and Control, 2nd. ed., Addison-Wesley Publishing Company,
Inc., Cambridge MA, 1989.

Chapter 6: Position Analysis (Numeric)

19

on the right shows the full reach of the robot workspace. The robot physically cannot move further than this boundary. The horizontal shaded boundary near the bottom of the figure shows the
smallest errors discernible by the sensors on the robot. This boundary represents the positioning
accuracy limit of the robot actuators. The third (slanted) boundary shows an accuracy limit
which comes from the design of the controller on that robot and the fact that it interpolates
instructions in joint coordinates rather than in Cartesian coordinates. This boundary was
established experimentally and the shaded boundary shows the best case data; the dashed line
represents the worst case data for this type of error. Overall, these boundaries set some limits on
what accuracy can reasonably be expected or is meaningful for this application.

Figure 6.2

Displacement Accuracy with Application Limits. (Copied with permission from


Olsen.)

Overall, the conclusion strongly suggested by Figure 6.2 is that, even though the algorithm is
iterative, the application limitations are such that it seldom (if ever) makes sense to iterate!
When we consider the larger context in which the algorithm will be used, we dont usually need
(or even want) an algorithm which takes 30-inch displacement increments. In analysis
applications, we usually want results printed at much smaller intervals. In a control system, the
controller and its algorithm usually requires much smaller increments. Thus, in general, our
"iterative" algorithm will usually not need to iterate to achieve an appropriate accuracy for the
situation.
Olsen also addressed the question of computational speed, and whether this provides a real
Chapter 6: Position Analysis (Numeric)

20

limitation on the use of the numerical solution algorithm. He quotes Craig as follows:
"In many path control schemes ... it is necessary to calculate the inverse
kinematics of a manipulator at fairly high rates, for example 30 Hz or faster.
Therefore, computational efficiency is an issue. These speed requirements rule
out the use of numerical solution techniques which are iterative in nature, and for
this reason, we have not considered them here."20
Using Craigs figure of 30 Hz as a guide, Olsen timed his own (iterative) software running on
different microprocessors with different clock speeds. Using a computer based on the Intel 386
chip with a clock speed of 20 MHz, his algorithm ran at 67 Hz for a single iteration per position,
or 34 Hz if two iterations per position were used. Using the same code on a computer with an
Intel 486 chip and a clock speed of 66 MHz, these rates became 620 Hz for a single iteration per
position, and 310 Hz for two iterations per position. We note that these were all done on
computer chips of the early 1990s and all are faster than the rate cited by Craig at that time;
some are more than an order of magnitude faster.
Though Olsens experiments and conclusions are all based on a specific application, the
control of a specific manipulator through the performance of a specific task, his arguments and
his conclusions are applicable to an amazing range of problems. Critics of the iterative approach
to kinematic analysis have claimed for many years that such a method suffers from problems in
convergence and is too inefficient for effective engineering usage. Yet criticisms always come
from those who have no first-hand experience and no counter-examples are offered with data
comparable to Olsens study. Software operating on desktop microprocessor systems today
show that iteration can be a very effective method, and operates far faster than the analyst can
read or digest the results.

20.

Ibid.

Chapter 6: Position Analysis (Numeric)

21

Problems
6.1

Continue from the results of Problem 5.1 to find the following:


a) Form the Jacobian matrix as a function of .
b) Rearrange the rows and columns of the Jacobian matrix and identify 11 and 12.
c) Find the determinant and inverse of 11.

Chapter 6: Position Analysis (Numeric)

22

Chapter 7: Velocity Analysis


7.1

Introduction

In Chapter 4 we defined position as the term which tells "where" an item is. Depending on what
the "item" is, we found it convenient to use a Cartesian coordinate system as a global reference
and homogeneous coordinates to define the position of a point, and the (44) transformation
matrix T0i to represent the position of a rigid body. The position of a mechanical system may be
described by a vector of generalized coordinates equal in number to the mobility of the
system. However, since it is sometimes possible that the bodies can be assembled in more than
one way for identical positions of the generalized coordinates, we chose to represent the position
of a system by a vector which explicitly includes all of the joint variables.
In Chapter 5 we defined displacement as the change in position of a point, rigid body, joint
variable, or system. We then showed how the concept of small displacement led naturally to the
derivative of position. We also found very powerful derivative operator matrices, Q j and D j , to
make the process of numerical differentiation both easy and precise. However, a quick review
shows that derivatives were always taken with respect to a changing joint variable value since
those are the variables on which the joint transformation matrices explicitly depend. Little was
said about the fact that, in most mechanical systems, many joint variables change simultaneously.
If we are to study motion, however, perhaps we should first identify what is meant by the
word, motion. A motion is not just any haphazard set of positions; a motion is a systematic or
orderly sequence of positions of a point, body, or system which results in nature in accordance
with the laws of physics.
From the beginning we have recognized this simultaneous change of many variables and we
carefully identified the mobility, f, of our system as its number of independent degrees of
freedom. We even chose a particular subset of the n joint variables j , the generalized
coordinates , which we agreed are to represent these independent variables. Still, we said little
about the ordering or about the relative sizes of changes in these generalized coordinates.
Ultimately, we must also ask where time enters into our problem or, for that matter, what is
the definition and meaning of time? This is a deep question which has challenged philosophers
throughout history. However, for the purposes of this text, we say that time is defined by the
symbol t and is the ultimate independent variable by which the ordering of events in nature is
enumerated. It is a continuous scalar variable which is always positive and increases as events
occur. Time is physically measured by a clock and, in mechanical system dynamics, usually has
units of seconds.

Chapter 7: Velocity Analysis

7.2

Definition of Velocity

The term velocity is defined as the time rate of change of position. Just as the positions of
different items have different sets of coordinates, so too do their velocities.
The velocity of a point, for example, is the time rate of change of the position of that point.
Since we find it convenient to use homogeneous coordinates to express the position of a point,
we define the absolute velocity of a point by taking the time derivative of Eq. (4.8)
dR x
dt
y
dR
dR
!
R=
= dt
dt z
dR
dt

(7.1)

where R x , R y , R z are the point's global Cartesian coordinates.


The velocity of body i is given by
dT
T!0i = 0 i
dt

(7.2)

which may require the time derivative of its Ball vectors or screw coordinates. More will be said
on this shortly.
The (relative) velocities of joint variables are found from the time derivative of Eq. (4.2)

!1
!

! =
= 2
dt "
!
n

(7.3)

where those of any individual joint are given by the time derivatives of the individual variables of
that joint.

!1j
2
d j !j
!
j =
=
dt "
f
!j j

j = 1, 2, , n

(7.4)

The velocity of a total system is fully defined by its vector of generalized velocities which are

Chapter 7: Velocity Analysis

the time derivatives of the vector of generalized coordinates.1 From Eq. (4.1) we find

!1

d ! 2
!
=
=
dt "

! f

(7.5)

Of course, for each of these velocity quantities we will need good operational strategies for
numerically finding the indicated derivatives.2 These are the subject of this chapter. Before
going into details, however, we should recognize that, ultimately, time is the underlying
independent variable for all. The f generalized coordinates, both the NS specified generalized
coordinates and the NF free generalized coordinates, are explicit functions of time. The SGC
motions are specified by the analyst directly, and the FGC motions will be found by the laws of
mathematics and physics; but all are explicit functions of time. Finding these becomes the
primary topic of Chapters 12, 13, and 14.

= (t )

(7.6)

Once these are known, the motions of the dependent joint variables are dictated by the
motions of the generalized coordinates.

= ( )

(7.7)

They are explicit functions of the generalized coordinates and, through these, they become
implicit functions of time. Similarly, the motions of bodies and points are explicit functions of
the generalized coordinates and only implicitly, through them, become functions of time. It is
important to understand this hierarchy as we proceed.

7.3

First Kinematic Derivatives of Joint Variables

Owing to this hierarchy of dependency, let us first find derivatives of the dependent joint
variables with respect to the generalized coordinates, on which they depend explicitly. We call
these first kinematic derivatives, and we use a prime notation with subscripts as the symbolism.3

j ,k =

j = 1, 2, , n

k = 1, 2, , f

(7.8)

1.

It is true that ! of Eq. (7.3) also fully defines the velocity of the system, and may better fit as the system
velocity definition since we chose to represent the system position. This is not necessary, however, since
there is usually no ambiguity in velocities coming from multiple closures. We will have need for both.

2.

The methods of subsequent sections were first published in: J.Denavit, R.S.Hartenberg, R.Razi, and
J.J.Uicker,Jr., "Velocity, Acceleration, and Static-Force Analysis of Spatial Linkages," Journal of Applied
Mechanics, ASME Transactions, 1965, pp. 903-910.

3.

For a joint which has more than a single joint variable, a superscript may also be required.

Chapter 7: Velocity Analysis

How will we find these first kinematic derivatives? Well, if we differentiate the kinematic
loop equations with respect to generalized coordinate number k , we recognize that the loops
depend directly on the joint variables and we write
n
T00
T
= 00 j ,k = 0
k j =1 j

Next, using Eq. (5.31), we introduce the D j derivative operator matrices to get4
i = 1, 2, , NL
k = 1, 2, , f

L ( i, j ) D T

j ,k = 0

j 00

j =1

Next, we recognize that T00 = I and we eliminate redundancy by replacing each D j matrix by
its equivalent screw coordinates
i = 1, 2, , NL
k = 1, 2, , f

L ( i, j ) D
j

j ,k

=0

j =1

with an additional constraint equation of the form

2 1j j1,k + 2 j2 j,2k + 2 3j j,3k + 2 j4 j,4k = 0

k = 1, 2, , f

(7.9)

k = 1, 2, , f

(7.10)

for each spheric joint in the system, and another

2 j4 j,4k + 2 5j j,5k + 2 6j j,6k + 2 7j j,7k = 0

for each open joint in the system, a total of NC constraint equations, which come from taking
derivatives of Eqs. (3.48) and (3.55) with respect to generalized coordinate k .
Since these equations are of the same form as Eqs. (6.4), from Eq. (6.7) we can now write
that

J = 0

(7.11)

where J is the same [(6NL+NC)xn] matrix which resulted from the numeric iteration process of
Section 6.5, and is the (nxf) matrix of first kinematic derivatives j ,k defined in Eq. (7.8).
Reviewing the numerical iteration process of Section 6.5, we recall that the modified pivoting
scheme used has reordered the joint variables so that all dependent joint variables are numbered
first, followed next by the FGC variables, and finally by the SGC variables. Recognizing that
both the FGC and the SGC variables have been accepted as the generalized coordinates , we
4.

In the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for example,
then
D j j , k = D j j, k + D j j, k + D j j, k + D j j, k
1

Chapter 7: Velocity Analysis

see that they are independent of each other by definition. Therefore the matrix must be of the
form
1

1

2

n f

1
=

"

1
2

2
2

n f

"

f
2

n f
f dep
=
I

"

(7.12)

is an [(n-f)xf] submatrix of the dependent first kinematic derivative values.


where dep

Once we see this form for we return to Eq. (7.11) and subdivide it into compatible size
submatrices.

J dep


dep
J ind = 0
I

But, remembering Eq. (6.10), we see that this is the same subdivision which resulted from the
modified Gauss-Jordan elimination process of Section 6.5. Reverting to the notation of Eq.
(6.10) we have
J 11
J
21


J 12 J 13 dep
I =0

J 22 J 23

and, after the elimination process is complete, these equations have been reduced to the form
I J 111J 12

0
0


J 111J 13 dep
0

I =0

which has for its solution


= J 111J 12 J 111J 13
dep

Chapter 7: Velocity Analysis

(7.13)

Thus we see that there is absolutely no calculation left to be done. Once the numerical
iteration process of Section 6.5 has converged to a solution, the matrix of first kinematic
derivatives of Eq. (7.12) can be copied directly from the top right corner of the Gauss-Jordan row
reduced form of the J matrix, requiring only negation and augmentation by an (fxf) identity
matrix. This is a very useful and "free" by-product of our numerical iteration.
These kinematic derivatives are not velocities, even though they are sometimes referred to in
this manner. They are rates of change of other (dependent) joint variables with respect to
changes of the generalized coordinates. Time is not included in them and they typically have
units such as radians per radian. They represent totally kinematic information and are functions
of alone. They are very important, however, and will arise frequently in our coming work.

Example 7.1
To illustrate the process, let us continue the analysis of the Hooke universal joint started in
Example 4.1. From that example we have already found solutions for the positions of all joint
variables and the transformation matrices of the various bodies. From those we find the
derivative operator matrices for each of the four joints. After a bit of algebra, these are5
0
0
DA =
0

cos

DB = 1 sin2 sin2

cos sin
1 sin2 sin2

cos sin
DC =
cos

5.

0
0 1 0
1 0 h

0 0 0
0

cos

cos sin

1 sin sin

1 sin sin

cos sin
0
sin sin
0

cos
sin sin
0
0

h cos

1 sin sin

h cos sin

h sin sin

Here, entries are converted to functions of the generalized coordinates alone by use of the position solutions.

Chapter 7: Velocity Analysis

0
sin
DD =
0

sin

cos

cos
0

0
0

h sin

h cos

Next we formulate the terms of Eq. (7.11).

h
1

h cos
1 sin2 sin2

h cos sin

0
0

h sin sin
sin sin

cos sin
1 sin2 sin2
cos
1 sin2 sin2

cos
cos sin

h sin

0
A ,1
h cos
B ,1
cos = 0
C ,1

0
D ,1

sin

Recognizing that the first and third rows of coefficients are simply h multiples of the sixth
and negative fourth rows, respectively, and that, since = 1 = D , we have D ,1 = 1 . Therefore,
the first three equations can be dropped and those remaining can be rearranged into the form

0
cos sin
1 sin2 sin2
cos
1 sin2 sin2

sin sin
A ,1 cos
= 0
cos

B,1
C ,1 sin

cos sin

The resulting solution for the first kinematic derivatives is

cos

1 sin2 sin2
A ,1
sin cos
B,1 = 1 sin2 sin2
C ,1
sin cos sin

D,1 1 sin2 sin2

Chapter 7: Velocity Analysis

It can also be noted that the quality index, from Section 6.8, is

Q = det ( J 11 ) = 1 sin2 sin2


and that, for = 60 , its value remains in the range ( 0.50 Q 1.00 ) ; thus, there should be no
difficulty in the operation of the device or in the numerical evaluation of these (or other)
kinematic derivatives.

7.4

Velocities of Joint Variables

The (relative) velocities of the joint variables, as shown by Eq. (7.3) can be found in any of three
ways. If we wish to do hand calculations, the expressions found for the positions of the joint
variables can be directly differentiated analytically. This approach, however, is highly
susceptible to human error and is not easily adapted to computer solution. The second approach
is to differentiate the loop closure equations with respect to time, as we will see later. The third
approach is to take advantage of the first kinematic derivatives. Remembering the hierarchy of
dependencies, we write

!j =

d j
dt

f
j d k
= j ,k! k
k =1 k dt
k =1
f

j = 1, 2, , n (7.14)

which can be written in matrix form as

! = !

(7.15)

Here we see that all dependent joint velocities vary linearly with the generalized velocities.
They are nonlinear functions of , however, through the kinematic derivatives.
As said before, we can differentiate the loop closure equations with respect to time. From
Eq. (5.31) we get
n

L ( i, j ) D T

!j = 0

j 00

i = 1, 2, , NL

j =1

After recognizing that T00 = I , we eliminate redundancy by replacing each D j matrix by its
equivalent screw coordinates6

6.

Again, in the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for
example, then
1 1
2 2
3 3
4 4
D j !j = D j !j + D j !j + D j !j + D j !j

Chapter 7: Velocity Analysis

L ( i, j ) D !
j

=0

i = 1, 2, , NL

(7.16)

j =1

with an additional constraint equations of the form

2 1j!1j,k + 2 j2!j2,k + 2 3j !3j,k + 2 j4!j4,k = 0


for each spheric joint in the system, and another of the form

2 j4!j4,k + 2 5j !5j,k + 2 6j !6j,k + 2 7j !7j,k = 0


for each open joint in the system, a total of NC constraint equations, which come from taking
derivatives of Eqs. (3.48) and (3.55) with respect to time.
Then, just as with kinematic derivatives, from Eq. (6.7) we see that

J ! = 0

(7.17)

Recognizing that the highest numbered f of these joint variable velocities are the generalized
coordinate velocities, these equations can be written as
J 11
J
21

J 12 J 13 !dep
=0
J 22 J 23 !

and can then be solved as was Eq. (7.11).


!
!dep = J 111J 12 J 111J 13 ! = dep

(7.18)

However, this is identical with Eq. (7.15) and shows no new advantages.

Example 7.2
Let us continue the Hooke universal joint of Example 7.1. If the input shaft is driven at a rate of
! = ! , then let us find the relative velocities of the other joint variables. These are given
D

directly by Eq. (7.15) and the first kinematic derivatives found in Example 7.1.
cos

1 sin2 sin2 !

!A
sin

cos

!
!

B
2
2
! = ! = 1 sin sin
C
! sin cos sin
D 1 sin2 sin2 !

Chapter 7: Velocity Analysis

7.5

First Kinematic Derivatives of Body Positions

As with the joint variables, before we find the time derivative of the position of a body, it is wise
to consider the hierarchy of dependencies involved. We recall that the position of body number i
with respect to ground is described by its transformation matrix T0i . Since this is made up of a
series of products shape matrices and the joint matrices j ( j ) , the only variables in the T0i
matrix are the joint variables j . These joint variables are functions of the generalized coordinates k which, in turn, are functions of time, t.
Therefore, let us take derivatives with respect to each level of the hierarchy in turn. From Eq.
(5.31), we have
i = 1, 2, ,

T0i
= P ( i, j ) D jT0 i
j

j = 1, 2, , n

Next, let us find the derivative of T0i with respect to a generalized coordinate k . Since
there may be several joints on the path from ground to body i,
i = 1, 2, ,

n
T0i
T j
= 0i
k j =1 j k

k = 1, 2, , f

However, in view of the previous equation and Eq. (7.8), this becomes
i = 1, 2, ,

n
T0i
= P ( i, j ) D jT0i j ,k
k j =1

k = 1, 2, , f

This particular form arises so often in coming developments that we find it convenient to
define another symbol as follows:7
i = 1, 2, ,

Wi ,k = P ( i, j ) D j j ,k

k = 1, 2, , f

j =1

(7.19)

so that the previous equation reduces to


i = 1, 2, ,

T0i
= Wi ,k T0i
k

k = 1, 2, , f

(7.20)

Studying the form of Eq. (7.19), we see that it is a weighted sum of D j operator matrices,
weighted by the relative rates of change of each joint variable along the path to body i with
respect to the change of generalized coordinate k . One immediate conclusion is that, since
7.

In the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for example,
then
D j j, k = D j j, k + D j j, k + D j j, k + D j j, k
1

Chapter 7: Velocity Analysis

10

P ( i, j ) and j ,k are both scalars, the screw coordinate pattern of the D j matrices is also preserved in the Wi ,k operator matrix.
The six independent elements of Wi ,k define the instantaneous helical motion of body i with
respect to change of one generalized coordinate, k . Note that the six elements can be interpreted geometrically as an instantaneous screw axis, uniquely oriented and located in the global
coordinate system as discussed in Section 5.6, and scaled in size to show the rate of the helical
movement of body i with respect to change in generalized coordinate k .
Note how, in Eq. (7.19), Wi ,k is found by summing the contributions of all the relative rates
of change of the joint variables along the path from ground to body i. However, once these are
summed, we have the absolute rate of change of the position of body i with respect to ground.
Note also that Eq. (7.19) answers our earlier question of how several joint variables, which are
changing simultaneously, combine to give the full motion of a particular body.

Example 7.3
Let us now continue the analysis of the Hooke universal joint of Example 4.1 and Example
7.1, and find the kinematic derivative operator matrices Wi ,k for each of its bodies. From
Example 7.1 we have

cos

DB = 1 sin2 sin2

cos sin
1 sin2 sin2

cos sin
DC =
cos

0 0 0 0
0 0 1 0

DA =
0 1 0 h

0 0 0 0
cos
cos sin

1 sin2 sin2

1 sin2 sin2

cos sin

cos

sin sin

sin sin

Chapter 7: Velocity Analysis

h cos

1 sin2 sin2

h cos sin

h sin sin

11

0
sin
DD =
0

sin

cos

cos

h sin

h cos

and
cos

1 sin2 sin2
A ,1
sin cos
B,1 = 1 sin2 sin2
C ,1
sin cos sin

D,1 1 sin2 sin2

With these, we use Eq. (7.19) to find


0
0

0
0

W11, = DA A ,1 =
cos
0
1 sin2 sin2

0
0

h cos

1 sin2 sin2

cos
1 sin2 sin2
0
0

sin cos2
sin cos sin cos hsin cos2
0

1 sin2 sin2
1 sin2 sin2
1 sin2 sin2

sin cos2
cos
0
0

W21, = W11, + DBB,1 = 1 sin2 sin2


1 sin2 sin2

sin cos sin cos

cos
hcos
0

2
2
2
2
2
2
1 sin sin
1 sin sin
1 sin sin

0
0
0
0
0
sin
W3,1 = W2,1 + DCC ,1 =
0

sin

cos

cos

h sin
0
h cos

W4,1 = W3,1 + DD D ,1 = 0

Chapter 7: Velocity Analysis

12

Note that W4,1 becoming zero confirms that no point of the frame, body 4, moves as the input
shaft is turned.

7.6

Velocities of Bodies

In Eq. (7.2) we defined the velocity of a body to be the time derivative of its transformation
matrix with respect to the global frame.
dT
T!0i = 0 i
dt

i = 1, 2, ,

From Eq. (5.31) we have


T0i ( j )
j

= P ( i, j ) D jT0i ( j )

i = 1, 2, ,
j = 1, 2, , n

Therefore, employing chain rule differentiation, we write


n
T d j
T!0i = 0i
j =1 j dt

i = 1, 2, , (7.21)

= P ( i, j ) D jT0i!j
j =1

Following the lead of the last section, we now define yet another derivative operator matrix8
n

i = P ( i, j ) D j!j

i = 1, 2, , (7.22)

T!0i = iT0i

i = 1, 2, , (7.23)

j =1

from which we can write

By substituting Eq. (7.14) into Eq. (7.22) we find


n

j =1

k =1

i = P ( i, j ) D j j ,k! k

i = 1, 2, ,

which can be rearranged to read

8.

Again, in the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for
example, then
1 1
2 2
3 3
4 4
D j !j , k = D j !j , k + D j !j , k + D j !j , k + D j !j , k

Chapter 7: Velocity Analysis

13

i = P ( i, j ) D j j , k! k

i = 1, 2, ,

j =1 k =1

and, comparing this with Eq. (7.19), we find that


f

i = Wi ,k! k

i = 1, 2, , (7.24)

k =1

This latest formula is simply another way of computing the i matrices for the various
bodies. Whether Eq. (7.22) or (7.24) should be used depends totally on convenience.

Example 7.4
Continuing Example 7.3, the i matrices for each of the bodies of a Hooke universal shaft
coupling are easily found by Eq. (7.24)
0
0

0
0

1 = W11, ! =
cos
0
!
1 sin2 sin2

0
0

0
cos
!
1 sin2 sin2
0
0

h cos

1 sin2 sin2

sin cos2
sin cos sin cos
h sin cos2
!
!
0

2
2
2
2
2
2
1

sin

sin

sin

sin

sin

sin

sin cos
cos
!
0
!
0

2
2
2
2
2 = W21, ! = 1 sin sin
1 sin sin

sin cos sin cos

cos
hcos
!
!
0
!

2
2
2
2
2
2
1 sin sin
1 sin sin
1 sin sin

0
0
0
0
0
sin !
0
h sin !

sin !

0
cos !
0

3 = W3,1! =

0
cos !
0
h cos !

0
0
0
0

4 = W4,1! = 0

Chapter 7: Velocity Analysis

14

7.7

First Kinematic Derivatives of Point Positions

We recall from Eq. (4.9) that the global position of a point attached to body i is given by
Ri = T0i ri

i = 1, 2, ,

Now, since the point is attached to body i, its local coordinates ri are constants (assuming
that body i remains rigid). The transformation matrix T0i for body i, however, is a function of the
joint variables j along its path and these are functions of the generalized coordinates k which,
in turn, are functions of time.
Derivatives of our point position with respect to a single joint variable of its path are found
by Eq. (5.31). In this section we wish to find the derivative of the global position of our point
with respect to the generalized coordinate k . Using Eq. (7.20) to differentiate the above
position equation and remembering that ri is constant, we get
Ri,k =

7.8

Ri
= Wi ,k T0i ri = Wi , k Ri
k

i = 1, 2, ,
k = 1, 2, , f

(7.25)

Velocities of Points

Equation (7.1) defines the velocity of a point as the time derivative of its global position. Using
chain rule differentiation we get
f
f
dR
R d k
R!i = i = i
= Ri,k! k
dt
k =1 k dt
k =1

i = 1, 2, ,

Then by Eq. (7.25) this becomes


f

R!i = Wi ,k Ri! k

i = 1, 2, , (7.26)

R!i = i Ri

i = 1, 2, , (7.27)

k =1

and, according to Eq. (7.24),

Thus we see that the same derivative operator matrices found for taking either kinematic or
time derivatives of body positions are also used for differentiating point positions.

Chapter 7: Velocity Analysis

15

Problems
7-1
a)
b)
c)
d)

Continue from the results of Problem 6.1 as follows:


Form the matrix of first kinematic derivatives of the joint variables.
Form the matrix of first time derivatives of the joint variables.
Form the first kinematic derivative operator matrix Wi,k for each body.
Form the velocity operator matrix i for each body.

Chapter 7: Velocity Analysis

16

Chapter 8: Acceleration Analysis


8.1

Definition of Acceleration

The term acceleration is defined as the time rate of change of velocity. The acceleration of a
point, for example, is the time rate of change of the velocity of that point. Since we find it
convenient to use homogeneous coordinates to express the position and velocity of a point, we
define the absolute acceleration of a point by taking the time derivative of its velocity from Eq.
(7.1).
d 2Rx
dt 2
2 y
d R
2
d R 2
!!
R = 2 = dt
2 z
dt
d R
dt 2

(8.1)

where R x , R y , R z are the point's global Cartesian coordinates.


Consistent with our description of the velocity of body i in Eq. (7.2), the acceleration of body
i is given by
d 2T0 i
T!!0i =
dt 2

i = 1, 2, ,

(8.2)

which may require the second time derivative of its screw coordinates. More will be said on this
shortly.
The (relative) accelerations of joint variables are the time derivatives of their velocities.
From Eq. (7.3) we have

!!1

d 2 !!2
!!
= 2 =
$
dt
!!
n

(8.3)

where the accelerations within any individual joint are given by the second time derivatives of
the individual motion variables of that joint. That is

Chapter 8: Acceleration Analysis

!!1j
2
d 2 j !!j
!!
j = 2 =
$
dt
f
!!j j

(8.4)

The acceleration of a complete mechanical system is defined by its vector of generalized


accelerations which are the time derivatives of the vector of generalized velocities.1 From Eq.
(7.5) we find

!!1

d !!2
!!
= 2 =
$
dt

!! f
2

(8.5)

Of course, to solve acceleration problems by hand calculation, we can proceed by directly


differentiating with respect to time the velocity equations found in Chapter 7. However,
recognizing that we are seeking a general numerical method suited to digital computation, we
recall from Section 7.2 that kinematic quantities are found as functions of the joint variables
which are functions of the generalized coordinates , and that these, in turn, are functions of
time.2

8.2

Derivatives of the Qj Operator Matrices

Since we will choose to use chain rule differentiation, we first seek the derivatives of our Q j
derivative operator matrices. Reviewing Section 5.4, we recall that several of the Q j matrices
contain only zeroes and ones since their instantaneous screw axes and Ball vectors remain
constant in the coordinate system of the body preceding the joint. However, for some of the
multi-freedom joints the instantaneous screw axes or Ball vectors are not constant, but vary with
change of the joint variables. Thus we need to seek out formulae for derivatives of each of the
Qj operators with respect to each of the joint variables on which they depend. In general,
remembering that a joint j may have more than one joint variable, these are of the form

1.

It is true that !! of Eq. (8.3) also fully defines the accelerations of a mechanical system, and may be better fit as
the system acceleration definition since we defined to represent the system position. This is not necessary,
however, since there is no ambiguity in accelerations coming from multiple closures. We will have need for
both.

2.

The methods of subsequent Sections were first published as: J. Denavit, R. S. Hartenberg, R. Razi, and J. J.
Uicker, Jr., "Velocity, Acceleration, and Static-Force Analysis of Spatial Linkages," Journal of Applied
Mechanics, ASME Transactions, 1965, pp. 903-910.

Chapter 8: Acceleration Analysis

Qij

j = 1, 2, , n

= Qji ,h

jh

i, h = 1, 2, , f j

(8.6)

The derivative of Q ij with respect to a generalized coordinate k , therefore, is given by

Q ij

fj

= Qj
i ,h

h
j ,k

h =1

i = 1, 2, , f j
j = 1, 2, , n

(8.7)

k = 1, 2, , f

However, as we have done above, we will often write this with the reduced symbolism

Q ij
k

i = 1, 2, , f j
i

= Qj j ,k

j = 1, 2, , n
k = 1, 2, , f

The derivative of Q ij with respect to time is

dQ ij
dt

fj

i = 1, 2, , f j

h =1

j = 1, 2, , n

= Qji ,h!hj

(8.8)

Again, in the interest of brevity we will often write this in the reduced symbolism

dQ ij
dt

= Qji!j

i = 1, 2, , f j
j = 1, 2, , n

Since the form of Qji ,h depends on the type of joint in question, we must seek these out
separately for each of the joint types.

8.2.1

Revolute Joint:

A revolute joint has only one joint variable and its Q j consists entirely of zeroes and ones. Thus,

Qj = 0

8.2.2

(8.9)

Prismatic Joint:

A prismatic joint also has only one joint variable and its Q j consists entirely of zeroes and ones.
Thus,

Qj = 0

Chapter 8: Acceleration Analysis

(8.10)

8.2.3

Helical (Screw) Joint:

A helical joint also has only one joint variable and its Q j also consists entirely of constants.
Thus,

Qj = 0

8.2.4

(8.11)

Cylindric Joint:

A cylindric joint has two joint variables, and both of its Q ij operator matrices consist entirely of
zeroes and ones. Thus,

Qj1,1 = Qj1,2 = Qj2,1 = Qj2,2 = 0

8.2.5

(8.12)

Spheric Joint:

A spheric joint has its four Euler parameters as joint variables and the forms of the four Q ij
operator matrices are given in Eqs. (5.37). Differentiating these we find

2
0
1,1
Qj =
0

0
0
2
2,1
Qj =
0

0
0
0
3,1
Qj =
2

0
0
0
4,1
Qj =
0

0 0 0
0

2
2 0 0
1,2
Qj =
0
0 2 0

0 0 0
0
2 0 0
2

0
0 0 0
2,2
Qj =
0
0 0 0

0 0 0
0
0 2 0
0

0
0 0 0
3,2
Qj =
0
0 0 0

0 0 0
0
0 0 0
0

0
0 2 0
4,2
Qj =
2
2 0 0

0 0 0
0

2 0 0
0 0 2 0
0 0 0 0

0 2 0
0 0 0
0 0 0 0
1,3
1,4 0

Qj =
Qj =
2 0 0 0
0 2 0 0
0 0 0

0 0 0
0 0 0 0
0 0 0 0
0 0 0
0 0 0 0
0 0 2 0

0 0 0
2 0 0
0 0 2 0
2,3
2,4 0

Qj =
Qj =
0 2 0 0
2 0 0 0
0 2 0

0 0 0
0 0 0 0
0 0 0 0
0 0 0
2 0 0 0
0 2 0 0

0 2 0
0 2 0 0
0 0 0
3,3
3,4 2

Qj =
Qj =
0 0 2 0
0 0 0 0
2 0 0

0 0 0
0 0 0 0
0 0 0 0
0 2 0
0 2 0 0
2 0 0 0

2 0 0
0 0 0
2 0 0 0
4,3
4,4 0

Qj =
Qj =
0 0 0 0
0 0 2 0
0 0 0

0 0 0
0 0 0 0
0 0 0 0
(8.13)
In addition, each spheric joint has a constraint equation relating the kinematic derivatives of
its Euler parameters with respect to generalized coordinates h and k .

2 1j j,1h,k + 2 j2 j,2h,k + 2 3j j,3h,k + 2 j4 j,4h,k = 2 j1,h j1,k 2 j,2h j,2k 2 j,3h j,3k 2 j,4h j,4k

Chapter 8: Acceleration Analysis

(8.14)

8.2.6

Flat Joint:

A flat joint has three joint variables and the forms of the three Q ij operator matrices are given in
Eqs. (5.38). Differentiating these gives

Qj1,1 = Qj1,2 = Qj1,3 = 0


0
0
Qj3,1 =
0

8.2.7

0
0 0 1
0 0 0

0 0 0

Qj 2,1 = Qj 2,2 = Qj 2,3 = 0

0 0

Qj3,2

0
0
=
0

0 0 1
0 0 0
0 0 0

0 0 0

Qj3,3 = 0

(8.15)

Rigid Joint:

A rigid joint has no joint variables and no Q j operator matrices. Therefore, there are no Qj
matrices.

8.2.8

Open Joint:

An open joint has seven joint variables and the forms of the seven Q ij operator matrices are given
in Eqs. (5.39). Differentiating these gives

Qj1,1 = Qj1,2 = Qj1,3 = Qj1,4 = Qj1,5 = Qj1,6 = Qj1,7 = 0


Qj 2,1 = Qj 2,2 = Qj 2,3 = Qj 2,4 = Qj 2,5 = Qj 2,6 = Qj 2,7 = 0
Qj3,1 = Qj3,2 = Qj3,3 = Qj3,4 = Qj3,5 = Qj3,6 = Qj3,7 = 0
Qj 4,1 = Qj4,2 = Qj 4,3 = 0

Qj 4,4

2
0
=
0

0 0 0
2 0 0
0 2 0

0 0 0

Qj5,4

0 2
2 0
=
0 0

0 0

0 0
0 0
0 0

0 0

Qj 4,5

0
2
=
0

Qj5,6

2
0
=
0

Chapter 8: Acceleration Analysis

2 0 0
0

0
0 0 0
4,6
Qj =
2
0 0 0

0 0 0
0
5,1
5,2
5,3
Qj = Qj = Qj = 0
0 0 0
2 0 0
0 2 0

0 0 0

Qj5,7

0 2 0
0 0 0
0 0 0

0 0 0

0 0
0 0
=
0 2

0 0

0 0
2 0
0 0

0 0

0
0
4,7
Qj =
0

0
0 2 0
2 0 0

0 0 0

0
0
Qj5,8 =
2

0 2 0
0 0 0
0 0 0

0 0 0

Qj6,1 = Qj6,2 = Qj6,3 = 0

Qj6,4

0
0
=
2

0 2 0
0 0 0
0 0 0

0 0 0

Qj7,4

0 0
0 0
=
0 2

0 0

0 0
2 0
0 0

0 0

Qj6,5

0
0
=
0

0
2

0
0 2 0
6,6

Qj =
0
2 0 0

0 0 0
0
Qj7,1 = Qj7,2 = Qj7,3 = 0

Qj7,5

0
0
=
2

0 2 0
0 0 0
0 0 0

0 0 0

0 0 0
2 0 0
0 2 0

0 0 0

0
2
=
0

Qj7,6

2 0 0
0 0 0
0 0 0

0 0 0

0 2
2 0
6,7

Qj =
0 0

0 0
2
0
Qj7,7 =
0

0 0
0 0
0 0

0 0

0 0 0
2 0 0
0 2 0

0 0 0
(8.16)

In addition, each open joint has a constraint equation relating the kinematic derivatives of its
Euler parameters with respect to generalized coordinates h and k .

2 j4 j,h4,k + 2 5j j,5h,k + 2 6j j ,h6,k + 2 j7 j ,h7,k = 2 j ,4h j,4k 2 j ,5h j ,5k 2 j,6h j ,6k 2 j ,7h j ,7k

8.2.9

(8.17)

Parallel-Axis Gear Joint:

A parallel-axis gear joint has three joint variables and the forms of the three Q ij operator matrices
are given in Eqs. (5.40). Differentiating these we find

11
,
j

Q =

R j R j + Rj + j2
Rj

0
0

0 0 cos 1j

0 0 sin 1j

0 0
0
0 0
0

Qj1,2

R j 0
=
Rj 0

2
sgn ( F ) R j + Rj + j
0
2
2
R j + Rj + j2 ( R j + R ) cos j 0

0
2

Qj 2,1 =

Qj

2,2

sin 1j

0 0 cos 1j

0 0
0
0 0
0
0 0

0 0 cos 1j

0 0 sin 1j

0 0
0
0 0
0

sgn ( F ) R j + Rj + 2j 2 R j + Rj + 2j ( R j + R ) cos j
3

R j + Rj + j2 ( R j + R ) cos j

Qj 2,3 = 0

Chapter 8: Acceleration Analysis

Qj1,3 = 0

2 3/ 2

Qj3,1 = Qj3,2 = Qj3,3 = 0

0
0

sin 1j

0 0 cos 1j

0 0
0
0 0
0
0 0

(8.18)

8.2.10 Involute Rack and Pinion Joint:


An involute rack and pinion joint has three joint variables and the forms of the three Q ij operator
matrices are given in Eqs. (5.41). Differentiating these we find
0

1 0
Qj1,1 =
Rj 0

Qj 2,1

0 0 0
0 0 1
0 0 0

0 0 0

0
sgn ( F ) tan j 0

=
0
Rj

0
tan j 0

Qj3,1 =
Rj 0

Qj1,2

0 0 0
0 0 1
0 0 0

0 0 0

0
0 0 1
0 0 0

0 0 0
0 0

Qj3,2

1 0
=
Rj 0

Qj 2,2

0 0 1
0 0 0
0 0 0

0 0 0

Qj1,3 = 0

0
sgn ( F ) tan j 0

=
0
Rj

0
tan j 0

=
Rj 0

0 0 1
0 0 0
0 0 0

0 0 0

0 0 1
0 0 0
0 0 0

0 0 0

Qj3,3 = 0

Qj 2,3 = 0

(8.19)

8.2.11 Straight-Tooth Bevel Gear Joint:


A straight-tooth bevel gear joint has two joint variables and the forms of its two Q ij operator
matrices are given in Eqs. (5.42). Differentiating these gives

0
tan
Qj11, =
tan sin 1j sin

Qj1,2

tan sin
=
tan cos 1j cos

Chapter 8: Acceleration Analysis

sin 1j sin

cos 1j sin

cos 1j sin

sin

cos 1j cos

sin 1j cos

sin 1j cos

0
0
0

0
0

Qj 2,1

0
=
1
cos j
0

0
0
sin 1j
0

cos 1j 0

sin 1j
0

0
0
0
0

Qj2,2 = 0

(8.20)

8.2.12 Point on a Planar Curve Joint:


A point on a planar curve joint has three joint variables and the forms of the three Q ij operator
matrices are given in Eqs. (5.43). Differentiating these gives
0
0
Qj1,1 =
0

0 0 u
0 0 v
0 0 0

0 0 0

0
0
2,1
Qj =
0

u =

u
1j

v
v = 1
j

v
0 0 u
0 0 0

0 0 0

Qj1,2 = Qj1,3 = 0

0 0

Qj 2,2 = Qj 2,3 = 0

Qj3,1 = Qj3,2 = Qj3,3 = 0

(8.21)

8.2.13 Line Tangent to a Planar Curve Joint:


A line tangent to a planar curve joint has three joint variables and the forms of the three Q ij
operator matrices are given in Eqs. (5.44). Differentiating these gives
0
0
Qj1,1 =
0
0

0
0

0 u + v + v
0 v u u

0
0

0
0

2
2
[u v u v] ( u ) + ( v ) 2 [uu vv]

( u ) 2 ( v ) 2

Chapter 8: Acceleration Analysis

Qj1,2 = Qj1,3 = 0

u =

u
1j

v =

v
1j

Qj 2,1

0
0
=
0

sin
0 0 cos
0 0
0 0

0 0

Qj 2,2 = Qj 2,3 = 0

Qj3,1 = Qj3,2 = Qj3,3 = 0

8.3

(8.22)

Derivatives of the Dj Operator Matrices

Remembering that we will use chain rule differentiation for finding accelerations, we seek the
derivative of the D j operator matrix, defined in Eq. (5.29),
D j = (T0 j S j , j ) Q j (T0 j S j , j )

where we recall that j- is the label of the body which precedes joint j according to its defined
orientation. Suppose that we seek the derivative of this operator matrix with respect to one of the
joint variables, h .
We start by finding the derivative of the inverse transformation matrix T0j1 . We differentiate
the identity

T0j1T0 j = I
as follows:
T0j1
h

T0 j + T0j1

T0 j
h

=0

which we rearrange to read

T0j1
h

= T0j1

T0 j
h

T0j1

Eq. (5.31) is now used to reduce this to the form

T0j1
h

= T0j1 P ( j , h ) Dh

h = 1, 2, , n
j = 1, 2, ,

(8.23)

Next we find the derivative of the D j operator matrix with respect to the joint variable h

Chapter 8: Acceleration Analysis

D j
h

(T0 j S j , j )
h

Q j (T0 j S j , j ) + (T0 j S j , j )

Q j
h

(T

0 j

S j , j ) + (T0 j S j , j ) Q j

(T0 j S j , j )

which, with the aid of Eqs. (5.31) and (8.23), becomes

D j
h

= P ( j , h ) Dh (T0 j S j , j ) Q j (T0 j S j , j ) + (T0 j S j , j ) Qj j ,h (T0 j S j , j )

(T0 j S j , j ) Q j (T0 j S j , j ) P ( j , h ) Dh
where j ,h is the Kronecker delta, signifying that the second term does not appear unless j and
h refer to variables of the same joint.
Comparing the first and third terms of this equation with Eq. (5.29), however, and
recognizing that P ( j , h ) and j ,h are scalars, the above equation simplifies to the form

D j

1
= P ( j , h ) Dh D j D j Dh + j , h (T0 j S j , j ) Qj (T0 j S j , j )

h, j = 1, 2, , n (8.24)

To differentiate the D j operator matrix with respect to the generalized coordinate k , we


write3

D j
k

D j

h =1

h,k

which, by Eq. (8.24), becomes

D j

1
= P ( j , h ) ( Dh D j D j Dh ) h,k + (T0 j S j , j ) Qj j ,k (T0 j S j , j )

k h =1

and, by Eq. (7.19), further simplifies to

D j
k

= W j ,k D j D jW j ,k + (T0 j S j , j ) Qj j , k (T0 j S j , j )

j = 1, 2, , n
k = 1, 2, , f

(8.25)

To differentiate the D j operator matrix with respect to time, we write

3.

Here, again, in the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for
example, then

D j
h

h, k =

D j
1

h1, k +

Chapter 8: Acceleration Analysis

D j
2

h,2k +

D j
3

h,3k +

D j
h4

h,4k

10

dD j
dt

D j

k =1

! k

which, by Eq. (8.25), becomes


f

dD j

1
= W j ,k D j D jW j ,k + (T0 j S j , j ) Qj j ,k (T0 j S j , j ) ! k

dt
k =1

and, by Eqs. (7.22) and (7.13), reduces to

dD j
dt

8.4

1
= j D j D j j + (T0 j S j , j ) Qj!j (T0 j S j , j )

j = 1, 2, , n (8.26)

Second Kinematic Derivatives of Joint Variables

Remembering the hierarchy of dependency explained in Section 7.2, let us now find the second
derivatives of the joint variables with respect to the generalized coordinates, on which they
depend explicitly. We call these second kinematic derivatives and, as in Section 7.3, we use a
prime notation with subscripts as the symbolism.4

j ,h ,k =

k h

j ,h
=
k

j = 1, 2, , n
h, k = 1, 2, , f

(8.27)

How will we find these derivatives? Well, in Section 7.3 we differentiated the loop equations
with respect to generalized coordinate j and found that
i = 1, 2, , NL
h = 1, 2, , f

L ( i, j ) D
j

j ,h

=0

j =1

is a set of mandatory constraint equations among the first kinematic derivatives which ensures
that their values change compatibly with the requirements of geometric loop closure. But, a
similar requirement also holds among the values of the second kinematic derivatives. Therefore,
we differentiate again with respect to generalized coordinate k .
n

L ( i, j ) D
j =1

j ,h,k

D j
k

i = 1, 2, , NL
h, k = 1, 2, , f

j , h = 0

Using Eq. (8.25) to take the indicated derivative gives

L ( i, j ) {D
n

j =1

4.

j ,h, k

1
+ W j ,k D j D jW j ,k + (T0 j S j , j ) Qj (T0 j S j , j ) j ,h = 0

Recall that, for a joint which has more than a single joint variable, superscripts may also be required.

Chapter 8: Acceleration Analysis

11

which we rearrange to read


n

j =1

j =1

1
( i, j ) D j j ,h,k = L ( i, j ) W j ,k D j D jW j ,k + (T0 j S j , j ) Qj (T0 j S j , j ) j ,h

(8.28)

We now define a new (4x4) matrix Ci,h , k for each loop as follows
n

1
Ci,h ,k = L ( i, j ) W j ,k D j D jW j ,k + (T0 j S j , j ) Qj (T0 j S j , j ) j ,h

j =1

i = 1, 2, , NL
h, k = 1, 2, , f

(8.29)

so that Eq. (8.28) reduces to


n

L ( i, j ) D
j

j ,h ,k

= Ci,h ,k

j =1

i = 1, 2, , NL
h, k = 1, 2, , f

(8.30)

We will see the individual terms of the sum included in Ci,h , k again. They will appear in
Section 8.6 where we seek second kinematic derivatives of body positions. We will see that Eq.
(8.28) is the specific case which states that the second kinematic derivative of the position of the
fixed body is zero. Compare this with the definition of the Ai , h ,k operator matrices in Eq.(8.47).
Some economy can be gained by calculating, summing, and storing the terms of Ai , h ,k in the
order in which joints are met as the loop is traced along the paths to each successive body. Once
each loop is completely traced, the Ci,h , k matrix results.
It is left as an exercise to verify that the upper-left (3x3) submatrix of Ci,h , k in Eq. (8.29) is
anti-symmetric as were the Q j , D j , and W j , k operator matrices. We can also see that this must
be true for compatibility with the left-hand side of Eq. (8.30). Once this is recognized, we
eliminate the redundancy of Eq. (8.30) by putting it into screw coordinate form
n

L ( i, j ) D
j

j ,h ,k

= C i,h ,k

j =1

i = 1, 2, , NL
h, k = 1, 2, , f

(8.31)

where D j is as defined in Eq. (6.3) and

Ci,h ,k

Ci, h ,k (1, 4 )

Ci ,h ,k ( 2, 4 )
Ci,h ,k ( 3, 4 )
=

Ci,h ,k ( 3, 2 )
C (1,3)
i ,h,k

Ci, h ,k ( 2,1)

i = 1, 2, , NL
h, k = 1, 2, , f

(8.32)

Since, for any particular choice of h and k, Eq. (8.31) is now of the same form as Eq. (6.4)
we can write, from Eq. (6.5), that

Chapter 8: Acceleration Analysis

12

J h,k = C h,k

h, k = 1, 2, , f (8.33)

where J is the same [(6NL+NC)xn] Jacobian matrix which resulted from the numerical iteration
process of Section 6.5, and h,k , for a given choice of h and k, is an (nx1) vector of second
kinematic derivatives which are yet to be determined. The [(6NL+NC)x1] column C h, k is
composed of the NL vectors from the right-hand sides of Eq. (8.31) for each loop, augmented by
the NC right-hand sides of Eq. (8.14) for each spheric joint and Eq. (8.17) for each open joint.
Reviewing the numerical iteration process of Section 6.5, we recall that the modified pivoting
scheme used in the Gauss-Jordan process reordered the joint variables so that all dependent joint
variables are numbered first, followed next by the NF joint variables of the FGCs and finally by
the NS joint variables of the SGCs. Recognizing that both the FGC and the SGC joint variables
have been accepted as generalized coordinates , we see that, by definition, they are independent
of each other. Therefore, for a particular choice of h and k, the h,k matrix must be of the form
1,h ,k

2,h ,k
$
, h ,k

dep
h, k = n f ,h,k =
0

$
0

h, k = 1, 2, , f (8.34)

, j ,k is an [(n-f)x1] submatrix of the dependent second kinematic derivative values to be


where dep
found.
, j ,k we return to Eq. (8.33) and subdivide it into
Once we recognize this form for dep
compatible size submatrices.
J dep

,h ,k
dep
J ind
= C h, k
0

But, remembering Eq. (6.10), we see that this is the same subdivision which resulted from the
modified Gauss-Jordan elimination process. Reverting to the notation of Eq. (6.7) we have

J 11

J 21



J 12 J 13 dep ,h,k
0 =
J 22 J 23
0

(C )
(C )
h,k

h ,k

and, after the Gauss-Jordan process is complete, these equations are reduced to the form of Eq.
(6.8)

Chapter 8: Acceleration Analysis

13

I J 111J 12

0
0

J 111J 13 dep ,h, k J 111


0 Ch,k
0 =

1
0
J 21J 11 I C h,k

( )
( )

which has for a solution

( )

,h ,k = J 111 C h,k
dep

h, k = 1, 2, , f (8.35)

with the additional condition that

(C )
h,k

( )

1
J 21J 11
Ch,k

=0

h, k = 1, 2, , f (8.36)

Thus the calculations for finding the set of all second kinematic derivatives of the joint
variables can proceed in a set of nested loops, each incrementing counters h and k from one to f.
Of course, it notably reduces the computational load to notice from Eq. (8.27) that

j ,k ,h = j ,h ,k

j = 1, 2, , n
h, k = 1, 2, , f

(8.37)

For each choice of h and k the corresponding Ci,h , k matrix is formed by Eq. (8.29) for all loops i
and, from them, the Ci,h , k vectors are formed by Eq. (8.32). These are augmented by the NC
right-hand sides of Eq. (8.14) for each spheric joint and Eq. (8.17) for each open joint. Finally,
,h ,k for Eq. (8.34).
Eq. (8.35) is used to provide values of dep
For each combination of h and k it is also wise to check that Eq. (8.36) is satisfied within a
satisfactory numerical tolerance.5 However, after the authors' forty years of experience, with a
properly formulated problem having physically realizable input data this test has never been
found to fail.
The second kinematic derivatives just found are not accelerations, even though they are
sometimes referred to as such. They are second rates of change of dependent joint variables with
respect to changes of the generalized coordinates. Time is not included in them and they
typically have units such as radians per radian squared. They represent totally kinematic
information and are functions of the generalized coordinates alone. They are very important,
however, and will arise frequently in our coming work.

Example 8.1
To illustrate the methods explained above, let us continue the analysis of the Hooke universal
joint studied in previous examples. In Example 4.1 we found solutions for the positions of all
joint variables and the various transformation matrices. In Example 7.1 we found the D j

5.

The IMP software system uses a default tolerance of 10-6 for this test.

Chapter 8: Acceleration Analysis

14

derivative operator matrices, the Jacobian, and the first kinematic derivatives for each of the
joints. These are

0
0
DA =
0

cos

DB = 1 sin2 sin2

cos sin
1 sin2 sin2

0
0 1 0
1 0 h

0 0 0
0

cos

cos sin

1 sin2 sin2

1 sin2 sin2

0
cos sin
cos
hcos sin

0
cos sin

0
sin sin
0
D = sin
DC =
D
cos
0
sin sin
0
hsin sin

0
0
0
0

h
J = 1

h cos
1 sin sin
2

h cos sin

0
0

h sin sin
sin sin

cos sin

cos

1 sin2 sin2
cos
1 sin2 sin2

cos sin

h sin

h cos
cos

sin

hcos

1 sin2 sin2

sin

cos

cos
0

0
0

h sin

h cos

cos

1 sin2 sin2
A ,1
sin cos
B,1 = 1 sin2 sin2
C ,1
sin cos sin

D,1 1 sin2 sin2

In Example 7.3 we found the Wi ,1 derivative operator matrices


0
0

0
0

W11, =
cos
0
1 sin2 sin2

0
0

Chapter 8: Acceleration Analysis

0
cos
1 sin2 sin2
0
0

h cos

1 sin2 sin2

15

sin cos 2

W2,1 =
1 sin2 sin2
sin cos sin cos

1 sin2 sin2

0
0
sin
W3,1 =
0

sin cos2
1 sin2 sin2

sin cos sin cos


1 sin2 sin2

cos
1 sin2 sin2

cos
1 sin2 sin2
0

sin

cos

cos

0
0

h sin cos2

1 sin2 sin2

h cos

1 sin2 sin2

h sin
0
h cos

W4,1 = 0
Recognizing, for this example, all joints are revolutes and, therefore, that all Qj matrices are
zero, we now formulate the following matrices

(W

4,1

DA DAW4,1 ) A ,1 = 0

cos sin
cos
(W11, DB DBW11, )B ,1 = sin cos
2
1 sin2 sin2 cos

cos sin
0
0
0

0
cos cos

cos cos
0
sin
(W2,1DC DCW2,1 )C ,1 = sin cos
2
2
sin
sin cos
1 sin sin

0
0

(W

3,1

cos

h cos sin

0
0

0
0

0
0

sin
h cos cos

sin cos
0

0
0

0
0

DD DDW3,1 ) D ,1 = 0

From these, we now form the Ci,1,1 matrix of Eq. (8.29). Noting that there is only one loop
and one degree of freedom the result is

Chapter 8: Acceleration Analysis

16

2
3
2
3
sin cos sin cos
h sin cos sin cos

2
2
0
1 + sin sin

(1 sin2 sin2 )
(1 sin2 sin2 )

2
3

sin cos sin cos sin cos


0
sin

sin

cos

C1,1,1 =
(1 sin2 sin2 ) (1 sin2 sin2 )

2
2
sin sin cos
0
h sin sin cos
(1 + sin sin )

0
0
0
0

Next we formulate the terms of Eq. (8.33)

h
1

h cos
1 sin sin
2

h cos sin

h sin sin

sin sin

cos sin
1 sin2 sin2
cos
1 sin2 sin2

cos
cos sin

h sin
h sin2 cos sin3 cos

1 sin2 sin2

A,11,
0

h cos

h
sin

sin

cos

sin cos
B,11
,
cos
=

2
2
C,11, (1 sin sin )
sin sin cos

2
2
0 D,11,

1
+
sin

sin

2
3
sin cos sin cos

sin
1 sin2 sin2

As in Example 7.3, we recognize that the second row of the right-hand column is zero and
the first and third rows are h multiples of the sixth and negative fourth rows, respectively, and
that, since = 1 = D , we have D,1,1 = 0 . Therefore, these can be reduced to the form

1
0
sin sin

sin sin cos

A,1,1
cos sin
sin cos

cos
1 + sin2 sin 2
B,1,1 = (1 sin 2 sin 2 )
2
2

1 sin sin
sin 2 cos sin3 cos

C,1,1

cos

1 sin2 sin2
cos sin
0

2
2
1 sin sin

The resulting solution for the second kinematic derivatives is

A,11,

sin cos
B,11, =
C,11, (1 sin2 sin2 )2

D,11,

2 sin sin cos

2
2
1 sin sin cos sin

1 + sin2 sin2 cos

From Example 7.3 and Eq. (6.11), the quality index is

Chapter 8: Acceleration Analysis

17

Q = det ( J 11 ) = 1 sin2 sin2


and its value remains in the range ( 0.50 Q 1.00 ). We see here that the denominators of the
second kinematic derivatives are the fourth power of the quality index; thus, as before, there
should not be difficulty in the operation of the device or in their numerical evaluation.

8.5

Accelerations of Joint Variables

The (relative) accelerations of the joint variables, as shown by Eq. (8.3) can be found in any of
three ways. For hand calculations, the expressions found for the positions of the joint variables
can be directly differentiated analytically. This approach, however, is highly susceptible to
human error and is not easily adapted to computer solution. The second approach is to
differentiate the loop closure equations with respect to time, as was done in the last section to
find second kinematic derivatives. The third approach is to take advantage of the second
kinematic derivatives. Remembering the hierarchy of dependencies, we can differentiate Eq.
(7.12) as follows
f
f
f
d 2 j
!!
j = 2 = j ,h!!h + j ,h,k! h! k
dt
h =1
k =1 h =1

j = 1, 2, , n (8.38)

Here we see that all dependent joint accelerations vary linearly with the generalized
accelerations and quadratically with the generalized velocities. They are nonlinear functions of
, however, through the kinematic derivatives. The double summation cannot be expressed in
matrix form since j ,h , k is a three-dimensional array.
As discussed earlier, we can differentiate the loop closure equation with respect to time.
From Section 7.4 we have
n

L ( i, j ) D !
j

=0

i = 1, 2,, NL

j =1

Differentiating this again with respect to time gives


n

L ( i, j ) D !! +
j =1

dD j !
j = 0
dt

i = 1, 2, , NL

which, by use of Eq. (8.26), can be rearranged to read6

6.

Here, again, in the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for
example, then

D j!j = D1j !1j + D 2j !j2 + D 3j !3j + D 4j !4j

Chapter 8: Acceleration Analysis

18

1
L ( i, j ) D j!!j = L ( i, j ) j D j D j j + (T0 j S j , j ) Qj!j (T0 j S j , j ) !j

j =1
j =1

(8.39)

Parallel to Eq. (8.29), we can now define


n

1
C!!i = L ( i, j ) j D j D j j + (T0 j S j , j ) Qj!hj (T0 j S j , j ) !j

j =1

i = 1, 2, , NL (8.40)

and the corresponding screw coordinate vectors


C!!i (1, 4 )
!!

Ci ( 2, 4 )
!!
C ( 3, 4 )
C!!i = i

!!
Ci ( 3, 2 )
C!! (1, 3)
i

C!!i ( 2,1)

i = 1, 2, , NL (8.41)

so that Eq. (8.39) becomes

J !! = C!!

(8.42)

After recognizing that !! has the form


!!1
!!
2
$
!! !!dep
!!
= n f =
!!
!!
1

$
!!
f

(8.43)

we see that Eq. (8.42) is of the form


J 11
J
21

J 12 J 13 !!dep C!!1
=
J 22 J 23 !! C!!
2

and can be solved in the same manner as for the second kinematic derivatives. In its reduced
form

Chapter 8: Acceleration Analysis

19

I J 111J 12

0
0

J 111J 13 !!dep J 111


0 C!!1
=


0 !! J 21J 111 I C!!

we see that the solution is

!!dep = J 111 C!!1 [ J 12 J 13 ]!!

(8.44)

with the additional condition that

C!! 2 J 21J 111C!!1 = 0

(8.45)

Example 8.2
Let us continue the Hooke universal joint of Example 8.1. If the input shaft is driven at a rate of
!D = ! , and, if this rate is constant, !!D = !! = 0 , then let us find the accelerations of the other
joint variables. These are given directly by Eq. (8.39) and the second kinematic derivatives
found in Example 8.1.
!!A
!!

sin cos ! 2
!!
= !!B =
C
2
2
!! 1 sin sin
D

8.6

2 sin sin cos

2
2
1 sin sin cos sin

1 sin2 sin2 cos

Second Kinematic Derivatives of Body Positions

Before we find the acceleration of a body or point, let us first find the next kinematic derivative
of the Wi ,h operator matrices. From Eq. (7.19), we have
n

Wi ,h = P ( i, j ) D j j ,h
j =1

i = 1, 2, ,
h = 1, 2, , f

Differentiating this with respect to generalized coordinate k gives the new, second
kinematic derivative operator matrix Ai , h ,k , defined by

Ai ,h ,k =

Chapter 8: Acceleration Analysis

Wi ,h

i = 1,2,,

h, k = 1,2,, f

(8.46)

20

and, using Eq. (8.25), we find7


n

1
Ai ,h,k = P ( i, j ) D j j ,h,k + W j ,k D j D jW j ,k + (T0 j S j , j ) Qj (T0 j S j , j ) j ,h

j =1

,
} h, ki ==1,2,
1,2,, f

(8.47)

Now, to find the second kinematic derivative of the position of a body, we start with Eq.
(7.18)
i = 1, 2, ,

T0i
= Wi ,hT0i
h

h = 1, 2, , f

and differentiate again, with respect to the generalized coordinate k . Using Eqs. (8.45) and
(7.18) we find

T0i

= ( Ai ,h , k + Wi , hWi ,k ) T0i
k h

i = 1, 2, ,
h, k = 1, 2, , f

(8.48)

We note here that, in general, Ai ,k ,h Ai ,h ,k in spite of the fact that the order of the subscripts
implies an order of taking derivatives. Similarly, in general,

Wi ,k
h

Wi , h
k

However, it is true for the general case that


Ai ,k ,h + Wi ,kWi ,h = Ai , h ,k + Wi ,hWi ,k

i = 1, 2, ,
h, k = 1, 2, , f

(8.49)

Example 8.3
Let us now continue the analysis of the Hooke universal joint of Example 8.1 and Example 8.2,
and find the second kinematic derivative operator matrices for each of its bodies. From the
previous examples we have
0
0
DA =
0

7.

0
0 1 0
1 0 h

0 0 0
0

Here, again, in the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for
example, then
D j j, h = D j j, h + D j j, h + D j j, h + D j j, h
1

Chapter 8: Acceleration Analysis

21

cos

cos

DB = 1 sin2 sin2

cos sin
1 sin2 sin2

cos sin
DC =
cos

cos sin

1 sin sin

1 sin sin

cos sin

cos

sin sin

sin sin

0
sin
DD =
0

A ,1

B,1
C ,1

D ,1

sin

cos

cos

h cos

1 sin sin

h cos sin

h sin sin

h sin

h cos

cos
1 sin2 sin2
sin cos

2
2
1 sin sin
sin cos sin

1 sin2 sin2

0
0

0
0

W11, =
cos
0
1 sin2 sin2

0
0

Chapter 8: Acceleration Analysis

cos
1 sin2 sin2
0
0

h cos

1 sin2 sin2

22

sin cos2

W2,1 =
1 sin2 sin2
sin cos sin cos

1 sin2 sin2

0
sin
W3,1 =
0

sin cos2
1 sin2 sin2

sin cos sin cos


1 sin2 sin2

cos
1 sin2 sin2

cos
1 sin2 sin2
0

sin

cos

cos

0
0

h sin cos2

1 sin2 sin2

h cos

2
2
1 sin sin
0

h sin
0
h cos

W4,1 = 0
2 sin sin cos

A,11,

2
2

cos sin 1 sin sin
sin cos
B,11, =
C,11, (1 sin2 sin2 )
1 + sin2 sin2 cos

0
D,11,

Next we calculate

W4,1 DA DAW4,1 + (T04 S4 A ) QA A ,1 (T04 S4 A ) 1 A ,1 = 0

1
, + W4,1 DA DAW4,1 + (T04 S 4 A ) QA A ,1 (T04 S 4 A ) A ,1
A111
, , = DA A,11

0 0 0 0

2
sin cos cos 2 0 0 1 0
=
2
1 sin2 sin2 0 1 0 h

0 0 0 0

W D D W + (T S ) Q (T S )1
B 11
,
01 1B
B B,1
01 1B
1,1 B
B,1
0
cos sin

cos sin
0
sin cos cos
=
2
0
1 sin2 sin2 cos

0
0

Chapter 8: Acceleration Analysis

cos
0
0
0

h cos sin

23

1
, + W11, DB DBW11, + (T01S1B ) QBB,1 (T01S1B ) B,1
A211
, , = A111
, , + DBB,11

0
cos sin 2 cos 2 + sin2 sin2

sin cos
cos sin 2
0
0

=
2
2
2
2
2
0
0
1 sin sin cos 2 + sin sin

0
0
0

W D D W + (T S ) Q (T S )1
C 2,1
02 2 C
C C ,1
02 2 C
2,1 C
C ,1
0
cos cos

cos cos
0
sin cos sin
=
2
2
sin
sin cos
1 sin sin

0
0

sin
sin cos

0
0

h cos sin 2

h sin sin2

h cos cos

h sin cos

1
A3,1,1 = A2,1,1 + DCC,1,1 + W2,1 DC DCW2,1 + (T02 S2C ) QC C ,1 (T02 S 2C ) C ,1 = 0

W3,1 DD DDW3,1 + (T03 S3 D ) QD D ,1 (T03 S3 D )1 D ,1 = 0

1
A4,1,1 = A3,1,1 + DDD ,1,1 + W3,1 DD DDW3,1 + ( T03 S3 D ) QD D ,1 (T03 S3 D ) D ,1 = 0

Note the order of the calculations performed in this example; here we see how the
calculations of the portions of C in Example 8.1 is done in parallel with building the Ai , h ,k
matrices. It may be instructive to compare the form of Eq. (8.28) to that of Eq. (8.47). Since
each row of the loop matrix L is a possible path through the system back to the frame, body 4, it
should be expected that A4,1,1 = 0 .

8.7

Second Kinematic Derivatives of Point Positions

To find the second kinematic derivative of the position of a point, we start with Eq. (7.25)
Ri,h =

Ri
Wi ,hT0i ri
h

i = 1, 2, ,
h = 1, 2, , f

and differentiate again, with respect to the generalized coordinate k . Using Eqs. (8.46), (7.20),
and (7.25) we find

Ri,h ,k =

Ri

= ( Ai ,h , k + Wi , hWi ,k ) Ri
k h

Chapter 8: Acceleration Analysis

i = 1, 2, ,
h, k = 1, 2, , f

(8.50)

24

8.8

Accelerations of Bodies

In Eq. (7.22) we defined the velocity operator for a body as


n

i = P ( i, j ) D j!j

i = 1, 2, ,

j =1

Before finding the acceleration of a body, let us first define the new acceleration operator i

i =

d i
dt

i = 1, 2, , (8.51)

which can be found as the time derivative of the previous equation


n

j =1

i = P ( i, j ) D j!!j +

dD j !
j
dt

i = 1, 2, ,

By Eq. (8.26) this is expanded to8


n

1
i = P ( i, j ) D j!!j + j D j D j j + (T0 j S j , j ) Qj!j (T0 j S j , j ) !j
j =1

i = 1, 2, , (8.52)

for evaluation.
As another alternative, we might have started with Eq. (7.24)
f

i = Wi , h! j

i = 1, 2, ,

h =1

and used the chain rule to differentiate with respect to time


f

i = Wi , h!! j + Ai ,h ,k! k! h
h =1

i = 1, 2, , (8.53)

h =1 k =1

This is an entirely separate but equivalent formula for I from the one above. Whether Eq.
(8.52) or Eq. (8.53) is preferable depends on the particular situation; we will have future needs
for both.
Next, we recall that in Eq. (8.2) we defined the acceleration of a body to be the second
derivative with respect to time of its transformation matrix with respect to the global frame.

8.

Here, again, in the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for
example, then

D j!j = D1j !1j + D 2j !j2 + D 3j !3j + D 4j !j4

Chapter 8: Acceleration Analysis

25

d 2T0 i
!!
T0i =
dt 2

i = 1, 2, ,

dT
T!0i = 0i = iT0 i
dt

i = 1, 2, ,

From Eq. (7.23) we have

and, differentiating this with respect to time, we get


di
dT
T!!0i =
T0 i + i 0i
dt
dt

i = 1, 2, ,

which, by use of Eqs. (8.51) and (7.23), becomes

T!!0i = ( i + ii ) T0i

i = 1, 2, , (8.54)

or, by Eqs. (8.53) and (8.54), can be written as


f
f
f

T!!0i = Wi ,h!!h + ( Ai , h ,k + Wi ,hWi ,k )! k! h T0i


h =1 k =1
h =1

i = 1, 2, , (8.55)

Example 8.4
Continuing , the i matrices for each of the bodies of a Hooke universal shaft coupling are easily
found by Eq. (8.53)
!2
1 = W11, !! + A111
, ,
0 0

cos
sin cos cos 2 2 0 0
=
!! +
!
2
2
1 sin2 sin2
1 sin sin
0 1

0 0
2

Chapter 8: Acceleration Analysis

0 0
1 0
0 h

0 0

26

!2
2 = W21, !! + A211
, ,

sin cos2
sin cos sin cos h sin cos2
0

1 sin2 sin2
1 sin2 sin2
1 sin2 sin2

sin cos2
cos
0
0

2
2
2
2
= !!
1 sin sin
1 sin sin

sin cos sin cos

cos
h cos
0

1 sin2 sin2
1 sin2 sin2
1 sin2 sin2

0
0
0
0

0
cos sin 2 cos 2 + sin2 sin2 h cos sin 2

sin cos ! 2
cos

sin
2

0
0
0

+
2

2
2
2
2
0
0
h sin sin 2
1 sin sin cos 2 + sin sin

0
0
0
0
3 = W3,1!! + A3,1,1! 2

0
sin
= !!
0

sin
0
cos
0

0
cos
0
0

h sin

h cos

cos cos
sin cos sin !
+
1 sin 2 sin 2
sin

cos cos
0
sin cos
0

sin
sin cos
0
0

h cos cos

h sin cos

4 = W4,1!! + A4,1,1! 2 = 0

8.9

Accelerations of Points

Next, we recall that in Eq. (8.1) we defined the acceleration of a point to be the second derivative
with respect to time of its global position vector.
2
!! = d Ri
R
i
dt 2

i = 1, 2, ,

R!i = i Ri

i = 1, 2, ,

From Eq. (7.27) we have

and, differentiating this with respect to time, we get


!! = di R + dRi
R
i
i
i
dt
dt

Chapter 8: Acceleration Analysis

i = 1, 2, ,

27

which, by use of Eqs. (8.51) and (7.27), becomes

!! = ( + ) R
R
i
i
i i
i

i = 1, 2, , (8.56)

or, by Eqs. (8.53) and (8.54), can be written as


f
f
f

!! = W !! +
R
i
i ,h h ( Ai ,h ,k + Wi , hWi ,k )! h! k Ri
k =1 h =1
h =1

i = 1, 2, , (8.57)

Thus we see that the same derivative operator matrices found for taking either second
kinematic or second time derivatives of body positions are also used for finding second
derivatives of point positions.

Chapter 8: Acceleration Analysis

28

Problems
8.1

Continue from the results of Problem 7.1 as follows:


a) Form the matrix of second kinematic derivatives of the joint variables.
b) Form the second kinematic derivative operator matrix Ai , h ,k for each body.
c) Form the set !! of second time derivatives of the joint variables.
d) Form the second time derivative (acceleration) operator matrix i for each body.

8.2

Verify that the upper-left (3x3) submatrix of Ci,h , k in Eq. (8.29) is anti-symmetric.

Chapter 8: Acceleration Analysis

29

Chapter 9: Modeling Dynamic Aspects of Machinery


9.1

Dynamic Aspects of MultiBody Systems

In the very beginning of this text, Section 1.1, we observed that the science of mechanics is
usually divided into two parts called statics and dynamics. We observed that dynamics is also
made up of two major disciplines, first distinguished by Euler in 1775.1 The quotation is,
perhaps worth repeating here:2
"The investigation of the motion of a rigid body may be conveniently separated
into two parts, the one geometrical, the other mechanical. In the first part, the
transference of the body from a given position to any other position must be
investigated without respect to the causes of the motion, and must be represented
by analytical formulae which will define the position of each point of the body.
This investigation will therefore be referable solely to geometry, or rather to
stereotomy.
"It is clear that by the separation of this part of the question from the other,
which belongs properly to Mechanics, the determination of the motion from
dynamical principles will be made much easier than if the two parts were
undertaken conjointly."
These two aspects of dynamics were later recognized as the distinct sciences of kinematics
and kinetics, which treat the motion and the forces producing it, respectively.3
As should be evident from the preceding chapters, one predominate challenge in the analysis
of many multibody systems, particularly those with closed loop topology, is that of kinematics,
and one major emphasis of this book has been on that topic. As Euler advised, the methods of
the preceding chapters have been totally derived from geometry. The units of all parameters
defined or used up to here have been solely those of length and time.
Statics and kinetics, however, are also extremely important parts of a complete design
analysis. The engineer or designer is vitally concerned with the forces transmitted betweeen
parts of a system so that they can be designed to withstand the stresses induced. The work and
energy which the system produces or requires are also of primary interest. Therefore these topics
and units, including those of force and energy, will also be covered in depth in the coming
1.

Leonhard Euler (1707-1783).

2.

Ibid.

3.

Kinematics was first defined as a separate study in 1834 by Andre Marie Ampere (1775-1836).

Chapter 9: Modeling Dynamic Aspects of Machinery

chapters.
Of course every student, from their first introduction to Newtons laws, has been taught that
the first requirement when analysing a system to find forces is to draw a free body diagram of
the system being studied. This is excellent advice for hand calculation methods. However, such
approaches do not lend themselves to computer evaluation. Computers gain no guidance about
the solution of such problems from viewing a hand-drawn sketch. The techniques which we seek
here should not depend on such an approach.
Therefore, instead of looking toward Newtons laws for our study of dynamics, we very much
prefer methods using energy and virtual work. Specifically, in the next chapter we will use
Lagranges equation to provide the dynamic equations of motion of our multibody system.

9.2

Modeling Kinetic Energy

In order to use an energy approach we will require the formulation of an expression for the
kinetic energy of our multibody system. To derive such an equation let us start with a single
differential particle of mass dm as shown in Figure 9.1. In terms of the global components of the
velocity of that moving particle, its kinetic energy is

2
2
2
dH = ( R! X ) + ( R! Y ) + ( R! Z ) dm

= R! X

R! Y

R! Z

R! X
!Y
R
0 Z dm
R!

0

!
= R! t Rdm

Chapter 9: Modeling Dynamic Aspects of Machinery

"!
R

dm

"
R

X
Z
Figure 9.1 Differential particle of mass
Let us now assume that this is only one particle of moving rigid body number a, and, from
Eq. (7.27), substitute our matrix formulation for its absolute velocity,
dH a =ratT0taat aT0 a ra dm

On integrating this over all particles of body a, we see


H a = rat T0taat aT0 a ra dm

Unfortunately, this formula presents a significant problem. If we consider which elements of


this formula change from one point to another, we see that each and every particle of body a uses
the same transformation matrix T0a and the same velocity operator matrix a . However, since
ra changes for every particle, and since matrix multiplication is not commutative, we cannot
factor the invariants out of the integral. Therefore, if done in this way, the integration must be
performed anew, probably numerically, every time the position or the velocity of the body
changes. This is certainly not an attractive prospect.
Fortunately there is another approach. Starting again in formulating the expression for the
kinetic energy of the particle, and recalling that the trace of a square matrix is defined as the sum
of the terms on its principal diagonal, we can write

Chapter 9: Modeling Dynamic Aspects of Machinery

{(

dH = R! X

) + ( R! ) + ( R! ) } dm
2

R! X R! X R! X R! Y R! X R! Z 0
!Y ! X
! Y R! Y R! Y R! Z 0
R
R
R

dm
=trace Z X
Z !Y
Z !Z
R! R!
!
!
R R
R R
0

0
0
0
0
R! X

!Y

R
=trace Z R! X R! Y R! Z 0 dm
R!

t
! ! dm
=trace RR

The huge advantage of this seemingly small change does not become apparent until we
substitute Eq. (7.27) for the velocity of the differential particle. This now gives
dH a =trace (aT0 a ra ratT0taat ) dm

a = 1, 2, ,

When we recognize that a and T0a are invariant for every particle of body a, the integration
can now be written

H a =trace aT0 a ra rat dm T0taat

a = 1, 2, ,

(9.1)

The integration over all particles of the body no longer depends either on the position of the
body ( T0a ) or on its velocity ( a ). It is now an integral over the local body coordinates of the
particles. It is now possible to perform this integration once, for all positions and all velocities of
the body, as will be shown in the next section.

9.3

The Inertia Matrix

Let us define the matrix


J a = ra rat dm

a = 1, 2, ,

(9.2)

When we expand these terms we see

Chapter 9: Modeling Dynamic Aspects of Machinery

Ja =

( r x )2
a
x y
ra ra
x z
ra ra
x
ra

rax ray
y 2
a

(r )

rax raz
ray raz
z 2
a

ray raz

(r )

ray

raz

rax

y
ra
dm

z
ra

a = 1, 2, ,

However, since integration is a process of repetitive summation, and since matrix sums are
performed by summing individual terms, this integral can be performed on a term by term basis.
Therefore,
( r x )2 dm
a
x y
ra ra dm
Ja =
x z
ra ra dm

x
ra dm

r r dm r r dm
( r ) dm r r dm
r r dm ( r ) dm
r dm
r dm
x y
a a

x z
a a

y 2
a

y z
a a

y z
a a

z 2
a

y
a

z
a

r dm

r dm

r
dm

dm

x
a

y
a

a = 1, 2, ,

z
a

Checking with any of a number of texts on mechanics reminds us that many of these integrals
are known from the definitions of the mass distribution properties of a rigid body.4 For example,
if we denote the total mass of body a by the symbol ma and the location of its center of mass,
measured with respect to the local body coordinate system, by the vector ra , then the integrals in
the fourth row and column are

( r x )2 dm
a
x y
r r dm
Ja = a a
x z
ra ra dm

x
ma ra

r r dm
( r ) dm
r r dm

r r dm
r r dm
( r ) dm

ma ra y

ma ra z

x y
a a

y 2
a

y z
a a

x z
a a

y z
a a

z 2
a

ma ra x

ma ra y

ma ra z

ma

Checking further with mechanics texts reminds us that the remaining off-diagonal integrals
are known as the mass products of inertia. They usually carry symbols such as5
I axy = rax ray dm ,

I ayz = ray raz dm ,

I axz = rax raz dm

(9.3)

4.

See, for example, R. C. Hibbeler, Engineering Mechanics, 8th ed., Prentice-Hall Inc., 1998, Chapters 9 & 10.

5.

There seems to be little agreement between different texts on whether these products of inertia should include a
minus sign as a part of their definition. No minus sign is shown here; however, the reader is advised to use care
when comparing with different texts.

Chapter 9: Modeling Dynamic Aspects of Machinery

However, using our notation, the mass moments of inertia are usually defined as follows:6

I axx = ( ray ) + ( raz ) dm ,


2

I ayy = ( rax ) + ( raz ) dm ,


2

I azz = ( rax ) + ( ray ) dm


2

(9.4)

Once we express the above J a matrix in terms of these definitions for the mass moments and
products of inertia we obtain the inertia matrix for each body
( I axx + I ayy + I azz )
I axy
I axz
ma rax

xy
xx
yy
zz
yz
y

Ia
( I a I a + I a )
Ia
ma ra
Ja =

xz
yz
xx
yy
zz
z

Ia
Ia
( I a + I a I a ) ma ra

x
y
ma ra
ma ra
ma raz
ma

a = 1, 2, ,

(9.5)

Since these are values which designers may already know about the mass distributions of the
individual parts of their device, or which they might find convenient to obtain through their
favorite CAD system or through experiment, these values form a very reasonable model in which
the user can be requested to supply the mass distribution information for each moving body.7
It is noted here, as might have been expected, that each J a inertia matrix is symmetric. This
becomes important later in Section 10.3, when finding the equations of motion.
We note that the data for the mass distribution of a body is collected totally in the local
coordinate system of the moving body. Thus the J a matrix is, by its very definition, expressed in
that coordinate system. However, when we substitute Eq. (9.2) into Eq. (9.1),
H a =trace (aT0 a J aT0taat )

a = 1, 2, ,

we see the matrix product T0 a J aT0ta . After review of the above derivation, we recognize that this
product, called a similarity transformation, yields the transformation of the inertia matrix to the
global coordinate system where it combines with the global coordinate velocity matrix a of the
same body. This matrix product is of size (44) and all entries have the same arrangement and
the same physical interpretation as those of Eq. (9.5) except that they are transformed to the
global coordinate system.
Of course, the total kinetic energy of the sytem is found by summing the kinetic energies of
all individual bodies.

a =1

a =1

H = H a = trace aT0 a J aT0taat

(9.6)

6.

These are sometimes called polar moments of inertia and the definition of Ixx, for example, integrates the
square of the distance of each mass particle from the x axis.

7.

See, for example, J. J. Uicker, Jr., G. R. Pennock, and J. E. Shigley, Theory of Machines and Mechanisms, 3rd
ed., Oxford University Press, 2003, Section 16.2.

Chapter 9: Modeling Dynamic Aspects of Machinery

9.4

Systems of Units

When the data record for storage of a body is formed in computer memory, the software may
require each body data record to contain storage locations for the elements of the inertia matrix,
preferably expressed in the local coordinate system of the body. These storage locations can be
initialized to zeroes. When data is supplied by the user for the mass of the body, this value can
be stored in row four, column four, thus simulating a point mass located at the origin of the body
coordinate system. When the body coordinates of the center of mass are given, the elements of
the fourth row and column can be formed; the mass then still represents a point mass, but at the
newly specified location on the body. Finally, when mass moments and products of inertia are
supplied by the user, the remainder of the matrix is formed and the inertia matrix no longer
represents a point mass, but a distributed mass. Any body for which mass data is not supplied is
considered to have negligible (zero) mass when compared to those which have nonzero mass
data.
The units of the data in the J a inertia matrix are also of great importance. As is usual in
engineering design analysis, it is probable that time is measured in seconds. Up to here it has
been assumed that all data for lengths or distances are entered in one self-consistent set of
distance units, but no particular system of units has yet been specified. Lengths might be
measured in inches, feet, meters, or millimeters, depending on the application and the preference
of the user. Any of these or other length units can be chosen as long as all lengths are specified
in the same units, and the user must also be satisfied with these same units for all output values
computed involving distances.
As we progress in our study of dynamics, we will also choose a standard unit for force,
almost certainly the pound if the inch or the foot is chosen as the unit for length, or the Newton if
the meter or the millimeter is chosen for length.
Once these choices are made, then consistency demands that mass data must be given in units
of force seconds squared per unit length.8 For example, use of Newtons and meters requires that
mass data be given in Newton seconds squared per meter ( N s 2 / m ) which are named
kilograms. However, use of Newtons and millimeters requires mass data in Newton seconds
squared per millimeter ( N s 2 / mm ) which are megagrams (Mg). Similarly, use of pounds for
force and feet for distances requires mass data in pound seconds squared per foot.9 Use of
pounds for force and inches for distances requires mass data in pound seconds squared per inch
which have no other name. For user friendliness it may be preferable to allow the user to supply
inertia data in terms of weight units and to have the software convert to mass units by dividing by
the standard gravitational constant. However, it is strongly recommended that all data for a
particular problem be stored in one consistent system of units as just discussed.

8.

This is called a gravitational system of units. See, for example, Uicker, op. cit., Section 14.3.

9.

Pound seconds squared per foot are named slugs in some texts. However, to the authors knowledge, this term is
not used anywhere outside of academia and, therefore, it is avoided in this text.

Chapter 9: Modeling Dynamic Aspects of Machinery

9.5

Modeling Gravitational Effects

The mass distributions described by the J a inertia matrices can also be used for modeling the
effects of gravitional loads on our multibody system. If we define a homogeneous coordinate
vector for the local position of the origin of a body coordinate system,
0
0
r0 =
0

1

(9.7)

then, from Eq. (9.5), we see that

ma ra x

ma ra y

J a r0 =
= ma ra
ma ra z

ma

a = 1, 2, ,

Transforming this homogeneous coordinate vector from its current body coordinates to global
coordinates, we get

ma ra x

m ry
T0 a J a r0 = Toa a a z = maT0 a ra = ma Ra
ma ra

ma

a = 1, 2, ,

(9.8)

and, since it is easily verified that T0ta r0 = r0 , the above equation can be written in the form
T0 a J a r0 = (T0 a J aT0ta ) r0

a = 1, 2, ,

(9.9)

if this proves to be more convenient when coding the actual software.


Next we require the computer user to specify the magnitude and direction of the gravitational
force field which acts on those bodies having mass. This vector is defined in homogenous
coordinate form with components along the global coordinate axes and is given the symbol g.

g X
Y
g
g= Z
g

0

(9.10)

Note that there is no stipulation that the g vector need have the magnitude of standard gravity,
though it often will and can conveniently default this way in the software. Still, without this
constraint, it occassionally becomes possible to use the g vector to model a distributed force field

Chapter 9: Modeling Dynamic Aspects of Machinery

that is not the result of gravity. For example, if a vehicle is rounding a curve of known radius at
a known speed, it may be advantageous to model the centrifugal force field by specifying that g
includes an appropriate sized component in the outward radial direction in addition to the vertical
gravitational component. In this manner, the vehicle is subjected to a centrigugal force field on
all parts having mass even though the simulation is done in quasistatic mode, thus avoiding the
time needed to integrate the dynamic equations of motion.
With the gravitational g vector known, it is now possible to write an expression for
gravitational potential energy. Assuming a zero reference (datum) position where the center of
mass of body a coincides with the global origin, the gravitational potential energy of body a is
a = 1, 2, ,

Va = ma g t Ra

The negative sign recognizes the convention used here that positive represents energy
contained in the system and signifies that, in order to move the body opposite to the direction of
the gravity vector, work must be done and the potential energy of the system must be increased.
Using Eqs. (9.8) and (9.9), the gravitational potential energy of body a becomes
Va = g t (T0 a J aT0ta ) r0

a = 1, 2, ,

Therefore, the total gravitational potential energy of the system is

V = g t (T0 a J aT0ta ) r0

(9.11)

a =1

9.6

Modeling Joint Stiffness

Sometimes, a real spring is designed to act directly with a joint variable, as is the case with the
struts of many automotive front suspensions, or the coil spring of a wind-up toy or a clock. In
other situations, the analyst may wish to simulate the stiffness of a motor or control system which
acts within a joint. We assume that our computer model may include a stiffness value ka acting
directly with the movement of joint variable a which provides a linear restoring force of
magnitude ka (a a 0 ) , where a 0 represents the free position of the joint variable, at which
position the restoring force of the spring is zero. Of course, when the movement of joint a is
rotation, then ka is a torsional stiffness, a 0 is an angle, and ka (a a 0 ) is the magnitude of a
restoring torque.
The potentional energy stored in such a spring is
Va =ka (a a 0 )

a = 1, 2, , n

and the total potential energy stored in all such springs of the model is

Chapter 9: Modeling Dynamic Aspects of Machinery

V = k a ( a a 0 )

(9.12)

a =1

As explained above for mass data, the record created in computer memory to store each joint
variable can include memory locations for storage of values of stiffness and a free position
associated with each joint variable. These can be initialized to have stiffness values of zero. At a
later point in the creation of the system model, data may (or may not) be supplied for one or more
of these to represent the existence of nonzero spring rates or stiffnesses for those joint variables.

9.7

Modeling Joint Damping

Just as joints can display stiffness as modeled in the previous section, so too they can show
energy dissipation through damping. Here we assume that this energy dissipation can be
modeled as viscous friction, that is, that there can be a resisting force or torque acting against the
motion of the joint variable that is of magnitude ca!a , proportional in size but opposite in sense
to the velocity of the joint variable. Here ca is the viscous damping coefficient.
During an infinitesmally small virtual displacement a of this joint, the energy loss from the
system from such damping is

U a = ca!aa

a = 1, 2, , n

If we express this virtual displacement and velocity of the joint variable in terms of the
virtual displacement and velocity of the independent generalized coordinates
f

a = ai i

a = 1, 2, , n

i =1

and
f

!a = aj ! j

a = 1, 2, , n

j=1

then the infinitesmally small energy loss from this joint variable is
f

U a = (ai caaj ! j ) i

a = 1, 2, , n

i =1 j =1

The total energy loss from all joint damping during this small virtual displacement is
f

U = (ai caaj ! j ) i

(9.13)

i =1 j =1 a =1

Again, the data record created in computer memory to store each joint variable can include a
memory location for storage of a value for a viscous damping coefficient associated with that

Chapter 9: Modeling Dynamic Aspects of Machinery

10

joint variable. These can be initialized to have coefficient values of zero. At a later point in the
creation of the system model, data may (or may not) be supplied for one or more of these to
represent the existence of nonzero viscous damping coefficients for particular joint variables.
Many other types of energy dissipation are proposed in the literature beyond the viscous
damping model shown here. Coulomb damping, hysteretic damping, proportional damping,
quadratic damping, strain rate damping, and others are covered in various texts.10 Arguments
abound over which is the more appropriate model in a given situation. However, these are not
the purpose of this text, and only viscous damping is presented here. Others can be implemented
in matrix notation by similar methods if the reader wishes to do so.

9.8

Modeling Point to Point Springs

Many multibody systems include one or more springs connected between points of the moving
bodies. If we assume that the endpoints of such a spring are the points Ra and Rb of two different
bodies numbered a and b, then we can define the symbol Rab to be the vector between the two
points.11
Rab = Ra Rb = T0 a ra T0b rb

a, b = 1, 2, , (9.14)

The distance between the two points is


t
ab = Rab
Rab

a, b = 1, 2, , (9.15)

and the unit vector showing the orientation of the line between the two points is defined by the
symbol
uab = Rab ab

a, b = 1, 2, , (9.16)

such that
Rab = ab uab

a, b = 1, 2, ,

We now assume that our computer model may include a linear spring with rate kab and free
length ab 0 acting between two such moving points, which provides a spring force of value
kab ( ab ab 0 ) uab directed toward point a from point b and having an equal and opposite reaction
force on point b. The potentional energy stored in such a spring is
Vab =kab ( ab ab 0 )

10.

See, for example, D. J. Inman, Engineering Vibration, Prentice Hall, Englewood Cliffs, NJ, 1994.

11.

Note that the digraph ab, used as a subscript, signifies only a single spring, yet includes a pair of points, the
endpoints of the spring; and two integers are referenced. These are the body numbers containing the two
endpoints. Still, there is only a single spring, a single point pair, for each such digraph.

Chapter 9: Modeling Dynamic Aspects of Machinery

11

and the total potential energy stored in all such springs of the system is12
V = kab ( ab ab 0 )

(9.17)

ab

9.9

Modeling Point to Point Dampers

Many multibody systems may also include one or more viscous dampers in the form of dashpots
connected between points of the moving bodies. As with point to point springs, we assume that
the two endpoints of such a damper are the points Ra and Rb of two different bodies numbered a
and b. We also assume that the energy dissipation can be modeled as viscous friction, that is,
that there is a resisting force which is proportional to the relative velocity, cab ! abuab , acting
along the line between the two points. During an infinitesmally small virtual displacement
between the two points, Rab , the energy lost to the system is
t
U ab = cab ! abuab
Rab

(9.18)

Next we express this virtual displacement and the relative velocity across the damper in terms
of the virtual displacement of the independent generalized coordinates
f

Rab = (Wai Ra Wbi Rb ) i


i =1

and we define

= Rai
Rbi
= Wai Ra Wbi Rb
Rabi

a, b = 1, 2, ,
i = 1, 2, , f

(9.19)

so that
f

i
Rab = Rabi

a, b = 1, 2, , (9.20)

i =1

and, from Eq. (9.15),

12.

Notice that no symbol has been defined for the total number of such springs in the model and no numbering
convention or order has been chosen for their identification. In the actual software, the records for these springs
will, almost certainly, be implemented in a linked list or queue, and the summation will be accomplished by
incrementing through this list.

Chapter 9: Modeling Dynamic Aspects of Machinery

12

t
2ab = Rab
Rab
t
t !
t !
2 ab ! ab = R! ab Rab + Rab
Rab = 2 Rab
Rab
t
! = u R!
ab

ab

= u

t
ab

ab

(a Ra b Rb )

t
= uab
(Waj Ra Wbj Rb )! j
j =1

t
! j
! ab = uab
Rabj

a, b = 1, 2, , (9.21)

j =1

Therefore, substituting Eqs. (9.21) and (9.20) into Eq. (9.18), the amount of energy dissipated
by such a damper is
f

t
t uab cab uab
! j i
U ab = Rabi
Rabj
i =1 j =1

and the total energy dissipated by all such point to point dampers during such a virtual
displacement is13
f

t
t uab cab uab
! j i
U = Rabi
Rabj

(9.22)

i =1 j =1 ab

As previously explained, the record created in computer memory to store data for each point
to point damper can include a memory location for storage of a value for the viscous damping
coefficient associated with that damper. Also, as stated above, many other types of energy
dissipation are possible beyond the simple viscous damping model shown here. Coulomb
damping, hysteretic damping, proportional damping, quadratic damping, strain rate damping, and
others are covered in various texts.14 Others can be implemented by similar methods using
matrix notation if the reader wishes to do so.

9.10 Modeling an External Force or Torque Applied With a Joint Variable


For a good simulation tool for multibody dynamic systems it is also necessary to model the
applied forces and torques which act on the system. There are two major categories of such
applied forces; some are external forces or torques which act directly within the joints along with
the joint variables and the other type consist of external forces or torques applied at specific

13.

Notice again that no symbol has been defined for the total number of such dampers in the model and no
numbering convention or order has been chosen for their identification. In the actual software, the collection of
records for such dampers will almost certainly be implemented in a linked list or queue, and the summation will
be accomplished by incrementing through this list.

14.

Again, for example, see D. J. Inman, Engineering Vibration, Prentice Hall, Englewood Cliffs, NJ, 1994.

Chapter 9: Modeling Dynamic Aspects of Machinery

13

locations on the moving bodies.


In this section we will model the first category, where an external torque acts directly with a
rotational joint variable or an external force acts directly with a rectilinear joint variable. Such a
force might, for example, be the result of the action of an electric or hydraulic motor or actuator
within joint number a which is programmed to provide a certain prescribed force or torque which
is a given funtion of time, or the force might be supplied by an elaborate control system in joint a
which provides a force as a certain funtion of the system geometry.
In any case, we assume that the functional variation of the force acting with joint variable a is
known and is described by a given function f a ( , t ) .15 We adopt the sign convention that the
force is positive when it tends to cause a positive increment in the position of joint variable a.
Therefore, the virtual work done by such an applied force onto the system during a small
virtual displacement is the product of the force and the virtual displacement of the joint.
f

U a = f a ( , t ) a = ai f a ( , t ) i

a = 1, 2, , n

i =1

The total virtual work done by all such applied joint forces during this small virtual
displacement is
f

U = ai f a ( , t ) i

(9.23)

i =1 a =1

9.11 Modeling an External Force Applied at a Point


The other major category of forces is comprised of external forces applied at specific points on
the moving bodies and having specified magnitudes and directions. In order to achieve a high
degree of flexibility in modeling we assume that each force is applied at a specified point, having
location ra on body number a, and is oriented to act along a line directed toward a specified point
rb from a specified point rc on bodies numbered b and c, respectively.
Note that the bodies and points a, b, and c may, but are not required to be distinct from each
other. If, for example, a, b, and c all refer to the same body, then the force always has a fixed
orientation with respect to that body, even though the body may rotate. If, as another example, b
and c both refer to points in the fixed frame while body a is moving, then the global orientation
of the force is constant. The variety of modeling possibilities is almost unlimited, and no
situation has arisen which could not be modeled. The only restriction is that points rb and rc
should never become coincident since this would cause the orientation of the force to become
undefined.
15.

In the IMP software there is an extensive library of functions which can be combined by mathematical operators
to describe most situations. One function in this library allows a table of numeric data, possibly empirical, and
the software performs a Fourier transform when the data is read to produce a differentiable periodic function.

Chapter 9: Modeling Dynamic Aspects of Machinery

14

As we did in Section 9.8, we define


Rbc = Rb Rc = T0b rb T0 c rc
As in Eq. (9.15), we define the distance between the two points as

bc = Rbct Rbc
and, as in Eq. (9.16), we define the unit vector showing the orientation of the line between the
two points as
ubc = Rbc bc
We assume that the functional description of the magnitude of the external force acting at the
point on body a is known and is described by a given function of system geometry and time
f abc ( , t ) . We assume that the force is positive when pointed toward the point of body b from
the point of body c. Therefore the force vector is

f abc ( , t ) = ubc f abc ( , t )

(9.24)

Next, for the point of body a where the external force is applied, we express a small virtual
displacement in terms of virtual displacements of the generalized coordinates
f

i =1

i =1

Ra = Wai Ra i = Rai i
The virtual work done onto the system by such an external force during a small virtual
displacement, then, is the vector dot product of the force and the virtual displacement. Therefore,
f

U abc = Rat fabc = Rait ubc f abc ( , t ) i


i =1

The total virtual work done by all such externally applied forces during this small virtual
displacement is16
f

U = Rait ubc f abc ( , t ) i

(9.25)

i =1 abc

16.

Again, no symbol has been defined for the total number of such forces in the model and no numbering
convention has been chosen for their identification or order. In the actual software, the records for these forces
will almost certainly be implemented in a linked list or queue, and the summation will be accomplished by
incrementing through this list.

Chapter 9: Modeling Dynamic Aspects of Machinery

15

9.12 Modeling an External Torque Applied to a Body


Following a parallel approach to that used for an applied external force we can model an external
torque applied to a moving body having a specified magnitude and specified orientation. To
achieve great power and flexibility in modeling we again assume that the magnitude of each
external torque is known and is described by a given function of time and system geometry
abc ( , t ) . This torque is applied to specified body a, and is oriented to act parallel to a line
directed toward specified point rb from specified point rc on bodies b and c, respectively.
As was done in the previous Section, the unit vector ubc is found from the two points on
bodies b and c. Therefore, the externally applied torque vector is

abc ( , t ) = ubc abc ( , t )

(9.26)

Next, for an arbitrary location on body a where the external torque is applied, we wish to
express a small virtual displacement in terms of virtual displacements of the generalized
coordinates
f

Ra = Wai Ra i
i =1

After reviewing the material of Section 5.6, however, and recalling that there is no particular
point of application for a torque, we see that this small virtual displacement (virtual twist) is
expressed by the form

Z
a
f
f

ai
i

i
i =1
i =1
Y
a
i

aZ
i
0

aY
i

aX
i

aX
i

RaX0
i

RaY0

i i
RaZ0
i

If we arrange this in the form of the second of the two Ball vectors of Eq. (5.46), we find that
the small virtual angular displacement of body a is

aX

X
a f Yi

%a = aY = a
Z i =1 i
a
Z
a
i

Wai ( 3, 2 )
f
f

i = Wai (1,3) i = W%ai i


i =1
i =1

Wai ( 2,1)

Chapter 9: Modeling Dynamic Aspects of Machinery

{ }

a = 1, 2, , (9.27)

16

where W(j,k) symbolizes the element of matrix W from row j, column k, and where we are now
using braces to signify that the information contained within them has been reformatted from a
(44) matrix form into a (31) column matrix in the order defined for the second Ball vector.17
The work done onto the system by such an externally applied torque during a small virtual
displacement, then, is the vector dot product of the torque and the virtual twist as expressed by
this second Ball vector. Therefore,
f

U abc = %at abc = {W%ai } ubc abc ( , t ) i


t

i =1

The total work done by all such externally applied torques during this small virtual
displacement is18
f

U = %at abc = {W%ai } ubc abc ( , t ) i


abc

(9.28)

i =1 abc

17.

See Section 5.6. Throughout the IMP software the Wai matrices and also the Aaij Da , and Qa matrices from
which they are formed are all calculated and stored in Ball vector form, thus saving time and redundant storage.

18.

Again, no symbol has been defined for the total number of such torques in the model and no numbering
convention or order has been chosen for their identification. In the actual software, the records for these torques
will almost certainly be implemented in a linked list or queue, and the summation will be accomplished by
incrementing through this list.

Chapter 9: Modeling Dynamic Aspects of Machinery

17

Chapter 10: Dynamic Equations of Motion


10.1 Introduction
Throughout the earlier chapters we have carefully formulated our equations in a very general
multi-degree of freedom form. In fact, our only two limiting assumptions up to here have been:
(1) that all bodies of our system are perfectly rigid, having no deformations or deflections, and (2)
that all joints act precisely as described by their mathematical models in Chapter 3, exhibiting no
effects such as backlash or clearances. Indeed, our efforts have produced a kinematic model of
our system which is extremely general and powerful. Even though its solution may be tedious for
hand calculation, we recognize that evaluation is intended by digital computation and we hope to
continue this generality and precision thoughout our work in dynamics.

10.2 Lagrange's Equation


While it may be possible to formulate the equations of motion for a general dynamic system by
sketching free-body diagrams, assigning sign conventions and notation, and applying Newton's
laws, such an approach is not well suited to three-dimensional problems of this complexity and
diversity. An approach based on energy is much less likely to result in error.
Although the concept of virtual work had been suggested by Aristotle1 and Galileo2 and then
Bernoulli3, and although d'Alembert4 had introduced inertial forces, it was Maupertuis5 who first
enunciated the principle of least action, and then Lagrange6, and later Hamilton7, who developed
these ideas into methods based on energy and virtual work which are especially applicable to the
numerical simulation of the class of dynamic problems which we now study.
Maupertius' principle of least action (sometimes mistakenly called Hamilton's principle)
states that nature is thrifty. That is, that nature finds a motion for a system between some
1

Aristrotle (384-322 BC), The Works of Aristotle, translated by W. D. Ross, Oxford, 1928.

Galileo Galilei (1564-1642), 1594.

Johannes Bernoulli (1667-1748), 1717.

Jean le Rond d'Alembert (1717-1783), Trait de Dynamique, David 'Ame, Paris, 1743,.(reprinted by GauthierVillars, Paris, 1921).

Pierre Louis Moreau de Maupertuis' (1698-1759), principle of least action was announced in a public session of
the Academy of France on April 15, 1744, and published in Essai de cosmologie, Amsterdam, 1746.

Joseph Louis Lagrange (1736-1813), Mchanique Analytique, Imprimeur-Libraire pour les Mathematiques,
Paris, 1788, (reprinted by Gauthier-Villars, Paris, 1888).

Sir William Rowan Hamilton (1805-1865), Lectures on Quaternions, Dublin, 1853.

Chapter 10: Dynamic Equations of Motion

beginning and ending states for which action (the difference between the system's kinetic energy
H and potential energy V is a stationary value. Through his ingenious first use of the calculus of
variations, Lagrange developed this principle into what is now called Lagrange's equation.8 The
particular form of this equation which fits our situation is as follows9

d H

dt ! i

H
V
+
= Fi

i i

i = 1, 2, , f

(10.1)

where Fi are generalized forces applied at each of the f generalized coordinates i to account for
effects that are not modeled by the energy functions. Consistent with our energy approach, this
form of Lagrange's equation requires that these generalized forces be found by modeling the
virtual work done during a small virtual displacement of the system.
f

U = Fi i

(10.2)

i =1

Once the virtual work is expressed in this form, the generalized forces Fi can be identified for
use with Eq. (10.1).

10.3 Generalized Momentum


In applying Lagrange's equation, shown in Eq. (10.1), one of the first tasks is to find the partial
derivatives of the system's kinetic energy with respect to its generalized velocities. These
derivatives yield the components of the generalized momentum of the system. Because of this
physical significance, we assign a new symbol pi to these derivatives.

pi =

H
! i

i = 1, 2, , f

(10.3)

Using our model in Eq. (9.6) for the kinetic energy of the system, we write

pi =

! i


t t
trace aT0 a J aT0aa
a =1

i = 1, 2, , f

(10.4)

Next, recognizing that a are functions of the generalized velocities, we refer to Eq. (7.24),
to see that

J. L. Lagrange, "Essai d'une nouvelle methode pour determiner les maxima et minima des formales integrales
indefinies", Miscellanea Taurinensio ou Mlanges de Turin, vol. 1, Turin Mathematical Society, 1759.

See, for example, McCuskey, S. W., An Introduction to Advanced Dynamics, Addison-Wesley, 1959, Chap. 2.

Chapter 10: Dynamic Equations of Motion


a
f
=
Wak! k = Wai
! i ! i k =1

(10.5)

Using this in Eq. (10.4), and noticing that all other factors are independent of velocity, we find

pi = trace WaiT0 a J aT0taat + trace aT0 a J aT0taWait


a =1

a =1

However, since the trace function produces a scalar result (which is identical to its own
transpose), we can transpose the second term here to show that

pi = trace WaiT0 a J aT0taat + trace WaiT0a J at T0taat


a =1

a =1

and, since the inertia matrix Ja is symmetric ( J at = J a ), we get

pi = trace WaiT0a J aT0taat


a =1

i = 1, 2, , f

(10.6)

This equation gives the components of the generalized momentum of our system. These
show the components of momentum (or angular momentum) of the system as experienced at each
of the generalized coordinates.

10.4 D'Alembert Inertia Forces


We can now continue with our development of the equations of motion of our system. If we take
the overall effects of the moving masses, as described by their kinetic energy, these are the
generalized d'Alembert inertia forces of the system. Equation (10.1) gives these as

Gidyn =

d
H
( pi )
dt
i

i = 1, 2, , f

and Eqs. (10.6) and (9.6) show these to be

Gidyn =

d

t t
t t
trace WaiT0a J aT0 aa
trace aT0a J aT0aa
dt a =1
i a =1

Next we use Eq. (7.24) to expand the forms for the angular velocity operator matrices so that
the generalized velocities appear explicitly in the expressions

Chapter 10: Dynamic Equations of Motion

G idyn

f

d
t

=
trace W ai T0 a J a T0 a W ak! k

dt a =1
k =1

f
f

trace W ak! k T0 a J a T0 a W aj!


i a =1
k =1

j =1

We now perform the time derivative required in the first term by use of the chain rule

f
dyn
Gi = trace WaiT0a J aT0ta Wak!!k

a =1
k =1

f
f


t
+
trace WaiT0 a J aT0a Wak! k ! j

j =1 j a =1
k =1

f
f

trace Wak! k T0a J aT0 a Waj! j


i a =1
k =1

j =1

and we use the derivative operator matrices of Eqs. (8.48) and (7.20) to perform the remaining
derivatives indicated

f
t r a c e W a i T 0 a J a T 0t a W a k !! k

a =1
k =1

f
f

+ t r a c e A a i j T 0 a J a T 0t a W

j=1 a =1
k =1

G id y n =

a k ! k

! j


t
t r a c e W a i W a j T 0 a J a T 0 a W a k ! k

j=1 a =1
k =1

j=1

+
j=1

t r a c e W a i T 0 a J a T 0t a W at j W a k ! k

a =1
k =1

t r a c e W a i T 0 a J a T 0t a A a k j ! k

a =1
k =1

t r a c e A a k i ! k T 0 a J a T 0t a

k =1

a =1

! j

! j

! j

W a j ! j
j=1

t r a c e W a k ! k W a i T 0 a J a T 0t a W a j ! j
j=1

k =1

a =1

t r a c e W a k ! k T 0 a J a T 0t a W at i W a j ! j
j=1

k =1

a =1

t r a c e W a k ! k T 0 a J a T 0t a

a
=
1
k
=
1

Chapter 10: Dynamic Equations of Motion

A a j i! j
j= 1

By recognizing and grouping similar factors we see that this becomes

Gidyn

f

t
= trace WaiT0 a J aT0a Wak!!k

a =1
k =1

t
f

t
+ trace Aaij + WaiWaj ! j T0a J aT0a Wak! k
a =1

k =1

j =1

f f

t
+ trace WaiT0 a J aT0a Aakj + WakWaj ! k! j
a =1
j =1 k =1

t
f
f

t
trace ( Aaki + WakWai )! k T0a J aT0 a Waj! j
j =1

a =1

k =1

t
f
f

t
trace Wak! k T0a J aT0a Aaji + WajWai ! j
a =1

k =1
j =1

Next we transpose the last term to give

Gidyn

f

t

= trace WaiT0 a J aT0a Wak!!k

a =1
k =1

t
f

t
+ trace Aaij + WaiWaj ! j T0a J aT0a Wak! k
a =1

k =1

j =1
t

f f

t
+ trace WaiT0 a J aT0a Aakj + WakWaj ! k! j
a =1
j =1 k =1

t
f

t
trace ( Aaki + WakWai )! k T0a J aT0 a Waj! j
j =1

a =1

k =1

t
f

t
trace Aaji + WajWai ! j T0a J aT0a Wak! k
a =1

k =1

j =1

and, by switching the labels of the indices j and k in the fourth term, it combines directly with the
fifth term to yield

Chapter 10: Dynamic Equations of Motion

f

dyn
t
Gi = trace WaiT0a J aT0a Wak!!k

a =1
k =1

t
f

t
+ trace Aaij + WaiWaj ! j T0a J aT0a Wak! k
a =1

k =1

j =1

f f

t
+ trace WaiT0a J aT0a Aakj + WakWaj ! k! j
a =1

j =1 k =1

t
f

t
trace Aaji + WajWai ! j T0a J aT0 a Wak! k
a =1

k =1

j =1

But, according to the identity expressed in Eq. (8.49), we see that the second and fourth terms
of the above equation nullify each other. This leaves

Gidyn

f

t
= trace WaiT0 a J aT0a Waj!! j
j =1

a =1

f f

t
+ trace WaiT0a J aT0 a Aajk + WajWak ! k! j
a =1

j =1 k =1

i = 1, 2, , f

(10.7)

i = 1, 2, , f

(10.8)

Also, using Eqs. (8.53) and (7.24) this can be written in the form

t
Gidyn = trace WaiT0 a J aT0ta ( i + ii )

a =1

10.5 Generalized Restoring Forces


The next contribution to our general equations of motion are the generalized restoring forces,
also called generalized static forces. These are the effects that are derived from potential energy
expressions. Using the symbol Gist , we see from Eq. (10.1) that

Gist =

V
i

i = 1, 2, , f

(10.9)

Reviewing the different sections of Chapter 9 we can expect to find restoring forces from the
effects of gravity, joint stiffnesses, and point to point springs. Adding the contributions of Eqs.
(9.13), (9.14), and (9.16), we find that the total potential energy from these three effects is

Chapter 10: Dynamic Equations of Motion

a =1

a =1

V = g tT0 a J aT0ta r0 + ka (a a 0 ) + kab ( ab ab0 )

(10.10)

ab

Before taking the derivative of this expression, let us first recall Eq. (9.15)
t
2ab = Rab
Rab

a, b = 1, 2, ,

and, defining the new symbol abi = ab / i , we take the derivative of this equation with
respect to the generalized coordinate i , which gives
t
t
t Rab + Rab

2 ab abi = Rabi
Rabi = 2 Rab
Rabi

Dividing this by 2 ab , and using Eqs. (9.19) and (9.22), we obtain


t

abi = ab / i = uab
Rabi

a, b = 1, 2, ,
i = 1, 2, , f

(10.11)

Finally we are prepared to evaluate Eq. (10.9) by taking the derivative of Eq. (10.10).

Gist = g tWaiT0a J aT0ta r0 g tT0 a J aT0taWait r0


a =1
n
ka
+ ai
a =1

a =1

(a a 0 ) + abi kab ( ab ab0 )


ab

It is easily verified from the definition of r0 that Wait r0 = 0 ; therefore, the second term of this
equation is null. Using Eq. (10.11) to express the final term, we obtain

a =1

a =1

ka (a a 0 )
Gist = g tWaiT0a J aT0ta r0 + ai
t uab kab ab
+ Rabi
ab

i = 1, 2, , f (10.12)

ab0 )

This is an expression for the restoring force experienced at each generalized coordinate as the
results of gravity, joint stiffnesses, and point to point springs.

10.6 Generalized Applied Forces


The final step in finding the equations of motion is to evaluate the generaized applied forces, Fi .
As explained following Eq. (10.1) and in Eq. (10.2) we must first write an expression for the
virtual work done during a small virtual displacement of the system. However, a quick review
reminds us that we have already written these expressions in Chapter 9. Therefore we can collect
the expressions for the virtual work done onto our system by all joint damping, from Eq. (9.13),

Chapter 10: Dynamic Equations of Motion

all point to point dampers, from Eq. (9.22), all forces applied at joint variables, from Eq. (9.23),
all forces applied at moving points, from Eq. (9.25), and all torques applied on moving bodies,
from Eq. (9.28). In one expression the overall virtual work is as follows
f

U =
i =1

[ ( c ! ) R u
f

ai a aj

! j
c u Rabj

t
t
abi ab ab ab

j =1 a =1

j =1 ab

t
+ ai f a ( , t ) + Rait ubc f abc ( , t ) + W$ai ubc abc ( , t ) i

{ }

a =1

abc

abc

Consistent with Eq. (10.2), we can now identify from this virtual work expression the
generalized forces acting on each of the generalized coordinates during the virtual displacement.
f

t
t uabcabuab
! j
Fi = ai caaj ! j Rabi
Rabj
j =1 a =1

j =1 ab

+ai f a ( , t ) + R u f

t
ai bc abc

a =1

abc

i = 1, 2, , f (10.13)

(, t ) + {W$ai } ubc abc ( , t )


t

abc

10.7 Complete Equations of Motion


Finally we collect all the parts of Eq. (10.1) to form the full equations of motion of our multibody system. From Eq. (10.7), (10.12), and (10.13) we obtain

t
tra c e W a i T 0 a J a T 0 a

a =1

f
W a j!! j
j =1

f
f

+ tra c e W a i T 0 a J a T 0t a A a jk + W a j W a k ! k !
a =1
j = 1 k = 1

g t W a i T 0 a J a T 0t a r0 + a i k a ( a a 0 )
a =1

a =1

+ R a tb i u a b k a b ( a b a b 0 )
ab

( a i c a a j! j )
j =1 a =1

t
t
R a b i u a b c a b u a b R a b j! j

j =1 a b

+ a i f a ( , t ) + R a ti u b c f a b c ( , t ) +
a =1

abc

abc

{W$ a i }

u b c a b c ( , t )
i = 1, 2, , f (10.14)

Since it is usual to show the effects of gravity as applied forces and the effects of damping as

Chapter 10: Dynamic Equations of Motion

restoring forces, in spite of how we derived their expressions, we may wish to rearrange these
final equations into the following form
t

f

t

trace WaiT0a J aT0a Waj!! j

a =1
j =1

f f

t
+ trace WaiT0a J aT0 a Aajk + WajWak ! k! j
a =1
j =1 k =1

caaj
! j
+ ai
j =1 a =1
f

t
t uab cabuab
! j
+ Rabi
Rabj
j =1 ab
n

ka (a a 0 )
+ ai
a =1

t uab kab ( ab ab 0 )
+ Rabi
ab

= g tWaiT0a J aT0ta r0
a =1
n

f a ( , t )
+ ai
a =1

t ubc f abc
+ Rai
abc

i = 1, 2, , f (10.15)

( , t )

t
+ W$ai ubc abc ( , t )
abc

{ }

These are the complete dynamic equations of motion of our system. They are a coupled set of
second order (!!k ), highly nonlinear (! k! j ) differential equations with variable coefficients.
The solution of these equations is not a trivial task. This will require numerical integration.
Worse yet, although it does not show explicitly, numerical iteration may be required throughout
the motion to insure that the kinematic loops remain closed. Yet the solution to these differential
equations does represent how the motion of our system develops from some set of initial
conditions. It is from the solution of these differential equations that the values of the generalized
coordinates, and their velocities and accelerations are determined.

Chapter 10: Dynamic Equations of Motion

Problems
10.1

Continue from the results of Problem 3.1 through 8.1 to write the non-linear dynamic
equations of motion of that system under the following assumptions:
a) Only body 3 has mass; its mass is symbolized by m.
b) There is no damping.
c) The only spring acts within joint D; it has a stiffness of k with a free position of D0 .
d) Gravity of magnitude g acts in the negative global Y direction.
e) A vertical load of weight W is applied at the free (left) end of body 2.

10.2

Verify that Wait r0 = 0 .

Chapter 10: Dynamic Equations of Motion

10

Chapter 11: Linearized Equations of Motion


11.1 Introduction
The general equations of motion, developed in the previous chapter, are, without question, the
complete and proper model of our dynamic system. However, because of their nonlinear
character, they are not directly amenable to the use of the many mathematical tools which are
available for linear systems. For example, most vibration and automatic control techniques are
directly valid only for linear systems. Indeed, even the electronic instrumentation which is
available for measurement of the dynamics of mechanical systems is often designed to work in
the frequency domain and, thus, inherently assumes that the system treated is linear.
If there is any hope for a general solution technique of these equations of motion, it is
probably through numeric integration by a digital computer. We will investigate such an
approach in Chapter 14. However, before looking at the general case, let us first study the
dynamics of our system in the local vicinity of its current position.

11.2 Linearization Assumptions


At its current position, whatever position this might be, we assert that the system in question
exists in accordance with our general dynamic equations of motion. If it is not in equilibrium in
the sense of being stationary or operating at constant velocity, then it is in dynamic equilibrium,
meaning that its accelerations are consistent with these same equations of motion.
Also we expect that, during the next interval of time, our system will continue in its current
state of motion, perhaps with acceleration. Also, at least if the time interval is short, the system
will not stray very far from its current geometry and velocity. Thus, for the current time t * with
the system position and velocity described by * and ! * , the motion will proceed according to
the equations
t = t* + t

i (t * + t ) = i* + xi (t )
! i (t * + t ) = ! i* + vi (t )

i = 1, 2, , f

(11.1)

!!i (t * + t ) = v!i (t )
where we have defined the new variable t for time continuing after this moment, and xi ( t ) and
vi ( t ) to represent the continuing position and velocity values of the generalized coordinates. The

Chapter 11: Linearized Equations of Motion

requirement that the velocities be equal to the derivatives of the positions is not included in their
definitions, but will be included as separate differential equations.1
x!i ( t ) = ! i* + vi ( t

i = 1, 2, , f

(11.2)

At t = 0 all xi (t ) = vi (t ) = 0 and, at least for a short time interval t, the motion persists in
such a way that all xi (t ) and vi ( t ) are small. Indeed we assert that we can place an upper
bound on t which ensures that all xi (t ) and vi ( t ) are small for that interval. By small is
2
2
meant, for example, that xi ( t ) xi ( t ) and vi ( t ) vi ( t ) so that all quadratic forms of
xi (t ) and vi ( t ) can be ignored in comparison with xi (t ) and vi ( t ) .

11.3 Linearization
Therefore, for the general dynamic equations of motion, as found in Eqs. (10.15) and repeated
here,

t
t
trace WaiT0 a J a T0 aWaj !! j

j =1 a =1
f
f
t

+ trace WaiT0 a J a T0ta Aakj + Wak W aj ! k! j

j =1 k =1 a =1

ca aj
! j
+ ai
j =1 a =1
f

t
t uab cab u ab
! j
+ Rabi
Rabj
j =1 ab
n

k a ( a a 0 )
+ ai
a =1

t uab k ab ( ab ab 0 )
+ Rabi
ab

= g tWaiT0 a J a T0ta r0
a =1
n

f a ( , t )
+ ai
a =1

t ubc f abc ( , t )
+ Rai

i = 1, 2, , f

(11.3)

abc

t
+ W% ai ubc abc ( , t )
abc

{ }

Note that the treatment of position and velocity as independent of each other is also an essential assumption in
the calculus of variations derivation of the Lagrange equation.

Chapter 11: Linearized Equations of Motion

we can make the substitutions indicated by Eqs. (11.1), expand all the coefficients in Taylor
series about their current positions and velocities, and discard all terms which are of quadratic or
higher degree in the variables xi (t ) and vi ( t ) .
f

t
t *
trace W ai T0 a J a T0 a W aj v! j

j =1 a = 1

f
f

+ tra ce W ai T0 a J a T0t a Aakj + W ak W aj ! k! j *

j =1 k =1 a =1

f
f

+ 2 trace W ai T0 a J a T0t a Aakj + W ak W aj ! k * v j

j =1 k =1 a =1

f
f
n
n
c a aj
! j * + ai
c a aj

+ ai
j =1 a =1

j =1 a =1

) *vj

f
f
t
t
*
t u ab c ab u ab
! j * + R abi
t u ab c ab u ab

+ R abi
R abj
R abj
vj
j = 1 ab

j = 1 ab

k a ( a a 0 ) + aij
k a ( a a 0 ) x j + ai
k a aj

+ ai
a =1

j =1 a =1

t u ab k ab ( ab ab 0 )
+ R abi

j = 1 a =1

t u ab k ab ( ab ab 0 ) x j + R abi
t u ab k ab R abj

+ R abij
j = 1 ab

j = 1 ab

xj

ab
f

xj

t
t I u ab u ab
k ab ( ab ab 0 ) / ab x j
+ R abi
R abj
j = 1 ab

= g t W ai T0 a J a T0t a r0

a =1
n

+ g t Aaij + W aiW aj T0 a J a T0t a r0 x j


j =1 a =1

f a ( , t ) + aij
f a ( , t ) x j + ai
f ad
( , t ) dj

+ ai
a =1

j =1 a =1
*

j = 1 a = 1 d =1

xj

t ubc f abc ( , t ) + R aij


t ubc f abc ( , t ) x j
+ R ai
j = 1 abc

abc
f

t
t I ubc ubc
f abc ( , t ) / bc
+ R ai
Rbcj

j = 1 abc

+
j = 1 abc d = 1

t ubc f abcd

R ai

abc

xj

( , t ) dj

xj

*
f
t
+ W% ai ubc abc ( , t ) +

{ A% aij }
j = 1 abc

ubc abc ( , t ) x j

i = 1, 2, , f

(11.4)

*
f
t
t
abc ( , t ) / bc x j
+ W% ai
I ubc ubc
Rbcj

j = 1 abc

f
n
t

+ W% ai ubc abcd
( , t ) dj
j = 1 abc d = 1

xj

Chapter 11: Linearized Equations of Motion

where new symbols are defined as follows


f a d ( , t ) = f a ( , t ) / d
f a bcd ( , t ) = f a b c ( , t ) / d

(11.5)

a bcd ( , t ) = a b c ( , t ) / d

All coefficients in Eqs. (11.4) and (11.5) are evaluated numerically at time t * and the only
variables remaining in these equations are t , xi (t ) , vi (t ) and their time derivatives.
If we rearrange Eqs. (11.4) into standard form, in decreasing order of the derivatives, we see

t
t
*
t r a c e W a i T 0 a J a T 0 a W a j v! j

j =1 a =1

t
2 tr a c e W a iT 0 a J a T 0 a

j =1 k =1 a =1
f

( a i c a a j )* v j

j =1 a =1
f

( A a jk

ab

*
a i j k a ( a a 0 ) x j +

j =1 a =1

+ R a tb i j u a b k a b
j =1 ab
f

+ R a tb i
j =1 ab

t
g

j =1 a =1
f

( a b

a b 0 )* x j + R a tb i u a b k a b u at b R a b j* x j
j =1 ab

( I u a b u at b ) R a b j k a b ( a b a b 0 ) / a b* x j

( Aa ij

+ W a i W a j T 0 a J a T 0t a r0* x j

*
a i j f a ( , t ) x j

j =1 a =1
f

*
a i k a a j x j

j =1 a =1

! *
k v j

+ R a tb i u a b c a b u at b R a b j* v j

+ W a jW a k

( , t ) d j* x j

a i f a d

j =1 a =1 d =1

t
*
R a i j u b c f a b c ( , t ) x j

j =1 abc
f

t
R a i

j =1 abc
f

( I u b c u bt c ) R b c j f a b c ( , t ) / b c* x j

t
R a i u b c f a b c d

j =1 abc d =1
f

j =1 abc
f

{W% a i }
n

j =1 abc d =1

( , t ) d j* x j

{W% a i }

u b c a b c d

j =1 a =1

u b c a b c ( , t )* x j

( , t ) d j* x j

( Aa jk

+ W a jW a k

*
! k ! j

i = 1, 2, , f (11.6)

( a i c a a j )! j* ab R a tb i u a b c a b u at b R a b j! j*

a i k a ( a a 0 )* R a tb i u a b k a b
a =1
n

ab

( a b

a b 0 )* + g t W a i T 0 a J a T 0t a r0*

+ a i f a ( , t )* + R a ti u b c f a b c ( , t )* +
a =1

{ A% a i j }
j =1 abc

( I u b c u bt c ) R b c j a b c ( , t ) / b c* x j

t
tr a c e W a iT 0 a J a T 0 a

j =1 k =1 a =1
f

abc

abc

Chapter 11: Linearized Equations of Motion

a =1

{W% a i }

u b c a b c ( , t )*

11.4 Linearized Equations of Motion


From the coefficients in Eqs. (11.6), we now define the following:

the system mass matrix, [ M ]

M ij = trace WaiT0a J aT0taWajt


a =1

j = 1, 2, , f

(11.7)

the system damping matrix, [ D ]

Dij =

t
caaj
+ Rabi
t uab cabuab

Rabj
ai
a =1
ab

i = 1, 2, , f

+ 2 trace WaiT0a J aT0ta Aajk + WajWak

k =1 a =1

i = 1, 2, , f

) ! k*
t

j = 1, 2, , f

(11.8)

and the system stiffness matrix, [ K ]


n

ka (a a0 ) + ai
kaaj

Kij = aij
a =1

a =1

t
t uab kab ( ab ab0 ) + Rabi
t uab kabuab

+ Rabij
Rabj
ab

ab

t
t I uabuab
kab ( ab ab0 ) / ab *
+ Rabi
Rabj
ab

g t Aaij + WaiWaj T0a J aT0ta r0


a =1
n

f a ( , t ) + ai
f ad
( , t ) dj

aij
a =1

a =1 d =1

t ubc f abc ( , t )
Raij

abc

t
t I ubcubc
f abc ( , t ) / bc
Rai
Rbcj
abc

t ubc f abcd
( , t ) dj

Rai

abc d =1

t
*
A%aij ubc abc ( , t )
abc

{ }

abc ( , t ) / bc *
{ } ( I ubcubct ) Rbcj

W%ai
abc

i = 1, 2, , f
j = 1, 2, , f

(11.9)

n
*
t

W%ai ubc abcd


( , t ) dj

{ }

abc d =1

Chapter 11: Linearized Equations of Motion

Finally we define the column vector of generalized applied forces, F

f f

Fi *,t = trace WaiT0a JaT0ta Aajk + WajWak

j =1k =1a=1

( )

*
f n
t * *
*
!
!
caaj
! *j

ai
k j
j =1a=1

t
t uabcabuab
ka (a a0 ) Rabi
t uabkab ( ab ab0 )
Rabi
Rabj ! *j ai
a=1

ab

ab

( )

i = 1, 2, , f (11.10)

( )

* fa *,t + Rai
t ubc fabc *,t
+ gtWaiT0a JaT0ta r0 + ai
a=1

a=1

abc

t
*
+ W%ai u bc abc *,t
abc

{ }

( )

( )

( )

( )

where the notation f a * , t , f abc * , t , and abc * , t signify that the applied forces and
torques f a ( , t ) , f abc ( , t ) , and abc ( , t ) are evaluated for the current geometry, but may
still be variable functions of time.
With these definitions of the coefficient matrices in Eqs. (11.7), (11.8), and (11.9) and the
column matrix of applied forces in Eq. (11.10), we are now able to express the linearized
equations of motion, from Eq. (11.6), in the very compact form

( )

Mv! + Dv + Kx = F * , t

(11.11)

where x is a column matrix of the changes xi ( t ) which are experienced by the f generalized
coordinates i* after time t * and v is a column matrix of the changes in velocity over and above
their values of ! i* at time t * as expressed in Eqs. (11.2). This set of differential must be solved
subject to the initial conditions that, at time t * where t = 0 , we have x = v = 0 . It must be
emphasized again that the coefficient matrices and the column vector of generalized forces have
all been evaluated numerically at time t * and, for a short time interval t , are treated in Eq.
(11.11) as independent of changes in geometry.2
By reviewing the Eqs. (11.7), (11.8), and (11.9) we see that these coefficient values can not
change unless or until the system moves to a new position, or the velocities ! * change.
Experience also shows that, even for complex mechanical systems, these values are usually weak
functions of system geometry and do not change in surprising or dramatic fashion. Unless the
system geometry changes, say by changes in x of a 0.25 radian (or length unit) or more, it is not
likely that these coefficient values will change noticeably, even if they are reevaluated. The same
holds true for the geometric factors in Eq. (11.10). However, depending on the application to
which the system is subjected, the applied forces and torques, f a * , t , f abc * , t , and

( )

( )

Remember that the variation of f a ( * , t ) , f abc ( * , t ) , and abc ( * , t ) with changes of geometry are
( * , t * ) , and
approximated to first order and included in the stiffness matrix through values of f ad ( * , t * ) , f abcd
* *
( , t ) as defined in Eqs. (11.5).
abcd

Chapter 11: Linearized Equations of Motion

( )

abc * , t may be large and/or quickly changing, perhaps even impulsive, functions of time.

11.5 Dynamic Equations with Specified Input Motions


In Section 6.6 we seperated the f degrees of freedom and, therefore, the generalized coordinates
into two groups. Those which have defined input motions we defined as specified generalized
coordinates (SGCs). There are NS of these. Any whose motions are not known we named free
generalized coordinates (FGCs). There are NF of these. We now give these two sets the
symbolism { S } and { F } , respectively.
Next we consider for which of the sets we have written the equations of motion. There is no
question; since our energy and virtual work expressions were written to include all energy,
regardless of cause or origin, we must agree that the equations found, both the non-linear
equations found in Chapter 10, Eqs. (10.15), and the linearized versions of Eqs. (11.11), are
written for the combined sets of all degrees of freedom, including both FGCs and SGCs.
Recalling from Section 6.6 that the FGCs precede the SGCs in the order of their identifying
labels, we make the distinction between the two sets clear by subdividing the matrices of Eqs.
(11.11) as follows

M FF
M
SF

M FS v!F DFF
+
M SS v!S DSF

DFS vF K FF
+
DSS vS K SF

K FS xF FF
=
K SS xS FS

(11.12)

The top submatrices describe the NF equations necessary to solve for the motions of the
FGCs; the bottom submatrices represent the NS equations for the SGCs. If we expand the top
equations and rearrange them into the usual form, putting known information on the right of the
equal sign, we have
M FF v!F + DFF vF + K FF xF = FF M FS v!S DFS vS K FS xS = GF

(11.13)

for the FGCs. Once these are solved for xF , vF and their derivatives, the remaining equations
FS = M SF v!F + M SS v!S + DSF vF + DSS vS + K SF xF + K SS xS

(11.14)

can be evaluated to find FS ; these give the driving forces and torques that must be applied at the
SGC joint variables in order to actually achieve the SGC motions which are specified. Thus all
the equations are useful, but only those in Eqs. (11.13) need to be solved as differential
equations. That is, only these need to be integrated. Those in Eqs. (11.14) need only to be
evaluated numerically. However, this last set is still important in the sense of its engineering
significance.

Chapter 11: Linearized Equations of Motion

Problems
11.1

Continue from the results of Problem 3.1 through 8.1, using the assumptions of Problem
10.1 and the following numeric data: l = 5 in, m = 9.6522 lb, k = 15 lb/in, D 0 = 20 in.
Find the linearized equation of motion about the position where = 30 .

11.2

Continue Problem 11.1 and find the equation relating W and such that ! = !! = 0 . Plot
a graph of W versus for the range 85 0

Chapter 11: Linearized Equations of Motion

Chapter 12: Equilibrium Position Analysis


12.1 Introduction
A challenge which arises periodically in the analysis of multibody mechanical systems is that of
determining a position of static equilibrium under a given set of applied loads. An example
might be the question of how much a vehicle suspension will be displaced by putting a variety of
known loads in its luggage compartment, or how much the axle will drop if the vehicle is hoisted
by the right-front bumper. Can these be determined by analysis at the time the vehicle is being
designed?
The description of such problems can be formed from the equations of motion of the system,
Eqs. (10.15). The question, however, is to determine the values of the generalized coordinates
for which the system is in a position of static equilibrium.
Of course, one way to find such a position is to time integrate the equations of motion until
all transients are lost through friction or damping. However, such a solution may be slow and
inefficient. In this chapter we hope to find a more direct technique for finding equilibrium.
Once a system reaches a position of static equilibrium and all transient effects subside, the
generalized velocities and accelerations vanish.1 At such a position, Eqs. (10.15) take the form
n

ka (a a 0 ) + Rabi
t uab kab ( ab ab0 )
ai

a =1

ab

f a ( )
= g tWaiT0a J aT0ta r0 + ai
a =1

i = 1, 2, , f

a =1

t
t ubc f abc ( ) + W"ai ubc abc ( )
+ Rai
abc

abc

{ }

12.2 Seeking a Nearby Position of Equilibrium


As we begin with a new system we do not know the equilibrium position, and we have no way to
assure that the generalized coordinates are initially in a proper position for equilibrium. Since
the final geometry is unknown, the above equations may not be balanced initially; they are
probably not balanced. Therefore, we transfer all terms to the right side of the equation, and give
this total combination of forces the symbols Fi which, initially, represent the generalized
1.

Here we assume that applied loads are not time-varying. However, they may still be functions of system
geometry. Therefore, until the final position is found, their final values may not be known.

Chapter 12: Equilibrium Position Analysis

unbalanced loads. From these equations we hope to seek out a position for the generalized
coordinates of our system for which these generalized forces Fi become zero.
n

ka (a a 0 ) Rabi
t uab kab ( ab ab0 )
Fi = ai
a =1

ab
n

f a ( )
+ g tWaiT0 a J aT0ta r0 + ai
a =1

i = 1, 2, , f

(12.1)

a =1

t
t ubc f abc ( ) W"ai ubc abc ( )
Rai
abc

abc

{ }

Let us now assert the hope that the true position of static equilibrium is reasonably close to
the current geometry or, said in another way, there may be multiple solutions and we will be
satisfied with finding the equilibrium position that is closest to the current geometry. With this
in mind, we expand Eqs. (12.1) in Taylor series to first order, dropping all quadratic and higher
order terms, just as we did in Chapter 11. This gives us a new formula for the generalized forces
Fi at a new position, hopefully near the current position. We then set these generalized forces at
the new position to zero with the hope that this position will more nearly describe an equilibrium
position.
f

Fi *
j 0

j =1 j

Fi +

f
n
= a i k a ( a a 0 )*
a =1

f
n
*
aij k a ( a a 0 ) j

j =1 a =1

*
a i k a a j j

j =1 a =1

R a tb i u a b k a b ( a b a b 0 )* R a tb ij u a b k a b ( a b a b 0 )* j
j =1 a b

ab
f

R a tb i u a b k a b u at b R a b j* j R a tb i I u a b u at b R a b j k a b ( a b a b 0 ) / a b * j

j =1 a b
j =1 a b

+ g t W a i T 0 a J a T 0t a r0* +
a =1

a =1

t
t
*
g A a ij + W a i W a j T 0 a J a T 0 a r0 j

j =1 a =1

f
n
+ a i f a ( )* +

f
n
*
aij f a ( ) j +

j =1 a =1

*
a i f a d ( ) d j j

j =1 a =1 d =1

+ R a ti u b c f a b c ( )* +

t
*
R a ij u b c f a b c ( ) j

j =1 a b c

abc
f

t
t
*
t
*
R a i I u b c u b c R b c j f a b c ( ) / b c j + R a i u b c f a b c d ( ) d j j

j =1 a b c
j =1 a b c d =1

+
+

abc
f

{W" a i }

f
u b c a b c ( )* +

{ A" a ij }
j =1 a b c

u b c a b c ( )* j

f
n
t
t

I u b c u bt c R b c j a b c ( ) / b c * j + W" a i u b c a b c d ( ) d j* j
W" a i

j =1 a b c
j =1 a b c d =1

From this expansion we collect all zero order terms; this gives an expression for Fi identical

Chapter 12: Equilibrium Position Analysis

to Eqs. (12.1), but which is numerically evaluated at the current geometry.


Collecting the first-order terms, however, gives us
*

Fi
j

j =1 j
f

ka (a a 0 ) j ai kaaj j
= aij
*

j =1 a =1

j =1 a =1

t
t uab kab ( ab ab 0 ) j Rabi
t uab kabuab
j
Rabij
Rabj
*

j =1 ab

j =1 ab

t
t ( I uabuab
Rabi
) Rabjt kab ( ab ab0 ) ab j
j =1 ab
f

+ g t ( Aaij + WaiWaj ) T0 a J aT0ta r0 j


*

j =1 a =1
f

f a ( ) j + ai f ad ( ) dj j
+ aij
*

j =1 a =1

j =1 a =1 d =1

t ubc f abc ( ) j + Rait ( I ubcubct ) Rbcj


f abc ( ) bc j
+ Rabij

j =1 abc
j =1 abc
f

( ) dj j
+ Rait ubc f abcd
*

j =1 abc d =1
f

t
+ A"aij ubc abc ( ) j + W"ai

j =1 abc
j =1 abc
f

{ }
n

t
bc ubc ) Rbcj abc ( ) bc j

{ } ( I u

t
( ) dj j
+ W"ai ubc abcd
j =1 abc d =1

{ }

From these we identify the system stiffness matrix K as follows2

2.

Note the sign reversal; this is required since, when we performed the Tayler series expansion, we brought all
terms to the right side of the equation while K is usually on the left.

Chapter 12: Equilibrium Position Analysis

ka (a a 0 ) + ai kaaj
K ij = aij
a =1

+ R u k

t
abij ab ab

ab

a =1

t
t uab kab uab

Rabj
( ab ab 0 ) + Rabi
ab

t
t ( I uab uab
+ Rabi
) Rabjt kab ( ab ab0 ) ab
ab

g t ( Aaij + WaiWaj ) T0 a J aT0ta r0


a =1
n

f a ( ) ai f ad ( ) dj
aij
a =1

a =1 d =1

R u f

t
abij bc abc

abc

( ) Rait ( I ubcubct ) Rbcj


abc

f abc ( ) bc

( ) dj
Rait ubc f abcd
abc d =1

t
A" aij ubc abc ( ) W"ai

abc
abc

{ }
n

{ } ( I u

t
bc bc

t
( ) dj
W"ai ubc abcd

{ }

) R

bcj

abc ( ) bc

i = 1, 2, , f
j = 1, 2, , f

abc d =1

(12.2)

and we note with satisfaction that this matches our previous definition in Eqs. (11.9).
Fitting the pieces back together, these definitions allow us to write our Taylor series
expansion of Eqs. (12.1) in the form
K F

(12.3)

which, of course, we only expect to be approximately equal since we have dropped the higher
order terms of the Taylor series. We can, however, proceed to solve Eq. (12.3) as follows

K 1F

(12.4)

and then use these corrections to modify the generalized coordinate position values

i i* + i

i = 1, 2, , f

(12.5)

Once the generalized coordinate positions are modified, we must apply the numerical
technique discussed in Chapter 6 to update the dependent joint variables, the transformation
matrices, and all other geometric data. When this is done the system should be at a new position
which is closer to equilibrium than the previous position, but probably still not exact.
How closely we have achieved equilibrium can now be determined by reevaluating the
unbalanced generalized forces of Eq. (12.1). From the magnitudes of these forces and the
position changes of Eq. (12.4) we can evaluate whether we have achieved an equilibrium
position within desired accuracy. If not, we can recursively apply Eqs. (12.2), (12.4), (12.5), and

Chapter 12: Equilibrium Position Analysis

the position solution of Chapter 6 until the desired accuracy is achieved.3 We then declare that
an equilibrium position has been found.
Of course, the process just described is a traditional Newton-Raphson numerical iteration
process looking for a zero of the function Fi. As with all Newton-Raphson processes, it has an
excellent (quadratic) convergence rate once in the vicinity of a solution. However, it also
sometimes experiences difficulties as will be discussed below.

12.3 Seeking Equilibrium with Some Generalized Coordinates Specified


If we have a multiple degree of freedom system and some of the freedoms are SGCs, then it may
still be desired to find an equilibrium position for only some of the generalized coordinates, the
FGCs, under a given set of loads. An example of this might be finding the equilibrium position
of a vehicle with a known load in the luggage compartment, as described above, but with the
steering wheel set to a specified angle (now an SGC).
This situation presents only one additional complication. Before seeking equilibrium, any
SGCs must be moved to their new positions and the geometry must be updated by the iteration
process of Chapter 6. After this is done, the Newton-Raphson search for equilibrium can be
performed in the manner described in Section 12.2 above, with the exception that Eqs. (12.1),
(12.2), (12.4), and (12.5) need only be formed for the FGCs rather than for all generalized
coordinates, while holding the SGCs at their specified positions. Convergence is still excellent
once in the vicinity of a solution. However, sometimes difficulties are still encountered. These
are discussed next.

12.4 Large Increments of Generalized Coordinates


One of the difficulties which can arise results when Eq. (12.4) predicts a very large increment for
one or more of the generalized coordinates, in fact so large that the iteration process of Chapter 6
does not converge or converges to a different closure of the kinematic loop equations.
Experience shows that this problem is usually the result of faulty data supplied by the user, such
as with gravity applying forces from mass data supplied in grams rather than in kilograms, or
stiffness matrix entries found from torsional spring rates supplied in inch-pounds per degree
rather than per radian.
Whatever the cause, failure of solution of the position equations can be very frustrating to the
user of the software system. To help avoid such failure, after the calculation of the recommended
increments for the generalized coordinates from Eq. (12.4) it is wise to test the magnitude of the

3.

The IMP software uses a default accuracy of i 105 . The user can override this limit if desired.

Chapter 12: Equilibrium Position Analysis

vector and scale its components proportionally smaller if it is beyond a chosen limiting size.

This may slow convergence to equilibrium, but it dramatically reduces the chance of failure of
the iterative position solution.

12.5 Stable versus Unstable Equilibrium


If the Newton-Raphson search for equilibrium is applied exactly as described in Sections 12.2,
and 12.3, it can lead to other unexpected solutions. As an example, consider the slider crank
system shown in Figure 12.1a. With a large force P applied on the piston as shown and with
gravity acting perpendicular to the plane of the page, we would probably expect to find an
equilibrium position with the piston moved to the far left and with the crank near the 180
position. Without modification, however, our computer program would actually move the piston
to the right and would find equilibrium at a crank angle of very nearly zero!

(a)

P
(b)

Figure 12.1 (a) Unbalanced; (b) Equilibrium position.


How could this be? What would cause movement to the right when the force appears to
demand movement to the left? Well, if we carefully reconsider what the Newton-Raphson search
procedure above was asked to do, we see that it was only asked to find a nearby position with Fi
= 0. It was not told to move in the direction implied by the unbalanced forces. How can this be
cured? First, if movement is in the "wrong direction", how can this be detected?
We also know that, for a position of stable equilibrium, potential energy should become a
minimum. Does this result from our Newton-Raphson search procedure? Again, our procedure
was not formulated to assure this.

4.

The IMP software uses a default limit of 1.0 (radian or length unit) for this test. The user may override
this limit if desired.

Chapter 12: Equilibrium Position Analysis

If we express potential energy in a Taylor series, we see


f

V =V* +
i =1

V
i + $
i

(12.6)

and, from the Lagrange equations, Eqs. (10.1), we know that V / i = Fi . Therefore, Eq.
(12.6) can be written as

V = V V * = F t 0

(12.7)

Therefore, the dot product of the vector of generalized unbalanced forces and the vector of
generalized position increments found from Eq. (12.4) tell us whether the system potential
energy increases or decreases during a change of position. Thus, we have found a very
convenient test to tell whether our search is progressing toward or away from a position of lesser
potential energy. However, this test does not tell us how to cure the problem when the test shows
that potential energy will increase.
But, looking again at Eq. (12.6), we see that the generalized unbalanced force vector F is
equal to the gradient of the potential energy function, of which we hope to find a minimum.
Also, a plethora of numerical methods exist in the literature which can generally be categorized
as steepest descent methods.5 All of these, in one way or another, require that, from some
starting point, the search for the minimum of a function should proceed in the direction of the
negative gradient of the function. For our situation, this gives

i = i* Fi

i = 1, 2, , f

(12.8)

where controls the size of the vector increment of the generalized positions.
The increment size may be chosen in a variety of ways depending on which search method
is chosen, and much has been written about the advantages and tradeoffs of the many methods
available, and their rates of convergence toward a solution. However, in our specific application,
we already know that, once we find the neighborhood of a valid solution, the Newton-Raphson
method of Eqs. (12.4) and (12.5) exhibits quadratic convergence and none of the steepest descent
methods improve on this. Therefore, we only need Eq. (12.8) to avoid searching toward false
solutions, that is, solutions with unstable equilibrium, as indicated by failure of the test of the
inequality (12.7).
Our newly modified algorithm starts each search increment by forming Eq. (12.4). Next the
inequality (12.7) is tested and, if the test is passed, the generalized coordinates are incremented
according to Eq. (12.5). For those situations where the test fails, however, Eq. (12.8) is applied
instead with an appropriate value of . The IMP software uses a default step size of = 1.0 / F .
This gives the system a noticeable change in position (particularly since the rotational
5.

See, for example, W. H. Press, et. al., Numerical Recipes: The Art of Scientific Computing, Cambridge
University Press, 1986, Chapter 10.

Chapter 12: Equilibrium Position Analysis

generalized coordinates are measured in radians) and, hopefully, the search will then continue
toward a position of stable equilibrium by Eq. (12.4).

12.6 Positions of Neutral Equilibrium


Another problem which can be encountered in seeking equilibrium is that, as we apply the
procedure described above, we may reach a position where the stiffness matrix becomes singular
or very nearly singular and Eq. (12.4) cannot be applied. Let us discuss how this can occur and
what can be done about it.
Let us consider the portion of Eq. (12.3) which corresponds to the FGCs only as discussed in
Section 12.3. The equations start in the form

[ K ]{ } = { F }
Let us suppose that we apply a Gauss-Jordan row reduction process with full pivoting for the
solution. As we proceed, the augmented K matrix develops as follows
K111

1
K 21 K11

0 K11

I K 21

K12
K 22

F1 I
K111 K12
=

F2 0 K 22 K 21 K111 K12

K111 F1

1
F2 K 21 K11 F1

At each step, we seek out another pivot element from the lower-right portion of the matrix,
the portion which contains K 22 K 21 K111 K12 and attempt to continue the reduction. If at some
step we find that all elements of K 22 K 21 K111 K12 are too small to consider, then the reduction
process must cease.6 At that time the equations have been reduced to the form
I K111 K12 1
K111 F1

1
2 F2 K 21 K11 F1
0

That subset of the FGCs which, as the result of pivoting, has ended in the subgroup { 2 } can
now be treated in either of two ways: We can set these { 2 } to zero in the hope that they may
be corrected in the next step, or we can use the corresponding unbalanced generalized forces
{F2 K 21 K111 F1} and Eq. (12.8) for that subgroup and then use the solution of the upper equations,
that is { 1} = { K111 F1 K111 K12 2 } for the others.
Once the search for equilibrium concludes, any generalized coordinates that remain in the
subsgroup { 2 } of the FGCs is said to be in neutral equilibrium. If Eq. (12.8) is used as the
basis for its increment, it is important that such steps be counted and that an upper limit be set.
As an example, suppose that our vehicle with the load in its luggage compartment is positioned
on a smooth horizontal road and suppose that, as the result of numerical truncation error, a very
small unbalanced load is calculated in the forward direction while there is no fore and aft

6.

The IMP software uses 10 5 for this test. The user can override this limit if desired.

Chapter 12: Equilibrium Position Analysis

stiffness for the vehicle; then Eq. (12.8) will produce a small forward movement of the vehicle.
Next, the same unbalanced load is found again, and another small movement results. When this
happens repeatedly, no progress is made which can relieve the deadly embrace and an endless
loop is the result. Thus an increment counter with an upper limit is of critical importance.7

7.

A default upper limit of 25 steps is used by the IMP software for this test. The user can override this limit if
desired.

Chapter 12: Equilibrium Position Analysis

Page intentionally blank.

Chapter 12: Equilibrium Position Analysis

10

Chapter 13: Frequency Response of Machinery


13.1 Introduction
When a machine is driven cyclically by a power source, such as a rotating machine with an
electric motor or an internal combustion engine, it typically operates with periodic motion but
often not with harmonic motion. Such a system is usually not characterized by the linearized
equations of Chapter 11 because of changes in its kinematic parameters and in its dynamic
equation coefficients. For these or other situations where the linearized equations of motion do
not pertain, the entire field of frequency response is not applicable and the methods of this
chapter should not be used.
However, there are situations where a kinematic system operates over a limited amplitude
range and is described quite well by linearlized equations of motion with approximately constant
dynamic coefficients. Examples include the vibratory motion of vehicle suspensions, or belt
tensioning idler pulleys, or many vibration isolation systems. These and other situations, where
the linearized equations of motion do pertain, are the focus of this chapter.

13.2 Homogeneous First-Order Equations of Motion


As early as 1750, Euler1, Lagrange2, and D. Bernoulli3, had been using trigonometric series to
represent periodic functions, but it was Laplace4 and Fourier5 who showed how these can be used
in the solution of linear differential equations.
Let us start by considering the linearized equations of motion. Equation (11.13) for the free
generalized coordinates is
M FF v!F + DFF vF + K FF xF = GF

(13.1)

and these must be solved along with Eq. (11.2), to ensure that
vF = x! F ! F*

(13.2)

1.

L. Euler, Nova Acta Academiae Scientiarum Petropropolitanae, vol. 5, 1754-1755, pp. 164-204.

2.

J. L. Lagrange, Miscellanea Taurinensio ou Mlanges de Turin, vol. 1, Turin Mathematical Society, 1759.

3.

Daniel Bernoulli (1700-1782), son of Johann Bernoulli, "Reflexions et eclaricissement sur les nouvelles
vibrations des corde," Memories de l'Academie Royale des Sciences et Belles Letters, Berlin, 1753.

4.

Marquis Pierre-Simon Laplace (1749-1827), Trait de Mcanique Cleste, 1799.

5.

Baron Jean Baptiste Joseph Fourier (1768-1830), Thorie analitique de la chaleur, Euvres, vol. 1, Paris, 1822.

Chapter 13: Frequency Response of Machinery

Here we consider only the equations dealing with the NF free generalized coordinates (FGCs)
since the motions of the specified generalized coordinates (SGCs) are known a priori.
Since we believe that our system exhibits periodic motion for its transient response to a
disturbance, we attempt to use a harmonic form for a trial solution

xF = { } e t

(13.3)

vF = { } e t ! F*

(13.4)

and, from Eq. (13.2),

Substituting these into the homogeneous form of Eq. (13.1) and dividing by the common factor
of et leaves
2 M FF + DFF + K FF = 0

(13.5)

However, for this equation to have a nontrivial solution, the coefficient matrix must be singular
det 2 M FF + DFF + K FF = 0

(13.6)

Since this determinant is of size (NFNF) with elements which are each quadratic functions of

, it produces a polynomial of degree (2NF) in . Assumedly, the (2NF) values of which satisfy
as roots of this equation could be found by a numerical search procedure.6 However there is a
better way.
Instead, we return to Eq. (11.13), including the applied forces. Augmenting these with Eq.
(13.2), in the form of the identity M FF x! F M FF vF = M FF! F* , this set of differential equations can
be written in the form

0
M
FF

M FF v!F M FF

0 x!F DFF

0 vF M FF! F*
=

K FF xF GF

However, by adding the identity DFF x!F DFF vF = DFF! F* to the second set of equations, they
become7

0
M
FF

M FF v!F M FF

DFF x!F 0

0 vF M FF! F*
=

K FF xF DFF! F* + GF

(13.7)

6.

This equation could have been studied in depth but, historically, this was not to be. Instead, the parallel linear
form shown in Eq. (13.12) below has received much more attention.

Notice that, even though vF is small, x!F may be large. This modification is important, however, since it makes
the coefficient matrices symmetric, but still follows the linearization assumptions of Chapter 11.

Chapter 13: Frequency Response of Machinery

Defining new coefficient matrices,

0
A=
M FF

M FF
DFF

and

M
B = FF
0

0
K FF

(13.8)

and a new vector of unknowns,

v
y= F
xF

(13.9)

of size (2NF), our system can be described by the first-order set of differential equations8

M FF! F*
Ay! By =

*
DFF! F + GF

(13.10)

with the initial conditions that, when t = 0 , we must have y = 0.


We take notice that, since the MFF, DFF, and KFF coefficient matrices of the original equations
are real and symmetric, the form of the definitions of Eqs. (13.8) show that the new A and B
matrices are also real and symmetric.
As before, we attempt a harmonic form for a trial solution

y = {} e t

(13.11)

Substituting this into the homogeneous form of Eq. (13.10) and dividing by the common factor
of et leaves

[ A B ] = 0

(13.12)

In the form shown, where the coefficients are linear expressions in , Eq. (13.12) is called the
generalized eigenvalue problem. Alternatively, if it is premultiplied by A1 , it can be put into
the form
1

M FF
DFF
I
I

1
M FF
K FF
{} = 0
0

(13.13)

which is called simply the eigenvalue problem. This form of equation has been studied
extensively over many years and software for its solution exists in almost all numerical software

8.

The vector space for this form, which treats vF and xF as independent, is referred to as "state space".

Chapter 13: Frequency Response of Machinery

libraries.9
For either equation to have a nontrivial solution the coefficient matrix must be singular; that
is, starting from Eq. (13.12),

det [ A B ] = 0

(13.14)

The expansion of this determinant yields a polynomial of degree (2NF) in which is called the
characteristic or secular equation of the system. This equation can be solved for (2NF) values i
which are called characteristic values or eigenvalues of the system. Since the A and B matrices
are real and symmetric, it has been proven that the eigenvalues must either be real or must occur
in complex conjugate pairs.10
Assuming, as we now do (temporarily), that all eigenvalues are distinct, they can be arranged
to form a diagonal matrix11

0
1 0

= 0 " 0
0 0 2 NF
Each of the eigenvalues i can, in turn, be back-substituted into either Eq. (13.12) or Eq.
(13.13) as appropriate and solved for a column vector i called an eigenvector. However,
recalling Eq. (13.14), the coefficient matrix of Eq. (13.12) is singular; therefore, each eigenvector
may only be determined to the nearest arbitrary multiplying constant. However, these
eigenvectors can be arranged in the same order as the diagonal elements of to form columns
of another (2NF 2NF) matrix

= [1 # i # 2 NF ]
which is called the modal matrix.
When we reconstruct the general form of Eq. (13.11) so that all eigenvalues and eigenvectors
are included, we get the full solution of the homogeneous linearized equations of motion
9.

For theoretical background, see for example J. H. Wilkinson, The Algebraic Eigenvalue Problem, Oxford
University Press, New York, 1965. As one example of software, EISPACK is a public domain collection of
FORTRAN subroutines for computing the eigenvalues and/or eigenvectors of various types of matrices. It
includes software for both Eq. (13.12) and Eq. (13.13). EISPACK was developed with the support of the
National Science Foundation in the mid-1960s and was one of the first completely systematized collections of
linear algebra software. Since that time, however, much has changed in computer architectures and
mathematical algorithms, and a newer linear algebra package, LAPACK, has been developed to supercede
EISPACK. For further information, see http://www.netlib.org/lapack/

10.

See, for example, F. B. Hildebrand, Methods of Applied Mathematics, Prentice-Hall, Inc., 2nd ed., 1965.

11.

Extension to the case of repeated eigenvalues is presented in Section 14.3.

Chapter 13: Frequency Response of Machinery

y = exp ( t ) C

(13.15)

where exp ( t ) is a diagonal matrix with values of ei t in the diagonal entries, t is time, and C
is a column of 2NF yet unknown constants which depend on the initial conditions.12
Even though we have manipulated Eq. (13.12) into the form called the generalized
eigenvalue problem, so that we can take advantage of available software for solution, we should
understand that the eigenvalues i which are found must be the same as if we had continued with
the solution of Eq. (13.6) since the same physical system is described in both cases.

13.3 Modal Coordinates


We will return to the completion of the solution of Eq. (13.15) in Chapter 14. However, in this
chapter, as the title specifies, we wish to study the frequency response of our mechanical system
to an external disturbance. In order to do this we have need for the eigenvalues and eigenvectors
of our system. That has been our reason for their introduction in the preceding Section.
Even before completing our solution in the time domain, let us consider further the
implications of the form of Eq. (13.15). Suppose that we define a new column vector of
coordinates, z, of size (2NF), called modal coordinates, with the following definition
y =z

(13.16)

Although this might seem like a reverse manner of making a definition, recalling Eq. (13.15)
shows that this gives

z = exp ( t ) C

(13.17)

This means that, if only one of the constants Ci is nonzero, then only that single modal
coordinate, zi, becomes active and it operates with frequency and damping defined by the ith
eigenvalue i. All other modal coordinates remain motionless.13 But even more, if we now
return to Eq. (13.16) we see that each of the y coordinates (the NF FGC displacements and
velocities) respond at this same characteristic normal mode frequency and damping rate, but with
different amplitudes defined by the elements of i, the ith eigenvector. When this happens, the
system is said to be operating in one of its principal or normal modes.
Next let us consider two copies of Eq. (13.12), one corresponding to the jth eigenvalue and
the other corresponding to the kth eigenvalue.

12.

Note that these constants compensate for the limited ability to determine each eigenvector to only an arbitrary
multiplying constant.

13.

Since eigenvalues occur in complex conjugate pairs, the ideas here must be understood as referring to a single
real eigenvalue or a single complex conjugate pair.

Chapter 13: Frequency Response of Machinery

j A B j = 0
[ k A B ]k = 0
Let us premultiply the first of these by kt and the second by tj .

kt j A B j = 0
tj [ k A B ]k = 0
If we now subtract the second equation from the transpose of the first, remembering that A and B
are symmetric, we obtain

k ) tj A k = 0

(13.18)

This equation says that, for j k , since we have assumed that j k , we must have
A k = 0 .14 Furthermore, if we consider the form
t
j

t [ A B ] = 0

(13.19)

This matrix must be square and diagonal. If we define two new matrices
A = t A

and

B = t B

(13.20)

then, Eq. (13.18) shows that A must be a diagonal matrix since it has zeroes for all off diagonal
elements, where j k . Also, from Eq. (13.19), B must be diagonal as well. Therefore, Eq.
(13.19) are called the orthogonality conditions. We see here that the modal matrix is not
orthogonal in the usual sense, since 1 t , but it is said to be orthogonal with respect to both A
and B. It diagonalizes both A and B.
Recalling that each of the eigenvectors is only determined to the nearest multiplying constant.
It can now be scaled by an arbitrary constant. Therefore, we are free to divide each eigenvector
i by it Ai , thus scaling them so that A becomes an identity matrix.15 Then Eq. (13.19) shows
that we will have B =. If we then premultiply Eq. (13.10) by t and recall Eq. (13.16), we find
that the equations of motion, in modal coordinates, become
*
M FF! F
z! z = t

*
DFF! F + GF

(13.21)

14.

Extension to the case of repeated eigenvalues is presented in Section 14.3.

15.

If we consider Eq. (13.8) we see that the only way in which this scale factor can be zero is if mass has been
ignored for enough bodies that [MFF] is singular. That is, such that it is possible to find a set of non-zero
velocities for the FGCs for which the system has no kinetic energy. This is considered a modeling error. The
user should be notified and requested to modify the model with appropriate mass values.

Chapter 13: Frequency Response of Machinery

Here we see that we have a set of (2NF) equations. However, they are now uncoupled and can
be considered either together or separately.
*
M FF! F
z!i i zi = it

*
DFF! F + GF

i = 1, 2,# , 2NF

(13.22)

13.4 Laplace Transformed Equations of Motion


Instead of completing our solution in the time domain, we now switch to the frequency domain
by taking the Laplace transform of our equations of motion. Remembering the definition of GF
from Eq. (11.12), the Laplace transform of Eq. (13.21) is

MFF! F*

s
t

sz ( s ) z0 z ( s ) = 1
D ! * + F ( s ) M s2 x ( s ) sx x! D sx ( s ) x K x ( s )
FF F
F
FS
S
S0
S0
FS S
S0
FS S
s

where s represents the Laplace transform variable, xS 0 and x!S 0 are the initial positions and
velocities of the SGCs, z0 are the initial values of the modal coordinates, and z(s), FF ( s ) , and
xS(s) are the Laplace transforms of the modal coordinates, of the generalized forces, and of the
SGC positions, respectively.
Remembering that the initial conditions require that xS 0 = 0 and x!S 0 = ! S* , this equation can
be rearranged to read

MFF!F*

s
[ sI ] z ( s) = z0 +t

1 D ! * + M ! * + F ( s) s2M + sD + K x ( s)
FS S
F
FS
FS S
FS
s FF F

(13.23)

However, for what is usually called frequency response, we are only interested in the
sustained response of our system after the transients have been damped to zero. Therefore, we
eliminate the initial condition terms of the above equation.

M FF! F*

s
[ sI ] z ( s ) = t

1 D ! * + M ! * + F ( s ) s 2 M + sD + K x ( s )
FS S
F
FS
FS
FS S

s FF F

(13.24)

The solution to this equation can be written

Chapter 13: Frequency Response of Machinery

M FF! F*

s
z ( s ) = [ sI ] t

1 D ! * + M ! * + F ( s ) s 2 M + sD + K x ( s )
FF F
FS S
F
FS
FS
FS S

(13.25)

and, from the definition of z in Eq. (13.16), this becomes


1

M FF! F*

s
y ( s ) = [ sI ] t

1 D ! * + M ! * + F ( s ) s 2 M + sD + K x ( s )
FF F
FS S
F
FS
FS
FS S

which, along with Eqs (13.9), gives


1

M FF! F*

vF ( s )
1 t

= [ sI ]

xF ( s )
1 D ! * + M ! * + F ( s ) s 2 M + sD + K x ( s )
FF F
FS S
F
FS
FS
FS S

(13.26)

Remembering that the matrix [ sI ] is diagonal and can be inverted term by term, we find that,
in index notation, Eq. (13.26) becomes
f
NF + j,k NF
NF +i,k NF jk NF
f

*
*
*
!
!
D

F
s

s2M jh + sDjh + K jh )xh ( s)


(
)
(
M jh!h +

jh
h
NF
+
j
,
k
jh
h
NF
+
j
,
k
j

s h=1
k =1 ( s k ) j =1 s h=1

h=NF +1
h=NF +1

2NF

xi ( s) =

i = 1,2,#, NF (13.27)

13.5 Transfer Functions


Equations (13.26) and (13.27) show the Laplace transform of the response of the FGCs to all
generalized applied forces FF(s) and SGC motions xS(s) acting on the system. If we choose a
particular one of these as the input of interest, we can express the response of our system to
excitation from that particular source. For example, if we assume that the input is an excitation
coming from a particular generalized force F alone, then the response of the FGC xi is
xi ( s ) =

2 NF

NF jk
s
j =1

( sNF )

k =1

+ i ,k
k

NF

M
h =1

! h* +

jh

NF + j , k
s

NF

! h* + NF + j , k

jh

h =1

NF

h=

i = 1,2,#, NF

M jh! h* + NF + , k F ( s ) = 1,2,#, f
+1

But, if the excitation comes from the motion of SGC x alone, then the response of the FGC xi is
f
NF + j ,k NF
NF +i,k NF jk NF

*
Djh! h* +NF + j ,k M jh! h* NF + j ,k s2 M j + sDj + K j x ( s )
M jh! h +

s h=1
k =1 ( s k ) j =1
h=NF +1

s h=1

2NF

xi, ( s ) =

i = 1,2,#, NF ; = NF +1,#, f

Chapter 13: Frequency Response of Machinery

Chapter 14: Time Response of Machinery


14.1 Inverse Laplace Transform
The overall purpose of this Chapter is to provide solutions to the equations of motion of our
dynamic system for the unknown motions of the FGCs as functions of time. With these and the
methods of the previous chapters, the overall motion of the entire system becomes known.
There are two sets of equations for which we have yet to find final solutions, the modal
amplitude equations have not yet been integrated to provide explicit funtions of time, and the
Laplace transform solutions are still in the frequency domain and have not yet been transformed
back to the time domain. In this Chapter we hope to finish both of these solutions.
Chapter 13 shows the Laplace transform of the response of the FGCs of our system to any
generalized applied forces FF(s) and SGC motions xS(s) acting on the system. Remembering Eq.
(13.27), we have
f
NF + j,k NF
NF +i,k NF jk NF
f

*
Djh!h* +NF + j,k M jh!h* +NF + j ,k Fj ( s) ( s2M jh + sDjh + K jh )xh ( s)
M jh!h +

s h=1
k =1 ( s k ) j =1 s h=1

h=NF +1
h=NF +1

2NF

xi ( s) =

i = 1, 2," , NF

(14.1)

We must now consider how we will invert this Laplace transform and thereby return our
solution to the time domain. By definition, the inverse Laplace transform can be written as
follows
xi ( t ) =

+ j

2 j

xi ( s ) e st ds

i = 1, 2," , NF

(14.2)

which is called the Bromwich integral1 or, sometimes, the Fourier-Mellin integral.2
For a function such as xi(s) which is defined over the complex s plane, a location where the
denominator becomes zero produces an infinite value and is called a pole of the function. As
shown in Figure 14.1a, Eq. (14.2) is a line integral in the complex s plane taken along a line
parallel to the imaginary axis and to the right of all poles of the integrand.
It is possible to evaluate an approximate value for this integral by numeric integration;
however, there is a better way which computes more quickly and avoids approximation. The line

1.

Thomas John l'Anson Bromwich (1875-1929), Saint John's College, Cambridge, England.

2.

Robert Hjalmar Mellin (1854-1933), first professor of mathematics, Technical University of Finland.

Chapter 14: Time Response of Machinery

integral of Eq. (14.2) can be extended along a curve at infinity surrounding the left half-plane as
shown in Figure 14.1b, thus forming a simple-closed curve, called a Jordan curve, which
encloses all of the poles.3 It has been shown that the value of the portion of the integral of Eq.
(14.2) along this arc at infinity is zero and does not change the value of the total integral.4
Therefore, the integral sought is equal to the integral around the closed curve shown,
xi ( t ) =

x (s)e
2 j #
i

st

i = 1, 2," , NF

ds

and, substituting Eq. (14.1), this becomes


xi ( t ) =

NF + j,k NF
st
NF +i,k NF jk NF
f

*
*
!
!
!*
M

+
D

jh h

jh h
NF + j ,k M jh h +NF + j ,k Gj ( s ) e ds

#
2 j k =1 ( s k ) j =1 s h=1
s h=1

h=NF +1

i = 1, 2," , NF (14.3)
1

2NF

Imag(s)
Imag(s)

Poles
R=

Real(s)

Real((s)

Figure 14.1 (a) Integration path for Bromwich integral; (b) Jordan curve.

3.

Marie Ennemond Camille Jordan (1838-1922), Cours d'Analyse de l'cole Polytechnique, 1887. Jordan of the
Jordan curve is the same as for the Jordan normal form of Section 14.3.

4.

See, for example, Ruel V. Churchill, Complex Variables and Applications, McGraw-Hill Book Company, Inc.,
1960.

Chapter 14: Time Response of Machinery

14.2 Cauchy's Residue Theorem


The integrand of our equation is an analytic function of the complex operator s throughout the
region of the complex plane enclosed by the curve of Figure 14.1b, except at isolated singular
points, where the denominator becomes zero, such as the origin and the 2NF points where s =k.
Additional singularities may occur where there are zeroes in the denominators of the forcing
functions Gj(s). Let us require that the forcing functions be replaced by its partial fraction
expansions and, therefore, expressed in the form5
NP

G j (s) =
=1

g j ( s )

j = 1, 2," , NF

( s 2NF + )

(14.4)

where NP represents the number of additional values of which are identified as zeroes of the
denominators of Eq. (14.4) and, through these, of Eq. (14.3). Let us also require that these
additional poles be numbered consecutively to follow the numbering of the eigenvalues. In
keeping with our current assumption that the eigenvalues of our system are distinct, we assume,
temporarily, that the additional poles of the forcing functions are distinct from each other, from
the origin, and from the eigenvalues.6 Thus all (2NF+NP+1) poles of the response function are,
for now, simple poles.
If a function f(s) has an isolated singular point at the location s = m then the value defined
by

Res f (m ) = ( s m ) f ( s )

(14.5)

s = m

is called the residue of the function at that location. With this definition, Cauchy's7 residue
theorem8 states that the integral around a closed curve of a complex function is equal to 2j times
the sum of the residues of the funtion at all poles surrounded by the curve.9 Where there are only
simple poles, this says that

# f ( s ) ds = 2 j {( s ) f ( s )}
m

s = m

(14.6)

Starting from Eq. (14.3), for our case the residue theorem can be used to replace the integral
with a summation

5.

See, for example, G. D. Korn and T. M. Korn, Mathematical Handbok for Scientists and Engineers, McGrawHill Book Company, Inc., 1961, Section 1.7-4, pp. 21-22.

6.

The extension to the case of multiple poles is shown in Section14.3.

7.

Augustin Louis Cauchy (1789-1857), Sur un nouveau genre de calcul analogue au calcul infinitsimal, 1826.

8.

See, for example, Churchill, op. cit., Section 67.

There is a (bad) joke about a mathematician who named his dog Cauchy because it left a residue at every pole.

Chapter 14: Time Response of Machinery

xi ( t ) =

2 j 2NF NF NF NF +i,k
(j,kMjh +NF +j,kDjh )!h*
2 j k=1 j=1 h=1 k

( s m)NF +i,kNF + j,k f


( s m)NF +i,kNF + j,k NP gjh(s) st
2 j 2NF +NP 2NF NF ( s m )NF +i,k NF
j,kMjh +NF + j,k Djh )!h* +
Mjh!h* +
(

2 j m=1 k=1 j=1 ( s k ) s h=1


( s k )
( s k ) s
h=NF +1
h=1 ( s 2NF +h )
i = 1, 2," , NF

s=m

(14.7)

where the first line results from the pole at the origin.
Careful evaluation shows that, when the m limit is taken for s in the terms of the second
line, the numerator produces zero for ( s m ) for every term of the summation over m except
when m = k or when m = 2NF + h . For those terms the ( s m ) factor in the numerator,
which evaluates to zero for most terms, cancels one of the factors in the denominator. Also the
first line combines with the first portion of the second line, leaving

xi ( t ) =

2 NF

NF NF

2 NF

NF

k =1

j =1

NF +i ,k

k
k =1

( j ,k M jh + NF + j ,k D jh )! h* ( e t 1) + NF +i ,k NF + j ,k

2 NF

NF

NP

g jh (k )

k =1

j =1

h =1

( k 2NF +h )

j =1 h =1

+ NF +i ,k NF + j ,k

2 NF

NF

NP

k =1

j =1

h =1

ek t + NF +i , k NF + j , k

NF

h=

M jh! h*ek t

+1

g jh (2 NF + h )

( 2NF +h k )

e2 NF +ht

i = 1, 2," , NF

which can be rearranged to read


xi ( t ) =

2 NF

( e t 1)
k

k =1

NF +i ,k
k

2 NF

NF

k =1

j =1

NF NF

+ NF +i ,k NF + j , k

j ,k

M jh + NF + j ,k D jh )! h*

j =1 h =1

2 NF + h t
NP g ( ) e k t g (
f
jh
k
jh
2 NF + h ) e
* k t
!
M jh h e +
( k 2 NF + h )
h =1
h =NF +1

i = 1, 2," , NF

(14.8)

A little reflection shows what powerful advantages we have achieved by use of the residue
theorem for performing the integral of Eq. (14.2). We note that the integration required for the
inversion of the Laplace transform has become a summation over a discrete set of terms, and no
approximation has been required. Also, this formula includes terms resulting from response of
the system to frequencies introduced by the forcing functions.
Although the formula may look a little foreboding, it is really quite straightforward.
Typically, the several terms of the nested summations combine numerically into damped
sinusoidal oscillations at NF frequencies defined by the complex conjugate pairs of eigenvalues,
and NP more response terms with frequencies and damping values defined by the applied forcing
functions. Although finding the eigenvalues is thought by some to be a time-consuming
calculation, it must be remembered that even a complex mechanical system of rigid bodies
usually has NF of less than ten. Therefore, the computation is quite rapid.

Chapter 14: Time Response of Machinery

14.3 Systems with Repeated Eigenvalues


In the preceding Sections we found it convenient to assume that the eigenvalues of our system
are distinct. Although this is usually the case, how can we find a solution to our linearized
equations of motion which is not subject to this restriction?
If, while using the residue theorem to invert the Laplace transform of Eq. (14.1), we
encounter a repeated eigenvalue or a multiple pole coming from Eq. (14.4) with equal values of
m , say with multiplicity n, there will be n terms all of which are of the form
2 j ( s m ) f ( s ) e st

(14.9)

s = m

in the inverse transform of Eq. (14.7). These must be replaced with n terms of the form
d

= 0 ds
n 1

2 j

{( s m )

f (s)

t ( n 1)
!

e st

(14.10)
s = m

However, further expansion of this case is left to the reader as an exercise. Instead, we will
extend the modal solutions of Chapter 13 to include the case of repeated eigenvalues.
For the class of systems considered in this text, we found in Eq. (11.12), that the linearized
equations of motion for the free generalized coordinates are
M FF v!F + DFF vF + K FF xF = FF M FS v!S DFS x!S K FS xS = GF
and, in Eq. (13.7), we wrote this in first-order form

0
M
FF

M FF v!F M FF

DFF x!F 0

0 vF M FF! F*
=

K FF xF DFF! F* + GF

Using the definition of Eq. (13.9)

v
y= F
xF
and, multiplying these equations by the inverse of the lead matrix, we can put them into the form
1
M FF
DFF
y!
I

1
1
M FF
GF
M FF
K FF
y
=

*
0

! F

(14.11)

From the values at the linearization set point, the initial conditions for this system are that, when
t = 0 , then vF = xF = y = 0 .
As we pointed out in Eq. (13.13), the homogeneous form of this equation gives an eigenvalue

Chapter 14: Time Response of Machinery

problem, and has the same eigenvalues and eigenvectors as previously found from Eq. (13.12).
However, in this Section, we are no longer willing to assume that the eigenvalues are distinct.
Nevertheless, we can still define a modal matrix , as we did in Eq. (13.16), and define a set of
modal coordiantes z

y =z

(14.12)

In terms of these modal coordinates, Eqs. (14.11) become


1
M FF
DFF

z!

1
1
M FF
GF
M FF
K FF

z
=

*
0

! F

which can be premultiplied by 1 to show that


1
M FF
DFF
z! 1
I

1
1
M FF
K FF
1 M FF GF

z
=

*
0

! F

with the initial conditions that, at t = 0 , z = 0.


Let us now define two new symbols
1
M FF
DFF

= 1

1
M FF
K FF

and

1
M FF
GF

*
! F

= 1

(14.13)

which reduce our modal differential equations of motion to the form

z! z =

(14.14)

In previous Sections, where we assumed that all eigenvalues are distinct, the matrix formed
in Eq. (14.13) was of size ( 2 f 2 f ) and became diagonalized with values equal to the
eigenvalues on its diagonal. Now, however, where we consider that some of the eigenvalues may
be repeated, this diagonalization may not be possible. In such a case, the system is said to be
defective. Still, even with a defective system, it is always possible to find a matrix which
reduces the matrix to what is called Jordan normal form.10,11,12 Such a form is block diagonal

10

Marie Ennemond Camille Jordan (1838-1922), Trait des substitutions et des quations algebraique, Paris,
1870, pp. 114-125. This is the same Jordan as for the Jordan curve of Section 14.1.

11

B. Kgstrm and A. Ruhe, "An Algorithm for Numerical Computation of the Jordan Normal Form of a Complex
Matrix," ACM Transactions on Mathematical Software, vol. 6, no.3, September 1980.

12

B. Sridhar and D. Jordan, "An Algorithm for Calculation of the Jordan Canonical Form of a Matrix," Computers
and Electrical Engineering, vol. 1, no. 2, 1973, pp. 239-254.

Chapter 14: Time Response of Machinery

M DFF
I

= 1

1
FF

1
0
M K FF
=
%
0

0
1
FF

2
%
0

0
" 0
& %

" m
"

(14.15)

where each i block is called a Jordan block and is of the form

k
0
k =
%

0
k & %
& & 1

" 0 k
1

"

k = 1, 2," , m (14.16)

Each k block is of size ( mk mk ) to match the number of times that each distinct eigenvalue is
repeated, and m1 + m2 + " + mm = 2 f . Each Jordan block has mk values of the eigenvalue k on
its diagonal and, for blocks where mk > 1, the block has unit values on its first superdiagonal. All
other entries of the block are zeroes.

Usually each k block is of size mk = 1 ; in this, the usual case, k becomes an eigenvector,
and k contains one distinct eigenvalue on the diagonal as dealt with above. However, with a
defective system, the Jordan normal form is the simplest form possible for the equations of
motion of Eq. (14.14).
There are now mk equations of motion corresponding to each Jordan block, and each set is of
the form
z!k k zk = k

k = 1, 2," , m (14.17)

As long as the value of k for a particular Jordan block is non-zero, the homogeneous
equations are
z!k k zk = 0
and, since k may be repeated, the form of the homogeous solution is

{ zk } H

= ek t Z k** ( t ) Ck

where Z k** (t ) is an ( mk mk ) matrix of the form

Chapter 14: Time Response of Machinery


1 t "

Z k** ( t ) = 0 & &

% & &
0 " 0

( m 1) !
k

t
1
t

( mk 1 )

(14.18)

and Ck is a column of constants which depend on the initial conditions.


By assuming that the form of the particular solution is { zk }P = constant we find from Eq.
(14.17) that
1
{ zk }P = [ k ] k

where

k
0

1
[ k ] =
%

k2

"

( 1)

mk 1

km

&

&

&

2
k

"

(14.19)

Therefore, combining the homogeneous and particular solutions, the complete solution for a
Jordan block with k 0 is
1

zk = ek t Z k** ( t ) Ck [ k ] k
With the initial conditions that, at t = 0 , zk = 0, Eq. (14.18) shows that Z k** ( 0 ) = I and this
1
equation gives Ck = [ k ] k . Therefore, the complete solution for the response of a Jordan
block with k 0 is

zk = ek t Z k** ( t ) I [ k ] k
1

(14.20)

The remaining case is when the value of k for a particular Jordan block is k = 0 . In this
case, the Jordan block of Eq. (14.16) takes the form

Chapter 14: Time Response of Machinery

0 1 " 0
0 0 & %

k =
% & & 1

0 " 0 0
Equations (14.17) for such a block has a solution of the form
zk = ek t Z k** ( t ) Ck + Z k* ( t ) k

(14.21)

t2
t
t
"

2
mk !

0 & & %
*
Z k ( t ) =

2
t
% & t

t
0 " 0

(14.22)

where
k

With the initial conditions that, at t = 0 , zk = 0, Eq. (14.18) shows that Z k** ( 0 ) = I and Eq.
(14.22) gives Z k* ( 0 ) = 0 . Therefore, Eq. (14.21) shows that Ck = 0 , and the complete solution
for the response of a Jordan block with k = 0 is
zk = Z k* ( t ) k

(14.23)

To summarize the total solution process, we must first reduce our total set of first-order
equations of motion for the system FGCs to the Jordan normal form as shown by Eqs. (14.14),
(14.15), and (14.16). Once the Jordan blocks are identified, we can form the overall modal
response matrix
Z1 ( t )
0

0
Z2 ( t )
Z ( t ) =
%
%

0
0

"
0
&
%

" Z m ( t )
"

(14.24)

where the Z k ( t ) blocks are of size ( mk mk ) as found from the Jordan blocks, and have
values of
ek t Z k** ( t ) I [ k ]1 for k 0

Z k ( t ) =
*
for k = 0
Z k ( t )

Chapter 14: Time Response of Machinery

k = 1, 2," , m (14.25)

Finally, from these, we find the modal amplitude response vector


z = Z ( t )

(14.26)

for the total system. From z, Eq. (14.12) gives the state space response vector y which includes
values for both the changes in position x and the changes in velocity v from those at the
linearization set point.
v
x = y = z = Z ( t )

(14.27)

For purposes which will become clear in the next Section, we also have need to find the time
derivative of these, in order to compute the accelerations of the system FGCs.
v!
!
x! = y = z! = Z ( t )

(14.28)

where
Z!1 ( t )
0

0
Z! 2 ( t )
Z! ( t ) =
%
%

0
0

"
0
&
%

" Z! m ( t )
"

(14.29)

ek t k Z k** ( t ) + Z k*** ( t ) [ k ]1 for k 0

!
Z k ( t ) =
Z k** ( t )
for k = 0

k = 1, 2," , m (14.30)

( m 2)

t
0
1
t
"

( m 2)!

0
0
1
&
%
Z k*** ( t ) =

t
% & & &
0 & 0 0
1

0
0 0 " 0

k = 1, 2," , m (14.31)

and
k

14.4 Time Integration Algorithm


As we have progressed through the methods of Chapter 13 and then the preceeding material of
this chapter, our real intent has been to find the form of the solution for the nonlinear equations
of motion of Eqs. (10.15), in order to compute the time history of the FGCs of our multi-body
system. Since the time history of the SGCs is known a priori, this completes our full knowledge
of the motions of the generalized coordinates and, therefore, of the entire system. From these

Chapter 14: Time Response of Machinery

10

and the methods of Chapters 6, 7, and 8, the full kinematics of any part of our system becomes
known.
Well, that has been our intention. However, as usual, things are never quite so simple.
Instead of this original goal, we found it necessary to linearize the equations around some set
point, which we did in Chapter 11, and then to solve this linearized set to find Eqs. (14.27). The
intention has been that this set of solutions could be applied repetitively in an incremental time
integration algorithm. However, a major question remains. How large can our time increment
be? If the increment is too large, errors coming from the linearization approximation will
accumulate and the solution will be inaccurate. If the time increment is too small, the algorithm
will operate unacceptably slowly.
The solutions which we found in Eqs. (14.27) are only good as long as our linearization
assumptions hold. The primary assumption has been that the M, D, K, and G matrices remain
essentially constant during each time step. Well, experience shows that this assumption remains
valid as long as (a) the chages in system geometry remain reasonably small, and (b) the time
variation of the forces contained in G are reasonably approximated. However, as the time
increment increases, these assumptions fall more and more into question. Ultimately, there will
be a limit on the time increment for which they hold. The solution to this dilemma, of course, is
to keep the time increment small enough to assure compliance with the assumptions.
Let us declare that we are starting the simulation of our dynamic multi-body system at a
known value of time t=t0, from a known set of FGC positions F ( t0 ) , and with a known set of
FGC velocities ! F ( t0 ) . We can also choose a value for the desired time interval t between
printing or displaying results, and an estimated value for a time interval t t to be used for the
calculation time increment. Then we can apply the following recursive procedure:
1. Evaluate the current values of the SGC positions S ( t ) , velocities ! S ( t ) , and
accelerations !!S ( t ) .
2. Apply the numeric methods of Chapter 6 to insure that all dependent position information
of the system is known precisely at the current time.
3. Evaluate the M, D, and K, coefficient matrices of the system equations of motion using
Eqs. (11.6), (11.7), and (11.8), and the applied forces F from Eq. (11.9), and GF from Eq.
(11.13).
1
1
1
4. Form the coefficient matrices M FF
DFF , M FF
K FF , and M FF
GF of Eq. (14.11).

5. Find the Jordan blocks and the generalized eigenvectors of Eq. (14.15).
6. Form the forcing functions of Eq. (14.13).
7. Find a predicted set of FGC position increments x ( t ) from Eq. (14.27). If any are large,

Chapter 14: Time Response of Machinery

11

reduce the time increment t t 2 and repeat.


8. Evaluate predicted values of the SGC positions S ( t + t ) , velocities ! S ( t + t ) , and
accelerations !!S ( t + t )
9. Predict new FGC positions F ( t + t ) = F ( t ) + x ( t ) from Eq. (11.1).
10. Attempt the numeric position solution procedure of Chapter 6 to find the dependent
positions for time t + t . If this procedure fails, reduce the time increment t t 2 and
repeat from step 7.
11. Find new FGC velocity increments v ( t ) from Eq. (14.27).
12. Predict new FGC velocities ! F ( t + t ) = ! F ( t ) + v ( t ) from Eq. (11.1).
dependent velocities for time t + t .

Find all

13. Set time to t t + t .


14. Evaluate the M, D, and K, coefficient matrices of the system equations of motion using
Eqs. (11.6), (11.7), and (11.8), the applied forces F from Eq. (11.9), and GF from Eq.
(11.13).
1
15. Find the FGC accelerations from Eq. (11.13), !!F ( t ) = v!F ( t ) = M FF
GF .
dependent accelerations.

Find all

16. Test whether t has reached the proper value for the next print and/or output display; if so,
process and output all data as necessary.
17. Test whether time t has reached the proper value for ending the simulation; if not, recurse
to step 4 to continue.
Before finishing this Section it is extremely important that we review the class of problems
being considered in this text and contrast the time integration method presented here with others
which might have been considered. Let us first remember that the number of degrees of freedom
being considered is, perhaps, between ten and twenty in a complex problem. Therefore it is very
feasible to consider solving the iterative loop closure computation of Chapter 6 at every time
step, particularly with the extremely quick convergence reported in that Chapter. For the same
reason, solving for the Jordan normal form, as in step 5, or for eigenvalues and eigenvectors is
not unreasonable at every time step.
However, the very fact that the numeric algorithm of Chapter 6 is being used does imply that
this algorithm makes a new decision at each time step as to which and even how many FGC
variables will exist in each new time step, and there is no assurance that these will be the same
from one time step to the next. These considerations do not totally prevent use of some of the

Chapter 14: Time Response of Machinery

12

better known numerical integration algorithms, but they do provide additional complications not
present in other applications.
It must be understood that the software being considered here is for simulating multi-body
dynamic systems. This is an extremely different class of problems than the class addressed by
finite element analysis (FEA). In that class: (a) The bodies being simulated may be of high
stiffness, but they are not rigid. Indeed, in that class, the strain (change of geometry) variables
are among the fundamental unknowns being sought. (b) The number of degrees of freedom is
often in the thousands or tens of thousands. (c) The solution of FEA problems is not expected to
operate quickly enough for real-time animation of dynamic simulations. Much slower solution
methods are usually acceptable.
Traditional wisdom in numerical analysis texts advises that the time step in the numeric
solution of an initial value problem should not be greater than about one-tenth of one cycle of the
highest frequency of the problem being simulaed. The natural frequencies of typical problems
being considered here often range from a single Herz or less for the low to tens of MegaHerz for
the high frequency. Therefore, the above advice may suggest a typical time step size of
8
t (10 ) seconds, or one hundred million integration steps per second simulated. It must be
understood that this advice is based on the recognition that almost all well-known methods of
numeric integration are based on a power series in the independendent variable t . Here we have
used a harmonic series (recall ei t in Eq. (14.30)) and have found the complete and exact
theoretical solution to the linearized differential equations during the time increment being
integrated. Our approxiamtion has been in assuming that the linearized equations are a good
approximation throughout the time step. This assumption is limited only by the size of the step
and the change in geometry, not by the natural frequencies invloved.
In relatively recent times, numeric methods have been developed for integrating the class of
problems known as stiff differential equations.13 This is the class in which the spectrum of
natural frequencies range over several orders of magnitude and, therefore, traditional methods
have called for thousands or millions of time steps per cycle of progress in the overall simulation.
This is precisely the class usually represented in multi-body dynamic systems. However, as just
explained, the method developed above is such a method. Particularly with the improvements of
the next Section, it can and often will pass over hundreds, thousands, or even millions of cycles
of high frequencies during a single time step, particularly when their amplitudes within the actual
response are small because those modes are not excited.

14.5 Adaptive Time-Step Control


Sometimes there are difficulties with the time integration algorithm presented in the previous
13

By far the best known algorithm of this type is due to William C. Gear, Numerical Initial Value Problems in
Ordinary Differential Equations, Prentice-Hall, Englewood Cliffs, New Jersey, 1971.

Chapter 14: Time Response of Machinery

13

Section. As shown in steps 7 and 10, for example, there may be situations where the algorithm
predicts egregiously large increments for the FGCs and it becomes necessary to reduce the time
step size, if only to keep the numerical process under control.
However, even if extremes are avoided successfully, this does not ensure that the algorithm
will produce reliable accuracy. How can we tell if the time step might still be too large? Well,
one way to test this might be to perform the simulation again with a smaller time increment, and
to compare results to see if they agree within acceptable limits. However, this does not seem
reasonable as a continuing requirement. Is there some way to test as the time integration process
evolves? Yes; there is.
Immediately after step 12 in our time integration process explained in the previous Section,
we can predict for time t + t the expected new values of the accelerations v! of the FGCs by
using Eq. (14.28). These are the accelerations which should occur according to the prediction of
the linearized equations of motion. They should be accurate if the time step is within the range
for which the linearized equations are valid.
But then, in step 13, we set the time to t + t and, in step 15, we can recalculate these same
accelerations with new values which are updated for the modified geometry. These values are
accurate in the sense that they fit the Lagrange equations at the new position. By subtracting the
earlier predictions from this later calculation we can find the differences the in FGC accelerations
which result from the inaccuracy of using the linearized equations for our nonlinear system.
If the error in acceleration is found to be larger than some chosen upper limit, then the size of
the time increment should be reduced to, for example, to t t 2 . If the error is well beyond
this limit, then it may be considered necessary to repeat the current step with the smaller time
increment.
Of course, it is to be expected that there will always be some error; this is true for any
numeric solution of differential equations. In fact, if this error in acceleration is smaller than
some chosen lower bound, then the time step is probably too small and the integration is
progressing more slowly than necessary. Under these circumstances, the time increment can be
increased, say to t min ( 2t , t ) . This will insure that the time integration procedes as quickly
as possible, but also that the time step does not exceed the interval between desired output times.
Before finishing this Section, we should recognize that, since step 10 of our integration
algorithm is continuously ensuring that all geometric constraints of our system are enforced to
good accuracy. Therefore, even though forces in various parts of our system may include errors,
the geometry of the system being simulated is always valid. That is, it always represents a
possible position that can realistically be experienced by the modeled system. We should also
recognize that error in acceleration is a very sensitive test. It is a convenient technique for
sensing linearization error because we predict with the linearized equations and then recalculate
with the nonlinear equations. However, numerical errors should be expected to be larger when

Chapter 14: Time Response of Machinery

14

calculating derivatives. Therefore, controlling error in acceleration should control errors in


velocity and position even more accurately.
An improvement has been found in helping the user to estimate or evaluate the limits to be
used in controlling error. The calculation technique can proceed as explained above. However,
by redefining error so that it includes premultiplication by the mass matrix, that is = M [!! v! ] ,
we can recast error into units of error in force. Most users find it more inutitive to choose an
accuracy limit they wish to attain from the simulation in terms of accuracy in force rather than
accuracy in acceleration.

Chapter 14: Time Response of Machinery

15

Problems
14.1

Continue from Eq. (14.3), using Eqs. (14.6) and (14.10), to apply the residue theorem to
the inversion of the Laplace transform where there is a single pair of equal eigenvalues;
write the solution out explicitly for the case of f=2, NF=2, NP=1, g j,1 ( s ) = 1 , and
g j,2 ( s ) = 0 , with 3 = 4 .

Chapter 14: Time Response of Machinery

16

Chapter 15: Collision Detection


15.1 Introduction
Through simulation of multibody systems as explained in the preceeding chapters we can solve a
variety of useful problems with no further enhancement. However, with the methods explained
so far, we still lack the capability to simulate collisions, either between moving bodies or
between a single moving body and its surroundings. Simulation software developed strictly with
the formulae presented so far assumes that a moving body may simply pass through others with
no collision or impact. Clearly this can benefit from improvement.
Collosion or contact between bodies can not be detected unless it is through computations
relating the geometries of the bodies. Therefore we must have accurate geometric shapes for all
bodies for which collisions are to be considered, and in as much detail and accuracy as we wish
to monitor their possible contact. We need data for vertices, edges, and surfaces, and we need to
distinguish the material side from the exterior of such surfaces. Therefore, we need solid models
of the bodies to be consiered. Either constructive solid geometry (CSG) or boundary
representation (BRep) or hybrid combinations may be considered, but wire-frame data is not
sufficient.1
On review of the material of Chapter 3, we see that each body has a body coordinate system,
and that the position of that body (with label a) is found by determining its transformation matrix
T0a as explained in Chapter 4 or 6. Each body has such a transformation, even the stationary
body. Therefore, each body can be given geometric shape by attaching one or more solid models
with data measured with respect to that body's coordinate system. That is, for every geometric
feature of the shape, the local coordinate data ra must be known.
The only difference between a stationary body and a moving body is whether its
transformation matrix changes or remains constant. Also, the motion properties of each
geometric feature of each shape takes on those of the body to which it is attached. Thus each
shape has a velocity matrix a and an acceleration matrix a as found in Chapters 7 and 8, and
these motions contain both translation and rotation data.
The simulation of collisions consists of two main tasks, collision detection, and impact
analysis. The first of these tasks is the objective of this Chapter; the second is covered in the
next Chapter. Collision detection involves determining when (the value of t) and where (the

1.

The IMP software uses a half-edge polyhedral BRep data structure similar to that explained in Martti Mntyl,
An Introduction to Solid Modeling, Computer Science Press, Rockville, Maryland, 1988.

Chapter 15: Collision Detection

values of ra for each body) contact may occur between bodies of the system simulated.
Since testing for collision may be required at every increment of time during a simulation,
and possibly between many combinations of objects, it is extremely important that the algorithm
for collision detection be very efficient. For this reason we limit ourselves to consideration of
only two shapes coming into contact at a time. If more than two are to make simultaneous
contact, the software will find the contacts in consecutive pairs if necessary.
Conceptually, since we require that solid models of part shapes be available, it is possible to
perform a complete intersection calculation by the algorithms of solid modeling between each
pair of objects considered at every moment in time. Without further simplification, however, this
would be quite inefficient. We also find that those algorithms known to date which offer
efficiency advantages, do so partly by restricting their consideration to pairs of convex polyhedra.
The assumption of convexity is not a large constraint since more than one convex subshape may
be simultaneously attached to the same body coordinate system. The assumption of polyhedral
geometry implies that object shapes are bounded solely by flat surfaces. Curved surfaces may be
approximated by flat facets, but as the number of facets becomes large the efficiency again
decreases; a reasonable compromise between accuracy and efficiency must be sought.
In order to avoid monitoring an unnecessarily large number of object pairs, thus causing slow
performance, we can require that the user explicitly identify those pairs of shapes (or subshapes)
to be monitored. However, it is advised that two shapes of the same body, or two which are
directly connected by a joint, as defined in Chapter 2, not be acceptable for collision monitoring
since they would be in continual contact.

15.2 Vertex-Face Contact


At the moment that a vertex of body a actually makes contact with a flat facet of a surface of
body b, such a contact may be represented by an equation of the form
Ab X a + BbYa + Cb Z a + Db = 0
where capital letters recognize that this equation is written in terms of the global coordinate
system. The plane coefficients are normalized so that the first three coefficients [ Ab Bb Cb ]
form a unit vector directed outward from the shape. If we choose the symbol Pb to represent the
column vector of the data of this planar facet, then, in global coordinates, the equation has the
form

[ Ab

Bb

Cb

Xa
Y
Db ] a = Pbt Ra = 0
Za

1

(15.1)

Remembering Eq. (4.9), we know how the local coordinates of the vertex ra relate to their
global values Ra, and thus we can also find the relation which must hold for the local coordinate

Chapter 15: Collision Detection

data of the planar facet.

pbt Tb 0T0 a ra = pbt T0b1 (T0 a ra ) = 0

(15.2)

By differentiating the identity matrix with respect to time we get another useful formula

T0b1T0b = I
T!0b1T0b + T0b1T!0 b = 0
T!0b1 = T0b1T!0bT0b1 = T0b1bT0 bT0b1
T! 1 = T 1
0b

0b

Now, with this, let us rewrite Eq. (15.2). Assuming that the contact does not begin until a
short time increment after the current time t

pbt T0b1 ( t + ) T0 a ( t + ) ra = 0
pbt T0b1 [ I b ][ I + a ] T0 a ra = 0
Pbt I (b a ) ba 2 Ra = 0
Pbtba Ra 2 + Pbt (b a ) Ra Pbt Ra = 0
If we now assume that is small enough to ignore the very small 2 term, we can solve for
the time increment until this contact begins
pbt T0b1T0 a ra
Pbt Ra
= t
=
Pb (b a ) Ra pbt T0b1 (b a ) T0 a ra

(15.3)

Notice that the factors in square brackets in both the numerator and the denominator of this
equation can be computed at each time increment as soon as bodies a and b are identified. This
is usually worthwhile since many vertices and faces from these bodies may require testing.
If the found from this equation is negative, then the time of contact is either fictitious or has
already passed. However, having a positive time increment does not assure that contact actually
occurs; it only verifies that the vertex ra reaches the plane of the facet pb at a future time. We
must also find the implied point of contact on the planar surface of body b at the indicated time

( I + b ) T0b rb = ( I + a ) T0 a ra
1
rb = T0b1 ( I + b ) ( I + a ) T0 a ra

(15.4)

and we must verify that this point rb falls within the boundary of the actual face of body b
contained in the plane pb . If this is true then, and only then, we have verified that represents a
time increment when contact may actually begin between the vertex ra and the flat facet pb .

Chapter 15: Collision Detection

15.3 Edge-Edge Contact


Next let us consider the situation where two edges may come into contact. Let us say, for
example that an edge of body a is defined by the intersection of planar faces 1 and 2, while an
edge of body b lies at the intersection of planar faces 3 and 4. Then, at the time at which these
two edges come into contact, a new point of contact with global coordinates R is defined by the
four equations

p1tT0a1 ( I a ) X
t 1

p2T0 a ( I a ) Y = ER = 0
p3t T0b1 ( I b ) Z
t 1

p4T0b ( I b ) 1

(15.5)

where the matrix of coefficients E is of size ( 4 4 ) and every element is a linear exporession in
the unknown time .
However, for this set of homogeneous equations to have a nontrivial solution the matrix of
coefficients must have a zero determinant, det ( E ) = 0 , from which we get a quartic equation in
. We are interested in finding the smallest non-negative value of which satisfies this equation,
if such a root exists; if not, then such a future edge-edge contact does not occur. Once such a
value of is found, then any three of the four Eqs. (15.5) become solvable for R. This solution,
however, must still be tested to insure that it falls between the two limiting vertices on each of
the two edges. This may best be done by solving any one component of the conditions

R = a ( I + a ) T0 a ra + (1 a )( I + a ) T0 a ra = b ( I + b ) T0b rb + (1 b )( I + b ) T0b rb (15.6)


for the unknown parameters a and b, and verifying that each lies within the interval 0
Once this is verified then refers to the time of a possible contact between the edges tested.

1.

15.4 Finding the Time Increment Until Contact


As explained in Section 14.4, the overall simulation process takes place under the control of a
time integration process for the solution of the equations of motion of the system FGCs. As this
time integration process continues it is necessary to continually monitor each of the possible
contact pairs chosen by the user and, as a contact approaches, to anticipate and meet the precise
moment of contact at a transition between time steps in the integration process.
Consider the effect of error in finding the precise time of contact. If we suppose that the
onset of contact is not met exactly, then two bodies may already have penetrated each other as the
end of a timestep is actually reached. If there is a stiffness associated with that contact, then that
stiffness may already become deflected by the end of the timestep and, far worse, no energy was
required to produce such a state of strain. With the stiffnesses associated with typical mechanical
parts, this may represent a significant energy increase in the system. Even worse, once this
energy enters the system, even through numeric error, it remains there causing errors in future

Chapter 15: Collision Detection

velocities or other motion parameters. For this reason it is extremely important that the moment
of contact be met precisely so that high stiffnesses not produce strain or introduce energy.
As the simulation develops, the size of the time increment t of the integration process is
already controlled as explained in Sections 14.4 and 14.5. As described here, the user may have
requested that possible contact be monitored for certain pairs of bodies. For each possible
contact pair we will know that we are to monitor the motion of body number b with respect to
body number a. What we wish to do next is to predict the time increment from the current
moment t to the onset of that contact. What we wish to know is whether we anticipate the
initiation of a contact within the coming time interval t . If so, by how much is it necessary to
reduce this time step to exactly match the time of first contact.
In Section 15.2 we have discussed the contact of some vertex ra of body a with some flat
facet pb of body b and, in Section 15.3, between two edges of these bodies. The choice of the
two bodies was requested by the user, but we have not yet spoken of how this particular vertex
and this particular facet or how these two edges will be identified. The question of collision
detection has seen much research over the past several years. The algorithm presented here is a
variation of one of the fastest and best known algorithms, called the GJK minimum distance
algorithm,2 with subsequent extensions by Cameron.3
As a start, a single face is chosen arbitrarily for each body a and b. Let us label these pa and
pb . We also choose an arbitrary vertex rb on face pb to start the following recursive procedure:
1. Test each vertex ra of face pa using Eq. (15.3) to find the minimum non-negative time
increment for contact of ra with face pb . If none is found choose a different face pb
and repeat.
2. Test each vertex ra connected by an edge to vertex ra , using Eq. (15.3), seeking a vertex
with smaller non-negative time increment '. If found, change ra and to ra and ' and, if
necessary, change pa to a new face which includes the new vertex ra .
3. If ra was changed by step 1 or step 2, repeat from step 1 until no further change is found.
4. Test each face pa connected to vertex ra for the contact time with vertex rb , using Eq.
(15.3), seeking a smaller non-negative time increment ', and updating the face pa and
time increment to this new minimum.

2.

E. G. Gilbert, D. W. Johnson, and S. S. Keerthi, "A Fast Procedure for Computing the Distance Between
Complex Objects in Three-Dimensional Space," IEEE Journal of Robotics and Automation, vol. 4, no. 2, April,
1988, pp. 193-203.

3.

S. Cameron, "Enhancing GJK: Computing Minimum and Penetration Distances between Convex Polyhedra,"
International Conference on Robotics and Automation, April, 1997.

Chapter 15: Collision Detection

5. If pa was chaged from that of step 1 repeat from step 1.


6. Test each vertex rb of face pb using Eq. (15.3) to find the minimum non-negative time
increment for contact of rb with face pa .
7. Test each vertex rb connected by an edge to vertex rb , using Eq. (15.3), seeking a vertex
with smaller non-negative time increment '. If found, change rb and to rb and ' and, if
necessary, change pb to a new face which includes the new rb .
8. If rb was changed by step 6 or step 7, repeat from step 6 until further change is not found.
9. Test each face pb connected to vertex rb for the contact time with vertex ra , using Eq.
(15.3) seeking a smaller non-negative time increment ', and updating the face pb and
time increment ' to this new minimum.
10. If pb was chaged from that of step 6 repeat from step 6.
11. If any of these data has changed from that of step 1 repeat from step 1.
12. After iterating in this manner and finding the minimum time increment and locations ra
and rb until no further improvement can be found, then, using Eq. (15.5), test all edges
connected to vertex ra for contact with each edge connected to vertex rb to see if an even
smaller initial contact time can be found.
Once this iteration process has finished we have found the time increment until the initial
contact between bodies a and b. We must then repeat the process for the next contact pair which
was chosen by the user until all requests have been tested. When finished with all we know the
smallest time increment before the first contact. We have also found the body numbers a and b
for this contact, the type of that contact (vertex-face or edge-edge), and the corresponding vertex,
face, and/or edge data at the location of impending contact. All of this information becomes very
important in the next Chapter where we analyze how the collision affects the dynamics of the rest
of our system.
Before doing this, however, we should look back to Section 14.4 and understand that this
entire process is to be inserted after step 16 of the time integration algorithm explained there. As
the previous time step is completed, the search for possible collision is performed before
completion of the next time step takes place as explained here. Upon completion of the
impending contact algorithm explained here, the time step t for time integration must be set
equal to , if it is smaller, before recursing in step 17 to continue the time integration. This
should insure meeting the precise time of contact at the completion of the the next integration
step. At that time, the impact analysis of Chapter 16 will be applied, and the time step will be set
back to t before continuing.

Chapter 15: Collision Detection

Chapter 16: Impact Analysis1


16.1 Applied Impusive Loads
Before continuing the analysis of the impact resulting from a collision between moving bodies,
let us consider the effects of applied impulsive loads in general and how these can be
incorporated into our time integration of the dynamic equations of motion.
As we saw in Section 10.2, the general Lagrange equations of motion for our dynamic system
are given by Eq. (10.1)

d H H
V
+
= Fi

dt ! i i i

i = 1, 2, , f

where H and V are the kinetic and potential energy of the system and Fi is the generalized force
acting at generalized coordinate i .
If we integrate this equation over a short interval of time from t to t+t we obtain

t + t

d H

dt ! i

t + t
t + t
t + t

H
V
dt

dt
+
dt
=
Fi dt

i
i

t
t
t

i = 1, 2, , f

Since the time interval for an impact is very short, there is no time for changes in geometry,
even though velocities can change under the impulsive accelerations. Therefore, the second and
third terms of this equation are very small and the equations reduce to

! i

H
H

=
t + t ! i t
! i

t + t

=
Fi dt

i = 1, 2, , f

(16.1)

From Eq. (10.3) we recognize that this set of equations shows the changes in the generalized
components of the system momentum and, from Eq. (10.6), we have

pi =

1.

H
= trace WaiT0a J aT0taat
! i a =1

i = 1, 2, , f

Much of the material of this chapter follows the work of W. Wisutmethangoon, "Collision Detection and
Dynamic Impact Simulation of Mechanisms," PhD Dissertation, University of Wisconsin, Madison, WI, 1998.

Chapter 16: Impact Analysis

which, using Eq. (7.24), becomes

pi =

f
H
= trace WaiT0a J aT0taWajt ! j
! i j =1 a =1

i = 1, 2, , f

Again recognizing that the time interval is too short for the system geometry to change, but
that velocities can change, Eq. (16.1) becomes
f

t
t
trace WaiT0 a J aT0aWaj ! j =

j =1 a =1

t + t

Fi dt

i = 1, 2, , f

and, from Eq. (11.7), we recognize here the elements of the system mass matrix. Therefore, this
reduces to
f

M ij ! j =

j =1

t + t

Fi dt

i = 1, 2, , f

(16.2)

In Section 9.10 we defined a model for a force f a ( , t ) applied within a joint with
identifying joint label a. This force was modeled as a function of time t and of system geometry
. Here, we take the same approach with the exception that we take the time variation of the
force to be an impulsive load acting within joint a, and we give this impulse the symbol i a ( , t ) .

i a ( , t ) =

t + t

f a ( , t ) dt

a = 1, 2, , n

In Eq. (9.23) and (10.13) the generalized force resulting from a force applied within a joint is

f a ( , t )
Fi = ai

a = 1, 2, , n
i = 1, 2, , f

and, when such a force is impulsive in nature, the generalized impulse becomes

t + t

i a ( , t )
Fi dt = ai

a = 1, 2, , n
i = 1, 2, , f

(16.3)

Similarly, in Section 9.11, we defined a model for a force f abc ( , t ) applied at a point on
body a with direction defined by points on bodies b and c. Here, we define a similar impulsive
force i abc ( , t ) applied on body a with direction defined by points b and c.

Chapter 16: Impact Analysis

i abc ( , t ) =

t + t

f abc ( , t ) dt

a, b, c = 1, 2, ,

In Eq. (9.25) and (10.13), we found the generalized force resulting from such an applied force
to be
a, b, c = 1, 2, ,

Fi = Rait ubc f abc ( , t )

i = 1, 2, , f

and, when such an applied force is impulsive, its generalized impulse is

t + t

a, b, c = 1, 2, ,

t ubc i abc ( , t )
Fi dt = Rai

i = 1, 2, , f

(16.4)

Then, in Section 9.12, we defined a model for a torque abc ( , t ) applied on body a with
direction defined by a line through points on bodies b and c. Here, we define a similar impulsive
torque t abc ( , t ) applied on body a with direction defined by a line through points on bodies b
and c.

t abc ( , t ) =

t + t

abc ( , t ) dt

a, b, c = 1, 2, ,

In Eq. (9.28) and (10.13), we found the generalized force from such an applied torque to be
a, b, c = 1, 2, ,

t
Fi = W$ai ubc abc ( , t )

{ }

where W$ai

{ }

i = 1, 2, , f

is defined in Eq. (9.27). When the applied torque is impulsive, its generalized

impulse is

t + t

a, b, c = 1, 2, ,

t
Fi dt = W$ai ubc t abc ( , t )

{ }

i = 1, 2, , f

(16.5)

Finally, when we allow multiple impulses and collect the pieces from Eqs. (16.3), (16.4), and
(16.5), then Eq. (16.2) expands to
f
n
t
ia ( , t ) + Rai
t ubc i abc ( , t ) + W$ai ubc t abc ( , t ) = I i ( , t )
M ij ! j = ai

j =1

a =1

abc

abc

{ }

i = 1, 2, , f

Chapter 16: Impact Analysis

(16.6)

As the time integration process of Section 14.4 advances, it must be continually monitored to
ensure that it comes to incrementing a time step at the precise time of occurance of an impulse.
At that time, the right-hand side of Eq. (16.6) is evaluated and yields a vector of length f of
applied impulses I ( ,t ) . Also, if we assume that the SGC coordinates do not change velocities
under impulsive loading, the subset of Eq. (16.6) referring to the NF velocities of the FGCs is of
the form
M FF ! F = I F

Since MFF is positive definite, it cannot be singular and these equations can be solved for the
changes in the FGC velocities at that time.
1
! F = M FF
IF

(16.7)

These changes are added to the FGC velocities before continuing with the next step in the time
integration process.

16.2 Location and Type of Contact


The other way in which impulsive loading can be induced within our mechanical system is
through collisions between moving bodies. This is the reason for our detailed discussion of
detecting such collisions in Chapter 15. Through the algorithms presented there we can detect
the precise moment of contact between colliding bodies.
At the moment a collision is detected, the time integration process is interrupted and we
know: (1) the identification of the contact pair h being monitored and of the two bodies, a and b,
which are making contact; (2) the global coordinates Rh = T0a ra = T0b rb of the point of contact,
and the velocities of the two contacting points, R! a = a Rh and R!b = b Rh ; and (3) the type of
contact, either vertex-face or edge-edge.

Figure 16.1 Coordinate axes at a point of contact.

Chapter 16: Impact Analysis

Let us define h to be the unit vector normal to the plane of contact pointing in the direction
from body a toward body b as shown in Figure 16.1. For a vertex-face contact, we find h from
the data for the face. For an edge-edge contact, we find h from the cross product of vectors
along the two contacting edges. Next, we take h to be the unit vector in the plane of contact
pointing in the direction of the in-plane component of the relative velocity ( R! a R!b ) between
the points of contact. Finally, we take h to be the unit vector orthogonal to both h and h
such that h = h h . The global coordinates of these unit vectors can be determined from
the geometry of the contacting shapes and their locations T0a and T0b and velocities a and b
at the moment of contact.

16.3 Simple Impact Model


As a beginning, let us assume that, at the point of contact, the only reaction between the two
bodies is an impulse normal to the plane of contact. Let the normal impulse acting from body a
onto body b be symbolized by i hnh , where i hn is an unknown scalar. There is an equal and
opposite normal impulse - i hnh acting as a reaction from body b back onto body a. Then, from
Eq. (16.4) we can write the generalized impulse caused by this contact as
t h i hn Rbi
th i hn
I hn ( , t ) = Rai
Rbi
) i hn
= ht ( Rai
= ht (Wai Wbi ) Rh i hn

and, from this, the Lagrange impulse equations for this contact can be written as shown in Eq.
(16.6)
f

t
n
M ij ! j = h (Wai Wbi ) Rh i h

i = 1, 2, , f

(16.8)

j =1

However, since the magnitude of the impulse i hn is still unknown, this is a set of f equations
with ( f + 1) unknowns. Another equation is needed to make the set solvable. This additional
equation can be obtained from the definition of the normal coefficient of restitution, ehn , which is
the negative of the ratio of the relative normal velocity between the contacting points after the
impact to those before it. That is

ehn

ht ( R!a R!b )
ht ( R!a R!b )

where the primes indicate values after the impact. The coefficient of restitution is a value
representive of the properties of the materials making contact and varies from unity for

Chapter 16: Impact Analysis

completely elastic impact to zero for plastic impact. The value can be determined
experimentally and must be supplied by the user as data for this model of impact.
Once this coefficient is supplied, the equation expressing its definition can be rewritten as

ht ( R!a R!b ) = ehnht ( R! a R!b )


ht (a b ) Rh = ehnht (a b ) Rh
f

t
n
t
h Waj Wbj Rh! j = eh h Waj Wbj Rh! j

j =1

j =1

(16.9)

The set of Eqs. (16.8) and (16.9) can now be brought together into a single set, and written in
the form

M ij

M ij
ht (Wai Wbi ) Rh ! j

=
!
t W W R
i n ent W W R j
0
bj
h
bj h
h aj
h h h aj

{ }

These equations are solvable for the modified velocities of the generalized coordinates which
result after the impact and for the size of the impulse which results. Typically, this model suits
well for simulating the collision of two objects with smooth, hard surfaces.

16.4 Impact Model with Tangential Impulse


In the case of collision between objects with rough or soft surfaces, when a relative tangential
velocity exists between them, it is likely that a tangential impulse may also be transmitted by the
impact. Unless we assume that this tangential impulse is zero, another unknown is present in the
system. Therefore, yet another equation is needed for solution.
Two approaches have been proposed for formulating another equation.2 The first is to define
a coefficient h resulting from the ratio of the tangential and normal impulse components, very
similar to the coefficient of friction.
i ht = h i hn
The system of equations for this impact model is

2.

R. M. Brach, Mechanical Impact Dynamics, John Wiley & Sons, New York, 1991.

Chapter 16: Impact Analysis


M ij
ht (Wai Wbi ) Rh ht (Wai Wbi ) Rh ! j


t W W R
in
0
0
bj h
h aj
h

it
0
h
1

h
M ij

= ehnht Waj Wbj Rh ! j

(16.10)

{ }

This model, with an appropriate value of h , fits quite well for collisions with high relative
tangential velocity.
In another model, the definition of a tangential coefficient of restitution is introduced. The
definition is similar to that in the normal direction; that is,

ht R!a R!b
t
eh =
ht R!a R!b

(
(

)
)

The system of equations using this model is

M ij
ht (Wai Wbi ) Rh ht (Wai Wbi ) Rh ! j


t W W R
in
0
0
bj h
h aj
h
t
it

W
R
0
0

bj
h
h aj
h

(
(

)
)

M ij

n t

= ehh Waj Wbj Rh ! j

t t

e W Wbj Rh
h h aj

(
(

)
)

(16.11)

{ }

This model is more appropriate with small relative tangential velocity of the contact points or
for objects with high shear elastic surfaces.
Figure 16.2 shows a typical graph of experimental data obtained from impact between a steel
speciman with a stationary steel block.3 A plot of relative tangential velocity before and after
impact typically follows the solid lines. This graph shows that for lower relative tangential
3.

N. Maw, "The Role of Elastic Tangential Compliance in Oblique Impact," ASME Transactions, vol. 103, Jan.
1981, pp. 74-80.

Chapter 16: Impact Analysis

velocity, the tangential coefficient of restitution model better fits experimental evidence, while
the frictional tangential impulse model is more suitable for higher relative tangential velocity.

Tangential velocity after impact

Frictional tangential impulse model

Tangential restitution model


Tangential velocity before impact

Figure 16.2 Typical experimental data for tangential impulses.


Also suggested by Brach4 is a bilinear model, which is a combination of the two models
shown above, with appropriate values of h and eht to fit experimental data. The way this
model is used is to solve both Eqs. (16.10) and (16.11), and then to accept the solution which
results in the higher relative tangential velocity after impact.

16.5 Impact Model with Normal Torsional Impulse


Next we consider the case where the impact is not isolated to a single point but is distributed
over some area on the contacting surfaces. The normal impulse generated during impact in such
a case may be accompanied by a moment impulse in the plane of contact if there is a relative
angular velocity about the surface normal at the time of impact. Again, because of the extra
unknown in this case, an additional equation is required. Similar to the the normal coefficient of
restitution, a torsional coefficient of restitution is defined as the negative ratio of the relative
angular velocity after the impact to that before.

eh =

ht $!a $!b

{
{!$
t
h

}
!$ }
b

where $!a , for example, is the angular velocity vector of body a which is given by

{ }

4.

R. M. Brach, ibid.

Chapter 16: Impact Analysis

Waj ( 3, 2 )

$!a = Waj (1, 3) ! j


j =1

Waj ( 2,1)

{ }

This extra equation can be used for the case of small relative angular velocity about the
normal axis. However, another model based on the coefficient of friction, which is more suitable
with higher relative angular velocity, is

( {

t hn = s gn ht $!a $!b

}) r i

n
h p h

Here, the use of the sgn function accounts for the direction of the torsional impulse due to
friction, which must be in the direction opposite to the relative angular velocity about the normal
to the surface. The symbol rp denotes a characteristic distance called the pitch radius, which
relates the torsional impulse to the normal force impulse. This pitch radius is assumed constant
and must be given by the user as data. It may be evaluated from different theories. For example,
with a uniform pressure distribution over a circular contact region, rp =r where r is the radius
of the contact area.
As with the tangential impulse case, the two models can be combined and used as a bilinear
model.

16.6 Impact Model with Moment Impulse


The normal impulse generated during impact may be accompanied by a moment impulse in the
plane of contact. If this moment impulse is considered to have components in both the tangential
and the bitangential directions, this introduces two more unknowns into the system. In order to
formulate two additional equations, a definition of moment coefficient of restitution is
introduced.5 It is defined in a manner similar to the previous case.

eh =

ht $!a !$b

{
{$!
t
h

}
$! }
b

A similar equation can be written for the bitangent direction

5.

R. M. Brach, ibid.

Chapter 16: Impact Analysis

eh =

ht $!a $!b

{
{!$
t
h

}
!$ }
b

16.7 Integrated Model of Impact


The general set of equations for an impact, using all of the aforementioned models, can be
written as

M ij
ht (Wai

t W W R
bj
h
h aj
t
h Waj Wbj Rh
t
$bj

h $ aj

ht $ aj
$bj

t $ $
bj
h aj

(
(

)
)

{
{
{

}
}
}

Wbi ) Rh

$bi
} ht {$ ai
$bi
} ht {$ ai
$bi
}
ht (Wai Wbi ) Rh ht {$ ai

! j

i hn

i ht
n
th
t
th
b
th

M ij

ehnht Waj Wbj Rh

et t W W R
h
h
aj
bj
h

=
! j
t $
$

eh h aj bj

t
$bj

ehh $ aj

eh ht $ aj
$bj

(
(

)
)

{
{
{

}
}
}

{ }

(16.12)
or

Chapter 16: Impact Analysis

10


M ij

t W W R
bj
h
h aj

t
$bj

h $ aj

ht $ aj
$bj

{
{

}
}

$bi
} ht {$ ai
$bi
} ht {$ ai
$bi
}
ht (Wai Wbi ) Rh ht {$ ai
! j

ht (Wai Wbi ) Rh
0

( {

sgn ht $! a $!b

}) r

h p

i hn
t
ih
n
th
t
th
b
th

M ij

n
t
ehh Waj Wbj Rh

=
! j
0

e t $ $

h
h
aj
bj

t $
$

eh h aj bj

{ }

{
{

}
}

(16.13)
Equations (16.12) use the tangential and torsional coefficients of restitution for the tangential and
torsional impulses, respectively. Equations (16.13), on the other hand, implement the tangential
and torsional coefficient of friction models. The bilinear combination model can be used in place
of either or both if the user prefers.
The impact equations, as presented in this and the previous Sections, show only the effects of
a single collision of a single contact pair of moving bodies. If more than one collision is to
happen in a simulation, they are treated in succession. Only one collision happens at a particular
instant. This collision causes changes in the generalized coordinate velocities. The time
integration is then continued with the modified velocities, and another collision may then take
place. In fact several collisions may take place before another printing or output display time
comes to pass.

16.8 Impact Analysis with SGCs


The impact equations presented above have been developed with the point of view that all
independent variables are free to respond to impacts and that none are driven by power sources
able to resist changes in velocity, that is that all are FGCs. In some cases of dynamic simulation,
various of the independent generalized coordinates are SGCs and the number of unknowns in the
dynamic impact equations can be reduced to only those of the FGCs.
For example, consider the case of Eqs. (16.12) when the system includes both FGC and SGC
independent generalized coordinates. Then, these equations are of the form

Chapter 16: Impact Analysis

11


M FF
M FS
ht (WaF

M SF
M SS
ht (WaS

t
t
h (WaF WbF ) Rh h (WaS WbS ) Rh
t
t
h (WaF WbF ) Rh h (WaS WbS ) Rh
t $ $
$bS

ht $aS
bF
h aF
t $
t
$
$
$
bF

bS

h aS
h aF
t $
t
$
$
$

bF

bS

h aS
h aF

{
{
{

}
}
}

{
{
{

}
}
}

$bF

WbF ) Rh ht (WaF WbF ) Rh ht $ aF

$bF
} ht {$aF
$bF
}
ht {$aF

ht (WaS WbS ) Rh

{
}
t $
}
h { aS $bS

WbS ) Rh

M FF

M SF

ent (W W ) R
bF
h
h h aF
et t (W W ) R
h
h
aF
bF
h
=
ehht $aF
$bF

e t $ $
h h
aF
bF

t $
$

eh h aF bF

{
{
{

$bS
}
ht {$aS

! F
$bS
} ! S
ht {$aS

in
h
it
h
t hn

t ht
b
t h

n t
ehh (WaS WbS ) Rh

eht ht (WaS WbS ) Rh ! F



! S
$bS

ehht $aS

$bS

ehht $aS

$bS

eh ht $aS

M FS
M SS

}
}
}

{
{
{

}
}
}

where the subscripts F and S refer to the subsets of free and specified generalized coordinates,
respectively. If we assume that the velocities of the SGCs are not modified by the impact, that is
that ! S = ! S , as is required for the motions specified to actually be achieved, then these
equations reduce to

M FF
ht (WaF

t W W
bF ) Rh
h ( aF
t
(W W ) R
bF
h
h aF
t $ $
bF
h aF
t
$ $
bF
h aF
t $
$

h aF bF

{
{
{

}
}
}

$bF

WbF ) Rh ht (WaF WbF ) Rh ht $ aF

$bF
} ht {$aF
$bF
} !
ht {$aF
F

M FF

n t
ehh (WaF WbF ) Rh

et t (W W ) R
bF
h
h h aF
=
t
$bF

ehh $ aF

e t $ $
h h
aF
bF

t
$bF

eh h $aF

{
{
{

}
}
}

n
ih
it
h
tn
h
tt
h
t hb

+1
(WaS WbS ) Rh

eht + 1 ht (WaS WbS ) Rh


!
F

t $
$

eh + 1 h aS bS
! S

$bS

eh + 1 ht $ aS

t $
$

eh + 1 h aS bS

(
(

ehn

(
(
(

)
)

ht

)
)
)

{
{
{

}
}
}

(16.14)

Chapter 16: Impact Analysis

12

Chapter 17: Constraint Force Analysis


17.1 Introduction
From the very beginning of this text the primary purpose has been to provide background for the
development of a digital simulation system to be of help to a designer in the creation of a
complex mechanical system. Although such simulation can assure that the designed system
moves through the desired trajectory with proper timing, this can usually be done by other means.
By far, the biggest advantage of simulation comes from helping the designer to find the forces
transmitted between connected bodies so that the component parts, and the joints between them,
can be designed to withstand the imposed loads without overloading and resultant failure, and
without undue factors of safety or overdesign.
As pointed out in Chapter 9, however, computers gain no guidance about the solutions of
problems from scanning free-body diagrams. Therefore, techniques based on the application of
Newton's laws are probably not the best approach for simulation. Here again, as in our
formulation of the equations of motion, we would very much prefer methods using energy and
virtual work.
As an example, suppose that we wish to find the torque T delivered to the crank by the force
P of expanding gas pressure on the piston of the slider-crank linkage shown in Figure 17.1.
B

T
C
A

P
D

Figure 17.1 Slider-crank linkage.


If we suppose a small virtual displacement of the system from its current position, then the
crank moves by a small angle A while the piston slides through a small increment D .
But we know that the total virtual work done during this virtual displacement must be zero.
Therefore,

W = PD T A = 0
where the negative sign shows that the output torque T is in a direction opposite to the

Chapter 17: Constraint Force Analysis

displacement A .
Also, we know that these increments are related by the closure constraint of the kinematic
loop. Therefore, since this is a single degree of freedom system, we know that, while the
independent variable moves by 1 , the other joints move by
1 1
D = D

and

A = A 1 1

Substituting these into the virtual work equation, we can solve for the torque T

1 1 T A 1 1 = 0
PD
1 A 1 ) P
T = ( D
This is the style of solution which we hope to generalize to find the constraint forces of any
mechanical system fitting the conditions of the preceding chapters.

17.2 Virtual Displacements


In order to generalize this virtual work approach, let us first consider the virtual displacements
which will be needed. In the above example we were very fortunate that the torque which we
wished to find happened to coincide with the axis of motion of a joint. Therefore, the virtual
displacement in this case was possible as a real displacement. However, how will we make a
virtual displacement which allows us to find a force which does not coincide with the motion of a
joint variable?1
v
v

vj

j
uu j

Figure 17.2 Joint axes associated with a typical joint.


1.

The methods shown here were first published in: J.Denavit, R.S.Hartenberg, R.Razi, and J.J.Uicker,Jr.,
"Velocity, Acceleration, and Static-Force Analysis of Spatial Linkages," Journal of Applied Mechanics, ASME
Transactions, 1965, pp. 903-910.

Chapter 17: Constraint Force Analysis

Recall the uvw coordinate system preceding a joint. Each joint, no matter what type, has such
a coordinate system. In Chapter 3, we modeled each type of joint so that the transformation from
the xyz coordinate system on the body preceding the joint, to the uvw coordinate system
preceding the joint, then to the u'v'w' coordinate system following the joint, and then to the xyz
coordinate system on the body following the joint is represented by Eq. (4.3) which reads

j = 1,2,, n

rj = S j , j j S j +1, j rj +

Suppose, as an example, that we wish to find the component in the uj direction of the force
transmitted through the pin joint shown in Figure 17.2. Then we choose to make a virtual
deformation in that chosen direction as shown in Figure 17.3. It is true that this deformation
is not a physical possibility, but that is why it is called a virtual deformation. Let us note
carefully, however, that, even though this one constraint (the one for which we seek the force) is
violated by the virtual deformation, all other constraints, such as loop closure conditions,
continue without violation.
w
v

w'
v'

u'

Figure 17.3 Virtual deformation along the u axis direction of joint .


Now that we see in the figure the virtual deformation that we wish to use, we must consider
how this will be modeled mathematically. After some consideration we see that the equation
shown above must be modified to the form

r = S , ( I + Q ) S1+ , r +

(17.1)

where the symbol is used in several ways. First, refers to the identification label of the joint
where the deformation is made, and where the force is sought. Second, and + refer to the
two body identifiers for the bodies before and after joint . Third, implies the particular
component of the force or torque sought and, therefore, the axis along or about which the
deformation is made. Fourth, the symbol after the Q matrix denotes the magnitude of the

Chapter 17: Constraint Force Analysis

virtual deformation. For a deformation in the u direction, as is our first case, we set the Q
matrix to
0

u 0
Q =
0

0
0
0
0

0
0
0
0

1
0
0

for along u (17.2)

If, on the other hand, we wish to find the component of force in the v direction, then Eq. (17.1)
still holds, but we set the Q matrix to
0
0
v
Q =
0

0
0
0
0

0
0
0
0

0
1
0

for along v (17.3)

and, to find the component of force in the w direction, we set the Q matrix to
0

w 0
Q =
0

0
0
0
0

0
0
0
0

0
0
1

for along w (17.4)

If we seek the component of torque exerted through this joint about the u axis, then we need a
virtual twist of magnitude about the u axis. We can still represent such a virtual deformation
with Eq. (17.1) by setting the Q matrix to
0

u 0
Q =
0

0 0
0 1
1 0
0 0

0
0
0

for a twist of about u (17.5)

For the component of torque about the v axis, the virtual twist is defined by setting the Q
matrix to
0

v 0
Q =
1

0
0
0
0

1
0
0
0

0
0
0

for a twist of about v (17.6)

and, finally, for the component of torque about the w axis, we define the virtual twist by setting

Chapter 17: Constraint Force Analysis

the Q matrix to
0 1

w 1 0
Q =
0 0

0 0

0
0
0
0

0
0
0

for a twist of about w (17.7)

This covers all possible cases, all six components of force and torque which can be
transmitted through the chosen joint . Once these forces and torques are found, we can then
switch to a different joint and use these same six virtual deformations again.

17.3 Virtual Derivatives


Our next task is to find how other parts of our system move under the action of the virtual
deformation chosen. To determine this we take the derivative of the loop closure equations with
respect to the virtual deformation. Let us first define the symbol

j , =

j = 1, 2, , n (17.8)

Of course, we must recognize that, while traversing the kinematic loops, we may or may not
come across the deformation itself, depending on whether joint is included in the particular
loop being traced. That is, the loop closure conditions, including the deformation, are of the
form
T0 S , I + L ( i, ) Q S + , T +,0 = I

i = 1, 2, , NL (17.9)

Now, if we define

) (

D = T0, S , Q T0, S ,

(17.10)

then, the loop closure conditions of Eqs. (17.9) become


I + L ( i, ) D T00 = I

i = 1, 2, , NL

which we can see is only equal to the original loop closure condition when = 0 .
If we differentiate the loop closure equations, starting from Eqs. (17.9), with respect to the
virtual deformation , then passing to the limit for which = 0 and T00 = I , we can write
n

L ( i, ) D + L ( i, j ) D j j , = 0

i = 1, 2, , NL

j =1

Chapter 17: Constraint Force Analysis

Putting this result into equivalent screw coordinate form, it can be rearranged to read
n

L ( i, j ) D = L ( i, ) D = C

i = 1, 2, , NL (17.11)

D (1, 4 )

D ( 2, 4 )
D ( 3, 4 )
Ci, = L ( i, )

D ( 3, 2 )
D (1,3 )

D ( 2,1)

i = 1, 2, , NL (17.12)

j,

i,

j =1

where we define

with an additional constraint equation of the form

2 1j j1, + 2 2j j,2 + 2 3j j,3 + 2 j4 j,4 = 0

(17.13)

for each spheric joint in the system, and another

2 j4 j,4 + 2 5j j,5 + 2 j6 j,6 + 2 j7 j,7 = 0

(17.14)

for each open joint in the system, a total of NC constraint equations for joints which have been
modeled with Euler parameters.
Therefore, we recognize that Eqs. (17.11), (17.13), and (17.14) finally reduce to the form

J = C

(17.15)

where J is the same [(6NL+NC)xn] Jacobian matrix which resulted from the numerical iteration
process of Section 6.5, and , for a given choice of , is an (nx1) vector of virtual derivatives
which are yet to be determined. The [(6NL+NC)x1] column C is composed of the NL vectors
from the right-hand sides of Eq. (17.11) for each loop, augmented by the NC right-hand sides of
zeroes for Eq. (17.13) for each spheric joint and Eq. (17.14) for each open joint.
Reviewing the numerical iteration process of Section 6.5, we recall that the modified pivoting
scheme used in the modified Gauss-Jordan process reordered the joint variables so that all
dependent joint variables are numbered first, followed next by the NF joint variables of the FGCs
and finally by the NS joint variables of the SGCs. Recognizing that both the FGC and the SGC
joint variables have been accepted as generalized coordinates , we see that, by definition, they
are independent of each other and of . Therefore, for a particular choice of , the matrix
must be of the form

Chapter 17: Constraint Force Analysis

1,

2,
"
,

dep
= n f , =
0
0

"
0

(17.16)

But, remembering Eq. (6.10), we see that this is the same subdivision which resulted from the
Gauss-Jordan elimination process. Reverting to the notation of Eq. (6.7) we have

J 11

J 21


J 12 J 13 dep ,
0 =
J 22 J 23
0

(C )
(C )

and, after the Gauss-Jordan process is complete, these equations are reduced to the form of Eq.
(6.8)

I J 111J 12

0
0



J 111J 13 dep , J 111
0 C 1
0 =

0
J 21J 111 I C

0
2

( )
( )

which has for a solution

( )

, = J 111 C
dep

(17.17)

with the additional condition that

(C )

( )

1
J 21J 11
C

=0

(17.18)

Finally, in Eq. (17.17), we have the solution we have sought for the virtual devivatives with
respect to our chosen virtual deformation, and we find that they are extremely easy to calculate.
All that is required, after choosing the desired deformation, is to form Q and, from it, the D
operator of Eq. (17.10). From this we form C according to Eq. (17.12) and, finally, since the
Gaus-Jordan process of Chapter 6 has been completed, Eq. (17.17) requires only a matrix
multiplication.
However, we must not forget to verify Eq. (17.18). Unlike previous chapters, where this
additional condition was always satisfied, that is not always true with these virtual derivatives.
On the contrary, when Eq. (17.18) is satisfied, it shows that the result of Eq. (17.17) is valid.

Chapter 17: Constraint Force Analysis

However, when Eq. (17.18) is not satisfied, then the result of Eq. (17.17) is not valid. How can
this happen? This happens when it is not possible to make the chosen virtual deformation
without violating another constraint of the system geometry, and this is what happens when we
try to evaluate a force component in an indeterminate direction. The failure of the condition of
Eq. (17.18) is an immediate signal that the virtual deformation chosen corresponds to a statically
indeterminate component of force or torque. No further computation is required and none will
be useful since statically indeterminate forces cannot be determined from a rigid body model.2
It should be noted that, if the force computations had been formulated according to Newton's
laws, we would have formulated a large set of simultaneous equations for all unknown force
components. Failure to solve for one or more because of static indeterminacy would mean
failure to solve for any. In such problems, we would find no force results because some are
indeterminate. With the virtual work approach taken here, each component is solved
independently and only unsolvable component(s) fail to yield a result.

17.4 Lagrange Equation for Constraint Force


Now that we have found the virtual derivatives corresponding to the chosen virtual deformation,
how will we procede from these to find the constraint force? Well, if we think carefully, we see
that what we have done is to imagine our real system, which, in physical reality, has f degrees of
freedom, and imagined it to have one additional degree of freedom, namely our virtual
deformation . But if we accept this point of view, then the Lagrange equation of motion for that
additional degree of freedom is

d H

dt #

H V
+
= F

(17.19)

where F is the component of force we seek. Of course, in order to correspond to the physical
system, we must evaluate this equation under the conditions that = # = ## = 0 , that is, under the
conditions that the virtual deformation is not moving.
Now, in order to carefully derive the terms of Eq. (17.19), it is necessary to formulate kinetic
and potential energy formulae which are functions of all f degrees of freedom and , and to take
the derivatives indicated, carefully evaluating each term as indicated. The authors have done this
in full detail.3 However, rather than to show each step here, it should not surprise the reader to
see that the final result reads exactly parallel to Eq. (10.15). This is
2.

The IMP software tests this condition to be zero within a default tolerance of 0.0001; however, this value may
be overridden by the user, if desired.

3.

The extension of these methods to include dynamic forces was first published in J. J. Uicker, Jr., "Dynamic
Force Analysis of Spatial Linkages," Journal of Applied Mechanics, ASME Transactions, vol. 89, June, 1967.

Chapter 17: Constraint Force Analysis

t
t

f

f f

t
t

F = trace WaT0a J aT0a Waj## j + trace WaT0 a J aT0 a Aajk + WajWak # k# j


j =1
a =1

a =1
j =1 k =1

(
j =1 a =1

t
# j + Rab
t uab cabuab
# j
+ a caaj
Rabj
j =1 ab

t uab kab ( ab ab 0 ) g tWaT0 a J aT0ta r0


+ a ka (a a 0 ) + Rab
a =1
n

a =1

ab

t
a f a (, t ) Rat ubc f abc (, t ) W%a ubc abc (, t )
a =1

abc

abc

(17.20)
where the following additional notation using the virtual derivatives has been defined
n

Wa , = P ( a, j ) D j j ,

a = 1, 2, , (17.21)

j =1

Ra , =

Ra
= Wa ,T0 a ra = Wa , Ra

= Ra Rb = Wa Ra Wb Rb
Rab

a = 1, 2, , (17.22)
a, b = 1, 2, , (17.23)

In order to properly use, Eq. (17.20) it is necessary to understand the sign conventions chosen
in the derivation. The force F is the single component of force or torque acting from body onto body + along or about one of the u, v, or w axes consistent with the choice of Q. The
component F is positive when it acts onto body + in the positive direction of the
corresponding deformation axis. The sign conventions for f a (, t ) , f abc (, t ) , and abc (, t )
are those explained in Sections 9.10, 9.11, and 9.12, respectively.

Example 7.1
To illustrate the process explained above, let us continue the analysis of the Hooke universal
joint started in Example 4.1 and continued in Examples 7.1 and 8.1. Suppose we now wish to
find the six components of force and torque in the input joint D for a given static load torque PA
at output joint A. Since we have no mass distribution data, we seek only the static forces. From
these previous examples we have already found

T04 S4D

0 sin cos d2 cos


1
0
0
h

=
0 cos sin d2 sin

0
0
1
0

Chapter 17: Constraint Force Analysis

h
J = 1

h cos

h cos sin

1 sin sin
2

0
0

h sin sin
sin sin

cos sin

cos

1 sin2 sin2
cos

cos sin

1 sin2 sin2

h sin

h cos
cos

sin

and we have already noted that the first three rows of J are either trivial or h multiples of other
rows. That is, these three rows form [ J 21 J 22 ] ; the final three rows form [ J 11 J 12 ] .
First we find

(T04 S4 D )

0
sin
=
cos

0 cos
0
0

sin
0

h
0
d 2

and, from Eq. (17.10), using Eqs. (17.2) through (17.7), the six D matrices for joint D are

DDu = (T04 S 4 D ) Qu (T04 S 4 D )

DDv = (T04 S 4 D ) Qv (T04 S 4 D )

DDw = (T04 S 4 D ) Qw (T04 S 4 D )

Chapter 17: Constraint Force Analysis

0
0
=
0

0 0 0
0 0 1
0 0 0

0 0 0

0
0
=
0

0 0 sin
0 0
0
0 0 cos

0 0
0

0
0
=
0

0 0 cos
0 0
0
0 0 sin

0 0
0

10

0 0 1 d 2 sin
0 0 0

0
1

DDu = (T04 S 4 D ) Qu (T04 S 4 D ) =


1 0 0 d 2 cos

0
0 0 0

cos
0
h cos
0
cos
0
sin
d 2
1
DDv = (T04 S 4 D ) Qv (T04 S 4 D ) =
0
sin
0
h sin

0
0
0
0

DDw = (T04 S 4 D ) Qw (T04 S 4 D )

0
sin
=
0

sin

cos

cos
0

0
0

h sin

h cos

Now, extracting the negative Ball vectors from each of these, according to Eq. (17.12),

sin
0
1
0

0 cos
C =
0
0
0
0

0
0

cos

d 2 sin

h cos

d2

sin

d 2 cos

h sin

sin
0
cos

h sin
0
h cos

cos
0

sin

However, as we have noted before, for compatibility with the Jacobian matrix, the first row
of each of these should be an h multiple of the sixth row, the second row should be zero, and the
third row should be the negative h multiple of the fourth row. But these conditions are only met
by the sixth column, that is, by the w deformation; all other deformations give contradictory
equations. This implies that only the torque about the wD axis can be found; the other five
components of force and torque are statically indeterminate.
The equations for the virtual derivatives for this one valid virtual deformation are

cos sin
1 sin2 sin2

cos
1 sin2 sin2

sin sin
cos
cos sin

Chapter 17: Constraint Force Analysis


cos A w
w cos
B
0 w = 0
C
w sin
D
sin

11

and this set of equations has the solution4

cos

1 sin2 sin2
Aw
w sin cos
B = 1 sin2 sin2
Cw
w sin cos sin
D 1 sin2 sin2

Finally, with the given conditions and assuming that positive PA represents a torque which is
counterclockwise about the positive wA axis, Eq. (17.20) reduces to

FDw = A w PA

FDw =

cos
1 sin2 sin2

Ans.
PA

This says that, for a couterclockwise load torque PA, the driving torque is also positive and
therefore counterclockwise.
Isn't this contradictory?
No.
This driving torque is
counterclockwise about the wD axis. Careful study of Figure 4.2 shows that, for small angles of
this is directed almost opposite to the wA axis.

4.

It is no surprise that these particular virtual derivatives are identical to the first kinematic derivatives found in
Example 7.1 since this virtual deformation is aligned directly in series with the real generalized coordinate of
joint D. Thus, this particular deformation duplicates the ideas shown in Section 17.1; however, that Section
gave no indication that other components are statically indeterminate.. That is now proven,

Chapter 17: Constraint Force Analysis

12

Chapter 18: Accounting for Flexibility


Through many years of experience in the simulation of multibody systems as explained in
preceeding chapters the authors have seen an immense variety of applications in mechanical
design where the responsible designers have felt it critical to assess the effects of flexibility on
the performance of the product or system under consideration.
Sometimes they have avoided the use of multibody dynamics (MBD) software simply
because such software is based on the assumption that all bodies are rigid, and simulating
flexibility is not possible in such a system. Instead, they usually attempt to simulate their product
through finite element analysis (FEA) software. Here, they meet a different limitation. Most
FEA software systems are based on the assumption that strain and, therefore, geometric change
remains small. Therefore, such systems are not intended for the simulation of systems which
move through large geometric changes. Systems which exhibit large amplitude motion,
particularly large rotation, are outside of the class for which such software is intended. Use of
FEA systems for simulating such systems can lead to frustration.
Others, knowing of this limitation of FEA software may try to use an MBD system, perhaps
replacing one or more bodies by a truss structure made up of struts with spring restrained
prismatic joints along their axes and spheric joints at both ends. As they include more struts,
trying to more closely model the real part, the difficulty of modeling increases, the resulting
number of degrees of freedom of the system increases, the performance and perhaps even the
success of the analysis decreases rapidly, and this approach also leads to frustration. An MBD
system is not another type of FEA system, and models should not be built in this style or with
this intent.
Let us consider the use of FEA software again. Suppose we simplify our view to the design
of only a single body of the total system. If we reduce our model to this extreme, surely this will
simplify our problem. Unfortunately, however, this raises another problem. In our model of this
single body, what will we use for imposed loads at the joints, which have now become the
boundaries of the system? These loads are not known until the total system model, moving under
the loads of the system environment, provide them.
Indeed, one approach which has been used is to instrument a prototype system, measure the
forces transmitted through the joints, and then to use these forces as the boundary conditions for
FEA simulation of the individual parts as the design is further refined. This approach can also be
followed in the design of modified versions of a product or in the refinement of a new release.
However, this is a very slow and costly approach for the design of a totally new product where no
previous model exists and data must be obtained from a prototype before the design can be
refined and released.
So, how should such articulated mechanical systems be simulated? Consider the information

Chapter 18: Accounting for Flexibility

flow diagram shown in Figure 18.1.

User
Output
Display

Input Data

Solid Modeler

MBD
FEA
Mesh Generator
Force Data

Solid Models

Mesh Data

Dynamic Data

Figure 18.1
First solid models of each body are formed. These provide the mechanical properties (inertia
matrices Ji) and joint locations (shape matrices Sij) for the MBD system. They are also required
so that a mesh generator can provide the mesh data required for FEA. Next we use an MBD
system, with a simulated environment, to find the loads transmitted through the joints. These
loads are provided, along with the mesh data, for the FEA simulation, which can then suggest
possible design refinement of individual bodies. In this way, each program is doing what it does
best. The MBD system simulates the high speed large changes in geometry, even though it does
so assuming rigid bodies for the individual parts. This simulation system includes proper
dynamic forces caused by the motions and the loads on the attached, articulated bodies. The
motions of and the loads on these bodies are then both known when the FEA simulation is
performed. In fact, the FEA system can now be executed on each body individually, if desired.
Each body can be redisigned as necessary to enforce the assumption that the body geometry stays
constant under the loads predicted. If necessary because of radical changes, further iterations can
be performed through the MBD and then the FEA simulations.

Chapter 18: Accounting for Flexibility

Chapter 19: Sensitivity to Geometric Tolerances


19.1 Modeling Geometric Error
Another extremely important topic in the design of a multibody system is the assesment of the
effects of manufacturing inaccuracy on its operation. If such effects can be predicted, then
suitable design tolerances can be assigned at proper locations to assure proper system
performance, while allowing lower cost methods in situations where accuracy is not as critical.
How should we model error in the manufacture of a part? There are many different kinds of
error which might be considered. The part might have improper material properties. Its stiffness
might be too high or too low. Its mass distribution might not fit design specifications. It might
have porous material. This list could go on. However, as indicated by the chapter title, we are
concerned here with those errors which stem from improper geometry.
There are only two kinds of geometric error that affect the performance of the system. Either
a point might be located at other than its proper design position or a joint coordinate system
might be incorrectly located or improperly aligned in comparison with design specifications. A
third kind of geometric error might be in the shape of the outer boundary of a part, but this does
not directly affect the motion of the system and, therefore, is not considered in this chapter.1
First let us consider the kind of error which occurs when the location of a point does not fit
design specifications. In this case, the erroneous local body coordinates of the point can be
modeled as

[ I + Q ] r

= 1, 2, ,

(19.1)

where signifies a body number, and also designates which local coordinate value, x , y , or
z , is in error. The Q operator is chosen from Eqs. (17.2), (17.3), or (17.4), appropriately, and
is the magnitude of the small error. If we transform this operator to global coordinates
D = T0 QT01

= 1, 2, ,

(19.2)

= 1, 2, ,

(19.3)

the global coordinates of the point, with error, become

R = [ I + D ] T0 r
1.

Geometric error in shape will, of course, affect the stress pattern within a body and also the mass distribution
and, therefore, the dynamics of the system. Modeling these errors, however, is outside the scope of this text.

Chapter 19: Sensitivity to Geometric Tolerances

This kind of error does not affect the values of the joint variables or other kinematic values.
It may, however, affect the dynamics if, for example, this point is the connection point for a
spring or damper or the point of application of a force.
Next let us consider errors in the location or orientation of a set of joint axes. Let us agree
that the geometry of each body in the system is inspected independently, and that the shape of
each is measured with respect to its own local body coordinate system. If a particular joint
coordinate system, say for joint number , is improperly located or aligned with respect to the
local body axes on body number the body before the joint), this is the same as saying that its
shape matrix S , does not fit design specifications. Even though Eq. (3.34) gives the nominal
specification as

r = S , r

= 1, 2,# , n

on inspection it might be found instead that the final part shape is different. Instead of agreement
with the nominal value, one of its final dimensions might fit the model
r = S , ( I + Q ) r

= 1, 2,# , n

(19.4)

where Q is one of the six matrix forms defined in Eqs. (17.2) through (17.7) and is the
magnitude of the corresponding small dimensional error.
In this situation, the transformation from body to body + deviates from nominal as
follows,

r = S , ( I + Q ) S1+ , r +

= 1, 2,# , n

(19.5)

and the loop closure equations are modified as follows


T0 S , I + L ( i, ) Q S + , T +,0 = I

= 1, 2,# , n
i = 1, 2, , NL

As we did in Chapter 17 in Eq. (17.10), we can define an operator matrix2

) (

D = T0, S , Q T0, S ,

= 1, 2,# , n

(19.6)

and the modified loop closure equations become

2.

Notice that the superscript distinguishes this operator from the somewhat similar form of Eq. (19.2). Notice also
that subscript now refers to a joint label.

Chapter 19: Sensitivity to Geometric Tolerances

= 1, 2,# , n

I + L ( i, ) D T = I
00

i = 1, 2, , NL

(19.7)

Up to here all of this follows precisely the same as it did for virtual deformations in Chapter 17,
except that now refers to a small but real deviation in shape rather than a virtual deformation.
When modeling manufacturing error, however, we must also consider the possibility that the
error may occur in the location or orientation of the coordinate system following, rather than
preceding, joint , that is, in the shape matrix S + , . In this case, the equivalent to Eq. (19.4)
becomes
r + = S + , ( I + Q ) r

= 1, 2,# , n

(19.8)

However, as the reader can easily verify for each of Eqs. (17.2) through (17.7),

( I + Q )

= ( I Q )

(19.9)

Therefore, when the error occurs in shape matrix S + , , Eq. (19.5) is replaced by

r = S , ( I Q ) S 1+ , r +

= 1, 2,# , n (19.10)

and the modified loop closure equations with this kind of error are
T0 S , I L ( i, ) Q S 1+, T +,0 = I

= 1, 2,# , n
i = 1, 2, , NL

In this case, instead of Eq. (19.6), we define

) (

D+ = T0, S , Q T0, S ,

= 1, 2,# , n (19.11)

and the loop closure equations with this kind of error become

I L ( i, ) D + T = I
00

= 1, 2,# , n
i = 1, 2, , NL

(19.12)

19.2 Kinematic Derivatives With Respect to Geometric Errors


As was pointed out above, an error in the position of a point can affect the dynamics of our
system, but not its kinematics. In spite of point location errors, the values and derivatives of the
joint variables do not vary from their design values. However, the operation of other portions of
our system can be seriously affected by a geometric error in any of the shape matrices since, once
the system is assembled, such a shape error can cause deviations from the design specifications in

Chapter 19: Sensitivity to Geometric Tolerances

the values of joint variables throughout the system, and the magnitudes of these errors vary for
each new position of the system.
For a small error in the shape matrix S , , as modeled by Eq. (19.4), let us expand the loop
closure equation in a first-order Taylor series about the nominal geometry. Expanding Eq. (19.7)
and ignoring higher order terms leaves
n

I + L ( i, ) D T + L ( i, j ) D T = I
00
j 00 j

j =1
For the nominal geometry, we have T00 = I which allows reduction of this equation by
several terms. After we divide what remains by the common factor, rearrange terms, and
eliminate redundency by taking Ball vectors, this equation becomes
n

L ( i, j ) D j j = L ( i, ) D = Ci,

j =1

= 1, 2,# , n
i = 1, 2, , NL

(19.13)

and, of course, these are accompanied by an additional constraint equation of the form

2 1j j1, + 2 2j j,2 + 2 3j j,3 + 2 j4 j,4 = 0

(19.14)

for each spheric joint in the system, and another

2 j4 j,4 + 2 5j j,5 + 2 j6 j,6 + 2 7j j,7 = 0

(19.15)

for each open joint in the system. Therefore, we recognize that Eqs. (19.13), (19.14), and (19.15)
reduce to the form

J = C

= 1, 2,# , n (19.16)

where J is the same [(6NL+NC) x n] Jacobian matrix which resulted from the numerical
iteration process of Section 6.5, and, for a given , is an (n x 1) vector of the derivatives
which are being sought. The [(6NL+NC) x 1] column C is composed of the NL vectors from
the right-hand sides of Eq. (19.13) for each loop, augmented by the NC right-hand sides of zeroes
for Eqs. (19.14) for each spheric joint and Eq. (19.15) for each open joint.
If the error is in the shape matrix S +, , as modeled by Eq. (19.8), then a parallel derivation
leads to an equation similar to Eq. (19.13), which reads
n

+
L ( i, j ) D j j = + L ( i, ) D = Ci,

j =1

Chapter 19: Sensitivity to Geometric Tolerances

= 1, 2,# , n
i = 1, 2, , NL

(19.17)

where we notice a difference in sign and also that Eq. (19.11) is now used rather than Eq. (19.6).
Otherwise, all steps are the same and the result is that Eq. (19.16) is still valid, but with this
modification in the form of C .

Example 19.1
Let us illustrate the ideas of this Section by continuing our analysis of the Hooke universal shaft
coupling of Example 4.1. Looking at Figure 4.3, let us investigate the error in the output shaft
rotation angle A which would result from an orientation error of = 0.5 in the
perpendicularity of the revolute axis of joint B, that is for an error in the shape matrix S1B in the
angle of wB about the u B axis. For such an error, the appropriate Q operator matrix is found
from Eq. (17.5)

0
0
Q =
0

0
0 1 0
1 0 0

0 0 0
0

From Example 4.1 we have

T04 = I ,

1
0
T41 =
0

0
sin A

0
cos A

cos A
0

sin A
0

0
h
,
0

0
0
S1 A =
1

0 1
1 0
0
0

0
0

d1
0
0

for which, Eq. (19.6) yields

1 sin A

DB = (T01S1B ) Q (T01S1B ) =
cos A

sin A

cos A

h sin A
0
0

With this and Example 7.1 we can formulate the terms of Eq. (19.16)

Chapter 19: Sensitivity to Geometric Tolerances

J = C

h
1

h cos
2

1 sin sin

h cos sin

0
0

0
h sin sin

sin sin

cos sin

cos

1 sin 2 sin 2
cos
1 sin 2 sin 2

cos sin

h sin

h sin A

A
0

h cos

0
B
cos =

C
0

cos A
D

sin A

sin

Here we notice, as we had for Examples 7.1 and 8.1, that the second equation has all zeroes and
the first and third equations are h multiples of the sixth and negative fourth. As long as these
= 0 since D is the input (an
consistency checks hold true for the right-hand side, we set D
SGC), and reduce the equations to the form

0
cos sin
1 sin 2 sin 2
cos
1 sin 2 sin 2

sin sin
A 0
= cos
cos
A
B

sin

C
A

cos sin

Upon solution this set yields

A = sin tan cos A


and a graph of this sensitivity factor is shown in Figure 19.1.

FIGURE 19.1 Sensitivity factor A = A , where is an angular error in the shape


matrix S1B of the wB axis about the unit vector u B , versus input shaft angle
= D .

Chapter 19: Sensitivity to Geometric Tolerances

This graph shows that, for a manufacturing error in the shape matrix S1B such that the wB
axis is misoriented by an angular error of about the u B axis, the final output shaft angle A
varies from its theoretical value in a periodic fashion with an error amplitude of 1.0 . If the
manufacturing error is = 0.5 as stated, then the amplitude of the periodic error in output
angle will be 0.5 A 0.5 .
On the other hand, if the error in the orientation of the wB axis results from an error in S2 B ,
then we must form D+ from Eq. (19.11).

sin cos
A
B
DB+ =
cos A cos B

sin A cos B

cos A cos B

sin B

sin B

h sin A cos B

h sin B

With this and Eq. (19.17), Eq. (19.16) gives

J = C

h
1

h cos
2

1 sin sin

h cos sin

h sin sin

sin sin

cos sin
1 sin 2 sin 2
cos
1 sin 2 sin 2

cos
cos sin

h sin

h sin A cos B
0

A
0

h cos
B

h
sin

B
cos =

C
sin B


0 D cos A cos B

sin A cos B

sin

Again we note that the second equation has all zeroes and the first and third equations are h
multiples of the sixth and negative fourth. As long as these consistency checks hold true for the
= 0 since D is the independent input variable, and reduce the
right-hand side, we again set D
equations to the form

Chapter 19: Sensitivity to Geometric Tolerances

0
cos sin
1 sin 2 sin 2
cos
1 sin 2 sin 2

sin sin
A 0
= cos
cos
A
B

sin

C
A

cos sin

The solution of this set gives

A = sin B sin 2 sin 2 cos A cos


and a graph of this sensitivity factor is shown in Figure 19.2.

FIGURE 19.2 Sensitivity factor A = A , where is an angular error in the shape


matrix S2 B of the wB axis about the unit vector u B , versus input shaft angle
= D .
This graph shows that, for a manufacturing error in the shape matrix S 2 B such that the wB
axis is misoriented by an angular error of about the u B axis, the final output shaft angle A
varies from its theoretical value in a periodic fashion with an error amplitude varying from zero
to +1.0 . If the manufacturing error is = 0.5 as stated, then the amplitude of the periodic
error in output angle will be 0 A 0.5 . Also, quite unlike the previous case, even though
the error is still periodic, there are now two cycles of error fluctuation per input shaft rotation
while previously there was only one.
As yet a third case, referring to Figure 4.3, let us see what happens if there is a manufacturing
error in shape matrix S1 A in the y1 direction of = 0.005 inches between the body coordinate
system origin and the centerline of the output shaft axis. For such an error, the appropriate Q
operator matrix is found from Eq. (17.3)

Chapter 19: Sensitivity to Geometric Tolerances

0
0
Q =
0

0 0 0
0 0 1
0 0 0

0 0 0

However, if the error in the location of the wA axis results from an error in the S1 A , then we
must use the form D+ from Eq. (19.11).
0
0
1
D+ = (T04 S 4 A A ) Q (T04 S4 A A ) =
0

0 0 sin A
0 0 cos A

0 0
0
0 0

With this and Eq. (19.17), Eq. (19.16) gives

J = C

h
1

h cos
2

1 sin sin

h cos sin

h sin sin

sin sin

cos sin
1 sin 2 sin 2
cos
1 sin 2 sin 2

cos
cos sin

h sin

0
0
A sin A

h cos

cos

B
A
cos =

C
0


0 D 0

sin

Here, simple inspection of the second row confirms that this set of equations does not have a
consistent solution. What this means in practice is that, with this manufacturing error, proper
assembly of the system will not be possible except for clearance in the fits of the bearings and
strain of the not truly rigid parts. Rigid body analysis cannot be used to predict the final
performance under these conditions.

Chapter 19: Sensitivity to Geometric Tolerances

Problems
19.1

Assuming that 2 0 , verify Eq. (19.9) for each of Eqs. (17.2) through (17.7).

Chapter 19: Sensitivity to Geometric Tolerances

10

Anda mungkin juga menyukai