1.引论
经常使用Ansys、Abaqus等一系列有限元分析软件进行计算、学习的学生或工程师们都会知道在有限元分析建模与计算中刚度矩阵与质量矩阵的重要性。但是由于软件的黑盒性质,大家往往在实际使用十分成熟的商业化软件的过程中慢慢忽视了有限元及其衍生出的商业软件背后的原理与方法。
这时,不管是在学习中还是在工程应用中往往都会遇到一个同样的问题,那么就是如何将Ansys APDL运行中的产生的各种数据(例如:刚度矩阵、质量矩阵)导出成为我们熟悉的形式或文件格式,从而为我们所用,所分析。
因此我决定写下此篇文章来帮助很多实际工作或学习中需要用到此类技能的同学、同事们,让大家更了解Ansys APDL背后的工作原理与数据导出方式。
当然,在社区中早就有大佬回答过了这个问题,并给大家制作了相应的提取矩阵软件,其软件具备了简单、便捷的操作方式,让很多想要提取刚度矩阵与质量矩阵的同僚们受益,那么我为什么还要写一篇这样的文章重新提起这样一个话题呢?这就又回到了我开头所说的“原理与方法”,我在此更希望面对想要进一步学习了解软件背后机理的群体,并在此基础上保留教学的简洁性,提供导出矩阵与转换、列式、求解的源代码,使其既兼顾基本原理,又可以让大家直接上手使用,非常的便捷,也避免了很多因为优化不完全导致的运行bug。
2.有限元软件导出刚度矩阵与质量矩阵的方法
在使用APDL进行求解时,每次在求解完成后都会在工作路径下生成一个.full文件,而这个文件十分关键,其正是刚度矩阵与质量矩阵的所在之处。
2.1命令流方法
1)用户程序法
2)超单元法
3)Hbmat法
这三种在网络上都能很轻易的查到其使用的命令流与方法,但前两种并不推荐大家使用,不过感兴趣的朋友可以自行搜索尽可能多的了解一些。在这里我主要给大家介绍的方法是Hbmat法,也是我推荐大家使用的方法。其可以直接导出full文件中的矩阵数据,而通过我下面给大家提供的源代码便可以直接将导出的质量矩阵与刚度矩阵直接转化为matlab中可使用变量,实现我们的矩阵提取操作。
Hbmat法:
! 提取刚度矩阵
/AUX2
FILE,'file',full ! 将’file’改为自己路径下的.full文件名
HBMAT, 'Stiffness_mat', dat, , ASCII, STIFF, YES, YES !刚度矩阵
HBMAT, 'Mass_mat', dat, ,ASCII, MASS, YES, YES ! 质量矩阵
FINISH
成功导出后你会在你的工作路径中看到储存在Ansys中的刚度矩阵与质量矩阵。
2.2GUI方法
目前大部分此类教程都忽略了最基本的GUI方法,可能是自动带入了经验丰富的工程师角色,但对于初学者而言,GUI方法十分有助于理解与学习有限元软件,因此我也将介绍提取刚度质量矩阵的GUI方法。
从而我们便能导出所需要的刚度矩阵与质量矩阵源文件了。
3.源代码的使用与转换(使用方法)
我们打开所导出刚度矩阵会发现里面的数字比较混乱,一时间分不出哪些是我们需要的数据,也没有办法直接拿它用来计算,这时,我们便需要使用我们自己的矩阵转换m文件,其可以自动帮我们提取出刚度矩阵与质量矩阵,并生成matlab中的矩阵变量形式,我们可以直接运用这段源代码来进行操作。
下面是m程序使用方法,借助源代码既可以让你快速提取出想要的矩阵,又可以让你摆脱黑盒的束缚,有助于提升自己的专业能力与认知深度。
首先,我们打开导出的矩阵:
从这个文件中我们可以看到第二行有五个数字,其对应的意义分别是:总行数、列指针个数、矩阵行索引总行数、矩阵元素数总行数、结点力向量总行数。
这些数据具体的意义与使用方法,都可以在下面的矩阵转换文件”Transformer.m”中找出。
接下来我们直接打开matlab,将工作路径设置为”Transformer.m”文件所在的路径,
然后我们便可以开始使用矩阵提取m文件:Transformer.m,复制Stiffness_mat.dat文件(或者通过GUI导出的txt格式矩阵)的路径,只需在matlab中输入如下语句,便能直接得到我们想要的矩阵K1:
点击K1
便可以看到最终的总刚度、质量矩阵了,其为大型稀疏矩阵,且为对称矩阵。
到此,我们便成功通过Transformer.m函数完整提取出了我们想要的总刚度以及质量矩阵,整体过程十分简单,易上手,不管你是要在工作还是学习中应用都有着不错的可操作性,使用matlab中的m文件还会加深你对有限元程序设计的理解。
4.实战应用与范例讲解
接上一个矩阵的例子,其实际为Ansys中的一个应力集中问题模型所导出的刚度矩阵,那么我们如何来验证其结果的准确性呢,这时我们就要用到结点力矩阵来进行验证了,只要所解出来的位移与Ansys中可展示的结点位移相同,那么就证明我们的结果是准确无误的。
以下我们来进行求解,导入结点力向量矩阵,使用任意求解器来进行求解:
此时我们便得到了X向量矩阵,也就是结点的位移矩阵。由于这里用的是高斯消元法,因此计算运行可能会有些慢。
然后我们打开查看结果:
与Ansys中List导出的结点位移结果一致。结果正确。
5.代码购买说明
本源代码理论上适用于Ansys APDL中导出的各种hb格式矩阵,无任何限制,购买后如有任何问题都可以私信本人进行答疑,不仅是此代码方面,任何有关有限元软件学习的问题也都可以向我请教,我也会尽我所能去帮助大家。
现在购买代码限时附赠求解器程序源代码以及结点力向量导出与使用方法、有限元理论教程,欢迎大家一起学习与讨论。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删