链接变量的尺寸优化

文摘   2025-01-29 08:04   重庆  
在汽车车身设计中,经常会遇到关于对称性的优化问题。例如,对于车身的对称零件,通常需要它们具有相同的厚度,以满足结构对称性的要求。OptiStruct可以通过属性关联来实现这种设计变量的同步变化。这意味着,如果两个零件在设计上是对称的,那么它们的厚度设计变量可以被链接起来,确保它们在优化过程中始终保持一致。
具体来说,用户可以在OptiStruct中定义一个设计变量,并将其与特定零件的属性(如厚度)相关联。然后,通过使用设计变量链接(desvar link)功能,可以将一个设计变量设置为依赖于另一个设计变量。这样,当一个设计变量更新时,与之链接的设计变量也会自动更新,从而保持对称零件的属性一致性。
在本教程中,您将对使用壳单元建模的焊接支架执行尺寸优化。
在开始之前,请将本教程中使用的文件复制到您的工作目录。
http://majorv.help.altair.com/minorv/simulation/tutorials/hwsolvers/optistruct/OS-T-4010/bracket_size.zip
在本教程中,我们使用的是一个结构模型,它包含了施加的载荷和必要的约束。我们的目标是在保证结构在特定应力水平下性能的前提下,尽可能减少材料的使用。对于支架这样的对称结构,其两侧的厚度是相互关联的,这意味着在最优设计中,两侧的厚度应该是相等的。这样的设计不仅满足了对称性的要求,而且还能确保材料使用的最小化。
图1.焊接支架的结构模型
您需要将结构模型加载到HyperMesh中。约束、载荷、材料属性和SUBCASE(Load Step)已在模型中定义。定义尺寸、设计变量和优化参数,然后OptiStruct软件确定最佳厚度。然后在HyperMesh中查看结果。
优化问题表示为:
Objective:最小化体积。
Constraints:支架的最大von Mises应力< 100 Mpa。
Design variables:支架的厚度。
一、启动HyperMesh并设置OptiStruct用户配置文件
1.启动HyperMesh。
此时将打开User Profile对话框。
2.选择OptiStruct,然后单击OK    
这将加载用户配置文件。它包括相应的模板、宏菜单和导入阅读器,将HyperMesh的功能缩减为与生成OptiStruct模型相关的功能。
二、打开模型
1.单击File>Open>Model
2.选择保存到工作目录的bracket_size.hm文件。
3.单击Open
 bracket_size.hm数据库被加载到当前的HyperMesh会话中,替换任何现有数据。
三、设置优化
1          

 

2          

 

3          

 

