1-s2.0-s0094114x97000554-main
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