pythonIntroduction au langage de programmation Python

Un module Python pour l'étude des circuits électriques linéaires en régime continu

Ce module se veut pédagogique car il s'appuie sur l'écriture des lois de l'électricité pour résoudre un problème donné.
Il ne s'agit donc pas d'un logiciel de simulation.

Télécharger le module dc (version 0.2.1)

Documentation pydoc

Exemple 0 - Loi d'Ohm

Une résistance de 100 Ω est alimentée par une tension de 5 volts.
Que vaut le courant dans la résistance ?
Quelle est la puissance consommée ?

>>> from dc import *
>>> loi = Loi()
>>> U = Tension(5)
>>> R = Resistance(100)
>>> I = loi.Ohm(u=U, r=R)
>>> I.Info()
Intensité du courant : 0.05 A (50.000000 mA)
>>> P = loi.Joule(r=R, i=I)
>>> P.Info()
Puissance : 0.25 W (250.000000 mW)

On peut aussi utiliser les équations littérales.
Notez que si l'équation n'est pas homogène, vous aurez droit à un message d'erreur :

>>> I = U/R
>>> I.Info()
Intensité du courant : 0.05 A (50.000000 mA)
>>> I = R/U
TypeError: mauvais type

Pour la puissance :

>>> P = (R*I)*I
>>> P = U*(U/R)
>>> P = U*I

Exemple 0b - Résistance équivalente

Que vaut la résistance équivalente à l'association en parallèle de 2 résistances 1 kΩ et 1,5 kΩ ?

>>> from dc import *
>>> loi = Loi()
>>> R1 = Resistance(1000)
>>> R2 = Resistance(1500)
>>> Req = loi.Rparallele(R1, R2)
>>> Req.Info()
Résistance : 600.000000 Ω

Voici une notation équivalente bien pratique :

>>> Req = R1//R2
>>> Req.Info()
Résistance : 600.000000 Ω

Avec les équations littérales :

>>> Req = 1/(1/R1+1/R2)
>>> Req = R1*(R2/(R1+R2))

Enfin, en passant par les conductances :

>>> G1 = 1/R1
>>> G2 = 1/R2
>>> Geq = G1+G2
>>> Geq.Info()
Conductance : 0.00166667 S (1.666667 mS)
>>> Req = 1/Geq
>>> Req.Info()
Résistance : 600.000000 Ω

Exemple 1

On s'intéresse au circuit électrique suivant :

schéma

Données :
E = 12 V ; R1 = 1 kΩ ; R2 = 2,7 kΩ et R3 = 1,8 kΩ

Télécharger les scripts exemple1.py et exemple1_bis.py

Ce script calcule les courants I1, I2 et I3, les tensions U1 et U2 et fait un bilan de puissances.

Résultat :

Générateur E :
Puissance : 0.0692308 W (69.230769 mW)
Résistance R1 :
Puissance : 0.033284 W (33.284024 mW)
Résistance R2 :
Puissance : 0.0143787 W (14.378698 mW)
Résistance R3 :
Puissance : 0.021568 W (21.568047 mW)
Puissance totale consommée par les résistances :
Puissance : 0.0692308 W (69.230769 mW)
 
+--------+
| Résumé |
+--------+
 
Résistances
-----------
Req
Résistance : 2080 Ω (2.080000 kΩ)
R1
Résistance : 1000 Ω (1.000000 kΩ)
R2
Résistance : 2700 Ω (2.700000 kΩ)
R3
Résistance : 1800 Ω (1.800000 kΩ)

Tensions
--------
U1
Tension : 5.769231 V
U2
Tension : 6.230769 V
masse
Tension : 0.000000 V
E
Tension : 12.000000 V

Courants
--------
I2
Intensité du courant : 0.00230769 A (2.307692 mA)
I1
Intensité du courant : 0.00576923 A (5.769231 mA)
I3
Intensité du courant : 0.00346154 A (3.461538 mA)

Exemple 2a

Le même circuit électrique mais avec une résistance R3 ajustable :

Etude de l'évolution de U2 en fonction de R3

R3 = ? 0

Propriétés de R3 :
Résistance : 0.000000 Ω
Propriétés de U2 :
Tension : 0.000000 V

R3 = ? 100

Propriétés de R3 :
Résistance : 100.000000 Ω
Propriétés de U2 :
Tension : 1.055375 V

R3 = ? 

Télécharger les scripts exemple2a_analyse_parametrique.py et exemple2a_analyse_parametrique_bis.py

Exemple 2b

On utilise ici le module matplotlib pour faire de belles courbes :

figure 1

figure 2

figure 3

Télécharger les scripts exemple2b_analyse_parametrique.py et exemple2b_analyse_parametrique_bis.py

Exemple 3

On cherche la valeur de R3 qui donne U2 = 6,00 V.
On utilise une méthode dichotomique :

Itération  R3 (Ω)               U2 (V)
         1               5000.0    7.641509433962264
         2               2500.0   6.7782426778242675
         3               1250.0   5.5290102389078495
         4               1875.0    6.303501945525291
         5               1562.5    5.969049373618275
         6              1718.75    6.146947223180407
         7             1640.625    6.060929983965794
         8            1601.5625   6.0157594420795215
         9           1582.03125    5.992601726263872
        10          1591.796875    6.004229291252643
        11         1586.9140625    5.998427762523782
        12        1589.35546875    6.001331580654524
        13       1588.134765625     5.99988043623693
        14      1588.7451171875    6.000606199456697
        15     1588.43994140625    6.000243365618415
        16    1588.287353515625    6.000061912872932
        17   1588.2110595703125     5.99997117754154

Résultat : 1588.2110595703125 Ω

Télécharger les scripts exemple3_solution.py et exemple3_solution_bis.py

Bibliographie

Cours d'électricité