征求意见稿第5部分附录A中给出了Omega高温蠕变分析方法。该方法与ASME Code Case2605标准基本一致。由于Ansys不带Omega损伤模型,一直以来如何在Ansys中特别是Workbench中实现Omega蠕变分析变得十分神秘。本文就如何在WB中实现Omega蠕变分析流程进行经验分享,为大家提供一个思路。
核心:利用ANSYS UPFS功能加载自定义编写USERCREEP.F蠕变程序。
注:蠕变程序是将标准公式通过Fortran的形式编写,得到delcr、dcrda(1)、dcrda(2)方程与ANSYS进行交互计算。本文不做过多讲述。
1 准备工作
确认你的ansys软件版本,下载对应版本的Visual Studio和Fortran编译器,版本号见Ansys Help。
2 软件安装
注意:ANSYS要安装Customization files for user programmable features;一定要在Visual Studio安装之后才安装XE(Fortran套件)
3 程序连接(多种方法)
3.1 使用UPF ACT插件
在ansys store下载UPF插件。里面有使用教程,用于搜寻和加载usercreep.f程序。该方法有版本限制,且关闭ansys后插件有几率失效,需要重新加载。
3.2 使用/UPF命令,在WB中插入语句:/UPF,usercreep.f
该命令需要将子程序放在工作目录://///dp0/sys/mech。本方法可以摆脱版本限制。
UPF的ACT插件其实就是将该命令和搜寻目录这个工作用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文件中即可以看到以下结果: