结构分析的有限元法
与 MATLAB 程序设计
徐荣桥 编著
(浙江大学建筑工程学院)
内容简介
本书以有限单元基本理论为重点,以 MATLAB 程序为平台,以工程实例为背景,介绍
了有限元法及其程序设计方法。
本书讲述结构分析中有限元法的基本原理,单元类型包括平面杆系,空间杆系,平面等
参元,空间等参元,薄板壳单元和厚板壳单元等。内容涉及杆系结构、平面问题、空间问题
和板壳问题。以结构线弹性静力分析为主,同时也讲述了结构的振动、稳定和动力响应分析。
本书介绍了 MATLAB 编程环境下编写有限元程序的方法和技巧,并附有若干算例的有
限元程序。还有若干推导有限元列式的 MATLAB 符号运算程序示例。这些都为读者深入理
解有限元理论和掌握其实施技巧提供了极好的手段。
本书可以作为高等院校土木工程专业高年级本科生或研究生有限元法结构分析的教材,
也适合于其他如工程力学、机械工程等相关专业的科研人员在学习和研究工作中参考。
前 言
有限元法经过半个世纪的发展,在理论和实践上均取得了引人瞩目的成就,事实上它已
经发展成为工程领域中一门不可或缺的技术,同时也是科技工作者进行科学研究的有力工
具。因此,有限元法逐渐成为高等院校理工科专业的必修课程。
本书是编者在为浙江大学桥梁与隧道专业硕士生所讲授的《结构分析的有限元法》课程
讲义的基础上编写而成。本书的一大特色是采用 MATLAB 作为编程平台,利用 MATLAB
强大的科学计算和符号运算功能,帮助读者轻松跨越繁琐的公式推导和复杂的编程技巧,获
得最佳的学习效率。
在写作上,采用理论和程序紧密结合的方法,以增加读者的感性认识,更好地理解有限
元理论。不仅每章后面有极强工程背景的数值算例和源程序,而且还在有限元理论的叙述过
程中,插入相应的 MATLAB 程序段以帮助理解。
本书的内容共分八章,前面两章主要讲述有限元和 MATLAB 的发展概况及其基础知识。
第 3 章介绍了在工程中有极大应用价值的杆系结构的各类单元,包括杆单元、平面和空间梁
单元。第 4 章讲述经典的平面问题三角形单元和四边形单元。第 5 章把第四章的平面单元推
广到空间单元,还讨论了空间轴对称单元。第 6 章介绍了应用最广的平面和空间等参数单元
以及轴对称等参数单元。第 7 章在简要介绍板理论的基础上,讨论了三角形和矩形薄板单元,
也给出了基于 Mindlin 板理论的四变形板单元。最后介绍了用平板单元和平面应力单元组合
而成的壳单元。第 8 章讲述了结构的动力和稳定问题,并介绍了几种常用的特征值问题和动
力响应问题的算法。
在写作过程中,本书得到了浙江大学丁皓江教授和徐兴教授的大力指导,详细审阅了初
稿,指出并修改了若干错误,在此表示衷心的感谢。亦得到了浙江大学项贻强教授、陈伟球
教授、叶贵如教授、蔡金标副教授、赵阳讲师和张治成博士的大力指导和帮助。我要特别感
谢我的家人,感谢他们在我写作此书时所做的牺牲。
由于编者水平有限,时间仓卒,书中难免有许多缺点甚至错误,热情欢迎专家和读者批
评指正。
徐荣桥
2005 年 12 月
目录
第一章 绪论-------------------------------------------------------------1
1.1 有限元法简介--------------------------------------------------------------------------2
1.2 MATLAB 简介-----------------------------------------------------------------------------3
参考文献--------------------------------------------------------------------------------5
第二章 有限元法的预备知识-----------------------------------------------7
2.1 矩阵、线性代数和 MATLAB------------------------------------------------------------------7
2.2 MATLAB 程序设计初步------------------------------------------------------------21
2.3 弹性力学的控制方程和最小势能原理---------------------------------------------------24
2.4 有限元法分析过程概述-----------------------------------------------------------26
参考文献-----------------------------------------------------------------------------------28
第三章 杆件系统的有限单元法--------------------------------------------30
3.1 杆单元------------------------------------------------------------------------------------30
3.2 平面梁单元------------------------------------------------------------------------------32
3.3 空间梁单元-------------------------------------------------------------------------------36
3.4 等效结点力------------------------------------------------------------------------------40
3.5 单元刚度矩阵的坐标变换--------------------------------------------------------46
3.6 整体刚度矩阵----------------------------------------------------------------------53
3.7 边界约束条件的处理------------------------------------------------------------56
3.8 温度应力--------------------------------------------------------------------61
3.9 算例--------------------------------------------------------------------------63
参考文献---------------------------------------------------------------------------69
第四章 平面问题-------------------------------------------------------------70
4.1 两 类 平 面 问 题 -- -- - -- -- - -- -- - -- -- - -- - -- -- - -- -- -- - -- -- - -- -- - -- -- - -- -- - -70
4.2 三角形常应变单元------------------------------------------------------------72
4.3 形函数和面积坐标的性质-------------------------------------------------------76
4.4 单元刚度矩阵----------------------------------------------------------------80
4.5 等效结点力----------------------------------------------------------------82
4.6 矩 形 单 元-----------------------------------------------------------------87
4.7 其他注意事项----------------------------------------------------------------------93
4.8 算例----------------------------------------------------------------------------------96
参考文献---------------------------------------------------------------------------101
第五章 空间问题和空间轴对称问题-----------------------------------103
5.1 常应变四面体单元--------------------------------------------------------103
5.2 四面体的体积坐标--------------------------------------------------------106
5.3 四面体单元的刚度矩阵和等效结点力----------------------------------------------108
5.4 空间轴对称问题与三角形截面环单元----------------------------------------------112
I
5.5 轴对称单元的刚度矩阵和等效结点力----------------------------------------------115
5.6 算例--------------------------------------------------------------------------------------120
参考文献--------------------------------------------------------------------------------------124
第六章 等参数单元-------------------------------------------------------125
6.1 平面等参数单元------------------------------------------------------------------125
6.2 空间轴对称等参数单元--------------------------------------------------------140
6.2 空 间 等 参 数单 元--------------------------------------------------------143
6.3 算 例--------------------------------------------------------------------155
参考文献-----------------------------------------------------------------------160
第七章 板壳单元-------------------------------------------------------------161
7.1 弹性板的弯曲-----------------------------------------------------------------161
7.2 矩形薄板单元---------------------------------------------------------------164
7.3 三角形薄板单元---------------------------------------------------------------170
7.4 基于 Mindlin 板理论的四边形单元-------------------------------------------------178
7.5 平面壳体单元-------------------------------------------------------------------------------181
7.6 算例---------------------------------------------------------------------------------185
参考文献------------------------------------------------------------------------------------188
第八章 结构的振动、稳定和动力响应-----------------------------------189
8.1 动力学方程----------------------------------------------------------------189
8.2 质量矩阵------------------------------------------------------------------191
8.3 结构的自由振动----------------------------------------------------------------------194
8.4 结构的稳定-----------------------------------------------------------------------202
8.5 结构的动力响应-----------------------------------------------------------------------205
8.6 算例--------------------------------------------------------------------------------213
参考文献--------------------------------------------------------------------------------215
II
第一章 绪论
许多工程问题,我们虽然已经得到了他们的基本方程和边界条件及初始条件,但是能
用解析方法求解的只是少数方程简单、边界规则的问题,而绝大多数只能通过其他途径解决。
随着计算机硬件和软件的发展,数值方法越来越受到人们的青睐,其中有限元法以其方法的
统一性和理论的普遍性而独领风骚,已经成为处理各类科学和工程问题的有效方法之一,亦
有众多的有限元商用软件流行,如 ANSYS,NASTRAN,ADINA,ABAQUS 等,它们包含
众多单元类型,能求解各类问题。
有限元法的基本思想是“化整为零”,其实这个思想很早就在各个领域被人们采用。老
子就说“道生一,一生二,二生三,三生万物”,他把世间万物全部分解成最基本的“道”。
古代数学家将圆用多边形近似,并以此估算圆周率π值,达到了 40 位数字的精度。有限元
法把一个复杂的结构分解成相对简单的“单元”,各单元之间通过结点相互连接。单元内的
物理量由单元结点上的物理量按一定的假设内插得到,这样就把一个复杂结构从无限多个自
由度简化为有限个单元组成的结构。我们只要分析每个单元的力学特性,然后按照有限元法
的规则把这些单元“拼装”成整体,就能够得到整体结构的力学特性。可见有限元“化整为
零”的思想十分简单明了。但更重要的是,有限元可以建立在严格的数学基础上[1],成为求
解微分方程的标准方法之一,从而它不仅能够解决结构分析问题,也能解决工程中如电磁场、
流体力学、热传导、渗流等领域的诸多问题[2],因为它们在数学上都能用微分方程来描述。
有限元法是一种数值方法,应用性很强,因此在学习的过程中,必要的程序设计、编
写和调试能加深理解有限元理论,增加从实际工程出发建立有限元模型的感性认识,极大地
提高学习的兴趣和效率。传统的有限元书籍,凡给出具体程序代码的[2,3,4],基本上都是以
FORTRAN 为程序设计语言。由于一个完整的有限元计算程序,要包括模型的输入,稀疏矩
阵的存储,求解,分析结果的后处理等,导致程序十分庞大难懂,尤其对于初学者。因此有
的就只用一个求解单元刚度矩阵的子程序来说明程序的编写,而这样一段程序无法独立编译
连接成一个可执行文件,读者就无法验证其算例获得感性认识,示例效果大大降低。
本书的特色就是采用目前最流行的科学分析计算软件 MATLAB 作为编程环境。
MATLAB 的优势在于采用矩阵作为它的基本数据类型,并提供大量实用的矩阵运算函数,
可以把有限元理论中用矩阵表示的公式直接写成形式上一样的程序代码,它还有专门的极易
1
使用的大型稀疏矩阵存储和求解的功能,从而使得一个完整的有限元程序十分简洁明了,方
便读者理解和验证,大大提高了示例程序的效果。目前虽也已经有采用 MATLAB 作为程序
设计语言的有限元专著[5]出版,并被翻译成中文[6]。但该书以介绍 MATLAB 编写的有限元
程序为主,几乎不涉及有限元理论。另一本结合 MATLAB 编写的有限元专著[7]的情况有所
不同,它更倾向于把有限元作为一个求解偏微分方程的数值方法来介绍,目前还未见中译本。
1.1 有限元法简介
有关有限元的起源,很多关于有限元的专著[2,3,8,9,10,11]都会提到 Hrenikoff[12],Courant[13],
McHenry[14],Newmark[15],Turner et al[16]和 Clough[17]的工作。但是,我们同样也应该提到
Ritz[18],他在 1909 年曾提出一个求解连续体力学问题的非常有用的近似方法,后人称为 Ritz
法。该方法把待求函数用一组已知的试函数的加权和来表示,通过最小势能原理可求解每个
试函数的权系数。Ritz 法最基本的缺点就是每一个试函数必须满足指定的边界条件。
Courant[13]对 Ritz 法作了重要的推广,他把整个求解区域分成很多三角形的子区域,然后在
子区域内假定待求函数为线性函数,把三角形顶点处的函数值作为未知数,并且把边界条件
放宽,只要求在边界的有限点上满足,这样,应用 Ritz 法的一个很大的困难被克服了。更
为重要的是,原先的 Ritz 法解的精度很到程度上取决于试函数的选取,这要求应用人员具
有丰富的工程经验。
后来人们发现,Courant[13]应用的 Ritz 法其实与若干年后由 Clough[17]提出的有限元法是
一致的。当然,在 1960 年有限元获得迅速发展的原因在于该法中大量的数值运算能够由当
时正发展的电子计算机来实现,而在 1943 年,还没有这个工具为 Courant[13]所用。随着计
算机硬件和软件的发展,有限元迅速发展,并渐趋成熟,目前它已经被推广至三维问题,非
线性问题,时变问题,甚至已经超越了结构分析领域,如流体流动,热传导和电磁场分析等。
应用有限元法进行结构分析时,应把所分析结构物离散成有限个单元,并在每个单元上
指定有限个结点,单元通过这些结点连接构成整个有限元模型,用来模拟所分析的实际结构。
同时选定所求物理量的结点值,例如结点位移作为基本未知量。然后对每个单元假设一个简
单的插值函数(称为形函数),近似地表示未知量在单元内的分布规律,再利用变分原理或
其他方法,建立单元结点力和结点位移之间的关系,得到一组以结点位移为未知量的代数方
程组,从而求解结点的位移分量。一经解出,就可以利用插值函数确定单元内任意一点的位
2
移值。显然,如果单元满足问题的收敛性要求,那么随着缩小单元的尺寸,增加求解区域内
单元的数量,解的近似程度将不断改进,最终收敛于精确解。
当然,有限单元法中并不一定要求取结点位移作为基本未知量,也可以取结点内力为
未知量,因而,随着所取未知量的不同,有所谓位移法、力法、杂交法和混合法之分。本书
采用最为普遍的位移法,介绍结构分析中的限单元法基本理论和方法。
有限元法概念浅显,容易掌握,可以在不同的水平上建立起对该法的理解,即可以通过
非常直观的物理解释理解,也可以建立基于严格的数学分析的理论[1,10,19,20]。它不仅对结构
物的复杂几何形状有很强的适应性,也能应用于结构物的各种物理问题,如静力问题,动力
问题,非线性问题,热应力问题等。还能处理非均质材料、各向异性材料、以及复杂边界条
件等难题。因而,有限元法已经被公认为工程分析的有效工具,受到普遍重视。
有限元法还有一个特点是,它的理论采用矩阵形式表达。这并不利于一般的计算机语言
编制计算机程序,因为传统的计算机语言处理的对象是标量,使用矩阵形式的有限元理论时,
必须把矩阵形式的公式转换成标量表示的公式。而如果采用 MATLAB,这个特点就变成了
有限元法的优点。这也是本书采用 MATLAB 作为编程环境的一个重要原因。
1.2 MATLAB 简介
MATLAB 是当今国际科学界最具影响力和活力的软件。它起源于矩阵运算,并已经发
展成一种高度集成的计算机语言。它提供了强大的科学计算,灵活的程序设计流程,高质量
的图形可视化与界面设计,便捷的与其他程序和语言接口的功能。MATLAB 在各国高校与
研究单位起着重大的作用。
MATLAB 语言的首创者 Cleve Moler 教授在数值分析,特别是在数值线性代数的领域中
很有影响,他参与编写了数值分析领域两个重要的 Fortran 程序包 EISPACK 和 LINPACK。
他曾在密西根大学、斯坦福大学和新墨西哥大学任数学与计算机科学教授。1980 年前后,
当时的新墨西哥大学计算机系主任 Moler 教授在讲授线性代数课程时,发现了用其他高级语
言编程极为不便,便构思并开发了 MATLAB(MATrix LABoratory,即矩阵实验室),这一软
件利用了当时数值线性代数领域最高水平的 EISPACK 和 LINPACK 两大软件包中可靠的子
程序,用 Fortran 语言编写了集命令翻译、科学计算于一身的一套交互式软件系统。
所谓交互式语言,是指人们给出一条命令,立即就可以得出该命令的结果。该语言无需
3