HyperWorks飞机复合材料结构分析(OptiStruct)
本练习对一个复合材料结构使用 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 可以查看铺层 定义。
(3) 从 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 上相应铺层属性的需要。结果显示 以全局铺层编号为基础,不必考虑铺层顺序,因此可以选择整个模型中任何一个全局层编号并查看结果。 如果给定区域没有给定的层出现,其结果将不显示。
【推荐内容】
HyperWorks飞机复合材料结构分析(OptiStruct)的更多相关文章
- Hyperworks、Nastran、Abaqus与ansys的区别
hypermesh不过是前处理,radioos就是hm的求解器,也是非常强大的可以处理很多非线性问题,最重要的是hm的优化功能强大.比那几个好一些.abaqus适合非线性分析,尤其是接触分析.nast ...
- 用面向对象的编程方式实现飞机大战小游戏,java版
概述 本文将使用java语言以面向对象的编程方式一步一步实现飞机大战这个小游戏 本篇文章仅供参考,如有写的不好的地方或者各位读者哪里没看懂可以在评论区给我留言 或者邮件8274551712@qq.co ...
- SAP成都研究院飞机哥:程序猿和飞机的不解之缘
今天的文章来自Jerry的老同事张航. 张航和Jerry一样于2007年毕业后加入SAP成都研究院工作至今.进入SAP后的第一个开发部门是SAP Business by Design Infrastr ...
- 用javascript写星际飞机大战游戏
在github里看到了个不错的脚本游戏,决定亲自动手来写,效果如下 下面是代码的思路分享 把整个代码理解消化确实不容易,但是如果你坚持看完相信你一定会有收获 如果没兴趣可以直接点击下面的链接 复制代码 ...
- "飞机大战"游戏_Java实现_详细注释
1 package cn.xiaocangtian.Util; import java.awt.Frame; import java.awt.Graphics; import java.awt.Ima ...
- js实例--飞机大战
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...
- 用Javascript模拟微信飞机大战游戏
最近微信的飞机大战非常流行,下载量非常高. 利用JS进行模拟制作了一个简单的飞机大战[此源码有很多地方可以进行重构和优化] [此游戏中没有使用HTML5 任何浏览器都可以运行]. 效果图: 原理:利用 ...
- pygame开发PC端微信打飞机游戏
pygame开发PC端微信打飞机游戏 一.项目简介 1. 介绍 本项目类似曾经火爆的微信打飞机游戏.游戏将使用Python语言开发,主要用到pygame的API.游戏最终将会以python源文件gam ...
- Android原生游戏开发:使用JustWeEngine开发微信打飞机
使用JustWeEngine开发微信打飞机: 作者博客: 博客园 引擎地址:JustWeEngine 示例代码:EngineDemo JustWeEngine? JustWeEngine是托管在Git ...
- 基于FPGA的飞机的小游戏
基于FPGA的飞机的小游戏 实验原理 该实验主要分为4个模块,采用至上而下的设计方法进行设计.由50M的晶振电路提供时钟源,VGA显示控制模块.图形显示控制模块.移动模块的时钟为25M,由时钟分频电路 ...
随机推荐
- SpringBoot + 布隆过滤器:亿级数据下的高效防护盾与缓存穿透实战指南
在当今高并发.海量数据的应用场景中,布隆过滤器凭借其极低的内存占用和极快的查询效率,成为解决缓存穿透.数据预判等难题的利器.本文深度解析布隆过滤器的核心原理与实战应用,手把手教你如何将这一数据守门员融 ...
- CSS文本超出省略
语法: text-overflow:clip|ellipsis|"任意字符" <!DOCTYPE html> <html> <head> < ...
- CSS布局——左右固定中间填满
小小例子,注意中间的div应该写在最后,留爪. 先上个高清无码图 源码实现 <!DOCTYPE html> <html lang="en" xmlns=" ...
- 解释Spring框架中bean的生命周期
一.Bean生命周期的流程图 二.spring的生命周期 spring生命周期中的阶段,包括初始化.使用.销毁. 1.初始化阶段 1)调用bean的构造函数,创建实例: 2)进行参数依赖注入: 3)若 ...
- robotframework:运用JavaScript进行定位元素以及页面操作
在ui自动化时,有些特殊情况需要用到js操作,在进行js操作前要先进行js元素定位.一.js元素定位 1.id定位 document.getElementById("id") 2. ...
- 15.4K Star!Vercel官方出品,零基础构建企业级AI聊天机器人
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 "基于Next.js 14和AI SDK打造的Chat SDK,让开发者快速构建支 ...
- CentOS 7怎么开放端口
转自:https://www.jb51.net/os/Ubuntu/617627.html 以开放8080端口为例,其他类似 centos7已经开始使用firewall作为防火墙,而不是iptable ...
- 【记录】Truenas scale|NFSv4数据集的子目录或文件的ACL完全访问权限继承老是继承不了怎么回事
我遇到了数据集下新建文件夹或文件,新建的文件夹或文件没有和数据集的ACL设置相符合的情况.其根本原因是NFSv4的完全访问权限要想继承的话,它的访问设置权限要设置"用户"和&quo ...
- 免费纯真IP地址数据库的解析
纯真(CZ88.NET)自2005年起一直为广大社区用户提供社区版IP地址库,只要获得纯真的授权就能免费使用,并不断获取后续更新的版本.如果有需要免费版IP库的朋友可以前往纯真的官网进行申请. 纯真除 ...
- RPC实战与核心原理之如何在没有接口的情况下进行RPC调用
如何在没有接口的情况下进行RPC调用 回顾 RPC 如何通过动态分组来实现秒级扩缩容,其关键点就是"动态"与"隔离" RPC调用 RPC 调用,本质上就是调用端 ...