Top Banner
SPECIAL ISSUE PAPER 339 Using graph theory and symbolic computing to generate efficient models for multi-body vehicle dynamics C Schmitke, K Morency, and J McPhee Department of Systems Design Engineering, University ofWaterloo,Waterloo, Ontario, Canada The manuscript was received on 14 May 2008 and was accepted after revision for publication on 1 September 2008. DOI: 10.1243/14644193JMBD160 Abstract: Linear graph theory, invented in 1736 by Leonhard Euler, has been combined with principles of physics to develop algorithms for formulating the dynamic equations for multi- body multi-domain systems. This graph-theoretic formulation allows electrical, mechanical, and hydraulic systems to be modelled within a common framework. The formulation has been imple- mented in a symbolic computer program, DynaFlexPro, that automatically generates compact and efficient sets of system equations that lead to reduced simulation times compared with most commercial multi-body dynamics software. In this article, models of pneumatic tyres are incorporated into the symbolic computer imple- mentation, which is used to create real-time simulations of vehicle dynamics.The tyre component forms a list of symbolic expressions for important tyre variables, such as inclination and slip angle, that are used to calculate tyre forces and moments during simulation. If the transient behaviour of the tyre is important, the user can request that additional relaxation length equations be included in the model. The tyre component allows the user to choose from several tyre model functions that describe the generation of forces and moments at the tyre contact patch and can also accommodate user-developed tyre model functions. A brief introduction to the linear graph formulation procedure used by DynaFlexPro is given, as well as an explanation of how the tyre component works within the linear graph framework. As an example, optimized simulation code is generated for a three-dimensional vehicle model, and results are validated using an equivalent model in the MSC.ADAMS ® commercial software package. Keywords: vehicle dynamics, real-time simulation, tyre models, graph theory, symbolic computing 1 INTRODUCTION In his letter of March 1736 to Giovanni Marinoni, Leonhard Euler wrote: A problem was posed to me about an island in the city of Kõnigsberg, surrounded by a river spanned by seven bridges, and I was asked whether someone could tra- verse the separate bridges in a connected walk in such a way that each bridge is crossed only once....This question is so banal, but seemed to be worthy of atten- tion in that geometry, nor algebra, nor even the art of counting was sufficient to solve it. In view of this, it Corresponding author: Department of Systems Design Engineer- ing, University of Waterloo, Waterloo, Ontario N2L 3G1, Canada. email: [email protected] occurred to me to wonder whether it belonged to the geometry of position which Leibniz had once so much longed for. And so, after some deliberation, I obtained a simple, yet completely established, rule with whose help one can immediately decide for all examples of this kind ... [1] It was this ‘wondering’ that led to the first published paper on linear graph theory in 1736 [2]. Although this first application of the theory (to land masses and bridges) may seem somewhat ‘banal’, the frame- work supplied by the theory has since been applied to all manner of engineering systems [3]. This paper presents an application of Euler’s linear graph frame- work to tyre modelling within the field of multi-body dynamics. The main goal of multibody dynamics is to automatically generate the governing equations for a JMBD160 © IMechE 2008 Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics
14

Using graph theory and symbolic computing to generate -

Feb 25, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Using graph theory and symbolic computing to generate -

SPECIAL ISSUE PAPER 339

Using graph theory and symbolic computing to generateefficient models for multi-body vehicle dynamicsC Schmitke, K Morency, and J McPhee∗

Department of Systems Design Engineering, University of Waterloo, Waterloo, Ontario, Canada

The manuscript was received on 14 May 2008 and was accepted after revision for publication on 1 September 2008.

DOI: 10.1243/14644193JMBD160

Abstract: Linear graph theory, invented in 1736 by Leonhard Euler, has been combined withprinciples of physics to develop algorithms for formulating the dynamic equations for multi-body multi-domain systems. This graph-theoretic formulation allows electrical, mechanical, andhydraulic systems to be modelled within a common framework. The formulation has been imple-mented in a symbolic computer program, DynaFlexPro, that automatically generates compactand efficient sets of system equations that lead to reduced simulation times compared with mostcommercial multi-body dynamics software.

In this article, models of pneumatic tyres are incorporated into the symbolic computer imple-mentation, which is used to create real-time simulations of vehicle dynamics.The tyre componentforms a list of symbolic expressions for important tyre variables, such as inclination and slip angle,that are used to calculate tyre forces and moments during simulation. If the transient behaviourof the tyre is important, the user can request that additional relaxation length equations beincluded in the model. The tyre component allows the user to choose from several tyre modelfunctions that describe the generation of forces and moments at the tyre contact patch and canalso accommodate user-developed tyre model functions.

A brief introduction to the linear graph formulation procedure used by DynaFlexPro is given,as well as an explanation of how the tyre component works within the linear graph framework.As an example, optimized simulation code is generated for a three-dimensional vehicle model,and results are validated using an equivalent model in the MSC.ADAMS® commercial softwarepackage.

Keywords: vehicle dynamics, real-time simulation, tyre models, graph theory, symboliccomputing

1 INTRODUCTION

In his letter of March 1736 to Giovanni Marinoni,Leonhard Euler wrote:

A problem was posed to me about an island in the cityof Kõnigsberg, surrounded by a river spanned by sevenbridges, and I was asked whether someone could tra-verse the separate bridges in a connected walk in sucha way that each bridge is crossed only once. . . .Thisquestion is so banal, but seemed to be worthy of atten-tion in that geometry, nor algebra, nor even the art ofcounting was sufficient to solve it. In view of this, it

∗Corresponding author: Department of Systems Design Engineer-

ing, University of Waterloo, Waterloo, Ontario N2L 3G1, Canada.

email: [email protected]

occurred to me to wonder whether it belonged to thegeometry of position which Leibniz had once so muchlonged for. And so, after some deliberation, I obtaineda simple, yet completely established, rule with whosehelp one can immediately decide for all examples ofthis kind . . . [1]

It was this ‘wondering’ that led to the first publishedpaper on linear graph theory in 1736 [2]. Althoughthis first application of the theory (to land massesand bridges) may seem somewhat ‘banal’, the frame-work supplied by the theory has since been appliedto all manner of engineering systems [3]. This paperpresents an application of Euler’s linear graph frame-work to tyre modelling within the field of multi-bodydynamics.

The main goal of multibody dynamics is toautomatically generate the governing equations for a

