Etude du redressement monoalternance
Contents
La page ci-présente existe en version notebook téléchargeable grâce au 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.
2.5. Etude du redressement monoalternance#
Nous allons utiliser la méthode précédente pour chercher le point de fonctionnement du circuit précédent à chaque instant
On suppose que les caractéristiques des dipôles restent valables en régime variable de sorte qu’à un instant
avec
On va donc devoir réaliser une recherche de racine un grand nombre de fois. Il est donc préférable de mettre la série d’instructions pour déterminer la racine de
2.5.1. Fonction pour résoudre#
Exercice 1:
Importer les bibliothèques
numpy
etmatplotlib.pyplot
Définir une fonction
Esource(t)
qui renvoie la valeur depour un instant donné en argument et une fonction f_test(u)
qui renvoie la valeur depour une tension donnée en argument de la fonction (elle utilisera une valeur E
de tension pour la source comme une variable globale, les autres grandeurs Is, VT… peuvent être définie dans la fonctionf_test
, cf remarque par la suite).(Si ça na pas été fait précédemment) Tracer la fonction
entre pour (donc ) et vérifier graphiquement qu’il n’y bien qu’une seule racine dans l’intervalle (Note: On peut démontrer que la fonction est strictement décroissante, on a donc bien unicité de la racine quand elle existe.)
Remarque:
Le code ressemblera donc à ceci:
def Esource(t):
# corps du code si necessaire
return ....
def f_test(u):
# corps du code si necessaire
# La tension E sera notée E sans être définie par exemple :
R = 100
i = (E - u) / R
return i
# Pour utiliser f_test:
E = 1 # Nécessaire
f_test(u)
# On pourra redéfinir E avant chaque appel de f_test si nécessaire
Exercice 2:
Ecrire une fonction
dicho(f,a0,b0,prec)
qui va chercher la racine de la fonctionf
dans l’intervalle initialeavec une précision prec
par la méthode de dichotomie.Tester la fonction avec
f_test
etet vérifier la cohérence avec ce qu’on obtient graphiquement.
L’argument
f
est la fonction doncf
ouf_test
, pas ce qu’elle renvoie (c’est-à-diref(0)
ouf_test(1)
, on a la même différence entre une fonction et l’image d’une fonction).Par contre, à l’intérieur de
dicho
. Commef
est une fonction, on pourra l’appeler en utilisantf(a)
,f(1)
…Ne pas modifier les valeurs des arguments
a0
etb0
: il faut les réassigner à deux variables internes à la fonction (a
etb
par exemple) et modifier ces deux variables dans la boucle.Il est conseillé de tester initialement si le produit
est bien négatif et renvoyerNone
sinon. Cela évitera des résultats absurdes si l’on cherche dans un intervalle où il n’y a pas de racine. Quand vous aurez avancé le cours d’informatique, vous pourrez remplacer ce comportement par une assertion.
2.5.2. Application au redressement monoalternance#
Exercice 3:
Ecrire une suite d’instruction:
Définir un vecteur
E_k
qui prendre 1000 valeurs deaux instants équirépartis sur 2 périodes de . Dans une boucle, pour chaque valeur de
, rechercher la tension correspondant et la stocker dans une liste. Transformer la liste des tensions
uD
en un vecteur puis obtenir les valeurs d’intensités correspondantes(pensez aux fonctions vectorialisables pour l’obtenir en une instruction). Obtenir les valeurs de la tension
à chaque instant et tracer . Pourquoi parle-t-on de redressement ? monoalternance ?
Note : Réfléchir au choix de l’intervalle de recherche.