您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 基于Matlab的数值方法在机械工程领域的应用分析
基于Matlab的数值方法在机械工程领域的应用分析胡享平黄亚宇(昆明理工大学机电工程学院,昆明,云南,650093)摘要:基于Matlab强大的科学计算和仿真功能,选用适当的数值算法,对机械零部件的运动特征和结构特性进行分析和研究。选取机械工程领域常见的运动学和结构力学实例,分析和对比常用数值算法的稳定性及计算精度等问题,进而确定选取龙格-库塔法和有限单元法两种数值方法来分别进行对应的分析计算和数值仿真。使用Matlab编写相应的程序,模拟出机械零部件在运动情况或使用数值方法来求解相应的结构力学参数等问题,同时对结果也进行相应的分析,指导工程设计和应用。关键词:数值仿真,数值算法,机械零部件,Matlab中文分类号:TP301.6文献标识码:AApplicationsofMatlabbasednumericalmethodsinMechanicalEngineeringfieldHuXiangpingHuangYayu(KunmingUniversityofScienceandTechnology,Kunming,Yunnan,650093)Abstract:ThispaperemphasizesonnumericalsimulationbasedonthepowerfulscientificcalculationandsimulationtoolMatlab.Researchhasbeendoneonthecharacteristicsofmotionandstructureofmechanicalpartsbyusingappropriatenumericalmethods.Basedonexamples,comparethestabilityandaccuracyofcommonnumericalmethods,chooseRunge-KuttaMethodandFiniteElementMethodtosimulatetheprocedureandsolvetheprobleminstructuralmechanicsofmechanicalpartsusingMatlab,respectively.Resultshavebeendiscussedattheendofeachmethod.Itwillbeusefulforengineeringdesignandapplication.Keywords:Numericalsimulation,Numericalmethods,Mechanicalparts,Matlab1.引言数值方法在工程领域已经得到广泛的应用。在机械工程领域,已经大量使用各种数值方法,对机械实体部件进行数值模拟[1-3]。本文将使用实例,基于Matlab,根据工程需求,选择两种常用的数值方法,对机械零部件进行数值模拟,从而指导工程设计和应用。2.数值方法及数值求解简介数值方法从开始诞生就表现出其巨大的研究价值和应用价值,特别是从20世纪70年代,现代数学被广泛的应用到工程实践中[2]。数值仿真技术在工程实际应用中所表现出来的优异性也广泛的被工程界所接受。特别是在求解复杂科学问题,使用数值方法建模,可以大大降低求解的复杂度,同时也可以满足实际应用中的精度。在机械工程领域,很多实际问题的数学模型最后都可以用微分方程或者偏微分方程的形式来表示[4]。然而,在目前的情况下,只有一些简单的,典型的微分方程可以求出其解析解。在很多情况下,求解这些微分方程的解析解几乎是不可能,因而工程师们不得不借助于数值方法来求解此类问题。Matlab作为一个科学的计算软件,强大的科学计算能力,也逐渐在工程界中使用。然而,对于特定的问题,如何选用合适的数值方法进行数值分析,又是一个较为复杂的问题。现代数学提供给工程师们居多选择,每种数值算法也表现出自身的优异性。选择合适的数值算法,进行恰当的数值计算成为工程师们的面临的首要问题。对于同样的实际问题,数值方法可能存在多种选择。这就需要我们结合工程实际和有限的计算机资源做出恰当的选择。例如:欧拉方法简单易懂,易于编程,但其收敛速度慢,工程精度较低。针对这一问题,数学家们又提出了经过改进的欧拉方法,梯形法和中点法[4]。但是这些方法也没有根本的解决上述问题。相继而产生的龙格-库塔法,理查森外推法则在很大程度上提高了数值算法的精度,同时其算法的稳定性也有一定的提高。有限差分法(FDM)和有限元方法(FEM)也是广泛被工程师所采用的数值方法。使用有限差分来近似表示微分,这样有限差分法可以将一个复杂的微分方程组转化为简单的代数方程组。工程中经常使用基数展开法来推导差分近似方程。有限元方法则是近来最热门也是常用的一种方法。有限元方法从一开始诞生就在结构力学领域有着广泛的应用。早期的有限元方程是由一些直接的方法推导出来的,更详细的介绍,可以参见文献[5]。即使在现在,很多工程师们也误认为有限元方法只是求解结构力学问题的一种工具,其实,有限元方法已经是求解诸多微分方程或偏微分方程的强有力的(常常也是最有力的)数值算法。3.常用数值方法原理本文第四节将采用一些常用的数值方法做运动仿真和数值求解,因此,在本节中将对这些数值方法原理给出简明的介绍和分析。3.1龙格-库塔法使用数值方法求解微分方程(组)或者偏微分方程(组),经常会对解的精度进行讨论。显而易见,得到相对较高的精度是工程师们的目标,然而,并不是精度越高越好。高的精度必然要求复杂的数值方法和消耗大量的计算资源和时间。龙格-库塔法以其较高的精度,较好的稳定性和较快的计算速度经常被工程师们所采用。本文将采用最为常用的龙格-库塔法来实现对机械运动的数值仿真。该龙格-库塔法是建立在对普通欧拉方法的改进,使用经过加权的导数平均值来不断更新当前的函数值[4]。其算法如下:12341(22)6nnkkkkyy(3.1)其中:1122343(,)(,)22(,)22(,)nnnnnnnnkfxyhkhkfxyhkhkfxyhkfxhykh(3.2)式中,h为步长。这种算法看上去很复杂,然而,基于Matlab的编程,这种算法很容易被实现。这种数值算法也有很高的精度,其截断误差为4()Oh。在通常的情况下,这种算法也具有良好的稳定性。不难发现,这种方法其实是将常用的数值算法:欧拉法和中点法融合到一起,从而获得更高的精度和更好的稳定性。使用这种算法时,通常允许使用相对较长的步长,同时也可以获得工程上所需要的精度。3.2有限单元法正如第二节所述的,有限单元法或简称为有限元法从一开始便在机械工程领域获得了广泛的应用,各种商业软件也相继诞生。然而,很多工程师和研究人员在学习有限元算法时,都是从使用商业软件开始的,这就使得他们对该算法的了解不够深入,对算法的原理知之不详。本文将从算法的原理开始进行介绍,然后将此算法在Matlab中实现,从而求解机械结构力学领域的相关问题[4]。通过对算法的分析,进而在Matlab中实现,这样可以使工程师从根本上理解有限元算法的相关原理,从而摆脱目前很多工程师和研究人员面临的问题。在通常的情况下,为了使用有限元方法来求解相关问题,其步骤如下:建立相关问题的数学模型,抽象出相关的微分方程(组)或偏微分方程(组)建立相关偏微分方程的弱读式选择未知方程的测试函数,即选择有限元种类,进而将解空间网格化选择权函数,为有限元建立相关的代数方程组组装所有的有限元,建立整个系统的代数方程组引入边界条件,编写Matlab程序,求解相关问题将微分方程或者偏微分方程转化为相关的弱读式,是使用有限元方法的第一步,关于弱读式建立的数学过程,参见文献[4-5]。选择合适的有限单元是使用有限元法的关键的一步,也是现代数学家们研究的热门话题。最简单也最直接的有限元是线性有限元,如图3.1所示。该种有限元满足如下的条件:图3.1线性有限元()1()0()0()1iiijjijjNxNxNxNx(3.3)其他更多种类的有限元,参考文献[5]。选择合适的权函数,也会影响到有限元法的精度和稳定性。常用的方法有加权留数法,点集合法,子域集合法和加勒金法。本文中,将使用加勒金法选择权函数。在通常的情况下,该方法具有良好的特性,也被工程界和数学界广泛使用。加勒金法选择测试函数为权函数,即:iiWN(3.4)理论上,使用加勒金法选择权函数通常是最优的。同时,加勒金法也可以导出对称的系统方程组,在很大程度上,这也为数值求解提供了便利。将有限元的代数方程组集合到系统方程组,同时注意有限元在系统方程组的次序问题,引入边界条件,即可对相关的机械结构力学问题进行求解。4实例分析为了更好的说明数值方法在机械工程领域的应用,以及如何使用数值方法对机械运动进行仿真和对结构力学问题进行求解,本节将从实例入手,基于第三节的理论分析和Matlab编程,介绍相关实例。本节中所有的仿真程序均可以从作者处获得。4.1机械运动的数值仿真如下图4.1(左)所示,假设有一烟花火箭,其初始条件为零。将其放在地方然后点火,该烟花火箭的初始质量为0120mg,其中粉末燃料占70g。经过实验得知,燃料的持续时间为2.0cts。燃料所产生的恒定推力为5.2TN。这也说明燃料的消耗率恒定。空气产生的阻力和烟花火箭的速度的平方成正比:2422,4.010(/)RkvkNsm。这里,要求选择一种数值方法对其运动过程进行仿真并且其截断误差为4()Oh或者更高。要求计算出该烟花火箭的最高高度,同时计算出从燃料消耗到该烟花火箭运动到最高点的时间延迟。该实例要求其截断误差要求大于或等于4()Oh,这就使得较为简单的欧拉法,中点法不适合本例。龙格-库塔法以其优异的数值特性成为解决本问题的首选,且该数值算法很容易在Matlab中实现。图4.1烟花火箭的机械运动的数值仿真(左)和结构力学问题的数值求解(右)很显然,该问题属于变质量的运动学问题,在该运动过程中,其前两秒是在驱动力和阻力的共同作用下加速上升的,而后的时间内,该烟花火箭是在空气的阻力下减速上升的,同时注意到空气的阻力和速度的平方成正比。为了对该运动过程进行数值仿真,那么必须建立相应的微分方程组。分析该运动过程可知,应该将该运动过程分为两部分:加速上升过程和减速上升过程。从而得到相应的微分方程组。加速上升过程:211111100010001203512035(0)0,(0)0dvTkvgdtttdhvdtvh(4.1)减速上升过程:222221211000120352(0)(2)(0)(2)dhvdtdvkvgdthhvv(4.2)式中,h为上升的高度,v为上升过程的速度,g为重力加速度。1(2)h表示加速上升过程的最终高度,1(2)v表示加速上升过程的最终速度。使用龙格-库塔法求解如上的微分方程组。该系统的数值仿真结果如图4.3所示。图4.2(左)是该烟花火箭的上升过程高度的数值仿真,图4.2(右)是其上升过程速度的数值仿真。同时亦可以得到烟花火箭上升的最大高度和问题中所需的时间延迟:max198.4626.185()delayhmts从如上的分析和仿真可知,使用数值方法进行机械运动的数值仿真,可以简化本身复杂变化的物理运动过程。同时注意到,即使改变机械运动的初始条件或者系统的某些特征,其对应的仿真只需要进行简单的调整。而且其仿真精度也可以得以预见。图4.2烟花火箭的上升过程高度(左)和速度(右)的数值仿真4.2结构力学问题的数值求解在机械工程领域,使用有限元方法求解结构力学问题是极为常见的,第三
本文标题:基于Matlab的数值方法在机械工程领域的应用分析
链接地址:https://www.777doc.com/doc-6081679 .html