La conception d'un pendule simple est assez ... simple. Mais son étude physique,si l'on veut la simplifier, entraine quelques contraintes assez importantes. Voyons lesquelles:
Bref, il s'agit de construire une machine dont les caractéristiques
approchent le plus possible la simplicité physique. En général, on
construit un pendule simple avec une bille métallique de petite taille,
que l'on suspend à une potence par l'intermédiaire d'un fil métallique
fin et rigide. L'extrémité haute du fil repose sur un pivot pour réduire
les frottements.
Plaçons nous dans un laboratoire, sur une table stable, regardons et
manipulons cette machine simple:
Pour comprendre la physique du pendule simple, nous devons le modéliser le plus finement possible et étudier ce que nous dit ce modèle.
Tout d'abord, schématisons notre pendule simple dans un référentiel \( (M, \vec{e_r}, \vec{e_{\theta}}) \), que nous supposerons galiléen.
Pour modéliser le comportement du pendule, nous devons déterminer
l'équation de son mouvement dans le référentiel choisi, c'est à dire
établir l'évolution de l'angle ? dans le temps. Pour ce faire, nous
allons appliquer le PFD (Principe Fondamental de la Dynamique ou seconde
loi de Newton). Il y a d'autres méthodes, qui ne sont pas du niveau de
TS, et qui aboutissent au même résultat. La bille M, que nous pouvons
considérer comme ponctuelle par hypothèse, parcourt la trajectoire
circulaire s. A l'instant t, la distance parcourue sur la trajectoire s
est égale à \( l \theta \). La trajectoire est orientée comme indiquée
sur le schéma.
La projection du vecteur \( \vec{P} \) sur l'axe \( e_{\theta} \) est \(
-mg \sin(\theta) \). Le signe - provient de l'orientation de la
trajectoire. Il indique que la force subie est une force de rappel, qui
ramène la bille à son état d'équilibre le plus stable.
En écrivant le PFD dans le référentiel, j'obtiens \( m\dfrac{d^2 s}{dt^2} = -mg \sin(\theta) \). Sachant que \(s = l \theta \), en remplaçant cette valeur dans l'équation précédente, en simplifiant par m et en posant \( \omega = \sqrt(\dfrac{g}{l}) \), j'obtiens : \( \dfrac{d^2 \theta}{dt^2} + \omega^2 \sin(\theta) = 0 \)
Cette équation différentielle non linéaire n'a pas de solution analytique immédiate, sauf à faire appel aux fonctions elliptiques de Jacobi. Alors d'habitude, on approxime en remarquant que si l'angle \( \theta \) est petit, l'angle (en radian) a une valeur à peu près équivalente à son sinus. C'est l'approximation des "petits angles" ou en physique l'approximation "harmonique" que l'on fait en cours de méca de TS et même de math sup. D'ailleurs, cela m'inspire l'idée d'un travail personnel intéressant. Vous savez ou pas que cette approximation est justifiée par le développement limité de la fonction sinus qui est sin (x) = x - x^3/3! + x^5/5! + ... . Cette formule permet d'estimer l'erreur que l'on fait en fonction de la valeur de x, exprimé en radian bien sur, en posant sin(x) = x.
Le langage Scilab possède un outil puissant de résolution des équations
différentielles ordinaires (EDO) qui s'appelle ode(). Nous allons
l'utiliser sans entrer dans les détails de son fonctionnement, qui
relèvent de l'analyse numérique et ne sont donc pas dans le scope de
cette page.
Précisons que ode() ne traite que des équations du premier ordre. Or il
ne vous a pas échappé que notre équation est du deuxième ordre. On va
donc procéder en rusant... Si vous ne comprenez pas bien ce qui suit, ce
n'est pas grave. Le but est de faire de la physique pas de l'analyse
numérique!
Partons donc de notre équation, que je vais réécrire \( \dfrac{d^2
\theta}{dt^2} = -\omega^2 \sin(\theta) \) . Je vais faire le changement
de variables suivant : \( u1 = \theta \) et \( u2 = \dfrac{d
\theta}{dt} \). Je noterai \( du1 = u2 \) et \( du2 = \dfrac{d^2
\theta}{dt^2} = -\omega^2 \sin(\theta) \) et donc finalement vous
retrouverez dans le programme ces notations. Pour couper court à toute
remarque sur la rigueur de la notation, je précise qu'il ne s'agit pas
de notation différentielle...
Voici le premier programme PenduleScilab1,
qui trace la courbe d'évolution de l'angle en fonction du temps. Les
conditions initiales sur \( \theta \) et \( \dfrac{d \theta}{dt} \)
sont exprimées dans le vecteur u0. Elles sont définies par l'utilisateur
au lancement du programme. Ce programme trace aussi le portrait de
phase, c'est à dire la courbe de variation de la vitesse angulaire en
fonction de l'angle.
Vous noterez que j'ai fixé arbitrairement la valeur de l à 1 m. Vous
pouvez la modifier dans le code, pour vérifier son influence sur la
période du pendule.
Voici le tracé obtenu avec un angle initial \( \theta_0 \)de 0.1 rd et
une vitesse angulaire initiale nulle:
Voici le tracé obtenu avec un angle initial de -3 rd et une vitesse angulaire initiale nulle:
Il est intéressant d'aborder l'étude du pendule simple sous l'angle
énergétique. Vous savez sans doute que l'énergie mécanique Em du pendule
est égale à la somme de son énergie potentielle Ep et de son énergie
cinétique Ec. Comme précisé plus haut, on suppose l'absence de
frottement...
Etablissons Ec : elle est égale à \( \dfrac{1}{2}mv^2 \) alors que \(v =
l \dfrac{d \theta}{dt}\). On obtient donc \(E_c = \dfrac{1}{2}ml^2
\dfrac{d \theta}{dt}\).
Passons à Ep: elle est égale à \( E_p = mgh \), h étant l'altitude
mesurée à partir de l'altitude de repos h0=0. Un petit calcul de trigo
montre que \( h = l(1 - \cos(\theta)) \). On obtient donc \(E_p = mgl(1
- \cos(\theta)) \). On peut donc écrire \( E_m = \dfrac{1}{2}ml^2
\dfrac{d \theta}{dt} + mgl(1 - \cos(\theta)) \).
Le programme PenduleScilab3.sce
trace sur une même fenêtre les courbes d'énergie potentielle et
d'énergie cinétique. Il permet de suivre l'évolution en fonction du
temps de ces deux énergies et de vérifier la conservation de l'énergie
mécanique totale.
En faisant varier l'angle initial entre 0 et \( +\theta \) ou \( -\theta
\), il permet également d'analyser l'allure de l'énergie potentielle et
sa limite, qui est 2mgl comme vous l'aurez calculé! D'ailleurs , que ce
passe-t-il si cette limite est dépassée, c'est à dire qi l'on fournit au
pendule une énergie initiale supérieure à 2mgl?
Ci dessous, deux exemples: à gauche l'angle initial vaut 0.1 rd et à
droite 3.1 rd. Dans les deux cas, la vitesse initiale est nulle. Que
constatez-vous?
![]() |
![]() |
A l'aide des programmes Scilab que vous pouvez télécharger ci-dessus je vous invite aux manips suivantes:
et toutes celles que vous pourriez inventer!
Pour varier les plaisirs et aller plus loin dans l'étude du pendule simple, je vous propose d'utiliser le langage Maple pour simuler le comportement de notre pendule et découvrir plusieurs autres aspects de son comportement. Nous allons aborder le portait de phase et la notion d'analyse spectrale d'un oscillateur harmonique. Bien sur, tous les aspects modélisation abordés ci-dessus restent applicables. J'ai cependant adimensionné notre EDO en posant \( \tau = \dfrac{t}{T_0} \) et \( y(\tau) = \theta (T_0 \tau) \), ce qui nous donne l'équation \( \dfrac{d^2 y}{d \tau ^2} + 4 \pi^2 \sin(y) = 0\). L'unité de temps est donc devenue T0. Nous travaillerons dans la suite avec cette équation, en gardant toujours présent à l'esprit l'unité de temps. L'adimensionnent de l'EDO n'est pas indispensable, mais c'est une bonne habitude à prendre.
Vous pouvez télécharger le code du programme FFTPendule.mpl.
Je vous recommande d'ailleurs de le faire tout de suite, d'ouvrir Maple et
de charger le code (read("FFTpendule.mpl")) pour pouvoir faire les manips
qui vont suivre.
Le code présente plusieurs particularités:
Nous verrons dans la suite comment fonctionnent ces différents composants.
A l'aide du programme, nous allons tracer, pour plusieurs valeurs de l'angle initial, la trajectoire du pendule sur un domaine temporel de 0 à 5 unités (5 T0 donc) . Pour pouvoir visualiser l'écart entre l'approximation harmonique et la trajectoire réelle, j'ai superposé la trajectoire calculée en bleu, et l'approximation harmonique en rouge. Pour modifier la valeur de l'angle initial, vous devez modifier la ligne:
s(parameters = [1.0,0.0]):
Dans cet exemple, l'angle initial vaut 1. rd et la vitesse initiale 0. rd.s-1. Lançons le programme avec cette valeur d'angle initial. Nous obtenons la courbe suivante:
Pour un angle d'un radian, nous observons la dérive très nette de
l'approximation harmonique (en rouge) par rapport à la trajectoire
calculée avec l'équation horaire complète. Vous noterez également que la
dérive est cumulative,ce qui est due aux méthodes de résolution des EDO.
Pour information, Maple utilise ici une méthode RK4
un peu améliorée.
Voyons maintenant ce que cela donne avec un angle plus grand, pour lequel
l'approximation harmonique n'est plus acceptable. Pour cela, nous allons
modifier la valeur de l'angle dans la ligne, en indiquant 3.1 rd pour la
valeur de l'angle initial (proche de ?) :
s(parameters = [3.1,0.0]):
Nous obtenons la trajectoire suivante:
Elle n'a plus rien de sinusoïdale ! D'après le tracé, sa période est d'environ 3,3 unités de temps. Vous comprenez mieux pourquoi il ne vaut mieux pas employer l'approximation harmonique (dite aussi "des petits angles"...) pour des angles qui dépassent le radian! Et même pour un radian, on a vu que ce n'était pas terrible.
Le portait de phase, incontournable dans l'étude des systèmes dynamiques
est la courbe paramétrique \( x = y(\tau) \) et \( y = \dfrac{dy(\tau)}{d
\tau} \), les grandeurs \( y(\tau) \) et \( \dfrac{dy(\tau)}{d \tau} \)
étant fournies par la résolution de l'équation différentielle de
trajectoire.
Maple dispose d'une fonction puissante pour traiter le problème, qui nous
évite bien des calculs. Il s'agit de DEplot, que j'utilise comme suit:
DEplot(sys,[y(t),v(t)],t=0..2.,
[[y(0) = 0, v(0)= 1.], #description des différentes conditions initiales
[y(0) = 0, v(0)= 1.5],
[y(0) = 0, v(0)= 1.99],
[y(0) = 0, v(0)= 2.01],
[y(0) = 0, v(0)= 2.],
[y(0) = 0, v(0)= 2.5]],
stepsize = 0.01, linecolor = blue,thickness=1,arrows=none,
scaling=constrained,title = "Portrait de phase");
La variable sys contient la définition du système différentiel. t définit le domaine temporel de tracé. Les lignes suivantes définissent les différentes valeurs de couples (y0,v0) utilisées pour tracer le portait de phase. Vous pouvez bien sur les modifier! Voyons ce que cela donne:
Nous observons plusieurs choses intéressantes:
Il est intéressant de comparer le spectre des oscillations du pendule alors que sa trajectoire est approximativement harmonique et lorsqu'elle en est très éloignée. Là aussi, Maple possède des outils assez simples à mettre en oeuvre. Dans le programme, j'ai utilisé la fonction FFT de Maple, sur un vecteur de 256 points (2^8). Après avoir initialisé les paramètres et les vecteurs réels et complexes, le calcul du spectre tient en deux lignes:
evalf(FFT(p,uR,uI)):
sp := seq([[i/Tacq,0],[i/Tacq,sqrt(uR[i]^2+uI[i]^2)]],i=1..N/2):
La première ligne permet d'évaluer la transformée de Fourier discrète du
signal contenu dans les vecteurs uR et uI sur p points. La seconde ligne
permet de construire la séquence de points nécessaires à construire les
bâtons du spectre. Notez le calcul de la magnitude de chaque bâton. Ah
oui, vous aurez remarqué que dans la construction de la séquence de calcul
du spectre, je n'ai pris que la première moitié des points. c'est pour
éviter certains aspects déplaisants de l'algorithme de FFT, en particulier
le repliement du spectre... Pour plus de détails voir votre cours de FFT.
Voici ce que donne le spectre des oscillations pour un angle initial de 1.
rd, c'est à dire dans le cadre de l'approximation harmonique:
Sans surprise, nous obtenons un pic unique centré sur f = 1/T0, ce qui vaut 1 dans notre système unité. Quand je dis unique, je néglige les petits pics parasites qui sont dus à l'algorithme de FFT.
Voyons maintenant ce que donne le spectre des grandes oscillations, pour un angle initial de 3.1 rd:
Lors de l'analyse de la trajectoire, nous avions estimé que la période
était de 3.3 unité de temps, ce qui nous donne une fréquence fondamentale
de 0.3 dans notre système d'unités. C'est bien pour cette valeur que nous
voyons le pic principal.
On observe aussi un pic pour l'harmonique 3 et pour l'harmonique 5.
L'amplitude des pics décroît fortement avec le rang de l'harmonique: 1/5
pour l'harmonique 3 et 1/10 pour l'harmonique 5.
Les harmoniques paires sont absentes. A noter les mêmes pics parasites dus
à l'algorithme de FFT.
A vous de jouer maintenant.Le programme vous permet d'explorer le
portait de phase et le spectre autour du point critique ou en tout autre
point. Vous pouvez aussi l'améliorer pour étudier la variation de période
en fonction de l'angle initial. Bon travail !
Contenu et design par
Dominique Lefebvre - www.tangenteX.com avril 2017
Contact : PhysiqueX ou
Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 3.0 France.