首页/文章/ 详情

HyperStudy_使用 HyperMesh 和 Abaqus 建立形状优化研究HS-1550

6月前浏览648

 

了解如何使用HyperMesh和HyperStudy执行形状优化。您将使用有限元求解器Abaqus和HyperMorph来执行形状参数化。本教程还演示了当HyperMesh和HyperStudy在Windows中运行且求解器位于UNIX平台上时,如何解决问题。

在开始之前,请将本教程中使用的模型文件从/HS-1550/ 复 制到您的工作目录。

在本教程中,您将:

·使用HyperMorph生成形状变量。

·从HyperMesh中运行研究。

·使用HyperStudy执行形状参数化。

·设置研究。

·编写脚本以在UNIX上运行Abaqus,并在Preferences File.中注册脚本。

·运行优化研究。

本教程的目标是在应力约束为200MPa的情况下,将连接到轴的连杆的质量降至最低。输入变量由外部形状定义。

 

图1.

一、在HyperMesh中加载模型

1.启动HyperWorks。

2.在Startup对话框中,验证HyperMesh是否已选中

3.对于Profile ,选择Abaqus

4.单击Create Session

5.在菜单栏中,单击File>Open>HyperMesh Model

6.在Open Model对话框中,打开link.hm文件。

有限元模型出现在图形区域中。

 

图2.

二、在HyperMorph中执行形状参数化

1.如有必要,请启用HyperMorph面板。

a)在菜单栏中,验证View>Panels已启用。

b)在面板区域中,选择Tool子面板,然后单击HyperMorph

 

图3.

2.创建域。

a)单击domains

域子面板打开,您可以从中创建形状参数化的域。

b)单击第一个箭头,然后选择2D domains

c)单击切换开关并选择all elements

d)单击create

 

图4.

生成域和手柄,并将其用于操纵网格的形状并生成形状优化所需的形状扰动。

 

图5.

3.单击return

4.为链接的外边缘创建输入变量。

a)在HyperMorph面板中,单击morph

Morph子面板将打开,从中可以变形网格的形状。

b)单击第二个箭头,然后选择translate

c)在y val= 字段中,输入-5.0。

d)在模型视窗中,点击链接右上角的黄色手柄。

 

图6.

e)单击morph

将生成第一个形状。

 

图7.

5.保存形状。

a)在Morph功能区的Save组中,单击Shapes工具。

此时将打开Edit Shapes对话框。

b)在Edit Shapes对话框中,单击。

保存形状。

c)右键单击保存的形状,从上下文菜单中选择**Rename,**然后输入sh1作为新名称。

d)单击Close

6.通过单击菜单栏中的File>Save来保存模型。

7.关闭HyperWorks。

三、设置基本求解器脚本

1.在文本编辑器中,打开HS-1550_solverScript.py。

HS-1550_solverScript.py文件使您能够在本地计算机上运行求解器。此python脚本使用您指定的参数调用Abaqus求解器。

2.将文件中的路径更改为计算机上的Abaqus可执行文件。

3.修改任何其他参数,例如内存请求。

4.**Optional:**在Windows上运行HyperStudy,并在Unix中运行Study Directory,并且求解器在Unix上运行

**Restriction:**仅适用于远程机器。

为了在远程Unix机器上运行命令,必须安装一个本地程序来远程传达命令。在此示例中,使用的是程序ssh,但存在其他等效或更好的程序。在大多数情况下,程序的协议需要通过密码进行身份验证。要使此设置正常工作,需要将环境配置为在没有活动密码输入的情况下工作。此设置可能需要网络管理员的帮助。

ssh_remote.bat文件是一个示例(Windows) 批处理文件,用于从Windows上运行的HyperStudy会话在Unix(run_abaqus.sh) 上运行脚本。

ssh user_nameunix_machine ./run_abaqus.sh %1 %HST_APPROACH_VARNAM % %HST_STEP_INDEX% %HST_APPROACH_MODELS%

批处理文件使用ssh命令登录到Unix计算机,并对HyperStudy创建的文件执行求解器。此脚本将在HyperStudy中注册为求解器脚本。

a)打开ssh_remote.bat文件

b)更改通用参数unix_machine以匹配网络上远程Unix计算机的名称。

c)更改通用参数user_name以匹配您在远程计算机上的登录信息。

**Note:**这个登录应该被配置为在这两台机器之间没有密码就可以工作。

d)打开run_abaqus.sh文件。

run_abaqus.sh文件是一个shell脚本,旨在在UNIX计算机上运行Abaqus解算器。此文件应放在Unix计算机上的HOME目录中。

e)在文件上使用命令dos2unix将文本格式更改为与Unix兼容:dos2unix run_abaqus.sh。

f)确保文件具有可执行权限,然后输入chmod 755 run_abaqus.sh。

