Vpython 期末報告

磁瓶效應

磁瓶效應

遇磁場密集處 => 反彈

會有部分角度及速度無法捕捉電子

研究動機

在這堂課中學了不少python運用方式,想要藉由python的程式運行產生的動畫來觀察螺線管產生磁場的情況,並利用必歐 - 沙伐定律以及勞倫茲力來輔助程式的編寫。

螺線管產生之磁場

必歐 - 沙伐定律 (Biot–Savart law)

\vec{B}=\int \frac{\mu_{0}}{4 \pi} \frac{id\vec{s} \times \vec{r}}{r^{3}}

實作方法

將螺線管分割成很多小塊

求任意位置的磁場時 將所有小塊的磁場帶入定律做總和

# 自訂函式 magnetic, 計算某個位置的磁場
def magnetic(loc, segments):
    field = vector(0, 0, 0)
    for segment in segments:
        axis = loc - segment.pos
        field += mu*current/(4*pi)*mag(segment.axis)*cross(segment.axis, axis.norm())/mag(axis)**2
    return field 

程式實作

勞倫茲力

1892年,荷蘭物理學家亨德里克·勞侖茲提出了勞侖茲力
而勞倫茲力定律可以方程式表達為:

 

帶電粒子的電荷量

電場強度

帶電粒子速度

磁感應強度

程式實作

\vec F = q (\vec E + \vec v \times \vec B)

# 計算羅倫茲力產生的加速度    
def lorentz(v,B):
    a=q*cross(v,B)/m
    return a

程式源碼

 隨機位置速度測試

# 產生隨機位置速度小球
def randinit():
    eposx = np.random.randint(low=60,high=140,size=10)
    eposy = np.random.randint(low=-20,high=20,size=10)
    evx = np.random.randint(low=-50,high=50,size=10)
    evy = np.random.randint(low=-30,high=30,size=10)
    electronic = [sphere(pos = vector(eposx[i],eposy[i],0),
                v=vector(evx[i],evy[i],0),a=vector(0,0,0),
                radius = 1.5,color = color.blue, 
                make_trail=True) for i in range(10)]
    init=[[eposx[i],eposy[i],evx[i],evy[i]]for i in range(10)]
    return electronic,init
def difdegree(v):
    evx=[]
    evy=[]
    energy=[]
    for i in range(360):
        evx.append(v*cos(2*pi*i/360))
        evy.append(v*sin(2*pi*i/360))
    electronic = [sphere(pos = vector(100,0,0),v=vector(evx[i],evy[i],0),
                a=vector(0,0,0),radius = 1.5,color = color.blue, 
                make_trail=True)for i in range(360)]
    for i in range(360):
        energy.append(0.5*m*((evx[i])**2+(evy[i])**2))
    return electronic,energy

相同速度位置、不同角度測試

while t<5:
	electronic[i].a=lorentz(electronic[i].v,magnetic(electronic[i].pos,segs1+segs2))
	electronic[i].v+=electronic[i].a*dt
	electronic[i].pos+=electronic[i].v*dt
	t+=dt

球受磁場影響加速度

統計結果

首先我們用時間間隔為0.001測試

在來是間隔0.0001

GPU \|/

資料來源

研究心得

  • 學習到的物理延伸
  • 更多vpython工具的應用
  • 遭遇眾多困難瓶頸
  • 如何應付混分組員
  • 如何成為混分組員

分工比例 :

梁棨理 27% 陳希愷 25% 張貽凱 24% 蘇煒元 24%

Vpython

By richardliang