abaqus 关联 子程序_搞定所有的塑性本构-abaqus硬化子程序UHARD教学

hello,小伙伴们好。今天是2020-12-07,周一。本来打算今天写个子程序的教学,刚好我上午做的时候用到了一个,在这里和大家分享一下。这个子程序呢是用户自定义硬化的子程序,一般是用在材料会发生塑性变形的分析中,材料的强度的分析,如果你是做刚度分析的,那是用不到的。需要的小伙伴自取。下面我就详细说一下。

首先,需要明确什么时候用子程序。与脚本不同的是,python脚本是帮助我们偷懒的,就算你一点也不会脚本,硬着头皮在cae里慢慢做,也是可以做出来。只是有可能让你心态做崩了。或者关注我,我教你怎么写脚本。

而子程序是cae里完完全全满足不了你的需求的时候,才会用到。(像我这样的,没事喜欢写点子程序玩一玩的例外,与工作和项目无关的我也经常偷偷学一学,谁知道以后用不用的上呢,对不对,咱们学习的人不能太功利),又扯远了。。。

因为我要做的分析需要用到双曲线本构,本构模型如下(举个栗子)。但是abaqus内置是没有这种本构模型的,所以需要自定义UHARD实现这个本构模型。

既然有了需求,那么就可以动手写子程序了,首先在帮助文档里找到子程序的构架:

f523c55f4090b8a53c38857901d0ec11.png

找到接口之后,首先要搞明白,这些形参是什么意思。当然这个子程序里的形参有点多啊,大家可以照着帮助文档里看一看。

a91d21c653d55d333bb01a3fa830888e.png

a7a00fc7f95e37c714aa984bd118b27c.png

这里面比较重要的形参我提一下:

1 EQPLAS, EQPLASRT, TEMP

这三个形参分别代表,等效塑性应变,等效塑性应变速率。这3个是UHARD最基本的参量,因为一般材料的屈服强度跟这3个参数有关:

14a7c92461474b8738d5cfecad04ad9e.png

2 待定义变量

待定义变量一共如下5个,其中常用的是前4个,最后一个是用于子程序传递数据的状态变量。

964e84be68a7048507fe14449d6390f4.png

下面我分别解释一下这几个参数的含义:

2.1 SYIELD

屈服强度,我上面说了材料的屈服强度与3个参数有关,在这里就能定义了,比如说,上面的双曲线正弦本构,它的屈服强度就只与温度和应变速率相关,如下:

44a07af41cc97ba76767220759c5d175.png

9e957fceae9d3a3f61c87a1ebc057f97.png

知道了屈服强度的表达式之后,就可以把这句写到子程序里了,因为我用的是SI单位,应力的单位是Pa,所以要乘以1.D6的系数(这个本构模型默认是MPa)。

20fd3fefb9cc9610333b467118e70241.png

大家记得,再开始,最好声明一下变量类型,特别是中转的,子程序本来没有的,比如上面的Z,是我自己加上中转的变量,记得一定要申明类型,fortran不必python,申明类型了总不会错,但是没申明,当你写了百来行的代码之后,一旦出错了(不会有语法错误的,只是数据上的错误),能找的你后悔生出来。别问我为什么知道这些,都是泪其实写到这里,基本上已经写完了。但是还有一个附带的产物:

2.2 HARD

这是个一维数组,有3个元素。HARD(1)、HARD(2)、HARD(3)。

这三个变量是干什么的呢,大家如果看过我之前写的DISP子程序应该知道,我说过,大多数子程序都有个附带的东西,它对你的分析的精度没影响,但是会影响你的收敛速度。记不记得?这里也一样,这3个HARD值,其实就是屈服强度对应变、应变速率、温度的偏导数。这么一说大家是不是就清楚了。下面就把这3个偏导数求出来就行了。

*我:求导大家都会吧,那几本草稿纸,再拿10支铅笔,认认真真去图书馆坐上一两天,导数就求出来,很简单。然后发现求的不对,别灰心,继续求,一定要相信自己,肯定能求出来的。只要功夫深,铁杵磨成针。

*内心:楼上这憨批再说什么呢,搁着里秀智商呢

*我:.................

咳咳,大家既然学了这么久的程序,能用电脑计算的,就别用手算了,特别是对于复杂的函数,手算容易出错。像这种计算,当然是用我们的python了。python的sympy库是python的符号计算库,相当强大。用起来很顺手。比如求解我们今天的这个导数,只需要输入这么简简单单十几行python代码:

eb740a47044fdc25898fdcf975b71d6c.png

就能够输出你想要的偏导数结果了

00036e19a40e1ab2248a761332be1686.png

求完偏导数,输入到子程序里

f1ddc6b5e54d0d5934615a0c326b73ed.png

2c393171cf48a9712c1d0c39d3cb027a.png

到此位置 ,我们的子程序就已经写完了,大家注意一下21行,我写了一个判断,做这个判断只是针对双曲线正弦,因为分析的初始状态,有可能是没有应变速率或者温度为0的,但是屈服强度有不能为0,所以就赋予了它一个小的应变速率,再给个常温的温度,做为静态强度。这只是针对此本构模型的,大家不要一概而论,比如JC本构就不需要这样。

2.3 STATEV

我们还剩下一个,待定义的变量没说,STATEV。这个参量是状态变量,很多子程序里都有,它在UHARD里不是必须要定义的量,你可以不管它。它的功能是,可以实现在子程序内或者与别的子程序之间传递参数的量。这个参量我个人觉得是非常非常重要的,因为它可以实现子程序之间的互相关联,非常强大。如果大家现在还不太了解也没关系,先记住。我后面讲USDFLD的时候会着重介绍,给你们展示一下,这个状态变量的极度强大的能力。

既然子程序都写好了,那我们就测试一下吧。

3.1 建一个模型,随便建,我这里是半径10,高度40的圆棒

b39cb9b5cad42069562b1ab54ef64434.png

3.2 给材料,注意塑性一栏,硬化选User,才能启动UHARD

5e4cd3ee287140c86ad0375bdce7e40c.png

3.3 边界条件,下端固定,上端给20的位移量

c370010d6ff970617537fd8c5f85895c.png

3.4 Job里,通用一栏选用户子程序的文件位置,然后提交分析就行了

e148a6e03062c1818156000280a60c94.png

3.5 最终结果

cf08346955bc98004e066735e351aa54.png

4 总结

学会UHARD之后,只要是能写得出函数的本构关系,都可以用UHARD实现,大家可以自己尝试一下JC模型,刚好abaqus里内置的,可以用来比较。有多少可以写多少。

今天的内容就到这里,谢谢各位,下期再见,88。

(最近也收到了大家留言,谢谢你们的支持,我也会努力把专栏写好的。对于有问题的小伙伴,我也都回应,如果还有希望,请继续找我。大家有什么问题,再微信公众号后台给我留言即可,我每天都会看的。88)

c154b1a7114b6c90ad1a6b15cf4b971d.png
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值