Pour opérer un virage, on choisit d’abord de connecter deux sections de rails rectilignes (en orange) de directions différentes par un arc de cercle (bleu).
Tracer l’évolution de l’accélération d’un point $\mathrm{M}$ suivant les rails à vitesse constante sur le trajet entre $\mathrm{I}$ et $\mathrm{F}$.
Ce raccordement est-il une bonne idée ?
Plutôt qu’un arc de cercle, on va relier les deux portions rectilignes par une clothoïde. Cette courbe a pour particularité que son rayon de courbure croit linéairement avec l’abscisse curviligne sur la courbe.
Plus précisément, supposons qu’un point $\mathrm{M}$ suive une clothoïde vitesse constante $v=\pu{1,0 m*s-1}$. On peut alors paramétrer la courbe avec le temps $t$.
On suppose que l’origine est telle que $\mathrm{M}(t=0)=\mathrm{O}(0,0)$ et que la tangente initiale est dirigée vers l’axe $\mathrm{O}x$.
La particularité de la courbe clothoïde est que son rayon de courbure $R(t)$ en $\mathrm{M}(t)$ est tel que $\frac{1}{R(t)}=kt$ où $k$ est une constante positive.
Esquisser l’allure d’une clothoïde.
Dans un repère de Frenet, écrire l’accélération tangentielle et normale du point M.
Reprendre les questions 1 et 2 avec un tronçon de raccordement en clothoïde dont l’origine serait au début du raccordement.
En appelant $\theta$ l’angle que fait le vecteur tangent $\vec{u}_t(t)$ au point $\mathrm{M}(t)$ de la courbe avec l’axe $\mathrm{O}x$, montrer que : $$\theta(t)=\frac 12 k v t^2$$
En déduire que l’équation de la clothoïde est donnée par : $$ \begin{cases} \int_0^t \cos\left(\frac 12 kv u^2\right)\mathrm{d}u\\ \int_0^t \sin\left(\frac 12 kv u^2\right)\mathrm{d}u \end{cases} $$
En utilisant la méthode des rectangles, représenter graphiquement un tronçon de clothoïde pout $t$ allant de 0 à 5 s sur Python en complétant le code suivant.
import numpy as np
import matplotlib.pyplot as plt
def integrale(f,a,b):
#################
## À COMPLÉTER ##
#################
v = 1
k = 2
t = np.linspace(0,5,500)
def c(x):
return np.cos(1/2 * k * v * x**2)
def s(x):
return np.sin(1/2 * k * v * x**2)
def C(x):
return integrale(c,0,x)
def S(x):
return integrale(s,0,x)
plt.figure(figsize=(6, 6),dpi=150)
plt.plot(C(t),S(t))
plt.show()