【CAE】CAE软件架构设计

2020 年 3 月 15 日 产业智能官

邓子平 多物理场仿真技术

这篇文章最早发表于2014年,是多次技术培训的基础。五年多过去了,回头来看,在仿真技术领域,除了AI对其有一定影响外,其它并无实质性的发展。依旧是已有软件每年更新版本;硬件要求换代升级;行业巨头进行收购。 这也从侧面说明了长期技术积累,开发硬核产品,是发展工业仿真软件唯一可行的路径。


--------------正文------------

这里的CAE是广义的,包含了传统意义上的 CAD/CFD/EDA/CAE/CAPP等

本文的设计主要覆盖软件工程流程中的概要设计和详细设计。因为客观原因,CAE软件与软件标准开发流程有所不同,设计文档更倾向基于可快速实现的原型开发

设计中并不强调某一模块的功能,也不追求某一方面的性能效率,而是基于软件工程,着重搭建一个通用性,可靠性,稳定性,扩展性,可测试性,维护性优秀的CAE软件平台。基于此平台,既可以开发大型通用有限元软件,也可以快速开发出行业CAE软件产品。

第一部分:模块划分

根据功能分以下几大模块

1. 输入输出(Input/Output或 I/O)

2. 几何

3. 有限元模型

4. 后处理器

5. 求解器

6. 图形

------------------------------------------------------

7. 公共模块

8. 高性能计算(HPC)

9. 参数优化设计

用例图(略)


第二部分:详细设计

1.  输入输出模块(Input/Output)

1.1.文件的读入与写出。文件类型包括:

1>. 软件自定义的工程文件

2>. 标准的CAD文件(DWG/Step/IGS/SAT/X_T/STL/Model/等)

3>. 标准有限元模型文件(bdf/cdb/inp/k/NEU/ModelFlow/I-deas/Ansa/Mar/Admin等)

4>. 标准的行业CAD文件 (制衣CAD格式,PCB板CAD格式等)

需要说明的是第四种文件,该文件的格式数据通常包含了几何描述信息和属性,几何描述信息是指无几何的拓扑信息(比如一个长方体,几何描述信息是用初始点坐标和长,宽,高四个参数来表示,而没有实际的点线面体拓扑信息),读入该类文件后,需要用CAD内核重新建立模型。

类图


1.2. 外部接口

通常CAE软件能够供其他软件调用,或者作为其中一个模块,也能够实现参数化命令行调用。



2. 几何模块(Geometry)

这里的几何指广义上的CAD,包含了几何的创建,编辑,管理等。一般的商业CAE软件提供了CAD功能,都比较简单。对于复杂的实际工程,很少在CAE软件中建模,而是在专业CAD软件(Catia/UG/ProE/Inventor等)或者行业CAD软件中建立几何模型,然后导入到CAE软件中。所以CAD不是CAE软件的重点,但是好的CAD模块能提高CAE仿真的效率,避免外部CAD数据与CAE接口之间的损耗(最典型的就是CAD数据修补)。CAD建模本身也是一项技术含量很高的工作(参数建模,约束建模),而且Catia/UG/ProE/Inventor这些产品在CAD方面已经做的非常好了。CAD与解方程组数值算法一样,也是基础性学科领域。

这里不涉及通用的CAD建模,重点在建立CAD模板。所谓的模板是指可反复使用,用户输入参数或者导入模板参数文件,即可建立所需的CAD模型,不需要用户手工去生成。(比如用户定义了一架飞机模型参数,参数可以保存为文件,生成实体几何后,修改机翼长度的参数,可再次生成模型而不用做其他修改)。这也是专业CAD软件的优势所在。

CAD建模,首先需要内核,目前商业的3D CAD内核有Parasolid和ACIS,Granite,开源的OCC。国内的CAD软件长期没有自主核心技术,在CAD内核方面也鲜有成熟产品。


3. 有限元模型(FE Model)

3.1. 单元

面向对象方法很适合构造有限元中的单元,ElementType为所有单元的基类。主要方法有:点的集合,材料,分析类型,阶次。根据单元的空间维数将单元划分为 0/1/2/3D单元。如需扩充新单元类型,在相应的单元类型上派生即可。


3.2. CAD和CAD属性(边界条件)

这里边界条件泛指任何在几何(点,线,面,体)上的属性(位移/荷载/温度/吸收边界/约束等)



