0% found this document useful (0 votes)
608 views434 pages

1990 Book MultibodySystemsHandbook

Uploaded by

shouvikchaudhuri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
608 views434 pages

1990 Book MultibodySystemsHandbook

Uploaded by

shouvikchaudhuri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 434

Werner Schiehlen (Editor)

Multibody Systems
Handbook

With 165 Figures

Springer-Verlag Berlin Heidelberg NewYork


London Paris Tokyo Hong Kong
Dr.-Ing. Werner Schiehlen
Full Professor of Mechanics
Institute B of Mechanics
University of Stuttgart
Pfaffenwaldring 9
7000 Stuttgart 80
FRG

ISBN 978-3-642-50997-1 ISBN 978-3-642-50995-7 (eBook)


DOI 10.1007/978-3-642-50995-7

Library of Congress Cataloging-in-Publication Data


Multibody systems handbook/Werner Schiehlen (editor).
ISBN 978-3-642-50997-1
I. Dynamics--Computer programs. I. Schiehlen, W. O. (Werner 0.)
QA845.M86 1990
531'.11'0113--dc20 8926255
This work is subject to copyright. All rights are reserved, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, re-use of illustrations,
broadcasting, reproduction on microfilms or in other ways, and storage in data banks.
Duplication of this publication or parts thereof is only permitted under the provisions ofthe
German Copyright LawofSeptember9, 1965, in its version ofJune 24,1985,and a copyright fee
must always be paid. Violations fall under the prosecution act of the German Copyright Law.
© Springer-Verlag Berlin Heidelberg 1990

Softcover reprint of the hardcover 1st edition 1990

The use of registered names, trademarks, etc. in this publication does not imply, even in the
absence ofa specific statement, that such names are exempt from the relevant protective laws
and regulations and therefore free for general use.
Offsetprinting: Color-Druck Dorfi GmbH, Berlin; Bookbinding: Liideritz & Bauer, Berlin
216113020 543210
Preface

Dynamics of multibody systems is of great importance in


the fields of robotics, biomechanics, spacecraft control, road
and rail vehicle design, and dynamics of machinery. Many
research problems have been solved and a reasonable number of
multibody formalisms has been developed in the last two
decades. They were discussed especially during a IUTAM
symposium in 1977 in Munich and a IUTAM/IFToMM Symposium in
1985 in Udine. A considerable number of computer codes based on
these formalisms is now available. with the Multibody Systems
Handbook it is intended to collect software systems for
multibody system dynamics which are well established and have
found acceptance in the users community. The Handbook will aid
the reader in selecting the software system which is most
appropriate to his needs.

Altogether 17 research groups contributed with their


programs or software systems to the Handbook. A compact summary
of important capabilities of these software systems is
presented in tabular form.

It has to be mentioned that during the preparation of the


Handbook all contributors agreed to deal with two typical test
examples, a planar mechanism and a spatial robot. Thus, it is
very easy to compare the results and to identify more clearly
the advantages of one or the other formalism.

The Handbook is a really international collection of


programs and software. Therefore, the editor is indebted to all
contributors for the excellent cooperation overcoming all
borders.

The editorial work of the Handbook was supported by the


VI

Institute B of Mechanics, University of stuttgart. In


particular, I would like to thank Dipl.-Ing. Gunter Leister for
his valuable help and Mrs. Regine Weber for all the secretarial
work. Furthermore, thanks are due to the Springer-Verlag for
the encouraging and efficient cooperation.

stuttgart, September 1989

Werner Schiehlen
Table of Contents

Introduction 1

overview 3

General remarks 3

Tables of information 6

Test Examples 10

Descriptions of Codes 20
NUBEMM - Theory and application of the MBS program 21
SYM - Program package for computer-aided generation
of optimal symbolic models of robot manipulators ..... 37
CAMS - A graphical interactive system for computer
simulation and design of multibody systems .•..•.•... 61
AUTOLEV - A new approach to multibody dynamics 81
UCIN-DYNOCOMBS - Software for the dynamic analysis
'of constrained multibody systems ••..•.•••••••••••••• 103
SPACAR - Computer program for dynamic analysis of
flexible spatial mechanisms and manipulators 123
NBOD & DISCOS - Dynamic interaction simulation of
controls and structure 145

DADS - Dynamic Analysis and Design System 161


NEWEUL - Software for the generation of symbolical
equations of motion • • • • • • • • • • • • • • . • • • • • • • • • • • • • • • • •• 181
MEDYNA - An interactive analysis and design
program for geometrically linear and flexible
multibody systems ••••••••••••••••••••••••••••.•••••• 203
AUTODYN & ROBOTRAN - computer programmes 225
VIII

SIMPACK - A computer program for simulations of


large-motion multibody systems ••••••••••••.••••••••• 265
COMPAMM - A simple and efficient code for kine-
matic and dynamic numerical simulation of 3-D
multibody systems with realistic graphics 285
DYMAC & DYSPAM - Programs for the dynamic analysis
and simulation of planar mechanisms & multibody
systems 305
MESA VERDE - A general-purpose program package for
symbolical dynamics simulations of multibody
systems 341
ADAMS - Multibody system analysis software 361
PLEXUS - Software for the numerical analysis of
the dynamical behavior of rigid and flexible
mechanisms 403

Contributors and Distributors ••••••••••••••••.••••••••••• 427

Index • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• 431
Introduction

In the design of mechanical systems, such as vehicles,


machinery or robots, it is now customary to use computer
simulations to observe the dynamic response of the system being
designed. This form of computer-aided design drastically
reduces the need to construct and test prototypes. However, the
equations of motion of the system must first be obtained.

Multibody systems are characterized by rigid and/or flexible


bodies with inertia and springs, dampers and servomotors
without inertia, interconnected by rigid bearings or supports.
Furthermore, friction and contact forces may be included. The
dynamics of multibody systems are primarily characterized by
their linear and/or nonlinear equations of motions. In addition
the equations of reaction are needed for strength
considerations.

various computational methods and computer formalisms for


mathematical modeling and simulation of complex multibody
systems have been developed over the past two decades. Since a
number of these software systems is well established and has
found acceptance with users we feel that it is time to collect
them in a handbook for bridging the gap between system
designers and a possibly wide user community.

As is true of handbooks in general, the authors can not treat


their topics exhaustively. Each writer is in favour of his own
view of the subject. Therefore, the overview in chapter 2
summarizes the most important features of the codes included in
the Handbook. Of course, the reader has to proceed to the
description chapter to get enough information for selecting the
software which is most appropriate to his problems.
2

In particular, the test examples presented in chapter 3, offer


the unique opportunity to compare not only formalisms and
software systems in theory but also in practice. Thus, the test
examples may be used as bench marks for formalisms and codes
being improved or developed in the future, too.

Typically, the description given in chapter 4 provides many


details of software systems as they appear to the user and
should motivate the application of these systems in problem
solving. Of course, the description will also provide a basis
for users to compare different software and to give advice to
select the software which fits his needs most appropriate. The
contributions do not concentrate on details of the specific
programming technique. They will include, however, a
description of the various fields of application. up-to-date
information is given for scientists working in the field of
multibody system dynamics.

For more detailed information the contributors should be


contacted a list of whom is presented in chapter 5. Further,
the distributors or marketing organiziations, respectively, are
given, too.
()vervie~

The overview summarizes the most important features of the


codes or software systems, respectively, in writing and by
tables. Altogether 20 codes are considered.

The descriptions of the formalisms and codes given in chapter 4


are to a certain extent inhomogeneous. Therefore, in an
overview, the typical features of the codes are summarized in
tabular form. This enables the reader to get quick and
comparable information. The information is compiled from a
standardized software description form prepared by the
contributors to the Handbook.

For the overview the same order is used as in the list of


contributors, chapter 5, accordinding to the date of the
receipt of the contributions by the editorial office. This
order does not express any rating.

Topology of Multibody Systems

Chain and tree structured systems can be handled by all codes,


and quite a number deals with closed kinematical loops. All but
one codes are designed for planar and spatial multibody
systems.
4

Elements Included in Software

Particles, rigid bodies, joints representing holonomic


constraint, and applied forces without friction generated by
passive elements like springs and dampers are found in all
codes. Further, many codes consider position control or
rheonomic constraints, respectively, and some allow
nonholonomic constraints, too. Applied forces including
friction, force control by active elements, and subsystems are
partially available features.

Coordinates Used for Software

All kinds of coordinates are used in the codes: inertial,


relative and mixed coordinates. Further, a moving reference
frame may be offered. A minimal number of generalized
coordinates corresponding to the number of degrees of freedom
is widely applied. But a regular number of coordinates
corresponding to the number of bodies only and a maximal number
of coordinates corresponding to the number of bodies and
constraints are also found.

Computation Methods Applied in Software

Most codes make use of numerical computation, some prefer


symbolical computation or a combination of numerical and
symbolical computation. Nevertheless, the symbolical formula
manipulators do not require special symbolic languages, the
codes are all written in standard computer languages.

Dynamical Methods Used in Software

The methods used include Lagrange's equation of the first kind,


Newton-Euler-equations, D'Alembert's principle (principle of
virtual work) and Jourdain's principle (principle of virtual
5

power). In the western hemisphere Jourdain's principle is also


referred to as Kane's equation.

Equations Generated by Software

A broad variety of equations is found: nonlinear equations of


motion (differential equations), nonlinear equations of
reaction (algebraical equations), mixed nonlinear equations of
constraints and motion (differential-algebraical equations),
linear equations of motion, partially linear equations of
motion and mixed linear equations of constraints and motion
(differential-algebraical equations).

Simulation Methods Used by Software

Usually, the numerical integration requires methods for


nonstiff differential equations only, but some codes use
methods for stiff differential equations and differential-
algebraic equations solver.

Signal Analysis Used by Software

The signal analysis is typically not included in the multibody


systems codes.

Preprocessing

The alphanumerical input includes the batch mode and the


interactive mode via an editor. Graphical input is not really
developed.
6

Postprocessing

The standard postprocessing feature is the time history plot.


Frequency response and root locus plot are sometimes offered.
Single pictures and moving pictures are available with some
codes.

Software Engineering

The most important computer language is FORTRAN, some codes are


available in PASCAL and C, one code uses TURBO PASCAL. The
operating systems include VMS, MS-DOS, UNIX, etc •. The
computers used for the codes are personal computers,
workstations and mainframe computers.

Distribution of Software

Most of the codes are commercially available and the maximum


number of installations reported for one code is 120. The
marketing organizations are listed in chapter 5 together with
the contributors.

Software Applications

The applications are typical for the multibody systems method:


Rail and road vehicles, airplanes and satellites, manipulators
and robots, machines and mechanisms, human body and sports.

From the information given by the authors in a standardized


software description form, three tables were compiled printed
at the following pages. The tables are useful for quick
reference.
7

CI)
co w
z 0
a:
«
« z a:
~ ~
~ >
w 0 a: -l ~ ~ w
«
CI)
z 5 ()
if.
~ > CI)
~
w CI)
-l ()
0
~ z if.
()
0 0 CI) ~w
6 b
co if. ~
~ if. CI)
«
CI)

><
~
~
co ~ ~
()
CI) 0 0 3: w ~ ~ CI)
w « w
~
Z
>- « ~
CI) () « 5 CI) CD « w
15 z 0 z ::2:
0
«~ a:
~
Ci5
0
() 5 >- 0 -l
0 ::2: « Il..

TOPOLOGY

•• • •• •• •• •• •• •• •• •• •• • •• •• •• •• •• •• ••
Tree Structure
Closed Loops

Plane motion
Spatial motion
•• •• •• •• •• •• •• •••• •• •• •• •• •• •• • •••• •• ••
ELEMENTS

Rigid bodies
Elastic bodies
• • • • • •• •• • •• • •• • • • • •• •• • •• ••
Joints
•• •• •• •• •• •• •• • •• •• •• •• •• •• •• •• •• •• •• ••
• • • • •• •
Position control
Nonholonomic constr.
••
Applied forces
Friction forces
• • • •• •• •• • • •• •• •• •• •• •• •• •••• •• •• ••
Force control
• • • • • • • •• •• •• • •
Subsystems
• •• •• • •
COORDINATES

••• • ••• ••• • • ••• • •• ••• • • • ••• • • ••• • ••• •


Inertial coordinates
Relative coordinates
Mixed coordinates

Moving reference
• •• •• •••• • ••••
Minimal number
Regular number
• •• •• • • • • • •• • •• • • •• • • •
Maximal number
•• •• ••
COMPUTATION

Numerical

• • •• • • • • • • • • • • • • • • • •
• • ••• •
Symbolical
Num./Symb.
• ••
8

en
CXI
W
Z 0
::E z a::
< ~ ::E a::
::E 0 a:: en ::E
en ~
W
::E 0
...J
::l Z
<
~ b0 Cfo ::E >en en
W
::E ::E ~
0 0< 0
z 0 0 en
0 W
Cf ::E< Cf
~ ~ CXI ::E <::E ::l
en C/)< ~
en 0
C§ z~
CXI
::l
Z ~ t3 ~ ~ enCf is z CXI W 0 O~ Wo ...J
::E ~ a:: en 0 0 ~ ::E< a..

DYNAMICS

•• • • • • • •• •• • • • • • • •
Lagrange 1. kind
Newton-Euler

• •• • • • • • •
D'Alembert
Jourdain

EQUATIONS

Nonlinear motion
•• •• •• • •• •• • •• •• • • • •• •• •• ••
•• ••• •• ••
Nonlinear reaction
Mixed nonlinear
••
•• • • • ••• • • •
Linear motion
Partially linear motion
Mixed linear

SIMULATION

•• •• • • • • • ••• •• •• ••• •• • • •• •• ••
Nonstiff diff. equations
Stiff diff. equations
Diff.-alg. equations

SIGNAL ANALYSIS

Root locus
Frequency response • •• •• • ••
Spectral density

PREPROCESSING

Batch
Editor • • • ••• • • • • •• •• • • •• •• •• •• •••• •
Graphics
• •
9

(/)
co w
z 0
c:::
....JC:X: zC:X:
~
>~
~ w O c::: (/) >-c::: ~~
~ ....JO c:x: 0 :Jz 01- ~~ 0 ~~ (/)(/)
W (/)
00 0 0 0 (/) w>- 00 a..~ c:x: (/)(/) ~c:x: ~:J
CO ~~ I-Z 0 0 :?:o I-CO ~ c:x: X
:J >-c:x: :J>- ~ (/) CO c:x: Ww :JO ~O >-w o~
Z (/)0 c:x:o (/) 15 Z 0 Z~ c:x:c::: U)O b o~ c:x:a..

POSTPROCESSING

Time history
Frequency response
• •• • •• • •• • •••• ••• •• • • •••
Root locus
• •• •
•• • •• ••• •• •••• •••
Single pictures
Moving pictures

LANGUAGES

• ••• • • • • • • • • • • • • • • • •
TURBO BASIC
FORTRAN
PASCAL
C
•• • •
OPERATING SYSTEMS

VMS
• •• • • • •• • • •• • •• • •
• • •• • • •• • • • •• •• ••
MS-DOS
UNIX
Others

COMPUTERS

PC
Workstation •• •• • • •• •• •• •• • • • • • •• •• • • •
Mainframe
• ••••••• • ••
INSTALLATIONS

Commercial avail.
Installations
••• • • • • • ••••• • •
2050 i10< 50 12( 30 30 3 6 30 3 9 150< 10<

APPLICATIONS

Vehicles
• •• •• • • • •• ••• •• •••• •••• •••• •• ••
• •• •• •• •• •• •• •• • •• •• •• •• •• •• •• •• ••
Air/Spacecraft
Robots

•••• •• •• • •• •• •• •
Machines
Sports
Test Examples

This chapter presents two mechanical systems which are


appropriate as test examples for multibody systems. The plane
motion of the mechanism with one degree of freedom was firstly
used by Giles [1] and Manning [2] for testing. Later, Homolka
[3] and Leister [4] analysed the mechanism using the programs
NEWEUL and ADAMS, respectively. The topology of the mechanism
is characterized by closed kinematic loops. The second example
is the spatial motion of a robot with five degrees of freedom.
The topology of such a mechanical system shows chain
configuration.

Since every multibody formalism presents the time history of


system variables in different format, the results of a
simulation of motion are often not comparable. In contrary, the
visualisation of a simulation by computer graphics animation is
a general mean for the system analysist to identify the results
easily. For this purpose only an animation of both the examples
will be presented. A detailed collection of corresponding
simulations is available in Ref. [5].

Description of the Mechanism

The mechanism shown in Fig. 1 consists of 7 bodies


interconnected by joints without friction. The cartesian
coordinates of the points A, B, C, and all the other parameters
were adopted from Giles [1].
11

Fig. 1. Seven body mechanism


12

The coordinates of the points A, B, C read as

0,06934 m - 0,00227 m

0,03635 m 0,03273 m

0,01400 m , 0,07200 m .

The geometrical and inertia parameters of all bodies are given


in Fig. 2 and Table 1. Further, for the spring yields:

spring coefficient 4530 N/m


unstretched length 0,07785 m

The body-fixed frames xi' Yi' i=1(1)7, are located in the


center of mass of each body. The mechanism is driven by a motor
located in point o. The constant drive torque is given by
MOM = 0,033 Nm .

The motion of the mechanism is to be simulated for one


revolution. At time zero all the velocities of the mechanism
are vanishing and the coordinates satisfying the constraints
are given as

/3 0 - 0,0620 rad 90 0,0000 rad


-Yo 0,4552 rad <1>0 0,2227 rad
0,4873 rad °0 0,2227 rad
°0
EO 1,2305 rad

Each of these coordinates can be chosen as generalized


coordinate. An adequate choice is the angle /3 of the first
body.

Fig. 3 presents the animation of motion of the mechanism for


an intervall of 15 ms with constant steps of 1 ms. within the
intervall 0 to 15 ms link 1 completes just one revolution.
13

l d e si g n
F ig . 2 G eo m et ri ca
14

Table 1 Geometrical and inertia parameters

d = 0,028 m sb = 0,01043 m
da = 0,0115 m sc = 0,018 m
e = 0,02 m sd = 0,02 m
ea = 0,01421 m zt = 0,04 m
zf = 0,02 m ta = 0,02308 m
fa = 0,01421 m tb = 0,00916 m
rr = 0,007 m u = 0,04 m
ra = 0,00092 m ua = 0,01228 m
ss = 0,035 m ub = 0,00449 m
sa = 0,01874 m

Link Mass Rotational inertia


about
centers of mass

Ml to M7 Il to I7
[ kg ] [kg-m 2 ]

1 0,04325 2,194 -10- 6


2 0,00365 4,410 -10- 7
3 0,02373 5,255 - 10- 6
4 0,00706 5,667 .10- 7
5 0,07050 1,169 -10- 5
6 0,00706 5,667 .10- 7
7 0,05498 1,912 -10- 5
15

dddd
~
o ms 1 ms 2 ms 3 ms

dddd
~

4 ms 5 ms 6 ms 7 ms
'----------'

dddd
~

8 ms
L------.I
9 ms 10 ms 11 ms

dddd
~

~
12 ms 13 ms 14 ms 15 ms

Fig. 3 Animation of motion


16

Description of the Robot

The robot shown in Fig. 4 consists of 3 bodies interconnected


by two rotational-translational joints and one rotational
joint. The position of the robot hand can be described by the
generalized coordinates Zl, GAl, Y2, BE2 and AL3.

The inertia parameters are given in Table 2. The geometrical


parameters C and L read as

C 0,05 m
and
L 0,50 m

The body-fixed frames are located in the center of mass, Ci '


of each body. For each joint, the force and torque of the drive
actuator has to be defined.

YI

Fig. 4 Robot with location of body-fixed frames


17

Table 2 Inertia parameters

I
Body
I 1 2 3

Mass [kg] 250 150 100

Rotational
inertia Ix (90) 13 4
about I
body-fixed Iy I (10) 0,75 1
frames I
I
[ kg·m 2 ] Iz I 90 13 4,3

The motion of the robot hand is to be simulated for a straight


line between an initial point and a defined end point. The
movement is performed with a trapezodial velocity profile,
i.e., the robot hand starts with a constant acceleration, then
continues with constant velocity, and finally it moves with a
constant deceleration. At its initial and final position, the
velocity of each body is vanishing. The initial position is
given by the generalized coordinates as

Zlo 2,25 m
GAI O - 0,5236 rad
Y2 0 0,75 m
BE20 0
AL3 0 0

The drive functions are listed in Table 3.

An animation is presented in Fig. 5. Obviously, the joint of


the robot hand is moving on the prescribed path.
18

Table 3 Drive functions

I
Time of' Drive f'unction
simulation t I ,
[ s ]
I [ N ] [ Nm ]

0,0 to 0,5 I F1Z = 6348


I F2Y = 36 • t + 986
L1Z = 673· t - 508
I L3X = 63,5
"
0,5 to 1,5 ! F1Z = 4905
i F2Y =- 2
I
L1Z = 148· exp{ -5,5· (t-O, 5)) + 8
= 49,05
I L3X

1,5 to 2,0 F1Z = 3462


F2Y = - 1019
L1Z = 240
L3X = 34,6

Final Position

Trajectory

Fig. 5 Animation of motion


19

References

[1] Giles, D.R.A.: A comparision of three problem-oriented


simulation programs for dynamic mechanical systems. A
thesis presented to the University of Waterloo. Waterloo,
Ontario, 1978.

[2] Manning, D.W.: A computer technique for simulating dynamic


multibody systems based on dynamic formalism. A thesis
presented to the University of Waterloo. Waterloo,
Ontario, 1981.

[3] Homolka, S.: Untersuchung eines ebenen Gelenkmechanismus


mit dem Programmsystem NEWEUL. Studienarbeit STUD - 41.
Stuttgart: Institut B fur Mechanik, 1987.

[4] Leister, G.: Untersuchung eines ebenen Gelenkmechanismus


mit dem Programmsystem ADAMS. Zwischenbericht ZB - 36.
Stuttgart: Institut B fur Mechanik, 1988.

[5] Daberkow, A.; Eismann, W.; Schiehlen, W.: Test examples


for multibody systems. Stuttgart: Universitat Stuttgart,
Institut B fur Mechanik, Institutsbericht IB - 13, 1989.
Descriptions of Codes

In this chapter altogether 17 research groups present a


detailed description of multibody system formalims and the
corresponding computer codes.

NUBEMM E. Pankiewicz, FRG

SYM M. Vukobratovic; N. Kircanski,


A. Timcenko; M. Kircanski,
YUGOSLAVIA

CAMS L. Lilov; B. Bekjarov; M. Lorer,


BULGARIA

AUTO LEV D.A. Levinson; T.R. Kane, USA

DYNOCOMBS R.L. Huston; T.P. King; J.W. Kamman,


USA

SPACAR J.B. Jonker; J.P. Meijaard, THE


NETHERLANDS

NBOD & DISCOS H. Frisch, USA

DADS R.L. Smith; E.J. Haug, USA

NEWEUL E. Kreuzer; W. Schiehlen, FRG

MEDYNA O. Wallrapp; C. Fuhrer, FRG

AUTODYN & ROBOTRAN P. Maes; J.C. Samin; P.Y. Willems,


BELGIUM

SIMPACK W. Rulka, FRG

COMPAMM J.M. Jimenez; A. Avello; A. Garcia-


Alonso; J. Garcia de Jalon, SPAIN

DYMAC & DYSPAM B. Paul; R. Schaffa, USA

MESA VERDE J. Wittenburg; U. Wolz; A. Schmidt,


FRG

ADAMS R.R. Ryan, USA

PLEXUS A. Barraco, B. Cuny, et.al., FRANCE


NUBEMM - Theory and Application of the MBS Program
by E. Pankiewicz, Federal Republic of Germany

Abstract
In this paper the theoretical background as well as the applica-
tion of the program NUBEMM is presented. Handling of the program
will be demonstrated by using an example.

1. Introduction
In order to enable the vehicle development engineering branch to
report on vehicle handllng as well as on the forces arising during
operation when still in the design phase, digital time simulation
is utilized.
Such simulation, however, requires a mechanical sUbstitute that
describes the real vehicle and its behavior in an idealized and
task-related manner.
The basic substitute of such a physical system is illustrated in
Fig. 1. It is composed of
rigid bodies and/or mass points,
massless springs and dampers,
servomotors,
rigid massless constraining elements (bearings, guides,
joints).

Fig. 1 Multibody system


22

The constraining elements shall be holonomic, without elasticity


and friction; they constrain the motion of the bodies and create
constraint forces and torques in the joints.
Elastic components that generate impressed forces can be modelled
with the spring and damper elements.
The servomotors are controlled and/or regulated active elements
that can act on the joints as well as between the bodies.

2. NUBEMH description of a "linear" MBS fomalism (11


The NUBEMM program is primarily designed and applied for dynamic
simulation and the study of vehicle handling.
In order to also depict very complex vehicle models "directly from
the design", however, a compromise was made between the costly
complete nonlinear calculations and the partially linearized
calculation in NUBEMM.
This simplification of the partial linearization is absolutely
justified for vehicle dynamic simulation because while the
vehicle body carries out large (non-linear) motions, the motions
of the wheels as well as of the axle systems are small relative to
the vehicle body and can be linearized.
This aspect has also been confirmed by comparison between
simulation computations and measurements [1], [2].
Moreover, the equations of motion of NUBEMH are to be coupled each
vehicle subsystem via forces and torques (see Fig. 2), Le. an
open symbolic interface with the following variables has been
generated here:
the generalized coordinates of position, velocity and
acceleration,
the spring and damper forces,
the external forces and torques, •• g. tire forces,
symbols for path excitation and forces from servomotors,
constraint forces and torques (for modelling of frictional
forces).

All these symbolic variables are available to the user.In the case
of any geometrical, mass and inertia model change, on the other
hand, the equations of motion must be generated anew.
The derivation of the partially linearized equations of motion now
follows.
VEHICLE SIMULATION - MODEL o
l. test conditions
1
t I -0
course I ASC
driver
comoutation I
1 .-- 1
accelerator ~ l
T
:r course ( f
brake pedal ( T
deviation I MoTRoNIC
1-~ steerirg >hlel
I
lABS r- ~ 0(

brake engine
t 1 1 I I
0-f road exCl tallon
"" wheel loads I
clutch
1 transmission I
lp 10g1c
Ishi~t \1I power divider I
• lock I
tire model >< l£rgitudinal-,sim slip I
c:v----r road condition I
~H q differential I
sTu I lock I
t t I I
condition lJ-l external forces l-H reaction-torques r--: Mb I I
~ wind
aerodynamic 1wheel rotation
1 Fe, Te
I
"0
,., w
coupling-forces 0
.0
I
""........
:>
DEUS E
.....
:>:: u
'"
:>::""
weE
state conditions m","
::>J:",
zu",.,,.,
observed motions EVl

whee 1 movement
I
vetncle dynamICS I ,
(.0)
'"
Fig. 2 Vehicle MBS model with subsystems
24

Kinematic relationships in an accelerated movinq reference frame


The kinematic equations of a body of the MBS ara shown relative to
the moving reference frame (see Fig. 3).

Fig. 3 MBS body in a moving reference frame

In order to linearize the equations of motion later, the


positional vectors and the rotational matrices of all bodies are
split up as follows:

r OI • r 02 + [~S]r 21,2' (1.a)

[~S] [~S)[~ S). (1.b)

Differentiation of equation (1), leads to translational and


rotational velocities relative to the inertial frame. These
equations are transformed into coordinates of the moving reference
frame with the help of rotational matrix [2 S)
o
6 x 1 6 x 1 6 x 6 6 x 1

[~ 01,2 ]
[ r 21,2 ] +[
E
0
-[r2I ,2) ] [~02'2 ] (2)
(')01,2 (')21,2 E (,)02,2'

In this case, ( )* means differentiation in the inertial frame and


( )' differtiation in the moving reference frame.
25

Analogously, the acceleration equations are calculated in


coordinates of the moving reference frame,
6x1 6x1 6x6 6x1

] .. ['~ 21,2 ] + [ E
"'21,2 0

Equations (2) and (3) can be shown in compact written form with
corresponding distribution matrices as follows:
•PI = PI + [Q(Pi)]~' (4a)
••
Pi = Pi + [Q(PilJ~·+ alpi'pi'z) ,
..
(4b)
I 1(1) n. 14c)

Ideal constraining elements: derivation of the constraint


equations
If the individual bodies are connected to one another via joints,
the relative motions of the bodies are restricted. In a
constraining link as many generalized constraint forces occur as
there are restrictions of motion. These constraint forces appear
in the equations of motion as unknown and must be eliminated since
they cannot be replaced by any law of forces.
Constraining coordinate system "3" is inserted in such a way that
it describes the free and locked motions of the joint. This
coordinate system is fixed to body "1".
If one examines any connecting element between two bodies (Fig.
4), the translational and rotational "kinematic loop" complies
with the following equations,

r 2 + [~S]U2.2 - r l - [~S]UI.I = [~S][~S]r3.3!! r3, (Sa.l


[2 S][ 1 S][o S] .. E. ISh)
1 0 2

Fig. 4 Kinematics of a rigid link joint


26

The differentiation of equation (5) leads to

r 2 + [W2][~S]U2.2 - r1 - [W,][~S]U,., •
= [W, ][~ S][~ S]r 3,3 + [~S][~ S]i- 3,3' {6al
W2 - W," W12 .. [~S][! S]W3 ,3" (6bl

Equation (6) can now be transformed with the help of the


projection matrices of the translation [~Sot][~S] and
the rotation ca S ][' S] in the direction ot: Ule ~ocked joint
modes. ' or 0
Thereby the notx3 matrix [:Sot] represents the locked
translational movements and the norx3 matrix [3 S] repre-
sents the locked rotational modes. 1 or

The results of this multiplication are summarized in matrix form


below:

[t03 ,3 ]
0 03 ,3
= [[:Sot][~S]
[0]
-[: Sot J[~ S][u2 ]
[: Sor][~ s] J[~:J-
_[[~Sot][~S]
[0]
-[i Sot][~S][U1 +r
[,Sor][oS]
3 ]]C"1
w,
J. (7)

The following abbreviations are introduced here:


[U,] • [~S][u", ][~S] 3x3 - skew-symmetric matrix,
3x3 - skew-symmetric matrix.

In (7) there are nb=not + nor equation which correspond to the


number of constraint forces and torques of the constraining
element.
Reduction to generalized coordinates
According to equation (7), one can combine all nzb holonomic
constraint conditions into a linear equation system in matrix
form:
(81

If f=6n-nzb en number of bodies) coordinates of p are used as


generalized coordinates of the MBS, equation (8) can be split as
follows:
(91
27

Thereby,
~a is the nzbx1 vector of the dependent coordinates and
y is the fx1 vector of the independent (generalized)
coordinates.

After solving equation (9) towards the dependent coordinates and


restoration of the original order of the velocity coordinates p
with the help of the permutation matrix [C2J ,the following 6nxf
JACOBI matrix is obtained:

(10)

and thus the following applies:

(11)

The nzb generalized constraint forces (vector fzb) , which are


produced by the constraining elements, act in the direction of the
locked modes of the constraining systems. They are distributed to
the center of mass of the bodies with the help of the constraining
matrix to a 6nx1 force vector fz,
(12)

In order to now eliminate the unknown constraint forces fz from


the equations of motion, it is sufficient to multiply equation
(12) from the left with the transposed JACOBI matrix,

(13)

Linearization of the kinematic equations


In NUBEMM the motions of the bodies relative to the moving
reference frame are regarded as small. Linearization of the
positional vectors and the rotational matrices between the center
of mass of the bodies and the moving reference frame is carried
out relative to a known nominal position. Here it is important
that the given design position represents a geometrical nominal
position.
28

The positional vectors and the rotational matrices are linearized


as follows:

dt) = do) + Adt) + ••• 0, (14a)


[S(t)] = [E + A;(t) + ... 0][5(0)]. (14b)
r(t) = Ar(t) , (14c)
wIt) = A~ (t). (14d)

The equations of motion in a moving reference frame


The equations of motion of the MBS are obtained with the help of
the NEWTON-EULER equations. Thus a total of n subproblems are to
be solved for a system of n rigid bodies.
The NEWTON and EULER equations are written up in coordinates of
the moving reference frame by using the kinematic equations (4):
[M j ]{iii + [Qi (Pi ,Pi (o»]"z*+ a i (Pi'Pi (o),Z)} =
= f ie + fk+ fZ (1sa)
ii'
i = 1, (t), n. USb)
Here there is:
6 x 6

[M i ] = [ :1 [~i ] ] '"= mass and inertia matrix,

6 x 1

~ vector of applied forces.

6 x 1

[_O[~i Q;~][ii ][p i


vector of gyroscopic
= + + forces,
6 x 1
'"
= vector of constraint forces.
= [::]
vector of pOSition
variables,
Pi (0) = [XO j ' YOi' zOi' 0 , 0 ,0 ] '" nominal position
vector,
= [** ** ** *
xf ' Y f ' Z f ' Wx '
* *
wy , W z
]T ~_
reference system.
29

After elimination of the constraint forces and torques in


accordance with equation (13) and combination of all 6n scalar
equations (15), the equations of motion of the MBS can be given in
form of a fxl vector differential equation.

-_ JyT[fey + fk . • ].
Y - Ma(y,y,z) (16)

Here there is:

diag[M T T T]T
=
"-
M t , M2 , ••• , Mn mass and inertia matrix,

Q T T , oJ]T
"-
global distribution matrix.
[Qt' ~,

T T
=
"-
a [at' a 2 , ...
aT]T global acceleration vector,
n

fe [reT feT feT]T "-


vector of applied forces,
y l' 2' n

= [f~~ f~~ f~T]T =


"-
fk ... , vector of gyroscopic forces.
y

In eguation (16) there are f equations for f+6 unknowns, i.e. y


and ~.:
Assuming that the moving reference frame has to be connected to
one body of the MBS, the motion of which are contained in the
vector of the generalized coordinates y, 6 additional trivial
equations

are obtained in order to solve equation (16) unanbignously [3].


*::: ..
One ensures, moreover, that vector z represents ~nert~al
acceleration given in coordinates of the moving reference frame.
Thus the motions of the moving reference frame canQ9.t be obtained
directly via integration of the acceleration values 'z':
30

3. structure of the NUBEMM data set [41


After the mechanical substitute model is available as MBS, the
bodies, constraining elements, coupling elements, applied forces
as well as the observing elements are numbered arbitrarily. These
specified numbers having up to three digits are used for
identification in addition to the symbolic interface generated by
NUBEMM when the scalar equations of motion are output.
A detailed input description of NUBEMM can be found in [ 4]. The
structure of the data set as well as the essential features of the
individual input blocks are explained below.
The data set contains
- key words,
- data lines and
- comment lines.
comment lines may appear anywhere in the data set; they are
identified as "C" in column 1. The key words are designated as
STEUER (input/output control)
FUEHRONG (description of moving reference frame)
KOERPER
MASSEN (mass and inertia block)
BINDONG (constraining element)
KOPPEL (applied spring/damper forces)
KRAEFTE (forces and torques)
BEOBACHTER (observer)
The input blocks do not all have to be available and can be input
in any order.
The data lines contain real numbers and integers as well as
symbolic abbreviations.
All geometric input data can either be input in the reference
frame or in the body-fixed coordinate system. One coordinate
system is specified per body and point of constraint.
31

The individual input blocks will now be explained briefly:


STEUER (CONTROL)
The "STEUER" data field contains control variables to select
certain program variants, particularly for determination of the
output format of the differential equations, generation of plots,
output of certain system matrices and tests.
PUEBRUNG (REFERENCE FRAME)
The motions of the moving reference frame and the body number with
which the moving reference frame is connected are defined here.
EOERPER (BODY)

The nominal configuration of the bodies is specified here by input


of the position of the center of mass (xo,yO,zO) and position of
the body-fixed coordinate system relative to the inertial frame.
Up to six possible motion (3 translations, 3 rotations) are
permitted for each body relative to the inertial frame. These are
specified by a 6-digit integer, the first 3 digits of which are
reserved for translations and the last 3 for rotations.
These are:
o = The motion is not permitted relative to the inertial
frame.
1 The motion is permitted.
2 The motion is wanted as a generalized coordinate.
Reduction of the motion of all bodies to the generalized
coordinates is carried by the program with the help of the
constraint input block.
MASSE (MASS)
This block contains the input of mass and inertial tensor in the
body-fixed coordinate system.
BINDUNG (CONSTRAINING ELEMENT)
The kinematic constraining elements restrict the motion of the
bodies. A constrained coordinate system (the coordinate system is
fixed with body "I") is applied for each constraining element
(joints, guide). The relative motions between two bodies are
specified in it (the inertial frame is body "0"). The static
position of the constraining system is defined relative to the
inertial frame by three cardan angles or by modelling one axis of
the constraining system. A 6-digit integer specifies which
relative motions are now free and which are locked.
32

These are:
o the relative motion between body I and J is locked;
1 the relative motion between body I and J is free;
2 the relative motion between body I and J is controlled.

KOPPBL (COUPLING ELEMENTS)


An input is made here to compute the applied spring and damper
forces. The elastic connections are modelled in the MBS by spring
and damper elements. These elements can be translational (TRA) or
rotational (RTA) components. In the case of rotational elements,
the directional vector must additionally be given in coordinates
of the inertial frame.
KRABPTB (FORCES)
Input of external applied forces and torques (e.g. tires and
aerodynamic forces) is carried out in this block. In addition, a
rotor with constant rotational speed can be modelled in this
block.
BBOBACBTBR (OBSERVER)
An observer is a 'measuring' element which computes the position,
velocity and/or acceleration.
These are required when comparing simUlation calculations and
measurements but also, for example, for computation of the slip
angle to calculate the tire forces.

4. Bxample

The setup of a complete NUBEMM data set is to be shown using the


mechanism as an example (see appendix in this book).
Modelling of the mechanism with NUBEMM first of all requires
knowledge of the nominal position; this can be easily determined
from the given initial condition.
The assumption, on which NUBEMM is based (all bodies shall carry
out small motions relative to a moving reference frame) and which
is used for calculation of the equations of motion, is not given
for this example. Therefore, the equations of motion are generated
relative to the inertial frame. Since the equations of motion are
linear in this case, a simUlation calculation is dispensed with.
Attention must be paid to the partially generated symbolic
interface of the equations of motion.
33

NUBEMM data-set of the mechanism

GRAVITATION
C!--------------------------------------------------------------- -!
C!gravity constant GX or GY or GZ
C!--------------------------------------------------------------- -!
!GY I+OOOO.O! !
C!--------------------------------------------------------------- -I

STEUER !
C!--------------------------------------------------------------- -!
C! control statment
C! LOG(4) = systemeigenvalue
CI LOG(10)= constraint forces and torgue
C! LOG(71)= spring preloadforces
C! OUTPUT = ACSL CSMP FORT
C!--------------------------------------------------------------- -!
C! out-! 1 ! LOG (??) T=yes F=no I
C!put ! !1---+----1----+----2----+----3----+----4----+--- 5!
C!----I----!----!1---+----6----+----7----+----8----+----9----+--- -!
IACSL! I 1
!PLOT! ! !
C!----!----!----!------------------------------------------------ -!

FUEHRUNG
C!---------------------------------------------------------------
C! description of the referenz frame
C!---------------------------------------------------------------
C! !DOF of
C!par!ref. !INDEX! DYNAM or KINEM or INERTIAL
C!nr !frame
C!---I-------!-------!-------!-------!-------!-------!-------!--- -!
! 0 !OOOOOO !INERTIAL
C!

KOERPER
C!---------------------------------------------------------------
C! central of mass and part coordinate system
C!---------------------------------------------------------------
C! ! D 0 F ! central of mass orientation of the
C!par!of the! coordinate ! parts coor. system
C!nr. I part ! xO yO! zO ! alfa ! beta ! game !
C!---!-------!-------!-------!-------!-------!-------!-------!--- -!
!1 !110002 1.92192 !-.05722! !-3.5520!
!2 !110001 !-4.4915!.279010! !-3.5528!
!3 !110001 1-18.743!20.4872! !26.0948!
14 !110001 !-30.227!12.0728! !'40.7096!
!5 1110001 1-53.245!16.6312! !27.9327!
!6 1110001 !-28.542!-10.715! !57.7470!
!7 1110001 1-59.264!-10.605! !70.5242!
!80 !OOOOOO !14.0000!72.0000! !! 1
C!---I-------!-------!-------!-------!-------I-------!-------!--- -I
34

MASSE
C!---------------------------------------------------------------
CI mass and inertia
CI---------------------------------------------------------------
Clparl mass I inertia
C!nr I m I ixx iyy I izz ! ixy I ixz I iyz
C!---I-------!-------I-------I-------I-------I------- -------1--- -!
1114.32E-51 !2.19E-31 I
12 !3.65E-61 14.41E-41 I
13 !2.37E-5! 15.25E-31 I
14 17.06E-61 15.66E-41
!5 !7.05E-5! 11.17E-21
!6 17.06E-6! 15.66E-4!
17 15.49E-51 11.91E-21
180 I I ! ! !
C!---!-------I-------I-------I-------I-------!-------!-------!--- -I

KOPPEL
C!------------------------------------------------------------------
C! spring and damper forces and torgue
CI------------------------------------------------------------------
C!ele!between! point on part 1 I point on part j I I
C!nr Ipart I I
CI I 1 I j I xi yi zi xj yj zj I
CI---I-------!-----------------------!-----------------------------1
C! !index !direction vektor pj-pi I spring!damper ! exita-! I
C! !TA IRA! xO ! yO I zO I ! I tion I I
C!---!---!---!-----------------------I-----------------------!-----!
!1 !3 !80 !9.57000!.745 I !KK!RR!
I. .. !TA! I ! ICS I. . . . . !
C!---I---!---I-------!-------I-------I-------!-------!-------!--! -!

KRAEFTE
CI-----------------------------------------------------------------1
C! external forces and torgues T-torgue F-force !
C!-----------------------------------------------------------------!
CI ! at point at part i direction vektor I
C!ele!part ! coordinate coordinate I
C!nr Inr ! ind! xi yi zi xO yO zo I
C!---!---!---!-----------------------I-------I-------!-------!-- -!
!1 !1 !T I ! 1. !K R I
CI---I---!---!-------!-------!-------!-------I-------I-------!-- -!
35

BINDUNG
CI---------------------------------------------------------------
CI constraint elements (two line input)
C!---------------------------------------------------------------
CI constr. I point on part i I pOint on part j I I
C!between part I I
CI ! i 1 j I xi yi zi I xj yj zj I
CI- -1- -1- -1- -1- -!
C!con! joint I joint system I I
C!nr IOOF I alpha I beta ! gama I
CI---I---I---I-----------------------!-----------------------!--! -!
!10 11 I 0 !-0.92371 0.00001 0.00001 I I !K !R !
! ... 1000001 I I ....... I •..•.•• !. . .... ! .. ! •• I
130 13 I 0 1-10.430!18.7450! 0.00001 ! IK !R I
! ... 1000001 1 I I ! ....... I ..•...• !. . ..•. ! .. I .. !
!50!5 1 0 1-23.0801-9.1630! 0.00001 I I IK IR I
I ..• ! 000001 I 1 1 1 ....... ! ....... I. • .•.• I .• I .• I
!70!7 I 0 I 4.4930!12.28001 0.00001 I I !K !R !
I ..• 1000001 I I 1 I ....... 1 ....... I. • ...• ! .• ! .. I
112!1 ! 2 I 6.07631 O.OOOO! 0.0000!11.5000! O.OOOO! O.OOOO!KK!RRI
! ... 1000001 I I ! .. I
154 15 I 4 116.9200!-9.1630! O.OOOO!-O.OOOO! 5.7900! O.OOOO!KK!RR!
! ... 1000001 I I I ! .. !
176 17 ! 6 I 4.4930!-27.720! 0.0000!-5.7900! O.OOOO! O.OOOO!KK!RRI
1. •• 1000001 I I I I I I..!
!23!2 I 3 1-16.500! O.OOOO! 0.0000!-10.4301-16.255! O.OOOO!KK!RRI
1. .• !000001 I I I..!
!43!4 ! 3 ! 0.0000!-14.210! 0.0000!-10.430!-16.255! O.OOOO!KK!RR!
I .... ! 000001 ! ....... ! ..•.... I. . ...• ! .. ! .. I
163 16 1 3 !14.2100!-0.0000! 0.0000!-10.430!-16.255! O.OOOO!KK!RRI
I ... ! 000001 I I ! ....... ! ....... !. . .... I .. ! .. 1
C!---!---I---!-------!-------!-------!-------!-------!-------!--! -I
BEOBACHTER
C!---------------------------------------------------------------
C! mess and observers elements (two line input)
C!---------------------------------------------------------------
C! !between! point on part i point on part j I
C! I part I coordinate coordinate I
C! ! i ! j I xi yi zi xj yj zj
C!---!---!---I-------!-------!-------I-------I-------!-------
C!obs! index Idirction from pj==>pi
C!nr !tra!rotl xO ! yO ! zO I
C!---!---!---!-------!-------!-------!-------!-------!------- --I -!
!3 !3 I 0 I I I K IK
! ... ! TP ! 1. I I ....... ! ....... ! . . . . . .. KO! T
!3 !3 I 0 I K IK
I. .. ! !RP 1. I. . . . . . . !. . . . . . . !. . . . . . . KO!T
C!--------------------------------------------------------------- --
36

NUBEMM generated equations of the mechanism

.. numeric symbolic equation of motion . . . . . . . . . . . . . . . . . . .


• .. input member ......... QE37027.NUBEMM.DATA(BUCH7) ......•

• .. spring deflection in spring direction ...................•

SL1 = 8.4630679E-05*PK1

• .. generalized spring forces

FS1 = 8.4630679E-05*FSS1

• .. external forces and torges

QFP3 = TE1

• .. sum of all generalized external forces

QFQ1 = QFP3

• .. sum of all generalized forces


• .. external and spring damper forces

QFX1 =-FS1+QFQ1

• .. generalized accelerations

AK1 = 4.3168043E+02*QFX1

• .. mess and observers equations


BPX3 =-3.9350438E-05*PK1-1.8743000E+01
BPY3 =-5.6590502E-05*PK1+2.0487200E+01
CONSTANT BPz3 =0.0
CONSTANT BPI3 =0.0
CONSTANTBPJ3 =0.0

• .. ACSL integrations statments


VK1 INTEG (AK1 O. )
PK1 = INTEG (VK1 O. )

5. Literature

/1/ Pankiewicz,E.: Anwendung rechnergestUtzter Verfahren zur


Generierung der Bewegungsgleichungen im Kraftfahrzeugbau.
Fortschr.-ber VDI reihe 12 NR. 69.
DUsseldorf: VDI-Verlag 1986.

/2/ Thomson,B.; Rathgeber, H. : Automated Systems Used for Rapid


and Flexible Generation of Vehicle Simulation Models Exem-
plified by a Verified Passenger Car and a Motorcycle Model.
Proc. 8th iAVSD ,Volume 12 1983.

/3/ Schmid,T.W.: Ein Simulationsverfahren fUr nichtlineare


gekoppelte Fahrzeuggespanne.
Dissertation TH Karlsrue, 1988.

/4/ BMW-interne-Bericht, NUBEMM-Benutzeranleitung. BMW AG,


Mi.inchen 1987.
SYM - Program Package for Computer-aided
Generation of Optimal Symbolic Models of Robot
Manipulators

Vukobratovie Miomir, Kireanski Nenad, Timfenko Aleksandar, Kireanski Manja


Laboratory for Robotics and Flexible Automation
Mihailo Pupin Institute, 11000 Beograd, Yugoslavia

Abstract
This contribution presents a new program package for the
generation of efficient manipulator kinematic and dynamic
equations in symbolic form. Since the computational efficiency
of the generated symbolic models is extremely high, the
real-time implementation of rather complicated mechanical
equations become possible even on low-cost microcomputers.
The program package SYM is concerned with serial-link
manipulators with stiff or elastic joints. The basic algorithm
belongs to the class of customized algorithms that reduce the
computational burden by taking into account the specific
characteristics of the manipulator to be modeled. The high-level
program code for computing various kinematic and dynamic
variables (elements of homogeneous transformation matrices,
Jacobian matrices, driving torques, elements of dynamic model
matrices etc.) is generated. The application of recursive
symbolic relations yields high, but not the minimal numerical
complexity. Thus, we also apply the second-step optimization of
the generated symbolic code. This step is based on the
extraction of the expressions which appear more that once in the
output code.

1. Introduction
In order to compensate for nonlinear dynamic effects during the
manipulator motion, various control laws employ robot dynamic
equations, either in the direct or in the feedback branch of the
control structure. Beside the dynamic model, the control
structure includes regulators, parameter estimators and other
subsystems. Thus the computation of the dynamic model must be
performed in a minimal possible time.

The development of the computer-oriented methods for the


generation of dynamic robot models can roughly be divided into
three stages: 1. Numeric methods [1 - 8), 2. Numeric-symbolic
38

methods [9 - 11) and 3. symbolic methods [12 - 17). This is also


the chronological order of development of the modeling
techniques. The later the model appeared, the less computational
burden it offered. Naturally, the model generation algorithms
were more and more complex.

The computational inefficiency of the numerical procedures


prevented their on-line application in robot controllers. For
example, the most efficient numeric method based on
Newton-Euler's (NE) equations requires 804 multiplications and
666 additions for a 6 joint manipulator [1).

In numeric-symbolic models the parameters are treated


numerically, while the joint coordinates, velocities and
accelerations are treated symbolically. This method reduces the
computational burden for the robots with less than 6 joints
drastically. However, for robots with more than 6 joints this
method does not yield much better results than numeric methods.

The latest - symbolic modeling techniques treat both parameters


and joint coordinates as symbolic variables. They are the most
complicated techniques since they involve algebraic operations
between symbolic expressions and the computer-aided generation
of new symbolic expressions. These techniques yield [12 17)
very low computational complexity. For example, the symbolic
model of Stanford arm involves 155 multiplications and 135
additions. For a general 6 link robot both the number of
multiplications and the number of additions does not exceed 300.
The method for generating symbolic expressions within the
program package SYM is described in Sec. 2. Although it is
several times more efficient than the numeric model described in
Ref. (1), it is still hard to compute joint torques in several
hundreds of micro seconds by the use of low-cost microcomputers.

Several papers dealing with parallel processing of robot


dynamics have appeared since 1982 [18 - 20]. In most of these
papers parallel processing of the numeric NE equations by means
of several processors is considered. The computation time was
reduced from 2.5 to 4.6 times. But, the communication between
39

processors via a common memory region usually takes a


significant percentage of the computing time. Thus, even more
than 6 processors might be necessary to compute the model in
several hundreds of ~s. The increased number of processors might
make the overall system unreliable for industrial applications.

Now the question is how can the computational time be further


reduced? There are two ways to achieve this. The first is to
employ more advanced methods for robot dynamics modeling which
offer lower computational burden, and the second is to implement
them on fast computer systems. The program package SYM is
designed to accommodate to both of these requirements. The
sophisticated optimization based on the extraction of the
expressions which appear more than once in the output code is
introduced (Sec. 3). The numerical efficiency of the generated
code is thus improved from 1.2 to 3 times.

The generated programs with the SYM are examined on several


real-time control computers. Experiments indicate that the
typical computing time on a standard 16-bit micro-computer is
5 - 20 ms, while the typical computing time on an array
processor is 50-100 ~s.

2. Symbolic recursive relations

In this section some of the recursive relations which are used


by the SYM are described. The recursive relations describe the
kinematic and dynamic behavior of an arbitrary serial-link
manipulator. The kinematic equations are based on Denavit
Hartenbergs (D-H) parameters, while the dynamic equations are
based on Newton-Euler's formalism.

The program package SYM generates the following types of models:

Homogeneous transformation matrix between the hand and base


coordinate frame
Jacobian matrix relating joint and world coordinate
derivatives
40

Inverse dynamic model for computing driving torques


Matrix of inertia
Matrix of Christofell symbols, etc.

Since SYM generates various types of robot models, we will


present one of them: Newton - Euler's formalism for obtaining
inverse dynamic robot model.

The vector form of Newton-Euler's formalism for an arbitrary


serial link manipulator with revolute joints is summarized in
Appendix. This form is not suitable for symbolic processing
because there are several types of indexed variables (vectors,
matrices, tensors), etc. Much more suitable is the scalar form
of variables and expressions. The scalar expressions are formed
strictly following the equations in Table 1. For example, the
expression for computing the angular accelerations

"" + i-1+ • i - 1 + )
+ ( q
i
w zi - 1
+ X qi Z~ _ 1

is translated into the scalar form

OMDi(i-l)l OMD(i-l)(i-l)l + ODi * OM(i-l)(i-l)2


OMDi(i-l)2 = OMD(i-l)(i-l)2 - ODi * OM(i-l)(i-l) (1 )
OMDi(i-l)3 OMD(i-l)(i-l)3 + ODDi
j •
Here, OMDijk corresponds to k-th component of the vector wi'
while ODi and ODDi correspond to ~.1 and ij.1 , respectively. Such
symbolic relations are general, i.e. they hold for any
manipulator.

The scalar expressions are built in SYM in the form of a data


file. User can also introduce his own model. For example, the
equations determining the position of end-effector with respect
to a given point along the robot arm, can be added easily.

The user creates the list of D-H parameters as well as the list
of dynamic parameters (the mass and inertia of each link) for
any particular robot. Thus, the user defines the type of each
joint (revolute or sliding), number of joints, D-H parameters
41

which are zero etc. The user also defines which elements of
inertia tensors are zero. The numerical values of parameters are
not supplied except to that parameters which values are exactly
zero or one.

3. Symbolic customizer and optimizer

The ~mbolic ~ustomizer/Qptimizer (SyCO) represents the program


which generates the customized and optimized model in the form
of a high-level language program. The customized model means the
symbolic model relevant to a particular robot structure. The
optimized model means the customized model which is additionally
optimized with respect to the number of floating-point
operations.

The input of the SyCO represents both the file composed of the
symbolic expressions and a data file relevant to a particular
robot structure described in the forgoing section. The SyCO
includes customization and optimization of the general symbolic
expressions and generates the set of computationally optimal
expressions, given a particular robot.

The symbolic model generator (Fig. 1) consists of two modules:


The first module (~mbolic Customizer SyC) customizes the
general symbolic expressions by eliminating unnecessary
computations (multiplication by 1, adding zero etc.). The
customization improves the efficiency of the obtained models
several times comparing to the most efficient numerical modeling
techniques [171. The second module (~mbolic Qptimizer - SyO) is
concerned with the mathematical optimization of the code
obtained by the application of SyC. This module additionally
reduces the number of floating point operations by 20-70 %.

3.1 Symbolic customizer

Each parameter or variable A that appear in the input file is


assigned three magnitudes: code, value, and name. Code may take
value 1, 2, and 3, where 1 indicates that A is constant, 2
that A is a simple variable equal to another already evaluated,
42

and 3 - that A is a complex variable that requires at least one


additional multiplication or addition for its evaluation. Value
contains numerical value of A if it is a constant, and name
contains the symbolic name of A. A can also be an array of
variables/parameters.

Denavit-Hartenberg parmeters
Masses and moments of inertia
T
rNewton-Eu1e r' s formalism 1
I
~mbolic fustomizer/Qptimizer - SyCO

I~mbolic -Customizer - SyC


I
I~mbolic Qptimizer - SyO
I
Fig. 1. Symbolic model generator

The input file of SyC may include different types of


expressions. The most usual form is

(2 )

where + denotes + or - sign, and [.1 denotes that the expression


in parentheses is optional. Here x_i, y_i, i = 1, .•• , k, are
parameters or variables that have already been evaluated int he
recursive algorithm, so that they all have already determined
codes, values and names. The parameters and variables on the
right-hand side of (47) are replaced by their names while
generating the program line to evaluate z, except if they are
equal to 0, ~ 1, or if the variables are simple variables (code
= 2). In that case they are replaced by their real values. Thus
the multiplications by 0, ~ 1 are eliminated as well as
unnecessary loading from one variable to another. If the
expression for z is reduced to the form with at least one
43

multiplication or addition, z becomes a complex variable and the


corresponding line is written down into the output program. The
SyC automatically eliminates the lines which are not used for
computing the output variables.

3.2 Symbolic optimizer

The output program code of the SyC represents the input for the
Symbolic optimizer SyO. The first step of the optimization is to
represent the variables of the customized models in a particular
polynomial form. Thus, SyO proceeds to the analysis of
data-dependency among recursive expressions generated by Syc.
After this analysis each variable including the output variables
is expressed in the form

L n
e S1 i
z L c1 II (cosqi) (sinqi) (2 )
1=1 i=l

where c 1 are constants which depend on robot parameters, e: i (x


E (c, 5, q, q, g}) are constant exponents which satisfy the
condition: e: i E {O, 1, 2 }, and n is the number joints [9 - Ill.
For example, the driving torque of the second joint of a
two-link manipulator can be presented as

P 2 (3 )

where c 1 = A_l*A_2*(AM_2+AMK_2), ... , c 4 = A_l*A_2*(AM_2+AMK_2)


are constants.

The polynomial (2) can be presented as

L K
Z == '\ c (z) II p (z) elk(z) (4 )
l.. 1 k
1=1 k=l

The constants c 1 ' polynomial arguments Pk and the exponents elk


depend on particular variable z, thus c l == c l (z), Pk = Pk ( z) and
elk - elk(z). Note that the polynomial (4) is more general
44

than the polynomial (2) since the arguments Pk may present any
'2
variable or constant. For example, Pk = q2 sin(q1) or Pk
A_l*A_2*(AM_2+AMK_2) may be used as polynomial arguments. The
trigonometric polynomial (4) can be presented by the use of the
the matrices

sc I c1 matrix of the constants;

sp matrix of the variables;

se [
e 11 ... e 1 K
eL ... e L K
J matrix of the exponents.
(5 )

The ordered triple S (S,


c
S,
p
S)
e
wi 11 be referenced as
polynomial matrix in the text to follow. For example, the
polynomial (3) can be presented in matrix form as

S
c
Ic 1 c 2 c 3 C4 ]T (L 4)

S
p
I COSq2 sinq2 q1 ql q2 ] (K 4)

l! ~]
1 2 0
0 0 1
S
• 0 0 0
0 0 1

Now let us denote the set of the polynomial matrices by S. It


is clear that each symbolic model variable can be represented
with an infinite number of polynomial matrices. The matrices
that represent the same variable are called equivalent
polynomial matrices. For example, the polynomial P 2 can be
presented as

P 2 =c (sinq )q2+C q +c q +c (cosq )(cosq2)q +c (cosq )( sinq 2)q


1 2121324 2 115 2 11

where c 4 = c s ' The corresponding polynomial matrix has 5 rows in


contrast to the polynomial matrix of the same polynomial (3)
which has 4 rows.
45

SyO has the possibility to minimize the number of rows in a


polynomial matrix. It is equivalent to minimizing the number of
additions of the corresponding polynomial. Furthermore,
SyO incorporates a number of routines for algebraic operations
among polynomial matrices: addition/subtraction, multiplication
etc. The algebraic formalism is based on the algebraic
operations between the polynomials of the form (4) which are
simply extended to the matrix operations.

The algebraic routines are necessary for obtaining the


polynomial matrices of the left-hand variables of the
customized expressions (output of SyC). Following the recursive
symbolic expressions the polynomial matrices of the output
variables are formed.

The next step is to reconstruct the output variable's polynomial


matrices back into the program file in the way that minimizes
its numerical complexity. More precisely, the matrix
reconstruction algorithm is the second part of SyO and it
minimizes the number of multiplications required for computation
of the output variable's polynomial matrices.

First, we slightly modify the polynomial matrix of each variable


in order to eliminate the equal constants from the matrix of
constants Sc. These constants are replaced by 1 or -1 depending
on the sign. The matrix of exponents is expanded by one colon
corresponding to the argument Pk+l equal to this constant.

Let us now designate the set of the output variable's polynomial


matrices by SMPM (from ~ymbolic ~odel ~olynomial ~atrix). After
the repetitive constant extraction, the SMPM is ready for the
reduction by monomial extraction algorithm. The main idea of
that algorithm will be explained now. SMPM defines the set of
expressions of the form (4). Each of these expressions includes
a number of multiplications which can be easily determined. Each
of these expressions can be presented as

Z-IlZ +Z
I I I

where:
46

e, e,
Il p, J 1 p, J 2 (B)
J 1 J 2

is the monomial of degree e + e + +


j 1 j 2

It is clear now that the extraction of the monomial Il reduces


the number of multiplications comparing to the initial set of
expressions. The number of multiplications is more decreased if
there are more rows in SMPM which contain Il and if d(ll) is
larger.

If we calculate the monomial Il in advance, d(ll) multiplications


in each monomial which contains u will be saved. If we denote
the number of such monomials by n(Il), we will save d(Il)*n(ll)
multiplications. This number has to be decreased by the number
of expressions where u appears, because we have to multiply the
sum of monomials divided by u with u itself, which requires one
additional multiplication for each expression. Finally,
the computation of Il itself takes d(ll) 1 multiplications.
Thus, we can easily compute the decrement of the number of
multiplications given a monomial Il. Now the optimization
algorithm is evident: monomial Il which maximizes the decrement
of the number of multiplications is determined in each step.

When the monomial Il is determined from the set of expressions


{z} , the new set {ZI' ZII} is generated, If the degree of the
extracted monomial is greater than 1, that monomial is written
into the output program file. The monomial extraction procedure
continues until there is no more monomials which can reduce the
number of multiplications. When the SMPM is reduced completely,
it degenerates to the sum of simple expressions. Then the
optimization procedure terminates and determined monomials are
written down into a program file.

It is clear that the model optimization algorithm described


above is suboptimal since each optimization step does not depend
on the previous steps, and does not reflect in the steps to
follow.
47

4. Fields of Application of the Software Package SYM

The software package SYM is designed to set up computationally


optimized robot models suitable for real-time application. The
generated models are coded in "c" and/or FORTRAN language. SYM
runs under VAX/VMS operating system (till 12 d.o.f.), MS-DOS
(till 6 d.o.f.). The uVAX/ULTRIX operating system version is
currently under development. The fields of application are

- robot dynamics and simulation


- robot control (kinematics and dynamic control on monoproces-
sor, multi-processor and array processor
architecture
- biomechanics (control and simulation)
- serial-link satellites and machines (control and simulation)

5. Program package features - short description

In this chapter we will briefly describe the structure of SYM.


It is organized as a menu-oriented dialogue with
self-explanatory commands and an on-line HELP facility. Also,
there is a screen-oriented input of the Denavit-Hartenberg
manipulator parameters coupled with a 3D graphical presentation
of the kinematic scheme. It makes SYM user-friendly in a sense
that it gives the user opportunity to work with it without a
manual or any introductory instructions.

SYM generates following types of manipulator models:

- driving torques
- Coriolis + centrifugal force vector
- inertia matrix
- gravitational force vector
- Coriolis + centrifugal + gravitational force vector
- transformation matrix between base and end-effector
coordinate frames
Jacobian matrix which relates joint and world
48

coordinate's derivatives
- joint position vectors

Also, there is a set of various transformations of the generated


models:

- model rearrangement for the computation on an array


processor with several parallel multipliers and adders
- additional optimization method that decreases the numerical
burden up to two times
model differentiation by an arbitrary parameter or
variable, i.e. generation of the sensitivity and linearized
models
- time differentiation
- simultaneous optimization of several models

Also, a part of SYM is a preprocessor which converts input


equations into an internal form which enables symbolic model
generation for a specified manipulator. It means that user has
to define the equations which relates the input variables and
parameters with desired output, and to pose them in the way
appropriate for SYM's preprocessor. Then, all the job is done
automatically.

Now we can summarize the complete algorithm of symbolic model


generation:

1. Input of the model equations


2. Input equations transformation by SYM preprocessor
3. Input of the manipulator parameters
4. Model generation by SyC algorithm
5. (optionally) Model transformations: differentiation
by parameter, variable or time; model combination
according to the rules of model algebra
6. (optionally) Model optimization by Syo algorithm
7. (optionally) Model rearrangement due to the
computation on an array-processor
49

6. Example

For the second test example ("robot") defined in this handbook,


the following models are generated: inverse dynamics
(computation of joint torques given joint coordinates,
velocities and accelerations), inertia matrix, Jacobian and
matrices of transformation between the joint and world
coordinates. The kinematic and dynamic parameters of the "robot"
are given in Table 1. The computational efficiency (number of
multiplications and additions / subtractions) is given in Table
2. We see that the computation of driving torques/forces
requires only 50 multiplications and 25 additions/subtractions.
According to the present literature in computational robot
dynamics this seems to be the most efficient code obtained until
now. The output of the Symbolic Optimizer (SyO) of the inverse
dynamic model is listed in Table 3. The generated inertia matrix
program code, i.e. the output of Symbolic Customizer and
Optimizer is listed in Tables 4 and 5. The numerical efficiency
for several other well-known 6-link robots is illustrated in
Table 6.

By the use of the generated inertia matrix model and the model
for computing joint torques/forces that originate from Coriolis,
centrifugal and gravity forces, we obtained the simulation
results for the second test example defined in this handbook.
The robot joint coordinates evolution (Zl vertical sliding,
GAl - rotation about vertical axis, and Y2 - horizontal sliding)
during 2 seconds are presented in Fig. 2 to 4.

The software package SYM is supported by 3D graphics (Fig. 5 ).


Given the joint coordinates and a view angle, we obtain the
graphical presentation of the robot.
50

Table 1. Denavit-Hartenberg's kinematic parameters (a,~, a, d),


position vectors of links center of mass in local coordinates
(Rx, Ry, Rz), and the elements of inertia tensors (Jxx, ... ,Jzz)
of the "robot"

Trans. Rot. Trans. Rot. Rot.


Parameter
a [m] 0 0 0 0 0.05
a [rad] 0 -7T/2 0 7T/2 0
a [rad] 7T/2 q2 0 q4 q5
d [m] ql 0 q3 0 0
m [kg] 0 250 150 0 100
Rx [ m] 0 0 0 0 0
Ry 1m] 0 0 0 0 0
Rz [ m] 0 0 -0.5 0 0
Jxx [kg m2 ] 0 90 13 0 1
Jxy [kg m2 ] 0 0 0 0 0
Jxz [kg m2 ] 0 0 0 0 0
Jyy [kg m2 ] 0 90 13 0 4.3
Jyz [kg m2 ] 0 0 0 0 0
Jzz [kg m2 ] 0 10 0.75 0 4

Table 2. Number of multiplications (*) and additions/subtractions


(*/-) in computer-generated code of various types of robot models
(Sye - Symbolic model eustomizer, SyO - Symbolic model Optimizer)

Model Sye SyO


* +/- * +/-
Inverse dynamics 71 52 50 25
Inertia matrix 61 28 23 11
Jacobian matrix 19 5 17 4
Transformation matrix 19 7 18 9
51

Table 3. Inverse dynamic model of the "robot" obtained as the


output of the Symbolic Optimizer (SyO)

cntd.
ROBOT DU OPT: OFF-LINE program CONS3 AM5+AM3+AM2
SUBROUTINE ROBOT DU OPT$OFF CONS4 AM5*GO+AM3*GO+AM2*GO
INCLUDE 'M$SYM:ROBOT DUOPT.CMM'CONS5 .. AJYY5+DJ52-AJZZ5-A5*AM5*A5
RRR41- RR42*RR42 - CONS6 -UNITY-DJ51
BJXX4= AJXX4+AM4*RRR41 CONS7 -UNITY+AJYY5+A5*AM5*A5
RRR43= RR42*RR42 CONS8 -UNITY-DJ51+AJYY5-DJ52+A5*AM5*2*A5
BJZZ4= AJZZ4+AM4*RRR43 CONS9 = AJYY5+A5*AM5*A5
UNITY= 1. CONS10 .. -AJYY5+DJ52-A5*AM5*2*A5
DJ41= BJZZ4-AJYY4 CONS11 AJZZ5+A5*AM5*A5
DJ43= AJYY4-BJXX4 CONS12 BJYY3+AJYY2
DJ5l= AJZz5-UNITY CONS13 .. AM5+AM3
DJ52= AJXX5-AJZZ5 CONS14 AMS33+AMS33
DJ53= UNITY-AJXx5 CONS15 -AMS33
AMS42= AM4*RR42 CONS16 DJ51
CONS1 AM5*2*A5 CONS17 -DJ52+A5*AM5*A5
CONS2 .. AM5*A5 CONS18 -A5*AM5*GO
END

cntd.
ROBOT DU OPT: ON-LINE program VAR35 -CONSl1+VAR2l
SUBROUTINE ROBOT DU OPT$ON VAR36 = VAR20+VAR22
INCLUDE 'M$SYM:ROBOT DUOPT.CMM'VAR37 .. VAR3+VAR4
C4=COS(Q4) - VAR38 - -VAR8+CONS15
S4-SIN(Q4) VAR39 .. S4*QD2
C5=COS(Q5) VAR40 C5*VAR39
S5-SIN(Q5) VAR41 .. VAR36*VAR40
VAR1 .. -QD5*CONSlO VAR42 VAR27*QD2
VAR2 - QDD4*CONS9 VAR43 .. VAR28*QDD2
VAR3 - Q3*CONS2 VAR44 .. VAR43*C4
VAR4 CONS7*S5 VAR45 VAR30*S4
VAR5 - S5*C4 VAR46 .. VAR45*S5
VAR6 .. CONS17*C4 VAR47 VAR31*Q3
VAR7 - S5*QD2 VAR48 - VAR32*C4
VAR8 CONS13*Q3 VAR49 VAR33*C5
VAR9 .. QDD1*CONS2 VAR50 .. VAR34*QD2
VARlO QD3*CONS1 VAR51 = VAR50*QD3
VAR11 VAR5*VARlO VAR52 .. VAR35*VAR,39
VAR12 - S5*VAR3 VAR53 .. VAR52*QD4
VARl3 = QDD1*CONS3 VAR54 .. VAR41*CONS7
VARl4 = CONS2*C5 VAR55 VAR37*S4
VARl5 .. VAR14*QDD3 VAR56 = VAR55*QDD2
VARl6 .. VAR6*QD2 VAR57 = VAR38*QD2
VAR17 - -C5*QD2 VAR58 VAR57*QD2
VAR18 VAR17*VAR3 VAR59 VAR24*VAR39
VAR19 '"' Q3*CONS3 VAR60 VAR42+VAR44
VAR20 -S4*VAR7 VAR61 VAR60+VAR46
VAR21 .. VAR4*S5 VAR62 VAR61+VAR15
VAR22 - -QD4*C5 VAR63 .. VAR62+VAR53
VAR23 - CONS16*VAR5 VAR64 .. VAR63+VAR54
VAR24 .. VAR23*VAR7 VAR65 .. VAR25+VAR48
VAR25 '"' VAR2*C5 VAR66 '"' VAR65+VAR56
VAR26 - CONSl3*QDD3 VAR67 .. VAR47+CONSl2
VAR27 - VAR11+VAR18 VAR68 .. VAR26+VAR58
52

Table 3. Continued.
VAR28 VAR12+CONSll VAR69 VARI0+VAR49
VAR29 VAR13+CONS4 VAR70 VAR66*C5
VAR30 -CONS18+VAR9 VAR71 VAR67*QDD2
VAR3l CONS14+VAR8 VAR72 VAR69*VAR40
VAR32 CONS18-VAR9 VAR73 VAR59+VAR70
VAR33 VAR16+VARl VAR74 VAR73+VAR72
VAR34 = CONS14+VAR19 VAR75 = VAR51+VAR71
END

Table 4. Generated inertia matrix model after symbolic


custimization (SyC)
cntd.
SANJA HU : OFF-LINE program AFC312= AFA312-AMS33
SUBROUTINE SANJA HU$OFF AFA512= AM5*VD5512
INCLUDE 'M$SYM:SANJA HU.CMM' AFA522= AM5*VD5522
RRR32= RR33*RR33 - AFA532= AM5*VD5532
BJYY3= AJYY3+AM3*RRR32 ANC522= OMD5522*AJYY5
AMS33= AM3*RR33 ANC532= C4*AJZZ5
AFA525= AM5*A5 AFF5412= C5*AFA512-S5*AFA522
RF535= A5*AFA525 AFF5422= S5*AFA512+C5*AFA522
ANN5535= AJZZ5+RF535 AFF4312= C4*AFF5412+S4*AFA532
H43= 0.0 AFF3312= AFF4312+AFC312
H34= 0.0 AMSV322=-AMS33*Q3
H54= 0.0 RF322= Q3*AFF3312
H45= 0.0 RF522=-A5*AFA532
H55=ANN5535 RF532= A5*AFA522
END ANN5522= ANC522+RF522
ANN5532= ANC532+RF532
SANJA HU : ON-LINE program ANN5412= C5*OMD5512-S5*ANN5522
SUB"ROUTINE SANJA_HU$ON ANN5422= S5*OMD5512+C5*ANN5522
INCLUDE 'M$SYM:SANJA HU.CMM' ANN4322= S4*ANN5412-C4*ANN5532
IF (F$_l) THEN ANN3322= ANN4322-BJYY3+RF322+AMSV322
ANN2222= ANN3322-AJYY2
Min frequency AFA513= AM5*S5
C4=COS(Q4) AFA523= AM5*C5
S4=SIN(Q4) AFF5423= S5*AFA513+C5*AFA523
C5=COS(Q5) AFF3333= AFF5423+AM3
S5=SIN(Q5) RF533= A5*AFA523
VD5511=-C5*S4 UR534=-C5*A5
VD5521= S5*S4 AFA534= AM5*UR534
AFA511= AM5*VD5511 ANC524= C5*AJYY5
AFA521= AM5*VD5521 RF524=-A5*AFA534
AFA531= AM5*C4 ANN5524= ANC524+RF524
AFF5411= C5*AFA511-S5*AFA521 ANN5424= S5*S5+C5*ANN5524
AFF5421= S5*AFA511+C5*AFA521 Hll=-AFF2221
AFF4311= C4*AFF5411+S4*AFA531 H21=-ANN3321
AFF4321= S4*AFF5411-C4*AFA531 H3l= AFF5421
AFF3321= AFF4321-AM3 H41= ANN5421
AFF2221= AFF3321-AM2 H51= RF531
RF321= Q3*AFF4311 H12=-ANN3321
RF521=-A5*AFA531 H22=-ANN2222
RF531- A5*AFA521 H32= AFF5422
ANN5411--S5*RF521 H42= ANN5422
ANN5421- C5*RF521 H52= ANN5532
ANN4321- S4*ANN5411-C4*RF531 H13 .. AFF5421
53

Table 4. Continued.
ANN3321= ANN4321+RF321 H23= AFF5422
OMD5512=-C5*S4 H33= AFF3333
OMD5522= S5*S4 H53= RF533
VD4412=-C4*Q3 H14= ANN5421
VD4432=-S4*Q3 H24= ANN5422
UR522= C4*A5 H44= ANN5424
UR532=-OMD5522*A5 H15= RF531
VD5512= C5*VD4412 H25= ANN5532
VD5522= UR522-S5*VD4412 H35= RF533
VD5532= UR532+VD4432 END IF
AFA312=-AM3*Q3 END

Table 5. Generated inertia matrix model of the "robot" after


symbolic optimization (SyO)
cntd.
ROBOT HU OPT : OFF-LINE program H45 .. 0.0
SUBROUTINE ROBOT HU OPT$OFF H55=ANN5535
INCLUDE 'M$SYM:ROBOT HUOPT.CMM' CONS1 AM5+AM3+AM2
RRR32= RR33*RR33 - CONS2 -A5*AM5
BJYY3= AJYY3+AM3*RRR32 CONS3 AJYY5+A5*AM5*A5
AMS33= AM3*RR33 CONS4 .. A5*AM5+AM5*A5
AFA525= AM5*A5 CONS5 = AJzz5+A5*AM5*A5
RF535= A5*AFA525 CONS6 BJYY3+AJYY2
ANN5535= AJZZ5+RF535 CONS7 AM5+AM3
H43- 0.0 CONS8 AMS33+AMS33
H34= 0.0 CONS9 -1+AJYY5+A5*AM5*A5
H54= 0.0 END

cntd.
ROBOT HU OPT : ON-LINE program VAR19 VAR13+CONS6
SUBROUTINE ROBOT HU OPT$ON VAR20 -VAR11+CONS5
INCLUDE 'M$SYM:ROBOT HUOPT.CMM' VAR21 .. VAR7-VAR10
C4 m COS(Q4) - VAR22 CONS5-VAR11
S4-SIN(Q4) VAR23 - VAR7-VAR10
C5-COS(Q5) VAR24 - VAR15+VAR6
S5 .. SIN(Q5) VAR25 S4*C5
VAR1 C5*CONS2 VAR26 .. VAR16*S4
VAR2 C4*VAR1 VAR27 .. VAR26*S4
VAR3 .. C4*C4 VAR28 .. VAR18*Q3
VAR4 - S5*CONS2 VAR29 .. VAR20*C4
VAR5 .. C5*C5 VAR30 .. VAR21*VAR25
VAR6 - S5*S5 VAR31 VAR22*C4
VAR7 - S5*CONS9 VAR32 .. VAR23*VAR25
VAR8 - CONS4*S5 VAR33 = VAR27+VAR28
VAR9 - S4*VAR4 VAR34 .. VAR33+VAR19
VAR10 - Q3*CONS2 VAR35 .. -VAR9
VARll - Q3*VAR4 VAR36 -VAR2
VAR12 - CONS3*VAR6 VAR37 -VAR2
VAR13 .. VAR3*CONS5 VAR38 .. -VAR1
VAR14 - Q3*CONS7 VAR39 .. VAR2
VAR15 - VAR5*CONS3 VAR40 - -VAR9
VAR16 - VAR5+VAR12 VAR41 .. -VAR1
VAR17 - VAR8+VAR14 END
VAR18 - VAR17+CONS8
54

Table 6. Computational complexity of the generated program


codes for several 6-link manipulators (SyC - Customized
model, SyO - Optimized model)

Model Inverse dynamics Inertia matrix


Robot SyC SyO SyC SyO

SCARA * 121 97 169 88


+ 98 61 110 77
STANFORD * 178 136 230 89
+ 142 112 147 71
PUMA * 192 152 273 71
+ 150 108 175 49

Zl [m]
4.5

4.0

3.5

3.0

2.5

0 0.40 0.80 1.20 1.60 2.00


t[s]
Fig. 2. Vertical sliding motion

GAl [rad]
-0.53

-0.58

-0.63

-0.68

-0.73

0 0.40 0.80 1.20 1.60 2.00


t[s]
Fig. 3. Rotation about vertical axis
55

Y1 [Oll
4.8

4.0

3.2

2.4

1.6

0 0.40 0.80 1. 20 1.60 2.00


t[s]

Fig. 4. Horizontal sliding

Fig. 5. Graphical presentation of the example "robot"


in a configuration during motion
56

References

(1) Luh J.Y.S.; Walker M.W.; Paul R.P.C~: On-line Computational


Scheme for Mechanical Manipulators", AS ME J. of Dyn. Sys.
Meas. and Cont., 102, 69-76, 1980.

(2) Vukobratovic M.; stepanenko Y.: Mathematical Models of


General Anthropomorphic Systems, Math. Biosci., 17,
191-242, 1973.

(3) stepanenko Y.: Dynamics of Spatial Mechanisms (in Russian),


Mathematical Institute, Belgrade, 1974.

(4) Stepanenko Y.; Vukobratovic M.: Dynamics of Articulated


Open-Chain Active Mechanisms, Math. Biosci., 28, No. 1/2,
1976.

(5) Paul P.R.: Robot Manipulators: Mathematics, Programming,


and Control (MIT Press, Cambridge Mass., 1981).

(6) Vukobratovic M.; Potkonjak V.: Contribution to Computer


Construction of Active Chain Models via Lagrangian Form,
Trans. AS ME J. Appl. Mechan., 46, No.1, 1979.

(7) Hollerbach M.J.: A Recursive Lagrangian Formulation of


Manipulator Dynamics and a comparative Study of Dynamics
formulation Complexity", IEEE Trans. on SMC, SMC-10, No. 11,
730-740, 1980.

[8) Kane T.R.; Levison D.L.: The Use of Kane's Dynamic


Equations in Robotics, Int. J. Robotics Research 2, No.3,
3-21, 1983.

[9) Kircanski N.; Vtikobratovic M.: Computer Aided Procedure of


forming Robot Motion Equations in Analytical Form, Proc. VI
IFToMM Congress, New Delhi, 1983.

[10) vukobratovic M.; Kircanski N.: Computer Assisted Generation


of Robot Dynamic Models in Analytical Form, Acta Appl.
Math., Int. J. Appl. Math. and Math. Appl., 2, No.2, 1984.

[11) Vukobratovic M.; Kircanski N.: Real-Time Dynamics of


Manipulation Robots, Series: Scientific Fundamentals of
Robotics, 4, Springer-Verlag, Berlin, 1985.

[12) Aldon M.J.; Legois A.: Computational Aspects in Robot


57

Dynamics Modeling, Proc. of Advanced Software in Robotics


(Elsvier Science publishers B.V., Liege, Belgium), 3-14,
1983.

[13] Neuman P.Ch.i Murray J.J.: Computational Robot Dynamics:


Foundations and Applications, J. Robotic Systems 2, No.4,
425-452, 1985.

[14] Renaud M.: An Efficient Iterative Analytical Procedure for


Obtaining a Robot Manipulator Dynamic Model, Proc. 1st Int.
Symp. of Robotics Research, Bretton Woods, New Hampshire,
USA, 1983.

[15] Khosla P.K.i Neuman P.Ch.: Computational Requirements of


Customized Newton-Euler Algorithms, J. Robotic Syst. 2(3),
309-327, 1985.

[16] Khalil W.i Kleinfinger J.F.i Gautier M.: Reducing the


Computational Burden of the Dynamic Models of Robots, Proc.
IEEE Int. Conf. on Robotics and Automation, San Francisco,
525-532, 1986.

[17] Kircanski M.i Vukobratovic M.i Kircanski N.i Timcenko A.: A


New Program package for the Generation of Efficient
Manipulator Kinematic and Dynamic Equations in Symbolic
Form, Robotica, Vol. 6, 311-318, 1988.

[18] Luh J.Y.S.; Lin C.S.: Scheduling of Parallel Computation


for a computer-Controlled Mechanical Manipulator, IEEE
Trans. on Systems, Man, and Cyber., SMC-12, No.2, 1982.

[19] Kasahara H.; Narita S.: Practical Multiprocessor Scheduling


Algorithms for Efficient Parallel Processing, IEEE Trans.
on Computers, C-33, No. 11, 1984.

[20] Kircanski N.; Timcenko A.; Jovanovic z.; Vukobratovic M.,


Kircanski M.; Milunov R.: Computation of Customized
Symbolic Robot Models on Peripheral Array Processors, Proc.
IEEE Int. Conf. on Robotics and Autom., Scottsdale, Arizona,
1988.
58

Appendix: Newton-Euler's formalism


Notation:
I link inertia tensor about its center of mass
m link mass
s position vector of the center of mass in local coordinates
z unit vector of a joint axes
r position vector of a jOint with respect to
the previous one
q joint coordinate
a,a,d Denavit-Hartenberg's parameters
w/v angular/linear velocity of a link
F inertial and gravitational force of a link acting
at the center of mass
f force exerted on a link by the previous link
N inertial moment of a link acting at the center of mass
n moment exerted on a link by the previous one
p driving torque in a joint
Parameters initialization:
iJ
xx = i I xx + mi (i Si Y2 + is i : )
iJ
xy
iI
is.
1y xy - m.1 is.1 X
iJ iJ i
xz -
iI m (i S is i I is
mi s i x i.
yy + i
2 )
ix +
2
yy i. x.
iJ i
yz - i i Y i.
iI 2 + is 2)
+ mi (i Si x J iI m is is
•• •• iy yz
iJ
1
.. iJ
z z
..
- i J yy i J 1 i J z z - i J yy iJ
1
iJ iJ
•• - yy
i+
zi .. [ 0 0 l]T , if
i [ a.1 disina d COSa ]T,
i i
i+
Si = const.
Recursive Newton-Euler's algorithm:
For i .. 1, ... , n:

sinqi Sinai]
-cosqi sinai
cos i

i-1+W
i

i i• iW i i•
- (i Wi 32 + iw i 2) iw
i 1 Wi 2 Wi3 Wi 3 + W
.. i2
2 il
iW iW • i•
- (i Wi 23 + iwi l ) iw iW
2
Ui i Wi 1 i 2 + i3 w
i2 i3 i1
iw i WI. J iW • iW i W + i W • _( i W 2 + iW 2
i 1 I. 2 I. 2 I. 3 i 1 i 2 i1 )
1.+
Vi - I. -1 AT i -1 ~
i
U it
i-1 + i i
59

i+
iF m v + U
i

For i = n,n-l, ... ,l


i1 iF i -1 {
+
i +1 i i

i J i 2_ i W 2
W +iw W i J + U i J _iU i J +(iw
i 1 x x i 2 i 3 1 21 xz 31 xy i2 13
iN i
W
i J +iW i
W i J +iU i J _ U i J +(iw 2_ i w 2
5 i i 2 yy i 3 i 1 32 xy 12 yz i3 i1
i J i 2_ i W 2
W +iW W i J +iU i J _iU i J +(iW
i 3 z z i 1 i 2 13 yz 23 xz i1 i2

i + i+
n ij!i +iN" +1; Xi; +mi~ X V
i +lsi i

i - 1 + i-1+
p n z
i i - 1
CAMS - A Graphical Interactive System for
Computer Simulation and Design of Multibody
Systems
L.Lilov, B.Bekjarov, M.Lorer, University of Sofia, Bulgaria

Abstract
CAMS is an integrated graphical interactive software system for symbolical
modelling, numerical evaluation and design of technical devices which can
be considered as multibody systems. No constraints are imposed on the type
of the hinges or on the topological structure of the system, i.e. the
system may contain an arbitrary number of bodies interconnected by hinges
in a kinematic chain with an arbitrary number of closed loops. A 3D
geometric modelling system DESCARTES and a system MOVIES for Movement
simulation and animation are incorporated in the CAMS software system.
CAMS could be applied both - to the analysis of the already existing
technical systems for full utilization of their resources in a specific
technological process, and on the stage of the preliminary design - for
synthesis of systems with optimal characteristics. CAMS is created in
several versions for IBM PC compatible, COMPAQ, PDP 11-34, PERQ II etc.
Here the theoretical foundations of CAMS software are described and a brief
specification of input data, main functions, output data and post
processing posibilities are presented.

1.Structure of multibody systems


Any finite number of (n+1) rigid bodies, interconnected in some fashion by
m hignes (m~n), could be considered as a multibody system. The most typical
examples of multibody systems in mechanical engineering and biomechanics
are industrial robots, manipulation systems, mechanisms, vehicles, satelli-
tes, measurement devices, artificial limbs, exoskeletons etc. The same
symbolism as in papers [1-3) will be used to describe the system struc-
ture. The bodies and the hinges are numbered from 0 to n and from 1 to m,
respectively. Usually one body of the system plays a special role and its
motion is prescribed or known in advance. This body always gets number o.
The remaining numeration is arbitrary [1). The considered mechanical system
can be represented by a graph r whose vertices s. (i=0,1, ..• ,n) and edges
7
u (a=1, ... ,m) symbolize the bodies and the hinges respectively. This
a
modelling comprises a description and analysis of both the interactions
between the separate bodies and the structure of the kinematic constraints.
If for every two contiguous bodies a reference body for the motion of the
neighbouring body is chosen, then a pair of integer functions i+(a) and
62

i-Cal is defined. These functions give the indices of the two bodies
coupled by the hinge number a, with i+(a) denoting the reference body. The
graph r can be oriented assigning as a direction of the edge number a the
direction from the vertex i+(a) to the vertex i-(a). The oriented edges are
further called arcs. As it follows from the graph theory, every cyclic
graph (m > n) can be transformed into a graph r with a tree structure by
removing just ~ = m-n appropriately selected edges from the graph. We
assume without loss of generality that the removed edges are u 1 ' .•.
n+
u
m
.The structure of r can be represented by the incidence matrix !=(8.)
7a
where 8. = 1 if i=i+(a), 8. = -1 if i=i-(a) and 8. = 0 otherwise (i=0,1,
7a 7a 7a
.. ,n; a=1, ... ,m). The matrix! can be written in the form! = (~~ , 8T )T,
where 8 = (5 ) (a=1, ... ,m), 5 = (8. ) (i=1, ..• ,n; a=1, ... ,m).
-0 Oa - 7a
A sequence of arcs u , •.. , u is said to be a path between two vertices
a, ak
s. and s . when it is possible to proceed from the vertex s . to the vertex
7 J 7
s . along the sequence, so that no arc is passed twice. The paths connecting
J
the vertex So with the remaining vertices play an important role. They are
used for determining the transformation matrix from the coordinate system
attached to the given body to the coordinate system in the body 0 [3). The
choice of the path from So to Sj further on denoted by (so' Sj) and called
effective path is left entirely to the user. The effective path (so ,si )
must be chosen in such a way, so that it has to be the best path in some
sence, for inctance to pass the least number of arcs between So and Sj or
the number of the generalized coordinates in the hinges belonging to the
path to be the minimal and so on. The matrix of the effective pats ~ =
(4 .) (a=1, ... ,m; i=1, ... ,n) is introduced with elements ~ . = 1 if u E
a7 a7 a
(s , s.) and is directed toward So ' 4 . = -1 if u E (s a ' s . ) and is d i -
a 7 87 a 7
rected from So and 4 . = 0 otherwise [3]. The following important
87
relationship exists between the incidence matrix !, the effective paths
matrix 4 and the well known in the graph theory fundamental loops matrix
(cyclomatic matrix) !:

4 T I T = (-1 , E
- - -n-n
aT = -(n+1)xn
--
0 '" (1),(2)

Here and further on E will be the unit n by n matrix, will be a column


-n -n
matrix with all elements 1 and QkKj will be a scalar k by j matrix, all
elements being zero.
63

2. Kinematics of mu1tibody systems


The set of all positions (linear and angular) of a given rigid free body
with respect to a fixed coordinate system can be considered as a six - di-
mensional manifold 1n , defined as a Cartesian product R3 x ~ of the three -
dimensional Euclidean space R3 and the manifold ~ of all 3x3 orthogonal
matrices.In a similar way a set of all possible rigid body velocity distri-
butions can be considered as a six-dimensional Euclidean space 1n, = R3 X R3.
If the imposed in hinge number a (a=l, ... ,m) constraints (sc1eronomic or
rheonomic) are ho1onomic, then the manifold of all possible positions of
the body i-(a) with respect to the body i+(a) is a submanifo1d 9l
a
of 1n.
This submanifo1d determines fully the submanifo1d of velocity distribu-
tions in 1n , ' In the case when some of the constraints are nonho10nomic, the
manifold of the body 1-(a) states is a submanifo1d of 1R x 1R the component
"
in 1R, being determined by the constraints imposed on the velocities follow-
ing both from the holonomic and nonholonomic constraints. Let q = (q ,.
-a a1
•. , qan )T be a certain parametrization of 9l a . Suitable reference frames
a
c.1a e(la.!
-
i=i±(a), are attached to the contiguous bodies for determining

Fig.l. Vectors describing the kinematics of contiguous bodies.


64

the relative motion in a hinge number a (Fig.1). For instance, in the case
of a spherical or revolute hinge the choice C ,T ( ) = C ,- () ;s preferable.
1 a a 188
The attitude of an arbitrary body i relative to the world space ~n~ is
...
located with the radius vector R, of a point C , and with an orthonormal
. 7 1
-Hi. ) -d to.)
triad ~(L) (i=0,1, ... ,n). The reference frames C .e and C i:' ' i=
7-
T
i-(a) are denoted by [i) and [i,a] respectively.The angular position of
[i,a] relative to [i) is determined by the constant matrix G, • The points
-78
C, are called hinge points,their radius vectors in [i) are denoted by
-> 7a +
c. i=i-(a). The relative position of the contiguous bodies in the hinge
7a
number a is determined both by the transformation matrix -8
G =
j=iT(a) k=i-(a) between the frames [iT(a),a] and [;-(a),a] and by the hin-
ge vector ~ = ~k (Fig.1). The quantities ~ and G are functions of t
a Ja a -> ->T _f. _.-8 ->T ~
q . Further on _.the formulas z a = -a
and ~a t -ax + t 8 0' 12 8 = -8 x + p8 0 take
p -a
place, where
a 8
z
and 12 are respectively the relative translation and
angular velocities of the frame [i (a),a] relative to the frame [i+(a),a]
and x are independant nonholonomic variables (quasivelocities). In
-8
particular x might be q when only holonomic constraints are imposed. In
-8 -8
the case of nonholonomic constraints the inequality dim x < dim q holds.
. . -8-8
In any case the relationships -q8 = -q8 (t, -
q 8, -x)
8
are known (kinematic
equations).
All Calculations are executed in the coordinate system [0]. The transfor-
. matr1x
mat10n . ~ (i.) = -.(Q)
~ . -'(i.IT(.
~ 1=1, ... ,n ) "
glv1ng t he or1entat10n
. . 0f the

frame [i) relative to the frame [0] is specified by means of both the
transformation matrix B = GT.T() G G .-( ) between the contiguous frames
-8 a - 7 8 8 -8 - 7
.+
[i (a)] and [1 (a)] and the matrix of the effective paths ~ . The matrices
A(i.) have optimal for the user structure because of the extremal
properties of the effective paths.
··
The quan t 1t1es S = (S1T , ..• , Sm
T )T ,~= (~1T T )T deSCrl'b 1ng
, ... , ~m ' t he k'1-
nematics of the relative motions are connected with the quantities des-
-> .!.,
cribing the kinematics of the bodies in the world space O~n~ such as R "R .,
1 1
A(i.) , W.7 (the absuolute angular velocity of the body i) and so on by means
of the structure matrices! and ~, using (1). In particular for R =
... , ~)T
n '
W = (w 1, ••• , Wn)T the formulas
65

(3)
.... T -T
~ = -~ diag E ~ +

~ -+* T ~
take place,whereC=(S. c.),C=(S. z)(i=i, ... ,n;a= i, ... ,m)
- 7a 7a 7a a
+
(S ia = 1 if i=i+(a) and S~ = 0 otherwise). The quasi-diagonal matrix along
7a
whose principal diagonal the elements A , ... , A of the quantity A are
1 n
located, is denoted by the symbol diag ~. These elements can be scalars,
vectors, matrices, tensors, etc. In relations (3) only terms depending on ~

are given. In a similar way the quantities ~, ~ are being represented.


In the case when the multibody system includes closed loops the constraint
equations are found out by means of the fundamental loops matrix ~ using
(2).For instance the once differentiated constraint equations have the form

(4)

where i and EO are certain expressions not depending on ~


3. Geometric and kinematic characteristics of the functional capabilities
of multibody systems
Let (sO,si) be an arbitrary effective path.It will be considered as a sing-
le branch system and for simplicity let g in this section be the column
matrix of all generalized coordinates in the hinges belonging to the path.
The body i is called end-effector. The constraints imposed on the varia-
tions of g and g are reduced to the conditions g E Q , g E Q1' In the
case when the multibody system is a single loop system, as it is usually
with industrial robots, then Q and Q1 are parallelepipeds.

Let m be an arbitrary element of the manifold m and m1 - an arbitrary


element of the manifold 'JIlt" We will denote with a = (m,m 1) an arbitrary
element of the manifold 111 x m1 of the end effector's states. The ellement a
can be considered as an is-dimensional column matrix the components of
which are determined by the coordinates R . of C. in the reference frame
- 7 7
[0], by the elements of the transformation matrix A(l) and by the linear ~
66

and angular ~
.
velocities of the end effector relative to [0]. These
quantities are expressed as functions of g and g • i.e. a mapping g :(QxQ1)
-> 'Jll x 'JIl 1 • Q = g (g.g) is defined.
Let 6 be an 18-dimensional column matrix with elements having values zero
or unity only. The matrix 6 is denoted by the symbol 6=6 . . (i 1<i 2<
- - 11·····1 k
<.•. < i k) as well. where i j are the numbers of the nonzero elements of 6.
Let us introduce the matrix ~(£) = diag £. Then in the manifold 'Jll x 'JIl 1 an
equivalence relation is introduced in the following way. The element Q 1 E m
x m1 is assumed to be equivalent to the element Q2 E m x m1 and it is
denoted by Qlt,02 then and only then when ~(£)Q1 = ~(£)Q2 applies [4]. For
an arbitrary subset 0 of the manifold 'JIl x 'JIl 1 the quotient set obtained
after the factorization of 0 with respect to the equivalence relation E
will be denoted by O/E6 • In this terms the working space of the end
effector consisting of that and only that points of the reference space [0]
which are reachable by the origin C. of [i] when varying arbitrarily g E Q
1
can be represented in the form ZR = g(QxQ 1 )/E6 In a simi lar way
1,2.3
the sets ZA = g(QxQ 1)/E6 • Zv = g(QxQ 1)/E6 and ZI.:.> = g (QxQ 1)
4, •.. ,12 13,14.15
lEo can be called angular working space. space of the reachable
16,17.18

translation velocities and space of the reachble angular velocities of the


end effector respectively.
One of best known qualitative characteristics of mu1tibody systems is the
so called service coefficient introduced in [5]. Let the point C. be fixed
1
in a certain point H of the working space and let all admissible positions
-o(i.l --
of the unit vector e by the every possible q E Q which retain COC, be
- 7
considered. The end of e(i.l sweeps a certain region on the unit sphere. The
ratio of the area of this region to the area of the unit sphere is namely
the service coefficient in the point H. It characterizes the capability of
the mu1tibody system for positioning an axis. fixed at the end effector in a
certain point of the working space with different orientations.
It turns out that the service coefficient can be considered as a rather
particular case of the following general approach. Let B be an arbitrary
.
subset of the phase space (q. q) and 0 - an arbitrary limited subset of the
manifold 'Jll x 'JIl 1" The set S(O.£.B) = {g[Bn(QxQ 1)]nO}/E6 1s used as a gene-
67

rator of multibody system functional capacities. We introduce the


dimensionless coefficient A(O,2"B) = fJ dim(OIE )S(O,2"B)lfJ dim(OIE )(0/E6 )
o 6

where is a functional specifying the volume measure in Rk • The service


fJ k

coefficient can be derived now by setting in A 6 = 6 7 0' B = R2d i.mQ, 0 =


- -4,,1
RxflA xn vxn (j.\ , where -R is the represantation of the vector C0H determining
-
the fixed pOint H, nR ' nA ' nw are arbitrarily chosen limited sets such
that nR ::::- ZR ' nA ::::- ZA ,nw : : - Zw • Another coefficient characterizing
the abilities of the system to realize different translational velocities
of the end effector can be introduced in the following way. Let for certain
configuration q=q the radius-vector of the point C . is R. Now if O=R
- -0 7 -0 -0
xfllnlnw' 2, = 2,,3, 14, 15 and
B is the linear manifold (go,.Q)+(.Q. x Rn ), then
the quantity A is called "mobi1ity coefficient" [5].
A second type characteristics for functional capacities of multibody sys-
tems can be introduced in the phase space (q,q) , namely X(91,B) = fJ d · 8
- - 1m
[Bilg- i (91)] where 91 is an arbitrary subset of the manifold mx m1 and B is
an arbitrary subset of the phase space. Substituting in X , for instance 9l
2d~mQ
= A.J(n
f( A
xn v xn (j.\ , B = R where AR is a subset of ZR' the
characteristic "approach coefficient for AR " is obtained, which characte-
rizes the multibody system capability for positioning the origin C. of the
1
end effector with different configurations g in the points of the set AR •
The ~uggested method for introducing quantitative estimations not only
makes clear the genesis of the characteristics used at present but can be
used as a basis of generation of new estimations, each one representing a
specific aspect of multibody system operation, as well. This gives the
possibility of selecting optimal structure of the designed multibody system
on the basis of properly chosen characteristics or to determine areas in
the world space where a given multibody system has the largest kinematical
functional capacities.

4. Accuracy of multibody systems


In the investigation of the properties of every real multibody system an
ideal model called an ideal system and denote by M is used. In the techni-
cal realization of the ideal multibody system errors inevitably appear in
the producing, assembly and performance, i.e. each specific realization M •
of the ideal multibody system M is characterized by its own set of errors.
68

The sources of errors in an arbirtary multibody system can be divided in


three basic groups. The first group of errors is due to the inaccurate
performance of the control and supervise system and can be treated as
errors in the generalized coordinates execution. The second group of errors
appears from the inexact realization of the elements of the bodies. As a
result of the inexact geometry the reference frames [i] and [i,a] attached
to the bodies of the ideal system and determining their positions in the
world space, take new positions in the real bodies and respectively new
positions in the world space. The third group of errors arises from the
errors in the realization of the elements of the kinematic hinges, reduced
to clearances.
A mathematical apparatus is developed [6, 7] for investigation of the er-
rors influence on the bodies linear and angular positions in the world
space. For lack of space here it will be given an idea only how the
influence of the clearances in the hinges can be considered. In the ideal
system the vector q of the generalized coordinates in hinge number a
-a
determines the relative position of the contiguous bodies i~(a) and i-(a)
and the element m of the submanifold!l1 of the manifold 'Jll is a function
a a
of q ,m = m (q ). In the real system, additional degrees of freedom
-a a a -a
appear, because of the clearences, and even though q is fixed the bodies
-a
i~(a) and i-(a) can still move relatively to each other. In this case the
element m sweeps a neighbourhood 0 (q ) defined by the boundaries of the
a c-a
clearances and this neighbourhood is six-dimensional. Thus, the existence
of clearances yields not only to a variation A09a of the generalized
coordinates but to additional (6-n ) degrees of freedom, as well. Using
a
differential geometry notions a mathematical apparatus is developed for
determining and computing these quantities when given clearence boundaries.
Let 6./<i and 6.;' i be the vectors defining the linear and angular
displacements of the body i in the absolute frame due to clearances in the
hinges. Furthermore 6. G Ri, 6.{ i and 6.i i ' 6.j i are the vectors defining
the displacements of the i-th body due to inexact realization of the
geometry and of the generalized coordinates. Due to the independance of the
....
three basic groups of primary errors the positioning error vector 6.R . and
1
the orientation error vector 6.rr j can be written taking into account on)y the
linear terms in the form 6.R j = 6.;'i + 6.;i + 6./<i ' 6.rr i = 6.j j + 6.; i +
6.;'j.The positioning error vector determines the linear displacement of
69

the point C. as a result of an inaccurate realization of the ideal system.


7
By analogy the vector ~IT 7. defines the angular
_ displacement of the reference
frame [i] in the [0] frame. The vectors ~R. and ~rr. are used as main
1 1
accuracy characteristics of the real multibody systems.

5. Dynamics of multibody systems


The motion equations for the multibody systems are derived from the
variational principles of mechanics, while the emphasis is on the principle
of the virtual power (the principle of Jourdain).

n:.!t ~.:.. .!.I'T ~_-:to


E f(r i dm - dF) . 6r i :: 6~ . (diag!!! . ~ - £. - .§. ~) +
i. =1 m (5)

(~ + ~"\~ ~]
-'T l [ ..:., -> _, -> -,
b~. diag Q...~ + diag ~ x diag Q...~ - ~ - .§. Y... - =0

_) -) -'I -'I.. (i.)


for br = 0 (6R. = 0, oA =0 i=l, ... ,n )
1 - -3x3

and the principle of Gauss


n .. --l ••

E J(~dm - dF).6~ :: 6Z 2 = 0 (6)

i. = 1 mi. [..-'T ••
-. ":"T ..:.,. ":"T -, -,
with Z/1/2 ~.diag!!!.~+~ .diagQ.. w+ 2w .diag ~ x diag Q... w -

for 6~ = 6~ = 0 (R.1 = 0, bA(L)= 0


-3~~3
,6~.1 = ow.1 = 0, i=l, ... ,n).
Here ~ is the radius vector of the differential element of mass in the
world (inertial) space O~Y)~ , m. and 0 . are the total mass and the central
7 L~_I
inertia tensor of body i respectively, £. = (F 1"'" Fn )T , ~ = (~1 , ••• ,
-, T -)
M) ,F. and M. are the vector and the moment of the external forces
-n 1 1
-. T
acting on body i and applied in the mass center C i ' X=(X I ,···,Xm ) ,
Y = (y , .•• , y ) ,X and Yare respectively the resultant force and
-'I -IIT-~ -t

- 1 m a a
- ~
moment applied on body i (a) by body i (a) and acting at the hinge point
.:... T -P -io . . ,. -* T
C .-( ) . According to (3) 6~ =- ~ [(diag! - diag pr.JI x (~ + ~ )] 6~,
7 a a
T T.
->
6~ =- ~ diag £ o~. Substituting all quantities in the variational prin-
ciples (5), (6) and in the constraint equations (4) by their expressions as
functions of t, g, ~ we can represent them in the form
70

(7)

for the principle of virtual power and

'T • 'T
1/2 ~ Ax - ~ ~ --+ min (8)

for the principle of Gauss [8). The motion equations can be found from (7)
by determining that submatrix of the matrix ~ which is a carrier of its
rank. These equations provide with the kinematical equation S=S(t,s,~) a
complete system for the variables S and ~. In the numerical integration of
the motion equations it is preferable to use the principle of Gauss which
reduce the determining of the acselerations to a minimization of a square
functional under linear constraints. As a functional can surve the form (8)
but also the form (6). The last form is used in the package CAMS parallel
with the first form for multibody systems with one degree of freedom hinges
such as industrial robots and manipulators. In this case unstead of
::,
constraint equations (4) conditions for R. and
7
w7. for each hinge are
formulated [8). After fulfilment of the minimization procedure and the
integration of ~ 7. and ~ 7. we determine the multibody system motion direct in
the world space. When necessary the generalized coordinates S can be found
from the constraint equations in the hinges.

6. General description of the CAMS software system


CAMS is an integrated graphical interactive software system for symbolical
modelling, numerical evaluation and design of :
o industrial robots and manipulators;
o mechanisms and machines;
o vehicle systems;
o measurement devices;
o sate 11 i tes
and other technical systems which can be considered as multibody systems. No
constraints are imposed on the type of the hinges or on the topological
structure of the system, i.e. the system may contain an arbitrary number of
bodies interconnected by hinges in a kinematic chain with an arbitrary
number of closed loops.
The geometry of the bodies is described by a 3D geometric modelling system
DESCARTES incorporated in CAMS software system. The movements in the 3D
71

space of the considered technical systems are simulated using the software
system MOVIES (MOVements Investigation Estimation and Simulation).
CAMS could be applied both - in the analysis of already existing technical
systems for full utilization of their resources in a specific technological
process, or on the stage of preliminary design - for synthesis of systems
with optimal characteristics. CAMS is created in several versions for IBM PC
compatible, COMPAQ, PDP 11-34, PERQ II etc.

CAMS structure
CAMS is designed on the module principle with four-level hierarhica1
structure. The general functional scheme of the CAMS system is shown on
Fig.2.

First level modules - data input


The first level modules organize the dialogue with the user. CAMS requires
a minimal set of input data, which identifies the concrete mechanical
system, such as structure, kinematical scheme, geometrical parameters
characterizing the bodies, forces etc. It is possinle to enter data in an
interactive mode or using an arbitrary text-editor. Interaction with CAMS
is organized with the help of DESCARTES 3D modelling system. In terms of
DESCARTES the user describes the geometry of the bodies and the quantities
attached to them using:
o arbitrary 20 curves;
o splines and Bezier curves;
o surfaces - planar, cylindrical, conical, ruled and lofting;
o 3D solids - po1yhedra1s, spheres, ellipsoids, ci1inders etc.
o primitives of the type "frame";
o different views;
o data manipulation options - copy, transform, drag, delete etc.
After that all mass and inertia characteristics of the bodies are
calculated automatically.
CAMS offers powerful techniques for describing the external loading,
internal forces and torques e.g. it is possible to enter them graphically
or to use analytical expressions including standart computer available
functions - sin, cos, exp, atan etc. CAMS also supportes some databases
with standart most commonly used hinges, bodies, kinematical loops,
mechanisms.
72

FIRST LEVEL SECOND LEVEL


DESCARTES PRENUM
BODIES
HINGES

DATA BASES
HINGES
BODIES
OOPS
MECHANISMS
XT.FDRCES
INT.FDRCES
MOVEMENTS

THIRD LEVEL FOURTH LEVEL


KINEM MOVIES
DYNAM
CONTROL NCON

:I
SYNTH
ACCUR
NC
FUNCCAP
SENS
IDENT VISUAL

Fig.2. Principle scheme of the CAMS software system


73

Second level modules - symbolical work


The system of programme modules SYMB for symbolical or alpha-numerical
modelling of multibody system kinematics,dynamics and accuracy operates on
the second level. All modules are based on a specialy created language for
analytical computations SINT(Symbolical Interpretation). SINT is a virtual
language with syntax and functional abilities similar to those of the
REDUCE language. This gives the possibilty to run all modules written in
SINT in the specific REDUCE enviroment and vice versa. The main advantage of
SINT is the powerful 1 memory managment, based on overlay structures,
virtual disk and buffer data transfer. Thus, analytical expressions with
different complexity could be processed by personal computers like IBM
-PC/AT.
All results obtained by the system SYMB are stored in a text file TEXTF.
The symbolical information stored in such file is ready for direct use by
the third level modules for numerical analysis and design. Neither
compilation nor linking is needed after mathematical modell is symbolically
created.
Furthermore the postprocessors POST FOR , POST PAS and POSTC give the
possibility for an output code generation of a programme in FORTRAN, PASCAL
or C languages.

Third level modules - numerical calculations


The third level modules realize the numerical modelling, investigation and
design of a multibody system. These modules solve the following fundamental
problems,which appear in the process of evaluation and design of technical
systems:
o determination of the degrees of freedom and automatic selection
of the generalised coordinates (module KINEM);
o kinematical analysis - determination of position, linear and
angular velocity and acceleration of an arbitrary body (module KINEM);
o inverse kinematical problem - determination of the generalized
coordinates, velocities and accelerations, realizing a prescribed motion of
a given body (module KINEM);
o movement planning with obstacle avoidance (module CONTROL)
o direct dynamical problem - computation of the generalized
coordinates, velocities and accelerations, hinge reaction forces and torques
in confirmity with given external loading, internal forces and torques
(module DYNAM);
74

o inverse dynamical problem - computation of the actuators forces


and torques in confinmity with external loading and prescribed motion of
a given body (module DYNAM);
o actuators test - estimation of the actuators capabilities to
realize the motion of a given body with prescribed linear velocity (module
DYNAM);
o computation and visualization of different geometrical,
kinematical and dynamical characteristics for instance approach and
mobility coefficient, service coeffitient, general inertia coefficient etc
(module FUNCCAP);
o probabilistic as well as determministic analysis of multibody
systems accuracy. All important for the practice error sources are taken
into account: (i) errors in the values of generalized coordinates, (ii)
errors due to clearances in joints, (iii) errors resulting from inaccurate
realizations of parameters specifying the geometry of bodies (module
ACCUR);
o probabilistic as well as deterministic error-sensitivity
analysis (module SENS);
o identification and compensation of error sources (module
IDENT);
o optimal design - determination of optimal system parameters with
respect to a given goal function reflecting the kinematics, dynamics or
accuracy of the system (module SYNTH);

Fourth level modules - output data (movement similation , postprocessing)


The results of the modules KINEM, DYNAM, CONTROL and SYNT can be illustrated
by the software system MOVIES (MOVements Investigation Estimation and
Simulation). MOVIES offers the user an 3D animation of arbitrary movement of
the consisdered technical system with elements of realistic graphics:
o orthogonal, isometric and perspective views;
o hidden lines and surfaces removal;
o ligthing~

o colour shading etc.


The results of the modules KINEM, DYNAM, FUNCCAP, ACCUR, IDENT, SENS and
SYNTH can be illustrated using the graphical program VISUAL for
visualization of 20 scalar fields, isolines, graphics of function,
histogramme, 3D axonometric view of a scalar field behaviour etc. For
75

instance by means of this module the distribution of geometrical,


kinematical and other scalar characteristics in a given intersection of the
working space with a fixed plane in 3D space could be illustrated.The
visualization is performed comparing a fixed black&white shade to any value
of the characteristic in the nodes of a square set covering the considered
intersection. The discrete color change from white to black corresponds to
the increments of the scalar characteristic values. In this wayan adequate
black&white image of the scalar field is obtained.
It is possible by means of DESCARTES 3D geometric modelling system to pre-
pare the technical documentation for considered multibody systems.
The NCCON module allows the user to connect the software system CAMS with
different devices for numerical control of robots, machines etc .• Thus CAMS
could be used as part of an intelligent station for off-line control.

7. Examples
CAMS software system as well as other systems mentioned above - DESCARTES,
MOVIES, SYMB, SINT, KINEM, ACCUR, DYNAM, VISUAL etc. are used for
investigation and design of industrial robots and manipulation systems,
vehicles, electric- and motor cars and at the study of human abilities in
some sports like weight lifting and bascetball. Several results of the
module VISUAL work are presented on Fig. 3 , Fig.4 and Fig. S.
For the test example of the seven body planar mechanism defined in this
handbook the equations of motion are generated symbolically by CAMS
software system. The diagonal elements of the matrix A (Eqs.7) are

A[1,1]:=MAS[1]*(GM[1,1][1]*GM[1,1][1]+GM[1,1][2]*GM[1,1][2])+
MAS[2]*(GM[1,2][1]*GM[1,2][1]+GM[1,2][2]*GM[1,2][2])+
IM[1,3,3]+IM[2,3,3];
A[2,2]:=MAS[2]*(GM[2,2][1]*GM[2,2][1]+GM[2,2][2]*GM[2,2][2])+
IM[2,3,3];
A[3,3]:=MAS[3]*(GM[3,3][1]*GM[3,3][1]+GM[3,3][2]*GM[3,3][2])+
IM[3,3,3];
A[4,4]:=MAS[4]*(GM[4,4][1]*GM[4,4][1]+GM[4,4][2]*GM[4,4][2])+
MAS[S]*(GM[4,5][1]*GM[4,5][1]+GM[4,5][2]*GM[4,S][2])+
IM[4,3,3]+IM[5,3,3];
A[5,5]:=MAS[5]*(GM[5,5][1]*GM[S,5][1]+GM[5,5][2]*GM[5,5][2])+
IM[5,3,3];
A[6,6]:=MAS[6]*(GM[6,6][1]*GM[6,6][1]+GM[6,6][2]*GM[6,6][2])+
MAS[5]*(GM[6,7][1]*GM[6,7][1]+GM[6,7][2]*GM[6,7][2])+
IM[6,3,3]+IM[7,3,3];
A[7,7]:=MAS[7]*(GM[7,7][1]*GM[7,7][1]+GM[7,7][2]*GM[7,7][2])+
IM[7,3,3]i
Fig.3. Working space for the robot UNlMATE 2030.
77

Fig.4 Mobility coefficient in a given intersection of a vertical plane


with the working space of UNlHATE 2030.

Fig.5. Visualization of the maximal positioning error distribution


in the working space of the robot SCARA.
78

18.8

14.4
pO

118.8
~
w

• 'l.2

3.'

8 8. • 8.817 8.825 8.833


t [5]

1_

888
• '88
pO

~
w"• 488
••
288

8 8• • 8.817 8.825 8.833


t [5]

38
pO
N 24
(
18
• 12
0

\•
,

If

w
" -, 8
8• •
=.X-12
r-18
IS -24
01
-38

Fig.6. Time history of the seven body mechanism motion


79

Fig.7. Motion animation of the seven body mechanism


80

The symbolical equations are solved by numerical integration and the


results are graphically illustrated on Fig.6. The animation of the
corresponding mechanism's motion is shown on Fig.7.

REFERENCES
[1] Roberson, R.; Wittenburg, J.: A Dynamical Formalism for an Arbitrary
Number of Interconnected Rigid Bodies with Reference to the Problem of
Satellite Attitude Control. Proc. of the 3-rd IFAC Congress, London,
1966. London: Butterworth and Co., Ltd., 1967.
[2] Lilov, L.; Wittenburg, J.: Equations of Motion for Systems of Rigid
Bodies with arbitrary Hinges (in german). Z. f Angew. Math und Mech.
(ZAMM), 57 (1977), H.3.
[3] Lilov, L.: Structure, Kinematics and Dynamics of Systems of Rigid
Bodies (in russian). Advances in Mechanics, 6 (1983), NO.1/2.
[4] Li7ov, L.; Bekjarov, B.: Geeometrical and Kinematical Qualitative
Characteristics for Functional Capacities of Manipulation Systems.
Proceedings of the 5-th CISM-IFToMM Symposium ROMANSV. Kogan Page,
London, Hermes Publications.
[5] Kobrinskii A.: On Mechanical Qualities of Manipulation Systems (in
russian). DAN - USSR, 241 (1978), No.4.
[6] Lilov, L.; Bekjarov, B.: Accuracy of Multibody Systems with Tree-like
Structure and Arbitrary Joints (in russian). Theoretical and Applied
Mechanics, 14 (1983), No.1.
[7] Lilov, L.; Bekjarov, B.: Accuracy of Multibody Systems. Mechanics of
Structure and Machines, 17 (1989), No.2.
[8] Lilov, L.; Lorer, H.: Dynamic Analysis of Multirigid-Body System Based
on the Gauss Principle. ZAMM, 62 (1982), H.10.
AUTO LEV - A New Approach to Multihody Dynamics
David A. Levinson
Lockheed Palo Alto Research Laboratory
92-30/250, 3251 Hanover Street
Palo Alto, California 94304, USA

and

Thomas R. Kane
Department of Mechanical Engineering
Stanford University
Stanford, California 94305, USA

Introduction

AUTOLEV, an interactive symbolic dynamics program based on the method


set forth in [1) for formulating equations of motion, differs fundamentally
from other multibody dynamics programs in that it gives the user step-by-
step control of the equation formulation process. Its unstructured format
places virtually no restrictions on the types of dynamical systems that it
accommodates, so that one can deal equally easily with one, two, and three
dimensional holonomic and nonholonomic systems, closed loops, moving
constraints, etc. Moreover, the process of formulating equations of motion
is unencumbered by the computer memory limitations and slow run times
associated with classical methods of mechanics, and the program thus can be
used on a desktop computer.
AUTOLEV produces complete, fully formatted, ready-to-compile-and-run
FORTRAN simulation programs in which, to minimize computation time, repeated
strings of symbols have been replaced automatically with new, individual
symbols. In addition, each program can incorporate provisions for checking
the correctness of the equations of motion under consideration.
To explain how one works with AUTOLEV to produce multibody simulations,
we shall describe in detail the process employed to generate response curves
for the linkage system shown in Figure 1. Readers interested in learning
more about AUTOLEV are referred to (2).
82

Illustrative Examples

'ole begin by typing


DOF(1,7)
This tells AUTO LEV that the system to be analyzed possess one degree of
freedom, and that its motion is characterized by seven generalized speeds
(see [1], p. 40), which AUTO LEV names internally as U1, . . • , U7. Next we
tell AUTO LEV the names of all the reference frames (rigid bodies) making up
the linkage (see Figure 1):
FRAMES(K1,K2,K3,K4,KS,K6,K7)
For each frame listed in the FRAMES command, AUTO LEV assigns names to
various items of interest associated with the frame. For example, a dextral
set of mutually perpendicular unit vectors Kl1, K12, and K13 is designated
as fixed in K1, and the mass center of Kl is denoted KISTAR. Similar names
are automatically introduced in connection with K2,. . , K7. A Newtonian
reference frame N is defined internally when AUTOLEV is activated, and a
dextral set of mutually perpendicular unit vectors NI, N2, and N3 is fixed
in N.
The points of interest on the linkage are listed in a POINTS command:

POINTS(0,A,B,C,Pl,P22,P23,P24,P26,P3,P4,PS)
Points 0, A, B, C, P1, P3, P4, and PS can be found in Figure 1, and P2i
denotes that point of Ki located at P2 (i = 2, 3, 4, 6) (see Figure 1 for
P2). Since these points are identified for purely kinematical purposes, but
do not correspond to particles, we tell this to AUTO LEV by typing
MASSLESS(0,A,B,C,P1,P22,P23,P24,P26,P3,P4,PS)

The given angles 13, y, 5, and E (see Figure 1) are designated as


variables, as are 92' 94' and 96' angles characterizing the orientations of
K2, K4, and K6, respectively, in N:

VAR(BETA,GAMMA, DELTA, EPSILON,THETA2,THETA4,THETA6)

Similarly, given constants are designated in CONST commands. The distances


XA and YA are not listed in a CONST command, because these quantities are
not needed in formulating equations of motion. SIGMA denotes the spring
constant, LO the natural length of the spring, and TORQKl is the (constant)
value of the K13 measure number of the torque of the driving couple. 'ole
type
83

CONST(D,DA,E,EA,ZF,FA,R,RA,S,SA,SB,SC,SD,ZT,TA,TB,UX,UA,UB)
CONST(XB,YB,XC,YC,SIGMA,LO,TORQK1)
The HASS command is used to assign names to the masses of K1, • • • , K7.
Here, the mass of Ki is denoted as Hi (i = 1, ••• , 7):
HASS(K1,H1,K2,H2,K3,H3,K4,H4,KS,HS,K6,H6,K7,H7)
Vith the INERTIA command we assign the name I1 to the moment of inertia of
K1 about a line passing through K1STAR and parallel to K13:
INERTIA(K1,O,O,I1,O,O,O)
and similar commands are used to assign the name Ij to the moment of inertia
of Kj about a line passing through KjSTAR and parallel to Kj3 (j = 2, •••
, 7).
Hoving on to kinematical considerations, we define U1 by expressing
VK1N, the angular velocity of K1 in N, as
VK1N=U1*K13
Similarly, we set
VK2N=U2*K23
and so forth.
Kinematical equations relating time-derivatives of linkage orientation
angles to generalized speeds are written as

BETA'=U1
GAHHA'=U3
DELTA'=US
EPSILON'=U7
THETA2'=U2
THETA4'=U4

THETA6'=U6
At this juncture, we invoke the SIHPROT command to obtain the direction
cosines associated with the simple rotation, in N, of K1 in the K13 (also
N3) direction through the angle ~:

SIHPROT(N,K1,3,BETA)
In response to this, rather than prompting us to input another line, AUTOLEV
returns
84

-> (33) OIRCOS(N,K1,COS(BETA),-SIN(BETA),0,SIN(BETA),COS(BETA),0,0,0,1)


The arrow to the left of the line number indicates that this is an AUTO LEV
response, rather than a user input. The nine quantities following K1 in the
output are the direction cosines Nl • Kll, Nl • Kl2, , N3 • Kl3.
After proceeding similarly in connection with K2,. , K7, we form the
direction cosines relating Kll, Kl2, and Kl3 to K2l, K22, and K23 by
employing a DIRCOS command:
DIRCOS(Kl,K2)
to which AUTOLEV responds with
-> (47) DIRCOS(Kl,K2,COS(BETA-THETA2),SIN(BETA-THETA2),0,-SIN(BETA
-THETA2),COS(BETA-THETA2),0,0,0,l)
The direction cosines relating K4l, K42, and K43 to K5l, K52, and K53, as
well as those relating K6l, K62, and K63 to K7l, K72, and K73 are determined
similarly.
Next, referring to the drawing provided by Professor Schiehlen showing
the geometric parameters, we form POKlSTAR, the position vector from 0 to
KlSTAR as
POKlSTAR=RA*Kll
and POPl, the position vector from 0 to Pl as
POPl=R*Kll
After informing AUTO LEV that VON, the velocity of 0 in N, is equal to zero,
VON=O
we invoke the V2PTS command, which employs the theorem

F P F Q F 0 QP
v ~ + ~ x~

where F is a reference frame, D is a rigid body, P and Q are points fixed in


0, F~P is the velocity of P in F, F~Q is the velocity of Q in F, F~ is the
angular velocity of 0 in F, and EQP is the position vector from Q to P. The
associated AUTOLEV command is written V2PTS(F,O,Q,P). For the case at hand,
we type
V2PTS(N,Kl,O,KlSTAR)
which yields VKlSTARN, the velocity of KlSTAR in N, as
85

-> (56) VK1STARN=RA*U1*K12


and

V2PTS(N,K1,O,P1)
which gives VP1N, the velocity of P1 in N, as

-> (58) VP1N=R*U1*K12


After forming PP1K2STAR and PP1P22, the position vectors from P1 to K2STAR
and P22, respectively, as

PP1K2STAR=-DA*K21

PP1P22=-D*K21
in preparation for obtaining expressions for VK2STARN and VP22N, the
velocities of K2STAR and P22 in N, we once again employ the V2PTS command
V2PTS(N,K2,P1,K2STAR)

which gives

-> (62) VK2STARN=R*U1*K12-DA*U2*K22


Before invoking V2PTS again for the purpose of obtaining VP22N, we command
AUTO LEV to perform some simplifications by expressing VK2STARN solely in the
K21, K22, K23 basis:

EXPRESS(VK2STARN,K2)

Here AUTO LEV defines two new quantities, Z1 and Z2,


-> (64) Z1=R*SIN(BETA-THETA2)
-> (65) Z2=COS(BETA-THETA2)*R
which permits it to write

-> (66) VK2STARN=-U1*Z1*K21+(-DA*U2+U1*Z2)*K22


AUTOLEV uses the Z's as a means for simplifying expressions. Each Z stands
for a collection of symbols, and the Z is used in subsequent computations in
place of the collection. This process eliminates unnecessary repetition of
operations. In a similar fashion, we obtain VP22N, as well as the
veloci ties in N of all of the remaining link mass centers and points of
links meeting at P2.
The velocities in N of all link points meeting at P2 are equal to each
other. Since four links mee tat P2, there are three independen t vec tor
equations that must be satisfied to ensure that the equal velocity
86

conditions are met, and these equations can be expressed as VP22N - VP23N =
VP22N - VP24N = VP22N - VP26N = 0. To enable AUTO LEV to make use of this
fact, we form three vectors, MATCH23, MATCH24 , and MATCH26, as
MATCH23=ADD(VP22N,-VP23N)
which leads to
-> (118) MATCH23=-U1*Zl*K21+(-D*U2+U1*Z2)*K22-S*U3*K31
and so forth. From these three vectors, one can form six scalar constraint
equations relating U2, . . . , U7 to Ul. In preparation for this we form
three sets of direction cosines by typing
DIRCOS(K2,K3)
-> (124) DIRCOS(K2,K3,COS(GAMMA-THETA2),-SIN(GAMMA-THETA2),0,SIN
(GAMMA-THETA2),COS(GAMMA-THETA2),0,0,0,1)
and similarly for K2 and K4, and K4 and K6. Then we form the scalars
CONSTRAINT 1 and CONSTRAINT2 by dot-multiplying MATCH23 with K21 and K22:
CONSTRAINT1=DOT(MATCH23,K21)
-> (130) Z9=COS(GAMMA-THETA2)*S
-> (131) CONSTRAINT1=-Zl*U1-Z9*U3
CONSTRAINT2=DOT(MATCH23,K22)
-> (133) Z10=S*SIN(GAMMA-THETA2)
-> (134) CONSTRAINT2=Z2*U1-D*U2-Z10*U3
Similarly, we obtain CONSTRAINT3,. . , CONSTRAINT6 by dot-multiplying
MATCH24 and MATCH26 with K21 and K22. Now we invoke the CONSTRAIN command,
which sets each of CONSTRAINi (i = 1, . . . , 6) equal to zero and then
solves the six resulting equations for U2, • . . , U7 as functions of U1;
that is, we type
CONSTRAIN
which leads to the creation of Z's and the desired equations,

-> (171) U2=Z29*Ul

-> (176) U7=Z37*Ul


The CONSTRAIN command continues to work, substituting for U2, • • • , U7
87

from lines (171) - (176) into all equations containing these U's. This
gives
-> (177) YK2N=U1*Z29*K23
and so on.
Now we proceed with the formulation of angular accelerations by
employing the DERIV command. ALFK1N, the angular acceleration of K1 in N,
is obtained by differentiating Y1KN, the angular velocity of K1 in N, with
respect to the time T, in reference frame N:
ALFK1N=DERIV(YK1N,T,N)
-> (211) ALFK1N=U1'*K13
The remaining six angular accelerations are obtained similarly.
Turning to the formulation of accelerations, we obtain AK1STARN, the
acceleration of K1STAR in N, by differentiating VK1STARN, the velocity of
K1STAR in N, with respect to T in N:
AK1STARN=DERIV(VK1STARN,T,N)
-> (272) Z85=RA*U1

-> (275) AK1STARN=-Z86*K11+RA*U1'*K12


The remaining six mass center accelerations are determined similarly.
Ye are now in a position to formulate the generalized inertia force
(see [1], pp. 124-125) for the linkage. To do this, we type
FRSTAR
which, after generating still more Z's, yields
-> (362) F1STAR=Z139*U1'-Z140
Ye proceed to the determination of the generalized active force (see
[1], pp. 99, 106) for the linkage, starting by considering the forces
applied to the linkage by the driving motor. Ye assume that the system of
forces in question is equivalent to a couple applied to K1, and that the
torque of this couple is given by

TORQUE(K1)=TORQ*K13
The scalar quantity TORQ is listed in a CONTROLS command,
CONTROLS (TORQ)
88

which will insert TORO into a subroutine when the FORTRAN program is
generated, where TORO will be defined as

TORO=TOROK1
with TOROK1 a constant. Having defined TORO in this .anner, we can have the
best of two worlds in connection with the FORTRAN simulation program. For
the problem at hand, the constant value of TOROK1 will be read from a data
file and assigned to TOROK1, and then, in turn, to TORO. Vhen TORO is not a
constant, we can edit the aforementioned subroutine, replacing TOROK1, on
the right-hand side of this equation, with any desired function.
To take into account the spring force, we must first determine the
position vector PPsC from Ps to C (see Figure 1). To this end, we input the
position vectors POB and POC, from 0 to Band C, respectively,
POB=XB*N1+YB*N2
POC=XC*N1+YC*N2
and then use the ADD command to form the position vector PBC from B to C:
PBC=ADD(POC,-POB)
-> (369) PBC=(-XB+XC)*N1+(-YB+YC)*N2
while the position vector PBPs from B to PS is given by
PBPs=SD*K31-SC*K32
so that the ADD command can be used to obtain PPsC, the desired result, as
PPsC=ADD(PBC,-PBPs)
-> (372) ppsC=(-XB+XC)*N1+(-YB+YC)*N2-SD*K31+SC*K32
The determination of the magnitude of PPsC is accomplished by dot-
multiplying PPsC with itself, which leads to the square of the magnitude of
PPsC,

HAGPPsC2=DOT(PPsC,PPsC)

-> (374) HAGPPsC2~(-XB+XC)*(-XB+XC)-2*(-XB+XC)*COS(GAHHA)*SD-2*(

-XB+XC)*SC*SIN(GAHHA)+(-YB+YC)*(-YB+YC)+2*(-YB+YC)*COS(GAHHA)
*SC-2*(-YB+YC)*SD*SIN(GAHHA)+SC*SC+SD*SD

whereupon the RIGHT command is used to raise the right-hand side of the
equation in line (374) to the .5 power, yielding the magnitude of PPsC, to
which we give the name HAGPPsC:
HAGPPsC=RIGHT(HAGPPsC2)".s
89

-> (376) MAGPP5C=«-XB+XC)*(-XB+XC)-2*(-XB+XC)*COS(GAMMA)*SO-2*(


-XB+XC)*SC*SIN(GAMMA)+(-YB+YC)*(-YB+YC)+2*(-YB+YC)*COS(GAMMA)
*SC-2*(-YB+YC)*SO*SIN(GAMMA)+SC*SC+so*SO)·.5
Next, after forming another Z to represent the right hand side of the
equation in line (376), we use the RIGHT command in the construction of a
unit vector UP5C pointing from P5 to C:
UP5C=RIGHT(PP5C)/RIGHT(MAGPP5C)
-> (385) UP5C=(-XB+XC)*N1/Z141+(-YB+YC)*N2/Z141-S0*K31/Z141+SC*K
321Z141

With Z146 defined as


-> (395) Z146=LO-Z141
we determine the extension of the spring, called STRETCH and given by

-> (398) STRETCH=-Z146


and then use the RIGHT command to express the force exerted by C on P5, by
means of the spring, as (recall that SIGMA is the spring constant)
FORCE(C/P5)=SIGMA*RIGHT(STRETCH)*RIGHT(UP5C)
-> (400) FORCE(C/P5)=-SIGMA*Z142*Z146*N1-SIGMA*Z143*Z146*N2+SIGM
A*Z144*Z146*K31-SIGMA*Z145*Z146*K32
One more task must be performed before the generalized active force can be
computed, namely, the determination of the velocity VP5N of P5 in N, and the
velocity VCN of C in N, these being the inertial velocities of the two
endpoints of the spring, needed for the determination of partial velocities
(see [1], pp. 45-46). The first of these can be found by means of a V2PTS
command:
V2PTS(N,K3,B,P5)
-> (402) Z147=SC*Z30
-> (403) Z148=SO*Z30
-> (404) VP5N=-U1*Z147*K31-Ul*Z148*K32
and the second is simply given by

VCN=O
The FR command then generates the generalized active force:

FR
90

-> (407) F1=COS(GAMMA)*SIGMA*Z142*Z146*Z147+COS(GAMMA)*SIGMA*Zl4


3*Z146*Z148-SIGMA*SIN(GAMMA)*Z142*Z146*Z148+SIGMA*SIN(GAMMA)*
Z143*Z146*Z147-SIGMA*Z144*Z146*Z147+SIGMA*Z145*Z146*Zl48+TORQ
and the dynamical equation of motion (see [I], pp. 158-159) of the linkage
system is formed via the command:

KANE

which produces

-> (409) R = 1: Z139*U1'-Z140+COS(GAMMA)*SIGMA*Z142*Z146*Z147+


COS(GAMMA)*SIGMA*Z143*Z146*Z148-SIGMA*SIN(GAMMA)*Z142*Z146*Zl
48+SIGMA*SIN(GAMMA)*Z143*Z146*Z147-SIGMA*Z144*Z146*Z147+SIGMA
*Z145*Z146*Z148+TORQ = 0
As an aid in checking the FORTRAN simulation program to be generated by
AUTOLEV, we determine the kinetic energy of the linkage by means of the KE
command:
KE

-> (411) ZKE1=I1*U1*U1+M1*Z85*Z85

-> (417) ZKE7=(Z121*Z121+Z122*Z122)*M7+I7*Z68*Z68


-> (418) KE=.5*(ZKE1+ZKE2+ZKE3+ZKE4+ZKE5+ZKE6+ZKE7)
Note that KE generates ZKE's in lines (411)-(417) for simplification
purposes. The potential energy PE is input as
(419) PE=.5*SIGMA*RIGHT(STRETCH)"2
which gives

-> (420) PE=.5*(-Z146)"2*SIGMA


To cause AUTO LEV to write a computer program for the simulation of motions
of the linkage, we issue the command

(428) CODE(LINKAGE,ENERGY,CONTROLS)

This yields a FORTRAN program called LINKAGE. FOR, containing a subroutine


ENERGY for computing the total energy of the linkage, as well as a
subroutine CNTRL in which TORQ is computed. A portion of the FORTRAN
program is shown in Figure 2. Here one can see that AUTOLEV has produced a
91

ready-to-compile-and-run program, complete with DIMENSION statements, COMMON


blocks, READ and VRITE statements, and so forth.
Vhen the initial values of ~, y, &, and € (see Figure 1) are given,
those of 92' 94' and 96 can be determined easily. In general, however, any
one, but no more than one, of these seven initial values can be specified
independently, and the remaining six must be found by solving a system of
six coupled transcendental equations. Indeed, the determination of initial
values of angles is a major obstacle that must be overcome whenever one is
dealing wi th closed loops of bodies, and it is not handled easily by
conventional multibody programs. To show how AUTO LEV can be used to come to
grips effectively with this dilemma, we determine expressions for the sine
and cosine of each of 92' 94' and 96' completely in terms of known
quantities. Use of these expressions in conjunction with the FORTRAN
function DATAN2 permits one to obtain ini tial values of the three angles.
Moreover, these six relations are precisely the ones needed to determine the
values of any six of the linkage angles when the value of the seventh is
available. The strategy we employ to find the relationships of interest is
to obtain closed loop conditions for each of three such loops in the
linkage. By picking these loops in such a way that each involves at most
one of K2, K4, and K6, we can obtain a separate expression for each of 92'
94' and 96. Ve make use of the fact that (see Figure 1) the position vector
from Pl to P2 is equal to the sum of the position vectors from Pl to 0, from
o to B, and from B to P2; the position vector from P3 to P2 is equal to the
sum of the position vectors from P3 to A, from A to B, and from B to P2; and
the position vector from P4 to P2 is equal to the sum of the posi tion
vectors from P4 to A, from A to B, and from B to P2. Ve first input the
position vector POA from 0 to A, in terms of the given quantities XA and YA,
so that we can form the position vector PBA from B to A by means of the ADD
command, in conjunction with the position vector POB from 0 to B, which is
already in the workspace:

POA=XA*Nl+YA*N2
PBA=ADD(POA,-POB)

-> (435) PBA=(XA-XB)*Nl+(YA-YB)*N2


Now all of the position vectors needed for the computations at hand are in
the workspace. Ve construct the posi tion vector from P1 to P2 by means of
the ADD command, arbi trarily calling this vector VEC2 so as to distinguish
it from PPlP22, the direct vector along K2 from Pl to P2, which is already
in the workspace.
92

VEC2=ADD(-POPl,POB,PBP23)
-> (437) VEC2=XB*Nl+YB*N2-R*Kll-S*K32
In the same manner, we form VEC4 as the position vector from P3 to P2, and
VEC6 as the position vector from P4 to P2. Thereafter, dot-multiplication
of PPIP22 and VEC2 each with Nl gives, respectively, the left hand side and
right hand side of an equation for determining the cosine of 92:
DOT21=DOT(PP1P22,N1)
-> (443) DOT21=-COS(THETA2)*D
DOT21=DOT(VEC2,Nl)
-> (445) DOT21=-COS(BETA)*R+S*SIN(GAMMA)+XB
while dot-multiplying the same vectors with N2 yields the two sides of an
equation for computing the sine of 92:
DOT22=DOT(PPIP22,N2)
-> (447) DOT22=-D*SIN(THETA2)
DOT22=DOT(VEC2,N2)
-> (449) DOT22=-COS(GAMMA)*S-R*SIN(BETA)+YB
Equations for the sine and cosine of 94 and 96 are obtained similarly.
Substitution for DOT21 from the equation in line (443) into the one in line
(445) gives an equation which can be solved for COS(THETA2). Similarly,
lines (447) and (449) lead to an expression for SIN(THETA2), and THETA2 is
then given by DATAN2(SIN(THETA2) ,COS(THETA2». THETA4 and THETA6 can be
found in similar fashion. For the given parameter values and initial
conditions, these equations reveal that THETA2 = -0.0620105 rad, THETA4 =
0.710540 rad, and THETA6 = 1.00785 rad. The complete AUTOLEV input command
file, used to generate LINKAGE. FOR, as well as the formulas for determining
initial values of 92' 94' and 96' is shown in Figure 3.
Compiling and executing the FORTRAN program, and confining attention to
the first 0.03 seconds of the motion, we obtain the output shown in Table 1,
which appears to be in complete agreement with Professor Schiehlen'S
results. The program also can be used to make runs incorpora ting more
realistic input torques and simulation times, as one can see by setting TORO
equal to -0.5sin(2nt), and running the program for ten seconds. Now one
obtains, for example, the time-histories of Ul and ~ shown in Figure 4.
In practice, one rarely has at one's disposal plots obtained
independently which can be used to check the results of one's simulation
93

program. Accordingly, the issue of checking one's output is a major one.


In the present case, we can validate a significant portion of our FORTRAN
program by setting TORQK1 equal to zero, and repeating the run leading to
Table 1. For all runs made with LINKAGE.FOR, the total mechanical energy of
the linkage is automatically recorded on an output data file, and, for the
run in which TORQK1 = 0, the energy remained constant.
AUTOLEV's capabili ties for dealing wi th three dimensional problems
come to light in connection with the robot arm problem proposed by Professor
Schiehlen. The complete AUTOLEV command file for this problem is shown in
Figure 5, and numerical output obtained with the aid of the associated
AUTO LEV generated FORTRAN program appears in Table 2. Once more, the
results appear to be in complete agreement with those of Professor
Schiehlen.

Conclusion

As the examples discussed above show, AUTOLEV is intended for use by


dynamicists, that is, individuals who possess a thorough knowledge of the
discipline of dynamics. In the hands of such individuals, AUTOLEV is a
powerful tool that enables them to exercise creativity without being
burdened by elementary chores.
The preparation of a new version of AUTOLEV, written in the language C,
is in progress. This version will have a number of additional features and
will make it possible to execute AUTO LEV not only on personal computers of
many types, but also on most mainframe computers.

References

[1] Kane, Thomas R.j Levinson, David A.: Dynamics: Theory and Applications.
New York: McGraw-Hill Book Company, 1985.

[2] Schaechter, David B.j Levinson, David A.: Interactive Computerized


Symbolic Dynamics for the Dynamicist. The Journal of the Astronautical
Sciences, Vol. 36, No.4, October-December 1988, pp. 365-388.
94

N2

cS- N3
N1

K22

dz-~I K23

Figure 1. Linkage.
95

C THE NAME OF THIS PROGRAM IS LINKAGE. FOR


C CREATED BY AUTO LEV ON 02-13-1989 AT 12:58:35
C
IMPLICIT DOUBLE PRECISION (A-Z)
INTEGER JLOOP,NSTEPS,NCUTS,NEQS,ILOOP,COUNTER,NPSTEP
LOGICAL STPSZ
EXTERNAL EQNS
CHARACTER MSG(7S)
DIMENSION U(8),UU(14),Z(148)
COMMON/CPAR/I1,I2,I3,I4,IS,I6,I7,M1,M2,M3,M4,MS,M6,M7,PI,D,DA,E,EA
& ,ZF,FA,R,RA,S,SA,SB,SC,SD,ZT,TA,TB,UU,UA,UB,XB,YB,XC,YC,SIGMA,LO
& , TORQK1
COMMON/CONT/TORQ
COMMON/DFQLST/T, STEP, RELERR, ABSERR, NCUTS,NEQS, STPSZ
C
OPEN(UNIT=ll,FILE='LINKAGE.IN ',STATUS='UNKNOVN')
OPEN(UNIT=12,FILE='LINKAGE.OU1',STATUS='UNKNOVN')
OPEN(UNIT=13,FILE='LINKAGE.OU2',STATUS='UNKNOVN')
OPEN(UNIT=14,FILE='LINKAGE.OU3',STATUS='UNKNOVN')
OPEN(UNIT=20,FILE='LINKAGE.NRG',STATUS='UNKNOVN')
OPEN(UNIT=31,FILE='LINKAGE.C01',STATUS='UNKNOVN')
PI = 4.0*DATAN(1.0DO)
DEGTORAD = PI/180.0DO
RADTODEG = 1.0DO/DEGTORAD
VRITE(*,601)
C
READ(ll,*) D,DA,E,EA,ZF,FA,R,RA,S,SA,SB,SC,SD,ZT,TA,TB,UU,UA,UB,XB
& ,YB,XC,YC,SIGMA,LO,TORQK1
READ(ll,*) M1,M2,M3,M4,MS,M6,M7
READ(ll,*) 11
READ(ll,*) 12
READ(ll,*) 13
READ(ll,*) 14
READ(ll,*) IS
READ(ll,*) 16
READ(ll,*) 17
READ(ll,*) (U(ILOOP),ILOOP = 1,1)
READ(ll,*) BETA,GAMMA,DELTA,EPSILON,THETA2,THETA4,THETA6
C
VRITE(* ,602)
READ(*,*) TMAX,PSTEP,STEPO
NPSTEP = 1DINT«PSTEP-1.D-8)/STEPO + 1)
STEP = PSTEP/NPSTEP
VRITE(* ,603)
READ( * ,604) (MSG(ILOOP),ILOOP = 1,75)

Figure 2. Portion of FORTRAN program generated by AUTOLEV.


96

I LINKAGE
I
DOF(l,7)
FRAHES(Kl,K2,K3,K4,KS,K6,K7)
POINTS(O,A,B,C,Pl,P22,P23,P24,P26,P3,P4,PS)
HASSLESS(O,A, B, C, Pl, P22, P23, P24, P26, P.3, P4, PS)
VAR(BETA,GAHHA, DELTA, EPSILON,THETA2,THETA4,THETA6)
CONST(D,DA,E,EA,ZF,FA,R,RA,S,SA,SB,SC,SD,ZT,TA,TB,UX,UA,UB)
CONST(XB,YB,XC,YC,SIGHA,LO,TOROK1)
HASS(Kl,Hl,K2,H2,K3,H3,K4,H4,KS,HS,K6,H6,K7,H7)
INERTIA(Kl,O,O,Il,O,O,O)
INERTIA(K2,O,O,I2,O,O,O)
INERTIA(K3,O,O,I3,O,O,O)
INERTIA(K4,O,O,I4,O,O,O)
INERTIA(KS,O,O,IS,O,O,O)
INERTIA(K6,O,O,I6,O,O,O)
INERTIA(K7,O,O,I7,O,O,O)
llKlN=Ul*K13
llK2N:U2*K23
llK3N=U3*K33
llK4N=U4*K43
llKSN.US*KS3
llK6N=U6*K63
IIK7N-U7*K73
BETA'mUl
GAHHA' .. U3
DELTA'=US
EPSILON'=U7
THETA2'.U2
THETA4'=U4
THETA6'=U6
SIHPROT(N,Kl,3,BETA)
SIHPROT(N,K3,3,GAHHA)
SIHPROT(N,KS,3,DELTA)
SIHPROT(N,K7,3,EPSILON)
SIHPROT(N,K2,3,THETA2)
SIHPROT(N,K4,3,THETA4)
SIHPROT(N,K6,3,THETA6)
DIRCOS(Kl,K2)
DIRCOS(K4,KS)
DIRCOS(K6,K7)
POK1STARzRA*Kll
POPl=R*Kll
VON=O
V2PTS(N,Kl,O,K1STAR)
V2PTS(N,Kl,O,Pl)
PPIK2STAR=-DA*K21
PPIP22=-D*K21
V2PTS(N,K2,Pl,K2STAR)
EXPRESS(VK2STARN,K2)
V2PTS(N,K2,Pl,P22)
EXPRESS(VP22N,K2)
VBN=O

Figure 3. AUTO LEV command file for linkage problem.


(continued on next page)
97

PBK3STAR=SB*K31-SA*K32
V2PTS(N,K3,B,K3STAR)
PBP23s-S*K32
V2PTS(N,K3,B,P23)
PAKSSTARsTA*KS1+TB*KS2
VAN=O
V2PTS(N,KS,A,KSSTAR)
PAP3=ZT*KSl
V2PTS(N,KS,A,P3)
PP3K4STAR.(EA-E)*K42
V2PTS(N,K4,P3,K4STAR)
EXPRESS(VK4STARN,K4)
PP3P24--E*K42
V2PTS(N,K4,P3,P24)
EXPRESS(VP24N,K4)
PAK7STARs-UB*K71-UA*K72
V2PTS(N,K7,A,K7STAR)
PAP4=-UX*K72
V2PTS(N,K7,A,P4)
PP4K6STAR-(ZF-FA)*K61
V2PTS(N,K6,P4,K6STAR)
EXPRESS (VK6STARN,K6)
PP4P26=ZF*K61
V2PTS(N,K6,P4,P26)
EXPRESS(VP26N,K6)
HATCH23=ADD(VP22N,-VP23N)
HATCH24=ADD(VP22N,-VP24N)
HATCH26=ADD(VP22N,-VP26N)
DIRCOS(K2,K3)
DIRCOS(K2,K4)
DIRCOS(K2,K6)
CONSTRAINT1=DOT(HATCH23,K21)
CONSTRAINT2.DOT(HATCH23,K22)
CONSTRAINT3:DOT(HATCH24,K21)
CONSTRAINT4.DOT(HATCH24,K22)
CONSTRAINTS.DOT(HATCH26,K21)
CONSTRAINT6=DOT(HATCH26,K22)
CONSTRAIN
ALFKIN=DERIV(VKIN,T,N)
ALFK2N=DERIV(VK2N,T,N)
ALFK3N:DERIV(VK3N,T,N)
ALFK4N-DERIV(VK4N,T,N)
ALFKSN.DERIV(VK5N,T,N)
ALFK6N=DERIV(VK6N,T,N)
ALFK7N=DERIV(VK7N,T,N)
AK1STARN=DERIV(VK1STARN,T,N)
AK2STARN=DERIV(VK2STARN,T,N)
AK3STARN=DERIV(VK3STARN,T,N)
AK4STARN=DERIV(VK4STARN,T,N)
AKSSTARN:DERIV(VKSSTARN,T,N)
AK6STARN=DERIV(VK6STARN,T,N)
AK7STARN=DERIV(VK7STARN,T,N)

Figure 3. AUTOLEV command file for linkage problem.


(continued on next page)
98

FRSTAR
TOROUE(Kl)-TORO*K13
CONTROLS (TORO)
TORQzTORQKl
POB.XB*Nl+YB*N2
POC.XC*Nl+YC*N2
PBC.ADD(POC,-POB)
PBP5=SD*K31-SC*K32
PP5C.ADD(PBC,-PBP5)
HAGPP5C2.DOT(PP5C,PP5C)
HAGPP5C.RIGHT(HAGPP5C2)',5
HAGVEC=RIGHT(HAGPP5C)*N3
ZEE(HAGVEC)
HAGPP5C=DOT(HAGVEC,N3)
UP5C.RIGHT(PP5C)/RIGHT(HAGPP5C)
ZEE(UP5C)
STRETCHVEC.(RIGHT(HAGPP5C)-LO)*N3
ZEE(STRETCBVEC)
STRETCH=DOT(STRETCHVEC,N3)
FORCE(C/P5).SIGHA*RIGHT(STRETCH)*RIGHT(UP5C)
V2PTS(N,K3,B,P5)
VCN=O
FR
KANE
KE
PE=,5*SIGHA*RIGHT(STRETCH)'2
UNITS(D,H,DA,H,E,H,EA,H,ZF,H,FA,H,R,H,RA,H,S,H,SA,H,SB,H,SC,H)
UNITS(SD,H,ZT,H,TA,K,TB,K,UU,K,UA,H,UB,H,LO,H,XB,H,YB,H,XC,H,YC,H)
UNITS(SIGHA,N/H,HASS,KG,INERTIA,KG*K'2,TORQ,N*K,TORQK1,N*H,ENERGY,N*H)
UNITS(BETA,RAD,GAHHA,RAD,DELTA,RAD,EPSILON,RAD)
UNITS(THETA2,RAD,THETA4,RAD,THETA6,RAD)
UNITS(Ul,RAD/S,U2,RAD/S,U3,RADIS,U3,RADIS,U4,RADIS,U5,RADIS)
UNITS(U6,RAD/S,U7,RAD/S)
CODE(LINKAGE, ENERGY, CONTROLS)
I
I ADDITIONAL COHPUTATIONS FOR INITIAL VALUES OF THETA2, TBETA4, THETA6
I
AUTOZ(OFF)
POA=XA*N1+YA*N2
PBA=ADD(POA,-POB)
VEC2.ADD(PBP23,-POPl,POB)
VEC4=ADD(PBP23,-PAP3,-PBA)
VEC6.ADD(PBP23,-PAP4,-PBA)
DOT21=DOT(PPIP22,Nl)
DOT21.DOT(VEC2,Nl)
DOT22=DOT(PPIP22,N2)
DOT22=DOT(VEC2,N2)
DOT41=DOT(PP3P24,Nl)
DOT41=DOT(VEC4,Nl)
DOT42=DOT(PP.3P24,N2)
DOT42=DOT(VEC4,N2)
DOT61.DOT(PP4P26,Nl)
DOT61=DOT(VEC6,Nl)
DOT62=DOT(PP4P26,N2)
DOT62=DOT(VEC6,N2)

Figure 3, continued. AUTO LEV command file for linkage problem,


99

Table 1. Output from AUTOLEV-generated linkage program.

T U1 U2 U3 U4 U5
(S) (RAO/S) (RAO/S) (RAOIS) (RAO/S) (RAO/S)
0.0000+00 0.000000+00 0.000000+00 0.000000+00 0.000000+00 0.000000+00
5.0000-03 1.510630+02 4.056190+01 -6.688710+00 -1.196030+01 1.481950+00
1.0000-02 7.121130+02 -7.490520+01 -1.364490+02 -2.354970+02 4.826350+00
1.5000-02 4.416300+02 6.634310+01 4.660620+01 8.248630+01 -9.511380+00
2.0000-02 7.266880+02 -2.211200+01 -1.457600+02 -2.497260+02 9.827000+00
2.5000-02 5.874170+02 1.099140+02 4.303390+01 7.666020+01 -9.266040+00
3.0000-02 1.139970+03 -2.844670+02 1.114230+01 2.005970+01 5.749910-01

T U6 U7 BETA GAMMA OELTA


(S) (RAO/S) (RAO/S) (RAO) (RAO) (RAO)
0.0000+00 0.000000+00 0.000000+00 -6.199410-02 4.554400-01 4.875190-01
5.0000-03 8.391770+00 -5.050460+00 2.108810-01 4.492700-01 4.889010-01
1.0000-02 1.991980+02 -4.112510+01 2.160400+00 1.585590-01 5.254020-01
1.5000-02 -5.831870+01 3.367890+01 5.655560+00 4.260890-01 4.938320-01
2.0000-02 2.018030+02 -5.774980+01 8.185140+00 2.095850-01 5.227720-01
2.5000-02 -5.392240+01 3.200380+01 1.210730+01 4.411600-01 4.906720-01
3.0000-02 -1.915770+01 3.270490-01 1.581100+01 4.095150-02 5.246950-01

T EPSILON THETA2 THETA4 THETA6


(S) (RAO) (RAO) (RAO) (RAO)
0.0000+00 1.230870+00 -6.201050-02 7.105400-01 1.007850+00
5.0000-03 1.226190+00 9.219640-03 6.994900-01 1.015600+00
1.0000-02 1.068690+00 2.765550-01 1.968300-01 1.397260+00
1.5000-02 1.209060+00 -1.785830-01 6.582570-01 1.044640+00
2.0000-02 1.086530+00 2.942230-01 2.845290-01 1.324770+00
2.5000-02 1.220110+00 -1.500950-01 6.850170-01 1.025770+00
3.0000-02 1.048360+00 5.418880-02 -9.820460-03 1.582880+00
100

"'0
2.0
'*
0.0

'(j)
-2.0
~
0
&
-4.0
::>

-6.0

-B.O
0.0 2.0 4.0 6.0 B.O 10.0
t (s)

"'0
or-- 1.0
*
0.0

,....... -1.0
u
0
&
1:0... -2.0

-3.0

-4.0
0.0 2.0 4.0 6.0 B.O 10.0
t (s)

Figure 4. Time histories for 10 second run.


101

I ARH
I
DOF(S)
FRAHES(Bl,B2,B3)
PRINCIPAL(Bl,B2,B3)
CONST(L,C,G)
IIBIN.Ul*B13
VBlSTARN.U2*B13
IIB2Bl=U3*B22
VB2STARBl.U4*B22
IIBJB2.US*B31
GAl' =Ul
ZZl' .U2
BE2' .U3
YY2' =U4
AL3'.US
IIBlN.ADD(IIBlN,IIB2Bl)
IIB3N.ADD(IIB2N, IIB3B2)
SIHPROT(N,Bl,3,GAl)
SIHPROT(Bl, B2, 2, BE2)
SIHPROT(B2,BJ,l,AL3)
DIRCOS(B2,N)
DIRCOS(B3,Bl)
DIRCOS(B3,N)
EXPRESS(IIBlN, B2)
EXPRESS(IIB3N,B3)
POINTS(BIBARB2STAR,P)
HASSLESS(BIBARB2STAR,P)
PBlSTARBlBARB2STAR.YY2*B12
V2PTS(N,Bl,BlSTAR,BlBARB2STAR)
VB2STARN.ADD(VBIBARB2STARN, VB2STARBl)
EXPRESS(VB2STARN, B2)
PB2STARP=L*B22
V2PTS(N, B2 ,B2STAR,P)
PPB3STAR.C*B32
V2PTS(N,B3,P,B3STAR)
EXPRESS(VB3STARN,B3)
ALFBIN.DERLV(IIBIN,T,N)
ALFB2N.DERIV(IIB2N,T,N)
ALFB3N.DERIV(IIB3N,T,N)
ABlSTARN=DERIV(VBlSTARN,T,N)
AB2STARN.DERIV(VB2STARN, T,N)
AB3STARN.DERIV(VB3STARN, T,N)
FRSTAR
TORQUE(Bl).LlZ*B13
FORCE(BlSTAR).-HASSBl*G*N3
POINTS(NSTAR)
HASSLESS(NSTAR)
VNSTARN=O
FORCE(NSTAR/BlSTAR).FlZ*B13
TORQUE(BI/B2).L2Y*B22
FORCE( BlSTAR/B2 STAR) .F2Y*B2 2
TORQUE(B2IB3) .L3X*B31
FORCE(B2STAR) __ HASSB2*G*N3
FORCE(B3STAR).-HASSB3*G*N3
FR
KANE
CONTROLS(FIZ, F2Y, LIZ,L3X,L2Y)
PNSTARB 1STAR.ZZI *B13
PBlSTARB2STAR.RIGHT(PBlSTARBlBARB2STAR)
PNSTARB2STAR=ADD(PNSTARBlSTAR,PBlSTARB2STAR)
PB2STARB3STAR.ADD(PB2STARP,PPB3STAR)
PNSTARB3STAR.ADD( PNSTARB2STAR, PB2STARB3STAR)
ANGHOH(NSTAR,Bl)
UNITS(Ul,RAD/S, U2,H/S, U3,RAD/S, U4,H/S, US,RADIS)
UNITS(ZZl,H,GAl,RAD, YY2,H, BE2,RAD,AL3,RAD,C,H,L,H)
UNITS(ANGHOH,N*H*S,HASS,KG,INERTIA,KG*H'2)
UNITS(FIZ,N,F2Y,N,LIZ,N*H,L3X,N*H,L2Y,N*H,G,H/S'2)
CODE(ARH ,ANGHOH ,CONTROLS)

Figure 5. AUTO LEV command file for robot arm problem.


102

Table 2. Output from AUTOLEV-generated robot arm program.

T U1 U2 U3 U4 U5
(S) (RAO/S) (HIS) (RAO/S) (HIS) (RAO/S)
O.OOOD+OO 0.000000+00 0.000000+00 0.000000+00 0.000000+00 0.000000+00
2.5000-01 -2.495080-01 7.214880-01 -5.494650-05 9.973390-01 1.249910-03
5.0000-01 -2.549420-01 1.442970+00 -1.848860-04 2.019650+00 2.878740-03
7.5000-01 -1.339390-01 1.442970+00 2.376450-04 2.032300+00 2.860760-03
1.0000+00 -8.419400-02 1.442970+00 5.127840-04 2.036580+00 2.854530-03
1.2500+00 -5.799810-02 1.442970+00 7.139140-04 2.037920+00 2.857080-03
1.5000+00 -4.224930-02 1.442970+00 8.786490-04 2.037920+00 2.867260-03
1.7500+00 -3.405150-02 7.215270-01 9.859130-04 1.020220+00 -2.724970-03
2.0000+00 -3.146500-02 7.510990-05 1.019020-03 2.266740-03 -7.516880-03

T GAl Zl BE2 Y2 AL3


(S) (RAO) (H) (RAO) (H) (RAO)
0.0000+00 -5.236000-01 2.250000+00 0.000000+00 7.500000-01 0.000000+00
2.5000-01 -5.597810-01 2.340190+00 -3.835110-06 8.740960-01 1.525030-04
5.0000-01 -6.269990-01 2.610740+00 -3.545180-05 1.250890+00 6.562200-04
7.5000-01 -6.730200-01 2.971490+00 -2.495710-05 1. 757680+00 1.373410-03
1.0000+00 -6.995380-01 3.332230+00 7.101580-05 2.266380+00 2.087610-03
1.2500+00 -7.170090-01 3.692970+00 2.253890-04 2.775730+00 2.801390-03
1.5000+00 -7.293890-01 4.053710+00 4.249890-04 3.285230+00 3.516780-03
1.7500+00 -7.387710-01 4.324280+00 6.597980-04 3.667510+00 3.535050-03
2.0000+00 -7.468710-01 4.414480+00 9.117530-04 3.795320+00 2.221650-03

T F1Z F2Y LIZ L3X L2Y


(5) (N) (N) (N*H) (N*H) (N*H)
0.0000+00 6.348000+03 9.860000+02 -5.080000+02 6.350000+01 0.000000+00
2.5000-01 6.348000+03 9.950000+02 -3.397500+02 6.350000+01 0.000000+00
5.0000-01 4.905000+03 -2.000000+00 1.560000+02 4.905000+01 0.000000+00
7.5000-01 4.905000+03 -2.000000+00 4.542030+01 4.905000+01 0.000000+00
1.0000+00 4.905000+03 -2.000000+00 1. 746130+01 4.905000+01 0.000000+00
1.2500+00 4.905000+03 -2.000000+00 1.039220+01 4.905000+01 0.000000+00
1.5000+00 3.462000+03 -1.019000+03 8.604840+00 3.460000+01 0.000000+00
1. 7500+00 3.462000+03 -1.019000+03 8.604840+00 3.460000+01 0.000000+00
2.0000+00 3.462000+03 -1.019000+03 8.604840+00 3.460000+01 0.000000+00
UCIN-DYNOCOMBS - Software for the Dynamic
Analysis of Constrained Multibody Systems
R. L. Huston
T. P. King
University of Cincinnati
Cincinnati, OH 45221-0072, USA
J. W. Kamman
Naval Coastal Systems Center
Panama City, FL 32407, USA

Summary
DYNOCOMBS simulates the dynamics of constrained multibody
systems [1]. The systems simulated may have general (three-
dimensional) motion including translation between adjoining
bodies and closed loops. Arbitrary force systems may be
applied to the bodies and between the bodies.
DYNOCOMBS uses Kane's equations to simulate the dynamics [2].
Partial velocity and partial angular velocity vectors form
fundamental arrays in the development of the governing equa-
tions. DYNOCOMBS also uses Euler parameters to avoid geometrical
singularities.
Constraint equations arising from the geometric and kinematic
constraints (closed loops or specified motion) are appended to
the dynamics equation. The resulting system of equations is
reduced to a consistent set by using orthogonal complement arrays.
The governing differential equations are solved using a fourth-
order Runge-Kutta procedure - although other integration tech-
niques may be employed.
As input, the User supplies a body connection array, geometrical
and physical properties of the bodies, constraint conditions,
applied forces, and initial conditions. As output, DYNOCOMBS
provides a description of the system configuration and movement
at equal time intervals. Forces exerted on the bodies of the
system are also provided.
The language of DYNOCOMBS is FORTRAN.
104

The following paragraphs provide an outline of the theoretical


basis of DYNOCOMBS. Example simulations are also discussed.
Preliminary Considerations
1. Multibody Systems
Figure 1 depicts a typical multibody system as might be studied

Figure 1. A Typical Multibody System

using DYNOCOMBS. The system consists of a series of connected


(or nearly connected) bodies forming an "open-tree" or "open-
chain". The bodies may be connected to each other by free,
spherical, revolute (pin), prismatic (sliding), or fixed joints.
The bodies of the system are labelled and identified by numbers.
An arbitrary body of the system is selected as the "reference
body" and labelled as "body 1". The remaining bodies are then
numbered or labelled in ascending progression through the
branches of the tree system.
In the particular system depicted in Figure 1 if bodies 8 and
105

11 are connected, the system will contain a closed loop. The


system is then no longer an open-chain system. However, it
may be studied as though it were an open-chain, if there is a
geometric constraint equation included in the analysis to
account for the loop.
Finally, in Figure 1 let R be an inertia reference frame in
which the system moves.
Such multibody systems may be used to model a wide range of
physical systems including chains, cables, biosystems, robots,
mechanisms, vehicles and structures.

2. Body Connection Arrays


When the system is labelled and numbered as described above and
as illustrated in Figure 1 each body has a unique adjoining
lower numbered body. (The lower numbered body of body 1, is
the inertia frame R and is assigned the number 0.) The connec-
tion configuration of the system can then be described by an
integer array of labels of the adjoining lower numbered bodies,
called "the lower body array". For example, for the system
shown in Figure 1 the body array LO(K) and the lower body array
L(K) are

°
L (K) ( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13)
and (1)
L(K) = (0,1,2,3,4,1,6,7,6,9,10,10,1)
Observe that once the system is labelled and numbered, the
lower body array L(K) is uniquely determined. Alternatively,
L(K) may be viewed as defining the connection configuration.
That is, by knowing L(K) an algorithm can be written to numeri-
cally describe the system and its configuration.
L(K) may be considered to be an operator on the body number K.
In this context, we can form a lower array to L(K) -- that is,
L(L(K)) [or L 2 (K)], called the "second lower-body array". For
the system shown in Figure 1, L2 (K) is
L 2 (K) = (0,0,1,2,3,0,1,6,1,6,9,9,0) (2)

where L(O) is 0.
106

By continuing this process we can form lower arrays until all


entries are zero. For the system of Figure 1 the complete set
of lower arrays are listed in Table 1.

B01Y
d Num b er
Array 1 2 3 4 5 6 7 8 9 10 11 12 13
L(K) 0 1 2 3 4 1 6 7 6 9 10 10 1
L2 (K) 0 0 1 2 3 0 1 6 1 6 9 9 0
L2 (K) 0 0 0 1 2 0 0 1 0 1 6 6 0
L3 (K) 0 0 0 0 1 0 0 0 0 0 1 1 0
L4 (K) 0 0 0 0 0 0 0 0 0 0 0 0 0
Table 1. Set of Lower Body Arrays for the
System of Figure 1

Observe that once L(K) is known the entire set of lower body
arrays, as in Table 1, can be automatically generated.
Observe further that in addition to defining the configuration
of the system, the L(K) array may be used to automatically
develop the kinematics of the system. For example, for the
system of Figure 1 the angular velocity of body 11, in R, may
be expressed as (angular velocity addition theorem):

~11 = ~10 + ~9 + ~6 + ~1 (3 )

where the "hat" designates the angular velocity relative to the


adjacent lower-numbered body. Observe that the indices of
Equation (3) correspond to the entries in the column of body
11 in Table 1.

3. Transformation Matrices
Consider a typical pair of adjoining bodies Bj and Bk as in
Figure 2. Let n"~ J1
and nk'
~ 1
(i=1,2,3) be orthogonal, dextral
unit vector sets fixed in Bj and Bk . The relative orientation
of th~ bodies can then be defined in terms of the relative
inclination of these unit vector sets. Let SJK be a trans-
formation matrix whose elements are the projections of the
unit vectors from one set to the other (direction cosines).
That is,
(4)
107

Figure 2. Two Typical Adjoining Bodies

The unit vectors are then related to each other by the expres-
sion
n. = SJK n (5)
-Jm mn-kn
[Regarding notation, the J and K in SJK and the first subscripts
on the unit vectors refer to the bodies Bj and Bk , and repeated
indices, such as the n in Equation (5), designate a sum over
the range of ~he index.]
The transformation matrices are seen to be orthogonal: that
is, the inverse is equal to the transpose. Also, they obey
the transitive relation
SJL = SJK SKL (6 )
By repeated use of Equation (6 ) we can obtain a transformation
matrix between the unit vectors of any given body and the in-
ertia frame R. For example, for body S of the system of Figure
1 we have
SOS = SOl S16 S67 S7S (7)

Observe that the indices of Equation (7) correspond to the


column entries of BS in Table 1.
The transforma~ion matrices are used to obtain inertia frame
components of vectors originally referred to body-fixed unit
vectors. That is, if V is a vector expressed in the forms:
(no sum on k or 0) (S)

where n . are unit vectors fixed in R, then the components


-oJ
Vki and Voj are related by the expression:

Von = SOKnmVkm (9)


108

4. Differentiation Algorithm
Since DYNOCOMBS uses Kane's equations, a major aspect of the
analysis is the differentiation of vector quantities (as opposed
to Lagrangian methods which use scalar energy functions). It
happens that many vector quantities of interest are fixed in
bodies of the system. For these vectors, their derivatives may
be calculated by vector multiplication. For example, if : is a
vector fixed in a body Bk , the derivative of r in inertia frame
R is:

df/dt = ~k x ~ (10)
where ~k is the angular velocity of Bk in R.
Equation (10) forms the basis of a series of useful and effici-
ent algorithms used in DYNOCOMBS. The equation shows that
derivatives may be calculated by multiplication. For example,
for the transformation matrices SOK, Equation (10) leads to the
differentiation algorithm
d(SOK)/dt = WOK SOK (11)
where WOK is the 3x3 array with elements:

WOKim = -eimnwkn (12)


where e. is the standard permutation symbol and the ~kn
1mn
(n=1,2,3) are the ~on components of ~k·

5. Euler Parameters, Generalized Speeds


DYNOCOMBS uses Euler parameters as its orientation parameters.
The use of Euler parameters to describe orientation of rigid
bodies has recently become popular among many analysts. Euler
parameters are a set of four parameters €ki (i=1, ... ,4) defined
as follows: Let Bk be ~rought into a general orientation rela-
tive to the adjacent lower-numbered body B. by a rotation
J
through an angle 6 k about a line fixed in both Bj and Bk • If
~k is a unit vector parallel to the line, then the Euler

parameters are [3]:


(i=1,2,3) (no sum on k)
109

(13)

where the Aki are the ~ki components of ~k·

Euler parameters present an alternative to orientation angles.


However, only three orientation angles are required to define
the orientation of a body. Hence, Euler parameters are redun-
dant. Indeed, from Equation (13) we see that the Euler param-
eters are dependent. That is,
(14)

With Euler parameters the kinematic equations take a linear form.


With orientation angles they are nonlinear. Hence, the use of
Euler parameters avoids singularities which can cause numerical
difficulties. Specifically, the Euler parameters are related
to the relative angular velocity components by the equations:

(15)

Also, the transformation matrix SJK may be expressed in terms


of the Euler parameters as:

iJK

(16)

Finally, in formulating the governing equations it is convenient


to use linear combinations of generalized coordinate derivatives
as the fundamental dependent variables of the system. These
variables, called "generalized speeds", cannot generally be
expressed as derivatives of individual coordinate variables.
Hence, with generalized speeds the analysis is said to be
110

be formulated in terms of "quasi-coordinates". In DYNOCOMBS,


relative angular velocity components are used as generalized
speeds with Euler parameters serving as the orientation param-
eters. Equations (15) together with the dynamics equations
(see the following section) thus form the system of governing
first-order ordinary differential equations.

Dynamics
1. Kinematics
If a multibody system has N bodies, the system can have as many
as 6N degrees of freedom. DYNOCOMBS initially treats each
system as being general and thus having the full 6N degrees of
freedom. DYNOCOMBS then reduces the number of degrees of free-
dom by using specialized joints and by accomodating the external
constraints on the system.

Let x t (t=1, .•• ,6N) be parameters describing the degrees of


freedom and let Yt (t=1, •.. ,6N) (generalized speeds) be linear
combinations of the derivatives of the x t . Then DYNOCOMBS
formulates the system kinematics in terms of the Yt and Euler
parameters as described above. Specifically, for the transla-
tion degrees of freedom, DYNOCOMBS uses the relative translation
between adjoining bodies for the Yt and for the rotational
degrees of freedom, DYNOCOMBS uses the components of the relative
angular velocity between adjoining bodies for the Yt' Thus
DYNOCOMBS uses r e 1 a t i v e coordinates.
Using these parameters it is readily seen that the angular
velocity of a typical body Bk of the system relative to the
inertia frame R may be expressed in the form [3]
(17)

wher~ the ~k. are n components of the "partial angular


~m -om
velocity" of Bk in R, as used by Kane, et. al. [2,3]. The
~ktm may be expressed in terms of the transformation matrices.

Hence, by using the body connection array, algorithms are


readily developed for automatic computation of the ~ktm array.
The angular acceleration of Bk in R may be obtained by dif-
111

ferentiation in Equation (17):

( 18)

where the
.
~ktm are obtained from algorithms based upon Equation
(11) •

Similarly, if Gk is the mass center of Bk , the velocity and


acceleration of Gk in R may be expressed in the forms

and (19)

where the VkD are the n components of the "partial velocity"


... m -om
of Gk in R [2,3]. As with the wktm and ~ktm' simple algorithms
have been developed for the computation of the Vktm and Vktm .
By knowing the connection configuration of the system and the
geometric parameters of the bodies, DYNOCOMBS automatically
developes the ~ktm' wktm ' Vktm ' and Vktm arrays. These are the
principal arrays needed for the development of the governing
dynamical equations.

2. Kinetics
Let the system be subjected to an externally applied force
field. On a typical body Bk let this force field be represented
by a single force ~k passing through Gk together with a couple
with torque ~k. Then the generalized applied ("active") force
on Bk , corresponding to the generalized speed Yt' may be
expressed as:

(20)

where Fkm and Mkm are the ~om components of fk and ~k.

Similarly let the inertia forces on typical body Bk be replaced


by a single force fk
passing through Gk together with a couple
with torque ~k. Then fk and ~k may be expressed as [2]

F*
-k
= -mk-k
a and (no sum)
(21)

where mk is the mass of Bk and Ik is the central inertia


dyadic of Bk .
112

The generalized inertia ("passive") force on Bk , corresponding


to the generalized speed y may then be expressed as:

(22)

where F km and Mkm are the ~om components of ~k and ~k·

Finally, if the system is subjected to constraints there will


be constraining forces exerted on the bodies. Let these con-
straining forces be represented on Bk by a force fk passing
through Gk together with a couple with moment ~k. Then the
generalized constraint force, corresponding to Yi' may be
expressed as

(23)

where F km and Mkm are the ~om components of ~k and ~k·

3. Dynamical Equations
The dynamical equations for the system are obtained by using
Kane's equation which may be expressed as [2,3,4]:

i=1, .•• ,6N (24 )

By substituting from Equations (17) to (23) into Equation (24),


the dynamical equations may be written as

( 25)

where the coefficients a ip and fi are:

(26)

and

Fi -(mkVkimVkPmYp + IkmnWkim~kpnyp
+ ersmlksnWkimWkqrWkpnYpyq) (27)

where I kmn are the ~om' ~on components of Jk·

Observe the central role of the Vkim and ~kim arrays in Equa-
tions (26) and (27).
113

4. Constraint Equations
If the system is subject to constraints either by the presence
of closed loops or by specified motion of points or bodies of
the system, there occur constraint equations which may be ex-
pressed in the form

(q=1, ... ,m) (m<6N) (28)

It is shown in [4] that the b qt are related to the generalized


constraint force Fi
by the expression

FI
t
= b qt Aq (29)

where Aq (q=1, ... ,m) are components of the constraint forces


and moments.

5. Governing Equations
Equations (25) and (28) form a set of n+m equations for the
n Yt and the m Aq • Using Equations (29), Equations (25) and
(28) may be written in mattix form as:

• T
Ay =f + B A and By=g (30)

where the elements of the arrays are identified by comparison


with Equations (25) and (28).

Equations (30) are coupled differential/algebraic equations.


As such they are not readily adaptable to differential equation
solvers. However, they may be converted into a "solvable"
system by eliminating the A array. To this end, let C be an
orthogonal complement of B -- that is, an nx(n-m) array C such
that

BC=O or (31)

T
Then by premultiplying the first of Equations (30) by C , the
governing equations become:

CT·
Ay = CT f and By=g (32)

DYNOCOMBS uses a zero-eigenvalue procedure developed by Walton


114

and Steeves [5] to obtain an orthogonal complement array. Sin-


gular value decomposition may also be used [6].

Numerical solution Methods


Equations (26) and (27) show that the coefficients of the gov-
erning equ~tions are explicit functions of the Vktm , Vktm ,
wk ' and wk arrays and the physical and geometrical parameters
tm tm
of the system. Hence, algorithms for the development and solu-
tion of the governing equations might proceed as follows: After
the connection array L(K) and the physical and geometrical
parameters are recorded, initial values of the dependent vari-
ables are determined from the initial configuration of the
system. This initial configuration also defines initial values
of the Euler parameters which in turn can be used to find
initial values of the four kinematic arrays: Vktm , Vktm ,
wktm ' and ~ktm' Then by knowing the applied forces and the
constraints, initial values of a tp ' f t , b qt , and gq are ob-
tained. The governing equations can then be solved to find
incremental values in the dependent variables and the Euler
parameters. The process may then be repeated until the time
history of the dynamics of the system is determined.

DYNOCOMBS uses a fourth order Runge-Kutta integrator to numer-


ically solve the governing differential equations.

Example Problems
To illustrate the use of DYNOCOMBS two problems are considered:
The first is the spatial motion of a robot - one of the desig-
nated example problems of the handbook. Figure 3 depicts the
robot system and an animation of the motion. The physical
and geometrical data as well as the specified kinematical data
are identical to that defined by the handbook editors for this
example. Figures 4, 5, and 6 show the computed tower lift,
tower rotation, and arm pullout.

The second example is a simulation of a towing chain as depicted


in Figure 7. The chain consists of 10 identical pin-connected
cylindrical links each with mass 1.0 slug (14.6kg), length
1.0 ft (0.3048m), and diameter 0.5 in (0.0127m). The ends of
115

the chain are initially separated horizontally by 3.0 ft


(0.9144m) and also vertically by 3.0 ft (0.9144m) as shown in
Figure 7. Figure 7 also depicts the static equilibrium con-
figuration of the system obtained through DYNOCOMBS by damping
gravity induced motion from an arbitrary initial configuration.

From the initial configuration of Figure 7, the lower end of the


chain is accelerated at a uniform rate of 3.0 ft/sec 2
(0.9144m/s2). The resulting movement of the chain during the
subsequent 2.0 seconds is shown in Figure 8.

Final Position

Trajectory

Position

Figure 3. Robot System and Motion Animation


116

Example Problem -- Spatial Robot


Lift of Tower (Zl)

4.50.-----~---~---___,,.._---~---___,

4.04 •••.•.•.•........ ~ ................. ~ ................. ~ ................................ .


·· . ..

3.58 ................. ~ ................. ~ ............... .

Displacement
(m)

3.12 ................. ~ ................. ~ .


· .
• • • • <1 • • • • • • • • • : • • • • • • • • • • • • • • • • • •••••••••••••••••

2.66 ................. ~ ................ ~ ................. ~ ................................. .


···· .. ...
..

2.20:-----:-----:--:------.;----~-----I
o 0.4 0.8 1.2 1.6 2.0
Time
(sec)

Figure 4. Computed Robot Motion: Tower Lift


117

Example Problem -- Spatial Robot


Rotation of Tower (GAl)

-30~------~--------~------~--------~------~

-32.5 ................ ~ ................. ~ ................. ~ ................................. .

-35 ................. ~ ................ ~ ................. ~ ................................. .

Angle
(degree)

-37.5 ................. ~ ................ ~ ................. ~ ................................. .

-40 ................. ~ ................. ~ ...... .

-42.5~-------:---------:-~---------------~-------'
o 0.4 0.8 1.2 1.6 2.0
Time
(sec)

Figure 5_ Computed Robot Motion: Tower Rotation


118

Example Problem .. Spatial Robot


Pull out of Arm (Y2)

3.80,-------7""----:-------7""---------..

3.18 ·················1·················1·················1........... ·····1·················


····· ... .. ..
.. ..... ....
. ·· ... . .
.

D"PI~~~mt ······1···········1········1······1·········
256

I.W ....u.u ... u.............. ! ........... u.... ....... u......

· ..
· . .··
132.... .... : ..
U·····I"·······I·····I·····U
0.70::-------::'-:----~---....,.:-.------=-----.-J
o 0.4 0.8 1.2 1.6 2.0
Time
(sec)

Figure 6. Computed Robot Motion: Arm Pullout


119

Example Problem -- Towing Chain


(Static Equilibrium Position)

-1

-2

Vertical
Position -3
(feet)

-4

-5

-6

o
Horizontal Position
(feet)

Figure 7. Towing Chain: Initial Configuration


120

Example Problem _. Towing Chain


(At = 0.25 sec)

-1

-2

Vertical
Position -3 ""~ ; - .... l. .. _ - ..
: I -~---r;r.- ....
(feet) • I ••••

-4
....• .......••

-5

-6

Horizontal Position
(feet)

Figure 8. Towing Chain Configuration During


0.25 Second Time Intervals
121

Acknowledgement
Partial support for research leading to the development of
DYNOCOMBS has been provided by the National Science Foundation
under Grant MEA-8404414 to the University of Notre Dame and
Grant MSM-8612970 to the University of Cincinnati.

References

[1] Kamman, J. W. and Huston, R. L.: User's Manual for UCIN


DYNOCOMBS-II, National Technical Information Services,
Springfield, VA, Report No. PB87-216594/A05, 1987.

[2] Kane, T. R. and Levinson, D. A.: Dynamics: Theory and


Applications, McGraw Hill, 1985.

[3] Huston, R. L.; Passerello, C. E.; Harlow, M. W.: Dynamics


of Multirigid-Body Systems, Journal of Applied Mechan-
ics, Vol. 45(4), 1978, pp. 889-893.

[4] Wang, J. J. and Huston, R. L.: Kane's Equations with


Undetermined Application with Constrained Multibody
Systems, Journal of Applied Mechanics, 54(2), 1987,
pp. 424-429.

[5] Walton, W. C., Jr. and Steeves, E. C.: A New Matrix


Theorem and Its Application for Establishing Independ-
ent Coordinates for Complex Dynamical Systems with
Constraints, NASA Technical Report TR-326, 1969.

[6] Lawson, C. L. and Hanson, R. J.: Solving Least Squares


Problems, Prentice Hall, 1974.
SPACAR - Computer Program for Dynamic Analysis
of Flexible Spatial Mechanisms and Manipulators

by J.B. Jonker, Twente University of Technology,


and J.P. Meijaard, Delft University of Technology,
The Netherlands.

Abstract
In this contribution the theoretical background of the computer
program SPACAR is presented. The program is based on the finite
element formulation for multi-degree of freedom mechanisms. A
brief survey of the program and its major modules is given.
Three examples, the mechanism and the robot in this handbook
and a cantilever beam vibrating with large amplitude, are
included to illustrate the capabilities of the program.

1. Intoduction

The key point in the finite element theory on which the program
SPACAR is based is the specification of deformation modes in the
description of strain, stress and associated stiffness of the
elements. This way of finite element discretization forms the
algebraic analogue of the continuous field concept for the
description of deformations and stresses of deformable bodies
(Besseling (2]). The definition of the deformation modes, termed
by Argyris (1] "natural modes", includes the specification of
rigid body displacements as displacements for which the
deformations are zero. If the deformation modes are defined by
nonlinear functions of the nodal coordinates, valid for
arbitrarily large displacements and rotations, then also
mechanisms can be analysed. Characteristic for the present
finite element approach to mechanism analysis is that both links
and joints are considered as specific finite elements. The
kinematic constraints of the elements are obtained by imposing
conditions on the deformation modes of the elements. In case of
flexible elements, constitutive equations for the stresses have
to be supplied.
124

The finite element formulation for mechanisms has been


originated by Van der Werff [10] and, in the 1980' s, has
progressed with the development of the description for spatial
mechanisms with flexible links [4,11]. In these publications an
algorithm is presented for the numerical determination of the
geometric transfer functions of multi-degree of freedom
mechanisms. With the aid of the geometric transfer functions,
the equations of motion are directly derived in terms of degrees
of freedom. This approach is based on the principle of virtual
power (Jourdain's principle [8]) and leads to a minimal system of
ordinary differential equations that can be solved numerically
in an effective way. In addition, the geometric transfer
function formalism provides a systematic approach for generating
locally linearized mechanism models.

2. Finite element representation of mechanisms

One of the basic steps in any finite element dynamic analysis of


a mechanism is creating its representation as an assembly of
finite elements of simple geometry. The links may be modelled by
one or more beam elements that may be rigid or deformable,
depending on whether the flexibility is expected to play a role
in the dynamic analysis.

ST Slider Truss
B = Beam
H = Hinge

Fig. 1. Manipulator with six degrees of freedom


125

Fig. 1 shows a manipulator mechanism with six degrees of freedom


which is modelled by three different types of elements. The
hydraulic cylinder is modelled as an active slider-truss
element. The manipulator arms are modelled by beam elements and
futhermore we have six cylindrical hinge elements, some of which
are actuated by torque servos. Hinge elements are also used to
model the wrist of the manipulator.
The location of each element is specified by a set of nodal
coordinates (Xile)EX k , some of which may be cartesian coordinates
(Xik) of the end nodes, while others describe the orientation of
orthogonal triads, rigidly attached at the element nodes, which
will be denoted by (~i Ie). The superscript k is added to show that
a specific element k is considered. We call Xk the configuration
space of the element k. The instantaneous values of the nodal
coordinates determine a fixed number of deformation modes for
the element, which is equal to the number of nodal coordinates
minus the number of degrees of freedom of the element as a rigid
body. In this way we can define for each element a map

(2.1)

where e k is the vector of deformation mode coordinates,


(e i Ie) EE k , some of which are associated with large relative
displacements and rotations (e i Ie) between the element nodes,
while others describe small elastic deformations of the element
and will be denoted by (Ei le ). We call Ek the deformation space of
the element k. The deformation mode coordinates must be
invariant with respect to rigid body motions of the element. This
necessarily implies geometrically nonlinear expressions for the
deformation mode coordinates as functions of the nodal
coordinates. The deformation functions are chosen in such a way
that they have a clear physical meaning. This facilitates the
description of strength and stiffness. The map DIe and its
derivative maps

and
ax. Ie
1
126

playa major role in the derivation of the theory. In the next


sections explicit expressions are presented for the deformation
functions DE of the spatial beam element. This element has been
selected here to be used wherever the theory will be illustrated
at element level.
Fig. 2 shows a spatial beam element in an x,y,z inertial
coordinate system. The configuration of the element is
determined by the position vectors x P and x q of the end nodes and
the angular orientation of orthogonal triads (nx,ny,nz) rigidly
attached to each end point. In the undeflected state the triads
coincide with the axis pq and the principal axes of its cross
section. The rotational part of the motion of the (flexible) beam
is described by the rotations of the triads (nx,ny,n z), which are
determined by rotation matrices RP and Rq. If the beam is rigid,
then the rotation matrices are identical and in the initial
undeflected state they are equal to the identity matrix.

Fig. 2. Beam element, initial and deformed state

The components of the rotation matrices are expressed in terms of


Euler parameters [12]. In this case the rotation matrix R can be
127

written in terms of four Euler parameters ~O'~1'~2'~3 as

R (2.2)

By definition the Euler parameters satisfy the constraint


equation

1, or ~ T~ = 1. (2.3)

The use of Euler parameters avoids singularity problems


associated with Euler angles and has the additional advantage
that the components of the rotation matrices are quadratic
algebraic expressions in terms of these parameters instead of
complicated goniometric functions, as is the case when for
instance Euler angles are used; algebraic expressions are
computationally more efficient than goniometric functions.
with the vector lk=xq-x p , the deformation functions of the
beam element can now be written as follows [3]:

elongation: £~

1
+ - - [2(£~)2+£~£:+2(£:)2+2(£:)2+£~£:+2(£:)2],
30/ 0t
(2.4 a )

torsion: £It Dk [(RPnz,Rqny)-(RPny,Rqnz)]/~/2, (2.4 b )


2 2

bending: £~ Dk -(RPn-Z , lit) (2.4 c )


3 ,

d Die =
4 (Rqnz,lk), (2.4 d )

£~ = Die (RPny,llt), (2.4 e )


5

t: Dl: = -(Rqny,llt).
6
(2.4 f )
128

Here, 111" II and fa" represent the actual length and the reference
length of the element; ( , ) stands for the inner product of two
vectors. The terms in the expression for the elongation El" that
are quadratic in the bending deformations represent the
longitudinal deformation associated with the deflection of the
beam element. The deformation mode coordinates in Eqs. (2.4)
possess the proper invariance with respect to rigid body motion
of the beam element. Since the expressions for the bending
deformations are defined with respect to orthogonal triads
oriented according to the element axis and the principal axes of
its cross section, they have a clear physical meaning. If the
deformations (Ei") remain sufficiently small ( Ej k/ f k«l), then
in the elastic range they are linearly related to known beam
quantities as normal force a 1 k, twisting moment a2" and bending
moments a 3 k, a4 k, ask, a6 k by the beam constitutive equations [3]

(2.5)

where Sk is a symmetric matrix containing the elastic constants.


In addition to the physical deformations we must consider
the condition (2.3) to be imposed on the Euler parameters. For
each orthogonal triad we introduce a deformation function of the
so-called lambda element

(2.7)
Then the constraint equation for the Euler parameters can be
treated as an undeformability condition (E "=0) for the lambda
element.

3. Kinematical analysis

A kinematic mechanism model can be build up with finite elements


by letting them have nodal points in common. In this way, the
configuration spaces of the individual elements can be regarded
as subspaces of the mechanism configuration space X, that is

(3.1)
129

In the same way the element deformation spaces can be regarded as


subspaces of the space E of deformation mode coordinates for the
entire mechanism. since deformation mode coordinates (eik) are
only related to the element k, E is the direct sum of the spaces
Ek, that is

E (3.2)

The deformation functions of the individual elements can be


taken together in a continuity map for the entire mechanism; we
write symbolically

D = 2 Dk : X ~ E, or e = D(x). (3.3)
k

The continuity map in (3.3) constitutes the basic equations for


the kinematic analysis. The spaces X and E can now be decomposed
into subspaces in accordance with the constraint conditions and
the choice of the generalized coordinates. We have

X and (3.4)

where the superscripts o,e and m denote the space of invariant,


dependent and independent (generalized) coordinates respect-
ively. The problem now formulated for the kinematic analysis is
the determination of the nodal coordinates and deformation mode
coordinates for given values of the generalized coordinates
(xim,ei m). Hence determine the maps

(3.5)

(3.6)

The maps F X and Fe are called the geometric transfer functions


of the mechanism; they express the configuration and deformation
state as explicit functions of the set of generalized
coordinates. The velocity vectors x and e at (x,e) can be
calculated from Eqs. (3.5) and (3.6) as
130

.
x
aF x
xm +
aF x
em , or
.
x DFX'(XM,eM), (3.7)
axm ae M

.
e =
aF e
xm +
aF e
em , or
.
e DF e • (xm ,eM) , (3.8)
axM aeM

where (') denotes differentiation with respect to time. The


derivative maps DF x and DF8 are called the first-order geometric
transfer functions. Again differentiating with respect to time
yields the accelerations

x (3.9)

e (3.10)

where D2 F x and D 2 F e are the second-order geometric transfer


functions.
We consider now how the geometric transfer functions
correspond with the continuity equation (3.3). Substituting Eqs.
(3.5) and (3.6) into Eq. (3.3) yields the algebraic relation

(3.11)

Due to the nonlinear character of the continuity equations the


unknown geometric transfer functions F X and Fe cannot be
calculated directly from the equations in (3.11). It will be
shown first that expressions for the first-order geometric
transfer functions can be obtained from the derivative map DD.
Differentiation of Eq. (3.9) yields with the chain rule

(3.12 )

The derivative map DD(X) is composed from the derivative maps DDt
of the individual elements. For expressions of the derivative
maps DDt, the reader is referred to [4]. In accordance with the
decomposition in Eq. (3.4), the system in (3.12) can be
partitioned as
131

DCDO
=
W"]
DFeO] DODo (3.13)
DF eID DODID DCDID D'D']
DIDDID DF xC
DF ec DOD c DCD c DIDD c DF xID

The superscripts °, and ID combined with the operator D


represent partial differentiation with respect to the
corresponding nodal coordinates (Xjo),(XjC) and (XjID). The only
unknowns in this equations are the partial maps DF xC and DF ec .
For the other partial maps we have

DF e °
[aeo , aeo] [0, 0], DF eID [aeID , ae ID ] [0, I],
axID ae ID axID ae ID
(3.14)

DF xO [aXO , axe 1 [0, 0], DF xID [aXID , axID 1 [I, 0],


axID ae ID axID ae m
(3.15)

where 0 and I are zero and identity matrices. If the mechanism is


not in a singular configuration, then the unknown first-order
geometric transfer function DF x C can be calculated from Eg.
(3.13) by

(3.16)

For the first-order geometric transfer function DFec, we obtain


from Eg. (3.13)

(3.17)

Expressions for the second-order geometric transfer functions


can be obtained from the derivative map DD in a similar way. By
differentiating Eg. (3.12) and using the decomposition in Eg.
(3.4) one obtains for the unknown second-order geometric
transfer functions D2 F xC and D2 F ec
132

(3.18 )

and

(3.19 )

with the first-order and second-order geometric transfer


functions a new configuration x with corresponding deformations
e can be approximated from a previous configuration Xo and
deformations eo by

Xl = Xo + DF~'(~Xm,~em) + t(D2F~'(~Xm,~em» '(~xm,~em),


(3.20)
el eo + DF~'(~Xm,~em) + t(D2F:'(~Xm,~em» '(~xm,~em),
(3.21)
where
and

A Newton-Raphson based iteration process is applied in order to


guarantee that ultimately

o. (3.22)

4. Dynamical analysis

4.1. consistent mass formulation for the flexible beam element

The inertia properties of the distributed mass of the flexible


beam element are described by using consistent mass matrices.
The derivation of the consistent mass formulation for the
flexible beam element is based on the elastic line concept [7].
In order to account for the distributed inertia forces of the
element, it is necessary to specify the elastic line
configuration of the element in terms of the nodal coordinates
(Xik'~ik) and the flexible deformation mode coordinates (Ei k ) so
that the global position of every point on the elastic line is
uniquely determined by these coordinates. At the boundary
between the elements, the position and orientation should be
133

completely determined by the position and orientation of the


corresponding node in order to guarantee structural continuity.
The global position vector X S of an arbitrary point S on the beam
element in the undef1ected state is specified in terms of the
cartesian nodal coordinates (Xjk) as

(4.1)

where the coefficient matrix ~ is defined by

~ = 1-~ o o ~ 0 0 (4.2)

o 1-~ 0 o ~ 0

o o 1-~ o 0 ~

with ~ being a normalized coordinate (O~~~l) along the element


axis measured from point p. Let (£jk,i=3,4,S,6) be the flexible
deformation mode coordinates representing the bending modes of
the element k, defined in Eqs. (2.4). Their geometric meaning is
visualized in Fig. 3.

Fig. 3. Visualization of deformation modes representing the


deflection of the spatial beam element
134

Using cubic polynomial interpolations for the bending


deformations, the global position vector r S of point S in the
deflected state of the element can be expressed as a vectorial
sum of the vector X S of the point S in the undeflected state and
the elastic bending deformation with a displacement field
expressed in terms of the flexible deformation mode coordinates
( £ 1 k) as

(4.3)
where
and (4.4)

Here, Ck is an orthogonal matrix relating the principal element


axes in the initial undeflected state to the global (x,y,z)
coordinate system. The polynomial equation (4.3) shows that the
displacement field associated with the bending deformation of
the beam element is described with respect to local coordinate
systems that coincide with the orthogonal triads (ni,ny,ni) at
the element nodes p and q. The interpolation functions satisfy
differentiability requirements and with expression (4.3) the
completeness and continuity requirements for the element are
fulfilled.
In order to apply Eq. (4.3) as a basis for the consistent
mass formalism of the element we turn to the use of the principle
of virtual power. The general consistent mass formulation is
found by equating the virtual power of the distributed inertia
forces and the virtual power of the equivalent forces at the
element nodes. The virtual power of the distributed inertia
forces, associated with the elastic line configuration of the
beam element, can be expressed by the scalar product
1
-mkf kf<r S ,i-S>dE, (4.5)
o
135

where mit is the mass density of the element per unit of length
and tit is the length of the element. The virtual velocity vector
is and the acceleration vector i- s are obtained by
differentiating Eq. (4.3) twice with respect to time. Evaluation
of Eq.(4.5) yields

1
-mitt t !<i s ,.rs>d~
0

ilt (fin)e ] ,
_[XItT, pT, pT] [ (MXX)~ (MXA)~ (Mx E) ~ x k
+

(MAx) ~ 0 (MA E) ~ P 0 (4.6)

(MEX) ~ (MEA) ~ (MEE)~ tit It


(O'in) e

where

(4.7)

Here, Me It -is the consistent mass matrix of the element k


and (Jet.it) ·i k and (Lelt.ik).i k are quadratic velocity vectors
representing the rate dependent inertia forces associated with
the vectors ik and it. In [4], expressions are presented for the
partioned mass matrices and for the rate dependent inertia
vectors in Eqs. (4.6) and (4.7). It is shown in [4] that the
matrices (Mx A) e It, (ME A) e It and the components of (J x ) e k and
(JE)e k in Eq.(4.7) depend linearly on the flexible deformation
mode coordinates (tik). This implies that the dynamics of the
spatial beam element, undergoing only a deformation along the
length of the element, is completely determined by the
translational mass matrix (MXX)e k , defined by

(4.8)

substituting Eq. (4.2) in Eq. (4.8) yields after evaluation of


the integrals
136

mit/it
(Mxx) ! 2 0 0 1 0 0 (4.9)
6
2 0 0 1 0

2 0 0 1

2 0 0
syrom.
2 0

This is the same mass matrix as occurs in linear finite element


analysis representing the consistent mass matrix for a pin-joint
bar element [7]. The matrices (MXE)c k and (MEX)c k represent the
principal dynamic coupling between the gross motion and the
elastic deformation of the element.

4.2. Equations of motion

By means of the first-order and second-order geometric


transfer functions, the equations of motion are formulated in
terms of the degrees of freedom, thereby eliminating the
constraint "forces associated with the rigid link motion. With
the notation OFT = [OF XT , OF eT ] the equations of motion can be
cast in the matrix form

[OFTMDF][~M] = OFT[ f-f in ] - OF™'(O2F.(xM,eM)) .(xM,eM).


eM -CS-CSin (4.10)

Here, [OFTMDF] denotes the system mass matrix, f the vector of


externally applied nodal forces and cs the stress vector which
describes the loading state of the elements constituting the
mechanism. The vectors fin and csin represent the rate dependent
inertia forces of flexible elements, defined in Eq. (4.7).
The stresses of the flexible elements are characterized by
Hooke's law as defined in Eq. (2.5). In case of generalized
coordinates (eim) associated with large relative displacements
and rotations, constitutive equations describing the behaviour
of built-in driving actuators can be added to the system of
equations. In this way it is possible to study the dynamics of
137

active spatial mechanisms such as manipulators and robot


mechanisms [4]. The equations of motion form a non-linear system
of ordinary differential equations of second order and descibe
the general case of coupled rigid link motion and small elastic
deformation.

4.3. Linearized equations of motion

Using a Taylor series expansion of Eq. (4.10) about a nominal


trajectory (xom,e om) and disregarding second and higher order
terms yields the linearized equations of motion

+ [Ko+G~+G~ J[ 8Xm] [DFXT ,DF eT ][ H] .


8e m -80"

(4.11)

The coefficient matrices may be divided into the symmetric


matrices Mo, being the system mass matrix, Do, the damping
matrix, Ko, the system stiffness matrix and Go F , the geometric
stiffness matrix, and the non-symmetric matrices Co and Go II ,
being the geometric damping matrix and the dynamic stiffness
matrix respectively. The coefficients subscribed with a 0 are
evaluated along the nominal trajectory whereas the perturbation
of a coordinate is denoted by 8. The nominal trajectory
determines the position, velocity and acceleration of the
mechanism with the restriction that all flexible deformations of
the links are suppressed. The calculation of the coefficient
matrices in Eq. (4.10) fits naturally in the framework of the
geometric transfer function [4]. The linearized
formalism
equations are of interest from both analysis as well as control
point of view. For analysis, they enable us to study the
stability of highly complex dynamic systems. From the point of
view of manipulator control the linearized equations provide a
basis for the development of reduced order linearized models
suitable for control system design.
138

5. The program SPACAR

The computer program SPACAR is based on the finite element


theory for multi-degree of freedom mechanisms as presented
above. The program which is written in FORTRAN-77 language is
capable of analysing the dynamics of spatial mechanisms and
manipulators with flexible links. The program system contains
six modules, which obtain their input from format free user
supplied data. For every module appropriate key words have been
defined. In the following a short description of every module
will be given. The functional connections between the modules
are illustrated in Fig. 4.

manipulation
task
1
mechanism
topology ~
geometry §~I=l EJ~ graphics

I ~8 1
dynamic output
properties
initial
~ DYN
-l~ SIM ~ data set

conditions
L--_----J ~ B ---7
E-E
~
linear
coefficient
data set

1
eigenvalues
1
actuator models
modal control laws
decomposition

Fig. 4. Functional relations between modules in SPACAR

The kinematics module, KIN, analyses the geometry of motion


of the mechanism. The kinematic properties of the motion are
specified by the geometric transfer functions. The following
steps are provided by the kinematics module:
139

o Definition of the mechanism (topology and geometry).


o System preparation.
o Calculation of the geometric transfer function values.

The dynamics module, DYN, generates the equations of motion


in a form suitable for numerical integration. Furthermore, it
generates and solves the equations for the kinetostatic
analysis. The inertia and stiffness properties and the initial
conditions should be available from data.
The inverse dynamics module, INVDYN, performs the inverse
kinematics and dynamics and generates the setpoints for the
simulation of manipulator dynamics. The desired motion of the
manipulator is described by means of manipulation tasks provided
by the user.
The linearization module, LIN, utilizes the outputs from the
dynamics module and the inverse dynamics module for the
determination of the linearized equations of motion. The
linearization module provides for:

o The evaluation of the matrix coefficients in the linearized


equations of motion.
o The calculation of the eigenvalues and eigenvectors of the
linearized equations.
o Time-domain solution of the linearized equations that
describe the perturbation response of the mechanism about the
predetermined nominal motion.

The simulation module, SIM, utilizes the outputs of the


previously introduced modules for the purpose of dynamic
simulation. Several integration routines are embedded in the
simulation module to calculate the time-domain solution of the
nonlinear differential equations of motion. For the simulation
of the dynamics of active mechanisms and manipulators, actuator
models and control laws can be provided through user supplied
subroutines. All output data is stored in separate datasets and
can be plotted afterwards by the PLOT program. For a description
of the SPACAR modules, execution programs, keywords and standard
tests, the reader is referred to the SPACAR documentation [5].
140

6. Examples

6.1. Mechanism

The bodies of the first test example are modelled by plane beam
elements, one element for each limb, and the spring is modelled
by a plane truss element. The masses are replaced by equivalent
nodal masses. The equation of motion for the generalized
coordinate ft(t)-ft(O) is integrated by the routine of [9]. In Fig.
5 the angle ft is given and Fig. 6 shows the mean normal force in
the coupler K2.

6.2. Robot

Because of the discontinuities in the drive functions, the


equations of motion for the second test example are integrated by
the classical fourth-order Runge-Kutta method with a stepsize of
0.05 s. Fig. 7 shows the lift of the tower Zl' the pull-out of
the arm Y2 and the yaw angle Y1'

16

12

~ 8
co.
~ 4
~
0

-~.O 2.5 3.0


TIME (S)

Fig. 5. Angle ft
141

280
240
Z
200
~ 160
f2
<l. 120
~
a:
0
z 80
40

0£Xx>
TIME (5)

Fig. 6. Normal force in coupler K2

5
~
......
N
4
>-
"'C
ffi 3

~ 2
.....
>- 1
~
......
..... 0 y1
N

-0.0 0.5 1.0 1.5 2.0


TIME (5)

Fig. 7. Configuration of the robot


142

6.3. cantilever beam

We illustrate the capabilities of modelling flexible bodies by


an additional example. A clamped-free beam is bent to a
semicircle by an end moment and then released. The length of the
beam is 3 m, its flexural rigidity 1 Nm 2 , its normal stiffness
infinite, its mass per unit of length 1 kgm-l, and no damping is
modelled. The beam is subdivided in six plane beam elements with
a length of 0.5 m. The motion is simulated over 20 seconds; Fig.
8 shows the tip position: the x-direction is perpendicular to the
undeflected beam axis and the y-direction is along this axis.
Note that high frequency components are present. More accurate
results can be obtained by sUbdividing the beam in more elements.
Other examples can be found in [4] and [6].

3~----~~------------~=---------~

~
Z
o
~
U:i
~
a... -1
~

-2

-30~-L-LJ-~~-8~-L-LJ-~~-lL6~~~20

TIME (5)

Fig. 8. Tip position of the cantilever beam


143

References

[1] Argyris, J.H., et al., Finite Element Method - The Natural


Approach, Compo Meths. Appl. Mech. Eng. 17/18 (1979),
pp.1-106.
[2] Besseling, J.F., The complete Analogy between the Matrix
Equations and the continuous Field Equations of structural
Analysis, International symposium on Analogue and Digital
Techniques Applied to Aeronautics, Liege, 1963, pp.223-242.
[3] Besseling, J.F., Nonlinear Theory for Elastic Beams and
Rods and its Finite Element Representation, Compo Meths.
Appl. Mech. Eng. 31 (1982), pp.205-220.
[4] Jonker, J.B., A Finite Element Dynamic Analysis of
Flexible Spatial Mechanisms and Manipulators, Doctor's
Thesis, Delft University of Technology, 1988.
[5] Jonker, J.B., et al., SPACAR User Manual and System
Description, Delft University of Technology, Laboratory
for Engineering Mechanics, 1988, report TM872.
[6] Jonker, J.B., A Finite Element Dynamic Analysis of Spatial
Mechanisms with Flexible Links, to appear in Compo Meths.
Appl. Mech. Eng., 1989.
[7] Przemieniecki, J.S., Theory of Matrix structural Analysis,
MCGraw-Hill, New York, 1968.
[8] Schiehlen, W., Technische Dynamik, Teubner, stuttgart,
1985.
[9] Shampine, L.F., and Gordon, M.K., Computer Solution of
Ordinary Differential Equations, The Initial Value
Problem, W.J. Freeman, San Francisco, CA, 1975.
[10] Werff, K. van der, Kinematic and Dynamic Analysis of
Mechanisms, A Finite Element Approach, Doctor's Thesis,
Delft University of Technology, 1977.
[11] Werff, K. van der, and Jonker, J.B., Dynamics of Flexible
Mechanisms. In: Computer Aided Analysis and optimization
of Mechanical System Dynamics, Ed. E.J. Haug, springer-
Verlag, 1984, pp.381-400.
[12] Wittenburg, J., Dynamics of Systems of Rigid Bodies,
Teubner, stuttgart, 1977.
NBOD & DISCOS - Dynamic Interaction
Simulation of Controls and Structure
by Harold P. Frisch
NASA Goddard Space Flight Center
Greenbelt, Maryland U.S.A.

ABSTRACT

The general purpose multibody dynamics program NBOD and its follow-on companion
DISCOS were developed with the expressed purpose of supporting spacecraft attitude
control system design and analysis needs. During the past 2 decades, the interplay of
NASA requirements with a desire to maximize software application generality has guid-
ed their development. The intent of this chapter is to chronologically outline the major
technological advancements that enabled the development of these codes. Underlying
theory is presented at the highest level with an emphasis on providing engineering in-
sight needed for basic understanding and to judge program suitability for particular
applications.

Introduction

During the early 1960s, NASA spacecraft designers were conceiving and building
spacecraft with innovative controllers faster than project support engineers could derive,
code, and debug system stability and performance analysis programs. In a desperate
attempt to reduce analysis cost, several efforts were initiated within the aerospace com-
munity to create a general purpose design and analysis capability. Researchers were
convinced that it was feasible; project support engineers were skeptical; they felt that pro-
gram complexity, validation, development, and computational cost problems could never
be overcome. Implementation and need realities soon tempered the enthusiasm and skep-
ticism of both groups. Program developers had great difficulty meeting delivery schedules,
146

securing enthusiastic user groups and, hence, fmding sustained sources of support. Project
engineers had no recourse for complex multibody dynamics problems; they were forced
to use the new capabilities, and only then did they slowly begin to believe in their predic-
tive capabilities. Despite this adverse situation, several groups developed in-house pro-
priety codes with impressive capability, and the NASA/GSFC brought both NBOD &
DISCOS into the public domain. These two multibody codes are still in active use within
the aerospace project support community. User groups within other communities, such
as biodynamics, are developing.

NBOD's Origin

From the perspective of NBOD development, the program SADII by Velman and Haupt,
at Hughes Aircraft, and the theoretical work of Hooker, at Lockheed, were foundational.
In 1967 NASA/GSFC and Hughes Aircraft were collaborating to develop a dual-spin
spacecraft attitude control system design capability. At the same time research groups
at Hughes Aircraft, UCLA, Aerospace Corp, NASA/JPL, TRW, Lockheed, et al. were
introducing multibody theory to the aerospace community. The program SADll applied
evolving general purpose multibody theory to the dual-spin research activities at Hughes.
An outline of its theoretical basis can be found in Reference 1; unfortunately, all detailed
equation development work exists in several 1967 limited distribution interdepartmental
correspondences by John Velman and Marty Haupt.

The theoretical foundation of SADII and its GSFC follow-on successor NBOD is
Velman's nested body approach. Rather than viewing a multibody system as N individual
bodies, Velman recognized that more computationally efficient recursive relations would
result if the system was viewed as N nests of bodies. The i-th nest is defined as all bodies
outboard ofthe i-th hinge with hinge I defined as body I's connection to inertial space.

Classical Newton-Euler methods are used to define equations of motion for each nest.
These are obtained by equating time rate of change of momentum for each nest to the
sum of all external loads acting on the nest. The external load set includes all constraint
loads acting on the nest at the hinge point which connects it to the inboard portion of
the multibody system. Constraint and other loads internal to the nest cancel because
they appear in equal and opposite pairs. The major limitation imposed in SADII and
NBOD is that relative motion between rigid bodies is restricted to be rotational; there
was no need then to allow a general translation capability. Furthermore, from our perspec-
tive, multibody theory had not yet advanced to that stage. The rotation only limitation
permitted the analytic elimination of all forces of constraint within the system. The state
147

vector for resultant vector-dyadic equations of motion contained an inertial angular velocity
vector for each nest and the inertial linear velocity vector for the composite system.
Velman recognized that more computationally efficient recursive relations would result
if each inertial angular velocity vector was rewritten as a sum of relative velocity vec-
tors. The equations in final matrix vector-dyadic format are

I 00 = " + Pc + Pe + Ph,

where I is a symmetric inertia matrix of dyadic expressions that can each be computed
via recursive relations. 00, a column matrix of relative velocity vectors, ", a column
matrix of gyroscopic cross coupling loads, Pc, Pe, and Ph are respectively the column
matrices of hinge constraint loads, external loads, and all active control and passive loads
acting at nest hinge points.

Determination of the hinge constmint load vector Pc was a major computational prob-
lem for SADII. The solution method used a Lagmnge multiplier technique which
culminated with a matrix inversion step. Once this was accomplished and the result in-
cluded in the motion equations, a second matrix inversion was required to set equations
up in a format compatible with numerical integmtion. Two matrix inversions per in-
tegmtion cycle were intolemble. This effectively limited the application life of SADII
at NASA/GSFC.

The constmint torque computation problem was resolved in Reference 2 by Hooker in


1970. There Hooker defines a vector space in which motion occurs and an orthogonal
vector space in which motion cannot occur. By the simple use of unit vectors defined
along each Euler rotation axis at each hinge, the vector space in which motion is allowed
is defined. All constraint load vectors are orthogonal to this vector space. The resultant
set of scalar equations used for numerical integmtion is obtained by a sequence of vec-
tor dot products that project vector-dyadic equations of motion into the space in which
motion is allowed. Since all constraint loads are orthogonal to this vector space, their
projections are identically equal to zero and need not be computed. Topology dependent
patterns can be used to optimize computational speed at this step. It was immediately
clear that the elimination of one matrix inversion per step would significantly enhance
computational speed. This provided the justification to develop a new genemtion
multibody code, namely NBOD.

NBOD makes use of Hooker's concept to obtain the scalar equations of motions needed
for numerical integmtion. To satisfy evolving spacecraft control analysis needs, Ve!man's
original equations were redeveloped to accept momentum wheels within rigid bodies;
148

all rigid bodies may be gyrostats, to accept point masses at limb ends and to accept
body flexibility. Gyrostats were essential for spacecraft control system modeling, point
masses were needed to model nutation dampers and flexibility was needed to model solar
arrays, antennas, and other flexible appendages. There was never any need or thought
given to including a topological loop capability. Provision was also made for arbitrary
user-defined nongyroscopic loads, such as those associated with an active attitude con-
trol system. These can be defined by any user-coded set of nonlinear algebraic and dif-
ferential equations. NBOD provides a clean interface between the equations of motion
solution routines and the user specified inputs.

NBOD Lessons

The ability to define a gyrostat with one or more high-speed momentum wheels was
an absolute necessity for spacecraft controls analysis. It is not practical to model sym-
metric momentum wheels as distinct bodies; determination of associated kinematics is
computationally intensive and not needed for overall system state determination. The
inclusion of a point mass capability has proven to be useful in a variety of situations.
The inclusion of a flexible body capability was determined to be feasible; however, it
became apparent while coding the relevant equations that computational speed would
be slow and that a better theoretical foundation was needed. Older versions of NBOD
still retain a terminal flexible body capability; the newest versions have had that capability
removed. The original numerical integration method was fixed step fourth order Runge
Kutta; other methods can and have been easily substituted. An ability exists to input
engineering judgement commands. Many physically realizable inertia and gyrodynamic
loading effects are identified; users may inhibit recomputation of those which are judged
to be near constant or zero. In application, the balance between computational speed
improvement and associated numerical error accumulation is poor. The capability is now
rarely used. A default output data subroutine exists. Users are expected to edit it to suit
problem unique needs and to then pass data to a data plotting facility. Users are ex-
pected to write a subroutine to define all nongyroscopic loads such as nonlinear springs,
dampers, motors, and external loads. Through many years of application experience,
this user demand has proven to be most desirable. An analogous demand has therefore
been placed upon DISCOS users. For diagnostic purposes, users may request an an-
notated listing of all equations of motion in a vector-dyadic format as numerical integra-
tion is proceeding. References 3, 4, and 5 are still the primary references for NBOD;
new versions differ only in cosmetics. Those in need of a flexible body capability are
referred to DISCOS. As a point of reference, NBOD is based upon an Order N2 recur-
149

sive algorithm, with less generality but still very similar to what is currently being
rediscovered in the 1987 + literature. It has been shown through the years that, when
applicable, NBOD's recursive algorithm will consistently run several times faster than
DISCOS's Order N3 algorithm.

Table 1 is provided to illustrate the pitfalls associated with any attempt to make definitive
statements relative to computational speed without providing associated problem detail.
The problem solved is known as the Wittenburg chain. It consists of a folded chain of
6 rigid bodies with one degree of freedom (dot) at each hinge. The gimbal axes at either
end of each body are orthogonal to each other. The root body is fixed, while the rest
of the chain drops in a gravity field. Extremely high accelerations are encountered dur-
ing the resultant whipping action of the chain; various levels of damping are used to
moderate associated accelerations. CPU seconds for a 10-second simulation are provided.
In Table 1, different integration methods are explored for three different levels of hinge
viscous damping (strong, moderate, and weak).

Table 1. DISCOS/NBOD RELATIVE SPEED


CPU seconds for 10 seconds real time
Viscous Damping Viscous Damping Viscous Damping
Strong Moderate Weak

NBOD FxRK 1023 NBOD FxRK 1009 NBOD FxRK 1005


NBOD RKF 1106 NBOD RKF 644 NBOD RKF 995
NBOD ABM 695 NBOD ABM 183 NBOD ABM 385
NBOD BDF 1065 NBOD BDF 1893 NBOD BDF 4481
DISCOS FxRK 3726 DISCOS FxRK 3696 DISCOS FxRK 2472
FxRK - Fixed Step Runge Kutta ABM - Adams Bashford Moulton
RKF - Runge Kutta Fehlberg BDF - Backward Differentiation

DISCOS's Origin

In 1972 NASA made the decision to initiate a major effort to develop a new state of
the art multibody dynamics capability. In 1973 proposals were received and evaluated.
A contract was awarded to Martin Marietta, Denver, for the development of DISCOS.
As with NBOD, evolving needs dictated program contents. Body flexibility, 6 degrees
of freedom between contiguous bodies, linearization of equations of motion, and single
input-single output transfer function frequency domain analysis were major capability
goals. By 1977 all initial objectives were met, and DISCOS was released into the public
domain. From 1977 to 1979 additional capability was identified, developed, and added
to produce the current version of DISCOS. It was released in 1979. It should be remarked
150

that the DISCOS development team's primary focus was on providing a simulation
capability for very complex problems; it was assumed that special purpose programs
would be developed for simple problems. As a consequence, the team did not feel
compelled to create extensive internal coding logic to recognize and solve simple
textbook type problems with an efficiency comparable to special purpose codes.

During the 1979 to 1987 period, DISCOS capability satisfied NASA's needs. Fur-
thermore, there were no major analytic advancements that could be used as justifica-
tion for the development of a DISCOS upgrade. In 1988 NASA's commitment to
the development of a space station flight telerobotic servicer and its ongoing large
flexible spacecraft analysis needs, coupled with major analytic advances in multibody
equation formulation and in the availability of low-cost parallel processor work sta-
tions, has provided the justification needed to initiate a major upgrade to DISCOS;
namely, Order N DISCOS.

DISCOS Flexible Body Characterization Theory

The theoretical foundation of DISCOS rests on the work of DISCOS coauthors Bodley
and Park, provided in Reference 6. In that work a general formulation is used to
determine the influence of structural flexibility on the dynamic response of spinning
spacecraft. The formulation uses a general Lagrange approach to determine the equa-
tions of motion for the j-th body; these are each of the form

where Uj contains all body j velocity state variables, Mj is its mass matrix, Gj all
state and time dependent forces acting on body j, and Bl*A. all body j interconnec-
tion constraint forces. A. is a column matrix of to-be-determined Lagrange multipliers.
Unlike NBOD and many other multibody codes, DISCOS does not invert a large
order system mass matrix. The order of the symmetric body j mass matrix that it
must invert is 6 + the number of flexible body modes + the number of embedded
wheels; this is not a major computation problem. The computational burden in
DISCOS is associated with inverting the matrix needed to determine the Lagrange
multipliers of column matrix A..

The incorporation of body flexibility is based upon the following modal expansions
for body inertia and momentum:
151

Body Mass M = Mo

Moment of Inertia J = Jo + Jlrn*Qrn + J2 rn ,n*Qrn*Qn

Static Mass Moment S = So + Slrn *Qrn

Linear Momentum L = Lo + LIm *Qrn

Angular Momentum H = Ho + Hlrn*Qrn + H2rn,n*Qrn*Qn

where repeated index implies summation, Qrn are modal coordinates. Coefficients
[Mo,Jo,So,Lo,Ho] are mode independent (rigid body), [Jl,SI,Ll,Hl] linear mode depen-
dent, and [J2,H2] quadratic mode dependent. All linear and quadratic terms are retained
within DISCOS computation. Each coefficient is defined as a mode dependent volume
integral over the j-th flexible body. All mode dependent gyrodynamic terms within the
equations of motion are functionally defined in terms of these coefficients. Either orthog-
onal modes from conventional eigenanalysis or non-orthogonal modes from any other modal
synthesis procedure can be used. There are no assumptions within DISCOS that place restric-
tions on modal synthesis procedure method. The need for not placing modal synthesis pro-
cedure restrictions stems from lessons learned during the development of Reference 7.
Through the years this freedom of choice has proven to be essential for the characteriza-
tion of flexible bodies interior to the multibody system.

Disparaging comments have recently appeared in the literature relative to neglected terms
in DISCOS and all other multi flexible body codes, Reference 8. In response, users of
multi flexible body software codes MUST take problem specific demands into account when
defining a simulation model. The modeling of the dynamics of a cantilever beam on a
moving base should have been performed with a chain of spring-connected rigid or flexi-
ble bodies. This problem is an excellent example of how important gyrodynamic effects
will be lost if due consideration is not given to problem specifics and the modeling limita-
tions imposed by the underlying methods used in multi flexible body theory to characterize
body flexibility.

Constraints and Kinematics of Hinge and Sensor Points

A hinge point defines where a body is to be connected to a contiguous body; sensor points
are all other points at which kinematic information is needed. For example, momentum
wheels, spacecraft attitude sensors, and control actuators are located at sensor points.
During NBOD application it was recognized that a lumped stiffness model of a complex
antenna support mechanism could not be modeled by a simple rotational hinge. DISCOS
152

pennits 6 degrees of relative freedom at every hinge point. Hinge-point reference frames
are defmed on each body. Users then define kinematic constraint conditions between con-
tiguous pairs of hinge-point reference frames. Each of the six relative degrees of freedom
may be defmed as either kinematically constrained (fixed), free, or rheonomic (defined
by an a-priori function of time and state.) To support antenna deployment studies through
lockup and studies of antenna slewing between hard stops, it was also found necessary
to include a capability to allow dofs to switch between free and fixed with switching logic
provided via user-defined code. Constraints associated with rolling and sliding along curved
arcs and surfaces are not easily implemented; this is one of the subject areas under con-
sidemtion for Order N DISCOS.

Seveml major technology advances were required to successfully implement the time depen-
dent constraint capability. Within the fonnulation for setting up the matrix equation which
defmes the Lagrange multiplier vector A, provision had to be made for user-defmed con-
straint functions. These functions provide the ability to prescribe dof motion by an a-priori
function of time and state. Provision also had to be made to allow dofs to switch back
and forth between fixed and free. The dof switching capability required two innovations.
To properly implement switching logic, the software system had to know if switching would
occur before the end of the integmtion step. This problem was resolved by the creation
of a new fourth order Runge Kutta integmtion algorithm. It provided a second order estimate
of the answer on the second cycle through. This information was used to set up switching
logic. The next problem was numerical noise that reflected itself through the computation
as poorly satisfied kinematic constraint conditions. It stemmed from the fact that dofs were
not switched at exactly the right instant. The problem was resolved by a new constraint
stabilization procedure. At the end of every integmtion step, the degree to which all kinetic
constmints are satisfied is monitored. Deviations are viewed as the result of an extraneous
impulsive load to the system. If the deviation is small, then the fictitious impulsive load
can be computed and applied back to the system in an equal and opposite manner. This
not only helped solve the dof switching problem but it also decreased numerical error as
measured by various conservation of laws.

In order to solve for kinematic state variables and for modal displacement, velocity transfor-
mation equations are developed that relate absolute velocity state variables to relative velocity.
The details of these transformations are quite complex. In addition to the computation of
transformation matrices between hinge frames, body frames, and the inertial frame, transfor-
mation matrices are also developed for all sensor point reference frames. Users are free
to use these in their development of all nongyroscopic loads. As with NBOD, DISCOS
requires a user-supplied subroutine to define nongyroscopic loads relative to kinematically
free dofs. There are no user restrictions.
153

Topological Loops

For topological trees, the solution of the kinematic transformations from absolute to
relative coordinates is deterministic; for topological loops, it is not. DISCOS does not
allow topological loops of rigid bodies. If a topological loop exists, at least one of the
bodies in the loop must be flexible, modes must be such that the transformation matrix
between absolute and relative coordinates is nonsingular. On a few occasions this capabili-
ty has been used. The capability works BUT. Mode selection is nontrivial and high fre-
quencies usually enter in such a manner that numerical integration is costly. The
topological loop capability was not part of initial DISCOS development plans. It was
included to the degree possible without causing major programmatic changes. In essence,
the flexible body requirement brings added degrees of freedom into the state velocity
vector. If modes are properly chosen, the velocity transformation matrix becomes nons-
ingular and the determination of relative velocity components is deterministic. Users
needing a topological loop capability are referred to other multibody codes. Current plans
are to include a general topological loop capability within Order N DISCOS. It will re-
tain the ability for users to define functional relations that kinematically constrain and
release dofs anywhere within the system. NASA's current interest in flight telerobotics
and man/machine interaction dynamics are demanding this expansion of capability.

DISCOS Linearized Equations of Motion

A control system design and frequency domain analysis capability for DISCOS was an
essential part of the DISCOS development effort. This effort required major innova-
tions to transform desire into reality. From the beginning, it was known that simply
linearizing equations of motion and setting up transfer functions between generalized
input and output coordinates was not wanted. Users had to be given the ability to define
physically realizable "sensor signals" to characterize the plant output state. It was. also
necessary for users to define physically realizable "torque signals" to characterize the
plant input state. Associated sensor and actuator dynamics are considered to be part of
the controller and, hence, part of the user-supplied component of DISCOS simulation
software. The need was to create open-loop, closed-loop and quasi-open-Ioop transfer
functions between torque signal input and sensor signal output.

To achieve these objectives, users must define both sensor and torque signal equations.
By definition, sensor signals are functions of plant state variables, and torque signals
are functions of control system state variables. The linearization procedure linearizes
both plant and control state equations, along with all sensor and torque signal equations
154

about a user-defInable equilibrium state. The linearization procedure is a specially designed


quadratic interpolation algorithm. By intent it is designed to fail if an ill-conditioned
computing problem is being created. Users may alter failure criteria. However, they
are advised to give more thought toward the interpretation of diagnostic information to
locate the source of the ill-conditioning problem. They should then upgrade their original
simulation model.

DISCOS Multivariable Transfer Function Matrix

To create transfer functions between sensor and torque signals, a similarity transforma-
tion had to be developed. This was a major accomplishment. In essence the algorithm
compares plant state variables with sensor signal variables, looks for those most similar,
and performs the variable substitution. The same is done with control state variables
and torque signals. The net result is a set of linearized system equations expressed in
terms of sensor signals Xps , other plant state variables Xpo, torque signals Xct, and other
control state variables Xco. The matrix form of this equation is

(~:}Xco
X ct

where * implies nonzero matrix partition and Rt and Rs are reference torque and sensor
signals. The associated block diagram of this matrix equation is

Rt ----1~ >-----11I~_ _PLANT


_ _ _-~11t-----c>---- Xpo
Xct Xps

Xco....--~l}-~---_;: CONTROLLER

By selectively setting feedback coeffIcients equal to zero, the user can open as many
feedback loops as desired to create fully open loop or quasi-open-Ioop transfer func-
tions. The system state equations for any type of transfer function can be set up, be-
tween any reference sensor signal input Rs to the control system, and any reference
torque signal input Rt to the plant. DISCOS allows users to request poles, zeros, and
associated gain for single input-single output transfer functions. By looping within
155

DISCOS, a full multivariable matrix of transfer functions can be created. Computation


of poles is done by straightforward eigenanalysis. Computation of zeroes via methods
in common use in mid-1970 consistently failed in practical application; this required
development of a new algorithm. A full frequency domain analysis capability, Bode,
Nichols, Nyquist, and Root Locus for single input-single output transfer functions is
provided. A plotting capability existed, but associated display hardware was discarded
many years ago. The preferred mode of operation today is to generate transfer function
polynomial ratios within DISCOS and then process them in a follow-on controls analysis
program. For example, DISCOS can be used to obtain linearized equations and associated
open-loop transfer functions between all plant torque signal inputs and plant sensor signal
outputs. These are then passed to the program INCA for interactive control system design
and linear time and frequency domain analysis with modem interactive graphics
capabilities, see Reference 9.

Other DISCOS Capabilities

In addition to the previously defined capabilities, a few other special needs had to be
addressed during the DISCOS development years. Computation relative to an accelerating
frame of reference was required to study attitude dynamics of rockets during bum over
short periods of time. Mass expulsion effects are not within DISCOS's capability. Momen-
tum wheels had to be defined as either variable or constant rate. Wheels being a prime
control mechanism for spacecraft, this capability was essential. A means for circumventing
the need to supply user routines was developed. In hindsight, the rules for applying this
capability are more difficult to understand than the rules for simply adding a few lines
of FORTRAN code into the default versions of the appropriate subroutines. Gravity gra-
dient was needed for large spacecraft. The need for an earth-based gravity field never
existed, and, hence, it must be user-supplied. It's not a difficult problem, and it pro-
vides a good learning exercise for new users. Alternative methods for defining body
flexibility exist. Lumped and consistent mass methods are acceptable. Alternative
numerical integration methods are not easily substituted. The ability for dofs to switch
between free and fixed relies upon a special integration method; alternative methods
would destroy this capability. Furthennore, the constraint stabilization capability per-
fonns operations that violate user rules associated with conventional numerical integra-
tion subroutines. DISCOS contains no plot capability. Users are, however, given access
to the output data subroutine, and they can fonnat output data in a fonnat compatible
with in-house plotting capabilities. References 10 and 11 and comment cards within the
DISCOS source code still provide primary reference material, while reference 12 pro-
vides a brief outline of theory, with equations, and some application discussion. Through
156

the years, DISCOS has supported application-oriented groups who have minimal incentive
to publish beyond the project reporting level. As a consequence there is very little
published in the open literature on DISCOS application experience.

Order N DISCOS

The development of Order N DISCOS is a new initiative. The intention is to cut the
equation development heart from standard DISCOS and to replace it with an Order N
heart. The method will not be burdened by a major matrix inversion within every inte-
gration cycle. Mass matrix inversion will be done body by body as is currently done
within DISCOS. The degree of the matrix inversion problem associated with Lagrange
multiplier determination is reduced to what is needed to implement the topological loop
capability. As with NBOD, projection to the vector space in which motion is allowed
eliminates the need to determine most of the Lagrange multipliers and associated con-
straint loads. In addition, several new capabilities are planned. Our first goal is to include
a topological loop capability for rigid and/or flexible bodies. Other new capabilities
required to support DISCOS's diverse user group are now in the planning stage. At a
minimum inverse dynamics, special hinge and special load modeling needs associated
with robotics, large flexible spacecraft, biomechanics and biochemistry are being planned.
The development of Order N. DISCOS is to be carried out as a cooperative research
project between Harold P. Frisch at the NASA/GSFC, Jim Turner and Hon Chun at
the Cambridge Research Corporation, and Sung-Soo Kim and Ed Haug at The Industry/
University Cooperative Research Center at the University of Iowa.

Examples

The program NBOD does not have the modeling capability to solve either of the two
test examples defined in this handbook. It does not have the topological loop capability
required for the mechanism problem, and it does not have the translational joint capability
required for the robot problem.

The program DISCOS does not have the topological loop of rigid bodies capability to
solve the mechanism problem as defined. However, if the problem required the inclu-
sion of link flexibility and of ground support compliance, then DISCOS could be used.
Computational efficiency would totally depend upon the frequency content of the
multiflexible body model. If links or supports are very stiff, use of another multibody
code that permits rigid body loops and fixed supports should be considered. Further-
157

more, DISCOS does not have a planar motion restriction capability. Associated forces
and torques of constraint must be computed at every integration step to enforce planar
motion. This is a waste of computation time for planar problems; for linear or planar
problems, use of another multibody code should be considered.

The robot problem is well within the capabilities of DISCOS. Associated with the DISCOS
program is a tutorial input data preparation program. As a point of reference, the required
input data file was casually created in less than I hour. This data file contains job control
information and the complete definition of the physical system.

DISCOS users are required to insert problem unique FORTRAN code within certain
subroutines to define all nongyroscopic loads acting on the system. The robot problem
required code insertions into two subroutines.

In subroutine KHINGE all forces and torques acting at hinges are defined. DISCOS
requires that the HNGT array be user-defined. Each column of length 6 in HNGT con-
tains a torque/force vector defined relative to the associated joint degrees of freedom.
The following lines of code were required to define the drive functions associated with
the defined robot problem:

IF(T.GE.O.O .AND. T.LT.O.S) THEN


FIZ = 6348.0
F2Y = 36.0*T + 986
LIZ = 673.0*T - S08
L3X = 63.S
ELSE IF(T.GE.O.S .AND. T.LT.l.S) THEN
FIZ = 490S.0
F2Y = -2.0
LIZ = 148.0*DEXP(-S.S*(T-0.S)) + 8.0
L3X = 49.0S
ELSE IF(T.GE.l.S .AND. T.LE.2.0) THEN
FIZ = 3462.0
F2Y = -1019.0
LIZ = 240.0
L3X = 34.6
ELSE
STOP
ENDIF
HNGT(3,1) = LIZ
158

HNGT(6, 1) = FIZ
HNGT(5,2) =F2Y
HNGT(3,3) =L3X

This code implies that arm torque L2Y equals zero. If arm rotation is allowed, then
significant rotational motion results due to gyrodynamic effects. If arm rotation is
to be kinematically constrained, then it must be so defined in the input data file.
If arm rotation is restrained by nonlinear viscoelastic effects, users must provide
code to define the resultant viscoelastic torque L2Y. If arm rotation is restrained
by an active control system with dynamic components, associated differential equa-
tions can be entered into the code, solved, and resultant arm torque L2Y computed.
L2Y must then be equated to the (2,2) element of the HNGT array to effect DISCOS
communication.

At NASA/GSFC there has never been a pressing need to include the effects of a
gravity. If there were, a few lines of DISCOS software code would have been added
to provide the capability via input command. A gravity gradient capability com-
mand exists; however, it is not needed for earth-based system analysis. Relative
to DISCOS gravity is an external force acting at the center of gravity of each body.
DISCOS requires that users apply all extemal forces and torques to sensor points.
Each sensor point is located and an associated reference frame defined and oriented
relative to the body fixed reference frame in the input data file. External force effects
are defined to DISCOS in subroutine EXTOR. Two arrays must be defined. Each
column of the array TEX contains a 6 element torque/force vector defined relative
to the reference frame defined at the sensor point to which it will be applied. The
array ISPN correlates columns of TEX with the sensor point numbering system
defined by the user. For the robot problem, the following lines of code were required
to include the effect of gravity:

NTEX = 3
ISPN(l) = 1
ISPN(2) = 2
ISPN(3) = 3
DO 230 N = I,NTEX
C DEFINE GRAVITY FORCE FOR BODY "N"
XMM = 9.8*AM(21,N)
C USE TRANSFORMATION MATRIX ROL TO CREATE GRAVITY FORCE
C VECTOR IN SENSOR COORDINATES,
C GRAVITY ALONG INERTIAL "3" AXIS
159

DO 220 1=1,3
TEX(3 +I,N) = -ROL(3,I,N)*XMN
220 CONTINUE
230 CONTINUE

The robot problem, as defined, allows unrestricted rotational motion of the hand and, hence,
the physically unrealistic possibility of it passing through the ann in response to gyrodynamic
effects. DISCOS users may restrict motion by nonlinear rotational springs that would be
added to the hand torque tenn L3X in subroutine KHINGE. Users are also provided with
the option to define functional relations that defme physically realizable stops. When hand
motion reaches a stop, the associated dof becomes fixed, i.e., kinematically constrained.
System motion proceeds until the associated dof constraint load changes sign or exceeds
a stiction value. When this user-specified functional relationship is satisfied, the kinematic
constraint is released and motion proceeds until the next stop condition is encountered.
Users are provided with a clean interface to this capability so that associated coding require-
ments are minimal.

Summary

The general purpose multibody dynamics codes NBOD and DISCOS have been serving
a growing user group for over a decade. They are for the project support analyst who needs
maximum capability and flexibility in creating unique problem specific simulation models.
Users are expected to have a surface understanding of undedying theory and the associated
software code. They are expected to enter FORTRAN code into appropriate subroutines
to define nongyroscopic loading effects and to output data in a format compatible with
reporting and plotting desires. This user demand has proven to be most desirable. It has
allowed the programs to reach far beyond their original beginnings into research communities
that did not even exist when the codes were written. On-going efforts to produce a new
Order N DISCOS will retain the current user interface philosophy; it will also contain
capabilities required to better serve its expanding user group.

References:

1. Velman, J. R., "Simulation Results for a Dual-Spin Spacecraft," Proceedings of the


Symposium on Attitude Stabiliztztion and Control ofDual-Spin Spacecraft, 1-2 August
1967, Aerospace Corporation, EI Segundo, California, November 1967, Aerospace
Report No. TR-0158(3307-01)-16, Air Force Report No. SAMSO-TR-68-191.
160

2. Hooker, W.W., "A Set of r Dynamical Attitude Equations for an ArbitraIy n-Body
Satellite Having r Rotational Degrees of Freedom," AIAA J., Vol. 8, No.7, July
1970, pp.1205-1207.

3. Frisch, H. P., A Vector-Dyadic Development of the Equations ofMotion for N-Coupled


Rigid Bodies and Point Masses, NASA TN D-7767, October 1974.

4. Frisch, H. P., A Vector-Dyadic Development ofthe Equations ofMotionfor N-Coupled


Flexible Bodies and Point Masses, NASA TN D-8047, August 1975.

5. Frisch, H.P., The N-BOD2 User's and Programmer's Manual, NASA Technical Paper
1145, February 1978.

6. Bodley, C. S., and A. C. Park, "The Influence of Structural Flexibility on the Dynamic
Response of Spinning Spacecraft," AIAA Paper 72-348, San Antonio, Texas, 1972.

7. Benfield, W. A., C. S. Bodley, and G. Morosow, "Modal Synthesis Methods,"


Symposium on Substructure Testing and Synthesis, NASA Marshall Space Flight
Center, 1972.

8. Kane, T.R., R. R. Ryan, and A. K. Banerjee, "Dynamics of a Cantilever Beam


Attached to a Moving Base," Journal of Guidance, Control, and Dynamics, Vol.
10, No.2, March-April 1987.

9. Bauer, F. H., and J. P. Downing, "Control System Design and Analysis Using the
Interactive Controls Analysis (INCA) Program," AIAA Paper No. 87-2517,
Presented at 1987 AIAA Guidance and Control Conference, Monterey, California.

10. Bodley, C. S., A. D. Devers, A. C. Park, and H. P. Frisch, A Digital Computer


Programfor the Dynamic Interaction Simulation of Controls and Structure (DISCOS),
Volumes I,II, NASA Technical Paper 1219, May 1978.

11. Frisch, H. P., A Digital Computer Program for the Dynamic Interaction Simulation
of Controls and Structure (DISCOS), Volumes IV, Supplementary Documentation,
NASA Technical Memorandum 80546, August 1979.

12. Bodley, C.S., A. C. Park, A. D. Devers, and H. P. Frisch, "Dynamic Response


and Stability Analysis of Flexible, Multibody Systems," contained in Dynamics
and Control of Large Flexible Spacecraft, L. Meirovitch, ed., Proceedings of a
Symposium held in Blacksburg, Virginia, June 13-15, 1977.
DADS - Dynamic Analysis and Design System

R.C. smith and E.J. Haug


Computer Aided Design Software, Inc.
Oakdale, Iowa

1.1 Purpose and Use of DADS

The Dynamic Analysis and Design System software is a set of general


purpose computer programs that can be used to model and predict the motion
of a variety of real world mechanical systems. Using a set of data that
describes the machine to be modeled, DADS builds a mathematical model of
the real system that calculates positions, velocities, and accelerations
of the various parts of the machine, as well as resultant forces that act
in the system. By using such a computer program to analyze a machine, the
des i gner can s imu1 ate the behavi or of a wi de range of alternate des i gns
prior to building and testing prototypes. The DADS program is often used
for analysis of existing mechanical systems also.

1.2 Types of Machines That Can Be Modeled

DADS contains a large library of mechanical elements that can be used


to build a model. These include rigid and flexible bodies, joints and
other constraints, force- and torque-producing elements, as well as
control and hydrau1 ic e1 ements. Models can be created in two or three
dimensions. Any machine whose motion is entirely planar can be modeled
more eas ily in 2D and can be ana 1yzed much more qui ck1y by the ana 1ys is
program, because of the smaller number of variables required. The 30
version is used to model any machine whose motion is not contained within
a plane, allowing complete generality. If desired, planar systems can
also be modeled in 3D.

The control elements can be used in any rigid or flexible body model
that is analyzed using the dynamic option, or can be used independently to
162

create a control system model without any bodies in it. The control
elements can be used to apply forces or torques to the rigid or flexible
body system. The control elements define a system of first order
differential equations that are solved along with the set of second order
differential equations associated with the rigid or flexible body
equations of motion.

The ability to model the flexibility effect allows much more detailed
mechanical models to be built. Data for flexible bodies are generated by
usi ng the DADS Intermedi ate Processor to process data from a fi ni te
el ement program. Any el ements in the finite el ement model can be used,
not just simple beam elements between nodes. DADS uses modal coordinates,
which are synthesi zed from the finite el ement data, to represent the
flexibility effects of all flexible bodies in the model. This approach
allows the most generality for modeling flexible bodies.

1.3 Degrees of Freedom in a l-1odel

In a mathematical model, each body in a machine is described by its


position and orientation. In a tv.o dimensional model, three coordinates
are used: the body's x- and y-coordinates in the plane of motion, and its
angular orientation coordinate, phi. Thus, a body in a plane has three
degrees of freedom of motion, two translational and one rotational. In 3D
space, a body's position is described by its spatial x-, y-, and z-
coordinates, and its orientation is described by four angular
coordinates. Three different systems for initially defining a body's
orientation are recognized by DADS: Bryant angles, Euler angles, and
Eul er parameter s. The use of each is described in deta il under th e 3D
Body Element description. Thus, each 3D body has seven generalized
coordinates, three translational and four rotational, but since there is
one constraint among the four Eul er parameters there are only six total
degrees of freedom.

As joints or other constraints are added to the model to connect the


vari ous bodi e s, some degrees of freedom of the connected bodi es are
removed, limiting the scope of their relative motion as prescribed by the
particular joint or constraint. For exampl e, fixing a boc\y to ground
163

removes all its degrees of freedom; i.e., all three in 2D and all six in
3D. fts another exampl e, connecting tw:> bodies in 2D by a revolute joint
constrains them to remain in contact at that particular point, but allows
them to rotate about it. Thus, the tw:> translational degrees of freedom
for one of the bodies are removed.

When a model of a mechani sm has been completely defi ned, the total
n umber of general i zed coordi nates of the bodi es mi nus the n umber of
independent constrai nt equat ions for joi nts and constra i nts yi el ds the
n umber of degrees of freedom present in the machi n e. Dependi ng on the
type of analysis to be performed, these degrees of freedom can remain in
the model or they may be removed by specifying the motion of a particular
body or bodies as a function of time (i .e., in kinematic or inverse
dynamic ana lysi s).

NDOF = NGC - NC

where
NDOF = number of degrees of freedom
NGC = n umber of general i zed coordi nate s
NC = number of constraints
164

Table of Constraints and Generalized Coordinates

2D El ement Type DOF removed OOF added

body o 3
revolute 2
t ransl at i onal 2
poi nt 2
position, X, Y, Phi 1
revolute-revolute 1
revolute-translational 1
distance 1
bracket 3
difference, X, Y Phi 1
gear 1
point foll ower 2 1
ground 3
dri ve r,
X, Y, Phi 1
di stanc e, di fference 1
cam flat follower 2 1
c am convex fo 11 olter 2 1
belt 1
rack and pinion 2
rack and convex pinion 2
165

3D El ement Type OOF removed DOF added

body 1 7
revolute 5
transl ational 5
cyl indrical 4
spherical 3
point 3
position X, V, Z, 1
orientation 3
revolute-revolute, 4
i ntersecti ng or
perpendi cul ar
revolute-translational 4
revolute-cylindrical 3
revolute-spherical 2
spherical-spherical 1
distance 1
bracket 6
difference, X, V, Z 1
ground 6
universal 4
screw 6 1
driver,
X, V, Z 1
di stanc e, 1
difference 1
relative angle 2 1
planar 3
lock out rotat i on 4
gear 3 2
angle (nonholonomic) 1
166

1.4 The tIodel Jlrtalysis Process

Once a model has been defined from the 1ibrary of either 2D or 3D


el ement s, the data set is processed by the DADS ana lys is progr am and th e
model is mathematically assembled. The equations of motion for the
various bodies in the model are automatically generated and numerically
solved. The process of creating a mathematical model of a real world
system often introdoces mathematical redundancies, which are not
intuitively evident in the real system. These "redundant constraints"
would normally halt any cOfllJuter analysis of such a model. However, DADS
can recognize such redundancies and remove them automatically before
analysi s, all owing the user to describe the systen as precisely as
possible and still be able to simulate it numerically.

Results of the simulation are the positions, velocities, and


accelerations of all bodies in the machine. Al so included are various
data on any force elements in the model and, for some types of analysis,
the internal reaction forces due to any joints or constraints in the
mode 1. The user can specify the pri nt interval of output as well as the
total 1ength of time for the simul ation. Having a good mathematical
representation of the physical system, it is a simple process to change
various specifications of either the model or the method of analysis.
Thus, DADS can be used as an iterative design tool for creating new
products, as well as an analysis tool for examining existing products.

1.4.1 reference Frames

DADS gives the user a choice of several reference frames in which to


Wlrk. During the process of model creation, the user can enter all joint
data relative to either a global reference frame, a local body-fixed
reference frame at the center of gravity of each body, or at a non-
centroidal body-fixed reference frame.
If the user requests reaction force data, the forces and torques may
be reported in one of three frames. The first frame is the global
reference frame. The second is the body-fixed reference frame on each
body. The third is a joint or constraint reference frame defined relative
to each body at the point where the joint or constraint acts. In a few of
167

the joints, this third reference frame is actually a moving frame, due to
the nature of the joint. In such cases, this is mentioned explicitly in
the description of the joint.

1.5 Methods of Analysis

A machine can be analyzed by the DADS analysis program using a number


of different methods. These are described bel (](I and a more detailed
explanation can be found in the DADS Theoretical Manual.

1.5.1 Kinematic Pllalysis

Kinematic analysis is used to calculate the motion of the various


bodies in the mechanism, disregarding both their mass properties and any
forces in the system. Mechani sms analyzed ki nemat i ca 11y mu st have all
degrees of freedom eliminated from the mathematical model. This is
accompl ished by specifying a number of "drivers". After the user has
translated the physical mechani sm into a prel iminary model data set, thi s
mathematical model may have one or more degrees of freedom. For each
degree of freedom that remains, a driver must be added to the data that
defines the motion of a particular coordinate or relationship between
coord·inates, as a function of time. Each driver removes a degree of
freedom from the model. The results of kinematic analysis are the
positions, velocities, and accelerations of all the bodies in the model,
for each time step in the analysis.

1.5.2 Dynamic Pllalysis

In dynamic analysis, the model may have any number of degrees of


freedom, from one up to the total possible degrees of freedom in the
machine. The motion of the bodies is calculated from the forces acting
upon them and the mass properties of the bodies. These forces inclooe
gravity and any external forces specified by the user. The equations of
motion are defined in terms of the masses and forces. The resulting
second order differential equations are then integrated numerically using
168

a variable step and order algorithm. One important requirement of dynamic


analysis is that the initial conditions of the bodies, i.e., initial
position and velocity, must be specified at the start of analysis. Rather
than specifying initial conditions for every coordinate in the model, it
is necessary to specify initial conditions for only the independent
coordinates, the number of which is equal to the number of degrees of
freedom in the model. Si nce a cursory exami nat ion of the model may not
readi ly identify the independent coordinates, it is often necessary to
make an initial dynamic analysis run without initial conditions in order
to identify these independent coordinates. The results of such an
analysis run identify the set of independent coordinates, as selected by
DADS. The appropriate initial conditions can then be added to the model
and the complete dynamic analysis run performed. The results of dynamic
analysis are the positions, velocities, and accelerations of all the
bodies in the model for each time step. Internal reaction forces in the
joints and constraints in the model can also be reported, if requested by
the user.

1.5.3 Static Analysis

Static analysis uses the mass properties of the bodies and any forces
acting upon them to calculate a model configuration that minimizes the
potential energy of the system. The resultant position of each body is
reported, along with the potential energy of the model at the beginning
and end of the analysis run. Static analysis is valid only for a
conservative system. If there are any nonconservative forces, such as
rotational or translational damping elements or any other nonconservative
external forces, then static analysis will not find a configuration with
minimized potential energy. To simulate static analysis for a model that
contains nonconservative forces, the user can run the model under dynamic
analysis instead, making sure to include one damping element for each
degree of freedom in the system. When velocities of all bodies approach
zero, the model will be in an equilibrium configuration.

1.5.4 Inverse Dynamic JIflalysi s

Inverse dynamic analysis uses features of both kinematic and dynamic


analysis. As in kinematic analysis, drivers must be added to the model to
169

eliminate all degrees of freedom. However, mass properties of all the


bodies are also required, as in dynamic analysis. From the motion of the
bodies specified by the drivers, forces required to produce the motion are
calculated. The results are body positions, velocities, and accelerations
and the reaction forces in the various joints and constraints in the
model. These reaction forces can be interpreted as the forces necessary
to generate the prescribed motion.

1.5.5 Assemb 1y Pna 1ys is

Assembly analysis is used to assemble all bodies in the model into a


configuration that satisfies all the joint and constraint connections
between the bodies. The assembly process allows for the possibil ity of
sl ight errors in body positions specified by the model data set. These
initial data need not be exact, since the assembly algorithm minimizes the
error in all the joi nts and constrai nt s, to determi ne a set of body
positions that best satisfy these constraints. Assembly analysis is
performed prior to all other types of analysis, or it can be performed by
itself. If any degrees of freedom are present in the model, the solution
will represent one of a nunber of possible solutions. As in dynamic
analysis, initial conditions must be added to the model in order to
specify the state of the system at the beginning. Results of assembly are
the positions of all the bodies in the model.

1.6 Pna1ysis OJtput

Three standard output fil es are generated by the OADS ana1ysi s


program, for all types of ana1ysi s. These are an information fil e, an
ASCII (readable character data) output file, and a binary output file.
Wlen a DADS analysis is initiated, the progran will request the name of
the input fil e, as well as names of the three output fil es. The input
file name can be entered in full, or the user can choose to enter the file
name without the four-character fil e extensi on and have DADS supply the
default file extension. These file extensions are supplied by the DADS
170

Preprocessor whenever it is used to create 20 or 30 input files for the


DADS ana 1ysi s program. After enteri ng the input fi 1e name, the user may
choose to enter his or her own names for the three output files, or, by
merely entering one or more carriage returns, may request DADS to create a
default file name for any or all of the three output files. These default
names are created by appendi ng a fi 1e extensi on character stri ng to th e
input file name. The file extensions used are as follows:

Fi 1e type File Extension

20 input fil e .FM2


30 input file .Ft-O
ASCII output file .OUT
Bi na ry output fil e • BI N
Information file •I NF

1.6.1 ASCII OJtput Fil e

The ASCII output file contains the results of analysis for each body
in the model. Body positions, velocities, and accelerations are printed
for each time step performed in the analysis. Depending on the type of
analysi s, joint and constraint reaction forces are also printed at each
time step, along with information on the state of any force element in the
model. If control elements are present, the values of the state variables
and their time derivatives are printed out for each time step. This file
is written as standard ASCII character data and can be exami ned usi ng a
text editor or can be printed out on a system printer.

1.6.2 Binary OJtput File

The binary output file contains exactly the same information as the
ASCI I output fi 1e, but is formatted di fferent 1y for cOflllactness and ease
of access by other computer programs. The binary file also contains
general information on the results of the analysis, as well as a copy of
the data input file from which the results were obtained. The binary file
171

is used by the DADS Postprocessor for di s p1 ayi ng ana 1ysi s results in


tabular or graphical form.

1.6.3 Information File

The information file contains any error, warning, or informational


messages generated by the analysis run, which are not actual simulation
results. The results of the assembly process are printed here. These
results inc 1ude a report on the success of the assemb 1y process and a
listing of the calculated positions of all the bodies in the model. In
some types of analysis, the set of independent coordinates is also
reported here. Li ke the ASCII output fil e, the i nformat ion fil e can be
examined using a text editor or can be printed on a system printer.

1.7 DADS Pre and Post Processing Programs

The DADS software package i nc1 udes Preprocessor and Postprocessor


programs as well as an animation program and a progran for translating
finite element data. The total software package contains the following
programs:

Preprocessor
DADS2D .Dna 1ys is
DADS3D Analysis
Postprocessor
Geomake
Intermediate Processor
Inertia Relief Load Vector calculator

1.7.1 DADS Preprocessor

The DADS Preprocessor is a command-driven system for creati ng and


edi ti ng mode 1s for ana 1ysi s by DADS. It can be used to defi ne the
elements in a mechanical model, save them in a file, and alter the model
at a later time. The command-driven nature of the Preprocessor allows it
172

to be easy to 1earn, whil e not sl owi ng down the experi enced user. The
elements in a model are defined and manipulated using several different
sets of available commands. Numerous menus and thousands of lines of help
text are always available for reference, so that the novice user can have
many of his or her questions answered, while continuing to run the
program.

The Preprocessor is organized in a tree structure, with functions


separated into different levels. Throughout the tree structure of the
Preprocessor, moving from one level to another is accomplished in exactly
the same manner. To move down to a sublevel, the user merely types the
name of the lower level. To move back up, the command "UP" will always
suffice.

Each level of the Preprocessor serves to del ineate and implement a


specific function or functions. Thus, each level has its own set of
available commands. These are identified in the menu for that level and
are described in the various help texts for that level. Some commands are
"global" in nature, being available at all levels, others are available at
several different levels, while others are specific to a single level.

1.7.2 DADS Postprocessor

The OADS Postprocessor provides a means of examining the results of a


DADS analysis run. Any variable in the model can be graphically plotted
or displayed in tabular form. These variables include all body coordinate
positions, velocities, and accelerations at each time step, data on any
force elements in the model, total and potential energy of the model at
each time step, and, if requested, all internal reaction forces in the
j oi nts and constrai nts in the model. Data from two or more different
analysis runs can be plotted on the same graph for comparison. Use of the
DADS Postprocessor is described further in Chapter 3. The Postprocessor
currently supports Tektronix 40xx and 41xx series terminal s, as well as
other graphics terminals that emulate the Tektronix standards, and several
engineering Wlrkstations.
173

1.7.3 DADS Geomake program

This program provides a way to create geometry and associate it with


the bodies in the DADS model for animation purposes. The resulting
geometry can be animated on a variety of graphics devices but the best
results are generally on an engineering w:Jrkstation. The geomet ry i s
built up from simple primitive shapes which are rotated and translated
into the proper positions. The primitives are grouped together according
to whi ch body they are attached to. Results from the DADS analysi s run
are extracted from the binary file using the Postprocessor and are used by
Geomake to define the location of each body at each output time step.

1.7.4 DADS Intermediate Processor

The Intermedi ate Processor is used to extract "modal" data from the
results of a static or vibration analysis done using one of the supported
finite element programs. The mass and stiffness matrices, Eigen vector,
and node locations are read from the finite element analysis results. The
data is processed and saved in a file that can be loaded in the
Preprocessor and merged with the DADS model data.

1.7.5 DADS Inertia Relief Load Vector Calculator

Th is program is used to cal cul ate inert i a rel i ef loads for static
analysis results that have rigid body modes present. This program is not
needed if vibration analysis or constrained static analysis is used to
model the fl exibl e structure.

1.8 Summary of DADS Software and Documentation

The documentation for the DADS package is divided into three


manual s: the Users t1Inual, the Examples t1Inual, and the Theoretical
Manual. There are also several technical reports and published papers
that are available from CADSI. The users manual describes the commands
and opt ions found in each program. The exampl es manual contai ns several
thorough examples of mechanical systems that have been model ed using
174

DADS. Each example contains a problem description, diagrams, model input


data, tabular results, graphical plots of results, and sample animation
frames. The examples attempt to cover all major features available in
DADS. The theoretical manual contains a complete discussion of the
algorithms used and modeling techniques.

1.9 DADS lInalysis of Spatial Robot

The following example shows the results of a DADS analysis of a


spatial robot model. The system consists of four bodies (one of which is
fixed to ground), two cylindrical joints, and one revolute joint. During
the two seconds of simulation time, forces and torques are applied to the
joints to produce a desired trajectory of the robot hand. The following
data summarizes the physical characteristics of the bodies in the model.

Body 1 (tower): C.G. = (0.0, 0.0, 2.25)


Mass = 250 kg
Ixx = 90 kg_m 2
Iyy = 10 kg_m 2
Izz = 90 kg_m 2

Body 2 (arm): C.G. = (0.3767531, 0.6485037, 2.25)


Mass = 150 kg
Ixx = 13 kg-m 2
Iyy = 0.75 kg_m 2
Izz = 13 kg_m 2

Body 3 (hand): C.G. = (0.6530388, 1.1240731, 2.25)


~ss = 100 kg
Ixx = 4 kg_m 2
Iyy = 1 kg_m 2
Izz = 4.3 kg_m 2
All three of the primary bodies have an initial rotation about the Z-axis
of -0.5263 radians.

The forces are applied through the DADS TSDA element as an actuator
force. The torques are applied through the RSDA element as an actuator
torque. The forces and torques are defined by the following equations.
175

Simulation time t (seconds) Force or torque expression


0.0 < t < 0.5 HZ = 6348 (Tower force, N)
F2Y = 36t + 986 (Arm force, N)
LIZ = 673t - 508 (Tower torque, N-m)
L3X = 63.5 (Hand torque, N-m)

0.5 < t < 1.5 FlZ = 4905


F2Y = -2
LIZ = 148 e(-S.S(t-O.S)) + 8
L3X = 49.05

1.5 < t < 2.0 FIZ = 3462


F2Y = -1019
LlZ = 240
L3X = 34.6

The following figures show some results of the analysis of this


mode 1. Fi gures 1 through 4 show plots of the tower force, arm force,
tower torque, and hand torque functions, respectively. Figures 5, 6, and
7 show the tower vertical displacement, tower rotation, and arm
displacement, respectively. Figure 8 shows two frames from the animation
of the model. The two frames are the fi rst and 1ast time steps of the
ana lys is. Note how the tower ri ses and rotates, and how the arm extends
to provide the desired trajectory of the hand.
176

Vertical force applied to tower.


x E 3
6.40

6.10 .... .·', .... ",· ............


.
.I····· ,' ..... ','. ..... '..... ",. .......... .
. . .
•••.. ; ••••• ,' . • • • • • : • • • • • ,', • • • • • :• • • • • • I • • • • • .: ••••• ,' • • • • • • : • • • • •
5.BO

· . . .
5.50
••••
·
,', • • • • '.' ••••
.
,', ••••• 1 ............
.
',' ••••
.
,', •••• ',' ••••• I
.
•••••

F
0 ••••••••••• t ••••• ',' • • • • • ', •••• '., ••••• : ••••• '., •••• ,', •••• '.' ••••
r 5.20
c
e 4.90 .... ,' ..... '".. .. ", .......... .

••••• : ••••• t ••••• ',' •••• ,' • • • • • ',' ••••• : ••••• ',' ••• ,' • • • • • ,,' ••••
4.60
N
· . . .
4.30
••••
·
,' • • • • • '" ••••
.
, '• • • • • • I •••••
.
,', •••• '" ••••
.
,', •••• '.' •••••
.
I •• , ••

4.00
. . . . . . . . . . .. . . . . . '.' . . . . .'. . . . . ',' . . . . . : . . . . . . .
~ "

· . . .
3.70
••••
·
• ', •••• ',' •••• ,', • • • • • • • • • • • , ' , " "
, ,
',"',.
.
,' •• ," ',.,"" I"",
,

3.40
0.00 0.20 0.40 0.60 O.BO 1.00 1.20 1.40 1.60 LBO 2.00
x E 0
Time (s)
Figure 1.

Force applied to arm along local Y axis.


x E 3
1.10

.. , ...•. ,"
· .
' , " " . , ' , " , . , I " ' · ' .. , " "
.
',"'" ,',""
,
'.""',.,""
O.BB , , , , ,

0.66 .•• , . : ' " " , ' " "':"'" ,',',', .:"'" ,1"", ':"'" ,',"" ':.""

· . .
0.44 ,.,. ,',,'"
,
',."" ,',"','
,
I·"" .. " " , ' •• " , . , ' , ' , "
, ,
,,',,.,.,,,,,.

F
0 • , ' , ' : ' , • , • " , ••• , ':' , • , , ,', • , , • ,:. , , , , , t , • , , • ~ , •• , , .', , , • , ,: • • , , •
r 0.22
c
e 0.00 .,., .',"" ,,'" ., , , " " ' , . , " , .

-0.22 ".":'.'" .:"". ' , ' . ' " ,',.," ',"."':"." '," ",',"" ',' .. "

N
. .
.
, ,
-0.44 " ••• ',.,"
,
,,"'"
.
,',""'."'"
.
,',.," ',.'.,' ,'".,' ',',',"
,
I, •• "

-0.66 """"'" ':."" ,,',." ':., .. , '," .. ,.: .. .. '." , " " " ' , ',"'"

, , , ,
-O.BB ""
·
.',"" ' . ' , ' . , , ' , " " ' . " " , . . . , ' , . ' " . , • • , ' , . " . ' ..
, , ,
',., ,I"".
,

-1.10
0.00 0.20 0.40 0.60 O.BO 1.00 1.20 1.40 1.60 LBO 2.00
x E 0
Time (s)
Figure 2.
177

Torque applied to tower about Z axis.


x E 0
250.

· . . .
174. ••••
·
• ' • • • • • '.,
.
............ I' ••••
.
" ••••• ','
.
••••• ' ••••• '., •••••
.
I •••••

~
9B. • • • • • • ', • • • • • :• • • • • • 1 • • • • • • • • • • •' • • • • • • : • • • • •

. .
T
0
22. ••••

·
0' • • • • • ",

.
............ I" ••••• ", ••••• ' ••••• ", ••••• I •••••

r
q -54. . . ...: . . . . . .. .. . . . . .'. . . . . . . . . . . . . . . . . . . .
" '.' '.' ~ " ,'. . . . . '.' . . . .
u
e · . . .
-130. ·
•••••' •••••
.
", ............
. I
. ............ '0' • • • • • ', ............
. I •••••

-206. ••• '.' •••• ,', •••• '.' ••••• : ••••• 0, • • • • • • : • • • • • ,., ••••

N
m · . . .
-2B2. '., . . . . . . . . . . . . I ••••• ,', •••• ", •••• ,', ............ I •••••

-35B. . ... :' .... ..... :..... ',' '" ..... : ..... ., ......:..... ',' ... .
· . . .
-434. ••••
·
,' • • • • • " , . . . . . . . . . . . . I
,
••••• ,' • • • • • ' . ,
, .
•••• ,'•••••• , ••••• 1 ••••
. ,

-510.
0.00 0.20 0.40 0.60 O.BO 1.00 1.20 1.40 1.60 LBO 2.00
x E 0
Time (s)
Figure 3.

Torque applied to nand about X axis.


x E 0
66.0

•••• •• , ••• , " •••• , ..... " ••


.
I •••••
.
'00 0 0 0 0 , •• , "
.
0' • • • • • • • •
62.B o •
J'.,

•••

o • • •"

59.6 •• " • • • • • • • ,• • • • , .: •• 0 o. 0 · . " . ' • • :0 • • • • • ' . 0 0 ' . ' : . , " . , .' •• , 0 0 ' : , . , ' 0

· . .
..... ;..... :. l· . :......:...... :......
, • 0 •

T 56.4 0." •• ' • • • • • • •'


.
•• ". , . . . . . ". I •••• '
.
•••••••••• ""." ••• ""." ","." ••• I •••••

0
r ! ......: ......: ...... :.... .
q 53.2
o 0 ' 0 • 0 • • 0

u : 0 : • : 0 : 0 :

e 50.0 • , • 0 0: 0 • 0 • 0 0:. 0 • , , 0 ~ • , • 0 0 : ••• , 0 ~ • 0 ••••: ••• 0 •• : ••••• 0 ~ ••••• : •••••

• • • • 0 r" 0 . 0 0 : . 0 . ' •• , • • • • • 0: • • • • • • , •• 0 ' • • : • • • • • • • " ".0·" 0" ., • • • • •


46.B
N
m ·
• • • , .0 • • • , . '.' 0 0 0 . . . . . 0 • • • • ' • • • •
. .
0 . ' 0.0. 0 0' 0
. 1 ••• 0 •
43.6
J' • • o ••••• oJ' ••• ,'
o • , , •

• • • • ' : . 0 • • ' : ' . 0 0 •• 0' • • • • • : • • 0" ••0 • • • • ' : 0 • • • ' '0 • • • • • • • • • • • • • • • • • •


40.4

·
0 0 0 ' ." • • • , . ' • • • • • • , • • • • • 0 0 . ' .
. o. .
0 0' • • • 0, '00 0 • • • , ' . , • • • 0 , "
. 0 0 ,I,. o. 0
37.2 o 0 0 , 0

34.0
0.00 0.20 0.40 0.60 O.BO 1.00 1.20 1.40 1.60 LBO 2.00
x E 0
Time (s)
Figure 4.
178

Vertical position of tower.


x E 0
4.50

4.27
.... ,', .... ",· ............ .I····· . ····· ','. .... ,'...... .,. ......... .

••••• ; ••••• t ••••• • : • • • • • • ', • • • • • :• • • • • • \ • • • • • •: • • • • ,', ••••••••••


4.04

P .... ,'...... ",· ............ .I····· .. ····· '.'. ..... * • • • • • .


0
3.81 . . . ", ••••• ,
. •••••

5
i 3.58
..... : ......: ..... '.' ..... :..... ',' .... ; ..... ',' .... ,', .... ',' ... .
t
i · . . .
0 3.35
••••
.
,' . • • • • ", ••••
.
,', ••••• I ••••• t
. ••••• ',' ••••
.
,' ••••• ",
.
•••••••••••

n
3.12
..... : ............ ' , ' .... ,', ... ", ..... ..... : '.' ..... .....
' ',' ... .

m
·
•••••••• ,', ••••
.
'., • • • • • ', ••••
.
',' ••••• I •••••
2.89

2.66 ..... I····· .: .... '.' .... ,', .... ", ..... : ..... ',' ..... ' ..... ',' ....
·
' , ' • • • • , ' , • • • • • • • • • • • •' , ••••
.
' . ' , , ' , .'"
.
•••• " , . , •• I . " "
2.43

2.20
0.00 0.20 0.40 0.60 0.80 1.00 1.20 1.40 1.60 1.80 2.00
x E 0
Time (5)
Figure 5.

Rotation of tower about Z axis.


x E0
-0.500

,,' ,',',., ',"'"


· , .
, .. , . , . , I ' · " · .. , ' , · , ' , " " , , ' , " , '
,

-0.530 ',0

-0.560 , . . , " ' , , ' , ' , , " , ' :• • , . , . I . " . , ' : " ' " ,',"" ':'"

,"'" ,',"", I'··"',',·,",·,' ,'".,' ,,""',.,',.,


. .
A -0.590
n
9
1 -0.620 '" ':"'" ,'" •••• : " " " I " " . ':"'" ,', •••• ',' •• "

e
· . .
-0.650 "., ,',',.,' I"'" ,.".,. ,,"", ,',"" ',',.'" I, •• "

r -0.680 "',.;,.,., .. ,"" ',"'" ,.,,' .. '., ... :"' .. '," .. , .: .. '" ',"' ..
a
d
-0.710

-0.740 ..... ; ......: ...... : ...... :...... :...... : ......: ...... ' .-:.-.-........-,--......q

, . . .
-0.770 •• , ' , ' , . " . , , " , ••
, .
, ' , " ' , •• " , . , , ' " . , ' ' . " , ••• ' , " "
, . .
,,,,, ••• I . " "

-0.800
0.00 0.20 0.40 0.60 0.80 1.00 1.20 1.40 1.60 1.80 2.00
x E 0
Time (s)
Figure 6.
179

Translat10n of arm along Y ax1s.


x E 0
3.80

3.49 .....' ..... '.,· ............


.
.I····· .. ····· ",. ..... '..... .
. .
3.18
..... ; .............:...... ' ...... :...... , ......:.
p .
.....' ..... ",· ............ I····· .
. ····· '.'.
2.87
o
s
1 2.56 ..... : ............ ' , ' ..... ..... ' '.' .. .
t
1 · . . .
o 2.25 ••••
. .
,' • • • • • '., • • • • • '• • • • • • I •••••••••• ", ••••
. .
, '. . . . . . . . . . . . . I •••••

n
• • • • : • • • • • • 1 • • • • • •: • • • • • ,' • • • • • • : • • • • •
1.94

m 1.63 .... ,' ..... '.' .....

1.32 ..... : ......: . . . . ',' ..... :..... ',' ..... : ............. : ..... ',' ... .

.
' . ' • • • • , '• • • • • • • • • • • • •' • • • • •
.
'.'
.
••••• ' . . . . . . . . . . . . . 1 •••••
1.01

0.70
0.00 0.20 0.40 0.60 0.80 1.00 1.20 1.40 1.60 1.80 2.00
x E 0
Time (s)
Figure 7.

Figure 8.
NEWEUL - Software for the Generation of
Symbolical Equations of Motion

E. KREUZER and W. SCHIEHLEN


Department of Ocean Engineering - structural Dynamics
Technical University Hamburg-Harburg, Hamburg, FRG
and
Institute B of Mechanics
University of stuttgart, stuttgart, FRG

SUlIIlD.ary

In this contribution the theoretical background of the software


NEWEUL is presented, the necessary input information is given
and the output generated by the program is discussed. Two
examples, a mechanism and a robot, are included fQr
demonstration of the program. NEWEUL is written in FORTRAN 77
resulting in an excellent portability to all kinds of computers
from personal computers to main frames.

Introduction

Modeling is the first step for the mathematical analysis of the


dynamics of a mechanical system, i.e. the real system must be
transformed into a model with idealized elements. The method of
multibody systems offers the following elements:

• rigid bodies with translational and rotational inertia,


• masspoints with translational inertia only,
• constraining elements without elasticity and friction (such
as supports, bearings, Hooke's joints and rolling wheels),
• coupling elements without inertia acting at nodal points
(such as springs, dampers, servomotors and tires).

A multibody system composed of the mentioned elements is shown


in Fig. 1. The bodies are numbered from 1 to n.
182

Fig. 1. Multibody system

Multibody Systems with Holonomic Constraints

NEwton's and EULer's equations are the basis of the software


package NEWEUL. All vectors and matrices in this section are
formulated relative to an inertial frame (unless the contrary
is explicitly noted).

Let us consider a multibody system subject to q holonomic


rheonomic constraints due to the constraining elements. Then
there remain

f = 6 n - q (1)

positional degrees of freedom.

The position of the system is described by the fx1-vector of


183

generalized coordinates y, i.e. its dimension is equal to the


number of degrees of freedom. The Newton-Euler formalism now
calls for a couple of variables for each body, Fig. 1.

The position of body


Ki is given by the translation
vector ri from the origin of the inertial frame to the center
of mass Ci and by the rotation matrix Si describing the
rotation of a body-fixed frame relative to the inertial frame,

r i (y,t), i=l, ... ,n (2)

Si(y,t), i=l, ... ,n (3 )

The applied forces and torques due to coupling elements acting


on the body are transformed to 3x1-vectors f~ and l~ with
the applied torques l~ referring to the center of mass Ci .

As inertia variables the mass mi and the inertia tensor I.


~
attached to the center of mass Ci are required for each body.

The variables e
Si' Ii' Ii are not regarded for masspoints.

Note as a rule that all above mentioned vectors and matrices


have to be given with respect to the inertial frame. For
convenient input, however, the software package NEWEUL offers
also a description of rigid bodies, masspoints and
joints/supports relative to other rigid bodies or
joints/supports, respectively, already entered. Then, the
relative quantities are automatically converted into absolute
quantities.

Differentiation leads to the velocity and acceleration vectors


of translation for each body Ki

(4)

(5)
184

and those of rotation,

"'i JRi(y,t) Y + ;;;i(y,t) (6)

Qi JRi(y,t) y+ ;i(y,y,t) i=1, ... ,n, (7)

where the 3xf-Jacobians J Ti and J Ri , the local velocities


-
..
and and the acceleration components a i and

independent of yare introduced.

Now the momentum principle (Newton's equation) of a free body


Ki
i=1, ... ,n , (8)

and the angular momentum principle (Euler's equation) relative


to the center of mass

i=1, ... ,n , (9)

are written down for each body. Summarizing (8) and (9) for all
bodies to one vector differential equation and applying (4)
through (7) yields the Newton-Euler equations with respect to
the inertial frame

M(y,t) J(y,t) y + k(y,y,t)


-e· -r·
q (y,y,t) + q (y,y,t). ( 10)

Here

(11)

is the 6nx6n-block diagonal matrix of masses and inertia


tensors,
185

(12)

is the global 6nxf-Jacobian, k is the 6nx1-vector of


gyroscopic, centrifugal and Coriolis forces,

-e
q (13)

-r
is the 6nx1-vector of applied forces and torques and q is
the 6nx1-vector of constraint forces and torques, see e.g. [1]
and [2].

Furthermore, the 6nxf-inertia matrix

(14)

is introduced for abbreviation in the Newton-Euler equations


(10) .

Eliminating the constraint forces qr by multiplying (10) from


the left by the transposed fx6n-Jacobian aT one obtains
according to D'Alembert's principle the equations of motion as

M(y,t) y + k(y,y,t) q(y,y,t) , (15)

where M is the symmetric fxf-inertia matrix, k the fx1-


vector of the generalized gyroscopic forces and q the fx1-
vector of generalized applied forces.

Remark : Consequently the vector qr of constraint forces need


not be regarded in calculating the equations of motion. CJ

For completely linear systems, equations (15) are decomposed as

..
M(t) Y + pet) y + Q(t) y h(t) , (16 )
186

and, if the matrices P and Q are time-invariant, even into

M(t) Y + (D + G) Y + (K + N) Y h(t) • (17)

Here P denotes the matrix of velocity dependent forces,


D the damping matrix, G the matrix of gyroscopic
forces, Q the matrix of position dependent forces, K the
stiffness matrix and N the matrix of nonconservative forces.
The matrices D and K represent the symmetric, the
matrices G and N the skew-symmetric parts of the matrices
P and Q The right hand side of equations (16) and (17) is
formed by the time-dependent fx1-excitation vector h(t) .

Multibody Systems with Nonholonomic constraints

Nonholonomic constraints restrict the velocity state of the


system additionally by r nonintegrable kinematical
constraints due to nonelastic wheels. Hence, a system composed
of n rigid bodies with q holonomic and r nonholonomic
constraints has

g = 6n - q - r (18)

motional degrees of freedom.

Thus, the velocity state of nonholonomic systems can be


described uniquely by
scalar generalizedg velocity
coordinates summarized in the gxl-vector z(t).

In holonomic systems g = f holds true and, as a rule, it is


the vector y which serves to describe the velocity state.
However, it may prove expedient even in holonomic systems to
introduce a fx1-velocity vector z. In any case, the vector of
the first derivative of generalized coordinates y has to be
given dependent on z , y and t :
187

y = f(y,z,t) (19)

In mechanical systems, this relation generally is linear in the


velocity variables,

y F(y,t) z + H(y,t). (20)

Introducing now the Jacobians of generalized velocities

and (21)

the velocity and acceleration vectors (4) through (7) can be


rewritten as analogous relations.

Using the matrices ~i and ~i the global Jacobian of


generalized velocities of the system is given by

T T T T T
[ ~11 ... I ~n I li11 ... I lin ] . (22)

Equations (8), (9) yield the Newton-Euler equations with


generalized velocities

M(y,z,t) L(y,z,t) z + k(y,z,t)


-e -r
q (y,z,t) + q (y,z,t) (23)

Multiplying (23) from the left by the transposed of the global


matrix L one obtains according to Jourdain's principle the
equations of motion of first order with generalized velocities

M(y,z,t) z + k(y,z,t) = q(y,z,t) . (24 )

In the American literature, equations (24) are often called


"Kane's equations".

Remark Equations (24) are not sufficient for a complete


188

analysis of the system's motion, the relations (19) or (20)


must be added. [ ]

In case of complete linear systems the equations of motion (24)


are decomposed once more according to (16) :

M(t) z + pet) z + Q(t) y = h(t) (25)

Further splitting as in (17) is not possible in case of


nonholonomic systems, though.

Moving Reference Frames and Compression

For many problems it has proved conducive to set up the


momentum principle (8) and the angular momentum principle (9)
not with respect to an inertial frame, but with respect to a
suitable moving reference frame. Different frames can be chosen
for the momentum and the angular momentum principle and even
for each body of the multibody system. Then, the kinematical
velocity and acceleration relations (4) through (7) remain
valid, though the vectors and matrices occurring have to be
given with respect to the reference frame selected. The vector
differential equation (15), too, is composed of vectors and
matrices with respect to the reference frame selected. The
additional work necessary with this method, namely the
conversion of the kinematics, need not to worry the user of the
software package NEWEUL, since all differentiations and
transformations are done automatically by the program. For more
details see reference [3].

The user's only commitment is to ensure that all vectors and


tensors (translation, force and torque, inertia) are
formulated, by means of so-called filemasks, relative to the
reference frame selected.

Remark: Though a cleverly chosen reference frame can simplify


input and calculation to a great extent, it does not influence
189

format or length of the equations of motion. Their parameters


merely depend on the generalized coordinates and generalized
velocities chosen. CJ

If multibody systems with many degrees of freedom and complex


nonlinear kinematics are completely represented by symbolic
equations of motion, storage and computation time at disposal
are often unduly exceeded. Furthermore, the extension of the
generated symbolical expressions encumbers numerical evaluation
and physical interpretation of the equations.

For this reason NEWEUL optionally offers the calculation of


equations of motion in compressed form. This means that after
symbolic calculation of the kinematical relations the resulting
expressions as well as applied forces and torques and inertia
variables are abbreviated and calculation is continued with
these abbreviations. In general such "compressed" equations of
motion are many times less extensive than not compressed ones.

Different stages for compression are possible. Even a recursive


procedure can be chosen. It should be noted that expressions
are condensed only at definite points within the program and
that the introduced abbreviations can be easily physically
interpreted.

The following vectors and matrices are optionally abbreviated


to simple variable names:

• the 3x3-inertia tensors with respect to the reference frame


and the center of mass I i ' i = l, ... ,n ,

• the 3xg-Jacobians ~i of translation and the 3xg-


Jacobians ~i of rotation, i = l, ••• ,n ,

• the 3xl-vectors of applied forces and torques f~ and


i = l , .•. ,n,

• the 3x1-vectors of angular velocities wi' i 1, ... ,n ,


190

o the 3xl-vectors of components and of the acceler-


ations ai and Qi ' i = l, ... ,n

The non-vanishing elements of these vectors and matrices are


given expressive abbreviations and these are used to set up the
compressed equations of motion in the end.

Remark: The mentioned vectors depend on the reference frames


selected. Therefore by carefully selecting the reference frames
the symbolic expressions due for subsequent numerical
evaluation and physical interpretation can be considerably
reduced. 0

Equations of Constraint Forces

For the calculation of the constraint forces the Newton-Euler


equations (10) or (23), respectively, provided by the program
NEWEUL, have to be used.

Then, the equations of constraint forces can be established in


the form:

Q g
-r
q
..
M(y,t) Y + k(y,y,t) - qe(y,y,t)
.
(26)

see e.g. SCHRAMM [4], where Q stands for the 6nx(q+r)-


distribution matrix and g for the (q+r)xl-vector of
generalized constraint forces. These equations are numerically
calculated and solved by the subpackage ZKSUB using the
geometrical variables supplied by the software package NEWEUL
in symbolic form.

Remark: For calculation of constraint forces all


joints/supports must be entered correctly. It is not possible
to enter only a few joints/supports and others not. CJ
191

The calculation of the generalized constraint forces according


to (26) requires the integration of the equations of motion
(IS), too. Therefore, it is recommended to use parallel
computation.

simUlation of Motion

The symbolical equations of motion (15) or (19, 24),


respectively, and the equations of reaction (26) have to be
solved by numerical methods. In principle, the symbolical
equations of motion can be solved by any integration code at
hand. The program interfaces, however, have to be prepared by
the user.

If the benefits of a free choice of the integration code are


not desired, the integrated software system NEWSIM recently
revised by Leister [5] can be used. Then, all the interface
problems are automatically handled. The software NEWSIM applies
the integration code of Shampine and Gordon [6] most reliable
for the dynamical analysis of multibody systems.

The simUlation data may then be displayed by computer graphics


resulting in single or moving pictures. Future developments
will include not only data postprocessing but also data
preprocessing by combining CAD-software with multibody software
like NEWEUL, see Ref. [7].
192

Fields of Application of the Software Package NEWEUL

The software package NEWEUL is designed to set up

• linear or

• nonlinear

equations of motion for multibody systems with

• holonomic and/or

• nonholonomic

constraints. Furthermore, symbolical expressions may be


generated which enable the subpackage ZKSUB to numerically
calculate the constraint forces occurring in joints/supports.
The constraints may be scleronomic or rheonomic. The multibody
system may have an open kinematic loop structure, a tree
structure or a closed kinematic loop structure. General force
laws may be included, too. Even if input and calculation are
done thoroughly symbolically, constants may be automatically
replaced by numerical values.

Systems with the above features are found e.g. in the following
fields:

• vehicle dynamics,

• machine dynamics,

• robot dynamics,

• dynamics of mechanisms,

• satellite dynamics,

• biomechanics.

For further numerical analysis of the symbolical equations,


e.g. calculation of eigenvalues or simulation, the results are
always written in a format compatible directly to any FORTRAN
program.
193

Program structure

The software package NEWEUL consists of many subroutines which


are included in the main program NEWEUL. This program works as
a BATCH-program, i.e. it reads input data from a file called
TAPE08 and writes results on three different files, OUTPUT,
TAPE37 and TAPE38, Fig. 2.

TAPE 08
Input File

NEWEUL

-'7'

: TAPE 37: "


• I
'-----"
Equations of Motion

Fig. 2. Flow chart of program NEWEUL


194

The file OUTPUT is displayed on the screen and contains all


results produced in an easy-to-read format, and for checking
purposes also the complete set of input data. TAPE38 is similar
to OUTPUT but in FORTRAN-compatible form. File TAPE37 contains
the results in FORTRAN-compatible form only.

The input file is prepared within an editor by means of file-


maskes. On the basis of these tools it is easy to summarize and
formulated the complete set of input data needed.

Logically the input file can be subdivided into six different


sets which occur none, once or several times. These sets have
to be ordered in a definite manner as symbolically shown in
Fig. 3.

Possible Number

General Data only once

_.Lc-o-o-r-d-i-n-a-t-e-s-Y-s-t-e-m---$iJ once, or
several times

none,
-.LO-b-s-e-r-v-a-t-i-o-n-p-O-i-n-t-s--sP once, or
several times

none,
...-L--J-O-i-n-t-/-s-u-p-p-o-r-t---GiJ once, or
several times

'--LM-a-S-S-D-i-s-t-r-i-b-u-t-i-o-n---~ once, or
several times

'--L--F-o-r-c-e-S-'-M-o-m-e-n-t-s---~ once, or
several times

Fig. 3. structure of input file


195

Special Features of the Software Package

In the software package NEWEUL the following elements are


available for modeling:

• rigid bodies,
• masspoints,
• joints/supports,
• nodal points,
• observation points.

Note that joints/supports and masspoints exclude each other and


cannot be used together. Nodal points are always situated on a
rigid body.

Reference Frames

The position of each element can be described with respect to


an arbitrary reference frame. Then, the position of a rigid
body Ki ' i=l, ..• ,n, is represented by the vector r i from the
origin OR of the reference frame to its center of mass Ci
and the rotation matrix Si describing the rotation of the
body-fixed frame with respect to the reference frame and index
R indicating the current number of reference frame.

The reference frame is allowed to be in arbitrary motion with


respect to the inertial frame given by the translation vector
rR from the origin of the inertial frame to the origin of the
reference frame and by the rotation matrix SR describing the
rotation of the reference frame relative to the inertial frame.

Relative Input

The position of rigid bodies, masspoints and joints/supports


can be described either with respect to a certain frame
(whether inertial or reference) or relative to another element.
196

The reference element must be a rigid body or a joint/support.


Its translation vector and rotation matrix have been stored by
the program, i.e. the element must have been designated
explicitly as reference element. This is the reason why the
elements should be properly numbered (especially rigid bodies
and joints/supports). Relative input is always related to the
origin of the frame of the reference element.

Nodal Points

Nodal points serve to describe the action of forces on bodies.


A nodal point has to be assigned to a definite body. The
situation depicted in Fig. 4 illustrates the application of
nodal points. Force F acts on body Ki in nodal point A
described by vector r from the body's center of mass Ci

using the nodal point approach applied torques, resulting from


applied forces not acting on the center of mass of the body
considered, are automatically included. Moreover, applied
torques may be entered via nodal points as well.

Fig. 4. Example for application of nodal points


197

Observation Points

Observation points allow to determine translational and


rotational position, velocity and/or acceleration of arbitrary
points of the multibody system with respect to any other point
in an arbitrary reference frame. Observation points are very
useful for the evaluation of applied forces, e.g. generated by
tires.

NEWEUL Syntax Rules

The syntax for input is widely determined by the basic formula


manipUlation algorithm of index coding.

Allowed Characters

Allowed are capital letters, digits, the arithmetic operators


plus mark, minus mark and mUltiplication mark and some special
characters.

Variable Names

A name is a string of 1-6 alphanumeric characters beginning


with a letter. As further restrictions must be observed:

• If time is used explicitly it must be denoted by the


letter T, a variable always identified with time and
therefore not allowed to identify other variables.

• Occasionally the program generates names by itself, namely


in case of automatic derivation of a position vector,
differentiation of auxiliary variables and calculation of
compressed equations of motion. Names must be chosen so as
to prevent ambiguities with these automatically generated
names.
198

Constants

Constants can be integers or reals in the range of 10- 10

through 10+ 10 • However, the program is able to deal with even


lower and higher constants. The exact range depends on the
computer in use. Constants overstepping the above range should
not be used, though.

Operations, Brackets

Allowed operations are: +, *, **, i.e. addition,


subtraction, multiplication and exponentiation. Long
expressions are reduced according to the usual arithmetic and
the usual bracket rules. Exponents must be positive integers.

Functions

Allowed functions are sine and cosine. Further functions can be


repr~sented by means of auxiliary variables and simplification
equations. The argument may be a simple variable or an
expression.

Error Codes

If an error occurs during the program execution and the program


is able to detect it, NEWEUL indicates it by writing

* NEWEUL Fxx

Here xx stands for the error code, the meaning of which is


explained in the NEWEUL - Error Listing. After this message
calculation of the equations of motion by the program NEWEUL is
aborted at once.
199

Examples

For the two test examples defined in this handbook, the


equations of motion are generated symbolically by the program
NEWEUL. These equations are simply solved by numerical
integration for simulation of motion, using e.g. the simulation
package NEWSIM. The detailed results are given in Ref. [8].

Mechanism
The compressed equations of motion for the mechanism read as
follows:

M Ml*RA**2 + LT2(1,1)**2*M2 +
LT2(2,1)**2*M2 + LT3(1,1)**2*M3 +
LT3(2,1)**2*M3 + LT4(1,1)**2*MS +
LT4(2,1)**2*MS + LTS(1,1)**2*M4 +
LTS(2,1)**2*M4 + LT6(1,1)**2*M7 +
LT6(2,1)**2*M7 + LT7(1,1)**2*M6 +
LT7(2,1)**2*M6 + Il +
LR2(3,1)**2*I2 + 13*GAOl**2 +
IS*DEOl**2 + LRS(3,1)**2*I4 +
17*EPOl**2 + LR7(3,1)**2*I6

K AQT2(1)*LT2(1,1)*M2 + AQT2(2)*LT2(2,1)*M2 +
AQT3(1)*LT3(1,1)*M3 + AQT3(2)*LT3(2,1)*M3 +
AQT4(1)*LT4(1,1)*MS + AQT4(2)*LT4(2,1)*MS +
AQTS(1)*LTS(1,1)*M4 + AQTS(2)*LTS(2,1)*M4 +
AQT6(1)*LT6(1,1)*M7 + AQT6(2)*LT6(2,1)*M7 +
AQT7(1)*LT7(1,1)*M6 + AQT7(2)*LT7(2,1)*M6 +
AQR2(3)*LR2(3,1)*I2 - AQR3 (3) *I3*GAOI
AQR4(3)*IS*DEOI + AQRS(3)*LRS(3,1)*I4 -
AQR6 (3) *I7*EPOI + AQR7(3)*LR7(3,1)*I6

QE FE3(1)*LT3(1,1) + FE3(2)*LT3(2,1) +
KM - LE3(3)*GAOI

The generalized variable is the angle fi , auxiliary variables


are, e.g., ~(fi), 6(fi), e(fi). In addition to the mechanical
parameters, the elements of the Jacobian matrices LT ( •• ,1), LR
( •• ,1), the acceleration components AQT ( •• , .. ), AQR ( •• , •• )
and the first partial derivates DEOl, EPOl, GAOl are used. The
simulation result is shown in Fig. 5.
200

~~-----------------------,

.1

°li~ooo .005 .010 .015 .020 .025 .030


Time t [s]

Fig. 5. Motion of mechanism without friction

Moreover, the program NEWEUL offers the possibility for the


computation of the constraint or normal forces, respectively,
with the package ZKSUB necessary for the inclusion of friction.
For comparison, the simulation result is shown in Fig. 6.

~~-------------------------,

Q)
r-f
01
~ 2

.1

.D05 .D10 .015 .020 .025 .030


Time t [s]
Fig. 6. Motion of mechanism with friction
201

Robot

Some characteristic elements of the symbolical equations of


motion for the robot read as

M(l,l) Ml +
M2 +
M3

M(2,1) o.

R(l) -2.*M3*C*AL3P*BE2P*SIN(BE2)*COS(AL3) -
M3*C*AL3P**2*SIN(AL3)*COS(BE2) -
M3*C*BE2P**2*SIN(AL3)*COS(BE2)

QE(5) -GE*M3*C*COS (AL3)*COS (BE2) +


L3X

Furthermore, the animation of motion can be obtained from the


simulation as presented in Fig. 7.

Fig. 7 Animation of robot motion


202

Acknowledgements

The development of the software NEWEUL started at the


University of stuttgart in 1977. Major contributions to the
version NEWEUL '88 are due to Matthias Krieg, Klaus-Peter
Schmoll, Dieter Schramm, Markus Ast, Bernd KeBler, Gunter
Leister.

References

[1] Kreuzer, E.: Symbolische Berechnung der Bewegungs-


gleichungen von Mehrkorpersystemen. Dusseldorf: VDI-
Verlag, Fortschr.-Ber. VDI-Z., Reihe 11, Nr. 32, 1979.
[2] Schiehlen, W.: Technische Dynamik. Stuttgart: Teubner
1985.
[3] Schmoll, K.-P.: Modularer Aufbau von Mehrkorpersystemen
unter Verwendung der Relativkinematik. Dusseldorf:
VDI-Verlag, Fortschr.-Ber. VDI-Z., Reihe 18, Nr. 57,
1988.
[4] Schramm, D.: Ein Beitrag zur Dynamik reibungsbehafteter
Mehrkorpersysteme. Dusseldorf: VDI-Verlag, Fortschr.-
Ber. VDI-Z., Reihe 18, Nr. 32, 1986.
[5] Leister, G.: Programmpaket NEWSIM. stuttgart: Universitat
Stuttgart, Institut B fur Mechanik, Anleitung AN-22,
1989.
[6] Shampine, L.F.i Gordon, M.K.: Computer Solution of
Ordinary Differential Equations. San Francisco:
Freeman 1975.
[7] Schiehlen, W.: Modeling, Simulation and Animation of
Multibody systems. In: Future Trends in Applied
Mechanics. To appear.
[8] Daberkow, A.i Eismann, W.i Schiehlen, W.: Test Examples
for Multibody Systems. Stuttgart: Universitat
Stuttgart, Institut B fur Mechanik, Institutsbericht
IB-13, 1989.
MEDYNA - An Interactive Analysis and Design
Program for Geometrically Linear and Flexible
Multibody Systems

Oskar Wallrapp and Claus Fiihrer


Institute for Flight Systems Dynamics
German Aerospace Research Establishment (DLR)
D-8031 Wessling (FRG)

1 Introduction
Simulation and computer-aided analysis of complex mechanical systems has become a
task of increasing importance in computational mechanics. It requires software tools com-
bining modeling support, efficient generation of the equations of motion as well as modern
numerical solution and system analysis techniques.
MEDYN Al is an integrated approach - based on the method of multibody systems (MBS)
- for simulating the dynamics of a large variety of mechanical systems such as rail-guided
and road vehicles, machines etc ..
The development of l\:IEDYNA was initiated to assist the German high-speed railway re-
search by the "Deutsche Eisenbahn Consulting" (DEC) together with some major compa-
nies of the railway vehicle industry (e.g. MAN Technology, Krauss- Maffei, MBB, Thyssen-
Henschel).Therefore l\IEDYNA has been equipped with special features for modeling,
analysing and simulating rail-guided vehicles as railroad cars and magnetically levitated
vehicles.
We will present here the key features of MEDYNA together with its basic modeling
assumptions. Furthermore a detailed description of the components used to construct a
model in MEDYNA will be given and current applications will be summarized.
A final section considers the solution of the mechanism example of this handbook.

2 Multibody System Components and Model As-


sumptions of MEDYNA
For describing a complex mechanical system using a multibody formalism the following
elements are used:
IMEDYNA stands Cor the German expression MEhrkorperDYNAmik (= multibody dynamics)
204

• frames,
• bodies
• interconnections, and

• external excitations.

For increasing the variety of systems MEDYNA provides also special

• substructures

for coupling subsystems to the multibody model. An example of a multibody model


composed by these components is presented in Fig. 1.

Coordinate Systems
The motion of the MBS is described with respect to a reference coordinate system2 , EO,
which may be fixed in the inertial space (the inertial coordinate system is El) or which
may perform a prescribed motion, see Fig.I.
Each body of the MBS has its own body-fixed coordinate system, Ei. It is used for describing
data related to the individual bodies as attachment points of interconnections, external
forces acting on the body etc.

Bodies
MEDYNA handles rigid bodies with nonzero masses and moments of inertia, reduced
models like planar bodies and point masses as well as flexible bodies.
The following modeling assumption is made in MEDYNA:

Assumption 2.1 The motion of the bodies and their deformation are assumed to be
small with respect to a given nominal state. The nominal state is defined by the nominal
configuration, by the nominal motion and by nominal forces and torques acting on the
system. Thus, the kinematics of the MBS are linearized with respect to these quantities
(geometric linearity).

Nominal Motions
Nominal motions are motions of the reference system EO with respect to the inertial
system El. They depend also on the nominal rotation of gyrostats with angular velocity
w T (see Fig. 1). They are causing external forces and torques acting on the MBS.
Rigid Body Data
The rigid body data are described with respect to the body-fixed coordinate system Ei
(i being the index of the individual body) or, alternatively, with respect to a user defined
2MEDYNA allows also the use of several different reference systems to model larger structures e.g.
railway trains
205

9 ________ ~~~ ------ ~~ -----------.

,.
'" 2
'It

,L________________ l ________"_
, TJb

I: Inertial space (inertial system EI) R: Reference space (reference system EO)
Ki: Rigid or elastic bodies
Ga: Interconnections: joints Fb: Interconnections: force elements
w' : Angular velocity of a gyros tat g: Acceleration of gravity
r, m': External forces and torques TJa: Kinematical excitations
v O, w O: Motion of the reference system EO

Figure 1: Components of the Multibody System

auxiliary coordinate system. The data consist of the center of mass, the mass and the
moments of inertia, and the location of all attachment points. Attachment points are those
points where the interconnections are attached to the body or points where the results of
a simulation are of special interest (e.g. measurement points). In order to define a reduced
body model, the restrictions on the free motions of the individual bodies with respect to
EO are also considered as body data (e.g. planar model).
Flexible Body Data
The position r" of special material points (nodes) of a body i, (i = 1, ... ,nK), is de-
scribed with respect to the body-fixed frame Ei by the reference position vector ci and
the displacement function u i , which is expressed by a finite dimensional approximation:

with (2.1 )
206

Herein <I>i is a 3 x n~- matrix of space dependent assumed modes (shape functions) and
qi is a n~ x 1- vector of time dependent deformation coordinates.
This formulation requires a discrete model of the flexible body, which can be obtained
applying the finite element method (FEM) or the continuum approach, resulting in the
ordinary differential equation (ODE) [2]:

(2.2)

Again, Assumption 2.1 requires qi(t) being small. The input data for flexible MBS consist
of the shape functions <I>i, the generalized mass matrix M~, the damping matrix D! and
the stiffness matrix K; in addition to the rigid body data. In the case of nonzero nominal
stresses a generalized geometric stiffness matrix N; must be given, too. The preprocessor
ASKESE provides MEDYNA with these data obtained from FEM - programs, see Section
5. Also, these data can be taken from measurements directly.

Interconnections
The interaction between two coupled bodies or between a body and the environment is
modeled by interconnections. These are considered to be massless elements of the MBS
causing interaction forces and torques. They are modeled by combining elementary cou-
pling elements. These coupling elements can be divided in three classes:

• joints,
• force elements and

• friction elements.

Joints are restricting the relative motion between interconnected bodies and are causing
corresponding constraint forces and torques. The restrictions are described in terms of
kinematical relations in velocity and position coordinates, the so-called system constraints.
MEDYNA treats MBS with linear holonomic constraints.
Force elements introduce applied forces and torques, which depend on the relative motion
of the contiguous bodies and in some cases on further quantities. The interaction laws can
be rather general: linear, nonlinear, statical, dynamical, active, and passive [23].
Friction elements result in applied forces and torques being themselves functions of the
constraint forces and torques.
A broad class of coupling elements is predefined in a MEDYNA coupling element library,
which is presented in Table 1.
A special coupling element is provided to describe the interaction across a wheel-rail
interface. It is based on a linearized wheel-rail contact geometry and linearized force laws,
by applying the techniques of harmonic linearization [15]. This wheel-rail coupling element
is a combination of a joint, a force element, and a. friction element 3 •
The force elements themselves can be subdivided into three subclasses (ref. Fig. 2):
3Further simulation possibilities for wheel-rail systems are the substructures as described below.
207

• axial, translatory elements (T) described by their interaction forces F", lengths I"
and their directions n",
• axial, rotatory elements (R) described by their interaction torques Jyl", their angles
0" and their body-fixed directions n'R,
• spatial elements (S) described by their interaction forces and torques K." =
{F1,F; , Fj,M1,M;,Mj} and relative coordinates ~" defined with respect to a
special coordinate frame related to the particular coupling element, the coupling
element auxiliary frame.

(T) (R)
pI

p~Z l "F
-F -M
pI
pI " " pJ
;; kr pJ

T : axial, translatory, R: axial, rotatory, S: spatial

Figure 2: Subclasses of Standard Force Elements in the MEDYNA - Library

General interconnections can be described by superimposing catalogued interaction laws.


For special purposes the user can define additional interaction laws, which may depend
on relative quantities, state variables, time, excitations and output variables.

Topology of the M ultibody System


The topology of the MBS is defined in MEDYNA by describing the nominal position of
the individual bodies with respect to the reference frame. The interconnections then are
assigned to the bodies in an order given by the user. It is not necessary to distinguish
between tree structured or closed loop systems.
For the definition of the topological structure of the MBS the following assumption is
made:
208

Table 1: Library of Interconnection Elements in MEDYNA

I Linear Elements I Parameters I Symbol


Linear spring kT.FN
Torsional spring kR• {N ~
Linear damper dT
,
Torsional damper dR
Linear spring and damper in kT,dT
I ~
series
Torsional spring and kR.dR ~
damper in series

Spherical element Ks.Ds .I(.,


~
Static or dynamic acti e ele- Matrices relating
ment depending on the lin- F,M.(,.U,{ (

~
earized state vector (" the
control input u, and the
measurement vedor {M
Linkage to t t

General constraint element Z,(o


~ r---
Linear wheel-rail element ORE-param t rs generated
by RSGEO
-f - P-
...-1

I Nonlinear Elements I Parameters I Symbol

1~~
General, static or dynamic to be specified in prepared
element user routines or by gi en
model strudures
r--
onlinear wheel-rail Profile data, material con- -t P-
element stants
....
h
209

Assumption 2.2 An interaction always acts on two attachment points belonging in case
of rigid bodies to different bodies. The reference system is treated in this context as a rigid
body which is identified by the body index i = o.

External Actions and Excitations


MEDYN A allows to model excitations of the systems in terms of prescribed motion, forces
or torques. In particular these are (see Fig. 1):

• the constant gravitational acceleration,

• the global motion of the reference frame,

• the nominal angular velocity of gyrostats,

• external applied forces r


and torques me like preloads, wind forces, and pressure
forces acting at attachment points of the bodies,

• kinematical excitations q(t) defined at the attachment points of interconnections


linked to the reference space (body 0) like prescribed displacements, rotations, ve-
locities and accelerations. These are tools to describe rail disturbances and road
irregularities. They result in interaction forces in the interconnections.

The global motion of the reference system is specified in MEDYNA by the following
models:

• motion with constant speed along a prescribed curve being a

- straight line (nominal motion)


- circle with radius If resulting in a constant angular velocity WO (nominal mo-
tion)
- curve defined by a time function for the angular velocity, WO = ~WO(t), which
is catalogued in a special MEDYNA curving library, see Table 2.

The external forces and torques are described by their constant nominal values and small
deviations. For kinematical excitations the nominal value is always assumed to be zero.
The deviations in either case can be space-, time-, or frequency - dependent functions
which can be taken from the MEDYNA library of excitation functions or defined by the
user. In addition there is the feature in MEDYNA to handle also excitation models as
stochastic processes, which is often required for modeling road or rail irregularities. These
processes are given in terms of their power spectral density functions or (in time domain)
by an appropriate shape filter.
210

Table 2: Library of Track Models (Type 10 -17)

.'
t~~-~~n, 1 1 ' k - 1 'I/aE

-
°i---
f

,-f ..
°r--'--i I ---I ' r-111-""- 1/1-- r- III - . , . - III - -
u R~ R> RE
r-- I - - - : r-- I - - - :
(10) HE (11) R.l. RE

ij 1 l~l~rai~hl
Superelevalion Ramp _. Slralghl

I ~l ""'" " ' - - - Right Curve - , . : . - , . : . . - - Len Curve - - - '

_~i~"'ls
- - T b-r-- --l
,( . - - I I
RE RE
R~ RA

(12113)

(14/15)

I'
; I Ept~
I -b-r-'-T-,-r-b-r-'--I
'+----=====----i-"- RA RE RA RE RE RA

r- ,-'------ L -I
(16) (17)

Notation:
10 Transition track with straight superelevation ramp
11 Transition track with S-shaped swung superelevation ramp
12/13 Superelevated track with no sign change in track curvature
14/15 Superelevated track with a sign change in track curvature
and a point symmetric shape
16 Cross over modeled by two circular tracks
and a straight section (without superelevation)
17 like model 16 but with superelevation and a transition track
ii. = Superelevation level, 1/ R = Curvature, s = Track distance

Substructures
Beside typical multibody components like bodies, interconnections and external actions
MEDYNA also makes use of special substructure elements.
Generally, substructures are defined as complex mechanical, electrical or hydraulical sub-
systems, for which a multibody formalism is not applicable.
A typical example for such a substructure is the complex, nonlinear model of the wheelset
211

motion on a railway track, see Fig. 3. In MEDYNA different wheelset substructure models
are provided, [4]. Substructure elements are coupled to the MBS by force elements. The
corresponding interactions depend on the motion of the MBS at their attachment points
and on the states of the substructure.

DEFLECTED CONFIGURA TlON

Figure 3: Model of a Wheel-Rail Substructure

3 Multibody Formalism and System Equations


3.1 Generalized Position and Velocity Coordinates
In order to describe small motions with respect to a given nominal state the components
. . . .,.T. . .
r' = {r~} ,0" = 1,2,3 of the vector i'" = eN r' and the Cardan angles ""(' = {""(~}, Q = 1,2,3
of the direction cosine matrix Gi are used in MEDYNA as rigid body coordinates (see Fig.
1). If flexible bodies are incorporated in the MBS this set of coordinates is supplemented
by the deformation coordinates qi, (2.1). For all bodies (i = 1, ... , nK) these coordinates
are assembled to form the vector

with (3.1)

an d t he d· · np
ImenSlon = L...i=l n.i + n iq •
~nK

The number of rigid body position coordinates varies between zero and six corresponding
to the complexity of the given model (planar, spatial).
212

In the same way as p the position vectors 1r'N and 1r' of the nominal and total motion are
defined by:

(3.2)

(Herein and in the sequel the notation using the two braces has the same meaning as
defined in eq. (3.1)).
As generalized rigid body velocity coordinates the derivative with respect to time of ri and
qi are combined with the components wi of the angular velocity Wi defined in the basis
~:

(3.3)

Again, the velocity vector s has the dimension np.


The components wi of the angular velocity depend linearly on 7i and nonlinearly on the
angles ,i. In MEDYNA the linearized kinematical equations are used:

s =p. (3.4)

3.2 Relative Quantities for Interconnections


As pointed out in Chapter 2 MEDYNA provides three classes of coupling elements: axial
translatory, axial rotatory and spatial elements (subscript T, R, S). The corresponding
linearized kinematic relationships between the relative coordinates of the interconnections
(superscript a) and the generalized coordinates as defined above are

la = IN(1r'N) + t.la(p,t), t.la = STP + V;77T(t), t.{a = STP + V;7lT(t),


tJa = tJN( 1r'N) + t.tJa(p, t), t.tJ a = S'fIp + VR77R(t), t.Ja = S'RP + VR7lR(t), (3.5)
{a = {N(1r'N) + t.{a(p, t), t.{a = SsP + V;77s(t), t.{a = SsP + V;7ls(t).

The time dependent function 77 = (77T, 77R, 77S, qT, qR, 7lS )a=l .... describes the kinematical
excitations. The matrices ST.R.s and V;.R.S are constant geometry and excitation matrices.
For axial coupling elements the linearized dependency of the direction of action on the
generalized coordinates is given by

(3.6)

In MEDYNA the following assumption is made:

Assumption 3.1 The nominal relative quantities IN, "N and {N are assumed to be time
invariant, i.e. l~ = 0, tJ1v = 0, and {~ = 0.
213

3.3 Constraints
The joints in an MBS like revolute joints, prismatic joints, connecting rods (see Fig. 2)
constrain the free motion of the bodies. In practice all joints can be described by holonomic
constraints.
The holonomic constraints of a joint are defined in terms of the relative coordinates a by e
the condition r.pa(e a) = 0 with r.p being a n~ - vector valued function. If these contributions
of all joints of the MBS are assembled together and transformed into generalized coor-
dinates the n z := La n~ linearized constraint equations and the corresponding nominal
conditions are obtained:

and (3.7)

Assumption 3.2 The np x n z constraint matrix Cz and the n z x n~ excitation matrix V~


are assumed to be time invariant.

Using (3.4) the velocity coordinates are then constrained by

(3.8)

Table 3: Types of Actions Induced by ~IBS-Components in MEDYNA

Generalized applied forces


MBS component Physical Quantity Type
9 = gN - N p + 6..g
gN N 6..g
Joints J:,m~(>\a) 0, z, i gzN Nz 6..g z - -Cz6..)'
Force elements f't, m,(p, s, t) 0, p, i gfN Nf 6..g f (p, s, t)
Friction elements f'tZl m'z(>.a) 0, p, i 9jzN Nzj !J.gjz - -C jz!J.).
Kinem. excitation 1]a(t) 0, p, a
External forces !'(t),me(t) 0, p, a geN Ne !J.ge(t) - R.6.. K e(t)
and torques
Gravitational acc. 9 V, p, a gyN Ny !J.gq(t)
Reference motion VO,wO(t) V, p, a geN Ne !J.ge(t) - f{eP - Des
Gyrostatic effects wr V, p, a grN Nr !J.gr(t) - Drs
Notation:
Type: 0 = surface action, V = volume action, Z = constraint action,
p = applied action, i = internal interaction, a = external action,
Indices: N = nominal quantity, 6. = incremental quantity
Matrices: N = geometric stiffness matrix, D = damping matrix, J( = stiffness matrix,
Gjz = friction matrix
214

3.4 Jourdain's Principle and Generalized Forces


In order to apply Jourdain's principle virtual velocities 8s are introduced. These must
satisfy the implicit constraint equations (3.8), which can be achieved by considering ad-
ditional Lagrange multipliers A. Again, these are partitioned into a nominal part and a
small deviation: A = AN + ~A. Then, for a general MBS, Jourdain's principle results in
the following equation:

8s T {Ms + Dqs + Kqp + C.~A + N.p - gp(7l'N' AN,P,S, ~A, tn = O. (3.9)


The first order term in a Taylor series expansion of 'f! contributes together with AN to the
geometric stiffness matrix N. 4. The other terms in eq. (3.9) are

M = diag [Mi];=l, ... ,nK np x np - total mass matrix

Dq = diag [diag [0,0, D!ll._


I-I",.,nK
np x np - total modal damping matrix

Kq = diag [diag [0, 0, K~ + N~ll i=l, ... ,nK np x np - generalized stiffness matrix of flexible
bodies
gp( 7l'N, AN, p, s, ~A, t) np x 1 - vector of the generalized applied forces resulting from mo-
tions of the reference systems, gravitation, external forces and torques, actions of
force and friction elements.

The linear form of the generalized applied forces consists of three parts:

9p(7l'N, AN, p, s, ~A, t) = gpN(7l'N, AN) + ~gp(p, s, ~A, t) - Npp (3.10)


with Np being again a geometric stiffness matrix, which depends on the nominal actions
(forc'es and torques).
The expansion of the individual components is shown in Table 3.
The following fundamental equations are derived from eqs. (3.9) and (3.10) and are given
here for the mere purpose for indicating their structure:

1. Nominal conditions of kinematics and statics:

and = gN 1: 0
gpN( 7l'N, AN) with (3.11)
gN = - [C. + CJzJ AN + RJK.fN + gaN

2. Linearized Lagrange equations of the first kind

Ms + Ds + Kp + [C. + CfzJ ~A = R«(t+ Rn~K.n+ R'1T/ + Re~K..


Rs~K.S+ ~gt (3.12)
(I = A(I(I + A(pp + A(.s + A'1T/ (3.13)
(n (n(p,S,T/,t) (3.14)
(~ (.( (s, ~K.s, t) (3.15)
with the following coupling relations and notations:
4A detailed discussion of geometric stiffness matrices in different MBS-approaches is given in (23).
215

D := Dq + D / + Dc + Dr being the damping matrix,


1< := 1<q + 1</ + 1<c + N the stiffness matrix,
A9t(t) := Agg(t) + Agc(t) + Agr(t) the time dependent generalized forces,
(, the linear dynamical actions,
AK. n = AK.n(p, S, T/, (n, t) nonlinear actions and the corresponding states (n, and
AK.S = AK.s(p, s, T/, (5, t) nonlinear actions and the corresponding states (n of the
wheel-rail substructure.

The equations of motion (3.4),(3.12) - (3.15) together with the constraint equations (3.7)
define a system of differential-algebraic equations (DAEs).

4 Solution Methods in MEDYN A


An important advantage of MEDYNA is the combination of equation generation tech-
niques with efficient numerical solution and analyzing methods. Special care has been
taken to adapt the numerical methods to the demands of computational mechanics and
especially to computational vehicle dynamics. This is reflected in the choice of numerical
algorithms ranging from nonlinear equation solvers adapted for the investigation of qua-
sistatical curving behaviour of railroad vehicles and system analysis methods for linear
deterministic and stochastic systems to modern codes for numerical integration of stiff
and nonstiff ODEs.

4.1 Computation of a Static Equilibrium


The linearized Lagrange equations (3.12) - (3.15) require the nominal conditions of kine-
matics (3.10) and statics (3.11) to be satisfied. If a given MBS is not in a static (or for
moving reference frames: quasistatic) equilibrium configuration MEDYNA provides two
different approaches to fulfil the equilibrium requirements.
The first approach involves a computation that "adjusts" the interaction forces, K.N, AN,
and "freezes" the position of the bodies. The interaction forces corresponding to a system
in an equilibrium state are numerically evaluated by solving a particular linear system
depending on given values for gaN, (3.11). Details are given in [23, ch.7.2].
The second approach "adjusts" the position of the bodies, the constraint forces, and
consequently the applied interactions, so that for given external actions the system is
transformed into a static equilibrium position. This method is iterative as a nonlinear
system of algebraic equations must be solved. In MEDYNA this is done by an incremental
continuation method based on a sequence of Newton-Raphson iterations, [23, ch.7.3], [17].

4.2 Transformation to State Space Form by Eliminating the


Constraint Forces
The Lagrange equations (3.4), (3.12) - (3.15), (3.7) consist of a system of differential-
algebraic equations. Whereas in the general nonlinear case special techniques are necessary
216

for handling this type of equations [1], the model class considered by MEDYNA allows
to solve the constraint equations by some nullspace technique globally [8]. By using this
method

• the number ny of degrees of freedom is determined,

• an appropriate set of state variables y is selected together with the Jacobians [19]
Jy, J~ satisfying p = JyY + J~TJ, which is the explicit form of the constraint equation
(3.7),
• the system is reduced to its state space form, which consists of a lower order un-
constrained system of ordinary differential equations with the constraint forces tlA
being eliminated.

4.3 Linear System Analysis Methods


For linear system analysis purposes MEDYN A establishes the matrices of the state space
form, which are the system matrix defined by mass, stiffness and damping terms, the
input matrix corresponding to excitations and external actions and the output matrices
belonging to specified output quantities (see Sec. 4.5). MEDYN A includes the following
analysis methods [6]:

• Modalanalysis for investigating the stability of the linearized system in terms of its
eigenvalues and eigenvectors,

• Frequency response and Bode diagrams,

• Power spectral density function of specified output quantities and ride comfort cri-
teria, for analysing the performance of vehicles running over randomly disturbed
roads or tracks,

• Covariance analysis for random disturbances given as an output of a linear dynamic


filter [16].

4.4 Numerical Integration Methods


The nonlinear state equations are solved with numerical integration methods in the time
domain. Numerical integration methods available in MEDYNA include a Runge-Kutta-
Bettis code with error control and variable stepsize, and two multistep codes. Multistep
codes are best suited for problems with dense output or "right-hand-side functions" which
are expensive to evaluate. MEDYNA includes the multistep code, DE, for nonstiff prob-
lems, which is based on variable order Adams-Bashforth-Moulton formulas [22], the other
code, LSODA, is adaptive for systems with varying stiffness properties [18]. It auto-
matically switches to ADAMS-formulas and fast iteration schemes designed for nonstiff
problems and uses BDF-formulas ("Gear's method") together with the more expensive
Newton-iteration only when required by stability demands in case of stiff mechanical sys-
tems. This code, also, has variable stepsizes and variable order, which drops to a simple
217

backward Euler formula if the problem is not sufficiently smooth. Stiff systems occur fre-
quently in models with friction elements, road vehicles with special tire models and low
speed railroad vehicles, [7].

4.5 Output Relations


In order to analyse the M'BS sometimes not only the state variables are required, but also
other output quantities like

• the relative- and absolute motion at given observation points,

• interaction force and torques in the interconnections,

• a linear combination of the generalized position and velocity coordinates,

• a linear combination of X n, Xn, u and .6.Kn,

• any nonlinear relation of the coordinates (defined by a user-given function).

5 Software Aspects and Handling


MEDYNA is an integrated interactive program containing the aforementioned modeling
options and computational methods.

Handling
Referring to Fig. 4 the user is offered a menu of main routines from which he chooses
the desired input or computational routine. All procedures, such as system definition,
equation generation and system analysis, are unified into one program. Therefore the user
can complete a design task and perform a system analysis in one session with uniform
handling. Most of undesired program interrupts are avoided by a numerous set of built-in
validity checks. Both short and detailed help-texts are available and self explanatory.
A special data organization concept [21] allows termination of the session at any input
point, without loss of any of the previous session data or computational results (restart
capability). All model data and results are stored in a single data file. By copying such a
data file and subsequent modification, new models are easily built-up. As output medium,
the user's terminal is used to display relevant remarks (program warnings or errors, as
well as status information) and brief results. With a. printer or graphics terminal, the
user can print or display a detailed set of the results. The program also allows the use of
user-specified routines to extend the functions of nonlinear interactions, system inputs or
system outputs in prepared user-specified routines.
For large models or computer time expensive sessions the program is working in batch
mode, too. MEDYNA is equipped with an automatic batch data generating facility using
interactively defined input data from previous program runs.
It is worth noting, that the program itself has no limitations for the model size.
218

MlifjJ rlif/jJ
AlULTIBODY DYNAMICS
I. S'I'S'TEM II. GENERATION OF III. AWLYSIS OF rio NW.YSIS OF v. PRE- »40 POST-
DEFlNmON EQUATIONS STATICS D'tNAMICS PROCESSING

• Model • System Matrices • Nominal • Eigenvalues • Wheel-Roll


IcMnUfler Interaction Eigenvectors Contact Geometry
• lime Dependent Forces - RSGEO -
• Multlbody and Nonnneor • Frequency
Configuration Terms • Static Response • Transformation
Equmbrlum (Graphics) of FEI.I-Oata
• Interconnections • Output Matrices - ASKESE -
• Power Spectral
Density
• Gyrastots (Graphics)

• Motion of • Covariance
Reference Frome Analysis

• Excitations • Numerical
Integration

• System Outputs • Evaluation of


lime Histories
(Graphics)

Figure 4: Menu with the Options of the Program MEDYNA

Pre- and Postprocessing

ASKESE The preprocessor ASKESE has been developed for describing flexible bodies
with data from finite element models. This processor presently transforms the system
matrices from an FEM program into the whole set of flexible body data as required
by MEDYNA. ASK ESE is coupled with the finite element programs PERMAS, [20].
Other finite element programs can be used to develop the model, as long as the user
converts the data to a form treatable by the preprocessor ASKESE.
RSGEO The preprocessor RSGEO generates geometry data for the wheel-rail modeling
facilities in MEDYNA. The data for standard wheel and rail profile curvatures may
be established, as well as the calculation of contact geometry functions dependent on
the lateral wheelset displacement. These functions are necessary for the wheel-rail
coupling elements, and the wheel-rail substructure. A special user routine makes it
possible to input measured profile data.

Plotting The plot file provides the user with access to MEDYNA results in the time or
frequency domain. Displaying the results can be done with the user's own hardware
dependent graphics software.

6 Applications of the Program MEDYNA


An essential feature of MEDYN A was its motivation by the German research and develop-
ment program for advanced high speed ground transportation systems. Main specifications
for the modeling capabilities and tests for applicability of the program have resulted from
219

these efforts and have laid the basis for MEDYNA's distribution in railrol\d companies
and organizations within Europe and abroad.
Many applications have been reported, especially in the Journal of Vehicle System
Dynamic~; thus, the discussion can be kept short in the present article.

Rail Vehicles
A main field of application of MEDYNA is the design and analysis of wheel-rail vehicles.
For simulation and system analysis purposes the contact of a wheel(set) on a rail can
be described very effectively by the linear and nonlinear whee-rail coupling elements in
the coupling element library of MEDYNA or, alternatively, the wheel-rail substructure
element [4].
The modeling assumptions of MEDYNA, specially the guided reference frame are specially
designed for this range of applications.
MEDYNA has been used to discuss the stability of several prototype vehicles of the
german high speed train ICE, when running through a straight track. Also the dynamical
and quasistatical curving behaviour of different wheel-rail vehicles have been investigated
with MEDYNA by several authors [10,12].
For the numerical methods in MEDYNA the shunting of low speed freight cars is a chal-
lenging application, as with decreasing speed of the vehicle the stiffness of the differential
equation (3.12) increases [7]. For a shunting train also a detailed model of the buffers
including nonlinear friction elements is necessary. This application is presented in [9).

Magnetically Levitated Vehicles


As for wheel-rail systems the motion of the vehicles are in general small with respect to the
guideway; thus, the essential modeling assumptions of MEDYNA apply to magnetically
levitated vehicles (MAGLEV vehicles) as well. A summary of the applications to the
MAGLEV system is reported in [14].
Due to the dynamics of the special coupling elements the system dimension of these
systems is normally very high. In [13] the design of MAGLEV vehicles under track irregu-
larities and external excitations due to wind gusts has been investigated using MEDYNA.

Road Vehicles
Many applications for analyzing road vehicle dynamics and vibrations can be performed by
using a geometrically linear multibody program like MEDYNA. Especially the dynamical
behaviour of road vehicles running over deterministic or stochastic road irregularities can
be analyzed with the time- and frequency - domain methods of MEDYNA, [3]. Also, by
using the static modules in MEDYNA the kinematical nonlinearity of a car axle can be
investigated under load or when steered, [5].
SSpecia\ issues for the Proceedings of the IAVSD-Symposia on the Dynamics of Vehicles on Roads and
on Tracks
220

Machinery
MEDYNA has also been applied for investigating vibration effects in machinery [11].

7 Mechanism Example
The dynamic problem of the mechanism given in this handbook requires a program, which
provides full nonlinear kinematics. This can be seen, when considering the steering angle
f3(t), which is an independent coordinate of the MBS with values larger than ±O.2rad.
The modeling assumptions in MEDYNA allow the computation of static equilibrium
positions and kinematic compatible forces for different input angles f3.

30~------------------------~ 12~------------------------~
~

w
ll!
C>
2S ~II
z
w
o
~ 20 iii 10
< w
+
E
~IS ~ 9
w
.J '"u.o
~ 10 z 8
c>
<
~

~ S
~
'"fr; 7
:>
o
0+---r-~
o S0
__
100
~---r--~--~--~
150 200 2S0 300 350
6+---------~--~--~--~--~
o S0 100 150 200 2S0 300 350
I NPUT ANGLE BETA (DEGREE) INPUT ANGLE BETA (DEGREE)

Figure 5: Kinema.tic Relation 7(f3) and corresponding Spring Force F(f3)

Here the results of the output angles and the corresponding interaction force of the spring
F(f3) are shown in their dependency on f3, see Fig. 5.
In addition to that analysis, the dynamic part of MEDYNA allows a kinematic excited
drive with a known function of the angle f3(t). The displacements of the hinge point
between the rod and the drive are I]",(t) = rsin(f3(t)), and I]y(t) = rcos(f3(t)). Under
these conditions the mechanisms has no degrees of freedom.
Considering f3(t) as a given kinematical excitation the angle 7(t) has been computed with
MEDYNA by using a constant Jacobian Jy, evaluated for the values 1]1: = I]y = O. The
result is shown in Fig. 6 in comparison with the angle obtained by considering nonlinear
kinematics (NEWEUL). For this computation the input values f3(t) were taken from a
previous simulation of this mechanism using NEWEUL.
221

V GAMMA DOT - LINEAR KINEMATICS


lJ. GAMMA DOT - NONLINEAR KINEMATICS
180
160
140
120
100
80
u
60
,
w
(fl

0
"f0
< 20
~
0
..... -20
0
0
-40
<
I: -60
I:
<
(!)
-80
-100
-120
-1"f0
-160
-180
.000 .005 .010 .015 .020 .025 .030
TIME (5)

Figure 6: Angle i(t) resulting from linear and nonlinear kinematics

Acknowledgements
MEDYNA was generated mainly by the Multibody Dynamics Group at the Institute for
Flight System Dynamics of DLR (=German Aerospace Research Establishment) under the
direction of Dr. W. Kortum. The developing group consisted of W. Duffek, W. Schuster,
and W. Schwartz, together with the authors of this article; contributions were made by
Dr. Mauer (MAN Technology) and Dr. Kik (Technical University Berlin).
The development of MEDYNA was financially supported by the German Ministry of
Research and Technology (BMFT) and coordinated by the German Railroad Consulting
(DEC). All contributions by individuals and institutions are highly appreciated.
The authors want also to thank Dr. Kortum for many helpful comments on this article.
222

References
[1] K. Brenan, S. Campbell, and L. Petzold. The Numerical Solution of Initial Value
Problems in Ordinary Differential-Algebraic Equations. North Holland Publishing
Co., 1989.
[2] R. Clough and J. Penzien. Dynamics of Structures. Mc Graw Hill Kogakusha, Tokyo,
1975.
[3] W. Duffek, C. Fiihrer, W. Schwartz, and O. Wallrapp. Analysis and simulation ofrail
and raod vehicles with the program MEDYNA. In O. Nordstrom, editor, Proc. 9th
IAVSD-Symposium on the Dynamics of Vehicles on Roads and on Tracks, pages 71
- 85, Swets & Zeitlinger, B.V. Lisse, 1986.

[4] W. Duffek and A. Jaschinski. Efficient implementation of wheel-rail contact mechan-


ics in dynamic curving. In A. Wickens, editor, Proc. 7th IA VSD-Symposium on the
Dynamics of Vehicles on Roads and on Tracks, pages 441 - 454, Swets & Zeitlinger,
B.V. Lisse, 1982.
[5] 1. Faye. Simulation of a Five-Point Suspension System for an Automobile Wheel
with MEDYNA. Technical Report DFVLR-IB 515-88-3, Deutsche Forschungs- und
Versuchsanstalt fiir Luft- und Raumfahrt (DFVLR). D-5000 Koln 90, 1988.

[6] C. Fiihrer. Algebraic methods in vehicle dynamics simulation. In A. de Pater


and H. Pacejka, editors, Proc. 3rd Seminar on Advanced Vehicle System Dynam-
ics, pages 329 - 346, Swets & Zeitlinger, B.V. Lisse, 1987.

[7] C. Fiihrer. Stiff differential equations in vehicle dynamics. In H. Neunzert, editor,


Proc. 2nd Workshop on Road Vehicles and Related Mathematics, pages 131-141,
B.G.Teubner, Stuttgart; Kluwer Academic Publishers, 1989.
[8] C. Fiihrer and O. Wallrapp. A computer-oriented method for reducing linearized
multi body equations by incorporating constraints. Compo Meth. ApI. Mech. Eng.,
46:169 - 175, 1984.
[9] H. Horn, A. Jaschinski, and S. Sedelmair. Dynamic simulation of freight cars with
nonlinear suspension and buffer models during curving. In M. Apetaur, editor,
Proc. 10th IA VSD-Symposium on the Dynamics of Vehicles on Roads and on Tracks,
pages 161 - 168, Swets & Zeitlinger, B.V. Lisse, 1988.

[10] A. Jaschinski and W. Duffek. Evaluation of bogie models with respect to dy-
namic curving performance of rail vehicles. In K. Hedrick, editor, Proc. 8th IAVSD-
Symposium on the Dynamics of Vehicles on Roads and on Tracks, pages 266 - 279,
Swets & Zeitlinger, B.V. Lisse, 1984.

[11] D. Karius and W. Kortum. A contribution on calculation vibrations in coupled rigid


and elastic multi body systems applied to a propulsion system - an application of the
computer program MEDYNA. In M. Heller, editor, Proc. lth Intercont. Maritime
Simul. Symp. and Math. Modelling Workshop, Control Data GmbH, Miinchen, 1985.
223

[12] W. Kik and H. Steinborn. Wheel/rail connexion-element for use in a multi-body-


algorithm. In K. Hedrick, editor, Proc. 8th IA VSD-Symposium on the Dynamics of
Vehicles on Roads and on Tracks, pages 303 - 316, Swets & Zeitlinger, B.V. Lisse,
1984.

[13] W. Kortiim, W. Schwartz, and I. Faye. Dynamic modeling of high speed


ground transportationd vehicles for control design and performance evaluation. In
G. Schweitzer and M. Mansour, editors, IUTAM/IFAC Symposium Zurich/ Switzer-
land 1988: Dynamics of Controlled Mechanical Systems, pages 335 -349, Springer,
Berlin, 1988.

[14] W. Kortiim, W. Schwartz, and I. Faye. Modeling, control design, and performance
evaluation of high speed ground vehicle dynamics. Mechanics of Structures and
Machines, to appear, 1989.

[15] L. Mauer. Die modulare Beschreibung des Rad/Schiene-Kontakts im linearen


Mehrkorperformalismus. Dissertation, Fachbereich 12 "Verkehrswesen", D83, Tech-
nische Universitat Berlin, 1988.

[16] P. Miiller, K. Popp, and W. Schiehlen. Berechnungsverfahren fiir stochastische


Fahrzeugschwingungen. Ing. Archiv, 49:235-254, 1980.

[17] J. Ortega and W. Rheinboldt. Iterative Solutions of Nonlinear Equations in Several


Variables. Academic Press, New York, 1970.

[18] 1. Petzold. Automatic Selection of Methods for Solving Stiff and Nonstiff Systems of
Ordinary Differential Equations. Technical Report SAND80-8230, Sandia National
Laboratories, Livermore, 1982.

[19] W. Schiehlen. Technische Dynamik. B.G. Teubner, Stuttgart, 1986.

[20] E. Schrem. PERMAS Theory Manual. INTES Publication, No. 302, Stuttgart, 1987.

[21] W. Schuster and o. Wallrapp. DV-Konzept eines interaktiven integrierten Pro-


grammes zur Simulation mechanischer Systeme. In M. Goller, editor, Proc. 1. Sypo-
sium Simulationstechnik, Informatik Fachberichte No. 56, pages 465-474, Springer,
Berlin, 1982.

[22] L. Shampine and M. Gordon. Computer Solution of Ordinary Differential Equations.


Freeman, San Francisco, 1975.

[23] O. Wallrapp. Entwicklung rechnergestiitzter Methoden der Mehrkorperdynamik in


der Fahrzeugtechnik (Dissertation). Technical Report DLR-FB 89-17, Deutsche
Forschungsanstalt fur Luft- und Raumfahrt (DLR), D-5000 Koln 90, 1989.
AUTODYN & ROBOTRAN - Computer Programmes
P. Maes, J.CI. Samin and P.Y. Willems
Universite Catholique de Louvain
Louvain-Ia-Neuve, Belgium.

AUTODYN

Abstract

This contribution presents the main features of the AUTODYN programme. This pro-
gramme based on d' Alembert Potential Power Principle, permits to derive the equations
of motion of any mechanical system which can be represented by a set of interconnected
rigid bodies. In particular, it has important applications in the fields of robotics and
vehicle dynamics. The variables of the system are the generalized variables describing
the relative motion of the various joints of the system. A joints' library including surface
rolling interconnections (rail-wheel joint) is available. Constraints can be considered and
in particular those resulting from loops of bodies are automatically generated. The La-
grange multipliers technique permits to derive the complete set of equations of motion;
a system reduction via the elimination of these multipliers and a coordinate part ion-
ing method is available. The obtained programme can be used as a sub-routine for
any desired application such as numerical integration, stability analysis, control design,
numerical linearization, eigenvalues determination.

Introduction

The mechanical system under consideration is assumed to be represented by a multibody


system composed of interconnected rigid bodies. These bodies will be characterized
by their mass distribution parameters and by geometrical quantities which permit to
localize their various interconnections. These connections are defined as joints and may
have up to six degrees of freedom.

Joints can be represented by mechanical devices such as springs, dampers, hinges,


universal joints or have more sophisticated representations such as sliding or rolling
between surfaces. Relative motion can take place in the joints and interactions are
produced. The variables describing the relative motions in the joints will be used as
generalized variables (even if other variables can be used as outputs of the programme).
The joint forces and torques can either be unknown constraint quantities or can be de-
scribed by dynamical relations (describing functions) between the various joint variables.
226

A library of predefined joints with their variables and describing functions is available;
the user is only asked to specify the actual values of the corresponding parameters.

Graph Description

The kinematical description of the system is greatly simplified when the graph of this
system is defined [1]. A tree structure is always used; for system with loops of bodies,
a cutting procedure is determined and an augmented tree structure is defined.

In order to simplify the introduction of the system data, conventions on the num-
bering of bodies and joints and on the localization of loop cuts are introduced. For this
procedure, graph matrices have been abandoned in favour of the more readily usable
notion of filiation [2][3]. This notion simply expresses that a given joint connects two
neighbouring bodies.

First of all a reference body is defined and the index 0 is associated with this body
which is assumed to be fixed with respect to inertial space and is the common ancestor
of all the bodies of the system.

For chain and tree structures, the graph numbering is then very simple. All the
bodies (considered as descendants) will be numbered according to a filiation order in
the chain or in the tree; the joints are then given the number of the body they precede
in this order. It is clear that for tree structures, this procedure favours certain branches
of the system.

If the same procedure is applied to systems which include loops of bodies, it will
soon appear that a given body is the direct ancestor of two (or more) bodies which
have common descendants (see figure 1). This indicates that this body is at the origin
of a loop. Conventionally, this body will then be separated in two parts, the original
body which keeps all its physical properties and a fictitious loop closure body which only
retains kinematical properties and permits to define an augmented tree structure. Once
the cutting procedure is completed M t independant loops have been indentified and M t
closure bodies have been added as terminal bodies of the corresponding augmented tree.

It can be of interest to define a main body of the system. The index 1 is then as-
227

Figure 1: Loop and augmented tree

sociated to this body. The corresponding joint 1 (which connects the main body to
the reference body) may have a fully or partially prescribed motion; from this simple
consideration, the application of the programme to various situations is greatly facili-
tated and, further, any discussion on the use of fixed or moving reference frame becomes
irrelevant.

The filiation and cutting procedure can be supplied to the main programme through
the use of two matrix functions: INBODY and INLOOP.

The function INBODY is a vector which has as many elements as there are joints
in the system or equivalently as there are descendants of the fixed reference body in
the augmented tree. The j th element of this vector corresponds to the j th body (or
equivalently to the jth joint) and includes the index of the direct parent of this j th
body (IN BODY(j) = i thus indicates that body i is the direct parent of body j in
the augmented tree). The recursive use of the function INBODY permits to obtain the
indices of all the bodies which belong to the unique path between a given body and the
reference body; the notation i ::; j indicates that body i belongs to this path defined
for body j, iffurther j "1= i, the notation i < j is used.

The columns of the (2 x Me) matrix IN LOO P provides the information on the origin
and the closure of the various loops. The a column of this matrix corresponds to the
loop a and its two elements include the indices of the origin and of the closure bodies
of this loop respectively. Further, the path in the loop a is provided by the recursive
use of the function IN BODY initiated at j =IN LOOP(2, a) and interrupted when

INBODY(i) = INLOOP(l, a).


228

Body Parameters

The equations of motion depend on the geometrical configuration and the mass distri-
bution parameters of the various bodies.

The characteristic geometrical lengths are discribed by the vecteur !"ij defined as (see
figure 2a) :

Figure 2: a) Geometrical parameters b) Augmented body

if i = IN BODY(j), the vector tj is the vector connecting the reference points of joints
i and j respectively;

if i < j ~ k, the vector tk is defined to be equal to the corresponding vector !"ij;

if j = i, the corresponding vector ti is the position vector of the mass centre of body
i with respect to joint i (for fictitious closure bodies this vector locates the point
corresponding to the mass centre of the original body);

otherwise tj = O.

The bodies being supposed rigid, their mass distribution is fully described by the
masses mi, the above defined position vectors of the mass centres, ti, and the tensors of
inertia with respect to this mass centre, 1;. Further the vectors !:.;j, !:.;i and the tensors
1; being defined for the body i have constant components in a base {R;} attached to
229

this body. The bases attached to fictitious closure bodies are supposed to coincide with
the bases of the corresponding origin bodies when the loops are closed; it is clear that
these bodies have neither mass nor inertia tensor.

It can be shown - see [4] and [5], - that these body parameters combine in the
expressions of the equations of motion which are given in terms of so-called barycentric
parameters. The barycentric tensors appearing in the present formulation are given by
the following expressions:

mi = L mk (1)
k:i5;k

7TIQi =L mk~ik (2)


k:i5;k


-, = I· -
-I "~ .::.&_,
mkl.ki·k (3)
k:i5;k

where X is the skew-symmetrical tensor associated with the vector ~.

If one defines the a~tgmented body i (figure 2b) as a body consisting of the body i
and point masses equal to mj located at the reference point of the various joints j such
that IN BODY(j) = i, the above-defined barycentric parameters respectively represent
the mass of the augmented body i and its first and second order tensors of inertia with
respect to the reference point of joint i; in particular Q. represents the position vector
of the mass centre of the augmented body with respect to this point.

J oint Description

As already seen, the joint j connects body j to body i = IN BODY(j). In both bodies,
the corresponding joint reference or end points have already been defined and localized.
J oint bases can also be associated with both ends of the joint; the base {R;n} is associated
with body i and the base {.&r t } with the body j. For practical reasons these bases may
differ from the corresponding body bases but remain considered as body fixed; their
relative orientation can be described by constant orthogonal matrices [A~n] and [Ajut]
with

and (4)
230

body i joint j body j

Figure 3: Joints

During the motion, the joint reference points may separate and the joint bases may
take a relative orientation. This relative motion is described by the translation vector
~j (oriented from body i to body j and expressed in the base {RJ as ~j = [RjV [Zj])
and the orientation matrix [Aj] with

(5)

The relative orientation of the base {Rj } with respect to the base {RJ with i =
INBODY(j) is then given by matrix [Aj;] with, from (4) and (5)

The components of matrices [Zj] and [Aji] need to be described in terms of the joint
variables considered as the generalized coordinates {qja} and joint parameters with, in
most cases, [Zj] = 0 and [Aj] = [E] (where [E] is the identity matrix) in the reference
configuration. Further some constraints (holonomic or not) between these coordinates
may be considered.

On the other hand, the joint mechanism produces interactions between the con-
nected bodies. The corresponding forces and torques either can be constraint quantities
(which usually can be ignored in the final equations) or can be described by dynamical
describing functions.
231

In principle, in order to properly describe a joint, the user must provide the ex-
pressions of the matrices [Zj] and [Ajd, of the constraints (the first and second time
derivatives of these expressions are also required as will be seen further) and of the
interactions acting on the bodies.

This procedure is simplified by the use of a joint library. Six standard joints are
currently included in the AUTODYN package; their parameters may be interactively
adapted to the user application. These joints have been devised to cover a wide range
of applications; they are given by the following sub-routines:

ROTRA : sequence of three Tait-Bryan rotations around (3,2,1)-axes followed by three


translations;

TRARO : sequence of three translations followed by three rotations around (1,2,3)-


a..'{es;

AXE: rotation around one axis (1,2 or 3);

GLIS : translation along one axis (1,2 or 3);

ROUERAIL : motion of a surface of revolution on a cylinder;

RORACOUR: motion of a surface of revolution on a torus.

In the sub-routines ROTRA and TRARO, the variables corresponding to the degrees
of freedom may be given as prescribed functions of time or constrained or suppressed.

Joints AXE and GLISS are simplified versions of the preceding ones. Together
with the addition of intermediate massless bodies, they permit the composition of any
sequence of degrees of freedom.

Joints ROUERAIL and RORACOUR were specifically developed for railway vehicles
applications and in particular for system with loose wheels and articulated bogies [6].

In order to illustrate the joint concept, the ROUERAIL joint will now be described

An isolated wheel moving on its rail has five degrees of freedom, which can in prin-
ciple be described by two horizontal displacements of its centre of mass,G, the rotation
232

angle around the axis of symmetry and the yaw and pitch angles. The rail and the
wheel being profiled, the choice of these coordinates implies the solution of the non
linear geometrical constraint corresponding to the contact with the rail.
In ROUERAIL, we introduced a set
a coordinates which explicitly refers
to the position of this contact point.
The contact on the rail, P, est de-
scribed by its position vector, 11, with
respect to a rail fixed reference point,
Po. The component U2 of this vec-
tor expressed in rail fixed base {I} de-
scribes the longitudinal displacement
along the track, the lateral, Ul, and
vertical, U3, components are related
by a rail profile function which is de-
scribed in the (1,3) plane (for perfectly
linear tracks).

Figure 4: Wheel-rail joint

This relation is explicited under the form 1£3 = It( 1£\). An auxiliary reference base
{R}, with the 3-axis aligned with the normal to the rail at the contact point, is as-
sociated with this contact point; its orientation with respect to the fixed base, {i}, is
obtained by a rotation Q around the 2-axis with Q = - tan-1/L'( ud where p' is the
derivative of the profile function.

Similar fuctions are used the localize the contact point, Q, on the moving wheel
surface. The base {X} is fixed to the wheel and the wheel reference point is its centre
of mass (supposed to belong to the axis of symmetry). The meridian plane to which Q
pertains is chosen to be the (1,3) plane of the auxiliary base {~.}; the orientation of this
base with respect to the wheel fixed base is described by the rotation angle B (around
the axis of symmetry). The position vector of the contact point Q with respect to the
wheel mas centre is given by the vector y; by definition the second component of this
233

vector is equal to zero and, further, the other two components are related by the wheel
profile function. Here too, this function is explicited as V3 = p( vd and a wheel profile
tangent base {T} is obtained by a rotation f3 around the 2-axis , with f3 = tan-Ip'(vd.
The contact conditions imply that the points P and Q coincide as well as the normal to
the two surfaces at these points; the 3-axes of the wheel and rail profile bases are then
aligned - theses bases are permited to spin with a relative angle if> around this common
axis.

The components of the displacement vector and the relative rotation matrix of the
rail-wheel joint are easily expressed in terms of the generalized variables UI, U2, VI, 8 and if>.
The auxiliary variables U3, V3, a and f3 are explicitly given and the geometry of the prob-
lem is thus completely described by the generalized variables.

The interaction describing functions used inROU E RAJ L are based on the linear
Kalker creep model [6],[7J; they require the knowledge of the contact normal force. In
order to be able to estimate this interaction, we use an additional degree of freedom - the
relative displacement of the contact points along the contact normal - and a posteriori
constraint this displacement to vanish; the associated Lagrange multiplier has been
shown to be equal to the normal force [8J.

Kinematics : relative and absolute motion, constraints

The configuration of a rigid body is completely determined by the position of its mass
centre and the orientation of its body-fixed base with respect to the reference body
(with respect to inertial space).

The (absolute) position vector of body j, lS.j, can be expressed in terms of the vectors
f.ij and ~ encountered along the path between the reference body and the body under
consideration as :

The orientation of the base {Xj} with respect to inertial space, given by the matrix
[AjJ- with [Xjl = [Aj][ll, is then obtained via the product of the relative orientation
234

Figure 5: Kinematics

matrices encountered along the path between body j and the reference body 0, with
[&] == [I].
The components (in the base {.&il) of relative angular velocity in the joint j, llj
are obtained by the matrix relation [Aj;] = -[!l] [Aj;] and are linear functions of the
time derivatives of the joint generalized coordinates. The absolute angular velocity of
the base fixed to body j, ~j, is then simply the (vector) sum of the relative angular
velocities in the joints on the path from the reference body:

~j = L !h
k:kSj

The expressions of the mass centre velocities and accelerations and of the body bases
angular accelerations are then obtained in a straightforward manner.

The loop constraints are obtained by expressing the fact that for all the loops the
origin and closure (fictitious) bodies coincide i.e. have the same mass centre and coin-
ciding bases; these bases have the same angular velocities. We can write these relations
as:
x,a=X-y
~=~ (6)
[.4.e] = [Ay]
!t:4J = ~..,
where {f3 = INLOOP(l,o:) = 1,···, NIt.
'Y = INLOOP(2,o:) 0:
235

The orientation constraints are not independant and we choose to retain their (1,2),
(2,3) and (3,1) elements; the other relations must be checked a posteriori.

The first and second time derivatives of the position constraints are obtained in a
straightforward manner. Instead of the time derivatives of the orientation constraints,
we use the corresponding angular velocity constraints and their time derivatives. Fur-
ther, the angular velocity constraints provide an appropriate pseudo-gradient for the
retained orientation constraints [9]; the use of this pseudo-gradient also ensures the
fulfilment of the complete set of orientation constraints - the third relation (6).

Once the Mjoint joint constraints and lv/user users' contraints have been added, we
obtain a set of M constraints. If the constraints are holonomic, they are represented by
M (independant) algebraic relations between the generalized variables of the problem
qOl represented by the (N X 1) vector [q]. We write them under the form of a M vector
relation
[S(qOl,t)] = 0 (7)

The time derivative of these constraints (or possibly equivalent pseudo-constraints


which are linear combinations of these times derivatives) can be written in matrix form:

[A(qa,t)][4] + [b(qa,t)] = 0 (8)

where the (M x N) matrix [A] is the gradient (or pseudo-gradient) matrix of the
(holonomic) constraints. For loop constraints, this gradient is obtained from the second
and forth relations in (6).

We assume that non-holomic constraints (arising from the joints - due to rolling
without sliding for instance - or directly introduced by the user) are linear in the
velocities (and then also in the generalized velocities). They then combine with the
time derivatives of the remaining holonomic constraints to provide a system of the
form (8); we also assume, possibly after elimination of redundant constraints, that the
corresponding matrix [A] is a full rank matrix.

The time derivative of this matrix equation (8) is also needed and can be written in

the form
(9)
236

Equations of motion

The equations of motion of the augmented tree will be obtained from the Potential

Power Principle.

The local form of the equations of motion for any system (without local internal

angular momentum distribution) is given by the relation

ji=f

I.e. the acceleration of any point of the system ji is equal everywhere (except possibly
on set of points with zero mass measure) to the corresponding value of the local force

density f.
For any vector field defined by the vectors !!, we obtain the following scalar identity
after integration over the system :

J (ji - f) .!! elm 0

We can choose the vectors!! to be a potential (possible) change of velocity compatible


with the rigidity of the bodies.

For any point of the rigid body j, the velocity is given by

The potential velocity (compatible with possible changes of the mass centre velocity,

6x), and angular velocity 6wj is given by :

and, after integration, the Potential Power Principle for a system of rigid bodies reads:

'"
L...J [(N
-) - F).6x·
-) -) + (H
-) - L.).6w.]
-) --} = 0 (10)

where

Nj mj iij is the linear momentum vector of body jj


237

Hj = Ij.!elj is the angular momentum of body j with respect to its mass centre;
JE.j and.t.j are, respectively, the resultant of forces and torques (reduced to the mass
centre) applied to the body j.

Alternatively, the relation (10) can be written:

"L.. [N
- J.• -~ H.• 6.w .J
6.x· + -J-~ = 6.P (11)
j

where 6.P is now the potential power of all the interactions acting on and in the system
and can be decomposed into 6.pert, the potential power of the external interactions
acting on the system and the sum of 6.Pj, the potential power of the interactions acting
in the various joints i.e. :

The velocities of the mass centre and the angular velocities (and hence of all the
material points of the system) being linear in the generalized velocities q", all the po-
tential velocities will be linear functions of the potential changes of these generalized
velocities 6.q",. Indeed formally, for every point, the position vector is a function of the
generalized coordinates, ~ = ~(q",t). The corresponding velocities can be written in
the form:

and the potential velocities compatible with the potential change of generalized coordi-
nates, ~ =
AodeCo(
~
• ".)
q""q",+uq",t - ~0( q",q",t)
.. is gIven by:

In particular this permits to write the left hand side of (11) as

L [Nj .6.xj + H .6.Wj 1 = j L<Ii"6.q,,


j "

this expression can be written in matrix form as [<Ii]T[6.ti] where [<Ii] is the (N x 1)

vector of the various <Ii"(q",q",ij,,,t).


238

It can easilily be checked that these functions are linear in the second time derivative
of the generalized coordinates and we can write:

[<p) = [M)[q) + [F) (12)

where [M) = [l\tI(q" , t») is the generalized mass matrix and the vector [F) = [F(q" , q", t»)
corresponds to centrifugal and gyroscopic effects.

The potential power of a joint interaction can also be written as:

6.Pj =L Qj" 6.qja


a

where Qja is the generalized joint interaction corresponding to the joint variable q;a.

In most cases the constraint interactions in the joint do not contribute to the joint
potential power when the corresponding constraints are potentially satisfied (this point
has to be carrefully checked). They could nevertheless appear in the expression of the
above-defined generalized forces, but it will be seen this is generally not a problem.

The potential power of the complete set of interactions will be written as :

or in matrix form
(13)

where [Q) is the (N x 1) vector of the generalized interactions, Qa(q",q",t)

The Potential Power Principle can now be written in the form:

(14)

for the variations of potential velocities which satisfy equation (8), i.e. which are such
that

[A(q",t»)[6.q) = O. (15)

Using the classical Lagrange multipliers technique, the equations of motion are finally
given by the N equations
[<p) - [Af[.\) = [Q}
(16)
[M] [q) + [F] = [Q] + [A]T[.\]
239

where the (M x 1) vector [A] is the corresponding vector of the Lagrange Multipliers.

This set of equations has still to be completed by the constraints in the form (7),
[S] = 0, for holonomic constraints or in the form (8), [A][ti] + [b] = 0 for holonomic
or non holonomic cases.

When the generalized interactions depend on constraint interactions, it proves to


be useful to express those in terms of Lagrange multipliers (possibly associated with
additional constraints between generalized coordinates. This procedure is used for the
ROUERAIL joint.

System reduction

The system of equations can be reduced [10],[11], by the elimination of the Lagrange
multipliers and of a set of variables (equal to the number of holonomic constraints).

Let us consider the set of M"independant holonomic constraints, [SO] = 0 and


possibly after a reordering (optionaly imposed by the user or decided by the programme),
the vector of generalized coordinates is partitioned as

q ~ [ .: 1
where [v] is the set of the lv/* variables which will be eliminated. The corresponding
gradient matrix [A"] will also be partitioned as

where the submatrix [A~] is a regular (1'v!" x M") matrix. This matrix being regular
the coordinates V", can in principle be (locally) expressed in terms of the others, uOl , but
analytical expressions are generally impossible to obtain.

In AUTODYN the following recursive algorithm is used:

[A:][V(k+I) - V(k)] + [SO] = 0,


[SO] = [S"(V(k), u*)]
where { [A:] = [A~(v*,u*)]
240

with [u*) the vector of the actual values of the vector [u) or any prescribed value (such
as a possible equilibrium value) and [VO), the recursive value of the vector [v) i.e. [V(k))
or any value prescribed by the user; this permits to avoid the inversion of the matrix
[A;) at each step of the recurrence ( or even at each step of an application such as a
numerical integration).

The time derivatives of [v) in terms of the corresponding derivatives of the indepen-
dant variables are obtained in the form:

[v] = [Bvu][u] + [bv)


[iiI = [B.u][iL] + [<;,]
[Bvu] = - [A:J-1[A:]
wh,,·l [b.] = [A:J-1][b:]
[<;,] = [A:J-1[c:]
The matrices [M] and [F] are also partioned as

IT one also defines the matrix [Buv] as [Buv] ~ [Bvuf, the reduced equations of
motion are given in the form:

[Mu)[iL] + [Fu] = [Qu] (17)

[Mu] [Mu.. ] + [M".][B.u] + [B... ][Muu] + [Buv)[Mv.)[B ... ]

where
{
f~:1 : [Fu] + [Buv][Fv] + {[M..v] + [Buv][Mvvl }[cv),
[QuI + [Buv][Q.I
This set of equations must be completed by any non holonomic constraints.

Programme arrangement

An AUTODYN application is divided in four main step:

I input data processsing I=> Idynamical equations I=> Isystem reduction I=> Iapplication I
241

The input of the data preprocessor includes the graph information (the IN BO DY
and IN LOOP matrices), the geometrical (the !:.ij vectors) and mass distribution (the
masses mj and the Ii tensors) parameters and the information relative to the joints
(possibly provided by the joint library).

The output of the data preprocessor provides the barycentric parameters (1) - (3)
and the generalized coordinates vector; the joint generalized interactions, Qjo" are also
provided at this stage if the joint library is used.

The main programme computes the various terms appearing in the Potential Power
Principle i.e. :

the matrix [ip] under the form (12) : [ip] = [M][q] + [F];
the generalized force matrix (13) : [Q] = [Q(q" , q", (Aa), t)] which includes the effect
of joint, extenal and control interactions;

the constraints (or equivalent pseudo constraints) and in particular (possibly after
elimination of redondant constraints) the constraints gradient matrix [A].

The outputs of the main programme are the dynamical equations written in the
form (16) :
[AI][q] + [F] - [A]T[,X] = [Q]
and the constraints (and their time derivatives) under the form (7), (8) or (9) :

[S] = 0, [A] [q] + [b] = 0, or [A] [q] + [e] = °


the output consists of a system of (N + M) (differential or mixed algebraic and differ-
ential) equations in the (N + M) unknowns [q] and [A].

This system can then be reduced, by the elimination of the Lagrange multipliers and
of a set of variables (equal to the number of holonomic constraints). The obtained set
of equations (17):

is completed by the non holonomic constraints to provide the final set of equations.
The organisation of the programme can be summarized as follows :
242

Data Preprocessor

AUTODYN
Generalized [Q]
Interactions

[q] [q] Multibody [M][F] Dynamical


I [A] Analysis Equations
1

1
1 Loops and User's [A]
L _ _ ~ CoAnstlrai?-ts
1 na YSIS
1 [5] = 0
1 [AjT[q] + [b] = 0 [M][q] + [F] - [AjT[A] = [Q]
1 [AjT[q] + [e] = 0
1
1_ _ _ _
--~------------------
1
v = v(u,t)
1
Coord. v=v(u,u,t)
1 Partitioning ii = ii(u,u,u,t)
1

1
[q[{:.] System
Reduction

1
1
1
1
-
[Mu][u]
L -
+ (Fu] = [Qu]
1_ _ _ -

1
- - - - - - - - -f- - - - - - - - - ~- --

L __
APPLICATIONS

Figure 6: Programme AUTODYN


243

The user can now use the AUTODYN programme for his applications. The follow-
ing applications are readily available: numerical integration, equilibrium investigation,
numerical linearization, stability analysis, eigenvalue determination, control design.

Test example: Plane motion of a mechanism.

This system is a seven bodies mechanism. One fictitious body (body 8) has been added
at the spring attachment point in order to simplify the description of the motion of this
nodal point; three loop closure bodies (bodies 9,10 and 11) are also considered. Figure 7
represents the numbering used in the graph matrices. Figure 8 and 9 are typical figures
obtained, from the output file, by using the MATLAB graphic software.

0 . 1r-----~----_r-----,

,,
0.05 ,I
I

o
~
. .-1---~O.~OJ~~--~Ur----~
-0·~~~ U . 05

F igure 7: Body numbering. Figure 8: Configuration after 8 ms.

Beta Velocit of Beta


20 1500

15
1000
.
-d
....
10

5 ..
~
-0
<U

500
0

-5 0
0 0.01 0.02 0.03 0 0.01 0.02 0.Q3
Time [5] Time [5]

Figure 9: First body orientation angle, f3 and angular velocity, ~.

Figure 10 shows some features of the input data file and of the joint library.
244

Seven body mechanism }


. 6 lines of title

11 Number of bodies )
01224263357 INBODY
3 Number of loops Graph description
09 INLOOP(.,J)

I: I : Closure body :

I
Initial body

0.0 0.0 0.0 £01

0.02 0.017 0.0 bs Po.'!;n". of u!;,ula!;on.


0.0 0.035 0.0 b9

0.0009237 0.0 0.0 !ll

0.0 0.0 0.0 !ss Positions of mass centres


0.03635465058 -0.03273386291 0.0 !w

0.04325 0.00365 0.02373 }


Masses

0.0 0.0 0.0


0.0 0.0 0.0 Inertia J
0.0 0.0 0.2194e-05 } Te".o", of 'no,!;a

. . . - - - - - - - - - - - - - - - - - - Index of the joint

II r---------------:
I I :
:, ~~:b:~ j:;~t~.~. = AXE)
Number of prescribed variables
Number of joint constraints

mo-oo
I • Type of the variables (unconstrained
13 100 rotation around 3-axis)

}
1.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 1.0 Revolute joint J
Joint description

spring parameters or kinematical parameters }


(here free joint)
for each d.o.f. for each prescribed variable

Figure 10: Input data of the "Seven bodies mechanism"


245

References

[1] Roberson,R.E. and J.Wittenburg, A dynamical formalism for an arbitrary number of in-
terconnected rigid bodies, with reference to the problem of satellite attitude control, Pro-
ceedings of the Third International Congress of Automatic Control, Butterworth and Co,
London, 1966.

[2] Wittenburg), Dynamics of systems of rigid bodies, B.G.Teubner, Stuttgart, 1977.

[3] Samin,J .-CI. and P.Y.Willems, Multibody formalim applied to non-conventional railway
systems, Dynamics of Multibody Systems, G.Bianchi and W.Schiehlen(eds), Springer,Beriin,
19S6.

[4] Renaud,~I., Quasi-minimal computation of the dynamic model of a robot manipulator


utilizing the Newton-Euler formalism and the notion of augmented body, Proceeding of
the IEEE International Conference on Robotics and Automation, Raleigh, North Carolina,
19S7.

[5] Maes,P., J .-CI.Samin and P.Y.Willems, Linearity of multibody systems with respect to
barycentric parameters. Dynamic and identification models obtained by symbolic genera-
tion, Mechanics of Structures and machines,19S9,(to be published)

[6] Chatelle,Ph., J .Duponcheel and J .-CI.Samin, Investigations on non-conventional railway


systems through a generalized multibody approach, Proceedings of the Eighth IA VSD-
IUTAM Symposium on the Dynamics of Vehicles on Road and Tracks, Cambridge,Ma.,19S3.

[7] Kalker,J.J., Survey of wheel-rail rolling contact thery, Journal of Vehicle System Dynamics,
vol 5, 1979.

[8] Samin,J .-CI., A multi body approach for dynamic investigation of rolling systems, Ingenieur
Archiv, vol 54, 19S4.

[9] Samin,J .-CI. and P.Y.Willems, Multibody systems with loops: a pseudo constraint ap-
proach, submitted for publication.

[10] Boland,Ph., J-CI Samin and P.Y.Willems, Stability analysis of interconnected deformable
bodies with closed loop configuration, AIAA Journal, vol 13, 1975.

[11] Wehage,R.A. and E.J. Haug, Generalized coordinate partitioning for dimension reduction
in analysis of constrained dynamic systems, Journal of Mechanical Structures, vol 104, W82.
246

ROBOTRAN

Abstract

This contribution presents the main features of the ROBOTRAN programme. This pro-
gramme, based on d' Alembert Potential Power Principle, permits to derive, in symbolic
form, the equations of motion of mechanical systems which can be represented by a
set of rigid bodies, interconnected by one degree of freedom joints; it has important
applications in the fields of robotics and vehicle dynamics. The variables of the system
are the generalized variables of the various joints - linear displacement for prismatic
joints and angular rotation for revolute joints. Constraints can be considered and in
particular those resulting from loops of bodies can be generated by means of an aux-
iliary programme, CINEMA. The Lagrange multipliers technique permits to derive the
complete set of equations of motion; a system reduction via the elimination of these
multipliers and a coordinate partioning method is possible. The obtained programme
can be used as a sub-routine for any desired application such as numerical integration,
stability analysis, control design, numerical linearization, eigenvalues determination.

Introd uctio111

The mechanical system under consideration is assumed to be represented by a multibody


system composed of interconnected rigid bodies. These bodies will be characterized by
their mass distribution parameters and by geometric quantities which permit to localize
their various interconnections. These connections are rectricted to be one degree of
freedom joints.

These joint3 can represent mechanical devices such as telescopic arms, guide rods,
hinges, bearings. Relative motion can take place in the joints and interactions are
produced. The variables describing the relative motions in the joints (linear or angular

lThe material which is common to this contribution and the joined contribution on the programme AU-
TODYN will not be repeated here; the lector is referred to this other contribution for more information.
247

displacements) are used as the generalized variables (even if other variables can In

principle be used as outputs of the programme). The set of joint forces and torques
consist of five constraint interactions (which normally do not appear in the final form
of the equations) and one interaction associated with the degree of freedom and which
can be expressed by an appropriate describing function.

Graph Description and System Parameters

The kinematical description of the system is greatly simplified when the graph of this
system is defined. A tree structure is always used together with the notion of filiation.
The notation i :::; j means that body i belong to the direct path between the reference
body and body j; the notation i < j means i :::; j and i =/= j. For system wi th loops

of bodies, a cutting procedure is determined and an augmented tree structure is de-


fined. These procedures are equivalent to those used in AUTODYN (ref 1); the matrix
I N BODY is used in the main programme and, when there are closed loops the matrix

IN LOO P is defined in the auxiliary programme C I NEAl A.

The reference body of the system - body 0 - is assumed to be fixed with respect
to inertial space. Nevertheless, for bedplate interaction evaluation, this body can be
considered to be connected to inertial space by a fully constrained six degrees of free-
dom joint - this possibility is included in the so-called identification version of the
programme.

The body parameters are the some as in AUTO DY N but the joint library is restricted
to the one degree of freedom CLISS and AXE joints.

In the reference configuration, all the body fixed bases {Xi} are supposed to coincide
with the inertial reference base {I} and each joint a.."(is, iii' is aligned with one of the

axes of this inertial base.

For a prismatic joint, the displacement vector of body j with respect to the joint
reference point, Pj (attached to the body which precedes j), 1:.i' is given by 1:.j = zi iii
with iij = Xi{3 = X;{3 f3 = 1,2 or 3; Zj is the corresponding generalized variable. The
relative orientation of the body bases is given by the identity matrix, [Aid = [E], and

the relative angular velocity is equal to zero, OJ = o.


248

For a revolute joint, the rotation around the joint axe ~j - Rj{3 - Ri{3 f3 =
1,2 or 3 is described by the rotation angle OJ which is the corresponding generalized
variable; the relative orientation matrix [Aj;] is the corresponding elementary rotation
matrix. The displacement vector is equal to zero, !oj == 0 and the relative angular
velocity vector is given by OJ = 8j ~j. In this case, the joint reference point, Pj, is
fixed with respect to the two bodies connected by the joint.

Kinematics and Constraints

The configuration of a rigid body j is completely determined by the position vector of its
mass centre, Xj and the orientation of its body-fixed base with respect to the reference
body (with respect to inertial space), described by the matrix [A j ].

The position vector of body j, Xj, can be expressed in terms of the vectors fij (which
describe the relative position of the bodies for i =f j and the position of the mass centre
for i = j - see figure 2 in AUTODYN) and the vectors !oi encountered along the path
between the reference body and the body under consideration as:

The position vector of the joint reference point is given by:

XPJ = E (Ar.: + £;.j).


k:k<j

The following barycentric parameters are defined from the masses, mi, the geometric
lenghts (represented by the vectors ..Lj) and the inertia tensors, Ii, of the various bodies:

m,· - "~ m'] ,


j:iSj

miQ; = E mj!;j,
j:iSj

K
_1 = I·
_1 - "L...J m·i .. i ..
J.-..).:..t.1-
j:iSj

where the notation R refers to the skew-symmetric tensor associated with the vector X·
249

The orientation of the base {Kj} with respect to inertial space is then obtained via
the product of the relative orientation matrices encountered along the path between
body j and the reference body. The absolute angular velocity of this base fixed to body
j, !:!:?"j, is simply the (vector) sum of the relative angular velocities in the joints along the
path from the reference body:

!:!:?.j = E!:h = E Ok ~k·


k:k$j k:k$j

The velocities of the various mass centres are the given by:

Xj =
k:k$j
E [ik~k + !:!:?.k X (£.< + bj)·

The expressions of the mass centre accelerations and of the body bases angular
accelerations are then obtained by time derivation.

The loop constraints are obtained by expressing the fact that for the _vIe loops the
origin and closure (fictitious) bodies (the bodies (3" and '" respectively) coincide i.e.
have the same mass centre and coinciding bases; these bases have the same angular
velocities. vVe can write these relations as:

Xr3a = ~a 1· ··Me .

The orientation constraints are not independant and we choose to retain the elements
(1,2), (2,3) and (3,1); the other relations must be checked a posteriori.

The first and second time derivatives of the position constraints are obtained in a
straightforward manner.

Once the Mjoint joint constraints and lvIu3er users' contraints have been added, we
obtain a set of M constraints. These constraints supposed to be holonomic are repre-

sented by M (independant) algebraic relations between the generalized variables of the


problem q", represented by the (N x 1) vector [q]. We write them under the form of a
M vector relation
250

The time derivative of these constraints can be written in matrix form:

where the (M X N) matrix [AJ is the gradient matrix of the constraints. We assume
that, possibly after elimination of redundant constraints, the corresponding matrix [AJ
is a full rank matrix.

Equations of motion

The equations of motion of the augmented tree will be obtained from the Potential
Power Principle.

The local form of the equations of motion for any system (without local internal
angular momentum distribution) is given by the relation

x = f,
I.e. the acceleration of any point of the system X is equal everywhere (except possibly
on set of points with zero mass measure) to the corresponding value of the local force
density f.

For any vector field defined by the vectors~, we obtain the following (scalar) identity
after integration over the system:

Lj
j B)
(X - f) • ~ dm O.

We can choose the vectors ~ to be a potential (possible) change of velocity compatible


with the choice of generalized coordinates, i.e;

where here qk is either Zk or Ok. The vectors bq. represent the field of potential velocities
induced by a unit potential change of qk.
The Potential Power Principle can then be written
251

With:

the Potential Power Principle is then given by

E {[<I>kl - [Qk]} .6.Qk = O.


k

Let us consider the prismatic joint k. The corresponding vector Qz. will be given by:

x E Bj j: j :5 k,

Qz. =& x E Bj j: k :5 j.

For any point, x, in body j, we can write:

where 1:j is the position vector of x with respect to the centre of mass of the body j.

The term <I>z. will be given by:

where x·
-J = '"
L... -J + t
(z· =J.. )
i:i:5;j

and

The [<I>z.l function can then be written:


252

using the sum property L L == L L and the definition of the geometrical


i:kSi i:kSiSi i:k:s,i i:iSi
length vectors, iii i t- j, and of the barycentric parameter mi and hi, this relation
becomes

Similarly, the corresponding generalized interaction is given by:

where Fk is the force applied in the joint k (for instance a control force) and must
be given by a describing function;

.E.jxt is the resultant of external forces applied to body j (by the exterior of the
system) and can be separated into applied force .E.j"xt and gravity forces mj~; for gravity
forces, we can write:

For a revolute joint k, the potential velocity field induced by a unit potential change
of the potential angular velocity, 6.fh, is described by:

hZk = 0 and !::1w = 0 x E Bj j: j :::; k,

x E Bi j: k :::; j,

where Pk . is the position vector of x (of body j) with respect to Pk •


-J

The corresponding function <POk is then equal to:

I.e. is the projection on ~k of the moment of momentum with respect to the point Pk
of the set of bodies Bi with j : k :::; j.

With
Z.
( -, + -'J
I. .. ) + -J

253

and

The first term of this expression represents the time derivative of the moment of
momentum of the body i with respect to its mass centre; the bodies being rigid, these
terms can be expressed as:

jB,
L X fi dm

The sum L is divided into three parts L == L V f. = i V L and the fol-


l:l<i l:l<i l:l<i l:i<l~i
lowing sum properties are used: -

L L ==LLandL L L ==LLL·
i:k~i i:k~i~i i:k~i i:i~i i:k~i i:k~i~i l:i<l~] i:k~i l:i<l ]:l~i

Further, if the definitions of the barycentric parameters Qi and Ki are used, the function
«Po. can be written:

«po. {Li:k~i
Z.i X [mi
l:l<i
L ml(k + he)]
L (k + L;) + l:i$(
+ L [L
~~ N<i
mi~ x (k + Li) + L
b~
~il X meek + he)]

+L
i:k~i
[Ki '~i + !:!li X Ki·.J!l.i + miQi x ii l} .!1,.

Similarly, the corre~ponding generalized interaction is given by:

= {L L (Z.i + ~ii) X Ejxt + L LP:t } .!1, + Mk,


i:k~i i:k~i<i j:k~i

where Lp:t is the resultant of external torques with respect to the point Pi of joint j
(the sum of the moment of external forces with respect to this point and the sum of
254

pure external torques).This relation can also be written:

Here too, we can separate external forces into gravity forces and applied forces :e;ext;
for gravity, the corresponding generalized interaction ig given by:

For unconstrained systems, the various potential changes of generalized velocities


are independant and their coefficients in the expression of the Potential Power Principle
are equal to zero; this provides the equation of motion under the form:

and

Mk {L
i:k::;i
~i X [mi e:l<i
L (b + b;) + l:i::;l
L me(b + he)]
+ ii;i [e~i miQ; X (b + bJ + t~l iit x me(b + he)]
+ L
i:k::::;i
[Ki'~i + f!?i X Ki'~ + m,h. x hi 1
- ~
~
m-(z
'_l + -,
b) x I:T
.s2.
i:k::;i

One should note the recursive form of these relations. In particular if two successive
revolute or prismatic joints have parallel axes, all the calculations carried out for the
second one could be saved for the first one in the chain (such a procedure is implemented
in Robotran which detects parallel a.xes)

It can also be of interest to note that all the parameters of these equations are bilinear
functions of the above-defined barycentric parameters and the geometrical lengths -
components of the vectors £.ii (i =f j) -. This is particulary interesting for identification
purposes [1].
255

For more complicated joints, as those considered in AUTODYN, the structure of


the vector equations remains essentially the some, but the interpretation of joint gen-
eralized interactions is more delicate; the joint equations are then accordingly linear
combinations of the components of the corresponding joint vector equations.

'When constraints are considered, the potential power of the complete set of interac-
tions will be written as:
{[qi] - [Q] f[~q] = 0,

(where [qi] and [Q] are the (N x 1) vectors of the qiqk and , Qqk respectively) for the
variations of potential velocities which satisfy the constraints, i.e. which are such that

Finally, the equations of motion are given by the N equations

(where the (lvI x 1) vector [).] is the corresponding vector of Lagrange Multipliers)
associated with the constraints in the form [5] = 0, for holonomic constraints or in the
form.fA][q] + [b] = °
for holonomic or non holonomic cases.

These equation can still be reduced, for instance by using a coordinate partioning
method or, when possible, by solving the constraints analytically and eliminating the
Lagrange multipliers.

Programme arrangement

A ROBOTRAN application is divided in four main steps:

input data processsing


dynamical equations
system reduction
application
256

The input of the data preprocessor includes the graph information (the IN BO DY
and IN LOOP matrices), the geometrical (the f.ij vectors) and mass distribution param-
eters (the masses mi and the 1; tensors) and the information relative to the joints. The
output of the data preprocessor provides the barycentric parameters and the vector of
generalized coordinates; the joint generalized interactions, FkorMk, are also provided at
this stage.

The main programme computes the various terms appearing in the Potential Power
Principle i.e.:

the matrix [<.r?]

the generalized interaction matrix [Qext] which includes the effect of gravity and
other external interactions.

The loop constraints, their time derivative and their gradient matrix [A.] can be
obtained from an auxiliary symbolic programme, CINEMA, which uses the some input
information (except mass distribution and interaction parameters) as the main pro-
gramme. The combined output consists of a system of (N + M) (differential or mixed
algebraic and differential) equations in the (N + M) unknowns [q] and [A].

This system can then be reduced, by the elimination of the Lagrange multipliers
and of a set of variables (equal to the number of holonomic constraints). For simple
constraints, this can be achieved by a classical symbolic manipulator, but for more
complicated sytems, this step has to be performed numerically; one can, for instance,
procede as described in the joint paper on AUTODYN.

The following applications are readily available: numerical integration, equilibrium


investigation, numerical linearization, stability analysis, eigenvalue determination, con-
trol design. ROBOTRAN is well suited for applications in robotic [1] and vehicle dy-
namics [2].

An extended version of ROBOTRAN, the identification version, permits to deter-


mine the constraint forces appearing in the various joints and in particular in the bed-
plate - the joint which precedes the body O.

The organisation of the programme can be summarized as follows:


257

Data Preprocessor

Barycentric Parameters

ROBOTRAN
- Generalized
Interactions
[Q]

rol rol ROBOTRAN


[kI] [F] Dynamical
I [A] Equations
1

1 CINEMA [A]
L __ =: User'sAnalysis
Constraints
1

1
[S] = 0 [M][q] + [F] - [Af[A] = [Q]
1
[A]T[lj] + [b] = 0
1
1_ _ _ _ _ _

1
r - - - - - - - - - - - - - - - r----
L __
REDUCTION and APPLICATIONS

ROBOTRAN Syntax

vVe may divide the process which writes mathematical expressions in a symbolic form
into several parts :

- the identification of an expression according to a predefined syntax;

- the translating of such an expression into a programming language;

- the manipulation (+, -, *) of the expressions;

- the reduction.
258

Each mathematical expression contains one or several terms linked by minus or


plus signs, each term being the product of several factors. A factor can be an integer,
a barycentric parameter, a generalized coordinate (qi, qi, iii), a geometrical constant,
a trigonometrical function whose argument is a factor or a mathematical expression
between brackets.

This can be schematically represented as follows [3]:

expression : --~--------~~~--------~--

term: I factor I

integer

parameter
factor:
coord. qi, qi, iii

constant

( expression )

Thus defined, an expression can be considered as a tree whose nodes represent the
nature of the expressions, i.e.

- integer whose value has to be given as an integer constant,

- barycentric parameter, generalized coordinate or geometrical constant which have


to be identified by an appropriate string of characters,
259

- cosine or sine function whose argument (also an expression) must be given,

- plus, minus, times operators whose two operands must be given as expressions.

For instance, the expression 9 * sine ql) + iiI * 1 could be represented by the following
tree:

The increase in size of the expressions during the elaboration of the equations and
the tree structure described above lead us to use dynamical variables (pointers) and an
appropriate programming language for this kind of manipulations.

The operations that we have to perform in order to manipulate expressions are:

- creation of pointers and assignment of their nature,

- reading, initialisation or assignment of the value and/or identification for the inte-
gers, geometrical constants, barycentric parameters and generalized coordinates,

- assignment of the arguments and operands to the appropriate pointers for the
trigonometrical functions and the arithmetical operations,

- deletion of redundant calculations (adding 0, multiplying by 0 or 1).

For instance, if we know the expressions "a" and "b", the operation "a+b" consists
in creating a new pointer whose nature is plus, whose left operand points to "a" and
right one points to "b".
260

In order to avoid expressions like :

x=a+b-a

we introduce a relation of order to classify the expressions. This order is given first
by the position of the nature3 in the operators set and then by a lexicographical order
on the strings of characters (for instance, 0 < cos(qt) < sin(qt) < in *1< q2+q3). At

each operation, we rewrite the resulting expression according to the prescribed order
and then simplify consecutive equal terms with opposite signs. Since one of the goals
of ROBOTRAN is to present the equations in a form amenable to localizing possible
parameter combinations, each term is written on a single line according to the following
syntax:

parameter x integer x generalized variables x constants x trigonometric expressions

vVe can thus ensure that the expression appearing in the obtained equations cannot
be further reduced without using specific formulae of trigonometry. This kind of re-
ductions can be performed by several programmes (MACSYMA, SMP, REDUCE, ... )
which could be used subsequently.

Test. example: Five degrees of freedom robot.

This robot consist of three bodies interconnected by two rotational-translational joints


and one rotational joint. The two degrees of fredom joints have been divided into two
successive joints, a revolute joint followed by a prismatic joint; these two joints are
separated by a massless and dimensionless body which do not affect the form of the
equations. In the next page, the input data file is presented.

The output of the data preprocessor provides the barycentric parameters. The
complete set of equations is presented in the following pages (LI\TEX instructions have
been used to provide this presentation of the output file). In these expressions some
auxiliary variables have been used and some trivial trigonometric transformations have
been performed. The parameters F2 and F4 are the control forces in the prismatic joints
and Ml,M2 and M5 are the corresponding torques in the revolute joints.
261

Spatial Motion of Robot Title


5 Number of bodies
0 1 234 INBODY
o·,
m1;
o·, Masses
m2;
m3;
o·, o·, o·,
o·, o·,
o·,
Ill1; o·, o·,
I122; 0;
I133;
o·, o·, o·,
o·, o·, Tensors of Inertia
o·,
I211; o·, o·,
I222; o·,
I233;
I311; o·, o·,
I322; o·,
I333;
o·, o·, zl;
o·, o·, 0;
o·, 0; o·, Positions of mass centres
o·, o·, o·,
o·, c·, o·,
o·, o·, o·,
o·, o·, 0;
0; o·, o·, Positions of articulation points
o·, o·, 0;
o·, 1·, o·,
R3 q1; qp1; qpp1; Type of joint
T3 q2; qp2; qpp2; R : revolute
R2 q3; qp3; qpp3; T : translation
T2 q4; qp4; qpp4; and corresponding variables (q, q, ij)
R1 q5; qp5; qpp5;
o·, o·, 0; External forces

o·, o·, 0; External torques

o·, o·, -g; Gravity


262

SPATIAL MOTION OF ROBOT - DYNAMICAL EQUATIONS

Barycentric Parameters of order 0

mbl = ml+m2+m3
mb3 m2+m3
mb5 m3

Barycentric Parameters of order 1

b42 = mb5*1
b52 mb5*c

Barycentric Parameters of order 2

K211 I111
K222 I122
K233 I133
K411 1211+mb5*1*1
K422 1222
K433 1233+mb5*1*1
K511 1311+mb5*c*c
K522 1322
K533 1333+mb5*c*c

Trigonometric Functions

C1 cos(q1)
Sl sin(q1)
C3 cos(q3)
S3 sin(q3)
C5 cos(q5)
S5 sin(q5)
C55 C5*C5 - S5*S5
S55 = S5*C5 + S5*C5

Auxiliary variables

bb42 b42+mb3*q4
Kb411 K411+b42*2*q4+mb3*q4*q4
Kb413 = K413+b42*2*q4+mb3*q4*q4
263

Equations

M5= -K511*qppl*S3 F2 = mbl *qpp2


-b52*qppl *C5*S3*(q4+1) -b52*qpp3*S3*S5
+b52*qpp2*C3*C5 +b52*qpp5*C3*C5
-b52*qpp4*S5 -b52*qp3*qp3*C3*S5
+K511*qpp5 -b52*2*qp3*qp5*C5*S3
-K522*qpl*qpl*C3*C3*C5*S5 -b52*qp5*qp5*C3*S5
+b52*qpl *qpl *S5*( q4+1) +mbl*g
+K522*qp3*qp3*C5*S5
-K533*qp3*qp3*C5*S5 Ml = K233*qppl
-K511 *qpl *qp3*C3 + Kb411 *qpp 1*S3*S3
-K522*qpl *qp3*C3*C55 +Kb433*qppl *C3*C3
+K533*qpl *qp3*C3*C55 +K511 *qpp 1*S3*S3
-b52*2*qpl*qp4*C5*S3 + K522*qpp 1*C3*C3*S5*S5
+b52*g*C3*C5 +K533*qppl *C3*C3*C5*C5
+b52*2*qppl *C5*( q4+1)
F4 = b52*qppl *S3*S5 +K522*qpp3*C3*C5*S5
+mb3*qpp4 -K533*qpp3*C3*C5*S5
-b52*qpp5*S5 -b52*qpp3*C3*S5*( q4+1)
-bb42*qpl*qpl +b52*qpp4*S3*S5
-b52*qpl *qp 1*C5 -K511 *qpp5*S3
+b52*2*qp 1*qp3*C3*S5 -b52*qpp5*C5*S3*( q4+1)
+b52*2*qpl *qp5*C5*S3 -K522*qp3*qp3*C5*S3*S5
-b52*qp5*qp5*C5 +K533*qp3*qp3*C5*S3*S5
+b52*qp3*qp3*S3*S5*( q4+1)
M3= K522*qppl *C3*C5*S5 +Kb411 *2*qpl *qp3*C3*S3
-K533*qppl *C3*C5*S5 -Kb433*2*qpl *qp3*C3*S3
-b52*qppl *C3*S5*( q4+1) +K511 *2*qpl *qp3*C3*S3
-b52*qpp2*S3*S5 -K522*2*qpl*qp3*C3*S3*S5*S5
+K422*qpp3 -K533*2*qpl*qp3*C3*C5*C5*S3
+K522*qpp3*C5*C5 +bb42*2*qpl *qp4
+K533*qpp3*S5*S5 +b52*2*qpl *qp4*C5
-Kb411 *qpl *qpl *C3*S3 +b52*qp5*qp5*S3*S5*( q4+1)
+Kb433*qpl *qpl *C3*S3 +K522*2*qp 1*qp5*C3*C3*C5*S5
-K511 *qpl *qpl *C3*S3 -K533*2*qpl *qp5*C3*C3*C5*S5
+K522*qpl *qpl*C3*S3*S5*S5 -b52*2*qpl *qp5*( q4+1)*S5
+K533*qpl *qp 1*C3*C5*C5*S3 -K511 *qp3*qp5*C3
-b52*2*qpl*qp4*C3*S5 +K522*qp3*qp5*C3*C55
+ K511 *qp 1*qp5*C3 -K533*qp3*qp5*C3*C55
+K522*qpl *qp5*C3*C55 -b52*2*qp3*qp5*C3*C5*( q4+1)
-K533*qpl *qp5*C3*C55
-K522*qp3*qp5*S55
+K533*qp3*qp5*S55
-b52*g*S3*S5
264

Finally these equations have· been integrated and typical outputs, the rotation angle
and the angular velocity of the first body, are presented below.

-0.5 r -_ _...;R~o~t~at!:!oi""on'T0.!..f.!:T-",o"""wc.:::e;.r_ _--,

-0.55
-0.1
-0.6
-g
... -0.65

-0.7

-0.75 '-----'----'-----'----' -0.3 '--_--'_ _- - L_ _- - ' - _ - - - - '


o 0.5 1 1.5 2 o 0.5 1 1.5 2
Time [s] Time [s]

Bibliography

[1]Raucent B., G.Bastin, G.Campion and J.-CI.Samin. Identification of barycentric pa-


rameters of robotic manipulators from external measurements. Proceedings of the Eighth
IFAC Symposium on Identification and System Parameter Estimation, Beijing, China,
1988.

[2] Bonivert 1., P.Maes and J.-CI.Samin, Simulation of the lateral dynamics of the GLT
vehicle by means of ROBOTRAN j a model genarator for robots, Simulation in the Factory
of the Future, M.Muller and R. Reddy (eds), SCS publication, Belgium,1988

[3]Tremblay J .-P. and P.G. Sorenson. An Introduction to Data Structures with Applica-
. tions. McGraw-Hill, New York, second edition, 1984.

The reader is invited to refer to the references of the joint paper on AUTODYN for
additional bibliografical information.
SIMPACK - A Computer Program for Simulation of
Large-motion Multibody Systems
Wolfgang Rulka, MAN-Technologie AG, 8000 Miinchen

1 Introduction
SIMPACK is a computer program for the simulation and calculation of motions and interacting
forces of three-dimensional mechanical systems. The individual bodies can carry out geometri-
cally large (non-linear) movements and may also exhibit elastic deformations.
The mechanical systems are defined modular in library elements such as joints, forces, etc., so
that the user does not have to formulate the equations of motion. SIMPACK is an open program
package which allows the user to intervene at many points in the program. For example, the fix
implemented elements can be extended by self-programmed USER routines. By these routines
SIMPACK can be adapted to the user's fields of application.
With the aid of the postprocessor which is an integral part of SIMPACK the numerical results
can be displayed as x-y plots in an interpretable form. On special computers the results can
also be shown as 3D animation to facilitate interpretation.
Fig. 1 shows typical applications for computer simulations using SIMPACK. The advantages
of the formalism on which the SIMPACK program is based become especially evident in the
case of systems having a large number of bodies. Its highest efficiency is shown with mechanical
systems which with respect to kinematic constraints have a tree-like structure or which have
relatively few kinematically closed loops in relation to the number of bodies in the system.
In the following sections the main characteristics of the SIMPACK program, its theoretical
background and the method of working with the program are explained. Results of the two test
examples are shown finally.

2 Keywords on theoretical Background


The main job of the formalism is the generation of non-linear differential equations of second
order:
Z = 91(i,z,t).
It gives the non-linear relationship between the second derivative z of the coordinates of position
and the variable quantities i, z and t used to describe the motions of the mechanical system.
Moreover, the formalism also allows computation of the constraint forces

r = 92(i,z,t).
in the joints. Joints are massless connections which are constraining the relative motions of
two bodies, such as translational rectilinear sliding pairs or a pendulum rod. The laws of force
for the applied forces can be passive or active and process an eigendynamic characterized by a
differential equation of first order:
x = 93(X,Z,z,t).
266

simulation of road vehicles

general machine dynamics


(e.q. printing machines)

robotics

Figure 1: Typical applications

This enables, for example, complex contollers or the coupling of substructures to be taken into
consideration.
The basic idea the formalism is built on is explained in section 6. Some of the keywords for the
formalism on which the program is based are:

• Non-linear kinematics for the body motions. The bodies can have" large" relative move-
ments to one another.

• The motions of the bodies are described by relative coordinates. These are e.g. the
three rotation angles of a ball-and-socket joint. The choice of relative coordinates is of
advantage in formulating the equations of motion for elastic bodies and also leads, in the
case of systems which have a kinematically tree-like structure, direct to a simple differential
equation in the minimal coordinates. As a special case the relative coordinates represent
the absolute coordinates as free motion of a body relative to the inertial system.

• Restrictions in the bodies relative motion through joints can be expressed by implicit or
explicit formulation of the constraints.
267

• Superimposed elastic deformations of the mass-affected bodies which are assumed to be


linearizably small are permissible.
• Complete Taylor expansion to terms of second order for the elastic kinematics.
• The amount of work required to calculate the right side of the equations of motion grows
only linear by the number of bodies in the system. Here the kinematic structure charac-
teristics of the mechanical system are used (see Fig.2).
• The numerically computation instructions for kinematically branched systems can be par-
allelized.
• The memory requirement increases only linear with the number of bodies in a system (see
Fig.2).
• Short and compact representation in theory and in realization by computer code through
recursive formulation of kinematic and dynamic relationships.
• Simultaneous computation of constraint forces and accelerations.
• Kinematically closed chains are allowed. However, with an increasing number of kinemat-
ically closed chains and relatively few degrees of freedom the efficiency of the equations
for time integration decreases.

useable methods with equations


of motion in the form: I
M z = h(Z, z, t) '-------I
/
/
/
/
I
/
/
,/
../

----
numbers of bodies (degrees of freedom)

Figure 2: Increase in computation effort and memory requirement in relation to the number of
bodies in a system

It should be emphasized that thanks to the short and compact description of all steps to calculate
the equations of motion, constraint forces and accelerations, the choice of formalism alone leads
to easy maintainability of the program.
268

3 Structure of the SIMPACK Program Package


Fig. 3 gives a schematic description of the program's structure. The core of the program is the
SIMPACK formalism, which comprises the recursive computation instructions for formulation
of the equations of motion. The individual matrix operations themselves are described in the
block thereunder.

r--------.,
I MBS input I

r---------I
I MBS
I input.filet---t----..t
I ~~~-
I
I Isystem·description x, t X, fl ,a, ...
I I
I
I
I
L SIMPACK
formalism

Figure 3: Schematic structure of SIMPACK program package

Input files
The formalism is served by input files and by subroutines (USER routines) which allows the user
to increase the SIMPACK functionality. There are two kinds of input files: the multibody system
input file (MBS input) and - for the experienced user - a file which contains functional histories
in the form of value tables. These functional histories can later be used in USER routines,
thereby allowing communication with program packages used independently of SIMPACK (e.g.
path planning programms for robots).
The MBS-input file essentially contains the description of the mechanical system, e.g. masses
and inertia moments of individual bodies or information on connections between the bodies (e.g.
rotational joints or springs). A simple description language, briefly touched on in section 5, has
been created to define the mechanical system. Input of the mechanical system via a file has
been chosen because a large number of data has to be defined. Experience has shown that this
can be done much easier and with fewer mistakes by using the user surface of the computer (e.g.
editor, multi· windowing) rather than through program-controlled dialogue. The input language
allows the user great freedom in setting up the input file to suit his own taste and to use it for
documentation of individual models.
269

Besides the description of the mechanical system, control-data for the numerical methods can
also be fed into the MBS-input file, e.g. control-data for a time integration of the equations of
motion.

Preprocessor
After the MBS-input data have been read in by the program they are prepared for the formalism
by the preprocessor. Here the data are checked, as far as possible, for logical correctness. Input
errors are disclosed to the user by an error code.

Library routines and modelling elements


The program containes a whole series of library and modelling elements, which form an integral
part of the program. These library elements contain functional synta.x such as the law of force
for a linear compression-tension spring. Below is a brief survey of the main modelling elements .

• Joints:

- Fastening bolt as zero-freedom joint. This serve to calculate the interacting force at
a given point on a rigid body.
- Single a.xis rectilinear sliding pairs and hinges (1 degree of freedom).
- Universal joints (2 degrees of freedom).
- Ball-and-socket joints with Eulerian angles or Cardan angles (3 degrees of freedom).
- Joints with two translations and a rotation for free-plane movements (3 degrees of
freedom).
- Universal joint on which one rotation is rheonomious. Used for example for predeter-
mined steering angle in motor vehicle simulations (1 degree of freedom).
- Free relative movement with three rotations (Cardan or Eulerian angles).
- General joint: the user determines the number and sequence of rotations and trans-
lations (0 - 6 degrees of freedom) .

• Force elements:

- Articulated tension-compression springs with parallel damping elements. The force


laws are linear.
- Articulated force elements with spring and damper in series.
- Spatial rubber elements with linear spring and damper characteristics.
- Force elements for speed-dependent friction with non-linear characteristic curve (force
jump on adhesion)
- Electrical drive with control and downstream transmission. The control laws are of
the type PIDT1.
- Tyre models (see Fig.4) after:
* H.B. Pacejca [1) with the Similarity Method.
* E. Bakker, L. Nyborg, H.B. Pacejca [2) with the fit of plotted curves.
- Routines for the description of road-surface uneveness in motor vehicle simulations.
- Downstream transmission.
270

Tyre-model: PACEJKA-FIT Tyre-model: PACEJKA-FIT


pDeumatic trail t[mJ for break foree F.(l- 4) and lide force F,(5 - 8) for
- IoDghuclial alip " = 0 - combined alip-&Ilpe .. &Ilcllongi\uclial alip "
- camber 7 - 0 - alip-&Ilpe alpha = &.Grgnd]
as a fUDctioD of the lide foree F,[N] correapoDd- - camber 7 = 0
ing to the slip-angle Q at " = 0 with variatioD of as a fuDctiOD of tbe IoDgitudial alip 1t[.,.J with
the vertical load F.: variatioD of the vertical load F.:
1) ..2000 (N] 1.5) ..2000 (N]
2) =4000 (N] 2.6) ...000 [N]
3) ..6000 (N] 3.1) -&000 [N]
U) =8000 (N]
r--------------l
4) =8000 [N]
0.06;--------------, 7000.
0.05 6000.
0.041-_ _ __
5000.
0.03
4000. 7
0.02 - - - - - - - ....................

3000.
0.01 ""\ 6
\
2000.
0.00 I---....ll---~\---I---i...,
5
~ 1000.
-0.01 1
w!'
~ -0.02 L-_ _ _ _ _ _ _ _ _ _ _ _ _ _....I
~ .0.0
0.0 1000. 2000. 3000. 4000. SOOO. 0.0 0.2 0.4 0.6 0.8 1.0
F,INJ " [./.J

Figure 4: Some typical tyre characteristic curves

• Algebraic constraints as root-finding functions to characterize discontinuities of laws of


force.
• Time functions for predetermined motion of moving reference frames:

- Translation and rotation in and around an axis at constant speed.

• Routines to describe the relative motion of coupling points on the respective bodies as a
function of state.

USER routines
The above library elements can be extended by USER routines. This possibility, besides the
file input, is a particularly important program input form. Whereas through file input only
constant parameters such as the mass of a body can be reported to the program, the USER
routines extend the program's functionality. To demonstrate the great flexibility of the USER
routines the interface definition for the USER routines for a law of force is explained here as an
example.
271

Input through the parameter list is:

• Any number of kinematic measurements (sensors) between any points of a


multi body system. These are defined in a measuring field in the input file.
• any number of time-constant parameters.
• any number of function histories available in form of tables of values defined
in the FKT-input file. These tables also can contain the coefficients of a spline
interpolation for the function histories.
• all state coordinates of the eigendynamic of this force element.
• all state coordinates of the multibody system: t, Za, za, ZE, ZE, zF

Output through the parameter list is:


,
+
law of force

• The applied forces r and/or applied torques Ie.


• First derivative of the coordinates ZF describing the eigendynamic of the force
element.
• Intermediate values obtained during calculation of the forces and which will
be needed later for interpretation of the results (e.g. the slip angle of a road
vehicle tyre during simulation).

Evaluation methods
One programming level above the formalism are the numerical evaluation methods located.
These are at present:

• For a given state, i.e. an initial state of the system, all the results of the formalism are
calculated, which are

- the second derivative of the positional coordinates,


- the constraining forces and torques of the joint,
- the applied forces and torques,
- intermediate values of the laws of force for the applied forces,
- kinematic relative measurements (sensors for position, speed and acceleration).

This evaluation method serves especially as control of the model and self-written USER
routines for input errors.

• The non-linear equations are linearised around a given state and/or a given initial position
and initial speed. The eigenvalues and eigenvectors of the linear system matrix are
calculated.

• For the linear system analysis a parameter variation with eigenvalue tracing can be
carried out, e.g. for computation of the runup performance of rotors.
272

• The most important evaluation method is the numerical time-step integration.


The user can chose among the following mathematical integration methods at present:

- Euler method.
- Runge-Kutta method.
- Methods from the ODEPACK library [3]. These are methods with variable order
and variable increment at ion control. These methods choose, automatically or in
accordance with a user input, a Gear or Adams method for the integration. The user
either determines whether the differential equation to be integrated is stiffor non-stiff
or the integrator chooses the correct method.
Times at which discontinuities occur in the differential equation can be fed to the
integrator, either explicitly or in the form of implicite algebraic root-finding functions.
For SIMPACK library routines with discontinuities the root-finding functions are
firmly implemented. For force elements written by the user they have to be given as
USER routines.
- ODASSL [4] as an integration method for differential algebraic equation systems. Ex-
plicitly known discontinuities can be reported to this method. ODASSL alternativly
permits an integration with:
* a standard-corrector,
* a nonlinear least-square method as corrector,
* a constrained nonlinear least-square method as corrector,
* an implizit state space method as corrector,
* or a Baumgarte-stabilisation.
- With the aid of integration interface routines the above methods can be extended by
user's own integration routines.

• For the integrated state-coordinates all the formalism's results are computed.
• If the mechanical model contains force elements for motor-vehicle tyres, tyre identifica-
tion fields can be calculated using the parameters in the input file characterizing the law
of force. This allows a check of the tyre parameters input for the actual model.

Output of computer results


Results of the numerical evaluation methods are written to data files under the model name.
Various postprocessors have access to these data files and can reproduce the results as columns
of figures, as x-y plots or as 3D animation. An integral feature of SIMPACK is a wide range of
postprocessors which allow presentation of the results in various ways to facilitate interpre-
tation.

x-y plots
The postprocessors for the x-y plots are dialogue-controlled. They have a momentary perfor-
mance range as follows:

• Representation of the function histories which are calculated outside of SIMPACK, e.g.
by a preliminary program, before being passed to SIMPACK in the form of value pairs.
Such function histories are, e.g.:
- predetermined trajectories for the servomotors of robots,
273

- road histories,
- non-linear spring characteristices.
to mention just a few possibilities.

• Representation of typical identification fields for motor-vehicle tyres, which are actually
defined within a vehicle model.

• For the integration results time-history plots are generated for


- state values,
- statistical information of the integration method, such as:
* the actual step-size,
* the actual used order of the integration method,
* times of discontinuities taken into consideration of the integrator, ...
- the kinematic results for position, speed and acceleration,
- histories of constraining forces and torques,
- histories of the applied forces and torques,
- intermediate values for the laws of force elements

• To trace the eigenvalues of a parameter variation, eigenfrequencies and eigendamping can


be shown over the varied parameter or as a root locus plot.

Animation
Besides the 2D graphics it also is absolutely essential for interpretation of the computer results
to present simulated motion sequences in 3D animation. This gives a plausibility control of the
results in a visual and easily interpretable form.
The postprocessor used for this purpose needs a further input file in which the spatial form
of the individual bodies is described. To this end the postprocessor is fitted with modules for
definition of basic bodies such as cubics, cylinders, truck cabs, roads, etc. With the aid of this
modules relatively complex systems, such as a truck, can be built up in a short time with a
minimal number of inputs.
The 3D postprocessor's functionality comprises:

• Representation of individual component groups. This is generally used as a control of the


supplementary graphic inputs which are needed to give abstract bodies (defined by mass
and inertia tensor) a three-dimensional form.

• The motion histories can be shown as on-line animation.


• Since efficient graphic work stations are needed for this, small systems can compute the
pictures and store them as pixel data. The stored pictures can then be reproduced as
animation.

• Various states of motion can be shown in one picture.

The various kinds of pictorial representation are:

• Wire models, wire models with hidden lines, or planar models with hidden surfaces and
shading.
274

• Projection is perspective or axionometric, depending on whatever is needed for interpre-


tation.

Fig. 1 shows printouts of a 3D postprocessor. Fig. 5 shows the buildup of truck component
groups from basic bodies. The individual groups of components can move relatively to one
another.

basic body: truck cab basic body: cubic basic body: script
component group: truck cab component group: vehicle frame component group: vehicle frame

basic body: cubic


component group: vehicle frame

Figure 5: Buildup of the truck component groups

4 Use of SIMPACK for various Applications


Since the user is able to intervene at many points in the program, SIMPACK is very adapable
to various user environments and many applications. The various possibilities of intervention
comprise the above-described USER routines for mechanical modelling elements by which
SIMPACK's functionability is extended, connection of the user's own integration methods,
and the possibility of exchanging the input routines for system description and for graphical
definitions of the 3D animation. This latter extension allows the user to use the data already
available in a user's own CAD program.

5 Example for Input of System Description


The form in which with the aid of key words the model is described is indicated briefly. Fig. 6
shows a sketch of two bodies coupled by a spring. The left-hand body has the number 17 and
the right-hand one the number 1. On body 17 is the observation point 20, and on body 1 the
276

6 Theoretical Background to SIMPACK - the Formalism


6.1 The basic Idea
The basic idea the formalism is based on has already been documented [5],[6],[7],[8] and is
extended to include systems of any structure type and with elastic bodies in RULKA [9]. To
explain the formalism a system having a purely chain-like structure is considered first of all. In
this system the bodies and joints of are consecutively numbered outwards with i=l,NK.
The kinematic of this system is described by relative coordinates. That is the kinematic relative
vectors via a joint are expressed by the minimal coordinates Zj of the joint between the body i
and the body j=i+1. E.g. the relative position vector:

Tij == Tij(Zj,t). (1)


With this formula it is possible to build up recursively the kinematics of a system having a
tree-like structure.

Figure 7: bodies i and j=i+1 in a chain

Recursively means, in this context, that the absolute values of the outer body j are built up
as a function of the absolute values of the inner body i and the relative values of the joint
between body i and body j. For example the 6 X 1 vector of the acceleration of body j is written
recursively as follows:

(2)
with the 6 X 6 geometric matrix Cj and the 6 X N Fj joint-Jacobian matrix Jj. N Fj is the
number of degrees of freedom of joint j.
275

observation point 19. The spring has the force element number 8 and is connected to the two
bodies at observation points 20 and 19.

body Nr 1

" force element Nr 8

Figure 6: Sketch of a mechanical system

Description of the mechanical system is done by means of value assignment to key words. The
following text is an excerpt from the input file for system description of the above-depicted
mechanical model. The character "!" marks the beginning of a commentary.

Definitions of the masses:

MASS(17) 10. [kg] mass of body with the number 17


HASS( 1) = 7. ! [kg] mass of body with the number 1

Definitions of observation points:

OBS_BODY(20) = 17 number of body on which


observation point 20 lies
OBS_RRO( 20) =0., -1., O. position vector of observation
point 20 on body 17
OBS_BODY(19) number of body on which
observation point 19 lies
OBS_RRO( 19) -1., 0., O. position vector of observation
point 19 on body 1

Definitions of the force elements:

type of force element with the number


8 is 2. This is a compression-tension
spring with linear characteristic curve
FEL_OBSI( 8) 20 number of connection point i.
FEL_OBSJ( 8) 19 number of connection point j.
FEL_PAR (1,8) 10. [RIm] spring stiffness = 1st parameter
for force element 8.
[m] unstretched length of spring = 2nd
parameter for force element 8.
277

Under the influence of external forces the motion of a body is determined by the priciples of
linear and angular momentum. For a system having a chain-like structure these equations are
written for the body i in matrix form as:

Mi(Z, t) ai = hi(z, z, t) + It - CJ if. (3)


In this equation Mi is the 6 X 6 inertia matrix of the body i, the 6 X 1 vector hi contains the
applied forces and the Coriolis forces acting on the body i, and It are the constraint forces and
torques on body i (see Fig. 7).
In these equations the Cartesian coordinates of the constraint forces of a joint i can still be
expressed as:

It = Ni Ai (4)
with the 6 X N Ai distribution matrix Ni and the N Ai = 6 - N Fi generalized constraint forces
Ai of the joint.
For a chain consisting of NK bodies equations (2) and (3) can be used as 12NK equations for
the 12NK unknown quantities
ai,zi,Ai i= 1,NK,
if one bears in mind that at the beginning of a chain the acceleration ao of the moving reference
frame is given and that at the end of a chain the constraint forces iNK+! trivially are zero,
since no further body follows. While the 12NK equations depend non-linear on state they are
however linear in the unknown quantities.
The 12NK linear equations (2) and (3) can be resolved recursively by taking advantage of the
theorem that the generalized constraint forces of a joint i are orthogonal to the free movements
in the joint i (e.g. SCHWERTASSEK [10])

if Ni == 0 (5)
and by using the kinematical structural characteristics of the mechanical system. As ansatz is
used

Zi = Pi(Z,t) ai-l + Pi(Z,z,t) (6)


it == Ki(Z, t) ai-l + kj(Z, z, t) (7)
aj == Ci ai-l + Ji(Zi, t) 'ij + bi(Zi, Zi, t) (8)
in which the values 'ii, !;", ai are expressed as linear functions of the absolute acceleration of
body i-I.
By substituting the equations (6),(7),(8) and (2) in (3) one obtains the recursive calculation
rules for the still unknown matrices Pi,Pi, Kj,ki in (6) and (7). For details see [9].
The result of the above procedure is the differential equation for the mechanical system

Z == gl(Z,z,t) (9)
and the constraint forces and accelerations

it = g2(Z,z,t) (10)
ai == g3(Z,z,t) (11)
as functions of the input values Z, z, t. The relations can be evaluated by a forward, backward
and a second forward recursion. They can be summarized as follows:
278

Input:
state variables: Z, z, t
Forward recursion:
do i:l,NK
Ci : 91(Z, t) i dim: 6X6
Ji : 92(Z, t) i dim: 6x NFi
bi = 93(Z,Z, t) i dim = 6 xl
Mi = const i dim = 6X 6
hi : 94(Z, Z, t) i dim = 6 xl
end do
Backward recursion:
Starting values: KNK+1 == 0, kNK+1 == 0, CNK+1 == 0
do i:NK,NK-l, ... ,l
M = Mi+C~1Ki+1 i dim = 6 X 6
h : hi - C~1ki+1 j dim = 6 xl

M : JT M Ji j dim: N Fi X N Fi

Pi : _£1- 1 JTMCi j dim: NFi X 6

Pi = +,NJ-1 J[(h - Mbi) j dim = NFi xl

Ki = M(Ci + JiPi) j dim = 6 x 6

k·• : M(bi + JiPi) - h j dim: 6 xl

end do
Forward recursion:
Starting values: ao == o.
do i:l,NK
= Pi 4i-l + Pi j dim: NFi xl
ai = Ci ai-l + Ji Zj + bi j =
dim 6 xl
(ft Ki ai-1 + ki ) j dim: 6 xl
end do

6.2 Extension to general kinematic Structures


General tree configurated Systems
The equations obtained above can be extended without problems to a general tree configurated
system (see Fig. 8) by analogous interpretation of the body indices i and j:i+l numbered from
inside outwards.
Here it should be particularly mentioned that in the case of a general tree configurated system the
computation rules relating to bodies in branches lying parallel to one another are independant,
and thus they can be processed parallel to one another.
Within the realized program, the necessary sequencing is arranged for a parallel processing.

Kinematically closed Chains


In the case that the mechanical system has kinematically dosed chains the system is first con-
verted into a kinematically tree·like structure by cutting NS joints. This basic system is treated
exactly as described above, the additional values >'s for the generalized constraint forces of the
chain-dosing joints are additionally appearing in the equations.
279

inertial system
. . . . body

Figure 8: general tree configurated system

To determine these additional values the implicit formulation of the constraints of the chain-
closing joints are used. To this end the kinematic relative vectors over a chain-closing joint are
calculated, e.g. the position vector over this joint:

with z being the minimal coordinates of the system with a tree-like structure.
The implicit constraints of the joint are N >"s algebraic equations as a function of the relative
vectors over this joint, if this joint is restricting N >"s movements. The implicit constraints are
formulated as algebraic equations for position, velocities and acceleration respectively for all
chain-closing joints.
Thus to describe the dynamics one obtains a coupled differential algebraic system in the form:

Z : gl(Z, z, t, >..) ; dim: NFx 1


g2(Z,t) : 0 ; dim: N>" xl
g3(Z, z, t) : 0 ; dim: N>" xl
g4(Z,Z,Z,t) : 0 ; dim: N>" xl

where N F is the number of minimal coordinates in the system with a tree-like structure. N>" is
the number of chain-closing constraints in the system.
In the mathematical sense the above equation is a redundant differential algebraic system and
can be correctly solved by using appropriate methods ( FUHRER [4]).
Besides chain-closing joints other joints can also be used in implicit form, however in this case
the advantages of recursive formulation are less evident in respect of computing time.

6.3 Incorporation of elastic Bodies in the multi body System


Besides rigid bodies, which can make large movements, elastic deformations are also admissible
for mass-affected bodies. Such deformations are assumed to be "smalf' in relation to their
280

Figure 9: Constraining forces of a chain-closing joint

un deformed position. To describe elastic deformations the position vector reI from the body-
fixed reference frame to a mass point on this body is first formulated generally as a function
of the elastic deformation coordinates Vel. This formulation contains the inner constraints on
elastic deformation, such as the unbending cross section to neutral fibres on bending of a beam.
In general it gives the non-linear syntax:

(12)

---

Figure 10: Elastically deformed body

In order to obtain a simple differential equation later a Ritz formulation is used for the defor-
mation coordinates:

(13)
281

with the given shape functions u(x). Assuming small elastic deformations Zel ~ 1, the elastic
movements are then linearized as

(14)
It is stressed here that linearization of the elastic movements were carried out completely to
terms of the second order, and consequently complete linear motion equations are available for
the elastic motions.
Neglecting the terms of the second order, especially in connection with great inertia loads or
great external preloads, would lead to physically wrong results completely contrary to actual
practice.
The necessary functions u(x) in (13) may:
• originate from measurements,
• represent eigenforms from finite element calculations,
• or be mathematical functions (e.g. cubic spline functions).
By lying the body-fixed reference frame eR of the elastic body in the joint connection point (see
Fig.l0) it is possible to assure the kinematically boundary conditions to every time step with a
special choice of the functions u(x). (This is a presupposition for the convergence of the Ritz
formulation). In the sample, shown in Fig.l0 the boundary conditions are

and are needing functions u(x) in the Ritz formulation with the conditions:

U(x=O)=O j u"(x=O)=O.

Equation (2) for the kinematic relationships in multi body systems, extended by the elastic
deformation, reads:

aj = Cj(ZeI,i) ai + JeI,i(Zel,i) Zel,i + Jj(Zj) Zj + bj(i,z,t) (15)


and the kinematic equation (3) with the momentum principles:

Ms HT]
[ H Mel (ai )
ZeI,i = hi + ( r )-

(16)

The equations to define the matrices Ms, H, Mel and Jel are given in RULKA [9] or JOHANNY
[11]. Using the same argumentation as for purely rigid body systems an extended recursive
ansatz is employed to obtain the differential equation (9):

Zi = Pi ai-l + Pel,i Zel,i-l + Pi (17)


Zel,i = + Qel,i Zel,i-l + qi
Qi ai-l (18)
H = Ki ai-l + Kel,i Zel,i-l + ki (19)
ai = Ci ai-l + J el,i-l Zel,i-l + Ji Zi + bi (20)
Substitution of equations (17)-(20) and of (15) in (16) then gives the computation rules for
recursive determination of matrices P,K,Q, etc. For details see [9].
Particulary when elastic bodies are present the advantages of recursive kinematics and recursive
kinetics become apparent. Here too for evaluation of the right side they only lead to a linear
increase in computation effort and memory requirement with increasing system size.
282

7 Further Developments of SIMPACK


• While the matrices for elastic deformation are being implemented within the recursion
rules in SIMPACK, a preprocessing program is in development, which will compute the
integral matrices for the shape-functions of the Ritz method. This matrices, needed as
SIMPACK input, are e.g. the modal mass matrix Mel or the coupling-matrix H through
the elastic deformations and the large accelerations ai in (16) taking into account the terms
of the 2nd order.
• Likewise in processing is the implementation for kinematic analysis of systems with kine-
matically closed chains, and the implementation of the inverse kinetic and the presentation
of their results.
• Planned is realization of parallel processing on suitable computers such as transputers, the
necessary relationships being already available in SIMPACK.
• SIMPACK with its various user routine applications is being continually extended. This
comprises, for example, implementation of the kinematic relationships for special wheel
suspension systems as standard joints.

8 Results of the Test Examples


Fig.l1 shows the time history of the angle '"( as simulation result of SIMPACK for the 7 body
mechanism. Fig.12 shows the time history of total of the constraint force in the revolute joint,
connecting point B and body 3 of this mechanism.
The state of the mechanism at the times t = 5, 45, 75 and 105 [msec] is presented in Fig.13.
For the robot example an animation is given in Fig.14.

looo

'loo
.000

BOO

3000

2.loo

·::• ~ooo

l.loo

1000

0.>00

0000
0000 olOCI 1.000 1.lOO ~ooo 2.loo 3.000

Zeit (sec> ·10··-2

Figure 11: Time history of angle '"( of the mechanism


283

1800

160.0

140.0

120.0

1000

100

COl
60.0
~
.., 40.0
6~
Z 20.0
0.000 0.>00 1.000 2..100 3.000

Zeit (sec) ·10··-2

Figure 12: Time history of x-coordiante of the constrained force in the revolute joint, connecting
point B and body 3

Figure 13: Animation of the mechanism motion


284

Figure 14: Animation of the robot motion

References
[1] H.B. Pacejka: Modelling of the Tyre as a Vehicle Component with Applications. Technical Report,
CARL-CRANZ-Gesellschaft, 1982. Course V2.01.
[2] E. Bakker, L. Nyborg, and H.B. Pacejka~ Tyre modelling for use in vehicle dynamic studies. SAE
Technical Paper Series 870421, 1987.
[3] A.C. Hindmarsh: ODEPACK a systematized collection of ODE solvers in sientific computing. North
Holland, Amsterdam, IMACS Transactions on Sientific Computation, Vol. 1, pp 55-64, 1983.
[4] C.Fiihrer: Differential-algebrnische-Gleichungssysteme im mechanischen Mehrkiirpersystem - Theo-
rie, numerische Ansatze und Anwendungen. PhD thesis, TU-Miinchen, 1988.
[5] Vereshchagin: Computer simulation of the dynamics of complicated mechanisms of robot-
manipulators. Engeneering Cybernetics, No 6, pp 65-70, 1974.
[6] W.W. Armstrong: Recursive solution to the equations of an n-link manipulator. Theory of Machines
and Mechanisms, Vol 2, ASME, 1979.
[7] R. Featherstone: The calculation of robot dynamics using articulated body inertias. International
Journal of Robotic Research, Vol 2, No.1, 1983.
[8] H. Brandl, M. Otter, and R. lohanny: A very efficient algorithm for the simulation of robots and
similar multibody systems without inversion of the mass matrix. IFAC Wien, 1986.
[9] W. Rulka: Bewegungsgleichungen fur hybride mechanische Systeme mit freiheitsgrndproportionalem
Rechenaufwand. Technical Report, DFVLR Oberpfaffenhofen, 1986. Interner Bericht IB 515-86/12.
[10] R. Schwertassek and R. Roberson: A state-space dynamic representation for multi body mechanical
systems, part 1 and part 2. Acta Mechanica 50/51, 1984.
[11] R. lohanny: A utomatisches A ufstellen der Bewegungsgleichungen von baumstrukturierten Mehrkiir-
persystemen mit elastischen Kiirpern. Master's thesis, Lst.B. fUr Mechanik TU-Miinchen, 1984.
CO MPAMM - A Simple and Efficient Code for
Kinematic and Dynamic Numerical Simulation of
3-D Multibody Systems with Realistic Graphics

J.M. Jimenez, A. Avello, A. Garcia-Alonso and J. Garcia de Jalon


University of Navarra and CElT, San Sebastian, SPAIN

ABSTRACT

The theoretical foundations of a 3-D multibody program called COMPAMM (COM-


Puter Analysis of Machines and Mechanisms) are presented. Instead of using Euler
angles or Euler parameters in order to define the spatial orientation of a rigid body,
COMPAMM uses the cartesian coordinates of two or more points and the cartesian
components of one or more unit vectors rigidly attached to the body. With this coor-
dinates the constraint equations are quadratic and then the jacobian matrix is a linear
function of them, needing for its evaluation far less arithmetic operations than with
other methods. In addition to this, the mass matrix in the inertial reference frame is
constant and Coriolis or centrifugal forces do not appear in the formulation.
COMPAMM has also very advanced interactive and graphical capabilities that are
very briefly described in this paper. Finally some examples are presented.

1. INTRODUCTION

The kinematic and dynamic analysis of 3-D complex multi body systems presents a
great interest in many areas of mechanical engineering, such as robotics, ground
vehicles, spacecraft, machinery, biomechanics, etc. In the last two decades a great
deal of research has been done, most of them summarized in refs. [1] and [2]. As a
result, some general purpose programs such as IMP, ADAMS, DADS, NEWEUL, ...
have been used successfully in industrial projects.

In the last few years, a great emphasis has been put on the efficiency of the methods
of analysis. Kinematic simulation interactivity is a very desirable capability of any pro-
gram, and in the dynamic case large systems of nonlinear differential equations must
be integrated as fast as possible, even in real time [3].
286

Looking for this improved efficiency, several authors [4], [5] have developed symboli-
cal formalisms to obtain the motion differential equations in closed form. When ap-
plicable, these formalisms have better performance than the fully numerical formula-
tions, but until now the latter remain the only approach to a truly general dynamic
simulation, able to deal with mechanisms of changing topology and with special fac-
tors such as Coulomb friction, backlash, impacts, etc.

COMPAMM (COMPuter Analysis of Machines and Mechanisms) is a general purpose


3-D multi rigid body package based on particularly simple, general and efficient
original idea [6]-[9].

Figure 1 . RSCR 1 d.o.f Mechanism

In figure 1 a three-dimensional four bar (RSCR) mechanism with 1 degree of freedom


is presented as an example. In order to analyze this mechanism it is necessary to
choose a set of parameters (dependent coordinates) that unequivocally describe the
position of the three moving links. This can be done in several ways, with different
kinds of dependent coordinates. A first possibility is to use relative coordinates, that
describe the position of a link relative to another link joined by a pair, using the coor-
dinates of relative motion allowed by that pair. Another possibility is to describe the
spatial position of each body with the cartesian coordinates of one of its points
(usually the center of gravity) and with three of four parameters that describe the
angular orientation (usually Euler angles or Euler parameters).
287

The dependent coordinates are related through the constraint equations. The partial
derivatives of the constraint equations with respect to the dependent coordinates
constitute the jacobian matrix. The jacobian matrix is very important because it deter-
mines in practice both the kinematic and the dynamic equations.

With relative coordinates the constraint equations arise from the closure condition of
kinematic loops. With reference point coordinates the constraint equations arise from
the limitations in relative motion between contiguous elements imposed by the pair
that joins them.

In COMPAMM a new kind of dependent coordinates has been used: the position of a
body is determined by the cartesian coordinates of at least two of its pOints and the
cartesian components of at least one unit vector rigidly attached to this body. In
figure 2 the modellization of the RSCR mechanism of figure 1 with these fully
cartesian coordinates, that originally [6] were called natural coordinates, is shown.

Figure 2. Mechanism RSCR modelled with natural coordinates

The example of figure 2 requires 4 relative coordinates, 18 (21) reference point coor-
dinates with Euler angles (Euler parameters), and 12 natural coordinates. What first
makes natural coordinates very attractive, in addition to their immediate geometrical
288

meaning, is the simplicity of the constraint equations that relate them, and, as a con-
sequence, the simplicity of the jacobian matrix. For instance, for the example of
Figure 2 the jacobian matrix with reference point coordinates and Euler parameters,
evaluated according with reference [10], has 128 non-zero elements and requires
nearly one thousand floating point operations; with natural coordinates the jacobian
matrix has 57 non-zero elements and requires only twelve arithmetic operations, i.e.
two orders of magnitud less.

2. CONSTRAINT EQUATIONS

The ultimate reason of the efficiency of natural coordinates can be found in the kind
of constraint equations they determine. For instance, in the RSCR mechanism of
figure 2 (and in most cases) the constraint equations arise in a double way. First, it is
necessary that the points and vectors that belong to the same link move according to
the rigid body condition. Second, it is necessary that points and vectors belonging to
contiguous elements move according to the degrees of freedom of relative motion al-
lowed by the pair that joins them.

Rigid body constraint equations can be introduced very easily. For instance, element
4 of the mechanism of figure 2 has two pOints (4 and 5) and two unit vectors (u 2 and
u3). There are 12 coordinates and 6 degrees of freedom, so 6 constraint equations
must be found:

(I)

(2)

(3)

( 4)

(5)

(6)

Eq. (1) corresponds to a constant distance condition between points 4 and 5; eqs.
(2), (3) and (4) correspond with constant angle conditions between segment 3-4 and
vectors u2 and u3 ; eqs. (5) and (6) correspond to the unit module condition for vec-
289

tors u2 and u3 (in fact, eq. (6) is in this case unnecessary because u3 is a fixed vector
and so its components are not unknown).

A very interesting feature of natural coordinates is that points and unit vectors can be
shared among two contiguous elements, contributing to the definition of the position
of both and so keeping moderate the total number of coordinates. In addition to this,
introduction of the constraint equations due to the pairs is strongly simplified, when
not eliminated at all. For instance, the spherical pair in the mechanism of figure 2
does not introduce any equation because it is automatically introduced when links 2
and 3 share point 2. In the same way, as points 1 and 5 and vectors u, and u3 are
fixed and located on the axis of revolute pairs, both pairs neither introduce any con-
straint equation. On the other hand elements 3 and 4 share vector u2 ; to introduce
the constraint equations corresponding to pair C it is enough to impose the condition
that pOints 3 and 4 (belonging respectively to links 3 and 4) remain permanently
aligned with vector u2 • Analytically this can be introduced through the vector product
of vectors:

( 7)

(only two of these three equations are independent).

Figure 3. Mechanism RSCR with a driving angle


290

With natural coordinates angles are never necessary to describe the spatial position
of a rigid body. However. sometimes the definition of an angle in a revolute joint can
be very useful. for instance if the value of this angle need to be controlled by an ac-
tuator. In figure 3 the same RSCR mechanism of figure 2 is presented adding the
angle", rotated by element 4. A new fixed pOint has been included. In order to include
'" among the dependent coordinates. the following new constraint equation,
originated by the dot product of vectors, must be added,

( 8)

If the value of angle", is near (n7l') radians (n=O,1, ... ) the dot product must be
replaced by a component of the vector product of vectors.

With natural coordinates the constraint equations are always quadratic equations. As
a consequence, the elements of the jacobian matrix are linear functions of natural
coordinates; this is the reason of the extraordinary simplicity and efficiency of this for-
mulation.

Inside COMPAMM constraint equations are formulated automatically from the


mechanism position and topology.

3. KINEMATIC ANALYSIS

The constraint equations of a particular mechanism, both rheonomic and


scleronomic, can be formulated symbolically as:

(<11{Q),t)) = (O) (9)

where {q} is the vector of natural coordinates.

The initial position (assembly) problem and the finite displacement problem, can be
solved from the Newton-Raphson iterative scheme,

( 10)

from which a better approximation {qh+l is obtained. [iP q ] is the jacobian matrix.
291

For velocity and acceleration analysis it is enough to differentiate eq. (9). with respect
to the time,

( 11)

( 12)

In eqs. (10)-(12) the importance of the jacobian matrix for kinematic analysis is very
clear.

4. DEPENDENT AND INDEPENDENT COORDINATES

For reasons that will be made evident later, it is very useful to formulate the dynamic
equations in terms of a reduced set of F independent coordinates {z} (F is the num-
ber of degrees of freedom of the mechanism). In this section the relationship
between dependent ({q}) and independent ({z}) coordinates will be exposed.
COMPAMM uses both types of coordinates.

A large family of methods [8], [11], [12] use as independent velocities {z} the projec-
tion of the dependent ones {en on the rows of a constant (F x N) matrix [8].

[B] (q) = (Z) ( 13)

Putting together eqs. (11) and (13):

(14)

If matrix [8] is chosen in such a way that its rows are linearly independent of the rows
of [~q]' it can be written:

]
-1

(q) = [(~q) {(b)} s [[S][R]] {{b)} = [Sj(b) + [R](z) (15)


[B) (i) a}

This is a very important result and it can be taken as a definition of matrices [S] and
292

[R]. Eq. (14) establishes that {q} is the sum of a particular solution of eq. (11) plus the
general solution of the homogeneous velocity equation. If the constraint equations
are not time dependent, {b} = {O}, then only the second term of eq. (15) exists.

The matrix [R] defined in eq. (15) has a very great importance for the methods of
dynamic analysis used in COMPAMM. It can be seen very easily that the column
space of [R] is orthogonal to the row space of [~ql and, as long as these columns are
also linearly independent, they can be taken as a basis of the nullspace of [~ql, that is
the space of allowable velocities with non time-dependent constraints. The indepen-
dent velocities {z} are the components of {<i} on the columns of [RJ, that are the
basis vectors of the nullspace of [~ql.

For accelerations a similar result follows. Putting together eq. (12) and the derivative
of eq. (13):

( 16)

inverting the matrix of this expression:

{til = [(~q]
[B1
]
-1

{(c}}
(0:l)
= [S]{c) + [R]{°:l) ( 17)

This result is very useful in dynamic analysis. It still remains to describe the way in
which the matrix [B] introduced in expression (13) can be chosen. According to eqs.
(13) and (14) the only condition to be fulfilled by this constant matrix is that its rows
be independent of the rows of the jacobian matrix [~ql. There are three main pos-
sibilities:

a) Mani, Haug and Atkinson [11] use the Singular Value Decomposition (SVD) of [~ql
in a previous position so as to compute an orthogonal basis of the nullspace of [~ql in
this position. This basis is taken as matrix [8] (nulls pace in a previous position) and it
is expected that it remains independent of the row space of [~ql for a large motion
range.

b) Kim and Vanderploeg [12] make a similar approach to a) using the OR


decomposition, that is cheaper than SVD. These authors compute matrices [S] and
[R] by an updating technique that is more complicated and less efficient than the
based in eq. (15).
293

c) Garda de Jalon and coworkers [7]. [8] use for matrix [8] a boolean matrix that
simply extracts some elements of {<iJ as independent velocities {z}. The elements of
{<i} to be taken as independent are chosen after a Gaussian decomposition of [~ql
with total pivoting. This is the simplest method and it is also very efficient because
with a boolean matrix [8] in eq. (15) the computation of matrices [S] and [R] is
simpler. This is the standard method used in COMPAMM.

5. DYNAMIC ANALYSIS

In the context of natural coordinates virtual power is the most straightforward way to
establish the motion differential equations. The virtual power of inertia forces of a link
containing two points and two non coplanar unit vectors will be formulated next.

Figure 4. Inertia forces of a link with two points and two vectors

Consider the element of figure 4. The virtual power of this element can be expressed
as:

(18)

where (x} is the acceleration vector and {~'} is the vector of virtual velocities. Vector
{x} can be expressed as:
294

(x) = (XA ) + [T] (r) ( 19)

being [T] the rotation matrix. The inertial components of vectors u,v and segment AB
can be expressed in the form:

[X] = [T] (Xo] (20)

where [Xl is a (3x3) matrix whose columns are:

(21)

According to eq. (19) the velocities and accelerations can be expressed as:

(22)

( .0) {•• A} +
x = x
[0.]
T {r} (23)

matrices [f] and rii


can be obtained differentiating eq. (20) and taking into account
that matrix [Xc] is constant (it contain the coordinates of AB, u and v in the moving
frame),

[ t ] = [ X] [Xo ]-1 (24)

[ T] [X ] [Xo ]-1
= (25)

substituting eqs. (22)-(25) in eq. (18), after some algebraic manipulation, it is possible
to arrive at the following result:

(26)

where {q'e} and {~re} are respectively the natural virtual velocities and accelerations of
the element. For instance, vector tcr'} has the form:
295

(27)

and matrix [Me] is the inertia matrix of the element. It is constant (independent of the
element position) and has the following expression:

(Zll + 2s 1 + M)[I] -(S1+Zll)[I] (S2+Z12)[I] (SS+Z1S)[I]]


[ zll[l] -Z12[1] -Z13[1]
[Me] (28)
zdl ] z2s[lj
symmetric Z23[lj

In this expression [ I ] is the (3x3) indentity matrix and,

(29)

(30)

[J) = I v (r) T
(r) dm (31)

M is the mass of the element, {rG} the position vector of the center of gravity and [J]
the inertia tensor. Vector {s} plays the role of a linear momentum and [Z] is a trans-
formed inertia tensor.

There are two very important points that need to be emphasized about these results:
the first one is that the inertia forces are formulated in the inertial frame through a
constant inertia matrix, allowing an increased efficiency in the solution of the dynamic
equations; the second is that there aren't velocity dependent inertia forces, further
improving the efficiency and simplifying the formulation.

The virtual power theorem applied to the whole mechanism leads to the expression:

(32)
296

where {Q} is the vector of external or internal forces that are position or velocity
dependent (springs, dampers, friction, etc.) and [M] is the constant mass matrix of
the whole mechanism, obtained from the element matrices [Me] through an assembly
process similar to the one used in the finite element method. The virtual velocity vec-
tor {q'} must satisfy the homogeneous constraint equation for velocities,

(33)

Transposing this equation, multiplying it by a vector {A} of Lagrange Multipliers and


adding it to eq. (32) the following equation is obtained:

(34)

now, for an arbitrary vector {cO it is always possible to find a vector {>.} that makes
null the parenthesis of eq. (34). Putting this parenthesis together with eq. (12) the fol-
lowing equation is obtained:

(35)

This is perhaps the dynamic formulation most often found in the bibliography.
Remember that natural coordinates make it specially appropriate because matrix [M]
is constant, matrix [~ql is particularly easy to evaluate and there are not Coriolis or
centrifugal inertia forces.

It is possible to derive another expression for the dynamic equations in which


Lagrange multipliers do not appear. Using eq. (15) to introduce independent virtual
velocities in eq.(32):

(36)

Now virtual velocities {Z'} are independent and can be eliminated. Putting tnis equa-
tion together with eq. (12):

[ [~q] ]
[R)T [M)
{ee} { (C)}
q [R)T (Q)
(37)
297

This is an alternative equation to eq. (35). Both equations can suffer a lack of stability
in the fulfillment of constraint equations. This problem can be solved either using the
Baumgarte stabilization method [13], integrating a mixed system of algebraic-
differential equations, or formulating and integrating the motion differential equations
in independent coordinates. This the approach most currently used in COMPAMM.

Substituting in eq. (37) the expression for {en defined in eq. (16) the following equa-
tion is obtained:

(38)

In order to apply this equation it is necessary to compute matrix [R] from eq. (15) but
not matrix [S], because this matrix is never used separately but multiplied by vector
{c}. From eq. (17) the term ([S]{c}) can be computed as the vector of dependent
accelerations {en when the independent accelerations {z} are taken to be zero. Eq.
(16) allows the computation of {q} with this condition.

6. CURRENT ANALYSIS CAPABILITIES OF COMPAMM

The version 1.0 of COMPAMM is able to analyze open or closed loop mechanisms
with the following joints: Spherical (S), Revolute (R), Cylindrical (C), Prismatic (P),
Helical (H), Gears (G) and Universal (U). Other kinds of pairs can be introduced by
the user through force constraints. In addition to this, the user can introduce ex-
ternally driven absolute or relative motion of some links.

The multi-rigid-body problems that COMPAMM can currently solve are the following:
1. Kinematic problems:
· Initial position (assembly) problem
· Velocity and acceleration analysis
· Finite displacement problem (kinematic simulation)

2. Dynamic problems:
· Computation of driving forces and reactions (inverse dynamics)
· Computation of motion along the time (dynamic simulation)

COMPAMM can be executed interactively or in batch mode. When executed interac-


tively it displays the motion of the mechanism with realistic rendering (see Section 7.
and 8.) at the same time that the computations are done.
298

COMPAMM admits two kinds of external actions: external forces (only for dynamic
simulation) and externally driven absolute or relative link motions (both for kinematic
and dynamic simulation). External actions must be defined by the user through:

a) ASCII files,
b) user-written Fortran subroutines and
c) interactive input devices such as knob boxes (currently, only for kinematic
simulation).

The interaction between the user and COMPAMM can be established at two levels. In
the first level the user role is limited to define the external actions previously referred
to. In the second level the user is allowed to write a Fortran subroutine that have ac-
cess to most of the COMPAMM internal information on the state of the mechanism; in
this way the user is able to modify the number and the kind of joints (and so the num-
ber of degrees of freedom), and he can control other effects such as collisions, fric-
tion, backlash, non-linear springs and dampers, etc.

In the current version of COMPAMM, flexibility of the links is not allowed. Some in-
sight in flexible behavior of mechanisms can be obtained substituting a flexible link by
several rigid links joined by springs.

7. COMPAMM PREPROCESSORS

COMPAMM has been designed to be very easy to use and very powerful in its inter-
active and graphic capabilities. In order to get these features COMPAMM in-
corporates a language for the definition of the mechanism and a 3-D solid modeller
that allows animation with realistic rendering.

The kinematic configuration of the mechanism and the dimensions and mass
properties of its links are defined in an ASCII file with a free-format, very readable
language of commands and alphanumeric data. The geometry of the links and their
inertia properties are defined on a reference frame fixed to each link, so as not to
have position dependent properties. The topological information that must be defined
is limited to the points and vectors belonging to each link and for each joint the type
of the joint and the elements that it relates to. From this information COMPAMM is
able to formulate automatically the constraint and the motion equations.

In the referred ASCII file it is possible to provide, for each mechanism link, one or
more file names in which a realistic geometric definition of the link is included. This in-
299

formation is composed of a list of vertex coordinates, a list of polygons and a list of


normal vectors in the vertices of each polygon. This information can be generated by
the 3-D solid modeller included in COMPAMM, or can be imported from external
commercially available CAD systems, that provide output neutral files, just writing a
simple program that changes the format of these files to COMPAMM format.

The solid modeller included in COMPAMM is based on Constructive Solid Geometry,


and it is able to produce complicated faceted solid models from a large set of primi-
tives (cylinders, prims, spheres, torus, ... ) and objects obtained by sweeping, using
the boolean operations of union, intersection and difference.

8. COMPAMM POSTPROCESSORS

COMPAMM is a program specifically prepared to run on 3-D graphic workstations


with very powerful solid rendering capabilities. These systems appeared on the
market three or four years ago, and quite recently they have increased their
capabilities very impressively (RISC processors, big graphic memories, graphic ac-
celerators ... ) at the same time the prices dropped dramatically, so making them af-
fordable for a bigger user community. These 3-D workstations are the ideal computer
platform for interactive mechanism simulation and for them COMPAMM has been
designed and developed. Currently COMPAMM runs on Hewlett-Packard SRX and
Silicon Graphics IRIS 40 workstations. Other hardware platforms will be available in
the near future. Being interfaced with solid modellers, COMPAMM is able to do
realistic animations whose speed depends on the current capabilities of the worksta-
tion. For simple simulations, low-end workstations (0,5 Mflops, 5000 shaded pol/sec)
allow nearly real time interactive kinematic simulation (1 to 5 frames/sec). For top-
end workstations (10 Mflops, 50000 shaded pol/sec) real time dynamic simulations
are also at hand for many practical cases.

COMPAMM provide among others the following graphic capabilities:

1. Up to six point light sources plus ambient light. Light sources position, intensity
and color, can be interactively controlled by the user through dials and buttons.
2. Switch between wireframe, wireframe with hidden lines removed, flat shading and
Gouraud shading, just pushing a button. This can be done for each object
separately.
3. Variable degree of transparency for each object, from opaque to invisible, inter-
actively controlled.
300

4. Up to six simultaneous windows with different size. Up to six cameras fixed, or at-
tached to moving elements. The camera position with respect to the fixed or the
moving elements can be controlled by the user. Interactive pan, zoom and tilt for
each camera.
5. Each window can show a different representation of the mechanism; wireframe,
Gouraud shading, ... or its representation with natural coordinates (points and
unit vectors).
6. With double buffering, COMPAMM offers flicker free images with pseudo color
(4096 colors in each frame).

The postprocessor of COMPAMM can be used interactively, displaying the new posi-
tion of the mechanism just after it has been computed by the kinematic or dynamic
simulation module, or in play-back mode, displaying at a maximum frame rate (or at a
lower rate chosen by the user) the results of a previous computation. In both modes
COMPAMM offers the graphic capabilities previously referred to. In play-back mode
COMPAMM also offers the possibility of examining the output file through x-v
plots
on 2-D windows, in which time variation of the mechanisms variables (positions,
velocities, accelerations, reaction or driving forces, etc.) are displayed.

COMPAMM also offers the possibility to record sequences in video tapes, both in real
time or in frame by frame modes.

9. EXAMPLE 1: 3-D 5 d.of. robot

The modellization of 5 d.of. robot with natural coordinates has been carried out.
There are 6 movable points and 3 movable unit vectors. The corresponding con-
straint equations are formulated automatically and so they are the motion differential
equations.

In figure 5 a hardcopy of the motion of this robot under a system of external forces is
presented. Several positions have been superposed on the screen so as to have a
static motion representation. The representation of knob and button boxes appears
on the screen.
301
302

10. EXAMPLE 2. RSCR Mechanism

The RSCR 3-D mechanism previously referred to, has been analyzed dynamically,
starting with initial velocity. The only external action is gravity. In figure 6 a black and
white hardcopy of a possible configuration of the screen is shown. In this case there
are two animated windows in which the mechanism motion can be seen from two dif-
ferent points of view. Up to figure 5 frames/sec. can be obtained in play-back mode
with and HP 370 Turbo SRX workstation. There are also two overlay windows on
which the time variation of velocities and accelerations of natural coordinates are
shown.

11. CONCLUSIONS

COMPAMM is a 3-D multi rigid body package that uses a new system of dependent
coordinates, called natural coordinates, that have some advantages over conven-
tional methods: the jacobian matrix is much easier to evaluate, the mass matrix is
constant in the inertial reference frame and there are not Coriolis or centrifugal forces
in the formulation. The program is able to analyze mechanisms with any kinematic
configuration, formulating automatically the constraint and motion differential equa-
tions.

COMPAMM has advanced graphic capabilities: It incorporates a solid modeller and is


able to import solid objects generated by commercial CAD packages. COMPAMM
admits up to six light sources; six windows; fixed or movable cameras; wireframe, flat
or Gouraud shading; transparency; high degree of interactivity and user controllable
rendering conditions, etc.

REFERENCES

[1] Paul, B. "Analytical Dynamics of Mechanisms - A Computer Oriented Over-


view", Mechanism and Machine Theory, vol. 10, pp. 481-507,1975.

[2] Haug, E.J. (ed.). "Computer Aided Analysis and Optimization of Mechanical
System Dynamics", Springer-Verlag, 1984.

[3] Bae, D.-S., Hwang, R.S. and Haug, E.J., "A Recursive Formulation for Real-
Time Dynamic Simulation", ASME Conference on Advances in Design
Automation, 1988.
303
304

[4] Schiehlen, W.O., "Dynamics of Complex Multibody Systems", SM Archives,


vol. 9, pp.159-195, 1984.

[5] Rosenthal, D.E. and Sherman, MA, "High Performance Multibody Simulations
Via Symbolic Equation Manipulation and Kane's Method", The Journal of
the Astronautical Sciences, vol. 34, pp. 223-239,1986.

[6] Vilallonga, G., Unda, J. and GarcIa de Jalon, J., "Numerical Kinematic Analysis
of Three-Dimensional Mechanism Using a Natural System of Dependent
Coordinates", ASME Paper No. 84-DET-199, 1984.

[7] Garda de Jalon, J., Unda, J. and Avello, A., "Natural Coordinates for the Com-
puter Analysis of Three-Dimensional Multibody Systems", Computer
Methods in Applied Mechanics and Engineering, vol. 56, pp. 309-327,1986.

[8] Garda de Jalon, J., Unda, J., Avello, A. and Jimenez, J.M., "Dynamic Analysis
of Three-Dimensional Mechanisms in Natural Coordinates", ASME J. on
Mechanisms, Transmissions and Automation in Design, vol. 109, pp. 460-
465,1987.

[9] Unda, J., Garda de Jalon, J., Losantos, F. and Emparantza, R., "A Compara-
tive Study on Some Different Formulations of the Dynamic Equations of
Constrained Mechanical Systems", ASME J. of Mechanisms, Transmissions
and Automation in Design, vol. 109, pp. 466-474,1987.

[10] Nikravesh, P.E., "Computer-Aided Analysis of Mechanical Systems", Prentice-


Hall,1988.

[11] Mani, N.K., Haug, E.J. and Atki.nson, K.E., "Application of Singular Value
Decomposition for Analysis of Mechanical System Dynamics", ASME J. on
Mechanisms, Transmissions and Automation in Design, vol. 107, pp. 82-87,
1985.

[12] Kim, S.S. and Vanderploeg, M.J., "QR Decomposition for state Space
Representation of Constrained Mechanical Dynamic Systems", ASME J. on
Mechanisms, Transmissions and Automation in Design, vol. 108, pp. 176-
182,1986.

[13] Baumgarte, J., "Stabilization of Constraints and Integrals of Motion in Dynami-


cal Systems", Computer Methods in Applied Mechanics and Engineering,
vol. 1, pp. 1-16, 1972.
DYMAC & DYSPAM - Programs for the
Dynamic Analysis and Simulation of Planar
Mechanisms and Multibody Systems
by B. Paul, University of Pennsylvania, Philadelphia, Pennsylvania
U.S.A.

DYMAC (DYnamics of MAChinery)


ABSTRACf

DYMAC (DYnamics of MAChinery) is an all FORTRAN computer program for


the solution of problems in Dynamics of interconnected bodies which undergo planar
motion. It is used to find displacements, velocities, accelerations, and joint reactions for
multi-degree of freedom systems subjected to arbitrary, user supplied, forces. The
mechanism may contain any number of closed or open loops, and be subjected to
auxiliary constraints imposed by gears, cams, and user-supplied motion generators.
Descriptions of the program variables, input, output, modelling and preparation
of input data, as well as solutions of sample problems, are given. A post-processing
procedure is described which allows the user to provide for plotting, or otherwise
processing any variables of interest to him, utilizing his local computer facilities.

1. INTRODUCI'ION
Program DYMAC enables users to do a complete dynamics analysis of multi-
degree of freedom, arbitrary planar linkages under the influence of user-specified
applied forces and moments which may be arbitrary functions of displacement and
velocity. In addition, the user may specify a wide variety (virtually unlimited) of
relations between the gross motions of various links. Such control constraints (or motion
generating constraints) may be used, for example, to insure that a given link moves with
a specified angular velocity, or to have points in a mechanism (e.g. wheel of a vehicle)
move along user-specified paths (e.g. bumpy roadways). The control constraints may
also be used to include the effects of gears and cams.
The mechanism may contain closed loops, (e.g. wheel suspension linkages) or open
loops (e.g. multiple pendula). The user is required to provide the minimum information
needed to describe the geometric properties and mass distribution of the system (e.g.
link lengths, mass, moments of inertia, initial positions and vdocities, etc.). The
program internally formulates the appropriate dynamic equations of motion,
automatically integrates them, and makes whatever internal checks are necessary to
maintain accuracy.
306

The principal results calculated are the position, velocity, and acceleration
associated with each link at user specified time intervals, as well as the forces and
moments applied at the mass centers of all links. In addition, displacement, velocity and
acceleration components of user-selected points of interest anywhere in the system are
displayed at user specified time intervals.
The program is so organized that the user can easily request a wide variety of
post-processing procedures, such as plotting, animation, file generation, or any other
further calculations on output data that he considers desirable
The program is based upon concepts of analytical mechanics descnbed in Paul [1]-
[5]. Computational procedures are described in the dissertations of Hud [6] and Amin
[7]. Detailed procedures for using the program are given in the User's Manual [8].
The relationship of this work to other programs is discussed in [4] and [9].
In this paper, we intend to give a brief description of the program characteristics,
method of analysis, modelling procedure, data format, and typical examples.

2. PROGRAM CHARACI'ERISTICS
AUTHORS: B. Paul, A. Amin, G. Hud
Department of Mechanical Engineering and Applied Mechanics
University of Pennsylvania
Philadelphia, Pennsylvania 19104
LANGUAGE: FORTRAN
MACHINES:Tested on various main frames (e.g. IBM, UNIVAC, DEC VAX),
and on personal computers compatible with IBM-AT.
PRECISION: Double Precision
STORAGE REQUIREMENTS: Approximately 192,000 Bytes (includes double
precision accuracy)
CAPABILITIES: Handles up to 20 links, 30 edges, 10 degrees of freedom, 10
loops, 50 points of interest, 30 joints, 10 spatial constraints,
10 temporal constraints.
NUMBER OF LINES IN SOURCE PROGRAM:
Approximately 2,500, including 600 comment lines.

3. METHOD OF ANALYSIS
The equations of motion are generated using the d'Alembert-Lagrange (virtual
307

work) method, with equations of constraint based on loop closure, as described in [3],
[4] and [7].
The position variables (angles and lengths which vary with time) are denoted by
symbols! (!/II' !/IZ, ..·!/IM). In a system with F degrees of freedom, F of the quantities !/Ii
are considered to be primary or generalized coordinates, and the remainder are
considered to be secondary variables. The user initially selects the primary variables in
any way he desires, and the program will, when necessary, automatically change the
choice of primary variables in such a way as to minimize round-off error. Initial values
of the primary variables and their time rates (angular or linear velocities) are supplied
by the user, along with initial estimates of the secondary position variables. For
example, the user may give the initial angle of one link of a four bar linkage along with
estimates (possibly taken from a rough sketch) of the two unknown link angles. These
initial guesses are automatically converted into accurate initial position data for all
secondary variables, by means of a Newton-Raphson algorithm.
The equations of motion are generated internally, and subroutines are called upon
to solve the equations of motion by a Runge-Kutta numerical integration algorithm.
The updated position variables !/Ii' velocities ;Pi' and accelerations ;j,i are then passed to
an output subroutine, OUTP, which prints !/Ii' ;Pi' and ;j,i at user-specified time intervals.
OUTP also prints the Cartesian components of position, velocity, and acceleration for
user-selected points of interest. The output of the program may be stored as needed,
and may conveniently be retrieved for use in subroutine UPROC, a user-supplied post-
processing routine for plotting, punching, or otherwise manipulating information.

4. MODELLING OF MECHANISM
In this Section, we list most of the steps needed to model the mechanism for
DYMAC. A more complete description of the procedure is given in the DYMAC User's
Manual [8].
(1). Establish a fixed Cartesian global coordinale system (x,y), and sketch the
kinematic network. This is a collection of straight lines (edges) connecting each of the
joints (nodes). The network corresponding to the example of Fig. 1a is shown in Fig.
lb. The nodes are labelled with the capital letters A,B, ... etc.

ITbe poIitioo YlU'iablea (~1~M> are called lAgrangian YlU'iablea. All angles are measured poIitM counter.clockwise in
radianI.
308

(2). JdenJify and number the independent loops in the 1U!lWorlc.


A loop is classified as independent if it cannot be formed by merely superposing
several of the other loops. Usually [5] it will suffice to select the interior loops of a
mechanism as the independent loops, as illustrated in the example of Fig. 1. The
positive sense of traversal along a loop is counterclockwise. This step is omitted if no
closed loops are present in the system.

lal lbl

Fig. 1. (a) Example Mechanism; (b) Kinematic Network

(3). DeIennine the number of degrees offreedom, F.


For most cases F can be determined from the expression2
F = M - 2L - Nuc (1)
where M is the number of Lagrangian variables, L is the number of independent loops,
and Nuc is the total number of user-supplied constraints (see discussion in Sec. 6). For
example, in Fig. 1, F = 6 - (2)(2) - 0 = 2.
(4). Orient edges and label the LAgrtmgiDn coon1inIlIes.
Choose a positive direction for each edge and indicate it by means of an
arrowhead as illustrated in Fig. lb. Label all edges with a number enclosed in a small
box located on or near the edge. Label variable lengths and angles of the edges as
Lagrangian variables 1/11,1/12' • • • I/INLAo. Measure angles positive counterclockwise from
the direction of the global x-axis, as shown in Fig. lb. Note that the numbering of
bodies, edges, and Lagrangian variables are independent of one another.

~pdo.. to tbla rule are cIiIc:uaecl by Paul [S]. AlIo lei! the dilcwaion ill Sec. 6 on motion Fneration co..trainll.
309

(5) Construct the Edge Data Table.


Every edge i in a mechanism possesses a length Pi inclined at an angle ai to the
positive x-axis (measured positive counterclockwise). In turn, each Pi and ai are
composed of a constant part and a variable part. For example, edge 9 in Fig. Ib has
P9 = (~-e3) 1/13 (2-a)
constant variable
a9 = 1T' + 1/12 (2-b)
constant variable
More generally, for edge i
Pi = Cr, ± I/Iil (3-a)
ai = C~ ± l/lia (3-b)
where Cr, and C~ are the constant parts of Pi and ai respectively, it is the index of
the length variable and ia is the index of the angle variable.
The appropriate "edge data" is recorded in Table 1 as follows: Column 1 contains
the edge numbers, I, in sequence. the index (it) of the length variable (if any) is entered
in column 2 with the sign (+ or - ) that appears in front of I/Iil in equations such as (2-
a). The constant part (C4 of the edge i is entered in column 3. The index (ia) of
the angle variable l/lia associated with link I is entered in column 4, with the appropriate
(+ or - ) sign that appears in equations such as (2-b). The last column contains the
constant angles C~ associated with edge i. Table 1 corresponds to Fig. lb.

Table 1. Edge Data

Edge Length Length Angle Angle


.-ill Index Constant Index Constant
1 al 1
2 3 2
3 e3 2
4 e4 IT
5 e5 6 11
6 5 -e s 6
7 bl 3rr/2
8 4 Jrr/2
9 -3 (a 2- e 3) 2 Ir
310

(6). Construct the Complete Loop Table.


This table specifies which edges are contained in each loop and how they are
oriented relative to the loop direction. Imagine that loop number 1 is being traversed
counterclockwise, and make the following entry in Column J of line I:
+1 (-1) if edge J is traversed positively (negatively)
o if edge J is not in the path.
As an example, Table 2 is the Complete Loop Table for the Mechanism of Fig.
1. Only non-zero values need be entered in all tables.

Table 2. Complete Loop Data


Loop No Edge No. (J)
(I) 23456789

1 1 1 -1 1 -1
2 -1 -1

(7) Conslruct the Points of Interest Table.


The mass center of a link, the point of application of an external force, or any
other point selected by the user is called a point of interest. The local polar coordinates
(rj,aj) of all such points with respect to a user-selected reference edge in each link are
specified in a Point of Interest Table.

Fig. 2. Points of interest PI'


fixed relative to a reference edge.

For example, in Fig. 2a, the points of interest P1 and Pz are referred to the reference
edge 3, which mayor may not be attached to a physical link. Figure 2b shows different
points of interest (P" PIS) referred to different reference edges (4 and 8) located in the
same link (4). Table 3 shows how the data might look for a system containing link 4 as
illustrated in Fig. 2b. If a point of interest is not attached to a physical body, the
second column of the table has a blank entry for that point. If standard output
(position, velocity, acceleration) is to be printed for a point of interest, the last column
of the table contains a zero or blank, otherwise a 1 is entered to indicate that the
311

standard printout for that point is not required. Standard data is always available for
post-processing by the user supplied subroutine UPROC, provided that at least one
point is selected for printout, or if post-processing is required.

Table 3. Point of Interest Location Table


Point Link Reference Angle Radius Print Option
I (I) Edge (I) ALFPI(I) RPI(I) IOUT(1)

1 3 Cl1 r1 0
2 3 ~ rz 0
3 2 2 Cl3 r3 0
4 2 8 0
5 4 4 CI"
CIS
r"
rs 0
6 4 8 Cl6 r6 1
7 5 6 a, r7 1

(8) Body Inertia Table


Body (or link) i has mass ~, a center of mass located at a point of interest denoted by
IPIL(i), and a moment of inertia Ii about an axis, normal to the plane of motion,
through the mass center. Each of these four items should be tabulated for each moving
body.

(9) Given (Applied) Force Table


The given forces FX(I), FY(I), and the couple (torque) TOR(I) are to be applied
at a specified set of points (force application points) labelled I = 1,2, ... NFAP, where
I is called the force index. The point of application of the force with index I is the point
of interest IPIF(I) whose global coordinates have already been entered in the points of
interest table. The data are to be entered in a Table of Given Forces, as illustrated in
Table 4.
Table 4. Given Force Table
Force Point of x-C~. y-COftl). Torque
Index Interest FX(I) FYO) TORO)
I IPIF(I)

1 2 xl Y1 T1
2 4 Xz Yz TZ

NFAP

Only those components of force or torque which are constant (e.g. gravity force)
need to be entered in this table. Variable components of force or torque must be
described in a user-supplied subroutine FORCES (see Sec. 5); such variable forces will
override any entry in Table 4.
312

(10) Construct the lnilial Conditions Table.


Recall that in a mechanism with f degrees of freedom, f of the variables "'I are
designated as primary variables (or generalized coordinates) and the remainder are said
to be secondary variables. The physics of the problem requires that initial displacement
and velocity corresponding to primary "'I and ;PI' must be prescribed precisely. However,
merely approximate estimates are required for the initial values of secondary position
variables "'i' because their values are refined internally by a Newton-Raphson iteration
procedure. Secondary initial velocities ;Pi' are not to be specified because they are
implied by the primary data, and are calculated internally. The variables "'I and ;Pi are
represented in the program by PSI(I) and PSID(I). Angles and angular velocities are
expressed in radians and radians/sec., respectively. By assigning values to a Type Index
[FORTRAN variable JQ(I)] in the manner shown below, the user identifies which "'i are
initialli to be considered as primary, which as secondary, and which as controlled
variables. The concept of a controlled variable is explained in Sec. 6.
The type index JQ(I) is set equal to 1, 0, or -1 accordingly as 1/11 is primary,
secondary or controlled. As an example, the Initial Conditions Table for the mechanism
of Fig. 1 might assume the form of Table 5, where "'1 and "'6 have been designated as
primary. The initial values shown for "'1' "'6' ;PI' ;P6' are assumed to be given precisely.
Table 5. Initial Conditions
Index Type Pas'n Vel.
-liL ~ f.lli1l fi!QUl
1 .26000 1.0
2 .87
3 1.8
4 1.2
5 2.0
6 6.02000 2.0

5. MODELLING OF ACTIVE FORCES, SPRINGS, AND DAMPERS


The applied forces and moments may be functions of time, displacements, and
velocities. It should be noted that the weights of the links are treated as applied forces.
To permit the solution of a wide range of problems, the user may write FORTRAN
expressions for all nonzero values of active forces and torques and include them in an
appropriate location in an otherwise standard subroutine called SUBROUTINE
FORCES.

3
During subsequent calculations, !be program chooses primary w.riablCl 10 as to minimize roundoff errors.
313

Specified external force components ~, Yj (and torques T i ) may act through


specified points of force application, labelled 1,2, ..., NFAP. The forces and torques may
be functions of position, velocity and time. Internal forces, such as those due to
dampers and springs, can be treated as pairs of external forces acting on the members
to which they are attached.
For example, to model the forces applied to links 1 and 2 by the spring and
damper shown in Fig. 3, the user could place the following FORTRAN expressions
where indicated in a supplied dummy subroutine named FORCES.4
C***** USER-SUPPLIED EXPRESSIONS FOLLOW *****
F = -CD*PSID(5) - SK*(PSI(5) - PSI50)
FX (3) -F*DCOS (PSI (4) )
FY(J) -F*DSIN(PSI(4»
FX(4) -FX(l)
FY(4) -FY(l)

Fig. 3. Modelling Springs and Dampers

Recall that FORTRAN names for "'i and ;Pi are PSI(I) and PSID(I) respectively.
The names for the forces and the torque applied at the force application point of index
I are FX(I), FY(I), AND TOR(I). These are standard DYMAC conventions for all
problems. The constants a1, ~, etc. were given given the FORTRAN names AI, A2,
etc. peculiar to this problem. The numerical values of these constants may be passed
through FORTRAN common statements or by other means supplied by DYMAC.

6. MODELLING MOTION GENERATOR CONSTRAINTS


In addition to permitting virtually arbitrary applied forces to act on the links,
DYMAC gives the user the opportunity to specify relationships of his choosing between
the variables "'i' These relationships are called motion generator constraints or control
constraints. They are of the two general forms:

4 Detaila on the deriw.tion of the FORTRAN apreaiolll are giwn In (8).


314

~("'1' "'2' ... "'M) = 0; (i = 1, 2, ... Ns)


&'("'1' "'2' ... "'W t) = 0 (i = 1, 2, ... NT)
where t is time. All relationships of this type are to be placed where indicated in a
supplied dummy routine called MOTGEN. DYMAC requires that the user provide
FORTRAN expressions in MOTGEN for the following partial and total derivatives of
&.. The FORTRAN names to be used for these derivatives are as follows:
gj agjla"'i d/dt(agjla"'i) d/dt(agjlat
G(l) DG(l,J) DTDG(l,J) DTDTG(l)
Similar names are used for ~ and its derivatives.
Each control constraint reduces the degree of freedom of the system by one.
Thus the degree of freedom for a system with M Lagrangian variables and L
independent loops is
Fr = M - 2L - Ns -NT
For each control equation introduced, the user should designate, as a controlled
variable, one variable (other than a primary variable) that appears in the equation, and
indicate this by entering JQ(I) = -1 in the second column of table 5.
Example of constant ve/ocUy constraint:
Suppose, for example, that one wishes to specify that link 4 of a mechanism
rotates with constant angular velocity (;4 = C. In other terms
gl = "'4 - Ct - "'4,0 = 0
where "'4,0 is the initial value of "'4' at t = o. The only nonvanishing derivatives of gl
are:

The corresponding FORTRAN statements needed in subroutine MOTGEN are:


G(I) = PSl(4) - C*T - P40
DG(1,4) = 1. 0
DTG(l) = -C
where C and P40 are constants chosen by the user.
More sophisticated examples of motion generation constraints are given below.

7. EXAMPLE 1. AUTOMOBILE ON A ROUGH ROAD


We consider the pitching and heaving motions of an automobile traversing a
bumpy road, as shown in Fig. 4. We assume that the rear wheels move with constant
horizontal velocity Vo while the wheel axles, C and D, move along a curve which is
parallel to a user-specified road profile y = f(x). An example of such a road profile
315

function is given by the sinusoidal roadway shown in Fig. 5. It is also assumed that the
suspension springs, AD and BC, always remain normal to the fixed line AB in the rigid
chassis. Full numerical data is given in [8] for all weights, inertias, stiffnesses, and
geometry.

Fig. 4. Vehicle on Rough Road. Fig. 5. Initial State.


Dampers (not shown) act in Uniform Horizontal
Parallel With Springs. Initial Velocity.

Upon introducing the seven Lagrangian coordinates (1/11 , •• •1/17) shown in Fig. 4,
and noting the single independent loop ADEFCBA, one may assemble all input data
in the form of tables (as in Sec. 4). Points of interest 1,2,3,4,5 correspond to the
physical points P,A,B,D,C. Each of these points is also a point of force application.
The only force acting at point 1 (P) is the weight of the chassis (FY(1) = -2500 lb)
which is entered in the table of given forces. If the spring forces are are denoted by F6
and F7, the corresponding time-variable forces and torques are expressed, in subrouti
ne FORCES, as follows:
F6 = -325.*(PSI(6) - 20.) - 10.*PSID(6)
F7 = -325.*(PSI(7) - 20.) - 10.*PSID(7)
FX (2) -F7*DSIN (PSI (1) )
FY(2) F7*DCOS(PSI(1»
FX (3) -F6*DSIN (PSI (1) )
FY(3) F6*DCOS(PSI(1»
FX ( 4 ) - FX ( 2 )
FY(4) -FY(2)
FX(5) -FX(3)
FY ( 5 ) - FY (3 )
The two "control constraint equations" which specify that the wheels maintain
contact with the road profile, y = f(x), are "spatial" constraints given by:
hI = 1/14 - f(I/I2) = 0
h2 = 1/15 - f(I/I2 + 1/13) = 0
The constraint equation which specifies the that the rear axle moves forward at
316

the uniform horizontal speed Vo is a "temporal" (time dependent) constraint given by:
g1 = "'2 - Vot + (a+b) =0
where -(a+b) is the value of "'2 at t=O.
The FORTRAN expressions corresponding to these constraint functions and their
derivatives are placed in the provided subroutine MOTGEN [8]. The standard output
of DYMAC includes the position, velocity, and acceleration of the mass centers of all
moving rigid bodies (in this case there is only one such body), and the same for all
specified points of interest. If one asks for output on the three points of interest A,B,
and P (see Fig. 4), a sampling of the standard data output for those points would look
as shown in Table 6.
Table 6. From Standard Output of DYSPAM, for Points of Interest
Time Point Position Velocity Acceleration
-- --! r XOOT YDOT XDOOT mOOT
0.0 1 -108 16.2 550 0 .3 E-l0 .5 E-5
2 54 16.2 550 0 .3 E-l0 .5 E-5
3 0 16.2 550 0 .3 E-l0 .5 E-5
0.05 1 -80.5 16.1 549 -0.52 -27 -22.5
2 -26.5 16.2 549 1.51 -27.1 68
3 27.5 16.2 549 3.56 -27.2 158

By means of a simple user-supplied subroutine, UPROC, it is possible to capture


selected output data and store them in a file for processing by a plotting routine. For
example, the motion of the mass center of the automobile in this example was plotted
by a printer plot program called by UPROC; the result is shown in Fig. 6.
... -----.- .. --.-.- ..... -_ ... --- ...------- ..-.----.. _.-.------ .. --.---_..--_ ... _.. -.. _-.-----.------._ ..
't\
I I I I I I I I I I I
I I I I I I I I I I e
I I I I I I I I I I

n.' !._-----_.!_--------!......._.!.--------!--------.!.. ___I-:-! __ .~_- ___ !__ .______ L__ ._____ !_ -------~
: : /': \: : :/: : : J :
;j. ). . )
I I ........- . I , I ' I \ I I ,. I

".' ;········I····;·········);········;········-y ·······;······V·······+······,·;·········;


I I I I \: I I I I I I

".' 1.....;.·.. ;...... ).·.· .. ) \ ..... I......./.; ...... )


t I I ,._\ I I I
........ :t.~. . . . I I I

"., l=~... .L.......L........L.... \,L../..L....... ~ .........L\.....1.. ......L........[


:I
:
t i t
: : 1·....:
I I
:
I
: ,r-.
I
: :
I
:
,
I I I I I I I I I I I

la.1t !----..•.•!......... !......... !........... !.......... !.......... !............. !................ !............. !.............. !
,
I I I I
"
"" I,
1
" , ,
...................................................................................................................................
t : ' : : : :
1 , 1
, 1 1
I , I " I I I
.0 ........................................................... - .................................... __ .......... - ••••• _- .... _.-.
110. au. .101. "". ,... "to. 'Ita. .... .oa. '''00.

Fig. 6. Path of Mass Center. Speed vo = 31.25 mi/hr (13.97 m/s);


Road Profile: y = 6(1 - cos 27TX/360) in.
317

8. EXAMPLE 2. BENCHMARK PlANAR PROBLEM


The standard "comparison" or ''benchmark'' problem, used in this volume for
planar multiloop mechanisms, is illustrated in Fig. 7. A suitable kinematic network
(collection of directed edges and nodes) has been superposed on the figure. Treating
point E as an unrestrained point loaded by a force (from the spring), the system may
be seen to have three independent loops, which we take as OFDJAO, AJDHA, and
AHDBA

Fig. 7. Multiloop Planar Mechanism.


Benchmark Problem

The Lagrangian coordinates (1/11' ••• 1/110) shown all represent absolute angles,
measured from the global x-axis. Note that an extensional spring attached to one of the
links is fixed to the ground link at point C. The system starts from rest, under the
influence of a constant torque motor driving the crank about the axis at 0 with a
torque of 0.033 N-m. The geometric dimensions, initial angles, inertial characteristics
of the system, and the stiffness and free length of the spring are given elsewhere in this
volume; therefore they will not be listed here. However, in order to give readers a
feeling for the amount of, and the form of, the input data required for such problems,
we have shown, in Fig. 8, the complete input file required by DYSPAM.
318

IPUIWI MECIWUSM
0 0 7 7 ,0 3 I 2 0 0 2 0
.0009257
.0115
.020 0.01 2.0 3 .507755 .OZ14511l1
0.0 .03 0.0002 O.OOOZ 0 0 0 .01421
0 .007 I 0 .395213 .024132577
0 .021 2 0 6 6 0 .01421
.035 3 0 7 7 .35075 .01307614
.OZ 4 0 3 3 .13791 .0Z690n41
.04 5 0 .04325 ._2194
.02 6 0 .00365 .000000441
.04 7 0 .02573 .000005255
.069311751 0 .032805661 .00706 .0000005667
0 .041103999 .115092633 .07050 .00001169
·1 6 .00706 .0000005667
2 .05491 .00001912
·3 0.0 0.0 .033
0.0 0.0 0.0
·5 ·7 0 ·.061994103
6 3.14159
·7 ·8 5.167829227
I 0 2.2111
·9 ·5 .417518501

0 0 0 I · ' ., ,
1 1 0 0 0 1·1 I 0 0
0 0 0
4.1495
5.94326325
0 0·1 ·1 1 0 0 0·1 0 0 0 0 0 0 0 0 0 0 0

Fig. 8. Input Data File for Example 2.

This input data is easily generated using any convenient program editor or word
processor. However, it is significantly easier, and less error prone to use the interactive
data preparation program DYMDATA, discussed below. DYSPAM was run with the
data file shown, and produced the echo-print of the input data shown in Fig. 9. The
specified external forces consist of a constant torque of 0.033 Nm acting on member 1,
and the spring force acting at point E on member 3. The constant torque may be
included as TOR(l) acting about the point of interest 1, as shown in the Given Force
Table (see Fig. 9). However, position dependent spring forces must be described in the
user-supplied subroutine FORCES, as follows:

C ***** USER-SUPPLIED EXPRESSIONS FOR FORCES FOLLOW *****


XB=-.03635465058
YB=.03273386291
XE=XB+.026907248*DCOS(PSI(3)+.837981225)
YE=YB+.026907248*DSIN(PSI(3)+.837981225)
D=SQRT«.014-XE)**2 + (.072-YE)**2)
F=4530*(D-.07785)
PSIC=DATAN2«.072-YE),(.014-XE»
FX(2) =F*DCOS (PSIC)
FY(2)=F*DSIN(PSIC)
RETURN
END
319

In interpreting the above code, note from the Points of Interest Table that point
E is point of interest No.8, and from the Given Force Table that Force set No.2 acts
through point 8 (point E). That is why the spring force components acting on point E
are called FX (2), FY (2) in the subroutine Forces.

PROGAAM DlMAe EXAMPLE CC»tPLETE LOOP TABLE


PUIWt MECHAM I SIt EDGE NO.

NO. OF SPATIAL COlISTIlAINT$ (N$) ••••••••••••••• 0 looP NO.


ti~. OF TEMPORAL CONSTRAINTS (NT) .............. 0 1 , 0 0 0 ·1
tlo. Of LACRANCIAIII CIXlADIMATES eNlAIl) •••••••••• 7 2 o 0 , ·1·, 0 0
NO. OF MOVING LINKS (NLINK) ................... 7 o 0 ., ·1 o 0 0 ·1
NO. OF EDGES (liE) ••••••••••••••••••••••••••••• 9
NO. OF JOINTS (JlITIND) •••••••••••••••••••••••• 0 POINTS Of INTEREST TABLE
NO. Of INDEPENDENT LOOPS (NLP) •••••••••••••••• 3 POINT LINK EDG! ANGLE RADIUS PRINT OPTION
NO. Of POlIns OF INTEII.EST (NPf) •••••••••••••••
NO. OF FcaeE APPLICATION POINTS (IfFAP) ••••••••
a
2
I
,
lINKel)
,
IEOGECI) ALfPI(I)
.0000000·00
RPI(I)
.9Zl7000·03 ,
IOOT(I)

liD. OF UNICNaJN MOHON CENERATOR fORCES (MUf) •• 0 2 2 .0000000+00 .1150000-01


OPEIi LOOP INDEX (IOflP) ••••••••••••••••••••••• Q .5077550+00 .2"5130,01
PROCESSOIt OPTION (lPROC) ...................... 0 .0000000.00 .'421000'01
.'3952830+00 .2483240·01
CHARACTERISTIC LENGTH (ELCHA.)........... ••••• .2000000-01 .0000000·00 .1'21000-01
CHARACTERlsfiC PERla» (TCHAR)................. .1000000-01 .3501500·00 .1307610'01
CHARACTERISTIC DISPLACEHEMT (DCMAR)........... .20DOOoo+01 .8179800+00 .2690no·Ol

llrUfiAl TIME (PR"1(1» ••••••••••••••••••••••••• 0000000.00 LINK INERTIA TABLE


CHOSEN TIME INClEMENT (PRH1(l»............... .1000000·02
PRINTOOT INTERVAL (PIM1(7»... ................ .1000000·02
LINK REfERENCE MASS M.O.I.
filiAL TIHE (PRMT(2)).......................... .1000000·01
POtU
EDCE DATA TABLE IPIL(I) EM(I) """'1(1)
EDG! LENGTH INDEX LENGTH CONSTANT ANGLE INDEX 'ANelE COHSTAU 1 .025000-01 .2194000-05
I Il(l) cL(1) IA(I) U(I) .3650000-02 .4410000·06
.7000000-02 .0000000+00 .2313000-01 .5255000-05
.2800000·01 .0000000+00 .7060000'02 .5667000'06
.1500000'01 .0000000+00 .7050000-01 .1169000-04
.2000000' 0 1 .0000000+00 .7060000'02 .5667000'06
.4000000'01 .000.0000+00 .5498000'01 .1912000-04
.2000000·01 .0000000+00
.4000000-01 .0000000.00 GhU fCII:CE TABLE
.6938180-01 .32.. 571>·01
.4810400-01 .8150930+00 fO«CE REFEREliCE Y-f~CE HCMENT
INOEX POlin
EDeE ADJACENCY TABLE I IPIF(I) fX(I) Fl(D TOIlet)
EDCE EDCE END ADJACENT
EDCE END .0000000+00 .0000000+00 .3300000-01
lEOJAC(I, 1) IEOJAC(l,2) .0000000·00 .0000000+00 .0000000+00
·1 0
3 IIUTIAL CCHDITIONS TASlE
(NOTE VARIABLE TYPES: 1-PRIMARY. O-SECONOARY, .1-CONTRot.LEO)
·3

-7 INDEX VARIABLE TYPE INITlAL INITIAL


·5
SET t SET 2 DISPLACEMENT VELOCITY

..
·7 ·s Ja(l) JQA(l) 1'51(1) PSIO(l)
0 1 ·.6199410-01 .0000000.00
·5 .1141590+01 .0000000·00
.51678lO+01 .0000000·00
.2281100.01 .0000000+00
.4875190+00 .00OOOCO+00
.4149500*01 .0000000+00
.5943260+01 .000000I)·00

DECREE Of fREEDCM_ 1 (lNCllJ)£$ EffECTS Of ALL cONST .... nT5)

Fig. 9. Standard Form Echo-Print of Input Data


320

The standard output was intercepted by the user-supplied subroutine UPROC,


mentioned above, and saved in a data file. This file was fed into the Lotus 123 plotting
routine to produce the graphs shown in Figs. 10 - 13. These plots show no discernable
difference from the published solutions for this problem.

!,----------------------------, u,....----------------------------,

LZ

I,
1.!1S Lli U5 1.05 Lli

Fig. 10. 1/11 =f3 Vs. time t Fig. 11 ¢'l=P Vs. time t

L5r------------------------------, Br------------------------------,

LI

II
1 LJ
t
T
! L2

.
'11

LI
'/0. '2\1

1.111 UI lR

Fig. 12. 1/13-270° =¥ Vs. time t Fig. 13. ¢'3=,y Vs. time t
321

9. PRE· AND POST·PROCESSING OF DATA


DYMDATA is an interactive menu-oriented program for the generation of
DYMAC input data files, such as that shown in Fig. 8. This program was written in the
language True Basic, but does not require the True Basic compiler to be run. It can be
run from an ".EXE" file on any computer (e.g. IBM PC compatibles) which utilizes the
DOS operating system. It can also be run from True Basic on non-DOS machines (e.g.
Macintosh) which support True Basic. The program has many useful error trapping
features and other conveniences for storing and modifying data files.
DYMAC has convenient standard forms of printed output. However any computed
result from DYMAC is easily stored for later use (e.g. plotting) by use of the user-
supplied subroutine UPROC, as was illustrated in example No.2 above.

10. CONCLUSIONS
DYMAC is a general purpose computer program for analysis and simulation of
dynamics problems in planar mechanisms. It has been described in sufficient detail to
suggest how a system is modelled, how input data is organized, an what level of effort
is required to write user-supplied subroutines, which are only necessary when specifying
motion constraints (other than those due to standard joints, and loop closure), or when
specifying variable forces. The program finds positions, velocities, and accelerations for
any points of interest to the user. It also finds internal joint forces (reactions), and
permits. the post-processing of output data in a variety of ways for graphical or
numerical studies. An interactive menu oriented data preparation program is also
available.

Acknowledgements:
The author appreciates the able assistance provided by Evan Strassberg and Kai
Lo, both graduate students at the University of Pennsylvania, in the preparation of this
paper. He also acknowledges the efforts of former senior student Michael Blaine, in the
development of program DYMDATA.
322

REFERENCES

[1] Paul, B.: A Unified Criterion for the Degree of Constraint of Plane Kinematic
Chains, Journal of Applied Mechanics, voL 27, Trans ASME Ser E, vol. 82, 196-
200, discussion 751-752, 1960
[2] Paul, B. and Krajcinovic, D.: Computer Analysis of Machines With Planar
Motion-Part I: Kinematics, Journal of Applied Mechanics, Trans. ASME, Series E,
voL 37, 697-702, 1970
[3] Paul, B. and Krajcinovic, D.: Computer Analysis of Machines With Planar
Motion-Part II: Dynamics, Journal of Applied Mechanics, Trans. ASME, Series E,
voL 37, 703-712, 1970
[4] Paul, B.: Analytical Dynamics of Mechanisms - A Computer-Oriented Overview,
Mechanisms and Machine Theory, Vol. 10, 481-507, 1975
[5] Paul, B.: Kinematics and Dynamics of Planar Machinery, Prentice-Hall, Englewood
Cliffs, NJ, 1979
[6] Hud, G.: Dynamics of Inertia Variant Machinery, Ph.D. Dissertation, University of
Pennsylvania, Philadelphia, 1976
[7] Amin, A.: Automatic Formulation and Solution techniques in Dynamics of
Machinery, Ph.D. Dissertation, University of Pennsylvania, Philadelphia, 1979
[8] Paul, B. and Amin, A.: User's Manual for Program DYMAC. Available through
B. Paul.
[9] Paul, B.: Machine Systems, in Chapter 12 of Mechanical Design and Systems
Handbook, McGraw-Hill, N.Y.; Ed. by Rothbart, H.A., 1985
323

DYSPAM (DYnamics of SPAtial Mechanisms)

ABSTRACT

DYSPAM is a computer program, written in FORTRAN, for the analysis and


simulation of the Kinematics, Statics, and Dynamics of spatial interconnected systems
of bodies. The system may include both open kinematic chains, as typified by robot
manipulators, and closed kinematic chains, as typified by automotive suspensions and
general linkage maChinery. DYSPAM automatically generates the differential equations
of motion, using Lagrange's form of d'Alembert's Principle (Virtual Work). The program
finds displacements, velocities, accelerations, joint reactions, motor torques, etc. for
systems with multiple degrees of freedom which are subjected to user-supplied forces,
and geometric constraints. A brief description is given of modelling techniques and of
input/output procedures. The capability for post-processing (e.g. plotting) data produced
by DYSP AM is provided so that users may utilize their own graphics hardware/software
facilities. Interactive pre- and post-processors for DYSPAM, using personal computers,
are available to simplify data input and to provide for graphics and animation.

1. INTRODUCTION
DYSPAM is designed to perform the following types of analyses for spatial multi-
degree of freedom systems of interconnected bodies:
1. KINEMATICS - Time-varying position, velocity, and acceleration for all bodies,
and for user-selected points of interest, are computed for specified driving
links or for other motion-generating means specified by the user.
2. STATICS - Statics analysis is used to solve two kinds of problems. Either an
equilibrium configuration is determined from user-supplied forces and
constraints, or a set of equilibrating forces is determined from a user-
specified configuration. For either case, joint reactions are computed, if
desired.
3. DYNAMICS - Position, velocity, and acceleration, for all bodies of the system,
and for selected points of interest are computed as a function of time by
numerical integration of the differential equations of motion, which are
generated automatically, subject to user-supplied forces and motion
generators (imposed geometric constraints). When motion generators are
used, the required driving forces, e.g. motor torques, can be determined. If
desired, joint reaction forces and moments can also be computed.
324

The principal reference for DYSPAM is Schaffa [1]. The program evolved from
earlier works, including Paul and Krajcinovic [2],[3], Paul [4], Paul [5], Paul, [6), and
from the program DYMAC, which was restricted to planar motions (see Paul [7], and
Amin [8]).

2. METHOD OF ANALYSIS
The configuration of a mechanism is determined by a set of time-dependent
Lagrangian coordinates, denoted by the symbols 1/11' 1/11' • • ., I/IM" These variables
represent the relative joint displacements, which may be either angles (e.g. for revolute
joints) or lengths (e.g. for prismatic joints).
The Cartesian coordinates of a typical point, referred to a global system of axes,
can be expressed as :
x = f1(I/I1" •• I/IM)' y = f1(I/I1" •• I/IM)' z = f3(I/I1" •• I/IM)
To permit the imposition of a wide variety of geometric constraints, users may
specify holonomic relationships among the Lagrangian coordinates, and time t, of form:
8;(1/11" • • I/IM> t) = 0, (i=1, ... ,Nac)
where Nac is the number of such relationships - or in the nonholonomic form:
ail ;P1 + ail ;P1 + ... aiM ;PM + ax, t = 0, (i = 1, ... ,Nac)
where ~j are user supplied functions of position and time.
Such relationships are specified in a FORTRAN standard form within a user-
supplied subroutine called MOTGEN (MOTion GENeration constraint). MOTGEN is
also used to solve the so-called inverse kinematics problem, which is of great interest in
robotics. In these problems, it is required to find the joint angles and displacements
needed to place a given body in a given position and orientation. The equations of
constraint associated with the closure of kinematic loops are generated automatically.
Of the M Lagrangian coordinates, F will be designated as generalized coordinates
(or independent coordinates). The remaining coordinates are called secondary
coordinates, and they are computed internalIy from the generalized coordinates. The
subset of Lagrangian coordinates which serve as generalized coordinates may be chosen
automatically by DYSPAM, or they may be chosen by the user. The number and choice
of generalized coordinates may vary with the state of the system (e.g. at singular
configurations).
The method of solution used for each of the different categories of problems is
briefly described here:
325

1. KINEMATICS - The user specifies the initial values of the generalized coordinates
of his choice. If a generalized velocity is to remain constant (e.g. if a driving
crank has constant angular velocity), it is only necessary to specify its initial
(and time invariant) value. If the generalized velocity varies with time, this
time dependence must be explicitly defined in the subroutine MOTGEN.
The secondary variables are computed internally from the generalized
coordinates by solving the nonlinear algebraic constraint equations via the
Newton-Raphson algorithm.
2. STATICS - For the unknown Equilibrium configuration of a mechanism subjected
to geometric constraints, and a given set of forces, the solution must satisfy
the system equilibrium equations (vanishing generalized forces), and the
geometric constraint equations. These two sets of nonlinear algebraic
equations are solved simultaneously by a Newton-Raphson algorithm. The
user may specify arbitrary applied forces (possibly dependent on time,
position, and velocity) via a user-supplied subroutine FORCES.
3. DYNAMICS - The differential equations of motion are generated automatically
using Lagrange's form of d'Alembert's Principle (virtual work). When
geometric constraints exist, DYSPAM (unlike most competing programs)
does not utilize Lagrange multipliers. The equations of motion are
formulated according to the method of excess differential equations, as
described in Paul [5,6], using a fourth order Runge-Kutta algorithm with
automatic step control. If the number of differential equations generated
equals the number of independent driving variables, DYSPAM recognizes
that the motion is determined solely by kinematics, and the solution is
obtained as explained under the heading of K1NBMATICS above. The user
may specify arbitrary applied forces (possibly dependent on time, position,
and velocity) via the user-supplied subroutine FORCES.

HOMOGENEOUS TRANSFORMAllONS
We utilize the notation of the homogeneous transformation as used by Denavit
and Hartenberg [9] and Paul [10]. Let,t- =: {x,y,z}A represents the column vector of
cartesian coordinates in a coordinate frame A, for a given point P. Similarly, let x!1
represent the coordinates of the same point in a frame B. Let us also define by dA ==
326

{d,., d" ~}A the vector, resolved in frame A. from the origin of frame A to the origin
of frame B, and let the unit basis vectors of the two frames be denoted by e~ and e~
(i=1,2,3). Then the position vectors of point P, as observed from the two frames are
related by the following transformation:

X==

where
rij == eieej
The orthonormal matrix R == [rij] represents the rotation of frame B relative to
frame A. and we call the four dimensional vector X == [x lr the extended position vector.
Note that the matrix orAD contains all the information necessary to fully specify both the
rotation and the translation of frame A relative to frame B. The matrix transformation
described above is said to be a homogeneous transformation.

Fig. 1. Directed Transform Graph

Figure 1 depicts a set of distinct coordinate frames with axes {x,y,z}i, (i=O,1,2,3).
We shall think of frame 0 as the global frame. If a point has coordinates (X,y,z)3 in
frame 3, it is readily shown that its coordinates in the global frame are expressed by the
homogeneous transformation
xo = 'til TI2 ~ X3 = TJ3 X3
327

where

The chain of transformations represented by this product of T matrices is depicted


in Fig. 1 as a directed transform graph (see R. P. Paul [10]).

3. MODEUJNG OF MECHANISM
In this section we describe the modelling procedures required by DYSPAM. Note
that we do not use the modelling technique of Denavit and Hartenberg [9].
3.1 Body and Joint Triads
Each body of the system has a Body Reference Triad1 (abbreviated as BR1)
embedded in it. This is used to define features of the body (e.g. points of interest, or
other embedded triads) relative to the body. It is also used to describe the position and
orientation of the body relative to a global (fixed) frame. In particular, for each joint
on a body there is a joint triad embedded in the body; there will be a corresponding
joint triad embedded in the body connected to the first body by the joint in question.
The relative motion of the two bodies is described by a joint transformation matrix which
relates these two triads, as described in Section 3.2. A body may have several joints
attached to it. If N is the identification number of the body, and joints 3,7,9 are
attached to that body, the transformation matrices which locate the joint triads relative
to the BRT are designated by
~3, TN7, ~

as illustrated in Fig.2, for bodies A and B, and joint i. Note that Fig. 2 illustrates a
notational convention for the inverse of a transformation matrix, viz.
TiD = (TBi)"1

3.2 Modelling of Joints


The relative motion of th~ two bodies which are joined at joint i is described by
a joint transformation matrix i, as illustrated schematically in Fig. 2. Figure 2 is a
directed transform graph which illustrates that the configuration of the BRT of body B
relative to that of body A is given by the matrix product
-rAB = rrNiT'D

1 The lOOrd triad denotel a tyltem of orthogonal Cartesian ues together with an associated set of unit base YeCtoll.
328

Fig. 2. Body Reference Triads for Bodies A and B; Joint Triad for Joint j.

To illustrate the nature of the jOint matrices i, we give two examples. For the
simple revolute joint illustrated in Fig. 3, the joint matrix is

-sin 8 i • I 0 0
[ c~s
SIn .'.'
8i I cos 8 1 . 0 0
Ji = o. o. I
1 0
0 0 0 1

Fig. 3. Revolute Joint

Similarly, for the universal joint shown in Fig. 4, the joint transformation matrix is

-cos8 1 sin8 2

~1
-sin8 1 sin8 2
cos8 2
o
where 81 and 8 z represent the angles 8~1 and 8 u shown in Fig. 4.
329

Fig. 4. Universal Joint

The various types of joints built in to DYSPAM are shown in Fig. 5; other types
of joints may be simulated by the superposition of these joint types.

joint type echem:J.tic numbero! joint type ftchem:1tic numberoC


represent:J.tion rebtive d.o.C. represent:J.tion rel:ltive d.o.!.
<.b

Revolute ~ 1 Universal
¢ 2

Prism:J.tic
~ 1 Spheric ~ 3

X-Prism:J.tie
~

I I
1 Pl:J.nar
@ 3

Sere':; A 1 Gear
m}l- 1

Cylindric ~ 2

Fig. 5. Standard Joint Types

3.3 Modelling The Kinematic Network


Bodies are numbered sequentially from zero (for the ground link). The topology
of the system is summarized in a user-supplied joint description table. Each line of this
330

table corresponds to one simple joint. The order in which the two bodies connected by
that joint are entered determines the positive sense of the joint variable, which is
measured from the first to the second of the joint triads for that joint (see Figs. 3 and
4 for examples). The type of the joint (e.g. see Fig.S) is also entered into the joint
description table.

3.4 Modelling Body Geometry and Inertia


The term geometric entity includes points of interest, mass centers, coordinate
frames (triads), etc. In addition to the joint triads, described above, the user must specify
an inertia triad located at the mass center of each body. In defining this triad, the user
is free to take advantage of inertial symmetries (principal axes of inertia), or to utilize
any special feature of the geometry that is convenient. Any geometric entity attached
to a body is specified with respect to the BRT (body reference triad). The user also
creates a points of interest table which specifies the local position of all mass centers,
points where forces are applied, and other points of interest to the user.
Inertia properties are specified, for each body, by the mass and by the inertia
tensor (matrix) specified relative to the inertia triad. The units of mass and length are
arbitrary, but must be consistent. The inertial characteristics for each body are entered
into a body inertia table.

3.5 Modelling User-Supplied Forces and Moments


Forces2 can be constants (e.g. body weight) or functions of time, position, and
velocity. Forces may be applied to any body of the system, but the components of the
forces must be specified in the global coordinate frame. A user-supplied force table
contains the relevant data for each point of interest where one or more constant force
components are applied. Any force component which is variable in magnitude or
direction must be defined by the user in a standard subroutine called FORCES.

3.6 Auxiliary Constraints


DYSP AM gives users the opportunity to specify arbitrary relationships among the
Lagrangian coordinates at all times. These relationships are called auxiliary constraint
equations. They are of the general form
gl!{ll' !{I2" •• ,!{1M' t) = 0, (i=1, nac)

2 When not otherwise indicated, the word "forces" stands for "forces and moments."
331

where t is time, and nac is the number of such relationships to be specified.


DYSPAM requires the user to provide FORTRAN expressions for the functions
gj, and for all its nonzero derivatives, in a standard subroutine MOTGEN. The
FORTRAN names to be used for & and its derivatives are:
G(I) for gj
DG(I,J) for ag/al/li
DTDG (I , J) for d( a&/al/li)/dt
DTG(I) for a&/at
DTDTG(I) for d(a&/at)/dt
To illustrate the use of auxiliary constraints, let us consider the case where the
acceleration corresponding to variable 5 is to be held constant; i.e:
I/Is = a
~s =at + va
I/Is = at2/2 + vat + So
where a is the desired constant acceleration, va is the initial velocity, and So is the initial
displacement. The desired form for the constraint equation is therefore:
gl = I/Is - at2/2 - vat - So = 0
The nonzero derivatives of gl are given by
ag/al/ls = 1
agl/at = -at - va
d(ag1/at)/dt = -a
The user must place the following FORTRAN statement where indicated in the
supplied dummy version of subroutine MOTGEN:
c$$$ ..• EXPRESSIONS FOR USER SUPPLIED CONSTRAINTS FOLLOW ... $$$
G(I)=PSI(5)-A*TIME**2/2.-VO*TIME-SO
DG(1,5)=1
DTG(5)=-A*TIME-VO
DTDTG=-A
Subroutine MOTGEN is also used to specify nonholonomic constraints; i.e. when
known algebraic relationships exist between derivatives of the Lagrangian coordinates
but no corresponding relationship of the form g(I/Il' ..., I/Iwt)=O exists. This approach
is applied to the classic example of the rolling coin in Schaffa [1].
332

3.7 Inverse Kinematics


Users may specify the motion of selected points in the system. For example, one
might specify the path described by a robot's wrist, and the orientation of the robot's
hand. DYSPAM will then find the necessary values of the joint angles necessary to
accomplish the task. This is an illustration of the so-called problem of inverse kinematics.
More generally, the user provides an inverse kinematics table. In this table, up to ten
points of interest are selected, and the user indicates by a simple code whether he is
going to specify one, two or three of the global Cartesian coordinates for each such
point. An example of inverse kinematics is given in Schaffa [1], where the wrist of a
Stanford manipulator is made to move along a straight line while the end effector
(hand) maintains a fIXed orientation.

3.8 Initial Conditions


In a statics analysis, the user must provide initial values for all independent
Lagrangian coordinates. When auxiliary geometric constraints are present, the user must
also provide estimates of the initial values for all the dependent (secondary) coordinates.
These approximate values are iteratively adjusted by DYSPAM until all constraint
relations are satisfied.
For a kinematics or dynamics analysis, the physics of the problem requires that the
initial values of the generalized coordinates, and of the generalized velocities, be given.
It is also necessary that initial estimates be given of all secondary coordinates. These
estimates will be refined internally by DYSP AM.

3.9 Springs and Dampers


An extensional spring may act between any two points of interest, and a rotational
spring may act about any revolute or spherical joint. For linear elasticity and damping,
the parameters for the springs are included in a spring/damper table. Nonlinear springs
may be accounted for by means of simple FORTRAN statements in the user-supplied
subroutine FORCES.

4. PRE· AND POST·PROCESSING OF DATA


Input may be generated in a variety of ways. The original, and still valid method
is to use a text editor to create a text file with the input data arranged in lines and
columns, as explained in the User's Manual. More recently, a Pre-Processor program
333

(called DYSIN, for DYSpam INput) was written for DYSPAM (see Strassberg [11]).
This preprocessor is a menu driven interactive program written in the True Basic
language. After the user has entered, edited, and checked the data to his satisfaction,
the program produces a data input file in the format that DYSPAM will accept. The
pre-processing program will run on any computer (e.g. IBM PC, XT, and AT
compatibles) that supports the DOS operating system, without the need to run True
Basic. It will also run from True Basic on any computer which supports True Basic [e.g.
IBM (PC, XT, or AT) compatibles, Apple Macintosh, Amiga, Commodore, and others].
The standard (numerical) output from DYSPAM goes to the computer screen, and
to a variety of output files. Each time a solution state is found (i.e the set of all
Lagrangian coordinates, at a specified time), the user has the opportunity to process that
information immediately, or store it for later processing, in a user supplied subroutine
called UPROC. This permits users to customize the output to their own
hardware/software/graphics facilities.
An alternative post-processing method for DYSPAM, with strong graphics and
animation capabilities has recently been developed by Strassberg [11]. This post-
processing PROGRAM, called ANIMATE, will run on any computer (e.g. IBM PC, XT,
and AT compatibles) that supports the DOS operating system, without the need to run
True Basic. For graphics output, and animation, the computer should have a graphics
video board (e.g. EGA, VGA, Hercules) and a compatible video monitor. Like the
preprocessor, the postprocessor will also run from True Basic on any computer which
supports that language [e.g. IBM (PC, XT, AT) compatibles, Apple Macintosh, Amiga,
Commodore, etc.].

5. EXAMPLES
We consider the "benchmark" examples defined in detail elsewhere in this volume.
5.1 Example 1. Spatial Motion of Robot.
Figure 6 shows the example robot, which consists of 3 bodies, interconnected so
as to produce a total of five degrees of freedom. We have chosen to model the joints
as shown in the figure. Figure 7A is a representation of the robot, generated by the post-
processing program ANIMATE.3

_n.
3 A IUpencript A om to • FIJun: No. citation ladicates that tbo figure wu generated by tbo post-processing propm
ANIMATE, &ad wu reproduced dirutIy from tbo computer
334

Fig. 6 Robot of Example 1 Fig. 7 Typical Animation Frame

Figures 8A and ~ illustrate the discontinuous nature of the applied moments


(which are programmed by simple FORTRAN statement in the user-supplied subroutine
FORCES).

258.88 ,-r-,.--,---.---,-....,--r--;;:::r==-===;
-- -~ .. -~,- ... ;-- -~ .. --:--- ~-- -~ ... --~- ... -:- .....
I I I I r I I I I I I I I I I
___ 1_ .. _J __ ... l ___ L .. __ 1___ J __ ... .L ... ~L_ .. -1_ ....
I I I I I I I I I
I I I I I I I I I I I I , I I I I ,
-- -r- -,
I I
.. T---r ---,--- '---T'" --r-'" -,-_ ..
I I I I I I I
- ---"---I--·'---r-
I I I ,
. . Ir---r--·
I
J ___ l __ L ___' __ _
-- -:-- -~ .... +---~ ---:---~-- . . t- --i--- -:- ....
1 __
I I I
I I
- - -1"""""''''
I I
---1---
I
.. T--"'~"'---1'
I I I I
-r--- "'--1'--'" ..
I
"'---~
, I
I
---I---oot-- -"'-
I

I
I

I
,

1
--~-
I
,
.. -t-- ..
I

-r-'" -:- .....


I I I I I I I I I
4B.S8
- - -:-- - , - - - j - - - j ' " --,--" ,-_ ... r- -138.88
- +- - - ~ - - -:- - -1-- - t - --~- - -:- --
I I I I I I I I I _ .. -1.. ..
I
_-"
I I
_ _ ... _ _ _
I___ , I I I
..j __ ...... __ ...... __ _I __ _
- - _1- .... "" - - - ... - --~ .. __ 1___ ..(-- - ...... -1- ..... -1_ .....
1 I I I I I I ,

'-r"" -:- . . .
I I I I I I I I I

-1--" +---t . --:--- -{ -_ . +. .


I , I , I , , , t
1- .. " -:- • -- -,- - 1--- T ---r - --,-- - ,-_ .. T - --r- - -,---
I I I I I I I I I , , I I , I , I ,
___ 1- __ -I ___ .1. ___ '"- ___ I ___ ..I ___ .L_ -tl..- ... _f- __ ___ I __ ... _ ..... .i. ___ L ___ 1___ ... __ ........ _ L __ -L- __

I I I I I I I , I , I I , I , , I
1 I I I I I 1 'I 1 I I I I I , , , 1
-- -,---,--- T---r" --,--" ,-- -r- -'--- ,--- - -,-_., --- r---r - --,---,-- -r - --r---'---
I I I I I I I I , I I I I I
3Z.88 L---'-_-'-----'_--'-_-'-----'_..L_.l...-----'-_...I -518.88 "-----'---'--'---'---'--'---'---'-----''--'
.88 .Z8 .48 .68 .88 1.88 1.Z8 1.48 1.68 1.88 Z.8~ .88 .28 .48 .68 .88 1.88 1.28 1.48 1.68 1.88 2.88
TialS e,)

Fig. 8 Hand Torque M z [N-m] Fig. 9 Tower Torque Ml [N-m]


Vs. time t [s] Vs. time t [s]

If you wish to prepare input for DYSPAM with the aid of the interactive program
DYSIN, you will be greeted by a sequence of screen menus with detailed instructions
on how to proceed. Two typical menus are indicated in Figs. 10 and 11. Figure 11
corresponds to an example in which 6 forces (NFOR=1,2, ...6) are to be specified by
the user, who merely fills in the highlighted blank spaces on the screen.
335

Fig. 10 Mass and Inertia Tensor Menu Fig. 11 External Forces Menu

As explained in Sec. 3.2, for each joint, a joint triad is fIXed in each adjoining
body, with their z-axes collinear. Figure 12 shows all the joint triads for this example.
Note the following pairs of collinear axes, and Lagrangian coordinates:
Joint 1 (prismatic): (7.01' Zll) 1/11
Joint 2 (revolute): (ZI2, Zu) 1/12
Joint 3 (cylindrical): (In, Z:l3) 1/13' 1/14
Joint 4 (Revolute): (Z:l4, Z44) 1/15

Y~4 X44

_
4
C
__ L~l

244

Fig. 12. Joint Triads and Lagrangian Coordinates


336

As mentioned above, the output from DYSPAM is easily captured and processed
in a user-supplied subroutine UPROC, so that the numeric data may be processed by
the user in accordance with whatever plotting utilities he works with. In this fashion, we
recorded all the Lagrangian coordinates (1/11' ••• 1/15) at each time step, and used our
local facilities to plot them versus time. All of these plots agreed without discernable
error with the published solutions to this sample problem. Typical results are shown in
Figures 13 and 14.

ua r-r---,..--....--,..--....---.,r---r---,--.---, - . 58 r-..,....-r-..,.--,---r--r---,~-.--r----,
I I I I I I
-- _'- ... _oJ ___ .1 ___ 1.. .. __1___ J __ .. .1 ... __ L._
I I
_1_-
I _JI ___ .1.I ___ 1..
I ___ I,___ JI __ _ 1I ___ I\. ___II.. __
I I I I I I I , , , , I I 1 , I
-- -r- -,--- r---r ---,--- '---T- -,..--.,.. __
I I I I I I I I
-,--- T---~'" --,--- "---T---"'- --.- --
I I I I I I I I

1, ---:---~---+---~---:---~-- i---~---:--- ---:--- '--- +---~ ---:---~-- -+ ---r---:---


I I I I I , I , I

I
- - -to" ..
I
-~
I I
- _ .. .,. ..... - , . ...... -1--- -_ . . .,. .. --,.-..
I I I I
-t- .....
I
- - -1-- -"1- -
I I
.,.---~-
I
--'---"1---.,. ---P----to---
I I I I ,

..... -:- ...... ~ --- +_ .. -~ ...... -' -- ,-_ .. t .. --r"" -1-""


I I I I I I I I I I , , , I I I 1 I
].]5
I I I I I I I I I
- .65
---:--+--,--+--:--+--+--+--:---
I - - ...I -_ .....I _ _ _ I _ __11___ ...1 ___ ...1 ___ I I
- - -1- ..... ~ - - ......... _). __1_ - - 001 __ ........ -_1- ...... -+- ..... - - -I- ........... _

-r- --:----{---+ ---;-- --:- .....


~_

-- -:- --1--- +- -- -:---,-- -+---l- .. --,-- '---+ - --r---:---


I I I I I I I I I I I I , I I , I

I I I I I I I I
- - -'----' -_ .1 ___ L. ___ I___ .J ___ .1 ___ 1.._ ... -1- __ _ __ I'- __ .J1 ___ 1I __ _ I ___ 1I___ .JI __ _ 1 ___ "
~ ~_"'!' ___ __I
I I I I I I I I I , I I I I I I I I
I t I I I I I I I I I I I I I I I
.... -,_ ... ,--- r---r" --,-"" ,-- -r---r- - . - " -- -r --, -- - T---r" --,-- -.,-- -T ---,..- -.,.. --
I I " I I I I I
I I I I 1 I I 1 I
Z. 28 ~--':-:--'---!..._-'---'-_..L...---1_--'-----''--.....J -.88~--':-:--L-~ __L-~__L-~__'--~-.....l
.88 .28 .48 .68 .88 1.88 1.28 1.48 1.68 I.B8 2.U .81 .28 .48 .68 .BI 1.88 1.28 1.41 1.68 1.88 2.88
TI •• til TI.. tsl

Fig. 13 Lift of tower (1/11 =ZI) [m] Fig. 14 Rotation of tower (I/Iz=GA1) {radJ
Vs. time (t) [s] Vs. time (t) [s]

5.2 Example 2. Planar mechanism.o4


This example illustrates DYSPAM's ability to handle closed loop and planar
problems. The standard "benchmark" problem for planar multiloop mechanisms is shown
in Fig. 15. In that figure, the Lagrangian coordinates (1/11' ••• 1/110) shown all represent
relative angles at revolute joints. Note that 1/13' 1/14' and 1/15 represent the angular
displacements for the three simple revolute joints which have a common axis of rotation.
Also note that an extensional spring attached to one of the links is fIxed to the ground
link at point K. The system starts from rest, under the influence of a constant torque
motor driving the crank about the axis at 0 with a torque of 0.033 N/m.

4 From the point of view of e:a:cution speed and ease of data input, a program such as DYMAC (5.7). which was designed
expressly for planar problellll, is preferable to • more general program, such as DYSPAM which is capable of treating both spatial
and plauar problema.
337

Fig. 15. Seven body, mUltiloop, planar mechanism

The geometric dimensions, initial angles, and inertial characteristics of the system
are given elsewhere, and will not be repeated here. However, in order to give readers
a feeling for the amount and form of the input data required for such problems, we
have shown, in Fig. 16, the complete input file required by DYSPAM, for this example.
Plan... P7:abl_
10,7,0,0,',0,1,1,1 .003.5 •• ·0 •• 4.414-7
0,0,1,0,0,0,1/ 3 •• 01.745 •• 01043/
0.1.1 .7oln~-II04y Table .02373 •• *0.,5.2554-6
1,2,1 4.-.01421/
2,3,1 .00705 •• *0.,5 •• 574-7
2,4,1 5,.02308,.0091'3/
2,',1 .07050,8·0.,1.1.94-5
.,5,1
0.7.1 •• -.01421/
',',1 .0070',.*0.,5 ••• 74-7
0,3,1 7,.0122.,-.0044'3/
0,5,1 .0549',.*0.,1.9124-5
0.1/ .7oin~ Tl"la4a To~al of 14 1,0.,0.,.033 ao.ent
0.7. -.05934442015.-. 00227570507 .0.-.05934442015.-1 •• 0. -.051994103/ lnl~1.1 condl~lona
-.06934442016. -.00227570~07.1 0./
0.10. -. 05934442015.-.00227570507.0/ 5.24/
0.9. -.03635465058 •• 03273311291.0. -. 03535455058. -1. 0 5.41/
-.03535465051 •• 03273385291.1 1.07/
1.1/ 1.lS/
1.2 •• 007/ 1.2308/
2.2/
2.3.-.02./ 1.lS/
2.4.-.02./ .45544/
2.5.-.02./ .417518/
3.3 •• 035/ 0.,.001,.0' ~i••
3.9/ 2*.14-5,.14-5,10
4.4/ 1,.0009237/ poln~a ot int.....t
4,1,-.02/ 2,-.0115/
5.10/ 3,.018745,.01043/
5 •••• 04/
4,-.01421/
'.5/ 1,.0230.,.009153/
•••• -.02/ .,-.01421/
7.7/
7 •••• 04/ 7,.0122.,-.004e'3/
1 •• 0009237/ lneRi.. ".011, .02/
.04325 ••• 0. ,2.1'44-' 0, .014, .072/
2.-.0115/ 1
.01, .1,.1
.",.077'".530./

Fig. 16. Input Data File for Example 2.


338

The amount of input data required is quite moderate, considering the complexity
of the system. It is therefore not too onerous a task to generate the input file, using any
convenient program editor or word processor. Nevertheless, it is significantly easier, and
less error prone to use the interactive data preparation program DYSIN, discussed
above. DYSPAM was run with the data file shown, and the standard output was
intercepted by the user-supplied subroutine UPROC, as described above, which utilized
an available plotting package to produce the results shown in Figs. 17 - 20. These plots
show no discemable difference from the published solutions for this problem.

ii
",!,"
......
;;

......
D
D
.!.
0

~
. ...
D
D

.~'

0.000 0.001 0.01'


O.OiS

(s)
0.025 0.030 0.005 O.OlO

. 0.011

(.)
o.oao 0.025 0.030

Fig. 17. I/Il=P Vs. time t Fig. 18 ;PI =p Vs. time t

.
..=
~
o

"
.~

•. !" •.+...++++
•. _:!::f-++-H:-:H-++++++-H--I+++ •.+
...++++-I-
•.•30 0.005 ,.ose •.•ao .... '.NO
• (s) • (0)

Fig. 19. I/I<)=y Vs. time t Fig. 20. ;p<)=.;.<) Vs. time t
339

Acknowledgements:
We greatly appreciate the help of Evan Strassberg, who worked out Example 1
and the associated graphics with the aid of the pre- and post processors (DYSIN and
ANIMATE) descnbed in Strassberg [11]. We also appreciate the assistance of Ernest
Otani and of Philip Lee who have given us the benefit of their experience using
DYSPAM as a component of a computer graphics facility.

REFERENCES
[1] Schaffa, R.B.: Dynamic Analysis of Spatial Mechanisms, Ph.D. Dissertation,
University of Pennsylvania, Dept. of Mechanical Engineering and Applied
Mechanics, Philadelphia, PA, 19104, 1984

[2] Paul, B. and Krajcinovic, D.: Computer Analysis of Machines With Planar
Motion-Part I: Kinematics, Journal ofApplied Mechanics, Trans. ASME, Series
E, voL 37, 697-702, 1970

[3] Paul, B. and Krajcinovic, D.: Computer Analysis of Machines With Planar
Motion-Part II: Dynamics, Journal ofApplied Mechanics, Trans. ASME, Series
E, vol. 37, 70~712, 1970

[4] Paul, B.: Analytical Dynamics of Mechanisms - A Computer-Oriented


Overview, Mechanisms and Machine Theory, Vol. 10, 481-507, 1975

[5] Paul, B.: Kinematics and Dynamics of Planar Machinery, Prentice-Hall,


Englewood Oiffs, NJ, 1979

[6] Paul, B.: Computer Oriented Analytical Dynamics of Machinery, in Computer


Aided Analysis and Optimization of Mechanical Systems Dynamics, (NATO AS!
Series F, Vol. 9), Springer-Verlag, Berlin, Heidelberg, New York, Tokyo,
Ed. by E. Haug, 1984.

[7] Paul, B.: Dynamics Analysis of Machinery Via Program DYMAC, Society of
Automotive Engineers, Warrendale, Pa. Paper No. 770049 (1-11), 1978.
340

[8] Amin, A.U.: Automatic Fonnulation and Solution Techniques in Dynamics


of Machinery, Ph.D. Dissertation, University of Pennsylvania, Department
of Mechanical Engineering and Applied Mechanics, Philadelphia, PA, 19104,
1979

[9] Denavit, J. and R. S. Hartenberg: A Kinematic Notation for Lower-Pair


Mechanisms Based on Matrices," J. of Applied Mechanics, Vol. 22,
Trans. ASME, Vol. 77, 215-221, 1955

[10] Paul, R. P.: Robot Manipulators: Mathematics, Programming and Control, MIT Press,
Cambridge, Mass., and London, 1981.

[11] Strassberg, E.: A Pre- and Post-Processor for Dynamic Simulation Using Program
DYSPAM, M.S Thesis, University of Pennsylvania, Department of Mechanical
Engineering and Applied Mechanics, University of Pennsylvania, Philadelphia, Pa
19104, 1989
MESA VERDE - A General-purpose Program
Package for Symbolical Dynamics Simulations
of Multibody Systems
J. Wittenburg 1 ) , u. wolz 2 ), A. Schmidt 3 )

Abstract
The purpose of this paper is to present the program package
MESA VERDE for dynamics simulations of general multibody
systems. The program name stands for "MEchanism, SAtellite,
VEhicle and Robot Dynamics Equations". MESA VERDE generates in
symbolical form a minimal set of nonlinear differential equa-
tions for large motions as well as expressions for kinematical
quantities and for constraint forces in joints. The program
package is used by university institutions as well as by engi-
neering consulting companies and by engineers in industry. It
is commercially available at the third author's address.

1. Introduction
Multibody systems in the sense of this paper are found in al-
most all branches of industry. Some typical examples are ground
vehicles or vehicle components (wheel suspension systems for
cars, motorcycles, truck-trailer units etc), industrial robots,
biomechanical systems (the human body), spacecraft and many
kinds of mechanisms ranging from mechanical switches to plot-
ters and to aircraft landing gear mechanisms. All of these multi-
body systems require dynamics simulations either in the design
phase or in the operating phase.

In multibody systems the individual bodies are in large motion

1) Prof., Institute of Technical Mechanics, University of


Karlsruhe, 0-7500 Karlsruhe
2) Dr.-Ing., Zahnradfabrik Friedrichshafen,
0-7990 Friedrichshafen
3) Dr.-Ing., Ingenieurgemeinschaft Prof. Dr.-Ing. R. Gnadler,
Kaiserallee 111, 0-7500 Karlsruhe
342

relative to one another under the combined action of inertia


forces, external forces, internal forces (caused by springs,
dampers and actuators) and constraint forces (caused by rigid-
body contacts in joints of the system). MESA VERDE simulates
the dynamics of such systems. Upon specification of a standard
set of input data it generates in symbolical form
- a minimal set of nonlinear differential equations of motion,
- expressions for kinematical quantities (positions, veloci-
ties and accelerations of user-specified points, angular
orientations, angular velocities etc) and
- expressions for constraint forces and torques in joints.
The generated expressions are stored as ready-to-compile sub-
routines for use in subsequent numerical programs. Two basic
tasks for numerical programs are
integration of equations of motion in cases when all forces
are prescribed,
calculation of required motor forces and torques in cases
when the motion of a system (of a robot arm, for example)
is prescribed.

MESA VERDE is written in PASCAL (ANSI 1983 standard). It gene-


rates symbolical expressions either in PASCAL or in FORTRAN 77
code as is desired by the program user. MESA VERDE is easily
adaptable to computers having a PASCAL compiler. Installations
exist for the following machines: Siemens 78xx (BS3000), IBM
30xx (MVS) , HP 835 (UNIX), HP 1000 (RTE-A), VAX (MVS) , APOLLO
(AEGIS), SUN 3/xx (UNIX), CELERITY C1260 (UNIX) and PC AT (MS-
DOS).

In chapter 2 of this paper general characteristics of multibody


systems are described. Chapter 3 explains input data of multi-
body systems for MESA VERDE. In chapter 4 the theory underlying
MESA VERDE is outlined. Chapter 5 is devoted to illustrative
examples.

2. General Characteristics of Multibody Systems


For many multibody systems it is not the motion relative to
343

inertial space but relative to some moving reference frame that


is of interest. Typical examples are multibody systems mounted
on a moving vehicle and multibody spacecraft moving relative to
an orbiting reference frame. In MESA VERDE the moving reference
frame is referred to as body O. Input data for body 0 are func-
tions of time which describe its three-dimensional motion.

Multibody systems are composed of only three types of elements,


namely of bodies, of joints and of force elements.

2.1. Bodies: The individual bodies of a multibody system are


assumed to be rigid.

2.2. Joints: Any type of technical joint between two bodies can
be treated by MESA VERDE. Joints have a certain number smaller
than six of degrees of freedom of motion of one body relative
to its neighboring body. For each joint as many variables
must be chosen by the program user as there are degrees of
freedom in the joint. The variables describe the position and
the angular orientation of one body relative to the neighboring
body. Example 1: The cylindrical joint in Fig.1 has two de-
grees of freedom. Suitable variables are the displacement z and
the rotation angle ~. Example 2: In Fig.2 the bodies 1 and 2
are connected by a crank-and-slider mechanism with bars 3 and
4. Body 2 slides along bar 4. If the bars have negligible mass
then the whole mechanism represents a single joint between the
bodies 1 and 2. Suitable joint variables are the displacement x
and the crank angle ~.

If all bodies of a multibody system and also the reference body


o are interconnected by joints then the variables of all joints
together suffice to specify the position of the entire system.
If there are not sufficiently many joints for total connection
as is the case in Fig.3 then additional variables of relative
position of bodies must be defined. In the figure, for example,
six variables for the position and angular orientation of body 1
relative to body 0 might be defined. The connection thus esta-
blished between the bodies 0 and 1 will be called a joint. With
this generalized notion of joint all variables used in MESA
VERDE are joint variables.
344

z
L z

Fig.1: Cylindrical joint Fig.2: Two massless bars 3


with joint variables z and and 4 represent a joint be-
~. For other quantities tween bodies 1 and 2 with
see Chap.4.2 joint variables ~ and x

body

Fig.3: The system of bodies 1 and 2 is in free flight in iner-


tial space (body 0). Between bodies 0 and 1 a joint with 6 joint
variables is defined

If a system of bodies and joints with joint variables ql' .•. '~
has tree structure then the system has m degrees of freedom and
MESA VERDE will generate m equations of motion. For various
reasons there may exist constraint equations of the general
form f(ql, ••• ,qm,t)=O which reduce the number of degrees of
freedom. Two important causes of such constraints are kinemati-
cal loops and the prescription that one or more of the variables
q1, ••• ,qm be specified functions of time. If constraint equa-
tions are given as part of the input data MESA VERDE will gene-
rate a minimal set of equations of motion for the reduced num-
ber of degrees of freedom. For closed kinematical loops the
functions f(ql, ••• ,~,t)=O are not even required.

MESA VERDE can also treat nonholonomic constraints due to roll-


ing conditions or to other causes.
345

2.3. Force Elements: Force elements are springs or dampers or


actuators which connect bodies of a system. They may be linear
or nonlinear. Forces exerted by actuators may be given func-
tions of time or of other variables. They may also be deter-
mined by differential equations which govern a control system
built into the multibody system. MESA VERDE allows any kind of
force law.

For other capabilities of MESA VERDE see the appendix to this


handbook.

3. Input Data for MESA VERDE


Since MESA VERDE generates symbolical expressions for subse-
quent numerical calculations in separate programs one must dis-
tinguish input data for MESA VERDE from input data for these
numerical programs. The MESA VERDE input data to be supplied by
the program user is very simple. As an example we consider the
robot in Fig.4. It is composed of bodies 1, 2 and 3 (tower, arm
and hand) and of joints 1, 2 and 3 (two cylindrical and one re-
volute joint) with five joint variables q1, •.. ,qS. Three motor
torques and two motor forces act along the joint axes. All bo-
dies are subject to weight. Body 0 is inertial space. The com-
plete list of input data is shown on the next page. Underscore
designates key words. Text following the symbol # is comment
written by the program user.

Fig.4: Robot
346

* input for bodies and for external forces


body 0 alias inertial
motion zero
body 1 alias tower
force 1 ( z ) frame inertial
*
weight
body 2 alias arm
force 1 ( z ) frame inertial
*
weight
body 3 alias hand
force 1 ( z ) frame inertial weight
marker 1 *
input for joints
*joint 1 ~ transzrotz # cylindrical joint; z-axis
from inertial to tower
torque 1 (z) -- *
motor torque about joint axis
joint 2 ~ transyroty # cylindrical joint; y-axis
from tower to arm
torque 1 (yr- *
motor torque about joint axis
joint 3 ~ rotx *
revolute joint; x-axis
from arm to hand
torque 1 (X) *
motor torque about joint axis
* input for force elements
force element 1 from inertial to tower
force element 2 from base to arm
** motor forces
translations
for
in joints
* libraries for joint kinematics and for motions of body 0
include (joint.lib.)
include (motion.lib.)
* end of input data

The words "inertial", "tower", "arm" and "hand" as well as all


comments are the program user's own words. The underscored key
words have the effect that MESA VERDE automatically defines
symbols for all system parameters, for all joint variables and
for the first time derivatives of all joint variables. In what
follows this is explained in more detail. Each entry body re-
sults in the definition of symbols for mass, moments and pro-
ducts of inertia (products of inertia are not defined if an
additional key word indicates that principal axes of inertia are
used). The entry "force 1 (z) frame inertial" in combination
with body 3 results in the definition of one symbol representing
the z-component in inertial space of an external force labeled
347

1 on body 3. The entry marker 1 in combination with body 3 re-


sults in the definition of symbols for the three cartesian co-
ordinates of a marker point labeled 1 in the body 3 frame of
reference. A marker is a point fixed on the body for which MESA
VERDE generates symbolical expressions for position, velocity
and acceleration relative to body o. ~ rotx together with
the library (joint.lib.) results in the definition of symbols
for six kinematical quantities for a revolute joint whose axis
is parallel to the x-axes of the two coupled bodies. What these
six quantities are will be explained in Chap.4.2. The input for
all three joints together also results in the definition of the
symbols q(l), ••• ,q(S) for the joint variables and of the symbols
qdot(l), ••• ,qdot(S) for their first time derivatives. The entry
"from arm to hand" associated with joint 3 expresses the user's
own decision that q(S) is the angle of rotation of the hand re-
lative to the arm and not vice versa ("from arm to hand" de-
scribes the arrow shown in Fig.6). The entry "torque 1 (x)" re-
sults in the definition of one symbol for the internal torque
about the joint axis x. The torque is applied with opposite
signs to the arm and to the hand (with positive sign to the
from body). Analogously, the entry "force element 1 from tower
to arm" results in the definition of a symbol for the scalar
magnitude of an internal force labeled 1 which is applied with
opposite signs to the tower and to the arm (with positive sign
to the from body). This entry also results in the definition of
symbols for the constant cartesian coordinates of the points of
application of these forces on the two bodies. The direction of
the force need not be specified. It is given by the vector con-
necting the two points of application. This vector together
with its length and with the time derivative of its length are
automatically generated by MESA VERDE.

These comments on the input data for MESA VERDE also explain
what the input data for subsequent numerical programs will be.
Such input data is necessary for all symbols defined by MESA
VERDE. Many symbols represent constant system parameters. Many
others are components of vectors in specified frames of refer-
ence (specified by the body name following the key word frame
in the input above). Many symbols represent functions and must
348

be defined as such. As an example suppose that the "force ele-


ment 2 from tower to arm" is a linear spring with stiffness k
and with unstretched length lo' Then the scalar magnitude of the
force would be the function k(l-lo) of the distance l between
the attachment points of the spring. This length is part of the
output data of MESA VERDE.

4. The Theory Underlying MESA VERDE


4.1. The Principle of Virtual Power: For a multibody system of
rigid bodies l=l, ••• ,n the principle of virtual power reads

n -+ ~:!: -+ -+-+]
r [or,·(m.r.-.t".)+Ow.·(J.w.-M,,") =0 with ( 1)
i=l ~ ~ ~ ~ ~ ~ ~ ~

.
:;.
.
(m.~ mass, J.~ inertia tensor, r.~ absolute acceleration of center
of mass, ~i absolute angular acceleration, orivirtual change of
absolute velocity of center of mass, o~. virtual change of ab-
:!: ~-+
solute angular velocity, .t"i resultant force and Mi resultant
torque about the center of mass; all quantities for body i). It
should be noted that constraint forces and t?rques in joints do
not appear in (1) since they are normal to or i and to o~i' re-
spectively. (1) is given the matrix form

(2 )

where m and J are (nxn) diagonal matrices of masses and of in-


- - ~ ~ ~ 4 ~ ~*
ertia tensors, respectively; o~, ~, ~, o~, ~ and ~ are column
matrices of n vectors each and the exponent T indicates trans-
position. For more details on these as well as on the following
equations the reader is referred to Wittenburg [1,2].

According to Chap.2.2 the position of a multibody system is de-


scribed in terms of joint variables. Let these be arranged in
.
t h e co 1 umn matr~x~. Th e quant~t~es
.. -+ ~ -+
~, ~, ~ an
d-+
~ of (2) are

linear forms
-+ -+
. "* ( 3a)
~=~2~+~2(t)

(3b)

with as yet unknown coefficient matrices ~1' &1' 11 , ~2' &2 and
349

12 ,These matrices will be determined in Chap.4.3. Substitution


of (3) into (2) yields

(4 )

A -!!

If the joint variables are not subject to constraint equations


then follows

(5 )

This is the desired minimal set of differential equations of


motion. If there are constraint equations then (5) does not
follow from (4). As was said in Chap.2.2 constraint equations
reducing the number of degrees of freedom have the general form

(i=l, ... , \) ) (6 )

where m is the total number of joint variables and \} is the


number of constraint equations. An example: In the mechanism in
Fig.5 the variables ql' q2 and q3 are subject to the indepen-
dent constraint equations

(7a)

(7b)

Fig.5: Mechanism with one


degree of freedom. This is
a section of the system of
Fig.S
350

The second total time derivative of (6) represents v linear


equations for q1""'~ with coefficients which depend on
q1, ... ,qm and on t. Thus, v elements out of g can be expressed
in terms of the remaining m-v independent elements which form
a column matrix g*. The v expressions are combined with the
identity relationship ~*=g* in the matrix equation

(8a)

which implies

(8b)

D is an [mx(m-v)] matrix and g is an (m x 1) column matrix. Sub-


stitution of (8) into (4) results in

(9 )

whence follows

with (10 )

This is the desired minimal set of differential equations for


the m-v independent joint variables g*. The matrix ~* depends
on all q1, ... ,qm and -B* also on Q1, ... ,qm . The dependent ele-
ments among these are substituted by means of (6) and (8b).

Constraint equations caused by closed loops are, in general,


much more complicated then in the example (7). It is therefore
important that MESA VERDE can generate the matrices ~* and ~*
without the constraint equations (6). Instead, only the matri-
ces ~1' ~1' ~2 and ~2 are required which are necessary for (5)
anyway. They are needed only for systems without closed loops.
These matrices are the subject of Chaps.4.2 and 4.3.

4.2. Kinematics of Individual Joints: Fig.6 depicts two bodies


coupled by joint j. The kinematics description of a joint con-
sists of six quantities. For many types of joints they are pro-
vided automatically by the library (joint.lib.) in the input
data file of MESA VERDE (see Chap.3). The definition of the six
quantities requires the following decisions to be made first:
351

articulation point

~ body i-(j)
i+(j)

Fig.6: Two bodies coupled by joint j

(i) choose as many joint variables as there are degrees of


freedom in the joint; (ii) choose on each body at the center of
mass a body-fixed reference frame (these frames are referred to
by the key word frame in the input data); (iii) choose one body
as reference body and the other as body moving relative to the
reference body; in the figure the choice is indicated by the
arrow which points from the reference body to the other body
(hence the key words from to in the input data); in what fol-
lows the index of the from body will be referred to as i+(j)
and the index of the to body as i-(j); (iv) choose a point
fixed on body i (j) as so-called articulation point for joint j;
its location on body i-(j) is defined by the vector c.-(.) .•
l. J J
Three of the six kinematical quantities are the location vector
~ • .... -+
ci+(j)j' the velocl.ty Vj and the acceleration a j of the articu-
lation point relative to the reference frame fixed on body
i+(j). The other three are the (3 x 3) direction cosine matrix G.
-J
relating the two body-fixed reference frames, the angular velo-
city nj and the angular acceleration tj of body i-(j) relative
to body i+(j).

The decisions to be made by the program user should be such


that these six quantities are the simplest possible functions
of joint variables. An example: For the cylindrical joint in
Fig.l the body on the left is chosen as body i+(j), the point
at the tip of the z-arrow is chosen as articulation point and
the two reference frames are chosen such that the joint axis is
352

parallel to the z-axis of each of them. Then the six quantities


are
.
~ ].
cos¢ sin¢
..,. ..,. ..,. ..,. ..,. ..,. .. ..,.
ci+(j )j=a+ze z ' v.=ze , a.=ze , G.= -sin¢ cos¢ (11)
n J • ..,. z ..,.J .. ..,. z -J
j=¢e z , E:j=¢e z , 0 0

For any type of joint and for any choice made by the program
user ~j' ~j' nj and ~j have the forms

(12a)

( 12b)

In these expressions the q~ are joint variables, kj~ and Pj~


are vectors which do or do not depend on the joint variables
and ~j and
J
w.
depend on the
..,.
qi
if they are not zero. The
..,. ......,...,.
matrix G. and the vectors c.+( ')., c.-(.)., k. o , P'o, s. and
..,. -J 1 J J 1 J J J '" J '" J
w. are part of the input data. These quantities are automati-
J
cally produced by the library (joint.lib.) once key words de-
fining the joint are provided. An example: The key words
joint 1 ~ transzrotz produce the vectors and the matrix Qj
shown in (11). The library can be expanded by the program user
to include additional types of joints.

4.3. Kinematics of the System as a Whole: The absolute angular


velocity ~i of an arbitrary body i=l, ... ,n is the sum of the
absolute angular v.elocity ~o(t) of body 0 and of the relative
angular velocities +nj or -n j of all joints located between the
bodies 0 and i. This is expressed in the form
..,...,.
1 0
n
w . =w (t) - LT ..
j =1 J 1 J
n.. (l3)

The scalar Tji (j,i=l, ... ,n) is +1 or -lor O. It is +1 (-1) if


joint j is located between bodies 0 and i and if the arrow de-
fined in Fig.6 is pointing toward body 0 (toward body i). Other-
wise Tji=O. With (13) the column matrices ~ and n of all n an-
gular velocities are related by the equation
..,. ..,. T-:!:
w=w (t) 1-T II (14)
- 0 - --
353

with the matrix -T of the elements TJ~


.. and with a column matrix
1 of n unit elements. Because of (12) g has the form g=ETg
where E
is a matrix containing only vectors Pj~ and zeros. Hence

Comparison with (3a) yields two of the six matrices:

(16)

Starting point for ~1 and 11


is an expression for the veloci-
ty of the body i center of mass. In analogy to (13) we have
• •~
~
n •
~

~
r. =r (t) - I: T .. (c. + ( . ) . -c. - ( . ) . ) . (17)
~ 0 j=l J~ ~ ) ) ~ ) )

With

~ -+- -+
and ci-(j)j=wi-(j)xci-(j)j (18 )

follows in analogy to (14)

with a matrix C whose elements are the vectors C.. =+c .. for i=
- ~J,. ~J
i+(j), C.. =-c .. for i=i-(j) and C.. =a else. With ~ from (15)
~~ T~J ~J
and with y=& ~ from (12a) one finally gets

t=jo(t)l-!T£TXWo(t)l-!T~Tg+!T£TX!TETg (20)

and by comparison with (3b)

(21 )

The matrices £1 and £2 are found by differentiating (15) and


(20) once more with respect to time. For details see [1,2].

With the expressions for the matrices ~1' £1' 11 , ~2' £2 and 12
the matrices ~ and ~ in (5) and ~* and ~* in (10) are expressed
in terms of joint variables and of known functions of time.
MESA VERDE carries out the matrix multiplications.In this pro-
cess the sparseness of the matrices as well as recurrence rela-
tionships indicated by the factors ! and !T are used. The va-
rious vectors in the matrices are transformed into a common re-
354

ference frame by means of the direction cosine matrices Qj


defined for the joints. The resulting symbolical expressions
are kept short by expressing them in terms of a hierarchy of
substitution variables which are generated in the process.

4.4. Constraint Forces and Torques in Joints: MESA VERDE ge-


nerates expressions for constraint forces and torques in joints
for systems with and without closed loops. In this paper only
system without closed loops are discussed. All bodies i=l, .•. ,n
of a multibody system are isolated by cutting all joints. The
constraint forces in joint j are distributed over the contact
area of the two bodies i+(j) and i-(j). Let the distributed
forces be reduced to a single constraint force Fj at the arti-
culation point and to a single constraint torque Mj. Let +Fj
and +M~ be applied to body i+(j) and -F~ and -M~ to body i-(j).
Define J S ij =+l for i=i+(j), Sij=-l for i;i-(j) a~d Sij=O else
(i,j=l, .•• ,n). With these quantities Newton's and Euler's laws
for body i read
... ... n ... c ~ ... n ......c ... c
m.r.=F.+ ~ S .. F., J. w. =MH ~ S .. (c .. xF. +M. ) (i=l, ... ,n)
1 1 1 j=l 1J J 1 1 1 j=l 1J 1J ] ]
(22 )
:.;. ~ ~ -+ • •
where mi , r i , Fi , J i , wi and MI are the same quant1t1es as in
(1). The sets of n equations each are written in the matrix
forms
~::!: ... c
mr=~+SF , (23 )
... ... c ...c
f is the same matrix as in (19) and [ and ~ are the column
matrices of all constraint forces and torques, respectively. An
important theorem states that! is the inverse of ~ (see [1]).
This allows to solve (23) for and M explicitly: fC C
(24 )
:;. -+
~ and ~ are known in terms of ~ from (3). Thus the numerical
integration of (5) yields also fC and ~c.
355

5. Illustrative Examples
All authors of this handbook were asked to simulate the robot
shown in Fig.4 and the planar seven-body mechanism shown in
Fig.8.

5.1. Robot: Fig.4 shows the inertial reference frame xo,yo,zo


and the reference frames xi'Yi,zi attached to the centers of
mass of bodies i=I,2,3. Also shown are the joint variables ql'
••• ,qs· In the configuration Ql=Q2=q3=q4=q5=0 the reference
frames of bodies 0, 1 and 2 coincide and the one on body 3 is
parallel to the other three. System parameters: The distances
of the centers of mass of bodies 2 and 3 from the Qs-axis are
0.5m and O.Osm, respectively. The body masses and the moments
of inertia are

body m [kg1 Ix Iy Iz [kgm2]

1 250 90 10 90
2 150 13 0.75 13
3 100 4 1 4.3

Motor torques [Nm] and forces [N] associated with the variables
the following functions of time t [s]:
o :iit:ii0.5
0.s<t~1.5 applied to body 1
1. s<t:i2. 0
673.t - 508 o ~t:ii0.5
M2={ 148·exp[-5.5(t-0.5)]+8 O. s<t~1. 5 applied to body 1
240 1.5<t~2.0

36.t + 986 o ~t~0.5


F ={ - 2 0.s<t~1.5 applied to body 2
3 -1019 1. 5<U2. 0

o ~t~0.5
O. 5<t:i1. 5 applied to body 3
1. s<t~2. 0
Initial conditions are Q1o=2.25m, Q2o=-0.5236rad, Q30=0.7sm,
Q4 o =Q5 0 =0 and q.~o =0 (i=I, ••• ,s).

The input data for MESA VERDE as well as for the subsequent nu-
merical integration program was discussed in Chap.3. Of the re-
sults only Q1(t) is shown (see Fig.7).
356

4.5 t ql[m]

4.0

3.5

3.0

2.5 t [s]
2.25
0 0.5 1 1.5 2 Fig.7

5.2. Planar Seven-Body Mechanism: The mechanism in Fig.8 has a


single degree of freedom. As independent variable the crank
angle ql is chosen. MESA VERDE generates a single differential
C

A
x

Fig.8
357

equation of motion in the form (10) which in this case reads


A*q1=B* with scalars A* and B*. (10) resulted from the equa-
tions of motion (5) for a system without closed kinematical
loops and from constraint equations (6) which represent the
loop closure conditions. There are many ways of producing from
Fig.8 a system without closed kinematical loops. A simple way
is to eliminate the support at point B and to disconnect bodies
4 and 6 at their right-hand side end points from the system and
from one another. This produces two double pendulums (bodies 5
and 4 and bodies 7 and 6) and a triple pendulum (bodies 1, 2
and 3) which are connected to body 0 (represented by the sup-
ports A and 0). The MESA VERDE input data for this system is as
simple as the one for the robot discussed in Chap.3. To give
only one detail the input data for joint 3 between bodies 2 and
3 reads

joint 3 ~ rotz from bar2 to bar3 (25 )

When the support at B is reconstructed the triple pendulum ta-


kes the form of Fig.5. For this mechanism the constraint equa-
tions (7a,b) were formulated. When body 4 is re-attached to the
system bodies 5, 4 and 3 together represent the same type of
mechanism as the one in Fig.5. Consequently there exist two si-
milar constraint equations for q5' q4 and q3' The same argument
yields two more constraint equations of the same type for q7'
q6 and q3' For the six constraint equations the matrices £ and
li of (8a) must be formulated. This is simple. As to input data
one must again distinguish the symbolical program MESA VERDE
from subsequent numerical programs. In the MESA VERDE input
data the dependency of a joint variable, say q3' on q1 requires
not more than to add the line "constraint (rz) to joint 1 (rz)"
to the line (25). This results in the definition of symbols for
the elements in the third row of the matrices Q and li. The
actual functions representing these elements are part of the
input data of subsequent numerical programs.

The system parameters for the mechanism of Fig.8 including the


driving torque and initial conditions can be found elsewhere in
this book. The numerical results are illustrated by the dia-
grams for q1(t), q1(t) and q1(t) in Fig.9.
500

t[10- 2 s]
0
0 1 2 3

<ill rad/s 2 1
4'10 5

3.10 5
2.10 5

1.10 5
t[10- 2s]
0
1
-1,10 5
-2,10 5

-3.10 5 Fig.9
359

In the mechanism with the prescribed link lengths the relation-


ships between Q2, ... ,q7 on the one hand and ql on the other are
without much interest. More interesting from a kinematics as
well as from a dynamics point of view is the combination of
link length shown by the solid lines in Fig.10 (~2=~3=AD=~, ~l=
~/3, ~4=~5=~6=~7=5~/4). Dashed lines show the same mechanism in
two more positions. In one of them the bars 1, 2 and 3 are
in one straight line. In this position inertia forces and ex-
ternal forces decide in which of two possible directions the
point D moves when the crank angle is changed. Motions are pos-
sible which go through one complete cycle every two revolutions
of the crank. Fig.ll shows simulation results obtained for ql(t)
and ql(t) for this kind of motion under the following condit-
tions: Body centers of mass not along the drawn bar axes;
spring as in Fig.8; weight on all bodies; motor torque = 0;
initial velocity sufficiently high for-a cOlnplete cycle.

/ 2 E 1

/
/
/
'-/

Fig.10
360

Fig. 11

Literature:
1. Wittenburg,J., The Dynamics of Systems of Rigid Bodies,
Stuttgart: Teubner 1977, russ. and chin. transls.
2. Wittenburg,J., Analytical Methods in Mechanical System Dyna-
mics, appeared in Haug,E.J.(Ed.), Computer Aided Analysis
and Optimization of Mechanical System Dynamics, NATO ASI ser.
Springer 1984
3. Schmidt,A.,Wolz,U., Simulation komplexer dynamischer Systeme
mit dem Programmpaket MESA VERDE am Beispiel eines Fahrzeug-
ersatzsystems, Automobil Industrie 31(1986),305-317
4. Schmidt,A., Methoden und Werkzeuge zur Erstel1ung von fahr-
dynamischen Simulationsmodellen, Automobil Industrie 34
(1989),83-89
ADAMS - Multibody System Analysis Software

R. R. RYAN *
Mechanical Dynamics, Inc.
Ann Arbor, Michigan 48105, USA

Abstract
Multibody system analysis software forms an integral part of modern mechanical computer aided
engineering (MCAE) practice in providing a means to simulate the operating performance of a
product design prior to building a prototype. In this way, it reduces product development costs,
allows evaluations of more alternative designs, and shortens the time it takes to bring a new
product to the marketplace. This paper reviews the genesis, application, technical features,
underlying analytical formulation, and future prospects of the most widely used multibody
system analysis software package, ADAMS.

I. Introduction

In the process of designing and analyzing complicated mechanical systems, a number of fun-
damental questions are often raised concerning the intended and actual behavior of the sys-
tem de~igns being studied. When the systems involve parts and subassemblies that can artic-
ulate with respect to one another to allow large overall rotation and translation, such as the
four systems shown in Figure 1, many of the questions raised by designers and engineers fo-
cus on possible motions of the systems. For instance, for the satellite system shown in the up-
per left portion of the figure, the effect that the astronaut/mechanic would have on satel-
lite attitude motion during maintenance was of interest. For the jet aircraft ejection se-
quence depicted in the upper right, the engineering team developing the rocket motors at-
tached to the ejection seat was interested in designing a rocket motor burn profile that would in-
sure that the pilot and seat as well as the canopy would avoid hitting the tail of the air-
craft during an emergency operation occurring in an environment involving unsteady aerody-
namic loads. They needed a way of evaluating the effect of changes in burn profile on seat tra-
jectories. In the case of the vehicle and driver included in the lower left, a suspension design en-
gineer was interested in determining the response and settling time of the initial vehicle de-
sign subsequent to a driver-imposed lane change maneuver. Lastly, for the front-end loader il-
lustrated in the lower right portion of the figure, an engineer needed to know the load capac-
ity required of the hydraulic cylinders for the range of motion shown.

• Vice President, Product Development


362

Fig. 1. Examples of Multibody System Models

These informational needs and concerns are typical in the design cycle of any product that is in-
tended to be subjected to significant motion. Fortunately, present-day multibody sys-
tem analysis tools, such as the one to be described in this paper, have made the pro-
cess of answering these questions relatively straightforward . Such tools, which were unavail-
able thirty years ago, have revolutionized the way engineers perform kinematic, static, and dy-
namic analyses of mechanical systems.

For nearly two hundred years after the pioneering technical advancements of Newton and La-
grange, the process of analyzing systems of rigid bodies undergoing overall motions involv-
ing large-amplitude rotations remained an intimidating undertaking. First, one had to develop
a mathematical model involving idealized components. Then, one was faced with the daunt-
ing task of manually formulating equations governing the behavior of the model. This typ-
ically involved a substantial amount of tedious algebraic manipulations, was prone to er-
rors, and was virtually impossible to accomplish for any system with more than just a few de-
grees of freedom. Lastly, if an analyst was skilled enough to complete the first two tasks, the fi-
nal obstacle of cleverly finding a closed-form solution of the equations using tabulated mathe-
matical functions was difficult enough to restrict the entire process to only the most skilled aca-
demicians addressing the very simplest mechanical systems.
363

The advent of the digital computer brought forth a new dimension in engineering problem solv-
ing. The computer not only made it possible to routinely solve systems of mathematical equa-
tions, but also opened up the realm of automatically formulating equations of motion gov-
erning systems described by analysts and designers. This dramatic improvement in computa-
tional capabilities prompted the beginnings of a new technical field of study referred to as multi-
hody system analysis. The new field focuses on more efficient and accurate techniques to har-
ness the power of the digital computer to formulate and solve equations governing large over-
all motions of complex rigid and flexible mechanical systems. As in the field of struc-
tural finite element analysis, the product of focused research in the multibody system anal-
ysis field is often a software system embedding the new capabilities developed. The ob-
jective of the present paper is to provide an overview of one such software system, named
ADAMS, which has evolved from many man years of research and development to be-
come the world's most widely used software for large-displacement kinematic, static, and dy-
namic analysis.

The paper is organized as follows. The section that immediately follows this introduction defines
the scope of the ADAMS Software System and describes its origin. Section three outlines the
domain of commercial application of ADAMS and summarizes problem areas where ADAMS has
been used extensively. In section four, the detailed program features of ADAMS are itemized and
described briefly; while section five provides a short overview of the analytical and computational
methods that underlie ADAMS. Development directions for ADAMS are reviewed in section six,
followed by a synopsis of various test example problems used to demonstrate program capability
and to provide results verification. Finally, the paper concludes with acknowledgements and
technical references.

II. Background

ADAMS, which is an acronym for Automatic 12ynamic Analysis of Mechanical B.ystems, is a soft-
ware system consisting of a number of integrated programs that aid an analyst in perform-
ing three-dimensional kinematic, static, quasi-static, or dynamic analyses of mechanical sys-
tems. The mechanical systems may comprise any number of rigid or flexible bodies that are in-
terconnected by joints allowing for arbitrarily large relative rotational and translational mo-
tions and that are subjected to any variety of internal or external forces or prescribed mo-
tions. There is no restriction as to topological interconnection of bodies. Thus, chain, tree, clus-
ter, closed-loop, and multiple closed-loop configurations are treated in an identical fash-
ion. The system identifies redundant constraints and eliminates them automatically.
364

The input to the program consists of part geometry and mass properties, reference frame def-
initions, body types, body compliance descriptions, topological and analytical constraints,
force and motion actuator and sensor models, elastic restraints and connectors, control
laws, and graphic entities. Typical output includes the time-dependent positions, veloci-
ties, accelerations, forces, and values of user-defined variables. This output can take the
form of tabulated data, two-dimensional plots, still-frame system configurations, superim-
posed images of the system at various instants in time, and continuous graphic aDlma-
tions of system motion. More details of the features of ADAMS are included in sec-
tion four.

The ADAMS software system encompasses ten separate, but integrated, programs as shown in
Figure 2. The ADAMS program is the primary analysis engine providing the capabilities for
general kinematic, static, and dynamic analyses.

ADAMS
ADAMS
Sollwlre
SYltem
ADAMS
...- - - - . I I I/ Klnemltlel

Fig. 2. ADAMS Software System Components

ADAMS/Kinematics and ADAMS/Statics are subsets of the ADAMS engine and, as such, are
embedded in many turnkey MCAE software systems to provide integrated kinematic and static
mechanism analysis capabilities within the framework of a CAE database. They are , to be
precise, libraries of callable subroutines rather than stand-alone software packages.

ADAMS/Modal is a product that automatically linearizes the nonlinear ADAMS equations of


motion about a nominal operating state defined by the user. The program provides the ability
to either transfer this linearized state-space plant model to a control system design package for
control law formulation or to solve the classical eigenvalue problem associated with the linearized
equations . When the latter choice is made, ADAMS/Modal produces natural frequencies and
complex mode shapes of the linearized system, which are particularly useful for correlating a
system model with experimental modal analysis results. The program requires input in the form
of an ADAMS model and provides output in the form of tabular data, static or animated mode
shapes (see Fig. 3), open- and closed-loop pole/zero plots, and real and imaginary eigendata
plots .

The ADAMS/Post software consists of a nearly device-independent graphic post-processor for


365

SLA Suspension Bounce and TIre Modes

Fig. 3. ADAMS/Modal and ADAMS/Tire

plotting two-dimensional data and producing still-frame pictures of the system, as well as three
device-specific continuous graphic animation programs for the Evans & Sutherland PS300 and
390, the HP9000/300 and 800, and the Silicon Graphics Iris workstations . In addition, a data
conversion module is available that transforms ADAMS tabular output into the proper format
to be read, manipulated, rearranged, and displayed (plotted) by popular IBM PC and Apple
Mac II spreadsheet and graphics packages. All of the images appearing in Figure 1, as well as
most of the other images and plots included in the remainder of this paper, are end-products
of modules of ADAMS/Post.

ADAMS/DMP is a data modification program allowing for the formation and use of macros
to automatically create and modify large, complicated data sets that may be used as input to
ADAMS . The program provides for the systematic creation of symmetric and anti-symmetric
assemblies based on user-supplied parameter specifications.

The ADAMS/Tire program provides a capability for modeling vehicle tire forces to be included
in vehicle handling, ride quality, or durability analyses. The user enters road profile data and
tire properties and applies traction and braking forces to the tire; the program then determines
longitudinal reaction forces, lateral sliding forces, and all resulting torques to be applied to the
attached vehicle (Fig. 3).

ADAMS/MOST (see top of Fig. 4) is a mechanism optimal synthesis tool that performs di-
mensional synthesis by varying an ADAMS model iteratively to minimize the deviation be-
tween a desired mechanism path and the existing mechanism path . The program accepts a mech-
anism as described in ADAMS, and directs the user to specify tracer points (indicated by ®)
on the mechanism to allow the kinematic solver to sketch out the true path of the mecha-
nism. The user then adds target points (marked by +) through which the tracer points are sup-
posed to travel. Finally, the program solves an optimization problem to iteratively alter joint 10-
366

cations and link dimensions in order to define a new ADAMS mechanism model that accom-
plishes the design objective to the extent possible.

IBO . OOO ~
_~========~~L~e~r~L ____ __ __ __--,
~ ~~ ~

120.00 0 . . . . •• :- . • . •. ; .. .. .• :- . .
W
h
e
e
1
60 . 000 .. :...... :. e •• •• .: ..... .
C
e
n
l
e
r 0.000 - ... ,: ... . .. ; ... . ..:..... .

- 60 . 000

••
) -120.000
. . .... .. ... . .........
- -.-
. .. .... '

-I BO . 000 +--""';'---;---;"- -i - --i--- ,--I


10.0000

Fig. 4. ADAMS/MOST and ADAMS/Suspension

ADAMS/ Android and ADAMS/Suspension are two prototype software programs, which are cur-
rently being converted into commercial form. ADAMS/ Android provides a method for eas-
ily modeling a human body undergoing a variety of isolated motions or motions involv-
ing interaction with a mechanical system. Input to the program consists of age, sex, height
and weight of the human as a percentile of the population, the desired initial configura-
367

tion, and the time-dependent motions to be applied to the system. The program provides
all of the necessary geometry, mass, inertia, and connectivity data to ADAMS along with ini-
tial part locations and joint motion definitions so as to allow for full kinematic, static, and dy-
namic analyses of man-machine systems as illustrated in Figure 1. ADAMS/Suspension is a pro-
gram that allows an analyst to very simply build a full ADAMS model of a standard or non-
standard automotive or truck suspension by using input terminology and standard compo-
nent elements that are familiar to suspension designers. The program then automatically in-
vokes ADAMS to calculate twenty-nine different suspension characteristics (see lower por-
tion of Fig. 4) as a function of vertical wheel travel as the suspension moves between
the jounce (lowest) and rebound (highest) positions. Typical characteristics calculated in-
clude caster, camber, toe-in, scrub radius, ride steer, wheel rate, etc. These characteris-
tics are provided to the user in tabular and plotted form.

Combined, these ten programs constitute the ADAMS software system, which is one of the old-
est and most developed three-dimensional, type-variant, commercial multibody software sys-
tems available today. The first tools of this kind were conceived in 1964, starting with the dy-
namic formalisms of Hooker and Margulies[l] and Roberson and Wittenburg[21. These devel-
opments were mainly targeted toward aerospace multibody systems having open-loop, tree-type
topologies. At nearly the same time, planar and spatial multibody programs (KAM and COM-
MEND) were being developed by Cooper et ad 3] and Knappe[4] to perform kinematic anal-
yses of l?oth open- and closed-loop industrial linkages. Together these parallel efforts pro-
vided the framework for developments by Chace and Korybalski[5] of the formalism underly-
ing the two-dimensional kinematic and dynamic multibody analysis code DRAM (Qynamic
Response of Articulated Machinery), that represented the first generalized software pro-
gram to provide time response of multifreedom, constrained, open- and closed-loop, me-
chanical machinery undergoing large-displacement behavior. Four years later, in 1973,
Orlandea[6] broke new ground in the development of a three-dimensional, type-variant, sim-
ulation program based on electrical network analogs, newly-developed sparse matrix process-
ing, and advanced stiff integration algorithms. This program, which used absolute coordi-
nates and an equation assembly procedure similar to most finite element programs, was a pre-
cursor to the present ADAMS software.

Much of the research and development work mentioned above, as well as a profusion of con-
current multibody research and development carried out by many other leading researchers
in the field, was directed at extending and improving the efficiency of the underlying for-
malisms. These efforts often resulted in public domain software that was not well-suited to
widespread general commercial usage.
368

In 1977, a U.S.-based private corporation , Mechanical Dynamics, Inc., (MOl), was formed to
further develop multibody software and to distribute it commercially as an integrated element
of corporate Mechanical Computer Aided Engineering (MCAE) software systems. MDI has its
worldwide headquarters in Ann Arbor, Michigan, where it enjoys close affiliation with a number
of the outstanding research centers existing within the University of Michigan academic system.
The company began by redesigning and releasing a two-dimensional software program that was
a successor to the university-developed DRAM program.

With the help of a dedicated team of multibody experts, computer interface development ex-
perts, technical writers, and hardware specialists, MOl released a fully-functional, commer-
cial, three-dimensional, large-displacement, multibody kinematic, static, and dynamic sim-
ulation tool, named ADAMS, in 1980. Since then, over forty man-years of develop-
ment efford7] has been expended in dramatically increasing the structure and capabili-
ties of the proprietary software to address active control systems, part flexibility, static anal-
ysis, impact, linearization and modal analysis, pre-
and post-processing, complicated internal and envi-
ronmental forces of both a linear and nonlinear na-
ture, as well as complex joint types and nonstan-
dard constraints. This work has led to four major re-
visions and releases of the software since its commer-
cial debut . Along the way, many other auxiliary soft-
ware programs were developed and released to ex-
pand the applicability of the code. The continual en-
11184 11185 1986 1987 1!l88 1 !l8!1
hancement of the software has led to a steadily in-
creasing base of commercial and university instal-
Fig. 5. MDI Software Installations
lations, as shown in Figure 5. Major contribu-
tions to the development of this software were provided by Mr. John Angell, Dr . Nicolae Orlan-
dea, Dr. Donald Calahan, Dr. Milton Chace, Mr. Rajiv Rampalli, Dr. David Benson, Dr. Thomas
Wielenga, Dr. Joseph Whitesell, Mr. Michael Steigerwald, Mr. Jerry Green, Dr. Vikram So-
honi, Mr. Kristen Overmyer, Mr. Jeffrey Flinn, Mr. Mark Zykin, Dr. Liang Tang , and Dr. Robert
Ryan .

III. Applications

Before the details of the features and formulations of ADAMS are discussed, an overview of
the commercial applicability of the software will be presented. This will begin with a client
classification indicating who uses the software, what they use it for , where they use it, when
they apply it, why they require its capabilities, and how they employ it in the MCAE process.
369

Following this is a breakdown of the applications into general categories.

Typical users of ADAMS software include engineering analysts and designers with educational
backgrounds in physics, mechanical engineering, aerospace engineering, or mathematics . A
significant percentage of these users have advanced graduate degrees in one or more of the fields
mentioned and have studied rigid-body mechanics at some point in their career. For individuals
to use the programs effectively, they need only be able to physically describe a mechanical
system's geometry, mass, inertia, compliance, damping, and external forces in terms of idealized
elements and then be able to interpret kinematic and kinetic output results.

Figure 6 provides an indication of what types of systems are most frequently analyzed with
ADAMS. As shown, over 40% of the software license revenue is obtained from automotive man-
ufacturers or suppliers. Roughly one-quarter of the license
revenue comes from aerospace/aeronautic com-
panies, while the rest is split between . % 3% 1%

general machinery manufacturers, con-



0
Automotive


struction and agricultural machinery Aerospace
producers, electro-mechanical device Machinery
16'4 ~ Electro-Iv'ech.
manufacturers, universities, and var-
B Agr. & Const.
ious other organizations. The soft- G Other
ware is used extensively in more than 0 University

twenty countries in North America, Eu-


rope, and Asia. Companies that use the
code are, more often than not, very large or-
ganizations employing hundreds or thousands of engi- Fig.6. ADAMS User Base
neers and are often classified in the international For-
tune 500.

The engineering development phase in which ADAMS is most often required varies significantly
from one application to the next. In general, however, ADAMS is applied in one of three modes :
to predict characteristics and motion of a new design, to evaluate performance of an existing
design, or to reconstruct the operation of a hardware system exhibiting anomalous behavior.
Thus, ADAMS may be used at the outset of a design cycle to validate system concepts and to
obtain approximate loads, then again after detailed component design has been completed to
predict and refine system motion, and finally after full prototypes have been constructed and
the system has been manufactured.

ADAMS is used in a variety of configurations from a stand-alone product to a fully integrated


370

MCAE package. Many organizations have embedded ADAMS software into the heart of their
computerized engineering design procedures.

The rationale for relying on ADAMS is that it reduces the number of hardware prototypes
required by allowing for accurate computer-based predictions (simulations) of system behavior.
The software has been fully validated with an extensive library of example problems having
known solutions. By alleviating the need for specialized programming and debugging, quicker
turn-around on results can be obtained and overall project schedules can be shortened. The net
effect is that better mechanical system designs are produced for less cost with ADAMS.

To provide the reader with a clearer picture of the types of mechanical systems that have
been modeled and analyzed with ADAMS, the following few paragraphs describe specific ex-
amples from the general categories of automotive; aeronautics and astronautics; agricul-
ture, construction, and off-highway equipment; biomechanics; and general machinery and mech-
anisms.

Figure 7 illustrates a small subset of automotive systems modeled with ADAMS. The systems
shown include full vehicle· models with suspension linkages, torsion bars, stabilizers, struts,
steering mechanisms, drivetrains, engines, tires, cam and valve mechanisms, as well as electronic
controls for speed, braking, and variable-power steering. These systems are used to predict and
evaluate nonlinear, large-displacement, vehicle response to inputs from the following: drivers;
wind gusts; aerodynamic lift and drag; road imperfections affecting ride quality, handling, and
durability; and obstacles. References [8-12] discuss details of a few of these analyses. Also
shown in the figure is a full dynamic model of a motorcycle used to study handling over bumps
and to investigate specialized phenomena such as high-speed weave. Other automotive systems
often modeled, but not shown, include windshield wipers, convertible top mechanisms, sunroof
retraction devices, controlled seating systems, quick-disconnect fueling apparatus, door and
window mechanisms, trunk and hood articulation systems, and differential gearing assemblies.

Aeronautical systems provide perfect applications (see Refs. [13,14]) for ADAMS since, by
design, they typically undergo large overall motions involving coupled rotations and translations.
A few select aeronautical systems modeled by ADAMS are illustrated in Figure 8. These include
prop-driven aircraft, rotorcraft (helicopters), and jet aircraft whose dynamic performance is
predicted during take-off, flight, and landing maneuvers in order to insure stability, absence
of flutter characteristics, and proper durability. Modeled subassemblies include landing gear
and flexible rotor-blade/bucket assemblies, as shown, as well as guidance and control systems,
ailerons and rudders, turbine and impellers, hatch and safety systems, and weapon system
release mechanisms.
371

Fig. 7. Automotive Systems Modeled Using ADAMS


372

:
,,~------------~------~-----~----~--~~
Fig. 8. Aeronautical Systems Modeled Using ADAMS

Fig. 9. Astronautical Systems Modeled Using ADAMS


373

Fig. 10. Agricultural, Construction, and Off-Highway Systems Modeled Using ADAMS

Astronautical or aerospace applications include studies of orbital and attitude dynamics of satel-
lites, space transportation vehicles, interplanetary probes, and space stations. Launch, deploy-
ment, docking, retrieval, and maintenance of these systems are also typically analyzed. For many
of these systems, it is not easy to carry out appropriate experimental tests on earth; hence, simu-
lation provides one of the few cost-effective ways of validating the design and studying implica-
tions of possible failure modes. Figure 9 illustrates a space shuttle launch procedure stud-
ied to determine launch loads, a planetary model of the inner solar system used to pre-
dict the path of Halley's comet, a flexible dipole antenna/orbiter configuration analyzed to de-
termine the effect of antenna flexibility on overall attitude motion, as well as clamp and
boom docking mechanisms investigated for feasibility of complete docking. The space sta-
tion model shown was used to evaluate the effect of solar panel articulation on system ori-
entation; and the earth-orbiting communications satellite was analyzed to determine the in-
fluence of solar radiation (thermal heating) and atmospheric drag on system deformation dur-
374

ing orbit. For additional information regarding the use of ADAMS in aerospace systems, see ref-
erences [15-18] .

Many of the early applications of ADAMS involved agricultural[19j, construction[20j, and off-
highway vehicles as depicted in Figure 10. These systems require great durability; hence,
accurate load determination is paramount in the design process to insure meaningful results
from fatigue life predictions. ADAMS is the perfect tool to allow an engineer to model heavy
equipment, to subject the system to standard operating maneuvers as determined from field
tests and telemetry, and then to calculate the load path and magnitude of forces acting on all
components. The resulting forces provide the raw data for further stress and strain finite element
calculations. The systems shown in the figure include an inclined bulldozer model used in a
stability analysis, an articulating front-end loader studied to determine reach and interference,
a forklift system investigated for maneuverability, and a shovel assembly that provided for
hydraulic cylinder capacity determination. Also shown are a plow mechanism used to simulate
avoidance of imbedded rock and the extraction of surface rock, a tracked tank vehicle with a
controlled turret and gun that required a design that isolated terrain disturbances from the
gun pointing mechanism, a tractor modeled to evaluate and improve handling and ride quality,
a pair of railcars investigated in an accident reconstruction legal case to determine speed of
impact required to puncture the fuel tanker car, and lastly, an agricultural harvester assembly
that was studied to determine failure mechanisms.

Fig. 11. Biomechanical Systems Modeled Using ADAMS


375

Biomechanical systems are perhaps the most natural multibody systems, but, until recently,
they have not been extensively modeled because of the complexities involved with accurate
specification and management of the data defining such models . Figure 11 displays a few sample
ADAMS models of human bodies that were created by using the ADAMS/Android program to
obtain joint definition, mass and inertia properties, geometry, initial conditions, and prescribed
joint motions. The computer graphics included here illustrate a human body model which could
be used to study gait, a model of a human sitting in a chair[21J that provided data concerning
chair stability and response, and a human driver model shown in a vehicle crash simulation.

(~
Fig. 12. General Machinery and Mechanism Systems Modeled Using ADAMS

Figure 12 includes many other general mechanisms that have been modeled by ADAMS, but
that do not fall naturally into one of the previous categories. The handgun shown was modeled
to determine cartridge trajectories as well as to evaluate jamming problems. The block and
376

tackle and the manual lifting jack were analyzed to calculate mechanical advantage and to
determine loads. The Stirling engine model was used to predict motion and actuation of the
swash plate, while the juicer mechanism shown next to the machine tool was studied to insure
proper part alignment and machine operation. The figure in the lower right is a model of
a puppet's eyelid-opening mechanism actuated by a finger-pull. The system was modeled to
insure proper mechanical eyelid closure with a one-inch finger travel.

The systems shown and described above constitute only a small fraction of the mechanical
devices modeled and analyzed by ADAMS and DRAM in a commercial setting during the past
twelve years. The software has been employed to model systems containing as few as one part
or as many as a couple of hundred parts. Because of the systematic equation assembly process
employed, there is no software-inherent limit to the number of system degrees of freedom or
state equations that can be included in an ADAMS model. Recently-constructed ADAMS
models of automotive and railway systems have exceeded five hundred degrees of freedom and
have been characterized by more than ten thousand state equations. Complex phenomena such
as higher-pair contact, nonlinear flexibility, unsteady aerodynamics, discrete digital control,
flexible body deployment, cable routing, and impact are routinely treated with ADAMS. Apart
from commercial applications, the software has also been used in over fifty teaching and research
universities worldwide to assist professors in instructing students in rigid body mechanics.

IV. Program Features

A. Overview

ADAMS' primary advantage over its competitors lies in its generality, its extensive built-
in capabilities[22], and its open-ended architecture that allows users to easily create exten-
sions to ADAMS functionality using data set features and external subroutines. Like NAS-
TRAN in the finite element arena, there are very few multibody system analyses that can-
not be performed in ADAMS. ADAMS does not restrict a user to any class of mecha-
nism, but instead provides techniques to treat systems with rigid or flexible bodies arranged in
open-chain patterns, tree patterns, clusters, closed-loops, and multiple closed-loop configura-
tions. Thus, free-free systems such as satellites and space probes are treated in the same man-
ner as open-chain robotic manipulators, and closed-loop linkages and trusses. The user is not ex-
pected or required to be knowledgeable about topology theory or constraint checking. The pro-
gram automatically performs an initialization pass on all user-supplied data; inconsistent or im-
proper data is flagged and redundant constraints[23] are automatically eliminated. To pro-
vide for the handling of a great variety of mechanism systems, ADAMS employs the most ad-
vanced 8tiff integration and sparse solution algorithms[24-26]. These algorithms have been
377

demonstrated!6] to be as much as one hundred times more efficient than other commonly used al-
gorithms in multibody system analysis. The user may start, stop, or restart the simula-
tion at any time. A full suite of program diagnostics, help facilities, and debugging aids are em-
bedded into the software to guide the user, and complete working files are saved to per-
mit full-feature restarts.

In order to simplify the process of modeling mechanical systems of many different types, a wide
array of analytical and physical model-building elements have been incorporated into ADAMS.
For the sake of discussion, these will be separated into the following groups: reference frames and
coordinate systems, parts, connectors, sensors, functions, differential equations, user-accessible
subroutines, and graphic icons. The individual ADAMS elements available in each of these
categories are summarized in Figure 13 and discussed below.

B. Modeling Elements

ADAMS users construct system models by first defining reference frames and coordinate sys-
tems. The program allows these to be inertially fixed or moving. Next, physical compo-
nents of the mechanical system are modeled using idealized ADAMS parts, which can be ei-
ther rigid bodies, flexible bodies!27,28], or particles.

Using one of a number of simple algorithms supplied by ADAMS for defining location and
orientation, the user then positions the parts in three-dimensional space. After this, the user
describes the possible relative motions between parts of the system by specifying the type
of physical mechanical joints (see Fig. 13) such as revolutes, ball and socket joints, sliders,
universals, etc., that connect the bodies. This is easier and quicker than mathematically defining
the number of relative degrees of freedom and generalized coordinates as in more abstract
multibody modeling software. To analyze systems in which bodies are connected in nonstandard
ways, ADAMS provides joint primitive elements that allow for any type of constraint to be
constructed between parts. For systems having parts that move in some prescribed fashion
relative to one another, ADAMS offers elements to model translational and rotational motion
drivers and path followers.

Having identified joint constraints and a ground part, an ADAMS user typically defines the in-
ternal compliance elements and external forces influencing the behavior of the system. To fa-
cilitate this task, which is perhaps the most difficult in system modeling, a long list of compli-
ant connectors, actuators, and environmental forcing elements are available as can be seen in Fig-
ure 13. These compliant connectors include springs, dampers, beams, bushings, bear-
ings, tires, impact elements, and extensive functions to permit modeling of nearly any other con-
nector, such as hydraulic and pneumatic cylinders, friction pads, plates, shells, etc. Actua-
378

u/o
• Coordinate Systems: lnertially -Fixed or Moving
• Input
• Translation: Cartesian
• Orientation: Euler Angles, 3x3 Matrices
• Output
• Translation: Cartesian, Cylindrical, Spherical
• Orientation: 24 Euler Angles, 3x3 Matrices
• Euler, Rodriguez Parameters, Y- P- R

~Y,
• Par1S
• Rigid Bodies. Particles', Momentum Wheels'
~--A • Flexible Bodies : Physical I Ga/erkin'
~

• Standard Joints
• Fixed, Revolute, Prismatic, Universal, Planar
• Cylindrical, Spherical, Screw, Rack & Pinion
• Non-Standard Joints
• Joinl Primitives, Couplers, C. V. Joint
• Spur, Helical, Planetary Gears
• User Constraints
• Holonomic: Path Following, General
• Non-Holonomic: Roll Without Slip

• Standard Forces
• Springs, Dampers, Bushings, Beams

j
• Impact, Hydraulic IPneumatic Cylinders, Fields

CJ • Plates. General Matrix. FEA Superelement


• User Defined Forces
• Functions: Slep, Harmonic, Gap, Haversine,
Polynomial, Spline, Fourier Series
• Subroutines: Cam and Surface Contact Models
• Solar Pressure, Aerodynamics
Non-Determiistic Forces
Fj F=-k·x-c·x • Tires: Handling, Durability, Ride Models

I/\r!'-
• Actuators: Action-Reaction Pairs

x'
[Is] [2S] =[E] Action-Only Thrusters
Prescribed Force andlor Torque

• Arc, Box
• Cylinder, Circle,
• OuWne, Force Vector,
• Frustum, Spring-Damper

Fig, 13. ADAMS Modeling Elements


379

tors can be modeled as servomotors supplying action/reaction torques, or strut rods supply-
ing action/reaction translational forces. Users can also model action-only forces and torques
as well. Environmental gravity forces can be defined in any direction, and other environ-
mental forces such as unsteady aerodynamic effects[29] and atmospheric drag can be de-
fined in terms of program-supplied functions, table look-up facilities, and user-written sub-
routines linked to the software.

When the topological, geometrical, kinematic, and kinetic system descriptions are complete, a
user often finds it advantageous to define measurement sensors as output facilities or as input
to forces described in the system. ADAMS extends to the user a set of capabilities to measure
nearly any system variable by using simple request statements. The sensors can provide part
orientation information in anyone of more than twenty different standard forms, and can give
location data in Cartesian, cylindrical, or spherical coordinates. Kinematic sensors describing
position, velocity, and acceleration, as well as kinetic sensors indicating applied, reactive, and
inertial forces, are available.

When a user needs to model a complicated force, motion, or constraint that is not easily de-
scribed with the elements listed above, ADAMS' "FUNCTION" capability provides the per-
fect solution. The user simply describes the force, motion, or constraint in terms of a com-
bination of user-defined constants, system constants, system variables, arithmetic IF's,
FORTRAN-77 library functions, standard mathematical functions, or ADAMS-supplied func-
tions. The user can describe these with normal data set statements or, in more compli-
cated cases, by writing a user-written subroutine and linking it with ADAMS to form an exe-
cutable program.

When a user already has a detailed dynamic model of a particular com-


Table 1
ponent or control system defined in terms of algebraic or differen-
tial equations, ADAMS provides a facility to allow the user to in-
put these equations directly to the database and to have them solved GRAPHICS
along with the system equations that ADAMS automatically formu- • Arc
lates based on the user-defined topology. Lastly, in order to ob- • Box
• Circle
tain a better physical interpretation of the motion and configura- • Cylinder
• Oulline
tion of the system, ADAMS permits the user to describe compo-
• Force Vector
nents of the system in terms of graphic primitives and icons, which • Frustum
• Spring·Dam
are then used to track the motion of the system in a visual way. Exter- per
nal to ADAMS, these geometrical descriptions may take any form what-
soever, including solid parametric models. Inside ADAMS, the ele-
ments shown in Table 1 are supported.
380

C. Analysis Types

Table 2, at right, lists the analysis types[30] available to ADAMS Table 2


users . If the system model has been completely constrained so that
ANALYSIS
there are zero degrees of freedom, but perhaps one or many pre- TYPES

scribed motions, the system is said to be kinematic. In this • Kinemalics


• Initial Conditions
case, ADAMS allows the user to perform a kinematic analy- • Slatics
• Quasi-Statics
sis wherein the program determines the configurations at any
• Modal Analys is
point in time based on user-supplied, time-dependent informa- • Nonlinear
Dynamics
tion and the system constraints. The program also calculates the • Design
time-dependent velocities and accelerations of points in the sys- Sensitivity
• Oplimizalion
tem as well as the reaction forces . No numerical integration is nec-
essary.

If the system has at least one degree of freedom, ADAMS permits the determination of static
equilibrium configurations, modal eigendata, or transient dynamic response behavior. For any of
these analyses, ADAMS first performs an initial assembly analysis wherein the initial positions
and velocities are checked for consistency with system constraints, and the system is perturbed
in the least possible fashion to achieve proper assembly. The user is free to specify some
initial condition data as "exact" and other values as approximate. The program varies only the
approximate quantities during assembly.

For static analyses, all inertia forces are assumed to be zero, and the applied loads are balanced
against the reaction forces to determine an equilibrium position , if one exists. Successive static
equilibrium configurations, based on different time-dependent motions, constraints, or forces
are also possible .

When a user wishes to determine modal data concerning a system, ADAMSjModallinearizes


the fully nonlinear equations of motion in sparse form about a user-defined operating state and
reduces the equations to a smaller set of independent equations in classical eigenvalue form[31] .
An eigenvalue problem is solved, and natural frequencies, damping ratios, and mode shapes are
produced.

For transient dynamic analysis, ADAMS includes all inertia forces and torques in the simulation
and obtains a solution to the equations of motion by integrating forward in time.

ADAMS can produce design sensitivity matrices for use in evaluating effects of changes in
specific design variables and also for inclusion in system optimization software packages[32-34].
381

Lastly, as mentioned above, optimization can be performed with the ADAMS/MOST pack-
age, which offers the capability of optimizing the kinematic performance of a planar or spa-
tial mechanism.

D. Input/Output

To communicate effectively with ADAMS, a user must become familiar with the content and
form of the input that ADAMS expects and the output that it produces. This section begins
with a description of the content of the input and output , and then summarizes the form of
each.

The input for ADAMS (see Table 3) con- Table 3


sists of three essential types of informa-
INPUT OUTPUT
tion: execution instructions, bulk model-
ing data, and load case data. Execution
o Execution inslrUClion$ o Nonlinear Rewlts
instructions provided by the user inform o Analysis Canuol • System OIsplacements
o OUOlY System o System v elocities
ADAMS of the type of analysis to be per- o PIOI Response o System Ao::eIetations

o Draw SysUlm o Reaclion FOfces


formed, the duration of the analysis, and the
o Bulk Modeling oa Ia • Linear Results
data files to be manipulated. Bulk mod- o Reference Frames o Mode Shapes

• Geomeuy o Natural Frequencies

eling data consists of the system descrip- o Mass Propet1ies o Sys tem Jacobian(sj

o Topology o Slate Spaoe Matrices

tion in terms of reference frames , geometry, o Compl"l3l1C8 o Design

o Component Models o Se.n$ilivily Matrices


body types, mass, inertia, compliance, con- o Graphics o Output F"~es

straints, topology, component models, differ- o Load Case oala o Oiagnoslics

o Initial CondItionS o FEA Loads

ential equations, and graphic entities. Fi- o Applied FOfces o G tapl1ics

o Applied MoUOl'lS • Requests


nally, load case data involves the specifica- o Se.nSOf Requests • Reslatt
• Tabular Output
tion of intial conditions, applied forces, ap-
plied motions , and sensor requests for each
case to be studied.

Output from ADAMS includes time-dependent system configuration information, velocities, ac-
celerations, reaction forces (loads), values of user-defined variables, equilibria, natural frequen-
cies, mode shapes, modal damping, state space matrices, design sensitivity matrices, and diag-
nostics.

In an effort to provide for maximum ease of interfacing ADAMS with other software, all data
exchange with ADAMS is conducted in the form of data files. All pre- and post-processors, as
well as complementary software, read and write these files, which interact with ADAMS. The
382

individual data formats included in these files vary significantly from one data type to the next,
but data associativity is kept consistent to the extent possible.

ADAMS input files consist of a command file containing execution commands, an ADAMS Data
Language (ADL) file containing bulk data, and an initial conditions file with load case-specific
data. The ADL file, which transfers most data to ADAMS, consists of a set of statements
defining system elements. The statements, which can be included in any order, conform to a
standard format and syntax. An example of an ADL input file is included in section VII. The
general format for all ADAMS statements is:

}]
where the braces ({ ...}) indicate that the user should select one item, and the brackets ([ ... J) de-
note that the information is optional. NAME indicates the statement type. Each state-
ment type describes a supported ADAMS element (see section IV.B above). The statement ar-
guments, namely ARGI through ARG n , may indicate a condition, values (VI, ... , vn), a char-
acter string (c), or an expression (e). For example, to specify that a spherical (ball and socket)
joint connects a point labelled 21 on body number 2 to a point labelled 31 on body 3, re-
quires the following statement:

JOINT/l,1 = 21,J = 31,SPHERICAL

where the number 1 indicates the label of the joint, while I and J are standard arguments of
the JOINT statement and represent the two connecting points. For complete details, refer to
the ADAMS User's Manual[221.

ADAMS output files include (1) a formatted, tabular output data file, (2) a message file of
diagnostics, (3) a graphics file containing the location and orientation of graphic icons at various
instants in time, (4) a request output file containing output to be plotted or displayed, (5) an
initial condition file for restarts, (6) a Jacobian file for sensitivity analyses, (7) a condensed
results file for interaction with third-party software, (8) a FEM file for interaction with finite
element programs, and (9) a modal file containing the state space matrices and modal data
calculated from the linearized equations of motion.

E. MCAE Interfaces

At this point, it is probably abundantly clear to the reader that the use of modern multi-
body tools such as ADAMS can help produce better mechanical products and can sig-
nificantly increase productivity of design groups. However, realizing these benefits re-
quires that the tools used for multibody system simulation interact effectively with the multi-
383

tude of other MCAE tools being used by members of design teams for various other tasks nec-
essary for complete analysis and design of a product. This is
the impetus behind the aggressive efforts of MDI to
both develop a common communications pro-
tocol for interaction with ADAMS and to
work with developers of other leading
worldwide MCAE software programs
to build seamless links between their
software and ADAMS. These ef-
forts will result in a file interac-
tion process that will allow an en-
gineer to easily use ADAMS in con-
junction with other popular pro-
grams specializing in geometric mod-
eling, structural analysis, component
actuation modeling, analytical and ex-
perimental modal analysis, control system
design and analysis, and optimization. Fig- Fig. 14. MCAE Software

ure 14 illustrates the interfaces that have already Interfaces to ADAMS

been constructed or are under development. Those not com-


pleted to date are marked by an asterisk.

While the file interaction process described in the previous subsection unifies data trans-
fer and promotes software interconnectivity, a typical user desires interactions with the soft-
ware in a more intuitive manner. Therefore, a number of MDI and third-party pre- and
post-processors have been developed to permit an ADAMS user to visually create part ge-
ometry, establish part connectivity, apply forces, and display output results in an ani-
mated fashion. In other words, the software provides a modeling environment that con-
forms to the operating mode that the user prefers rather than forcing users to communi-
cate all data in a structured textual format. These interfaces then do the work of convert-
ing the data between the established file structure of ADAMS and the graphical user in-
terfaces. Figure 15 provides a glimpse of one such modeling interface under development at
MDI. At present, graphics-based commercial pre- and post-processors[36] for ADAMS are avail-
able from Aries Technology, Inc.; Auto-trol Technology, Inc.; Cadam, Inc.; Intergraph Corpora-
tion; McDonnell Douglas Manufacturing ell Engineering Systems Company; Mechanical Dy-
namics, Inc.; PDA Engineering; Prime Computer, Inc.; Schlumberger Technologies; Struc-
tural Dynamics Research Corporation; and TEDAS GmbH. In addition, many other inter-
faces have been developed within large engineering organizations, such as the HAd 19] sys-
384

tern at Deere & Co., AMIGO at Audi[371, and MOGESSA[331 at Volkswagen. With the wealth
of geometric modeling interfaces available, users are able to choose the input format most nat-
ural to their applications.

Fig. 15. ADAMS Pre- and Post-Processing

At some stage of a mechanical design cycle, engineering analysts are interested in deter-
mining stresses, strains, and the strength of each component . This is commonly done us-
ing finite element analysis (FEA) procedures. One of the most troublesome aspects of fi-
nite element structural analysis, however, is the specification of system loads and bound-
ary conditions. ADAMS provides interfaces[38j to finite element codes like ANSYS and NAS-
TRAN, thereby allowing an analyst to perform a time-domain simulation in ADAMS to deter-
mine loads and then transfer these directly to FEA codes as input forces. Accordingly, inter-
faces are being developed to also permit elemental compliances obtained from FEA codes to be
used in ADAMS to describe elastic parts. In other words, a user would be able to form a superele-
ment stiffness and mass matrix of a component in an FEA code and transfer it to ADAMS to de-
scribe a physically-discretized body.

In many engineering companies, it is typical for certain groups within the organization to have
responsibility for modeling various subsystems of a mechanical design. ADAMS permits these
subsystems to be modeled as separate ADAMS models and combined later, or allows users
385

to transfer models created in other software to ADAMS through a differential and algebraic
equation facility embedded in ADAMS . Also under development are specific links to third-party
component actuator modeling packages, such as those based on bond graph techniques.

Although ADAMS provides the capability to linearize system equations and to calculate modal
properties, it is often advantageous to use component modal synthesis techniques to combine
modes from various systems and to perform forced response analyses of the combined linear
systems. To facilitate this, future versions of ADAMS/Modal will supply data in a format that
can be read by modal synthesis programs.

x = Ax + Bu
Y = ex + Du
. anm\S
------------------~

Command
+

Fig. 16. Use of ADAMS in Control System Design

Despite the fact that ADAMS can easily incorporate a control system model[35] in a mechanical
system model and evaluate its effect on system behavior, multibody programs are not, in general,
well-suited to serve as full-fledged control system design packages. There are a number of such
programs on the market, and the best of these provide very extensive classical and modern
control design techniques to aid the user in developing an appropriate control law complete
with sensors and actuators . When a user begins working with these programs, one of the most
difficult challenges that appear almost immediately is that of specifying a high-fidelity plant
model governing motion of the mechanical system. ADAMS helps the control system designer
over this hurdle by[39] automating the process of forming accurate equations of a complicated
nonlinear system, by linearizing these equations about an appropriate operating state, and by
writing out state-space matrices in the standard A, B, C, D form (see Fig. 16) required by
386

the control design software packages. Once the control law is designed, the user can bring the
control law, along with the sensor and actuator designs, back into ADAMS via differential and
algebraic equation translation in order to validate the control algorithm in a true nonlinear
environment.

Lastly, to interact with optimization packages[33,34, 401, ADAMS provides the user with the abil-
ity to precisely control kinematic, static, and dynamic simulations, and to write out sensitiv-
ity matrices for use in gradient procedures.

F. Documentation, Training, and Support

Multibody system analysis is not a trivial procedure. To perform it effectively often requires
that the user have a good understanding of modeling methods and assumptions, rigid body
dynamics theory, and other issues. To aid the user in this regard, there is an extensive network
of documentation, training classes, and expert consulting support to complement ADAMS.

Available documentation includes a complete user's manual, an applications manual, and theory
notes. Verification and benchmark sheets indicating the performance of the code on a suite of
test problems is also available.

Classroom training provided by the distributors of ADAMS has been conducted for over seven
years and has resulted in more than one thousand engineers obtaining instruction in the use
of the code. There are classes for introductory and advanced users. These classes cover topics
on general modeling, mechanism theory, applications, and program operation. In addition to
classroom presentations, there are roughly five yearly international users conferences held in
locations throughout the world. ADAMS is also getting more and more exposure in universities
as software is being integrated into curricula for graduate studies in rigid body mechanics.

Even with superb training and documentation, new applications sometimes present a need
for expert assistance in the use of the ADAMS software. ADAMS distributors handle this
situation by providing users with telephone support and specialized consulting services supplied
by ADAMS experts.

G. A vaila6ilit1l

The availability of a software program is a function of the established distribution network and
the hardware platforms on which the software executes, among other factors. This subsection
begins by describing computer hardware currently supporting the ADAMS software and ends
with a summary of the worldwide ADAMS distribution network.
387

Table 4 to the right illustrates the computer hardware vendors whose supercomputers, main-
frames, and workstations support ADAMS software. The following models and operating sys-
tems currently apply: (1) all FX models of Alliant with the Concentrix operating sys-
tem, (2) all Convex systems with Unix operating systems, (3) Cray models lA, IS, X-MP,
and Y-MP with Cos versions 1.11 and higher or Unicos versions 4.0 and higher, (4) IBM mod-
els 30xx, 43xx, and plug compatibles (e .g., Fujitsu, Table 4
Amdahl) with MVSjTSO or VMjCMS operating sys-
tems, (5) CDC Cyber with NOS VE, (6) all DEC mod- ADAM~upported Hardwara
Platform.

r_ ...
els with VMS and U1trix, (7) Prime 50 series with Pri-
mos operating system, (8) all Apollo models, except . ~
• Clay. NEe. IBM. AIIInI. Convex
DNlOOOO, with Aegis operating systems SR9.x and ·M....
•_
• W DEC. P....... IBM. CDC
_ iofw
SRI0.x, (9) HP 9000 series 300 and 800 with HP-UX,
• ~. DEC. HP. r.t0flll1lPl. 001. S~
(10) Intergraph modellP-32C with Unix, (11) SCI se-
ries 3000 and 4D with Unix, and (12) Sun models 3 and 4 with SunOS(Unix). In ad-
dition, computer terminals from Digital Equipment Corp., Evans & Sutherland, and Tek-
tronix, Inc. provide capabilities to serve as front-ends and graphic display devices for the soft-
ware.

ADAMS is distributed in North America, Europe, and Asia by Mechanical Dynamics, Inc., and
affiliates (see Fig. 17 below). This network is quickly expanding to other locations throughout
the world .

TEDAS TEDAS
lid. SAR.L.

Fig. 17. ADAMS Worldwide Distribution Network

V. Analysis Methods

Many of the analytical and computational methods employed in ADAMS have been widely
published in the past . Therefore, the details of the methods will not be reproduced here in their
entirety; instead, this section will provide a summary of the general formulation and solution
approaches used in ADAMS in order to put them into context with others . The interested
reader may refer to references [7, 8, 30, 41-441 for more specifics.
388

As in finite element methods, ADAMS treats each part of a common type (e.g., rigid body) in
an identical fashion. Using a variational form (Lagrange's equations of the first kind) of the
classical Newton-Euler equations, the kinematical and dynamical equations of motion for these
body types (unconstrained) have been derived a priori and pre-coded into the algorithm to be
recalled whenever needed. This provides for a straightforward, systematic equation assembly
process and a standard set of equations regardless of mechanical system application. As the
solution of linear algebraic equations nearly always consumes the majority of CPU time in
a multibody simulation, ADAMS has been specifically designed to maximize the efficiency of
the decomposition and back substitution process by taking full advantage of sparse matrix
processing techniques and by symbolically encoding the decomposition path within the code
prior to run time. These efficiency considerations have continually guided the development of
ADAMS.

The spatial generalized coordinates employed in ADAMS consist of three Cartesian coordinates
of each part's mass center relative to a global origin and three orientation angles (Euler Angles)
defining the attitude of the central principal axes of inertia of each part relative to mutually-
perpendicular, inertially-fixed axes. In addition to these coordinates, ADAMS also employs part
angular velocities and center of mass translational velocities, as well as applied force variables,
and constraint forces (also known as Lagrange multipliers) as additional state variables.

When constraints act between various parts of the system, ADAMS does not reduce the num-
ber of coordinates down to a minimal independent set, but rather appends all of the configura-
tion Uoint) and motion (actuator) constraint equations onto the set of existing first-order dif-
ferential equations defining the kinematical and dynamical equations for each part. The alge-
braic constraint equations have been pre-derived for each available ADAMS joint (i.e., revo-
lute, spherical, etc.) and are recorded in the algorithm for use as necessary.

Additionally, instead of embedding the complete form of complex external forces into the dy-
namical differential equations, ADAMS identifies these forces as state variables in the dynami-
cal equations. Then, ADAMS adds additional algebraic equations defining the full mathemati-
cal form of these forces. Any user-defined differential equations are appended last.

Thus, the system equations governing behavior of any mechanism in ADAMS consist of:
• six first-order dynamical equations of each part (relating forces to accelerations),
• six first-order kinematical equations of each part (relating positions to velocities),
• a single algebraic constraint for each scalar, holonomic, configuration constraint,
• a single differential equation for each scalar, nonholonomic, motion constraint,
• a single algebraic equation for each complicated, scalar force, and
• any number of user-defined algebraic or first-order differential equations.
389

These equations may be rearranged into the general form shown below.

M(i,y,y,l,t) = Q (1)
N(Y'i)=Y-i=Q (2)
~(i' I, t) =Q (3)

where an underscore denotes a matrix, a dot specifies a temporal derivative, and the paren-
theses indicate functional relationships. The symbol i denotes the column matrix of general-
ized coordinates, Y represents the column matrix of generalized speeds, I is the column ma-
trix of constraint forces and applied forces, t represents time, M is the column matrix of all dif-
ferential dynamical equations and any user-defined differential equations, N is the column ma-
trix of differential kinematical equations and differential motion constraints, and ~ is the col-
umn matrix of algebraic equations describing joint constraints and forces.

Eqs. (1-3) represent a very sparse (highly-uncoupled) set of mixed, nonlinear differential-
algebraic equations (DAE's) governing behavior of an ADAMS model. These equations are
solved in various combinations during kinematic, static, and dynamic analyses. Since the solu-
tion of sets of DAE's involves techniques that are quite different from those employed in solv-
ing standard ordinary differential equations (ODE's) found in most minimal-coordinate multi-
body formalism[44], some brief details of the solution process will be discussed here.

If a column matrix 1t of state variables is defined as 1t = [i' y, IlT, then Eqs. (1-3) can be
written as the following single matrix equation.

(4)

This equation represents a set of nonlinear equations which must, in general, be solved in an
iterative fashion to obtain a solution at any point in time. ADAMS solves these equations using
a modified Newton-Raphson procedure. The equations are expanded in a Taylor series about
an initial set of guesses for the state variables. At time zero, the initial guesses for the iteration
procedure are obtained from the initial conditions; afterwards, they are set equal to past values
of the state variables scaled in an appropriate manner. If y. and
-J
II. denote the;th iteration for
-J
the state variables and derivatives, then the Taylor series expansion of the equations appears
as (at a particular fixed instant in time):

(5)

where the brackets indicate a matrix, the bracket subscript i indicates that the quantity con-
tained within the bracket is to be evaluated with all of the state variables and their deriva-
tives set equal to their corresponding values at the ;th iteration, the symbol Ay - is de-
-J
fined as Ay.
-J
= y-+l - Y·, and the ellipses indicate terms of degree two and higher
-J -J
390

in t::.y.. If the higher degree terms are assumed negligible, then the following equal-
-J
ity holds:
(6)

Equation (6) can be transformed from being a set of algebraic-differential equations to a set of
standard linear algebraic equations if a numerical integration formula is introduced. ADAMS
employs the implicit Gear variable-order, variable-step stiff integration algorithm which takes
the following form:
k
.1!'n+1 = L Qi.1!'n-i+l - h(3oY..n+l (7)
i=l
where n represents the time step counter (tn is the value of time after the nth integration time
step), .1!'n+l is the numerical approximation for .1!'(t) at t = tn+l' h is the step size given by
h = tn+l - tn, k is the order of the algorithm employed, and (30, Qj (i = 1, ... , k) are real
numbers referred to as the Gear integration coefficients.

Since the change in y.. can be related to the change in .1!' by the relationship,

(8)

it follows, from Eq.(7)' that


t::.iJ· = -(l/h(3o)lt::.y·
-J -J
(9)

where 1 is an identity matrix.

Substituting the right-hand side of Eq.(9) back into Eq.(6) yields the following set of standard
linear algebraic equations which can be solved using decomposition and back-substitution.

(10)

This whole process corresponds to a predictor. corrector solution scheme that can be summarized
as follows:

Predict
1. Predict values for .1!' and y.. that lie on a polynomial passing through past state variable
values.

Correct
2. Evaluate Q.. If zero, the solution is acceptable and the corrector is unnecessary.
3. Evaluate the Jacobian matrix defined as [[8Q./8.1!'1- (1/h(30)[8Q./8Y..IL
391

4. Factorize the Jacobian. (In ADAMS, this is performed symbolically for efficiency.)
5. Solve for -
Ay).. Calculate -
y'+1 and Y'+I'
)-)
6. Repeat steps 2 through 5 until convergence criteria are satisfied.

Integration Error Control


7. Find best step-size and order for next step.
8. Estimate integration error. If too much, reject last step, reduce h, and go to step 1.
9. If end time has not been reached, start new time step by going back to step 1.

These steps describe a general transient dynamic analysis. For a static analysis, the term
(l/h(3o) can be set to zero to effectively cancel out all time derivatives. In practice, ADAMS
sets this term to a very small number to improve calculation of neutrally-stable equilibria.

For kinematics, only the algebraic constraints of the system are solved iteratively to yield a
solution.

VI. Development Directions

The field of multibody system analysis is changing rapidly. In the past few years, there has
been an exponential growth in the number of research papers and proposals concerning aspects
of the field. While this is an exciting trend, it also poses a significant challenge to multibody
software developers to stay abreast of the latest technology and to provide users with the
most accurate, efficient, and advanced techniques and capabilities. There are still quite a few
different schools of thought concerning fundamental aspects of the field, and each provides a
unique perspective. To take proper advantage of the wealth of knowledge being accumulated,
the developers of ADAMS have not only formed their own in-house research teams, but also
established key contacts with leading universities in this field throughout the world. From
early exclusive ties with the University of Michigan, the affiliations have grown to encompass
universities throughout the United States, Canada, Germany, Switzerland, the Netherlands,
and other countries. It is no longer wise or feasible to rely totally on one research group.

The philosophy adopted by ADAMS developers is to continue to aggressively develop software,


while at the same time employing individuals to carry out sponsored research in strategic areas of
interest. Present areas in which the developers of ADAMS are either performing or sponsoring
research include human body modeling and ergonomics, large-displacement elastodynamics,
symbolic computation in a sparse environment, numerical integration algorithm development,
design sensitivity, optimization, controls, and parallel processing. MDI is currently funding
multiple research projects at U.S. universities and is, in turn, being funded by government
agencies for research in a variety of areas. In 1989, MDI was named as a "premier research
company" in Michigan.
392

Having excellent research contacts and affiliations is necessary, but not sufficient to insure suc-
cess of the software as a viable product. As mentioned earlier, MDI is making signifi-
cant strides in interweaving the ADAMS software with other MCAE tools to form a seam-
less computing environment. This is crucial to promote widespread use of multibody sys-
tem analysis software. Graphics processing of input and output remains a focal point of de-
velopment in this field as engineers attempt to make the technology easier to use and under-
stand.

In addition to research and interface strategies, an advanced development environment pro-


vides the needed link to guarantee quality software. The ADAMS software is one of the few sys-
tems that is being developed within a structured computer science environment wherein com-
puter aided software engineering (CASE) tools are employed. ADAMS software develop-
ers prepare problem statements, write specifications, review designs, and produce code us-
ing both C and FORTRAN languages. The code is continually subjected to the follow-
ing types of tests: accuracy verification, functional, boundary, biased random, stress, and re-
gression. These tests are developed from the code specifications.

Over thirty full-time people are employed in the product development and maintenance of
ADAMS. Their educational backgrounds range from B.S. to Ph.D. in fields such as computer
science, mathematics, physics, aerospace engineering, and mechanical engineering. Many of the
actual products currently under development are described briefly in section two.

vn. Test Example Problems (Verification)


This section serves two purposes, namely (1) to provide a glimpse of typical input, output, and
performance for benchmark problems supplied in conjunction with Springer-Verlag's Multibody
Systems Handbook, edited by W. Schiehlen, and (2) to present more comprehensive validation
and performance of the ADAMS software.

Because of its longevity, ADAMS has been tested extensively in a variety of dilIerent ways.
Over one hundred man-years have been expended by external research groups as well as the de-
velopers in validating the results of the code through (1) correlation with experiment (see Ta-
ble 5), (2) comparison with other nonlinear finite element codes (NL-FEA), (3) correlation
with other multibody and special-purpose programs, and (4) comparison with closed form so-
lutions. Currently the ADAMS test library contains over five hundred of these accuracy verifi-
cation tests for which complete solutions are known. Table 5 lists some of the published corre-
lations.
393

Table 5. References of Published Accuracy Verifications of ADAMS


Correlation ADAMS Validations
With: Automotive Systems Aerospace Systems Off-Highway Systems

EXlleriment Orlandea[8] Roux[15] McConville[20]

NL-FEA Zamow[12]/ ABAQUS Ryan[27J, Simo/FEAP


Elliot[29l!GRASP

Qther Codes Giannopoulos[9l!I\IP Ryan[27]/Vigneron[45]

To demonstrate the range of ADAMS, four benchmark problems will be presented. The first
two were provided as test problems for a large suite of multibody software programs, while the
last two exhibit the strength of ADAMS.

Figure 18 depicts a planar seven-link closed-loop mechanism with one driven link. The driving
torque is shown on the figure, and all system properties are provided in the handbook mentioned
earlier. Plotted time histories are included at the top of the figure, and superimposed static
images of the system at various instants in time are shown in Figure 20. This model tests the
ability of a program to easily model closed loops. The model was built and results obtained
within two hours. More details of the simulation are included in Figure 18.

Figure 19 illustrates a spatial robot manipulator driven by joint motors as shown. This is an
open-loop system involving three-dimensional dynamic effects. Time history plots are shown in
the figure and superimposed images are illustrated in Figure 20. This was a routine problem
for ADAMS to solve. Table 6 contains the entire ADAMS input model description.

Figure 21 displays a much more complicated three-dimensional multibody system representing


a full automotive vehicle. The system has fifty-four degrees of freedom. Results from ADAMS
were compared directly with experimental results for a ramp steer input of 210-degree occurring
at forty-five miles per hour[30]. As can be seen from the inset plots, excellent correlation was
achieved.

Lastly, Figure 22 shows a Japanese bullet train traversing a bridge. An ADAMS model of
the train/bridge assembly contained over ten thousand equations and more than five hundred
degrees of freedom. The bridge was modeled completely with elastic structural elements in
ADAMS and all nonlinear effects were captured. A time history plot of the acceleration of a
point on the bridge during a train traversal is shown versus time in the inset of the figure.
394

2Or-
_~____-2S~e~v~e~nwL~i~n=k=P=la~n=a~r~M==e=ch~a~n~i~sm7.
O.S 0.53r-----~-__,

15 O' 0.52

p T 0.3 6 0.51
(radians) 10 (radians) (radians)
02 0.50

0.1

100
P 100D 1 5
(radJsac.) (radJsec.) 0 (radJsoc.) 0
500
·100 ·10

·>gL.00--~-~":---'0.03
800 O.Of 0.02 0.03 0.01 002 0.03
Time (seconds) Time (seconds)
120

110

..
Spring 100
Force
MagnilUde
(N<Iw\Dns)

50

70

50
0.00

Planar 7 Body Closed


Loop Mechanism
• Purpose
• Verily 2·0 Capability
• Arx:.uract
• Speed
• Emphasize True CLosed
Loop Conslraint
Satisfaction
• Attributes
• Parts: 7
• Equations: 182
• Degrees 01 Freedom:
• Simulation Duration: 0.03
Seconds
• Output Steps: 300
• CPU lime (Vaxstation
2000): 380 Seconds

r- 0.033N·",

Fig. 18. Seven-Link Planar Mechanism Benchmark Problem


395

Spatial Robot Mechanism


"'--~-----"::J '~r---~-----'

ZI
(metm) . .
..
4•

ZI
meters/sec.}

os 10 15 10
TIIN (Iear.dS)

Spatial Motion of Robot


Global Cc:on:hncuas
(s ..... tcI1) • Purpose
• Verity 3-D Capability
Posloon of 3 • AccuraOj
End Enector • Speed
Peont P • Attributes
(meters)
• ParIS: 3
• Equations: 70
• Degrees of Freedom: 5
• Simulation Duration: 2.0
~~.O~----O~.S~--~I~.O---~I~.5~--~20 Seconds
Tomo (seoonds) • Output Steps: 200
• CPU Time (Vaxstation
2000): 112 Seconds

6348 N 0 ~ I < 0.5;


i\ = { 4905 N 0.5 ~ I < 1.5;
3462 N 1.5 ~ I :s
2.0

_ { 361 + 986 N 0 ~ I < 0.5;


F, = -2 N 0.5 ~ I < 1.5;
-1019 N 1.5 ~ I 2.0 :s

~
.~ -
P -
--,
AC3
J
- -- -...#

6731 - 508 Nm 0> 1 < 0.5;


L, = { HS.-U(I-.S) + 8 Nm 0.5 ~ I < 1.5;
240 N m :s
1.5 ~ I 2.0

63.SO Nm 0 ~ I < 0.5;


La = { 49.05 Nm 0.5 ~ I < 1.5;
34.60 Nm :s
1.5 ~ I 2.0

Fig. 19. Spatial Robot Manipulator Benchmark Problem


396

J-y
l

Fig. 20. Superimposed Images of Benchmark Problems


397

Table 6. Input ADL file for Robot Benchmark

FIVE DECREE or FRUOQH ROBOT


NCIUEST/01, I - 0104, J - 9904, '" - 9904, FORCE
( UNIT'S - KG, M, N, SEC J , CCM£HT .. 'r'CIfER FOIICE
JtEQUEST/02, I .. 0105. J .. 9905, lit( - 9905, FORet
,lUttS , CCH£.NT .. TOWER TORCUE
NQUEST/03. I .. 0206, J .. 0106. AH" 0206. FORCE
PART/", GROUND , CXtH:NT ... AItII FORCE
MARKERl9900, I<£ULER - 0.5236, 0.0, 0.0 REQUEST/04. I .. 0307, J .. 0207, AH - 0207, FORCE
• cctKNT.. HAND TORC,UE
JtEQUEST/05. I .. 0101, J .. 9900, Iit( .. 9900. DISPLACEMENT
PARTIOI, K\SS .. 250.0. CM .. 0100. IE' .. 90.0, 10.0, to.a • CCHoENT" TalER DlSPLAC£M£.vr
, go- 0.0, 0.0, 2.25 REQUEST/O', I - 0101, J - 9900, '" - 9900, VELOCIty
, CCH£NT" TCWER DISPIAC£ME.vr MoTE
HMl<l:JVOlOO R£QCJEST/07, 1 .. 0203. J .. 0102, lit( .. 0102. DISPlACtMENT
• CCM£NT .. AII4 DISPLACEJoEN'I'
aEQUEST/08, 1 .. 0202, J .. 0102, 11M .. 0102, VELCCITf
PART/OZ, H\SS .. 150.0, CM" 0200. 151 .. U.O, 0.75, 13.0 • Cat£HT .. AR1 DlSPlACU£NT RATE
• QG- 0.0, D.75. 2.25 R£CIUEST/09, I .. 0303. J .. 0203, AH - 0203, DISPI.A.CDIENT
, Ca+£N't .. HAND DISPLACD£NT
MARKER/0200 REQUE.ST/I0, 1 .. 0303. J .. 0203. 11M .. 0203. VELCCITf
• CCM!ENT - HAM) DISPu.cEMEHT RATE
REQUEST/ll. I .. 0303, J .. 9900, ft<I .. 9900, DISPLACEMENT
PART/Ol. K\SS .. 100.0. eM .. 0300, IE' .. 4.0, 1.0, 4.3 CCM£HT .. CLOBAL HAND DlSiJLAC£MENT
, go- 0.0, 1.30, 2.25

HAAJ<ERl0300 PROGRAM CONTROL

ACCGRAV/CC-l •• KGRAV--g.816
ATTAClf1ENTS OUTPtJr/RLQSAVE, CRSAVE. NOPRINT

JOINT/DUg. I .. 0101, J .. 9901. CYLINDRICAl.


HARKER/OIOI, PAAT .. 01
MARKER/990l. PART .. 99, OP .. 0.0, 0.0, 2.25

JOINT/020I. I .. 0202. J .. 0102. CYLINDRICAL


MARKERl0202. PART .. 02. QEI .. 0.0, -0.75, 0.0, REULER .. 0, -90D. a
HARKER/OI02, PART .. 01. REt1LE.R .. 0, -9CD. 0

JOINT/0302. I .. 0303. J .. 0203. REVO:'ur£


MARKER/OlD), PART .. OJ. Oi' .. 0.0. -0.05. 0.0. R£'JL£1t .. 900. 900, 0
MARKER/02D), PART .. 02. eEl .. 0.0, 0.50, 0.0, R£t1LEP." 900. 9(1), 0

QRIV£itS

SFORCE/OI. I .. 01C4. J-,904. TRANSUonON


• [t..WCTICH .. 6348.0 * If'( ( TIME - 0.5 ) : 1. I, a)
• ... 4905.0· IF'I ( TIME - 0.5 ) : O. 0, 1 )
, • 1Ft ( TIME - loS ) : I, 1. a )
, • 3462.0. IFt ( TIME - 1.5 ) : O. 0, 1 )
HARl<tRl01Q4, PART" 01
MAiU<ER/99Q4, PART" 99

SFORC&/OZ, 1 .. 010S. J-!1905. ROTATION


FtJNCTION .. POLY( TIME. 0.0. -508.0. 673.0 )
• IF( ( TIME - 0.5 I : 1. I, a )
• ( 148.0 • EXP( POLY! TIME. 0.5, 0.0, -5.5) I .8.0)
• IF ( , TIME - 0.5 I : 0, 0, 1 )
• IF( (TIME - 1.5 I : I, I, 0 I
, + 240.0. IF, ( TIME - 1.5 ) : O. O. 1 )
MMJ<ERl0105, PART" 01
HAAK£Rl9905, PARt .. 99, QP .. C.O. 0.0. 2.25

SFORCE/03. I .. 0206, J-OI06, TRANSLATION


FtJrrK:TIarf .. POLY( TIME. 0.0, 986.0. 36.0 I
, • IF( ( TIME - 0.5 I : 1. I, 0 )
, • (-2.0) • Ir( ( TIME - 0.5 ) : 0, O. 1 )
• • IF( ( TIME - 1. 5 ) : 1. 1. a »
• + (-1019.0) • IF't ( TIME - 1.5 ) : 0, 0, 1 )
MARKER/020i. PART .. 02. op .. 0.0. -0.75, 0.0. REULEa .. 0, -9OD,
MARKERl0106, 'ARr _ 01, QP - 0.0, -10.0, 0.0, I<£ULER - 0, -9011,

SF'ORCt/04, I .. 0307. J-0207, ROTATION


• FUNCTtC»rl" 63.5 • IF( ( TIME - 0.5 ) : I, 1. a )
• + 49.05· IF( ( TIME - 0.5 ) : O. O. 1 )
• • IF'( ( TIME - 1.5 ) : 1. 1. a)
• • 34.6· IF ( ( TIt".£ - 1.5 J : 0, O. 1 I
MARXER/0307, PARr .. 03. OP • 0.:::. -0.05. C.O, REt1LER .. 900. 9(1),
MARKERl02~)7. PART .. 02. QP .. 0.0. 0.50. 0.0, R£ULER .. 900. !KIt,

R£ '£STS
398

YAW RATE
0
\
\ 45 MPH/210' Slee" "'l Inpul (0.40 lee. rcmpl
-4 I
I

;
U I
W
Vl -c I
I
a: I

It - 12

Full Vehicle Handling Study


W
W
a:
- I~ -\ \ I
/

Purpose t.:)
w -20 , /
• Highlight Comparison 0 ' _../
BelWeen Test And
Analysis -2, \,'
I
-----Adams SimtJla.lion
• Use 01 Calspan Tire Data \I ---Acluol Vehicl.
Attributes -29
0 50 100 150 200 250 300 350 400 450 500
• ParlS: 21
• Equations : 693 TIME -Msec x 10 1
• Degrees 01 Freedom: 54
• Simulation Duration : 4.0
Seconds
• Output Steps: 160
• CPU Time: 9037 Seconds LATERAL ACCELERAT ION
.40r-----------------~~~----------~
'I!. MPHI2 10' Si otring Inpul (0.40 SfC. ramp)
.20

-.20 -
'"
-t.:)

- .4 0

- .60

-. 80 - - - - Ada ms Simulalion
-----Ac lual Vehicle

-1.0 0!:---:S:':O:---:'~0::-0---:-t:-:O::-::-20
:"0::--=275::-0--::370-=0--::3750"-"'4""0::-0-4"'5-=-o:-:-'SOO
T1ME-Msec x 10'

Fig.21. Ford Bronco II Full Vehicle Simulation Benchmark


399

•• ~ I"'Nd .... ~ "O. ftOOC 1


' .Il

' .• 1 Purpose

.... JJ • Highlight 51:. ot Problems


• SlnJcIutal F1exibiliry
• Rail Vehicle Application
INIWI AllnbuleS
• Pans: 1112
v ~ • Equalions : 10.534

..... • Degrees ot Freedom' 576


• Simula~on Duration: 6.2
Seconds
• Output Steps: 6.200
· • •• 1 • CPU T1me (SUN4): 79.459
Seconds
[
I
, nee
'.....
, fI - 1s

Fig. 22. Railway Benchmark Problem

The sheer size of the rail problem, not to mention the extreme elasticity, would prevent a user
from obtaining simulation results with many of the competing multi body software programs.

The models included here are intended to give the reader a feeling for the generality and versa-
tility of the ADAMS software when applied to mechanical multibody systems.
400

VITI. Acknowledgements

A number of people deserve credit for their contribution to the creation of this ADAMS overview.
In particular, out of great appreciation for their significant efforts, I would like to thank the
following individuals: [from MDI] David Andrews, Itshak Barkon, Carol Evert, Jeanne Kelley,
Jim Molnar, Jim McConville, Sam McDonald, Rajiv Rampalli, Chuck Wilson, Michael Youngj
[from Schlumberger] Patrick Turnerj [from SDRC] Matthew PeffleYj and [from TEDAS] Michael
Bartels and Ewald Fischer.

Also, I would like to express my appreciation to the thousands of engineers and designers who
have used ADAMS to aid them in their work. By their ingenious use of the software and their
continual feedback, they have helped improve the quality of the code immeasurably and have
provided the raw data and graphics that form the basis of much of this paper.

Lastly, a special thanks goes out to MDI for providing an environment for multibody system
analysis to flourish and grow in its applicability. 1£ only Newton could have seen ADAMS!

IX. References

[1] Hooker, W. W., and Margulies, G., "The Dynamical Attitude Equations for an noBody Satellite."
The Journal of Astronautical Sciences. Vol. XII. No.4, 1965, pp. 123-128.
[2] Roberson, R. E., and Wittenburg. J .. "A Dynamical Formalism for an Arbitrary l'iumber of Inter-
connected Rigid Bodies. with Reference to the Problem of Satellite Attitude Contro!." Proceedmgs
3 rd Internallonal Congress on AutomatIC Control (London. 1966) London, 1967. pp. 46D.1-46D.8.

[3] Cooper, D.W., Bitonti, F .. Frayne, D.i'O .. and Hansen, H.H., "Kinematic Analysis Method (KA'\I)."
Society of Automotive Engineers, Paper No. SP-272, May 1965.

[4] Knappe, L.F .. "A Computer-Oriented Mechanical Design System," AS.\IE Paper No. 64-MECH-30,
Mechanical Engmeering. Vo!' 87, No.5. pp. 35-40, May 1965.
[5] Chace, M.A., and Korybalski, M. E .. "Computer Graphics in the Schematic Representation of
Nonlinear, Constrained, Multifreedom Mechanical Systems," Computer Graphics 70 Conference,
BruneI University, April 19iO.

[6] Orlandea, N., Chace, M.A .. Calahan. D.A., "A Sparsity-Oriented Approach to the Dynamic Analysis
and Design of Mechanical Systems - Parts 1 and 2," ASJIE Journal of Engineering for Industry,
Paper No. 76-DET-19, AS.\IE Mechanisms Conference, Montreal, Canada, Oct. 1976.

[7] Rampalli, R., "ADAMS - A Sparse Matrix Approach to Solving Multibody Dynamics Problems,"
Proceedmgs of the SDIO/NASA Workshop on Multi60dy SimulatIOn, Jet Propulsion Laboratory,
Pasadena, California, Sept. 1-3, 1987.

[8] Orlandea, N., and Chace, M., "Simulation of a Vehicle Suspension with the ADAMS Computer
Program," SAE Paper No. 770053, Proceedmgs of the 1977 International Automotive Engmeering
Congress and Exposition, Detroit, Michigan, Feb. 28 - Mar. 4. 1977.
[9] Giannopoulos, F., and Rao, A.K., "Dynamic Loads on Suspension Components Using Mechanisms
Programs," SAE Paper 811307, 1981.
401

[10] Antoun, R.J., Hackert, P.B., O'Leary, M.C., Sitchin, A., "Vehicle Dynamic Handling Computer
Simulation - Model Development, Correlation, and Application Using ADAMS," SAE Technical
Paper No. 860574, International Congress and ExpositIOn, Detroit, Michigan, Feb. 24-28, 1986.

[11] Agelidis, N., "3-D Crash Analysis Using ADAMS," Ford Motor Company Report, SAE Paper No.
SAE 885076, Proceedings of FISITA. Detroit, Michigan, Sept. 1988.

[12] Zamow, J., "Use of the Rigid Body Program ADAMS at PORSCHE," Proceedings of the 1989 Far
East ADAMS Users' Conference, Tokyo, Japan, Mar. 7, 1989.
[13] McConville, J.B., "Aircraft Stability and Control Using ADAMS," Proceedings of the 1988 Interna-
tional ADAMS Users' Conference, Mechanical Dynamics, Inc., Ann Arbor, Michigan, Sept. 13-15,
1988.

[14] Sukarie, G., "Influence of the Flexibility of the Landing Gears on the Impact Forces of an Aeroplane
Under Ultimate Landing Conditions," Proceedings of the .;th European ADAMS News Conference,
TEDAS GmbH, Marburg, FR Germany, Oct. 4, 1988.

[15] Roux, e., and Flament, P., "Solar Array Deployment Simulation Using ADAMS Software," Pro-
ceedings of the Second European Space Mechanisms f3 Tribology Symposium, Meersburg, FR Ger-
many. Oct. 9-11, 1985.

[16] Sohoni, V.N., and Chace, M.A., "Pseudo-Prototyping of Aerospace Mechanical Dynamic Systems
with a Generalized Computer Program." Proceedings of the 20 th Aerospace Mechanisms Symposium,
NASA Lewis Research Center, Cleveland, Ohio, May 7-9. 1986.

[17] Brazzini, G., Broustet, Y., Garnier. C., Picard, P., "Kinematic Analysis of a Large Deployable Truss
Antenna (Using ADAMS)." Aerospatiale Paper. No. IAF 85-74. 1985.

[18] Panin. F., "Modeling Flexibility of (Aerospace) Mechanisms with ADA:\IS," European Scientific and
Technical Memorandum No. ESA ST:\1-242, European Space Agency. Noordwijk, The Netherlands,
July, 1988.

[19] Smith, D.W., Light, R.A., Romig. B.E., Berenyi, T.A .. Orlandea. N.V., Wiley. J.e., Por-
tillo, N., O'Brien, S.E .. Hertema, D.J., "Automated Simulation and Display of Mechanism and Ve-
hicle Dynamics," ASAE Paper No. 82-5019, 1982 ASAE Summer lrleetmg, Madison, \Viscon-
sin; June 27-30, 1982.

[20] McConville, J.B., Angell, J. C .. "The Dynamic Simulation of a Moving Vehicle Subject to Transient
Steering Inputs Using the ADA:\lS Computer Program," ASME Paper No. 84-DET-2, 1984.

[21] DeFouw, J .A., and Dowell, W.R., "Analysis of a Seating System Using ADA:\IS and the Anthro-
poid Preprocessor," Proceedings of the 1988 International ADAMS Users' Conference, Mechani-
cal Dynamics, Inc., Ann Arbor. Michigan, Sept. 13-15, 1988.
[22] Anon., ADAMS User's GUide. Mechanical Dynamics. Inc .. 305.5 Plymouth Rd., Ann Arbor, Michi-
gan, 1987.

[23] Duff, I.S., and Reid, J .K., "A Comparison of Some Methods for the Solution of Sparse Overdeter-
mined Systems of Linear Equations," J. Inst. Math. Appl., Vol. 17, pp. 267-280, 1976.

[24] Gear, C.W., "The Simultaneous Numerical Solution of Differential Algebraic Systems," IEEE Trans-
actions on Circuit Theory, Vol. I, pp. 89-95. 1971.
[25] Pissanetzky, S., Sparse MatTIX Technology. Academic Press, London, 1984.

[26] Chua, 1., and Lin, Pen-Min, Computer-Aided AnalysIs of Electronic Circuits, Prentice-Hall, Engle-
wood Cliffs, New Jersey, 1975.

[27] Ryan, R. R., "Flexible Multibody Dynamics: Problems and Solutions," Proceedings of the
NASA/SDJO Workshop on Multibody Dynamics, Pasadena, California, Sept. 1-3, 1987.
[28] Wielenga, T., "Simplifications in the Simulation of Mechanisms Containing Flexible Members,"
Ph.D. Thesis, University of Michigan, 1984.

[29] Elliott, A.S., and McConville. J .B., "Application of a General-Purpose Mechanical Systems Analysis
Code (ADA:\lS) to Rotorcraft Dynamics Problems," Proceedings of the 1989 AHS Conference, Nov.
13-14, 1989.
402

[30] Cha~e, M.A., "n-I;.thods and EXIlerience in Computer Aided Design of Large-Displacement Me-
chamcal Systems,' Computer Aided AnalysIs and Optimization of Mechanical System Dynam-
ics, NATO ASI Series, Vol. F9, Springer-Verlag Berlin Heidelberg, 1984.
[31] Sohoni, V.N., and Whitesell, J., "Automatic Linearization of Constrained Dynamical Models,"
ASME Journal of Mechanisms, Transmissions, and Automation in Design, Vol. 108, No.3, pp.
300-304, Sept. 1986.
[32] Sohoni, V.N., "Design Optimization of Mechanical Systems," Proceedings of the 1989 Far East
ADA,US Users' Conference, Tokyo, Japan, Mar. 7, 1989.
[33] Terlinden, M.W., Langner, W., and Hache, M., "MOGESSA - A Full Vehicle Simulation System
Based on ADAMS," Proceedings of the lh European ADAMS News Conference, TEDAS GmbH,
Marburg, FR Germany. Sept. 1987.

[34] Langner, W., "Sensitivity Analysis and Optimization of Mechanical System Design," Proceedmgs of
the ,7Ih European ADAMS News Conference, TEDAS GmbH, Marburg, FR Germany, Oct. 4, 1988.
[35] Steigerwald, M.F., "Implementing Digital Control Algorithms in an ADAMS Model," Proceedmgs
of the 1988 International ADAMS Users' Conference, Mechanical Dynamics, Inc., Ann Arbor,
Michigan, Sept. 13-15, 1988.

[36] Turner, P.R., "Workstation Integration for Large Displacement Mechanical Analysis," U.M. Con-
ference on Computer Aided Engmeering of Vehicles and Machmery, Ann Arbor, Michigan, July
25-29, 1988.

[37] Hudi, J., "AMIGO - A Modular System for Generating ADAMS Models," Proceedmgs of the ,7Ih
European ADA.US News Conference, TEDAS GmbH, Marburg. FR Germany. Oct. 4, 1988.
[38] McConville. J .B., Steigerwald, M.F .. "The Use of ADAMS to Create Realistic Boundary Conditions
for Finite Element Evaluation of Mechanisms - The ADAMS/ ANSYS Interface," Proceedings of the
ANSYS Users' Conference, Pittsburgh. Pennsylvania, April 23-25, 1985.
[39] Sohoni, V., 'Vinkelman, J., "Control Systems Analysis Csing ADAMS and MATRIXx." Proceed-
ings of the 1988 InternatIOnal ADAJIS Users' Conference, Mechanical Dynamics, Inc, Ann Ar-
bor, Michigan, Sept. 13-15, 1988.

[40] Turner. P.R., and Bodner. M.E., "Optimization and Synthesis for Mechanism Design," Paper No.
MS88-711, Proceedings of the Society of ManUfacturing Engineers AUTOFACT '88 Conference and
ExpositIOn, Chicago, Illinois, Oct. 1988
[41] Ryan. R.R., and Steigerwald, M.F., "ADAMS: Theory and Application." Proceedmgs of the 1988
ADAMS Software Theory Seminar. Mechanical Dynamics, Inc., Ann Arbor, Michigan. 1988.
[42] Wielenga, T.W., "Analysis Methods and Model Representation in ADA~IS," MOl Technical Paper
No. 41, 1987.
[43] Kane, T. R., and Levinson, D. A .. "Multibody Dynamics," Journal of Applied Mechanics, Vol. 50,
Dec. 1983, pp. 1071-1078.

[44] Kane, T. R., and Levinson. D. A .. Dynamics, Theory and ApplicatIOns, McGraw-Hili Book Co.,
New York, N.Y., 1985, p. 24.

[45] Lips, K. W., Graham, W. B., Vigneron, F. R., and Hunter, D. G.,"Dynamics and Control Charac-
teristics for the WISP 300m Dipole Antenna/Shuttle Configuration," Advances in the Astronautl-
cal Sciences, Vol. 58, No.1, 1985, pp. 349-369.
PLEXUS - Software for the Numerical Analysis of
the Dynamical Behavior of Rigid and Flexible
Mechanisms
by A. BARRACO, B. CUNY, E.N.SAM. - Laboratoire de Robotique de Paris
and: A. HOFFMANN, P. JAMET, A. COMBES CURE, M. LEPAREUX, H. BUNG,
L.A.M.S./D.E.M.T./ S.M.T.S. - C.E.A. - Centre d'Etudes Nucleaires de Saclay

o - Introduction to the mechanical analysis of multi body systems

In most computer codes developed for the dynamic analysis of mechanisms, such as the serial
manipulators used in Robotics, differential equations of motion are derived from the hypothesis
that the links are rigid while flexibilities, if any, are located at the joints. This simplification is
widely used since it correctly models the sturdy members found in present robots while limiting
the number of unknown parameters and of the related kinematical and dynamical equations.
Indeed, a rigid body shows six degrees of freedom, and any connection between two adjacent
members removes up to five possibilities of relative motion: the total number of independent
position parameters of any complex mechanism remains small, and elaborating the kinematical
models for the end effector is then a straightforward procedure ( the geometrical model relates
its position and orientation to the joint parameters, while the differential model expresses its
linear and angular velocities in terms of the time derivatives of joint parameters) , [ 1] .

Concerning the dynamical model of such manipulators, several formulations are available
which all lead, in a more or less systematic way, to the same set of coupled non-linear
differential equations: the Newton-Euler approach provides a dynamic balance of forces and
torques, including inertia effects, for each arm link considered separately, while the Lagrangian
formulation, a special form of the Principal of Virtual Work, describes the system's dynamics in
terms of work and energy . Theses equations relate applied forces and moments to the second
time derivatives of the linear and angular absolute positions of rigid bodies, [2], [3], [ 4 ] ,
and lead to two opposite uses: for given input variations of driving forces and moments, joint
accelerations are computed with the direct model to yield, after time integration, joint motions
404

and end effector trajectory and velocity changes; conversely. in order to achieve prescribed tasks
specified as end effector motions. driving efforts are needed to overcome gravity and inertia
actions: their values are provided by the inverse model.

While these rigid body codes are today used to dimension actuators and structural links. they
show two limitations to achieve realistic dynamical analyses of present and future manipulators :
a) when the flexibility of some members is important. the rigid body hypothesis is no longer
valid since the kinematics and dynamics of the system are deeply influenced by deformation.
[ 5] . Since this feature can no longer be ignored. its control at both simulation and execution
levels needs be investigated. for instance on highly flexible manipulators in research labs.
While the accurate positioning precision of today's industrial robots mainly results from their
overdimensioned member stiffness and is paid for by a very small payload to dead weight
ratio. the tendency to increase this ratio and to reduce the amount of energy used to merely
move the structure will result in lighter and more flexible robot arms. Appropriate simulation
tools are thus needed to foresee the influence of deformation-induced phenomena on the
system's dynamics and to master them.
b) the actual driving efforts applied to manipulator joints do not simply reproduce the variations
of forces and moments obtained in a previous dynamical analysis simulation of the same
motions: these computed values indeed show errors due to badly modeled parameters and
phenomena. ( wrong dimensions and inertia values. ignored dry friction. omitted motor and
gear dynamics•... ) • so that the motion obtained from their strict enforcement on the structure
would be fairly different from that expected. Automatism is instead used to compensate these
deficiencies: the real efforts are generated by continuously checking how far away the real
behavior is from the desired one : sensors deliver real time data on positions. velocities•...•
and the error signals are supplied to a feedback controller that monitors actuator inputs in such
a way as to optimize trajectory tracking • [ 6 ] • [7] . In this closed loop control process. the
variations of the driving efforts and of the induced end effector motions highly depend on the
gain values: simulation capabilities become compulsory to analyze these major aspects of
robotdynamics.

While we simultaneously developed a rigid body analysis code based on the the Principle of
Virtual Work and could have enlarged it with some account of deformation (mode
superposition. simple finite element model). we decided that the best way to meet the above
double challenge was to complete an existing structural analysis finite element code. called
PLEXUS. with mechanism features such as the possibility of relative motions at substructure
joints. This program has been developped and used since 1977 at the Mechanical and Thermal
Studies Department of the Nuclear Energy Agency center in Saclay. France. This code is
integrated in a software environment called CASTEM 2000 • which provides it with pre- and
405

post-processors making it easier first to input data (free format keyword instructions to define
geometry, properties, boundary conditions, loading cases, and mesh visualization), and then to
analyze simulation results on paper drawings or color screen graphics ( displaced and deformed
structure, space distribution of variables, time variation diagrams of any quantity ).

PLEXUS was originally designed to solve fast dynamics problems leading to structural ruin,
such as projectile impacts, container or pipe explosions, for which mesh updating was
necessary. Any law of material behavior can be imposed to fluids and solids, either usual or
from experimental origin, [8], [ 9] . Full size experiments were achieved on real structures to
check PLEXUS numerical results and validate this code, [ 10] . The possibility to impose
relations between nodal degrees of freedom, and thereby ensure the partial or total connection of
distinct substructures, appeared as a favorable base for extending the code potentialities to the
dynamical analysis of any spatial articulated mechanical system, and especially manipulators
used in Robotics. PLEXUS makes it now possible to study them as if their component parts
were rigid, but further to analyze how the input of flexibility in some parts changes the system's
dynamics, and to check how controller parameters interfere with its response.
After the first section, devoted to the theoretical background of the code, the second part
presents the developments specifically made for robotics applications, and is followed by the
specification of program structure and syntax rules.

1 - PLEXUS implementation of basic continuum mechanics concepts

1.1 - Configurations of a deformable body


To analyze the evolutions of a deformable body 'D with time, [2] , [ 5 ] , we designate by :
'Do the domain which it occupies at time to, arbitrarily chosen as the initial instant and
designed to serve as reference for the calculations at later times,
'D't and 11 the two configurations reached at consecutive times 't et t = 't + ~t ,
~

1( = ( 0 , ej ) a fixed orthonormal frame used to decompose vectors and tensors.


A given point MO ( resp. curve AO ' surface r 0 ' or volume no ) of the 'Do domain is
transformed at time t into a homologous point M t (resp. curve At, surface r t , or volume n t )
in 11. The positions of Me and Mt in 1( are given by the column matrices of their coordinates:
~ T ~ ~ ~ T ~ ~
OMO = (a}. (el = ai· ei & OM t = (xl· {el =Xi·Cj
expression in which the Einstein implicit summation convention on repeated indices is used.

The transformation from Me to M t of a given point M in the domain 'D is expressed by vectorial
406

~ ~

bijections f and g, inverse of each other and defined by their components as :


{x} = ( f ({a), to, t) } {a} = ( g ({x), t , to) } (1)
Since each point M in fJJ is continuously transformed, two approaches are available to express
physical quantities or mechanical laws in this point:
* the material standpoint: it consists in following each particle M along its trajectory, from
its initial reference position Ma at to, with components {a}, and to express any quantity
orrelation a ({a},t) as a function of the'material' Lagrange variables , {a} and t.
* the geometrical standpoint: it considers that different particles successively go through
any given point P in space, defined by its components {x} in 9{, to express any quantity
orrelation G ( (x},t) at P in terms of its 'geometrical' Euler variables, {x} and t.
Let {x} be the position at time t of the particle M which started in {a} at to: the two expressions
a and G are obviously identical, i.e. : a ( (a},t) = G ( { f ({a},t O,t) },t) (2)
a relation satisfied at all t if the geometrical point P is moved along with particle M .

In a Total Lagrangian Model, the reference configuration 110 is kept the same during the whole
evolution : such a description is well suited for statical and vibratory analyses of solids, for
which position differences between the initial and deformed configuration remain small. If the
body undergoes large motions, the reference position can be changed : several successive
configurations fJJa are then substituted to the previous unique 110 and give rise to an Updated
Lagrangian Model. This is the approach used in PLEXUS, [ 81 , [91 , [ 101 , for the
dynamical analysis of mechanisms: updating occurs at the end of each time step by taking as the
new reference configuration at time t the one actually reached at the previous instant 't =t - ~t .
Finally, in the Eulerian description, the present configuration at time t is chosen as reference,
without consideration to what previously happened: although this is the only model in which
present quantities are introduced 'naturally', its application is limited to fluids and avoided for
solids. Nevertheless, since the real configuration at time t and its related quantities remain of
utmost importance, transportation relations from and to the reference will be defined. In the
following, the 'a' subscript is uniformly attached to the reference configuration ( either initial,
i.e. at to, or updated, at 't ) and to the quantities and relations there defined, whereas the 't'
subscript for the present configuration and related quantities is omitted for brevity.
-t -t ~

The vectorial difference: ~u =OM - OMa between positions of homologous points in the
present and reference configurations thus stands for either the whole displacement in the Total
Lagrangian description ( fJJa =110 ), or the displacement increment between two consecutive
instants 't and t ='t + ~t in the Updated Lagrangian description (fJJa =1lc ) .

1.2 - Stress vector defmition


Internal forces arise at time t in any point M of the moving deformable body : they represent
407

interactions between particles located in the vicinity of M and are expressed as the ratio between
~ ~ ~

an elementary force T . dr and the infinitely small surface dr on which it acts. This T ( M, n )
vector is called the stress vector and varies both with the location of M inside the body and,
~

for a given M, with the orientation of the nonnal vector n pointing away from that part of the
body on which the stress is computed.

~ ~ ~

The state of stress at point M , ie set of all stress vectors T ( M, n ) for all directions n, is
completely specified by knowing the symmetrical stress tensor at this point, tensor explicitly
defined by its six distinct components in the reference frame 1( in two possible ways,
according again to which configuration is used as a reference:
- in the Eulerian description of the movement, the present configuration 'D is taken as = the
reference: the state of stress in 'D at time t is given by the Cauchy stress tensor L ,
with components O'ij; the resulting force on a given surface r in 'D is thus integrated as :

F(t , 'D) = Ji. n~ dr = J Ti· ~ . dr = J O'ij. nj . ~ . dr (3)


r r r
- in the Lagrangian description of the movement, the reference configuration 'Da is one
which occured before the present configuration 'D: the=state of stress in 'D at time tis
expressed in 'Da by the Piola-Kirchhoff stress tensor n, with components 7ta~.
The stress integral at = time t on a given surface r in ~ 'D is computed in two steps using
the gradient tensor l' of the vectorial transfonnation f in Ma which relates homologous
vectors in the reference and present configurations:

= ~

F ( t , 'D) = l' • F ( t • 'Da ) (4)

( 4')

F(t • 'D) = J7ta~· na~ .1- · ~. dra = J7ta~· na~ . ix .dra (4" )

~
ra ra
where the Ea vectors are computed using the components 1ia = oXi loaa of the gradient
tensor matrix [1']. It is well known that the components of the two stress tensors are related by:

(5)

with: det ( 1') = Pa Ip ratio of mass densities at points Ma in 'Da and M in 'D.
408

1.3 - Dynamics equations


Two sets of equations need then be written for a moving defonnable body : first the equations of
motion, for points located inside the volume under study, and secondly boundary conditions at
points on the volume surface where forces or displacements are prescribed. For the two types of
reference configurations described above, volume and surface forces are then integrated as :
- gravity body forces:
-; = f Pa . ga . ~ . dQa = f p. gi . ~ . dO (6)
Oa 0
- boundary forces on that part r F of the surface r F of fJ) where forces are applied :

F= f ~
Faa . . drFa = f Fi.;; . drF (7)
rFa rF
The dynamics equations involving Cauchy stresses are referred to the evoluting present
configuration fJ), which must be known at time t to carry out derivation of stress components
O'ij with respect to position parameters Xj . Despite their simplicity due to their linearity:

(8)

they are often preferred the dynamics equations in tenns of Piola-Kirchhoff stresses since these
refer to the pennanently known 'previous' configuration fJ)a' The latter yield the more complex
fonn:
r a ( lta(3 • aXi lalla) I aap + Pa· gi = Pa· a2Xi I at2 in fJ)a
~ (9)
L aXi/alla' ltaIJ . naIJ = Fi· ( 1 + 3 )
where 3 is the change of surface ratio at point Mo in !Lb. In these non linear expressions, the
derivatives are computed with respect to the position parameters aa of the known reference
configuration fJ)a. In an explicit numerical integration code, such as PLEXUS, the present
configuration fJ), i.e. the actual one at time t , is known by the very choice of the integration
scheme: equations ( 8) are therefore used to compute those accelerations that balance internal
stresses in the configuration fJ) itself. This no longer holds for an explicit type code.

1.4 - Variational formulation. Principle of Virtual Work ( P.V.W. )


The Principle asserts that, at any given time t and for any distribution of virtual displacement
Su or virtual velocity v* imposed to any mechanical system at this instant, the following
relation on the developed virtual work or power holds:

or P*acc = P*int + P*ext ( 10)


409

~ T ~ ~
From the arbitrary virtual velocity field: v* = (v*) . (e) = v*i . ej ,Eulerian since defined on
1)t ' components of the rate of change in virtual strain Eulerian tensor are deduced to compute
3Wmt or P*int due to internal forces: D*ij = 112. (aV*i !aXj + Clv*j !axi) ( 11)
Equation ( 10) for the P.V.W. is strictly equivalent to the dynamics equations of the previous
section and results from integrating equations (8 ) or ( 9) , depending on which reference
configuration has been chosen, namely:

- with Euler variables, in the present configuration 1) in which Cauchy stresses are defined :
~

'V v* K.A.
f p. f fr f
(12)
a 2Xi/at2 . v*i . dn = - CJij· D*ij . dn + Fi· V*i . drF + p. gi . v*i . dn
n n F n
- with Lagrange variables, by transportation to the 1)a reference configuration in which Piola-
Kirchhoff stresses are defined : ~
'V v* K.A. ( 13 )
f Pa· a 2Xi/at2 . v*i· dna =- f 1ta~· D*a~· dna + f Fai· v*i· drFa + f Pa· gi· v*i .dn a
~ ~ ~ ~
the first term on the right hand side of this equation is transformed using, firstly, relation (5)
between Cauchy stresses CJij and Piola-Kirchhoff stresses 1ta~ and, secondly, the rate of
change in virtual strain Lagrangian tensor D* a~ ,defined as the counterpart in 1)a of the
Eulerian tensor D*ij by:
D* a~ = D*ij· axi jaaa . aXj jaa~

-f 1ta~· a~ . dna = - f 1ta~· <hi jaaa . aV*i jaa~ . dna


(14)
D*
na na
Since gradient tensor matrix components flia can be expressed from displacement components
between the reference and the present configurations as : aXi jaaa = Bia + a~Ui jaaa (15)

the resulting non linear quantities: a~Ui jaaa . aV*i jaa~ in ( 14) produce buckling matrix
terms, when discretized in an implicit code. In an explicit code, computations are instead
achieved on the known situation 1) at time t , avoiding non linear terms with equations ( 12) .

1.5 - Stress-strain relationship


In order to cope with any type of material behavior, elastic, plastic or of any other type, for
instance recovered from experimental measurements, PLEXUS is designed to handle them in an
incremental way. Let 1lt and ~ be the configurations reached by a deformable body 1) at
successive times 't and t = 't + ~t . For a zero strain change rigid body transformation between
these two instants, such as a rotation, the CJij(t) components of the Cauchy stress tensor at time
t are in general different from the same quantities CJij('t) at the previous instant, whereas the
410

two Piola-Kirchhoff stress tensor components at both times 1ta~(t) and 1t~('t) are identical.

Therefore, the incremental law must be written : 1ta~(t) = 1ta~('t) + fa~ ( L1£Id ) ( 16)
The reference configuration 1)a at time ta is also, by definition, the only one for which the two
types of stresses are identical: aij(t a ) =1tij(ta ) ( 17 )
When the latter is changed during the movement, in an Updated Lagrangian type formulation, in
such a way that at any time t the reference configuration be the previous one actually occupied at
time't , the incremental law becomes: 1tij(t) = aij('t) + fij (L1ekl) ( 18)
where strain increments are computed from the usual orthonormal frame relations with Euler
variables: L1ekl = 1 h . (aL1uk laxi + aL1uI laxk + aL1um laxk . aL1um laxi ) (19)
~

In PLEXUS, displacements increments L1u are assumed small with respect to body dimensions:
the product terms, normally to be kept in equation ( 19), are of order 2 and therefore vanish so
that strain increments reduce to : L1ekl = 1 h . (aL1uk laxi + aL1uI /aXk ) ( 20)

Piola-Kirchhoff stresses 1tij(t) are thus computed at time t in the reference configuration 1)'t
at time 't , using equations ( 18 ) and ( 20 ) , and then converted into Cauchy stresses aij (t) at
time t in the present configuration 1\: these are required during the next time step to compute
Piola-Kirchhoff stresses 1tij(t+L1t) at time t + L1t in the updated reference configuration 1)t .
This conversion results from relation ( 5 ) :
aij(t) = P /Pa . aXi /aaa . aXj /aa~. 1ta~(t) (5')
with partial derivatives substituted from ( 18) . Discarding terms of order greater or equal to 2
results in:
aij(t) = P /Pa . [ 1tij(t) + aL1ui /aaa . 1taj(t) + aL1Uj /aa~. 1ti~(t) ] (21)
Replacing partial derivatives w.r.t. the reference coordinates by those w.r.t. the present ones:

and after reintroducing Cauchy stresses: 1tij<t) =aij('t) + fij «(L1e}) this approximation reduces
m: (D)
aij(t) = aij('t) + fij «(L1e}) - aL1um lax m . aij('t) + aL1ui laxk' akj('t) + aL1Uj laxi' ail('t)
or, in the final matrix form :

[ a(t)] =[ a('t)] + [f[ L1e] ] - Tr ( [m] ). [a('t)] + [m)T . [a('t)] + [a('t»)T . [m]
411

1.6 - Time integration and stability criterion


Let us consider that in the ~ configuration at time tn all dynamic quantities are known :
at
geometry {xn} ,velocity {vn} = o{Xn} / ,and acceleration {Yn} = 02{xn} / 2 , ot
Their computation at the next instant during numerical integration: tn+l = tn + dtn+l is based
on the well known explicit integration algorithm called the 'Central Difference Method', using
the following set of equations, in which variable time steps dtn+ 1 can be used :
- prediction of new geometry: {xn+tl = {xn} + dtn+l' {vn} + 1/2. dtn+12. {Yn} (25)
or: {dUn+l} = {xn+tl - {xn} = dtn+l . {vn} + 1/2 . dtn+12 . (ynH 25')

for the displacement change.The new corifiguration ~+l is therefore completely known .
- anticipation of new velocity: {vn+tl = {Vn+l/2} + dtn+lh· {Yn+tl (26)
= [{vn} + dtn+lh· {Yn}] + dtn+lh ·{Yn+tl

- strain increment definition during time step dtn+ 1 by referring the difference in displacement
changes {dUn+l} and {dUn} at two consecutive instants to the corresponding position change
{xn+tl-{xn} : [Wn+l ] = [d{dUn+tl / d{Xn+tl ]
[dEn+l]= 1/2.[[Wn+1 ]+ [Wn+1)T] (27)

- Cauchy stresses updating in the new configuration at time tn+l using the incremental relation
described in the previous paragraph:
[ 0n+l ] = [ On] + [f[ &0+1 ] ] (28)
- Trace ( [ Wn+ 1 ] ) •[ 0n+ 1 ] + [ Wn+ 1 )T • [ 0n+ 1 ] + [ 0n+ 1 ]T . [ Wn+ 1 ]

- dynamics equations at time tn+ 1 : \;J v* K.A.

f p. f p.
(29)
Yin+l . v*i· dO = gi· v*i· dO + f Fin+1 ' v*i· drF + f 0ijn+l' D*ij . dO
0n+l 0n+l r F n+ 1 On+l

Since the second member of this equation is known, the acceleration {Yn+1J is computed at time
tn+l and the velocity {vn+1J is deduced from (26). This way, all dynamical quantities are
known at the end of this time step, and the same procedure is reproduced for the next instant
tn+2 = tn+l + dtn+l ' at the end of the (n+2)th time increment

However, explicit codes, which appear in the above procedure as easy-to-chain calculations,
conversely show the major disadvantage of their conditional stability : computation results will
only converge to stable and exact values if the time increment dt used for numerical integration
is smaller than a given limit value dtcrit ,shown to be inversely proportional to the stiffness of
the elements that build up the structure: dtcrit = Inf (Le/ce) ( 30 )
412

with: Le: smallest dimension of element e , ce: sound velocity in the element's material.
This stability limit time is thus enforced by the stiffer part of a material system and induces long
and costly calculations, especially for the more flexible parts for which a much larger time
stepcould be afforded. Since a nearly rigid substructure, as often encountered in manipulator
links, would drag the limit time step to tiny, and therefore unacceptable, levels, we implemented
in PLEXUS a rigid body model which is detailed in the next part of this document

1.7 - Space integration


Since each particle M of a deformable body has three degrees of freedom, namely three
translations measured in the motion's reference frame !l{" the real displacement field (ur(M)}
theoretically contains an infinite number of independant parameters. In pratice, such a size
cannot be handled and an acceptable approximation of the problem is required to model the
system's behavior with a fmite number of parameters. At the poorest end of kinematical models,
the rigid body one only possesses six d.o.f. to describe the movements of all its points, namely
three translations and three rotations, so that no deformability can be modelled, which may
sometimes prove unsufficient. More realistic models consider that, during motion, neighboring
particles in a deformable body are neither rigidly linked, nor fully free to move away from each
other because of the intrinsic stiffness in the material that keeps separating distances 'close' to
their original values. And instead of approximating the real displacement field (urCM)} as a
unique continuous function over the entire body, piecewise models are preferred, based on
subdividing the volume of the system under study into a large number of contiguous pieces,
small in size with respect to its overall dimensions. These elements are interconnected at a
limited number of nodal points, the displacements of which become the problem unknowns.
This type of approximation has given birth to many widely used Finite Elements computer
codes, each with its own library of elements, individually specialized for the different types of
problems at hand: 1-0,2-0 or 3-D approximation of the structure; number of internal and/or
boundary nodes; number and nature of nodal degrees of freedom; types of materials: solid,
fluid, coupling; .... The interference of this technique with the dynamics equations is shortly
presented below for the PLEXUS code.

Let (u(t)}e be the column matrix containing the time varying translational and/or rotational
d.o.f.'s at the nodal points of an arbitrary element e in a given mesh. At a current point M in this
element, the displacements are interpolated from these nodal unknowns using polynomial shape
functions ~({x}), the variables of which are the coordinates {xM} of point M in the frame local
to element e . The values ~({XM}) show how the i til nodal d.o.f. of the element influences the
displacement components at point M: «IIi({xM}) varies between 1. and O. with the location of
M . Applied to displacement ( the same holds for velocity and acceleration) , the shape function
413

interpolation reads in matrix notation:


{u ({XM},t)}e = [$({XM))] . {u(t)}e (31)
Derivating displacements w.r.t. position variables yields strain components as :
{e ({xM},t)}e = [B({XM))] . (u(t)}e (32)
where the [B({XM})] matrix collects derivatives of shape functions $i({xM}) with respect to
position parameters in the element's local frame. The kinematically admissible virtual velocity
field and the associated matrix of virtual strain rates, required in equation (29) of the P. V.W.,
are simply reproduced from the interpolation formulae used for the real displacement field:
{v* ({ x})} e =[ $( (x}) ] . {v*} e ( 33 )
{D* ({x})}e = [B({x}) ] . (v*}e (34)
Thanks to these hypotheses, the first member of equation (29) for element e is rewritten as :

J P·'Yin+l·V*i·dO = {v*}:. (J p.[$({x})] :[$({X})].dn).{Yn+l}e (35)


°en+l Oen+1
The term between braces is the symmetrical mass matrix of element e, containing as many rows

J
and columns as d.o.f.'s at the element nodes:
[ Me ] =
p. [ $ )T. [ $ ] . dO (36)
Oe
In the same way, the three terms on the right hand side of equation (29) become:

J p. gi· v*i· dO = T
{v*} e . (
J T
p . [ $( (x}) ] . {g} . dO ) (37)
Oen+1 Oen+l

J Fin+l· v*i· drF = T


{v*}e. (
J T
[$({x))]. (Fn+tl. drF ) (38)
rFen+l rFen+l

J 0ijn+l· D*ij . dO
T
{v*}e. (
J T
[$({x))]. [On+l] . dO ) (39)
Oen+1 °en+l
Collecting as external (resp. internal) forces at time 10+1 all matrix quantities between braces
in equations ( 37 ) and ( 38 ) , ( resp. ( 39 ) ) , these read:

{Fextn+l1e = J p.[$]T.{g}.dO + J [${.{Fn+1}.drF (40)


0en+l rFen+l

{Fintn+l1e = J [B] ~ [on+l]· dO (41)

~+1
so that equation (29) for the P.V.W. is extended in matricial form to all the elements building
the system under study as :
414

~ T
\/v*: L {v*}e.{ [Me].{Yn+tle-{Fextn+l}e+{Fintn+l}e} =0 (42)
e
Derming the three column matrices, extended to the whole dimension of the problem ( i.e. with
as many terms as the number 9{ of d.o.f. 's for all the nodes of the system) , of the cumulated
internal forces, cumulated external forces, and of the accelerations at all nodes of the mesh:

{Fintl = L {Fintle {Fextl = ~ {Fextl e and hl = Ext hle


e e e
and the square matrix of the structure's total mass obtained by adding the separate contributions
of all the elements: [ M] = ~ [Me]
e
the final linear system of 9{ equations to be solved for the 9{ unknown nodal accelerations at
time tn+l reads : [M] . {Yn+1} = {Fextn+l 1 - {Fintn+l 1 (43)

To reduce calculation times, especially during inversion, the mass matrix is condensed into a
diagonal form as : [ M'i ] e =~ [Mij] e ( 44 )

1.8 - Couplings between degrees of freedom


If two bodies 11 and ~ are meshed separately, their interconnection, either total to represent
a rigid body or partial to model a mechanism, requires that appropriate relationships be imposed
to the different d.o.f.'s of the distinct nodes Nj(el) and Nj(e2) that realize the junction of the
elements el and ~ belonging to the two structures. Therefore, the number of unknowns is no
longer minimal and some d.oJ.'s that were originally assumed to be independent parameters are
constrained by these relations: the size of the linear system to be solved is thus larger. The
constraint equations are designed to satisfy two goals:
- from the'Idnemetical standpoint: having nodes Nj(el) and Nj(~) in coincidence at all times
requires that their coordinate { x } or displacement components { u } be equal. Generally
speaking, PLEXUS is capable to handle couplings between nodal degrees offreedom given
in the following form: [ C ] . {u }~ {D } ( 45 )
where { u } is the column matrix containing all d.o.f.'s of the system,
[ C ] is a coefficient matrix partially fllied with constant or variable terms ( varying with
time or configuration) ; there usually is a small number of non-zero Cij terms that
correspond to the coupled d.oJ. 's
{ D } is the right hand side member, that can also be non-zero.
The specific application of this procedure to node full connection, as in a rigid body, or partial
linkage, as in a kinematical mechanism, is detailed in the next part of this paper. In these
cases, the equality sign prevails in equation ( 45) : [ C ] . {u }= { D } ( 45')
in which the Cij and Di coefficients will be assumed time independent
415

- from the dynamical standpoint: in order to ensure that the above kinematical relations be
achieved for couples of nodes Nj(el) and Nj(eV , complementary forces must be added to the
dynamics equations on those rows refering to coupled d.o.f.'s.
The dynamical behavior of the whole structure with interconnected nodes is then expressed at
time tn+l by the matricial system (43), including all d.o.f.'s but with added complementary
forces {Fcomp} such that the induced acceleration {Yn+tl produces a new geometry which
fulfills node linkages:
[ M] . {Yn+1} = {Fextn+l} - {Fintn+l} + {Fcompn+l} (46)

These couplings are dealt with in an implicit manner ( whereas all other d.o.f.'s are still
handled in an explicit way): this requires that v new unknowns parameters p.} called
Lagrange multipliers be solved for, one for each of the v constraint equations, which are such
that: {Fcomp} = [C]T. {A} ( 47)

From a variational standpoint, equations (29) and (42) for the P.V.W. express that an energy
type integral ( the whole potential W of the structure) is minimized with respect to each of the
system's 'l{. position parameters uj . If these unknown variables are subjected to v constraint
equations Bl({u}), B2({u}) , ... , av({u}) , mathematics say that each of the dynamics
equations (43): aw /aUi , i =1,'l{. , derived for each parameter as if they were all
independent, must be completed by the sum of terms: Ak. a8k/dui .
For linear constraints with constant coefficients {o} = [ C] . {u} as in ( 45'), this reduces to :

=>
T
{q }denoting the ith row of matrix [ C] • Collected for all equations as [C] . {A}, these
complementary terms change the dynamics equations, at time tn+l for the constrained system,
into: {[ M] . {Yn+tl - {Fext n+tl + {Fint n+tl } - [Cn+tlT. {A.n+l } = 0 (48)

The computation of the Ak n+l'S and their related connection forces {Fcomp n+l} results from
eliminating unknown nodal accelerations {Yn+ I} from the 'l{. + v equations ( 45') and ( 48 ) .
Twice derivating kinematical constraints w.r.t. time as : [ C ] . {Yn+ I} = 0
while inverting (48) into: {Yn+tl =[M ]-1. { {Fext n+l} - {Fint n+l} + {Fcomp n+l} }
one gets:
[C] . [M ]-1. { {Fext n+tl- {Fint n+tl} = [C] . [M ]-1. [ C]T . {A.n+l }

=> {A.n+l } =[ [ C] . [M]-1. [ C]T ]-1. [ C] . [M ]-1. { {Fext n+tl - {Fint n+tl} (49)

Reintroducing the computed Lagrange multipliers into ( 48 ) ends the calculation of accelerations
416

{Yn+d at time tn+l which duly account for node connections. And thanks to this treatment,
substructure partial or total linkages are automatically fulfilled at all times of the integration
process at the condition that they are satisfied at the initial instant to.

2 - Specific developments for the dynamical analysis of mechanisms

2.1 - Rigid body model


Because of its implicit nature, the Central Difference integration algorithm imposes a stability
limit L\tcrit which is so much time consuming when rigid parts are included in a mechanical
structure that a new approach was imperative to handle that precise case.
The first step in building the rigid body model arises from the fact that for any previously
defmed subdivision of a solid into fmite elements and nodal points, the mechanical properties
( i.e. : mass M, location of the barycenter G and six components of the central inertia tensor in
the problem's reference frame) will be conserved by replacing these many scattered nodes by an
equivalent set offour appropriately located equal point masses at fixed distances from one
another. The positions of these four points in the central principal frame ~ attached to the
solid, are computed as :
A 1 =( O,-b,-c) A2 = ( 0, b, -c )
A3 = ( -a, 0, c) A4 =( a, 0, c) ( 50)
a, band c being deduced from the principal inertia components Jx ' Jy ' Jz in 1ts as:
a = (Jy + Jz - Jx ) / M b =( Jx - Jy + Jz) / M c =(Jx + Jy - Jz) /2* M (51)

The second step in 'rigidifying' the solid results from the condition of constant distances
between any two points Mj and Mj in a rigid body, i.e. :

--+ --+ --+ --+--+


MjMj • dMjMj / dt = MjMj • (Vj - Vj) =0 (52 )
equations which reduce the too many d.o.f.'s of the mesh nodes to the sufficient six degrees of
freedom for the rigid body . In particular, when applied to the four points A ,these kinematical
constraints reduce the twelve d.o.f.'s so introduced to the six expected ones. k

Therefore, to create a rigid body in PLEXUS, the user has to specify the group of mesh points
Mi which will be replaced by the four point masses Ak . He must also take care to designate the
necessary connection points Pj through which the rigid body will be, either completely or
partially, linked to other substructures: these frontier nodes will be excluded from the reduction
process. The mechanical properties of the solid are then either computed internally from the
mass distribution at the remaining nodes Mi ' or can be directly input by the user himself if
precisely known values are to be employed.
417

Position parameters for both the four Ak points and the ~ chosen frontier nodes Pj therefore
satisfy (6 + 3*~ ) scalar conditions of type ( 52 ) . If these relations are fulfilled at time tn, the
condition inferred on the position {xn+ I} at t n+ 1 in order that the kinematical couplings remain
true is obtained as follows:
- at the end of the n.th time increment:
I J n + dM·M·]2
[ (M·M·) I J =(M·M·)J n2 --
I
T ••2
'-1)
so that relation (52) becomes : -+ -+ -+
[(MiMj)n+l + (MiMj)n] • dMiMj = 0 ( 52')
or in tenns of components, writing: {6xij) = {Xj} - {xi}
=> {{ 6xij n+tl + {6xij n}}T • {{6xij n+tl - {~Xij n}} = 0 (53)
- positions are deduced at the end of the (n+ l)th time step from the Central Difference relation:
{xn+tl ={xn} + ~tn+l . {vn} + 112· ~tn+12. {Yn} ={xn} + ~tn+l . {Vn+l/2}
so that: {~Xij n+l} = {~ij n} + ~tn+l . {~Vij n+l/2} (54)
- reporting ( 54 ) into ( 53 ) leads to the set of relations that positions, and also displacements,
must satisfy at tn+ 1 for the rigid body condition to hold:
2 . {~vij n+1/2}T • {~Xij n+l} = ~tn+l' (~Vij n+l/21 2 (55)
After such relations have been written for all pairs of rigidly connected points Ak and Pj in
the body, relations (55) are grouped in the following matrix fonn: [ C] . { u } ={D }
similar to equation ( 45') but in which the right hand side is time variable and the values for
the v * 9( coefficients depend on the nodal coordinates at time t
- coupled with the similar equation written at instant tn+2, relation (55 ) induces the condition
that accelerations must satisfy at tn+ 1 for the solid to behave rigidly:
{~Vij n+3!2}T. { 2 . {~Xij n+2} - ~tn+2' {~vij n+3!2}} =0 (55')
with :
{xn+21 = {xn+tl + ~tn+2' {vn+3!21 & {vn+3!21 = {vn+l!21 + 1/2· ( ~tn+l + ~tn+2)' {Yn+tl
This is ultimately simplified to the first order as :
{ {~Xij n+d + ~tn+2 . {~Vij n+l!2ll T. {~Yn+d =- (~Vij n+l!21 2 (56)

which are the relations to be observed at time tn+l by the accelerations {Yn+tl of the rigidly
interconnected nodes: [ Cn+l ] . {Yn+l} = {Sn+l} (57)

These v relations, with a known non-zeroright hand side {Sn+ I} , induce again complementary
forces: {Fcomp n+l } = [Cn+l]T. P''1l+tl
which modify the 9(dynamics equations ( 46) at tn+l , and the v involved Lagrange mUltipliers
A.k n+ 1 are computed as in section 1.8 by eliminating the unknown nodal accelerations {1n+ I}
from the 9(+ v equations ( 48 ) and ( 57 ) :
{A.n+l } =[H ]-1. ([ C] . [M ]-1. { {Fext n+tl - {Fint n+tl} - {Sn+l}) (58)
with: [H] = [[C].[M]-l.[C]T]
Reintroducing the multipliers into (48) directly delivers the acceleration components {Yn+d .
418

2.2 - Elementary mechanism model


In articulated mechanisms, different rigid or deformable substructures are interconnected by
suppressing from one to five degrees of freedom at shared joints. While a general instruction is
available in PLEXUS to prescribe relations between d.o.f.'s, we have specialized it to the three
most often employed elementary technological mechanisms: the revolute or pin joint, the
sliding or prismatic joint and the spherical or ball and socket joint Other models can easily be
developed ( universal joint, sliding plane, ... ) , according to the following concept which was
used for the three previous ones.

An elementary mechanism is defmed as a new type of element composed of:


* two end nodes LA and LB ,both having the same geometrical position, and possessing 6
d.o.f.'s to authorize the writing of any kinematical relation. ~
* the unit direction vector of the relative motion axis at the joint, VAB ' through LA and LB .

Besides this information, the user must also input to which substructure Jll. (resp. I}J) node LA
( resp. LB ) is rigidly connected, in order that the imposed kinematical relation be effectively
applied to the two mechanism links. If the relevant substructure, say jlf. has been divided into
elements with 6 d.o.f.'s per node, the corresponding mechanism end point, say LA , can be
directly identified to one of the substructure nodal points. Conversely, if nodes in Jll. only have
three translational d.o.f.'s, the user must choose a vicinity area including at least four non
coplanar points of Jll. from which angular information can be transferred to LA: only then can
the appropriate kinematical relations be written for that elementary mechanism.

The following equations for a pin joint show how~the related five scalar kinematic constraints
are treated in the element's local frame based on VAB . Let (&-A n+l) and (.19A n+l1 be the
translational and rotational displacement increment submatrices of (.1uA n+l) at node LA during
time step n+ 1 . With the same notation for node LB ' the partial linkage of the two end nodes LA
and LB during that time increment induces the following five scalar equations:

~ ~ ~ ~

- translation identity .1rABn+l = .1rAn+l - &-Bn+l =0 (59)


~ ~ ~ ~

- rotation freedom along VAB .19AB n+l = .19A n+l - .19B n+l (60)
~ ~ ~ ~ ~

.19AB n+l - [.19AB n+l • VAB n+l/2] VAB n+l/2 = 0 (61)

The induced relations on d.o.f.'s, presenting coefficients that vary with nodal positions and
-t
orientations at time tn ' are again handled by the Lagrange multiplier technique. Since the VAB
axis is moved along by the displaced and deformed substructures which it joins, it is updated at
419

the end of this time step as :


-+ -+ -+ -)
V ABn+l = V ABn + ~eAn+l A V ABn (62)

2.3 - Control model


Since the dynamics equations incorrectly model, and even omit, actual phenomena ( mass and
inertia distribution, friction, motor dynamics ), the results they yield cannot be directly applied
to move mechanisms. Instead, automatism principles are used to control the different motion
parameters of the structure by continuously checking how well they stick to their prescribed
variations. This information, delivered by position and velocity sensors, is sampled at fast rates
and the measured error signals are amplified to induce correcting motor actions tending to make
them vanish. The most simple and widely used control techniques are based on constant gain
linear P.I.D. controllers which, by proper tuning of their gain values, can be made quite
effective to handle nonlinear phenomena. We therefore introduced the modeling of this feature in
PLEXUS to enable the code to better simulate actual manipulators and to make it a good testing
basis for new more sophisticated control algoritms. As for the presently available P.I.D.
models for independant joint control, they are based on the following ideas :

* Proportional : the position difference (qj(t) - qjd(t» is used to derme the correcting effort at
time t according to : Fj(t) or Cj(t) = - KjP . ( qit) - qjd(t) ) ( 63 )
where qj(t) stands for every actual degree of freedom, linear or angular, at manipulator joints,
and qjd(t) for its 'desired' counterpart.
Proportional control at a joint acts like a local spring with stiffness KjP and with a varying
equilibrium position qjd(t) : the restoring force Fj or torque Cj tends to cancel the forward
[ ( qj - qjd ) > 0] or backward [( qj - qjd ) < 0] difference existing at each instant.

* Derivated : a similar treatment applied to the fIrst time derivatives qj'(t) and qjd'(t) of each
individual joint's real and desired parameters leads to :
Fj(t) or Cj(t) = - KjD . ( qj'(t) - qjd'(t) ) ( 64 )
* Integral : extending the above relations to the time integration of joint parameters provides the
third classical control component as :
Fj(t) or Cj(t) = - KjI . ( Qj(t) - Qjd(t) ) ( 65)
where the two areas spanned in the time domain (t, qj(t» are compared :
Qi(t) = f toll qi('t)· d't and Qid(t) = ftotl qid('t). d't

In PLEXUS, P.I.D. control simulation requires that constant gains KjP, KjD and KjI be fixed
for each one d.o.f. joint, and that a prescribed parameter variation qid(t) be input in functional
or tabulated form. If .9l and tJ3 are the substructures connected by joint j ,control simulation on
-+
this active d.o.f. at time tn induces a correction effort along the motion vector V AB n for that
420

joint: the resulting d.o.f. variation during time increment (n+ 1) is computed while the other five
constrained d.o.f. 's for that joint satisfy relations, such as ( 59 )-( 61 ) above for a pin joint.

2.4 - Electrical motor and transmission model


The previous controller model is not still appropriate for two reasons : first, control is not
actually exerted directly on the motoring force or torque, but rather on the quantity input to the
motor: current voltage or intensity, fluid pressure, ... ; secondly, in order to fulfill the above
requirement, the mechanical behavior of the motor, gear box and transmission equipment must
be integrated in the dynamics of the entire system.

Since this type of actuator is widely used in motoring mechanisms and presents well known
equations, the direct current electrical motor has been implemented in PLEXUS. The following
equations express how the torque C a transmitted to the output shaft, and therefore available to
move adjacent links, is related to the input motor tension Va that is usually monitored through a
P.I.D. controller as described above. They also stress why the dynamics of motoring devices
cannot be discarded : a large part of the current induced torque Cm applied to the rotor is
dissipated merely to overcome the inertia Jeq of its rotating parts and dry and viscous friction
resisting torques Cf and f. 00m . Considering the following notation: R, L : resistance and
self-inductance of the coil; E: counter-electromotrice force of the D.C motor; Ke: its
proportionality coefficient; Om: output angular velocity of the motor; N: gear box reduction
ratio; Va: input current voltage; I: current intensity; em: torque generated on the rotor;
Km : torque proportionality coefficient (and i, general: Ke = Km = K); the electrical and
mechanical equations then reduce to :

Va = R· I + L • dI/dt + E E = Ke • Om Cm = Km • I ( 66)
N • Cm = Jeq • dOOm / dt + f • 00m + Cf + C a ( 67 )

in which 00m is the arm relative angular velocity; Jeq is the equivalent inertia moment for all
rotating parts, referred to the output shaft of the gear box; f is the equivalent viscous friction
coefficient referred to the same axis; Cf is the dry friction torque in the same conditions; and
C a is the available torque at the output of the gear box and thus applied between the two
adjacent links. All these properties must be input by the user and considerably influence the
structure dynamics and control responses, especially when high reduction ratios are involved.

3 • Examples

The data files for the 'Plane Motion Mechanism' test example defined in this handbook are
displayed at the end of this document. Comments are spread all over these input files to make
421

them easy to rea(i. In a first step, the geometrical definition and visualization of the system to be
analyzed is achieved by the GIBI pre-processor and this fIle can be interactively corrected; its
output is recovered in a second step by a PLEXUS file, in which other analysis conditions are
defined and execution started. Without going into free format input details, it is seen that
understandable keywords and symbols are used to define all necessary data for the analysis:
geometry, material properties, element types, loading conditions, calculation and output
requirements. Named entities are introduced to create points, lines, surfaces and volumes,
which can then automatically be subdivided into finite elements by means of condensed
instructions. Separately meshed parts can easily be concatenated into a new named entity.
Varying data are input either as predefined functions: sine, cosine, ... ,or as tables of numerical
values.
Before the whole calculation is started, a check run of one step displays in an easy-to-read form
all data stored in PLEXUS internal files: all input values can thus be checked for correctness.
And after simulation is completed, output diagrams can be drawn with sufficiently explicit
comments for an easy understanding. Mechanism animations result from drawing deformed
positions of the structure at selected time intervals, either superimposed or individually.
Four output curves for each of the two test examples are reported below, keeping the same
notations as those suggested in the example definition file .
• r--.--.--.r--r--.--.---r--r--.~
12 bltodlll

o
·4

-.
..
·12

0.006 0.012 0.011 0.0)0

PlANE MOTION OF MECHANISM CE' I ENS'" PLANE MOTION OF MECHANISM CEA I ENS ... ""
USTOI • PUJ\6 USTOI • ru.us
6 Jl40rll 11.' 6 Man 1989

.O~-r--~-.---r--.-~---r--r--r--'

lltodl 120 lltod/ll


0.40
10
0.34
40
0.21

022

0.•

0.\0

0.040L-,---...J...,--.JL-~:--.L..~::-....L-~~--'-~0.O)o·16O 0'----L--0...J.006---'---'----L---:......,.---J'---'---~--:-'
0.006
PlANE MOTION OF MECHANISM ~~ .f:;: PLANE MOTION OF MECHANISM tEA I ENS"'"
U\lDC1 - PlElU50
6 "Qro 1919 6 "0,. "19
4.4, c:::;;;aoo=y t
I\)

4.0
~
.g
8-
g
s 16
.g Jl
s ~ 12
=-= e:
~ 2.8
8- 1
~ 1.4
=n vr::s -0.76!-'_...J._-:'_.....J_-:ll:-_L-_.':-._.L-_-:":-_...L._-:!:_....J
...... ~
~-
=n el Ci1 o o ~ u u u u
oq 0. '" 8.
~ tn- to-' SPATIAL MOTION OF ROBOT tEA I ENSAM SPA TIAL MOTION OF ROBOT tEA I ENSAM
CASTEll· lUXUS CASTEll· lUXUS
rA ~ 0 ~ 12 Juan 111111 12 Juin 19811
VI
... ~
CD ~"'" 8.
08"0 g. 18,r----r---,----r----r---,----r---,r---,--=~~=-:¥~9F--~
00 CD Ci1
r:o ::s < '"
vr _. 0' 2.0 f- Linear. I
14 velocillu
8" 0' g "0...
< ... '" 10 L6
CD ~ "0 {
'-'r:o&:
a. CD 2.6
~'-' 12 ~!;-'
[ 2.2
§ .....
~. 0..
L8
~
8
8. 14 0.4
g 8g.
::s LO
o Time I&~
! ! 0.4 0.. 12 o 0.4 0.8 12 L6 2.0
'" Ia.
SPATIAL MOTION OF ROBOT tEA I ENSAM SPATIAL MOTION OF ROBOT tEA' ENSAM
'" CASTEll· PlEXUS CASTEll· lUXUS
12 Juin 111811 12 Juin 111111
FlU: TfSTl 00181 Al WELC01E TO 5MI'S \tVSPS QoIS Sl1
flU; 'l!ST1 00181 Al WEl..CCI-!I 10 SHI'S 'M,ISPS CotS Sll flU; 'ft:ST1 teIS! A1 WEI..CCJ1[ 'I'O SHI'S "¥M/SPS 05 511

Tl"mI ·PI..AHE t«:1I'JON MEOWUSM';


« LJ. • AR. D 1 5:
CPTI DIME 3: RESSCitT • U. COOL VERT:
W'INITION m:s POINTS MATERIELS
CPTl fUM SEC2;
OfIL • 0 0 1000:
PO - 0 0 0: POSITIONN!MENT [£5 CDRPS (R.D'ERE a...oJW..) PHJ .. MN«JEL pOn PO;
PI. • • • 06934442016 ·.OQl21510601 0: ----_ .. _--------- FHA '" Ho\NUEL POll PA:
PB· ·.03635-l650sa .03213386191 0: fHB .. HMUEL pOll P8:
pc • • 014 .012 0: talPS 1 f'f'C .. MNlJEL POll PC:
PQoI,\ - PtO ET FHA ET He IT PIC:
ANG1 '" -3.SS2000457:
D[fINITIONS DES PI..RAHE'mES ta>L cawSl 'roURH ANCl Al (0 0 1):
[£fINITION [£S Plvors
CXlU'S >
Dl • • 021; ~ • • 0115: E - .01: EA. - .01421: ZF • • 01: FA • • 01421:
.. - .007: JA - .0009231: 5 • • 035; SA. - .018145; 58 • • 01043: AHC3 • -63.90519603: VEC] '" P8: PIVl • w.NUEL SEC2 PO Al:
SC - .010: SD· .02: ZT - .04: TA • • 02308: re •• 009163: U • • 04; ~PL (XJU'S3 'roURN J..NC3 1.3 (A3 PLUS (0 0 1»:
PIVl - MANUEL SEC2 81 Al;
UA. • • 01228; UB - ·.004493: ta>L CXlU'S3 PLUS VIC3: PIV3 • MANUEL S[Cl Bl &3:
PIV" - MANUEL SEC2 Bl A4:
CCIU" • PIVS - Mo\NlEL SEC2: At A6;
DEFINITION [£5 CClU'S (REPEJlE LOCAL) PIV6 - twIUE.L SEC2 56 B1:
...... _.. -...... -...... ---. -- .... --. -_._-- --_ .. _- I.NCl '" 176.4471159: VECl • Sl: PIV7 • WMJEL &ECl A7
PI.;
~PL cau>Sl PLUS VEC1: flV& • twfUEL $EC2 PA
AS:
CXlU'S 1 [£PL CXlRPS2 10UItN ANCl Al (Al PLUS (0 0 1»: PIV9 - twfUEL 5ECl1M:
as
PIVlo- A.3:
Mo\NUEL SECl P8
AI • 0 0 0: 81 . . . 0 0: C1 • ItA 0 0: C<lU'S 5 PIVll- AR:
MAHUEL SEC2 Dl
U • Al D 3 C D ) B1: PIVll- PC:
JoWNfL Sf:C2 ell
CORPS1 • L1 CDUl. BLEU: ANCS • 27.93275294: VICS • Pl.: PIV • PIVl £T PIV2 ET PIV3 IT PIV4 ET PIVS IT PIVE. IT PIV7:
[£PL CCltPS5 'I'OUlW ~ AS (AS PUIS fO 0 1»; PIV • PIV IT FIve ET PIV9 IT PIVI0 ET PIVll IT PIVll:
CXlU'S • [£"PL CXJU'SS PLUS Vl"C5:
MECAPU.N .. c:x:ews IT PIV IT RfSSOllT E'l' f'aoi.I. IT 8o'.Tl:
A2 - 0 0 0: al -01 0 0; Cl • ~ 0 0: CXlU'S 7 ·sarrlE t£CAPLAN:
U • ~ 0 3 Cl D l 82;
CORPS2 • L2 CDUL Roue; ANC1 • -19.47610036: VEC1 • PA:
lD'L cawS7 'roURN AJlC'1 A7 (A7 PLUS (0 0 1»:
aJU>S • tlfPL CCJlU>S7 PLUS VEC7:

A3 • 0 0 0: al -5 0 0; D3 • SC SO 0:0 - SA. sa 0: taIPS •


L31 - Al 0 l C3 D 3 B3: L]2 - C3 0 3 03;
CDRPS3 - L31 IT L32 CDUL !lOSE: J.HC4 .. 130.7084983: VIet - 83:
t£PL CCl\PS4 'I'OURN A.NG4 At (M PLUS (0 0 1»):
aJU>S • ~L CCIlPS4 PLUS VEC4:

...4 - 0 0 0: &I - E 0 0; CI • EA. 0 0; CXlU'S •


LA. • At D 3 Cf, 0 l &4:
CX>RPS4 • LA. COUL .lALIN: A1¥:;6 "'237.74666551: VEC6. 83:
[£PL CCjU)S6 TOURN ANC6 A6 (A6 PLUS (0 0 1»:
CCIU'S S ~PL cau>S6 PLUS VIC6;

AS • 0 0 0: IS - ZT 0 0: CS .. T.A. 1'8 0: R£SSQItT


L5-ASDlCS03BS:
OOJU>S5 • LS COllI.. VERT: MO· 62.30712521: VEat '" D]:
~PL RfSSORT TOURN JJQ. AR (AR. PLUS (0 0 1»;
CCIU'S • DEPL RfSSQRT PLUS VIOl:

AD· 0 0 0: 56 • 'ZE 0 0: C6 5 FA 0 0: CDlU's-<XJIU>51 IT CClRPS2 IT CORPS3 IT CDRf'S4:


L6 • lib 0 3 C6 0 3 86: OORPSt;;;{X)RPS IT CQU>SS ET o:»tPS6 IT CClRPS7:
CX>RPS6 • L6 OJUL 'nIRQ:

"",,"s 7 DfFINITJON US BATIS

1.7 - 0 0 0: I n . U 0 0: C1 II< UA U8 0:
L7 '" 1.7 D 3 C1 0 3 87: Pl· -.0015 -.003 0: P2" .0015 -.003 0: PO'" 0 0 0:
CDRPS7 • 1..7 COUL BLfU: BATJO ... PO D 1 Pl D 1 Pl D 1 PO: ./>.
IV
BATJA '" BATIO PLUS PA:
R£SSQItT BATIe., MTIO PLUS pe;
MTJC .. MTIO PLUS PC:t£PL BATtC TOURN 180 PC (pC PLUS (001»:
'"
AR. .. 0 0 0; fIR '" 5.2667£-2 0 0: BATI "" aAl'JO fT MTIA ET 8AJ'IB £T MTIC:
FHZ. 1'!STl DPt.DCUS AI. WEUXJ1E' '10 SMl'S 'M/SPS otS 511
fiLE. T!ST1 IftZXUS AI WfLCQol[ 10 SHl'S \'HISP5 OIS 511 nUl T!ST1 m.nus A1 WEt.CDE m SMJ'S ~s CMS 511
--- Pl.Nf£ KJTICII OF ftl!:OWfIStt --_
fOf> IXX 1.169£-5 1U7J'U LEer PIV12 'l'D:M
CIBI 9 HECAPI..AN IYY 1.1691-5 NO£U LEer PC 'nltM YDIS ABSENT """
DID LIt« IZZ 1.1691-5 NOEU LECT lit TERM VOIS LECT AI 1UH
~
• Ct'IRPS 6 I

m~NSJON !LEM LECT 1DtPS6 'l1ltH •
8LOQ 123456 UtT PCMA. '1'!IIM
ZONf 4 fWr 200 .3D 13 PK\1" 7 I'£CA 12 PML 5. P'l"lL 12 PLIE ucr M 116 1'DM
H.t.1!4F1fa.11FTA12 IHD twSS 0.00706 xc -0.24050[-1 m -O.)594ft-l 2D • •
fOM: 1 TABL 2 0 o.Oll SO!-3 0.'33
Scx.1 7 PLU 15 PloIS 37 aog 24 lXX S.667E-'
LIAlSCN 1260 lOU Ei9.T 45 raw 428 DAV 24M In 5.667[-' CPTION
• MC7I'Esr PAS .NJ'ftJ
'IDH lZZ 5.66?!-'
CIPTl 011 TASso. CIlOPS 7 • •
I ..... IM 'ITREQ U·3
ElZM IZO' a:aPS7 TDM POIN LECT PIV HSSCIRT TDM

CfCM I'Ll! LEtT A7 87 ttRM ElZM u.cr PIV 1\ESSOkT TDM
PWI' ttIIPS IND. Mo\SS 0.0549. :xc ·0.59265£-1 YC ·'.10606£-1 zc 0 TRAC 10 1IUQ .lE-3
BIllD lESSCltT MTI IXX 1.912!-5
PMAT"""" IYY 1.912£-5 •
INIT CDn' 1 -1140'71990 UCT REssatT 'TEN4
HECA .IV IZZ 1.9UE-5
'IDH •
CALCUL 0 lE-5 2!-6 4'000 1.lE-3
• •
ART! SUIT[
<Dt'UKHJ' .IVO LEtT PIVl 'rDI1 -- .. ~ tDl'lCli C. )EOWtJSM - .. -
SICTIO If-6 lZCT I!SSCltT 'IUM AX!VXOV'lOVZl RESULT 10
SlCl'lO 1 LECT W'l 1UH NOEU lZCT PO 1UM VOIS ABSENr DnENSION 1DPS 301 CXUUE 10 'JDH
ClOP cue VX 1 V'I 0 VZ 0 DEIT lE- 3 LEtT aItPS TERM NDfU lZcr Al 'I'DH YOU ua:r 1 . . . . CMP
MASS 4S6 lE-6 LEer P<IK\ AA . . TDM AXlDP l ' 'lDl"S (5)'
ItO'IU L!CT PIV} 'I'DM DJUUE 1 'IIE"D. 'ECIWU CXltP 1 EtIH 6S

......1ERIAUX NO£U lZcr Bl 1UH volS IICDEr 1 0JlIUIf 2 'BF:I'AP ' Eatou CXfoP 1 !LEM 63
LINE RO 100000 YOI.M 10 NU 0.35 lZCl' catPS BA:I"I 1DI1 NOEU LEa A2 TDM VOIS INDEf 2 caallt , 'CWMA, • EatoU CX»P 1 DDt 72
LINE RO U8.4521$ YQft( lIZ.660R6 NU 0.3$ uer I.ESSCRT 1nH CXIW.BE .. '~, ECROlI CDP 2 ElDI 72
HASS U-6 uer ~ TDH IO'IV LEtT PIV) TERM tcouRBE: 5 'BETA' LIM
f1[CA CDUP fmc )ft.IfA 1 CCEA 1 ucr PIV! 'ttJtM NOEU LECT Bl 1'DM WIS 1a:F 2 ICOI.IltR 6 'CNM\" LI_
NOEU ucr BJ TDH VOJS JIUZ l aUUE '7 'mt:rA ' ICROU CUP 1 EI.»f '70

LlAlS IEtut FUO 1 (l)UU£ • 'IEt.TAP' ECIIOU CXltP 2 EL!M 1.
IO'IV LEer PIV4 TEltH CDlaIE 9 '!PSI '!aCU CXIoP 1 ElZH I t

SOLI~S 7 NOEU uer B3 'J'ERH VOIS IIU!' 3 CDUIta 10 'EPSJP • !CllCIU c:g.p 2 !l.!M 69
OJItPS 1 • NO£U uer At 1'EltM VOIS JNDU .. IESSJ. 1 1 AXES 1 IItlTA (UD) I
ELIH lZCT CORPSI "l'DM mSSIN 1 3 AXES 1 'QNIN. (lAD) •
Pl.I! LECT AI Bl '19K ItO'lV LEtT 'IVS TEltH asslN 1 5 AXEl 1 '!I!'tA (lAD) a:a'
JNER MSS 0.0411S xc 0.9219tt-' YO -0.57227[-4 ZC 0
NDEU LEer M TEIH WI5 INC£!' 4 IDESSIN 1 , AXES 1 "CNM\ (IlAD) ctIt.'
IlCX 2.194£-6 JIOEV LEer M TDM VOIS IJIDEI' , tESSIN 1 2 AXES 1 'JIE'DP (DOl'S) •
In 2.194£-6 1:£5$10 1 4 ..... 1 . _ (RADIS)'
1%2 2.194[-6 RO'J\I IZO'P1V6 'JIltM Cl!:SSlN 1 ., AXES 1 'DELTA (UD) •
mRPS 2 • NDfU LEer B6 'rDH VOJS 1NDEf' , CESSJN 1 8 AXES 1 "DEl.TAP (RAD/S)'
fL!M lZCT (!)IpS2 "l'DM NOEU LEer 117 1'DM VOIS 1NDEf' 7 tESSIN 1 9 AXES 1 -!PSI (MO) ,
PLIE ucr A2 82 'IDH CESStN 1 10 AXES 1 • EPSIP (BADIS) ,
PIVO lZtT PJV7 1'EIM FIN
INER HASS 0.00365 xc -0.44913£-2 ~ O.27.9tt-l ZC 0
JXX •• 410[-' AXlVXOvYOvz.l
In 4.410[-' )I)EU LEer PA 'lDM VOIS AMiDII'
JZZ •• 410[-' JmEU LEer A7 TDH VOIS IIIJEF '7
O)IiUtS ) I
UDI uer CXJRPs3 TERH PIW UCI' PIVI 1'ERM
PLIE uer.u .3 Dl TDM AXEVXOvYOVZl
NOEU LEer PA 'J'ElUt VOIS ABSENT
lNEll""-55 0.02373 Ie -'.11"J4]!-1 YO O.lOU'7!:'l ZC 0
IXX 5.2551:-6 NOE\J LECT AS 'J'ERH VOJI IJI)[f" 5
IVY ~.1S5t-6
IZZ 5.2SSE-. ltD'J'U LEer PIV9 1'IlU4
CORPs •• NOEU LECT as TERM WIS INOEf 5
ELEH LEtT CCRPS4 'J'!'Nt NOEU LECT B4 TERM WIS IIaF 4
PLiE LEer A4 84 'IUM
lNEIl MASS D.on06 XCi -0. l0118[-1 \'C 0.120"13£-1 ZC 0 PIVO l.ECT PIVI0 TDH
IXX 5.6671-' AXlYXOV'lOVZl
In 5."'Fl-"J NOEU ucr P8 TDM VOJS ABSENT
IZZ 5.667[-7 NOEU LEer A3 1'DM VOIS JMJEf )
CORPS 5 I
ELDt LECT CDRPSS 1'DM _oro UCT PIV11 TERM
PLJ! LlCJ' AS BS 'JERH NOEU UCT DJ TflU1 VOIS INDEf 3
IND MASS 0.07050 xc -0.S3246!-1 'YO O.166Jl!-1 ZC 0 HOfU UCT M 'ttRM VOIS LECT III TDH
425

4 • References

[ 1] • P. COIFFET· Les Robots. Tome 1 ; Modelisation et Commande - Hermes-


Paris 1981
[2] - P. GERMAIN • Mecanique . Tome 1 - Ellipses-
Paris 1986
[ 3] - J. WITfENBURG - Dynamics of systems of ri~d bodies - B.G. Teubner-
Stuttgart 1977
[ 4] - Y. BAMBERGER - Mecaniqye de l'jn~enieyr . Tome 1 ; Systemes de coWs ri~des -
Hermann· Paris 1981
[ 5] - Y. BAMBERGER - Mecaniqye de l'in~nieyr . Tome 2 ; Milieyx derormables -
Hermann - Paris 1981
[ 6] - H. AS ADA , J.J. SLOTINE - Robot Analysis and Control - John Wiley & Sons -
New York 1985
[ 7] - K.S.FU, R.C. GONZALES, C.S.G. LEE - Robotics; Control. Sensin~. Vision and
Intelligence - MacGraw Hill- New York 1987
[ 8] - Systeme CASTEM - Programme PLEXUS. Manyel d'ytilisation - C.E.A. - Update
Spring 1989
[ 9] - M. LEPAREUX , H. BUNG - Systeme CASTEM . Programme PLEXUS.
Presentation resymee des possibilites - DEMT/SMTS/LAMS/8384 Report - Spring 1983
[ 10 ] - Caleyl et analyse des Structures en Mecaniqye et Thenniqye . Fiches de validation -
DEMT/SMTS/LAMS/8275 Report - Autumn 1982
[ 11] - KJ. BATHE - Finite Element Procedures in En~ineering Analysis -
Prentice Hall- Englewood Cliffs 1982

5 - Related publications

[ 1] - Conception Mecanique . Cinematiqye et Dynamique des Robots -


Revue Fran~aise de Mecanique nO 1987-4 - Paris. Autumn 1987
[ 2] - Compyter Simylation of Manipylator Dynamics ysing differnt Control Laws -
Third International Conference on Advanced Robotics - Versailles. October 1987
[3] - Dynamic Behavioyr of Deformable and Ri~d Articylated systems-
Structural Mechanics in Reactor Technology 1()th Conf. - Los Angeles. August 1989
Contributors and Distributors

The contributing research groups are listed according to the


date of the receipt of their contributions by the editorial
office.

1. Dr.-Ing. E. Pankiewicz
BMW AG, Abt. EW402
Postfach 40 02 40
8000 Munchen 40, FRG
Marketing organization of NUBEMM:
Contact author.
Telephone (089) 3183-2606
2. Prof. M. Vukobratovic, Ph.D.
Institut Mihailo Pupin
P.O.B. 15
Beograd 11000, YUGOSLAVIA
Marketing organization of SYM:
Contact author.
Telephone 776 222
Telefax 775 870
Telex 11584 YU IMP 36
3. Prof. Dr. L. Lilov
Sofia University "Kliment Ohridski"
15 Ruski Bd.
1000 Sofia, BULGARIA
Marketing organization of CAMS:
"MECHATRONINA"
P.O. Box 76
1126 Sofia, BULGARIA
4. Prof. T.R. Kane, Ph.D.
817 Lathrop Drive
Stanford, CA 94305, USA
Marketing organization of AUTOLEV:
Online Dynamics, Inc.
1605 Honfleur Drive
Sunnyvale, CA 94087, USA
428

5. Prof. R.L. Huston, Ph.D.


Department of Mech. and Ind. Engineering
University of Cincinnati
cincinnati, OH 45221, USA
Marketing organization of UCIN-DYNOCOMBS:
Contact author.
Telephone (513) 556-6131

6. Prof. Dr. J.B. Jonker


Faculty of Mechanical Engineering
Twente University of Technology
P.O. Box 217
7500 AE Enschede, THE NETHERLANDS
Marketing organization of SPACAR:
Laboratory of Engineering Mechanics
Faculty of Mechanical Engineering
Delft University of Technology
2628 CD Delft, THE NETHERLANDS

7. J.P. Frisch, Ph.D.


NASA
Goddard Space Flight Center
Greenbelt, MD 20771, USA
Marketing organization of DISCOS & NBOD:
COSMIC Program No. GSG-12810, GSG-12846
NASA's Computer Software Management and
Information Center
The University of Georgia
382 East Broad Street
Athens, GA 30603, USA
Telephone (404) 542-3265

8. Prof. E.J. Haug, Ph.D.


Center for Computer Aided Design
College of Engineering
The University of Iowa
Iowa City, IA 52242, USA
Marketing organization of DADS:
computer Aided Design Software, Inc.
P.O. Box 203
Oakdale, IA 52319, USA
Telephone (319) 337-8968
429

9. Prof. Dr.-Ing. W. Schiehlen


Institute B of Mechanics
University of stuttgart
Pfaffenwaldring 9
7000 stuttgart 80, FRG
Marketing organization of NEWEUL:
Institute B of Mechanics
University of stuttgart
Pfaffenwaldring 9
7000 stuttgart 80, FRG
Telephone (0711) 685-6388
Telefax (0711) 685-6400
Telex 7255445 univ d
10. Dipl.-Ing. O. Wallrapp
German Aerospace Research Establishment (DLR)
8031 Oberpfaffenhofen, FRG
Marketing organization of MEDYNA:
T-Programm GmbH
Technische Software and Engineering
Oskar-Kalbfell-Platz 8
7410 Reutlingen, FRG
Telephone (07121) 22095
Telefax (07121) 22090
Telex 729948
11. Prof. P.Y. Willems
Universite Catholique de Louvain
Place du Levant 2
1348 Louvain-La-Neuve, BELGIUM
Marketing organization of AUTODYN & ROBOTRAN:
Contact author.
Telephone (32) 10-472597
Telefax (32) 10-452692
Telex 59315 TELHY B
12. Dipl.-Ing. W. Rulka
MAN Technologie AG
Dachauer StraBe 667
8000 Munchen 50, FRG
Marketing organization of SIMPACK:
MAN Technologie AG
Abt. SDR-3
Dachauer StraBe 667
8000 Munchen 50, FRG
Telephone (08131) 907364
430

13. Prof. J. Garcia de Jalon


Department of Applied Mechanics
Universidad de Navarra
20006 San Sebastian, SPAIN
Marketing organization of COMPAMM:
CORITEL S.A.
Pl. Carlos Trias Bertran
s./n. Edificio Sollube Pl. 0
28020 Madrid, SPAIN
Telephone (1) 59 73335
Telefax (1) 5970109
14. Prof. B. Paul, Ph.D.
Department of Mech.Eng. Appl.Mech.
University of Pennsylvania
111 Towne Building
Philadelphia, PA 19014-6315, USA
Marketing organization of DYMAC & DYSPAM:
B. Paul Associates
204 Dodds Lane
Princeton, NJ 08540, USA
15. Prof. Dr.-Ing. J. Wittenburg
Institut fur Technische Mechanik
Universitat Karlsruhe
KaiserstraBe 12
7500 Karlsruhe 1, FRG
Marketing organization of MESA VERDE:
Ingenieurgemeinschaft
Prof. Dr.-Ing. R. Gnadler
Kaiserallee 111
7500 Karlsruhe 21
Telephone (0721) 842297
16. R.R. Ryan, Ph.D.
Mechanical Dynamics, Inc.
3055 Plymouth Road
Ann Arbor, MI 48105-3203, USA
Marketing organization of ADAMS:
Mechanical Dynamics, Inc.
3055 Plymouth Road
Ann Arbor, MI 48105-3203, USA
Telephone (313) 994-3800
Telefax (313) 994 6418
17. Prof. A. Barraco
E.N.S.A.M.
151, boulevard de I'Hopital
75640 Paris Cedex 13
Marketing organization of PLEXUS:
Contact author, Telephone (1) 43364955
Index

ADAMS 361 Kamman, J.W. 103


applications 6,9 Kane, T.R. 81
AUTODYN 225 King, T.P. 103
AUTO LEV 81 Kircanski, M. 37
Avello, A. 285 Kircanski, N. 37
Barraco, A. 403 Kreuzer, E.J. 181
Bekjarov, B. 61 languages 9
CAMS 61 Levinson, D.A. 81
COMPAMM 285 Lilov, L. 61
computation methods 4,7 Lorer, M. 61
computers 9 Maes, P. 225
coordinates 4,7 MEDYNA 203
Cuny, B. 403 Meijaard, J.P. 123
DADS 161 MESA VERDE 341
DISCOS 145 NBOD 145
distribution of software 6 NEWEUL 181
dynamical methods 4,8 NUBEMM 21
DYMAC 305 operating systems 9
DYNOCOMBS 103 overview 3
DYSPAM 323 Pankiewicz, E. 21
elements 4,7 Paul, B. 305
equations 5,8 PLEXUS 403
Frisch, H.P. 145 postprocessing 6,9
Fuhrer, C. 203 preprocessing 5,8
Garcia-Alsonso, A. 285 ROBOTRAN 246
Garcia de Jalon, J. 285 Rulka, W. 265
Haug, E.J. 161 Ryan, R.R. 361
Huston, R.L. 103 Samin, J.C. 225
installations 9 Schaffa, R. 305
Jimenez, J.M. 285 Schiehlen, W. 181
Jonker, J.B. 123 Schmidt, A. 341
432

signal analysis 5,8


SIMPACK 265
simulation 5,8
Smith, R.L. 161
software engineering 6
SPACAR 123
SYM 37
tables of information 6
test example mechanism 10
test example robot 16
Timcenko, A. 37
topology 3,7
UCIN-DYNOCOMBS 103
Vukobratovic, M. 37
Wallrapp, O. 203
Willems, P.Y. 225
Wittenburg, J. 341
Wolz, U. 341

You might also like