JMBD160 © IMechE 2008 Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics

Page 2: Using graph theory and symbolic computing to generate -

340 C Schmitke, K Morency, and J McPhee

system, given a description of its components and theinterconnections between them (topology). The equa-tions can be formulated numerically or symbolically.

Numerical formulations create structures of numeri-cal matrices that describe the dynamics of the systemat a given instant in time. As the numerical matricesare only valid for a given instant, they must be refor-mulated at every time step during the simulation. Thistends to be a slow process and may prohibit the useof numerically formulated models for real-time appli-cations. Despite this fact, numerical formulations arevery popular. Most commercial multi-body simulationpackages, including MSC.ADAMS®, use numeric for-mulations. These commercial packages generally useabsolute coordinates to model a system, resulting inlarge sets of differential-algebraic equations (DAEs)that are computationally expensive to solve. In con-trast, joint coordinate formulations generally lead tosmaller, more efficient sets of DAEs and, for open-loopmechanical structures, directly give ordinary differen-tial equations (ODEs) that can be solved much fasterthan an equivalent set of DAEs.

Symbolic formulations combine the system param-eters and modelling variables to create sets of dif-ferential and algebraic equations that describe thesystem for all time. Although the governing equationsare symbolic in nature, numerical methods must stillbe employed to solve them. Throughout this article,the process of generating equations will be referred toas formulation and the process of solving equationsto produce time-domain results will be referred to assimulation.

In order for a model to be suitable for real-timeapplications, such as hardware-in-the-loop testing ofautomotive components, it must be capable of sim-ulating an event in less time than it takes the eventto occur in reality. Symbolic models lend themselvesto real-time applications because they only need to beformulated once and also because symbolic equationscan be greatly simplified.

1. Terms multiplied by 0 are automatically removed,and multiplications by 1 are ignored.

2. Symbolic packages, such as Maple, can performtrigonometric reductions, substitutions, and sim-plifications.

3. Repeated terms can be identified and computedonly once, rather than each time they appear in theequations.

In addition to faster simulation times, symbolicmodels have the advantage of being very flexible andportable. The equations can be exported to any sim-ulation language the user chooses or easily emailedto a colleague. In contrast to numerically formu-lated models, symbolic models allow the user toview the governing equations in a meaningful form

and perhaps gain physical insight into the systemby doing so.

The major disadvantage to symbolic formulationsis the tendency of the equations to grow large andunwieldy as the system becomes more complex. Forvery large systems, the symbolic package might runout of available memory. An efficient symbolic pack-age and an intelligent formulation procedure canalleviate this difficulty [4]. A formulation procedurebased on linear graph theory is shown in section 2.

During the early 1990s, researchers at the Universityof Michigan developed AutoSim, which automati-cally formulates simulation code given a descriptionof a mechanical system as input. The symbolic for-mulation is based on Kane’s method, and symbolicsimplification of the equations is performed before thesimulation code is exported [5]. Sayers and Han [6]used AutoSim to formulate a model for a genericfour-wheeled vehicle (fixed topology), as described intheir 1996 paper. This model underwent some fine-tuning by hand and was incorporated into the CarSim®

commercial software package. CarSim was used forhardware-in-the-loop testing of a brake system elec-tronic control unit (ECU), during which the vehiclemodel ran faster than real-time on a laptop equippedwith a Pentium 2 233 MHz processor [7].

Postiau et al. [8] used software called ROBOTRAN,which automatically generates the symbolic equa-tions of motion for any mechanical system given adescription of the system as input. The formulationis based on the d’Alembert potential power princi-ple, and the equations of motion are exported in theform of Fortran routines [5]. ROBOTRAN was usedto formulate a three-dimensional vehicle model withmulti-link suspensions at all wheels. A 10 s double lanechange manoeuvre took 11 s to simulate on a Pentium3 450 MHz computer [8].

Although Sayers and Han and Postiau et al. wereable to achieve fast simulation of their symbolicvehicle models, AutoSim and ROBOTRAN have someweaknesses as formulation tools. First, they are notimplemented in a general-purpose computer algebrapackage such as Maple; all symbolic operators suchas addition and differentiation have been hard-codedby the developers. As a result, users are limited in theoperations they can use to develop system modelsand post-process the resulting symbolic equations. Inaddition, AutoSim and ROBOTRAN are restricted tothe mechanical domain and cannot include electricaland hydraulic components in the formulation proce-dure. The ability to model the interactions betweendifferent energy domains is important as modern vehi-cles are fitted with many electrical actuators and arebecoming increasingly mechatronic [9].

Section 2 presents a formulation procedure basedon linear graph theory, which is able to handle multipleenergy domains.

Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics JMBD160 © IMechE 2008

Page 3: Using graph theory and symbolic computing to generate -

Models for multi-body vehicle dynamics 341

2 LINEAR GRAPH THEORY

2.1 Nodes and edges

Graph theory represents physical systems as a col-lection of nodes and edges. In electrical systems,the nodes are points where the components may besoldered to one another and edges represent the com-ponents themselves. In mechanical systems, whereorientation is important, nodes represent referenceframes and edges represent transformations betweenreference frames [3].

An edge in a linear graph has two types of variablesassociated with it. Across variables represent quanti-ties measured by a device in parallel with the edge,whereas through variables represent quantities mea-sured by a device in series with the edge [10, 11]. In thisarticle, xk is an across variable associated with edge kand y

kis a through variable associated with edge k.

The underline below xk and yk

indicates that they maybe vector or scalar quantities.

The energy domain in which an edge exists dictatesthe physical meaning of its through and across vari-ables, as shown in Table 1. In the electrical domain,through variables are currents i and across variablesare voltages e. In the mechanical translational domain,through variables are forces F and across variables arepositions r , velocities v, and accelerations v. In themechanical rotational domain, through variables aremoments M and across variables are angles θ, angularvelocities ω, and angular accelerations ω [12].

A linear graph component may contain more thanone edge and may span several domains. For exam-ple, the revolute joint component model shown inFig. 1 contains an edge in the mechanical translationaldomain and two edges in the mechanical rotationaldomain.

The physical nature of a component is associatedwith terminal equations that relate the through andacross variables of its edges [10, 12]. A terminalequation is defined for each derivative level of eachedge. In mechanical systems, this means that separateterminal equations are used to describe the position,velocity, and acceleration behaviour associated with a

Table 1 Through and across variables in differentdomains

