Pacejka MF - deriving peak slip

Started by
7 comments, last by adriansnetlis 7 years, 11 months ago

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.

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.

Hm.. This can't be done runtime:D

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

I want to find the point where it's the biggest possible value.

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.

OK! I am changing things a bit. Let's say I know the F output. How would I calculate the slip input at the specific F output?

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 :)

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.

This topic is closed to new replies.

Advertisement