本练习对一个复合材料结构使用 PCOMPG 卡片进行铺层定义的过程,展示使用全局铺层编号对结果后处理的优越性。这里首先介绍了传统的定义方法即使用 PCOMP,通过对比可以显示出使用 PCOMPG 的对实际问题处理的益处。由于结构形状、载荷和边界条件都是关于 X 轴对称的,所以只对一半的结构建模,并在对称面施加对应的边界条件。
打开模型文件
Step01:在 OptiStruct 用户界面并打开模型文件。
(1) 启动 HyperMesh。
(2) 在 User Profiles 对话框中 选择 OptiStruct,点击 OK。
(3) 点击 File 下拉菜单选 Open…..或点击图标 , 弹出 Open file…浏览窗口。
(4) 选择 Exercise_9b.hm 文件。
(5) 点击 Open。Exercise_9b.hm 数据载入当前的 HyperMesh 中,替换原有数据。
Step02:查看模型。
结构模型已经建立,可以直接进行求解计算。在提交计算之前,先查看建立的模型。
模型用于线性静力分析。由于模型为对称结构,故建立一半有限元模型并施加对称边界条件,在对称 面约束所有节点的 DOF1, DOF5 和 DOF6,如图 9-3 所示。
图 9-3 一半结构的有限元模型
所有的 component 都会从底面向上即单元的法向利用 PCOMP 属性对层进行排列,如图 9-4 所示。
图 9-4 沿着单元法向的铺层排列
这个模型中 component 的名字若以单词“Flange”开头,表示它们是将不同的 component 连结在一起的连 结点。查看时,需注意由 Skin 和 Rib component 构成的法兰区域。查看 Skin_inner, Rib, Flange1_Skin_Rib, 和 Flange2_Skin_Rib 的铺层排列(显示在图 9-5 的底部)。注意 Skin_inner, Flange1_Skin_Rib, Flange2_Skin_Rib 和 Skin_outer 中有很少的公共铺层,他们在每一个 component 中的叠放次序是不同的。例如,Skin_inner 的第 4 层是 Flange2_Skin_Rib 的第 3 层和 Skin_outer 的第 2 层。
图 9-5 Skin_inner, Rib, Skin_outer, Flange1_Skin_Rib, 和 Flange2_Skin_Rib 的铺层排列。
(1) 从 2D 页面点击 HyperLaminate 面板。
此时,启动 HyperLaminate 图形界面,在此可以对铺层信息进行定义、查看和编辑,也可以在此创建 并编辑材料特性和设计变量。
(2) 展开屏幕左边模型树中的 laminates 部分。
(3) 选择 Skin_inner PCOMP, 层合板中的详细信息出现在图形界面中,如图 9-6 所示。
图 9-6 步骤 3 窗口
(4) 确认 Skin_inner 的铺层定义与 Flange1 _Rib_Skin 的铺层定义的前五项一致,如表 9-1 所示。
(5) 选择 Rib PCOMP 并输入 Rib 的第 3 个和第 4 个铺层定义,使之与表 9-1 的第 6 和第 7 项一致。
(6) 选择 Flange1_Rib _Skin PCOMP,查看铺层定义,确认 Flange1_Rib _Skin 的铺层定义与表 9-1 一致,且前 5 层与 Skin_inner 铺层相同,最后的两个层与 Rib 的第 3 层和第 4 层相同,查看其它法兰的铺层定义。
(7)还可以查看其它 component。结束后,从 File 下拉菜单中选择 Exit。这样就退出了 HyperLaminate 图形界面并返回 HyperMesh。
Step03:提交计算。
(1) 从 Analysis 页面选择 OptiStruct 面板。
(2) 在 input file:之后点击 save as… 弹出 Save file…浏览窗。
(3) 选择路径并写入 OptiStruct 模型文件 frame_PCOMP.fem,OptiStruct 支持以.fem 为扩展名的输入格式。
(4) 点击 Save。 注意此时 frame_PCOMP.fem 的文件名和路径已经在 input file:区域显示。
(5) 设置 export options:为 all。
(6) 点击 run options:开关并选择 analysis。
(7) 设置 memory options:为 memory default。
(8) 点击 OptiStruct 开始运行。
这就启动运行了 OptiStruct。当出现 Process completed successfully 时,分析过程完成。在结果文件所在目录中自动生成以下文件:
Step04:查看结果。
(1) 从 OptiStruct 面板点击绿色的 HyperView 按钮。
打开了 HyperView 并且模型结果自动载入 HyperView 中出现一个信息窗口,提示模型和结果文件成功载入 HyperView。
(2) 点击 Close 关闭信息窗口。
(3) 点击 Contour 面板工具条按钮 。
(4) 点击 Result type:下面的第一个开关并选择 Composite Stresses (s)。
(5) 点击第二个开关并选择 P1 (major) Stress。
(6) 在 layers 选择 PLY3。
(7) 在 Averaging method:下面区域选择 None。
(8) 点击 Apply。此时会标明模型所有 components 的第 3 层最大主应力位置。
(9) 点击 以查看模型,如图 9-7 所示。
图 9-7 框架顶面的应力分布
在顶面应力值不会逐渐变化,但会在经过 Flange2_Skin_Rib 时突然减小。再次查看 Flange1_Skin_Rib 的铺层属性表格,可以看到 Flange2_Skin_Rib 的第 3 层特征为基体材料而与之相邻的 Flange1_Skin_Rib 和 Skin_outer 的第 3 层为碳纤维材料。应力值发生突然的改变是因为观察到的是两种不同材料处的应力。这个例子表明,在 PCOMP 结果的后处理过程中,为使结果有意义,用户必须使铺层结果与它们相应的铺层属性相互关联。
这里强调一下,在对 PCOMP 结构后处理过程中,仅仅根据铺层编号描绘结果是不够的。用户在使用这种方法进行后处理的过程中必须时刻掌握铺层属性(材料属性、厚度、方向、故障指数等)。如果用到庞大而复杂的模型,在后处理过程中掌握各个层的属性将是枯燥乏味的。
PCOMP 的弊端可以通过使用属性定义的 PCOMPG 卡片来避免,使用该卡片,可以为各个层和后处理分配全局铺层编号,后处理的结果与全局铺层编号相关。下面的步骤阐述了使用 PCOMPG 属性重定义模型的过程。
Step05:利用 PCOMPG 卡片重新定义铺层属性。
(1) 不关闭 HyperView,转到 HyperMesh。
(2) 从 2D 页面选择 HyperLaminate 面板。这就开启了 HyperLaminate 图形界面,从中可以对铺层信息进行定义、查看和编辑。
(3) 从 Tools 下拉菜单选择 Laminate options。
(4) 点击 Convention:开关并选择 Total。
(5) 点击 OK 关闭窗口。
创建新 components 时,Total 已被设置为默认选项。
图 9-8 含有全局铺层编号的铺层信息
此时将创建含有全局铺层编号的 PCOMPG component。如前所述,Skin_inner 的第 4 层是 Flange2_Skin_Rib 的第 3 层和 Skin_outer 的第 2 层。因此,所有这些层将定义为同一全局层 ID 4。同样地, 其它的层也将类似定义,如图 9-8 所示。
(6) 展开屏幕左边树结构的 laminates 部分。
(7) 右击 PCOMPG,点击 New。创建了一个新的设计变量,默认变量名为 NewLaminate1。
(8) 双击 Laminate name:下文本框将此默认的变量名重命名为 Skin_inner_GPLY,覆盖默认文件名。
(9) 在 Add/Update plies:段 的 GPLYID 区域中输入 1。
(10) 选择 Material 的下拉菜单,并选择 corbon_fiber。
(11) 在 Thickness T1 区域输入 1.2。
(12) 在 Orientation 区域输入 45。
(13) 选择 SOUT 的下拉菜单并选择 YES,点击 Add New Ply 增加铺层信息。
(14) 重复这个过程,使用表 9-3 所示的特征再增加 4 个层。
(15) 点击 Update Laminate 更新铺层信息, 此时铺层信息显示在图形界面右边的 Review 栏。
(16) 创建一个名为 Rib_GPLY 的新 PCOMPG,铺层排列如表 9-4 所示:
根据图 9-8 所示有关全局铺层编号的铺层信息,创建 Flange1_Skin_Rib_GPLY component。
(17) 右击 Skin_inner_GPLY 并从菜单选择 Duplicate 以创建一个相同的 component。
(18) 双击 Laminate name:下的文本框将 component 重命名为 Flange1_Skin_Rib_GPLY,覆盖默认文件名。
(19) 使用 Add New Ply 功能根据表 9-5 所示的特征再增加两个层。
表 9-5 Flange1_Skin_Rib_GPLY 铺层信息
创建了新 component Flange1_Skin_Rib_GPLY。这个 component 的前 5 个层与 Skin_inner_GPLY 相同且它的最后 2 个层是 Rib 的第 2 层和第 1 层。为减少本部分的步骤,其它 component 的铺层排列信息(包括PCOMPG 和合适的分层信息)已经创建在文件 updated_PCOPMPG_properties.fem 中,路径为 <install_directory/tutorials/os/>。这个文件将写入 HyperMesh 并覆盖特征,代替手动更新。文件 updated_PCOPMPG_properties.fem为OptiStruct输入文件格式。可使用任何文本编辑器打开和查看component 是如何通过 PCOMPG 定义的。部分文件如表 9-6 所示。
(20) 从 File 下拉菜单中选择 Exit。
这样就退出了 HyperLaminate 界面,并返回 HyperMesh。
(21) 点击 File 下拉菜单,点击 Import…。
(22) 在 Import type 的图标中点击 Import FE Model 图标 。
(23) 选中 FE overwrite。
这个选项使得定义在文件 Updated_PCOPMPG_properties.fem 中的 PCOMPG 属性覆盖旧的 PCOMP 属 性。
(24) 在 File:中,选择 Updated_PCOPMPG_properties.fem 文件。
(25) 点击 Import。
(26) 点击 Close。
Step06:在 HyperLaminate 中查看导入的属性。
(1) 从 2D 页面进入 HyperLaminate 面板。
(2) 展开屏幕左边树结构的 laminates 部分。
此时所有的 components 都出现在 PCOMPG 下。早先创建的 component(Skin_inner_GPLY, Rib_GPLY 和 Flange1_Skin_Rib_GPLY)仍然存在,但没有与之相关的单元。通过 PCOMPG component 可以查看铺层 定义。
- 从 File 下拉菜单中选择 Exit。
Step07:提交计算。
(1) 从 Analysis 页面选择 OptiStruct 面板。
(2) 在 input file: 之后点击 save as…。
在 Save file…浏览窗。选择写入 OptiStruct 模型文件的路径并输入文件名 frame_PCOMPG.fem。
(3) 点击 Save。
注意此时 frame_PCOMPG.fem 文件的名字和路径已经在 input file: 区域显示。
(4) 设置 export options:为 all。
(5) 点击 run options:开关并选择 analysis。
(6) 设置 memory options:为 memory default。
(7) 点击 OptiStruct。
这就运行了 OptiStruct。如果运行成功,新的结果文件将写入 OptiStruct 模型文件的路径下。
Step08:后处理查看结果
(1) 当命令窗口出现消息 Process completed successfully 后,点击 OptiStruct 中的绿色 HyperView 按
(2) 钮,结果自动载入。HyperView 出现信息窗口,提示模型和结果文件已经成功载入 HyperView。
(3) 点击 Close 关闭信息窗口。
(4) 点击 Contour 面板工具条按钮 。
(5) 点击 Result type:下面的第一个开关并选择 Composite Stresses (s)。
(6) 点击第二个开关并选择 P1 (major) Stress。
(7) 在 layers 选择 PLY 3。
(8) 在 Averaging method:下面区域选择 None。
(9) 点击 Apply。
(10) 此时会标明模型所有 components 的第 3 层最大主应力位置。
(11) 点击
查看模型,如图 9-9 所示。
图 9-9 全局第 3 层主应力云图
基于全局铺层编号的后处理消除了必须了解铺层编号和 component 上相应铺层属性的需要。结果显示 以全局铺层编号为基础,不必考虑铺层顺序,因此可以选择整个模型中任何一个全局层编号并查看结果。 如果给定区域没有给定的层出现,其结果将不显示。