Derivative Mechanical Mechanicallevel Electrical (translation) (rotation)

xk 0 ek rk θk1 ek vk ωk2 vk ω

yk

0 ık F k M k

1 ık F k M k2 F k M k

Fig. 1 A linear graph representation of a revolute jointcomponent

particular edge. Often, higher derivative level terminalequations are simple derivatives of lower derivativelevel equations, but this is not always the case [12].

As an example, terminal equations for revolute jointedges are presented in Table 2. The terminal equationsfor the translational edge ensure that the origin of theF1 frame, attached to body 1, is coincident with that ofthe F2 frame, attached to body 2. The terminal equa-tions for the first edge in the rotational domain statethat this edge develops no torque. In fact, the onlyreason edge R1 is part of the revolute joint compo-nent is because its angular velocity ωR1 is needed inthe terminal equations for the second rotational edge.The position-level terminal equation for edge R2 statesthat the rotation transformation between frames F1and F2 is the result of a single rotation about the rev-olute axis u (n1 and n2 represent the two orthogonalaxes about which the joint resists rotation). This is alsoevident from the velocity-level terminal equation for

Table 2 Terminal equations for revolute joint component

Zeroth-level First-level Second-levelderivative derivative derivative

Edge (position) (velocity) (acceleration)

T1 rT 1 = 0 vT 1 = 0 vT 1 = 0R1 M R1 = 0 M R1 = 0 M T 1 = 0R2 θR2 = βu ωR2 = βu ωR2 = βu + ωR1 × ωR2

JMBD160 © IMechE 2008 Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics

Page 4: Using graph theory and symbolic computing to generate -

342 C Schmitke, K Morency, and J McPhee

this edge. The acceleration-level equation for edge R2must contain the cross product of ωR1 and ωR2 in orderto account for gyroscopic effects.

2.2 Tree selection

One of the unique aspects of linear graph theory is thatit separates the individual component models, definedby terminal equations, from the topological equa-tions that describe how components are connected.Regardless of the nature/complexity of a system’s com-ponents, the topological equations are always linearand may be formulated in a systematic fashion [3, 10].

An effective method for generating the topologicalequations begins by selecting a system tree. A tree isa connected subgraph that includes all the nodes ina graph without any loops. The edges in the tree arecalled branches, whereas the cotree edges (those notin the tree) are referred to as chords [10, 12]. Figure 2shows a linear graph with a valid tree selection. Treeedges are shown in black and cotree edges are shown ingrey. Note that it is possible to select different, equallyvalid, trees for the same graph.

Along with the selection of a tree comes the desig-nation of the system’s primary (variables that appearin the governing equations) and secondary variables(variables that do not appear in the governing equa-tions). Primary variables consist of branch across vari-ables and cotree through variables (xB, y

C). It follows

that branch through variables and cotree across vari-ables are secondary (y

B, xC ) [10]. Analysts choose the

modelling variables used to describe a system simplyby selecting a tree for the linear graph representationof that system [13, 14].

2.3 Topological equations

A cutset is a set of edges that, when removed, divide thegraph into two separate parts. A fundamental cutset (f-cutset) consists of a single branch and a unique set ofchords [10, 11]. There is one unique f-cutset for each

Fig. 2 A linear graph with valid tree selection

branch in the tree. Referring to Fig. 2, if the edges thatcross the dashed border were removed, then the nodesand edges contained within the dashed outline wouldbe isolated from the rest of the graph. Since the edgescrossing the dashed border consist of a single branchand two chords, they constitute an f-cutset.

The algebraic sum of the through variables associ-ated with cutset edges is zero. For mechanical systems,the cutset equations correspond to dynamic equilib-rium conditions, expressed in the d’Alembert form.For electrical systems, cutset equations are a way ofexpressing Kirchoff’s current law [10, 11]. A mathe-matical representation of the fundamental cutsetequations is

[1 Af ][

yB

yC

]= 0 (1)

where 1 is an identity matrix and Af is a matrix consist-ing of −1’s, 1’s, and 0’s, indicating whether a chord ispart of and negative, part of and positive, or not part ofa given fundamental cutset. For a more detailed lookat formulating Af , see reference [14].

The cutset equations may be rearranged in orderto express the (secondary) branch through variablesin terms of the (primary) chord through variables.Equation (2) accomplishes the task and is known asthe chord transformations [11, 14]

yB

= −Af yC

(2)

A circuit is a set of edges that form a closed loop.A fundamental circuit (f-circuit) contains one chordand a unique set of branches. There is one f-circuit foreach chord in the cotree [10, 11]. Referring to Fig. 2,the edges following the dotted outline form a closedloop. As these edges consist of a single chord and twobranches, they constitute an f-circuit.

The algebraic sum of the across variables associatedwith circuit edges is zero. For mechanical systems, cir-cuit equations enforce vector loop closure. In electricalsystems, circuit equations correspond to Kirchoff’svoltage law [10]. A mathematical representation of thefundamental circuit equations is

[Bf 1][

xB

xC

]= 0 (3)

In this case, Bf is a matrix consisting of −1’s, 1’s,and 0’s, indicating whether a branch is part of andnegative, part of and positive, or not part of a givenfundamental circuit. For more details on formulatingBf , see reference [14].

The circuit equations may be rearranged to expressthe (secondary) chord across variables in terms ofthe (primary) branch across variables. Equation (4) is

Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics JMBD160 © IMechE 2008

Page 5: Using graph theory and symbolic computing to generate -

Models for multi-body vehicle dynamics 343

known as the branch transformations [11, 14]

xC = −Bf xB (4)

It is interesting to note that, as a consequence of thedefinition of f-cutsets and f-circuits, the matrices Af

and Bf are orthogonal [10, 11]

Af = −BTf (5)

2.4 Through and across spaces

An across space for an edge consists of an orderedset of unit vectors that span the space in which theedge allows its across variable to vary. Similarly, athrough space is a set of ordered unit vectors thatspan the space in which the edge allows its throughvariable to vary. The order of unit vectors is impor-tant for finite three-dimensional rotations, which arenon-commutative [12]. Note that across and throughspaces are generalizations of the purely mechani-cal concepts of motion and reaction spaces used inreference [14].

Through and across spaces may be dependent onthe derivative level; it is possible to use a different set ofunit vectors to define the position-level across space ofan edge than is used to define the velocity-level acrossspace. The only restriction is that the spanned spacereflects the physical nature of the component the edgeis used to model [12].

