0% found this document useful (0 votes)
77 views25 pages

Enhanced Formulations for Multibody Dynamics

This paper reviews recent improvements to formulations for dynamic simulations of multibody systems. It describes two global formulations that use dependent Cartesian coordinates more efficiently and several semi-recursive formulations. It also details handling rod elements in closed-loop systems by removing rods while exactly maintaining their inertia forces.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views25 pages

Enhanced Formulations for Multibody Dynamics

This paper reviews recent improvements to formulations for dynamic simulations of multibody systems. It describes two global formulations that use dependent Cartesian coordinates more efficiently and several semi-recursive formulations. It also details handling rod elements in closed-loop systems by removing rods while exactly maintaining their inertia forces.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Improved Dynamic Formulations for the

Dynamic Simulation of Multibody Systems


J. García de Jalón, E. Álvarez, F.A. de Ribera,
Escuela Técnica Superior de Ingenieros Industriales. Universidad Politécnica de Madrid
José Gutiérrez Abascal 2, 28006 Madrid (Spain)
I. Rodríguez,
STT Engineering and Systems, S.L.,
Parque Empreesarial Zuatzu, Edificio Easo, 20018 San Sebastián (Spain)
and F.J. Funes
Telefónica de España, S.A., Beatriz de Bobadilla 3, 28015 Madrid (Spain)

1 ABSTRACT
This paper reviews some ways to improve the efficiency of multibody dynamic formulations
that have been published recently. First, two global formulations that speed up the dynamic
simulations using dependent Cartesian coordinates (i. e., that maintain the descriptor form) are
considered; one of them enforces the constraint equations by Lagrange multipliers and the
other one by the penalty method. These new formulations are faster than the conventional
formulations that use the descriptor form, but they can never attain the efficiency of the for-
mulations that use relative or joint coordinates, which can easily take advantage of the system
topology. The ideas behind these improvements of global formulations can be used to im-
prove the topological formulations when they are applied to closed-loop multibody systems.
With relative coordinates there are no constraint equations for open chain systems, but
systems with closed loops shall include the closure of the loop constraint equations. These
constraint equations are more complicated to take into account with fully recursive O(n) for-
mulations, which are the fastest for long, open-chain systems. For this reason, several semi-
recursive formulations have been developed in the last few years. They are expected to be less
efficient than the fully recursive ones, but they are simpler and easier to implement. In the
second part of this paper, some semi-recursive formulations are reviewed and a new variant,
that is simpler and more general, is described in detail. A simple way to introduce the topol-
ogy of the spanning tree is explained. Special attention is paid to closed-loop multibody sys-
tems with rods, and the benefits of opening the loops by removing these rods −while keeping
its inertia forces exactly− are explained. Some examples and numerical results illustrate the
aforesaid theoretical developments.

2 INTRODUCTION
Complex multibody systems arise in many areas of engineering: automobiles, machinery,
robotics, aerospace, biomechanics, etc. Although the motion differential equations that govern
their dynamic behavior have been known since the times of Newton, Euler and Lagrange,
their practical application started 40 years ago when space and robotics problems demanded
more precise mathematical models, and digital computers provided the means to numerically
integrate these differential equations in an acceptable elapsed time.
The first practical systems studied (spacecraft and robots) were open-chain systems, so
relative coordinates were more appropriate than Cartesian coordinates. In addition to this,
relative coordinates had fewer storage requirements. In the seventies and eighties the main
emphasis switched to automobile applications, which are inherently closed-chain systems. So,
software packages that used highly constrained Cartesian coordinates, such as ADAMS and
DADS, were developed. These programs are based on global formulations, in the sense that
they consider all mechanisms –open-chain and closed-chain; loosely or severely constrained–
2

in exactly the same way. As a consequence, the efficiency was low. Because of their simplic-
ity and robustness these global formulations are still used in some commercial software pack-
ages.
In contrast with the global formulations are the topological formulations, which try to
take advantage of the system topology to improve the efficiency of the dynamic simulations.
The topological formulations tend to use relative coordinates or special sparse matrix tech-
niques. In their first stages, these formulations were very complicated, with great difficulties
in becoming general purpose commercial packages. In the last decade, the global formulations
have become more refined and efficient, and the topological formulations have become sim-
pler, some times through a partial use of recursivity. Both global and topological formulations
have become more closely related with the numerical integrators they use.
In this paper, after a review of some of the improvements published in the last few years
for global formulations, a simple semi-recursive formulation based on a double velocity trans-
formation will be described. It is known that the presence of rods (slender elements with two
Spherical joints) present some difficulties when relative coordinates are used. So, a very inter-
esting option is to open the closed chains by eliminating these rods (and perhaps also some
joints in the system). For kinematics, a rod element can be replaced by a single constraint
equation, in fact a constant distance condition, but its inertia forces should be kept in an exact
way. Later on, the procedure followed to take into account the rod inertia will be explained in
detail.
In the descriptor form, using Cartesian dependent coordinates, the motion differential
equations take the form,
M (q ) q
 − ΦTq λ = Q ( q, q ) (1)

where q is the vector of Cartesian coordinates that defines the system position, q and q  are
its first and second order time derivatives, M is the inertia or mass matrix, Q is a vector that
includes the external and velocity dependent inertia forces, Φq is the Jacobian matrix of the
kinematic constraint equations and λ the vector of Lagrange multipliers. The position, veloc-
ity and acceleration vectors in eq. (1) must satisfy the corresponding constraint equations,
Φ (q ) = 0 (2)
 ( q ) = Φ q + Φ = 0
Φ (3)
q t

 ( q ) = Φ q
   
Φ q + Φqq + Φt = 0 (4)

Eqs. (1)-(4) constitute a system of index 3 DAEs. If only eqs. (1) and (4) are considered,
the following index 1 DAE system –equivalent to an ODE system– is obtained:
   Q ( q, q ) 
 M ( q ) ΦTq  q
  =      (5)
 Φq 0  λ  −Φqq − Φt 

The matrix in this system of linear equations is known as the augmented matrix (Negrut,
Serban and Potra (1997)) or a matrix with optimization structure (Serban, Negrut et al.
(1997), von Schwerin (1999)). The system of differential equations (5) suffer from the con-
straint stabilization problem. As only the acceleration constraint equations have been im-
posed, the positions and velocities provided by the integrator suffer from the “drift” phe-
nomenon. Two popular solutions to this problem are the Baumgarte stabilization method
3

(Baumgarte (1972), Ascher, Chin et al. (1995)) and the mass-orthogonal projections of posi-
tion and velocity vectors (Lubich (1991)).
Another way to solve the constraint stabilization problem is to use velocity transforma-
tions, which map the dependent Cartesian velocities q on a minimal set z of truly independ-
ent velocities. Let matrix R be the orthogonal complement of the Jacobian matrix Φq , that is
an n×f matrix whose columns are a basis of the nullspace of Φq . The dependent velocities q
can be expressed as a linear combination of the columns of matrix R. The coefficients of this
linear combination are the independent velocities z ,
q = R1 z1 + R 2 z2 + ... + R f z f = Rz (6)

Matrix R can be computed very easily on the basis of a coordinate partition of vector q
on dependent and independent velocities. The dependent velocities are those velocities related
with the columns of the pivots in the Gauss factorization of matrix Φq . The independent ve-
locities z can be expressed as the projections of the dependent ones on the rows of a full rank
(f×n) constant matrix B in the form,
z = Bq (7)
The rows of matrix B shall be linearly independent of the rows of the Jacobian matrix
Φq . Eqs. (3) and (7) can be expressed together in the form,

 Φq  b 
 B  q =  z  , b ≡ −Φ t (8)
   
Because of the conditions established for matrix B, the matrix in this system of linear
equations can be inverted. Consider this inverse matrix in partitioned form,
−1
Φq  Φ q  Φq   Im 0m× f 
 B  B  = B [ S R ] = 0 I f 
(9)
      f ×m
This expression is used to define matrices S and R, which are part of the referred in-
verse matrix. By introducing the result of eq. (9) in eq. (8), the following result is obtained for
the velocity transformation,
−1
Φ  b  b 
q =  q    = [S R ]   = Sb + Rz ( b ≡ −Φ t ) (10)
 B   z   z 
