How to Calculate the Braking Momentum on a Wheel?

Click For Summary
The discussion focuses on calculating the torque produced by brake pads on a hollow-cylinder wheel model. The user seeks to express this torque, initially referring to it as momentum, which leads to clarification that torque is the correct term. Key equations for torque and moment of inertia are shared, emphasizing the relationship between force, distance from the axis, and angular acceleration. The conversation also touches on the effects of static friction and the importance of considering forces acting on the wheel, especially in the context of a vehicle's braking system. The user plans to explore how various factors, including temperature and friction, influence stopping distance.
  • #121
What I see that is relevant in that code segment is:
Code:
while v > limite_zero:
    t = t + dt
    theta = theta + x / rayon_pneu * dt
    dv = dt * (pression_freins * 2 * surface_plaquette * rayon_frein * theta) / (masse + 4 * moment_inertie_roue / rayon_pneu**2)
    v = v - dv
    x = x + v * dt
So you are counting up ##t## at an even rate. That seems fine.
But you are counting up theta at an accelerating rate. That seems broken. You are multiplying incremental time by current position instead of multiplying incremental time by current velocity.

You have also not exported the constant sub-expression outside of the main loop. But that is just a performance thing.

Wait a minute -- you have acceleration depending on theta. That's flat wrong.
 
Physics news on Phys.org
  • #122
Yes, I told you everything in this part is messed up
I am currently sick, and everything in those two lines in actually messed upNow I just want to get an expression of ##\text{d}v## in which I get rid of ##\theta## so that I can use it in this piece of code
 
  • #123
ROOT0X57B said:
Now I just want to get an expression of ##\text{d}v## in which I get rid of ##\theta## so that I can use it in this piece of code
dv = a * dt
 
  • #124
jbriggs444 said:
dv = a * dt
Yes...but I don't have any acceleration expression here
Do you mean I should use Newton's second law ?
 
  • #125
ROOT0X57B said:
Yes...but I don't have any acceleration expression here
Do you mean I should use Newton's second law ?
I'd already given you ##a## previously$$a = \frac{F_e}{M_e}$$I'd already given you ##F_e## and ##M_e## previously. Both are constants that can be calculated from the givens of the problem.
 
  • #126
Thanks again!

Yes you have given me
##\displaystyle F_e = n_\text{wheels}F_B \frac{R_B}{R_\text{ext}}##
##\displaystyle M_e = n_\text{wheels}m_\text{wheels}/2##

If I understand well ##n_\text{wheels}## is the number of wheels involved

If so, is your ##M_e## equal to my ##M_eq## ?
##\displaystyle M_e = n_\text{wheels}m_\text{wheels}/2##
##\displaystyle M_{eq} = M + 4 \frac{I}{{R_{ext}}^2}##

At least your ##F_e## is equal to my ##E_B## (same expression)

Your post feels like you're a little bit upset, please excuse my dumbness (probably due to my illness thought)
 
  • #127
ROOT0X57B said:
Thanks again!

Yes you have given me
##\displaystyle F_e = n_\text{wheels}F_B \frac{R_B}{R_\text{ext}}##
##\displaystyle M_e = n_\text{wheels}m_\text{wheels}/2##
One moment while I scroll back to check. The formula for ##M_e## above would count just the wheels and not the car. Surely I wouldn't have said that. [Scrolls back to check...]

As I'd expected, what I'd written was:
jbriggs444 said:
If we use ##M_e## (equivalent mass) as shorthand for ##M+n_\text{wheels}m_\text{wheel}/2## then...
ROOT0X57B said:
If I understand well ##n_\text{wheels}## is the number of wheels involved

If so, is your ##M_e## equal to my ##M_eq## ?
##\displaystyle M_{eq} = M + 4 \frac{I}{{R_{ext}}^2}##
Yes indeed, it should work out to be the same formula. There is a factor of ##\frac{1}{2}## in the formula for moment of inertia that drops your 4 into a 2 and then the ##R_\text{ext}## cancels out entirely.

ROOT0X57B said:
Your post feels like you're a little bit upset, please excuse my dumbness (probably due to my illness thought)
I apologize for any frustration that has leaked through into my language.
 
  • #128
jbriggs444 said:
One moment while I scroll back to check. The formula for ##M_e## above would count just the wheels and not the car. Surely I wouldn't have said that. [Scrolls back to check...]
Yep, copy mistake
 
  • #129
It works !

Here is the result :
Figure_1.png


If we take into account the delay of reaction (1s) :
Figure_2.png


Looks pretty accurate to me, (considering constant deceleration)

If anyone wants, here is the code (if french but well commented) :
[CODE lang="python" title="main.py" highlight="11-30"]from utils import *
from matplotlib import pyplot as plt
from parameters import *

points_vitesse = [v0]
points_distance = [0]
points_temps = [0]

