Top Banner
1 Copyright © 2005 by ASME Proceedings of IDETC/CIE 2005 ASME 2005 International Design Engineering Technical Conferences & Computers and Information in Engineering Conference September 24-28, 2005, Long Beach, California, USA DETC2005-85640 SOME APPLICATIONS OF AUTOMATIC DIFFERENTIATION TO RIGID, FLEXIBLE, AND CONSTRAINED MULTIBODY DYNAMICS D. Todd Griffith Structural Dynamics Research Department Sandia National Laboratories Albuquerque, NM 87185-0196 [email protected] James D. Turner Dynacs Military and Defense Houston, TX 77058 [email protected] John L. Junkins Department of Aerospace Engineering Texas A&M University 3141 TAMU College Station, TX 77843-3141 [email protected] ABSTRACT In this paper, we discuss several applications of automatic differentiation to multibody dynamics. The scope of this paper covers the rigid, flexible, and constrained dynamical systems. Particular emphasis is placed on the development of methods for automating the generation of equations of motion and the simulation of response using automatic differentiation. We also present a new approach for generating exact dynamical representations of flexible multibody systems in a numerical sense using automatic differentiation. Numerical results will be presented to detail the efficiency of the proposed methods. INTRODUCTION Multibody dynamics is a topic of significant interest in state of the art modeling and simulation of dynamical systems. It is quite apparent in everyday life that the machines and devices we routinely utilize are quite complex, thus with an always increasing desire to improve performance engineers need new techniques to make advances. The work in the area of multibody dynamics is fairly extensive. Much of this is due to the work of the giants in the field of dynamics, who in the past few centuries devoted significant effort to developing analytical methods to model and simulate simple dynamical systems. Much work has been done in recent years in taking advantage of computational resources to model and simulate complex dynamical systems which are not solvable by the classical analytical methods. This is the basic scope of the field of multibody dynamics, that is, the utilization of state of the art computational resources in implementing new solution strategies for systems of increasing complexity. The work presented here is a continuation of the author’s work in a new direction for multibody dynamics using automatic differentiation [1]. The automatic generation of equations of motion for rigid body systems [2] and flexible linked mechanical systems [3] using automatic differentiation has been presented previously. Additionally, work has been undertaken in developing advanced algorithms for optimization [4] and estimation [5] of dynamical systems. The focus of this paper is a new direction in modeling and simulation of dynamical systems. We discuss some methods which utilize automatic differentiation to generate models for dynamical systems. The scope of this paper ranges from rigid body dynamical systems to flexible body dynamical systems including systems with constrained dynamics. A key focus is on the available techniques for generating equations of motion using automatic differentiation, and the simulation of response. Several numerical examples will be presented to evaluate the multibody dynamics implementation approach we have chosen. Special attention will be paid to computational issues, in particular those which compare the results from different automatic differentiation programs. OVERVIEW OF AUTOMATIC DIFFERENTIATION Computer implementation of differentiation is typically accomplished by two distinct approaches – automatic differentiation (AD) and symbolic differentiation. The primary distinction between these approaches is that automatic differentiation invokes the chain rule automatically and partial derivatives are recursively simultaneously derived and numerically evaluated in the background. Whereas, symbolic differentiation is performed using symbolic programs, such as Matlab, Maple, and MacSyma, in which the derivatives are computed and displayed symbolically. The symbolically derived derivative expressions can, of course, be subsequently coded and used for numerical computation.
11

Some Applications of Automatic Differentiation to Rigid, Flexible, and Constrained Multibody Dynamics

Apr 22, 2023

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Some Applications of Automatic Differentiation to Rigid, Flexible, and Constrained Multibody Dynamics

1 Copyright © 2005 by ASME

Proceedings of IDETC/CIE 2005 ASME 2005 International Design Engineering Technical Conferences &

Computers and Information in Engineering Conference September 24-28, 2005, Long Beach, California, USA

DETC2005-85640

SOME APPLICATIONS OF AUTOMATIC DIFFERENTIATION TO RIGID, FLEXIBLE, AND CONSTRAINED MULTIBODY DYNAMICS

D. Todd Griffith Structural Dynamics Research

Department Sandia National Laboratories Albuquerque, NM 87185-0196

[email protected]

James D. Turner Dynacs Military and Defense

Houston, TX 77058 [email protected]

John L. Junkins Department of Aerospace

Engineering Texas A&M University

3141 TAMU College Station, TX 77843-3141

[email protected] ABSTRACT

In this paper, we discuss several applications of automatic differentiation to multibody dynamics. The scope of this paper covers the rigid, flexible, and constrained dynamical systems. Particular emphasis is placed on the development of methods for automating the generation of equations of motion and the simulation of response using automatic differentiation. We also present a new approach for generating exact dynamical representations of flexible multibody systems in a numerical sense using automatic differentiation. Numerical results will be presented to detail the efficiency of the proposed methods.

INTRODUCTION

Multibody dynamics is a topic of significant interest in state of the art modeling and simulation of dynamical systems. It is quite apparent in everyday life that the machines and devices we routinely utilize are quite complex, thus with an always increasing desire to improve performance engineers need new techniques to make advances. The work in the area of multibody dynamics is fairly extensive. Much of this is due to the work of the giants in the field of dynamics, who in the past few centuries devoted significant effort to developing analytical methods to model and simulate simple dynamical systems. Much work has been done in recent years in taking advantage of computational resources to model and simulate complex dynamical systems which are not solvable by the classical analytical methods. This is the basic scope of the field of multibody dynamics, that is, the utilization of state of the art computational resources in implementing new solution strategies for systems of increasing complexity. The work presented here is a continuation of the author’s work in a new direction for multibody dynamics using automatic differentiation [1]. The automatic generation of

equations of motion for rigid body systems [2] and flexible linked mechanical systems [3] using automatic differentiation has been presented previously. Additionally, work has been undertaken in developing advanced algorithms for optimization [4] and estimation [5] of dynamical systems.

The focus of this paper is a new direction in modeling and simulation of dynamical systems. We discuss some methods which utilize automatic differentiation to generate models for dynamical systems. The scope of this paper ranges from rigid body dynamical systems to flexible body dynamical systems including systems with constrained dynamics. A key focus is on the available techniques for generating equations of motion using automatic differentiation, and the simulation of response. Several numerical examples will be presented to evaluate the multibody dynamics implementation approach we have chosen. Special attention will be paid to computational issues, in particular those which compare the results from different automatic differentiation programs.

OVERVIEW OF AUTOMATIC DIFFERENTIATION Computer implementation of differentiation is typically

