电信 教育 政务 机械 汽车 船舶 交通 石化 烟草 服装 电力 金融 外贸 冶金 电子

有限元自动生成系统在电磁领域的应用

2003-12-14 发布方:北京飞箭软件 网友评论 0 条 点击进入论坛

黄成1  王泽忠1 刘姜玲1  钱华山2  贾峰2  杨小军2    梁国平3

1-华北电力大学[北京]电力工程系 2-飞箭软件公司 3-中国科学院数学所

摘要:  有限元法是当今数值计算领域(如电磁场数值计算)应用最为广泛、最为成熟的一种计算方法,国内外因此出现了许多功能强大的通用有限元程序系统。但这些通用程序仅能解决某一类型或某几个类型的问题,而且由于这些程序的“封闭性”,使得我们无法生成源程序,要在这些程序的基础上进行二次开发也相当困难。有限元自动生成系统FEPG(以下简称FEPG系统)的出现把我们从繁琐复杂的编程劳动中解脱出来,把精力投入到其它更为重要更有创造性的方面,如物理模型(即偏微分方程表达式)与系统设计、算法构造等等.FEPG保证了所生成的有限元程序的正确性和统一性.笔者通过几个实例对FEPG系统在电磁领域的应用进行了详细论述,并把FEPG系统与其它有限元分析软件进行了比较,笔者推测:有限元程序自动生成系统必将会在电磁领域得到广泛的应用.
关键词: 有限元  电磁场  FEPG系统
中图分类号:TM153   文献标识码:A 
 
1.    前言
有限元法是当今数值计算领域(如电磁场数值计算)应用最为广泛、最为成熟的一种计算方法,然而,有限元编程不仅需要编程者具有数值方法、电磁场理论和有限元方面的知识,还要求编程者投入大量的时间与精力编写源代码,程序的调试与纠错更是相当困难。而且由于编程的规范性方面的原因,程序的可继承性差,一个电磁场计算程序动辄上千行,甚至几千行,要去读懂别人所编的程序更是难度很大。一个好的有限元程序的诞生往往需要若干年,这是绝大多数研究人员和工程技术人员难以承受的。国内外目前虽然出现了许多功能强大的通用有限元软件,但这些通用程序仅能解决某一类型或某几个类型的问题,而且由于这些程序的“封闭性”,使得我们无法生成源程序,要在这些程序的基础上进行二次开发更是相当困难。中科院数学所梁国平研究员发明的FEPG系统的问世,无疑给电磁场数值计算的研究人员提供了一个强有力的编程工具。
 
2. FEPG系统简介
FEPG系统的主要设计思想是采用元件化的程序设计方法和自动生成技术,根据有限元方法统一的数学原理及其内在规律,以类似于数学公式推理的方式,由计算机自动产生有限元程序。软件自动生成技术使此系统适用于各种领域的各种工程与科学计算问题,突破目前通用有限元程序只用于特定领域和特定问题的限制。用户只需输入有限元方法所需的各种表达式和公式,即可自动产生所需的全部有限元程序,免去了大量的繁琐的有限元编程劳动,并保证了程序的正确性和统一性。并且程序易阅读,易修改,从而保证了软件的再用性和易维护性。
FEPG系统实现了有限元软件技术的重大突破,为迅速、便捷地实现工程与科学计算提供了前所未有的得力工具。FEPG系统由中国科学院数学与系统研究院博士生导师梁国平研究员历经十余载的潜心研究而独创。在中国科学院主持的鉴定会上专家们一致认为该系统具有国际领先水平,并获得了1995年国家科学技术进步二等奖。
下面比较一下通用有限元程序与FEPG系统的程序结构,看看它们之间的差异。
一般通用有限元软件的程序结构如下图所示。

1  一般有限元程序框图

FEPG系统对稳态和动态、线性和非线性有限元问题的求解程序采用图1-2的四个框图表示如下:

       

a.线性稳态问题求解流程框图                  b.线性动态问题求解流程框图

