Jump to content
  • Advertisement
Sign in to follow this  
adriansnetlis

Pacejka MF - deriving peak slip

This topic is 788 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Many people already know that Pacejka formula is:

Ffriction=D?sin(C?arctan(B?(slip+H)?E?(B?(slip+H)?arctan(B?(slip+H))))+V

And it results in curve similar to this:

Figure_2_pavement_friction_vs_tire_slip.

I want to find out how to obtain the "critical slip" point(with the peak "friciton") from given Pacejka values. It would be great if somebody could provide me generic equation. I would really figure it out by myself, but I am bad at trigonometrics and I don't understand the sin, tan etc. stuff. The derivation equation may be complex one, but it's critically importand for me. So, please, help.

(the equation must return the slip value at which it has the highest peak point. Basicly it must return x input at which y is the highest.

 

Thank you! :)

Oh, and I also wanna find out how high the y value is at that point. Although I think that it might be equal to D.

Edited by adriansnetlis

Share this post


Link to post
Share on other sites
Advertisement

I've done it by a simple iterative process. Start evaluating the curve until the difference among the latest calculated value and the previously calculated value is negative. The differences should be positive when the curve is increasing (pre-peak) but negative when the curve is decreasing (post-peak). You can assume the peak is around the point where the sign changes.

Share this post


Link to post
Share on other sites

My math is super rusty, but do you basically want when the slope is zero?  Take the derivative and solve for 0?

Share this post


Link to post
Share on other sites

Pages 16 to 20. This is how I would explain how to solve this kind of problem. You can try also googling around for root finding and bisection methods. These topics can be pretty difficult so be prepared to learn some new math concepts.

 

Alternatively, if you only need a couple values you can use desmos.com and then put in your Pacejka curve. If you click on your curve it will display maximal values for you, instead of writing code to do this yourself.

Share this post


Link to post
Share on other sites
you can't do that, or you can but no use. Observe that the curve falls back after the peak, so at least two slip value belong to the same F.

the best method is (I used it too) what Edy mentioned.

It becomes tricky if you use load sensitivity, because the curve changes shape.

I came up with a simple solution:
I sampled the max F's and corresponding slips at every 100N of Fz. That means 100slip values for the 0..10000N load.
In the sim I just interpollated between them and it gave a very good approximation.

For lateral slip it's more fun because the camber also affects the max Fy, but if you think of the bilinear filtering, yo'll be fine :)

Share this post


Link to post
Share on other sites

Hm... There is only one F at peak. There're no 2 peaks. As any function(e.g. y = x + 6) of input, constants and output has an inverse(x = y - 6), this one should have. Because there're some constants(numbers that are calculated out of function). They're B, C, D, E, H and V. And than there is input x. The function returns y. However, there must be a way to input x and return y. In most of cases this would result in a double set(meaning that it'd have multiple roots), but there is one stable case - the peak. Of course, this can still be broken with C > 3, but you don't use it anyways.

 

However, currently I am gone try a spring-based softbody method. If it won't give desired results, I'll try brush model. If I can manage it, but it doesn't give desired results, than I'm gone try finite-element softoby. If I can't manage to make this, than I return to Pacejka.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!