accomplished by two distinct approaches – automatic differentiation (AD) and symbolic differentiation. The primary distinction between these approaches is that automatic differentiation invokes the chain rule automatically and partial derivatives are recursively simultaneously derived and numerically evaluated in the background. Whereas, symbolic differentiation is performed using symbolic programs, such as Matlab, Maple, and MacSyma, in which the derivatives are computed and displayed symbolically. The symbolically derived derivative expressions can, of course, be subsequently coded and used for numerical computation.

Page 2: Some Applications of Automatic Differentiation to Rigid, Flexible, and Constrained Multibody Dynamics

2 Copyright © 2005 by ASME

The approaches presented in this paper use the program OCEA (Object Oriented Coordinate Embedding Method). OCEA[6-8] bypasses the overhead of pre-existing AD approaches and offers tremendous potential since the operator-overloading approach makes it possible to implement the AD approach simply as an extension of any of the existing popular programming languages such as FORTRAN. Additionally, OCEA offers 1

st through 4

th order partial differentiation

capabilities. In its current development, OCEA is implemented as a FORTRAN90 (F90) extension. The OCEA package is an object-oriented automatic differentiation equation manipulation package. OCEA defines embedded variables that represent abstract data types, where hidden dimensions (background arrays) are used for storing and manipulating partial derivative calculations. The chain rule for differentiation has itself been coded using operator-overloading and operates in the background of the user’s software. Given a FORTRAN90 code for evaluating virtually any set of differentiable functions, OCEA replaces each scalar variable in the program with a differential n-tuple consisting of the following variables (for a second-order OCEA implementation):

2:f f f f = ∇ ∇ (1)

where ∇ and 2∇ denote first- and symmetric second-order

gradient tensors with respect to a user-defined set of independent variables. The introduction of this abstract differential n-tuple together with appropriate rules allows the computer to continue to manipulate each scalar variable as a conventional scalar variable, while the first- and higher-order partial derivatives are attached to the scalar variable in a hidden way. The chain rule operates recursively on the n-tuples in the background. The automatic computation of the partial derivatives is achieved by operator-overloading methodologies that redefine the intrinsic mathematical operators ( +, -, *, /, = ) and all functions using the rules of calculus. For example, overloaded addition and multiplication

of the functions ( )a a x= and ( )b b x= are redefined as

follows.

2 2:a b a b a b a b + = + ∇ + ∇ ∇ + ∇ (2)

( ) ( )* : * * *i j ia b a b a b a b = ∂ ∂ ∂ (3)

The analyst only codes the expressions on the left hand

side; the first- and second-order partials on the right hand side are computed automatically with no user coding. Thus the “+” and “*” operators are overloaded so that coding the left side expressions of equations (2) and (3) causes all the right side computations to be carried out. The underlying vector x is

defined (see subsequent discussion) in a way that OCEA

knows x is the vector of independent variables and a∇

denotes, for example

1

...n

a a

x x

∂ ∂ ∂ ∂

. More subtly, if

1z a b= + and

2*z a b= , then computing

3 1 2z z z= + causes the results of equations (2) and (3) to be

propagated efficiently in the background to

compute 3 33* ( ) ( )i j iz a b a b z z

= + + ∂ ∂ ∂ where

3)

3(i

i

zz

x

∂∂ =

∂ and

2

3)