Matrix S in eqs. (9) and (10) never needs to be computed explicitly: only the product
(Sb) need to be computed. According to eq. (10), this product is given by the dependent ve-
z = 0 ).
locities q computed with null independent velocities ( 
The constant matrix B can be computed in several ways. It can be computed by the QR
factorization (or the SVD) as the orthogonal complement of the Jacobian matrix in a previous
position. The matrix B so computed is valid as far as the inverse matrix in eq. (9) exists and is
well conditioned. However, there is a simpler and cheaper procedure based on the Gaussian
elimination with full pivoting, that is stable enough for most applications. This method coin-
cides with the coordinate partitioning method introduced by Wehage and Haug in 1982, and
with the velocity transformation method used by Serna, Avilés and García de Jalón also in
1982. In these methods matrix B is chosen as a Boolean matrix that defines the independent
velocities z as a subset of velocities q . In partitioned form,
4

Φq   Φqd Φqi  q d  0 


 B  q = 0
  =  
I f   q i  z 
(11)
   f ×m

Matrix Φqd is non-singular because its columns contain the pivots of Φq . So, the full
matrix in eq. (11) is invertible. Considering this inverse in partitioned form,
−1
Φq  Φ q  Φ q   Φqd Φqi  S d Rd   Im 0m× f 
 B  B  = B [ S R ] =   = I f 
(12)
      0 f ×m I f   Si R i   0 f ×m

By identification of terms on the left and on the right-hand sides, it is concluded that
matrices S and R and its partitions are given by,

S d  ( Φqd )   R d   − ( Φqd ) Φiq 


−1 −1

S= i= , R= i=  (13)


 S   0 f ×m   R   If 

For accelerations it is possible to express together the acceleration eqs. (4) and the time
derivative of eq. (7). The following is obtained,
−1
Φq  c  Φ   c  c 
 B q  =  q    = [S R ]   = Sc + Rz
 =   , q ( c ≡ −Φ q − Φ )
q t (14)
  
z  B  
z 
z
where the product (Sc) can be computed as the part of the dependent accelerations that de-
pends on the velocities q and on the rheonomic constraints, i. e., computed with null inde-
z = 0 ).
pendent accelerations ( 
Substituting this result in the equations of motion (1), pre-multiplying by matrix RT and
taking into account that Φq R = 0 , the following expression is obtained for the dynamic equa-
tions in independent coordinates,
R T MRz = R T ( Q ( q, q ) − MSc ) (15)

This is an ODE system that does not suffer from the difficulties of the DAEs in eq. (5).
Observe that the Lagrange multipliers no longer appear. Eqs. (1) to (15) are classical in MBS
formulations and they are the basis of the improved formulations that will be described next.
This improved formulations, in one way or another, try to take advantage of the particular
characteristics of the descriptor form (5) or the state space (projected) form (15). Both fami-
lies of improved formulations will be considered next.

3 IMPROVED MBS FORMULATIONS IN DESCRIPTOR FORM


The formulations in descriptor form (1) or (5) have as their main characteristic their simplic-
ity. The two formulations that will be described next use the fully Cartesian or natural coordi-
nates, because they provide a maximum of simplicity among the whole family of Cartesian
coordinates.

3.1 Formulation of von Schwerin.


This formulation was developed in the nineties at the Interdisciplinary Center for Scientific
Computing, of the Ruprecht-Karls University of Heidelberg (Germany). It has been described
with great detail in a book by von Schwerin (1999). This book is a comprehensive study on
the dynamic simulation of rigid multibody systems using a large set of Cartesian dependent
5

coordinates, related by a similarly large set of constraint equations. The resulting system of
index 1 DAEs is shown in eq. (5).
The system of linear equations (5) has a symmetric but non positive-definite matrix.
The solution of this relatively large system of linear equations is a critical step for all the for-
mulations based on the descriptor form. This problem has been recently considered by Negrut,
Serban and Potra (1997), by Serban, Negrut, Potra and Haug (1997) and by von Schwerin
(1999). It is this last author who presents the most complete analysis. Eqs. (5) can be solved
by a standard Gauss elimination process with some pivoting strategy incorporated. von
Schwerin points out that it is not worthwhile taking advantage of the symmetry, because it
complicates the pivoting process. There are two main methods to solve the system of linear
equations (5): the range space method (RSM), based on Schur’s complements formula, and
the nullspace method (NSM), based on the coordinate partitioning method. Only von
Schwerin considers the NSM, that seems to be the best alternative.
According to the RSM, the solution of system (5) is provided by the expressions,

λ = ( Φq M −1ΦTq ) (c − Φ M Q) ,  = M −1 ( Q − ΦTq λ )
−1 −1
q q (16)

or, by using the Choleski factorization,


M ΦqT   L1 0   I m 0   LT1 t T   L1LT1 L1t T 
 = = (17)
 Φq 0   t L 2   0 − I f   0 LT2   tLT1

tt T − L 2LT2 

or, in algorithmic form,


L1 = chol ( M ) , t T = L−11ΦqT , L 2 = chol ( tt T ) (18)

However, von Schwerin propose the nullspace method (NSM) as the best method to
solve eqs. (5). The NSM is based on a column partition of the Jacobian matrix Φq similar to
the one performed in eq. (11). From eqs. (13) and (14) the dependent accelerations are com-
puted as:
q
 d  R d   Sd 
R d = − ( Φqd ) Φiq , S d = − ( Φqd )
−1 −1
 =  i  = Rz
q  + Sc =   z +   c, (19)
 
q If   0 f ×m 

 d = − ( Φqd ) ( Φ z ) − ( Φ )
−1 i d −1
q q q c (20)

i = z are computed writing eq. (15) in partitioned form:


The independent accelerations q

i = ( R dT M dd R d + R dT M di + M id R d + M ii ) q
R T MRq i =

( )
(21)
= R T ( Q − MSc ) = R dT Qd + Qi − ( R dT M dd + M ii ) ( Φqd ) c
−1

In order to compare the RSM with the NSM it is useful to consider the factorisation and
substitution steps separately. According to von Schwerin (1999), the RSM can be up to two
times faster than standard Gaussian elimination with respect to the factorisation step. For se-
verely constrained systems the NSM can be up to 3.5 times faster than the RSM. The RSM is
faster than the NSM only for loosely constrained systems (number of constraint equations less
than half the number of position variables), but the percentage of improvement is never higher
than 15%. With respect to the substitution step, the NSM is always faster than the RSM, with
maximum gains of about 20%.
6

The NSM looks for the computation of the whole acceleration vector q  and
−optionally− of the Lagrange multipliers λ. It is closely related with the solution of the dy-
namic equations (15), that only consider independent accelerations. It is possible to numeri-
cally integrate all the accelerations or only the independent ones. The integration of independ-
ent accelerations avoids constraint stabilization problems and allows the use of very efficient
explicit integrators for non-stiff problems, such as the Adams-Bashforth-Moulton method. On
the other hand, the integration of independent coordinates has the additional difficulty of se-
lecting these coordinates and changing them when they become inappropriate. However, as
has been pointed out recently by Serban and Haug (2000), in many practical cases these
changes of independent coordinates and the subsequent restarting of the integrator can be
eliminated by a proper selection of the independent set.
Other important characteristics of the von Schwerin formulation in descriptor form are
the following:
1. Natural coordinates (García de Jalón, Unda and Avello (1986); García de Jalón and Bayo
(1994)) are used, because they lead to a constant mass matrix, the constraint equations are
quadratic or even linear in the problem variables, and there are not velocity dependent in-
ertia forces.
2. The problem is assumed non-stiff and the index 1 DAE system (5) is integrated with an
ABM (Adams-Bashforth-Moulton) multi-step method; in fact he uses a special ABM in-
tegrator and a Runge-Kutta starter method designed in such a way that its internal func-
tion evaluations can also be used by the ABM method. The Runge-Kutta order and error
estimator are also compatible with those of the ABM method. The ABM integrator is
based on the solution of the inverse dynamics and does not need the computation of the
derivative of the state vector. Instead of using the function iteration typical of the classi-
cal predictor-corrector formulae, von Schwerin enforces the discretized dynamic equa-
tions by a modified Newton-Raphson iteration, with an approximate tangent matrix with
the form of eq. (5). This tangent matrix changes slowly and the same factorisation can be
kept for many time steps, so it is not necessary to solve a system of linear equations to
compute the dependent accelerations. At the end, it is possible to obtain a O(n) method
based on the descriptor form.
3. In order to stabilise the numerical integration of the index 1 DAE system (5), the errors in
positions and velocities are eliminated using two mass-orthogonal projections whose ma-
trices are again the matrix that appears in eq. (5). This projection is exact for velocities
and only approximate for positions, because the constraint equations for positions are
nonlinear.
4. The efficiency of global formulations can be further improved if the system topology is
taken into account. The descriptor form proposed by von Schwerin introduces the topol-
ogy by distinguishing between the closure of the loop constraints and all the remaining
constraints. Both kinds of constraints can be applied in two phases, in a way similar to the
method explained in Section 4.

3.2 Formulation of Cuadrado, Cardenal and Bayo


In the last few years, Cardenal, Cuadrado et al. (1999), Cuadrado, Cardenal et al. (2000) and
Cuadrado, Gutiérrez et al. (2001) have obtained high efficiency using Cartesian natural coor-
dinates combined with an index 3 penalty method (with augmented Lagrangian) and two
7

mass-orthogonal projections as introduced by Bayo and Ledesma (1996). In their most recent
publications, the following index 3 dynamic equations are used,
 + ΦTq αΦ + ΦTq λ ∗ = Q
Mq (22)

where the second term introduces a penalization for the position constraints (index 3) and the
third term introduces the constraint forces using the augmented Lagrangian method. The dy-
namic equations (22) are integrated numerically using the trapezoidal rule, with Cartesian
positions as primary variables. The trapezoidal rule approximates velocities and accelerations
in tn+1 from the following expressions,
2  ˆ 2 
q n +1 = q n +1 + qˆ n  q n = −q n + q n  (23)
∆t  ∆t 

 n +1 =
4
ˆ n  ˆ  n − q n − 2 q n 
4 4
q q n +1 + q  q n = −q (24)
∆t 2  ∆t ∆t 
Particularizing the equations of motion (22) for time t = tn +1 , the following non-linear
system of equations in q n+1 is obtained,

∆t 2 ˆ ∆t 2 T
f ( q n +1 ) ≡ Mq
 n +1 +  n +
Mq Φqn+1 ( αΦ n +1 + λ ∗n +1 ) − Q n +1 = 0 (25)
4 4
This system of non-linear equations is solved by a Newton-Raphson method that uses
the following approximated tangent matrix,
 ∂f ( q )  ∆t ∆t 2 T
  = M + Cn +1 + ( Φqn+1 αΦn+1 + K n+1 ) (26)
 ∂q  qn+1 2 4

This matrix shows ill-conditioning when the time step ∆t is very small. According to
Bayo and Ledesma (1996) the numerical condition of the matrix (26) is O ( ∆t ) , which sets
−3

an upper limit to the practical values of step-sizes. Fortunately the trapezoidal rule allows
relatively large steps while keeping stability.
The Newton-Raphson iterations are combined with iterations to compute the Lagrange
multipliers λ ∗ in eq. (22), that act as a correction of the penalty term. Their values can be
computed by the following iterative formula,
λ ∗i +1 = λ ∗i + αΦi +1 (27)

starting with λ ∗0 = 0 or with an extrapolated value from previous steps.


Because of the penalty terms in eq. (22), the position vector that results from eq. (25)
satisfies the position constraint equations. However the velocities and accelerations obtained
from eqs. (23) and (24) do not satisfy the velocity and acceleration kinematic constraints.
When convergence on a new position vector has been obtained, the velocities and accelera-
tions provided by the numerical integrator formulae are projected on the constraint manifold
with a mass-orthogonal method that uses as projection matrix the same tangent matrix as the
Newton-Raphson iterations. Bayo and Ledesma (1996) introduced mass-orthogonal projec-
tions able to be used with the penalty formulation, leading to systems of linear equations in
the corrected velocities and accelerations in the form,
8

 ∆t ∆t 2 T   ∆t ∆t 2  ∗ ∆t 2 T
 M +
2
C +
4
( q
Φ αΦ + K )  2

q = M + C +
4
K  q −
4
Φq αΦt (28)
   
 ∆t ∆t 2 T   ∆t ∆t 2  ∗ ∆t 2 T 
 M + C + ( Φ q αΦ + K )  
q =  M + C +  −
K q Φq α ( Φqq + Φ
 )
t (29)
 2 4   2 4  4

where q ∗ and q ∗ are the approximate velocities and accelerations obtained from the numeri-
cal integration formulae (23) and (24). Observe that the leading matrices in eqs. (28) and (29)
are identical to the tangent matrix (26) of the Newton-Raphson iterations; this matrix has to be
formed and factorised only once.
The aim of this formulation is to solve a large family of multibody dynamic simulations
using a coherent, efficient and well-proved set of relatively simple techniques. Natural coor-
dinates are used because they lead to constant mass matrices, not velocity dependent inertia
forces and quadratic or constant constraint equations. The augmented Lagrangian method
allows the computation of the constraint forces and makes the problem less sensible to the
penalty numerical values. The trapezoidal rule is a simple and accurate integration method
able to deal both with stiff and non-stiff problems. The resulting system of linear equations is
relatively large compared to the ones resulting from relative coordinates, but can be solved
efficiently using sparse matrix techniques and taking advantage of its symmetry and positive-
definiteness. In addition to this, the aforesaid method is able to tackle in a robust way with
changes of configuration, singular positions and redundant constraints.
According to Cuadrado, Cardenal et al. (2000), this formulation is simple and reliable,
but not as fast as a fully recursive topological formulation based on the articulated inertia
method that uses penalty terms to introduce the closure of the loops constraints. This topo-
logical formulation is faster in all the examples described, with gains in CPU time ranging
from 20% to 70%.

4 TOPOLOGICAL SEMI-RECURSIVE FORMULATIONS


Open-chain systems, when formulated using relative coordinates, avoid constraint equations.
For these systems there are several fully recursive formulations able to solve the direct and
inverse dynamic problems with O(n) arithmetic operations (see for instance Armstrong
(1999), Anderson (1992), Featherstone (1987) and Bae and Haug (1987)). Fully recursive
formulations are the most efficient ones for chains with large number of bodies. A careful
analysis carried out by Stelzle, Kecskeméthy and Hiller (1995) demonstrated that these meth-
ods are the most efficient for a number of bodies n>7.
If the system has closed loops the relative coordinates are not independent. The usual
way to deal with these systems is to open the loops by cutting some joints and to carry out the
dynamic analysis by applying the constraint forces and imposing the corresponding constraint
equations. In this case the O(n) dynamic formulation becomes much more involved (see Bae
and Haug (1987-88), Saha and Schiehlen (2002), Angeles (2002) and Anderson and Critchley
(2003)), and many authors prefer to keep it simpler with a partial application of recursivity,
leading to semi-recursive formulations. At the end, all semi-recursive formulations arrive at
systems of linear or nonlinear equations, depending on the kind of numerical integrators they
use, explicit or implicit. Solving these equations is an O(n3) arithmetic operations process,
assuming that no provision is taken to take advantage of the zeroes or sparsity pattern of the
system matrix.
9

Most semi-recursive formulations use Cartesian coordinates in the first stage of the
analysis. The closed loops are opened by removing some joints (or bodies). The dynamic
equations of the spanning tree and the closure of the loop constraint equations are formulated
in Cartesian coordinates, and then they switch to relative coordinates using a velocity trans-
formation. A difference between the formulations is the reference point they use to define the
Cartesian velocities and accelerations of each body. An obvious choice can be the center of
gravity that simplifies the setting of the Newton-Euler dynamic equations; another possibility
is the origin of the reference frame attached to the moving body. A third possibility is to use
the point pertaining to the moving body that instantaneously coincides with the origin of the
global or inertial reference frame; as the position of this point is the same for all bodies, some
recursive expressions become very simple.
Among the semi-recursive formulations reported in the bibliography it is necessary to
mention the method of Bae (Bae, Han et al. (2000), Bae, Lee et al. (2000), Bae, Cho et al.
(2001) and Bae, Han et al. (2001)). This formulation is very different from the others, because
it is closely tied to the stiff numerical integrator described by Yen (1993). Bae uses as refer-
ence point the origin of the moving reference frame. To perform a time step, Bae sets a sys-
tem of nonlinear equations whose unknowns are the new relative positions, velocities, accel-
erations and Lagrange multipliers. These equations come from the dynamic equations, the
kinematic constraints for positions, velocities and accelerations, and from the backward dif-
ferentiation formula used by the numerical integrator. These nonlinear equations are solved by
a Newton-Raphson method whose tangent or Jacobian matrix is computed exactly using for-
ward and backward recursive formulae for kinematic and force terms, respectively. This
method is relatively simple and seems to be very robust and efficient, particularly when the
system of linear equations has a small or moderate size. Because of the BDF formula used by
the integrator, it is able to deal with both stiff and non-stiff problems.
The first semi-recursive formulation based on a velocity transformation between Carte-
sian and relative velocities was due to Jerkovsky (1978). These ideas were subsequently ex-
tended by other authors, such as Kim and Vanderploeg (1986), Nikravesh and Gim (1989),
García de Jalón, Avello et al. (1990), and Bae and Won (1990). More recently, semi-recursive
formulations have been developed by Negrut, Serban and Potra (1997), Saha and Schiehlen
(2001), Saha (2002) and Kim (2002). In the following sections a new variant that is very sim-
ple and general will be described in detail.

4.1 Semi-recursive formulation for open-chain systems


As many authors do, this method starts with the dynamic equations set in Cartesian coordi-
nates and then applies two velocity transformations that lead to the motion differential equa-
tions using a set of independent relative coordinates.
This method is able to deal with any kind of multibody systems. It adapts well both to
explicit and implicit integrators. If the system has closed loops it is first converted to an open-
chain system by the cut-joint method or –in some cases– by removing some bodies with a
particular geometry and mass distribution (rods). The motion equations are first formulated in
Cartesian coordinates. Also the closure of the loop constraints are formulated in Cartesian
coordinates; the corresponding constraint forces are introduced through Lagrange multipliers.
Then, a first velocity transformation switches from the Cartesian velocities to the rela-
tive velocities corresponding to the open-chain system. After this transformation only the clo-
sure of the loop constraints remain; they are transformed to the relative velocity space. In or-
10

der to get a system of ordinary differential equations, a second velocity transformation that
keeps only a subset of independent relative velocities is applied.

gi

ri

Figure 1. Body geometry defined with points and unit vectors.


In the formulation that is described here, the geometry of each moving body is defined
in a reference frame attached to the moving body by using natural coordinates, i. e., by defin-
ing a set of points and unit vectors that describe the geometry of the body and its joints, as can
be seen in Figure 1. In this way, the geometry is simpler and clearer than using multiple
“markers” or additional reference frames attached to the moving bodies (see for instance Bae,
Cho et al. (2001), or Kim (2002)). When needed, this geometric information is easily trans-
formed to the global reference frame using the body position variables, that are the position
vector of the origin of the moving reference frame ri and the transformation matrix Ai.
For reasons that will become apparent later, the Cartesian velocities Zi include the ve-
locity s i of the point attached to body i that instantaneously coincides with the origin of the
inertial reference frame. These Cartesian velocities and accelerations are also used by Negrut,
Serban and Potra (1997) and Kim (2002). The Cartesian velocities and accelerations are then
defined by the vectors,
 s  
 ≡  si 
Zi ≡  i  , Z i (30)
ωi  ω i

Vectors Z and Z  are respectively the vectors that contains the Cartesian velocities and
accelerations of all the bodies:
ZT = {Z1T ZT2 " ZTn } ,  T = {Z
Z T T
Z  T}
" Z (31)
1 2 n

Using points and unit vectors, joints between contiguous bodies are modeled very eas-
ily. For instance, in a Revolute joint between bodies i-1 and i (see Figure 2), an output point
and a unit vector of element i-1 coincide respectively with the input point and unit vector of
element i. For a Prismatic joint both elements share a unit vector, and the input point of ele-
ment i is located on the line defined by the output point and unit vector of element i-1 (see
Figure 3); in this case both elements share the same transformation matrix.
11

ui Z′i i Z i′ i
d( i −1)i
Z i′−1 Z i′−1 Yi ′
i–1 X i′ i–1 ui
Yi′
p i−1 p i−1 X i′
Yi ′−1 Z Yi ′−1 Z
ri
ri

X i′−1 ri−1 X i′−1 ri−1

Y Y
X X

Figure 2. Revolute joint. Figure 3. Prismatic joint.

For dynamics, it is useful to have expressions for the Cartesian velocities Y and accel-
 based on the center of gravity, that are defined in the form:
erations Y
 g  I −g i   s i 
Yi =  i  =  3   = Di Z i (32)
ωi   0 I 3  ωi 


 =  g i  = I 3 −g i   si  ω
 iω
 i gi 
 +e
Y  +  = Di Z (33)
i
ω  i   0 
I 3  ω i  0  i i

Eqs. (32) and (33) constitute the definition of matrix Di and vector ei. In these expres-
sions, g i and ω
 ι are the skew-symmetric matrices associated with vectors gi and ωi.
For open-chain systems (and for closed-loop systems, after removing some joints or
bodies) the Cartesian positions, velocities and accelerations can be computed recursively up-
wards from the relative coordinates, velocities and accelerations. The recursive calculations
for positions are straightforward and are not included here because they are not important for
the first velocity transformation. The recursive expressions for velocities and accelerations
are,
Zi = Zi −1 + bi zi (34)
 =Z + b 
Z i i −1 i zi + d i (35)

where zi are the relative coordinates, and vectors b i and di have simple expressions that
depend on the kind of joint i. Note that if different reference points are used for bodies i and i-
1, the eqs. (34) and (35) should include a transformation matrix Bi (see for instance Saha and
Schiehlen (2001) and Saha (2002)),
Yi = Bi Yi −1 + bi zi (36)
 =BY
Yi i i −1 + b i 
zi + di (37)
The simpler form of eqs. (34) and (35) has important advantages in some accumulation
expressions that will appear later.
12

It is possible to consider only Revolute and Prismatic joints, because other joints with more
degrees of freedom can be decomposed on a combination of Revolute and Prismatic joints
with massless intermediate bodies.
For open-chain systems the velocity transformation defined by eq. (6) can be set di-
rectly. In this case, the column j of matrix R can be computed directly, because its elements
are the Cartesian velocities of the bodies that are upwards in the tree, originated by a unit rela-
tive velocity in the joint j and null relative velocities in the remaining joints. As all the bodies
share the same reference point, all have the same velocity b i , according to eq. (34).

1 3
z 1 z 3
2 4
z 2 z 4
5
z 5

Figure 4. An example of an open-chain system.


This velocity transformation and the way the system topology is taken into account is
better explained with an example. Figure 4 shows an open-chain, tree configured multibody
system. As suggested by Negrut, Serban and Potra (1997) the bodies have been numbered
from the leaves to the root, in such a way that each body has a number lower than its parent.
This numbering avoids the later filling-in in the Gauss elimination process. Each joint has the
same number as the body that is upwards when the tree is traversed from the root to the
leaves. For this example, the velocity transformation matrix corresponding to eq. (6) has the
following form:
 b1 b 2 0 0 b5   I I 0 0 I   b1 0 0 0 0
0 b 0 0 b5   0 I 0 0 I   0 b2 0 0 0
 2    
R=0 0 b3 b4 b5  =  0 0 I I I  0 0 b3 0 0  ≡ TR d (38)
    
0 0 0 b4 b5   0 0 0 I I  0 0 0 b4 0
 0 0 0 0 b5   0 0 0 0 I   0 0 0 0 b5 

where I is the identity matrix of size 6×6, T is the path matrix that defines the connectivity of
the mechanism and R d is a diagonal matrix whose elements are the vectors bi defined in eq.
(34). Remember that vector bi represents the velocity of the point that coincides with the iner-
tial frame origin, induced by a unit relative velocity in joint i.
The introduction of the path matrix T is a key point of this formulation. This allows the
topology of the spanning tree to be taken into account in a straightforward way. Other authors,
as Negrut, Serban and Potra (1997), need to introduce complicated expressions to explain the
recursive processes on different branches that start from a common junction body. Observe
13

that the k row of the path matrix T gives the joints or relative coordinates that are below body
k, while the k column gives the bodies that are upwards of joint k.
Taking into account eqs. (32) and (33), the virtual power of the inertia and external
forces acting on the whole system can be expressed as,
n n n

∑ Y ( M Y − Q ) = ∑ Z
i =1
i
∗T
i i i
i =1
∗T
i DTi ( M i Di Z
 + M e − Q ) = ∑ Z∗T ( M Z
i i i i i i i − Qi ) = 0

i =1
(39)

where the virtual velocities have been denoted with an asterisk (*). The matrices appearing in
eq. (39) are,
m I 0 m I − mi g i 
Mi =  i 3 , M i = DTi M i Di =  i 3 , Qi = DTi ( M i ei − Qi ) (40)
 0 J i   mi g i J i − mi g i g i 

where mi is the mass of body i and J i is its inertia tensor; matrix Di and vector ei are defined
in eq. (33). In eqs. (39) and (40) the inertia matrices and vector forces denoted with an upper
bar refer to the origin of the global reference frame. The advantage of referring everything to
the origin of the global frame is that vectors and matrices from different bodies can be added
directly, without any further transformation.
By defining the system inertia matrix M , the force vector Q and the acceleration vec-

tor Z in the form,
M ≡ diag ( M1 , M 2 ,..., M n ) (41)

QT = Q1T , QT2 ,..., QTn  (42)

 T = Z
T T T
Z  1 , Z 2 ,.., Z n  (43)

the dynamic eqs. (39) can be written as:


Z∗T ( MZ
 − Q) = 0 (44)

Using eq. (38), the velocity transformation and its time derivative, can be written for the
whole system in the form:
Z = Rz = TR d z (45)
 = TR   
Z d z + TR d z (46)
These expressions are very similar to the expressions obtained by Saha (2002) in his
DeNOC (Decoupled Natural Orthogonal Complement) method. The Saha Nl matrix is trian-
gular when serial manipulators are considered and is a function of the Bi matrices in eq. (36)
because of the reference point he uses. Matrix Rd is analogous to the Saha Nd matrix.
Substituting eqs. (45) and (46) in eq. (44) and taking into account that the relative vir-
tual velocities are independent, a set of equations analogous to eqs. (15) is obtained,
R Td ( TT MT ) R d 
z = RTd TT ( Q − MTR
 z )
d (47)

It is interesting to visualize the pattern of the inertia matrix in eq. (47), for the open-
chain example in Figure 4,
14

b1T M1Σ b1 b1T M1Σ b 2 0 0 b1T M1Σ b5 


 T Σ Σ 
T
b 2 M1 b1 b 2 M 2 b 2 0 0 bT2 M Σ2 b5 
R Td TT MTR d =  0 0 bT3 M 3Σ b3 bT3 M 3Σ b 4 bT3 M 3Σb 5  ≡ R d M R d
T Σ
(48)
 Σ Σ 
 0 0 T
b M b3 b M b 4
4 3
T
4 4 bT4 M Σ4 b 5 
 bT M Σ b bT M Σ b T Σ
b M b3 b M b 4 T Σ
bT5 M 5Σ b 5 
 5 1 1 5 2 2 5 3 5 4

where,
M1Σ = M1
M Σ2 = M 2 + M1Σ
M 3Σ = M 3 (49)
M Σ4 = M 4 + M 3Σ
M 5Σ = M 5 + M Σ2 + M Σ4

Matrices M iΣ are the composite inertia matrices described by many authors. They rep-
resent the accumulation of the inertia matrices of all the elements that are upwards of joint i.
This is a result of the introduction of the path matrix T in the formulation.
In an analogous way, the accumulated external forces Q ∑ and velocity dependent ac-
cumulated inertia forces P ∑ can be computed from the right-hand side of eq. (47),
Q1∑  P1∑ 
 ∑  ∑
Q 2  P2 

Q ≡ T Q = Q3∑  ,
T ∑ 
P ≡ −T MTR d z = P3∑ 
T
(50)
Q ∑  P ∑ 
 4  4 
Q5∑  ∑
P5 
where,
Q1∑ = Q1 P1∑ = −M1 ( TR
 z )
d 1

Q = Q2 + Q
2

1 P = −M 2 ( TR

2
 z ) + P ∑
d 1 2

Q = Q3
3 P = −M 3 ( TR

3
 z )
d (51)
3

Q 4∑ = Q 4 + Q3∑ P4∑ = −M 4 ( TR
 z ) + P ∑
d 3 4

Q = Q5 + Q + Q
5

2

4 P = −M 5 ( TR

5
 z ) + P ∑ + P ∑
d 2 4
5

The meaning of the accumulation of external forces is clear. With respect to the velocity
dependent inertia forces, eq. (51) shall be related with eq. (46). The term ( TR  z ) represents
d
the velocity dependent Cartesian accelerations, i.e., the Cartesian accelerations computed with
z = 0 ). This vector is the forward accu-
the true velocities z and null relative accelerations ( 
mulation of vectors d j in eq. (35), from the fixed base body to the joint considered.
The matrix in eq. (48) shows the advantages of numbering the bodies and joints from
the leaves to the root: the Gaussian elimination or the LU factorisation keeps the pattern of
zeros in the matrix, i. e., it maintains the skyline or the sparsity of this matrix, avoiding some
arithmetic operations. For instance, for a tree model of the human body, with 42 bodies and
15

41 joints, up to a 13% reduction of the total CPU time has been obtained, using Matlab. The
advantages of this numeration method was pointed out by Negrut, Serban and Potra (1997).
The eqs. (47) constitute a system of ordinary differential equations whose coefficient
matrix and right-hand side vector can be computed recursively in a very efficient way.

4.2 Semi-recursive formulation for closed-loop systems


The dynamics of closed-loop multibody systems can be formulated by adding the constraint
equations to the dynamic equations corresponding to the open-chain system obtained by open-
ing the closed loops. Here the methods reviewed in Section 3 to improve the global methods
that use the descriptor form can be applied with analogous advantages, although the problem
size is much lower with relative than with natural coordinates. There are three main possibili-
ties:
a) To introduce the constraints by the Lagrange multiplier method and to use the most
appropriate solution method for the augmented matrix: the RSM or the NSM, accord-
ing to von Schwerin (1999).
b) To follow the methodology of Cuadrado, Gutiérrez et al. (2001) and to introduce the
constraints by the penalty method with augmented Lagrangian. Then to integrate with
the trapezoidal rule and to correct velocities and accelerations with mass orthogonal
projections. This procedure has been explored quite recently by Cuadrado and Dopico
(2003) obtaining very good results.
c) It is also possible to select an independent subset of relative coordinates, in such a way
that a set of ordinary differential equations will be obtained again. This is carried out
by a new velocity transformation similar to the one introduced to arrive at eq. (15). In
this case the transformation matrix R will be obtained numerically from the Jacobian
matrix of the closing loop constraint equations. This is the method that will be ex-
plained in the rest of this paper. It is faster than method a), it is free from constraint
stabilization problems, and it is not tied to a particular integrator as method c).

