PYTHON
METHODES NUMERIQUES
EXEMPLE PRATIQUE - 1ERE PARTIE

Mise en situation

Une photorésistance se place habituellement en série avec une résistance de 10 kΩ, de sorte que la lumière reçue par la photorésistance s'évalue en mesurant la tension aux bornes d'un des deux composants.

Pourquoi 10 kΩ? Quelle valeur de la résistance maximise la plage de tension mesurée? Le but de l'étude consiste à répondre à cette question.

Comparatif des solutions analytiques et numériques

En général, dans la résolution d'un problème :

Hypothèses et données

Notations

Schéma électronique

Valeurs retenues

Etude demandée

Compte rendu

Formule littérale de ΔU en fonction de R

I = [div]U[sur]RP + R[/div] = [div]UR[sur]R[/div]    (loi d'Ohm)

I min = [div]U[sur]RP max + R[/div] = [div]UR min[sur]R[/div]

I max = [div]U[sur]RP min + R[/div] = [div]UR max[sur]R[/div]

UR max - UR min = ΔU = [div]R . U [sur]RP min+R[/div] - [div]R . U [sur]RP max+R[/div] = R . U [par] [div]1[sur]RP min+R[/div] - [div]1[sur]RP max+R[/div][/par]

Tracé de la courbe de ΔU en fonction de R

Programme en python

import matplotlib.pyplot as plt
import numpy as np

U = 5        # Tension d'alimentation, en V
RpM = 40000  # Résistance maximale de la photorésistance, en Ω
Rpm = 200    # Résistance minimale de la photorésistance, en Ω

# Résistance placée en série avec la photorésistance, en Ω
R = np.linspace(500,20000,500)

# Plage de tension mesurée aux bornes de la résistance selon l'éclairage, en V
delta_U = R*U*(1/(Rpm+R)-1/(RpM+R))

# Tracé de la courbe
plt.figure("Résistance associée à une photorésistance")
plt.xlabel("Valeur de la résistance placée en série (Ω)")
plt.ylabel("Plage de tension mesurée (V)")
plt.grid()
plt.plot(R, delta_U)
plt.show()

Courbe obtenue

Recherche de la valeur de R optimale

Méthode numérique

Programme en python (nommé etude.py) :

import matplotlib.pyplot as plt
import numpy as np

U = 5        # Tension d'alimentation, en V
RpM = 40000  # Résistance maximale de la photorésistance, en Ω
Rpm = 200    # Résistance minimale de la photorésistance, en Ω

# Résistance placée en série avec la photorésistance, en Ω
R = np.linspace(500,20000,500)

# Différence de tension mesurée aux bornes de la résistance selon l'éclairage, en V
delta_U = R*U*(1/(Rpm+R)-1/(RpM+R))

# Recherche de la résistance optimale
liste_R = list(R)
liste_delta_U = list(delta_U)
R_rech = liste_R[liste_delta_U.index(max(liste_delta_U))]
print("Résistance pour la plage de tension maximale =",round(R_rech)," Ω")

Résultat :

$ ./etude.py
Résistance pour la plage de tension maximale = 2845 Ω

Solution analytique

On recherche la valeur de R pour laquelle la dérivée de ΔU par rapport à R s'annule.

ΔU = [div]R . U [sur]RP min+R[/div] - [div]R . U [sur]RP max+R[/div]    ⇒

[div]dΔU[sur]dR[/div] = [div]U.(RP min+R) - R.U[sur](RP min+R)2[/div] - [div]U.(RP max+R) - R.U[sur](RP max+R)2[/div] = [div]U.RP min[sur](RP min+R)2[/div] - [div]U.RP max[sur](RP max+R)2[/div]

[div]dΔU[sur]dR[/div] = 0    ⇒    [div]RP min[sur](RP min+R)2[/div] = [div]RP max[sur](RP max+R)2[/div]    ⇒

RP min . RP max2 + RP min . R2 + 2 . RP min . RP max . R = RP max . RP min2 + RP max . R2 + 2 . RP max . RP min . R    ⇒

RP min . RP max2 - RP max . RP min2 = RP max . R2 - RP min . R2    ⇒

RP min . RP max .(RP max - RP min) = R2.(RP max - RP min)    ⇒

R = [rac]RP min . RP max[/rac] = [rac]200 × 40000[/rac] = 2828 Ω

Conclusion

La plage de tension varie fortement avant la résistance optimale et faiblement après. On a intérêt à choisir une valeur quelque peu supérieure à 2900 Ω, par exemple 4000 Ω.