3
2

点電荷による電場解析

Last updated at Posted at 2024-03-05

はじめに

クーロンの法則により、点電荷の電場と電位は解析することができる。しかし、一般の形のある電荷を持つ物体によって働く電場や電位を求めるのは難しい。

そこで、今回は物体を点電荷の集合体と考えることによって広さ有限の平面コンデンサに働く、電場と電位についてPythonを用いて解析することができるかまず考察する。

次に、円筒型コンデンサの電場と電位についても同様の方法で調査する。
ただし、電場と電位の図示にmatplotlibを用いて、電場の計算にnumpyのgradientを用いた。

平面板コンデンサ

プログラム

電極平板を微小の点電荷に分解して独自にクーロン法則を立てて、最後に加算することで電位を求めるという方法を用いる。以下のようなプログラムを作成する。

python con_E.py
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

coords,ds = np.linspace(-0.6,0.6,100,retstep=True)


#XY領域の作成
X,Y = np.meshgrid(coords,coords)

k = 9.0*10**9
#微小区間の電荷の大きさ
q1=1

d=0.1
n=10000
#電極の範囲(長さ0.4の電極平板の作成)
x=np.linspace(-0.2,+0.2,n)
Z=0

for i in range(n):
  #電極の図示
  plt.plot(x[i],-d,'o',color='blue')
  plt.plot(x[i],d,'o',color='red')
  #電位の計算
  Z=Z-  k*q1/((X-x[i])**2+(Y+d)**2)**0.5+k*q1/((X-x[i])**2+(Y-d)**2)**0.5



n=100
#電位のグラフ 等高線n本
plt.contour(X,Y,Z,n)
plt.colorbar()


#勾配の配列は行方向、列方向の順で返されるので注意
#勾配つまり傾きを求める
dY,dX=np.gradient(Z,ds)
#電場
Ex=-dX
Ey=-dY

#電場のグラフ
plt.streamplot(X,Y,Ex,Ey)

# ax.quiver(X,Y,dX,dY)

plt.savefig("異符号の電場と電位_コンデンサ.png")

plt.show()

これを実行すると以下のような画像が出力される。

異符号の電場と電位_コンデンサ.png

等電位面は等高線で示してあり、電場はベクトル図として表してある。ここで分かることは、有限の大きさのコンデンサ平板なので、電場はまっすぐでなく若干曲がってしまうということである。そのせいか、電位も電極の形に依存してしまっている。また、無限平面のコンデンサならば、コンデンサ外部の空間に働く電場の大きさは0となるはずであるが、今回は若干電場が存在してしまっている。

円筒形コンデンサ

半径が$r_1$と$r_2$の電極板をモデルにした円筒形コンデンサを考える。ただし、$r_1 < r_2$として、電極の符号はそれぞれ正と負である。

プログラム

python con_E_en.py
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import math
coords,ds = np.linspace(-0.6,0.6,100,retstep=True)


#XY領域の作成
X,Y = np.meshgrid(coords,coords)

k = 9.0*10**9
#微小区間の電荷の大きさ
q1=1*10**(-10)

n=1000
#電極の範囲(長さ0.4の電極平板の作成)
theta=np.linspace(0,2*math.pi,n)

r1=0.1
r2=0.55

Z=0

for i in range(n):
  #電極の図示
  x1= r1*np.cos(theta[i])
  x2= r2*np.cos(theta[i])

  y1= r1*np.sin(theta[i])
  y2= r2*np.sin(theta[i])

  plt.plot(x1,y1,'o',color='red')
  plt.plot(x2,y2,'o',color='blue')
  #電位の計算
  Z=Z+  k*q1/((X-x1)**2+(Y-y1)**2)**0.5-k*q1/((X-x2)**2+(Y-y2)**2)**0.5



n=100
#電位のグラフ 等高線n本
plt.contour(X,Y,Z,n)
plt.colorbar()


#勾配の配列は行方向、列方向の順で返されるので注意
#勾配つまり傾きを求める
dY,dX=np.gradient(Z,ds)
#電場
Ex=-dX
Ey=-dY

#電場のグラフ
plt.streamplot(X,Y,Ex,Ey)

# ax.quiver(X,Y,dX,dY)

plt.savefig("異符号の電場と電位_コンデンサ.png")

plt.show()

異符号の電場と電位_コンデンサ.png

この図から分かるように、正の電極から負の電極にむけて電場ベクトルが描写されている。

まとめ

今回は、前半で有限の広さを持つコンデンサ平板に電荷を与えたときに生じる電場と電位について解析した。解析方法としては、点電荷の集合体として考えることによってクーロンの法則により電位を重ね合わせて、それを微分することによって電場を求めた。すると中央付近の電場は電極とほぼ垂直であったが、端の方では歪んでしまった。したがって、コンデンサ内の電場を制御するためには、電極の形状が重要であるということが分かる。
また、後半では、円筒型コンデンサについても同様な方法でシミュレートした。この場合も、電場ベクトルと等電位面は垂直であり、電場ベクトルは正の電極から負の電極に向けて存在しているということがわかった。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2