The revolute joint example reinforces the conceptsof through and across space. Referring to Fig. 1 andTable 3, the across space for the translational edge ofthe revolute joint component is null, meaning that thetranslational across variables (r T 1, vT 1) are not free tovary. In fact, they are 0, as stated in Table 2. The throughspace for the translational edge could be any three unitvectors that span a three-dimensional space. This indi-cates that the translational through variable, F T 1, isfree to vary in all directions. The first edge in the rota-tional domain has a three-dimensional across space,indicating that its across variables (θR1, ωR1) are unres-tricted in the values they may assume. The throughspace for this edge is null, as the through variable,M R1, is specified to be zero. The most interesting edgefor a revolute joint is the second edge in the rotational

Table 3 Through and across spaces for revolute jointcomponent

Edge Derivative level Across space Through space

T1 Zeroth (position) Null {ıG , jG , kG}First (velocity) Null {ıG , jG , kG}

R1 Zeroth (orientation) {ıG , jG , kG} NullFirst (angular velocity) {ıG , jG , kG} Null

R2 Zeroth (orientation) {u} {n1, n2}First (angular velocity) {u} {n1, n2}

domain. The across space for edge R2 is defined bythe single unit vector u as this is the only axis aboutwhich the across variables (θR2, ωR2) are free to change.The through space may consist of any two unit vectorsthat span the two-dimensional space, which is orthog-onal to u. Moments about these axes may assume anyvalues necessary to prohibit rotation about n1 and n1.

2.5 Formulation of system equations

Combining topological equations (associated with theconnectivity of nodes and edges) with terminal equa-tions that describe the physical behaviour of individ-ual components yields a set of governing equations forthe system. Although many formulation procedurescan be used to assemble system equations based ona linear graph, an approach based on the principle oforthogonality, detailed in references [11] and [12] andused by the DynaFlexPro software package, is used.This formulation procedure is consistent across alldomains and may be used to generate equations forone-dimensional electrical and hydraulic systems aswell as three-dimensional mechanical systems.

A mathematical representation of the principle oforthogonality is

edges∑i=1

x[i] · y[i] =edges∑

i=1

y[i] · x[i] = 0 (6)

Equation (6) holds for any valid selection of throughand across variables – that is, as long as the algebraicsum of across variables around any closed loop is zeroand the algebraic sum of through variables for any cut-set is zero [10]. Often, the dot product of the throughand across variables has units of power or energy.In this case, equation (6) simply states that the totalenergy in the system is conserved.

The principle of orthogonality also holds for virtualincrements of the through and across variables thatare consistent with the through and across spaces oftheir corresponding edge [10, 11]

edges∑i=1

δx[i] · y[i] =edges∑

i=1

δy [i] · x[i] = 0 (7)

Substituting the branch and chord transformationsinto equation (7) yields

edges∑i=1

([1

−Bf

]δxB

)[i]

· y[i] = 0 (8)

edges∑i=1

([−Af

1

]δy

C

)[i]

· x[i] = 0 (9)

JMBD160 © IMechE 2008 Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics

Page 6: Using graph theory and symbolic computing to generate -

344 C Schmitke, K Morency, and J McPhee

Rearranging these and making use of equation (5)yield

edges∑i=1

([1 Af

]y[i]

)· δxB[i] = 0 (10)

edges∑i=1

([Bf 1

]x[i]

) · δyC[i] = 0 (11)

The first set of equations (10) represents the pro-jection of fundamental cutset equations onto theacross space for edges selected into the tree [11]. Formechanical systems, these become the dynamic equa-tions [14]. It follows that motions consistent with theacross space of edges selected into the tree will becomemodelling variables. By selecting different unit vectorsto describe the position-level and velocity-level acrossspace of an edge selected into the tree, an analyst canforce the linear graph formulation to use generalizedspeeds that are not direct derivatives of position-levelcoordinates. With this type of flexibility, an analystcan use velocities and angular velocities expressed ina body-fixed reference frame as generalized speeds,as recommended by Mitiguy and Kane [15], whereasthe position and orientation coordinates are expressedusing any other unit vectors.

The second set of equations (11) represents theprojection of fundamental circuit equations ontothe through space for edges in the cotree [11]. Formechanical systems, these projected equations pro-vide the mathematical constraints (if any) on thegeneralized coordinates q [14]. It follows that the reac-tion forces and moments used to enforce constraintswill be consistent with the through space for edgesselected into the cotree.

The entire set of system equations may be organizedinto a form that is valid for multi-domain systems [12],as shown in equations (12) to (14)

Mp + CTf = b(p, q, t) (12)

�(q, t) = 0 (13)

q = h(p, q, t) (14)

Equation (12) contains differential equations involv-ing the generalized speeds p. The matrix M containsthe coefficients of p in the system’s dynamic equations.The portion of M that corresponds to mechanical vari-ables may be thought of as a mass matrix, whereas theportion that corresponds to electrical variables maybe thought of as an inductance/capacitance matrix.The column matrix f contains variables related to thesystem’s constraint equations – either Lagrange multi-pliers or mechanical constraint forces – and the matrixCT gives the coefficients of f in the dynamic equa-tions [12]. Equation (13) contains algebraic constraint

equations involving the zeroth-level derivative mod-elling variables q. Equation (14) describes kinematictransforms relating the derivatives of the coordinatesq to generalized speeds p, coordinates q, and time.

To facilitate their solution, the generated DAEsmay be converted to ODEs by replacing the alge-braic constraint equations with their second deriva-tive. Expressed in the explicit first-order form, theseequations yield

[pf

]=

[M CT

�qhp 0

]−1 [b(p, q, t)e(p, q, t)

](15)

q = h(p, q, t) (16)

where �q represents the Jacobian of constraints withrespect to coordinates q, and hp represents the Jaco-bian of the kinematic transforms with respect to thegeneralized speeds p [12].The column vector e(p, q, t),which represents the right-hand side of the accelera-tion constraints, may be modified in order to provideconstraint stabilization during simulation [16].

When generating the simulation code, a symbolicLU routine should be used in place of the inverseimplied by equation (15). This allows the simulationcode to be assembled containing explicit differen-tial equations of the form x = f (x), where the col-umn matrix of state variables x contains both thegeneralized speeds and the position-level coordinates

x ={

pq

}(17)

