找回密码
 注册
Simdroid-非首页
查看: 229|回复: 14

[二次开发] 自己编的简单的UMAT,请大神看一下,

[复制链接]
发表于 2017-5-5 17:04:35 | 显示全部楼层 |阅读模式 来自 河北秦皇岛
自己编写了个简单的UMAT,但是总是data check都过不了。所以贴出来大家讨论一下。帮我找找错误。
模型所完成的任务:
        之前有一个Explicit计算薄板冲压过程,用的是ABAQUS自带的各项同性模型,当然仅仅输入了弹性模量,泊松比和密度。,冲压完成之后,将已成型的板材用Standard计算板材的回弹,用的这个模型。模型中的杨氏模量取了个变化值,每个elment的杨氏模量的大小是随着冲压完成时 单元的塑性应变有关,具体函数在附件中。

但是总是data check都过不了,来给菜鸟解解疑惑吧。

附件:两个文档,一个for文件,一个Word版的公式说明。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2017-5-6 15:52:37 | 显示全部楼层 来自 河北秦皇岛
Simdroid开发平台
我来艾特版主。@吴聊SP
回复 不支持

使用道具 举报

 楼主| 发表于 2017-5-7 09:41:13 | 显示全部楼层 来自 河北秦皇岛
:):)版主版主版主。
回复 不支持

使用道具 举报

发表于 2017-5-8 16:55:11 | 显示全部楼层 来自 上海
粗略地看了一下,先帮楼主指出一个问题:等效塑性应变的状态变量在程序里面没有得到更新
回复 不支持

使用道具 举报

 楼主| 发表于 2017-5-8 17:51:06 | 显示全部楼层 来自 河北秦皇岛
bluerain09 发表于 2017-5-8 16:55
粗略地看了一下,先帮楼主指出一个问题:等效塑性应变的状态变量在程序里面没有得到更新 ...

这个,我这个做的是个冲压成形的回弹部分。每一个element都有一个 预先施加的应力和塑性变形。然后每个element根据初始的 等效塑性应变,通过一个函数,得到了它的弹性模量Eav。以每个element 跟据算出来的Eav为弹性模量(定值),进行弹性回复。所以我觉得 应该不更新 等效塑性应变吧。?

自己力学底子不好,求教了。
回复 不支持

使用道具 举报

发表于 2017-5-8 19:47:43 | 显示全部楼层 来自 上海
zhanghao1120 发表于 2017-5-8 17:51
这个,我这个做的是个冲压成形的回弹部分。每一个element都有一个 预先施加的应力和塑性变形。然后每个el ...

你的等效塑性应变是储存在STATEV状态变量,不知道你的初始等效塑性应变,在子程序中怎么获取?
回复 不支持

使用道具 举报

 楼主| 发表于 2017-5-8 20:15:07 | 显示全部楼层 来自 河北秦皇岛
bluerain09 发表于 2017-5-8 19:47
你的等效塑性应变是储存在STATEV状态变量,不知道你的初始等效塑性应变,在子程序中怎么获取? ...

如下图所示。下述代码是 for文件第一部分。其中EQPLAS=STATEV(2*NTENS+1),使读取了STATEV中等效塑性应变的部分。并且用下行代码Eav=a*EQPLAS*EQPLAS+b*EQPLAS+c 对读取迟来的等效塑性应变 进行了此时弹性模量的计算。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2017-5-8 20:46:33 | 显示全部楼层 来自 上海
zhanghao1120 发表于 2017-5-8 20:15
如下图所示。下述代码是 for文件第一部分。其中EQPLAS=STATEV(2*NTENS+1),使读取了STATEV中等效塑性应变 ...

建议你看一下帮助文档
STATEV(NSTATV)

An array containing the solution-dependent state variables. These are passed in as the values at the beginning of the increment unless they are updated in user subroutines USDFLD or UEXPAN, in which case the updated values are passed in. In all cases STATEV must be returned as the values at the end of the increment.

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2017-5-9 09:04:38 | 显示全部楼层 来自 河北秦皇岛
bluerain09 发表于 2017-5-8 20:46
建议你看一下帮助文档
STATEV(NSTATV)

看到了,并且翻译了:“STATEV(NSTATV):一个(包含解相关的状态变量)数组。这些被传入作为【在增量步开始的时候的】数值,【除非他们被更新【在USDFLD或者UEXPAN中】】【在这种情况下,被更新的数值被传入】。在所有情况下,STATEV必须作为数值被返回【在增量步结束时候】。”

谢谢,我试一试。
回复 不支持

使用道具 举报

 楼主| 发表于 2017-5-9 10:54:33 | 显示全部楼层 来自 河北秦皇岛
bluerain09 发表于 2017-5-8 20:46
建议你看一下帮助文档
STATEV(NSTATV)

在最后,添加了STATEV的每个量的写入,。终于可以write input了,真的十分感谢。但是从第一步就开始不收敛。老铁,还有什么高招?
回复 不支持

使用道具 举报

发表于 2017-5-9 11:13:03 | 显示全部楼层 来自 上海
zhanghao1120 发表于 2017-5-9 10:54
在最后,添加了STATEV的每个量的写入,。终于可以write input了,真的十分感谢。但是从第一步就开始不收 ...

你的这些状态变量在初始时刻要获取等效塑性应变,我不知道你的初始等效应变怎么输入,UMAT程序第一次运行时,这些状态变量值都是默认为零的
回复 不支持

使用道具 举报

 楼主| 发表于 2017-5-9 11:37:22 | 显示全部楼层 来自 河北秦皇岛
bluerain09 发表于 2017-5-9 11:13
你的这些状态变量在初始时刻要获取等效塑性应变,我不知道你的初始等效应变怎么输入,UMAT程序第一次运行 ...

是这个样子的。冲压回弹模拟分两步,第一个模型中,做冲压,冲压完成之后 板材会发生变形,并且成形板材里会有应力和应变。在第二个模型中,导入第一个模型的odb文件中的变形体,并且通过predefined field中的inital state将第一个模型中已经成形的板材应力应变状态赋予到 第二个模型中。这样,我的UMAT嵌入到第二个模型里,不就有了初始的等效塑性应变了吗?
回复 不支持

使用道具 举报

发表于 2017-5-10 09:43:01 | 显示全部楼层 来自 北京
本帖最后由 吴聊SP 于 2017-5-10 09:44 编辑

谢谢看得起我啊,可我不是很懂这的方向啊,有时间我帮你看看UMAT吧,P.S. @ 这个在论坛不起作用啊,我看不到提示
回复 不支持

使用道具 举报

 楼主| 发表于 2017-5-10 11:04:10 | 显示全部楼层 来自 河北
吴聊SP 发表于 2017-5-10 09:43
谢谢看得起我啊,可我不是很懂这的方向啊,有时间我帮你看看UMAT吧,P.S. @ 这个在论坛不起作用啊,我看不 ...

毕竟我也刚刚接触。谢谢,谢谢~
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-24 18:23 , Processed in 0.040816 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表