3.1创建尺寸设计变量
1.在Analysis页面中,单击optimization面板。
2.单击size面板。
3.选择desvar子面板。
4.创建设计变量part1。
a)在desvar= 字段中,输入part1
b)在initial value= 字段中,输入2.5
c)在lower bound= 字段中,输入1.0
d)在upper bound= 字段中,输入2.5
e)将移动限制切换设置为move limit default
f)将离散设计变量(ddval) 开关设置为no ddval
g)单击create
5.创建设计变量part2。
a)在desvar = 字段中,输入part2
b)在initial value = 字段中,输入2.5
c)在lower bound = 字段中,输入1.0
d)在upper bound = 字段中,输入2.5
e)将移动限制切换设置为move limit default
f)将离散设计变量(ddval) 开关设置为no ddval
g)单击create
6.选择generic relationship子面板。
7.part1_th创建设计变量属性关系。
a)在name = 字段中,输入part1_th
b)使用prop选择器,选择part1
c)在props选择器下,选择Thickness T   
d)单击designvars
e)选择part1
Note:线性因子自动设置为1。
f)单击return
g)单击create
已创建设计变量属性关系part1_th,将设计变量part1与属性part1的PSHELL卡上的厚度数值相关联。
8.part2_th创建设计变量属性关系。
a)在name = 字段中,输入part2_th
b)使用prop选择器,选择part2
c)在props选择器下,选择Thickness T
d)单击designvars
e)选择part2
f)单击return
g)单击create
已创建设计变量属性关系part2_th,将设计变量part2 与属性part2 的PSHELL卡上的厚度数值相关联。
9.单击return转到优化面板。
3.2链接设计变量
1.单击desvar link面板。
2.在dlink = 字段中,输入link1
3.在dependent下,单击designvar=并选择part2
4.在独立下,单击designvars并选择part1
Note:线性因子自动设置为1。
5.单击return
6.在C0 = 字段中,输入0.000
7.在CMULT = 字段中,输入1
8.单击create
9.点击return转到优化设置面板。
设计变量part2 现在线性依赖于设计变量part1。
3.3创建优化响应
1.在Analysis页面中,单击optimization
2.单击Responses
3.创建体积响应,它定义设计空间的体积分数。    
1.在responses=字段中,输入volume
2.在响应类型下方,选择volume
3.将regional selection设置为totalno regionid
4.单击create
4.创建static stress响应。
5.在response= 字段中,输入stress1
6.将响应类型设置为static stress
7.使用props选择器,选择part1
8.将响应选择器设置为von mises
9.在von mises下,选择both surfaces
10.单击create
5.创建另一个名为stress2 的static应力响应,该响应是为零部件part2 中单元的von Mises应力定义的。
6.单击return返回Optimization面板。
3.4Create Constraints
定义为objective的响应不能约束。在这种情况下,您无法限制响应量。
要为响应stress1 和stress2 定义上限约束。
1.单击dconstraints子面板。
2.定义响应stress1 的约束。
a)在constraints= 字段中,输入stress1
b)选中upper bound旁边的框,然后输入100
c)单击response =并选择stress1
d)使用loadsteps选择器,选择STEP
e)单击create
约束是值为100 的上限。该约束适用于SUBCASE STEP。
3.定义响应stress2 的约束。
a)在constraints= 字段中,输入stress2
b)选中upper bound旁边的框,然后输入100
c)单击response =并选择stress2
d)使用loadsteps选择器,选择STEP
e)单击create
约束是值为100 的上限。该约束适用于SUBCASE STEP。
4.单击return转到优化面板。
3.5定义目标函数    
1.单击objective面板。
2.验证是否选择了min。
3.单击response并选择volume
4.单击create
5.单击return两次以退出Optimization面板。
四、保存数据库
1.在菜单栏中,单击File>Save As>Model
2.Save As对话框中,输入bracket_size.hm作为文件名,并将其保存到您的工作目录中。
五、运行优化
1.在Analysis页面中,单击OptiStruct
2.单击save as
3.Save As对话框中,指定写入OptiStruct模型文件的位置,并在文件名中输入bracket_size
对于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还会报告错误消息。可以在文本编辑器中打开文件bracket_size.out以查找有关任何错误的详细信息。此文件将写入与.fem文件相同的目录。
9.单击Close
写入run目录的默认文件包括:
bracket_size.hgdata:包含目标函数数据、百分比约束冲突和每次迭代的约束的HyperGraph文件。
bracket_size.prop:OptiStruct属性输出文件,包含上次迭代中所有更新的属性数据,用于大小优化。    
bracket_size.hist_dat:OptiStruct迭代历程文件,包含目标函数和冲突最严重的约束的迭代历程。可用于迭代历程的xy图。
bracket_size.html:HTML报告,给出问题表述的摘要和最终迭代的结果。
bracket_size.out:OptiStruct输出文件,包含有关文件设置、优化问题设置、运行所需RAM和磁盘空间量的估计值、所有优化迭代的信息以及计算时间信息。查看此文件,了解在处理bracket_size.fem文件时标记的警告和错误。
bracket_size.sh:Shape文件进行最终迭代。它包含分析中每个单元的材料密度、空隙尺寸参数和空心方向角。此文件可用于重新启动运行。
bracket_size.stat:包含有关用于完整运行的CPU时间的信息,以及用于读取输入模型、组装、分析、收敛等的CPU时间的分解。
bracket_size.h3d:HyperView二进制结果文件。
六、查看结果
OptiStruct的尺寸优化结果在两个地方给出。bracket_size.out文件包含所有迭代的厚度和体积信息。bracket_size.h3d文件包含所有五次迭代的单元厚度,以及迭代0 和迭代3 的线性static分析的位移和应力结果。在此步骤中,您将查看所有结果。将首先检查HyperMesh二进制结果文件中包含的结果。然后,将查看bracket_size.out文件中的厚度历程记录。
4          

 

5          

 

6          

 

6.1查看应力结果
尺寸优化后,应查看应力值以确保未违反应力约束。
1.在OptiStruct面板中,单击HyperView
HyperView在HyperMesh Desktop中启动并加载结果文件。所有.h3d文件都会加载到HyperView的不同页面中。文件bracket_size_des.h3dbracket_size_s1.h3d分别加载到第2 页和第3 页。
2.在应用程序的右上角,单击 以进入下一页。
第三页包含从bracket_size_s1.h3d文件加载的结果。页面名称显示为Subcase 1 - STEP以指示结果对应于SUBCASE 1。
3.在Results工具栏上,单击 以打开Contour面板。
4.将结果类型设置为Element Stress[2D & 3D] (t)vonMises。
5.将Averaging method设置为None
6.单击Apply    
应该可以看到代表von Mises应力的云图。模型中的每个单元都分配了一个图例颜色,表示该单元由施加的载荷和边界条件产生的von Mises应力值。如果未更改Iteration步骤,则应绘制初始步骤的应力云图。要绘制最后一步的云图,请使用Model Browser设置该Load Case的最后一次迭代。
7.在Results Browser中,从仿真列表中选择最后一个迭代。
仅显示两个迭代;First和Last是优化运行的默认设置。要更改此设置,请添加频率设置为ALL的OUTPUT控制卡。
图2.
现在,这将绘制该Load Case的最终迭代的云图。查看压力以查看它是否处于适当的约束下。
6.2查看厚度结果
1.在应用程序的顶部右侧,单击 可返回上一页。
2.将Result type设置为Element Thicknesses (s)
3.在Results Browser中,从Load CaseSimulation中选择Iteration 2。
4.单击Apply
或者,您也可以在文本编辑器中打开bracket_size.prop文件,以查看两个零件的最终厚度。
6.3查看.out文件
.out文件包含优化过程的摘要。从.out文件中的信息中,您可以看到目标、约束和设计变量如何从一个迭代更改为下一个迭代。
对于给定的约束,体积是否已最小化?
是否满足了应力约束?
这两个部分的量规是什么?
设计变量链接是否有效?    
         

 

   

TodayCAEer
花有重开日,人再无少年
 最新文章