Edited by
Edward J. Haug
Center for Computer Aided Design, College of Engineering
University of Iowa, Iowa City, lA 52242, USA
Library of Congress Catalog Ing in Publicatlon Data. NATO Advanced Study Institute on Compu;er Alded Analysis
and Optimlzation of Mechanlcal System Dynamics (1983. Iowa City, Iowa) Computer alded anaiysls and
optimlzation of mechanical system dynamics. (NATO ASI series. Series F, Computer and systems sciences, voI. 9)
"Proceedings of the NATO Advanced Study Institute on Computer Aided Analysis and Optimizat on of Mechanical
System Dynamics held at Iowa City/USA. August 112, 1983" Includes bibliographical references. 1. Machinery,
Dynamics ofData processingCongresses. 2. DynamlcsData processingCongresses. 1. faug, Edward J. IL
Title.llI. Series NATOASI series. Senes F, Computer and system sciences, no. 9. TJI73.N381983 6218'118410482
ISBN 0387128875 (U.S.)
This work IS subiect to copyright. AII nghts are reserved, whether the whole or part of the material s concerned,
specifically those of translating, repnntlng, reuse of Iilustrations, broadcastings, reproduction by photocopying
machine or similar means, and storage in data banks. Under § 54 of the German COPYright Law where copies are
made for other than private use, a fee is payable to "Verwertungsgesellschaft Wort", Munlch.
© SprlngerVerlag Berlin Heidelberg 1984
Originally published by SpringerVerlag Berlin Heidelberg New York Tokyo in 1984
2145/314054321 O
NATONSFARC ADVANCED STUDY INSTITUTE ON
COMPUTER AIDED ANALYSIS AND
OPTIMIZATION OF MECHANICAL SYSTEM DYNAMICS
IOWA CITY, IOWA, UNITED STATES, AUGUST 112, 1983
PARTICIPANTS
February, 1984
E. J. Haug
Preface XI
Introduction
Edward J. Haug 3
Abstract 3
The Scope of Mechanical System Dynamics 3
Conventional Methods of Dynamic Analysis 9
The Objective of Computational Dynamic~ 10
Ingredients of Computational Dynamics 11
A Survey of Dynamics Software 24
Design Synthesis and Optimization 31
References 37
Part 1
ANALYTICAL METHODS
Burton Paul 41
Jens Wittenburg 89
ANALYTICAL METHODS IN MECHANICAL SYSTEM DYNAMICS
Abstract 89
Introduction 89
D'Alembert's Principle 92
System Kinematics 98
XVI
Part 2
COMPUTER AIDED FORMULATION OF EQUATIONS OF DYNAMICS
Conclusion 212
References 213
Part 3
NUMERICAL METHODS IN DYNAMICS
W. H. Enright 309
C. w. Gear 323
DIFFERENTIALALGEBRAIC EQUATIONS
Abstract 323
Introduction 323
c. W. Gear 335
THE NUMERICAL SOLUTION OF PROBLEMS WHICH HAY HAVE HIGH
FREQUENCY COMPONENTS
Abstract 335
Introduction 335
The Stiff Case 336
The QuasiStiff Case 337
The Fast Case 338
Conclusion 348
References 348
Part 4
INTERDISCIPLINARY PROBLEMS
G. P. Ostermeyer 415
NUMERICAL INTEGRATION OF SYSTEMS WITH UNILATERAL CONSTRAINTS
Introduction 415
Approximation of Unilateral Constraints by Potentials 415
Regularization of Impact; A Physical Interpretation 417
Numerical Integration of Systems with Impact 418
References 418
Part 5
SYNTHESIS AND OPTIMIZATON
Ing. H. Rankers 4 21
SYNTHESIS OF MECHANISMS
Summary 421
Design Philosophy 422
Design Objectives and Goal Functions in Synthesis
of Mechanisms 428
XXI
Edward J. Haug
Center for Computer Aided Design
University of Iowa
Iowa City, Iowa 52242
link 2
3)
a. Tractor  Trailer
@TRAILER
CD TRACTOR
@)GROUND
An Elementary Example
or
The global coordinates of the center of mass of the connecting rod are
reo• e + [•,'
r
2 ~2
1 ~'h
sin2 e (3)
x2
7
r (~  ~1 )
Y2 = ~
sin 6 (4)
~ = [1 
r2
~_2
. 2a
s~n J 1 r cos e) a•
/2 (1 (5)
. rsin e  [ 1  ~_2 r
2 ~_2
1
sin 2 a]
 1t2 2 2
r R.1
sin a cos e } 6 (6)
x2 = {
7 7
.
Y2 (r (1 
R.1
T) cos a] 6 (7)
Thus, given the input position a and angular velocity 6, Eqs. 27
determine the position and velocity of the connecting rod.
In preparation for writing Lagrange's equations of motion for the
system, its kinetic energy, using the velocity relations of Eqs. 57,
can be written as
(8)
Note that the kinetic energy has been written totally in terms of the
input angle e and input angle rate e.
In order to write Lagrange's equations of motion, the virtual
work of the torque n 1 acting on the crank link and the gravitational
force acting on the connecting rod must be calculated. Using the
differential of y 2 from Eq. 4, the virtual work can be written as
(9)
··
e ~ J1 + J2 [ 12 r 2cos2s1n2. e2e J+ m2r 2 [11 12]
r
~
1 2 2
cos e
2 r 2 112 2 1
+ m2 [ r + (1 1  ~ sin e) I
2
;z
r 2 112 ~2
cose
2
sin e
J
2 2 r 22
11 2 
+ m2 sin e2 [ r + (1 1   2 sin e)
lf2 r 22
11
 2 cose
J
1 1
.t
2 2 2 2
(11 r 11sin er
7
lf2 2 2
r 11 (sine)
;z
 r 2 121sin2 er lf2 (r12 122sinecose) ]
;z 7
l
(11)
15
~
1 _ rcos ~
1 1.1 cos ~2)
(12)
Yz
y
 r sin ; 1 1 0 1 1 sin ;2 0
r cos ; 1 0 1 0 (1 4)
0 0 0
Note that these equations are linear in the four velocity variables.
These algebraic equations may be rewritten, taking terms depending
on +1 to the right side, to obtain
1 (1 5)
17
which is nonzero if i > r, since in this case 11/2 < .p 2 .;; 11/2. Note
that the Jacobian matrix of Eqs. 1 and 2 with respect to x 2 , y 2 ,
and .p 2 is the coefficient matrix on the left side of Eq. 4. By the
implicit function theorem, if the linkage can initially be assembled,
then a unique solution of Eqs. 1 and 2 is guaranteed for x 2 , y 2 ,
and .p 2 as differentiable functions of .p 1 . This theoretical result
serves as the foundation for one of the modern methods of formulating
and solving equations of kinematics of such systems.
In order to write the equations of motion for this example in
terms of Cartesian coordinates, the kinetic energy of the system is
first written as
(17)
g<P n1 (18)
1
gY2 = m2g
\
The Lagrange multiplier form of Lagrange's equations of motion [7] are
now written in the form
(20)
18
0 (21)
(22)

j 2 +2  1 1 ~sin +2+ 1 2 ~cos +2 + 13 (1 t 1 )cos +2 0 (23)
Library of Elements
Interdisciplinary Effects
TradeOffs
Modes of Analysis: Kinematic(K), Static K,S K,S K,S K,S K,S K K,S K,S K,S K,S K,S K,S
(S), Dynamic (D), Inverse Dynamic (I) D,I D,I D,I D,I D,I D,I D,I D,I D,I D,I I D
Generalized Coordinates: Lagrangian (L),
Cartesian (C) c c L L L L c L L c L c
Lagrange Multipliers: Yes (Y), No (N) y y N N N N y y y N N N
Independent Variables: No (N), Yes (Y)/
User Defined (U), Automatic (A) N Y/A Y/A Y/A Y/A Y/U Y/U Y/A Y/U Y/U Y/U y
NEPTUNIX 2
General purpose simulation code for nuclear simulation,
electrical networks, and large scale systems having up to
3,000 differentialalgebraic equations.
Developed by M. Nakhle.
Commercially available from M. Nakhle, CISI, 35
Boulevard Brune, 75015, Paris, FRANCE. Available
to academic institutions for cost of documentation.
ROBSIH (Robotic Simulations Package)
Analysis of Robotic systems for development of control
systems, structures and algorithms, motion programming and
planning algorithms, and robot system design.
Developed by D. C. Haley, B. Almand, M. Thomas,
L. Kruze, and K. Gremban, Martin Marietta Denver
Aerospace, Denver, Colorado.
Not commercially available.
STATHAC (Statics of Machinery)
Static analysis of planar machines for configurations when
forces are specified, or for forces when configuration is
specified.
Developed by B. Paul and A. Amin.
Commercially available from Professor B. Paul,
Department of Mechanical Engineering, University of
Pennsylvania, Philadelphia, Pennsylvania 19104.
u !:! I
I~ I u I ~~ EtN I Et
CHARACTERISTIC ~u ,::::)< P..:><: l"l:E <u
~g ~~ ~~ ~H OH
t...' :z; U,:::) :><:I ~H2 :z;:z; ~t/) ~~
~u ~~ ~~
Dimension: Planar (P), Spatial (S) p p p p p s s P,S s p
Modes of Analysis: Kinematic (K), Static K,D K,I K,D D K K,S K,S s
(S), Dynamic (D), Inverse Dynamic (I) D D D,I D,I
Computers: IBM (I), VAX (V), CDC (C), v,c I,V HP I,M I,V I,V I I v I,V
PRIME (P), H.P.(HP), Harris (H), Micro (M) HP M c
PreProcessing: Interactive (I),
Graphic (G) I I I,G
KHlSYN
KINSYN VII and Micro KINSYtl are kinematic synthesis codes for
design of planar linkages. The cod·es use a variety of closed form
interactive and heuristic techniques to create and graphically
evaluate kinematic performance of linkages. Graphics based
preprocessing of information and graphic presentation of design
configuration and performance are imbedded in the software to enhance
user interaction. The software is available on both super
minicomputers and microprocessors.
KltlSYtl was developed by R. Kaufman, M. R. Dandu, and D. L.
Kaufman. The software is available from KltlTECH Incorporated, 1441
36
REFEREnCES
18. Orlandea, N., Chace, M.A., and Calahan, D.A., "A SparsityOriented
Approach to the Dynamic Analysis and Design of Mechanical Systems,
Parts I and II," Journal of Engineering for Industry, Vol. 99, pp.
773784' 1977.
19. Wehage, R.A. and Haug, E.J., "Generalized Coordinate Partitioning
for Dimension Reduction in Analysis of Constrained Dynamic
Systems," Journal of Mechanical Design, Vol. 104, No. 1, pp. 247
255, 1982.
20. tlikravesh, P.E. and Chung, r.s., "Application of Euler Parameters
to the Dynamic Analysis of Three Dimensional Constrained
Mechanical Systems," Journal of Mechanical Design, Vol. 104, No.
4, pp. 785791, 1982.
21. Atkinson, K.E., An Introduction to Numerical Analysis, Wiley, New
York, 1978.
22. Shampine, L.F. and Gordon, M.K., Computer Solution of Ordinary
Differential Equations: The Initial Value Problern,Freernan, San
Fransisco, CA, 1975.
23. Gear, C.W., Numerical Initial Value Problems in Ordinary
Differential Equations, PrenticeHall, Englewood Cliffs, n.J.,
1971 .
24. Petzold, L.D., Differential/Algebraic Equations Are Not ODES,
Rept. SAND 818668, Sandia National Laboratories, Livermore, CA,
1981 •
25. Gear, C.W., "Differential Algebraic Equations," Computer Aided
Anal sis and 0 tirnization of Mechanical S stern D arnics (ed. E.J.
Haug , SpringerVerlag, Heidelberg, 1984.
26. llikravesh, P.E., "Some Methods for Dynamic Analysis of Constrained
Mechanical Systems: A Survey," Computer Aided Analysis and
Optimization of Mechanical System Dynamics (ed. E.J. Haug),
SpringerVerlag, Heidelberg, 1984.
27. Rankers, I. H., "Synthesis of Mechanisms," Computer Aided Analysis
and Optimization of Mechanical System Dynamics (ed. F..J. Haug),
SpringerVerlag, Heidelberg, 1984.
28. Haug, E.J. and Sohoni, V.N., "Design Sensitivity Analysis and
Optimization of Kinematically Driven Systems," Computer Aided
Anal sis and 0 tirnization of Mechanical S stern D arnics (ed. F..J.
Haug , SpringerVerlag, Heidelberg, 1984.
29.
30.
(ed.
31.
Part 1
ANALYTICAL METHODS
COMPUTER ORIENTED ANALYTICAL DYNAMICS OF MACHINERY
Burton Paul
Asa Whitney Professor of Dynamical Engineering
Department of Mechanical Engineering and Applied Mechanics
University of Pennsylvania
Philadelphia, Penna. 19104
1. INTRODUCTION
Notation
r = xi + yj + zk = (x,y,z)
c [c .. ]=
lJ
T
x _ {x 1 ,x 2 , ... xN} = [x 1 ,x 2 , ... xN]
F ..
,l.J
2. ANALYTICAL KINEMATICS
lfuen all particles move parallel to the global xy plane, the motion
is said to be planar.
Since the number of particles in a mechanical system is usually
infinite, it is convenient to represent the global position vector
44
(2a)
or
(2b)
where the time t does not appear explicitly. For example, in Fig. 1
the global (x,y) coordinates of the midpoint P 4 of bar BC are given by
4 4
x1 = x = 12 a 4 cos ~4
(3)
4 4 1
x2 = y = ~l + 2 a 4 sin ~
( 4)
or
0, (k (5)
closure of the two independent* loops ECBE and DCAD requires that the
following spatial constraints be satisfied:
( 8)
. 1 . . .
which requires that the average veloclty 3 <lJ! 1 +lJ! 2 +lJ! 3 ) remains fixed at
a constant value w. Such a constraint could conceivably be imposed by
a feedback control system.
If the total number of constraints, given by
Nc = Ns + Nt (9)
just equals the number M of Lagrangian variables, the M equations (4)
and (5), which can be written in the form
can be solved for theM unknown values of lJ!. (except for certain singu
J
lar states; see Sec. 8.2 of [66]). Because Eqs. (10) are usually
highly nonlinear, i t is usually necessary to solve them by a numerical
M ClF. ClF.
I ~ 1./J. + __.2: 0, (i = l, •.. M) (11)
. 3 ,,,. J at
J=l "'J
G~ = l1 (12)
where
M .. M
I
j=l
(F. .1./J. + I F. . k ~k ~.)
~.J J k=l ~.] J
(14)
where use has been made of the comma notation for denoting partial
derivatives.
In matrix notation Eq. (14) can be expressed as
..
G'ljl= b (15)
b = it  C.~ (16)
or
M ClF. M H
b.
~
.L <at~l . ~].  j'=l
I k=l
I F.
~.J
.k ~k ~.
J
(17)
]=l 1 J
or
.k pk. (19)
X
.. k M M M
k k
x.
~ I
j=l
x.
~,j 1/Jj + I I xi, jr\j!rl/Jj (21)
j=l r=l
or
"k
X = p k"
ljl + pk (22)
M M k
I I
j=l r=l
xi,J'r 1/Jrl/JJ. (23)
(2 4)
M df.
I ~
~j QI or D~ 0 (25)
j=l awj
where
D = [Dij] = r ati;awj 1 (26)
F = M r (27)
This result is due to Freudenstein [24]
In the nonsingular case, r = Ns and the DOF is
(28)
DOF
(2 9)
g1 (~,t) = ~2  wt = 0 (30)
FR = 1  1 = 0
In short, the system is kinematically determinate. No matter what
external forces are applied, the motion is always the same. Of
course, the internal forces at the joints of the mechanism are depen
dent on the applied forces, as will be discussed in the following
sections on statics and kinetics of machine systems.
Tljl = q (31)
(32a)
T .. = 0 otherwise ( 32b)
~J
roo 1 0 0 0
l 0 0 0 1
49
(33)
M
I
j=l
f.
l.,J
. ~J. 0I (i (34)
or
A~ Bq (36)
where
A .. f. . ; B .. 0 (37a)
l.J l.,J l.J
::}
A .. Tij; B .. 1, i f i j +
l.J l.J
; (i=Ns+l, ... M) (37b)
B .. =
l.J
0, i f i t j +
(38)
where
50
(39)
A~ = nq + v (40)
where
v  i$ (41)
and
Al.·J·
k= 1
l f. 'k
l. I J
~k' (i (42)
~=Cq+e (44)
where
1 (45)
e =A v
where
M
Jc PkC I or u~.
l.J l p~
l.n cnj
(4 7)
n=l
v k = pk e + p k (49)
F
I uk.. oq. (50)
j=l l.J J
the ~ and n
axes into their final positions as shown.
It may be shown [15) that the angular velocity components (wx,wy,
wz) relative to the fixed axes (x,y,z) are given by
to' ' l
sin e sin q,
where the components of the (3xM) matrices Ek are all zeroes or ones.
Upon noting from Eq. (38) that $=cci, we can write Eq. (52) in
the form
(54)
where
(55)
wk8q or 86~ ~
(56)
(57)
where
In like manner, we may rewrite Eqs. (38) and (44) in the form
(59)
lj!. ( 6 0)
l
where
M (lei
c! I
j=l
c.
dlj!j
( 61)
l  J
where
k M dUk .2 M k
v  q I \)!j q I~ c.
j=l 31J!j j=ld'~j J
M auk
u'k 
I
j=l (llj!j
c.
J
w.k (6 4)
l
•k
w. (6 5)
l
where
(6 6)
at pin joints (e.g. XA,YA) and the normal forces and moments at smooth
slider contacts (e.g. NA,MA) appear as external loadings on the vari
ous bodies of the system. A driving torque MD' acting on link 2, is
assumed to be a known function of position. Thus, there exists a
total of fourteen unknown internal force components, namely: XA,YA,NA
MA,X 8 ,Y 8 ,N 8 ,M 8 ,XC,YC,NC,MC,XD,YC. In addition, there exist five
unknown position variables (w 1 , ... w5 l. In order to find the nineteen
unknown quantities, we can write three equations of equilibrium for
each of the five "free bodies." A typical set of such equations, for
link 2, is
XD + XA 0 (67a)
YD + YA 0 (6 7b)
a2 a2
MD + (XD  XA) 2 sin w2 + (YAYD) cos w2 = 0 (67c)
2
In all, we can write a total of fifteen such equations of equilibrium
for the five links. We can eliminate the fourteen internal reactions
from these equations to yield one master equation involving the five
position variables (w 1 , ... w5 l. In addition, we have the four equa
tions of constraint in the form of Eqs. (6). Thus all of the equa
tions mentioned above may be boiled down to five equations for the
five unknown Lagrangian coordinates Wi· These equations are nonlinear
in the Wi' but a numerical solution is always possible (see Sec. 9.22
of [66]). Having found the Wi' one may solve for the fourteen unknown
reactions from the equilibrium equations which are linear in the
reactions.
If one only wishes to find the configuration of a mechanism under
the influence of a set of static external forces, the above procedure
is unnecessarily cumbersome compared to the method of virtual work
(discussed below).
However, if the configuration of the system is known (all Wi
given) then the fifteen equations of equilibrium are convenient for
finding the fourteen internal reaction components plus the required
applied torque MD. The details of such a solution are given in
Sec. 11.52 of [66] for arbitrary loads on all the links of the
example mechanism.
We now define some key terms and concepts from the subject of
Analytical Mechanics. For a more detailed discussion of the subject
see any of the standard works, e.g. [29,30,46,61,102] or [53,64,66].
56
Therefore
Q1 (k (71)
where
jL
M
(72a)
gk,j cjr
(72b)
F
I akr dqr + sk dt = o (73)
r=l
displacements of the reference points are denoted by oxP and the cor
responding rotations of each rigid body may be expressed by the in
finitesimal rotation vector
(75)
where oe.P is the rotation component about an axis, through the point
~
xP, parallel to the global xi axis. The virtual work of all the ac
tive forces is therefore given by
n 3
ow = I I
p=l i=l
(x.P ox.P + M.P oe.Pl
~ ~ ~ ~
(76)
F
ox.P
~
I ul?. oqj
~J
(77)
j=l
F
p
o e.
~
I wl?. oqj
~J
(78)
j=l
Upon substitution of Eqs. (77) and (78) into Eq. (76) we find that
F
ow= I Qj oqj (79)
j=l
where n 3
Qj  I I (Ulj x.P
~
+ wl?. M/),
~J
(j=l, ... F) (80)
p=l i=l
F
ow I QJ. oqJ. 0 (81)
j=l
'
Q. = 0 (j 1,2 I • • • F) (82)
J
Thus the vanishing of all generalized forces is a necessary condition
for equilibrium and a sufficient condition (by definition) for
generalized equilibrium.
For examples of the method of virtual work applied to the statics
59
ow aw
+ •.. " oqF ( 8 7)
oqF
Therefore
ow ( 8 8)
0 (89)
Q = Q*  ~ (90)
r r (lqr
(r = l, ... F) (91)
61
F
I aiJ.IlqJ. = 0, (i = 1,2, ... Nt) (92)
j=l
Q~  (JV A. a .. 01 (j 1, ... F) (9 3)
J 'dqi J. J.]
1 2
v (s) = 2 K (ss f l (94)
wz (95)
where z is the elevation of the center of gravity of the system verti
cally above an arbitrary datum plane, and 1'1 is the total weight of all
the particles.
3. A mass particle is located at a distance r from the center of
the earth. If its weight is We when the particle is at a distance re
from the earth's center (e.g. at the surface of the earth), its poten
tial in general is
V (r ) =  \'1e r e 2I r (96)
M M
~
Clqr I av (1/ll ~
j=l ~ 3qr j=l
I 3~ (1/1)
d'.;Jr
c.
Jr
(98)
ox (100b)
To this must be added the virtual work due to the real and iner
tial torques which act about the mass center. To help calculate
these, we introduce the following notation:
the mass center of a rigid body
local orthogonal reference axes through G aligned
with the principal axes of inertia of the body
principal moments of inertia of the body, referred
to axes ~ 1 ,~ 2 ,~ 3
64
DM (102)

w Dw (103)
oe = o oe (104)
(~sej
D  [Dij) l'c' c• ce S<l> S'l')
s'l' c<t>  ce S<l> C'l')
(C'l' S<l> + ce C<l> S'l')
(S'l' S<l> + ce C<l> C'l') (C'l' S8) (105)
We now take note of Euler's equation of motion for rigid bodies ex
pressed in the form [53,94)
J (111)
(112)
w = Wq (113)
w = Ow = DWq (114)
(115)
where
w (116)
(117)
(119)
(120)
(121)
q
T [W
T (M+<JV)
   W
T JWq]

(122)
Adding ovlM to oWF given by Eq. (101), the virtual work of all the real
and inertial forces and torques is seen to take the form
oWM+oHF=oq T [ (U TX+W
T
M) mU Tv+W
T (<JV)
 (mU TU+W
T··
JWq] (12 3)
ow 0 (12 4)
B
I  I
k=l
(125)
B
T T  k
I [ mu v+W ( <JV) l (126)
k=l
Q (12 7)
Iq = Q + Qt (128a)
or F .. Q!
I Iijqj = Qi + ~
(i = 1, •.. F) (128b)
j=l
(130)
j=l
r ai]" oq]. = 0 (131)
Using the same argument which led to Eq. (85), we conclude that the
generalized forces must be supplemented by the "constraint" forces
Nt
Q'. j 1,2, ... F (132a)
J Jl \ aij
or
(132b)
where the Lagrange multipliers (:X. 1 , ... ~.Nt) are unknown functions of
time to be determined. Therefore the equations of motion (128) may
be written in the more general form
T 
T = 1
2 L
B
(m
k •T •
x x + w Jw) (134)
k=l
68
where all terms have been defined above. Upon recalling that
X:: Uq a:1d W=wq, it follows that
1 •T k·
T = 2 q I q =
1
F
I
. (135)
2 Iij qi qj
i,j=l
(137)
and
(139)
where
(140)
F F
I I .q. +
rJ J I IrJ.qJ. (141)
j=l j=l
i rj
F
I
di . (q)
rJ .
qi
. F
I
.
I7j qi (142)
i=l aqi i=l
~
where
(144)
F F F
I
i,j=l
l l
i=l j=l
(145)
results identically in the right hand side. Hence, the double sum in
Eq. (143) can be expressed in the form
F F F F
Gij [ij l
I I
i=l j=l
r qiqj I I
i=l j=l
r qiqj (146)
where
[ijl 
r ~(Ifj + I::i
J
 Iij)
r
(147)
is the Christoffel Symbol of the first kind associated with the matrix
of inertia coefficients I ..•
l.J
Upon substitution of Eq. (146) into Eq. (143) we find
F
L I .q. + (148)
j=l rJ J
F
I J
pr rJ
I . (149)
r=l
F F F
qr I Jpr 0 r  I I {p.. } qiqj (150)
r=l i=l j=l ~J
where
F
[i j 1
q~j}  I J
pr r
(151)
r=l
ql = q, Q1 = Q ; Qt1 = Qt· I
(15 3)
Iq = Q + Qt (154)
1 .2
T  (15 5)
2 Iq
Therefore, the power balance principle is
dT d
dt dt
~ (Iq2) = Qq (156)
1 di £s! • 2
Iqq + 2 dq dt q Qq (157)
Hence,
(158)
where
 1 di
c = 2 dq (159)
Qt = C<~/ (16 0)
Therefore
B 3   , k
1 di
c 2 dq I I
k=l i=l
(mui uj_ + J.l w.w.)
l J.
(162)
where
M a ui ( 1jJ) M aui ('))
d ll'j
u! I ~ I c. ( 16 3)
d1j;j j=l ~ J
J.
j=l J
72
M aw. (lJ!l
I
l
3'¥. (16 4)
j=l J
Q (165)
(167)
or
T + V = T
0
+ V
0
=E (168)
(170)
T (171)
Furthermore, let X' and M' be the net force and moment (about the rna~
center) exerted on the link by all the other links in contact with
the subject link. For example, if the subject link (k) has its mass
center at xk and it is in contact with link n which exerts the
74
kn
force x•kn at point X I we can write
xk  mk xk + I x·kn 0 (174a)
n
k k
M + T + L [M' k n + (xnx )
k
x X' k nl 0 (174b)
n
form
T1 = r~n w2
2
T2 = rssw
T3= 0
where Isn and Iss are the (constant) products of inertia referred to
the (s,n,sl axes. From these equations it is clear that the resul
tant inertia torque rotates with the shaft and produces harmonically
fluctuating shaking forces on the foundation. However, if I
and
sn
Iss can be made to vanish, the shaking couple will likewise vanish.
It is shown in the references cited that any rigid shaft may be
dynamically balanced (i.e. the net shaking force and the shaking
couple can be simultaneously eliminated) by adding or subtracting
definite amounts of mass at any convenient radius in each of two
arbitrary transverse crosssections of the rotor. The socalled
balancing planes selected for this purpose are usually located near
the ends of the rotor where suitable shoulders or balancing rings
have been machined to permit the convenient addition of mass (e.g.
lead weights, calibrated bolts, etc.) or the removal of mass (e.g.
by drilling or grinding). Long rotors, running at high speeds, may
undergo appreciable deformations. For such flexible rotors it is
necessary to utilize more than two balancing planes.
In the above analysis, it has been assumed that all of the links
are perfectly rigid, and that no clearance (backlash) exists at the
joints. A great deal of literature has appeared on the influence of
both of these departures from the commonly assumed ideal conditions.
In view of the extent of this literature, we will point specifically
only to surveys of the topics and to recent representative papers
which contain additional references.
Publications on link flexibility (up to 1971) have been re
viewed by Erdman and Sandor [23], and more recent work in this area
has been described in the papers of Bhagat and Wilmert [7], and
78
Nath and Ghosh [55,56], on the finite element method of analyzing link
flexibility. A straightforward, practical, and accurate approach to
this problem has been described by Arnin [1], who showed how to model
flexible links so that they may be properly included in a dynamic
situation by the generalpurpose computer program DYMAC [68].
A number of papers dealing with the effects of looseness and
compliance of joints have been published by Dubowsky, et al [19],
and the entire field has been surveyed by Haines [31]. A later dis
cussion of the topic was given by Ehle and Haug [20].
If the initial values w1 (0), w2 (0) , ... are all given, we are faced
with an initial value problem, in standard form, of order n.
80
gk ( ~ l t • • • ~M t t) = 0 t (k (177)
Now we may rewrite the governing equation; (178), (133), and (179),
respectively as
F
w.
J I
k=l
cjk WM+k; ( j = l, 2, ... M) (181)
F Nt
I Ijk WM+k Q. + Q~ + I a
mj
Am; (j l, ... F) (182)
k=l J J m=l
k=l
I ajk WM+k \) j ; (j l, ... Nt) (183)
where
\),
J
 <6.J + I ajk qk)
k
as.
sj
5(lt +
M
I _1
1./Jk; ajk
<l::>.jk
at +
M
I
<lajk
1./Jn
k=l <l1j;k n=l <l1/Jn
t
We now note that Q., Q. and S. are all known functions of
J J J •
(w 1 , ... wM+F), whenever the state (~,~) is known (e.g. at t = 0). Then
it is clear that we may solve the (F + Nt) Eqs. (182) and (183) for
the unknowns (~M+ 1 , ... wM+F'Al'···AN ). Then we may solve Eqs. (181)
t
82
,w
for theM remaining velocities (w 1 2 , ... wM). In short, Eqs. (181)
throuc;til83) enable us to calculate all the M + F derivatives w1 from a
knowledge of the wi. That is, they constitute a system of M + F
first order differential equations in standard form. Any of the well
known subroutines for such initial value problems may be utilized to
match out the solution for all the W· ].
and~.,
].
at userspecified time
steps. The Lagrangian accelerations may be computed at any time step
from Eq. (44), and the displacements, velocities, and accelerations
for any point of interest may be found from Eqs. (2), (36) and (48).
REFERENCES
Jens Wittenburg
Institute of I:<lechanics
University at Karlsruhe
D7500 Karlsruhe, FRG
1. INTRODUCTION
body o body 0
(a) (b)
(c)
Ibody ~\,k_
Fig.1: Multi body systems with closed kinematic chains (a)
and with tree structure (b,c) which are either constrained
(a,b) or not constrained (c) to an external moving body 0
92
The general case of spatial motion is considered and the dots repre
senting joints in Fig.1 do not indicate that these joints are of some
special type. The only restriction concerning joints is that all kine
matic constraints are assumed to be ideal in the usual sense of ana
lytical mechanics. This rules out Coulomb friction.
2. D'ALEMBERT'S PRINCIPLE
Jor+ • ( .:;..rdm  +
dF) = 0
m
(radius vector ~ of mass element dm, force dF on dm). It is useful to
distinguish between external forces dF and internal forces. The lat
e
ter ones are associated with springs, dampers and actuators in the
joints between bodies. If oW represents the total virtual work of all
internal forces then d'Alembert's principle for a system of n rigid
bodies with masses mi (i=1 ... n) reads
n + ~ +
L J or • ( rdm  dF e)  oW 0•
i=1 m.
~
composite
system c.o.m.
\ axis of a
virtual rotation
Fig.2
+ +
In Fig.2 ri points to the body i center of mass and p is a vector
fixed on body i. It follows that
93
+
r
+
where 6ni is an infinitesimal rotation vector along the axis of a vir
+
tual rotation of body i. The absolute value of oni is equal to the
infinitesimal rotation angle about this axis. Taking into account the
relationship f pdm = 0 we obtain
mi
~[~
i~
~ +
1 6ri•(miri Fi)
io + +
+ oni•(Jli•wi +w 1 xJI1 •wi Mi)
+ +]  6W = 0. (1)
Here, F.1 and M.], represent the resultant external force and torque,
respectively, on body i and Jii is the central inertia tensor.
+
r. 6t:.1 i=1 ... n.
],
....
According to Fig.2 r is the radius vector to the system center of
.... 0
of mass and Ri is the vector leading from there to the body i center
of mass. Taking into account that .l miRi = 0 we obtain with M = l m.
1.=1 j=1 J
+ :;.. n +
Dr • (Mr  I F.) +
0 0 j=1 J
+I
i =1
[DR.•(m.~.
1 1 1
+m.;
1 0
F.)
1
+t5~ 1·•(JI.•t.1. 1.
+:i xJI .£:j
i i i
M i )1
j DW 0·
n[_,. .:;. nL
L oR.•(m.R. j.l.
::l: + ..$.
~·.) + 01T.•(Jl.•w. +w.xJI.•w. M.)J
+ + _,. 1 ow 0. ( 2)
i=1 1 1 1 j=1!1J J 1 1 1 1 1 1 1
= oij  mi/M
For subsequent reformulations Eqs. (1) and (2) are expressed in matrix
form:
+T :.;. + + T + + +
o!: • (!!!!: £:) +on • !.0·r:! + y ~l ow 0 (3)
0 . (4)
Here, !!! and~ are diagonal matrices with scal~r ~lement~ mioij and
tensor elements Jlioij' respectively. oi, o~, i, ~, 6n, ~, t, ~andy
are column matrices with vectors as elements, for example
;t ++ + T + + +
~ = [F 1 F 2 .... Fn] • The ith element of Vis wixJii•wi and~ is the ma
trix of the elements ~ij defined by Eq. (2). The exponent T indicates
transposition.
+
g = !!: T+!:· ( 5)
body 1
composite
system c.o.m.
sl.net
.
=c
b .
s1.n~,
.
Ct with
J
In the figure the composite system center of mass is indicated from
... ...
which the vectors R1 and R2 are measured. Obviously
The expressions for ~ and oh are copied from Eq. (7). These few ex
pressions constitute the entire kinematics section. First, we substi
tute Eqs.(6) and (7) into Eq. (1). This leads to a linear combination
of the form
All four expressions in brackets  two vectors and two scalars  must
be equal to zero. This results in two vector and two scalar differen
tial equations of motion, i.e. in altogether eight scalar equations of
motion for as many degrees of freedom. It is a simple matter to
arrange the highestorder derivatives in matrix form so as to obtain
the equations in the form (lEis the unit dyadic)
m1+m 2 m2hx
. e
m2 3xii m2ex ~,
,
m/ox I.J,+.!z+mih2£ hhll· m;hx(e 3 xiiH.~z·e 3 hxex
IT'2
I
I
I
w,
+ + + + + +2 2+
I (9)
m2e 3xii· [m2hx(e 3xp )~e 3 •'lzl• m2(e 3xp) +~ e3 •.!z•e+ 3 + + +t
....
m2ex·e 3xp : i6
I
m2ex. m2hxex· mzex.e3xP m2
I
J
I x
The lowerorder terms are indicated by dots. Once all vectors and
tensors are decomposed in the reference base e 1 , 2 , 3 on body 1 the
...
resulting 8x8 coefficient matrix is symmetric.
Next, Eq. (2) is developed by substituting Eqs.(6) and (8). This
res~lts inequations for~. tp and x. The coefficient matrix in front
of $, ~and x turns out to be the same submatrix as in the previous
case (shown by the dashed lines) provided m2 is replaced everywhere by
the reduced mass m 1 ~ 2 !<m 1 +m 2 ). Scalar decomposition yields a sxs
coefficient matrix.
2 2 2 2
qo+q1q2q3 2(q1q2+qoq3) 2 (q1q3qoq2)
2 2 2 2
§1 2 (q1q2qoq3) qoq1+q2q3 2 (q2q3+qbq1) ( 10)
2 2 2 2
Z(q1q3+qoq2) 2 (q2q3qoq1) qoq1q2+q3
. 0
.
qo w, w2 w3 qo
.
q1 w, 0 w3 w2 q1
1
2 w2 ( 11 )
.
q2 w3 0 w1 q2
q3 w3 w2 w, 0 q3
Numerical solutions of Eq. (11) will not exactly satisfy this con
straint. Therefore, at each time step it is necessary to update the
numerical values so as to satisfy the constraint before ~ 1 is calcu
98
3. SYSTEM KINEMATICS
Outline of the General Strategy
where ~ is some as yet unknown nxN matrix with vectors as elements and
~ is a column matrix of N vectors containing zero and firstorder
derivatives of q 1 •.• ~N· For Eq. ( 4) corresponding expressions are
.... ....
required for og and g. They follow immediately from Eq. (5),
:;. T:;. T + +
R = 1.! r = 1.! (aoq+u). ( 1 3)
     
.... ....
Similarly, on and ~ can be expressed in the form
+ ..........
tn = ~oq ~ = .§q+y ( 1 4)
with as yet unknown matrices~ andy. When the Eqs.(12) and (14) are
substituted into Eq. (3) we obtain
0 ( 1 5)
A B
~q =~ ( 1 6)
joint j
The velocity of the hinge point relative to the body i+(j) re
ference base is the local time derivative ~.l + (.)
J
. (the symbol
,J
o indi
cates that it is not the time derivative in inertial space). It has
the form
j = 1 .•• n . ( 17)
+ .
The vector k·£ is a unit vector lf q.£ is a line coordinate. In Fig.S
+ ) J
all kj£ associated with rotation variables are zero but this is not
a general statement as is shown by polar coordinates r and ~ where
the velocity has components r and r~.
j=1. •. n ( 18)
the body i(j) frame of reference. With unit base vectors pj£ this
...
yields
3 ...
n.J =I p.£n.£.
£= 1 J J
j = 1. •. n
... .
where pj£ ~s an axial unit vector if qj£ is a rotation angle and zero
if q.£ is a line coordinate. In order to combine the two presentations
J • •
we introduce Tij£ as a new name compr~s~ng generalized velocities qj£
as well as quasi velocities nj£" Then for all joints the formula reads
N.
:t J _,. •
It]. = L p . £ TI . £ j=1. .. n. ( 19)
£= 1 J J
Note that OTij£ always exists whereas Tij£ exists only if Tij£ repre
.
sents a generalized velocity qj£"
0 12. n.
]3 J2
• T
0 n.  G.G. j=1 ... n.
[ Q ]3 J1 JJ
n. n. 0
J2 J1
This relationship can be used for calculating the nj£ from a given
matrix ~j if it is not preferred to identify the vectors pj£ directly
by inspection.
... ...
The lowerorder term wj is nonzero if at least one vector pj£ is not
103
fixed on body i(j). Fig.Sc shows such a case. This concludes the sec
tion on kinematics of individual joints.
System Structure
j 1 2 3 4 5 6 7 8 9 10 11 12 13 14
i+(j) 0 2 3 4 4 5 6 4 8 4 10 4 12 0
i (j) 1 1 2 3 5 6 7 8 9 10 11 12 11 6
s ~J
.. = ~
{., i f i=i+(j)
i f i=i(j)
i=1 ..• n
j=1. .ft.0
else
2 3 4 5 6 7 8 9 10 11 12 13 14
1 1
2 1 I
I
3 1 I
I
4 1I
5 1 I
I
6 1 I 1
s I
7 1 I
I
8 1 I
9
I
1 I
10 1 I
I
11 1 11
12 1 1 1
Its 12x12 submatrix to the left of the dashed line represents the in
cidence matrix of the spanning tree shown in Fig.1b .
...
Another important matrix called f is closely related to S. It
represents a weighted incidence matrix. Its elements are
105
2 3 4 5 6 7 8 9 10 11 12
1 1 1 1 1 1 1 1 1 1 1 1
2
3
4
5 1 1 1
6 1 1
T
7 1
8 1 1
9 1
10 1 1
11 1
12 1
2 3 4 5 6 7 8 9 10 11 12 13 14
2 1
3 1
4 1
5
6
!§
7
8
9
10 I
I
11 I
12 1 '1
I
In rows 13 and 14  these are the indices of the cut joints  only the
elements in those rows are nonzero which represent the joints in the
corresponding closed chains. In the mathematical literature on graph
theory the incidence matrix as well as the fundamental cutset matrix
are known as important parameters describing a graph. However, the
path matrix ! had never been considered. Its important role was dis
covered in research on electrical networks by Branin [ 9 ] and inde
pendently by Roberson and the present author [10]. The matrix! will
turn out to be one of the essential system parameters describing multi
body systems. The matrix is defined once the integer functions i+(j)
and i(j) are given for j=1 ... n. Roberson [11] describes an algorithm
by which! can be calculated directly from i+(j) and i(j) without
having to invert the incidence matrix of the spanning tree.
(23)
with closed kinematic chains. These equations benefit from the simpli
city of the expressions for ~ and B.
C), '
i
n +
L T )1
 j=1 .. n.+w
J 0
<tl.
The matrix elements Tji sort out the direct path to body i and they
also provide the correct signs. From this equation follows
(24)
1
n
+
The corresponding expressions for ri and for the column matrix
+ (+ + + ]T
r r 1 r 2 .•. rn are
(25)
where 2'+ and ~ are column matrices which list all vectors Ci+(j) ,j
+
+
and c._ 1 ') ., respectively, in the order j=1 ... n.
1 J ,J
On the basis of Eqs. (24) and (25) we can now proceed to explicit
+ ~ +
expressions for w and for r. First, w is constructed. From Eq. (19)
follows
+T•
p 11
+T
p
+
.
w (26)
with
1j = ~j + t:ii(jlxnj j=1. .. n.
The expression for t:i has the form predicted in Eq.(14). The change
from g to ~ is a consequence of our decision to include quasi veloci
ties as variables.
:;.
In a similar manner we find the precise formulation of r from
+
the expression for E· The second time derivative is
(28)
The vectors ci+(j) ,j and Ci(j) ,j have the derivatives (see Eq. (18))
a.
]+ + + + + + + + ~
~ k.nfi·n +s. c .. xw. +w.x(w.xc .. ) +2w.xc ..
£=1 )< )!V J ~J ~ ~ ~ ~J ~ ~J
.
Th e te~m involving wi contributes to r the expression <S'!:l x ~ w0 xc 01 .:!.n
+ :.;.
. .
+T++~
+
k11
+
k21 0
+T
k =
0 0
0 0 0 +
k44
+ ~
When for w the expression from Eq. (26) is substituted £, finally,
takes the form predicted in Eq. (12)
+
!
with
+
~
and ( 2 9)
+ ~ T ~
(C_T_) xv_ T_ (a+h_) + r
T ~ + f+ + + + + + + ~ l
u
~ l o + wo xc o1 + w x (w xc ) + 2w xc
o o o1
1
o o1jn"
+
For systems without constraints to an external body g instead of
+
r is needed. Eq. (13) yields the matrices valid for this case. They are
denoted by an asterisk:
+* T
a = 1:!: ~
+* T+
u = 1:!: :!:!
~~ = B
B (31)
~*~ = B* (32)
_,. _,. _,.
where A* and B* are given by the same formulas except that ~· u and F
_,. _,. _,.
are replaced by a* s* and ~~· respectively.
A*
(33)
_,. % T T >T] [_,. % T T >TlT > T T >T
 [ J2~X~· ~~~~~ ~ )ls_  E'!:X~· ('!:~~~! )ls_ J + ~ ('!:~~~ '!: )~.
The symmetric matrix !~~~T'ETis constant. The identity ~IE~T= !!:~ is
113
+ * + T
!_pTl • :1!5. • !!:Tl
(34)
bii/ft
body i
c/ /,b._ ..
B
l.J
m +m +m
1 2. 3
~
e •
. ,,, o·
ms+m6+m7

Fig.7: The augmented body i=4 in the system of Fig.1,
its center of mass Band the vectors b .. (j=1 ... n) on
this body l.J
In general, it is not a rigid body since the hinge points may not be
fixed on it. Still, we can define the augmented body i center of mass
B and vectors bij as shown in the figure. The vector bii points from
114
....
B to the original body i center of mass C and bij (j * i) points to the
hinge point which leads either directly or indirectly to body j. This
....
definition implies that there are fewer different vectors b .. then
~J
combinations of indices i and j. In Fig.1, for example, we have the
.... + ....
identities b 41 =b 42 =b 43 • From the definition follows that
n _,.
I m.b .. i=1 .•. n. (35)
j =1 J ~J
....
In ref.[ 2] it is shown that the elements of the matrix g!~ are
With this result and knowing the special properties of the vectors b ..
~J
we investigate the leading term of~* in Eq. (33). In order to simplify
....
matters it is recalled that the left hand side term (p!l originally
had the factor anT in front and that the right hand side term (E!iT
still has the factor *· We add both factors and use as temporary
abbreviations
> (> T ..
9: = E!l :!!:·
In what follows J~. for j*i will be considered. Let the bodies of a
~J
system be devided into two groups in such a way that according to
Fig.S the division line is drawn somewhere across the direct path
between bodies i and j. Let the set of indices of all bodies of the
group containing body i be denoted by I and the set of indices of all
other bodies by II. Then we know that for all indices k belonging to
I (abbreviated k€I) the identity b.k=b .. holds and for all k€II the
J J~
115
,,.... .......
'
"'
/
''
'\
/
/
I
I
I
I
\
' I
'' I
' ' I
........
 I
 
Fig.8
Using repeatedly these identities and making use of Eq. (35) we can
write
b ..
J 1 kEI
I mkb . k + (
1
I
kEII
mkb . k) b ..
J 1 J
b .. (
J 1 k=1
I mkb. k  b..JkEII
1
I mk)
1
+( I mkb J. k  b J.. kEII mk) b ..
k=1 1 1 J
.... ....
Mb .. b ... ( 38)
J1 1J
* can be
Along the same line of arguments also the second term ofJ ij
simplified. The final result reads
*
J ij hj.
i=j
i,j=1 ... n.
*
From Fig.? it is seen that n<iirepresents the inertia tensor of the
augmented body i with respect to its center of mass B. Thus, all ele
ments of the matrix n<* in Eq. ( 34) have surprisingly simple physical
interpretations. A* takes its simplest form if all joints of a system
116
 ·~ • (pT)

r
A (pT) T
( 39)
+ :t T o+T ] [+ :t T +T + T :+ T
 [ !?'! X !;i • ('!!!!'! ~~  ?!X~• ('!!!!'! ~~ + ~· ('!!!!'! ~~
{ ...
:11+c11
bi 1
...
i=1
i=2 ... n
i,j=1 ... n.

(CTl ..
~)
body 0
o
Fig.9: The vectors al.J.. (j=1 ... n) on body i
Next, the matrix~ * on the right hand side of Eq. (32) is investi
gated. In explicit form it reads
* ....
±*.
u =
1.
M I
n +
j=1 1.]
+
J
+
J
+
Jl.
+
b .. x[w.x(w.xb .. )] +w.x~ ..
1. 1.1.
•~....:..
1.
i= 1. .. n.
*i
With these expressions and with the identities !:!:!!!!:!: T _ !:!:!!!, 1:!:1:!::: 1:!:
B*
For systems with purely rotational joints the matrices k and h are
zero.
formula
(41)
....
with~ from Eq. (4Q)and with a column matrix Q whose elements are
.G. 1. = M{"'t ................
l. a .. x[w.x(w.xb. )] +b '\' . . >t
x l. w.x(w.xa.) } +w........
x~ .. •w.
jH l.J J J JO io j*i J J Ji i 1.1. 1.
i=1 ... n.
ow = o~ T g.
element s
t.JS ~.+!·l
1. J ,J
.+Q.x(t._(. 1 c.(. 1 .)
J 1. J ,s 1. J ,J
~j
!1.=1
rlk:j!l. + PJ·!I.x(ti(j) ,s ci(j) ,j) lJ.rrj!l.
(iii) The virtual change o~. of~. in the body i+(j) reference
JS JS
frame. It is
N.
..
oz.=
)S !/,=
'J1[... J . . J (..
L k.n+p.nx
l'v JC
p.(')
1. J t S
..
c.(.).
1. J 1J
)] 01T.n•
J;c
The force F. acting on body i(j) has the direction of ~. and a
JS JS
magnitude which is some known function f. of 1~. I and of vJ·s· Hence
JS JS
f'. ( 42)
JS
Using the above expressions we can now calculate the virtual work
.... ....
F. •oz . • The coefficient of o1T.n in this work expression represents
JS JS J"'
the desired contribution of Fjs to the generalized force Qj!l.. If there
are v. force elements in joint j then
J v.
Q.n
_ ,J....
L
r... ... (....
F. •lk.n+p.nx p.(')
..
C.('). J•
)1
]"' s=1 JS J.v J.v 1. J ,s 1. J ,J
120
Springs and dampers can also be mounted between bodies which are not
directly coupled by a joint. With some arbitrariness the forces
exerted by such elements were listed among the external forces. It
should be clear, however, that the mathematical treatment is not
conceptually different from the previous case. Also in this case two
attachment points and a characteristic function must be specified and
a vector analogous to~ must be formed. This time the radius vee
_,. JS
tors ri leading to the centers of mass of the two bodies come into
play. The details are not worked out here.
The master reference frame should then be selected such that the for
mulas for all elements of A and B when pieced together yield the mini
mum total length. This criterion is not practical. Keeping in mind
that roughly speaking each body carries an equal number of vectors to
be transformed we might adopt the following criterion. The total num
ber of multiplications by matrices G. necessary to transform one vec
J
tor from each body must be a minimum. In Fig.1 this criterion yields
the reference frame on body 4 as master reference frame. In graph
theory the socalled median of a graph is defined by an analogous
criterion. We can refine the criterion still further in order to
account for the fact that the elements of G. are of different com
J
plexity depending on whether joint j has one or two or three degrees
of freedom of rotational motion. Accordingly, weighting factors 1, 2
and 3, respectively, can be given to the joints. The statement that
all bodies carry equal numbers of vectors to be transformed is a rough
approximation. It is no problem to cqunt for each body exactly how
+ + + ~
many vectors bij' kj£' pj£' sj etc. have to be transformed and to de
fine weighting factors for the bodies accordingly. Also these
weighting factors can be taken into account in the criterion for the
selection of a master reference frame.
A 7i = B. ( 43)
Suppose that a motor mounted in one of the joints causes one of the
generalized coordinates, say nk' to be a prescribed function of time
thereby reducing the number of degrees of freedom to N1. In the
simplest case of practical importance a relative angular velocity nk
is forced to be constant. It is desired to write a new system of
differential equations for the reduced set of N1 variables. In addi
tion, an expression is desired for the generalized motor force
necessary to produce the prescribed function of time.
In order to achieve these goals Eq.(43) is written in the more
detailed fashion
~1 ANk ~N nN BN
122
Together with nk(t) also nk(t) and Tik(t) are given functions of time.
The element B~ of ~ has been split into the generalized force Qk and
the rest Bk. One part of Qk is the desired generalized motor force
Q~0 t. If the motor is counteracted or assisted by additional forces
Q~ (caused by springs and dampers in the same joint) then
Q
k
= Qmot+
k
ok*.
From the matrix equation the kth equation is extracted and solved for
Qmot.
k .
In the remaining N1 equations all terms involving nk(t) are shifted
to the right hand side. This produces for the remaining N1 variables
the matrix equation
~1 ~N TIN BN ~k
This equation has the same standard form as Eq.(43). Its smaller
coefficient matrix is symmetric, again. This matrix is now an expli
cit function of time since it depends on all variables including
nk(t). Once numerical solutions have been determined from the equa
tion for the reduced set of variables also Q~ot is known. The method
just described is easily generalized to the case with more than one
variable prescribed as a function of time. In the extreme all N
variables are prescribed. In this case Eq.(43) can be solved directly
for the generalized forces ~·
.
71.
Nv
\L J *.. 71.
• i=Nv+1, •.. ,N (47)
~
j=1 ~J J
()q>i
*
Jij i=Nv+1, .•• ,N; j=1 ••• Nv
d71j
The two sets of Eqs. (48) and (49) are written in matrix form,
(50)
~if * + !! .
Here, if is the same as in Eq.(44) whereas 71..* is the smaller set of
independent accelerations
124
.. ]T
.. *
IT
..
= [ n, ... nNv ·
The Jacobian matrix J of size Nx(Nv) and the column matrix Hare
* and Hi* as
composed of zero and unit elements and of the elements Jij
follows
J
1.
  .  ....  
}N' H
0
(51)
J* } v n*
The Eqs. (50) are now substituted into Eq.(44). This yields
• *T ~ T[ ~ ( ~IT* + § )  f! ]
uiT = 0
whence follows
(52)
This represents the desired equations of motion for the smaller set
of Nv variables n 1 ... nNv· In the matrices A and B the dependent va
riables TINv+ 1 ... TIN as well as their first derivatives must, of
course, be eliminated by means of Eqs.(46) and (47).
If the constraint Eqs. (45) cannot be written in the explicit form
of Eq. (46) then the equations of motion can still be constructed in
the form of Eq. (52) but only numerically. For given values of
n 1 ... nNv the implicit constraint equations must be solved numerically
for nNv+ 1 ... nN. This is not difficult since at each integration step
the solutions for the previous integration step represent close
approximations. Numerical values for ~ * and g* are easily obtained
from implicit first and second time derivatives of Eq. (45).
because this would destroy one of the main advantages achieved by the
symbolic generation of formulas. The advantage lies in the fact that
a numerical evaluation of A and ~ based on symbolic expressions
requires the computation of only a small number of substitution va
riables and of the final expressions as a whole whereas in a fully
numerical program an extraordinary large number of array elements has
to be computed. The savings are the more significant the larger the
mechanical system is. Some comparative tests showed increases in
speed by a factor of ten and more (in the fully numerical computations
optimal use was made of recursion formulas for calculations along
chains of bodies and also of the sparsity of the matrices involved) .
Another point of view regarding substitution variables is worth
mentioning. An efficient program for symbolic formula generation is
capable of collecting terms which appear more than once. This is not
possible if two such terms are hidden in two different substitution
variables. Here, another advantage of the expressions developed for
~and~ becomes apparent. The elements of the matrix ~occur very
many times in the final expressions for ~ and ~· They can be declared
as substitution variables without running the risk of suppressing any
collecting of terms. Prior to Eq.(38) the declaration of substitution
variables would have done harm because with this equation a massive
cancellation of terms was achieved (note that according to Eq. (36) the
,...
individual vectors bij are complicated weighted sums of other vec
tors).
References
1 Fischer, 0., "Theoretische Grundlagen der Mechanik lebender Me
chanismen (Theoretical Foundation for the Mechanics of Living Mecha
nisms)", Teubner, Leipzig, 1906
2 Wittenburg, J., "Dynamics of Systems of Rigid Bodies", Teubner,
Stuttgart, 1977, Russian translation Moscow 1980, Chinese translation
Peking 1983
3 Popov, E.P., Vereschtschagin, A.V., Senkevic, S.L., "Manipula
zionnye Roboty, Dynamika i Algoritmy", Moscow, 1978
4 Paul, B., "Kinematics and Dynamics of Planar Machinary", Prentice
Hall, 1979
5 Vukobratovic, M., Potkonjak, V., "Scientific Fundamentals of
Robotics 1: Dynamics of Manipulation Robots", Springer, Berlin, 1982
6 Kane, T., Likins, P., Levinson, D., "Spacecraft Dynamics",
McGrawHill, New York, 1983
7 Wittenburg, J., "Dynamics of Multibody Systems", Proc. XVth
IUTAM/ICTAM Congr., Toronto, 1980
8 Wittenburg, J., "A New Correction Formula for EulerRodrigues
Parameters", ZAMM, Vol.62, 1982, pp.495497
9 Branin, F.H., "The Relation Between Kron's Method and the Classi
cal Methods of Network Analysis", Matrix and Tensor Quart., Vol.12,
1962, pp.69105
127
Jens Wittenburg
Institute of Mechanics
University at Karlsruhe
D7500 Karlsruhe, FRG
1. INTRODUCTION
41
Fig.1
joint i
joint j 1 joint i
~ij I
K
joint
~]
(a) (b)
4
Fig.3: The spatial polygon Fig.4: Unit line vectors b.,
with its nine parameters and ~ + ~ 1
seven variables bj' aij and ajk on the spa
tial polygon
Closure Conditions
g, with (1)
J
.+ .+
The same kind of equation relates the vectors a .. and aJ.k' In this
.:> l.J
case the screw operator is constructed from bj' sj and ~j and it is
called q.:
J
.,.. ~ .:>
ajk = q J.a l.J
.. with (2)
For the vectors g, of Fig.3 with j=4, 3 and 2 Eq. (1) reads
J
+ +
~ ~
~
b4=q34b3, ( 3)
and also
~ ~
+ " +
b4 =q14b1. (4)
(6)
( 7)
since it follows from Eqs. (1) and (5) that q 43 is the inverse of q 34 .
To give another formulation three more pre and postmultiplicatio ns
result in
A A A
(8)
q12q41q34 = q32"
It will be seen later that it is useful to have different formulation~
Let it be clear that so far we have not yet established the vali
~
dity of any of the above equations. The symbol bi denoting a line vec
tor is still undefined. We do not know either how to construct a screw
operator from its three arguments and how to multiply an operator and
a line vector. Finally, the validity of the associative law remains to
be shown. All this will be established in the following two sections.
this figure~ and a have been written instead of iij and aij' re
spectively, in order to simplify the notation. It is seen that
b.
J
= (cos a + ~sina) b 1. = cosab. + sinaixb l..•
l.
( 1 0)
The operator qij consists of a scalar and a vector part. The plus
sign between the two parts must not be interpreted as addition. It
merely reflects the plus sign on the right hand side of Eq.(10).
Instead of + we could just as well write a semicolon.
135
( 11 )
. + +
with unknowns A, B1 , B2 an d c. s~nce v 1 , v 2 and +v 2 xv
+
1 span the en
tire space this is the most general form possible. Using the multi
plication rule defined by Eq. (10) we evaluate the left hand side of
Eq. (5):
b.
J
With Eq. (11) the right hand side of Eq. (5) takes the form
With these results Eq.(11) yields for the product of two rotation
operators the formula
136
( 1 3)
xsy
2 2 2
x s y
It is straightforward to explain the meaning of a function f(x+sy)
of a dual number. A Taylor series expansion about the point y=O con
sists of only two terms because all second and higher order terms of s
are zero:
137
f(x+e:y) ()f/
f(x)+e:y ax . ( 1 4)
y=O
&=a+e:t. (15)
....
r
....
b
0
(a) (b)
two vectors uniquely specify b but they do not define it. At this "*
point dual numbers are introduced once more. The unit line vector is
defined as the dual vector
+ + + +
b = b+erxb • (17)
That the dual part is written as ~xb and not simply as ~ has the
advantage that ~xb is the same vector no matter to which point of the
line ~ is directed. However, how ingenious the definition really is
can only be seen when relationships are established between the line
vectors and angles in Fig.6c. The figure shows two nonintersecting
lines with the projected angle a and with the common perpendicular of
~ + ~
length ~. Unit line vectors b., b. and a are located on the three
~ J
lines. The situation is the same as in Fig.4 except that the indices
ij have been omitted from a .. , "* ~J
~.and
~J
a ... The essential difference
~J
to the situation in Fig.5 is the translational displacement ~*0. In
+ +
Fig.6c also the ordinary vectors r j, a, b.~ and b.J are shown which
define the line vectors as
~
a= a+er.xa.
+ +
~
+
g.J = b. +s~. xb ..
J J J
( 1 8)
.... + + + + + +
b. •b. cosa, b. xb. a sina , r.r. ~~,
~ J ~ J J ~
( 1 9)
.... + + .... +
b .• ~. bi•ri,
+
(rjri) • (bi xbj)
~ ~
~ sina , a•b. o.
~ J ~
~
It is our goal to express b. in the form of Eq. (1) in terms
~ J
a, t and a. We begin by an investigation of the dot product
~ ,;.
and of the cross product bixbj of two line vectors. Keeping
that ~ 2 = 0 we can rewrite the dot product as
=cosae~sina
139
~ .• ~.=cos&. (21)
~ J
This means that the definition bi•bj=cosa valid for the dot product
of ordinary unit vectors can be formally transfered to unit line vec
tors if line vectors and angles are defined the way they are.
,.;. ,.;.
Next, the vector cross product bixbj is considered. Taking into
account Eqs.(19) we can write
~~+ +++ ++
b. xb. = (b. + e:r. xb. ) x (b . + e:r. xb.)
~ J ~ ~ ~ J J J
=b. xb. + db. x (~. xb.) + (~. xb.) xb .]
~] ~ JJ ~~ J
•b . ~. l
• ~ . b . + ~. • b . b.  b.~]~
= b. xb . + db. • b . ~ .  b.~]]
~] ~]] ~]~
For checking this we substitute in the last of Eqs. (18) for bj the
expression of Eq.(20). Using some of the relationships (19) we obtain
~ + • ++ ++ + +
b. = cosab. + s~naaxb. + e: (r. +at) x (cosab. +sinaaxb.)
J ~ ~ ~ ~ ~
xb. +R.~xb.)
= cosab.~ + e:cosa (;.~~ •b. ~;.~ ·~b.~ R.b.)
+ sina~xb.~ + e:sina (;.~~ ~
.
~
(24)
On the right hand side of Eq.(23) Eqs.(16) are substituted for the
.;. .;.
circular functions and Eqs.(18) for a and bi:
4
b.=
J
.. 4b.1.
q1.] and (25)
4
with (26)
A ' 0
This follows from the fact that all products occuring in Eq. (13) are
formally transferable to the respective dual quantities. Eqs. (25)
through (28) provide the basis for extracting information from the
closure condition in one of its forms, for example from Eq.(8).
n n
N = 6 (n1)  I (6v.) = I v. 6 (29)
j=1 J j=1 J
whereas the sum over j represents the total number of variables. This
proves the statement.
+
+J = ,;.kx~.
This has the advantage that the quaternion q 41 has already the de
sired form
~ ~ ~
mine a 12 from Eq. (25b), q 12 from Eq. (26), ~4 from Eq. (25a) for j=1 and
~ .. ~
i=4, a 34 from Eq. (2Sb) for j=4 and i=1, q 34 from Eq. (26), b 2 from
~
Eq. (25a), a 23 from Eq. (25b) and q 23 from Eq. (26). In these calculations
it is several times necessary to solve an equation of the form
,;. A ,;. A .;. A ~
b. = q .. b. = (cosa .. +a .. Sl.n aiJ') b 1·
0
b.l.
After the transformation of vectors the quaternions q41 , q12 ,
q
q 34 and 23 are expressed in terms of the unit base vectors. Using
Eq. (28) the closure condition can now be written in any one of its
different forms. In what follows the form of Eq. (8) will be used.
The scalar part of the equation results in the relationship (see
Yang [ 6])
A A A A A
The equation relates t1> 4 = t~> 4 +e:s 4 to the independent variable t~> 1 = t~> 1 +e:s,
According to Eq.(14) the primary part of the equation is obtained by
omitting everywhere the symbol ~:
_{8
11>4
+ sin 1 (c//A 2 +B 2
1 ~
l (31)
8 sin (C/IA+B) + 7T·
Here, A and B are the same quantities as before and D, E and F are
defined as follows
6. Overclosure of Mechanisms
tan~./2 i=1,4.
l.
References
Roger A. Wehage
US Army TankAutomotive Command
Warren, Michigan 48090
l. INTRODUCTION
a • (1)
a = a0 +A (2)
2. QUATERNION MULTIPLICATION
c = a b t3)
(4)
The scalar and scalarvector products are well defined, and the vector
product will be defined as
(5)
(6)
Note that the first two terms are scalar quantities and the remaining
A*
The conjugate of a denoted by a is obtained by negating its
A* A* A
vector component, thus a = a0  a. If d = a b then
150
d (7)
In a similar manner if e
(8)
A
(a b)
A * """* aA*
b (9)
Likewise
A* A*
Observe that if a = a , a is a scalar quaternion a 0 and if a =  a ,
a is a vector quaternion a.
These examples demonstrate that quaternion
multiplication generates new quaternions and in some special cases they
yield vector quaternions, or as in Eq. 11 scalar quaternions.
(12a)
151
(12b)
or
(l3a)
(13b)
0 a3 a2
~ a3 0 al ( 14a)
a2 al 0
+ + +
Since a X b = b X a, it follows that
152
a b =  b a (14b)
T
~I  a
I
(15a)
c b
~I
I
(15b)
T
0  a
+
a  (16a)
a ~
T
ao I  a
+ I
a  (16b)
I
~ I ao 13 + a
+
ao 14 + a (16c)
and
0  bT
b  (17a)
b b
bo I  bT
I
b (17 b)
(17c)
c = 1b b a (18)
+* +T
a a (l9a)
*
b
T
b (19b)
and therefore
a b*
+T T
b a * (l9c)
+a b * (20a)
and
~T b b a* (20b)
+ +T
a a  T
a a (~
T
~)
..
I, (21a)
and
+ +T .. a T T
a a a (a a) I4 (21b)
155
+1 +T T
a a I (! !) (22a)
1 T T
a a I (~ ~) (22b)
or
+1 +T T
a a I (a a) (22c)
1 T T
a a I (a a) (22d)
T a
If ~ or respectively a are normalized to unity then a = 1 or
T
a ~ = 1, and
+1 +T
a a (23a)
., T
a (23b)
~
or
+1 +T
a a (23c)
1 T
a a (23d)
d a b c (24a)
(24b)
(24c)
A A A *
(a b c) (25)
i.e.
(a b) c = a (b c) (26)
Using Eq. 18a, the equivalent matrix form of Eq. 24 can be expressed in
a number of different ways such as
157
d (27a)
+
a c b (27b)
(c b) a (27c)
= c b a (27d)
c +
a b (27e)
+
Equations 27b and 27e demonstrate commutativity of the matrices a
and c
+  +
a c = c a (28a)
and alternately
+T   +T (28b)
a c = c a
a b c a (29)
(30)
158
A* A A ~* ~
b a c a I (a a) (31a)
or
. . . . "* ~* ~
c = a b a I (a a) (31 b)
"'* . . . . "'*
a a =a a =1 (32)
~*
b a c a (33a)
or
~*
c =a b a (33b)
A* A ..... A A * A* A A* A* . .
b b [(a c a) I (a a)] [(a c a) I (a a)]
~* ~* ~ ~* ~* ~ 2
a c (a a ) c a I (a a)
.. * .. ..... . . ..... . .
(c c) (a a) I (a a)
(34)
159
Similar results can be obtained for Eqs. 3lb and 33. These
relationships reveal that quaternion operations of this form transform
other quaternions without distortion.
C a = (c 0 a 0  +
C '
+
a) + (c 0 +
a + a 0 +c++
C X
+
a) (35)
A* A A
b a (c a)
b (37)
+ A
now known that b and c represent a quaternion pair that are in some way
A A*
oriented symmetrically about a and a • To show the latter case, simply
A*
pre and postmultiply Eq. 29 by a giving
(38)
a b b' a (39)
+
• +a + bo +a+ ao ~b' +b'x a (40)
! . b = ! . b' (41)
(42)
+ + +
a0 a X (b'  b) (43)
+ +
which may be solved for a x b' and substituted into Eq. 42 yielding
161
+ + + + 2 2
a x ( b + a x b) I ( a 0 + a ) (44)
+
b' b+ + 2 a 0 a+ X ( b+ + a+xb+) (45)
cos(¢ I 2) (46a)
and
a=+sin(¢12) (46b)
1 b i' a (47)
a b' (48)
b (49a)
162
b' (49b)
(SO a)
and
b' a +
T a b (SOb)
+T 
a a = a +T
a (51)
1 I OT
+T I
a a =  (52)
1 2 T  
~ I a0 r 3 + a a + a a  2 a0 ~
T
a a =a a (53)
1 I OT
+T I
a a =  (54)
2 T 
2..
1
1 <2 a 0  1) r3 + 2 <~ ~  a 0 ~)
2
b [(2 ao 1) 13 + 2
b !I ";i b'
4. EULER PARAMETERS
cos (55a)
ji (55b)
e sin
164
and
(SSe)
The orientation vector tji and the normalizing scalar e5i constitute a
,.·i
normalized quaternion eJ The ji superscript notation is used as a
reminder that Euler parameters e"ji define the orientation of system j
with respect to system i. The double superscript will always be used
+
to denote quantities that relate two systems. Note, however that uji
is identified by subscript ji because it may be considered as a vector
associated with the two systems i and j.
i
a (56a)
or correspondingly
aj = Aji ai (S6b)
165
'i
Observe again from Eq. 54 that AJ never changes the scalar component
of a quaternion. Since Aji is orthonormal it follows that
Ajil = AjiT = Aij and Eqs. 56 can also be written as
(57 a)
or
(57b)
<P ji (58a)
(58 b)
ij ji
e e (58c)
(58d)
~·
e J +ji
e (58e)
and
ij ji*
e e (58 f)
ji
eo eo eOel e9e2 e0e3
The trick is to obtain this matrix form Aji. To see how this might be
accomplished, partition the above matrix as
2 I T ji
ji eJ'iT eo I eo e
e 
I T
eo ~ I e e
ji
'i '. T
The matrix sum AJ + A~J isolates elements of~~ plus an additional
diagonal term, and the difference Aji  Aij contains elements of e 0 e.
A simple computer algorithm can now be developed as follows. Let
where
2 T
6 eo  3 + 2 e e
2
4 e  1
0
Next form the matrix
ji jiT
B' = B + BT + (1  trA) I
4
= 4 e e
2) Evaluate e 0 , ••• , 3
m
for eo < 0
3) e
m
e~ sgn e 0 for eo ~ L)
+i
a (59)
168
jiT +ji j
e e a
In a similar manner
(60)
(6la)
(6lb)
(62)
(63)
(64)
169
The Eu 1 er parameter .
quatern~on e ki d e f'~nes a new . 1
spat~a
i
a (6Sa)
and
k
a (6Sb)
and thus
(66)
(67a)
ji sin (~ji I 2)
e (67b)
(67c)
and
171
(67d)
(68)
(69)
jk +ik ji
e e e
ji* ik
e e
jiT ik
e e (70)
.k ij ik
eJ e e
ik .k ..
In the case where e and eJ are known, and eJ~ is to be
.i
determined, Eq. 70 may be multiplied by eJ giving
ik ji jk
e e e
172
(71)
ji ik
e e (72)
[
cos (~~~ I 2) ik
e
sin (~J~ I 2)
and
T +"kT ik
sin (~ji I 2) u .. eJ e
J~ 
eJ"kT T
u .. e
ik (75)
J~
ji
Equations 74 and 75 are easy to program and the angle ~ can be
determined by using the arc tangent function.
eJ"i' cos
( <j>j i,
I 2) (76a)
0
.. , ( <j>ji,
e J~ sin I 2) (76b)
+ji' ji' +j
e e u .. (76c)
J~
and
+j +i
Observe that uji is used in Eq. 76, not uji" The fixed orientation of
system i' in i is defined by a constant Euler parameter quaternion
Ai'i Aik
e If system i is oriented relative to k by e then the following
identities can be written
(77a)
174
and
(77b)
Combining Eqs. 77a and 77b provides the orientation of system j with
respect to k in terms of known quantities
(7B)
ji' +i'
e e iT +ikT
e eJ"k (8U)
and the angle $ji' can be obtained from Eq. 76. Equations 78 and 79
show that the more general case requires only slightly more
preprocessing and computational effort. Similar to Eqs. 74 and 75 one
finds that
and
A* A A A*
e e = e e = 1 (83)
"'*
. ""*.
e e + e
A A
e =0 (84a)
and
~*
+ e e =0 (84b)
The quantities in Eq. 84 are vector quaternions because each pair are
negative conjugates, i.e. let
+
.
A* A A* A
c = e e = e e
""*
(e e)
A * (85a)
and
+ A A* A A*
d = e e = e e
A A* * (85b)
 (e e )
176
.:.i
a (86)
.
The quaternions e" and e"* can be eliminated from Eq. 86 by rearranging
.:.* "'*
Eq. 85a as
~
e
= e c and e =  e so
e A
c
..;.i
.
+ +j +j "*
a = e c~j + c a a t) e (87)
+ +j
c a
+
c X ~j  +c . +j
a (88a)
and
+j + +aj x +c  +j
a • +
a c c (88b)
and
+
c •
yields
.
+i
a (89)
+.
Differentiating a vector aJ in coordinate system j is represented by
.
+j +j
a + ~·
wJ x a
177
so that
(90)
+
c =
or
can be identified.
it follows that
+i ~ ~*
w =2 e e (92)
+i +j ~*
w e w e
. . "'* ,. """'*
2 e e e e
+j
w (93a)
and
+i
w (93b)
wj +T • +T
2 e e = 2 e e (94)
wi +
2 e e * +
 2 e e
.*
T " T
2 e e = 2 ~ e (95)
(96a)
(96b)
and
e = e wi I 2 (96c)
(96d)
(97)
~j (98)
ji
where
(99)
(100)
•ji +i~
e w.
].
(lUl)
wj +.iT • ji
2 eJ e (102a)
ji
and
wi jiT • ji
= 2 e e (102b)
ji
180
REFERENCES
Werner 0. Schiehlen
Institute B of Mechanics
University Stuttgart
Stuttgart, F.R.G.
1. INTRODUCTION
Support
Free Systems
Dashpot
r.(t)
1
= [rx 1. r.
Yl
, i = 1 (1 )p (1)
s xxi s s
xyi xzi
written down for each body. The coordinates of the rotation tensor Si
represent the direction cosines relating the inertial frame I and
the bodyfixed frame i to each other. The nine coordinates of the
rotation tensor depend on three angles or generalized coordinates,
respectively, due to the constraint conditions Si(t) si(t) = E
i = 1(1)p . For more details see the comprehensive presentations in
gyrodynamics. A free system o"f p bodies without any mechanical con
straint holds 6p degrees of freedom. Thus, the position of the sys
tem can be uniquely described by 6p generalized coordinates summa
rized in a 6px1position vector
(3)
S.=S.(x) i 1 ( 1 )p (4)
1 1
ilri •
v.
1 ilx
X HTi(x) x(t) (5)
as.1
•
(lli ax X HRi(x) xCtJ (6)
Clv.
a. 1 (7)
HTi(x) xCtJ 1"X x (t) '
+
1
Cloo.
a.
1 HRi(x) x(t)
+ __
1
Clx x(t) (8)
0 as Z1. as .
Y1
as yi as xi 0
Holonomic Systems
f = 6p  q
Cylindrical Spherical
Pair (q=4l
Joint (q=3l
or explicitly by
X = _!(y,t) (12)
(14)
asi
wi 3 Ri(y,t) y(t) + i 1 (1)p (16)
at""
av.
__
1 y+ avi
3 Ti(y,t) y(t) + ( 17)
ai ay at""'
190
awi aw.
a. JRi(y,t) y(t) + ay y• + 1
(18)
1 at
ar. ari ax
1
JTi ay ax ay HTiF (19)
as. as. ax
1 1
JRi ay ax ay = HRiF (20)
Nonholonomic Systems
g = f  r ( 21)
Rigid wheel
on rough plane
(r =1)
0 k 1(1)r, (22)
or explicitly as
191
y(t) = g(y,z,t) (2 3)
T
z(t) = [z 1 z2 z 3 . . . z g1 (24)
(25)
awi aw. ay
1
1 ri az ay az 1 RiG HRiFG (29)
(30)
v.
1
X
r.
1
X
rR + wR rRi +
.
rRi (31)
XX
a. rR + CwR + 2)
WR + 2wRi rRi + p3)
1 rRi rRi
CLi
.
WR + WR WRi + wRi (34)
(35)
where JTR and JRR are the 3xfJacobian matrices of the reference
motion. If only relative coordinates are used, then the Jacobian ma
trices in (36) and (37) are vanishing. Similar to (17) and (18) the
reference accelerations are obtained.
The relative motion of each body is defined as
<lrRi
iRi JTRi(y,t) y(t) +
~
(39)
()sRi
WRi JRRi(y,t) y(t) +
~
(40)
Here, JTRi and JRRi are the 3xfJacobian matrices of the relative
motion. Corresponding to (17) and (18) the relative accelerations are
obtained.
The system's absolute velocites and accelerations are now found
from (31) to (34) using (35) to (40). For the geometrical Jacobian
matrices it yields
1~
(41)
(42)
(43)
(44)
Comparison of Frames
Formalisms in Literature
q t 0, r = 0, £ g = 6p  q
F = [E ! 0] , G E
q f 0, r = 0, f = g = 6p  q
F f [E ! OJ G f E.
q = 0, r t 0, f 6p g 6p  q  r
F E G f [E 0]
q f 0, r t 0, f 6p q, g 6p q  r,
F f [E o), G f [E o]
3. NEWTONEULER EQUATIONS
Newton's and Euler's equations read for each body in the inertial
frame
196
p
miai f7
1
+ r f~. f~ + f:
1 1
i 1 ( 1) p (45)
j =1 1J
p
I . a..
1 1
+ w.1 I 1.w.1 = 171 + r 1~.
1J
1~ + 1:1
1 (46)
j =1
( 4 7)
The forces and torques in (45) and (46) are either composed by exter
nal and internal forces and torques or by applied and constraint for
ces and torques acting on each body. The forces and torques are
3x1vectors, all torques have to be related to the center of mass c.
1
of each body. The external forces and torques act from the outside of
the system, the internal forces and torques appear always twice within
the system. The applied forces and torques~ respectively, depend on
the motion by different laws and they may be coupled or decoupled to
the constraint forces and torques. For the generation of the equations
of motion the applied forces and torques are most important.
Newton's and Euler's equations are changed on the left hand side
in a moving reference R to
f~ ( 48)
1
where trli means the trace of the inertia tensor Ii . The force
and torque vectors have also to be written in the reference frame,
but usually there don't appear new terms on the right hand side of the
equations.
197
1~~ + 1 ~~ + r .. f .. 0 1~~
11
0 (51)
1J J1 J1 1J
p p
E E 1 ~~
1J
+ r.1 f..
1J
0 (53)
i=l j =1
Thus, internal forces and torques don't affect the total system's
motion.
it turns out
i =1 (1)p (55)
Ideal Applied Forces and Torques: The ideal applied forces are
due to the elements of multibody system, e.g. springs, dashpots and
further actions on the system.
e1
(56)
£~ a •
fi(x,x,t) (57)
1
w = w(x,w,t) (58)
Proportional Force
Proportional
Differential Force
The same laws hold also for the ideal applied torques.
a
f~ fi(y,z,g,t). (59)
1
r, I
p
} (60)
q (61)
T T T 3 T ]T (6 2)
J 3 Tl 3 T2 3 R1 Rp '
Q FT
1
FT
2 ... LT
1
... LTp JT • (63)
200
(64)
In the same way, the global equations in a moving reference frame are
obtained from (48), (49) etc. as
~ J"
RM R y + Cc y,y,t
Rq • ) (65)
(66)
M' = (6 7)
(6 B)
Eqs. (68) reduce to (64) for r=O y=z G=E and L=J , respec
tively, applying (28) and (29) .
4. DYNAMICAL PRINCIPLES
ow 0 (69)
aP 0 (70)
JT sR [ S~ M sR s~ "J y(t) + s~ qc ] = JT SR ( s~ qa + s~ Q g J
(75)
Thus, the choice of the reference frame doesn't affect the equations
of motion at all. However, kinematics and NewtonEuler equations as
well as the application of d'Alembert's principle may be strongly
simplified by the choice of a proper reference frame.
~
M (y,t) z(t)
. +
~
k (y,z,t) (77)
It turns out that (77) differs from (71). In particular, the second
order differential equations (71) are replaced by two first order dif
ferential equations (76) and (77), separating kinematics and dynamics.
However, eqs. (76) and (77) represent still an ordinary multibody
system. This can be seen applying the following transformation laws:
(78)
Multibody systems are called general iff they are not ordinary.
Nonholonomic constraints and I or proportionalintegral forces produce
general multibody systems.
The equations of motion are obtained from the NewtonEuler equa
tions (68), the proportionalintegral forces (58) and Jourdain's prin
ciple (70). However, the equations of motion are not sufficient, they
have to be completed by the nonholonomic constraint equations (23).
Thus, the complete equations read as
y(t) = g(y,z,t)
w(t) w(y,z,t)
204
Basebody
X • ::1 y ( 81)
T o ... o] T
E = [E E ••• E] 0 [o (8 2)
J = [
 1
~~~~=
I
 ,
( 8 3)
0 I JRR
(84)
(85)
(86)
(8 7)
has been used. Obviously, the orbital motion rR in (86) can be eli
minated by (85) resulting in (f 3) equations of attitude motion:
(88)
(89)
T=1 = 
Q M M J = 0 (90)
where
N(y,t) = QT M 1 Q > 0 (9 2)
(94)
a
with a 6pxqdistribution matrix Q .
force Oeg
Normal force g i
Fig. 8 Lateral Force of an Elastic Wheel
208
Then, eqs. (93) are also linear with respect to the generalized con
straint forces:
5. COMPUTERIZED DERIVATION
Mathematical Operations
lxlmass m.
1
Program NEWEUL
The program NEWEUL applies the index coding for the symbolical
generation of equations of motion. The user prepares the required
input variables in an interactive dialog with the computer. NEWEUL
performs automatically the linearization of expressions and, to some
extend, simplifications of trigonometric expressions. The resulting
symbolical equations of motion are obtained as a printed listing or
as a file ready for numerical solution by any available eigenvalue
or integration routine, respectively. For more details see the oper
ating instructions by Kreuzer, Schmoll and Schramm [21].
Example: Due to the limit space for this paper, only the simple
example of a double pendulum will be presented, Fig. 9.
Translation vectors :
Rotation tensors:
[cos
~]
(Ail SIN(Ai)
Si = SIN~Ai) COS(Ai) i 1 '2
0
Masses: m1 m2 M
Inertia tensors:
[ ~X ~X ~]
0 0 IZ
i 1 '2
f1 fz
H· G J
11
[_
From these input data the program NEWEUL generates the following
~•(A11) 12 0
INERTIA MATRIX
RM<1,1)=2.*L**2*M+IZ
RMC1,2>=L**2*M*COSCA2>*COSCAi>+L**2*M*SIN<A2>*SIN<A1>
K<1>=L**2*M*A21**2*SINCA2>*COSCA1)+L**2*M*A21**2*SIN<A1>
*COS<A2>
K<2>=L**2*M*A11**2*SIN(Ai>*COSCA2>+L**2*M*Ai1**2*SIN<A2)
*COS<Al>
6. CONCLUSION
REFERENCES
7. Orlandea, N., Chace, M.A., and Calahan, D.A., "A Sparsity Orien
ted Approach to the Dynamic Analysis and Design of Mechanical Sys
tems", ASME J. Eng. Industry, Vol. 99, 1977, pp. 773784.
14. Chace, M.A., "Using DRAM and ADAMS Programs to Simulate Machinery,
Vehicles", Agricult. Eng., Vol. 59, No. 11, 1981, pp. 1819 and
No. 12, 1981, pp.1618.
18. Kreuzer, E.J., and Schmoll, K.P., "Zur Berechnung· von Reaktions
kraften in Mehrkorpersystemen", z. angew. Math. Mech., to appear.
Werner 0. Schiehlen
Institute B of Mechanics
University Stuttgart
Stuttgart, F.R.G.
1. INTRODUCTION
available, e.g. Mitschke [2], Wong [3), Willumeit [4], Wickens [5],
Hedrick and Wormley [6).
Vehicle Model
c, L
BE (t) p AP
\\MRH
~\J
MRH XI
or
is given by the driving force FA(t) and the applied torque ML(t)
is due to a servomotor.
The front wheels have the masses MRV and the principle moments
of inertia IRVX = IRVZ, IRVY . The rear wheels are characterized by
MRH, IRHX, IRHZ , respectively. Each wheel is mounted with a revo
lute joint (q = 5) . The generalized coordinates of the wheels are
PHI, 1 = 1 (1)4 There don't exist any applied forces and torques
for the wheels.
f = 6 • 7  (3 + 5 + 4 • 5 + 3) = 11 {1)
The kinematical relations are most easily written in the moving refer
ence frame R , Fig. 1, given by
~]
COS(GA) SIN(GA)
SIN(GA) COS (GA) (3)
0 0
~]
COS(DE) SIN(DE)
[ SIN(DE) COS(DE) (4)
0 0
Similar input data are found for the front axle and the wheels.
For the chassis no inputs are necessary due to the vanishing forces
and masses.
g=116=5 (5)
z ( t) = [ V DE 1 Z1 AL 1 BE 1 ) T (6)
follow as
V11COS(GA)
V11SIN(GA)
VwAiwTANDE
DE1
RI(V~( COS(DE) + TANDE(SIN(DE)  s~AI) ]  S*DE1)
y(t) RI(V•( COS(DE) + TANDE(SIN(DE) + S11AI) ] + s~DE1) (7)
RI(V  SJi'GA1)
RI (V + SJtGA1)
Z1
ALl
BE1
The applied force and torques can also be obtained from Fig. 1
where the linearization with respect to the small car body motion
Al (t) « 1 , BE (t) « 1 , Z(t) « C is helpful. For more details
222
Guideway Irregularities
The guideway irregularities for the right and the left trace of
a road are given by the random processes ~r(t) and ~l (t) . Thus,
a spatial road profile can be represented by a 2x1vector process
223
INERTIA MATRIX
RMI1,il=MA+2.*CP*MA*AI*TANDE*AL+L**2*MA*AI**2
*TANDE**2+2.*CP*L*MA*AI**2*TANDE**2*BE+MV+
MV*TANDE**2+2.*MRV+2.*MRV*S**2*AI**2
*TANDE**2+2.*MRV*TANDE**2+2.*MRH+2.*MRH
*S**2*AI**2*TANDE**2+IAZ*AI**2*TANDE**2+
IVX*AI**2*TANDE**2+2.*IRVY*RI**2*COSCDE>**2
+4.*IRVY*RI**2*TANDE*SINCDE>*COSIDEJ+2.
*IRVY*RI**2*TANDE**2*SINIDE>**2+2.*IRVY
*S**2*AI**2*RI**2*TANDE**2+2.*IRVX*AI**2
*TANDE**2+2.*IRiiY*RI**2+2.*IRHX*AI**2
*TANDE**2
RMI1 1 2l=2.*MRV*S**2*AI*TANDE+IVX*AI*TANDE+2.*IRVY
*S**2*AI*RI**2*TANDE+2.*IRVX*AI*TANDE
RMC1,3l=O.
RM<1,4J=CP*L*MA*AI*TANDE
RMI1,Sl=CP*MA
RMC2,2J=2.*MRV*S~*2+1VX+2.*IRVY*S**2*R1**2+2.*1RVX
RMC2,3l=O.
RMC2,4l•O.
RMC2,Sl=O.
RMC3 1 3l=MA
RMI3 1 4)=0.
RM<3,S>=O.
RMI4,4l=CP**2*MA+IAX
RMC4,Sl=O.
RMC5,5l=CP**2*MA+IAY
Continued
224
K<2>=MRV*B**2*AI*DE1*V+MRV*S**2*AI*TA04*DEi*V+MRV
*S**2*AI*TA04*DE1*V*SINIDE>**2+IVX*AI*TA04
*DE1*V+2.*IRVY*S**2*AI*RI**2*TA04*DE1*V+2.
*IRVX*AI*TA04*DE1*V
KC4>=L**2*MA*AI*TA04*DE1*V*BE+L*MA*AI*TANDE*V**2
*BEL*AP*MA*AI*TA04*DE1*V*BEAP*MA*AI*TANDE
*V**2*BECP*L*MA*AI*TA04*DE1*VCP**2*MA*AI
*TA04*DE1*V*BECP**2*MA*AI**2*TANDE**2*V**2
*AL2.*CP**2*MA*AI*TANDE*BE1*VCP*MA*AI*TANDE
*V**2IAX*AI*TA04*DE1*V*BE+IAZ*AI*TA04*DE1*V
*BEIAY*AI**2*TANDE**2*V**2*AL+IAZ*AI**2
*TANDE**2*V**2*ALIAX*AI*TANDE*BE1*VIAY*AI
*TANDE*DE1*V+IAZ*AI*TANDE*BEl*V
K<S>=L**2*MA*AI**2*TANDE**2*V**2*BEL*AP*MA*AI**2
*TANDE**2*V**2*BE+CP**2*MA*AI*TA04*DE1*V*AL
CP~L*MA*AI**2*TANDE**2*V**2CP**2*MA*AI**2
*TANDE**2*V**2*BE+2.*CP**2*MA*AI*TANDE*AL1*V+
L**2*MA*AI*TA04*DE1*V*AL+L*MA*AI*TANDE*V**2
*ALL*AP*MA*AI*TA04*DE1*V*ALAP*MA*AI*TANDE
*V**2*AL+IAY*AI*TA04*DE1*V*ALIAX*AI**2
*TANDE**2*V**2*BE+IAZ*AI**2*TANDE**2*V**2*BE+
IAX*AI*TANDE*ALl*V+IAY*AI*TANDE*ALl*VIAZ*AI
*TANDE*AL1*V
EV LOV/CA
LO Undeformed Length of Spring
EH  LOH/CA
(9)
( 1 0)
Then, it yields
~(t) = H v(t) H
[: :l ( 11)
Vehicle Dynamics
WS1 1
,T
x(t) = [ YT y ( 1 8)
The time delay 6t depends on the axle distance L and the vehicle
speed v . Then, the excitation term in the state equation (17) can
be rewritten as
B~ (t) (20)
Human Response
z = E{P ..z(t)}
p .. (21)
 2 uv PAKBK (22)
Free Vibrations
(A  ).E) i =0 (24)
Covariance Analysis
(26)
(2 7)
where
~ (t.t) (28)
Similar results may also be obtained for springs and dashpots with
nonlinear behavior, see Ref. [11].
REFERENCES
12. Kreuzer, E., and Rill, G., ''Vergleichende Untersuchung von Fahr
zeugschwingungen an raumlichen Ersatzmodellen", Ing. Arch.,
Vol. 52, 1982, pp. 205219.
METHODS AND EXPERIENCE IN COMPUTER AIDED DESIGN
OF LARGEDISPLACEMENT MECHANICAL SYSTEHS
Milton A. Chace
President
Mechanical Dynamics, Inc.
555 South Forest
Ann Arbor, l1I 48103
l. INTRODUCTION
This paper reviews the basic methods evolved and utilized
in the Hechanical Dynamics, Inc. (HDI) DRAM and ADAMS Programs.
Particular attention is devoted to ADAMS becanse it is most
technologically advanced program and because the basic methods in the
current version of ADAMS have not been clearly described elsewhere.
Topics covered include coordinate choice, analysis modes (kineto
static, dynamic, static, quasistatic), predictorcorrector
integration procedure and use of sparse matrix methods.
A very important stage of development has been reached in
generalized largedisplacement simulation, with the successful, fast,
accurate simulation of full threedimensional models of vehicles
(e.g., automobiles, trucks, farm and construction vehicles).
Application of ADAMS to a light truck handling study is included to
illustrate this capability.
The DRAM (~ynamic ~esponse of ~rticulated ~achinery) Program is
limited to twodimensional problems, although it accomodates
substantial detail and generality within the 2d domain. The
original version of DRA}! was completed in 1969, at The University
of Michigan 1 ' 2 ' 3 ' 4 through the efforts of the author and Michael
Korybalski. At that time it was named DAMN (~ynamic ~nalysis
Coordinate Choice
The essential computational problem in large displacement dynamic
simulation is the automated construction and numerical evaluation of
a simultaneous set of nonlinear ordinary differential equations having
known initial conditions. At each integration step all coefficients
must be numerically evaluated and a simultaneous set of equations
solved for the high order dependent variables. The speed of this
process is ultimately very sensitive to coordinate choice.
In the twodimensional program DRAM, a socalled modified tree
branch (mtb) coordinate set was used. This consisted of the relative
translational displacements at each singlefreedom translational
contact, plus the angle of each part measured with respect to ground.
For systems having significant closed loop constraint, this coordinate
choice results in a small but dense set of equations. Rotational
inertia is a negligible computational burden. Translational inertia
may be a significant burden, especially for problems involving long
chains of parts such as chain drives or crawler tracks. As an
example, a singlefreedom dynamic fourbar mechanism would be
represented by five differential equations (two representing
constraint conditions) in mtb coordinates but would require seventeen
d~fferential equations with centerofmass (em) coordinates. With
this small, dense equation set time is saved in determining
coefficient values and in solving by Guassian elimination. However
application of sparse matrix methods is inappropriate for enough
problems that sparse matrix technology is not included in DRPJ1.
In the threedimensional program ADM1S, a centerofmass (em)
coordinate system is used. This consists simply of the three
rectangular displacements of each part's center of mass, plus the
rotation of each part, with the angles measured with respect to
ground. For each part, the corresponding translational and angular
velocities and angular momenta are also utilized. This tends to
result in a large but sparse system of equations, amenable to use of
sparse matrix methods for simultaneous solution. Rotational inertia
is now a si~nificant computational burden, but much less than it would
have been with a tree branch or relative coordinate set. Constraint
expressions are numerous and varied but only involve the coordinates
of the two parts immediately paired by a joint, and are therefore
236
(2.3)
By rearranging Equation (2.3), the solution for ~i is presented
as the solution of a simultaneous set of linear algebraic equations.
a! ll'lq. ¢(q.,t.)
a~ i ~  ~ J (2. 4J
=0 (2.5)
~ ~ d~!}:
..
. i of
, ~ '1../! :L
i i_( ~ ~)
at.\.aC).
i R
r ~~ ~
~a_ (2. 6)
""' 4"1 "'1t•'.t. /1."1 "''L T
+ £.
IC=t
.?. (
~'t.ta,.
~)
~i:.
ile ..J. ~;z..! =
4Jt.a.
0
(2. 7)
~ (•!). (2.8)
+~
;}t;. ~ ~
F (2.9)
On the diagram of Figure 2.1 the four solutions (2.1), (2. 7),
(2.8) and (2.10) take place in the "Analyze" block.
Determination of Initial Conditions: If DOF > 0 it is necessary
to determine the "initial conditions", that is the values of q and
~ at t = t 0 . In ADAMS input data, the user may st~te initial
conditions on some subset of the total coordinate set. The user may
further distinguish some of these coordinates as "exact" and others
as only approximate. Exact initial coordinates should be consistent
with system constraint and generator input; approximate initial
coordinates are a means to cause the iteration on the constraint
functions to converge to the correct positional mode of possibly many
such modes.
Determination of the total set of initial position coordinates
q is approached as a minimization problem, where the objective
r:t;
function is L :
L
J
)\f ~l
""' l
w~c.'t(.'to~.) + = o (2.12)
~:1 ~'k
240
cP· = J.0 =
~ .,
1.) ..) • • • Y\1
(2.13)
(2.15)
(2.17)
Here qkp and Alp are the pth iterates of the variables qk and At
Rearranging in matrix form,
0
241
(2 .19)
=0 (2.24)
(2.25)
w~(.,
0
(.2. 26)
243
frm~:on' {~ +,~~~~)~c~t~~V~f·}
hj
(2.29)
Equations (2.27) and (2.28) can be expressed in a matrix form which
has already been symbolically decomposed (ref. Equations (2.19) and
..
(2.26)).
vv.~k (tf') i_
.
~J·
'Ol~
~~ (2.30)
V1~
I
T ~ =t  

......
ll()(.·
(k+l)th order are, ~
+ (2.31)
where, h = time step from the nth step to the (n+l)th step
Sj,aj _integration coefficients
K + 1 = order of integration
~ ( .9..~
>'+I
)
u.. "'+\ t.A_V~+I
 )  ) A t ) =