FEPG系统有限元计算程序由START、BFT、SOLV和E、U五个元件程序组成,其中E和U两个元件程序根据用户给出的表达式由系统自动生成,其余三个元件程序由系统给出,不随表达式的变动而变动。
   FEPG系统的前后处理有两种方案,一种是由飞箭公司自行研发的前处理自动生成器(多重表格输入法MTI)和FA图形显示系统。一种方案是西班牙一家公司的GID前后处理系统,推荐大家采用后一种方案,因为飞箭公司已经把GID整合到FEPG系统中,实现了GID与FEPG系统的无缝接入,该方案简单、直接、明了。
   任何有限元程序,无论是线性还是非线性的,在单元子程序计算及总体刚度矩阵、总体载荷向量形成之后,都归结为求解一个代数方程组的问题,FEPG系统针对不同的问题,提供了8种求解器程序:1)对称内存求解器(SIN);2)非对称变带宽内存求解器(NIN);3)对称外存求解器(SOUT);4)非对称变带宽外存求解器(NOUT);5)共轭梯度法求解器(CGM);6)Gauss-seidel(GS)迭代法求解器。7)逐次超松弛迭代求解器(SOR); 8)不完全LU分解预条件子共轭梯度法求解器(ILU)
   针对不同的问题,FEPG提供了十种坐标系可供选择,它们分别是:1dx; 1dr;1ds;2dxy;2dro;2dro;2drz;3dxyz;3droz;3drso.
  FEPG系统对于具体的工程问题,有两种方案供编程者选择,一种是公式库的方法,即通过公式库生成所需的全部有限元源程序,不过由于工程问题的复杂性,有时需对所生成的源程序作一些修改,并重新编译。不管怎样,公式库的方法毕竟给我们解决问题提供了一个模板。另一种方案需要用户书写两类文件,第一种类型文件主要给出线性代数方程组的矩阵和右端项表达式以及迭代步骤的控制等内容,称为算法文件以NFE为扩展名。第二种类型文件,主要给出有限元计算程序的流程,称为命令流文件,以CMD为扩展名。这种方式较适合于单一场问题的求解,它适用于线性和非线性,稳态和非稳态具有任意多个自由度(即任意多个偏微分方程)的有限元问题。对于耦合问题的求解则把上述方式的算法文件与命令流文件合成一个文件,该文件以GCN为扩展名,FEPG系统称之为GCN 文件,这种方式最适合于求解多场耦合问题。它既适用于线性和非线性问题,又适用于稳态和非稳态问题,它既对耦合场的数目可以有任意多个,又对每一个场的自由度(即偏微分方程的数目)也可以有任意多个。
 
公式库方法有限元程序自动生成系统框图如图3所示。

3.公式库方法有限元程序自动生成系统框图

用公式库方法生成有限元程序的操作流程图如图4所示。

图4  用公式库方法生成有限元程序的操作流程图

目前FEPG系统可提供的电磁场公式库包括:一维,二维,三维静电场、静磁场、时谐电磁场、一维,二维瞬态电磁场公式库。

2.    算例分析
算例1)用公式库方法生成静电场有限元程序。
一个带挡板的变压器模型,如图5所示。其中指定的几条边上给定第一类边界条件,边界上每点都约束住,电位值分别为0和25,另外两条边作为第二类边界条件是自动满足,因此我们可以不加边界单元,求解它的电位分布.

5  带挡板变压器模型
(1)首先通过AppWizard的向导功能生成电磁场问题的有限元源程序,操作流程见图4,
这里给出每步的关键选项如下:
启动FEPG-定义工作路径-emf-输入文件名“e”-2dxy-STATIC-Static_Electric_Field-q4-
(注:不用选边界单元)-Sin-out core-Run,
即可生成有限元源程序,通过点击菜单【File】-【Workspace】即可看到源程序,如图6所示。

6 全部有限元源程序

(2)前处理工作,首先填写PRE文件,主要是填写介电常数epsilon,此处填8.854e-12,和体电荷密度rho, 此处填0。再运行forgid命令,然后启动GID创建模型。再选择问题求解器,定义材料特性、边界条件,划分网格,把前处理数据转化为FEPG计算所需格式。
(3)进行有限元计算。
    结果如图7所示:

7  电位分布云图

算例2)通过填写PDE文件(偏微分方程表达式文件)和NFE文件(算法文件)生成有限元程序.
已知条件:在图8中 ,共有 5个电极 ,一个电极(电极a)接 100V ,一个电极 (电极d)接地 ,其余 3个电极为电位悬浮导体 ,且导体 1和导体 2几何对称 .求电位电场分布.