CYCAD_Controller 负责获得几何数据和附加在几何上的属性(边界条件)。CYCAD_Data存储几何数据,CYCAD_Attribute存储与几何对应的属性。CYCAD_Engine是CAD内核的接口,通过接口也可以调用自己开发CAD内核。基于该结构,实现了CAD与MESH的解耦,对于已经有的CAD/Mesh接口,能实现最小限度的修改。

3.3. 网格划分


从名称可以看出采用了Factory和Facade模式,CYMesh_Facade负责与外部的接口,主要是设置1. CAD数据,2. CAD属性(材料,荷载,温度,边界等),3.网格划分参数和策略。Controller主要负责Mesh流程,CYMesh_Engine 是执行Mesh引擎的接口,可以根据实际需要选用网格引擎,以上选取了Gmsh,NetGen,Distene,VKI等,在此结构上,开发人员可以方便的对网格划分流程和网格引擎进行扩展。

3.4.网格属性

网格划分完成后,通常做法是把网格数据保存为规定的文件格式以供求解器调用。也有直接在内存中供求解器调用的,虽然提高了效率,但是不利于调试。对于自主开发的求解器,可以把网格导出为Ansys/Nastran等求解器的格式,以方便做Benchmark。

网格的数据包含了如下信息:

1. 节点信息:索引和坐标(Vertex)

2. 边信息:索引和点索引(Edge)

3. 面片信息:索引和边索引(Face)

4. 单元信息:索引和节点索引(Element)

通常以上信息只需得到 点和单元的信息,其它都可以求出。

5. 属性标签:加在几何上的属性会分配在相应的网格单元或者节点上。(边界条件/荷载/材料 等)

网格活动图:


说明:

1. Mesh Data为 网格数据

2. Validate Mesh quality 验证网格的质量,网格质量指单元的形状的好坏,有通用的公式计算(比如最大角度,长宽比,Aspect ratio/Skew 等)。网格质量的好坏直接影响到求解精度

3. Output to Mesh file导出为网格文件

4. Run Solver 调用求解器

5. Need refine:根据求解器反馈的结果和预定义的收敛准则,判断是否需要加密网格

6. Refine Mesh: 加密网格


4. 后处理

后处理是对仿真结果的处理,包括可视化,归纳分析,导出报告,与实验数据对比等。技术上来讲没有太多瓶颈,主要是数据的组织,再就是大数据显示的效率。

3.1. 可视化主要包括等值线,云图,XYplot,动画等,

3.2. 归纳分析,是指对仿真的原始数据进行加工,得到所需要的参数,比如VonMises应力,S参数等。

3.3. 与实验数据对比,这个也是以后CAE仿真的一个发展方向:即如何将仿真得出的数据与实验数据,保证仿真数据具有实际参考价值。

后处理主要用到图形显示模块。

目前市场上比较通用的商业后处理器:Ensight,HyperView,Femap。


5. 求解器

求解器核心是求解偏微分方程(PDE),有限差分/有限元/有限体积等数值方法二三十年前就已经很成熟,功能上没有太多难点。开发求解器主要在稳定性,扩展性,效率以及定制化等方面还有很多改进余地。开发求解器面临的主要问题是非技术问题,就跟键盘布局一样,大家用习惯了,再出来新的除非特别优秀或者有足够多的亮点,否则用户很难认可。拿求解器Radioss来说,Altair声称兼容Nastran,但是行业认可度并不高。另一个例子是COMSOL,COMSOL在求解器,前后处理上并无太多亮点,但打出了多物理场的旗号,并且在多物理场建模方面也确实提供了一些便利。


求解器涉及的领域有结构,电磁,热,声,光,流体等领域,可参考附件。


6. 图形

该模块包括以下几部分:

1. 几何模型,有限元模型,结果的可视化

2. 几何有限元模型的图形化编辑

3 GUI设计

1. 几何模型,有限元模型,结果的可视化

可视化开发工具首选OpengGL,使用OpenGL需要较深的图形学功底。目前绝大部分可视化工具都是基于OpengL。也有些公司在OpengGL之上做了封装,提供了更高层次的调用接口。

开源可视化工具VTK,ParaView。

也有提供商业可视化工具的(VKI/HOOPS/Gravies/),价格不便宜。


2. 几何/有限元模型的图形化编辑

涉及到编辑几何,编辑网格。允许用户通过鼠标,输入等方式编辑几何和网格,支持更复杂的功能(比如装配体的网格组合)

CAE软件通常采用卡片式编辑,即在一个ListView中按Index显示所有内容,提供编辑,删除,添加等,在新的窗口中实现功能。


3. GUI

