随着工程技术研究的不断深入和建设规模的日益扩大,特别是计算机科学和技术的飞速进步,数值计算在工程技术研究活动中的重要地位凸现,相应地工程结构数值计算方法课程已成为大多数工科专业研究生的必修课程[1-3]。作为工程结构数值方法的代表——有限单元法及其程序设计是一门集应用数学、现代力学及计算机科学于一体,且相互渗透的综合性工程学科,其理论体系庞大而复杂,涉及到微分方程、矩阵代数、计算方法、弹性理论、结构设计以及计算机编程等多学科理论与技术。学生学习起来异常艰难,对于非力学专业的学生更是如此。
因此,如何在有限课时内让学生掌握有限元的基本原理与方法,并能自编程序分析与解决实际问题,是有限元教学必须着力思考的问题。笔者根据多年的教学经验,从实际工程问题的求解出发,提出以案例引导的课程教学方法,通过几年的实践收到良好的效果。
一、课程特点及教学现状 (一)课程特点 1. 概念抽象,涉及面广有限元法的概念有基本方程、刚度方程、边界条件、等效节点力、形函数、位移模式、收敛性、等参单元、虚位移、虚功等。这类概念的共同特点是很抽象,难以理解[4-6]。此外,还时常夹杂一些材料、几何以及边界条件非线性问题,学生很难对这门学科进行整体把握,因而往往产生畏难情绪。
2. 方法独特,步骤众多现有的教材都是从三大基本方程出发,到矢量、张量的矩阵形式表达,从结构离散,到单元位移模式(以位移法为例)、刚度方程、刚度集成(结构的重新组合)、节点荷载移置、边界条件处理、方程的求解,最后得出节点位移与特征点的应力。步骤众多,公式复杂,且演算多以矩阵形式甚至用张量形式表达,初学者无法理解其背后所蕴含的数学基础与力学原理。
3. 工作量大,难以手工验算有限单元的最大特点是计算工作量大,比如一个简支梁,即使充分利用对称性,较为稀疏的单元网格,最为简单的三角形单元,至少得20个左右的单元才能反映梁的应力和变形规律,用手工计算几乎是不可能的。
4. 软件众多,系统性差有限单元法课程的学习,其最终目的是解决实际问题,分析复杂结构的力学性态,必须借助计算机软件。然而,目前市面上的软件五花八门,仅土木工程领域流行的商业软件就有数十种,且每种软件由于开发团队的思路不同,均有所差别,系统性极差。再则,说明书往往并非力学专业人员撰写,解读起来非常困难。一旦遇到问题,往往很难通过自学解决。
(二)教学现状 1. “自下而上”的学习, 只见树木不见森林由于有限单元法是从工程应用中直接发展起来的,以致现有的教科书与教学方法,都缺乏严格的思维逻辑。学生通常一开始就面临大量的细节,比如整体与局部坐标的变换、节点力和节点载荷的移置、形状函数的构造与收敛问题等,难以从整体上理解有限元的基本原理, 却已淹没在众多的细节推导, 只见树木, 不见森林。这种方式导致学习过程中没有原则可以遵循, 学习者常常困惑于非本质的公式推导,增加了学习负担。
2. 理论与程序脱节有限元法是应用性很强的一门学科,其计算工作量巨大,必须由程序计算完成足够的练习,才能掌握其原理与方法。目前, 有限元教学中比较重视理论知识的教学, 但对有限元程序并没有给予足够的重视。其原因是有学时限制,对教师专业水平的要求高,程序代码编写难以掌握,理论知识和程序代码之间的衔接跟不上等。这些原因导致有限元理论教学和编程教学的严重脱节[7-8]。
3. 灌输式教学,学习缺乏自主性有限元方法的学习特别需要学生的积极参与。现有的教学模式只注重有限元基本理论的讲解与计算推导分析[9-10],而对于大多数非力学专业的研究生来说,有限元方法的理论起点较高,教师要花费大量时间在课堂上灌输理论,但效果并不太理想。如果课程的设计能够充分调动学生的积极性和参与意识, 让学生多上机实践, 主动去探求有限元理论及其编程的技巧, 必将对学生产生积极的影响。
4. 生源复杂,基础参差不齐有限单元法课程是一门对理论和实践均有较高要求的课程, 如果预修课程不合理,对这门课程的学习是极其不利的。本科阶段, 有的学生学过结构力学,但没有弹性力学与数值方法的基础,对连续域或边值问题无法理解;有的学生学了弹性力学,但对程序设计完全没有概念,这就要求结合学生的知识结构组织教学材料,而不能仅从教师易于讲授的角度组织教学内容。
二、案例教学的基础理论案例教学是指教育者本着理论与实际相结合的宗旨,根据教学目的和教学内容,以典型案例为教学素材,将学习者置身于一个真实的情境中,通过多种方式促使学习者理解和掌握各种相关的专业知识和技能,以构建学习者分析问题和解决问题实践操作能力的一种教学方法和形式[11-14]。案例教学有三个显著特征[15]:示范性、实践性和互动性。一般案例教学的程序分为三个阶段:一是案例研究阶段。这一阶段教学者结合专业,分析识别精选工程案例,并提出问题;学生需要思考案例关系与问题,形成对案例问题的看法和观点,并提出自己的解决方法。二是案例讨论阶段。案例讨论阶段主要是师生以及学生之间围绕案例问题展开讨论。对教师而言最重要的就是尊重“差异”和重在“启发”,学生则是“质疑”和“联想”。三是案例总结阶段。案例总结阶段包括教师综合性总结和学生方面的反思。综合性总结是教师对前面两个阶段的工作进行整合和内化,而学生则是在一系列的反思中建构自己的认识和思想。
三、案例引导分析 (一)案例引入原则以案例为主线的一体化教学中,案例是教学目标实现的关键,在进行案例的选择与设计时主要应考虑:以满足教学需要为前提;以实用、够用为原则;以应用能力培养为核心;难度应符合学生的认知能力。
(二)案例分析案例1:如图 1所示,一榀多层框架结构的设计计算。框架结构的分析计算是土木工程专业学生课程设计或毕业设计必须完成的学习任务。硕士阶段对其手工计算有一定程度的了解与认识。用有限单元法求解,首先必须将力学模型转化为计算模型,即将结构离散、节点编号、单元编号建立整体坐标系。利用梁单元的转角位移方程进行单元刚度分析,形成单元刚度方程,这部分内容易于理解与掌握。问题是单元刚度矩阵集成总体刚度矩阵时,学生始终难以准确理解单元刚度矩阵的元素如何置入总体刚度的相应位置。在此将问题的解决方法分为6个步骤进行分析。
![]() |
图 1 六层平面框架力学模型 |
一是让学生将结构离散化,包括单元编号、节点编号(如图 2所示)。根据单元刚度方程,找出节点力与节点位移之间的关系:
$ \left\{ \begin{matrix} {{F}_{i}} \\ {{F}_{j}} \\ \end{matrix} \right\}\left( e \right)=\left[ \begin{matrix} {{k}_{ii}}&{{k}_{ij}} \\ {{k}_{ji}}&{{k}_{jj}} \\ \end{matrix} \right]\left( e \right)\left\{ \begin{matrix} {{\delta }_{i}} \\ {{\delta }_{j}} \\ \end{matrix} \right\}\left( e \right) $ | (1) |
![]() |
图 2 结构离散数值化模型 |
二是分析单刚
三是根据矩阵运算规则,建立与式(1)等效的刚度方程:
$ {{\left\{ \begin{matrix} {{F}_{1}} \\ \vdots \\ F \\ \vdots \\ {{F}_{j}} \\ \vdots \\ {{F}_{n-1}} \\ {{F}_{n}} \\ \end{matrix} \right\}}_{3n\times 1}}=\left[ \begin{matrix} 0&\cdots &0&\cdots &0&\cdots &0&0 \\ \cdots &\cdots &\cdots &\cdots &\cdots &\cdots &\cdots &\cdots \\ 0&\cdots &{{k}_{ii}}&\cdots &{{k}_{ij}}&\cdots &0&0 \\ \cdots &\cdots &\cdots &\cdots &\cdots &\cdots &\cdots &\cdots \\ 0&\cdots &{{k}_{ji}}&\cdots &{{k}_{jj}}&\cdots &0&0 \\ \cdots &\cdots &\cdots &\cdots &\cdots &\cdots &\cdots &\cdots \\ 0&\cdots &0&\cdots &0&\cdots &0&0 \\ 0&\cdots &0&\cdots &0&\cdots &0&0 \\ \end{matrix} \right]{{\left( e \right)}_{3n\times 3n}}{{\left\{ \begin{matrix} {{\delta }_{1}} \\ \vdots \\ {{\delta }_{i}} \\ \vdots \\ {{\delta }_{j}} \\ \vdots \\ {{\delta }_{n-1}} \\ {{\delta }_{n}} \\ \end{matrix} \right\}}_{3n\times 1}} $ | (2) |
由上式可以看出,贡献矩阵由单元刚度矩阵扩展规模得到,非零元素的位置与节点编号i, j密切相关。
四是引入定位向量{λ}(e)的概念, {λ}(e)=[λ3i-2 λ3i-1 λ3i- λ3j-2 λ3j-1 λ3j]T(e),从单刚到贡献矩阵的定位规则为:kij→Kλiλj。
五是对每一单元可重复(3)(4)步,直到所有单元均已完成扩展与定位。
六是思考单元组装成结构的条件:节点力的平衡与位移连续。将所有单元位移产生的节点力求和,其实质就是单元贡献矩阵的求和。
这样一来,将看似复杂的高次超静定结构,转换为若干结点力的平衡问题。根据结构力学中的转角位移方程,求出结点力与结点位移之间的关系式,即单元刚度方程,然后分析每个杆件在单元位移作用下产生的结点力。根据结点力的平衡与变形连续条件,形成结构的总体刚度方程,用定位向量法实现,既能深刻体会单元刚度矩阵的力学意义,又能将复杂的结果以文字或图形的形式表现,为程序设计奠定了逻辑基础。
案例2:如图 3所示,矩形截面简支梁的设计计算(考虑对称,取右侧一半)。主要解决形函数设定与分片连续问题,实体结构—理解微分方程的求解问题。按弹性理论,弹性体位移是数学的连续可导函数,通过一定规则离散后,每个单元的位移模式由计算者自己设定。这种设定的依据是什么,精度、收敛性如何保证等问题都是困扰初学者的理论问题。要准确理解上述问题,需从以下几方面加以分析讨论。
![]() |
图 3 简支梁三角形单元计算模型 |
一是分片切割这种做法的理论基础。
如图 4,三角形单元e。若假定位移函数u(x, y), v(x, y),根据几何方程,求应变分量{ε}=[B]{ε}(e)。根据物理方程,求应力分量{σ}= [S]{δ} (e),根据虚功原理可得:
$ \left\{ F \right\}\left( e \right) = \;{\left[ K \right]^{\left( \mathit{e} \right)}}{\left\{ \delta \right\}^{\left( e \right)}} $ | (3) |
![]() |
图 4 三角形单元 |
式中:
这一演算过程,从物理学角度考察,将连续体内部应力应变之间的关系,转换为三角形单元节点之间力与位移之间的关系;从数学角度看,将连续型变量转换为离散型变量,将变量之间的微分关系转换为代数关系,运算逻辑上不存在问题。
二是根据变分原理和最小势能原理,建立结构的刚度方程:
$ \left\{ \mathit{F} \right\}=\left[ \mathit{K} \right]\left\{ \delta \right\} $ | (4) |
根据能量原理推导结构刚度方程的过程中,假设不发生能量损失或转换,将整个区域连续的弹性体问题,转换为分片连续的弹性块体,块与块之间以节点连接,节点外力在对应结点位移所做的功与弹性体的变形能相等,从而保证节点位移就是真实的位移。从数学角度,将位移满足的控制微分方程,转换为代数形式的刚度方程,不存在理解困难。
三是位移函数的收敛性条件,严格数学证明较为困难,只能做一些理解性的解释。任何连续可导函数,都可以在某一区域展开成泰勒级数,当取线性项时,就是三角形常量单元的线性位移函数的取值基础。位移函数满足如下条件,就可保证收敛:(1)包含反映刚体平动的常数项;(2)包含反映常应变的线性位移项;(3)位移在单元内连续,在相邻边界上协调。前两条是必要条件,第(3)条为充分条件。
通过虚功原理推导单元刚度方程,理解变量之间的微分关系,如何转换成代数关系;根据能量守恒定律,最小势能原理建立结构的刚度方程,有效解释分片连续问题与弹性连续域问题等效的力学意义;任何连续可导函数均可展开为泰勒级数,取线性项时,即为三角形常量单元的位移函数。单元内质点的位移分变形位移与刚体位移,只有包含常数项,才能真实反映刚体平动。位移中的线性项是用于反映常量应变的,否则就不能反映物体均匀变形,与实际情况不符。
案例3:如图 1所示平面杆系结构,用自编程序进行计算(以FORTRAN6.5为例)。有限元法的练习必须用程序计算完成。程序设计一方面让学生掌握有限元的步骤,培养锻炼学生的程序设计能力,了解软件计算思维逻辑与模型数值化方法,原始数据的输入与计算结果的输出,这些知识的学习反过来又加深对有限元理论的理解。平面框架计算程序设计也从三方面进行讨论。
一是参数的分类。(1)控制参数:单元个数、节点个数、节点荷载个数、非节点荷载个数、边界约束条件数;(2)几何与材料参数:节点坐标、截面面积、弹性模量、泊松比等;(3)计算参数:单元刚度矩阵、总体刚度矩阵、节点位移、单元应力等。
二是参数的表达。参数分单变量与变量数组,对于控制参数,可用单整型变量表达,如NE, NJ分别表示单元个数与节点个数。对于重复出现或物理逻辑同时出现的量,用数组表达较为合适,比如COORD(500, 2),表示节点坐标,const(500, 3)为单元常量数组,分别存贮单元的弹性模量、泊松比与单元的厚度。JR(NR, 4)表示支座约束信息,1,2,3,4分量分别表示支座结点号,u, v, θ方向的约束信息,“1”表示约束,“0”表示自由。计算参数多用实数组表达,比如P(300)表示节点位移,sigma(300, 3)表示单元应力等。
三是程序调试与数据的输入和输出。对于初学者而言,以数据文件的形式表达易于理解。一般将原始文件与结果文件分为两个文本文件,如in.dat,out.dat。按编程语言的规则与程序设计的读数顺序,将原始数据写入in.dat文件即可,结果文件的格式由程序设计完成,计算结束,打开out.dat文件即可查看所求问题的解。
有限单元法的学习必须进行程序计算,才能准确掌握其思维逻辑。进行结构的离散化与数值化,既是对有限元法计算步骤的练习,也是对计算模型的深入理解与分析。计算结果输出,才能理解与验证算法的正确性与有效性,从而加深对有限元原理的理解与记忆。
四、效果评价在传统教学模式下,学生因前置课程基础知识不足,难以理解抽象的理论推导,把握不了有限单元法的思维逻辑,产生消极情绪,影响教学效果。进行案例教学改革后,取得了较好的教学效果。
(1) 明确认识有限元课程的重要性与必要性,激发学生对有限单元法课程的兴趣,学生在“提出问题”与“寻求解答”的交互中完成了由“被动学习”到“主动学习”的转变。
(2) 将有限元步骤程序化,通过程序调试与对错误的修正,加深对有限元理论的理解与认识。
(3) 能计算传统手算无法给出结果的大中型问题,学生有一种成就感,反过来促使学生投入更多时间与精力,在“案例”与“理论”交叉学习的过程中完成从基本理论到实际应用的转换。
(4) 对硕士论文与就业方向产生积极的引领作用。近几年的硕士研究生论文,多数学生都使用数值分析工具建模分析,学生毕业择业优先考虑结构设计、施工仿真模拟方面的工作,对专业岗位工作充满信心。
五、结语通过案例这条主线贯穿有限元理论教学和实践教学环节,加强基本理论、程序设计和结构分析三个教学层次的纵向联系,实现了杆系结构、弹性实体结构、数值方法、程序设计、工程结构设计与施工过程仿真分析一体化教学。通过案例阐述理论,有利于教师的“教”和学生的“学”,有利于改变学生学习过程中应用所学理论知识解决实际工程问题能力较差的状况,有利于学生综合应用能力的培养和整体结构分析思维的建立。
[1] |
曾攀. 重视传统课程的教改培养高素质人才——谈研究生学位课《有限元分析及应用》的教改体会[J]. 学位与研究生教育, 2000(1): 31-34. |
[2] |
程强, 刘志峰, 赵永胜, 等. 卓越机械工程师的有限元分析及应用课程教学改革[J]. 中国现代教育装备, 2015(12): 117-120. |
[3] |
黄明, 石宪章, 刘春太. 《有限元法》课程逆向教学法探析[J]. 高教论坛, 2013, 3(3): 83-85. DOI:10.3969/j.issn.1671-9719.2013.03.023 |
[4] |
白冰, 蒋青青, 唐礼忠. 工科专业"有限单元法及程序设计"课程改革新思路[J]. 理工高教研究, 2009, 28(5): 136-140. DOI:10.3963/j.issn.2095-0705.2009.05.039 |
[5] |
王勖成. 有限单元法[M]. 北京: 清华大学出版社, 2003.
|
[6] |
Zienkiewicz O. C. The Finite Element Method[M]. 4th ed. London: McGraw-Hill, 1990.
|
[7] |
许波, 张子荣, 黄盛兴. 地方应用技术型本科院校土木工程专业实践教学体系构建[J]. 高等建筑教育, 2017, 26(5): 100-103. |
[8] |
王玉林, 张向波, 孙家国, 兰四清. 应用技术型大学土木工程专业实践教学体系研究[J]. 高等建筑教育, 2015, 24(65): 29-33. |
[9] |
向鹏成, 张媛, 李茂月. 基于案例教学的工程管理类硕士教学模式创新[J]. 高等建筑教育, 2018, 27(2): 28-32. |
[10] |
江胜华, 侯建国, 何英明, 等. 中国与新加坡土木中专业人才培养模式比较[J]. 高等建筑教育, 2018, 27(2): 23-27. |
[11] |
张新平. 论案例教学及其在教育管理学课程中的运用[J]. 课程·教材·教法, 2002(10): 51-61. |
[12] |
KOWALSKI T J. Case studies of educational administration[M]. New York Longman, 1991.
|
[13] |
姜元章. 提高中国高等工程教育质量的问题研究[J]. 中国石油大学学报, 2010, 26(4): 94-98. |
[14] |
赵志方, 章斌, 王立成, 等. 基于"大工程观"的专业型硕士研究生产学研培养模式探索与实践[J]. 高等建筑教育, 2018, 27(2): 23-27. |
[15] |
王玉辉. 案例教学在教育硕士培养中的应用——以语文学科为例[J]. 沈阳师范大学学报, 2012, 36(3): 130-133. DOI:10.3969/j.issn.1674-5450.2012.03.039 |