Here is a **description of the model of traction
force and skidding, etc**., that is implemented in ** move_car()**
(CARZ.CPP). Note that

We begin by erecting an x-y coordinate system with the positive **x
axis** along the car's velocity vector, and the **y
axis** to the driver's approximate left.

Let:

A fundamental vector relation is:

V= car's velocity vector, given P= car's pointing vector, unit vectorin direction car is pointing(these two are separated by the angle alpha, given) W= velocity vector of tire bottom surface wrt car = -P * vc( where"vc"is "velocity commanded", given )L= slip vector, velocity of tire bottom wrt track surface. F= force vector pushing the car; this is in direction opposite to L. Ft= x-component of F (t for tangential to path) Fn= y-component of F (n for normal to path) Lt= x-component of L Ln= y-component of L

Which just says that the tire velocity wrt track is the tire velocityL = V + W

wrt car plus the car velocity wrt track. By simple substitution,

this becomes:

Since the components of P and V are known, we can write:L = V - vc * P

We will useLt = v - vc * cosine(alpha);Ln = - vc * sine(alpha)

so the sliding speed of the tire is

force is determined by the friction model. We assume that this

force depends only on l, the slip speed.

f = u(l) where **u(l)** is the friction
function, given. hence:

Because the F and L vectors are parallel, the components of F areF = - u(l) * L / l

in the same proportion as the components of L. Hence:

The power consumedFt = -f * Lt/lFn = -f * Ln/l

to P, times vc. We compute this by treating the normal and

tangential components of F as two separate forces. The tangential

component of force has the angle alpha wrt the P vector, hence its

contribution to the power is Ft * cosine(alpha). The normal

component, being at right angles to the tangential component, has

contribution Fn * sine(alpha). This gives us:

That is the procedure currently used to calculate the force vectorpwr = vc * (Ft * cosine(alpha) + Fn * sine(alpha))

and the power consumption. It would be convenient if there was a

practical way to start with power or force as a given, and compute vc

and the force and slip vectors; unfortunately the only known

solution, due to Matt Timmermans, required solution of a fourth order

polynomial equation. I actually implemented a search procedure to

find vc when power is given, because the solution sent by Matt was

extremely complicated. (So is the search procedure, but it was

already available as a C function, needing relatively minor changes.)

The friction function currently used is of the form:

whereu(l) = FMAX * l / (K + l)

Any function that rises steeply from the origin and then levels out

and approaches a maximum might be used. It might be piecewise linear

with only two or three pieces, for example.

In order to have a model that more accurately simulates the real

world, especially paved surfaces, it will be necessary for the

traction force function to depend on more than just the slip speed,

I believe.

m