03-26-2010, 09:03 AM,
|
|
NaN
Posting Freak
|
Posts: 2,024
Threads: 120
Joined: Jan 2010
|
|
I think I am going to replace the current hinge suspension by a double wishbone.
So instead of:
Code: [ suspension-front ]
spring-constant = 23000
bounce = 5000
rebound = 4500
travel = 0.24
max-compression-velocity = 10.0
camber = -1.0
caster = 1.0
toe = -0.5
anti-roll = 15000
[ suspension-FL ]
position = -0.66, 1.14, -0.15
hinge = 0,0,0
We will have:
Code: [ suspension-FL ]
anti-roll = 15000
spring-constant = 23000
bounce = 5000
rebound = 4500
travel = 0.24
camber = -1.0
toe = -0.5
frame-joint-upper = -0.30, 1.10, 0.10
frame-joint-lower = -0.20, 1.20, -0.10
hub-joint-upper = -0.55, 1.10, -0.30
hub-joint-lower = -0.65, 1.20, -0.60
The joint placement will define caster angle, kingpin inclination angle, scrub radius.
PS: Someone will have to fix the car files. :o
|
|
03-27-2010, 01:11 PM,
|
|
joevenzon
Administrator
|
Posts: 2,679
Threads: 52
Joined: Jun 2005
|
|
NaN Wrote:The problem with the suspension force is that we are mixing internal and external forces. The suspension force is an internal force acting between car chassis and wheel. It should not change the kinetic energy of the car(like car accelerating with zero driving torque). The only external forces acting on the car are the gravity, normal/friction forces at the tire contact patches and the aerodynamic drag. I've fixed it in the bullet branch. Should I patch the trunk too?
Only if it's a really quick fix.
Quote:I'd like to have the wheel camber depend on suspension geometry given a vertical wheel displacement. I don't know how to achieve it with the hinge model. I am not a Mechanical Engineer, so maybe I am missing the mark here. I will look for some suspension model papers.
Just thinking out loud here. There are a number of properties that change as the suspension is deflection: wheel position, spring force, camber, toe, damping, etc. Defining a hinge point makes it possible to model some wheel position change as suspension is displaced, but it's limited to an arc path. We allow changing spring force and damping with displacement by using linear interpolation (see the XS.car's spring-factor and damper-factor settings). We treat the camber and toe as constants. Since these are all functions of suspension displacement, it'd be easy to model camber, toe, and even wheel position by defining points and linearly interpolating over them, like we do with spring force and damper force. Using this I think we could simulate the widest possible range of suspension configurations.
|
|
03-28-2010, 12:09 PM,
|
|
portets
Member
|
Posts: 152
Threads: 12
Joined: Apr 2009
|
|
i have no knowledge of suspension models or suspension mathematics. but what i do know is that i want to make a 57' vw bug and i'm pretty sure the suspension/axle goes something like:
would it be very hard to code that? i might even have enough coding skills to make something like that by the time i make the model.
|
|
03-29-2010, 12:34 PM,
|
|
NaN
Posting Freak
|
Posts: 2,024
Threads: 120
Joined: Jan 2010
|
|
@portets
Don't worry the implementation is not the problem.
@joe
The lookup table would be certainly faster than having to calculate it directly.
What about allowing multiple link elements in the suspension definition. It would allow to implement any kind of suspension out there and switch to a constraint based(bullet) simulation if necessary.
Here a MacPherson strut suspension:
Code: [ spring-rear ]
spring-constant = 51137.3
spring-factor-1 = 0.085, 1.0
spring-factor-2 = 0.088, 1.2
bounce = 2788
rebound = 2912
damper-factor-1 = 0.08,1.0
damper-factor-2 = 0.1, 0.7
travel = 0.19
anti-roll = 6000.0
[ wheel-RR ]
position = 0.76, -1.28, -0.48
camber = -0.45
toe = 0.0
roll-height = 0.2935
mass = 18.14
restitution = 0.1
[ suspension-RR ]
spring-start = 0.5, -1.28, 0.0
spring-end = 0.6, -1.28, -0.4
link-1-start = 0.3, -1.28, 0.0
link-1-end = 0.7, -1.28, -0.5
The rotation axis is the link plane normal at the start of a link. A spring(coilover) is a link allowing compression(travel).
|
|
03-30-2010, 11:16 AM,
|
|
sebiastisch
Junior Member
|
Posts: 30
Threads: 3
Joined: Feb 2010
|
|
@NaN: When are you going to merge the branch back?
Do you think it makes sense to take your new car class and use it as base for the simulation?
Another Question: you are not going to model the unsprung masses, which would make the raycast superfluous, right?
|
|
03-30-2010, 02:15 PM,
|
|
NaN
Posting Freak
|
Posts: 2,024
Threads: 120
Joined: Jan 2010
|
|
Quote:Do you think it makes sense to take your new car class and use it as base for the simulation?
Please don't do it. It is very wip.
Quote:When are you going to merge the branch back?
My todo list:
- move physics into cardynamics (done)
- run cardynamics at 60/600Hz (almost done)
- run suspension simulation at 60Hz (wip)
- implement wheel cylinder collision shapes
- implement suspension geometry
- run cardynamics(bullet) in a separate thread
The unsprung weight thingy should be easy to hack into current suspension code neglecting chassis wheel coupling(that is OK as the chassis is like 60 times heavier than the wheel).
What I could do is to stabilize the branch, add unsprung mass and merge to trunk this weekend(cylinder wheels, suspension geometry would be missing). If Joe is OK with it?
|
|
03-31-2010, 06:06 AM,
|
|
sebiastisch
Junior Member
|
Posts: 30
Threads: 3
Joined: Feb 2010
|
|
Wow, I really appreciate your work there!
I know from my own experince that it is not easy to mess around with that physics stuff
I'm sorry, that I cannot help you as promised, but as this is my job I cannot always chose what work to do and at the moment, this is more a hobby in my spare time (AND coding at work and at home is no good at all ....)
|
|
|