2.6 DynaFlexPro

DynaFlexPro is a collection of Maple routines for sym-bolically formulating models of engineering systems.Its formulation procedure is based on linear graphtheory and the principle of orthogonality.

Because DynaFlexPro is implemented in Maple, theuser can perform additional operations on the govern-ing equations if he/she sees fit. All Maple’s symbolicmath commands are available, which are quite usefulfor certain applications. For example, taking symbolicderivatives of the governing equations can be benefi-cial for the computation of design sensitivities [17].

Full details for using DynaFlexPro and its graphicaluser interface, ModelBuilder, are available in the User’sManual [18].

3 PNEUMATIC TYRES IN A MULTIBODYSYSTEMS CONTEXT

Sayers and Han [6] outlined a number of tasks thatmust be completed in order to properly determine tyre

Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics JMBD160 © IMechE 2008

Page 7: Using graph theory and symbolic computing to generate -

Models for multi-body vehicle dynamics 345

forces and incorporate them into a complete vehiclemodel:

(a) define a point where the tyre forces will act on themulti-body model;

(b) determine an expression for the vertical force;(c) establish the vector directions for the x and y

components of the tyre forces;(d) determine expressions for the kinematic inputs

required by most tyre models;(e) use a tyre model to determine the magnitudes of

the remaining tyre forces and moments.

The following sections describe how these tasks areaccomplished in DynaFlexPro.

3.1 Define a point where the tyre forces will acton the multi-body model

Tyre models calculate the forces and moments that actat the contact patch between the tyre and the road(point P in Fig. 3). Unfortunately, it is inconvenient toapply forces to a vehicle model at point P as the tyrecontact patch is not a fixed point on the tyre.

DynaFlexPro adopts the common practice of apply-ing tyre forces and moments at the tyre centre (pointC in Fig. 3). Moving the point of force applicationintroduces additional moments that are dependenton the vector from the tyre centre to the tyre contactpatch, rP/C , as stated in equation (18)

F C = F P

M C = M P + rP/C × F P

(18)

Estimating rP/C requires some assumptions aboutthe shape of the tyre. DynaFlexPro assumes that thetire is a planar disc with a variable radius.

Fig. 3 Tyre forces applied to the wheel centre

3.2 Determine an expression for the vertical force

The normal force between the tyre and the road isrequired as an input to most tyre models. The com-mon practice of using a linear spring–damper analogyto estimate the normal force is adopted here. Inequation (19), δ is the penetration of the undeformedtyre into the ground, as shown in Fig. 4. The maxfunction is used to ensure that the force between thetyre and the road is always compressive and is zerowhen the tyre leaves the ground

Fz = max(kzδ + cz δ, 0) (19)

3.3 Establish vector directions for the X and Ycomponents of the tyre forces

The forces and moments calculated by the tyre modelsare resolved in the ISO coordinate system, which isshown in Fig. 5. In order to incorporate tyre forces and

Fig. 4 Planar disk approximate to locate point P

Fig. 5 ISO tyre axis system

JMBD160 © IMechE 2008 Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics

Page 8: Using graph theory and symbolic computing to generate -

346 C Schmitke, K Morency, and J McPhee

moments into our model, the orientation of the ISOcoordinate system for each tyre should be determined.

Symbolic expressions for the ISO unit vectors canbe generated using simple vector operations. The roadis assumed to be flat; therefore, the ISO Z unit vectoralways points straight up. The direction of the tyre’saxis of symmetry, which is specified by the user, is usedto calculate the ISO X unit vector: ux points forward inthe direction of wheel heading and is perpendicular toboth uz and the tyre’s axis of symmetry. The ISO Y unitvector defines the lateral direction for the tyre and ischosen to make the coordinate system right-handed

uz = k

ux = uSymAxis × uz

|uSymAxis × uz|uy = uz × ux

(20)

3.4 Determine expressions for the kinematicinputs required by most tyre models

DynaFlexPro assumes that tyre models require sevenvariables as input: normal force, longitudinal slip, slipangle, inclination angle, spin rate, effective rollingradius, and forward speed. Normal force has alreadybeen discussed. The others are commonly known askinematic tyre parameters because they depend on theposition and velocity of the tyre.

DynaFlexPro enables the user to determine the posi-tion, velocity, orientation, and angular velocity of anyframe in the system by using the GetFrameMotioncommand. In linear graph terms, GetFrameMotionuses branch transformations to return a symbolicexpression for the desired motion in terms of theprimary variables of the system. For example, Get-FrameMotion(‘w’, C) returns a symbolic expressionfor the angular velocity of node C, ωC , in terms ofthe primary modelling variables. The tyre compo-nent uses GetFrameMotion to extract expressions forthe position, orientation, velocity, and angular veloc-ity of the tyre centre. It then uses this informationto form symbolic expressions for the tyre’s kinematicparameters.

The inclination angle, γ , is a measure of how muchthe wheel is tilted away from a vertical plane, as shownin Fig. 5. The inclination angle may be found from geo-metric relations involving the tyre axis of symmetryand the ISO unit vectors.

γ = arcsin((uy × uSymAxis) · ux) (21)

The tyre’s forward speed is easily determined by tak-ing the component of the tyre centre velocity in the

ISO X direction

VxC = V C · ux (22)

The angular velocity of the tyre can be resolved intothree components, as shown in equation (23). Notethat for an inclined wheel, uSymAxis �= uy and so thesethree components of angular velocity are not necessar-ily orthogonal to each other. Nevertheless, with somesimple algebra, it is possible to extract an expressionfor the spin rate, �, given an expression for ωC and thedirection of the tyre axis of symmetry

ωC = ωxux + ωxuz + �uSymAxis (23)

The effective rolling radius, Reff , is defined as forwardspeed divided by spin rate for a free rolling wheel, asstated in equation (24). There is some question abouthow to define a free rolling condition. According to onedefinition, the longitudinal force produced by the tyremust be zero in a free rolling state. Because of the pres-ence of rolling resistance, a moment would need to beapplied to the tyre to reach the condition of longitudi-nal force equal to zero. It is more convenient to definefree rolling as a state for which no external momentsare applied to the wheel and for which there is somesmall negative longitudinal force. In practice, the twodefinitions of the free rolling condition are very close.Switching between the two results in a very small shiftin the longitudinal force curve. However, if the analystdesires a high level of detail in a braking or acceler-ation study, it is wise to ensure that the way he/shecalculates Reff is consistent with the way his/her tiremodel calculates longitudinal force

