La page ci-présente existe en version notebook téléchargeable grâce au bouton Bouton (choisir le format .ipynb). On rappelle qu’l faut ensuite l’enregistrer dans un répertoire adéquat sur votre ordinateur (capa_num par exemple dans votre répertoire personnel) puis lancer Jupyter Notebook depuis Anaconda pour accéder au notebook, le modifier et exécutez les cellules de code adéquates.

6. Etude d’un pendule simple

But : à l’aide d’un langage de programmation, mettre en évidence le non isochronisme des oscillations d’un pendule.

6.1. Position du problème

Nous allons chercher à étudier les oscillations d’un pendule simple :

  1. Aux petites oscillations. Ce sera l’occasion de tester le schéma d’Euler mis en place pour étudier le système en le comparant aux attentes.

  2. Pour des oscillations quelconques. On cherchera alors à déterminer la période des oscillations en fonction de l’amplitude pour observer le non isochoronisme des oscillations. On comparera notamment les résultats trouvés à la formule théorique approchée.

6.1.1. Rappel : Mise en équation

On considère un pendule simple de longueur l sans sources d’amortissement dans un champ de pesanteur uniforme g. La masse au bout du pendule est m.

Pour les applications numériques, on prendra l=1m;g=9.81m.s2;m=1kg.

On rappelle que la mise en équation du pendule amène à l’équation :

θ¨+glsinθ=0

qui devient aux petits angles :

θ¨+glθ=0

L’énergie potentielle de pesanteur s’écrit :

Ep(θ)=mgl(1cosθ)

et l’énergie cinétique : Ec=12ml2θ˙2

6.1.2. Rappel : Schéma d’Euler

On va utiliser un schéma d’Euler explicite. Le système étant d’ordre 2, on utilise un système d’équations différentielles définit par la relation vectorielle :

dYdt=F(t,Y(t))

Y(t)=(θ(t)θ˙(t))

Pour des valeurs discrètes Yk aux temps tk (on notera xk et vk les valeurs de θ(t) et θ˙(t) aux temps tk), on peut approcher la dérivée de la fonction entre tk et tk+1 par :

dYdt=Yk+1Yktk+1tk

soit, en notant h=tk+1tk :

Yk+1=Yk+h×F(tk,Y(tk))

On a la relation de récurrence qui définit les Yk par le schéma d’Euler (explicite).

6.2. Implémentation du schéma d’Euler

Cette fois, on va directement raisonner avec le vecteur Yk et non avec deux grandeurs séparées θk et θ˙k

Exercice 1 :
Vous devez :

  1. Ecrire une fonction F_petit qui prend comme argument un flottant t et un vecteur Y à deux éléments et qui renvoie le vecteur F(Y, t) dans le cas d’un pendule aux petites oscillations.

  2. Ecrire (ou plutôt réécrire en servant de ce que vous avez fait précédemment) une fonction euler qui prend comme arguments :

    • une fonction F (semblable à F_petit qui prendra le même type d’arguments et renverra le même type de vecteur).

    • un vecteur Y0 donnant les deux conditions initiales (ici à t=0) sur les deux composants de Y

    • un flottant h qui sera le pas d’intégration h=tk+1tk

    • deux flottants t0 et tf qui seront les temps initial et final de l’intégration. et qui renvoie :

    • un tableau à 3 colonnes contenant respectivement : les temps tk, les angles θk et les vitesses angulaires θ˙k.

Données utiles :

  • pour rappel, il est plus simple de créer une liste de vecteurs à 3 éléments qu’on transforme en tableau de N lignes et 3 colonnes.

  • La sélection de la ligne d’indice i d’un tableau se fait par tableau[i]. Attention, les indices commencent à 0 et se terminent à N-1.

  • La sélection de la colonne d’indice j d’un tableau se fait par tableau[:,j]. Attention, les indices commencent à 0 et se terminent à m-1.

  • La sélection de l’élément d’indice (i, j) d’un tableau se fait par tableau[i, j]. Attention, les indices commencent à 0 et se terminent à N-1 (ou m-1).

"""
Ne pas oublier d'importer les bibliothèques scientifiques.
"""
"\nNe pas oublier d'importer les bibliothèques scientifiques.\n"

