matlab实例静电场,浅析Matlab模拟静电场三维图与恒定电流场模拟静电场
淺析Matlab模擬靜電場三維圖與恒定電流場模擬靜電場
淺析Matlab模擬靜電場三維圖 與恒定電流場模擬靜電場 摘要:本文利用恒定電流場模擬靜電場,通過尋找等勢點的方法描繪出點電荷對的電力線和電勢面;而后利用Matlab來實現點電荷對在三維空間里的電力線以及等勢面的描繪,并且給出其詳盡的計算程序以及注釋,使Matlab初學者能夠輕松的看懂程序;同時對Matlab模擬靜電場和恒定電流模擬靜電場兩種方法描繪點電荷對之間的電力線圖以及等勢線圖進行分析對比。 關鍵詞:Matlab;電力線;等勢面;三維 1 引言 對于靜電場的描繪有很多方法以及改進。代偉等人對傳統的恒定電流法模擬靜電場的實驗做出了導電介質、等位點觀測以及等位點記錄等方面做了改進,使實驗結果更加精確[1]。而對于Matlab描繪靜電場中,王明美利用streamline命令描繪出了一對點電荷的二維電力線和等勢線[2]。王靜將兩點電荷的電荷量改為比值,對Matlab描繪靜電場實驗進行了優化[3]。周勝利用循環和ode45解微分方程的方法描繪出點電荷的電場[4]。張雅男等人對恒定電流模擬靜電場和matlab模擬靜電場二維情況下繪制出的圖形進行比較,并且通過分析得出兩種方法所得的結果相似卻并不完全一致[5]。 本文通過比較matlab來模擬描繪電荷對之間的靜電場的方法與恒定電流法描繪靜電場的方法,對兩種實驗的原理、過程以及結果進行比較,進而了解兩種方法之間的區別、聯系以及優缺點。 2 利用恒定電流場模擬靜電場 2.1 簡介恒定電流場模擬靜電場實驗原理 帶電體在周圍空間產生的電場可以用電場強度E或者電勢U來描述。由于靜電場中不會有電流,不能夠用直流電表直接測量。而靜電式儀表要用到金屬制的探頭,當探頭伸入靜電場中時,靜電場會發生顯著變化。不能夠直接在靜電場中繪制等勢線。而從靜電場和電流場都引入電勢U,都遵守高斯定理等相似的地方,所以可以利用恒定電流場來對靜電場進行模擬[6]。 2.2 恒定電流場模擬靜電場實驗 當繪制點電荷對電場時,通過兩個電極接到導電介質上,再在電極上加上恒定直流電壓,就可以得到了恒定電流場。 導電介質可以選取導電紙、水、導電玻璃等,本文選用的導電介質是導電紙。 實驗結果可以利用等臂記錄法、復寫紙法、放大尺法等方法來記錄。本文利用了補償法電路[6]和復寫紙法來尋找等勢點并減小誤差。并且繪制出了等量異號點電荷對形成的等勢線以及電力線,并且取點在excel中擬合出圖形,如圖1。 圖1 等量異種點電荷的等勢線和電力線 Fig.1 The power line and potential of a pair of diffient class equivalent point charges 圖1顯示:等量異種點電荷等勢線越靠近電荷越密集。電力線起于正電荷終于負電荷。 3 利用Matlab模擬靜電場 3.1 簡介Matlab部分編程命令 Plot3是畫三維曲線的命令,可以描繪出空間中立體電力線。 Surf是將三維網格連成曲面的命令,可以形成三維空間下的電勢面。 Contour是等高線命令,可以畫出平面等勢線。 Gradient是求梯度的命令。由于電場強度是電勢的負梯度[7]公式:,利用命令[Ex,Ey]=gradient(-U),求出電場在空間各點的x分量和y分量。 Ode45是matlab中一個常用的解微分方程的命令[8]。 3.2 實現Matlab模擬靜電場編程 3.2.1 點電荷對電力線畫法 常用的點電荷對電力線畫法有兩種:第一種叫做切線法,第二種是解微分方程[3],本文應用第二種方法。 設電荷量為q1、q2的兩點電荷在(-1,0,0)處和(1,0,0)處,空間任意一點p(x,y)。由于電場里面任意一點電場線的切線方向就是該點的場強方向,可以得到:,引入參變量t:,利用庫倫定理和場強疊加原理,則可以求出兩點電荷在p點的場強分別為: 計算其和場強為: 由此我們可以得到電力線的微分方程: 在計算公式中靜電力常量,由于我們運用matlab模擬繪圖,可以將k值取為1,所得出的靜電場圖形不變[3]。 將此微分方程編成函數文件: function dxdy=fun1(t,p,flag,q1,q2); dxdy=[q1*p(1)./(sqrt((p(2)+1).^2+p(1).^2).^3)+q2*p(1)./(sqrt((p(2)-1).^2+p(1).^2).^3); q1*(p(2)+1)./(sqrt((p(2)+1).^2+p(1).^2).^3)+q2*(p(2)-1)./(sqrt((p(2)-1).^2+p(1).^2).^3)]; 命名為fun1.m。 接下來利用上面編輯好的微分方程函數來繪出等量同種點電荷對的電力線。首先可以將電荷量設為e的倍數,我們在輸入電荷量的時候就可以簡化為輸入實數來描繪靜電場了。 clear,clc,close all %清除命令 q1=2;q2=2; %確定兩點電荷的電荷量 a=1; %設定兩點電荷到原點的距離 a0=0.1; %設定點電荷的半徑 figure (1); %建立圖形窗口1 box on; %形成框狀坐標軸 hold on; %控制圖像不可擦除模式 xlabel(‘X’,’fontsize’,16);ylabel(‘Y’,’fontsize’,16);zlabel(‘Z’,’fontsize’,16); %標注X,Y,Z軸,字號16 [t,p,l]=sphere; %形成球形坐標矩陣 surf(a0*t+1,a0*p+0,a0*l+0); %在(1,0,0)處畫出第一個點電荷 surf(a0*t-1,a0*p+0,a0*l+0); %在(-1,0,0)處畫出第一個點電荷 x0=2;y0=2;z0=1; %設定坐標范圍 x=linspace(-x0,x0,20);y=linspace(-y0,y0,20); %設定坐標向量 z=linspace(-z0,z0,20); %設定坐標向量 [X,Y,Z]=meshgrid(x,y,z); %設置坐
總結
以上是生活随笔為你收集整理的matlab实例静电场,浅析Matlab模拟静电场三维图与恒定电流场模拟静电场的全部內容,希望文章能夠幫你解決所遇到的問題。