If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Display Modes |
#1
|
|||
|
|||
Engine and reaction torques and inertia
Hi all,
I have a simple vehicle simulator going for a game which I'm trying to move towards a more accurate model, taking into account torques and inertia down the drivetrain and reactions back from the road. I've been reading the archives and found some very helpful discussions from quite a while back, but I have a few lingering doubts which I was hoping someone could help me with. The area I'm having trouble with is working out the resulting angular acceleration of the drivetrain components once I have the drive and reaction torques. For now I am assuming no differential (which actually fits with the game - go-carting!). Assuming the clutch is fully engaged and no braking, what I have at the moment is the following: engine torque = throttle * torqueCurve(engine rotation speed) torque at drive axle = engine torque * gearRatio * transmissionEfficiency * finalDriveRatio wheel drive torque = 0.5 * torque at drive axle For the wheels and tires, I'm not using full-blown Pacejka yet but I do have a Pacejka-like curve defined which maps slip ratio to longitudinal force. I'm only worried about straight-line behaviour for now friction force = slipRatioCurve(wheel slip ratio) * wheel load reaction torque = -friction force * wheel radius So I end up with a drive torque and a reaction torque at the wheel, but I'm not sure how to apply/combine these to get the angular acceleration. Do I need to simply add the torques and use the resulting torque to accelerate the drivetrain, where the effective inertia from the wheels' point of view is: inertia of drive wheels + inertia of driveshaft * finalDriveRatio^2 + gear inertia * (gearRatio + finalDriveRatio)^2 + engineInertia * (gearRatio + finalDriveRatio)^2 So angular acceleration = (driveTorque + reactionTorque) / effective inertia (where reactionTorque opposes driveTorque) Does this sound right? Am I even close? Thanks, James |
Ads |
#2
|
|||
|
|||
Engine and reaction torques and inertia
> engine torque = throttle * torqueCurve(engine rotation speed)
> torque at drive axle = engine torque * gearRatio * > transmissionEfficiency * finalDriveRatio > wheel drive torque = 0.5 * torque at drive axle You're assuming each wheel get's equal torque? > do have a Pacejka-like curve defined which maps slip ratio to > longitudinal force. > drive torque + reaction torque When the reaction torque is less than the drive torque, the tires are spinning and accelerating. The net torque, drive - reaction, divided by the angular inertia of the tires, drivetrain, and engine determines the rate of angular acceleration. Normally the drive torque falls off at partial throttle once the engine reaches some rate of rotation (rpm), or the engine hits the rev-limiter. From what I understand, Pacejka doesn't deal well with static to dynamic or dynamic to static friction situations, as these require seperate curves (once slipping, the reduced reaction force on the tires from slipping has to be lowered further still before the transition from dynamic to static friction occurs). The other issue with Pacejka is slow speeds, or spinning the tires forwards when stopped or moving backwards, or simply stopped on a banked or angled (hill) section of track. |
#3
|
|||
|
|||
Engine and reaction torques and inertia
Thanks for your response Jeff!
> You're assuming each wheel get's equal torque? In the absence of a differential (see my original post) this must happen mustn't it? > When the reaction torque is less than the drive torque, the tires > are spinning and accelerating. The net torque, drive - reaction, > divided by the angular inertia of the tires, drivetrain, and > engine determines the rate of angular acceleration. Normally > the drive torque falls off at partial throttle once the engine > reaches some rate of rotation (rpm), or the engine hits the > rev-limiter. I have the drive torque falling off according to a pretty standard curve so that part is fine. When I try this though, what I seem to find is that when accelerating the reaction torque very quickly exceeds the drive torque, so the kart drives off backwards. If say after one timestep the engine has accelerated the wheels to produce a 0.01 slip ratio which on my curve comes out at about 0.1 Fx/Fn, so with say 400N load on the wheel this is a 40N longitudinal force per wheel. If I use this to generate the reaction torque (ie multiply by wheel radius) this seems to exceed the drive torque pretty easily. My engine data are based on some torque curves for a go-kart engine I found on a manufacturer website so I would have thought they were reasonable. Are my timesteps simply too large? I'm running it at 30Hz at the moment (there's no suspension so I thought this would do for now). > From what I understand, Pacejka doesn't deal well with static to > dynamic or dynamic to static friction situations, as these require > seperate curves (once slipping, the reduced reaction force on the > tires from slipping has to be lowered further still before the > transition from dynamic to static friction occurs). The other > issue with Pacejka is slow speeds, or spinning the tires forwards > when stopped or moving backwards, or simply stopped on a banked > or angled (hill) section of track. I'm not using Pacejka, but I have a curve relating slip ratio to longitudinal force which is shaped similarly to Pacejka (fairly standard I think, rises more or less linearly to a peak at 0.1 slip, then falls off with increasing slip). I have some low speed handling based on SAE950311 in my slip ratio calculation, but the issue seems to be that the slip ratio very quickly reaches a value approaching my optimal slip ratio and therefore a large longitudinal force is generated, which generates a large reaction torque on the wheels making them spin backwards, which generates an even larger longitudinal force backwards. I've obviously got something wrong but I'm not sure what it is :/ Thanks, James |
#4
|
|||
|
|||
Engine and reaction torques and inertia
> after one timestep the engine has accelerated the wheels to produce a
> 0.01 slip ratio which on my curve comes out at about 0.1 Fx/Fn, so > with say 400N load on the wheel this is a 40N longitudinal force per > wheel. If I use this to generate the reaction torque (ie multiply by > wheel radius) this seems to exceed the drive torque pretty easily. Which sounds like a problem. The torque from the engine is multiplied (minus losses) to the driven tires, and the resultant driven tire torque divided by the radius is the force the tire tries applies to the pavement, except during the dynamic period where the tire's slip ratio is changing. If this force exceeds the maximum grip, then the tires slip and accelerate. You could keep adjusting the slip ratio until the Pacejka calculated force agrees with the engine generated force for each step. Sort of like predictor + corrector numerical intergration. http://en.wikipedia.org/wiki/Predictor-corrector http://en.wikipedia.org/wiki/Numeric...tial_equations |
#5
|
|||
|
|||
Engine and reaction torques and inertia
After re-doing my clutch model which left something to be desired, I
retried my initial ideas and it worked much better. However, I've come to the conclusion that I really need to run the simulation at a higher frequency; 30Hz doesn't seem to be enough for the slip ratio calculations to be stable. I've had some correspondence by email that also suggested this. A predictor-corrector might help to some degree as this effectively artificially creates a higher simulation frequency but I still think a higher simulation rate overall is necessary. Unfortunately in the environment I'm working in I can't easily adjust the timestep so I'll need to make some changes to try it out. Thanks very much for your help though! |
#6
|
|||
|
|||
Engine and reaction torques and inertia
On Dec 1 2008, 10:16*am, jlevick > wrote:
> So I end up with a drive torque and a reaction torque at the wheel, > but I'm not sure how to apply/combine these to get the angular > acceleration. Do I need to simply add the torques and use the > resulting torque to accelerate the drivetrain, where the effective > inertia from the wheels' point of view is: > > inertia of drive wheels + inertia of driveshaft * finalDriveRatio^2 + > gear inertia * (gearRatio + finalDriveRatio)^2 + engineInertia * > (gearRatio + finalDriveRatio)^2 > > So angular acceleration = (driveTorque + reactionTorque) / effective > inertia (where reactionTorque opposes driveTorque) > > Does this sound right? Am I even close? > > Thanks, > James Yes, that's right. Just add the torques together and divide by the effective inertia. |
#7
|
|||
|
|||
Engine and reaction torques and inertia
On Dec 2 2008, 8:12*am, jlevick > wrote:
> Thanks for your response Jeff! > > > You're assuming each wheel get's equal torque? > > In the absence of a differential (see my original post) this must > happen mustn't it? > If you're simulating a go-kart with a solid rear axle, then you can just treat the whole axle as a single rotating "thing" with its own effective inertia including whatever gearing you wanted with the other shafts and so forth that are attached to it. Then assign both tires to this same angular velocity and feed it to your tire model for the next iteration. For the front tires of course you'd just use their own inertias and have independent angular velocities as you're undoubtedly already doing. Things are nice and simple when there aren't any diffs in the mix. :-) > > When the reaction torque is less than the drive torque, the tires > > are spinning and accelerating. The net torque, drive - reaction, > > divided by the angular inertia of the tires, drivetrain, and > > engine determines the rate of angular acceleration. Normally > > the drive torque falls off at partial throttle once the engine > > reaches some rate of rotation (rpm), or the engine hits the > > rev-limiter. > > I have the drive torque falling off according to a pretty standard > curve so that part is fine. When I try this though, what I seem to > find is that when accelerating the reaction torque very quickly > exceeds the drive torque, so the kart drives off backwards. If say > after one timestep the engine has accelerated the wheels to produce a > 0.01 slip ratio which on my curve comes out at about 0.1 Fx/Fn, so > with say 400N load on the wheel this is a 40N longitudinal force per > wheel. If I use this to generate the reaction torque (ie multiply by > wheel radius) this seems to exceed the drive torque pretty easily. My > engine data are based on some torque curves for a go-kart engine I > found on a manufacturer website so I would have thought they were > reasonable. Are my timesteps simply too large? I'm running it at 30Hz > at the moment (there's no suspension so I thought this would do for > now). > Oh yes, 30Hz is way too large of a time step for a car simulation, especially a kart drivetrain. I run my simulations at 250 or 333Hz. With higher frequencies you'll still have oscillations, but they get smaller with increasing frequency. I run my drivetrain and tire simulation at a higher frequency (just an inner loop of a few cycles depending on what works well, and only if it's really needed). If I recall correctly, that SAE paper you mentioned covers the relaxation approach. If you implement that or something similar and tune it well, it should reduce the oscillations. Several simulators seem quite happy with 100Hz so long as you run the drivetrain in a loop at a higher frequency, mine included, although it seems to feel nicer at 250+. For the drivetrain you might try 300-500Hz or so. > > From what I understand, Pacejka doesn't deal well with static to > > dynamic or dynamic to static friction situations, as these require > > seperate curves (once slipping, the reduced reaction force on the > > tires from slipping has to be lowered further still before the > > transition from dynamic to static friction occurs). The other > > issue with Pacejka is slow speeds, or spinning the tires forwards > > when stopped or moving backwards, or simply stopped on a banked > > or angled (hill) section of track. > > I'm not using Pacejka, but I have a curve relating slip ratio to > longitudinal force which is shaped similarly to Pacejka (fairly > standard I think, rises more or less linearly to a peak at 0.1 slip, > then falls off with increasing slip). I have some low speed handling > based on SAE950311 in my slip ratio calculation, but the issue seems > to be that the slip ratio very quickly reaches a value approaching my > optimal slip ratio and therefore a large longitudinal force is > generated, which generates a large reaction torque on the wheels > making them spin backwards, which generates an even larger > longitudinal force backwards. I've obviously got something wrong but > I'm not sure what it is :/ > > Thanks, > James Matt Jessick used to call this the "bang bang" problem. Wait until you try to get your clutch to lock :-) Anyway, just crank up the frequency and it will get better. Starting from rest will require a relaxation approach of some kind. A quick and easy way to get around this is to switch to a different slip ratio calculation at low speed. One based on the velocity difference instead of the ratio. Then, at some low speed, you switch to the correct slip ratio calculation. Better yet is to do both calculations and then use a weighted average so it transitions somewhat smoothly. It's not perfect, but if you play with it enough most people won't ever notice the model switching unless they're really looking for it. I wrote the physics engine for Virtual RC Racing. You think kart tires are hard to deal with? Try inertias of almost 0... :-P |
#8
|
|||
|
|||
Engine and reaction torques and inertia
teTodd Wasson wrote:
> On Dec 2 2008, 8:12 am, jlevick > wrote: >> Thanks for your response Jeff! >> >>> You're assuming each wheel get's equal torque? >> In the absence of a differential (see my original post) this must >> happen mustn't it? >> > > If you're simulating a go-kart with a solid rear axle, then you can > just treat the whole axle as a single rotating "thing" with its own > effective inertia including whatever gearing you wanted with the other > shafts and so forth that are attached to it. Then assign both tires > to this same angular velocity and feed it to your tire model for the > next iteration. For the front tires of course you'd just use their > own inertias and have independent angular velocities as you're > undoubtedly already doing. > > Things are nice and simple when there aren't any diffs in the mix. :-) > > >>> When the reaction torque is less than the drive torque, the tires >>> are spinning and accelerating. The net torque, drive - reaction, >>> divided by the angular inertia of the tires, drivetrain, and >>> engine determines the rate of angular acceleration. Normally >>> the drive torque falls off at partial throttle once the engine >>> reaches some rate of rotation (rpm), or the engine hits the >>> rev-limiter. >> I have the drive torque falling off according to a pretty standard >> curve so that part is fine. When I try this though, what I seem to >> find is that when accelerating the reaction torque very quickly >> exceeds the drive torque, so the kart drives off backwards. If say >> after one timestep the engine has accelerated the wheels to produce a >> 0.01 slip ratio which on my curve comes out at about 0.1 Fx/Fn, so >> with say 400N load on the wheel this is a 40N longitudinal force per >> wheel. If I use this to generate the reaction torque (ie multiply by >> wheel radius) this seems to exceed the drive torque pretty easily. My >> engine data are based on some torque curves for a go-kart engine I >> found on a manufacturer website so I would have thought they were >> reasonable. Are my timesteps simply too large? I'm running it at 30Hz >> at the moment (there's no suspension so I thought this would do for >> now). >> > > Oh yes, 30Hz is way too large of a time step for a car simulation, > especially a kart drivetrain. I run my simulations at 250 or 333Hz. > With higher frequencies you'll still have oscillations, but they get > smaller with increasing frequency. I run my drivetrain and tire > simulation at a higher frequency (just an inner loop of a few cycles > depending on what works well, and only if it's really needed). If I > recall correctly, that SAE paper you mentioned covers the relaxation > approach. If you implement that or something similar and tune it > well, it should reduce the oscillations. > > Several simulators seem quite happy with 100Hz so long as you run the > drivetrain in a loop at a higher frequency, mine included, although it > seems to feel nicer at 250+. For the drivetrain you might try > 300-500Hz or so. > >>> From what I understand, Pacejka doesn't deal well with static to >>> dynamic or dynamic to static friction situations, as these require >>> seperate curves (once slipping, the reduced reaction force on the >>> tires from slipping has to be lowered further still before the >>> transition from dynamic to static friction occurs). The other >>> issue with Pacejka is slow speeds, or spinning the tires forwards >>> when stopped or moving backwards, or simply stopped on a banked >>> or angled (hill) section of track. >> I'm not using Pacejka, but I have a curve relating slip ratio to >> longitudinal force which is shaped similarly to Pacejka (fairly >> standard I think, rises more or less linearly to a peak at 0.1 slip, >> then falls off with increasing slip). I have some low speed handling >> based on SAE950311 in my slip ratio calculation, but the issue seems >> to be that the slip ratio very quickly reaches a value approaching my >> optimal slip ratio and therefore a large longitudinal force is >> generated, which generates a large reaction torque on the wheels >> making them spin backwards, which generates an even larger >> longitudinal force backwards. I've obviously got something wrong but >> I'm not sure what it is :/ >> >> Thanks, >> James > > Matt Jessick used to call this the "bang bang" problem. Wait until > you try to get your clutch to lock :-) > > Anyway, just crank up the frequency and it will get better. Starting > from rest will require a relaxation approach of some kind. A quick > and easy way to get around this is to switch to a different slip ratio > calculation at low speed. One based on the velocity difference > instead of the ratio. Then, at some low speed, you switch to the > correct slip ratio calculation. Better yet is to do both calculations > and then use a weighted average so it transitions somewhat smoothly. > It's not perfect, but if you play with it enough most people won't > ever notice the model switching unless they're really looking for it. > I wrote the physics engine for Virtual RC Racing. You think kart > tires are hard to deal with? Try inertias of almost 0... :-P > test |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Reaction skills^2.... | Willem-Jan Markerink | 4x4 | 2 | March 11th 07 06:59 PM |
I need torques specs and instructions for tightening down a VR6 Head on a 2000 GTI | sc | VW water cooled | 2 | April 28th 06 11:45 PM |
Test your reaction time | gpsman | Driving | 3 | April 21st 06 11:04 PM |
Lane Inertia | Larry Scholnick | Driving | 2 | February 14th 06 03:11 AM |
Engine Inertia | Ettore Pancini | Simulators | 5 | April 4th 05 06:42 PM |