1990 Book MultibodySystemsHandbook
1990 Book MultibodySystemsHandbook
Multibody Systems
Handbook
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
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
Index • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• 431
Introduction
Preprocessing
Postprocessing
Software Engineering
Distribution of Software
Software Applications
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
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
0,06934 m - 0,00227 m
0,03635 m 0,03273 m
0,01400 m , 0,07200 m .
l d e si g n
F ig . 2 G eo m et ri ca
14
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
Ml to M7 Il to I7
[ kg ] [kg-m 2 ]
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
C 0,05 m
and
L 0,50 m
YI
I
Body
I 1 2 3
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
Zlo 2,25 m
GAI O - 0,5236 rad
Y2 0 0,75 m
BE20 0
AL3 0 0
I
Time of' Drive f'unction
simulation t I ,
[ s ]
I [ N ] [ Nm ]
Final Position
Trajectory
References
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).
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
[~ 01,2 ]
[ r 21,2 ] +[
E
0
-[r2I ,2) ] [~02'2 ] (2)
(')01,2 (')21,2 E (,)02,2'
] .. ['~ 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)
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
[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)
Thereby,
~a is the nzbx1 vector of the dependent coordinates and
y is the fx1 vector of the independent (generalized)
coordinates.
(10)
(11)
(13)
6 x 1
6 x 1
-_ JyT[fey + fk . • ].
Y - Ma(y,y,z) (16)
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
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.
4. Bxample
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
SL1 = 8.4630679E-05*PK1
FS1 = 8.4630679E-05*FSS1
QFP3 = TE1
QFQ1 = QFP3
QFX1 =-FS1+QFQ1
• .. generalized accelerations
AK1 = 4.3168043E+02*QFX1
5. Literature
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.
"" + i-1+ • i - 1 + )
+ ( q
i
w zi - 1
+ X qi Z~ _ 1
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.
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.
Denavit-Hartenberg parmeters
Masses and moments of inertia
T
rNewton-Eu1e r' s formalism 1
I
~mbolic fustomizer/Qptimizer - SyCO
(2 )
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
P 2 (3 )
L K
Z == '\ c (z) II p (z) elk(z) (4 )
l.. 1 k
1=1 k=l
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
se [
e 11 ... e 1 K
eL ... e L K
J matrix of the exponents.
(5 )
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
Z-IlZ +Z
I I I
where:
46
e, e,
Il p, J 1 p, J 2 (B)
J 1 J 2
- 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
6. Example
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.
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. 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
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
Zl [m]
4.5
4.0
3.5
3.0
2.5
GAl [rad]
-0.53
-0.58
-0.63
-0.68
-0.73
Y1 [Oll
4.8
4.0
3.2
2.4
1.6
References
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
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.
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)
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 ~
(4)
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
(~ + ~"\~ ~]
-'T l [ ..:., -> _, -> -,
b~. diag Q...~ + diag ~ x diag Q...~ - ~ - .§. Y... - =0
i. = 1 mi. [..-'T ••
-. ":"T ..:.,. ":"T -, -,
with Z/1/2 ~.diag!!!.~+~ .diagQ.. w+ 2w .diag ~ x diag Q... w -
- 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)
'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.
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.
DATA BASES
HINGES
BODIES
OOPS
MECHANISMS
XT.FDRCES
INT.FDRCES
MOVEMENTS
:I
SYNTH
ACCUR
NC
FUNCCAP
SENS
IDENT VISUAL
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
18.8
14.4
pO
118.8
~
w
• 'l.2
3.'
1_
888
• '88
pO
~
w"• 488
••
288
38
pO
N 24
(
18
• 12
0
\•
,
•
If
w
" -, 8
8• •
=.X-12
r-18
IS -24
01
-38
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
Illustrative Examples
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)
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
F P F Q F 0 QP
v ~ + ~ x~
V2PTS(N,K1,O,P1)
which gives VP1N, the velocity of P1 in N, 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
EXPRESS(VK2STARN,K2)
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,
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
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)
-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
VCN=O
The FR command then generates the generalized active force:
FR
90
KANE
which produces
(428) CODE(LINKAGE,ENERGY,CONTROLS)
POA=XA*Nl+YA*N2
PBA=ADD(POA,-POB)
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
Conclusion
References
[1] Kane, Thomas R.j Levinson, David A.: Dynamics: Theory and Applications.
New York: McGraw-Hill Book Company, 1985.
N2
cS- N3
N1
K22
dz-~I K23
Figure 1. Linkage.
95
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
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)
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)
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
"'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)
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)
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
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
°
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
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 )
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
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)
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:
(13)
(15)
iJK
(16)
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.
( 18)
where the
.
~ktm are obtained from algorithms based upon Equation
(11) •
and (19)
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.
F*
-k
= -mk-k
a and (no sum)
(21)
(22)
(23)
3. Dynamical Equations
The dynamical equations for the system are obtained by using
Kane's equation which may be expressed as [2,3,4]:
( 25)
(26)
and
Fi -(mkVkimVkPmYp + IkmnWkim~kpnyp
+ ersmlksnWkimWkqrWkpnYpyq) (27)
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
FI
t
= b qt Aq (29)
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)
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)
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.
Final Position
Trajectory
Position
4.50.-----~---~---___,,.._---~---___,
Displacement
(m)
2.20:-----:-----:--:------.;----~-----I
o 0.4 0.8 1.2 1.6 2.0
Time
(sec)
-30~------~--------~------~--------~------~
Angle
(degree)
-42.5~-------:---------:-~---------------~-------'
o 0.4 0.8 1.2 1.6 2.0
Time
(sec)
3.80,-------7""----:-------7""---------..
D"PI~~~mt ······1···········1········1······1·········
256
· ..
· . .··
132.... .... : ..
U·····I"·······I·····I·····U
0.70::-------::'-:----~---....,.:-.------=-----.-J
o 0.4 0.8 1.2 1.6 2.0
Time
(sec)
-1
-2
Vertical
Position -3
(feet)
-4
-5
-6
o
Horizontal Position
(feet)
-1
-2
Vertical
Position -3 ""~ ; - .... l. .. _ - ..
: I -~---r;r.- ....
(feet) • I ••••
-4
....• .......••
-5
-6
Horizontal Position
(feet)
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
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
ST Slider Truss
B = Beam
H = Hinge
(2.1)
and
ax. Ie
1
126
R (2.2)
1, or ~ T~ = 1. (2.3)
elongation: £~
1
+ - - [2(£~)2+£~£:+2(£:)2+2(£:)2+£~£:+2(£:)2],
30/ 0t
(2.4 a )
d Die =
4 (Rqnz,lk), (2.4 d )
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)
(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
(3.1)
129
E (3.2)
D = 2 Dk : X ~ E, or e = D(x). (3.3)
k
X and (3.4)
(3.5)
(3.6)
.
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
x (3.9)
e (3.10)
(3.11)
(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
DF e °
[aeo , aeo] [0, 0], DF eID [aeID , ae ID ] [0, I],
axID ae ID axID ae ID
(3.14)
(3.16)
(3.17)
(3.18 )
and
(3.19 )
o. (3.22)
4. Dynamical analysis
(4.1)
~ = 1-~ o o ~ 0 0 (4.2)
o 1-~ 0 o ~ 0
o o 1-~ o 0 ~
(4.3)
where
and (4.4)
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
+
where
(4.7)
(4.8)
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
(4.11)
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
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
16
12
~ 8
co.
~ 4
~
0
Fig. 5. Angle ft
141
280
240
Z
200
~ 160
f2
<l. 120
~
a:
0
z 80
40
0£Xx>
TIME (5)
5
~
......
N
4
>-
"'C
ffi 3
~ 2
.....
>- 1
~
......
..... 0 y1
N
3~----~~------------~=---------~
~
Z
o
~
U:i
~
a... -1
~
-2
-30~-L-LJ-~~-8~-L-LJ-~~-lL6~~~20
TIME (5)
References
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.
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).
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.
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
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.
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.
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
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
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
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:
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:
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.
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.
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.
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.
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.
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
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
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
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.
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.
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.
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
Preprocessor
DADS2D .Dna 1ys is
DADS3D Analysis
Postprocessor
Geomake
Intermediate Processor
Inertia Relief Load Vector calculator
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 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.
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.
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
· . . .
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.
.. , ...•. ,"
· .
' , " " . , ' , " , . , 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
· . . .
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.
59.6 •• " • • • • • • • ,• • • • , .: •• 0 o. 0 · . " . ' • • :0 • • • • • ' . 0 0 ' . ' : . , " . , .' •• , 0 0 ' : , . , ' 0
· . .
..... ;..... :. l· . :......:...... :......
, • 0 •
0
r ! ......: ......: ...... :.... .
q 53.2
o 0 ' 0 • 0 • • 0
u : 0 : • : 0 : 0 :
·
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
4.27
.... ,', .... ",· ............ .I····· . ····· ','. .... ,'...... .,. ......... .
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.
-0.530 ',0
-0.560 , . . , " ' , , ' , ' , , " , ' :• • , . , . 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
n
• • • • : • • • • • • 1 • • • • • •: • • • • • ,' • • • • • • : • • • • •
1.94
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
SUlIIlD.ary
Introduction
f = 6 n - q (1)
The variables e
Si' Ii' Ii are not regarded for masspoints.
(4)
(5)
184
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
Here
(11)
(12)
-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].
(14)
..
M(t) Y + pet) y + Q(t) y h(t) , (16 )
186
g = 6n - q - r (18)
y = f(y,z,t) (19)
and (21)
T T T T T
[ ~11 ... I ~n I li11 ... I lin ] . (22)
Q g
-r
q
..
M(y,t) Y + k(y,y,t) - qe(y,y,t)
.
(26)
simUlation of Motion
• linear or
• nonlinear
• holonomic and/or
• nonholonomic
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.
Program structure
TAPE 08
Input File
NEWEUL
-'7'
Possible Number
_.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
• rigid bodies,
• masspoints,
• joints/supports,
• nodal points,
• observation points.
Reference Frames
Relative Input
Nodal Points
Observation Points
Allowed Characters
Variable Names
Constants
Operations, Brackets
Functions
Error Codes
* NEWEUL Fxx
Examples
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
~~-----------------------,
.1
~~-------------------------,
Q)
r-f
01
~ 2
.1
Robot
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)
Acknowledgements
References
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.
• frames,
• bodies
• interconnections, and
• external excitations.
• substructures
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
,.
'" 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
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
~
earized state vector (" the
control input u, and the
measurement vedor {M
Linkage to t t
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.
The global motion of the reference system is specified in MEDYNA by the following
models:
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
.'
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~"'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.
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)
s =p. (3.4)
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)
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)
(3.8)
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:
and = gN 1: 0
gpN( 7l'N, AN) with (3.11)
gN = - [C. + CJzJ AN + RJK.fN + gaN
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).
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
• 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.
• Modalanalysis for investigating the stability of the linearized system in terms of its
eigenvalues and eigenvectors,
• 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,
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].
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
• Motion of • Covariance
Reference Frome Analysis
• Excitations • Numerical
Integration
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.
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).
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)
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
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)
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.
[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.
[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.
[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.
[20] E. Schrem. PERMAS Theory Manual. INTES Publication, No. 302, Stuttgart, 1987.
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
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
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
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) :
if i = IN BODY(j), the vector tj is the vector connecting the reference points of joints
i and j respectively;
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
K·
-, = I· -
-I "~ .::.&_,
mkl.ki·k (3)
k:i5;k
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
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:
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).
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.
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)
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
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 :
The potential velocity (compatible with possible changes of the mass centre velocity,
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
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.
"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:
this expression can be written in matrix form as [<Ii]T[6.ti] where [<Ii] is the (N x 1)
It can easilily be checked that these functions are linear in the second time derivative
of the generalized coordinates and we can write:
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.
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.
or in matrix form
(13)
(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.
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).
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.
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:
IT one also defines the matrix [Buv] as [Buv] ~ [Bvuf, the reduced equations of
motion are given in the form:
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
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) :
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
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
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.
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
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 10 shows some features of the input data file and of the joint library.
244
11 Number of bodies )
01224263357 INBODY
3 Number of loops Graph description
09 INLOOP(.,J)
I: I : Closure body :
I
Initial body
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
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.
[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.
[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)
[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
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.
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
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
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
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.
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 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:
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:
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-
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.
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:
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.
where 1:j is the position vector of x with respect to the centre of mass of the body j.
where x·
-J = '"
L... -J + t
(z· =J.. )
i:i:5;j
and
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:
x E Bi j: k :::; j,
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
r·
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
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,.
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
Here too, we can separate external forces into gravity forces and applied forces :e;ext;
for gravity, the corresponding generalized interaction ig given by:
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
'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
(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
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 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.
Data Preprocessor
Barycentric Parameters
ROBOTRAN
- Generalized
Interactions
[Q]
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 reduction.
258
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.
- 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.
- 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,
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
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:
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.
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
mbl = ml+m2+m3
mb3 m2+m3
mb5 m3
b42 = mb5*1
b52 mb5*c
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
Finally these equations have· been integrated and typical outputs, the rotation angle
and the angular velocity of the first body, are presented below.
-0.55
-0.1
-0.6
-g
... -0.65
-0.7
Bibliography
[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.
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
robotics
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
----
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
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
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.
• 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:
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
• 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
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
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
- 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.
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.
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:
• Wire models, wire models with hidden lines, or planar models with hidden surfaces and
shading.
274
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
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
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.
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:
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
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
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
inertial system
. . . . body
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:
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.
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)
---
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:
Ms HT]
[ H Mel (ai )
ZeI,i = hi + ( r )-
O·
(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):
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
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
Figure 12: Time history of x-coordiante of the constrained force in the revolute joint, connecting
point B and body 3
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
ABSTRACT
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.
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.
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)
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.
3. KINEMATIC ANALYSIS
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.
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].
(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
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)
{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.
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
being [T] the rotation matrix. The inertial components of vectors u,v and segment AB
can be expressed in the form:
(21)
According to eq. (19) the velocities and accelerations can be expressed as:
(22)
( .0) {•• A} +
x = x
[0.]
T {r} (23)
[ 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:
(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)
(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.
(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.
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 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
8. COMPAMM POSTPROCESSORS
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.
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
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.
REFERENCES
[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
[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.
[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.
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
lal lbl
~pdo.. to tbla rule are cIiIc:uaecl by Paul [S]. AlIo lei! the dilcwaion ill Sec. 6 on motion Fneration co..trainll.
309
1 1 1 -1 1 -1
2 -1 -1
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.
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
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
3
During subsequent calculations, !be program chooses primary w.riablCl 10 as to minimize roundoff errors.
313
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.
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.
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
n.' !._-----_.!_--------!......._.!.--------!--------.!.. ___I-:-! __ .~_- ___ !__ .______ L__ ._____ !_ -------~
: : /': \: : :/: : : J :
;j. ). . )
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.
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
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:
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.
..
·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
!,----------------------------, 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
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
ABSTRACT
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.
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
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
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
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
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.
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
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.
2 When not otherwise indicated, the word "forces" stands for "forces and moments."
331
(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
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
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,)
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
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
I
- - -to" ..
I
-~
I I
- _ .. .,. ..... - , . ...... -1--- -_ . . .,. .. --,.-..
I I I I
-t- .....
I
- - -1-- -"1- -
I I
.,.---~-
I
--'---"1---.,. ---P----to---
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]
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
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./
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
.~'
•
O.OiS
(s)
0.025 0.030 0.005 O.OlO
. 0.011
(.)
o.oao 0.025 0.030
.
..=
~
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
[7] Paul, B.: Dynamics Analysis of Machinery Via Program DYMAC, Society of
Automotive Engineers, Warrendale, Pa. Paper No. 770049 (1-11), 1978.
340
[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.
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 ~.
z
L z
body
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.
Fig.4: Robot
346
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
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 )
linear forms
-+ -+
. "* ( 3a)
~=~2~+~2(t)
(3b)
with as yet unknown coefficient matrices ~1' &1' 11 , ~2' &2 and
349
(4 )
A -!!
(5 )
(i=l, ... , \) ) (6 )
(7a)
(7b)
(8a)
which implies
(8b)
(9 )
whence follows
with (10 )
articulation point
~ body i-(j)
i+(j)
For any type of joint and for any choice made by the program
user ~j' ~j' nj and ~j have the forms
(12a)
( 12b)
(16)
With
~ -+- -+
and ci-(j)j=wi-(j)xci-(j)j (18 )
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)
(21 )
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
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.
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
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
A
x
Fig.8
357
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
/ 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.
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
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.
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
. . .... .. ... . .........
- -.-
. .. .... '
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
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%
•
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
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.
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. 8. Aeronautical Systems Modeled Using ADAMS
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.
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.
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
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
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.
C. Analysis Types
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 .
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.
eling data consists of the system descrip- o Mass Propet1ies o Sys tem Jacobian(sj
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:
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
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.
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
+
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.
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.
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)
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.
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.
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.
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.
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.
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
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.
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
r- 0.033N·",
ZI
(metm) . .
..
4•
ZI
meters/sec.}
os 10 15 10
TIIN (Iear.dS)
~
.~ -
P -
--,
AC3
J
- -- -...#
J-y
l
ACCGRAV/CC-l •• KGRAV--g.816
ATTAClf1ENTS OUTPtJr/RLQSAVE, CRSAVE. NOPRINT
QRIV£itS
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
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'
' .• 1 Purpose
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
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.
The transformation from Me to M t of a given point M in the domain 'D is expressed by vectorial
406
~ ~
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 ) .
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 :
= ~
( 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
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.
~ 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~
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) .
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
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 ]
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
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
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 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:
~+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:
To reduce calculation times, especially during inversion, the mass matrix is condensed into a
diagonal form as : [ M'i ] e =~ [Mij] e ( 44 )
- 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.
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. :
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
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:
~ ~ ~ ~
- rotation freedom along VAB .19AB n+l = .19A n+l - .19B n+l (60)
~ ~ ~ ~ ~
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
* 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.
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
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--'
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
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
5 - Related publications
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