compter_temps_reaction = True # Si on compte le temps de réaction

if compter_temps_reaction:
## Temps de réaction
for i in range(int(t_reaction / dt)):
t += dt
x += v0 * dt
points_distance.append(x)
points_vitesse.append(v0)
points_temps.append(t)

while v > limite_zero:
t = t + dt
M_eq = masse + n_roues_actives * moment_inertie_roue / rayon_pneu**2
F_eq = 2 * (pression_freins * 2 * surface_plaquette) * rayon_frein / rayon_pneu
a = F_eq / M_eq
v = v - a * dt
x = x + v * dt

points_distance.append(x)
points_vitesse.append(v)
points_temps.append(t)

# On convertit les données en km/h
points_vitesse = [mps_vers_kmh(v) for v in points_vitesse]

# On affiche les données sur le même graphique
fig, ax = plt.subplots()
ax.plot(points_temps, points_distance, color='b')
ax.set_xlabel('Temps (s)')
ax.set_ylabel('Distance (m)', color='b')
ax.tick_params('y', colors='b')

ax2 = ax.twinx()
ax2.plot(points_temps, points_vitesse, 'r')
ax2.set_ylabel('Vitesse (km/h)', color='r')
ax2.tick_params('y', colors='r')

plt.title('Simulation de la distance de freinage d\'une voiture en ville')
plt.show()[/CODE]

and here is are the parameters used :
[CODE lang="python" title="parameters.py"]from utils import *

masse = 830 # Masse de la voiture
v0 = kmh_vers_mps(50) # Vitesse initiale
rayon_pneu, rayon_interieur, largeur_bande = ref_roue_vers_dimensions('155-65R14')
rayon_frein = rayon_interieur * 0.8 # Approximation de la distance par rapport à l'axe où la pression est appliquée
n_roues_actives = 2 # Nombre de roues actives

pression_freins = bar_to_pascal(100) # Pression de freinage
surface_plaquette = 0.0057390 # Surface d'une plaquette de frein

masse_roue = 6 # Masse de la roue
moment_inertie_roue = (masse_roue * (rayon_pneu**2 - rayon_interieur**2)) / 2 # Moment d'inertie de la roue

t_reaction = 1 # Temps de réaction du conducteur

x = 0 # Position initiale
v = v0 # Vitesse initiale
a = 0 # Acceleration initiale
t = 0 # Temps initial

# Il faut un pas de temps pour que dv << v
dt = 0.0001[/CODE]
 
  • #130
Hum wait...

Something feels wrong
Where does ##\mu## (friction coefficient between road and tire) gets in ??
I think ##F_e = n_\text{wheels}\mu F_BR_B## instead of ##n_\text{wheels}F_BR_B##

If I do that I have
Figure_1.png

And
Figure_2.png

Official data says a stop at 50km/h is done in about 28 meters
As I have no transition between "no brakes" and "full brakes" and I have a powerful force (emergency braking) it seems quite realistic
 
Last edited:
  • #131
ROOT0X57B said:
Where does ##\mu## (friction coefficient between road and tire) gets in ??
It doesn't.

As long as you are in a controlled stop (not skidding), it is the force of the drivers foot on the pedal that controls the force of the brake pads on the rotors. The coefficient of friction of pad on rotor is relevant. The coefficient of friction of tire on road is not immediately relevant.

The coefficient of friction of tire on road is relevant as a limit. Brake harder than that and you start skidding. Sliding rather than rolling.

If you are sliding, the force of the driver's foot on the pedal, and the force of the pad on the rotor become irrelevant. No matter how hard the driver mashes the pedal, the car still slides.

The deceleration during braking is the minimum of the two -- the minimum of the braking commanded by the driver and the braking allowed by the tires on the road.

Edit: In some cases -- the braking system may be inadequate to cause the tires to skid. In those cases, the effectiveness of the braking system may impose a different constraint to minimize with. For instance, with drum brakes and "fade".
 
  • #132
For the next chapter, I will need the car to slide on the road so it may be logical to consider it here too.
How can I do that?
I suppose there will be another force that will get into account for "sliding friction" which will depend on ##\mu##
 
  • #133
ROOT0X57B said:
For the next chapter, I will need the car to slide on the road so it may be logical to consider it here too.
How can I do that?
I suppose there will be another force that will get into account for "sliding friction" which will depend on ##\mu##
You have encountered the notion of the coefficient of static friction and of kinetic friction and the fact that the two can differ?
 
  • #134
No we have not seen the difference, we did simply call it friction for now
 
  • #135
ROOT0X57B said:
Hum wait...

Something feels wrong
Where does ##\mu## (friction coefficient between road and tire) gets in ??
I think ##F_e = n_\text{wheels}\mu F_BR_B## instead of ##n_\text{wheels}F_BR_B##

