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 - 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.