您好, 访客   登录/注册

论本科生有限元法教学中编程能力的培养

来源:用户上传      作者:

  【摘 要】有限元法已成为工科院校本科力学的必修课。一直以来,在有限元课程的本科教学中都没有把有限元程序编制作为教学重点。本文给出了在Matlab软件平台下的两种编程教学方案以提高学生的有限元编程能力。教学实践表明,两种方案不但能提高学生编写程序的技能还能提高有限元理论学习兴趣。
  【关键词】有限元法;Matlab;编程能力
  中图分类号: TH136 文献标识码: A 文章编号: 2095-2457(2019)28-0138-002
  DOI:10.19694/j.cnki.issn2095-2457.2019.28.062
  【Abstract】The finite element method has become a compulsory course for undergraduate mechanics in engineering colleges.It is difficult to keep the balance of theory teaching and the programming skills developing of the finite element course.In this paper,two programming teaching schemes were given under the Matlab platform.Teaching practices showed that the two schemes can not only improve the interest of theory learning of the finite element but also improve the programming ability of students.
  【Key words】Finite element method;Matlab;Programming ability
  0 引言
  自1943年出現有限元法概念以来,有限元法在结构理论各学科领域里已被广泛采用。有限元法已成为工科院校力学本科学生的必修课程。对于本课程的学习,需要学生具备扎实的弹性力学、泛函分析、数值分析等课程的基础知识及一定的编程语言基础。一般来说,通过该课程的学习,可培养学生以下三方面能力[1]:1)有限元分析的基本理论和方法;2)应用程序设计语言编制有限元程序;3)应用成熟的商业有限元软件进行有限元分析。
  在本课程的实践教学中,普遍存在两种极端的教学路线[2,3]。一种路线是,以介绍有限元理论基础为主,淡化有限元程序的编制。这样做的结果虽然加强了学生的理论素养,但无法使学生充分认识到有限元的强大效果及对解决实际问题的能力缺乏训练。另一种路线是,跳出原来的以理论教学为主的传统框架,教学内容以介绍基于有限元分析软件的工程应用为主,着力培养学生的实际工程应用能力。其后果是培养的学生理论基础不扎实,且缺乏有限元编程能力。以上两种路线都没有把有限元程序编制作为教学重点。鉴于此,本文以培养学生有限元编程能力为重点目标,对本科生有限元法的教学方法进行探讨。
  1 编程软件或平台的选择
  传统的有限元法教程中的有限元程序一般是用Fortran语言编制的。Fortran是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。Fortran语言以其特有的功能在数值、科学和工程计算领域发挥着重要作用。成熟的有限元分析软件,如ANSYS、ABAQUS、SPA等都是采用Fortran语言编写的。现在仍然有大量的科研工作者和工程技术人员采用Fortran编写计算程序。后来出现的C语言,由于其功能丰富,表达灵活,目标程序效率高,可移植性强等特点,开始成为开发高质量软件的主要编程语言。之后,随着面向对象技术的成熟,涌现了一批用C++编写的面向对象的有限元程序代码。以上提及的这样语言语法规范、结构严谨,都适合编制有限元程序。
  基于以往的教学经验,作者认为作为本科生,选用Matlab软件作为有限元程序入门平台比较合适。Matlab是美国MathWorks公司推出的一种以矩阵为基本单位的高效数值计算语言,相比其他高级程序设计语言,Matlab编制的有限元程序有如下优势[4,5]:1)Matlab的语言规则更接近数学表达,更容易让人理解;2)语言简洁,功能强大,且计算结构可信度高;3)以矩阵为基本运算元素,运算方便,对变量不需要事先定义,编制程序灵活;4)提供了良好的用户界面及许多方便实用的库函数供编程人员直接使用。
  2 有限元编程教学安排
  有限元程序的编写离不开有限元理论的支持。因此在学习有限元编程之前,必须对有限元理论进行系统学习。鉴于本科教学理论不宜过于深入,对于有限元法理论部分宜本着简单的原则。作者在教学中,以结构单元(杆、梁、桁架、刚架)的“矩阵位移法”为核心,初步涉及弹性力学的平面问题的形函数,等参元等概念和理论。淡化用泛函知识对有限元理论的理论推导,不需要讲解有限元非线性问题的处理。
  有限元编程能力的初步培养采用了以下两种方案:
  1)教师搭建有限元计算程序的大框架,学生实现子程序和子函数。例如,在刚架结构有限元程序开发中,教师先把主程序的结构编制出来,让学生编制单元刚度矩阵或者整体刚度矩阵的求解函数。
  2)教师提供有限元计算程序的简单版本,让学生扩充,对程序进行二次开发。例如,教师提供的对于梁的有限元计算的简易版本中,需要手工计算梁节点的载荷(将作用的梁上面的载荷等效到节点上),学生可进一步开发载荷等效子程序,以扩充程序的适用性。
  以上两种方案对于初学有限元编程的学生来说非常实用,因为学习有限元编程有一定的难度,而采用这两种方案,学生既不会感觉无处下手,又能对有限元程序的整体运行过程有充分的认识。
  从作者的教学经验来看,应用Matlab作为有限元法的教学编程软件,能提高学生的学习兴趣和热情。从教学效果来说,学生的动手能力得到了培养。
  3 结论
  以Matlab软件作为有限元编程平台,通过上述的有限元的教学实践,本科生的编程热情得到了鼓舞,编程能力得到了提高,学生初步具有了有限元编程的能力,为进一步的有限元编程学习好实践打下了良好的基础。尽管如此,在今后的教学工作中仍需要继续努力,掌握有限元法课程的教学规律性,不断改革进取,进一步提高学生编制有限元程序和利用有限元程序解决实际工程问题的能力。
  【参考文献】
  [1]石钟慈.有限元方法[M].北京:科学出版社,2016.
  [2]郭利明,周新建,张庆敏.高校本科生有限元方法课程的教改探讨[J].教育教学论坛,2017(5):118-118.
  [3]周炬.机械类专业有限元法课程教学方面的探索[J].科技视界,2013(13):77+158.
  [4]Kattan P L.MATLAB guide to finite element[M].Berlin Heidelberg,Springer-Verlag,2003.
  [5]徐荣桥,杨仲轩,吕朝锋.MATLAB在有限元教学中的应用实践[J].力学与践,2010,32(4):101-103.
转载注明来源:https://www.xzbu.com/8/view-15031229.htm