01\+l
)
D (2.33)
(2.34)
(2.35)
(2. 36)
},. + ~f/6,q,. ;
~11> "i' ~Lt "'
}£/
Llgf r~ IA~p
~~ p
+~I
d" 6.'A., = 0
p (2. 37)
4, +~ l.b.~p = 6
(2.39)
d;. f>
Here, the superscript n+l has been dropped for notational convenience.
The index p is an iteration counter.
In Equation (2.37) note th~t
~~f> = ~~ } ~ldp
c}~ p (2. 40)
0•
The term ~can be replaced by differentiating Equation (2.31)
once, rearranging, then performing the respective partial derivative.
~.\& =
dU G
~ (2. 41)
246
(2.42)
(2.43)
(2.44)
['~J l_i~ 0 =
'0~ 0 0 t:..!::_ L'P
~ I>
3. EXAHPLES
Simple Pendulum
~?C.+~,=O (3. l)
R~p;;=b (3. 4)
~ is a constant
~ _ It [ c.osEJ'C + s~eJJ (3. 5)
~ ~ ""';\
R  'X. L + ~~
(3. 6)
l( 1't. c..o~ e A. i.
~~
0 (3. 7)
s~ e 
p;t:
~
 )1_ •J 0 ( 3. 8)
~1L = ()
.
(3.9)
e
•
~~
=o (3.11)
W\ i u 0
i
0
W\ y.
q, q'( .
1M~
I C)
.
(.L)
1 1L i
1..
. ::
1.
~
e
(3. 12)
i 1.
AI b,
\"2. ~
249
Here,
!£ ~If
~l a:Ap.J~}1') ~~;
I
~l
:r  L~J LiJ 0
(~)
(3.14)
0 0
0 0 0
~ :::::. 0 D 0
0~ D 0 Ct..~~~~~+~z..fl.~·IN\ e)
(3.15)
~ 0 0
[~
0
(3.17)
1
Vehicle Simulation
Largedisplacement dynamic analysis has evolved to the point
that threedimensional vehicle models can be simulated with all
inertial, steering, s~spension, shock, bushing, and tire effects
included. Vehicles can be shown in crash and rollover, although
such drastic examples tend to be restricted as proprietary
information by client companies. The example chosen here is a Ford
Bronco II involved in severe handling.
A total of 580 equations were formulated by ADAMS for this
vehicle, representing a 42 degreeoffreedom model. The vehicle
model was subjected to 210° steering wheel ramp input in 0.4
seconds while traveling at a speed of 45 mph. Figures 3.3 through
3.5 compare simulation results with experimentally measured results
for vehicle lateral acceleration, roll angle and yaw rate. The model
was run from zero to five seconds of real time, requiring
approximately 175 cpu seconds of simulation time on a CDC Cyber 176
computer. This run time is representative of many other vehicle
examples run under varying circumstances.
One of the most sensitive elements of a vehicle simulation is
the tire model. Present state of the art requires experimental data
on the particular tires involved. In this instance data was
obtained from the Calspan Corporation.
Computer graphics is a very helpful interface between the
voluminous, detailed output of a simulation run and the capability
of a human analyst to appreciate an overall situation. Figure 3.6
shows a succession of three frames of the Bronco as simulated on an
Evans and Sutherland PS300 graphic display terminal. In actual
graphic display the motion appears continuous, involving rapid
generation of a succession of several hundred frames.
251
4. SYSTEMS REQUIREMENTS
The ADM1S program is currently running on a variety of mainframe
and minicomputers as can be seen in Table 3.1. ADAMS is written
entirely in ANSI standard FORTRAN IV; subsequent versions will be
written in FORTRAN 77.
Random access memory requirements (32bit words) may be
summarized as follows:
ADAMS: 232K
IGL (Interactive Graphics Library) : 36K
Postprocessor: SOK
ADAMS uses one large integer array to store all data. Arrays
with problemdependent size are allocated from this array. A double
precision dummy array is equivalenced to this integer array to
facilitate the storage and retrieval of double precision arrays.
Permanent space is allocated from the left end of the array, and
temporary space from the right end of the array.
By means of this storage arrangement, ADAMS is variably
dimensioned, and larger problems may be accommodated by simply
changing the size of the large integer array, which is defined in
the block data.
Graphics display using the ADAMS postprocessor is supported on
the Tektronix 40XX series and 4100 series terminals. The graphic
routines used are Tektronix PLOTlO or IGL, if available at the
user's site, or CKLlB which is supplied by MDI.
Deere and Company have been utilizing Megatek and Ramtek
terminals as graphics output devices from the postprocessor. The
Evans and Sutherland PS300 is another ADA}1S postprocessor graphics
device with the special capability of realtime coordinate
transformation. Once simulation has been completed and down loaded,
the PS300 operates standalone and the user is provided with a wide
variety of viewing options .using the control dials and the function
buttons.
MDI is presently completing a preprocessor for both DRAM and
ADAMS using the PS300. The preprocessor will allow the user to add/
alter/delete component types .such as parts, joints, forces, requests
and generators using the attached digitizing tablet.
252
TABLE 3.1
INSTALLATIONS OF DRAM AND ADAMS
HAIN MEMORY
HARD\•1ARE 0/S ADAMS
DRAM
VAX VMS Virtual Virtual
Prime so Virtual
Series PRIMOS Virtual
Amdahl 5860 MTS Virtual Virtual
IBM 43XX VM/C:HS 4 MByte 6 MByte
IBM 370 Series MVS 4 MByte 6 HByte
Cyber 176
Series NOS/BE 192K 60bit 192K 60 bit
words* words*
Cray1 cos 300K 64bit 400K 64bit
words words
ACKNOWLEDGEMENT
In this paper, methods and ex?erience in the computeraided
design of large displacement mechanical systems, have been reviewed.
The structuring and broad distribution of this capability has
required an interplay of talent of many individuals. I wish
particularly to acknowledge the technical contributions of John
Angell and Rajiv Rampalli in program development. As respects the
present paper, the Figure 2.1 flow chart and basic scheme of
explanation were contributed by Rampalli. The accomplishments of
John Angell and Jim Vincke in achieving a generalized three
dimensional vehicle dynamic simulation capability are also
acknowledged. Editorial assistance by Hal Burchfield, Sandy Reich
and Vic Sohoni is appreciated. The original versions of DRAH and
ADAMS were primarily the work of Don Smith and Nicolae Orlandea,
respectively.
254
REFERENCES
NO
STATICS
NO MATRICE YES
1..:....<sTRUCTURALLY')o(
SINGULAR
YES NO
YES
PRINT OUTPUTS
200 r ·
en I
w I
w 160 f I
a::
(.!)
I
~ 120r
I
I
I
80r
I
I
I
40r I
I Adams Simulation
Actual Vehicle
J I I I I I I I
50 100 150 200 250 300 350 400 450 500
TIMEMsec x 101
LATERAL ACCELERATION
.40~~
.20
en
(.')
.40
.60
.80
1.0 OL....l....L..J....I.....I....L......L......L......J......5' 0
50 100 150 200 250 300 350 400 450 0
TIMEMsec x 101
ROLL ANGLE
lOr~
45 MPH/210° Steering Input (0.40 sec ramp)
8
~ 4
0::
(.')
w
0
2 Adams Simulation
Actual Vehicle
4L.....J~~~~~~~~~~
YAW RATE
0
'\ 45 MPH/210° Steering Input (0.40 sec. ramp)
4
u
'II
w
(f) 8
''
0:::
w
0.. 12
'II
w 16
w
0:::
<..?
w 20 ''
0
24
28L___L __ _ L_~~~~~~LL~
Parviz E. Nikravesh
Center for Computer Aided Design
College of Engineering
The University of Iowa
Iowa City, Iowa 52242
1. INTRODUCTION
2. EULER PARAMETERS
8 =A 8 1 (2.1)
where 8 and 8 1 are the global and local components of a vector s that
is fixed in the local tnt coordinate system.
If the direction of the orientational axis of rotation is
specified by unit vector ~ and the angle of rotation about this axis
is +, as shown in Fig. 2.1, then a vector ~on this axis is defined as
e = u sin ! (2.2)
These components are the same in the xyz and tnt axes. A fourth
parameter is defined as
e0 s cos ! (2.4)
(2.5)
(2.6)
A 2 (2. 7)
A (2.8)
where I is a 3x3 
identity matrix and the skewsymmetric matrix e is
defined as
e (2.9)
I (2.10)
e e = o (3 .1)
and
e e = e eT
(3.2)
r,
Matrices E and G are defined as
eo e3
E e2 e3 eo
e3 e2 el
[ e, e + eo I] (3.3)
[•,
and
eo e3
G = e2 e3 eo
e3 e2 el
• [e, e + eo I] (3.4)
Ep = Gp = o (3.5)
Comparing Eq. 3.8 with the transformation matrix A of Eq. 2.8 reveals
that
(3.9)
T • •T p = 0
p p p (3.10)
E p t p (3 .11)
and
G p= ~ p (3.12)
(3.13)
(3.14)
266
A= 2E (;T
(3.15)
(3.16)
from which
E GT = E (;'T (3.17)
4. GENERAL IDENTITIES
b = s a
 (4.1)
and
Substituting Eq. 4.2 into Eq. 4.3, and noting that the result holds
for vectors a', it follows that
(4.4)
267
.
s A s' (4.6)
+
The vector s may also be expressed [1] in terms of angular
+
velocity~ ass=~ x ;; i.e.,
.
s Ill s (4. 7)
If Eqs. 4.6 and 4.8 are combined, yielding an identity that must hold
for all vectors s', it follows that
A= w A (4.9)
A •' (4.10)
5. ANGULAR VELOCITY
(5.1)
Substituting from Eqs. 3.9 and 3.15 for A and A, Eq. 5.1 becomes
268
(5.2)
(5.3)
a = 111 a = a • (5.4)
2 a E p 2 a pT p = a 111
2 a E p a 111 (5.5)
Ill = 2 E p (5.6)
0 eo el e2 e3
.
eo
r.l(y)
2
e2 e3 eo e1
.
e2
(5. 7)
or
Ill * = 2E* p
. (5.8)
T
where 111*: [~, r.~(x)' w(y)' w(z)] A direct calculation shows that
the matrix E is orthonormal, so the inverse transformation of Eq. 5.8
is simply
• 1 *T * (5.9)
p • 2 E 111
269
2 (5 .11)
or
~
'* 2 G* p. (5.12)
.
p (5.13)
T
Ill ~ = (5.14)
Substitution of Eq. 3.7 into Eq. 5.14 and employing Eq. 3.10 yields
T
Ill Ill = (5.15)
parameters is simple and more natural to implement than any other set
of rotational generalized coordinates, such as Euler or Bryant angles.
The angular orientation of one coordinate system relative to
another coordinate system, such as global, can be considered by Eulers
theorem as the result of a single rotation about the socalled
orientational axis of rotation by an angle ~· Now, as a first example
shown in Fig. 6.l(a), consider an observer standing along the axis of
rotation in the global xyz system. If the xyz and ~nc axes are
initially coincident, then to move the ~nc system to its final it
will have rotated by angle ~ as seen by the observer. A positive
rotation, to the observer, will be a clockwise rotation of ~nc
about ~. If the observer is in the ~nc coordinate system as shown
in Fig. 6.l(b), the above rotation will be viewed as a counter
clockwise rotation of the xyz system by an angle ~ about ~. A third
case can exist, in which the observer is in a semirotating coordinate
system designated by b 1 b 2 b 3 , as shown in Fig. 6.l(c). For the
observer who is standing along the axis of rotation in the b 1 b 2 b 3
coordinate system, the above rotation will be viewed as a clockwise
rotation of ~nc system by an angle ~/2 and a counterclockwise
rotation of xyz system by an angle ~/2.
z ~ b3 ~
~
z z I
\ I I
cph
e·
I \ ~ I
I \
I,/·
,' cp
\
\
\
_!.e;:Y \,:
\
c#>~z.sr:;:;·
, ,_____ y
:..,.,. TJ

y  b2
''
'' "'1
X
''
"'1
e
b,
Figure 6.1 Interpretation of the coordinates rotation for an
observer standing along the orientational axis of
rotation; (a) attached to xyz axes, (b) attached
to ~nc axes, and (c) attached to b 1 b 2 b 3 axes.
b0 = cos l (6.3)
b = u sin l
Since e 0 = cos ~/2 and e u sin ~/2, Eq. 6.2 yields
eo = 2b~  1
(6.4)
e = 2bo b
e eT
B = e0 I + e +
1 + eo
(6.5)
s = B s(b) (6 .6)
s=BBs' (6.7)
s = A s'
A = B B (6.8)
272
Equation 6.8 illustrates the almost obvious fact that any rotation is
the result of two successive semirotations.
Equation 3.9 states that the transformation matrix A is the
result of two successive transformations; i.e., A can be expressed as
the product of two 3x4 matrices E and Gas A= EGT. Comparison of
Eqs. 3.9 and 6.8 shows that the product BB is analogous to the product
EGT. Equation 6.7 is interpreted as a transformation of 8 1 from
~nc by a semirotation to the intermediate 3space semirotating
s = E GT 8 1 (6.9)
(6.10)
8 = (6.11)
(7.1)
r +A s'
body, s' = [~P, nP, cP]T are the local coordinates of P, and A is a
transformation matrix that depends on the angular generalized
coordinates of the body. If the transformation matrix A is described
in terms of four Euler parameters p, then there are seven generalized
coordinates, three translational and four rotational, that describe
the orientation of the body in space. The vector of generalized
coordinates for the body may be denoted as
f
The velocity of a point P on the body can be found from Eq. 7.1 as
(7.3)
8 1111
r
.p .
r  2 s E p
. (7.4)
r
.p
r  2A s' G p (7.5)
Equations 7.4 and 7.5 provide explicit relationships for the velocity
of point P in terms of time derivatives of Euler parameters.
8. GENERALIZED FORCES
.Sr
.
r .St
(8.1)
.Sp
.
p .St
os
.
s .St
ow .. fT orp (8.4)
275
ow (8.5)
g r(r)] [ f ] (8 .6)
=lg(p) 2ET s f
g (8. 7)
The quantities s' f' and s fare simply moments n' and n, with respect
to the origin of the ~nc coordinates, expressed in local and global
cocrdinate systems, respectively. Thus,
(8.9)
g  [ :;:;]
J' =  f 8 1 8 1 dm (9.1)
(v)
J =  f 8 8 dm (9.2)
(v)
J = A J' AT (9.3)
J' = 0 (9.4)
and
J • J  J • (9.5)
where m is the mass of the body. Equation 10.1 may also be written as
(10 .3)
or
H= [ : 4E ~JEJ (10.6)
(10.8)
M = [:
m r
. (11.2)
and
(:;)T = o (11.4)
(11.5)
(11.6)
d (a~)T = m r (11.7)
dt ar
and
~ : pT p 1 = 0 (11.9)
the effect of Eq. 11.9 must be included in Eq. 11.1. This can be done
by using the Lagrange multiplier technique, justified by Farkas
Lemma [2]. The partial derivative of Eq. 11.9 with respect p
is ~ 2pT Using this result, Eq. 11.1 for translational and
p
rotational equations of motion of the body is modified as
d (a~)T _ (aT)T
dt ar ar g(r)
(11.10)
d (a~)T _ (aT T
dt ap ap) + 2p a = g(p)
r:
.....
0
4GTJ'G
j [] [ g(r)
g(p) + 8GTJ'Gp
J (11.11)
.. ..T ""T T
where q = [r ' p l .
Equation 11.11 cannot be solved for r, p, and a, since the matrix
on the left of Eq. 11.11 is a 7 x 8 matrix; i.e., it is singular. The
second time derivative of Eq. 11.9; i.e.,
~ = 2pT p + 2•T
p p• = 0 (11.13)
..
J[
0
o r] [g(r) (11.14)
2p p = g(~~.+
0 a 2p p
(~)pT
(!J·] g(p) +
 2•T•
p p
REFERENCES
INTRODUCTION
This paper illustrates the potential of symbolic computation in connection with the formula
tion and analysis of equations for dynamical systems, sensitivity analysis, linkages and mechanisms,
and robot manipulator arms.
3. The direct and inverse problem involving robot manipulator arms (Sections 9 and IO).
In order to make the presentation clearer to the general reader who lacks specialized
knowledge of ;;ymbolic manipulation, we;: explain the mathematical aspects in the main text (namely
the kind of problem for which we feel symbolic computation is useful), and give the detailed
MACSYMA programs in appendices.
In a certain sense the real "meat" of this paper is the detailed programs which appear in the
appendices. The reader interested in symbolic manipulation should solve the problems outlined in
the text using MACSYMA, or any other suitable program. with the appendices as a guide.
The objective of this paper is to encourage the use of symbolic manipulation in the analysis
of mechanical systems. It is clear that the complexity of the problems being tackled is increasing to
the point where symbolic manipulation must play an important role in their formulation and solution.
In this paper we have simply picked out the tedious parts of well known methods and examples, and
illustrated the ease of performing the manipulation using MACSYMA.
The objective of this example is to illustrate how MACSYMA handles Lagrange's equation of
motion in the form:
;I, · · · , n (1)
285
where T and V are quadratic forms representing kinetic energy and potential energy, respectively,
expressed in terms of generalized coordinates q;. Q; are nonconservative generalized forces. Con
sider the 5degreesoffreedom model of a vehicle suspension system shown in Figure I and dealt
with in Haug and Arora (6] (pp. 25, 200):
(2)
where
Zs
~ 23L l•~l. . . .f 1~ ~
'Tr'
Figure 1.
286
The MACSYMA program and output for the above problem is given in its entirety in Appendix A1.
We comment on the key commands. (C2) establishes the vector a of generalized coordinates
Z1, · · · ZS. (C3) establishes the dependence of the elements of a on time. (C4)(C7) establish mass,
spring, damping and displacement vectors (for DISP equations following Eq. 2 above). (C11),(C12)
derive the generalized forces an ( =aa(n) in the program) by picking out the coefficients of 8Zn
( =DEL(a(N)) in the program) in 8 W in Eq. 3 above (=OW in the program). (C9),(C10) establish
kinetic and potential energies defined in Eq. 2 above. (C13) forms and displays the equations of mo
tion by evaluating Eq. 1 above. The key command here is DIFF(EXPR,T) where EXPR is some func
tion of T, which takes the derivative of EXPR with respect to T. Thus
DIFF(DIFF(TT,DIFF(a(N),T)),T) == :, (:~I
As requested, the computer then displays the equation, of which we have shown only the first,
namely
This example illustrates the derivation of equations of motion when constraints are present.
The appropriate Lagrange equations are:
i= 1, · · · , n (4)
where T, V, and Q; are as previously defined and the constraints are represented by k algebraic
equations:
«ll(q) = 0
8 W f(t)8x3
(5)
287
f(t)
Figure 2.
Again the procedure outlined is easily handled by MACSYMA (see the symbolic program given in
Appendix AII}. From the output of this program we have the following equations of motion for the
system:
Note that Eqs. 5,6 are a differentialalgebraic system consisting of nine equations in nine unknowns.
This problem has only a single degree of freedom. If this is chosen as cf>t. we find from
Eq. 5 that x 2, y 2, cf> 2, and x 3 can be expressed in terms of cf> 1• If these are substituted in the kinetic
energy (= TT) expression we find TT = TT(cf>t.<i> 1). The equation of motion is now given by
(7)
i.e., one single differential equation in one unknown, with no constraints. A MACSYMA program
for deriving this equation is given in Appendix AIII.
Equation 7 must be equivalent to nine equations in Eqs. 5,6, though derived independently.
To deduce Eq. 7 directly from Eq. 6 we can proceed as follows:
288
(8)
A (q) is a 4x5 matrix, so that the equation A (q)x = 0 has a solution of the form x = Cx0 (q),
where C is an arbitrary constant. Multiplying Eq. 8 by xl obtaining
xJMq = xlf
expresses x 0 (q) in terms of cp 1 only. This leads to the single differential equation given by Eq. 7.
In this problem, another approach would be to choose two generalized coordinates with one
side constraint. This would lead to two ordinary differential equations involving cfJJ> cp 2 and one
Lagrange's multiplier and one side constraint. These can be obtained either directly (as Eq. 7) or by
eliminating three of the >. 's in Eq. 6.
3. JACOBIANS
If, instead of looking at specific examples as in the last two sections, we consider general for
mulations, then the following type of situation arises. Suppose that cartesian xcomponents X;
• p OX; .
X;= L ~ qj
j1 q)
OX·
p a2x.
p p
x; = 1L.1  ' li1 + L. L. aq aq,k
aqj 11 k1 1
iJ.1 Q.k
The quantity del>/ dq in Eq. 4 has the same form as the Jacobian [ox,/oq) occurring above, and the
MACSYMA command for ocp/o q is given in the last line of Appendix A11.
4. SENSITIVITY ANALYSIS
The objective of this section is to illustrate how MACSYMA deals with some aspects of sen
sitivity analysis, with particular reference to the paper by Haug and Ehle [7]. Consider a dynamical
system described by design variables b = [b 1 , • • • , bd rand a state variable
z(t)  lz1 (t), · · · , zk(t)JT which is the solution of an initial value problem of the form
z(O) = h(b)
289
A(T,z(T)) = 0
1/J = g(z(T),b) + J
0
T
F(t,z,b)dt (10)
It is required to find di/J/ db, which is a k vector. This is done by considering an adjoint variable >..
satisfying
~ + ![>.. = F[
and then
(11)
The procedure outlined above is carried out by the MACSYMA procedure given in
Appendix AV. This also illustrates the MACSYMA solution of linear equations by Laplace
transform. Consider an example given in Ref. 7, namely a simple oscillator governed by the equa
tion
The results of the MACSYMA procedure give the first derivative of the functional 1/J as
ft_ (13)
db
Higherorder sensitivity analysis requires the Jacobian for which a BLOCK MACSYMA com
mand is given in Appendix AIV as discussed in the last section.
Note: MACSYMA is awkward for differentiating functions having a definite integral; e.g., from
Eq. 10 we have
(14)
However, MACSYMA does not perform the derivative under the integral sign (a possible dialogue
with MACSYMA is given in Appendix AVI).
290
5. A SPACECRAFT PROBLEM
Levinson [10] has described in detail an application of the symbolic language FORMAC to
formulate the spacecraft problem shown in Figure 3, consisting of two rigid bodies with a common
axis of rotation b.
'I) I
Figure 3.
The equations are given in Ref. 10 in complete detail, and are translated into MACSYMA in
Appendix AVII. To illustrate the point we give typical equations with MACSYMA equivalents:
u4 =q U[4):DIFF(Q,T);
We could implement this last mathematical expression, (7) [10], by converting the vector
product into matrix form but it was simpler to write a BLOCK function to do this, as in
Appendix AVII. The MACSYMA equivalent of (7) is now
ALPR:DIFF(WR,T) + CROSS(WB,WR);
291
av8• aw 8
+
F
r
=  ·
au,· (F) B
au, · ( T) B (r=1, · · · ,7)
becomes in MACSYMA
+DOT(DIFF(WB,U[R]),TB);
Dot in the above is defined by another block in Appendix AVII. The distinction between:= and:,
as used in this command, is discussed in Appendix B.
The complete set of equations given in Ref. I 0 is generated by Appendix AVII. The reader
should compare the corresponding FORMAC program given in Levinson [10].
In previous sections we have not found it necessary to use powerful commands in MACSY
MA concerned with the simplification of complicated expressions. As an introduction to the manipu
lation needed in the later sections, we present the following simple dialog:
(C1) F:(X+Y+Zr2/Y;
(Z+Y+X) 2
(01)
y
(C2) EXPAND(%);
(02) ~
y
+ 2 XZ + 2Z + Y + ~ + 2X
y y
(C3) COMBINE(%);
(03) z2+2XZ+X2 + 2Z + y + 2X
y
(C4) XTHRU(%);
(06) Y 2+2XY+X 2
y
(C7) SUBST(SIN(2•TH),X,%);
Y 2 + 2 SIN(2TH) Y + SIN 2 (2TH)
(07)
y
(C8) TRIGEXPAND(%);
(C9) TRIGREDUCE(%);
The objective of this section is to illustrate how MACSYMA performs algebraic and trigono
metric manipulations encountered in the analysis and synthesis of linkages.
M(x,y)
(x",y")
Figure 4.
Consider first, following Hartenberg and Denavit [5] (p. 150), the fourbar linkage AOA08 B
shown in Figure 4, where the bars lie in a plane and are pinjointed at A, OA, 0 8 , and B, and the
positions of OA and 0 8 are fixed. MAB is a lamina, so that M is fixed relative to A and B. If B08
is rotated about 0 8 , the point M will trace a planar curve, the equation of which we wish to deter
mine.
The required equation for the motion of M(x,y) is obtained by eliminating (x',y'), (x",y"), and 0
from Eq. 15. This is done in Appendix AVIII. Elimination of (x',y') and (x",y") leads to the equa
tion of the form
NcosO L sinO= q,
(16)
PcosO + MsinO = 1/1
293
This sixthdegree polynomial in (x,y) is called the tricircular sextic. The determinant of Eq. 16 van
ishes when LP NM = 0, i.e.,
We next derive a basic relation used to synthesize fourbar linkages, namely the socalled dis
placement equation which gives the output angle t/J for a given input angle cp in Figure 5.
¢INPUT
Figure 5.
x2 = a 1 cos¢, y 2 = a 1 sin¢
The two solutions correspond to the two ways to close the fourbar linkage shown in Figure 6.
Figure 6.
(22)
with (23)
Hartenberg and Denavit [S] (p. 297) discuss the problem of designing a planar fourbar link
age such that, to three given positions cf>t. cf> 2, and cf> 3 of the crank OAA, there correspond three
prescribed positions .Pt. .p 2, and .p 3 of the follower 0 8 B. The form of Eq. 22 is wellsuited for this
purpose. The solution in this case is obtained by solving the set of three simultaneous equations for
Kt. K 2 , and K 3 obtained by substituting cf> cf>;, o/1 o/J;, ;1, 2, 3 in Eq. 22, and then obtaining a 3 ,
ai> and a 2 from Eq. 23 (a 4 can be selected equal to one). Appendices AVIII and AIX give the
MACSYMA program to carry out the above procedures.
8. DUALNUMBER QUATERNIONS
Next, consider a laborious calculation contained in the appendix to the Yang and Freuden
stein paper [19] in connection with the analysis of a spatial fourbar mechanism. We are given
(24)
295
where
(25)
Here
a12 = a12 + .:a12, 01 = 01 + <:S11
a23 = a23 + .:a23, 02 = 02 + 1:52
(26)
a34 = a34 + .:a34, 03 = 03 + <:S3
a41 = a41 + 1:041 , 04 = 04 + 1:54
where " is a symbol with the property .: 2 = 0. This implies that, if 0= 0 + "s, then
P+.:Q=R+.:S (27)
where P, Q, R, and S are independent of.:. It is required to find the explicit form of P, Q, R, and
S. To calculate this by hand is extremely laborious, but straightforward in MACSYMA. The pro
gram is given in Appendix AX.
Robot arm manipulators can be considered to consist of a series of links connected together
by joints. It is convenient to use cartesian coordinates by assigning a separate coordinate frame to
each link. Without going into detail (which can be found in Paul [15], for instance), the relation be
tween the coordinate frames assigned to one link and the next, consisting of translations and rota
tions, can be derived by a 4x 4 matrix of the form
nx Ox ax Px
ny Oy ay Py
A= n: Oz az Pz
(28)
0 0 0 1
where the elements of the top left 3x 3 submatrix are the direction cosines representing the rotations
and (px ,py ,p) is the translation.
296
The position and orientation of the coordinate frame of the end of the manipulator is
specified by six parameters (3 translations, 3 rotations). A general manipulator can be designed us
ing six links, each having one degree of freedom. If T6 denotes the A matrix corresponding to the
end of the manipulator, and A; (i = 1 , · · · , 6) are the A matrices for the individual links, T6 is
given terms of the A; by
T6 = A 1 A 2 A 3 A 4 A 5 A 6
cos0 2 0 sin0 2 0
sin02 0 cos02 0
A2= 0 0 d2
0 0 0 1
If d 2 is fixed and 0 2 is a variable representing rotation of the second link, this is called a revo
lute joint. If 0 2 is fixed and the translation d 2 is varying, this is called a prismatic joint.
The socalled "direct" problem is: given the A;, find T6 this is obviously straightforward,
although algebraically laborious (see Paul [151, p. 59 and Appendix AX).
The main computational problem connected with the direct problem is the question of
differential motion discussed in Paul [15] (Chapter 4). These are important in connection with
dynamic analysis of manipulators, sensitivity analyses, and small adjustments of the end manipulator.
Without going into detail (which can be found in Ref. 15), the computational problem in
volved is the following. Suppose that the six parameters representing degrees of freedom are denot
ed by a 6vector x, small changes in these parameters are denoted by ~x, and the corresponding
small changes in the three displacements and three rotational parameters of the end point frame of
the manipulator are denoted by the 6vector A, then we have a relation of the form
where the i 1h column of J is [::} ; where, for i = 1 , · · · , 6, and for a revolute joint,
( nixP;y + n;yPix)
d; = ( OixPiy + O;yPix)
(aixPiy + a;yPix)
The MACSYMA program for the symbolic computation of A and the numerical example in Ref. 15
are given in Appendix AXI (see Ref. IS, pp. 104107).
297
The "inverse" problem consists of obtaining the A;, i= 1, · · · , 6, given numerical values
of T 6. In theory this can be done from
(29)
which gives 12 equations in 6 unknowns (the 6 degrees of freedom of the links). These equations
are redundant, and there are only six independent equations in the six unknowns. However, the
equations are highly complicated. The method used in practice is to consider also the following equa
tions which are completely equivalent to Eq. 29:
A2A3A4AsA6= Ai 1 T6
A3A4AsA6= Ai 1Ai 1T6
A4AsA6= A3 1A2 1Ai 1 T6 (30)
[In practice the A; 1 are usually easily obtained from the A;.l Equations 29 and 30 give 72 equations
for the 6 unknowns. The procedure is now to pick out the simplest 6 independent equations from
the set of 72. The simplest solution occurs when one of the equations involves only one unknown,
say xb another equation involves x 1 and a second unknown x 2, a third equation involves only xb
x 2, x 3, and so on. The system can then be solved sequentially. This is the solution with Stanford
and the elbow manipulators described by Paul [15].
A more complicated situation occurs in the robot arm discussed by Lumelsky [Ill, where
such a simple sequence of equations cannot be found. Instead, the simplest set is of the form
(31)
In Appendix AXII we give a MACSYMA program for selecting the basic 6 equations from
the 72 available. This can be done automatically by using the command FREEOF to print out a
dependency table showing which of the variables occur in each of the 72 equations. Equation 31 can
be deduced directly from this dependency table.
298
ACKNOWLEDGMENTS
MACSYMA work of the Mathlab group is currently supported, in part, by the National
Aeronautics and Space Administration under grant NSG 1323, by the Office of Naval Research under
grant N0001477C0641, by the U.S. Department of Energy under grant ET78C024687, and by
the U.S. Air Force under grant F4962079C020. Funding for one of the authors [B.N.] was provid
ed by the Army Research Office.
REFERENCES
1. Bordoni, L. and Golarossi, A., "An Application of Reduce to Industrial Machinery," ACM Sig
sam Bull. No. 58, 115, 1981, pp. 812.
2. Bottema, 0. and Roth, B., Theoretical Kinematics, NorthHolland, 1979.
3. Drinkard, R.D. and Sulinski, N.K., MACSYMA: A Program for Computer Algebraic Manipulations,
Naval Underwater Systems Center, Newport, Rhode Island, NUSC Tech. Doc. 6401, 10 March
1981.
4. Goldstein, H., Classical Mechanics, AddisonWesley, 1959.
5. Hartenberg, R.S. and Denavit, J., Kinematic Synthesis of Linkages, McGrawHill, 1964.
6. Haug, E.J. and Arora, J.S., Applied Optimal Design, Wiley, 1979.
7. Haug, E.J. and Ehle, P.E., "SecondOrder Design Sensitivity Analysis of Mechanical System
Dynamics," Int. J. Num. Meth. Eng., Vol. 18, 1982, pp. 16991717.
8. Hussain, M.A. and Noble, B., "Application of MACSYMA to Calculations in Applied
Mathematics," General Electric Company Report No. 83CRD054, March 1983.
9. Kreuzer, E.J., "Dynamical Analysis of Mechanisms Using Symbolical Equation Manipulation,"
Proc. Fifth World Congress on Theory of Machines and Mechanisms, ASME, 1979.
10. Levinson. D.A., "Equations of Motion for MultipleRigidBody Systems via Symbolic Manipula
tion," J. Spacecraft and Rockets, Vol. 14, 1977, pp. 479487.
11. Lumelsky, V.J., "Iterative Procedure for Inverse Coordinate Transformation for One Class of
Robots," General Electric Company Report No. 82CRD332, February 1983.
12. MACSYMA: The Reference Manual, Version 10, 1983, Math Lab Group, Laboratory for Com
puter Science, MIT. See also MACSYMA Primer.
Information, plus the MACSYMA tape (available to colleges and universities at special rates), is
available from: Symbolics Inc., 257 Vassar St., Cambridge, MA 02139.
13. Nikravesh, P.E., Wehage, R.A., and Haug, E.J., Computer Aided Analysis of Mechanical Systems
(1982), to be published.
14. Paul, B., Kinematics and Dynamics of Planar Machinery, PrenticeHall, 1979.
15. Paul, R.P., Robot Manipulators, MIT Press, 1981.
16. Schiehlen, W.O. and Kreuzer, E.J,. "Symbolic Computerized Derivation of Equations of Mo
tion," in Dynamics of Multibody Systems 1, IUTAM Conf. (K. Magnus, ed.), SpringerVerlag,
1978, pp. 290305.
299
17. Vukobratovic, M. and Potkonjak, V., Dynamics of Manipulation Robots, SpringerVerlag, 1982.
18. Wittenberg, J., Dynamics of Systems of Rigid Bodies, Teubner, 1977.
19. Yang, A.T. and Freudenstein, F., "Application of DualNumber Quaternion Algebra to the
Analysis of Spatial Mechanisms," Trans. ASME, J. Appl. Mech., 1964, pp. 300308.
300
APPENDIX A
(07) { \~3 +Z2 Z1, Z4 L;J Z2. ZS+ 2 ;zJ Z2, Z4 FHTl, ZS F2(Tll
+K4,Z4FHTl)2+ Kll \z.} +Z2Z1rl /2 DISP :(Z2 + L! 12"Z3~Z t.Z4Z2LI3"Z3,Z5Z2 + 2"L/3"Z3,Z4F 1(T) ,Z5F2(T)J;
OERIVABBREV:TRUE:
!" ..... KINETIC AND POTENTIAL ENERGIES .. "/
{Cit) OW:DIFF(DISP,T)"OIFF(O\SP);
TT: 1/2"MASS.DIFF(Q, T). 2:
l,
+OIFF(POT,Q[N]l
DASH.QQ[NIJ:
+{z41  L~3r Z2TJDEL(TJ ZJD~L(L)
lzs 1+
2
L:3.r Z2r)IDELfZ5lOELtZ2l+ 2 LD~L(ZJl
APPENDIX AIl
+{ZSr+ 2L::Jr Z2r)DEUTl+ 2Z3D3EL(L) l. r COORDINATES *I
Q:(PH1,X2,Y2,PH2,X3];
OEPENOS(Q,Tl;
 {z4r F1(TlT) {DEL(Z4l + {z•T FttTlTj DEL(Tl) , MASS:(Jt,M2,M2,J2.'43l:
CONSTRAINT:(R"S1N!PH1)~ Y2 + L "SIN(PH2l,
1zs.r F2(TlT) IDEL(ZSJ + {zsr F2nlTJ oeLnlJJ R"COSIPH 1)~X2 L "COS(PH2).
X2~L"COS(PH2l·X3,
(C12) FOR N THRU 5 DO QQ(N]:RATCOEF(OW,OELtQ!Nlll; Y2L •s1NiPH2)J:
1012) DONE r LAGRANGE MULTIPLIERS */
LAM:(LAMt,LAM2,LAM3,LAM4):
(Ct3) FOR N THRU 5 DO LOISPLAY(EQUATIONINI I* KINETIC ENERGY "/
 OIFF(OIFF(TI,OIFF(Q(N],T)),TI~OIFF{TI,Q[NJ) +OIFF(POT,Q(N])OASH _QQ{NIJ; TT:(1/2"01FF(Q.TI"2LMASS;
t• EQUATIONS OF MOTION "I
(E13) EQUATION 1   Kt { \~3 +Z2ztJ +M1Ztn FOR 1:1 THRU 5 DO LDISPLAY (QQ(I]OIFF(OIFF(TT,OIFF(Q[I].T)),T)
DIFFITT.Q{I]) +
CC1 (LZJ.r+ 12Z21 12Z1T) LAM.(OIFF(CONSn:IAINT.Q{I])l):
12
(Et4) EQUATION 2 
Y3:LOGIX3)/LOG(10).NUMER: IA[1):'X.$
0ELPH:60/180*"4P1; RATSUBST(1·(STH[1ll""2.(CTH{111""2,'"41:
OELPSI:60/180*''\PI; IA[1]:"4S
PH1:0; A(2);
,.•• ~1;
P$11:0:
YFol00(2)/L00(10),NUMER; RATSUBST(I·ISTH(2))••2,(CTH(2!1""2,'1.1;
IA(2)o'I.S
PH2o(X2XII"DELPH,NUMER;
A(3);
PH3o(X3XI)"OELPH,NUMER; ,··1;
PSI2o(Y2·YI)IYF"OELPSI,NUMER; RATSUBST(I(STH(3!1""2,(CTH(3!1""2,'1.);
PS13:{Y3Y1)/YF*OELPSI,NUMER;
IA(3)o'U
A4:1; A(4);
EQ1:FFIPH1,PS11); "4"1;
EQ2oFFIPH2,PSI21; RATSUBSTII(STH(4!1""2,(CTH(4!1""2,..1;
EQ3oFF(PH3,PSI3);
IA(•J:'I.$
LINSOLVE([EQI,EQ2,EQ3),(KI,K2,K3li.GLOBALSOLVEoTRUE;
Al5l;
A3:Ao4/K1; "4'"1;
A1:Ao4/K2; RATSUBST(IISTH(5!1""2,(CTH(5!1""2,'1.1;
A2:SQRT(A 1""2 + A3"*2 + A4""22" A 1* A3*K3):
303
[0,0,0,111; A[6[ %:
IA1T6:1A{1].TT6; T56:A{S];
IA2T6.1A[2].%; T46:A[5]. A[6L
IA3T6tA[3} %; T36 A[4[ A[5[ A[6[:
IA4T6:1A[4].%$ T26,A[3[ A[4[ AISI A[6[:
IASTS.IA[SJ.%$ T16,A[2[ A[3[ A[4[ . A[5[ A[6[:
IA6T6.1A[6).%$ T6:A[1}. A[2] Ai3J A[4] A[S] . A(6)$
NX:T6(1,1l;
/" .... differential relations. this may be used
NY:T6[2,1l;
for obtaining the sensitivity analysis ... we
NZ:T6[3,1J;
follow the agorithm provided by RP. Paul
OX:T6(1,2];
PAGE no.103 .... AEVOLUTETDA PRISMATICTOP.!/
OY:T6{2.2];
TDR{MAT): BLOCK ((NX,NY ,NZ,PX,PY ,PZ,OX,OY ,OZ,AX,A Y ,AZ]. OZ:T6[2,3l:
NX:MAT{1,1),NY:MAT[2, tl,NZ:MAT[3, 11, AX:T6{1.3);
OX:MAT{1,2l,OY:MAT[2,2],0Z:MAT{3,21, AY:T6[2.3l:
AX:MAT(l,3l.A Y :MAT[2,3l,AZ:MA T(3,3}, AZ:T6(3,3);
PX:MAT(1,4],PY:MAT[2,4],PZ:MAT[3,4}, PX:T6[t,41;
TRANSPOSE (MATRIX H·NX"PY + NY•PX,OX"PY + OY"PX,AX"PY +A Y"PX,NZ,OZ,AZ]))): PY:T6[2.4};
TDP(MA T): • BLOCK ([NX.NY ,NZ,PX,PY ,PZ.OX,OY ,OZ.AX,AY ,AZ], PZ:T6[3,41;
NX:MATI1, 1),NY:MAT[2,1l.NZ:MAT[3,1l. TT6:MATRIXI[NNX,OOX.AAX,PPX] ,(NNY ,COY ,AA Y ,PPY],[NNZ,OOZ,AAZ,PPZ] ,[0,0,0, 1])
OX:MAT{1 ,2l.OY :MA Tf2.2l.OZ:MA Tf3.2l, A 1T6:1A(ll TT6;
AX:MAT( 1,3} ,A Y :MAT[2,3},AZ:MAT{3,3]. A2T6:!AI21 .._;
PX:MAT[1.4l,PY:MAT(2,4}.PZ:MAT[3,4), A3T6:1A{3l . 'r.;
TRANSPOSE{MATRIX([NZ,OZ,AZ,O.O.OJ))); A4T6:1A[4) ~;
r .... NOW WE SET UP COMPLETE DIFFERENTIAL MATRIX ... ."/ A5T6:1A[S) \:
COLI1J,TORIT61 A6T6:1A(6J \;
COL[2):TOR(T16); EQ1:TT6 T6S 4
TABLE(EQt.VAA);
JAC.DO;
TABLE(EQ2,VAA);
TABLE(EQ3,VAR):
TABL.E(E04,VAR);
TABLE(EQS.VARl;
APPENDIX AXII TABLE(E06.\IAR);
TABLE(EQ3,VAR);
r 6 +Ts+T 4 +T 2 +T 1 T6 +T 5 +T 4 +T 2 +T 1
r 6 +r 5 +T_.+r 1 T 6 +T 5 +T 4 +T 1
COlt r 6 +r 5 +r 2 +r 1 COL2
r 6 +T 5 +r 2 +r 1
0 0
T5 +T 4 +T 2 +T 1 T 5 +T 4 +T 2 +T 1
T5 +T 4 +T 1
COL3 ...
T5 +T 2 +T 1 COL4 Ts+T3+T2+Tt
0 0
TABLE(E04,VAR);
T 6 +T 5 +T 4 +T 2 +T 1 r 8 +Ts+T 4 +T 2 +T 1
T6 +T 5 +T 4 +T 1 T6 +T 5 +T 4 +T 1
COLt
T6 +T 5 +T 2 +T 1 COL2 T6 +T 5 +T 2 +T 1
0 0
Ts+T 4 +T 2 +T 1 T 5 +T 4 +T 2 +T 1
T 5 +T 4 +T 1 T5 +T 4 +T 1
COL3 ...
T5 +T 2 +T 1 COL4 Ts+T3+T2+T1
0 0
TABLE(EQS,VAR);
T6 +T 5 +T 4 +T 2 +T 1 T 6 +T 5 +T 4 +T 2 +T 1
T6 +Ts+T 2 +T 1 T6 +T 5 +T 2 +T 1
COL 1
T6 +T 4 +T 2 +T 1 COL2 T6 +T 4 +T 2 +T 1
0 0
T 5 +T 4 +T 2 +T 1 T 5 +T 4 +T 2 +T 1
T 5 +T 2 +T 1 T5 +T 3 +T 2 +T 1
COL3 COL4
T 4 +T 2 +T 1 T4 +T 2 +T 1
0 0
TABLE(EQ6,VAR);
T 6 +T 5 +T 4 +T 2 +T 1 T6 +T 5 +T 4 +T 2 +T 1
T 6 +T 4 +T 2 +T 1 T6 +T 4 +T 2 +T 1
COLt T5 +T 4 +T 2 +T 1
COL2
r 5 +T 4 +T 2 +T 1
0 0
T5 +T 4 +T 2 +T 1 Ts+T4+T3+T2+T1
T 4 +T 2 +T 1 T4+T2+T1
COL3 Ts+T4+T2+T1 COL4 Ts+T4+T3+T2+T1
0
305
APPENDIX B
We assume that the reader is familiar with the introduction given in the MACSYMA Primer,
which is an introduction for beginners (see Refs. 8 and 12).
We will use EXPR to denote any symbolic expression such as X+ Y, SIN(X), etc.
F: EXPR;
assigns EXPR to the variable F. On the reference manual, F would be called an atomic variable.)
Note that F(X) has no meaning in this context. However, if we write
F(X):= EXPR
F(X):= SIN(X);
F(Z); (Machine prints SIN(Z))
F. LAMBDA([X],SIN(X));
One advantage of this procedure is that F can be an argument to another function, for example as in
SIMPSON (see Ref. 8).
An abbreviated, partial list of the commands that have been used in this paper follows. For
details, see the MACSYMA Manual.
DIFF(SIN(X),X); d sin(x)/ dx
GRADEF(R,RHO,P/R); set
oR
ap = P/R
SUM(P[I)X"I,I,O,M);
FOR 1:1 STEP 1 THRUN DO (ANY MACSYMA COMMAND); (Involving set of/'s)
 This is a DO loop for 1 to n in steps of 1. Note
that the default for starting is 1 and that the default
step is 1; FOR I THRU N DO(...) will accomplish
the same task.
Part 3
W.H. Enright
Dept. of Computer Science
University of Toronto
Toronto, MSS lA4
l. INTRODUCTION
ware packages are now in use and we will identify a selection of the
most widely available and point out types of problems that are not yet
covered by such software. The extent to which software can be conve
niently interchanged will be discussed and it will be argued that this
will likely become easier in the future. We will then discuss how one
should go about choosing the most appropriate method for his particular
problem. We will describe the relevant problemdependent features and
how they affect this choice. A revised testing package which can aid
in this process will be described. We will then discuss under what
circumstances it would be worth modifying methods to exploit special
features or structure which might be inherent in the problem. Examples
will be given where such exploitation can result is significant improve
ments in efficiency. Finally we will consider where future develop
ments are most likely and the implications these developments will have
on the user community.
yi+l = yi + Jxi+lpk(s) ds ,
xi
where, on step i, Pk(x) is the polynomial of degree sk interpolating
Yl+lj at xi+lj for j=O,l ... k and
ii) the bac~~ards differentiation formulas (BDF) of order k:
Y·+l
1 I a.y.+l
= j=l
] 1 ]. + hB~y!
a 1+
1 '
s
y. + h 1: ~ k
l r:=::l r r
where
r
= f(x.+a h,y.+h L fl .l<:.).
l r l j~l rJ J
yr = y(x) +
r
I y.h2j + 0(h2k+2),
j=l J
then one can interpolate Yi+l (hj) by an even polynomial of degree
~2s2, Qs(h), and it can be shown that
2s+2
Qs(O) = y(xi+l;xi,yi) + O(h ).
s
Note that each 'step' of an extrapolation method requires ( L N.)
j =1 J
steps of the basic formula.
In the next section we will consider in detail what factors con
tribute to the choice of the most appropriate method for a particular
problem. Nevertheless there are some general observations that can be
314
A) IMSL:
DGEAR  BDF/Adams combination
DVERK  8 stage order 6/5 Runge Kutta formula pair
B) NAG (Gladwell (1980)
D02 family of codes  includes BDF, Adams and RungKutta methods
C) SLATEC (Shampine and Watts (1980))
DEABM  Adams
DEBDF  BDF
DERKF  6 stage order 5/4 RungeKutta formula pair
D) ODEPACK (Hindmarsh (1983))
LSODE  BDF/Adams combination
LSODES  BDF/Adams combination for problem with sparse Jacobian
LSODI  BDF/Adams combination for implicit ODEs.
E) Other packages
EPISODE (Byrne & Hindmarsh (1975)) STRIDE (Butcher et al. (1981))
STIFEQ (Klopfenstein (1971)) MTANl (Denflhardt (1982))
SECDER (Addison (1981)) DODES (Schryer (1975))
STINT (Tendler et al. (1978))
There are several factors that affect the choice of method for a
particular class of problems. Such sitedependent features as local
expertise and experience, hardware configuration and level of available
documentation are often the most important considerations. We will
assume that a collection of tested and documented routines are avail
able and we will identify the relevant problemdependent features that
will generally determine the most suitable method. He will consider
four features of a problem that should be considered in detail and we
will also consider other characteristics of a problem that can cause
difficulties for some methods.
The first feature one should consider is the form of the differ
ential equation. Standard software will usually handle only explicit
first order systems of the form (1). If the problem arises as a higher
order equation or arises implicitly as:
of steps (STEPS) and maximum observed global error (MAX ERR) is given
for both the unmodified DVERK and the version of DVERK with a special
driver over a range of accuracy requests (TOL).
Another feature that can be exploited is linearity. We have
analyzed this question in detail for different classes of linear pro
blems in Enright (1980). The first observation one can make is that
unlike other areas of numerical analysis, one must work very hard to
exploit linearity and most of the time the improvement in efficiency
would not be significant. For example if we consider the nonhomo
geneous constant coefficient equation:
y' = Ay + h(x)
5. FUTURE DEVELOPMENTS
Over the next few years we should see more experimental codes
transformed into robust software. In particular methods which are
effective at low accuracy requests and methods which can effectively
solve stiff problems with eigenvalues near the imaginary axis will be
improved and become widely available.
Another development that could change our view of numerical
methods is that some methods are now producing a piecewise continuous
approximation to the solution y(x) over the range of integration.
While it is possible to associate such an interpolant with any method,
they are generally very expensive to evaluate. Investigations are now
underway to develop inexpens~ve and effective inter~olants for all
types of methods. This approach may well lead to a more uniform inter
pretation of the accuracy of a numerical solution based on the defect
(or residual) of such an interpolant.
321
Finally the software packages for stiff systems are becoming more
modular. In particular standard linear algebra modules are being used
and improved interface routines are being adopted. Sparse or banded
solvers can replace standard solvers in such an organization and as new
techniques, such as those based on partitioning are introduced, it
should be much easier to replace the appropriate modules and investi
gate the potential improvements.
REFERENCES
Tendler, J.M., Bickart, T.A. and Picel, Z. (1978), 'A stiffly stable
integration process using cyclic composite methods, ACM Trans. on
Math. Software 1, pp. 399403.
DIFFERENTIALALGEBRAIC EQUATIONS
C. W. Gear
Department of Computer Science
University of Illinois at UrbanaChampaign
Urbana, Illinois 61801
Abstract. In this paper we study the numerical solution of the differential/algebraic systems
F ( t, y, y' ) = 0. Many of these systems can be solved conveniently and economically using
a range of ODE methods. Others can be solved only by a small subset of ODE methods, and
still others present insurmountable difficulty for all current ODE methods. We examine the
first two groups of problems and indicate which methods we believe to be best for them. Then
we explore the properties of the third group which cause the methods to fail. A reduction
technique is described which allows systems to be reduced to ones which can be solved. It also
provides a tool for the analytical study or the structure or systems.
1. INTRODUCTION
We are interested in initial value problems for the differential/algebraic equation (DAE)
F(t, y, y')=O, (1)
where F, y, and y 1 are Ndimensional vectors. F will be assumed to be suitably
differentiable. Many of these problems can be solved conveniently and economically using
numerical ODE methods. Other problems cause serious difficulties for these methods. Our
purpose in this paper is first to examine those classes of problems that are solvable by ODE
methods, and to indicate which methods are most advantageous for this purpose. Secondly,
we want to describe the problems which are not solvable directly by ODE methods, and the
properties of these problems which cause the methods to fail. Finally, we want to discuss
some analytical techniques for rewriting systems in a form which can be solved by numerical
methods.
The idea of using ODE methods for solving DAE systems directly was introduced in I3J,
and is best illustrated by considering the simplest possible algorithm, based on the backward
Euler method. In this method the derivative y' (trs+ 1) at time t,.+ 1 is approximated by the
first backward divided difference of y(t), and the resulting system of nonlinear equations is
solved for Yn+ 11
F(trs+ 1• Yn+ 1r (y,.+ 1  y,.)/(t.. + 1  t,. )) = 0 . (2)
In this way the solution is advanced from time t,. to time t11 + 1• Higher order techniques such
as backward differentiation formulas (BDF), RungeKutta methods, and extrapolation
methods are generalizations of this simple idea. For example, the kstep BDF method is used
by substituting
Supported in part b:r the u.s. Department or Enef1D', Gr&Dt DOE DEAC0278ER0238J.
I
Ya+ 1 = h1 E" 01; Ya+ 1i
i0
into (1).
The advantages of using ODE methods directly for solving DAE systems are that these
methods preserve the sparsity of the system and require no prior manipulation of the
equations. For example, one set of DAE systems which is particularly simple to solve consists
of systems which are really ODEs in disguise. Ir, in (1), aF jay' is nonsingular, then the
system can, in principle, be inverted to obtain an explicit system of ODEs
y' = f(t, y). (3)
However, if aF jay' is a sparse matrix, its inverse may not be sparse, and hence
at jay = 1aF jay] 1 aF jay may not be sparse. Since the solution of (2) or (3) often involves
the solution of linear equations involving those Jacobians, considerable computer time can be
saved by solving (2) instead of (3) when the system is large. Thus it is preferable to solve the
system directly in its original form.
The most challenging difficulties for solving DAE systems occur when 8F j8y 1 is singular.
These are the systems with which we are concerned here. In some sense the simplest, or at
least the best understood, class of DAE systems is that which is linear with constant
coefficients. These systems,
Ay'(t) + By(t) = g(t), (4)
can be completely understood via the Kronecker canonical form of the matrix pencil (A,B).
The important characteristic of equation (4) that determines the behavior of the system and
numerical methods is the index of nilpotency of the matrix pencil (A,B). Numerical methods
such as (2) can be used to solve linear and nonlinear systems of index no greater than one
with no great difficulty. Algorithms based on these methods may experience problems when
the index is greater than one. We will introduce a scheme for determining if a system has
index greater than one. This scheme can be used in a code to warn the user of probable
difficulty.
One might hope that the study of (4) could be used as a guide for understanding more
complicated DAE systems. In general this fails to be true. The structure of the local
constantcoefficient system may not describe the behavior of solutions to the DAE for
nonlinear or even linear, nonconstantcoefficient systems whose index is greater than one.
Numerical methods which work for (4) break down when the matrices are timedependent and
the index is greater than one. In fact, we are not aware of any numerical methods (based on
ODE techniques or otherwise) for solving the most general linear DAE systems, let alone
nonlinear systems. In Section 4 we examine the structure of timedependent problems and
show where the difficulties with conventional methods arise. In the Section 5 we describe
some analytical techniques for rewriting systems in a form which can be solved by numerical
methods. These techniques are useful not only for simplifying systems in practice, but also as
theoretical tools for exposing the underlying structure of high index systems. In the last
section we apply the ideas to EulerLagrange equations with constraints and see that these
always lead to index 3 problems.
In this section we describe the index of a problem and discuss problems whose index does
not exceed one. These problems are solvable by ODE methods.
325
The existence and solution of linear constantcoefficient systems (4) is easily understood
by transforming the system to Kronecker canonical form (KCF). For details see [14]. We give
only an overview. The main idea is that there exist nonsingular matrices P and Q which
reduce (A,B) to canonical form. When P and Q are applied to the constantcoefficient
problem (4), we obtain
PAQQ 1y' + PBQQ 1y = Pg(t) . (5}
where (PAQ,PBQ) is the canonical form. When A + >..B is singular for all values of >.., no
solutions exist, or infinitely many solutions exist. It is not even reasonable to try to solve
these systems numerically. Fortunately, numerical ODE methods reject these problems almost
automatically because they have to solve a linear system involving the matrix A + hPB
(where h is the stepsize and p is a scalar which depends on the method and recent stepsize
history) which is singular for all values of h. When det(A + >..B) is not identically zero, the
system is "solvable" by the following definition, which was introduced in [14]. Here we give it
for the time varying linear problem.
Definition. A linear system A ( t )y' + B( t )y = g( t) is solvable iff for any sufficiently smooth
input function g(t), solutions to the differential/algebraic equation exist, and solutions which
have the same initial values are identical.
In the following we will deal only with solvable systems.
For solvable systems the KCF form (5) of a constantcoefficient problem can be written
as
z 1'(t) + Cz 1(t) = g 1(t), (6a)
and E has the property that either there exists an integer m such that Em = 0, Em! =/= 0 or
E is the "empty" (or zero by zero) matrix. In the latter case, m is defined as 0. The value of
m is defined to be the index of nilpotency of the system. The matrix E is composed of Jordan
blocks of the form
0
·~ 1 0
(7)
and m is the size of the largest of these blocks. Because (4) is linear, the application of a
linear method to compute y,., n = 1, ,... will yield exactly the equivalent of the application of
a linear method to (6}; that is, if. the initial values are transforms (z 0 = q 1 y 0 ) then
z,. = qly,..
The behavior of numerical methods for solving standard ODE systems (6a} is well
understood and will not be discussed here. Since the systems (6a) and (6b} are completely
uncoupled and the methods we are interested in are linear, it suffices for understanding (4} to
study the action of numerical methods on subsystems of the form (6b}, where E is a single
block of form (7). When E is a matrix of the form (7) and size m, the system is referred to as
326
RA = ~~1~'
where the q X 8 matrix A 1 has rank q. Then, if q = 8, the index is zero. If q < 8, define
RB = l!:l'
where B 1 is q X 8, and examine the matrix
I~: I
is nonsingular, it has an inverse which we denote by [Q[ Q[l where Q[ is q X 8. We have
IA11
B2 [Q[ Q[l =
A1Q[ A1Q[
B 2 Q[ BzQ[ = I.
Hence, A 1Q[ =I, B 2 Q[ = 0 =A, B 2 Q[ = I 2• Let P = R and Q = [Q[ Q[J. We
have
327
PAQ = Ill o I
0 0
PBQ=
and this implies that the index is one as Lemma 2.3 below shows.
Q.E.D.
Lemma 2.3. If E has nilpotency m then
Proof. The result follows by simple reductions to nullify D. Premultiply the pencil by
1: ~I
1
and postmultiply by
1: ~~I
to obtain
1
11o Eo lie
1 eDE
12
I.
' 0
A similar transformation can be applied to reduce the upper right corner to
e( eDE)E = e 2DE 2• This can be repeated m times to obtain em DEm = 0.
Q.E.D.
Systems of index greater than one have several properties which are not shared by the
lower index systems. The properties of these high index constantcoefficient systems which
cause codes to fail ate discussed in much greater detail in [10]; we give only a brief outline
here. We can understand many of the properties of (4) and of numerical methods by studying
the simplest index 3 problem,
z 1 = g(t) (8)
z2'  z3 = 0.
The solution to this problem is z 1 = g(t), z2 = g'(t), z3 = g11 (t). If initial values are
specified for the z;, the solution has a jump discontinuity unless these initial values are
compatible with the solution. If the driving term g(t) is not twice differentiable everywhere,
the solution will not exist everywhere. For example, if g(t) has a simple jump discontinuity at
some point, z2 is a multiple of the dirac delta function, and z3 is its derivative.
328
h,.
If this were to be an O(h) correct approximation to g." is the denominator should be
(h. + h,._ 1)/2. Hence the error is
329
The above results suggest that variablestepsize BDF is not a suitable method for solving
constantcoefficient DAEs with arbitrary index.
G(t)A(t)H(t) = I
II 0
0 E
I {12)
The local index in some sense governs the behavior of the numerical method. For
example, if the matrix pencil is singular, then numerical ODE methods cannot solve the
problem because they will be faced with the solution of singular linear equations. In
understanding why numerical ODE methods break down, it is natural to ask