您现在的位置:e-works > 智造书屋 > 书籍列表 > OptiStruct & HyperStudy 理论基础与工程应用 > 实例:复合材料自行车车架优化

第六章 复合材料优化技术

第四节 实例:复合材料自行车车架优化

本实例介绍对复合材料自行车架进行铺层厚度优化的方法。图6-7为本实例中将使用的模型。
1
图6-7  自行车车架模型
 
本实例中的优化问题描述如下。
 
  • 设计目标:体积最小。
  • 设计约束:给定的最大节点位移。
  • 设计变量:铺层厚度。
     
本实例包含以下内容:
 
  • 建立复合材料车架的尺寸优化问题并求解。
  • HyperView中复合材料尺寸优化结果的后处理。
     
1 运行HyperMesh并设置User Profile
(1)启动HyperMesh。
(2)选择OptiStruct作为User Profile。
(3)单击OK按钮。
此步骤载入User Profile。它包括对应的模板,宏菜单和文件导入工具,并且为了生成RADIOSS和OptiStruct使用的批量数据格式模型,削减了HyperMesh的某些功能。
(4)选择工具栏中的Open Model按钮 。
选择bicycle_frame.hm文件,该文件位于HyperMesh安装目录<install_directory>/tutorials/
hwsolvers/optistruct/下。
(5)单击Open。
bicycle_frame.hm数据文件被载入到当前HyperMesh中,并代替已存在的数据。此时将会发现,结构模型中单元属性和材料数据均已定义。以下将模拟自行车快跑工况。

2 为载荷和边界条件创建Load Collectors
(1)选择Load Collectors按钮 。
(2)在左边面板的单选框中选择create子面板。
(3)单击loadcol name = 并输入crank。
(4)单击Color,并从调色板上选择一种颜色。
(5)单击创建方式按钮,并从弹出的菜单中选择no card image。
(6)单击create按钮。
这一步创建了一个新的load collector,名为crank。
(7)单击loadcol name = 并输入spcs。
(8)单击Color,并从调色板上选择另一种颜色。
(9)单击create按钮。
这一步创建了一个新的load collector,名为spcs。
(10)单击return按钮返回到主菜单。

3 创建载荷
(1)在HyperMesh窗口右下角单击Set Current Load Collector,进入一个新的load collectors面板。
(2)从load collectors的列表中选择crank。
(3)从Analysis页面中选择forces面板。
(4)在左边面板的单选框中选择create子面板。
(5)操作对象选择nodes。
(6)在图形区,选中图6-8中所示的刚性连接处的中心节点。
(7)设定坐标系为global system。
(8)单击magnitude =并输入-100。
(9)单击magnitude =下方的按钮,从弹出的菜单中选择z-axis。
(10)单击Create按钮。
这一步在踏板位置创建了一个力。
(11)单击return按钮返回到主菜单。
(12)从Analysis页面中选择moments面板。
(13)在左面板的单选框中选择create子面板。
(14)操作对象选择nodes。
(15)在图形显示区,选中图所示的刚性连接处的中心节点。
(16)设定坐标系为global system。
(17)单击magnitude =并输入100。
(18)单击magnitude =下的方向定义开关,从弹出菜单中选择x-axis。
(19)单击Create。
这一步在踏板位置创建了一个扭矩,如图6-8所示。
1
图6-8  在自行车支架的底部加载
 
注意:这是一个简化加载模型,模拟脚踩在踏板上时的载荷工况。
(20)单击return按钮。

4 创建约束
(1)在HyperMesh窗口的右下角单击Set Current Load Collector,像步骤03一样,进入一个新的load collectors面板。
(2)从load collectors列表中选择spcs。
注意此时spcs出现在页面的右下角,表明spcs为当前load collector。
(3)从Analysis页面中选择constraints面板。
(4)在左边面板的单选框中选择create子面板。
(5)操作对象选择nodes。
(6)选择图6-9和图6-10所示的节点,通过单击刚性连接处的中心点来约束结构。
1
图6-9  在车架后轮处施加SPCs
4
图6-10  在前套管的上下部施加SPCs
 
(7)约束dof1,dof2,dof3,dof4,dof5和dof6。
选中的dofs将被约束,其余则是自由的。
dofs1,dofs2和dofs3代表x,y和z方向上的平动自由度。
dofs4,dofs5和dofs6代表x,y和z方向上的转动自由度。
(8)单击Create按钮。
这一步对选定的节点施加了这些约束。
(9)单击return按钮返回到主菜单。

5 创建OptiStruct子工况
(1)从Analysis页面中选择loadsteps面板。
(2)单击name =并输入crank。
(3)单击type开关,选择linear static(如果它没有被默认选中的话)。
(4)选择SPC前的复选框。SPC右边出现输入区。
(5)单击输入区,从load collectors的列表中选择spcs。
(6)选中LOAD。
(7)单击输入区,从load collectors的列表中选择crank。
(8)单击Create按钮。
此时,定义在spcs中的边界条件以及定义在crank中的载荷同时作用的OptiStruct工况已经创建好。
(9)单击return按钮返回到主菜单。