g)编辑run_abaqus.sh文件,并根据需要修改可执行文件的路径和此命令的任何其他选项。

四、将Abaqus注册为解算器

1.启动HyperStudy。

2.在菜单栏中,单击Edit>Solver Script

此时将打开Register Solver Script对话框。

3.添加求解器脚本。

a)单击Add Solver Script

此时将打开Add对话框。

b)在Label和Varname字段中,输入Abaqus。

c)从求解器脚本类型列表中,选择Generic。

d)单击OK

 

图8.

4.在脚本Abaqus的路径列中,单击。

5.在Open对话框中,打开python.exe文件。

**Tip:**你也可以从Python Path字段中复 制并粘贴相同的路径和文件。

6.在Abaqus脚本的用户参数列中,单击。

7.在Open对话框中,导航到您的工作目录并打开HS-1550_solverScript.py文件。

8.**Optional:**仅适用于远程计算机:将Abaqus注册为求解器。

 

图9.

9.单击OK

五、执行研究设置

1.通过以下方式开始新研究:

a)在菜单栏中,单击File>New

b)在功能区上,单击。

2.在Add Study对话框中,输入研究名称,选择研究的位置,然后单击OK

**Important:**研究目录必须是你在映射的UNIX机器上的主目录。

3.转到Define Models步骤。

4.添加HyperMesh模型。

a)从Directory中,将HyperMesh(.hm) 文件link.hm拖放到工作区中。

 

图10.

b)在Solver Input File列中,输入link.inp。

这是HyperStudy在任何评估期间写入的求解器输入文件的名称。

c)在Solver execution script 列中,选择Abaqus

d)在Solver Input Arguments列中,输入$filebasename。

e)**Optional:**此外,您可能需要编辑Abaqus环境文件。

例如:ask_delete=OFF或注释行ask delete=on(如果有)。

这是必需的,因为Abaqus会在重新运行分析时提示您覆盖旧文件。为了消除用户交互的需要,您需要命令Abaqus不要询问此问题并覆盖。

5.
 

6.图11.

7.导入变量。

a)单击Import Variables

在HyperWorks中打开Model Parameters对话框。

b)展开Shape,然后单击sh1.S的。

c)将Lower limit更改为0.0,将Upper limit更改为1.0。

d)单击Add

e)单击OK

 

图12.

8.转到Define Input Variables步骤。

9.查看设计变量的下限、初始和上限范围。

 

图13.

六、执行试运行

1.转到Test Models步骤。

2.单击Run Define

在study Directory中创建approaches/setup_1-def/ 目录。approaches/setup_1-def/run__00001/m_1目录包含输入文件,该文件是试运行的结果。

七、创建和评估输出响应

在此步骤中,您将创建两个输出响应:Mass和Max_Stress。

1.转到Define Output Responses步骤。

2.创建Mass output响应。

a)从Directory中,将位于approaches/setup_1-def/run__00001/m_1目录中的link.dat文件拖放到工作区中。

b)在File Assistant对话框中,将Reading技术设置为Altair® HyperWorks®,然后单击Next

c)选择时间序列中的Single项,然后单击Next

d)定义以下选项,然后单击Next

将Type设置为ABAQUS.dat

将Request设置为TOTAL MASS

将Component设置为MASS

e)将输出响应标记为Mass。

f)将表达式设置为First Element

g)单击Finish

Mass output响应将添加到工作区。

3.创建Max_Stress输出响应。

a)从目录中,将位于approaches/setup_1-def/run__00001/m_1目录中的link.obd文件拖放到工作区中。

b)在File Assistant对话框中,将Reading技术设置为Altair® HyperWorks®,然后单击Next

c)选择Multiple items at multiple time steps(readsim),然后单击Next

d)定义以下选项,然后单击Next

将Subcase设置为Step-2

将类型设置为S-Global-Stress components(PART-1-1)

将Request设置为E1-E378

将Component设置为vonMises

e)将输出响应标记为Max_Stress。

f)将Expression设置为Maximum

g)单击Finish

Max_Stress输出响应将添加到工作区。

4.单击Evaluate以提取响应值。

八、运行优化

1.添加优化。

a)在Explorer中,右键单击并从上下文菜单中选择Add。

b)在Add对话框中,选择Optimization

c)对于Definition from,选择一种方法,然后单击OK。

2.转到Optimization>Definition>Define Output Responses步骤。

3.单击Objectives/Constraints - Goals选项卡。

4.添加目标。

a)单击Add Goal

b)在Apply On列中,选择Mass(r_1)

c)在Type列中,选择Minimize



来源:TodayCAEer
HyperMeshAbaqusSTEPS形状优化通用ADSpython
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-02-26
最近编辑:6月前
TodayCAEer
本科 签名征集中
获赞 85粉丝 192文章 742课程 2
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