Published 2014-10-21
更确切的表达:有限元预测结构的实际响应能有多精确?首先,让我先介绍一下从一个真实的结构到一个有限元模型和结果的典型流程(或者说是工作链):
· 建立真实结构的3维CAD(计算机辅助设计)模型
· 通过删除不必要的细节来简化几何模型
· 增加部件之间的连接(螺栓连接,焊接等)
· 创建简化CAD模型的离散化模型(划分网格)
· 指定要使用的材料并且给出材料的一些特性参数
· 将约束施加到模型上以匹配真实的结构约束
· 施加载荷到结构上来模拟结构的真实载荷
· 选择要包含的物理特性,排除那些不需要的物理特性(例如,要考虑热力耦合吗?还是简单的静力计算)
· 求解模型
· 阐释结果
如果没有误差引入,那么真实的模型和FEA模型是完美匹配的。也就是说,如果3D模型完全与真实结构一样,没有简化,离散误差可以忽略,材料也是完美的,等等。 但是这显然是不可能的,那么让我们来逐项检查,并且试图量化哪些是可能的。 3D CAD模型的的精度当我们从一个真实的部件创建一个CAD模型的时候,是有可能建立一个非常精确的模型的。但是我们通常反过来做。我们先创建一个CAD模型然后加工制造它。 但是在CAD模型和将要加工的零件之间会有很多不同存在: · 标准的型材截面是有公差的。例如,5 mm的板厚会有±0.35mm的公差,这是允许的。 · 在CAD模型中,焊接很少体现在3D模型中。 · 所有的机加工,从铣到钻都有公差。 · 装配会引起差异(焊缝尺寸,螺栓预紧等)
机加工和装配控制的越好,CAD越能精确的代表真实的结构。以下是一些例子: · 用一个高精度的数控铣床在一个控温环境中加工一个零件可能会使得最后的零件和CAD模型只有几个um的误差。对于所有的动机和目的来说,这个误差是可以忽略的。 · 如果使用了标准的型材界面和板材,属性的较大的变化就是可能的了,甚至是肯定的。这会影响FEA到真实结构的精度,但是同样也会导致实际结构的响应的分散:十个结构的屈服会有十个不同的结果。 · 单个的部件更容易模拟地准确。每一个额外的附加件都会引起一个小的分散,减小了CAD(和FEA)的真实度。 CAD 简化在FEA中,我们总是希望将CAD简化到一定的程度。这里的目的是为了删除掉在CAD模型中的一些特征,这些特征会导致大量的模型设定工作和过长的运行时间,但是这些特征又对最后的结果有很小的影响。 不过也很容易错误地删除一些特征:如果把一个小孔从一个大的板中移除,整体的变形不会发生大的变化。但是,靠近孔附近的应力却会剧烈的变化。如果这是在一个低平均应力的区域,这可能不重要。但是如果这是本来就是高应力的,移除这个孔可能会导致移除一个潜在的高应力区域。 由CAD模型简化导致的误差取决于分析师。为了估计这个过程引起的误差,就要用一些工程经验。 连接建模对于装配体,零件之间的连接对于真实结构的响应是十分关键的。如果需要一个准确的FEA结果,那么就需要准确的给连接建模。 CAD 模型
1D 网格
2D 网格
3D 网格
图1CAD 模型和不同的FEM表示
FEM 离散化FEM离散化通常叫做FEA 网格。这里的误差来在至少两个不同的源头: 网格类型实体网格有最精确的潜能。这主要是因为实体网格能够计算出模型中每一个节点的3D应力状态。 在一个典型的板结构中,在厚度方向的应力与其他两个方向相比通常比较小,所以这个应力可以忽略。壳单元就是专门设计用来以一种非常有效的方式来考虑这种情况的。 对于细长的结构,梁公式可以用来计算由轴向主导的应力和变形,以及结构的剪切和弯曲行为。梁单元能够很好的表征这种结构的响应。 在一个与壳理论相违背的情况下使用壳单元可能会导致错误的结果。对于一个板结构或一个梁结构使用实体单元比使用壳单元或者梁单元会获得一个更精确的结果,只要网格在所有的算例中都是收敛的。这是因为实体单元能够捕捉到壳单元和梁单元无法捕捉到的一些应力分量。但是如果这些分量并不重要并且无关紧要的话,这样会导致大量的计算时间,因为网格数量会剧增。 Mesh 收敛网格收敛是指离散化能够以什么程度来表征现实。这主要又以下项目的组合决定: · 三角形或四边形的壳单元
· 单元形状
· 四面体,棱柱形或者六面体的实体单元 · 单元误差 · 使用一阶单元还是二阶单元 · 在P单元中,每个边/面的阶数是可以独立变化的 · 单元方程和积分阶数 · 完全积分还是缩减积分 · 等参还是假定应变公式 · 单元扭曲 · 单元密度(例如,网格多有密)
有限元离散完全取决于分析师对单元形状,类型,阶数和网格细化的选择。如果细心的话,误差能够减小到一个很小的程度。当然,相反也是成立的-选择较粗糙的一阶三角形网格很容易导致一个数量级以上的位移和应力的误差。 材料特性材料模型的选择和材料数据的准确性对于有限元分析的结果影响很大。例如,钢材的弹性模量从187 GPa到207GPa浮动,当然也有一些钢材在此范围之外,大多数常用的钢材都会在这个范围内。 使用了错误的弹性模量对于结果有着很大的影响。我们考虑一个线性的结构,在有限元模型中只包含一个材料,弹性模量是E_Physical /E_FEA,那么: · 施加一个已知的载荷到结构上来得到正确的应力,那么预测的变形将会是E_Physical /E_FEA 倍的真实变形(应力还是正确的)。 · 施加一个强制的位移来得到正确的变形,但是预测的应力将会是E_FEA /E_Physical 倍的真实应力(变形是正确的)。 也就是说,使用错误的弹性模量将会导致一些结果没有误差,但是一些其他预测的结果将会是使用材料的误差的分数。 约束仔细阅读:既然一个约束是无限大刚想的,他们也增加了一定量的刚度到结构中了。 也就是说,如果不非常小心的使用约束,它就会导致错误的结果。不像载荷或者材料常数那样产生一个缩放的结果,错误的约束更可能会引起与实际响应在分布和数量级上都不相同的结果。 所以施加一个正确的约束对于正确的(或者说是合理的)结果来说是非常重要的。 载荷显然易见,如果计算是线性的,放大施加的载荷机会得到放大的结果。 同样的,施加错误的载荷分布也会导致错误的结果。如果使用的载荷和实际的载荷是静力等效的,那么至少在远离加载区域的结果是正确的,见图2。
图 2 静力等效的载荷和结果
物理学建模讲到物理学,我们是指分析是否包含了结构的所有响应。关于结构的响应我们要问一些如下的问题: · 实际的响应是线性的还是非线性的? · 在响应中有没有大转动? · 有没有接触或者分离的区域? · 材料是非线性的吗(塑性,蠕变,失效等)? · 载荷的大小或者方向会因为变形而变化吗? · 热效应重要吗? · 响应是动态的还是静态的?
如果这些点中的任意一个很重要,但是没有包含到分析当中的话,那么计算的响应肯定不会包含这些被忽略的物理现象的。 求解模型FEA分析代码(求解器)在一定程度上在前面所提到的项目上发挥作用,由于它所支持的单元类型,材料模型,和载荷类型等。这些已经被考虑了,所以从有限元求解器的角度来说不太重要。求解器是否具有某一种材料模型合作和物理学模型是一个能力问题,不是精度问题。 除了求解器中已知的bug(以及求解器的局限),所有的FEA代码都能给出一个非常近似的结构,如果前面提到的误差能都消除的话。所有的商业代码都花了大量的时间和静力来发现并追中错误,所以用户触发bug的几率是很小的。由于我不熟悉开源代买,我不评论:我希望他们也以类似的努力来追中修复bug。 也就是说,求解器可能导致不好的解答,但是不太可能发生-至少对于简单的模型不太可能。前面提到的误差源可能是求解器误差大好几个数量级。除非已极大的努力来建立一个真实的完美的模型,否则求解器误差可能是可以忽略的。 结果的阐释听起来很奇怪,但是几个工程师看着同一个结果,结果的解释可能是不一样的。假设我们假定结果完美地匹配真实的系统响应,预测行为的不同之处就是是否结构会“失效”。失效在这里可能意味着屈服或者不屈服,疲劳断裂或者静态断裂。 要解决这些问题,就要有更好的对于材料的响应的理解,而不是对于有限元的理解。 结论FEA可以获得精准的结果。小于1%的误差完全是可能的。这可信吗?当然不可信!!! 为了能有一个高精度的有限元分析,大量的静力要花在细节上。FEA模型如果考虑了以下所有条目话就接近完美了: · 有限元模型应该是一个真实结构的精确的几何表征,单元类型能够正确的模型它的行为,并且要网格收敛 · 材料模型和参数要准确地和真实材料一致 · 必须施加正确的载荷和载荷分布 · 约束必须匹配真实结构的约束 · 所有考虑到相关的物理性质
基于这样的原因,对于高精度机床加工的单个零件,想要获得高精度的结果应该是最容易的。 对于复杂的装配体,在允许范围内的尺寸变化的几何公差将会改变真实系统以及FEA模型的响应。如果测试系统的准确的尺寸能应用到FEA模型上,高精度的解答完全是可能的。 简言之,最初问题的答案:“FEA 能多精确?”答案是:“你想要多精确就有多精确!”
|