![]() |
Wheel position and suspension travel - Printable Version +- Forums (https://www.vdrift.net/Forum) +-- Forum: Community (https://www.vdrift.net/Forum/forumdisplay.php?fid=3) +--- Forum: Cars & Tracks (https://www.vdrift.net/Forum/forumdisplay.php?fid=11) +--- Thread: Wheel position and suspension travel (/showthread.php?tid=972) Pages:
1
2
|
Wheel position and suspension travel - joevenzon - 07-10-2008 I'm not sure I understand exactly what the current Vamos code does, so I'm starting from scratch with how I want the refactor to work regarding wheel position, suspension hinge, and suspension travel. What I'm thinking makes the most sense is the following: the wheel position that's specified in the car file is the nominal wheel position when the car is sitting stationary (so, the suspension is compressed under the weight of the car). The travel that's specified in the car file is the distance that the suspension can be further compressed past the nominal wheel position until wheel travel stops. Note that this would mean that "zero travel" is actually at a compressed position relative to where the wheel would be in zero gravity. The wheel travels on an arc around the suspension hinge point as specified in the car file. This is difficult to describe without a diagram. Does it make sense, or should I try to draw one up? Does this description jive with how people normally talk about suspension travel? - zimluura - 07-11-2008 i've been thinking about suspension a little bit after reading the a big thread on here. i was pondering how to get accurate hinge points from the physical hinges & springs that suspensions actually have, 'cause it's probably easier to get accurate data based on the physical hinges. seems like triginometry would be able to do that, but i've got no idea how hard it would be. i'm also still in favor of a way to draw suspension and weight points in the game engine so car data can be written more accurately. my gut says having the car with no weight on it's wheels should be the wheel position, and for car designing we should just compensate by stiffening/slackening springs to get the height correct, again to push car data towards realism. just my thoughts on the matter, and i am in no way an expert. i did a little bit of source-diving on the old branch, after the refactor is done i'll try to do some more. - cologne - 07-15-2008 i've been thinking about suspension, also... I think there is a problem in current simulation We define wheel-position, travel and stiffness. Real suspension does have a spring-force, when in down-position! So the springforce isn´t zero. The best would be, to define a zero-Position of the wheel relative to the car body. this should be the desired Position when the car stands still. Additionally we need a negative and a positive travel. The spring-stiffness - linear or a function - should be load with the wheel load. This should be the zero-point for the zero-Position of the wheel of the wheel. - joevenzon - 07-15-2008 Currently I think Vamos works as zimluura wants... the wheel position you define in the .car file is the zero gravity position (where the wheel is if the car is lifted out of the air), and then the travel is how far the springs can compress above that position. So, normally when the car is just sitting there the springs are compressed maybe half way to the travel limit and the wheel position will be higher than what's in the car file (all depending on spring stiffness and body weight). Maybe I'll make it so you can specify things both ways (as zimluura wants and as you want). What different type of spring functions do we need besides linear? - cotharyus - 07-15-2008 Remember Joe, not all springs use a straight linear rate - some springs use a compound or dual rate, where you actually have a lighter spring to keep things smooth to a point, then a stiffer spring to give it guts if you exceed a certain amount of travel. In general, as far as I know, this only applies to rally and some specialized off road (baja, dakar) vehicles, but I think everyone has always agreed that such tracks and vehicles would be fun to have, so lets leave an allowance for them. - cologne - 07-16-2008 Quote:then the travel is how far the springs can compress above that position. This implicit says there is no spring-force on the lifted out wheel But the values are Wheel lifted out static_wheelload = 0; springforce_min > 0; travel = 0; Wheel in defined position springforce_zero = f( travel=0 ); static_wheelload = f(springtravel_zero ); Wheel in upper position springforce_max >0; travel = max; where springforce = f( travel ); if linear springforce = f( travel ) = stiffness * travel; -------- proposal travel_negative = 5 defined frome the static wheelposition downwards travel_positive = 10 defined frome the static wheelposition upwards springtype = linear define the type of spring normalized to the wheel linear_stiffness = 20000 define parameter for linear type During car initialization compute one time static_wheelload = f(springtravel_zero ); - joevenzon - 07-25-2008 Okay, it took me a few days but I think I see what you're saying now. You're saying that with the car lifted in the air the wheel goes to the negative travel limit, which isn't necessarily where the spring force is zero. - cologne - 07-26-2008 Quote:'re saying that with the car lifted in the air the wheel goes to the negative travel limit, which isn't necessarily where the spring force is zero. That the point! - cologne - 09-07-2008 @joe I tend to prefer a solution with interpolation points as used for the torque-curve spring-xx = m, N Another similar proposal defines the linear springrate as before, but allows additional factors spring-constant = 600000 spring-factor-00 = 0.05, 1.1 spring-factor-01 = 0.10, 2.2 This means 5 cm travel x 600000 x 1.1 => force This means 10 cm travel x 600000 x 2.2 => force The same can be used for damperforces bounce = 4000 rebound = 12000 damper-factor-00 = 5, 0.5 damper-factor-01 = 10, 1.6 I find these solutions good implementable, as well for the tune-up people. - joevenzon - 09-07-2008 That does seem implementable. I'll take a look at it more later (still have a lot of more basic stuff to finish up: anti-roll, camber/caster, toe). By the way, I implemented the suspension hinge in the refactor today. I did a quick test of anti-dive and it seemed to work properly. - stan.distortion - 07-20-2009 Bringing this back up more to note down a few thoughts than to point out any issues, please forgive me if I start talking a load of crap ![]() Rising rate springs has been mentioned, has this been implemented at all? Also on the same track is damper rates, there is a fairly good graph here: EDIT: dead link Googling images for "shock dyno" turned up quite a few more. I would imagine this would need something similar to the engine rpm-torque table, would it be feasible to implement that? Another thing with spring rates is bump stops and it's a big thing. Rallying regulations used to (and may still) require manufacturers to use standard springs, they got around it by using the bump stops as the spring. Its just a block of rubber so its more or less an exponential curve for the rate but implementing it would probably mess up the whole zero position at the top of travel thing. On the lower limit of suspension travel, its generally done with an almost rigid stop, usually a strap on a live axle and built into the shock for most other types. Usually there is about half an inch of give which could be the same for all cars without causing any trouble. For the hinge points, its already been said that this is a very basic implementation. My thoughts on a slightly more complicated way of working it out is 2 hinge points, the first for the camber rotation which is generally aimed at the contact patch of the opposite tyre, in effect it tries to behave like a live axle. The second hinge point relates to the movement of the contact patch with relation to suspension travel which generally pushes the contact patch out as the wheel rises on modern cars. This creates a kind of anti-roll behavior built into the suspension and is generally close to the center of gravity. It's the reason most modern cars are comfortable but feel very planted on the road and a lot of older cars (beetle and triumph spitfire for example) have really screwed up suspension. I think that would give a more accurate (but still wrong) representation of suspension movement without getting into the huge complication of mathematical representations of every possible suspension configuration. cheers - stan.distortion - 07-20-2009 Tried something with the damper effects to give a more realistic curve, carsuspension.h@207: Code: ///compute the suspension force for the given time interval ![]() cheers - joevenzon - 07-22-2009 stan.distortion Wrote:Rising rate springs has been mentioned, has this been implemented at all? Nope. :-( Quote:Also on the same track is damper rates, there is a fairly good graph here: Yep, that's feasible. Quote:Another thing with spring rates is bump stops and it's a big thing. Rallying regulations used to (and may still) require manufacturers to use standard springs, they got around it by using the bump stops as the spring. Its just a block of rubber so its more or less an exponential curve for the rate but implementing it would probably mess up the whole zero position at the top of travel thing. A bumpstop could definitely be added; wouldn't be too tough. Quote:For the hinge points, its already been said that this is a very basic implementation. My thoughts on a slightly more complicated way of working it out is 2 hinge points, the first for the camber rotation which is generally aimed at the contact patch of the opposite tyre, in effect it tries to behave like a live axle. That could be done. Right now the camber doesn't change as the suspension compresses; only the wheel/contact patch movement is implemented. - joevenzon - 08-01-2009 stan.distortion Wrote:Also on the same track is damper rates, there is a fairly good graph here: Okay, this is implemented in R2523. I implemented it as cologne suggested. Here's an example (this goes in the suspension-front and suspension-rear sections): Code: damper-factor-1 = 0.08,1.0 - joevenzon - 08-01-2009 stan.distortion Wrote:Rising rate springs has been mentioned, has this been implemented at all? Yes, in R2524. :-) Code: spring-factor-1 = 0.052, 1.0 |