任文藝,姜建剛,張社奇,王國棟,解迎革,杜光源
(1.西北農(nóng)林科技大學,陜西 楊凌 712100;2.長江師范學院, 重慶 涪陵 408100)
?
基于Matlab的點電荷系中的靜電場三維可視化研究
任文藝1,2,姜建剛1,張社奇1,王國棟1,解迎革1,杜光源1
(1.西北農(nóng)林科技大學,陜西 楊凌712100;2.長江師范學院, 重慶 涪陵408100)
摘 要:基于Matlab提出了一種點電荷系電場強度和電勢的三維可視化方法,使得對于點電荷系電場能夠得到更加直觀的認知,為點電荷系靜電場的研究和教學提供了一種新方法。
關鍵詞:點電荷系;電場強度;電勢;可視化
(1)
(2)
(3)
(4)
綜合(2)、(4)兩式即可以求出一個電荷系中的電場強度和電勢的分布。
在電場強度和電勢的研究中,為了使我們能夠得到更加直觀的了解,國內外許多學者和機構開展了電磁場的可視化研究。通過計算機語言,將電場和電勢以直觀的圖像展現(xiàn)了出來,極大地促進了電場的科學研究和教學工作[4]。目前為止,已經(jīng)通過Matlab、C語言和C++語言等得到了實現(xiàn).研究的內容主要是二維點電荷系的電場強度和電勢的分布研究,對于三維點電荷系的研究不足,尚未見到相關的可視化研究[5-8]。本文基于Matlab語言,將對三維空間點電荷系的電場強度和電勢分布情況進行可視化研究[9]。
1可視化實現(xiàn)步驟
以8電子構成的靜電場為研究對象,假定該8個電子的空間位置依次為:(1,1,1),(-1,1,1),(1,-1,1),(1,1,-1),(-1,-1,1),(-1,1,-1),(-1,-1,-1),(1,-1,-1)。也即這8個電子位于邊長為2、中心坐標為(0,0,0)的立方體的八個頂點上.則得到該帶點系電勢和電場強度分布的方法如下:
步驟一:依據(jù)(4)式求空間點的電勢,在MATLAB中通過for循環(huán)語句完成電勢疊加的過程,運用contourslice繪圖函數(shù)得到三維等勢線圖;
步驟二:依據(jù)(2)式求電場強度,在MATLAB中有函數(shù)gradient可以實現(xiàn)標量場求梯度,利用streamslice繪圖函數(shù)得到三維電場線圖.
2Matlab實現(xiàn)代碼
clc;
clear;
close all;
N_q = 8;%靜電荷數(shù)
k = 4*pi*8.85418787e-9; %庫倫常數(shù)
Q = [1 1 1 1 1 1 1 1]*1e-19; %初始化電荷帶電量
%初始化電荷坐標
x0 = [1 -1 1 1 -1 -1 -1 1];
y0 = [1 1 -1 1 -1 1 -1 -1];
z0 = [1 1 1 -1 1 -1 -1 -1];
%建立三維空間格點
[x,y,z] = meshgrid(-2:0.1:2);
% -------------求空間點的電勢-------------
L = length(-2:0.1:2);
U = zeros(L,L,L);
fori = 1:length(Q)
U = U+Q(i)./k./sqrt( (x-x0(i)+0.00001).^2+(y-y0(i) …
+0.00001).^2+(z-z0(i)+0.00001).^2);
end
% ------------繪制電勢的三維等勢線--------
contourslice(x,y,z,U,-1:0.5:1,-1:0.5:1,-1:0.5:1,10,'spline');
xlabel('x(m)')
ylabel('y(m)')
zlabel('z(m)')
shadinginterp
hold on
% ------------繪制點電荷--------
fori = 1:N_q
[x1,y1,z1] = sphere;
mesh(x1/10+x0(i),y1/10+y0(i),z1/10+z0(i))
if Q(i)>=0
colormap hsv
else
colormap gray
end
end
alpha(0.5)
axis([-2,2,-2,2,-2,2])
view(3)
% ------------求電場強度-----------
[Ex,Ey,Ez]=gradient(U,0.1,0.1,0.1);
% ------------繪制電場線-----------
figure
streamslice(x,y,z,-Ex,-Ey,-Ez,x0,y0,z0)
xlabel('x(m)')
ylabel('y(m)')
zlabel('z(m)')
colormap hsv;
hold on
% -----------繪制點電荷--------
fori = 1:N_q
[x1,y1,z1] = sphere;
mesh(x1/10+x0(i),y1/10+y0(i),z1/10+z0(i))
colormap hsv
end
alpha(0.5)
axis([-2,2,-2,2,-2,2])
view(3)
3處理結果
基于以上的MATLAB程序,我們得到了8個正電子帶電系的電勢(如圖1所示)和電場強度(如圖2所示)分布圖,并給出了對應的二維分布圖??梢钥闯?,三維曲線更加全面和準確地反映了電勢和電場強度的物理性質(如等勢面、電場方向等)。
圖1 8電子帶電系的電勢的三維和二維分布圖
圖2 電場強度三維和二維分布圖
4結論
文章中的方法具有一定的普遍性,它適用于空間任意多個、任意帶電量的帶點體系。對于任意電荷的帶電體系,在可視化過程中只需要改變其對應的空間坐標和帶電量即可以得到其電場的三維分布圖。
參考文獻:
[1]郭杰榮,蔡新華,胡惟文.基于MATLAB的空間電磁分布可視化研究[J].實驗技術與管理,2005,22(8):4-7.
[2]楊習志.利用Matlab研究點電荷間的電勢與電場強度的分布問題[J].物理教師,2015,36(4):69-73.
[3]矯洪楠,侯恕.電偶極子激發(fā)的電場及其MATLAB軟件的模擬仿真[J].物理通報,2014(10):27-29.
[4]唐軍杰,王愛軍,趙昆,等.Matlab在電磁場可視化教學中的應用[J].物理與工程,2013,23(1):42-45.
[5]楊能彪.Mathematic在圓形波導電磁場可視化中的應用[J].甘肅科技,2006,22(8):117-118.
[6]唐美.帶電圓環(huán)的Matlab可視化電場解析及模擬[J].湖北第二師范學院學報,2012,29(8):65-66.
[7]畢升,葉紅軍.基于MATLAB的靜電場模擬[J].大學物理實驗,2013,26(4):89-91.
[8]王福謙.線電荷與帶有半圓柱凸起的接地導體所形成的電場[J].大學物理,2010,29(6):15-17.
[9]劉志成,等.Matlab可視化在大學物理實驗中的應用[J].大學物理實驗,2015(1):10-11.
The Study on the Three Dimensional Visualization of Static Electric Field in Point Charge System Based on Matlab
REN Wen-yi1,2,JIANG Jian-gang1,ZHANG She-qi1,WANG Guo-dong1,XIE Ying-ge1,DU Guang-yuan1
(1.Northwest A&F Univ.,Shaanxi Yangling 712100;2.Yangtze Normal Univ.,Chongqing Fuling 408100)
Abstract:A method was proposed to present the electric field intensity and potential distribution of point charge system in three dimensional space based on Matlab.It made the static electric field explicit for the students and provided us an alternative approach to the study and teaching on static electric field.
Key words:point charge system;electric field intensity;potential;visualization
中圖分類號:O 4-39
文獻標志碼:A
DOI:10.14139/j.cnki.cn22-1228.2016.001.026
文章編號:1007-2934(2016)01-0101-03
基金項目:國家自然科學基金青年基金(11504297);西北農(nóng)林科技大學15年第二批基本科研業(yè)經(jīng)費(2452015225)(2452015226);西北農(nóng)林科技大學博士科研啟動基金(Z109021504)(Z109021508)
收稿日期:2015-08-24