图8    含电位悬浮导体的场域

求解思路:
采用虚拟材料参数法,取电位悬浮导体虚拟电导率为0.278x. 本问题对应的虚功方程为:

,
为完成求解, 需包括如下内容:
(1).有限元数据结构的前处理文件;
(2).计算二维电准静态场问题的单元子程序;
(3).求解二维电准静态场的计算方法和计算流程,即如何由单元刚度矩阵、单元质量矩阵、形成代数方程组的系数矩阵以及如何形成右端项;计算过程的组织;
(4).几何造型。
文件准备:
1).有限元数据结构的前处理文件s.pre;
具体内容如下:
2dxy 2 5 8 10
ell 0 1 4 ur ui   
els 0 1 4 exr exi eyr eyi 
#
element y
ell
aeq4 4 sigma omega epsilon fz
#
els
beq4 4 sigma omega epsilon fz
#
matedata
1 ell aeq4
0.278d-3;0.278d-8;1.000000;0.0;
2 ell aeq4
0.1d-10;0.278d-8;1.000000;0.0;
1 els beq4
0.1d-10;0.278d-8;1.000000;0.0;
2 els beq4
0.278d-3;0.278d-8;1.000000;0.0;
#
2).生成单元子程序的ell.pde文件(用于求解电位),和els.pde文件(用于求解电场强度).
 ell.pde文件如下所示:                       els.pde文件如下所示:
disp ur ui                                disp exr exi eyr eyi
coor x,y                                  coor x,y 
mate sigma omega epsilon fz               coef ur,ui
shap %1 %2                                mate sigma omega epsilon fz
gaus %3                                   shap %1 %2
                                         gaus %3
stif                                      mass %1
$c6 omep=omega*epsilon                    load=fexr fexi feyr feyi
dist=+[ur/x;ur/x]*(sigma)                 $c6 omep=omega*epsilon
+[ui/x;ui/x]*(-sigma)                   
+[ur/x;ui/x]*(omep)                      stif 
+[ui/x;ur/x]*(omep)                      $cv fexr = -{ur/x}
+[ur/y;ur/y]*(sigma)                     $cv feyr = -{ur/y}
+[ui/y;ui/y]*(-sigma)                    $cv fexi = -{ui/x}
+[ur/y;ui/y]*(omep)                      $cv feyi = -{ui/y}
+[ui/y;ur/y]*(omep)                      dist=+[exr;exr]*(0.0)
load =+[ur]*(fz)                         end
+[ui]*(0.0)
end
3).算法文件ell.nfe,els.nfe和流程组织的命令流ell.cmd,els.cmd文件
 ell.nfe文件内容如下所示:                    els.nfe文件内容如下所示:
defi                                           defi
stif S                                         stif s  
mass M                                         mass M  
load F                                         load F
type e                                         type e
mdty l                                         mdty l
step 0                                         step 0
 
equation                                      coef ur,ui
matrix = [S]
FORC=[F]                                      equation
                                              var ur,ui
SOLUTION U                                    VECT str
write(s,unod) U                               read(s,unod) ur,ui
                                              matrix = [S]
end                                           L,MASS = [M]
FORC=[F]
SOLUTION str
write(s,unod1) str
 
FORT
@KDGOF
      kdgof = 4
 
end
ell.cmd文件内容如下:                         els.cmd文件内容如下
#                                            unod=unod1
STARTc                                       #
SOLVc                                        stress
call els.bat
posttran
 
4).几何造型,从略.
生成过程:
1.Test命令生成全部有限元计算程序:在命令行键入test,回车即可
2.造型、加边界条件及网格剖分
   forgid  s
   rungid  s
3. 有限元计算:运行gidpre  s及批命令s.bat
3.     运行gidpost s显示计算结果
计算结果如下:
用虚拟材料参数法得出的等位线场图见图9:
 

图9. 无净电荷情况下等位线场图(含有三个悬浮导体)


 4.    通用有限元程序与FEPG系统的比较.
以下把通用有限元软件与FEPG系统进行一下比较。
表一  通用有限元软件与FEPG系统比较表
 