4.2.1. Kinematic constraint equations. The closing-loop constraint equations are first for-
mulated in Cartesian coordinates and then transformed to relative coordinates. In this paper
two ways to set the closed-loop constraint equations will be considered. The first one is the
cutting joint method, that is very common in the literature. In this paper the cutting by a
Revolute joint defined with natural coordinates will be examined in detail. The second
method to open the loops consists of the elimination of one or more rods (slender bodies with
two Spherical joints and a negligible moment of inertia around the direction of the axis). This
second procedure has not been found in the bibliography and it is particularly interesting in
some applications as car suspension systems, where rods are very common. Rods are rigid
bodies difficult to analyze: sometimes they are considered as distance constraints, neglecting
their inertia forces (see for instance Negrut, Serban and Potra (1997)); many commercial
computer programs do not allow the introduction of bodies with two Spherical joints and
oblige the replacement of a Spherical joint by a Universal joint, so as to eliminate the free
rotation around the rod axis. To open the loops by removing a rod introduces one constraint
equation, but keeping the rod and opening the loop by cutting a Spherical joint introduces
three constraint equations and keeps the two relative coordinates of the Universal joint. On the
other hand, a rod can be eliminated easily, but to consider exactly its inertia properties is more
involved. This point will be dealt with later on in some detail.
16

