有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly

(原创,转载请注明出处)

==概述==

本系列文章研究成熟的有限元理论基础及在商用有限元软件的实现方式。有限元的理论发展了几十年已经相当成熟,商用有限元软件同样也是采用这些成熟的有限元理论,只是在实际应用过程中,商用CAE软件在传统的理论基础上会做相应的修正以解决工程中遇到的不同问题,且各家软件的修正方法都不一样,每个主流商用软件手册中都会注明各个单元的理论采用了哪种理论公式,但都只是提一下用什么方法修正,很多没有具体的实现公式。商用软件对外就是一个黑盒子,除了开发人员,使用人员只能在黑盒子外猜测内部实现方式。

有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图1

有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图2

一方面我们查阅各个主流商用软件的理论手册并通过进行大量的资料查阅猜测内部修正方法,另一方面我们自己编程实现结构有限元求解器,通过自研求解器和商软的结果比较来验证我们的猜测,如同管中窥豹一般来研究的修正方法,从而猜测商用有限元软件的内部计算方法。我们关注CAE中的结构有限元,所以主要选择了商用结构有限元软件中文档相对较完备的Abaqus来研究内部实现方式,同时对某些问题也会涉及其它的Nastran/Ansys等商软。为了理解方便有很多问题在数学上其实并不严谨,同时由于水平有限可能有许多的理论错误,欢迎交流讨论,也期待有更多的合作机会。

iSolver介绍视频:

http://www.jishulink.com/college/video/c12884

==第16篇:Part、Instance与Assembly ==

有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图31.1 三者的关系

与Patran不同,Abaqus引入Assembly的概念,支持在一个模型中采用多个Part。通过定义Part之间的接触和约束,能够更真实地反映复杂产品的整体结构特性。在Abaqus模型中,Assembly包含一个和多个Instance,而每个Instance都对应一个Part。

有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图41.2 Instance的网格

在建立Instance时,除了选定对应的Part,还需要设置Instance的网格是否Dependent。如果是,则Instance直接使用Part的网格,任何对于Part网格的修改都会直接影响Instance的网格;如果否,则Instance会剪切当前Part的网格,建立仅从属于Instance的独立网格。需要注意的是,当多个Instance引用同一个Part时,这些Instance的网格必须同时独立于或者依赖Part。

Abaqus关于Instance的设计也是与现实情况相吻合的。例如,经常会有这样的情况,机械产品内部使用很多个相同零件,在仿真时就可以只建一个Part,而建立多个Instance,每个Instance的网格都依赖于Part,这样可以极大程度降低仿真的计算量。但如果这些零件的受力情况差异较大,就需要创建不同的网格,即Instance的网格独立于Part,从而反映实际的结构特性。

有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图51.3 Abaqus内部组装流程猜测

从上述分析可以对Abaqus内部组装流程进行猜测,以总装刚度矩阵组装流程为例:

1. 取一个Instance;

2. 判断Instance网格是否为Dependent;

3. 如果是,取Instance对应的Part;如果否,组装Instance的刚度矩阵,跳转6;

4. 判断Part的刚度矩阵是否已经组装;

5. 如果是,跳转6;如果否,组装Part的刚度矩阵;

6. 判断是否还有Instance未组装,如果是,跳转1;

7. 将所有Instance的刚度矩阵组装;

8. 组装Assembly下的单元刚度矩阵;

9. 最终形成整个Assembly的总体刚度矩阵。

有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图61.4 算例

模态分析结果的正确性直接受总体刚度矩阵和总体质量矩阵影响,因此我们采用一个多Part手机模型的模态分析来验证本节内容的正确性。此次验证,依然使用自研求解器iSolver与Abaqus计算结果对比的方式。

有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图71.4.1 算例说明

如图,此手机模型Assembly由12个Part组成,Part之间采用K-Coupling连接。

                       

4.png

有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图9有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图10

有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图111.4.2 模态分析结果

3.png

有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图13

iSolver与Abaqus计算频率结果误差小于2%,由此可以证明iSolver计算得到的总体刚度矩阵和总体质量矩阵与Abaqus一致,验证了本文对于多Part模型总装矩阵组装流程的猜测。

 

有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图14

==总结==

本章介绍了Part、Instance与Assembly三者之间的关系,分析了Instance的网格形成原理,也简单猜测了一下Abaqus的内部组装实现流程,最后通过一个算例来验证。

算例视频:

