- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用超松弛迭代法求解接地金属槽内电位分布
实验一 用超松弛迭代法求解接地金属槽内电位分布
一、实验原理(有限差分法介绍)
有限差分法(Finite Differential Method)是基于差分原理的一种数值计算法。其基本思想:将场域离散为许多小网格,应用差分原理,将求解连续函数?的泊松方程的问题转换为求解网格节点上?的差分方程组的问题。
二.实验内容与要求
1. 试用超松弛迭代法求解接地金属槽内电位的分布。
已知:, cma4=mmah104/==
给定边值如图所示。
给定初值: 0)0(,=ji?
误差范围: 510?=ε
计算迭代次数,ji,?分布。
2、按对称场差分格式求解电位的分布(即求出D域的场分布,由对称性可得全域的场分布)
已知,cma4=mmh14040==
给定边值:如图1示
给定初值)()(.1j401001jp12ji?=??=???
误差范围: 510?=ε
图1 接地金属槽内半场域的网格剖分
计算:1)迭代次数,Nji,?;
2)按电位差10=Δ?画出槽中等位线分布图。
图1.7 接地金属槽内网格0=?=V 100 ?0=?0=? 电磁场数值计算与仿真实验指导书 6
3、分片场域的静电场分析(选做)
用有限差分法计算区域内的电位、电场强度,绘制等位线。并计算区域的电容,分析单元的大小对电容计算结果的影响,给出曲线。 100伏 0伏 εr1=2 εr2=4εr3=1εr4=3电磁场数值计算与仿真实验指导书 7
三、实验程序内容
程序一:
#includeiostream.h
#includemath.h
void main()
{double m[5][5],n[5][5];
int N=0,b=1;
int i,j;
double e=0.00001;
double a=2/(1+sin(3.1415926/4));
for(i=0;i=4;i++)
for(j=0;j=4;j++)
{m[i][j]=0;
n[i][j]=0;
}
m[1][4]=100;
m[2][4]=100;
m[3][4]=100;
n[1][4]= m[1][4];
n[2][4]= m[1][4];
n[3][4]= m[1][4];
for(j=4;j=0;j--)
{for(i=0;i=4;i++)
coutm[i][j]=m[i][j]\t;
coutendl;
}
while(b==1)
{b=0;
N=N+1;
for(i=1;i=3;i++)
for(j=1;j=3;j++)
m[i][j]=m[i][j]+a*(m[i-1][j]+m[i][j-1]+m[i+1][j]+m[i][j+1]-4*m[i][j])/4;
for(i=1;i=3;i++)
for(j=1;j=3;j++)
{ if(fabs(m[i][j]-n[i][j])=e)
b=1;
n[i][j]=m[i][j];
}
}
for(j=4;j=0;j--)
{for(i=0;i=4;i++)
coutm[i][j]=m[i][j]\t;
coutendl;
}
coutN=Nendl;
}
实验结果:
N=13
程序二:
#includeiostream.h
#includemath.h
void main()
{static double m[41][41],n[41][41];
int N=0,b=1;
int i,j;
double e=0.00001;
double a=2/(1+sin(3.1415926/4));
for(i=2;i=40;i++)
for(j=2;j=41;j++)
{m[i][j]=100*(j-1);
m[i][j]=m[i][j]/40;
n[i][j]=m[i][j];
}
for(j=41;j=1;j--)
{ for(i=1;i=41;i++)
coutm[i][j]\t;
coutendl;
}
while(b==1)
{b=0;
N=N+1;
for(i=2;i=21;i++)
for(j=2;j=40;j++)
{
m[i][j]=m[i][j]+a*(m[i-1][j]+m[i][j-1]+m[i+1][j]+m[i][j+1]-4*m[i][j])/4;
}
for(i=2;i=21;i++)
for(j=2;j=40;j++)
{ if(abs(m[i][j]-n[i][j])=e)
b=1;
n[i][j]=m[i][j];
}
}
for(i=2;i=21;i++)
for(j=2;j=40;j++)
文档评论(0)