beatylady 发表于 2019-4-25 10:57

除了机器学习,计算力学也很玄

  Abstract
  本文是笔者一段时间的学习和总结。旨在对所学知识和技能的巩固以及对一些基本力学知识小小科普。第一部分简单并通俗的介绍了计算力学的一些基本概念。第二部分对有限元软件Abaqus分析中会遇到的一些通用或者具体问题进行总结,结合Python二次开发给出的一些实用小tips。最后对计算力学和笔者未来打算的一点展望。

  Introduction of Computational Mechanics
  计算力学computational mechanics, 简单说来是对复杂力学问题中的数学方程因为很难求得,甚至得不到准确的解析解(闭式解closed-form solution) 而寻求数值解(可以看作一种近似解)的力学学科的一门分支。计算力学通常又分为两大块:计算流体力学(CFD)和计算固体力学。两者所处理的力学方程不同,但基本思想是类似的,本文主要针对计算固体力学进行介绍。

  计算力学就是要给出求解的力学方程的数值解,而数值解则是指采用一系列数值(离散)方法对数学方程(主要是微分方程)求出的一种高度近似解, 常用的方法有限元分析(Finite Element Analysis),有限差分,变分法和插值法等。

  其中有限单元或者有限元素法(Finite Elements Method),是伴随计算机的诞生发展最快和目前应用最广的数值方法。

  FEM方法简单来说,将复杂结构划分为很多有限个简单单元,对每个单元进行理论求解,最后通过单元之间的约束和边界条件(Limite Condition)对整体求“和”的方法。

  这里可能就有人会问了,理论求解究竟有多难呢?下面对力学中的一些基本理论知识和重要概念做简单解读:

  连续介质力学(CMM)或者弹性力学中研究结构受力的三大基础分析方程:

  平衡方程(Equilibrium):即结构内部应力(stress)和结构外力平衡,近似相等(在很多仿真软件求解过程中并不是完全相等,会有一个冗余残差r)

  动力(几何)方程(Kinematics):即宏观位移微分等于结构内部的变形,力学上称之为应变(strain)

  本构方程(Constitutive):即结构材料中应力和应变之间的物理关系(材料弹性模型,泊松比等)
  figure 1 三大弹性力学方程  (图片摘自笔者计算力学PPT)  图中画圈部分就是上文提到的三大方程。一般的理论的求解过程大概是已知结构所受外力或者位移,根据边界条件,推出应力,应变等力学表征参数。

  由于三大方程(组)很多情况下都是(偏)微分方程,再加上结构的复杂性,维数的增加,可以想到其求解的困难。其实此时,当我们引入矩阵的概念已经可以大大提高计算的效率,不过还是不能满足现代工程计算中的需求,于是力(数)学家想办法绕开这些微分方程,找到“最小势能原理”这么个东西:
  figure 2 最小势能原理  图片摘自笔者计算力学PPT  使用最小势能原理,最初人们是通过猜测结构的位移(满足边界条件)函数(有待定系数),算出位移的内外力虚功,并且满足最小势能原理,最后算出位移方程的待定系数,得到位移。在这个计算过程中,我们再也不需要解微分方程了,只有一部分积分要算。

  而积分相比与微分就要好算的多了,现代有限元方法中,使用频率最高便是高斯插值(Gaussian Interpolation)的积分方法。

  当然当遇到一些非常复杂的结构时,较为准确的猜测总体的位移函数是很困难,也是不现实的,于是人们就想到将结构划分成微小的单元,对每个微小单元进行求解计算。

  这里就来到有限元理论中另一个重要概念:离散化(discretization)

  所谓离散化,其实我们早在学习高等数学积分时就提到过“先微再积,化曲为直”。这里我们也是采用同样的原理,要猜出整体结构的位移很难,我们就将整体结构划分成一个个小单元,对每个小单元的位移函数进行“猜测”,通常最简单的函数便是线性函数,当我们用这样一个线性函数对微小单元用能量方法进行求解后,将所有单元进行“组装”,便得到了结构整体的力学行为。
  figure 3 一维线性形函数  在现代有限元理论中,每个微小单元的位移函数叫做“形函数”(shape functions),准确“猜测”形函数就成了有限元计算的第一步也是对最后计算结果精度和计算效率影响最大的一步。在很多有限元软件中,已经将一些基础单元的位移模式(形函数形式)给提前假设好了,如平面三角形,空间四面体,六面体等单元。

  在理论中,最简单的形函数就是一阶线性函数,随着阶数的提升,求解的精度也越高。这点也很好理解,在计算积分时,每个单元中用梯形计算面积,精度要高过矩形(这里其实就是一阶函数和0阶函数的区别),当然了另一种提高精度的方法,就是将结构尽可能的划分小的单元,单元数量越多,单元越小,理论上计算精度越高。(但这只是通常情况,在应力集中处,或者边界处,通常会出现奇点singularity,在这种情况下,你的单元划分越密集,你并不会得到一个收敛的值,理论上接近无穷大,此时就不能通过划分更细的网格来求解此处的力学状态)对于这种方法,在工程和理论上我们有其他的解决的办法,我们会在后面结合具体实例和有限元软件再做介绍。

  有限元方法,随着近些年计算机的发展,加上各种工程上的问题越来越复杂,对计算的精度和计算的时间成本要求不断增大,出现了一大批先进的有限元,高级数值计算方法和模型,如X-FEM(拓展有限元),G-FEM, PU-FEM, 模态降阶方法POD,LATIN,NURBS,甚至出现了人工智能,机器学习,大数据对有限元方法的介入和改善。有机会,后面会和大家一起学习和分享。

sunsuky 发表于 2019-4-25 12:22

受益匪浅 感受楼组
页: [1]
查看完整版本: 除了机器学习,计算力学也很玄