Figure 5 shows a Revolute joint that is defined with natural coordinates as the sharing of
a point and a unit vector. To take into account the constraints of such a joint, two points and
two unit vectors, belonging to different bodies, must be compelled to coincide.

−Q1r −Q3r

uj uk 
−M13 Y 3 
−M 31Y 1

rj rk
1 3 1 3
z 1 z 1
z 3
z 3
2 4 2 4
z 2 z 4 z 2 z 4
4 5
z 5 z 5

Figure 5. Chain closed with a Revolute joint. Figure 6. Chain closed with a rod element.

To set the closed-loop condition for the system shown in Figure 5, the following equa-
tions must be established:
r j − rk = 0 ( 3 independent equations ) (52)

u j − uk = 0 ( only 2 independent equations ) (53)

For the rod element in Figure 6 only one constant distance condition is necessary:

(r − rk ) (r − rk ) − l 2jk = 0
T
j j (54)

The constraint equations (52)-(54) shall be expressed in terms of the relative coordinates
z. This is not difficult, because points r j y rk , and unit vectors u j y u k can be expressed as
functions of the relative coordinates of the joints in their respective branches of the open-
chain system.
It is also necessary to compute the Jacobian matrix of constraints (52)-(54) with respect
to relative coordinates z. As the aforesaid constraints are expressed as a function of Cartesian
coordinates, the chain derivative rule shall be used. For instance, for the constant distance
constraint (54),
∂r j ∂rk ∂r j ∂r
Φ z = Φr + Φr = Φr + Φr k (55)
j ∂z k ∂z j ∂z  k ∂z 
The derivatives with respect to the coordinates r j and rk in eq. (54) are easy to find:

