It works !
Here is the result :
If we take into account the delay of reaction (1s) :
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]