0% ont trouvé ce document utile (0 vote)
66 vues10 pages

Devoir Libre 3: 1-Ligne Du Champ Pour Une Charge Ponctuelle

Transféré par

Majd Laayoune
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
66 vues10 pages

Devoir Libre 3: 1-Ligne Du Champ Pour Une Charge Ponctuelle

Transféré par

Majd Laayoune
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Majd Laayoune

MP-1

Devoir libre 3
1- Ligne du champ pour une charge ponctuelle :
import [Link] as plt

import numpy as np

## Paramétrage
e_0 = 8.85*10**(-12)

objets = []

## Construction de la distribution de charge et de la zone d'observation


def ajouter_objet(x,y,q):

[Link]([x,y,q])

# Ajout d'une charge ponctuelle


q_charge = - 1.6*10**(-19)

L = 10**(-10)

a = L / 100

ajouter_objet(0, 0, q_charge)

## Calcul du potentiel
def calculV(xM,yM,q,xO,yO):

"""

calcul du potentiel en xM, yM créé par une charge ponctuelle q placée en xO,yO

"""
# problème pour la position de coordonnées xO,yO

if xM == xO and yM == yO :

return 0

else :

return q/(4*[Link]*e_0)*1/((xM-xO)**2+(yM-yO)**2)**(1/2)

x = [Link](- L/2, L/2, int(L/a))

y = [Link](- L/2, L/2, int(L/a))

X, Y = [Link](x,y)

nM = len(X)

no = len(objets)
V = [Link]((nM,nM))

for i in range(0,nM) :

for j in range (0,nM):

for k in range(0,no):

V[i,j] = V[i,j] + calculV(x[i], y[j], objets[k][2], objets[k][0],


objets[k][1])

## Calcul du champ électrique


Ex = [Link]((nM -1, nM -1))

Ey = [Link]((nM-1 , nM -1))

for i in range (0, nM-2) :

for j in range (0, nM-2) :

Ex[i,j] = - (V[i,j+1] - V[i,j]) / a

Ey[i,j] = - (V[i+1,j] - V[i,j]) / a

## Ajustage des matrices V, X et Y

Vajust = [Link]((nM - 1, nM - 1))

for i in range (0, nM - 1) :

for j in range (0, nM - 1) :

Vajust[i,j] = V[i,j]

Xajust = [Link]((nM - 1, nM - 1))

for i in range (0, nM - 1):

for j in range (0, nM - 1):

Xajust[i,j] = X[i,j]

Yajust = [Link]((nM - 1, nM - 1))

for i in range (0, nM - 1):

for j in range (0, nM - 1):

Yajust[i,j] = Y[i,j]

## Affichage des courbes


schema = [Link](Xajust, Yajust, Vajust, 40)

cbar = [Link]()

cbar.set_label("Potentiel en Volt")

[Link]("equal")

[Link]("Equipotentielles et lignes de champ")


schema = [Link](Xajust, Yajust, Ex, Ey, linewidth=1, density=1)

[Link]()
OBSERVATIONS :

 Le calcul du potentiel semble correct. Il prend en compte les contributions de chaque charge
ponctuelle et calcule le potentiel électrique en chaque point de la région d'observation.
 Les composantes du champ électrique (Ex et Ey) sont calculées en prenant le gradient négatif du
potentiel. Cela est conforme à la relation E=−∇V.
 Le tracé offre une visualisation complète du potentiel et du champ électrique où les lignes du
champ convergent vers la charge ponctuelle.

2- Dipôle électrostatique :

## Importation des bibliothèques


import [Link] as plt
import numpy as np
## Paramétrage
e_0 = 8.85*10**(-12)
objets = []
## Construction de la distribution de charge et de la zone d'observation
def ajouter_objet(x,y,q):
[Link]([x,y,q])
# Ajout d'un dipôle
q_dipole = 2.9*10**(-20)
d_dipole = 1.274*10**(-10)
L = 10**(-9)
a = L / 100
ajouter_objet(- d_dipole/2, 0, q_dipole)
ajouter_objet(+ d_dipole/2, 0, - q_dipole)
## Calcul du potentiel
def calculV(xM,yM,q,xO,yO):
"""
calcul du potentiel en xM, yM créé par une charge ponctuelle q placée en
xO,yO
"""
# problème pour la position de coordonnées xO,yO
if xM == xO and yM == yO :
return 0
else :
return q/(4*[Link]*e_0)*1/((xM-xO)**2+(yM-yO)**2)**(1/2)
x = [Link](- L/2, L/2, int(L/a))
y = [Link](- L/2, L/2, int(L/a))
X, Y = [Link](x,y)
nM = len(X)
no = len(objets)
V = [Link]((nM,nM))
for i in range(0,nM) :
for j in range (0,nM):
for k in range(0,no):
V[i,j] = V[i,j] + calculV(x[i], y[j], objets[k][2], objets[k][0],
objets[k][1])
## Calcul du champ électrique
Ex = [Link]((nM - 1, nM - 1))
Ey = [Link]((nM - 1, nM - 1))
for i in range (0, nM-2) :
for j in range (0, nM-2) :
Ex[i,j] = - (V[i,j+1] - V[i,j]) / a
Ey[i,j] = - (V[i+1,j] - V[i,j]) / a
## Ajustage des matrices V, X et Y
Vajust = [Link]((nM - 1, nM - 1))
for i in range (0, nM - 1) :
for j in range (0, nM - 1) :
Vajust[i,j] = V[i,j]
Xajust = [Link]((nM - 1, nM - 1))
for i in range (0, nM - 1):
for j in range (0, nM - 1):
Xajust[i,j] = X[i,j]
Yajust = [Link]((nM - 1, nM - 1))
for i in range (0, nM - 1):
for j in range (0, nM - 1):
Yajust[i,j] = Y[i,j]
## Affichage des courbes
schema = [Link](Xajust, Yajust, Vajust, 40)
cbar = [Link]()
cbar.set_label("Potentiel en Volt")
[Link]("equal")
[Link]("Equipotentielles et lignes de champ")
schema = [Link](Xajust, Yajust, Ex, Ey, linewidth=1, density=1)
[Link]()
OBSERVATIONS :

 L'ajout d'un dipôle est implémenté correctement avec deux charges opposées à une distance
