杨小斌
(常州工学院机电工程学院,江苏 常州 213002)
工程结构在设计阶段一般都要进行强度、刚度和稳定性的计算,对于一些比较简单的结构可以借助于材料力学、弹性力学用解析的方法进行,对于复杂的结构早期都是用实验的方法对设计进行验证,再用实验结果反馈修正设计,通常耗时费力,投入巨大。
有限元方法(finite element method)是在求解弹性力学问题的基础上发展起来的求解各种复杂数学问题的数值计算方法。[1]在结构计算中利用该方法可以获取几乎任意复杂结构的各种信息,可以直接就工程设计进行各种评判,能对各种工程事故进行技术分析。据有关资料,一个新产品的问题有60%以上可以在设计阶段消除,实际上目前国际上有90%的机械产品和装备都要采用数值计算进行分析。可以说,数值计算在工程设计上,已成为能够替代大量实物试验的数字化“虚拟实验”,可以做到高效率和低成本。如美国波音公司设计的B-777飞机,就在计算机上完全实现了原型和制造工艺的“无纸设计”,其中大规模工程计算起到核心技术的支撑作用。如对于新型轿车的设计和制造,如果采用全数字化的设计和高精度的模拟,可以降低60%以上的实物试验,新型号的开发时间可以减少一半,开发费用也可降低三分之一以上。[2]可见,有限元法已经作为一种成熟的分析手段,在科学研究、工程设计与评估中发挥着巨大作用。
在我国机械专业毕业的大量本科生活跃在机械设计制造的各个部门,是机械行业的生力军,为此国内大学相继为本科生开设了“有限元法原理及其软件应用”课程[3-6],常州工学院也在前几年开始在机械工程各专业中开设了该课程。
有限元法是在求解弹性力学问题的过程中兴起的,随后发展用来求解微分方程、积分方程。因此学习有限元法必须要有一些先修课程作为基础,这些课程包括“计算机高级语言”(C语言、Fortran、Basic、Matlab 等,至少一门)、“高等数学”、“计算机制图”、“弹性力学”、“计算方法”或“数值方法”、“线性代数”、“振动分析”、“变分法基础”等课程,但实际上大多数学校的机械专业仅开设了“计算机高级语言”、“计算机制图”、“高等数学”、“线性代数”,“振动分析”等课程,仅仅在“理论力学”课程中涉及到单自由度系统的振动问题,学习有限元分析所需的力学基础仅限于“材料力学”中以杆件为研究对象的一些内容。“弹性力学”和“数值方法”这些必须的先修课程均不在培养计划之列,因此给“有限元法原理及其软件应用”的教学带来了很大的挑战。
“有限元法原理及其软件应用”的教学内容主要体现在两方面:一是有限元理论基础;二是计算程序的编制或商业有限元分析软件的使用。[7-8]如果不清楚有限元基本理论,就无从谈起编制计算程序,对于商业软件的应用也只能停留在照猫画虎的阶段。因此有限元基本理论是进行结构分析必须理解的内容,对于复杂结构的计算尤为必要,而有限元基本理论主要以势能原理或Galerkin方法为基础,对于结构分析而言只要掌握势能原理就足够了,主要内容涉及到“高等数学”、“弹性力学”、“线性代数”和“数值方法”。对于机械类专业一般不开设“数值方法”课程,“弹性力学”至多作为选修课,因此学生很难理解有限元的基本原理,给“有限元法原理及其软件应用”课程的理论和应用软件教学带来了困难。
结构分析当中用到的势能可以简单地认为是弹性体在外力作用下由于变形所储存的应变能和外力功的和。对于机械类专业而言,只是在理论力学中学习了动能定理,在材料力学的学习中认识了应变能,以及弹性体外力功和应变能的关系,并基于能量守恒建立方程求解问题。势能原理是从能量极小的角度来认识弹性体的平衡,从更为一般的角度刻画物体的平衡状态,虽然结果与能量守恒一致,但势能原理是一个更为一般的物理原理,如何理解其在有限元法中的作用,对于没有学过变分原理的学生显然是困难的。
对于机械类专业的学生来说,只在高等数学微分方程的求解,材料力学有关杆件位移的求解中涉及到边界条件的处理,在有限元方法中边界条件是在代数方程中进行处理,对于为什么要引入边界条件,如何引入边界条件均没有先修课程作为基础,仅仅具有的是线性代数中关于代数方程有关解的存在性和其性质的讨论,而边界条件的处理无论是自己编写程序还是利用商业软件求解都是至关重要的。
尽管插值的概念可能已经在一些需要进行查表计算的问题中所涉及,尤其是利用实验数据制成的表格中线性插值是一种经常使用的方法,但对于插值方法全面详细的讨论一般在数值方法课程中进行,有限元法中对于插值函数有着比较严格的要求,因为有限元法的基本思想是利用插值函数把一个很大的一维、二维和三维求解域,划分成满足特定连续性要求的线、面和体,相同的几何模型由于计算精度、计算速度要求的不同需要选择不同的插值函数。插值函数与计算单元的选取直接相关,如二维问题可以用三角形单元也可以用四边形单元,它们所对应的插值函数也不同。“数值方法”课程的缺失给学生理解有限元网格的划分,如何选择计算单元带来很大的困难。
数值积分是“数值方法”课程中的重要教学内容,对于只有高等数学基础的学生来说,对积分的理解基本上是连续函数的积分,数值积分的思想仅仅在中值定理中有所体现,也没有进行进一步的拓展,演绎成数值积分方法。而在有限元分析中数值积分是除求解线性方程组以外比较消耗计算时间的内容,也是对计算结果有较大影响的内容之一。
在有限元软件的教学中,要花费一定的学时进行几何建模的教学,涉及的命令很多,而且建模繁琐,对于复杂结构尤为耗时。为了减小几何建模的工作量和节省时间,现在的结构分析软件均提供了丰富的第三方几何建模软件接口,能很容易地进行复杂结构的几何建模。但第三方软件建立的几何模型被导入到结构分析软件中时,由于图形的存储方式、精度等不同,会出现诸如体仅被表示为封闭的面,面被表示成封闭的线,甚至会出现不封闭的情况。
对于理论基础有限,工程实践经验还很有限的学生来说,如何来验证自己分析结果的合理性和正确性也是分析软件教学的一个重要问题,往往会出现虽然得到了计算结果,但却无法判断结果的正确与否。
对于上述问题由于课时等各种因素的限制,很难使学生全面熟练地掌握,因此基于现有知识结构和基础,让学生理解原理是教学的关键。
理解势能原理可用两种方法实现,第一,选择简单典型的例题,势能原理认为在所有满足给定几何边界条件的位移场中,真实的位移场使系统的总势能取最小值,且满足平衡条件(最小势能原理)。在数学上可以认为是以位移场为自变量,总势能为目标函数的优化问题,因此以简单桁架结构作为例子能够直观地从数学上理解势能原理。第二,相近内容进行比较,有限元解是真实解的数值近似,越接近真实解总势能越小,由于精细单元得到的结果更接近真实的位移场,因此通过划分粗细不同的单元,输出不同划分情形下的总势能进行比较,可以直观地理解势能原理。
有限元方法是在一个复杂的求解域求解微分方程的数值方法,因此在有限元求解过程中还带有一些微分方程求解的影子,尤其是初始条件和边界条件的处理,这给理解有限元法边界条件和初始条件的处理带来了方便。对于边值问题在不引入边界条件的情况下,对应的是微分方程的通解,而有限元对于静力学问题的求解在不引入边界条件的情况下,是一组线性代数方程组,该方程组系数矩阵(刚度矩阵)的秩和由其与外力列矩阵构成的增广矩阵的秩小于总元数,有通解存在。引入边界条件对于微分方程而言是消掉积分常数得到特解,对于有限元代数方程而言是消掉刚体位移得到结构的变形,之后以变形为基础得到其他的力学量。在教学中利用微分方程的概念以及线性代数中有关线性代数方程组的概念就可以使学生很好地理解有限元方法中引入边界条件的作用和意义。
插值函数在有限元软件中对应的是单元的选择。不同的单元一般对应不同的插值函数,因此对于插值函数的理解在教学中要把握两方面,一方面是维数,另一方面是精度。维数是与几何模型相关的,几维空间模型选择几维单元。难点在于精度,各种维数的单元都具有线性、二次和三次等形式,选用高阶单元可提高计算精度,因为高阶单元的曲线或曲面边界能够更好地逼近结构的曲线和曲面边界,且高次插值函数可更高精度地逼近复杂场函数,所以当结构形状不规则、应力分布或变形很复杂时可以选用高阶单元。但高阶单元的节点数较多,在网格数量相同的情况下由高阶单元组成的模型规模要大得多,因此在使用时应考虑计算精度和时间。
有限元法在计算刚度矩阵时,通常要计算复杂函数的定积分,大多数有限元软件都采用数值积分方法。高等数学中的积分中值定理就是数值积分的梯形积分公式,因此积分中值定理反映了数值积分的思想和方法,只是为了提高积分精度和适应复杂的积分区域,由一点积分(中值定理)推广至多点积分,因此在教学中利用积分中值定理就可以使学生很好地理解数值积分。在此基础上对于学有余力或对有限元结构分析有兴趣的学生就可以利用计算机高级语言编制高斯积分程序,进一步理解和掌握数值积分方法。
有限元几何模型的教学重点放在点—线—面—体之间的关系上,一维模型必需点在线上,二维模型必需线在面上,三维模型不能有单独的面、线存在;另外,在学生掌握了一门几何建模软件的基础上开设“有限元法原理及其软件应用”课程,这样可以利用几何建模软件与结构分析软件之间的无缝联结,在几何建模软件中模型的任何改动都能够及时地反应在结构分析软件中,这样不仅在建模时省时省力,而且给结构优化带来了方便,也能很好地解决从几何建模软件到结构分析软件转换过程中出现的诸如面成为不封闭的线,体成为不封闭的壳等问题。
有限元计算结果的判定是一个比较复杂而困难的问题,由于它涉及到工程结构简化的合理性,计算软件使用的正确性。对于简单的问题可以与解析结果对比,但对于复杂结构尤其是实际工程结构就很困难。而对于学习有限元方法的本科学生而言主要是正确使用有限元软件。因此要掌握利用不同单元和网格划分的精细化程度来判断自己的计算结果,如,对于平面问题如果用三角形单元和四边形单元计算结果相差很小,或对网格进行加密,加密前的计算结果和加密后的计算结果相差很小,从软件计算的角度可以认为计算结果是可信的。对于动力问题要学会利用调整时间步长的方法来判断计算结果,如果不同的计算步长计算结果差别很小,说明计算结果在软件计算的层面是合理的。
尽管有限元方法涉及到很多先修课程,而且部分课程在机械专业本科阶段并没有开设,但是利用“高等数学”、“工程数学”以及“材料力学”等已开课程中的一些基本内容,在教学中通过适当的联系和选取代表性的例题,可以完全做到理解有限元基本原理以及该课程中的一些难点,使学生能够自如地使用商业有限元软件进行工程结构分析,摆脱无相似例题就不会或不敢使用有限元软件进行结构分析的尴尬。而且对于结构分析过程中出现的一些问题能够做出正确的判断和分析,并找到合理的解决之道。
[1]刘正兴,孙燕,王国庆.计算固体力学[M].上海:上海交通大学出版社,2000.
[2]T R钱德拉佩特拉,A D贝莱冈度.工程中的有限元法[M].北京:机械工业出版社,2008.
[3]王小荣,林顺洪,丁剑平,等.有限元法课程的教学改革探讨[J].重庆科技学院学报:社会科学版,2011(6):178-179.
[4]朱艳峰,王红.理论教学、传统实验与“有限元分析”有机结合的探索与研究[J].广东工业大学学报:社会科学版,2010(8):25-28.
[5]铁瑛,李成,赵华东.教研结合模式下的机械类专业有限元课程研究[J].中国科技信息,2010(14):242-243.
[6]向家伟.“有限元方法及程序设计”课程教学实践[J].重庆工学院学报:自然科学版,2007(7):171-173.
[7]王勖成.有限单元法[M].北京:清华大学出版社,2003.
[8]曾攀.有限元分析及应用[M].北京:清华大学出版社,2004.