Φr = 2 ( rTj − rkT ) (56)


j

Φr = −2 rTj − rkT
k
( ) (57)
17

The derivatives of the position vectors r j and rk with respect to the relative coordinates
z can be computed from the velocities of these points induced by unit relative velocities in the
joints between the fixed body and bodies j and k, respectively. For instance, if the joint i is a
Revolute joint determined by a point ri and a unit vector ui , located between the base body
and point r j , the velocity of point j originated by a unit relative velocity in joint i can be ex-
pressed as,
∂r j
= ui × ( r j − ri ) = u
 i ( r j − ri ) (58)
∂zi
If joint i were a Prismatic joint also determined by ri and ui , the derivative would be
(unit translation motion):
∂r j
= ui (59)
∂zi
In any case, it can be assumed that the closure of the loop constraint equations
Φ ( z ) = 0 and their Jacobian matrix Φ z are known or easy to compute. Using the coordinate
partitioning method based on Gaussian elimination with full pivoting as in eq. (11), it is pos-
sible to arrive at the following partitioned velocity equation,
z d 
z d = − ( Φ dz ) Φiz z i
−1
Φ zd Φiz   i  = 0, (60)
 z 
where it is assumed that matrix Φ dz is invertible. Eq. (60) allows an easy calculation of the
transformation matrix R z that relates dependent and independent relative velocities,

