电磁场数值方法 课程设计
一. 设计题目:
用差分法求两个矩形导体间的电容,边界条件如图所示,单位:cm.
要求:求电位分布时,取1/4的区域计算;
二.分析方法:
如图,建立坐标系,编号1,2,3,4,5,6。图中阴影部分即所取1/4区域
在12边和34边由场域两边对称性,可知满足第二类边界条∂d /∂n =0。运用相对应的差分公式和高斯迭代公式计算 12边:
U (i , j +1)+U (i , j -1)+2*U (i +1, j )-4*U (i , j )=0
U (i , j )=U (i , j )+w /4*(U (i , j +1)+U (i , j -1)+2*U (i +1, j )-4*U (i , j )) 34边
:
2*U (i , j +1)+U (i -1, j )+U (i +1, j )-4*U (i , j )=0
U (i , j )=U (i , j )+w /4*(2*U (i , j +1) +U (i -1, j ) +U (i +1, j )-4 *U (i , j )) 边界1-5-4满足第一类边界条件U=0V;
边界2-6-3满足第一类边界条件U=100V。
阴影部分满足内点差分公式
U (i +1, j )+U (i -1, j )+U (i , j +1)+U (i , j -1)-4*U (i , j )
U (i , j )=U (i , j )+w /4*(U (i +1, j )+U (i -1, j )+U (i , j +1)+U (i , j -1)-4U (i , j ))
三. 据此编程如下:
设 将1-5边剖分成3*N份;4-5剖分成2*N份
disp('i=3*N;j=2*N')
N=input('please input a N:')
count=input('迭代次数');
tol=10e-5;
u0=0; %1-5-4边界电位
u1=100; %2-6-3边界电位
factor=2/(1+sin(pi/(N-1)));
U=zeros(3*N,2*N);
for i=1:3/2*N
for j=1:N
U(i,j)=100;
end;
end
%迭代
k=0;
while k
err=0;
for i=1:3*N-1
for j=1:2*N-1
teNp=U(i,j);
if (i==1)&&(j>N)
RES=1/4*(U(i,j+1)+U(i,j-1)+2*U(i+1,j))-U(i,j); %左边界 else if (j==1)&&(i>3/2*N)
RES=1/4*(2*U(i,j+1)+U(i-1,j)+U(i+1,j))-U(i,j); %右边界 else if (i
RES=0; %内部区域 else
RES=1/4*(U(i+1,j)+U(i-1,j)+U(i,j+1)+U(i,j-1))-U(i,j); %阴影部分内点 end
end
end
U(i,j)=U(i,j)+factor*RES;
err=err+abs(teNp-U(i,j));
end
end
k=k+1;
if(err
break;
end
end
contour(U,10);
;
四. 程序结果:
这是取N=100,迭代1500次运行得出的结果
电磁场数值方法 课程设计
一. 设计题目:
用差分法求两个矩形导体间的电容,边界条件如图所示,单位:cm.
要求:求电位分布时,取1/4的区域计算;
二.分析方法:
如图,建立坐标系,编号1,2,3,4,5,6。图中阴影部分即所取1/4区域
在12边和34边由场域两边对称性,可知满足第二类边界条∂d /∂n =0。运用相对应的差分公式和高斯迭代公式计算 12边:
U (i , j +1)+U (i , j -1)+2*U (i +1, j )-4*U (i , j )=0
U (i , j )=U (i , j )+w /4*(U (i , j +1)+U (i , j -1)+2*U (i +1, j )-4*U (i , j )) 34边
:
2*U (i , j +1)+U (i -1, j )+U (i +1, j )-4*U (i , j )=0
U (i , j )=U (i , j )+w /4*(2*U (i , j +1) +U (i -1, j ) +U (i +1, j )-4 *U (i , j )) 边界1-5-4满足第一类边界条件U=0V;
边界2-6-3满足第一类边界条件U=100V。
阴影部分满足内点差分公式
U (i +1, j )+U (i -1, j )+U (i , j +1)+U (i , j -1)-4*U (i , j )
U (i , j )=U (i , j )+w /4*(U (i +1, j )+U (i -1, j )+U (i , j +1)+U (i , j -1)-4U (i , j ))
三. 据此编程如下:
设 将1-5边剖分成3*N份;4-5剖分成2*N份
disp('i=3*N;j=2*N')
N=input('please input a N:')
count=input('迭代次数');
tol=10e-5;
u0=0; %1-5-4边界电位
u1=100; %2-6-3边界电位
factor=2/(1+sin(pi/(N-1)));
U=zeros(3*N,2*N);
for i=1:3/2*N
for j=1:N
U(i,j)=100;
end;
end
%迭代
k=0;
while k
err=0;
for i=1:3*N-1
for j=1:2*N-1
teNp=U(i,j);
if (i==1)&&(j>N)
RES=1/4*(U(i,j+1)+U(i,j-1)+2*U(i+1,j))-U(i,j); %左边界 else if (j==1)&&(i>3/2*N)
RES=1/4*(2*U(i,j+1)+U(i-1,j)+U(i+1,j))-U(i,j); %右边界 else if (i
RES=0; %内部区域 else
RES=1/4*(U(i+1,j)+U(i-1,j)+U(i,j+1)+U(i,j-1))-U(i,j); %阴影部分内点 end
end
end
U(i,j)=U(i,j)+factor*RES;
err=err+abs(teNp-U(i,j));
end
end
k=k+1;
if(err
break;
end
end
contour(U,10);
;
四. 程序结果:
这是取N=100,迭代1500次运行得出的结果