图形化用户接口开发工具有MFC,QT,WPF等。最近十年QT的发展已有超过MFC的势头。作为GUI开发工具,QT具有使用简单,不依赖平台,开发资源丰富等特点,可作为开发的首选。

因为GUI涉及到软件的每个部分,同样,为了建立兼容的CAE开发平台,在开发之初最好能确定GUI工具,以后就不再改动。


7. 公共模块

公共模块没有太多核心技术,实现也没有难点,但在CAE开发中相当重要,尤其到开发的中后期,公共模块的重要性更加突出。一个好的公共模块能大大提高开发测试效率。


公共库主要包括 字符操作,数值计算,基本数据结构,错误返回代码定义,图形算法,常用算法,矩阵类等。

CYMatrix_Operator是定义的一个中间矩阵类,主要是统一矩阵操作的接口。考虑到求解器用的矩阵库各不相同,通过此接口可以统一,但性能上会有所降低。


8. HPC

(High performance computation)

参考本公众号文章 FEM之求解器加速(1)---HPC简介


9. 参数优化设计

参考 FEM之优化算法(1)

总结:

1. 本文只是一个初步的架构设计,其中有很多细节很难用文档来描述。

2. 设计中参考了如下软件:

ANSA/Catia/SolidWork/Patran/Nastran/Ansys/Abaqus/HyperWork/HFSS/FEMAP/LMS/ADMIN/COMSOL/Cubit/SimLab


写文本的目的只想说明,不管是开发大型通用CAE软件,还是行业的CAE仿真软件,在技术上都没有问题。软件要想真正发挥作用,其准确性,稳定性,可靠性,以及性能等需要在实际工程中检验和迭代。


先进制造业+工业互联网




产业智能官  AI-CPS


加入知识星球“产业智能研究院”:先进制造业OT(自动化+机器人+工艺+精益)和工业互联网IT(云计算+大数据+物联网+区块链+人工智能)产业智能化技术深度融合,在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的产业智能化平台;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链。


产业智能化平台作为第四次工业革命的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎; 重构设计、生产、物流、服务等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生 新技术、新产品、新产业、新业态和新模式; 引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。

产业智能化技术分支用来的今天,制造业者必须了解如何将“智能技术”全面渗入整个公司、产品、业务等商业场景中, 利用工业互联网形成数字化、网络化和智能化力量,实现行业的重新布局、企业的重新构建和焕然新生。

版权声明产业智能官(ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源,涉权烦请联系协商解决,联系、投稿邮箱:erp_vip@hotmail.com。




登录查看更多
9

相关内容

收缩自编码器(contractive autoencoder,CAE)是一种正则自编码器。它在编码h=f(x)的基础上添加了显示的正则项,鼓励 f 的导数尽可能小,它的惩罚项Ω(h) 是平方Frobenius范数(元素平方的和),作用于与编码器的函数相关偏导数的Jacobian矩阵。
FPGA加速系统开发工具设计:综述与实践
专知会员服务
65+阅读 · 2020年6月24日
【大规模数据系统,552页ppt】Large-scale Data Systems
专知会员服务
60+阅读 · 2019年12月21日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
CNCC技术论坛丨新型持久内存系统与安全
中国计算机学会
7+阅读 · 2019年9月15日
自动驾驶车辆定位技术概述|厚势汽车
厚势
10+阅读 · 2019年5月16日
无人驾驶仿真软件
智能交通技术
21+阅读 · 2019年5月9日
互联网+检验检测智能化成发展趋势
人工智能学家
7+阅读 · 2019年3月2日
Area Attention
Arxiv
5+阅读 · 2019年5月23日
TensorMask: A Foundation for Dense Object Segmentation
Arxiv
10+阅读 · 2019年3月28日
Learning Implicit Fields for Generative Shape Modeling
Arxiv
10+阅读 · 2018年12月6日
Doubly Attentive Transformer Machine Translation
Arxiv
4+阅读 · 2018年7月30日
Arxiv
3+阅读 · 2018年4月9日
VIP会员
相关资讯
CNCC技术论坛丨新型持久内存系统与安全
中国计算机学会
7+阅读 · 2019年9月15日
自动驾驶车辆定位技术概述|厚势汽车
厚势
10+阅读 · 2019年5月16日
无人驾驶仿真软件
智能交通技术
21+阅读 · 2019年5月9日
互联网+检验检测智能化成发展趋势
人工智能学家
7+阅读 · 2019年3月2日
相关论文
Top
微信扫码咨询专知VIP会员