Reff = VxC

�(24)

As equation (24) is only valid for a freely rollingwheel, a method of estimating the effective rollingradius for all conditions is required. Reff usually liesbetween the unloaded radius and the loaded radius.DynaFlexPro gives the user three options:

(a) use the unloaded radius, Reff = runloaded;(b) use the loaded radius, Reff = |rP/C |;(c) use a formula suggested by Pacejka [19] and

presented in equation (25)

ρ = runloaded − |rP/C |Reff = runloaded −ρFz0

(D arctan

(B

ρ

ρFz0

)+F

ρ

ρFz0

)(25)

In equation (25), ρ is the tyre deflection, ρFzo is thetyre deflection at some nominal vertical force, andB, D, and F are the parameters that describe the tyreand are determined through experiment.

Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics JMBD160 © IMechE 2008

Page 9: Using graph theory and symbolic computing to generate -

Models for multi-body vehicle dynamics 347

The longitudinal slip ratio, S, is a measure of how fastthe tyre is spinning compared with the free rolling con-dition. During braking, the wheel spins slower than thefree rolling condition and longitudinal slip is negative.During acceleration, the wheel spins faster than thefree rolling condition and longitudinal slip is positive.DynaFlexPro uses the ISO definition of longitudinalslip, given by equation (26)

S = �Reff − VxC

|VxC | (26)

The slip angle, α, is the angle between the directionof wheel heading and the direction of wheel travel, asdepicted in Fig. 5. By default, DynaFlexPro generates asymbolic expression for slip angle based on the lateralvelocity at the tyre contact patch

α = −arctan(

VyP

|VxC |)

(27)

If a slow-moving tyre has a rapidly changing incli-nation angle, then it is possible for the contact patchto have a significantly higher lateral velocity than thetyre centre. In this case, it may be more accurate to usethe lateral velocity of point P in the expression for slipangle.

Tyre forces do not develop instantly, but build as thetyre rolls. The accepted approach for modelling thisbehaviour is to treat the delay as a first-order lag usinga parameter called relaxation length, which is similarto a time constant, except that it has units of length [6].

Rather than using tyre models with built-in dynamiclag, DynaFlexPro is designed to work with static(steady state) tyre models and uses separate relax-ation length equations to account for dynamic lag inthe slip parameters. This approach allows the users toselect an appropriate tyre model for their application,independent of the method used to introduce lag.

DynaFlexPro uses the relaxation length equationsproposed by Bernard and Clover [20] and shown inequations (28) and (29). Here, Blong is the longitudinalrelaxation length and Blat is the lateral relaxation length

dSdt

= �Reff − VxC

Blong− S|VxC |

Blong(28)

d tan(α)

dt= Vy

Blat− tan(α)|Vx|

Blat(29)

For steady-state conditions, equations (28) and (29)reduce to equations (26) and (27), respectively. Unliketheir steady-state counterparts, equations (28) and(29) can be used at zero velocity conditions (VxC = 0).

Dynamic lag of tyre forces is not always impor-tant. Users of DynaFlexPro can choose to calculateslip parameters using the steady-state equations (26)and (27) or the dynamic equations (28) and (29),depending on the goals of their study.

3.5 Use a tyre model to determine the magnitudesof the remaining tyre forces and moments

Many authors have proposed tyre models for vehicleacceleration, braking, and handling studies. A reviewof some of these models is given by Pacejka andSharp [21], and also by Blundell and Harty [22]. It isnot our intention to present any one tyre model indetail.

DynaFlexPro will support any tyre model as long asit is in the form shown in equation (30). The functioncan take seven parameters discussed earlier, as well asa list of tyre parameters, as input. It must return anarray of force and moment values.

ForceValues = f (Fz , Reff , VxC , �, S, α, γ )

Fx = ForceValues[1]Fy = ForceValues[2]Mx = ForceValues[3]My = ForceValues[4]Mz = ForceValues[5]

(30)

At present, the tyre component contains functionsfor Fiala, Calspan, and Pacejka 2002 tyre models. Usersmay use one of these available functions or developtheir own.

4 FORMULATION OF SIMULATION CODEFOR VEHICLES

The linear graph representation of the tyre compo-nent is shown in Fig. 6. Node G represents the inertialreference frame and node C represents the tyre cen-tre. There are two edges from the ground to the tyrecentre in each of the mechanical translational andmechanical rotational domains. One represents theinertial properties of the tyre and the other representsthe forces (or moments, in the case of the rotational

Fig. 6 Linear graph representation of tire component

JMBD160 © IMechE 2008 Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics

Page 10: Using graph theory and symbolic computing to generate -

348 C Schmitke, K Morency, and J McPhee

domain) that result from the interaction of the tyrewith the ground.

When the DynaFlexPro command BuildEQs is usedfrom a Maple worksheet, the governing equationsfor the vehicle model are generated. In these equa-tions, the components of the ISO unit vectors andrP/C appear as dummy variables, as do the compo-nents of the tyre forces and moments. The tyre forcesand moments appear as dummy variables becausethey must be solved for at simulation time using atire model function. The evaluation of the ISO unitvectors and of rP/C is deliberately delayed until sim-ulation time, because the symbolic expressions forthese variables are very large for any non-trivial vehicleand these expressions appear repeatedly in the sys-tem equations. In order to keep the system equationsto a manageable size, these expressions are not sub-stituted during the formulation process. This can alsolead to more efficient simulation code – within Maple,it is often more efficient (in terms of the number ofoperations in the generated equations) to run an opti-mization routine on a list of symbolic substitutions,rather than performing all of the substitutions andthen generating the optimized simulation code [23].

The tyre intermediate variables used for this workare listed in Table 4. It is impossible to predict a com-prehensive list of intermediate variables that includesthe inputs required for every conceivable tyre model,but this list is fairly extensive and should work for themajority of cases.

The expressions for variables towards the end ofthe list depend on the variables towards the top ofthe list. It is evident that certain variables must be

evaluated before others, as indicated by the pseudo-Gantt chart in Table 4. Longer bars do not necessarilyindicate that an expression takes longer to evaluate.They indicate an increased amount of freedom in theorder of evaluation. For instance, α must be evalu-ated towards the end of the list because it requiresseveral other intermediate expressions to be evaluatedbefore it.