z d   − ( Φ dz ) Φiz  i  − ( Φ d )−1 Φi 


−1

z = R z z ,  i=  z , Rz =  
i z z
(61)

z
    I   I 

If this equation is differentiated with respect to time the following equation is obtained,
z = R z
  z i
zi + R (62)
z

The velocity transformation defined by eqs. (61) and (62) can be introduced in the mo-
tion differential equations (47). By pre-multiplication by matrix R Tz the following is obtained,

z i = R Tz RTd Q ∑ − RTz R Td M Σ ( R
R Tz RTd M ∑ R d R z  z + R R
d d
 z i )
z (63)

All the terms in this equation are known, except the parenthesis that contains the deriva-
tives of the transformation matrices. It is simpler to compute the two terms jointly. Consider-
ing eq. (61), the parenthesis in eq. (63) can be written as,

 z + R R
R  z i = R
 R z i + R R z i = ( R
 R +R R ) z i = d ( R d R z ) z i (64)
d d z d z d z d z d z
dt
This derivative can be computed from the product of velocity transformations that re-
lates Cartesian and independent relative velocities,
Z = Rz = TR d z = TR d R z z i (65)
Taking the time derivative of this equation,
18

 = TR R  d ( Rd Rz ) i
zz + T
i
Z d z (66)
dt
In this equation, it can be seen that the product of the path matrix T times the derivative
looked for, can be computed as the Cartesian accelerations Z  that would be produced by the
z i = 0 ). The dynamic equations
true velocities z and null relative independent accelerations ( 
(63) can be written in the form,
 d ( TR d R z ) i 
R Tz RTd M ∑ R d R z
z i = R Tz RTd  Q ∑ − TT M z  (67)
 dt 
To compute the derivative in this expression as explained before, the dependent relative
accelerations corresponding with null zi must be computed. Taking time derivatives of eq.
(60):

zd  i z d  i z d 
z d = − ( Φ dz ) Φ
−1
Φ zd 
i d
Φ   i  + Φ  
Φ z   i  = 0,  d  
Φz   i  (68)
z z z
 
z   z   z 
 z ) can be computed as,
