阅读背景:

二维三角元有限元方法matlab,有限元C++编程实践.doc_洛胭的博客

来源:互联网 

有限元C++编程实践.doc

基于有限元算法的编程实践学号:2011043010031 姓名:廖校毅电子科技大学 物理电子学院【摘要】本文就有限元算法在电磁场分析中的应用展开研究与实践,从电磁场的 Maxwell 方程出发 ,根据电磁场的边值问题及变分公式建立了有限元方程组。具体在实践中,将这些知识运用到 C++语言和 Matlab中,并将这两种语言有机结合,编程并实现二维 FEM。程序最后通过计算含两种介质的电位槽电位分布来验证其正确性。关键词: 有限元 变分法 C++ MatlabThe Programming Practice Based on The Finite Element AlgorithmStudent ID:2011043010031 Name:Liao Xiaoyi University of Electronic Science and technology &School of Physical ElectronicsAbstract In this paper, we take the application of finite element method in electromagnetic field analysis into research and practice. Starting from Maxwell equations of electromagnetic field, the electromagnetic field boundary value problems and variational formula established the finite element equations. In specific practice, this knowledge will be applied to the C++ language and Matlab, and the organic combination of two languages, programming and implementation of two-dimensional FEM. Finally, through the program to verify the validity of the calculation of potential distribution in channel potential containing two kinds of medium.Key words The finite element method The variational method C++ Matlab一、 前言在数学中,有限元法(FEM,Finite Element Method)是一种为求得偏微分方程边值问题近似解的数值技术。它通过变分方法 [1],使得误差函数达到最小值并产生稳定解。类比于连接多段微小直线逼近圆的思想,有限元法包含了一切可能的方法,这些方法将许多被称为有限元的小区域上的简单方程联系起来,并用其去估计更大区域上的复杂方程。它将求解域看成是由许多称为有限元的小的互连子域组成,对每一单元假定一个合适的(较简单的)近似解,然后推导求解这个域总的满足条件(如结构的平衡条件) ,从而得到问题的解。这个解不是准确解,而是近似解,因为实际问题被较简单的问题所代替。由于大多数实际问题难以得到准确解,而有限元不仅计算精度高,而且能适应各种复杂形状,因而成为行之有效的工程分析手段。因其理论依据的普遍性,作为一种声誉很高的数值分析方法,,已被普遍推广并成功地用来解决各种结构工程、热传导、渗流、流体力学、空气动力学、土壤力学、机械零件强度分析、电磁工程问题等,并且大量可靠的基于有限元算法的软件如 ANSYS 被开发和使用。有限元法有以下特点:一,离散化过程保持了明显的物理意义。因为变分原理描述了支配物理现象的物理学中的最小作用原理(如力学中的最小势能原理、静电学中的汤姆逊定理等),基于问题固有的物理特性而予以离散化处理,列出计算公式,是保证方法的正确性、数值解的存在与稳定性等前提要素。二,优异的解题能力。与其他数值方法相比较,有限元法在适应场域边界几何形状及媒质物理性质变异情况的复杂问题求解上,有突出优点:不受几何形状和媒质分布的复杂程度限制;不同媒质分界面上的边界条件是自动满足的;不必单独处理第二、三类边界条件;离散点配置比较随意,通过控制有限单元剖分密度和单元插值函数的选取,可以充分保证所需的数值计算精度。二、 算法原理2.1 变分基本原理:对于一般的问题,可以给出下列对应于一个自变量 x 的简单形式的泛函 21[](, )JyFydx函数 y 稍有变化时: 21[](,, )xydx21[][(,,)(,)]xJJFyF上式用多元函数的泰勒公式加以展开:222231{[][()d]}FFyyJ xJJ 称为泛函的一阶变分。泛函同一般函数的极值特性相似,泛函的取极值的条件是泛函的一阶变分为零,泛函值为拐点的条件是二阶变分为零。 所以,根据一阶变分为零,有下式成立: 2 21 1-0 [](, ) x xFdyJyFyxeh2.2 有限元算法基本原理[2]:2.2.1 有限元网格划分的基本原则鉴于实际应用中三角形的网格剖分方式比较常见,下面以三角形网格剖分为例,介绍有限元网格划分基本原则:1.不同媒质的分界线,不容许跨越分界线的三角元2.三角元的边逼近边界3.三角形要求不要太尖或太钝4.顶点编号相差不能太悬殊,对多区域的编号,按区域连续编号,5.三角形节点编号按逆时针顺序编号图 2 网格划分示意图2.2.1 有限元分片差值取任意一个网格如图,在有限单元(三角形)上进行分片线性插值,基函数为: 123(,)exyxy123iiijjjmmxy由线性代数知识从而有:123 /2/ijijmijabcc其中12ijmjijijijiaxybcc把 代入三角元上的线性插值函数, ,(,)()) =(,eiijjjjmmesijxyabxcycN1(,)()2 esssNxyabxcyijm其 中 : (,), ieeeijmjexyN下面进行单元的泛函分析22eeeeeDJ dxyx2/2eijmbx 24eeijmDdyb1 ,4 iijimiTijmjijjjeeijbK=1 4 iijimjijjemijbwhrK同理:图 2 插值示意图13,22eeTeeDdxyK24 iijimjijjemijcwhrc单元上总的泛函:22eeeeDJdxyx122TTeeeeKK12 eeeijimeejijjijK其 中 4ersrrsrswhbc总体合成:改写扩充单位阵 到所有单位,即把扩充部分添零,为方便总体矩阵的处理。 112NNTe eTJK1 ,2,NeijijwherKN变分问题被离散化的多元二次函数的极值问题: 12,1,minTNijijJKK根据函数极值理论:0 (1,2)iJiN所以有下式成立:,1(,)NijijKj0三、 仿真实现[4][5]3.1 仿真实例采用有限元法仿真并求解如图的含有介质体的静场电位分布。其中 a,b 自定。图 3 长直接地金属槽的横截面3.2 流程图eKMatlab 划分网格C++编程计算 Ke 矩阵强制边界条件SOR 迭代计算每个点的数值Matlab 插值画图设定 a,b都为 10导出数据Matlab 插值画图都为 10导出数据3.3 网格划分情况情况一:总共划分 191 个点,共 323个网格。图 5 网格和节点划分情况情况二:网格加密,共 719 个点,1352个网格图 6 加密后的网格和节点情况三:介质高度改为 7,网格加密,共 727 个点,1360 个网格3.4 仿真结果由于计算出的结果是离散无规律的点的电位,不能直接用 matlab 画图,下面展示的是这些点的电压情况,越高的点电压越高。后面用插值拟合的方法,通过 matlab画二维电位图颜色越亮表示电位越高。这是情况一的结果,网格不够密:图 7 三维示意图---点图图 9 二维电势图情况二:网格加密后的情况图 8 插值计算后的三维示意图图 11 加密计算后的三维示意图图 12 加密后的二维电势图情况三:介质高度增加为 7 的情况下图 13 增加介质高度且加密后的三维点图图 14 增加介质高度且加密后的三维图图 15 增加介质高度且加密后的二维图四、 分析总结由上面的电位图可以看出电位分布从右到左呈现出一种递减的趋势, 且从分界面开始,真空(空气视为真空电子环境)和介质里面的斜率不一样,介质里面斜率更加低,这与常识符合,说明以上算法和程序有效,即:通过有限元算法可以有效仿真实现电磁场的计算和模拟。对比网格加密前后的图像,可以明显看出图像的平滑性显著加强,边缘变化呈现出一种缓慢变化而非突变,这与实际物理过程像吻合。说明通过网格加密可以增加计算的精度,但是,程序运行时间显著增加,由原来的3s 增加到 10s。对比介质高度增加后的情况可以看出,介质高度增加以后,真空里面部分的斜率更大,即电势变化更剧烈。图 10 加密后的三维示意图---点图五、 引文[1] 老大中 变分法基础(第 2 版) 国防工业出版社 [2] 许学军 有限元方法的数学理论 科学出版社[3] 孙志中 吴宏伟 等 计算方法与实习 东南大学出版社[4] 徐士良 葛兵 计算机软件基础 清华大学出版社[5] 苏彦华 张宏林 Matlab7.0 从入门到精通 人民邮电出版社surf(x,y,z)基于有限元算法的编程实践学号:201104301




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: