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.

3.4. Implémentation basique#

Si vous vous sentez suffisamment à l’aise, vous pouvez passer directement à l’étude approfondie.

3.4.1. Définition des fonctions pour le schéma d’Euler#

On va commencer par définir la fonction f(t,y) pour les deux types d’étude : le régime libre et l’échelon de tension.

Attention : Même si f ne dépend pas explicitement du temps, on gardera t comme argument de la fonction car cet argument est nécessaire quand on utilise les fonctions natives de numpy pour intégrer une équation différentielle.

Exercice A
Dans la cellule ci-après, vous devez:

  1. Importer les deux bibliothèques numpy et matplotlib.pyplot

  2. Créer deux fonction f_libre et f_echelon prenant deux arguments t et u (correspondant à un instant tk et à uk=u(uk)) et qui renvoie la valeur f(tk,uk) pour chaque cas (régime libre et échelon de tension) (u est la tension aux bornes du condensateur comme dans l’étude présentée dans l’exemple). Vous pouvez définir R,C et τ comme des variables globales que vous utilisez dans les fonctions.

Click to show
"""Ne pas oublier d'importer les bibliothèques scientifiques et d'éxécuter la cellule."""

3.4.2. Implémentation du schéma d’Euler#

3.4.2.1. Cas du régime libre#

L’implémentation suivante est à bien comprendre et à savoir refaire sans guide. Elle est la base des intégrations numériques. Dans un premier temps, on prendra h=τ/1000 et on prendra les valeurs R et C données précédemment.

Exercice B : Avec une boucle for

  1. Ecrire une suite d’instructions qui:

    • (Préparation) Définit le pas h, la constante de temps tau, le temps final t_f et le nombre d’intégration N à réaliser.

    • (Initialisation) Créer deux listes vide tkf et ukf dans lesquels on stockera les valeurs tk et uk puis ajouter à ces listes les conditions initiales t0 et u0. On prendra u0=u(t0)=1V et t0=0.

    • (Boucle) Dans une boucle for, réalise plusieurs fois l’intégration numérique avec le pas h et la fonction f_libre. A chaque fois, vous devrez calculer la valeur uk+1 que vous stockerez dans la liste ukf puis le nouveau temps tk+1 que vous stockerez dans la liste tkf. Bien réfléchir aux bornes de la boucle.

    • (Terminaison) Pour une utilisation plus simples ensuite des listes de valeurs tkf et ukf. Transformer les deux listes en deux vecteurs numpy.

Click to show
# On rappelle que la fonction f_libre est accessible et que les bibliothèques scientifiques ont été créés.

Exercice C : Avec une boucle while

  1. Ecrire une suite d’instructions qui:

    • (Préparation) Définit le pas h, la constante de temps tau, le temps final t_f.

    • (Initialisation) Créer deux listes vide tkw et ukw dans lesquels on stockera les valeurs tk et uk puis ajouter à ces listes les conditions initiales t0 et u0. On prendra u0=u(t0)=1V et t0=0.

    • (Boucle) Dans une boucle while, réalise plusieurs fois l’intégration numérique avec le pas h et la fonction f_libre. A chaque fois, vous devrez calculer la valeur uk+1 que vous stockerez dans la liste ukw puis le nouveau temps tk+1 que vous stockerez dans la liste tkw. Bien réfléchir à la condition de sortie de la boucle.

    • (Terminaison) Pour une utilisation plus simples ensuite des listes de valeurs tkw et ukw. Transformer les deux listes en deux vecteurs numpy.

  2. Tracer y(t) pour chaque intégration (for et while). Tracer sur le même graphique la solution analytique pour comparaison (utilisez les tk comme abscisses). N’oubliez pas de légender la figure.

On rappelle que la solution analytique est:

y(t)=y0expt/τ

Note : Certaines étapes pourraient être raffinées (création du vecteur temps par exemple).

Click to show
# On rappelle que la fonction f_libre est accessible et que les bibliothèques scientifiques ont été créés.

3.4.2.2. Influence du pas d’intégration#

Exercice D :

  1. Reprendre la suite d’instructions précédente (avec for ou while peu importe) pour h=τ/10; h=τ/2; h=τ; h=2τ. Réaliser le tracé y(t) pour chaque cas ainsi que la comparaison avec la solution analytique.

  2. En déduire comment choisir correctement le pas d’intégration.

3.4.2.3. Cas de la réponse à un échelon de tension.#

Exercice E :

  1. Reprendre la suite d’instructions précédente (avec for ou while peu importe) avec un pas d’intégration correctement et obtenir la solution numérique pour un échelon de tension (E=1V et y0=0V). Le comparer à la solution analytique.

On rappelle que la solution analytique est:

y(t)=E(1expt/τ)

La nécessité de copier-coller le même code pour chaque test montre qu’il serait bien plus efficace de mettre ces instructions dans une fonction qu’on réutiliserait plusieurs fois. C’est l’objectif de la première partie de l’étude complète avant de l’utiliser pour la réponse à une entrée plus complexe : une rampe de tension.