有限元法是工程中应用最广泛的数值分析方法之一,很多人每天都在用有限元软件,但对其背后的理论了解不多。了解一些有限元的基本理论,可以帮助我们更好地理解软件的工作原理,更合理地设置参数,更准确地解读结果。本文将用通俗易懂的方式介绍有限元的基本理论,适合初学者了解有限元的工作原理。
一、有限元法概述
什么是有限元法:
- 一种数值计算方法
- 用来求解各种工程和数学问题
- 把连续的物体离散成有限个单元
- 通过求解每个单元,再组装起来得到整体的解
- 是一种近似方法,但可以达到很高的精度
有限元法的基本思想:
- 化整为零:把复杂的整体拆成简单的小单元
- 积零为整:把小单元的解组装起来得到整体解
- 每个单元内用简单的函数近似真实的解
- 单元之间通过节点连接
- 用计算机求解大规模方程组
有限元法能解决什么问题:
- 结构力学问题:应力、变形、振动、稳定等
- 热传导问题:温度分布、热应力等
- 流体力学问题:流场、压力、温度等
- 电磁场问题:电场、磁场、电磁力等
- 各种多物理场耦合问题
有限元法的特点:
- 适用范围广,各种复杂问题都能算
- 可以处理复杂的几何形状
- 可以处理复杂的材料和边界条件
- 精度可以通过加密网格提高
- 需要计算机,计算量可能很大
二、有限元法的基本步骤
有限元分析的基本流程:
1. 前处理:建模、划分网格、设置材料和边界条件
2. 求解:组装方程、求解
3. 后处理:查看结果、分析
从理论角度看,有限元法的步骤:
1. 结构离散化:把连续体分成有限个单元
2. 选择位移模式:单元内用什么函数近似
3. 单元分析:推导单元的刚度矩阵、载荷向量等
4. 整体组装:把单元矩阵组装成整体矩阵
5. 施加边界条件:处理约束
6. 求解方程组:得到节点位移
7. 计算其他结果:应力、应变等
三、结构离散化
什么是离散化:
- 把连续的物体分成很多小单元
- 单元之间通过节点连接
- 原来无限自由度的问题变成有限自由度
- 这就是"有限元"名字的由来
单元的类型:
- 按维数分:一维单元(杆、梁)、二维单元(平面、壳)、三维单元(实体)
- 按形状分:三角形、四边形、四面体、六面体等
- 按阶次分:线性单元、二次单元、高阶单元
节点的作用:
- 连接单元
- 单元的未知量(位移等)定义在节点上
- 单元之间通过节点传递力和位移
- 节点的自由度就是整个问题的未知量
网格划分的原则:
- 重要的地方网格密一些
- 应力梯度大的地方密一些
- 单元形状不要太差
- 数量要合适,太少精度不够,太多计算慢
- 可以通过网格收敛性验证确定
四、位移模式和形函数
什么是位移模式:
- 单元内部的位移怎么变化
- 用一个简单的函数来近似
- 通常用多项式
- 用节点位移作为参数
为什么用多项式:
- 数学上处理简单
- 容易求导和积分
- 高阶多项式可以提高精度
- 只要单元足够小,低阶也可以很准
形函数的概念:
- 把单元内的位移表示成形函数乘以节点位移
- 形函数是坐标的函数
- 每个节点对应一个形函数
- 形函数在对应节点处为1,其他节点处为0
形函数的性质:
- 在对应节点上值为1
- 在其他节点上值为0
- 单元内所有形函数加起来等于1
- 可以用来插值单元内的任意量
常见单元的形函数:
- 线性三角形单元:三个形函数,都是线性的
- 线性四边形单元:四个形函数
- 二次单元:有中间节点,形函数是二次的
- 高阶单元:形函数阶次更高
五、单元刚度矩阵
什么是刚度矩阵:
- 描述单元节点力和节点位移的关系
- 是一个矩阵
- 节点力 = 刚度矩阵 × 节点位移
- 类似弹簧的 F = k × x,只是推广到多自由度
刚度矩阵的推导:
- 可以用虚功原理推导
- 也可以用最小势能原理
- 或者用加权余量法
- 最终得到单元的刚度矩阵和载荷向量
刚度矩阵的特点:
- 对称的
- 半正定的
- 单元刚度矩阵是奇异的(没有约束的话可以刚体运动)
- 只和单元的形状、材料、大小有关
材料的影响:
- 材料的弹性模量、泊松比等参数
- 不同的材料模型有不同的刚度矩阵
- 线弹性的话刚度矩阵是常数
- 非线性的话刚度会变化
单元大小的影响:
- 单元越小,单元刚度越大还是越小?
- 其实不一定,要看具体情况
- 整体来说,网格加密结果会更精确
- 但单元本身的刚度矩阵数值会变化
六、整体组装
为什么要组装:
- 每个单元有自己的刚度矩阵
- 但我们需要的是整个结构的
- 把所有单元的贡献加起来
- 得到整体的刚度方程
怎么组装:
- 按照节点编号
- 同一个节点的单元,把刚度加到对应的位置
- 就像拼积木,把每个单元放到整体的对应位置
- 最终得到整体刚度矩阵K
整体平衡方程:
- K × U = F
- K是整体刚度矩阵
- U是节点位移向量(未知量)
- F是节点载荷向量
- 这是一个线性方程组
整体刚度矩阵的特点:
- 对称的
- 稀疏的(很多零元素)
- 带状的(非零元素集中在对角线附近)
- 没有约束的话是奇异的
稀疏性的意义:
- 很多元素是零
- 可以用稀疏矩阵技术节省内存和计算时间
- 有限元的大规模计算能实现,稀疏性很重要
- 节点编号顺序影响带宽
七、边界条件的处理
为什么要加边界条件:
- 没有约束的话,结构可以刚体运动
- 刚度矩阵是奇异的,方程解不唯一
- 加了约束之后,方程才有唯一解
- 约束就是限制某些节点的自由度
常见的边界条件:
- 位移约束:固定、铰支、滚动等
- 力载荷:集中力、分布力、压力等
- 温度、加速度等其他载荷
怎么处理位移约束:
- 直接把已知位移代入方程
- 修改刚度矩阵和载荷向量
- 有几种处理方法,结果是一样的
- 处理之后方程就可以求解了
注意事项:
- 约束要足够,防止刚体位移
- 不要过约束,不然结果不对
- 约束的位置和方式要符合实际
- 对称问题可以用对称约束
八、方程组求解
有限元最终要求解什么:
- 一个大型线性方程组 KU = F
- 未知数是节点位移U
- 解出位移之后再算应力应变等
求解方法分类:
- 直接法:直接分解矩阵,比如LU分解、Cholesky分解
- 迭代法:一步步迭代逼近解,比如共轭梯度法、多重网格法
直接法的特点:
- 精度高
- 结果可靠
- 适合中小型问题
- 内存和计算量增长比较快
迭代法的特点:
- 适合大型稀疏问题
- 内存占用相对小
- 需要设置收敛准则
- 有些问题可能收敛慢或不收敛
求解器的选择:
- 问题小的话直接法就可以
- 大型问题考虑迭代法
- 不同软件有不同的求解器可选
- 根据问题类型和规模选择
九、应力和应变的计算
得到位移之后:
- 先有了节点位移
- 单元内的位移可以通过形函数插值得到
- 应变是位移的导数
- 应力通过本构关系由应变得到
应变的计算:
- 应变是位移的空间导数
- 对位移模式求导
- 单元内的应变可能是常数或线性的等
- 取决于单元的阶次
应力的计算:
- 应力 = 弹性矩阵 × 应变
- 线弹性的话就是胡克定律
- 每个单元内可以计算应力
- 通常在单元中心或高斯点计算更准
应力平均和节点应力:
- 相邻单元的应力可能不连续
- 因为每个单元自己算自己的
- 可以平均得到节点应力
- 或者用其他方法光滑处理
十、有限元解的性质
收敛性:
- 网格越密,结果越接近真实解
- 只要单元满足一定条件,就能收敛
- 这是有限元法的重要数学基础
- 但收敛的快慢和单元类型有关
收敛的条件:
- 单元要完备:能表示刚体位移和常应变
- 单元之间要协调:位移连续
- 满足这两个条件,一般就能收敛
- 有些单元不完全协调也能收敛,叫非协调元
精度和网格的关系:
- 一般来说,网格越密精度越高
- 但不是越密越好,要考虑计算量
- 可以做网格收敛性验证
- 不同位置精度可能不同,应力集中处需要更密
误差的来源:
- 离散误差:用有限单元近似连续体
- 数值误差:计算机计算的舍入误差等
- 模型误差:材料、边界条件等简化
- 主要关注离散误差
十一、有限元法的变分原理
有限元法的理论基础:
- 很多是基于变分原理的
- 比如最小势能原理
- 或者虚功原理
- 也可以用加权余量法
最小势能原理:
- 平衡状态下,总势能最小
- 总势能 = 应变能 - 外力势能
- 对位移求导,令导数为零
- 就得到平衡方程
虚功原理:
- 平衡状态下,虚外力功等于虚应变能
- 虚位移是任意的、满足约束的微小位移
- 用这个原理也可以推导有限元方程
- 和最小势能原理是相通的
加权余量法:
- 先假设一个近似解
- 代入方程会有余量(误差)
- 让余量在加权平均意义下为零
- 可以推导有限元方程
- 更通用,不一定需要变分原理
十二、总结
有限元法的核心思想:
- 化整为零,积零为整
- 把复杂问题拆成简单的小单元
- 每个单元用简单函数近似
- 再组装起来求解整体
有限元法的基本步骤:
- 离散化:分成单元和节点
- 单元分析:推导单元刚度矩阵
- 整体组装:得到整体方程
- 施加边界条件:处理约束
- 求解方程:得到位移
- 后处理:计算应力等结果
有限元法的理论基础:
- 变分原理(最小势能、虚功等)
- 或者加权余量法
- 形函数和插值
- 矩阵运算和线性方程组求解
给初学者的建议:
- 不用一开始就把理论学得很深
- 先会用软件解决实际问题
- 用的过程中慢慢理解理论
- 了解基本概念有助于更好地使用
- 遇到问题时理论知识能帮助排查
- 有兴趣可以深入学习
有限元理论是一个很深的领域,要完全掌握需要很多数学和力学知识。但作为使用者,了解一些基本概念和原理就很有帮助了。希望本文能帮助大家对有限元的工作原理有一个基本的认识。如果有相关的问题或经验,欢迎在评论区交流讨论。
|