The stop in 0.06s feels suspect too
Your equation doesn't assume there is a friction force anywhere.

Your equation doesn't assume that ##F_B## is a friction force; it is just a force. It could be a friction force if you simply define ##F_B = \mu_{pad} F_N## where ##F_N## would be the normal force applied to a brake pad.

But the true definition of that friction force depends on the brake system design and can be simple (disc) or very complex (duo-servo drum).

Furthermore, your model assumes that whatever the braking system will produce, the tire will accommodate. This is true until you reach the maximum friction force your tire can handle. To incorporate this you will have to constantly monitor if your braking force exceeds that limit. Read post ##99 again.
 
  • #136
jack action said:
Your equation doesn't assume there is a friction force anywhere.

Your equation doesn't assume that ##F_B## is a friction force; it is just a force. It could be a friction force if you simply define ##F_B = \mu_{pad} F_N## where ##F_N## would be the normal force applied to a brake pad.

But the true definition of that friction force depends on the brake system design and can be simple (disc) or very complex (duo-servo drum).

Furthermore, your model assumes that whatever the braking system will produce, the tire will accommodate. This is true until you reach the maximum friction force your tire can handle. To incorporate this you will have to constantly monitor if your braking force exceeds that limit. Read post ##99 again.
Yes I acknowledged this, that's why I'm asking actually
My brake system is simple (drum braking)

If my force exceeds the slip limit what do I do ? I make it slip by not decreasing the speed ? If so for how long ?
 
Last edited:
  • #137
ROOT0X57B said:
My brake system is simple (drum braking)
Drum brakes are not simple.
ROOT0X57B said:
If my force exceeds the slip limit what do I do ? I make it slip by not decreasing the speed ? If so for how long ?
You replace the torque produced by your braking system with the tire friction force. Again, from post #99, ##F_t = MIN(\frac{T_B}{r_t}, \mu mg)##.
 
  • Like
Likes ROOT0X57B
  • #138
jack action said:
Drum brakes are not simple.
I meant there is no more complexity than what was there before.
 
  • #139
ROOT0X57B said:
If my force exceeds the slip limit what do I do ? I make it slip by not decreasing the speed ? If so for how long ?
Are you contemplating a fixed constant braking force and a fixed constant limit on tire friction?

If so, you just check whether the one exceeds the other and have your model only consider the one that is limiting.Are you contemplating a variable braking force and variable road friction? For instance, are you braking to a stop and hit a patch of ice?

Then you have to use a model that incorporates both constraints. For instance, while the car is on the icy patch, the rotation rate of the tires will be decreasing rapidly. They may even come to a stop. When you regain contact with the road surface, the tires will spin back up to speed. By my count, you will have four regimes to think about:

1. Braking to a stop with no-slip rolling, limited by brake pressure.
2. Sliding on ice with the wheels slowing rapidly, limited by sliding friction on ice.
3. Sliding on ice with the wheels not turning, still limited by sliding friction on ice.
4. Sliding on road with the wheels speeding up, limited by sliding friction on pavement.
 
  • #140
I will have a homogeneously wet pavement (along with a water friction force on the bottom of the wheel) so ##\mu## might be changed between simulations but will be a time constant.
 
  • #141
ROOT0X57B said:
I will have a homogeneously wet pavement (along with a water friction force on the bottom of the wheel) so ##\mu## might be changed between simulations but will be a time constant.
So you can determine outside the main loop whether road friction or brake friction will be the limiting factor.

Then use a main loop that models deceleration under that constraint alone.
 
  • Like
Likes ROOT0X57B
  • #142
Ok now I want ABS to get into the equation, because if I don't, my results won't be realistic at all

I will use Pacejka's Magic Formula to get ##\mu## as a function of relative slip.
Now, how can I calculate the relative slip, I think of
$$\frac{R_\text{ext}\Omega - v}{|v|}$$
Where ##\Omega## is the longitudinal component of rotational speed ##\omega##

To get ##\omega## I would have used ##\displaystyle v = R_\text{ext}\frac{\text{d}\theta}{\text{d}t}## because ##\omega = \frac{\text{d}\theta}{\text{d}t}##
So ##\omega = \frac{v}{R_\text{ext}}##

But this is assuming there is no slip...

What can I do then? Should I monitor ##\theta## thus ##\omega## at each step ?
 
  • #143
ROOT0X57B said:
Ok now I want ABS to get into the equation, because if I don't, my results won't be realistic at all

I will use Pacejka's Magic Formula to get ##\mu## as a function of relative slip.
Can you please explain in your own words what you think Pacejka's Magic Formula is, how it relates to ABS and how you think that it is in any way a useful tool to determine the coefficient of static friction ##\mu## without knowing anything about the composition of the tire or of the pavement.

##\mu## is normally something that you measure, not something that you predict.
 
  • #144
Yes, sorry my mind is so focused on it that I forgot to explain that...