When the DynaFlexPro command BuildSimCode isused from within a Maple worksheet, optimized sim-ulation code is generated in the form of a Maple,Matlab, or C procedure. This procedure can then beused in conjunction with a numerical integrator toobtain simulation results.

The simulation code follows the structure shown inFig. 7. The first part of the procedure involves cal-culation of important intermediate variables for eachtyre in the system. This is where the symbolic expres-sions discussed in sections 3.1 to 3.4 are placed, in theform of optimized code. The tyre intermediates may ormay not appear in the system equations directly. Forinstance, slip angle and inclination angle are only cal-culated, so that they can be passed to the tyre modelfunction and do not appear explicitly in the systemequations. The tyre model functions return numericvalues of forces and moments for each tire in the sys-tem. The current values of these forces and momentsare then used in the system equations, which areintegrated to give the vehicle state at the next timestep.

The evaluation of tyre intermediates and systemequations is highly optimized. This is becauseDynaFlexPro’s BuildSimCode command makes use

Table 4 Tyre component intermediate variables and possible orders of evaluation

Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics JMBD160 © IMechE 2008

Page 11: Using graph theory and symbolic computing to generate -

Models for multi-body vehicle dynamics 349

Fig. 7 Structure of simulation code produced with DynaFlexPro/tyre

of the Maple CodeGeneration package, which hasthe ability to identify repeated terms and minimizesthe computer resources necessary to do the requiredcalculations.

5 EXAMPLE PROBLEM

In this section, DynaFlexPro is used to generate amodel of a heavy-duty articulated vehicle. The vehi-cle chosen is a Timberjack grapple skidder that waspreviously modelled in MSC.ADAMS as part of a sta-bility study [24]. Figures 8 and 9 show pictures of the

Fig. 8 Timberjack forestry skidder

Fig. 9 ADAMS/view model of skidder

skidder and ADAMS model, respectively. The frame issplit into two halves that are connected by a revolutejoint, called the articulating joint. The vehicle steersby rotating the two halves of the frame with respectto each other [24]. There is no suspension, other thanthe large pneumatic tyres that rotate on axles that arerigidly attached to the frame.

Figure 10 shows a block diagram representation ofthe vehicle, created using the ModelBuilder graphicaluser interface of DynaFlexPro. Each block in the dia-gram represents a body, whereas each circle representsa body-fixed reference frame. Rigid bodies and flexi-ble beams can be created using simple drag and clickoperations, in tandem with drop-down menus. Bodies

JMBD160 © IMechE 2008 Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics

Page 12: Using graph theory and symbolic computing to generate -

350 C Schmitke, K Morency, and J McPhee

Fig. 10 DynaFlexPro ModelBuilder representation

can be connected to one another by a variety of con-nectors, including joints, springs, dampers, and forces,and are shown as lines in the block diagram. In Fig. 10,the front and rear halves of the chassis are connectedby a revolute joint, as are the four tyres to the chassishalves. The tyre components account for the inertialproperties of the tyres, as well as the applied tire forcesand moments.

The Timberjack skidder has ten degrees of free-dom: six for the three-dimensional motion of the frontchassis and one more for each of the tyres. The artic-ulated joint does not add a degree of freedom, as itsmotion is a prescribed function of time for varioussimulated manoeuvres. By selecting the front chassisand all revolute joints into the graph of the spanningtree, DynaFlexPro will use the corresponding ten mod-elling variables (and their derivatives) to construct thesystem equations. The modelling variables are

q = [x, y, z, yaw, pitch, roll, φ1, φ2, φ3, φ4]T

where the first six modelling variables refer to the posi-tion and orientation of the front half of the frame. Thelast four modelling variables refer to the spin of eachof the tyres in the system.

Note that this selection of coordinates yields apure set of ODEs – thus no constraint stabilizationtechniques are required when solving the system ofequations. Had absolute coordinates been used, atleast 36 modelling variables would have been required(six for each of the tyres, the front chassis, and the

rear chassis), thus necessitating that 36 dynamic equa-tions be coupled with 26 constraint equations. In thiscase, coordinate selection not only avoids DAEs, butalso reduces the number of generated equations by 52.In cases in which DAEs cannot be avoided, heuristicshave been developed for optimal tree selection [13].

The following options were specified for tyres inthe DynaFlexPro model and were meant to mimicthe tyre model used for the Timberjack skidder inMSC.ADAMS.

1. The effective rolling radius was set equal to theloaded radius.

2. Static equations were used for tyre slip parameters,rather than dynamic equations.

3. A Fiala tyre model was used to calculate forces andmoments generated at the tyre/road interface.

A lane change manoeuvre was simulated by specify-ing a sinusoidal input motion to the articulating joint.The sine function had an amplitude of 5◦ and a period

Fig. 11 Yaw rate versus time

Fig. 12 Roll angle versus time

Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics JMBD160 © IMechE 2008

Page 13: Using graph theory and symbolic computing to generate -

Models for multi-body vehicle dynamics 351

Fig. 13 Trajectory of front chassis centre

of 10 s. The initial forward velocity of the vehicle wasset to 10 m/s.

The DynaFlexPro model was exported from Maple inthe form of C-code and incorporated into a Simulink�

S-Function. The 10 s steering manoeuvre was simu-lated in 0.31 s. This time is the average of 5 runs inSimulink’s ‘accelerator’ mode. These simulations wererun on a 3.2 GHz Pentium 4 processor PC runningWin-dows XP operating system with 1 GB of RAM. Euler’smethod was used to integrate the ODEs describing thevehicle, and a constant step size of 1 ms was specified.This solver and step size are very typical for HIL appli-cations, as discussed in the literature [7, 25–27]. Thefact that this particular model executed 30 times fasterthan real-time is an encouraging result and testifies tothe efficiency of the simulation code that can be gen-erated for arbitrary topologies using a combinationof linear graph theory and symbolic computing. As apoint of comparison, the same computer took 1.31 s tosimulate the sine steer maneouver in ADAMS using theGSTIFF with SI2 formulation, while the DynaFlexPromode using Simulink’s implicit ODE15s solver, took0.047 s.

Results for the lane change manoeuvre are displayedin Figs 11 to 13. The shape of the yaw rate and roll angleresponses are similar to the steering input (sinusoidalwith a period of 10 s), whereas the position of the frontframe centre of mass in the x–y plane confirms thatthe vehicle is completing a lane change. Clearly, thereis excellent agreement between the DynaFlexPro andADAMS models of the vehicle.