6 定义设计变量
(1)从2D页面中选择HyperLaminate面板。
这一步启动了HyperLaminate GUI。接下来的步骤在HyperLaminate GUI中进行。
(2)在屏幕的左侧扩展树形结构的Design Variable部分,将出现DESVAR分支。
(3)使用鼠标右键单击DESVAR,出现一个含有NEW选项的浮动菜单。
(4)单击New。
这一步创建了一个默认名为NewDv1的新的设计变量,且树形结构被展开。
(5)使用鼠标右键单击NewDv1,选择Rename重命名设计变量为thk1,覆盖默认设计变量名。
(6)在Initial value处输入1.0。
(7)在Lower bound处输入0.0。
(8)在Upper bound处输入2.0。
(9)单击Apply。
(10)重复步骤(4)~(9),用相同的方式及同样的数值,共创建5个设计变量,即thk2、thk3、thk4和thk5。
此外,也可以通过鼠标右键单击thk1,从浮动菜单中选择Duplicate,创建一个同样的设计变量。重复这个过程4次,共创建5个设计变量,然后通过鼠标右键单击它们并选择Rename,对它们重命名。
(11)通过检查PCOMP分支,以查看模型中所有的PCOMPs。
(12)选择seat_tube PCOMP。
界面中显示层压板的详细信息。
(13)使用鼠标右键单击靠近中间面板顶端的Optimization复选框。
在铺层次序表里出现了新的区域,它允许设计变量与铺层厚度和铺层方向相关联。
(14)在第一行的Optimization下,单击Designvar下的区域。
(15)从下拉菜单中选择thk1。
(16)对于其他行重复步骤(14)和(15),如图6-11所示。
1
图6-11  设置设计变量范围
 
(17)单击Update Laminate。
此时,设计变量thk(i)与ply(i)的厚度关联,在本实例中,ply(11-i)也一样,因为这是一个对称的层压板。
(18)使用和seat_tube属性相同的DVs,对TOP_tube和down_tube重复这些操作。
(19)从File下拉菜单中选择Exit,退出HyperLaminate GUI返回到Hypermesh。

7 创建位移和体积响应
创建一个在加载处节点总的位移响应,并将该响应的最小化设为优化目标。
(1)从Analysis页面中选择optimization面板。
(2)选择responses面板。
(3)单击responses=并输入disp。
(4)单击response type按钮,从弹出的菜单中选择static displacement。
(5)单击total disp按钮。
(6)单击nodes,在图形显示窗口中选中支架底部的加载处节点。
(7)单击Create按钮。
(8)单击response=并输入volume。
(9)单击response type按钮,从弹出的菜单中选择volume。
(10)默认为total。
(11)单击Create按钮。
(12)单击return按钮返回optimization面板。

8 创建位移响应约束。
(1)进入dconstraints面板。
(2)单击constraint=并输入Disp。
(3)选中upper bound =。
(4)单击upper bound =并输入1.8。
(5)单击response =并从响应列表中选择disp。
(6)面板中出现一个loadsteps按钮。
(7)单击loadsteps。
(8)选中crank并单击select。
(9)单击Create按钮。
一个约束已经定义在disp响应上。它表明任何求解(体积最小)所需要的位移小于1.8mm才是可行的。

9 定义目标
(1)单击return按钮返回optimization面板。
(2)选择objective面板。
(3)单击左侧按钮并选择min。
(4)单击response=并从弹出的菜单中选择volume。
(5)单击Create按钮。
(6)单击return按钮两次,并返回主菜单。

10 优化计算
(1)从Analysis页面选择OptiStruct面板。
(2)在input file区域下单击save as。
(3)选择OptiStruct模型文件的输出路径,并在File name中输入文件名bicycle_frameOPT.fem。.fem扩展名为OptiStruct所默认的输入格式。
(4)单击Save按钮。
注意input file中bicycle_frameOPT.fem文件的名称和保存位置。
(5)设置export options为all。
(6)将run options设为optimization。
(7)设置memory options为memory default。
(8)单击OptiStruct。
这一步启动OptiStruct优化计算。如果计算成功,可以在OptiStruct模型文件的调用目录下找到新的结果文件。bicycle_frameOPT.out文件可以用于查找错误信息,如果出现任何错误,这些信息将有助于调试。
HyperView 中复合材料尺寸优化结果的后处理

11 在HyperGraph中查看结果
查看设计变量和优化目标历程:
(1)打开HyperView界面。
(2)从File下拉菜单中选择Open命令,出现一个Open Session File浏览窗口。
(3)选择由OptiStruct运行得到的bicycle_frameOPT_hist.mvw文件,单击Open。该文件包含了整个迭代历程中,优化目标、约束以及设计变量的曲线图。第一页显示的是Objective function,如图6-12所示。
1
图6-12  每一迭代步的目标值(体积)
 
第二页显示的是Maximum Constraint Violation,如图6-13所示。
1
图6-13  每一迭代步的最大约束违反值(%)
 
第三页显示的是Design Variables (DVs),对应bicycle_frameOPT.hgdata文件,变量迭代变化曲线如图6-14所示。
1
图6-14  每一迭代步的设计变量值