donnée. Cela permet de modéliser un dipôle électrique.
 Le calcul du potentiel est similaire au premier exemple et semble correct, prenant en compte les
contributions des charges ponctuelles.
 Le calcul du champ électrique est également similaire, en utilisant la différence finie pour obtenir
les composantes Ex et Ey à partir du potentiel.

3-Condensateur plan :

## Importation des bibliothèques


import [Link] as plt
import numpy as np
## Paramétrage
e_0 = 8.85*10**(-12)
objets = []
## Construction de la distribution de charge et de la zone d'observation
def ajouter_objet(x,y,q):
[Link]([x,y,q])
# Ajout d'un condensateur
q_cond = 10 ** (-14)
L_cond = 0.01 # Longueur des plaques du condensateur
e_cond = 0.005 # Distance entre les deux plaques
L = 0.015 # Longueur du domaine
a = L/100 # pas spatial
xi = [Link](0, L_cond, 100)
for i in xi:
ajouter_objet(-L_cond/2 + i, e_cond/2, q_cond)
for i in xi:
ajouter_objet(- L_cond/2 + i, - e_cond/2, - q_cond)

## Calcul du potentiel
def calculV(xM,yM,q,xO,yO):
"""
calcul du potentiel en xM, yM créé par une charge ponctuelle q placée en
xO,yO
"""
# problème pour la position de coordonnées xO,yO
if xM == xO and yM == yO :
return 0
else :
return q/(4*[Link]*e_0)*1/((xM-xO)**2+(yM-yO)**2)**(1/2)
x = [Link](- L/2, L/2, int(L/a))
y = [Link](- L/2, L/2, int(L/a))
X, Y = [Link](x,y)
nM = len(X)
no = len(objets)
V = [Link]((nM,nM))
for i in range(0,nM) :
for j in range (0,nM):
for k in range(0,no):
V[i,j] = V[i,j] + calculV(x[i], y[j], objets[k][2], objets[k][0],
objets[k][1])
## Calcul du champ électrique
Ex = [Link]((nM - 1, nM - 1))
Ey = [Link]((nM - 1, nM - 1))
for i in range (0, nM-2) :
for j in range (0, nM-2) :
Ex[i,j] = - (V[i,j+1] - V[i,j]) / a
Ey[i,j] = - (V[i+1,j] - V[i,j]) / a
## Ajustage des matrices V, X et Y
Vajust = [Link]((nM - 1, nM - 1))
for i in range (0, nM - 1) :
for j in range (0, nM - 1) :
Vajust[i,j] = V[i,j]

Xajust = [Link]((nM - 1, nM - 1))


for i in range (0, nM - 1):
for j in range (0, nM - 1):
Xajust[i,j] = X[i,j]
Yajust = [Link]((nM - 1, nM - 1))
for i in range (0, nM - 1):
for j in range (0, nM - 1):
Yajust[i,j] = Y[i,j]
## Affichage des courbes
schema = [Link](Xajust, Yajust, Vajust, 40)
cbar = [Link]()
cbar.set_label("Potentiel en Volt")
[Link]("equal")
[Link]("Equipotentielles et lignes de champ")
schema = [Link](Xajust, Yajust, Ex, Ey, linewidth=1, density=1)
[Link]()
OBSERVATIONS :

 Le condensateur est modélisé en ajoutant des charges linéaires le long des plaques.
 Le calcul du potentiel est effectué prenant en compte les contributions des charges ponctuelles.
 Le calcul du champ électrique utilise la différence finie pour obtenir les composantes Ex et Ey à
partir du potentiel, de manière similaire aux exemples précédents.
 La direction des lignes du champ nous indique que l’armature verte est chargée positivement, et
le contraire pour la bleue.

Vous aimerez peut-être aussi