http://www.jishulink.com/college/video/c1288411.4 分析案例篇4:手机多Part模态分析

如果有任何其它疑问或者项目合作意向,也欢迎联系我们:

snowwave02 From www.jishulink.com

email: snowwave02@qq.com

 

有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图15

以往的系列文章:

第一篇:S4壳单元刚度矩阵研究。介绍Abaqus的S4刚度矩阵在普通厚壳理论上的修正。

http://www.jishulink.com/content/post/338859

第二篇:S4壳单元质量矩阵研究。介绍Abaqus的S4和Nastran的Quad4单元的质量矩阵。

http://www.jishulink.com/content/post/343905

第三篇:S4壳单元的剪切自锁和沙漏控制。介绍Abaqus的S4单元如何来消除剪切自锁以及S4R如何来抑制沙漏的。

http://www.jishulink.com/content/post/350865

第四篇:非线性问题的求解。介绍Abaqus在非线性分析中采用的数值计算的求解方法。

http://www.jishulink.com/content/post/360565

第五篇:单元正确性验证。介绍有限元单元正确性的验证方法,通过多个实例比较自研结构求解器程序iSolver与Abaqus的分析结果,从而说明整个正确性验证的过程和iSolver结果的正确性。

https://www.jishulink.com/content/post/373743

第六篇:General梁单元的刚度矩阵。介绍梁单元的基础理论和Abaqus中General梁单元的刚度矩阵的修正方式,采用这些修正方式可以得到和Abaqus梁单元完全一致的刚度矩阵。

https://www.jishulink.com/content/post/403932

第七篇:C3D8六面体单元的刚度矩阵。介绍六面体单元的基础理论和Abaqus中C3D8R六面体单元的刚度矩阵的修正方式,采用这些修正方式可以得到和Abaqus六面体单元完全一致的刚度矩阵。

https://www.jishulink.com/content/post/430177

第八篇:UMAT用户子程序开发步骤。介绍基于Fortran和Matlab两种方式的Abaqus的UMAT的开发步骤,对比发现开发步骤基本相同,同时采用Matlab更加高效和灵活。

https://www.jishulink.com/content/post/432848

第九篇:有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图16有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图17有限元理论基础及Abaqus内部实现方式研究系列16: Part、Instance与Assembly的图18编写线性UMAT Step By Step。介绍基于Matlab线性零基础,从零开始Step by Step的UMAT的编写和调试方法,帮助初学者UMAT入门。

http://www.jishulink.com/content/post/440874

第十篇:耦合约束(Coupling constraints)的研究。介绍Abaqus中耦合约束的原理,并使用两个简单算例加以验证。

第十一篇:自主CAE开发实战经验第一阶段总结。介绍了iSolver开发以来的阶段性总结,从整体角度上介绍一下自主CAE的一些实战经验,包括开发时间预估、框架设计、编程语言选择、测试、未来发展方向等。

http://www.jishulink.com/content/post/532475

第十二篇:几何梁单元的刚度矩阵。研究了Abaqus中几何梁的B31单元的刚度矩阵的求解方式,以L梁为例,介绍General梁用到的面积、惯性矩、扭转常数等参数在几何梁中是如何通过几何形状求得的,根据这些参数,可以得到和Abaqus完全一致的刚度矩阵,从而对只有几何梁组成的任意模型一般都能得到Abaqus完全一致的分析结果,并用一个简单的算例验证了该想法。

http://www.jishulink.com/content/post/534362

第十三篇:显式和隐式的区别。介绍了显式和隐式的特点,并给出一个数学算例,分别利用前向欧拉和后向欧拉求解,以求直观表现显式和隐式在求解过程中的差异,以及增量步长对求解结果的影响。

http://www.jishulink.com/content/post/537154

第十四篇:壳的应力方向。简单介绍了一下数学上张量和Abaqus中壳的应力方向,并说明Abaqus这么选取的意义,最后通过自编程序iSolver来验证壳的应力方向的正确性。

https://www.jishulink.com/content/post/1189260

第十五篇:壳的剪切应力。介绍了壳单元中实际的和板壳近似理论中的剪切应力,也简单猜测了一下Abaqus的内部实现流程,最后通过一个算例来验算Abaqus中的真实的剪切应力。

https://www.jishulink.com/content/post/1189260



(4条)
默认 最新
👍
评论 点赞
加油
评论 点赞

查看更多评论 >

点赞 22 评论 4 收藏 5
关注