本教程将带您了解使用PCOMPG卡为复合结构开发铺层定义的过程,并展示使用全局铺层数对结果进行后处理的优点。本文首先介绍了使用PCOMP的传统定义方法,最终展示了在给定场景下使用PCOMPG的实际优势。
在开始之前,将本教程中使用的文件复 制到您的工作目录中。
http://majorv.help.altair.com/minorv/simulation/tutorials/hwsolvers/optistruct/OS-T-1060/frame.zip
图1说明了本教程的模型。由于结构、载荷和边界条件在x轴上是对称的,所以只有一半的结构被建模,并应用合适的边界条件来强制半对称。
图1扭转框架
1.启动HyperMesh,用户配置对话框打开。
2.选择OptiStruct,单击确定,这将加载用户配置文件。它包括适当的模板,宏菜单,和导入阅读器,削减HyperMesh的功能到适合是OptiStruct生成模型。
1.点击文件>打开>模型。
2.选择下载的文件。
3.单击Open。此时hm数据库被加载到当前HyperMesh会话中,替换任何现有的数据。
结构模型已经建立,无需进一步修改即可求解,提交作业前检查模型设置。
模型的设置是为了进行线性静态分析。如前所述,只有一半的结构被建模;并且为了施加半对称边界条件,对称平面上的所有节点都被约束在DOF1, DOF5和DOF6中。
所有组件都使用PCOMP属性建模,该属性根据单元的法线方向,从底部表面向上列出层(堆叠序列),如图2所示。
图2 相对于元素法向的层堆叠序列
此模型中名称以“Flange”开头的组件表示不同组件连接在一起的连接点。在复习的同时,仔细观察由Skin和Rib组件组成的法兰区域(下图中高亮显示)。查看Skin_inner、Rib、Flange1_Rib_Skin和Flange2_Rib_Skin组件的层积布局(层积布局如下图底部所示)。
注意:对于Skin_inner、Flange1_Rib_Skin、Flange2_Rib_Skin和Skin_outer组件,很少有常见的层,但在每个组件中以不同的堆叠顺序出现。例如,Skin_inner中的第4层是Flange2_Rib_Skin中的第3层,Skin_outer组件中的第2层。
图3:Skin_inner、Rib、Skin_outer、Flange1_Rib_Skin和Flange2_Rib_Skin组件的厚度堆叠
1.在2D页面中,单击HyperLaminate。
这将打开超层压板GUI,其中可以定义,审查和编辑层压信息。材料属性和设计变量也可以在这里创建和编辑。
2.展开屏幕左侧树形结构的lamates部分。
3.选择Skin_innerPCOMP。层压板的详细信息出现在GUI中。
4.验证Skin_inner的铺层定义是否匹配下表的前5个条目,这是Flange1_Rib_Skin组件的铺层信息。
5.选择Rib PCOMP,并验证Rib的第3和第4层定义是否与下表中的第6和第7项匹配。
6.选择Flange1_Rib_Skin PCOMP来查看铺层定义。验证Flange1_Rib_Skin的分层定义是否与下表匹配。
请注意,前5个图层与Skin_inner图层相同,最后两个图层与Rib的第三和第四层相同,如图1所示。可以验证一下其他法兰是如何建模的。
表1:Flange1_Rib_Skin的层压板性能
Ply Number | Material | Thickness T | Orientation | SOUT |
---|---|---|---|---|
1 | carbon_fiber | 1.2 | 45 | YES |
2 | matrix | 0.2 | 90 | YES |
3 | carbon_fiber | 1.2 | -45 | YES |
4 | matrix | 0.2 | -90 | YES |
5 | carbon_fiber | 1.2 | 90 | YES |
6 | matrix | 0.2 | -45 | YES |
7 | carbon_fiber | 1.2 | 45 | YES |
7.你也可以复习其他部分。审查完成后,选择File>Exit退出HyperLaminate GUI并返回HyperMesh。
1.从Analysis页面,单击OptiStruct面板。
图4访问OptiStruct面板
2.点击另存为。
3.在Save As对话框中,指定写入OptiStruct模型文件的位置,并输入frame_PCOMP作为文件名。对于OptiStruct求解器,.fem是推荐的扩展名
4.单击Save。输入文件字段显示另存为对话框中指定的文件名和位置。
5.将导出选项开关设置为all。
6.设置运行选项切换为analysis。
7.将内存选项切换为memory default。
8.单击OptiStruct以启动OptiStruct作业。
如果作业成功,新的结果文件应该在frame_PCOMP文件所在的目录中。Fem是被导出的。frame_PCOMP.out文件是查找错误消息的好地方,如果存在任何错误,这些消息可以帮助调试输入模型。
写入该目录的默认文件是:
frame_pcompp .html:HTML的分析报告,提供了问题表述和分析结果的总结。
frame_PCOMP.out:OptiStruct输出文件,其中包含有关文件设置、优化问题的设置、运行所需RAM和磁盘空间量的估计、每次优化迭代的信息以及计算时间信息的特定信息。查看此文件,查看警告和错误。
frame_PCOMP.h3d:HyperView二进制结果文件。
frame_PCOMP.res:HyperMesh二进制结果文件。
frame_PCOMP.stat:Summary提供分析过程中每一步的CPU信息。
图5
8.单击Apply,这将勾勒出模型中所有组件的第3层的最大主应力。
9.点击标准视图工具栏中的 Isometric View,即可查看模型,如下图所示。
图6框架顶面应力分布
应力值在顶面区域不是逐渐变化的,而是在Flange2_Rib_Skin分量处突然减小到一个较低的值。
再次查看Flange1_Rib_Skin的层压板属性表,观察到Flange2_Rib_Skin组件的第三层属性是基体材料,与其相邻组件(Flange1_Rib_Skin和Skin_outer)的第三层属性是碳纤维材料。应力值的突然变化是因为显示了两种不同材料上的应力。这个例子表明,为了在PCOMP结果的后处理期间使结果有意义,您必须将铺层结果与其相应的铺层属性关联起来。
这突出表明,在PCOMP元件的后处理过程中,仅根据层数绘制结果是不够的。在用这种方法进行后处理时,必须跟踪层数属性(材料、厚度、取向、失效指数等)。在使用大型复杂模型的情况下,在后处理过程中跟踪各个层的属性会变得繁琐。
使用PCOMPG卡进行属性定义可以避免使用PCOMP的这个缺点。使用PCOMPG卡,您可以为每个层分配一个全局层数,并根据全局层数对结果进行后处理。下面的步骤解释了用PCOMPG属性重新定义模型的过程。
图7层压板信息与全球层数
现在,您可以创建新的PCOMPG组件,其中定义了全局层数,如图7所示。如前所述,Skin_inner中的第4层是Flange2_Rib_Skin中的第3层,Skin_outer组件中的第2层。因此,所有这些层将被定义为相同的全局层ID为4。类似地,所有其他层也将被定义,如图7所示。
6.展开屏幕左侧树形结构的层压板部分。
7.右键单击PCOMPG,出现菜单。
8.单击New。
这将创建新的组件,默认命名为NewLaminate1,并展开树形结构。
9.通过右键单击并在文本字段中选择Rename,将组件重命名为Skin_inner_GPLY,并覆盖默认的组件名称。
10.在添加/更新应用程序部分,在GPLYID字段下,输入1。
11.选择Material下面的下拉菜单,选择carbon_fiber。
12.在Thickness T1字段下方,输入1.2。
13.在Orientation字段下方,输入45。
14.选择SOUT下方的下拉菜单,选择YES。
15.单击Add New Ply,添加Ply信息。
16.重复此过程,使用表中所示的属性再添加4个层:
GPLYID | Material | Thickness T | Orientation | SOUT |
---|---|---|---|---|
2 | matrix | 0.2 | 90 | YES |
3 | carbon_fiber | 1.2 | -45 | YES |
4 | matrix | 0.2 | -90 | YES |
5 | carbon_fiber | 1.2 | 90 | YES |
17.点击窗口底部的Update Laminate,更新层压板信息。
叠层信息的图形显示现在出现在Review选项卡下方的字段中,位于GUI的右侧。
18.创建一个名为Rib_GPLY的新PCOMPG组件和铺层信息,如下表所示:
GPLYID | Material | Thickness T | Orientation | SOUT |
---|---|---|---|---|
11 | carbon_fiber | 1.2 | 0 | YES |
12 | matrix | 0.2 | 45 | YES |
13 | matrix | 0.2 | -45 | YES |
14 | carbon_fiber | 1.2 | 45 | YES |
19.请参见图7创建Flange1_Rib_Skin_GPLY组件。
20.右键单击Skin_inner_GPLY,从菜单中选择Duplicate,创建一个相同的组件。
21.通过右键单击并选择Rename,将组件重命名为Flange1_Rib_Skin_GPLY。
22.使用Add New Ply功能使用下表中所示的属性再添加2个层。
GPLYID | Material | Thickness T | Orientation | SOUT |
---|---|---|---|---|
13 | matrix | 0.2 | -45 | YES |
14 | carbon_fiber | 1.2 | 45 | YES |
23.创建了新组件Flange1_Rib_Skin_GPLY。它的前5层与Skin_inner_GPLY相同,最后2层是Rib组件的第3层和第4层。
24.为了减少本教程中的步骤数,已经使用PCOMPG属性定义了其他组件的分层信息,并在updated_PCOMPG_properties中定义了适当的分层信息。Fem文件保存到您的工作目录。该文件被导入HyperMeshto更新(覆盖)属性,而不是手动更新它们。
25.updated_PCOMPG_properties。fem文件保存为OptiStruct输入文件格式。在任何文本编辑器中打开此文件,查看如何使用PCOMPG属性定义组件。该文件的一部分如下所示。
图8。用PCOMPG定义的组件
26.点击File>Exit,退出HyperLaminate GUI并返回HyperMesh。
27.点击File>Import>Solver Deck。
28.点击切换按钮展开导入选项,勾选FE覆盖旁边的复选框。
该选项使用updated_PCOMPG_properties中定义的PCOMPG属性覆盖旧的PCOMP属性。有限元法文件。
29.单击File旁边的文件夹图标,选择updated_PCOMPG_properties。fem文件,点击Import。
30.单击Close。
1.从2D页面转到HyperLaminate面板。
2.展开屏幕左侧树形结构的laminates 部分。
所有组件现在都出现在PCOMPG下。之前创建的组件(Skin_inner_GPLY、Rib_GPLY和Flange1_Rib_Skin_GPLY)仍然存在。没有与这些组件相关联的元素。查看PCOMPG组件以查看层压板定义。
3.单击File>Exit。
1.从Analysis页面,单击OptiStruct面板。
图9。访问OptiStruct面板
2.点击 save as。
3.在 save as对话框中,指定写入OptiStruct模型文件的位置,并输入frame_PCOMPG作为文件名。
对于OptiStruct输入甲板,.fem是推荐的扩展名。
4.单击Save。输入文件字段显示在save as对话框中指定的文件名和位置。
5.将导出选项开关设置为all。
6.设置运行选项切换为analysis。
7.将内存选项切换为memory default。
8.单击OptiStruct以启动OptiStruct作业。
如果作业成功,新的结果文件应该在frame_PCOMPG。Fem被写入。frame_PCOMPG。Out文件是查找错误消息的好地方,如果存在任何错误,这些消息可以帮助调试输入模型。
写入该目录的默认文件是:
frame_PCOMPG.html:HTML的分析报告,提供了问题表述和分析结果的总结。
frame_PCOMPG.out:OptiStruct输出文件,其中包含有关文件设置、优化问题的设置、运行所需RAM和磁盘空间量的估计、每次优化迭代的信息以及计算时间信息的特定信息。查看此文件,查看警告和错误。
frame_PCOMPG.h3d:HyperView二进制结果文件。
frame_PCOMPG.res:HyperMesh二进制结果文件。
frame_PCOMPG.stat:Summary,提供分析过程中每一步的CPU信息。
1.从OptiStruct面板中,单击HyperView。
启动HyperView并加载结果。将出现一个消息窗口,通知已成功加载到HyperView中的模型和结果文件。
2.如果出现消息窗口,单击Close关闭消息窗口。
3.在“结果”工具栏上,单击打开Contour 面板。
4.选择Result type下面的第一个开关,然后选择 Composite Stresses (s)。
5.选择第二个开关,选择 P1 (major) Stress。
6.对于Layers字段,选择PLY 3。
7.对于平均方法,选择None。
8.单击Apply。
这绘制了全局层数3的最大主应力。结果未在不存在全局层数3的区域中绘制。
9.单击标准视图工具栏中的“等距视图”图标。
图10。
基于全局层数对结果进行后处理,消除了跟踪组件层数和相应层数属性的需要。结果根据全局层数显示,而不考虑层数顺序,因此您可以选择任何一个全局层数并查看整个组件的结果。如果某个特定的层数不存在于任何给定的区域,则不显示结果。