Earlier (February - April), I was doing some research about ABS, relative slip, lack of friction...
I found Pacejka's "Magic formula" to be a good and quite simple model of ##\mu## when the tire slips.The formula is
$$\mu = A * (B * (1-e^{-C\text{slip_x}})-D*\text{slip_x}$$
Where A, B, C and D depend on the road conditions
(A more complex version using Arctan exists too)
Applied to data found online (verified through multiple websites), I have
Figure_3.png

Dashed area is when ##\mu## decreases
 
Last edited:
  • #145
So for any given set of road conditions, there is a maximum coefficient of friction that can be achieved if the brakes are modulated optimally.

If you want to simulate the motion of a car that is being braked optimally, model the coefficient of friction as having that value and call it done.
 
  • #146
jbriggs444 said:
If you want to simulate the motion of a car that is being braked optimally, model the coefficient of friction as having that value and call it done.
Okay, I will do that for now, but I'm curious about this :
ROOT0X57B said:
What can I do then? Should I monitor ##\theta## thus ##\omega## at each step ?
 
  • #147
I think I will have to make ##\mu## to NOT be a constant (or it will feel too simple), do you have an idea on how to get ##\Omega##?
 
  • #148
ROOT0X57B said:
I think I will have to make ##\mu## to NOT be a constant (or it will feel too simple), do you have an idea on how to get ##\Omega##?
##\Omega## being the rotation rate that gives you the maximum coefficient of friction of tire on road?

Assuming yes then... If you modulate the brakes to allow the tires to rotate at ##\Omega## then the resulting coefficient of friction will be a constant.

How do you get ##\Omega##? Easy. You read the desired relative slip off of the graph. If the relative slip is 20% then you set ##\Omega## to be the nominal rotation rate (##\frac{v}{R_\text{ext}}##) minus 20 %.
 
  • #149
ROOT0X57B said:
do you have an idea on how to get ##\Omega##?
It's the angular velocity of the wheel, which is another input you have to feed to your program. Normally, in a vehicle, there is a sensor that measures the wheel rpm and there is another one that measures the velocity by evaluating how the vehicle changes position (similar to what your smartphone does).

ROOT0X57B said:
I think I will have to make to NOT be a constant (or it will feel too simple),
I must say that I really have difficulty understanding what your trying to achieve. People usually try to simplify stuff, not complicate it.

You should have a function that solve this equation from ##v_0## to ##v_f##:
$$\Delta x = \frac{m_e v_{avg}}{F_t (v_{avg}) + \frac{1}{2}\rho C_D A v_{avg}^2 + F_R} \Delta v$$
You just have to decide on a value for ##\Delta v## when solved by numerical analysis. One small enough in relationship with ##v_0 - v_f##.

If you really want to know the time (which I think is unnecessary) you have to solve also:
$$\Delta t = \frac{\Delta x}{v_{avg}}$$

Note that I used the braking force ##F_t## as a function of velocity. That should be another function in your program. At first, to help you familiarize yourself with the equation, this should return a constant (independent of ##v##) based on the maximum performance of the tire, i.e. ##\mu mg##.

Afterward, you can add more precision by setting it to return ##MIN(\frac{T_B}{r_t}, \mu mg)##, which is again a constant.

Then you can make ##\mu## a function of the normal force on each axle where - instead of ##\mu mg## - you would get:
$$\mu(N_f)N_f + \mu(N_r)N_r$$
Where ##N_f## and ##N_r## are the front and rear normal force on the respective axles and ##\mu## varies according to this normal force (another function to make). You will have to add inputs to the function ##F_t##, such as vehicle dimensions and acceleration.

Then you can complexify the function ##\mu## even further if you wish with slip or anything else, but you will need even more inputs. You can even input the position ##x## of the vehicle to indicate when the quality of the road will change, thus affecting ##\mu## as the vehicle moves. But that is even more inputs for ##F_t##.

But don't forget the first component of our braking force, i.e. ##\frac{T_B}{r_t}##. The torque provided by the braking system can also vary, thus becoming another function in your program. This is where your ABS system would have an effect. Of course, many inputs could be needed, thus added to the function ##F_t## as well.

There are no limits on how detailed you want your model to be. But you have to start at the beginning. Make your functions simple but expandable.
 
  • Like
Likes hutchphd and jbriggs444
  • #150
jack action said:
I must say that I really have difficulty understanding what your trying to achieve. People usually try to simplify stuff, not complicate it.
Thank you for saying what I was thinking.
 
  • Sad
Likes ROOT0X57B

Similar threads

  • · Replies 102 ·
4
Replies
102
Views
7K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 24 ·
Replies
24
Views
5K
Replies
10
Views
3K
  • · Replies 15 ·
Replies
15
Views
6K
Replies
4
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 16 ·
Replies
16
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K