1-s2.0-s0094114x97000554-main

Upload: vinicius-costa

Post on 04-Apr-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    1/19

    AUTOMATIC GENERATION OF MOTION EQUATIONS

    FOR PLANAR MECHANICAL SYSTEMS USING THE NEW

    SET OF ``BRANCH COORDINATES''

    JOHN J. McPHEE

    Systems Design Engineering, University of Waterloo, Ontario, Canada, N2L 3G1

    (Received 1 December 1995; in revised form 25 March 1997)

    AbstractA new set of ``branch coordinates'' are introduced and used to dene the time-varying con-guration of a planar multibody system with open and closed kinematic chains. The kinematic and

    dynamic equations are automatically generated in terms of these coordinates by a formulation pro-cedure that combines graph-theoretic and orthogonal projection methods. A major advantage of thisprocedure is that the branch coordinates are chosen by the analyst by selecting the spanning trees ofthe linear graphs representing a given mechanical system. Criteria is given for selecting trees that resultin a smaller number of motion equations than would be obtained using traditional absolute or jointcoordinate formulations, both of which are special cases of the formulation presented here. Threeexamples are given to demonstrate this new approach to multibody dynamics. # 1998 Elsevier ScienceLtd. All rights reserved

    1. INTRODUCTION

    A main goal of multibody dynamics research is to develop formulations that automatically de-

    rive the equations of motion for complex mechanical systems, given only a description of the

    system as input. By combining the computer implementation of such a formulation with numeri-

    cal methods that generate approximate solutions to the governing dierential-algebraicequations (DAEs) of motion, a powerful design tool is obtained. Essentially, these multibody

    programs relieve an engineer of the error-prone and tedious task of deriving these equations by

    hand. Furthermore, by automating the analysis procedure, more attention can be focussed on

    the design of the mechanical system. The widespread interest in multibody dynamics is evidenced

    by the existence of a large number of commercial software packages [1] and the recent appear-

    ance of several monographs [28] devoted to multibody dynamics formulations.

    To be applicable to a wide range of mechanical systems containing both open and closed kin-

    ematic chains, a multibody formulation must incorporate general mathematical methods for

    representing both the system topology (which is not known a priori) as well as the time-varying

    conguration. The representation of topology is eciently and naturally handled using elements

    of linear graph theory [9], the branch of mathematics devoted to the study of topology.

    However, selecting a set of coordinates to represent the changing system conguration is a pro-blem that is not so easily resolved.

    In a manual derivation of the motion equations, the analyst can select an independent set of

    generalized coordinates that are tailored to suit the system under study. By eliminating the

    forces and torques corresponding to non-working kinematic constraints using either an analyti-

    cal approach (e.g. Lagrange's equations [10]) or a vectorial projection method [11, 12], the result-

    ing dynamic equations take the form of a system of ordinary dierential equations (ODEs).

    In contrast, an automated formulation needs to employ a pre-dened set of coordinates

    capable of representing the conguration of any multibody system. The representation of the

    changing system conguration has traditionally been accomplished using a pre-dened set of ab-

    solute (Cartesian) or joint (natural, relative) coordinates [13]. Absolute coordinates dene the

    position and orientation of each body in the system relative to a global reference frame, while

    joint coordinates dene the relative motion of two adjacent bodies in a kinematic chain. Formultibody systems containing closed kinematic chains, neither of these sets of pre-dened coor-

    dinates are independent.

    Mech. Mach. Theory Vol. 33, No. 6, pp. 805823, 1998# 1998 Elsevier Science Ltd. All rights reserved

    Printed in Great Britain0094-114X/98 $19.00 + 0.00PII: S0094-114X(97)00055-4

    805

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    2/19

    Recognizing that the choice of coordinates employed has a direct eect on the structure and

    complexity of the nal system of DAEs, and therefore on the computational time required to

    solve these non-linear equations, several researchers have recently investigated the use of coordi-

    nates other than absolute or joint. Fayet and Pster [14] introduce the concept of ``indirect''

    coordinates, which dene the relative motion of two bodies that are not necessarily adjacent in

    an open-loop kinematic chain, and use these coordinates to simplify the equations of motion for

    robotic manipulators. Huston [15] uses a triple pendulum example to show that the use of absol-

    ute rotational coordinates leads to a simplication in the equations of motion, when compared

    to those obtained using joint coordinates. Wittenburg [16] shows how to derive dynamic

    equations using a mix of coordinates for masses, springs, and dampers, but his formulation is

    limited to unconstrained one-dimensional systems. Agrawal and Shelly [17] show the procedure

    for, and advantages of, switching from one set of joint coordinates to another during a dynamic

    simulation. Finally, there are many formulations that use a coordinate transformation to reduce

    the DAEs of motion to a minimal set of ODEs equal in number to the degrees of freedom; how-

    ever, these formulations generally require the transformation equations to be either specied by

    the user (e.g. [18, 19]), or approximated using numerical methods (e.g. [20, 21]).In this paper, a new set of coordinates dubbed ``branch coordinates'' are introduced. These

    coordinates are so-called because they directly correspond to the branches making up the span-

    ning trees of the linear graphs representing the system topology. As an example, if all the rigid

    body elements in the system are selected as edges of the trees, the branch coordinates are equiv-

    alent to the set of absolute coordinates. Similarly, if physical joints are selected into the trees,

    the corresponding branch coordinates are identical to the set of joint coordinates. Thus, this

    new set of coordinates encompasses both sets of absolute and joint coordinates as special cases.

    To automatically generate the equations of motion in terms of branch coordinates, formal

    graph-theoretic methods [9, 22] are combined with orthogonal projection techniques [11, 12] to

    obtain a dynamic formulation that is both unifying and simplifying. It is unifying in the sense

    that it represents a generalization of conventional absolute and joint coordinate formulations, as

    well as previous graph-theoretic formulations [2325]. It also leads to a smaller number of

    equations than would generally be obtained using either absolute or joint coordinates. Thus, the

    number of computations required to eect a numerical solution of the DAEs, including those

    methods based on transforming the equations to a minimal set, is reduced.

    In the next section, a review of graph-theoretic methods for planar mechanical systems is pre-

    sented, followed by criteria for selecting trees that lead to the greatest reduction in the number

    of motion equations. This is followed by a description of the graph-theoretic procedure for

    automatically generating the kinematic or dynamic equations for two-dimensional multibody

    systems, as well as a symbolic computer implementation of this procedure. Finally, three

    examples are presented to illustrate the application of this graph-theoretic formulation pro-

    cedure and its ability to produce directly, without additional user input or eort, a smaller set

    of equations than that obtained by traditional multibody formulations.

    2. GRAPH-THEORETIC REPRESENTATION OF SYSTEM

    2.1. Linear graphs

    In order to apply formal graph-theoretic methods [26] to a multibody system, it is necessary

    to create a linear graph that encapsulates the system topology. This is accomplished by identify-

    ing the signicant points in the physical system, and representing them by the ``vertices'' (or

    nodes) of a graph. For a mechanical system, these vertices would correspond to centres of mass

    for rigid bodies, points on a body to which forces are applied or joints are connected, and a

    ground or ``datum'' node that represents the origin of an inertial reference frame.

    Lines or ``edges'' are then drawn between these vertices so that each edge corresponds to a

    physical element in the original system. Thus, a rigid body would be represented by an edge

    starting at the datum node and ending at the mass centre node, while an external force would

    also start at the datum node and end at the node representing the point of application. The lo-cation of this point relative to the body centre of mass is given by a body-xed vector, which is

    represented by a ``rigid-arm'' element between the mass centre node and the point. Finally, kin-

    J. J. McPhee806

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    3/19

    ematic joints or spring-damper-actuators between two bodies are represented by edges connect-

    ing the end points of these physical components.

    Applying these guidelines to the slidercrank mechanism shown in Fig. 1, the linear graph of

    Fig. 2 is obtained. Edges m1, m2, and m3 represent the three rigid bodies in this closed-loop

    mechanism, the rigid-arm elements r5 to r8 correspond to body-xed position vectors that dene

    the location of pin joints on the crank and connecting arm, and h9 to h11 represent these threejoints. The edge s12 corresponds to the prismatic joint between the slider body and the ground,

    while R4 represents a ground-xed vector from the origin to a point on the axis of sliding.

    Finally, edge F13 corresponds to an external force applied to the slider body. Note that the

    three rigid bodies are drawn in dotted lines on top of the linear graph, for clarity.

    Chasles' theorem states that the general motion of a rigid body can be decomposed into inde-

    pendent translational and rotational motions. In addition, joints connected to a rigid body may

    constrain either its translational or rotational motion, or both. The linear graph shown in Fig. 2

    represents only the translational motion of elements in the system. A separate graph, shown in

    Fig. 3, is therefore needed to represent the rotational motions of the slidercrank components.

    Upon examination, it is obvious that the rotational graph is simpler than its translational

    counterpart. This is due to the fact that angular velocity (or displacement or acceleration) is a

    property of a rigid body or reference frame, and not an individual point. Thus, all points on a

    rigid body are collapsed to a single node representing the entire body, thereby eliminating el-ements like body-xed vectors from the rotational graph. The only elements that appear in this

    graph are the three bodies m13 and the four joints h911 and s12 connecting these three bodies.

    In addition, the driving force F13 does not appear in the rotational graph, since it is a purely

    translational quantity.

    2.2. Non-linear terminal equations

    Associated with every edge is one or more constitutive or ``terminal'' equations that dene the

    physical characteristics of the corresponding element. Consistent with formal graph-theoretic

    methods, these terminal equations are written in terms of the system ``through'' and ``across''

    variables, where through variables correspond to forces or torques, and across variables corre-

    spond to displacements, velocities, or accelerations. As an example, a terminal equation for

    edge h9 is:

    Fig. 1. Slidercrank mechanism.

    Fig. 2. Linear graph of slidercrank.

    A new set of `branch coordinates'' 807

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    4/19

    r 0 1

    where r is the translational displacement corresponding to the revolute joint h9. This terminal

    Equation (1) ensures that the two points on the ground and crank connected by h9 remain co-

    incident at all times.As another example, the terminal equation for a rigid-arm element can be written vectorially

    as:

    r ry 2

    where y is the angular displacement of the rigid body to which the arm is attached. In other

    words, the displacement vector for a rigid-arm varies as the carrier body rotates. Note that

    y=yk is a vector for planar motion, where k is the unit vector parallel to the Z axis of rotation.

    In scalar matrix form, Equation (2) represents a rotation transformation.

    For an ideal prismatic joint, one terminal equation is:

    r s u 3

    where s is the magnitude of the displacement, which must be parallel to the axis of slidingdened by the unit vector u. Similar to the rigid-arm displacement, the unit vector u is a func-

    tion of the orientation angle (y) of the body on which the slider axis is dened. A second term-

    inal equation for a prismatic joint is:

    F u 0 4

    which states that the constraint force F is orthogonal to the joint axis.

    As a nal example, the terminal equation governing the translational motion of a rigid body

    is given by the d'Alembert form:

    F ma 5

    which states that the force ``through'' a rigid body is equal and opposite to the resultant of

    external forces on the body. Similarly, the terminal equation governing the rotational motion ofa rigid body can be written:

    T Ia Srr Fr Srs Fs 6

    where rr and rs represent the respective displacements of rigid-arms and prismatic joints con-

    nected to the rigid body, and Fr and Fs are the corresponding forces in these elements.

    Essentially, the two summations appearing in the rotational terminal Equation (6) represent tor-

    ques about the centre of mass resulting from forces applied at other points on the body. This

    model of a rigid body represents a departure from conventional graph-theoretic approaches [22

    24] that use additional ``dependent torque'' elements to represent each cross product term in the

    two summations. The approach taken here results in much simpler rotational graphs that are

    similar in form to those employed by other authors [25, 27].

    The terminal equations for an individual component can only be determined from empiricalobservation, and may be highly non-linear in nature. Furthermore, they may be written in terms

    of translational or rotational quantities, or a combination of both. Shown in Table 1 are the

    Fig. 3. Rotational graph of slidercrank

    J. J. McPhee808

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    5/19

    terminal equations for a variety of planar mechanical components, all of which will be included

    in the model of a multibody system analysed in this paper. For a more complete discussion of

    these and other terminal equations, see [23, 24].

    2.3. Linear topological equations

    On their own, the terminal equations are insucient in number to determine the time re-

    sponse of a given mechanical system; topological equations representing the connectivity of the

    system components are required.

    Using traditional graph-theoretic methods [26], two auxiliary sets of connection equations can

    be obtained once the linear graphs of the system have been generated from a given topological

    description. The rst step in obtaining these topological equations is to select ``trees'' for the

    two linear graphs, where a tree is a collection of edges that connects all nodes and doesn't con-

    tain any closed loops. The b edges selected into the tree are known as ``branches'', while the

    remaining c edges in the complement of the tree (or ``cotree'') are known as ``chords''.

    Once the tree has been selected, the set of ``cutset'' equations for the translational graph can

    be automatically generated:

    AffFg f0g 7

    where [Af] is the cutset matrix and {F} is the complete set of translational through variables, i.e.

    forces. A similar set of cutset equations, in terms of torques, can be generated from the ro-

    tational graph and tree. Note that the cutset matrix is obtained by applying elementary row op-

    erations to the ``reduced incidence matrix'' to obtain the row-reduced echelon form:

    Af 1bA 8

    where [1b] is a b b unit matrix. One can see that the cutset Equation (7) represent a set of b lin-

    early independent equations, one for each of the branches. Furthermore, by partitioning the set

    of through variables into tree {F}b and cotree {F}c forces, one can use the cutset equations to

    relate the two:fFgb AfFgc 9

    which are known as the ``chord transformations''. A similar set of transformation equations for

    the rotational graph express the torques in branch elements in terms of cotree torques.

    The second set of topological equations, known as the ``circuit equations'', are also generated

    from the translational graph:

    Bffrg f0g 10

    where [Bf] is the circuit matrix and {r} is the set of translational displacement vectors for all el-

    ements. An equivalent set of circuit equations in terms of rotational displacements can be gener-

    ated from the rotational graph. In either case, the circuit matrix has the reduced-row echelon

    form:

    Bf B1c 11

    Table 1. Terminal equations for planar mechanical components

    Element Translation Rotation

    Rigid body (m) Fm= mam Tm= IamSrFPosition driver (R) rR=r(t)Rotation driver (Y) yY=y(t)Rigid-arm (r) rr=r(ym)(body-xed vector) vr=omrr

    ar=amrro2mrr

    Force actuator (F) FF=F(rF,vF,t)Torque actuator (T) TT=T(yT,oT,t)Revolute joint (h) rh=0 Th uh=0Prismatic joint (s) rs=sus os=0

    Fs us=0 as=0

    A new set of `branch coordinates'' 809

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    6/19

    where [1c] is a c c unit matrix. Thus, the circuit Equation (10) represent a set of c linearly inde-

    pendent equations, one for each chord in the cotree. Similar to the chord transformations, a set

    of ``branch transformation'' equations can be obtained by partitioning the circuit equations:

    frgc Bfrgb 12

    where {r}c are the chord displacements and {r}b are the branch displacements. Once again, a

    similar set of equations in terms of angular quantities can be generated from the rotational

    graph. Finally, the orthogonality of the rows of the cutset and circuit matrices [22] provide a

    simple relationship for determining [B] once [A] has been obtained:

    B AT 13

    thereby reducing the number of computations required.

    3. TREE AND COORDINATE SELECTION

    Together, the cutset, circuit, and terminal equations provide a necessary and sucient set of

    equations for determining the time response of a mechanical system [23, 24]. Thus, the selection

    of trees for the translational and rotational graphs does not aect the underlying mathematical

    model; in fact, a tree is not even needed in a nodal formulation of the governing equations [26].

    However, a careful selection of the tree branches can greatly reduce the number of motion

    equations that have to be solved simultaneously.

    In graph-theoretic terminology, the tree across and cotree through variables are known as

    ``primary variables'', while the tree through and cotree across variables are known as ``second-

    ary variables''. This is because the secondary variables can be expressed as functions of the pri-

    mary variables using the chord and branch transformation Equations (9) and (12). Using these

    linear equations therefore, the secondary variables can be eliminated from the set of governing

    equations. The result is a smaller number of equations expressed solely in terms of unknown

    across variables for tree elementsthe branch coordinates {q}and through variables for cotree

    elements. Once these primary variables have been determined, the secondary variables can be

    obtained through back-substitution into the branch and chord transformation equations.

    One can then make the observation that the number of equations of motion remaining will

    depend directly on the number of branch coordinates that have been used. Thus, the number of

    equations can be further reduced by selecting into the trees those elements for which a minimum

    number of across variables are unknown. The result will be a smaller number of branch coordi-

    nates and therefore, a smaller number of equations of motion.

    Using this simple criterion, one can examine the terminal equations to establish a preferred

    order for selecting elements into the translational (T) tree. Clearly, it is desirable to include pos-

    ition drivers and revolute joints into the T-tree, since their across variables are completely

    known functions of time. Similarly, it is preferable to select prismatic joints as branches overrigid body elements, since the former introduces only one unknown variable s into the set of

    branch coordinates, while the latter introduces the two unknown x and y displacements of the

    body. Finally, it is advantageous to put force actuators into the cotree, since the corresponding

    through variables appearing in the motion equations would be known functions.

    Less obvious is the fact that rigid-arm elements should be selected rst into the T-tree, even

    though they are implicitly dened in terms of the rotation of the carrier body. However, since

    all the rigid-arms on a given body are functions of the same orientation angle, at most only one

    variable needs to be added to the set of branch coordinates. Thus, if one arm on a body is

    included in the tree, then all arms on the body should be included. The alternative is to include

    no rigid-arms, in which case the mass element would be needed to complete the tree. As men-

    tioned above, this would introduce two additional variables into the set of branch coordinates;

    thus it is preferable to select all rigid-arm elements into the tree. Furthermore, fewer additionalbranches will be required to complete the tree since there are generally more rigid-arm elements

    than mass elements.

    J. J. McPhee810

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    7/19

    Based upon these arguments, the components listed in Table 1 should be selected into the

    translational tree in the order shown in Table 2, until the T-tree is complete. Note that the con-

    tribution of each element to the set of branch coordinates {q} is given in Table 2.

    Using the same criterion for reducing the number of equations of motion, one can also deter-

    mine a preferred order for selecting elements into the rotational (R) tree. Again, rotation drivers

    and prismatic joints are selected rst, since the corresponding rotational across variables are

    known functions of time. Then, one should select any rigid body elements corresponding to the

    rigid-arms in the T-tree, unless the rigid body rotation has already been dened by a rotation

    driver or a prismatic joint. Furthermore, the selection of rigid body rotations ahead of revolute

    joint coordinates leads to a simplied form of the equations of motion, as pointed out by

    Huston [15]. Finally, it is advantageous to put torque actuators into the R-cotree, since their

    through variables are given functions. Thus, the components from Table 1 should be selected

    into the rotational tree in the order shown in Table 3, where the contribution of each element to

    {q} is noted.

    Comparing Tables 2 and 3, one can see that it is generally better to not select the same com-

    ponents into the trees of the translational and rotational graphs. However, most previous

    graph-theoretic formulations [13, 22,24], with the exception of Li and Andrews [23], do exactly

    this. Some approaches [25, 27] make use of a single graph to represent the mechanical system,

    which clearly precludes the possibility of selecting dierent R- and T-trees. Although Li and

    Andrews do employ two dierent trees, their selection scheme is less than optimal from thepoint of view of equation reduction. As an example, prismatic joints are selected into the trans-

    lational tree ahead of revolute joints. This leads to a larger number of branch coordinates, and

    therefore equations, for the reasons outlined above. Furthermore, Li and Andrews' classication

    scheme is very restrictive in that no prismatic joints are allowed in the T-cotree, and no revolute

    joints are allowed in the R-tree. The only restriction on the selection of trees in this current

    work is that all rigid-arm elements must be in the translational tree. As long as this one require-

    ment is met, the graph-theoretic procedure described in the next section will automatically gen-

    erate the motion equations corresponding to any tree selection.

    4. SYSTEMATIC FORMULATION OF MOTION EQUATIONS

    Once the topology and parameters for a mechanical system have been dened, the transla-

    tional and rotational graphs can be generated automatically. The only other required infor-mation is the identication of trees for the two graphs; in the absence of such identication, the

    tree selection criteria given in the previous section can be employed. At this point, the equations

    governing the motion of the mechanical system can be automatically formulated by following

    the four simple steps of the procedure outlined below.

    This procedure represents a new approach to formulating the motion equations for multibody

    systems, and is obtained by combining graph-theoretic methods with a variation of the ``projec-

    Table 2. Selection of translational tree

    Priority Element type Coordinates {qi}

    1 Rigid-arms (r)2 Position drivers (R)3 Revolute joints (h)4 Prismatic joints (s) s5 Rigid bodies (m) xm,ym6 Force actuators (F) xF,yF

    Table 3. Selection of rotational tree

    Priority Element type Coordinates {qi}

    1 Rotation drivers (Y)2 Prismatic joints (s)

    3 Rigid bodies (m)ym

    4 Revolute joints (h) yh5 Torque actuators (T) yT

    A new set of `branch coordinates'' 811

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    8/19

    tion methods'' presented by Scott [11] and Blajer [12]. Essentially, this procedure represents a

    generalization of the joint coordinate formulation developed by Baciu and Kesavan [25].

    Step 1: Project cutset equations onto motion space

    To formulate dynamic equations for the mechanical system, the cutset equations for all

    branches other than rigid-arms and kinematic drivers are generated from the graphs. These cut-

    set equations are then projected onto the ``motion space'' of the corresponding component,

    which is the space of motions allowed by that component (a generalization of the ``relative

    motion space'' concept [25] for passive kinematic constraints). Clearly, the across variables for a

    given component span its own motion space. As an example, the motion space of a planar rigid

    body is described by the corresponding across variables xm, ym, and ym, while the motion space

    of a prismatic joint is dened by s, the displacement along the slider axis. Thus, the cutset

    equations for a rigid body are projected onto the X, Y, and Z axes, while the cutset equations

    for a prismatic joint are projected onto the slider axis (u). The result is one scalar equation for

    each branch coordinate.

    For kinematic constraint elements, one can also dene a ``reaction space'', which is the space

    spanned by the constraint forces and torques for that element. For revolute joints, the reaction

    space corresponds to the XY plane of motion, while the reaction space of a prismatic joint is

    dened by the unit vectors n and k, both of which are perpendicular to the motion space dened

    by u. In fact, for any passive frictionless joint, the reaction space will be orthogonal to the

    motion space, since no work is done by that joint. The eect of projecting the cutset Equation (7)

    onto the motion spaces for branch elements is to eliminate the reaction forces and torques corre-

    sponding to passive kinematic constraints selected into the tree.

    Upon substitution of the terminal equations from Table 1 into these projected cutsets, one

    obtains a set of n dierential equations, where n is the number of branch coordinates:

    pifrgY fygY flgY fFrgY t 0Y i 1 F F F n 14

    These dynamic equations are in terms of the tree and cotree across variables {r} and {y}, theirtime derivatives, the m reaction forces and torques {l} for cotree kinematic constraints, and the

    forces {Fr} in rigid-arm elements.

    Note that the projected cutset Equations (14) represent linear combinations of the Newton

    Euler equations applied to free-body diagrams of the mechanical sub-systems left isolated by the

    cutset. Using a graph-theoretic approach, these dynamic equations can be obtained quite sys-

    tematically, without ever drawing a free-body diagram.

    Note also that explicit expressions for the reaction loads in tree constraints can be generated,

    if desired, by projecting the same cutset equations onto the reaction space for the corresponding

    constraint element.

    Step 2: Project circuit equations onto reaction space

    For a mechanical system containing closed kinematic chains, one can generally dene branchcoordinates that are fewer in number than a set of joint coordinates for the same system.

    Nevertheless, these n branch coordinates will still be dependent variables, related by m non-lin-

    ear algebraic equations of constraint. These are obtained by rst generating the circuit

    Equation (10) for active and passive kinematic constraints in the two cotrees. By projecting these

    circuit equations onto the corresponding reaction space, the across variables for cotree constraint

    elements are automatically eliminated. The resulting constraint equations are in terms of the

    branch coordinates, as well as the across variables for cotree elements other than kinematic con-

    straints:

    qifrgY fygY t 0Y i 1 F F F m 15

    Note that one algebraic equation is obtained for each reaction force or torque appearing in the

    dynamic Equations (14).Also note that explicit expressions for the cotree constraint across variables can be generated

    by projecting these same circuit equations onto the corresponding motion space. These may be

    J. J. McPhee812

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    9/19

    required to compute slider displacements appearing in the mass terminal Equation (6), or may

    simply be of interest to the analyst.

    Step 3: Branch and chord transformations

    The next step in the procedure is to use the branch and chord transformations to eliminate

    any secondary variables that appear in the projected cutset and circuit equations. It is important

    that these variables be eliminated in the following order:

    3(a). Rigid-arm forces: These appear in rotational cutset equations as a result of the mass

    terminal Equation (6). Using the chord transformation Equation (9) for the translational graph,

    and the terminal equations from Table 1, the rigid-arm forces can be written as functions of pri-

    mary variables, and secondary variables representing cotree across variables:

    fFrg fFrfrgY fygY flgY tg 16

    3(b). Cotree translational across variables: These correspond to rigid bodies and force actua-tors in the T-cotree. Using the translational branch transformation Equation (12) and the set of

    corresponding terminal equations, these variables can be replaced by expressions involving

    branch coordinates and across variables for rigid bodies in the R-cotree:

    frg frfqgY fygY tg 17

    3(c). Cotree rotational across variables: These correspond to rigid bodies and kinematic con-

    straints in the rotational cotree, and can be expressed directly in terms of branch coordinates

    using the branch transformation equations for the rotational graph:

    fyg fyfqgY tg 18

    By recursively substituting Equations (18), (17) and (16) into the projected cutset and circuit

    Equations (14) and (15), all variables other than {q} and {l} are eliminated from the equations

    of motion.

    Step 4: Assemble equations of motion

    For a kinematic analysis, Step 1 can be skipped since the dynamic Equations (14) are not

    required. Assuming that all constraints are holonomic, the result of Steps 2 and 3 is the set of m

    non-linear algebraic equations:

    fFqY tg 0 19

    Since m = n for a well-posed kinematic problem, the branch coordinates {q} can be obtained at

    any time t by solving Equation (19) using an appropriate numerical method.

    If a subsequent velocity analysis is required, then the projected circuit equations of Step 2 arewritten in terms of velocities, not displacements. This can be done since the derivative of an

    across variable is another across variable that must also satisfy the circuit equations. After sub-

    stituting the necessary terminal equations and applying Step 3, one obtains the linear algebraic

    equations:

    fFgqf qg fFgt 20

    where {F}q is the Jacobian matrix of the constraint Equation (19), and {F}t is the partial deriva-

    tive of these same equations with respect to time. Once the values of { q} have been obtained at

    a given time, the linear Equation (20) can be solved for the velocities { q}.

    If an acceleration analysis is also required, the projected circuit equations are written in terms

    of accelerations, resulting in another set of linear equations:

    fFgqfqg fFgqf qg

    qf qg 2fFgqtf qg fFg

    tt 21

    which can be solved for the accelerations {q}, once {q} and {q} have been obtained.

    A new set of `branch coordinates'' 813

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    10/19

    Finally, if a dynamic analysis is required, the constraint Equations (19) are insucient in

    number to solve for {q(t)}. In this case, m is less than n, the dierence being equal to the num-

    ber of degrees of freedom of the system, and the constraint equations are supplemented by the

    dierential equations produced by Steps 1 and 3:

    Mfqg fFgTq flg fQqY qY tg 22

    where [M(q)] is a symmetric positive-denite mass matrix and {Q} contains external loads and

    quadratic velocity terms. Together, Equations (19) and (22) constitute a set of n + m dieren-

    tial-algebraic equations (DAEs) that can be solved for the n coordinates {q(t)} and m Lagrange

    multipliers {l(t)} using a suitable numerical method.

    4.1. Comparison to traditional formulations

    At this point, one can generate the motion equations resulting from an absolute coordinate

    formulation [2, 5] by selecting all mass elements into both trees; the branch coordinates are then

    identical to the set of absolute coordinates. In this case, the projected cutset equations representthe NewtonEuler equations for each individual rigid body, with the reaction forces and torques

    for all kinematic constraints appearing explicitly. Similarly, the projected circuit equations corre-

    spond to the constraint equations obtained from an examination of the joints and drivers, all of

    which are in the cotree. Combined, these equations constitute a relatively large set of DAEs for

    which sparse methods of numerical solution may be appropriate.

    To obtain the equations of motion corresponding to a joint coordinate formulation [7, 25, 27],

    one joint after another is added to both the translational and rotational trees, until they are

    complete. The projected circuit equations then represent the conditions for ``loop closure'', while

    the constraint reactions in cotree (``cut'') joints appear in the projected cutset equations. The

    combined set of DAEs are generally fewer in number than those obtained using absolute coordi-

    nates, and can be solved quite eciently using recursive numerical methods.

    For open-loop mechanical systems, the set of DAEs given by Equations (19) and (22) can be

    reduced to a ``minimal'' set of ordinary dierential equations (ODEs) equal in number to thedegrees of freedom of the system. This is accomplished by simply selecting all joints and pos-

    ition drivers into the T-tree and all prismatic joints and rotation drivers into the R-tree. With

    this tree selection, no constraint equations (m = 0) are generated by Step 2. Thus, the n branch

    coordinates are independent generalized coordinates, reaction loads {l} are eliminated from the

    dynamic Equation (14), and the n ODEs obtained from Steps 1 and 3 are sucient to determine

    the time response of the system.

    For systems with closed kinematic chains and a mixture of revolute and prismatic joints, the

    DAEs obtained using the trees recommended in Section 3 are generally fewer in number than

    those obtained using joint coordinates, as is shown in the examples that follow. These equations

    can be further reduced analytically to a minimal number of ODEs only through the use of com-

    plicated geometrical transformations [28, 29]. It is Nikravesh's contention [20] that the extra

    eort required for this last level of equation reduction osets the computational savingsobtained from having a smaller set of equations.

    4.2. Computer implementations

    Due to its systematic nature, the previous formulation was encoded with relative ease into a

    sequence of Maple procedures [30]. Using conventional graph-theoretic methods, the cutset and

    circuit equations are automatically generated from the given system topology and for the trees

    selected by the user. The terminal equations shown in Table 1 are contained in a library of mod-

    elling components that can easily be updated to include new components. From the projected

    cutset and circuit equations, the set of motion equations governing the kinematic or dynamic re-

    sponse of the given system is automatically assembled in a symbolic form that provides insight

    into their structure. One advantage of using a commercial symbolic package is that the velocity

    and acceleration Equations (20) and (21) can be directly obtained by symbolically dierentiatingthe constraint Equation (19); this greatly reduces the amount of programming eort required.

    Although there are other signicant advantages of a symbolic approach [30], a solution to the

    J. J. McPhee814

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    11/19

    non-linear equations of motion can only be obtained using numerical methods. The ability of

    Maple to write these equations in either C or Fortran format facilitates their subsequent numeri-

    cal solution.

    A second computer implementation was developed, using an object-oriented programming

    language (C++) and AutoCad as a pre- and post-processor. By exploiting the analogy between

    physical components and C++ objects, the resulting program (MeSyA, for Mechanical

    Systems Analysis) is very modular in nature. The use of C++ objects and AutoCad facilitates

    the input of the system description, which does not require the user to be familiar with graph-

    theoretic concepts. By simulating a variety of mechanical systems using MeSyA with dierent

    selections of branch coordinates [31], it was veried that the most ecient computer simulations

    resulted from trees selected in accordance with the priorities given in Tables 2 and 3.

    5. EXAMPLES

    5.1. One-dimensional vibrating system

    Shown in Fig. 4 is a one-dimensional system of unconstrained masses m14 connected to the

    ground and each other by dampers d57 and springs k816, and acted upon by external forces

    F1720. The displacements of components are measured from the static equilibrium position of

    the system in the absence of the external forces. This vibrating system has been taken from

    Wittenburg [16], who presents a procedure for deriving the equations of motion in terms of the

    absolute displacements of masses m1 and m3, and the relative displacements of springs k13 and

    k15. To do this, Wittenburg uses an ad hoc mixture of conventional dynamics and linear graph

    theory, and then shows how this procedure would have to be modied if the system were ``free-

    oating'', i.e. if none of the masses were connected to the ground by a spring or damper.

    To accomplish the same result using the graph-theoretic procedure presented in this paper,

    the system is represented by the linear graph shown in Fig. 5. Note that a separate graph for ro-

    tation is not relevant to this one-dimensional example. Also note that the three separate

    ``spring'', ``damper'', and ``coordinate'' graphs dened by Wittenburg are encapsulated in thesingle graph shown here. To automatically generate the equations of motion in terms of the

    coordinates selected by Wittenburg, the corresponding elements m1, m3, k13, and k15 are selected

    to form the spanning tree, which is shown in bold in the gure. The resulting set of branch

    coordinates is:

    fqg x1Y x3Y x13Y x15T 23

    Applying the graph-theoretic formulation procedure from the previous section, one obtains the

    standard form of the equations of motion for this one-dimensional unconstrained system:

    Mfqg Df qg Kfqg fFg 24

    where [M], [D], and [ K] are the system mass, damping, and stiness matrices, respectively. This

    system of linear ODEs can be solved analytically or numerically for {q(t)}, after which all sec-ondary variables can be obtained through back-substitution into the transformation equations.

    Fig. 4. One-dimensional vibrating system.

    A new set of `branch coordinates'' 815

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    12/19

    In order to present expressions for the mass, stiness, and damping matrices that are both

    explicit and concise, a slightly dierent version of the graph-theoretic formulation is employed.

    Instead of ordering the cutset matrix (8) so that the leftmost columns correspond to elements in

    the tree, one can partition [Af] as follows:

    Af AmAdAkAF 25

    where [Am] corresponds to all mass elements, placed in the leftmost columns, [Ad] corresponds

    to all dampers, [Ak] to all springs, and [AF] to all forces. If the kth element is in the tree, then

    the corresponding column contains all 0's except for a single 1 in the kth row. To illustrate, the

    expressions for [Am] and [Ad] for this example are:

    Am

    1 0 0 00 1 1 1

    0 1 0 1

    0 0 0 1

    PTTR

    QUUS 26

    Ad

    1 0 0

    0 0 1

    0 1 1

    0 1 1

    PTTR

    QUUS 27

    Essentially, the sub-matrix [Ai] corresponds to the cutset matrix for the linear graph consisting

    of all elements of type i, augmented by the branches of the system graph. Thus, each one of

    these sub-matrices can also be obtained from an inspection of sub-graphs of the original lineargraph.

    With this alternative partitioning of [Af] for the system graph, the cutset Equation (7) take

    the form:

    AmfFmg AdfFdg AkfFkg AFfFFg f0g 28

    where {Fm} corresponds to the forces in all masses, {Fd} contains all damper forces, and simi-

    larly for {Fk} a n d {FF}. Substituting the terminal equations for these column matrices of

    through variables,

    Ammfqmg Addf qdg Akkfqkg AFfFtg 29

    where {qm} corresponds to all mass accelerations, {qd} to all damper velocities, and {qk} to all

    spring displacements (measured from the static equilibrium position). If the four mass elements

    had been selected to form the tree, then [Am] would be a unit matrix and the accelerations in

    Fig. 5. Linear graph of vibrating system.

    J. J. McPhee816

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    13/19

    Equation (29) could be decoupled using the fact that [m] is a diagonal mass matrix. Note that

    [d] and [k] are diagonal damping and stiness matrices, respectively.

    To eliminate the secondary variables appearing in Equation (29), it is necessary to relate the

    displacements of all mass, spring, and damper elements to the branch coordinates {q}. It can be

    shown mathematically that this relationship for mass elements is simply:

    fqmg AmTfqg 30

    which corresponds to the branch transformation Equations (12) and (13) for the sub-graph dis-

    cussed previously, consisting of all mass elements plus the branches of the system graph. A simi-

    lar inspection of the sub-graph corresponding to the damper elements provides the relationship:

    f qdg AdTf qg 31

    and nally, for spring elements:

    fqkg AkTfqg 32

    Substituting Equations (30)(32) into Equation (29), one obtains the nal set of governing

    ODEs in the insightful form:

    AmmAmTfqg AddAd

    Tf qg AkkAkTfqg AFfFtg 33

    in complete agreement with Equation (67) from Wittenburg [16]. Unlike Wittenburg's derivation

    though, this set of equations was obtained using a consistent graph-theoretic approach.

    Furthermore, only the single linear graph shown in Fig. 5 is needed to derive the sub-matrices

    [Am], [Ad], [Ak], and [AF], from which the system mass, damping, and stiness matrices are calcu-

    lated. Equation (33) clearly shows the relationship between the topological matrices and [M],

    [D], and [ K], which depend directly upon the selection of elements into the tree. Finally, this

    same procedure can be applied without modication to formulate the equations for a free-oat-

    ing version of this one-dimensional unconstrained system; in such a case, the tree would have to

    incorporate at least one mass element, the coordinate for which would appear in the nalequations of motion.

    5.2. Kinematic equations for quick-return mechanism

    Shown in Fig. 6 is a quick-return mechanism, the function of which is to transform a uniform

    rotational speed o of the crank BC into a translation of the slider at E to the left, followed by a

    Fig. 6. Quick-return mechanism.

    A new set of `branch coordinates'' 817

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    14/19

    relatively rapid return to the right. The link lengths and joint locations given by Haug [5] have

    been used in this example, as well as a crank speed of 4p rad/s.

    The translational and rotational graphs of the quick-return mechanism are shown in Figs 7

    and 8, respectively; the individual bodies are drawn in dotted lines and the edges comprising the

    two trees are shown in bold. The ground-xed position vectors R12 and body-xed rigid-arms

    r38 are selected into the translational tree, as are the edges h1418 representing the 5 pin joints.

    The slider joint elements s1920 are selected into the rotational tree, as are the mass elements m9and m12 and the rotation driver o21. Note that m9 and m12 have been selected instead of m10and m13, since the displacements of the rigid-arm elements r46 in the T-tree are implicit func-

    tions of y9 and y12; by directly choosing y9 and y12 into the set of branch coordinates, the num-

    ber of subsequent substitutions to eliminate secondary variables are kept to a minimum.

    Note that the only branch coordinates resulting from this particular tree selection are y9 and

    y12, in terms of which the nal set of kinematic equations will be automatically generated. In

    contrast, the use of absolute coordinates would result in 14 algebraic equations of constraint (2

    being generated for each of the 7 joints), supplemented by the driving equation for the crank.

    Even the more ecient set of joint coordinates would require the driving equation plus 4 loop

    Fig. 7. Translational graph of quick-return.

    Fig. 8. Rotational graph of quick-return.

    J. J. McPhee818

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    15/19

    closure equations in order to solve for 5 coordinates. This is more than twice the number of

    equations that are generated by the graph-theoretic procedure.

    Step 2: Since the cutset equations are not required for a kinematic analysis, Step 1 is skipped

    and the formulation procedure begins by projecting the translational circuit equations for the

    prismatic joints in the T-cotree onto their reaction spaces:

    r19 r3 r16 r2 r18 r7 r8 r17 n19 0 34

    r20 r1 r2 r16 r3 r4 r15 r6 r5 r14 n20 0 35

    where n19 and n20 are the unit vectors normal to the axes of sliders s19 and s20, respectively.

    Assuming that the axis of s19 is dened relative to body m9, the components of the unit vector

    n19 are functions of the branch coordinate y9, while n20 is simply the unit vector in the negative

    Y direction,j.

    Substituting the terminal equations from Table 1 into Equations (34) and (35), one can write

    these equations in the functional form:

    r3y9 R2 r8y11 r7y11 n19y9 0 36

    R2 R1 r4y9 r3y9 r5y12 r6y12 n20 0 37

    or, in the scalar form that is automatically generated by the Maple implementation [30] of the

    formulation procedure:

    l7 l8 sin y9 cos y11 l7 l8 cos y9 sin y11 l2 cos y9 0 38

    l1 l2 l3 l4 sin y9 l5 l6 cos y12 0 39

    where li is the length of position vector ri.

    Step 3: The next step in the formulation procedure is to eliminate the secondary variable y11by generating the rotational circuit equation for rigid body m11 in the R-cotree:

    y11 y21t 0X4356 4pt 40

    which is used to replace y11 in Equations (38) and (39) with the specied driving function. An

    approximate solution of these 2 non-linear equations for y9 and y12 was then generated for 2

    complete crank cycles using the Matlab procedure fsolve. These numerical results were then

    back-substituted into the analytical expression for the horizontal displacement of the slider s20,

    obtained by projecting the corresponding T-circuit equation onto the slider axis dened by the

    unit vector u20:

    r20 r1 r2 r16 r3 r4 r15 r6 r5 r14 u20 0 41

    which is reduced by the Maple procedures to simply:s20 l3 l4 cos y9 l5 l6 sin y12 42

    This horizontal displacement has been plotted in Fig. 9, which clearly shows the forward ``work-

    ing'' stroke of the slider being followed by a short dwell period and a relatively quick return

    stroke.

    It is interesting to note that Equation (38) involves only one of the two unknown coordinates,

    y9. Thus, this decoupled equation can be solved on its own for y9(t), after which Equation (39)

    can be solved for y12(t) through simple back-substitution. For this example then, the number of

    constraint equations that need to be solved simultaneously has been reduced to the number of

    degrees of freedom. Furthermore, one can obtain closed-form expressions for y11 and y12 as

    explicit functions of y9 by analytically solving Equations (38) and (39). These expressions can

    then be used in a dynamic analysis to reduce the equations of motion from a set of 5 DAEs toa single ODE. However, the complexity of the closed-form expressions, which contain inverse

    trigonometric functions and square roots, leads to a very large and very cumbersome ODE.

    A new set of `branch coordinates'' 819

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    16/19

    Further discussion of the dynamic equations for the quick-return mechanism can be found

    in [30].

    5.3. Dynamic equations for slidercrank mechanism

    In this last example, the equations of motion will be derived for the slidercrank mechanism

    shown in Fig. 1. To keep the number of these equations as small as possible, the tree of the

    translational graph shown in Fig. 2 should consist of the position vector elements R4 and r58,

    as well as edges h911 representing the 3 revolute joints. With the same goal in mind, the pris-

    matic joint s12 is selected into the tree of the rotational graph shown in Fig. 3, along with the 2

    rigid body elements m12. The branch coordinates corresponding to this tree selection are y1 and

    y2 in terms of which the equations of motion are automatically generated.

    Step 1: Projecting the R-cutset equations for m1 and m2 onto their motion space (Z-axis)

    yields:

    T1

    T9

    T10

    k 0 43

    T2 T10 T11 k 0 44

    which become, upon substitution of the terminal equations from Table 1:

    I1a1 r5 F5 r6 F6 k 0 45

    I2a2 r7 F7 r8 F8 k 0 46

    No other dierential equations are generated, since the cutset equations for all other elements

    are orthogonal to their motion spaces.

    Step 2: Projecting the T-circuit equation for the prismatic joint s12 onto its reaction space:

    r12 r4 r9 r5 r6 r10 r7 r8 r11 n12 0 47

    where n12=jdenes the direction normal to the axis of slider joint s12. Substituting the term-

    Fig. 9. Kinematic response of quick-return.

    J. J. McPhee820

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    17/19

    inal equations from Table 1 into Equation (47) and evaluating the dot products, one obtains the

    scalar equation:

    Fy1Y y2 l7 l8 cos y2 l5 l6 sin y1 0 48

    which is the single constraint equation for the 2 coordinates being used to represent the con-

    guration of this 1 degree-of-freedom system. Had a kinematic analysis been required, this

    single equation would be sucient to solve for the time response of the system since either y1 or

    y2 would be replaced by some given function of time.

    Step 3: Although the constraint Equation (48) is in its nal form, the secondary variables

    appearing in the dynamic Equations (45) and (46) must be eliminated, starting with the rigid-

    arm forces. Generating the T-cutset equations for these elements, and substituting the terminal

    equations, one obtains:

    F5 m1a1 m2a2 m3a3 F13i F12 j 49

    F6 m2a2 m3a3 F13i F12 j 50

    F7 m2a2 m3a3 F13i F12 j 51

    F8 m3a3 F13i F12 j 52

    The translational accelerations a13 are then obtained by generating the T-circuit equations for

    m13, into which the terminal equations for accelerations are substituted:

    a1 a1 r5 o21r5 53

    a2

    a2

    r7

    o2

    1r

    7 a

    1 r

    6 r

    5 o2

    1r

    6 r

    5 54

    a3 a2 r8 r7 o21r8 r7 a1 r6 r5 o

    21r6 r5 55

    Equations (53)(55) are used to eliminate a13 from Equations (49)(52), which in turn are used

    to eliminate F58 from the dynamic Equations (45) and (46). It is clear that, in a numerical im-

    plementation of this formulation procedure, these substitutions could be executed very eciently

    by exploiting the recursive nature of Equations (49)(55).

    Step 4: After eliminating the secondary variables and simplifying the resulting scalar ex-

    pressions, Equations (45) and (46) are assembled into the matrix form:

    My1y2

    & ' fFgTq F12 fQg 56

    where F12 is the unknown magnitude of the reaction force in the cotree prismatic joint s12, and

    the entries in the mass matrix [M] are:

    M11 I1 m1l25 m2 m3l5 l6

    2 57

    M12 m2l7 m3l7 l8l5 l6c1s2 s1c2 M21 58

    M22 I2 m2l27 m3l7 l8

    2 59

    where ci=cos yi and si=sin yi. Note that M11 is the moment of inertia about the axis of pin

    joint h9 of the ``augmented body'' [27] corresponding to m1, while M22 is the moment of inertia

    of the augmented body corresponding to m2 about the axis of pin joint h10. As expected, the

    coecient matrix {F}q of the unknown constraint force is the Jacobian of the constraint

    Equation (48):

    fFgq dF

    dfqg l5 l6c1 l7 l8s2 60

    A new set of `branch coordinates'' 821

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    18/19

    Finally, the entries in the column matrix {Q} are:

    Q1 F13l5 l6s1 m2o22l7 m3o

    22l7 l8l5 l6c1c2 s1s2 61

    Q2 F13l7 l8c2 m2o21l7 m3o

    21l7 l8l5 l6c1c2 s1s2 62

    To obtain the time response of the mechanism for this selection of branch coordinates, the 3

    DAEs consisting of Equations (48) and (56) must be solved using an appropriate numerical

    method for the 2 coordinates and the 1 constraint force. In contrast, use of absolute coordinates

    would have resulted in a much larger system of 9 dierential equations (3 for each body) and 8

    algebraic equations of constraint (2 for each joint), for a total of 17 DAEs. The more ecient

    set of joint coordinates would result in 3 dierential equations and 2 algebraic equations for

    loop closure, for a total of 5 DAEs. Thus, the use of branch coordinates and the graph-theoretic

    formulation procedure presented in this paper results in a signicant reduction of the number of

    dynamic equations of motion for the slidercrank mechanism. The same conclusion can be

    drawn for a wide variety of common mechanical systems containing one or more closed kin-

    ematic chains.

    6. CONCLUSIONS

    A new set of ``branch'' coordinates has been introduced and used to describe the time-varying

    conguration of a planar multibody system with any number of open and closed kinematic

    chains. These coordinates can be hand-picked for a particular system by selecting separate trees

    for the linear graphs representing the translational and rotational motions. The governing

    equations of motion are automatically generated by a formulation procedure that combines

    graph-theoretic methods with orthogonal projection techniques. Criteria for selecting trees that

    minimize the number of branch coordinates, and therefore the number of motion equations,

    have been given. Finally, three examples were presented to demonstrate this new approach to

    multibody dynamics.

    From an examination of the literature, it appears that no other formulation is capable of

    automatically generating the equations of motion in terms of coordinates selected by an analyst,

    without additional coordinate transformations being specied. By selecting coordinates that

    reduce the number of equations of motion, the computational time required for a numerical sol-

    ution of these equations is also reduced [31]. Furthermore, the equations of motion are auto-

    matically expressed in terms of variables corresponding to physical components selected into the

    tree; this may be advantageous for real-time control applications since secondary calculations of

    these variables are not required. One should also not overlook the potential pedagogical appli-

    cations of the computer implementation [30] that generates symbolic equations in terms of user-

    dened branch coordinates. As an example, the motion equations for dierent sets of coordi-

    nates (e.g. absolute, joint, other) may be derived and compared, yielding valuable insight into

    the size and structure of the resulting DAEs. Finally, it may be possible to further increase the

    computational eciency of a numerical simulation by dening criteria for switching to a new setof branch coordinates whenever a mathematical singularity is approached. This possibility is

    currently being researched, as is the extension of the planar formulation to the general three-

    dimensional case.

    AcknowledgementsFinancial support of this research by the Natural Sciences and Engineering Research Council ofCanada is gratefully acknowledged. The author also thanks Mr Layi Oshinowo for the preparation of gures in thispaper, and Ms Cari Wells for developing the symbolic computer implementation of the graph-theoretic formulation pro-cedure.

    REFERENCES

    1. Schiehlen, W., in Multibody Systems Handbook. Springer-Verlag, 1990.2. Nikravesh, P. E., Computer-Aided Analysis of Mechanical Systems, Prentice-Hall, 1988.3. Roberson, R. E. and Schwertassek, R., Dynamics of Multibody Systems, Springer-Verlag, 1988.

    4. Shabana, A. A., Dynamics of Multibody Systems, Wiley, 1989.5. Haug, E. J., Computer-Aided Kinematics and Dynamics of Mechanical Systems, Allyn & Bacon, 1989.6. Huston, R. L., Multibody Dynamics, Butterworth-Heinemann, 1990.

    J. J. McPhee822

  • 7/29/2019 1-s2.0-S0094114X97000554-main

    19/19

    7. Amirouche, F. M. L., Computational Methods in Multibody Dynamics, Prentice-Hall, 1992.8. Garca de Jalo n, J. and Bayo, E., Kinematic and Dynamic Simulation of Multibody Systems, Springer-Verlag, 1994.9. McPhee, J. J., Nonlinear Dynamics, 1996, 9, 73.

    10. Goldstein, H., Classical Mechanics, 2nd ed. Addison-Wesley, 1980.

    11. Scott, D., American Journal of Physics, 1988, 56(5), 451.12. Blajer, W., Journal of Applied Mechanics, 1992, 59, 643.13. McPhee, J. J., Machine Elements and Machine DynamicsDE-Vol. 71, 1994, ASME, 361.14. Fayet, M. and Pster, F., European Journal of Mechanics A/Solids, 1994, 13(3), 431.15. Huston, R. L., Liu, Y. S. and Liu, C., Computers and Structures, 1994, 52(1), 17.16. Wittenburg, J., in Computer-Aided Analysis of Rigid and Flexible Mechanical Systems, ed. M. Pereira and J.

    Ambro sio. Kluwer Academic, 1994, p. 159.17. Agrawal, S. K. and Shelly, M. P., Mechanism and Machine Theory, 1993, 28, 615.18. Sayers, M. W., Journal of Guidance, Control, and Dynamics, 1991, 14(6), 1153.19. Loduha, T. A. and Ravani, B., Journal of Applied Mechanics, 1995, 62, 216.20. Nikravesh, P. E. and Gim, G., Advances in Design AutomationDE-Vol. 19, 1989, ASME(3), 27.21. Huston, R. L., Mechanics of Structures and Machines, 1989, 17(2), 135.22. Andrews, G. C., Mechanism and Machine Theory, 1975, 10, 57.23. Li, T. W. and Andrews, G. C., Journal of Mechanisms, Transmissions, and Automation in Design, 1986, 108, 471.24. Andrews, G. C., Richard, M. J. and Anderson, R. J., Mechanism and Machine Theory, 1988, 23, 243.25. Baciu, G. and Kesavan, H. K., Mechanism and Machine Theory, 1995, 30, 953.

    26. Koenig, H. E., Tokad, Y. and Kesavan, H. K., Analysis of Discrete Physical Systems, McGraw-Hill, 1967.27. Wittenburg, J., Dynamics of Systems of Rigid Bodies, B.G. Teubner, Stuttgart, 1977.28. Kecskeme thy, A. and Hiller, M., Computer Methods in Applied Mechanics and Engineering, 1994, 115, 287.29. Todd, P. H., Mechanical Design and SynthesisDE-Vol. 46, 1992, ASME, 267.30. McPhee, J. J. and Wells, C. E., MapleTech., 1996, 3, 48.31. Oshinowo, O. M. and McPhee, J. J., International Journal of Numerical Methods in Engineering, 1997, 40, 4097.

    A new set of `branch coordinates'' 823