通用有限元软件 FEPG系统
程序结构 见图1 见图2
功能 能进行有限元分析计算 计算机自动生成全部有限元源程序并完成计算
程序特点 可执行程序,不能生成源程序 可生成FORTRAN源程序
局部修改 只能利用其提供的宏命令进行二次开发 无须阅读源程序,只需修改简短的有限元信息,系统可插入FORTRAN源程序
求解耦合场问题 能求解已知的一些特定耦合场问题 能根据具体工程实际需要求解耦合场问题
价格
 
价格较高 价格适中,产品性价比高, 一般单位可以承受
可否通过互联网使用 不能
 
是全球唯一能通过互联网使用的有限元软件(IFEPG)
熟练掌握该软件所需时间 1个月 公式库方法:1天
其它:1个星期

 
5.    结论与展望
笔者首先对FEPG系统作了简单介绍,通过几个实例对FEPG系统在电磁领域的应用进行了详细论述,并把FEPG系统与其它通用有限元分析软件进行比较,笔者得出以下结论:
1>在FEPG系统诞生以前,国内电磁场数值计算的研究人员大部分是基于“一砖一瓦”式的自己编制完整的有限元程序,虽然这样可以对有限元的基础理论达到较深入的理解,但开发者也付出了大量的精力来重复前人已经完成的工作,这是对研究成果的极大浪费. FEPG系统的问世,无疑给电磁场数值计算的研究人员提供了一个强有力的编程工具。
2>FEPG系统极大地提高了我们电磁场有限元编程的效率,所需输入的代码量平均减少达90%.并保证了程序的正确性和统一性;并且程序易阅读,易修改,从而保证了软件的再用性和易维护性。
3>以前的通用程序仅能解决某一类型或某几个类型的问题,而且由于这些程序的“封闭性”,使得我们无法生成源程序,要在这些程序的基础上进行二次开发更是相当困难。有限元自动生成系统FEPG的出现把我们从繁琐复杂的编程劳动中解脱出来,把精力投入到其它更为重要更有创造性的方面,如建立物理模型(即偏微分方程表达式)与系统设计、算法构造等等.
4>作为一个商业软件,FEPG系统也绝非十全十美,譬如:GID的前后处理显示就做得不如ANSYS精细,而且矢量图形显示也存在一定的问题等等,但作为一个低价位的高性价比的商业化软件,我们也不能对它过多的苛求,更何况以上的问题正在进一步解决之中.
5>FEPG系统研发小组是一支由研究员、博士、硕士组成的年轻的朝气蓬勃的队伍,而且FEPG系统的电磁场分析部分有科研院所的技术支持,飞箭公司还建立了自己的网站,设立了自己的论坛,所有这些,为FEPG软件的前期开发、后期服务提供了强有力的保证.
6>展望未来,笔者完全有理由相信: 有限元程序自动生成系统必将会在电磁领域得到广泛的应用。
 
参考文献:

【1】钱华山, 在线生成有限元程序系统FEPG , 计算机辅助设计与制造 2000年12期
【2】杨友卿, 一种高效的有限元自动编程工具-FEPG系统 ,力学与实践, 1998年02期.
【3】王世山,王德林,李彦明, 大型有限元软件ANSYS在电磁领域的使用, 高压电器, 2002年03期.
 
黄成(1969-):  男, 硕士生,主要从事电力系统电磁兼容、电磁分析、测试的研究。
王泽忠(1960-):男,教授,博士生导师,主要从事电力系统电磁兼容、电磁场理论及其应用方面的研究。
刘姜玲(1977-):女, 硕士生,主要从事电力系统电磁兼容、电磁分析、测试的研究。
梁国平        :男,中科院数学所研究员,FEPG系统发明人,主要从事有限元算法的研究。

已有 0 位对此文章感兴趣的网友发布了看法    
我来评两句 用户名: 密码:
  匿名发表
相关案例
解决方案速查(共有 14131 个方案)
基础软件
安全保密
管理软件
办公软件
软件开发
系统网络
图形多媒体
辅助设计
行业专用
教育教学
电子政务
其他软件
接入
通信
网络
存储
IT服务
电子杂志订阅
点击电子杂志名称查看样刊
输入E-mail地址即可订阅
E-mail
赞助商链接