6.3. Test sur le système aux petits angles

6.3.1. Intégration numérique

Exercice 2 :
Vous devez :

  1. Ecrire une fonction sol_ptangle qui prend comme argument un temps t et un vecteur à deux éléments Y0 et qui renvoie la solution analytique de l’équation du pendule simple aux petits angles avec comme conditions initiales les élements du vecteur Y0 à l’instant t. Cette fonction devra être vectorialisable c’est-à-dire qu’elle doit pouvoir s’appliquer correctement que t soit un flottant ou un vecteur numpy.

  2. Utiliser la fonction euler pour résoudre numériquement le cas du pendule aux petits angles en supposant que le pendule par du point le plus bas avec une vitesse angulaire ωi=.1rad/s. Tracer alors sur le même graphique la solution analytique et la solution numérique pour les comparer. On réfléchira au choix du pas d’intégration et à l’intervale de temps [0,tf] d’étude.

Données utiles :

  • Pour sélectionner une colonne d’un tableau, on utilise la syntaxe tableau[:, i]i est l’indice de la colonne (qui démarre à 0).

6.3.2. Détermination de la période.

Par la suite, le signal ne sera plus forcément sinusoïdal mais restera périodique, on va chercher à déterminer la période du signal obtenu par résolution numérique.

Méthode choisie : On va déterminer les temps t0i successifs des points où la solution numérique pour θ(t) s’annule (plus précisément les temps médians entre deux instants où le signal change de signe). Comme il n’y a que 2 annulations des angles dans une période (cf. étude des systèmes conservatifs), il suffira de compter le nombre N0 de 0. La période T du signal s’écrit alors :

T=t0N0t01N012

Exercice 3 :

  1. Ecrire une fonction periode qui prend en arguments deux vecteurs de mêmes taille tk et thetak et qui renvoie la période du signal thetak en considérant les tk comme les temps associés.

  2. Tester votre fonction sur le signal intégré numériquement pour vérifier que vous trouvez bien la bonne période.

6.4. Anisochronisme des grandes oscillations.

On a observé théoriquement que la période des oscillations dépendaient aux fortes amplitudes des oscillations. Pour une amplitude “pas trop forte”, une approximation de l’intégrale trouvée en TD amène à la formule dite de Borda :

TT0(1+θ0216)

avec T0 la période propre aux petites oscillations

Exercice 4 :

  1. Pour une liste d’amplitude angulaire entre 0 et π (non inclus) (5 valeurs), vous devez :

    • Procéder à l’intégration numérique de l’évolution de l’angle sans approximation pour l’amplitude considérée et la solution analytique aux petits angles

    • Tracer sur deux graphiques : l’évolution temporelle de θ(t) et le portrait de phase (θ(t),dθdt(t)) du pendule our l’amplitude considérée.

    • Comparer à chaque fois la solution aux petits angles et la solution numérique trouvée.

  2. Ecrire une fonction periode_borda qui renvoie pour une amplitude theta0 donnée la période approchée par la formule de Borda

  3. Pour une liste d’amplitude angulaire entre π/50 et π (non inclus) (49 valeurs), vous devez déterminer pour chaque amplitude la période des oscillations pour le signal obtenu numériquement Tnum(θ0) et par la formule de Borda TBorda(θ0) puis représenter les deux périodes en fonction de l’amplitude.

    • Observer alors l’anisochronisme des oscillations

    • Comparer les résultats obtenus par l’intégrale et par intégration numérique de l’équation différentielle. A partir de quand doit-on considérer la formule de Borda non acceptable.

6.5. Trajectoire de diffusion

On s’intéresse au cas où le pendule part de sa position la plus basse avec une vitesse angulaire ωi.

Exercice 5 :

  1. Déterminer par le calcul la pulsation ωi qui permet d’atteindre l’angle π et de s’y arrêter. En théorie, quel temps met-on pour atteindre ce point ?

  2. Intégrer l’équation du pendule avec la valeur de ωi précédente et observer l’allure de θ(t) et θ˙(t). Commenter

  3. Intégrer l’équation du pendule avec une valeur de ωi supérieure à celle trouvée précédemment et observer l’allure de θ(t) et θ˙(t). Commenter.