此学习体会是两年前写给课题组师弟师妹的,关于ABAQUS参数化建模中的一点经验和建议。若有错误之处,还请批评指正。
图片来自互联网
1. 综述
目前的有限元分析基本有这样的趋势,就是工程运用的人趋向于GUI操作,简单明了,但是科研工作者多青睐于基于code的参数化分析,可以使得自己从重复的建模过程中解脱出来,从而实现大批量的参数分析,得出相应的变化趋势,给出工程应用建议。这是两类使用者的目标不同所导致。这点可以从ANSYS Workbench和ANSYS Mechanics 的目标对象可以看出。所以对于研究者而言,可以掌握从code的视角去理解模型就变得尤为重要。这篇随笔,基本上是基于我去年参与shear lag 和block shear 项目中所学习到的一些体会以及和师兄讨论中的所得精炼而成。于是整理一下我当时学习的过程和体会,也基于我做过的分析给几点我个人的意见,供大家参考,学习交流。
2. 与ansys 的APDL的区别
做简单静力或者往复pushover分析常用的精细化通用商业化软件(钢结构),多见于ANSYS 和Abaqus. ANSYS Mechanic 模块同时支持GUI和APDL输入。对于熟练者而言,基本是基于APDL的code实现前后处理,便于参数分析,次之是基于半GUI和半
APDL。APDL的语句较基于python 的ABAQUS script 简单可读。但是编译过程由作者独立完成,对于初入行的学生来说门槛稍高。相比之下,基于python 的ABAQUS 编写script
的过程就很简单和直接,非常适合入门。
3. 基于python ABAQUS编译 scrip难不难?
想必这个问题是大家最关心的,当然也包括需要多久可以学会。我其实对于这样问题回答一般都是,入门很简单,到熟练需要长时间的实战历练。这和学习很多其他方面的只是一样,弹吉他,学做菜,大家都会一点,但是要想达到随心所用,确是:长时间的坚持。所以这个问题只回答前半个问题(入门难不难,要多久):入门不难,还很简单,大概一两天,如果你已经具备abaqus GUI的能力。
4. 基于python ABAQUS 编译scrip的逻辑是什么?
想要学会和掌握一门知识和使用一种健身器械的道理是一样,需要先看说明,才能正确使用,自然想要掌握基于python ABAQUS 编译scrip的方法,就需先掌握它背后的逻辑是什么。未知的东西总是充满神秘的,但当你揭开面纱的一瞬间,也许你曾恐惧未知的情感也会消逝。所以这部分主要介绍下,该方法本质上是如何实现,以期消除师弟师妹心中对于该方法的恐惧(诸如我都没要听过python,我连matlab 都不会,诸如此类,因为我曾经和你们一样,初听,觉得太过高大上,怀疑自己的能力,但是很多事情,做着做着就会容易些)。
实际上,python 语言已经嵌入了abaqus 模块(在整个过程也无必要了解什么是
python,当后期用到相应函数时,再去google 或者百度,在此之前,就当做英文的阅读理解),于是当你打开abaqus CAE 之后的一瞬间,其实也打开了一个abaqus.rpy文件,该文件会记录你在abaqus中任何的操作,比如建模,旋转模型,做接触,提交计算,数据提取,换句话说,你在abaqus 中每一步操作在abaqus.rpy文件都对应一句或若干句代码。这些代码实际上就是这些操作的code形式,当你完成所有的操作之后,实现基于
python ABAQUS 编译scrip就是修改abaqus.rpy,将之变成可以input 到abaqus的script
实现你刚才所有操作,然后在此基础上,将上述代码你想要考察的参数,实现变参,整个过程就已经完成。
这个过程,你不需要像ANSYS APDL要记住每个建模对象的code, 比如什么ET 1 2E5 0.3, Block,,,,,,,之类,因为所有对象code都呈现在abaqus.rpy。我们的工作就是实现它给我们的代码变参即可。
5. 实际操作中的一些建议 5.1 什么样的模型适合此方法
理论上而言,所有的模型均可实现上述基于python ABAQUS 编译scrip,但也存在一个问题值不值得?比如,你只是想验证一个复杂模型的受力状态,并不期待其参数的影响,这肯定首选GUI,或者你的参数变化在GUI中也很容易实现,且不多时,我个人也推荐GUI, 此方法最适合于模型复杂度不高,存在大量参数分析的工作。
5.2 开始前准备什么?
需要你对模型有足够的了解,每一个部件的尺寸,各部件之间的相对关系,在大脑里可以装配出此模型。
5.3 细节1
在若干部件中选择一个部件作为参考部件,参考部件可用于其他部件移动装配时的标定坐标。
细节2
所有建立的部件,均应以原点为起点,且建模方法均推荐输入坐标方法,不推荐先建出形状再去修改尺寸(减少操作,减少code数量)。
细节3
划分部件推荐一次划分完所有部件,不要划分一个部件完,去做其他操作,再来划分其他部分或者部件。
细节4
建立参考点时,输入坐标,不建议在你想要的模型位置处点击
细节5
装配模型时,切记不可复 制,可以重复在assembly 中import 你想要的part。
5.4 上述之所以要求以输入坐标形式建模,或者建立参考点,都是为了后期可以轻易的实现对坐标变参,而实现我们的参数化。
6. 上述是我对于学习该方法入门时的一些建议,也是基于我的一些建议,学习code之路是冗长且乏味的,可能你不经意点不知道何处的变动,你就会被卡死,然后就是debug。上述过程只是基础,到后期随着经验的稍加,可以使用控制语句,实现更多的变参。但上述所陈述的基础,对简单模型是可以胜任的。也期待和诸位同门相互交流学习。