3(i j

j i

zz

x x

∂∂ ∂ =

∂ ∂.

The chain rule operates recursively in the background.

Given the function ( )g g x= , whose partial derivatives are

known a priori (at some step in a program), OCEA computes

the partial derivatives of the function f , which is a function

of g , by the following composite function chain rule of

differentiation.

( ) ( )

( ) ( )

2

22

2

: , , :

, ,T

f g f g g g

f f ff g g g g g

g g g

= ∇ ∇ =

∂ ∂ ∂∇ ∇ ∇ + ∇

∂ ∂ ∂

(4)

OCEA utilizes the chain rules of this form to recursively,

numerically, compute partial derivatives. The function f and

its partial derivatives are computed with the a priori known

partial derivatives of the function ( )g g x= , and, of course,

the partials of f with respect to g . For more information on

OCEA, see References 8 and 1.

Additional operations for the standard mathematical library functions, such as trigonometric and exponential functions, are redefined to account for the known rules of differentiation. In essence, this approach pre-codes, once and for all, all of the partial derivatives for the elementary functions required for any problem, and the chain rule is implemented automatically in background operations that the user neither derives nor codes to invoke the simultaneous derivation and evaluation of all needed derivatives. Hidden operator- overloading tools completely free the analyst from the time consuming and error prone tasks of deriving, coding, and validating analytical partial derivative models. Thus, an arbitrary FORTRAN code, by simply adding data type declarations and compiling linked to OCEA, is “promoted” to a generalized code that automatically computes the corresponding arrays of partial derivatives.

It is worth noting that additional high-level operators are also enabled in the OCEA environment including special operators such as the matrix transpose (.T.) and dot product (.DOT.). These operators are extremely useful when defining embedded functions which are composed of vector/matrix terms since these functions can be coded in a direct vector/matrix fashion. These types of expressions are prevalent in the study of dynamical systems, with the additional feature that differentiation of such vector/matrix functions is also enabled. MULTIBODY DYNAMICAL FORMULATIONS BASED ON AUTOMATIC DIFFERENTIATION

For over a century, a primary focus of dynamics has been the development of methods for generating equations of motion. The classical formulations include Newton/Euler methods, D’Alembert’s equations, the Lagrangian energy approach, and Hamiltonian approaches[9-10]. Over the past

Page 3: Some Applications of Automatic Differentiation to Rigid, Flexible, and Constrained Multibody Dynamics

3 Copyright © 2005 by ASME

three decades, the Gibbs-Appell equations, the Boltzmann/Hammel equations, and Kane’s equations have been frequently used. Many of these methods have been chosen as the approach for implementation in a multibody dynamics code using a variety of computational techniques[11].

In this paper, we focus on a new approach -- the use of automatic differentiation as the computational tool used in generating equations of motion. In summary, we will present two avenues for which automatic differentiation is utilized. Firstly, we look at an implementation of Lagrange’s Energy method (Lagrange’s Equations) in which equations of motion can be formed directly by differentiating the Lagrangian energy function. Secondly, we look at using automatic differentiation to perform kinematic calculations in route to forming equations of motion. This a less direct path that Lagrange’s Energy method; however, we note that such kinematic analysis is at the heart of many analyses of dynamical systems, thus by being able to compute velocities and accelerations we can theoretically form equations of motion by most all of the available methods (e.g. D’Alembert, Kane, Newton/Euler).

A General Formulation of Lagrange’s Equations for Constrained Dynamical Systems

In the Lagrangian formulation, partial derivatives of energy functions are utilized to produce the equations of motion. An obvious advantage of the Lagrangian formulation over, for example, Newton/Euler methods is that only velocity level kinematic expressions need to be developed in order to specify the energy functions, specifically kinetic energy. In this section, the framework for solving a class of problems in which formulation of kinetic and potential energy functions are readily formed is presented. The main result here is that automatic differentiation tools are perfectly suited for directly implementing the Lagrangian formulation in solving this important class of engineering problems.

Equation 5 presents the most general form of Lagrange’s equations, including generalized forces and constraint forces.

Td L L

Cdt

∂ ∂− = +

∂ ∂ Q λ

q q& (5)

subject to the constraint relation

C =q b&

where the Lagrangian is defined as L T V= − , Q are the

generalized forces, C is the constraint Jacobian matrix, and

λ is the Lagrange multiplier vector. In the most general

form, kinetic energy (T ) is written as a function of the generalized coordinates (q ) and the generalized velocities

(q& ), and the potential energy (V ) is a function of the

generalized coordinates. The implied derivatives with respect to the generalized

coordinates and generalized velocities in these equations can be readily computed by automatic differentiation by simply specifying the Lagrangian function. Organizing these equations in a manner in which they can be integrated; however, requires explicitly solving for the acceleration terms, which are buried in the first term of Eq. (5). In order to proceed down this path, we can rewrite Eq. (5) in the

following form since the potential energy has no dependence on the generalized velocities.

Td T L

Cdt

∂ ∂− = +

∂ ∂ Q λ

q q& (6)

For the time being, we focus our attention on the first term in Eq. (6), and the most common case of a natural system,

1( ) ( )

2T T M= = T

q q q q& & & . The first term in Eq. (6) can be

rewritten as

2 2

j j

i i j i j

ij j ij j

d T T Tq q

dt q q q q q

m q m q

∂ ∂ ∂= +

∂ ∂ ∂ ∂ ∂

= +

&& && & & &

&& & &

(7)

where

2

ij

i j

TM m

q q

∂↔ =

∂ ∂& & (8)

2

ij

i j

TM m

q q

∂↔ =

∂ ∂& &

& (9)

As is shown in Eq. (7), we can compute both the mass matrix and its time derivative by second order differentiation of the kinetic expression. It is well known that the mass matrix can be formulated in this fashion. However, it is not an obvious result that the time derivative of the mass matrix can be computed in this fashion as well since the time derivative of the mass matrix can also be computed by third order differentiation, that is, by once differentiating the mass matrix with respect to time. A proof of this fact is given in Reference 1.

By utilizing automatic differentiation, the constraint matrix can also be formed automatically. Let’s consider a holonomic constraint of the following form.

( , )tφ =q 0 (10)

The Pfaffian form of this constraint is developed by time differentiating Eq. (10).

( , )tt

Ct

φ φφ

φ

∂ ∂= +

∂ ∂

∂+

& &

&

q qq

= q

(11)

Therefore, the constraint matrix is simply computed by differentiating the holonomic constraint with respect to the

generalized coordinates, Cφ∂

=∂q

.

With Eqs. (8), (9), and (11), we arrive at the following form for Lagrange’s equations,

TL

M M C∂

− = +∂

q+ q Q λq

&&& & (12)

which are solved for the accelerations as follows

Page 4: Some Applications of Automatic Differentiation to Rigid, Flexible, and Constrained Multibody Dynamics

4 Copyright © 2005 by ASME

-1 TL

M M C ∂

− + + ∂

q = q +Q λq

&&& & (13)

As has been shown above, generating the equations given in Eq. (13) can be accomplished by simply specifying the Lagrangian function, the constraint relation, and the generalized forces. OCEA accomplishes all required derivative operations leading to the right hand side of Eq. (13).

The background second partials of T , for example, can be

assessed to obtain M from Eq. (8). Thus, a general procedure has been laid out starting by defining kinetic and potential energy functions and performing the indicated differentiations. For a multibody dynamical system, we can consider forming the kinetic and potential energy functions, generally, for each body in the system. The system level Lagrangian function is then formed by appropriately summing the energy functions for each body. Kinematic Analysis: Specialized Formulation for Rigid Bodies

The need to explicitly form the Lagrangian function in the above formulations can be alleviated by looking at a modified form[12] of Eq. (5).

( )

( ) ( , ) TVM C

∂+ + = +

qq q G q q Q λ

q&& & (14)

The Coriolis forces (mass matrix time derivatives) are

accounted for in the function ( , )G q q& .

(1) ( )( , ) ...T T nH H = G q q q q q q& & & & & (15)

where the elements of the Christoffel operator ( ) ( ) ( )i iH H= q are generated by

( ) 1

2

ij jki ikjk

k j i

m mmh

q q q

∂ ∂∂= + − ∂ ∂ ∂

(16)

It is apparent from Eq. (14) that accelerations can be computed by identifying the mass matrix, computing

( , )G q q& from spatial derivatives of the mass matrix elements,

and differentiation of the potential energy function. These accelerations are can be obviously written as

-1 TV

M C ∂

− − + ∂

q = G +Q λq

&& (17)

Now we consider an approach for generating the mass matrix and its derivatives using Eq. (16) for planar rigid body chain systems.

The Modified Lagrangian Formulation presented above is well suited for automating the process of generating equations of motion for rigid body systems without explicitly forming the Lagrangian function. It is shown here that the mass matrix need not be computed by twice differentiating the kinetic energy function. The advantage gained in the developments of this section in focusing on the kinematic analysis first is that only first-order derivatives of the position vectors locating the mass centers of the bodies are required for computing the mass matrix. In addition, only second-order derivatives of these position vectors are needed to generate the mass matrix partial derivatives of Eq. (16).

Let’s consider a system of rigid bodies translating and rotating in planar (2D) motion. The kinetic energy for this system of bodies can be written as

( )1

1( , )

2

nT T

i i i i i i

i

T m v v I ω ω=

= +∑v ω (18)

where im and iI are the mass and mass moment of inertia

about the center of mass for the ith body, iv is the velocity of

the center of mass, iω is the angular velocity of the ith body,

and n is the total number of bodies.

We can rewrite Eq. (18) in terms of the generalized coordinates and generalized velocities by introducing the following transformations.

( )i iA=v q q& (19)

( )i iB=ω q q& (20)

In terms of the generalized coordinates and generalized velocities, the kinetic energy expression can be rewritten using Eqs. (19) and (20).

( )

( )1

1

1( , )

2

1

2

nT T T T

i i i i i i i i i i

i

nT T T

i i i i i i i i

i

T m q A Aq I q B B q

q m A A I B B q

=

=

= +

=

& & & & &

& &

q q

+

(21)

The mass matrix is immediately identified as given in Eq. (22).

1

( )n

T T

i i i i i i

i

M m A A I B B=

=∑q + (22)

The procedure for computing the mass matrix now depends on the masses and inertias (lengths) of the bodies, and the two transformation matrices for each body. Upon closer inspection of Eqs. (19) and (20), we can write the following

i i

i

∂ ∂=

∂ ∂

&& &&

&

r rv q = q

q q (23)

i i

i

θ θ∂ ∂= =

∂ ∂

&

& &&&

ω q qq q

(24)

It is immediately obvious from comparing Eq. (23) with Eq. (19) and Eq. (24) with Eq. (20) that

i i

iA∂ ∂

=∂ ∂

&

&

r r=

q q (25)

and

i i

iBθ θ∂ ∂

= =∂ ∂

&

&q q (26)

Therefore the mass matrix can be computed by taking first partials of the position vectors locating the mass center of the bodies, thus simplifying the formation of the transformation matrices.

Up to this point, we have not discussed the choice for generalized coordinates which is an important matter for an automated process. Implicit in the above developments is the assumption that the chosen generalized coordinates are the

Page 5: Some Applications of Automatic Differentiation to Rigid, Flexible, and Constrained Multibody Dynamics

5 Copyright © 2005 by ASME

angular rotations of the bodies. Fundamental choices for the generalized coordinates include (1) the mass center locations

(x, y) and angular rotations (θ ) and (2) the angular rotations

only. For a planar open chain system (with 1n > ), for choice

(1) we have a system that is over-parameterized while with choice (2) we obtain a minimal coordinate unconstrained system is automatically produced. Within choice (2) there are also two choices of either absolute angles (all angles measured with respect to same frame) or relative angles (successive bodies angular rotation measured with respect to the orientation of the preceding body). For this formulation, we choose the minimal set of angular coordinates described by absolute measurement with respect to an inertial frame.

The next step involves computing ( , )G q q& for Eq. (17).

Because this involves computing first order partials of the elements of the mass matrix, we can differentiate Eq. (22) with respect to the generalized coordinates, keeping in mind that the transformation matrices are functions of the generalized coordinates.

1

( )

TTi i

i i in

Ti Ti i

i i i

A Am A A

M

B BI B B

=

∂ ∂+

∂ ∂∂ =

∂ ∂ ∂

∂ ∂

∑+

q qq

q+

q q

(27)

These partials are substituted into Eq. (16) and we can

then compute ( , )G q q& by Eq. (15). In addition, conservative

forces derived from the potential energy function are simply computed by differentiating the potential energy function with respect to the generalized coordinates.

A key point in these developments is that they can be generalized for n-body open-chain and closed-chain topologies. In forming the accelerations in Eq. (17), a generalized code allows the analyst to merely specify the number of bodies in the topology, their physical properties (mass and length), and the initial conditions. The method relies upon recursively forming the center of mass position vectors for each body in order to compute the transformation matrices and their spatial derivatives. Furthermore, we can consider doing kinematical computations using automatic differentiation which facilitate the use of other methods for generating equations of motion. Consider the further differentiation of Eqs. (23) and (24) in order to compute acceleration level kinematics.

2 2

i i ii j k l k l

j k l k l

q q q q qq q q q q

∂ ∂ ∂= + +

∂ ∂ ∂ ∂ ∂& && & && & &

&i

r r ra = v (28)

2 2

i i ii i j k l k l

j k l k l

q q q q qq q q q q

θ θ θ∂ ∂ ∂= + +

∂ ∂ ∂ ∂ ∂& && & && & &

&α = ω (29)

Here, ia is the acceleration of the mass center and α i is the

angular acceleration of the ith body. These type of calculations could enable generation of equations of motion by, for example, Newton/Euler methods.

Simulation of Response: Solving the Equations of Motion

In the above sections, we describe methods for computing the terms required to form the accelerations explicitly, which can then be integrated numerically in order to simulate the motion. Alternatively, we note here that the path of generating equations of motion by automating the kinematical calculations can result in an acceleration vector which is embedded in the equations of motion. It is proposed that equations of motion generated in this manner be solved using Newton/Raphson optimization. This procedure calls for finding the acceleration at each time step which ensures that the automatically generated equations of motion are numerically satisfied to some tolerance. Derivatives with respect to the unknown accelerations will be required. This approach is attractive also since the acceleration form of the equations of motion do not need to be formed explicitly and the mass matrix need not be formed and inverted. However, additional orders of differentiation may be required, which may become computationally unattractive.

FORMULATION FOR FLEXIBLE BODY SYSTEMS When the rigid body assumption is used to model a

dynamical system, there is no need to consider spatial integrals over the body for computing kinetic and potential energy expressions (i.e. the Lagrangian). However, when flexibility is considered we encounter a Lagrangian expression which is computed as an integral over the volume of the body, and, of course, we require additional coordinates to define deformations. For the case of slender beams, we can simplify this to an integral over the length of the body. Furthermore, what is often done to simplify the formulation of equations of motion for flexible dynamical systems is the introduction of approximations for the flexible motion coordinates that aid in producing a Lagrangian with no explicit dependence on the spatial coordinates. Examples of approximation techniques include the well known Finite Element Method and Method of Assumed Modes. In essence, these techniques make it possible to produce a Lagrangian for the flexible dynamical system of the same form as that of a rigid body dynamical system. Thus, once the spatial discretization approximations are utilized, we can proceed to generate equations of motion for a flexible dynamical system just as we do for a rigid body dynamical system by directly implementing Lagrange’s Equations of the form of Eq. (5).

In this section, we demonstrate the use of OCEA in generating equations of motion for systems comprised of flexible elements. Toward this end, we develop recursive expressions for kinetic and potential energy functions for a series of linked flexible beams. Since we are not considering rapid angular motions of the beams, we model the beams using Euler-Bernoulli assumptions.

We now consider generating equations of motion for a chain of linked flexible bodies. The aim of this section is to generalize the formulation for multiple flexible bodies. It is assumed that the first link is pinned without translation, and successive links are joined with pins as shown in Figure 1. Make note in Figure 1 that we choose absolute angular coordinates, which are measured with respect to a common

frame, in this case the horizontal. Note the ix axis connects

Page 6: Some Applications of Automatic Differentiation to Rigid, Flexible, and Constrained Multibody Dynamics

2θ pθ 1x

2x

px

1y

2y py Y

1y

the tips of the flexible members; thus the elastic deformation of each domain vanishes at the ends of that domain.

Figu

the k

wher

1p+r&

referdepeapprchoodefozero

1pφ +

pinnveloexprwrite

wher

θ&p+1measlink.

to fatime

Eq. (

1 1 1, 1, 1

1 11

( , ) ( ) ( )

( ) ( )

p p p i p i p

T

p pp

v x t q t x

t x

φ+ + + + +

+ ++

=

= q φφφφ (32)

We note here that the first index before the comma denotes the body (p+1), and the indices after the comma indicate the index of the element of the array (i) in the typical mathematical notation.

Now, after skipping a few intermediate steps, we can rewrite the kinetic energy expression of Eq. (30) as

6 Copyright © 2005 by ASME

1θ X

re 1. Geometry of multiple flexible link configuration The main development of this section is a recursion for inetic energy of the (p+1)th link of the form:

1

1

1 1 1 1 1 1 10

1( ) ( , ) ( , )

2

p

p

L

p p p p p p p

T

x x t x t dxρ+

+

+ + + + + + +

=

⋅∫ & &r r (30)

e 1 1( )p pxρ + + is the mass density distribution and

1( , )px t+ is the velocity expression for the (p+1)th link.

These developments were previously reported in ences 1 and 3, thus we only summarize here. The spatial ndence of the kinetic and potential energy expressions is oximated by using the assumed modes method. Here, we se admissible functions which enforce a zero tip rmation constraint by choosing admissible functions with deflection at the endpoints (i.e.

1

,1

sin( )p

ip

i x

L

π +

+

= )[13]. In this way, the beams satisfy

ed-pinned boundary conditions, that is, the deflection and city of the beam tips are zero. Thus, the kinematic essions are greatly simplified with this choice. We can the velocity expression of the (p+1)th link as:

( )1

( , )

ˆ ˆ( , )

ˆ( , )

p

i i

i

x t

L v x t

v x t x

θ θ

θ

=

=

+ +

&

& &

&&

p+1 p+1

i p+1 p+1 p+1 p+1

p+1 p+1 p+1 p+1 p+1

r

j i

j

(31)

e ( , )v x tp+1 p+1

is the transverse beam deformation,

is angular velocity, and xp+1 is the coordinate

urement along the beam frame of reference of the (p+1)th At this point, we can introduce approximations in order cilitate automatic generation of ODE’s in terms of the dependent variables by the assumed modes method. In

32) we introduce an expression for 1 1( , )p pv x t+ + :

( )

( )

( )

( )

1 1

112

1 1

1 1 1 1

1

1 1 1

1

11 1 1 12

1

21 11 1 1 1 1 1 12 2

( , , , )

cos

sin

cos

cos

p P

p p

p i i j j j i

i j

pT

p p p i i p i

i

pT

p p i i p i

i

p

p p p i i p i

i

T T

p p p p p p p

T T

m L L

L

L

m L L

M M

θ θ θ θ

θ θ θ θ

θ θ θ

θ θ θ θ

θ

θ

+ +

+= =

+ + + +=

+ + +=

+ + + +=

+ + + + + + +

=

= −

− −

+ −

+ −

+ +

+

∑∑

&&

& &

& &

&&

& &

& & &

&

q q θ θ

q b

q b

q q q q

2 211 1 1 1 1 16

T

p p p p p pm L θ+ + + + + ++ &&q a

(33)

where q , q& , θ , and θ& are the vectors containing all of the

time dependent quantities for the flexible coordinates and the

angular coordinates. The elemental mass matrix, 1pM + , and

the vectors, p+1a and p+1b approximate the spatial

information and are given in Eqs. (34-36), respectively.

1

1, 1 1, 1, 10

1

2

pL

p ij p p i p j p

p

ij

M dx

m

ρ φ φ

δ

+

+ + + + +

+

= ∫

=

(34)

1

1 1 1, 10

1 1cos( )

pL

p+1,i p p p i p

p p

a x dx

m Li

i

ρ φ

ππ

+

+ + + +

+ +

= ∫

= −

(35)

( )

1 1, 10

1 11 cos( )

L

p+1,i p p i p

p p

b dx

m Li

i

ρ φ

ππ

+ + +

+ +

= ∫

= − (36)

Equation (33) is used to produce the kinetic energy for the

second beam and so on for 1p ≥ . The potential energy due to

bending is given as

1

2

1

2

1 1

'' ''

1, 1, 1 1 1, 1, 10

1 1

( )

( )

p p

L

p i p j p p p i p j p

T

p p

V

q q EI x dx

K

φ φ

+ +

+ + + + + + +

+ +

=

= ∫

= p+1

q

q q

(37)

Page 7: Some Applications of Automatic Differentiation to Rigid, Flexible, and Constrained Multibody Dynamics

7 Copyright © 2005 by ASME

where 1pK + is an elemental stiffness matrix.

The kinetic and potential energy of the first link are to be specified individually as given in Eqs. (38) and (39), respectively.

1 1

2 2

1

6

2

1 1 1 1 1 1 1 1

2 2

1 1 1 1 1 1

T T

T

T M M

m L

θ

θ θ

= +

+ +

& & &

& &&

q q q q

q a (38)

1

1 1 1 12

TV K= q q (39)

With Eqs. (33) and (37-39) we can form the system level Lagrangian function explicitly in terms of the time dependent

coordinates ( , , ,q q θ θ&& ) for an arbitrary number of links and

implement Lagrange’s Equations of the standard form given in Eq. (5) in order to produce the equations of motion.

In the above developments, it was assumed that the first link is pinned; however, the following terms can be added to the appropriate kinetic energy expression in order to generalize the kinetic energy expressions to include translation, in addition to flexibility. For the first link of the assumed modes model for a flexible link system we add

( )2 21 11 1 1 1 1 12 2

11 1 1 12

1 1 1 1 1 1 1

1 1 1 1 1 1 1

sin

cos

cos sin

sin cos

translation

A A A

A

T T

A A

T T

A A

T m x y m L x

m L y

x x

y y

θ θ

θ θ

θ θ θ

θ θ θ

= + −

+

− −

− +

&& & &

&&

& && &

& && &

q b q b

q b q b

(40)

For successive links, we add the following term:

( )2 21 11 1 1 1 1 12 2

11 1 1 12

1 1

1 1

1 1 1 1 1 1 1

1 1 1 1

sin

cos

sin cos

cos sin

sin

translation

p p A A p p A p p

p p A p p

p p

p A i i i p A i i i

i i

T T

A p p p p A p p p

T

A p p p p

T m x y m L x

m L y

m x L m y L

x x

y

θ θ

θ θ

θ θ θ θ

θ θ θ

θ θ

+ + + + + +

+ + + +

+ += =

+ + + + + + +

+ + + +

= + −

+

− +

− −

∑ ∑

&& & &

&&

& && &

& && &

&&

q b q b

q b 1 1 1cos T

A p p py θ + + ++ && q b

(41)

where Ax& and Ay& are the velocity components of the base

end of the first link. AUTOMATIC GENERATION OF EXACT DYNAMICAL MODELS

In this section, we discuss generating exact dynamical models (PDEs and ODEs) and the corresponding boundary conditions using automatic differentiation. Such a capability would be useful for validation purposes, that is, evaluating the accuracy of an approximate numerical solution. The primary challenge involved in a validation effort for flexible dynamical systems is the generation of the exact dynamical representation.

Here we consider as the path the hybrid coordinate generalizations of Hamilton’s Principle [12,14] which enable the exact PDEs and ODEs to be generated by differentiation as opposed to the traditional path of integration by parts. Thus

automatic differentiation is a useful option for generating these equations. In general, we can write the system

Lagrangian to be composed of discrete terms ( DL ), spatial

terms ( ˆiL ), and boundary terms ( BL ). Considering a general

system composed of multiple elastic domains, we write the Lagrangian as follows

0

1

ˆin l

D i i B

i

L L L dx L=

= + + ∑ ∫ (42)

The ordinary differential equations of motion are derived from

Td L L

dt

∂ ∂− =

∂ ∂ Q

q q& (43)

whereas the partial differential equations of motion are derived from

2

2

ˆ ˆ ˆ ˆˆ

' ''Ti i i ii

i i i ii i

L L L Ldf

dt v v x xv v

∂ ∂ ∂ ∂∂ ∂ − + − = ∂ ∂ ∂ ∂∂ ∂

&(44)

and the boundary conditions are generated from

0

1

0

2

ˆ ˆ

' ''

ˆ( ) ( ) 0( ) ( )

ˆ' '( )

'' ' '( ) ( )

'ˆ ( ) 0

i

i

l

i ii

ii i

TB Bi i i i i

i i i i

l

i B Bi i i

i i i i i

T

i i i

L Lv

xv v

dv l v l

v l dt v l

L dv v l

dtv v l v l

v l

δ

δ δ

δ δ

δ

∂ ∂∂ − ∂∂ ∂

∂ ∂ + − + =

∂ ∂

∂ ∂ ∂ + − ∂ ∂ ∂

+ =

&

&

f

f

L L

L L

(45)

where BL is defined as

0

1

ˆin l

B i i B

i

L dx L=

= + ∑ ∫L (46)

Whereas we would derive the governing equations of motion and boundary conditions starting with Hamilton’s Principle via integration by parts; here we see that these equations can be derived by differentiation.

We now discuss in detail how to automatically generate these equations using automatic differentiation. First we consider automatically generating the governing ODE. Considering the first term in Eq. (43) we write

0

1

ˆi

n liD B

i

i

LL Ld L ddx

dt dt =

∂∂ ∂∂= + + ∂ ∂ ∂ ∂

∑ ∫& & & &q q q q

(47)

We can rewrite the first term on the RHS of Eq. (47) as

2

D DL Ld d

dt dt

∂ ∂=

∂ ∂ ∂

X

q q X& & (48)

where X is a vector containing all of the coordinates in which the system Lagrangian consists

Page 8: Some Applications of Automatic Differentiation to Rigid, Flexible, and Constrained Multibody Dynamics

8 Copyright © 2005 by ASME

, (t), (t), (x,t), (x,t), (x,t),

(x,t), (l), (l), (l), (l)

& &

& &

'

'' ' '

x q q w w wX =

w w w w w

We can rewrite the second term on the RHS of Eq. (47) as

2

0 01 1

ˆ ˆi i

n nl li i

i i

i i

L Ld ddx dx

dt dt= =

∂ ∂= ∂ ∂ ∂

∑ ∑∫ ∫& &

X

q q X (49)

We can rewrite the third term on the RHS of Eq. (47) as

2

B BL Ld d

dt dt

∂ ∂=

∂ ∂ ∂

X

q q X& & (50)

We write the second term in Eq. (43) as

0

1

ˆi

n liD B

i

i

LL LLdx

=

∂∂ ∂∂= + +

∂ ∂ ∂ ∂ ∑ ∫

&q q q q (51)

In summary, we can compute the ODEs based on Eq. (43) by

22

01

2

ˆ ˆi

n li iD

i

i

TB D B

L LL d ddx

dt dt

L L Ld

dt

=

∂ ∂∂+ −

∂ ∂ ∂ ∂ ∂

∂ ∂ ∂+ − − =

∂ ∂ ∂ ∂

∑ ∫& &

&

X X

q X q X q

XQ

q X q q

(52)

For obvious reasons, we must specify the individual terms that form the system Lagrangian separately in order to accomplish the spatial integrals.

We now turn our attention to generating the PDEs. Considering the first term in Eq. (44) we write

2ˆ ˆi i

i i

L Ld d

dt w w dt

∂ ∂=

∂ ∂ ∂

X

X& & (53)

The second term in Eq. (44) can be computed straightforwardly. The third and fourth terms must be

computed offline since the partials of L̂ with respect to w'

and w'' are implicit functions of the spatial variable x and

cannot be accomplished by explicit differentiation means such as automatic differentiation. On the other hand, we can define

L̂ in such a way that it is an explicit function of x with no

explicit dependence on to w' and w'' if we utilize the

assumed form for these expressions based on the chosen modeling approach (FEM or Assumed Modes). In this way, the third and fourth terms in Eq. (44) can be computed.

Regarding the boundary conditions in Eq. (45), we see that we need to compute partials with respect to the

Lagrangian density functions ( ˆiL ) and BL . We’ve discussed

computing partials of the Lagrangian density functions in the previous paragraph. We focus on four terms in the two boundary conditions given in Eq. (45), namely

, , , and ' '( ) ( )( ) ( )

B B B B

i i i ii i i i

d d

v l dt v l dtv l v l

∂ ∂ ∂ ∂ ∂ ∂∂ ∂

& &

L L L L

The first two terms are straightforwardly computed as

0

1

ˆ

( ) ( ) ( )

in l

iB Bi

ii i i i i i

L Ldx

v l v l v l=

∂∂ ∂= +

∂ ∂ ∂ ∑ ∫

L (54)

0

1' ' '

ˆ

( ) ( ) ( )

in l

iB Bi

ii i i i i i

L Ldx

v l v l v l=

∂∂ ∂= +

∂ ∂ ∂ ∑ ∫

L (55)

The second and third terms are computed as

2 2

01

ˆ

( ) ( ) ( )

in l

iB Bi

ii i i i i i

L Ld d ddx

dt v l v l dt v l dt=

∂∂ ∂= +

∂ ∂ ∂ ∂ ∂ ∑ ∫

& & &

X X

X X

L

(56)

2 2

01

' ' '

ˆ

( ) ( ) ( )

in l

iB Bi

ii i i i i i

L Ld d ddx

dt dt dtv l v l v l=

∂∂ ∂= + ∂ ∂ ∂ ∂ ∂ ∑ ∫

& & &

X X

X X

L

(57) Thus the complete dynamical representation including

ODEs, PDEs, and boundary conditions can be generated, for a class of dynamical systems, in the fashion described in this section using automatic differentiation. The errors in satisfying these exact governing equations of motion and boundary conditions can be evaluated numerically to produce the analytical source terms as described in the previous section. We now present some numerical examples to demonstrate the accuracy of this method in generating the exact dynamical representation. NUMERICAL RESULTS Constrained Four-link Flexible Mechanism

Here we consider a closed loop four-link flexible system containing flexible elements. The system forms a four link truss and includes general translational motion degrees of freedom. In forming the system Lagrangian, we must include a number of terms arising from translation in the kinetic energy expression, which are given by Eqs. (40) and (41).

We now focus on the simulation of this system as shown in Figure 2. The lines crossing the diagonal represent linear spring elements. The four links are pinned, and the vector

A

A

A

x

y

=

r locates the basepoint of the first link.

We conveniently choose masses of the links to be 1 kg and lengths to be 1 m. The bending stiffness is 14e4 Nm for this simulation. The spring constant is 15 N/m for each spring. The constraints are given by Eq. (58).

4

1

4

1

cos( )

sin( )

i ii

i ii

L

L

θ

θ

=

=

∑ =

= 0φφφφ (58)

Page 9: Some Applications of Automatic Differentiation to Rigid, Flexible, and Constrained Multibody Dynamics

1

2

3

Figure 2. Planar truss geometry

Figure 3. Planar truss rigid body energy

Figure 4. Planar truss flexible energy

The so-called Range Space method is used to solve for the multipliers. We assume that the links are initially undeformed with the following nonzero initial conditions:

{ }1 2 3 4, , , , ,

31.0, 1.0, 0.1, 0.1, 0.1, 0.1

2 2

A Ax y θ θ θ θ

π ππ

=

− + −

{ }{ }

1 2 3 4, , , , ,

0.5, 0.5, 0.1, 0.1, 0.1, 0.1

A Ax y θ θ θ θ

=

& & & && &

The substructure rigid body and flexible components of

Y

Ar

X

4

9 Copyright © 2005 by ASME

energy are given in Figures 3 and 4, respectively. It should be apparent from Figures 3 and 4 that from comparing the magnitudes of the rigid body and flexible components of energy that this system is appropriately modeled as a flexible system.

We now address the issue of the accuracy of the position and velocity level constraints for this system. In Figure 5 we show the error in the position level constraint. In Figure 6 we show the error in the velocity level constraint. As the figures show, these errors are quite small. Errors of size 10

-5 and 10

-2

were reported in Reference 15 for the position and velocity constraints. With the OCEA approach we find significant improvement: 9 orders of magnitude improvement in the position level constraint satisfaction and 12 orders of magnitude improvement in the satisfaction of the velocity level constraint. In Reference 15 the automatic differentiation program ADIFOR 2.0 was used to produce FORTRAN 77 subroutines for the computation of the first-order derivatives of the constraint equations. Since ADIFOR 2.0 only computes first-order partials, the automatic differentiation package AUTODERIVE was additionally used to produce the code for the second-order derivative terms. Here we make the point that the OCEA approach requires no code generation since all

Figure 5. Errors in position level constraint

Page 10: Some Applications of Automatic Differentiation to Rigid, Flexible, and Constrained Multibody Dynamics

10 Copyright © 2005 by ASME

partials can be computed within the OCEA-FORTRAN environment. Furthermore, first- through fourth-order partials are readily computed, thus OCEA solves the problem by itself. We do note that the system studied in Reference 15 is a three link closed chain system with only one link modeled with flexibility, and is not the same as that studied here. However, we draw comparison of the ability of each approach to produce the expected result of zero error in satisfying the position and velocity level constraints.

Figure 6. Errors in velocity level constraint

Validation: Generating Exact Dynamical Model for a Two-link Flexible Pendulum

In this section we investigate the accuracy of the method presented for automatically deriving the exact dynamical relationships for a distributed-parameter system. We present one numerical example to demonstrate the generation of the exact PDE and ODE for this system.

We consider as an example a two link pendulum comprised of flexible elements. The discrete part of the Lagrangian is given by

2 2 2 21 1

1 1 1 2 2 26 6DL m L m Lθ θ= +& & (59)

The boundary part of the Lagrangian is given by

2 21 1

2 1 1 2 1 2 1 2 2 12 2cos( )BL m L m L Lθ θ θ θ θ= + −& & & (60)

and the Lagrangian density functions for the first and second links are given by

{ } ( )2

2 2 21 11 1 1 1 1 1 1 1 1 12 2

''ˆ 2L v v x v EI vρ θ θ= + + −& && & (61)

( )

2 2 2

2 2 2 2 2 2 1 1 2 2 2 112 22

1 1 2 2 1

21

2 22

''

2 2 sin( )ˆ

2 cos( )

v v x v L vL

L v

EI v

θ θ θ θ θ θρ

θ θ θ

+ + − − =

+ −

& & & && &

& &

(62) Thus, we can form the system Lagrangian of Eq. (42) by

Eqs. (59-62). The ODEs and PDEs are derived by hand using

Eq. (43) and (44), respectively. The resulting exact ODEs derived by hand are given in Eqs. (63) and (64).

( )

{ }

( )

( )

1

2

2 21 11 1 2 1 1 2 1 2 2 2 13 2

212 1 2 2 2 12

2

1 1 1 1 1 1 1 1 10

1 2 2 1 2 2 2 1

2 220

1 2 2 1 2 2 1

cos( )

sin( )

2

2 sin( )

cos( )

0

L

L

m L m L m L L

m L L

v v v x v dx

L v L vdx

L v L v

θ θ θ θ

θ θ θ

ρ θ θ

θ θ θ θρ

θ θ θ

+ + −

− −

+ + +

− − − +

+ − + −

=

&& &&

&

&& && &&

&& & &

& &&

(63)

2

21 12 2 2 2 1 2 1 2 13 2

212 1 2 1 2 12

2

2 2 2 2 2 2 2 1 1 2 2 1

2 2201 2 1 2 1

cos( )

sin( )

2 sin( )

cos( )

0

L

m L m L L

m L L

v v v x v L vdx

L v

θ θ θ θ

θ θ θ

θ θ θ θ θρ

θ θ θ

+ −

+ −

+ + − − +

+ −

=

&& &&

&

&& & &&& &&

&

(64) The resulting exact PDEs derived by hand are given in

Eqs. (65) and (66).

( ) 2

1 1 1 1 1 1 1 1 1

'''' 0v x v EI vρ θ ρ θ+ − + =&& &&& (65)

( ) 2

2 2 2 2 1 1 2 1 2 2 2

2

2 1 1 2 1 2 2

''''

cos( )

sin( ) 0

v x L v

L EI v

ρ θ θ θ θ ρ θ

ρ θ θ θ

+ + − −

+ − + =

&& && &&&

& (66)

We code the functions given in Eqs. (59-62) in an OCEA-FORTRAN subroutine in order to compute the exact ODE/PDEs for this system. We evaluate these OCEA-generated equations using an approximate solution for the motion of the double pendulum by methods described earlier in this paper. We also hand code and subsequently evaluate the ODE/PDEs given by Eqs. (63-66). Figure 7 shows the numerical difference between the hand-derived ODEs and the OCEA-derived ODEs for the double flexible pendulum. We note that a Gaussian Quadrature formula was used to compute the spatial integrals in Eqs. (63) and (64). Figure 8 shows the numerical difference between the hand-derived PDEs and the OCEA-derived PDEs. In each plot, the upper portion shows the discrepancy for link one and the lower plot shows the discrepancy for link two.

As can be seen in Figures 7 and 8, the numerical difference between the hand-derived ODE/PDEs and the OCEA-derived ODE/PDEs is on the order of machine error. This demonstrates that the method introduced to automatically generate the exact dynamical representation is very accurate and is suitable for use in computing analytical source terms for the purpose of validating solution accuracy. This approach has been generalized to generate exact dynamical representations for multibody systems [1].

Page 11: Some Applications of Automatic Differentiation to Rigid, Flexible, and Constrained Multibody Dynamics

11 Copyright © 2005 by ASME

Figure 7. Comparison of hard-coded and OCEA-derived ODEs

Figure 8. Comparison of hard-coded and OCEA-derived PDEs

CONCLUSIONS In this paper, we presented analytical developments which enable generation and simulation of equations of motion for multibody systems using automatic differentiation. Numerical results indicate that the OCEA automatic differentiation approach is superior to other automatic differentiation approaches. Additionally, it is realized that validation of solution accuracy is a possibility with the development of a means to generate exact dynamical representations (PDEs, ODEs and boundary conditions) of flexible multibody systems.

REFERENCES

1. Griffith, D. T., “New Methods for Estimation, Modeling, and Validation of Dynamical Systems Using Automatic Differentiation,” Ph.D. Dissertation, Texas A&M University,

Department of Aerospace Engineering, College Station, TX, December 2004. 2. Griffith, D.T., Sinclair, A.J., Turner, J.D., Hurtado, J.E., and Junkins, J.L., “Automatic Generation and Integration of Equations of Motion by Operator-Overloading Techniques,” AAS/AIAA Spaceflight Mechanics Meeting, Maui, HI, February 8-12, 2004, Paper AAS 04-242. 3. Griffith, D.T., Junkins, J.L., and Turner, J.D., “Automatic Generation and Integration of Equations of Motion for Linked Mechanical Systems,” 6

th International

Conference on Dynamics and Control of Systems and Structures in Space, July 18-22, 2004, Riomaggiore, Cinque Terre, Liguria, Italy. 4. Griffith, D.T., Turner, J.D., Vadali, S.R., and Junkins, J.L., “Higher Order Sensitivities for Solving Nonlinear Two-Point Boundary Value Problems,” AIAA/AAS Astrodynamics Specialist Conference and Exhibit, Providence, RI, August 16-19, 2004, AIAA-2004-5404. 5. Griffith, D.T., Turner, J.D., and Junkins, J.L., “An Embedded Function Tool for Modeling and Simulating Estimation Problems in Aerospace Engineering,” AAS/AIAA Spaceflight Mechanics Meeting, Maui, HI, USA, February 8-12, 2004, Paper AAS 04-148. 6. Turner, J.D., "Object Oriented Coordinate Embedding Algorithm for Automatically Generating the Jacobian and Hessian Partials of Nonlinear Vector Functions," Invention Disclosure, University Of Iowa, Iowa City, IA, May 2002. 7. Turner, J.D., "Automated Generation of High-Order Partial Derivative Models,” AIAA Journal, Vol. 51, No. 8, August 2003, pp. 1590-1598. 8. Turner, J.D., "Generalized Gradient Search and Newton's Methods for Multilinear Algebra Root-Solving and Optimization Applications," John L. Junkins Astrodynamics Symposium, George Bush Conference Center, College Station, Texas, May 23-24, 2003, AAS 03-261 (invited paper). 9. Baruh, H., Analytical Dynamics, McGraw Hill, New York, 1998. 10. Schaub, H., and Junkins, J.L., Analytical Mechanics of Space Systems, AIAA, Reston, VA, 2003. 11. Schiehlen, W. (editor), Multibody Systems Handbook, Springer-Verlag, New York, 1990. 12. Junkins, J.L. and Kim, Y., Introduction to Dynamics and Control of Flexible Structures, AIAA Education Series, Washington, DC, 1993. 13. Baruh, H. and Radisavljevic, V., "Modeling of Flexible Mechanisms by Constrained Coordinates," Journal of the Chinese Society of Mechanical Engineers, Vol. 21, No. 1, 2000, pp. 1-14. 14. Lee, Sangchul, “Formulation and Validation of Mathematical Models for Hybrid Coordinate Dynamical Systems,” Ph.D. dissertation, Texas A&M University, Department of Aerospace Engineering, 1994. 15. Lee, M.G., “Application of Automatic Differentiation in Numerical Solution of a Flexible Mechanism,” Proceedings of the International Conference on Computational Methods in Science and Engineering, Kastoria, Greece, September 12-16, 2003, pp. 350-359.