应力是我们在分析中着重关注的指标,通过应力约束能使在优化过程中生成的结构,在载荷作用下应力分布更加均匀,避免应力集中,直接以应力指标作为约束能更好的控制性能,从而提高结构的可靠性。
您可能会注意到,尽管optistruct优化出的结构整体应力控制得很好,但某些局部区域的应力仍然很高。这是因为拓扑应力约束导致的局部应力集中,这些应力集中可能不会通过简单的全局应力控制或全局应力目标来解决。optistruct的优化方法 会过滤掉由载荷或边界条件引起的人为或局部应力。值得注意的是,即使在全局应力控制得很好的情况下,也可能存在高局部应力区域,这些区域可以通过局部的形状和大小优化来更有效地改善。
在本教程中,您将对使用壳单元建模的bracket-hook执行拓扑优化。
在开始之前,请将本教程中使用的文件复 制到您的工作目录。http://majorv.help.altair.com/minorv/simulation/tutorials/hwsolvers/optistruct/OS-T-2080/hook.zip
本教程旨在通过拓扑优化,在满足特定应力约束的同时,最小化模型中使用的材料体积。优化过程会根据每个单元的密度进行归一化处理,从而确定材料的最佳分布。通过移除低密度单元,可以进一步减小体积。
图1.具有载荷和约束的结构模型
结构模型被加载到HyperMesh Desktop中。约束、载荷、SUBCASE和材料属性已在模型中定义。拓扑设计变量和优化问题设置将使用HyperMesh定义,并使用OptiStruct来确定最佳材料布局。然后可以在HyperView中查看结果。
优化问题表示为:
Objective Function:最小化质量。
Constraints:最小成员大小=1.0、Von Mises应力 < 1000
Design variables:设计空间中每个Element的密度。
1.启动HyperMesh。
此时将打开User Profile对话框。
2.选择OptiStruct,然后单击OK。
这将加载用户配置文件。它包括相应的模板、宏菜单和导入阅读器,将HyperMesh的功能缩减为与生成OptiStruct模型相关的功能。
1.点击File>Import>Solver Deck。
导入选项卡将添加到您的选项卡菜单中。
2.对于File type ,选择OptiStruct。
3.选择文件图标。
此时将打开Select OptiStruct文件Browser。
4.选择保存到工作目录的hook.fem文件。
5.单击Open。
6.单击Import,然后单击Close以关闭Import选项卡。
3.1设置View
1.在Model Browser中,右键单击Components,然后从上下文菜单中选择Isolate Only。
2.在Standard Views工具栏中,单击 以使模型适合屏幕。
仅显示component。
3.2创建Topology Design variables
在此步骤中,您将设置优化以优化Design和Base component中的壳单元,以创建最小成员尺寸为1.0 个单位宽度的结构路径,其厚度在0 和壳体厚度之间变化。在验证设计时,优化将使用1000作为设计区域内任何单元的最大应力。
1.在Analysis页面中,单击optimization。
2.单击topology。
3.选择create子面板。
4.在desvar=字段中,输入shells。
5.将type: 设置为PSHELL。
6.使用props选择器,选择Design和Base。
7.单击create。
8.更新设计变量的参数。
a)选择parameters子面板。
b)将minmemb off切换为mindim=,然后输入1.0。
c)在stress constraint下,将none切换为stress=并输入1000。
d)单击update。
9.单击return。
3.3创建优化响应
1.在Analysis页面中,单击optimization。
2.单击Responses。
3.创建质量响应,该响应是为模型的总体积定义的。
a)在responses= 字段中,输入mass。
b)在响应类型下方,选择mass。
c)将区域选择设置为total和no regionid。
d)单击create。
4.单击return返回Optimization面板。
3.4应用约束
不需要额外的约束,因为在设计变量中设置应力目标会限制优化模型中使用的材料量。
3.5定义目标函数
1.单击objective面板。
2.验证是否选择了min。
3.单击response=并选择mass。
4.单击create。
5.单击return两次以退出Optimization面板。
1.在菜单栏中,单击File>Save As>Model。
2.在Save As对话框中,输入frf_response_optimization.hm作为文件名,并将其保存到您的工作目录中。
1.在Analysis页面中,单击OptiStruct。
2.单击save as。
3.在Save As对话框中,指定写入OptiStruct模型文件的位置,并在filename中输入hook_opt。
对于OptiStruct求解器模型,建议使用.fem扩展名。
4.单击Save。
input file字段显示在Save As对话框中指定的文件名和位置。
5.将导出选项切换设置为all。
6.将run options切换设置为optimization。
7.将内存选项切换设置为memory default。
8.单击OptiStruct运行优化。
作业完成时,窗口中会显示以下消息:
OPTIMIZATION HAS CONVERGED.
FEASIBLE DESIGN (ALL CONSTRAINTS SATISFIED).
如果存在错误消息,OptiStruct还会报告错误消息。可以在文本编辑器中打开文件hook_opt.out以查找有关任何错误的详细信息。此文件将写入与.fem文件相同的目录。
9.单击Close。
6.1查看密度结果的ISO图
1.在Mechanical Solver View对话框中,单击Results。
优化运行的结果和相应的线性static SUBCASE将加载到HyperView中。
2.查看单元密度结果的云图。
a)在Results工具栏中,单击 以打开Contour面板。
b)将Result type设置为Element Densities[s]。
c)单击Apply以显示密度云图。
d)在Results Browser中,选择Design和Iteration 26(或您的最终迭代编号)。
图2.
3.查看单元密度结果的Iso值。
a)在Results工具栏中,单击 以打开ISO Value面板。
b)将Result type设置为Element Densities。
c)在Results Browser中,选择最后一个设计迭代。
图3.
d)单击Apply。
e)在Current value字段中,更改值以查看具有不同密度值的结果。
当您更新密度阈值时,模型视窗中显示的Iso值会以交互方式更新。使用此工具可以更好地了解OptiStruct中的材料布局和载荷路径。
图4.ISO值图。当前值= 0.4528
6.2查看单元应力结果
1.在应用程序的顶部右侧,单击 以移动到显示SUBCASE 1 的线性static分析结果的页面。
结果是此页面从hook_opt_s19.h3d加载,并包含第1个SUBCASE的线性static结果。
2.在Results工具栏中,单击以打开Contour面板。
3.将Result type设置为Element stresses(2D&3D)(t)和vonMises。
4.在Results Browser中,选择最后显示的Iteration 。
5.在Contour面板中,单击Apply。
图5.von Mises应力结果
6.同样,查看其他SUBCASE的结果。