Hi Everybody,
Well I finally got the mechanics of the suspension system working in my sim.
I have constrained joints, springs and dampers all working in perfect
harmony. I now get the correct pitch and roll from the car body when
cornering, accelerating and braking, which makes me happy :)
The next step is to calculate supension load correctly for inputting to the
Pacejka formulae. Until now, I've just been assuming that a quarter of the
car's weight acts at each wheel, but now I'm ready for something more
accurate. I have a couple of questions about this.
Firstly, I've seen spring rate mentioned a couple of times in relation to
calculating suspension load. What exactly is this? Is it just the spring
stiffness constant used in the spring formula (ie k in F = k*extension).
Secondly, assuming you've calculated the suspension load, then to calculate
the load on the wheel for Pacejka, is it just this value, or do you have to
add the weight of the wheel, axle etc to this? I would think this would be
the case, but I haven't seen any reference to this anywhere.
Thanks in advance,
Mike.
In the case that your suspension is not completly compressed.
The load on tire is equal to the suspension force. Neglecting tire spring
effect.
a simple exeprience : if the car is NOT moving at all, in equilibrium.
If you add all 4 suspensions force you must have
Ffl + Ffr + Frl + Frr = 9.81 * M
suspensions forces gravity force
because at equilibrium, Sum forces = 0
If your suspension is completly compressed it's more complicated, because in
this case the wheel could be consider to be rigidly attached to the car body. So
you need to compute it as a contact of your rigid body with the ground (
neglecting tire spring effect ), this must be easy with a constrained rigid body
model. Just add this contact in your constrained model and get the force result
.
btw, do you use Lagrange multiplier and Jacobian matrices ?
regards,
--
Sebastien TIXIER - Game Developer
Dynamics and Car Physics
http://www.eden-studios.fr
GPLRank Normal:-44.24 Monster:-124.44
Quoted text (11 lines)
> In the case that your suspension is not completly compressed. > > The load on tire is equal to the suspension force. Neglecting tire spring > effect. > > a simple exeprience : if the car is NOT moving at all, in equilibrium. > > If you add all 4 suspensions force you must have > > Ffl + Ffr + Frl + Frr = 9.81 * M > suspensions forces gravity forceQuoted text (10 lines)
> regards, > > > -- > Sebastien TIXIER - Game Developer > Dynamics and Car Physics > http://www.eden-studios.fr > GPLRank Normal:-44.24 Monster:-124.44 > >>Well I finally got the mechanics of the suspension system working in my sim.
>I have constrained joints, springs and dampers all working in perfect
>harmony. I now get the correct pitch and roll from the car body when
>cornering, accelerating and braking, which makes me happy :)
Congratulations, genious! :0)
Yes.
>Secondly, assuming you've calculated the suspension load, then to calculate
>the load on the wheel for Pacejka, is it just this value, or do you have to
>add the weight of the wheel, axle etc to this? I would think this would be
>the case, but I haven't seen any reference to this anywhere.
Most people don't talk about the "unsprung weight" here. You'll need the
vertical force from the sum of the suspension spring *and damper* force (from
the wheel velocity) as well, plus the weight of the wheel, axle, a-arm's, etc.,
I believe. It seems I read somewhere that an a-arm can act partially as sprung
and partially as unsprung weight depending on its orientation though... I
might have misunderstood that of course. I think you'll also need to make sure
that the "unsprung" weight is applied as a force in the proper direction, i.e.,
on a hill it will cause less tire load.
There's also a vertical force at the wheel that's a reaction through the
suspension linkages due to any longitudinal or lateral tire force as well,
called jacking. I'm not sure how this is handled in a constraint type system
like yours, although I bet Gregor Veble or Matt Jessick would know.
Todd Wasson
---
Performance Simulations
Drag Racing and Top Speed Prediction
Software
http://PerformanceSimulations.Com
Quoted text (8 lines)
>The next step is to calculate supension load correctly for inputting to the >Pacejka formulae. Until now, I've just been assuming that a quarter of the >car's weight acts at each wheel, but now I'm ready for something more >accurate. I have a couple of questions about this. > >Firstly, I've seen spring rate mentioned a couple of times in relation to >calculating suspension load. What exactly is this? Is it just the spring >stiffness constant used in the spring formula (ie k in F = k*extension).
Mike Stanley wrote:
> OK that gives you the force acting on the wheel from the suspension. But
> shouldn't the Pacejka formulae need the forces acting on the contact patch,
> ie suspension force + weight of wheel?
Yes,oups sry, i thought it was obvious.you must consider all forces at the
contact
patch.In many case using just the suspension load is a very good approximation
for
the load ;o) For our game i used this.
With a constraint body you could consider the forces needed to keep the wheel
from
penetrating in the ground. This is the REAL load ! The load IS the reaction from
the
ground to counter-act the other forces that could do the wheel penetrate the
ground
( err.. this sentences is surely not a correct english ;o) )
If you could do this it's perfect , because even if you simulate that something
press the
car from above and compress completly the suspensions, you'll have the right
load.
With a constrained model it's must be easy ;o) If you use another way to compute
the reaction force from the ground maybe impulse forces. It's a lot less easy.
You should consider the contact between ground and wheel as a resting contact
not a dynamic collision contact, well, that's my understanding of the problem
;o)
> Same question as before, but in reverse :) Shouldn't the spring force also
> play a part in this?
yes sure, in that case the suspension force keep constant.
I made some years ago a flexibal models. Every constrained stuff was modeled
with stiff spring and dampers. The main problem was to keep spring and damper
value coherent with the integration step time. If the step time was too big
compared to the spring/damper values, the objects exploded ;o)
A RK4 integrator was really helping ;o)
Well, the second method seems to me to be a specific case of the first method
and IMO seems quite physically correct ;o)
> Other than the oscillations with the LM method, both techniques look pretty
> much the same in practise. I'm currently going with the second approach,
> because it's working, but intend to switch to LM when I iron out the bugs,
> since this will give me a solution that will work in more general situations
> (eg modelling an articulated lorry :).
I also, implementing a constrained rigid body model, just looking the theory for
now :o)
I'll certainly use "Fast Contact Force Computation for Nonpenetrating Rigid
Bodies" from
David Baraff, that used very interesting stuff for resting contact, static and
dynamic frictions ;o)
regards,
--
Sebastien TIXIER - Game Developer
Dynamics and Car Physics
http://www.eden-studios.fr
GPLRank Normal:-44.24 Monster:-124.44
Quoted text (10 lines)
> > btw, do you use Lagrange multiplier and Jacobian matrices ? > > Yes and no. I eventually coded 2 methods for imposing constraints. The first > was the LM technique. I eventually got it working, except for the feedback > (spring) term that's used to correct for numerical drift. The spring force > itself was OK, but if I applied any non-zero damping to it the system > immediately became completely unstable :(. Not sure if this is just a bug in > my code (I'm still looking into it) but at the moment it works with a zero > damping term. The result works basically OK, except you get lots of ugly > little oscillations on the wheels.Quoted text (19 lines)
> The second attempt is non-physical and limited, but easy to implement. It's > based on the observation that the rigid constraints in the suspension system > will restrict the motion of the wheel centre to a 2D circle (relative to the > car body). I think this was pointed out by somebody in another thread > recently? So the idea is that firstly the wheel and car body are both moved > independently (as unconstrained rigid bodies). Then a force is applied to > the wheel to move it to a position that satisfies the constraints. This > position is determined by first projecting the wheel onto the plane defined > by the circular motion (the wheel is projected along the plane normal) and > then moving it the correct distance from the centre of the circle. > > Of course this means that any force applied to the wheel alone will > basically have no effect - it may move the wheel initially, but then the > constraint step will bring the wheel back to a legal position, without > affecting the position of the car body. To get around this, I have a force > transfer system between rigid joints - when a force is applied to a body, I > look at all bodies joined to this one by joint constraints. The proportion > of the force along the constraint vector is then transferred to the > connected body. Like I said, not physically correct but it looks OK.
>
> I made some years ago a flexibal models. Every constrained stuff wasmodeled
> with stiff spring and dampers. The main problem was to keep spring anddamper
> value coherent with the integration step time. If the step time was toobig
> compared to the spring/damper values, the objects exploded ;o)
> A RK4 integrator was really helping ;o)
Yeah, I'm thinking about moving to RK4, but I don't thing that's the problem
here. The system blows up however small the values of the damper and
timestep. Think it's more likely to be a bug of mine, but I'll stick with
what I've got for now and look at it again in a few weeks - I need to take a
step away from it for a while and do something easier (my brain needs a rest
:O)
> Well, the second method seems to me to be a specific case of the firstmethod
> and IMO seems quite physically correct ;o)
>
Hmmm .... not sure it is. But after posting this message last night I
realised I could combine the 2 techniques. I could use LM for the bulk of
it, then use the second technique in place of the spring term to correct for
numerical drift. But like I said, not for a few weeks ...
> I also, implementing a constrained rigid body model, just looking thetheory for
> now :o)
> I'll certainly use "Fast Contact Force Computation for NonpenetratingRigid
> Bodies" from
> David Baraff, that used very interesting stuff for resting contact, staticand
> dynamic frictions ;o)
>
Well, Baraff's the Daddy as far as this stuff's concerned :)
Good luck
Mike.
On Thu, 08 Nov 2001 07:54:22 +0100, Sebastien Tixier
<[email hidden]> wrote:
>With a constraint body you could consider the forces needed to keep the wheel
>from
>penetrating in the ground. This is the REAL load !
Note I myself let the wheel penetrate the ground a little (although
that may change ;-)), because that is how the tire gives reaction
responses (through F=k*tire_rate) to go up again. So it sinks in a
little into the tarmac.
>> Yes and no. I eventually coded 2 methods for imposing constraints. The first
>> was the LM technique....
>> The result works basically OK, except you get lots of ugly
>> little oscillations on the wheels.
Except from Sebastien's RK4 hint, what may also help is implicit
integration. Not that I'm experienced with that, but I'm going to try
it for damper forces, since these make my suspension system (just
Newtonian stuff) unstable. See Baraff's papers; he has one on
differential equations basics, and the next is implicit differential
integration.
This looks at values from the future perspective, and may help in
cases where a forward approach gets unstable quickly.
Also nice on the wishlist is a variable stepsize integrator.
>I also, implementing a constrained rigid body model, just looking the theory for
>now :o)
>I'll certainly use "Fast Contact Force Computation for Nonpenetrating Rigid
>Bodies" from
>David Baraff, that used very interesting stuff for resting contact, static and
>dynamic frictions ;o)
Do you know if any code has been published on this method? I'm
entirely unsure how to do the A11*x calculations, for starters. ;-)
Ruud van Gaal
Free car sim : http://www.marketgraph.nl/gallery/racer/
Pencil art : http://www.marketgraph.nl/gallery/
"Sebastien Tixier" <[email hidden]> wrote in message
news:[email hidden]...
> In the case that your suspension is not completly compressed.
>
> The load on tire is equal to the suspension force. Neglecting tire spring
> effect.
Plus the unsprung mass and the forces accelerating it. Neglecting the...
why??
I see it as the same as the no movement case: the wheels are not in motion
relative to the sprung mass.
> because in
> this case the wheel could be consider to be rigidly attached to the carbody. So
> you need to compute it as a contact of your rigid body with the ground (
> neglecting tire spring effect ), this must be easy with a constrainedrigid body
> model. Just add this contact in your constrained model and get the forceresult
Why?
Quoted text (10 lines)
> a simple exeprience : if the car is NOT moving at all, in equilibrium. > > If you add all 4 suspensions force you must have > > Ffl + Ffr + Frl + Frr = 9.81 * M > suspensions forces gravity force > > because at equilibrium, Sum forces = 0 > > If your suspension is completly compressed it's more complicated,On Fri, 9 Nov 2001 21:43:59 -0600, "Michael Young"
<[email hidden]> wrote:
It's more stable that way. If you have Racer, try debug.ini's
use_susp_force to test it using tire forces, or suspension forces.
Definite differences!
(will be much better though since the implicit integrator, ouch).
Right. Take a look at your model, and you may find that it's all a
bunch of steady state solutions used over small time steps. Nothing
dynamic about that. :)
Ofcourse, it may be more brilliant and I should shut up. ;-)
If the suspension bottoms out, it can go no further. Then it's like
there is NO suspension, just the tire hooked to the car directly. No
spring, so then it becomes a collision point, instead of a smoothly
varying differential function.
Compare it with the left side of the front bumper touching the ground.
Same thing as a bottoming suspension (except for the tire which is
still there and is a spring, but tires are quite stiff).
Ruud van Gaal
Free car sim : http://www.marketgraph.nl/gallery/racer/
Pencil art : http://www.marketgraph.nl/gallery/


