6 CONCLUSIONS

A tyre component has been developed and imple-mented into a symbolic computer program for multi-body dynamics, DynaFlexPro, making it possible togenerate symbolic models and efficient simulationcode for vehicle dynamics.

To test the accuracy of these symbolic vehiclemodels, results for a heavy-duty articulated vehiclewere compared with that from an equivalent ADAMSmodel. Good agreement was observed.

One of the major advantages of symbolic models isthat they can be converted into efficient simulationcode, which makes real-time simulation possible andopens the door to a host of interesting applications. Inthe future, DynaFlexPro vehicle models may be usedfor hardware-in-the-loop applications such as driv-ing simulators and testing vehicle ECUs for stabilitycontrol.

ACKNOWLEDGEMENTS

The authors gratefully acknowledge the financial sup-port of this research by a Premier’s Research ExcellenceAward, by Waterloo Maple Inc., and by the Natu-ral Sciences and Engineering Research Council ofCanada.

REFERENCES

1 Hopkins, B. and Wilson, R. The truth about kõnigsberg.The College Mathematics Journal, 2004, 198–207.

2 Biggs, N. L., Lloyd, E. K., and Wilson, R. J. Graph theory:1736–1936, 1976 (Oxford University Press, New York).

3 McPhee, J., Schmitke, C., and Redmond, S. Dynamicmodelling of mechatronic multibody systems with sym-bolic computing and linear graph theory. Math. Comp.Model. Dyn. Syst., 2004, 10(1), 1–23.

4 Schmitke,C. Modelling multibody multi-domain systemsusing subsystems and linear graph theory. PhD Thesis,University of Waterloo, 2004.

5 Kortüm, W. and Sharp, R. S. (Eds) Multibody computercodes in vehicle system dynamics, 1993 (Lisse, Swetz, andZeitlinger, Amsterdam, The Netherlands).

6 Sayers, M. W. and Han, D. Generic multibody vehiclemodel for simulating handling and braking. Veh. Syst.Dyn., 1996, 25(Suppl), 599–613.

JMBD160 © IMechE 2008 Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics

Page 14: Using graph theory and symbolic computing to generate -

352 C Schmitke, K Morency, and J McPhee

7 Sayers, M. W. Vehicle models for RTS applications. Veh.Syst. Dyn., 1999, 32(4), 421–438.

8 Postiau, T., Sass, L., Fisette, P., and Samin, J.-C. High-performance multibody models of road vehicles: Fullysymbolic implementation and parallel computation.In the 20th International Congress of Theoretical andApplied Mechanics, Chicago, USA, 2000, pp. 57–83.

9 Vogt, H. S., Schmitke, C. C., Jalali, K., and McPhee, J. J.Unified modelling and real-time simulation of an electricvehicle. Int. J. Veh. Auton. Syst., 2008.

10 Andrews, G. and Kesavan, H. The vector-network model:a new approach to vector dynamics. Mech. Mach. Theory,1975, 10, 57–75.

11 Schmitke, C. and McPhee, J. Using linear graph theoryand the principle of orthogonality to model multibody,multi-domain systems. Adv. Eng. Inf., 2008, 22, 147–160.

12 Schmitke, C. and McPhee, J. Forming equivalent sub-system components to facilitate the modelling of mecha-tronic multibody systems. Multibody Syst. Dyn., 2005, 14,81–109.

13 Léger, M. and McPhee, J. Selection of modeling coor-dinates for forward dynamic multibody simulations.Multibody Syst. Dyn., 2007, 18, 277–297.

14 McPhee, J. Automatic generation of motion equations forplanar mechanical systems using the new set of ‘branchcoordinates’. Mech. Mach. Theory, 1998, 33,k 805–823.

15 Mitiguy, P. and Kane, T. Motion variables leading to effi-cient equations of motion. Int. J. Robot. Res., 1996, 15(5),522–532.

16 Baumgarte, J. Stabilization of constraints and integralsof motion in dynamical systems. Comput. Methods Appl.Mech. Eng., 1972, 1, 1–16.

17 Pesch, V. J. Optimization of planar mechanism kinemat-ics with symbolic computation. Master’s Thesis, Univer-sity of Illinois at Urbana-Champaign, 1994.

18 MotionPro Inc. DynaFlexPro User’s Manual, 2006(Maplesoft), available from http://www.maplesoft.com/dynaflexpro, 2006.

19 Pacejka, H. B. Tire and vehicle dynamics, 2002 (Societyof Automotive Engineers, Inc., Warrendale, PA).

20 Bernard, J. E. and Clover, C. L. Tire modelling for low-speed and high-speed calculations. SAE technical paper950311, 1995.

21 Pacejka, H. B. and Sharp, R. S. Shear force developmentby pneumatic tyres in steady state conditions: a reviewof modelling aspects. Veh. Syst. Dyn., 1991, 20(3-4), 121–176.

22 Blundell, M. and Harty, D. The multibody systemsapproach to vehicle dynamics, 2004 (Society of Automo-tive Engineers, Inc., Warrendale, PA).

23 Schmitke, C. and McPhee, J. Generating efficient equa-tions for dynamic simulation of electromechanicalmultibody systems using Maple, subsystem models,and linear graph theory. In Maple Summer Workshop,Waterloo, Ontario, 2004.

24 He,Y., Khajepour, A., McPhee, J., and Wang, X., Dynamicmodelling and stability analysis of articulated frame steervehicles. Int. J. Heavy Veh. Syst., 2005, 12(1), 28–59.

25 Elmqvist, H., Mattsson, S. E., Olsson, H., Andreasson, J.,Otter, M., Schweiger, C., and Brück, D. Realtime simu-lation of detailed vehicle and powertrain dynamics. SAEtechnical paper 2004-01-0768, 2004.

26 Rulka, W. and Pankiewicz, E. MBS approach to gener-ate equations of motion for hil-simulations in vehicledynamics. Multibody Syst. Dyn., 2005, 14(3–4), 367–386.

27 Schuette, H. and Waeltermann, P. Hardware-in-the-loop testing of vehicle dynamics controllers – atechnical survey. SAE technical paper 2005-01-1660,2005.

Proc. IMechE Vol. 222 Part K: J. Multi-body Dynamics JMBD160 © IMechE 2008