首页/文章/ 详情

全网首发-如何利用workbench进行ASME CC2605-Omega高温蠕变分析(一)

1年前浏览3107

征求意见稿第5部分附录A中给出了Omega高温蠕变分析方法。该方法与ASME Code Case2605标准基本一致。由于Ansys不带Omega损伤模型,一直以来如何在Ansys中特别是Workbench中实现Omega蠕变分析变得十分神秘。本文就如何在WB中实现Omega蠕变分析流程进行经验分享,为大家提供一个思路。

核心:利用ANSYS UPFS功能加载自定义编写USERCREEP.F蠕变程序。

注:蠕变程序是将标准公式通过Fortran的形式编写,得到delcrdcrda(1)、dcrda(2)方程与ANSYS进行交互计算。本文不做过多讲述。

1 准备工作

确认你的ansys软件版本,下载对应版本的Visual StudioFortran编译器,版本号见Ansys Help

2 软件安装

注意:ANSYS要安装Customization files for user programmable features;一定要在Visual Studio安装之后才安装XEFortran套件)

3 程序连接(多种方法)

3.1 使用UPF ACT插件

ansys store下载UPF插件里面有使用教程,用于搜寻和加载usercreep.f程序。该方法有版本限制,且关闭ansys后插件有几率失效,需要重新加载

3.2 使用/UPF命令,在WB中插入语句:/UPF,usercreep.f

该命令需要将子程序放在工作目录://///dp0/sys/mech本方法可以摆脱版本限制

UPFACT插件其实就是将该命令和搜寻目录这个工作用Python代码给集成了。

以上两种方式需要指定环境变量:ANS_USE_UPF  变量值:TRUE,第三种不需要。

3.3 生成ANSYS.EXE应用程序

Usercreep.F程序放在///ansys\custom\user\winx64文件夹下,然后运行ANSCUST.BAT文件,将生成新的ANSYS.EXE。在WB中设置Solve Process的高级选项,利用-custom 指定加载新生成的ANSYS.EXE,即可调用蠕变程序。该方法不用每次使用时都去复 制粘贴子程序但若源代码需要更改,则更改后需要重新按~进行编译连接。

除此之外,还有其他连接方法,可参见ANSYS HELP或网络教程。简单描述一下第3种方法,同时也是检查其他2种方法是否编译环境配置正确的一种方式:

建立文件夹

把下面这个文件夹内容全部复 制一个新的到别的地方:

C:\Program Files (x86)\ANSYS Inc\v211\ansys\custom\user\winx64

例如:放到E盘:

E:\ANSYS BEIYONG\OMEGA

将依据ASME 2605公式进行重新编写的子程序文件usercreep.f放到新建文件夹

程序连接

右键管理员身份运行 ANSCUST.BAT文件,输入N下一步回车:

等待运行结束后显示Link Was Successful,输入Y下一步回车(第3种方法需要):

workbench中进行相关设置(第3种方法需要)

workbench中找到solve Process setting,点击MY computer advanced Properties,additional command line arguments 输入以下字符:   

-custom "E:\ANSYS BEIYONG\OMEGA\ANSYS.exe"配置完成。

4 程序使用

4.1 材料设置

workbench里面添加材料属性,蠕变损伤不包含材料非线性。对于Omega方法,我们添加弹性-理想塑性材料。类似极限分析。

添加时间强化蠕变模型,或者是其他蠕变模型,这个在计算时会被删除,用于激活workbench的蠕变选项。注意单位制,需和workbench设置一致。

4.2 删除蠕变模型,激活自定义蠕变

利用TBDELE,CREEP,i删除原有蠕变模型;

利用TB,CREEP,i……,100加载自定义蠕变模型;

利用TBDATA,,,,指定程序需要的输入数据;

利用TB,STATE,,,命令指定状态变量数目;

注意command命令的单位应该与求解单位制一致.

共有5个几何体,写一个*do/*enddo循环,减少输入工作,若有更多几何体,对应修改循环数。

4.3 求解设置

设置蠕变选项打开,一般是第二个载荷步打开,第一个关闭。

添加以下命令,用于输出自定义的状态变量,例如蠕变损伤等

如果使用/UPF命令方法加载,需要添加以下语句,其余两种方法无需添加:

4.4 结果输出

通过USER Defined Result定义输出量,在编写蠕变程序时状态变量的编号对应所需要的结果。例如把Ustatev(1)定义为损伤DC,在workbench中即可用表达式SVAR1获得结果。如果把Ustatev(2)定义为损伤DC,则相应的改为SVAR2

5 验证调用

查看是否连接成功,在SOLVE.OUT文件中,会有以下信息:

验证是否真正调用了自己的程序,可以在蠕变程序中编写下面的语句:

然后在solve.out文件中即可以看到以下结果:

来源:ANSYS分析设计人
ACTWorkbench非线性材料ANSYS
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-08-26
最近编辑:1年前
ANSYS分析设计人
硕士 学贵得师,更贵得友!共同学习!
获赞 36粉丝 140文章 152课程 0
点赞
收藏
未登录
1条评论
何枝可依
签名征集中
20天前
我用/upf命令调用子程序,编译链接成功了但就是死活不执行子程序,计算结果蠕变是0,.out文件里也没有子程序write的话
回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