where the product ( Φ z

 ∂r j z + Φ ∂r j z + Φ

 z = Φ
Φ  ∂rk z + Φ ∂rk z (69)
z rj rj rk rk
∂z ∂z ∂z ∂z
Φr = 2 ( rTj − rkT ) (70)
j

 = 2 ( r T − r T )
Φ (71)
r j j k

So, a way to compute all the terms in the ODEs set (67) has been completed. Two ve-
locity transformations have been introduced. The first one, from Cartesian to open-chain rela-
tive velocities, can be applied directly and leads to an accumulation of forces and inertias. The
second one is applied in a fully numerical way to a system of –usually– a much smaller size.

4.2.2. Inertia and external forces transmitted by the rods. It remains to explain how the
inertia of the removed rods is taken into account in the motion differential equations (67). For
this, Figure 6 shall be considered again. Assuming a uniform mass distribution, the rod's iner-
tia matrix has the following expression,
m  2I 3 I 3  α I 3 β I 3  m m
Mr = = α≡ ,β≡ (72)
6  I 3 2I 3   β I 3 α I 3  3 6
The dynamic equilibrium of the rod allows the computation of the forces transmitted by
the rod to the neighbor elements as a function of its inertia and external forces,
r  Q r  f r 

M r  j  =  rj  +  jr  (73)

rk  Q k  f k 

where Q rj and Q rk are the forces applied by the rod to the neighbor bodies on points j and k,
and f jr and f kr are the external forces applied to the rod. The forces acting on elements j and k
shall be translated to the reference point –the origin of the global frame– by adding the corre-
sponding torque. So, the forces transmitted to bodies j and k, at their reference points, are:
19

I 3 0 α I 3 β I 3   f jr 
r  r
Q j  0   α I 3 β I 3  
r j  f jr   α r β r  
j  r j  r j f j 
  = − 
j
  −  r   = −
j
    +  r  (74)
Q k  0 I 3    β I 3 α I 3  
rk  f k    β I 3 α I 3  rk   f k 
    rk f kr 
 0 rk   β rk α rk 
The acceleration of points j and k can be expressed in terms of the respective bodies’
 ,
accelerations Z j and Z k

  j × r j + ω j × ( ω j × r j ) = I 3
r j = s j + ω  +ω
−r j  Z j
 jω
 jrj (75)

  k × rk + ω k × ( ω k × rk ) = [ I 3
rk = s k + ω −rk ] Z
 +ω
k
 kω
 k rk (76)
Substituting these expressions in eq. (74) the following equation is obtained,
 I 3    f jr 
Q j  M rjj M rjk  Z

   r j 
(α 
ω j

ω r
j j + β 
ω 
ω r
k k k  )  r
 r j f j 
  = − r   − +  r 
j
(77)
Q k   M kj M rkk  Z k   I 3  fk
  ( β  jω
ω  jrj + α ω  k rk )   r 
 kω
   
 rk   rk f k 
where,
I 3 r Tj   I 3 rkT  I 3 rkT 
M =α 
r
jj T
, M =α r
kk T
, M =M
r
jk
rT
kj =β T
(78)
r j r j r j  rk rk rk  r j r j rk 
The three terms on the right-hand side of eq. (77) represent, respectively, the accelera-
tion dependent inertia forces, the velocity dependent inertia forces and the contribution of
external forces (such as the weight) acting on the rod. These forces shall be added at the ele-
ment level in the motion differential equations (67). The external forces and the velocity de-
pendent inertia forces are directly added to the corresponding forces of bodies j and k, accord-
ing to the expressions,
 f jr  I 3 

Q j = Q j +  r , P′j = P j −   (α ω  jrj + β ω
 jω  k rk )
 kω (79)

r j f j  r
 j

 f kr  I 
Q′k = Q k +  r  , Pk′ = Pk −  3  ( β ω  jrj + α ω
 jω  k rk )
 kω (80)
rk f k  rk 
The acceleration dependent inertia forces are a little more involved because of the cou-
pling terms M rjk and M rkj in eq. (77). The diagonal blocks M rjj and M rkk are directly added
to the inertia matrices of bodies j and k, according to the expressions,
M ′j = M j + M rjj (81)

M ′k = M k + M rkk (82)
In Figure 6 the coupling inertia forces are represented in the respective centers of grav-
r 
ity. The force −M13 Y3 acts on body j=1, but it depends on the acceleration of body k=3; it will
be propagated backwards on the branch of body 1, but it depends on the relative accelerations
20

in the branch of body 3. To see this with more detail, the modified inertia matrix for the whole
system in Figure 6 is written as,
 M1′ 0 r
M13 0 0 
 
 0 M2 0 0 0 
M = M 31
r
0 M′3 0 0  (83)
 
 0 0 0 M4 0 
 0 0 0 0 M 5 

When this inertia matrix is transformed with the path matrix T the following result is
obtained (in italics the matrix elements modified by the coupling terms),
T
I I 0 0 I  M1′ 0 M 13r 0 0  I I 0 0 I
0  
 I 0 0 I   0 M2 0 0 0  0 I 0 0 I 
TT MT = 0 0 I I I  M 31r 0 M′3 0 0  0 0 I I I  ==
    
0 0 0 I I  0 0 0 M4 0  0 0 0 I I
0 0 0 0 I   0 0 0 0 M 5   0 0 0 0 I 

(84)
 M1′Σ M1′Σ M 13r M 13r M1′ + M 13r 
 
 M1′ M′2Σ M′2Σ + M 13r
Σ
M 13r M 13r 
=  M 31r M 31r M′3Σ M′3Σ M′3Σ + M 31r 
 
 M 31
r
M 31r M′3Σ M′4Σ M′4Σ + M 31r 
M′ + M r M′Σ + M r M′Σ + M r M′4Σ + M 13r M′5Σ + M 13r + M 31r 
 1 31 2 31 3 13

When the first velocity transformation is applied, the following open-chain inertia ma-
trix is obtained,
R Td TT MTR d =


b1T M1Σb1 b1T M1Σ b 2 b1T M 13r b3 b1T M 13r b 4 (
b1T M1Σ + M 13r b5 ) 



bT2 M1Σb1 bT2 M Σ2 b 2 bT2 M 13r b3 bT2 M 13r b 4 bT2 ( M′ 2
Σ
+ M 13r )b 5


(85)
=

bT3 M 31r b1 bT3 M 31r b 2 bT3 M 3Σb3 bT3 M 3Σb 4 bT3 (M Σ
3 + M 31r )b5




T
b M b
4
r
31 1
T
b M b
4
r
31 2
T
b M b3
4
Σ
3
T
b M b4
4
Σ
4 b T
4 (M Σ
4 +M r
31 )b5


 bT
 5 (MΣ
1 +M r
31 )b
1 b T
5 (M Σ
2 +M r
31 )b 2 b T
5 (M Σ
3 +M r
13 )b 3 b T
5 (M Σ
4 +M r
13 )b 4 b T
5 ( M′ 5
Σ
+M +M r
31
r
13 ) b5 

The inertia matrices in eqs. (84) and (85) clearly show the accumulation pattern for ma-
trices M13r
and M 31
r
. Matrix M13r
appears in rows {1, 2, 5} and in columns {3, 4, 5}. Remem-
bering that in the dynamic equations (47) the rows of the inertia matrix are related to forces
and the columns with relative accelerations, it can be seen that this coupling matrix appears in
the rows corresponding to the joints that are located backwards in the branch of body 1 (the
elements and joints that receive the accumulated inertia forces), and in the columns of the
joints that are located backwards of body 3, i. e., the joints whose relative acceleration deter-
mine the Cartesian acceleration of body 3. This topological information, the bodies or joints
that are behind bodies 1 and 3 in the open-chain system, can be found from rows 1 and 3 of
the path matrix T introduced in eq. (38).
21

5 NUMERICAL EXAMPLES
In this section two numerical examples solved with the semi-recursive formulation described
in this paper will be presented. This formulation has been implemented in Matlab and Fortran.
The Matlab implementation is available in http://mat21.etsii.upm.es/mbs.
In both implementations only Revolute and Prismatic joints are allowed. Other joints, as
the Cylindrical, Spherical, Universal, etc., are modeled as a series of Revolute and Prismatic
joints with intermediate fictitious massless bodies. For multibody systems that do not have
joints with the ground or fixed body, a Floating joint with six degrees of freedom is defined
between the ground and the body that is chosen as the base body. This Floating joint is de-
composed in three Revolute and three Prismatic joints.

5.1 Five-point rear suspension


The five-point rear suspension of a car has been considered as a test by many authors, von
Schwerin (1999) among them. It has nine rigid bodies: the fixed body, the frame, the carrier,
the wheel and five rods.
According to von Schwerin (1999), without including the frame, this two degrees of
freedom system was modeled with 19 relative coordinates by Hiller and Frik, and with 14
coordinates by Grupp and Simeon. von Schwerin used 45 natural coordinates and 43 con-
straint equations. With the semi-recursive formulation described in this paper the closed loops
can be opened by eliminating the five rods. The resulting open-chain system –that includes
the frame– has eight degrees of freedom and can be modeled with only eight relative coordi-
nates. The closed-chain system has five constraint equations that correspond to the five con-
stant distance conditions of the rods. The numerical integration is carried out using three in-
dependent accelerations and eight relative velocities.

Figure 7. Five point rear suspension.


Table I shows the results of CPU time obtained with the Compaq Fortran 90 and Matlab
implementations. The programs have been run on a AMD K7 Athlon 1200 computer with 256
Mbytes. The manoeuvre simulated is an echelon and its duration is 2 seconds. The numerical
integrators have been the Shampine and Gordon DE routine (written in Fortran) and the
ode113 Matlab integrator. Both are based on the Adams-Bashforth-Moulton method. It must
be remarked that Matlab is a very good environment to develop the program, but not to exe-
cute it. Once the Matlab version runs correctly, the Fortran version can be developed and de-
bugged very easily. The results of exporting C/C++ code from Matlab using the Matlab Com-
piler have been in this case very poor, from the point of view of the numerical efficiency.
22

Fortran 90 Matlab 6.5


Total simulation time (s) 0.12 23.874
Number of function calls 1165 624
Time per function call (ms) 0.1013 38.42
Table I. CPU times for the five-point rear suspension in an AMD K7 1200Mhz computer
If instead of opening the closed loops by removing the five rods, the conventional
method of cutting five Spherical joints were used, this model would have 18 relative coordi-
nates (10 additional because of five Universal joints kept on the rods) and 15 constraint equa-
tions because the five Spherical joints removed (10 more than when removing the rods). With
this conventional modelling the Matlab code needs 26.5% more CPU time than by eliminating
the rods.

5.2 Complete car model


Figure 8 shows the model of a car with McPherson suspension in the front and a five point
suspension in the rear. This system has 26 rigid bodies (12 rods), 36 joints (6 Revolute, 2
Prismatic and 28 Spherical) and 14 degrees of freedom. This system can be converted into an
open-chain system by removing the 12 rods and two Spherical joints in the front suspension.
The open-chain system has three Floating joints, one for the chassis an two for the two carri-
ers in the rear suspensions. Table II shows the CPU time and number of function evaluations
achieved with the Fortran and the Matlab implementations. The computer used has been the
same as in the previous example, an AMD Athlon 1200 with 256 Mbytes, running Windows
XP Workstation.
The results obtained show that real-time simulations are possible with rather old PCs.
With the latest CPU from both Intel and AMD it is possible to get real-time results including
the complete multibody model of one or even two occupants (with 42 bodies and 41 joints for
each human body model).

Figure 8. Complete model of a car with 26 rigid bodies and 36 joints.


23

Fortran 90 (RK4) Fortran 90 (DE) Matlab 6.5 (ode113)


No of steps 100 100
No of function evaluations 400 600 400
Ms/function evaluation 0.625 0.6414 169,37
Total CPU time 0.25 0.39 67,75
Table II. CPU times and No. of function evaluations for the complete car model.

6 CONCLUSIONS
Global formulations or formulations based on the use of Cartesian dependent or independent
coordinates allow simple and general ways to deal with complex multibody systems of arbi-
trary configuration. However, its efficiency can be low. On the other hand, topological formu-
lations based on velocity transformations can share the simplicity and generality of global
formulations with the higher efficiency that results from the use of relative coordinates and
some recursive processes. These formulations can be called semi-recursive because at the end
they don't eliminate the need to solve systems of linear equations.
If the system is open-chain the velocity transformation from Cartesian to relative coor-
dinates is straightforward. The introduction of the path matrix allows an easy way to take into
account the topology for tree configured systems. If the systems have closed loops they can be
opened by cutting some joints and/or removing some rigid bodies (rods). The closure of the
loop constraints are formulated in Cartesian coordinates and then transformed to relative co-
ordinates to be added to the open-chain dynamic equations. At this point, the improved meth-
ods for the descriptor form in Cartesian coordinates published in the last few years can be
used to enforce the closure of the loop constraints. The result is a family of methods which are
fast, simple and robust. Some benefits in the simplicity can be obtained by defining the ge-
ometry of the moving bodies using natural coordinates. The appropriate selection of the refer-
ence point for the Cartesian velocities and accelerations also contribute to the simplification
of the recursive expressions for kinematic variables and for the inertia matrices. With these
simplified expressions, the path matrix can be easily defined to introduce the system topology
in the analysis. Finally, if rods are present in the model, its elimination to open the closed
loops reduces the number of relative coordinates and constraint equations. A method to take
into account its inertia properties exactly has been described in detail.

7 REFERENCES
K. S. Anderson, “An order-N formulation for motion simulation of general constrained mul-
tirigid-body systems”, Computers and Structures, 43, 565-572, (1992).
K. S. Anderson and J. H. Critchley, “Improved ‘Order-N’ Performance Algorithm for the
Simulation of Constrained Multi-Rigid-Body Dynamic Systems”, Multibody System
Dynamics, 9, 185–212, (2003).
J. Angeles, Fundamentals of Robotic Mechanical Systems, Second Edition, Springer-Verlag,
New York, (2002).
W. W. Armstrong, “Recursive Solution to the Equations of Motion of an N-Link Manipula-
tor”, Proc. 5th World Congress on the Theory of Machines and Mechanisms, 2, 1343-1346,
Montreal (Canada), (1979).
24

U. Ascher, H. Chin, L. Petzold, and S. Reich, “Stabilization of Constrained Mechanical Sys-


tems with DAEs and Invariant Manifolds”. Mechanics of Structures and Machines, 23,
135-157, (1995).
D.-S. Bae, H. Cho, S. Lee and W. Moon, “Recursive Formulas for Design Sensitivity Analy-
sis of Mechanical Systems”, Computer Methods in Applied Mechanics and Engineering,
190, 3865-3879, (2001).
D.-S. Bae, J. M. Han and J. H. Choi, “An Implementation Method for Constrained Flexible
Multibody Dynamics Using a Virtual Body and Joint”, Multibody System Dynamics, 4,
297-315, (2000).
D.-S. Bae, J. M. Han, J. H. Choi and S. M. Yang, “A Generalized Recursive Formulation for
Constrained Multibody Dynamics”, International Journal for Numerical Methods in Engi-
neering, 50, 1841-1859, (2001).
D.-S. Bae and E. J. Haug, “A Recursive Formulation for Constrained Mechanical System Dy-
namics. Part I: Open-Loop Systems”, Mechanics of Structures and Machines, 15, 359-382,
(1987).
D.-S. Bae and E. J. Haug, “A Recursive Formulation for Constrained Mechanical System Dy-
namics. Part II: Closed-Loop Systems”, Mechanics of Structures and Machines, 15, 481-
506, (1987-88).
D.-S. Bae, J. K. Lee, H. J. Cho and H. Yae, “An Explicit Integration Method for Realtime
Simulation of Multibody Vehicle Models”, Computer Methods in Applied Mechanics and
Engineering, 187, 337-350, (2000).
D.-S. Bae and Y. S. Won, “A Hamiltonian Equation of Motion for Real-time Vehicle Simula-
tion”, Advances in Design and Automation 1990, ed. by B. Ravani, 2, 151-157, ASME
Press, (1990).
J. Baumgarte, “Stabilization of Constraints and Integrals of Motion in Dynamical Systems”,
Computer Methods in Applied Mechanics and Engineering, 1, 1-16, (1972).
E. Bayo and R. Ledesma, “Augmented Lagrangian and Mass-Orthogonal Projection Method
for Constrained Multibody Dynamics”, Journal of Nonlinear Dynamics, 9, 113-130,
(1996).
J. Cardenal, J. Cuadrado, P. Morer and E. Bayo, “A Multi-Index Variable Time Step Method
for the Dynamic Simulation of Multibody Systems”, International Journal for Numerical
Methods in Engineering, 44, 1579-1598, (1999).
J. Cuadrado, J. Cardenal, P. Morer and E. Bayo, “Intelligent Simulation of Multibody Dynam-
ics: Space-State and Descriptor Methods in Sequential and Parallel Computing Environ-
ments”, Mutibody System Dynamics, 4, 55-73, (2000).
J. Cuadrado and D. Dopico, “A Hybrid Global-Topological Real-Time Formulation for Multi-
body Systems”, Fourth Symposium on Multibody Dynamics and Vibration, at the ASME
Nineteenth Biennial Conference on Mechanical Vibration and Noise, Chicago, Illinois,
USA, September 2-6, (2003).
J. Cuadrado, R. Gutiérrez, M. A. Naya and P. Morer, “A Comparison in Terms of Efficiency
Between a MBS Dynamic Formulation with Stress Analysis and a Non-Linear FEA Code”,
International Journal for Numerical Methods in Engineering, 51, 1033-1052, (2001).
R. Featherstone, Robot Dynamics Algorithms, Kluwer, (1987).
J. García de Jalón and E. Bayo, Kinematic and Dynamic Simulation of Multi-Body Systems –
the Real-Time Challenge, Springer-Verlag, New York, (1994).
25

J. García de Jalón, A. Avello, J. M. Jiménez, F. Martín and J. Cuadrado, “Real Time Simula-
tion of Complex 3-D Multibody Systems with Realistic Graphics”, in Real-Time Integra-
tion Methods for Mechanical System Simulation, ed. by Haug, E.J. amd Deyo, R. C.,
NATO ASI Series, 69, 265-292, Springer-Verlag, (1991).
J. García de Jalón, J. Unda and A. Avello, “Natural Coordinates for the Computer Analysis of
Multibody Systems”, Computer Methods in Applied Mechanics and Engineering, 56, 309-
327, (1986).
W. Jerkovsky, “The Structure of Multibody Dynamic Equations”, Journal of Guidance and
Control, 1, 173-182, (1978).
S.-S. Kim and M. J. Vanderploeg, “A General and Efficient Method for Dynamic Analysis of
Mechanical Systems Using Velocity Transformations”, ASME Journal of Mechanisms,
Transmissions and Automation in Design, 108, 176-182, (1986).
S.-S. Kim, “A Subsystem Synthesis Method for Efficient Vehicle Multibody Dynamics”, Mul-
tibody System Dynamics, 7, 189-207, (2002).
C. Lubich, “Extrapolation Integrators for Constrained Multibody Systems”, Impact of Com-
puting in Science and Engineering, 3, 213-234, (1991).
D. Negrut, R. Serban and F. A. Potra, “A Topology Based Approach for Exploiting Sparsity
in Multibody Dynamics. Joint Formulation”, Mechanics of Structures and Machines, 25,
379-396, (1997).
P. E. Nikravesh and G. Gim, “Systematic Construction of the Equations of Motion for Multi-
body Systems Containing Closed Kinematic Loops”, in Advances in Design Automation
1989, ed. by B. Ravani, 3, 27-33, ASME Press, (1989).
R. Serban, D. Negrut, F. A. Potra and E. J. Haug, “A Topology Based Approach for Exploit-
ing Sparsity in Multibody Dynamics in Cartesian Formulation”, Mechanics of Structures
and Machines, 25, 379-396, (1997).
R. Serban and E. J. Haug, “Globally Independent Coordinates for Real-Time Vehicle Simula-
tion”, ASME Journal of Mechanical Design, 122, 575-582, (2000).
M. A. Serna, R. Avilés and J. García de Jalón, “Dynamic Analysis of Plane Mechanisms with
Lower Pairs in Basic Coordinates”, Mechanisms and Machine Theory, 17, 397-403, (1982).
W. Stelzle, A. Kecskeméthy and M. Hiller, “A Comparative Study of Recursive Methods”,
Archive of Applied Mechanics, 66, 9-19, (1995).
R. von Schwerin, Multibody System Simulation. Numerical Methods, Algorithms and Soft-
ware, Springer, (1999).
J. Yen, “Constrained Equations of Motion in Multibody Dynamics as ODEs on Manifolds”,
SIAM Journal on Numerical Analysis, 30, 553-568, (1993).
S. K. Saha, “Modeling Constrained Systems with the Natural Orthogonal Complement: Re-
cursive Algorithms”, Notes of the Workshop T3, IEEE Conf. on Robotics and Automation,
May 11-15, Washington DC, http://www.angelfire.com/sc/saha/Ira02tut.pdf, (2002).
S. K. Saha and W. O. Schiehlen, “Recursive Kinematics and Dynamics for Parallel Structured
Closed-Loop Multibody Systems”, Mechanics of Structures and Machines, 29, 143-175,
(2001).
R. Wehage and E. J. Haug, “Generalized Coordinate Partitioning for Dimension Reduction in
Analysis of Constrained Mechanical Systems”, ASME Journal of Mechanical Design, 104,
247-255, (1982).

You might also like