HyperWorks卫星惯性释放分析(OptiStruct)
Step01:读取模型,并设置求解器模板为 OptiStruct。
(1) 读入 IGES 格式的几何模型 Exercise_9a.iges。
在绝大多数 CAE 分析中,都将从一个导入的 CAD 模型开始工作。导入该模型后,可以看到一个简化的卫星几何模型。本章的所有工作内容都将围绕着该模型展开。
(2) 输入 HyperMesh 模型 Exercise_9a.hm。
另一种常见的情况是针对一个较大的模型,将其分配成若干个比较小的部分,由多名工程师分别进行模型前处理,并进行组装。在这种情况下,就会以 HyperMesh 数据文件.hm 格式作为其交互途径。在本章的练习中,我们亦可以采用这样的方式,读入一个已有的 HyperMesh 模型。
(3) 保存模型。为该模型命名,并注意选择合适文件夹作为工作文件夹。
(4) 读取 OptiStruct 模板。
Step02:进行几何清理。
(1) 通过仔细的排查,可以看到,读入的几何模型是有一定的缺陷的。通过 HyperMesh 几何清理功能,找到并修复这些缺陷,以获得高保真度的网格剖分几何基础。
注意:在这个模型中,请不要使用 AutoCleanup 功能对其进行几何清理。使用模型拓扑视图的方式查看模型缺陷。该模型中共有四个地方需要进行修补。
(2) 通过 Defeature 功能,移除 surface fillets。
Surface fillets 会影响生成的单元质量。通过 Defeature 功能,移除那些较小的圆角。
(3) 移除模型上的小孔。
过小的孔对最终生成的网格会有巨大的负面影响。如果这些孔不处于模型的关键位置,那么移除它们。
注意:虽然我们选择移除了这些小孔,但这些小孔的定位在后续的分析中非常重要。请确定在移除小孔后,保留原始小孔孔心位置的硬点,以备后续分析使用。
Step03:组织模型。
(1) 将所有的 Solar Panel 曲面移动到名为 SolarPanels 的 component 中,并选择合适的颜色。
(2) 注意到 component 的名称 Electrnics 是错误的。将其名称改为 Electronics。
(3) 在模型显示中,绿色是一个不适宜的选择。设置一个 component 为绿色,在使用拓扑视图查看模型几何时,会覆盖模型中的拓扑关系。将 component Engine 的颜色改为灰色。
Step04:材料及单元类型。
在进行模型前处理时,一个比较好的流程是首先建立材料模型,然后建立单元类型。完成了这两步的工作后,再进行剖分网格。
(1) 为铝制的卫星舱体建立材料:
• Type:All
• Card image:MAT1
• Name: Aluminum
• E: 7.0e+04
• NU: 0.330
• RHO: 2.7e-09
(2) 为电子元件及其表面包覆机构建立材料:
• Type: All
• Card image:MAT1
• Name: Electronics
• E: 1000
• NU: 0.300
• RHO: 2.1e-09
(3) 为太阳能电池板建立材料:
• Type: A
• Card image:MAT1
• Name: SolarPanels
• E: 2.0e+04
• NU: 0.400
• RHO: 1.0e-09
(4) 为卫星舱体选择单元类型:
• Type: PSHELL
• Material: Aluminum
• Thickness: 5.00mm
(5) 为电子元件及其表面包覆机构选择单元类型:
• Type: PSOLID
• Material: Electronics
(6) 为太阳能电池板选择单元类型:
• Type: PSHELL
• Material: SolarPanels
• Thickness: 1.50mm
(7) 为 Component Engine 选择材料及单元类型:
• Type: PSOLID
• Material: Aluminum
(8) 为模型中的各个部件赋予材料及单元类型。
注意:使用 Components view 功能可以查看最终材料和单元类型的赋予情况。
Step05:对模型进行网格剖分
当模型中出现实体单元与壳单元连接的情况,例如这个模型中,component Eletronics 和 component Engine 都是由实体单元剖分的。那么我们建议用户,首先对实体单元进行剖分。然后再对壳单元进行剖分。
(1) 将 Component Engine 通过合理的分割,切分成若干具有 Mappable Shape 的几何块,然后对其进行实体网格剖分。设置单元边长为 100。注意单元质量,并保证在厚度方向上,至少有两层单元。
(2) 对 Component electronics Packages 进行网格剖分,设置单元质量为 100。
(3) 完成两个实体部件剖分后,继续对卫星舱体进行壳单元网格剖分。设置单元边长为 100,完成剖分。
注意: 完成了单元剖分后,针对质量不符合要求的单元,尽量避免使用 automatic element cleanup 功能 清理那些低质量的单元,否则可能会导致实体单元与壳单元连接部位不正常的扭曲。
造成模型中出现三角形单元的原因是模型中的对边上,设置的单元数量不等。为了避免这一情况的发 生,尝试将一侧边上的点投影到另外一条边上,从而控制单元总量,是很好的选择。
(4) 使用单元边长 200,剖分太阳能电池板。
Step06:读入已有的有限元模型 Satellite Dish。
很多情况下,一个完整的装配体的各个部分是由不同的工程师完成,并通过读入 FEA 模型的方式进行 装配。在本案例中,名为 Dish 的基于 OptiStruct 格式的有限元模型已经被先行建立。我们需要将该模型读入,并完成该模型与其他部件的装配。
(1) 读入 Dish.fem。该模型已经完成了材料和单元类型的定义。
(2) 请再次确认所有的 Component 都以经被正确的赋予了材料和单元类型。
完成了已有的 FEA 模型的导入后,需要注意的是,读入的网格模型,与用户手工创建的网格模型,其节点即使在空间中坐标处于重合状态,但仍然需要用户手工合并那些重合节点。在这个模型中,读入的Dish.fem 文件就需要进行节点合并的工作,以保证模型中网格对应部分的有效连接。
注意:使用 Tools 面板下的 edges 功能完成该操作。
Step07:将太阳能电池板与卫星舱体连接。
(1) 使用 HyperMesh 中的梁单元创建和编辑模块 HyperBeam,创建名为 Square_SolarPanel_Support 的截面形状。该截面为薄壁矩形框,长,宽均为 100mm,其壁厚为 10mm。
(2) 创建 PBAR 单元属性,引用上一步创建的梁截面,赋予其材料 Antenna(该材料由 Dish.fem 文件导入)。
(3) 创建名为 Solar Panel Supports 的 component,该 component 将包含下一步中创建的梁单元。
(4) 在太阳能电池板与卫星舱体之间,建立 BAR2 单元,赋予此前创建的梁单元属性,以进行模型的连接。注意梁截面的方向应指向 Z 轴。
(5) 打开 HyperMesh 中的梁截面动态显示功能,查看创建完毕的梁截面。
Step08:完成分析设置。
截止到这一步,模型中所有的单元,包括一维,二维和三维单元,都应该已经被正确的赋予了材料和单元类型,并完成了模型连接工作。其中包括实体单元,壳单元和梁单元。壳单元应该被正确的赋予了厚度,梁单元则应该正确的被赋予了截面形状。在下面的工作中,我们将在该模型上添加载荷和约束,以模拟卫星在太空中飞行行为。
该问题的分析类型为惯性释放分析(Inertial Relief Analysis)。在航空和航天的领域,这是很典型的一类工程问题。传统的静力分析中,我们通过单点约束(SPC)的方式,按照真实世界中的固定方式,对模型进行约束,以保证在求解时不产生刚体位移。但是在空中运动的航空器/航天器,并不满足该条件。为了对该结构进行分析考察惯性载荷的作用,作为替代方式,我们使用 SUPPORT1 约束,提供虚拟的支反力。这样一方面该结构可以在其原有状态的基础上变形,另一方面,又克服了刚体位移的问题。这对分析在空间中飞行的飞行器进行分析是很有必要的。
(1) 创建名为 Supports 的 Load Collector,按下图所示,在指定的节点位置创建 SUPPORT1 约束。

图 9-1 定义 SUPPORT1 约束
为了模拟引擎对该飞行器的推进,我们需要将引擎的推力,以分布式节点力的方式施加在模型上。作 为一种近似的等效,我们会将整个引擎的推力,平均的分配在与引擎连接的舱体平板表面。所以需要计算 施加在每个节点上的力的大小。
(2) 建立名为 Thrust 的 Load Collector。
(3) 计算在舱体后表面与引擎相连接的平板上的节点的数量。
注意: HyperMesh 的 Tools 页面下的 Count 功能,可以很轻松的计算出节点的数量。
节点总数是: ____________
(4) 将 500 牛的推力平均分配在每个节点上:
500N/_______(节点数)=__________N (每个节点上分配的集中力)
(5) 按照上式计算的结果,为该平面上的每个节点施加方向为 Z 方向的节点力。
此时,进行惯性释放分析的所有载荷和约束都已经施加完毕了。我们还需要设置相应的控制卡片,以 供求解器辨识惯性释放分析类型。
(6) 在 PARAM 控制卡片中,激活参数 INREL,并置参数值为-1。 该参数被激活后,求解器将可以识别惯性释放的约束类型 SUPPORT1。关于 PARAM 卡片中控制参数的更多信息,以及惯性释放的更多技术细节,建议用户参考 HyperWorks 在线帮助中,OptiStruct Format Reference Guide 的对应章节。
该分析模型建立的最终步骤是建立载荷步(Loadstep)。在 OptiStruct 求解器中,载荷步是此前定义的载荷和约束的集合。在一个载荷步中,可以包含多个已经被合并到一个 Load Collector 中的载荷和约束。通过设置多个载荷步,用户可以针对同一个模型,考察其在各种工作状态下的性能情况,而不用针对每一工作状态,都重建新的有限元模型。这为最终用户节约了大量的时间。
(7) 在载荷步类型选择中,选择 Linear Static,并选择此前创建的各类载荷和约束。
注意:在惯性释放分析中,求解器仅支持 SUPPORT1 卡片,而不支持 SPC 卡片。
(9) 保存模型。
Step09:修正设计方案
通过设计人员的校核,发现该卫星的天线系统(Dish),其大小不能满足将所有的广播信号传输回地球 的要求,因此对其设计方案进行的改变,即改变了天线的大小。那么相应的,有限元模型也应当进行适当的改变,以适应原始模型在几何上的改变。我们将通过 HyperMesh 下的网格变形工具 HyperMorph,将天线的直径修改为 4500 毫米。
显然,我们在该模型上已经进行了工作量很大的建模工作,如果因为某个零部件的设计发生了改变而重新建立整个有限元模型,那么花费的代价是惊人的。因此,我们选择通过 HyperMesh 的网格变形技术,直接将原有设计方案剖分而出的网格,通过变形,生成新的设计方案。
(1) 在 HyperMorph 模块下,建立二维单元变形域,该变形域包含天线系统(Dish)中的所有单元。通过网格变形技术,将该网格的尺寸调整为直径 4500 毫米。
Step10:递交求解
(1) 在 Analysis 面板下,点击 OptiStruct,选择工作文件夹,并设置相关参数,调用 OptiStruct 求解模型。
Step11:结果后处理。
(1) HyperWorks 软件中,各个模块之间是无缝连接的。直接在 OptiStruct 面板下,点击 HyperView 按钮,调用 HyperView,进行结果后处理。
(2) 关闭弹出的提示信息。
(3) 将动画类型切换为 Linear Animation Mode,进入云图页面。
(4) 将结果显示类型切换为 Element Stress 2D。
(5) 将应力结果显示方式,由 Averaging Method 切换到 Advanced。
(6) 点击 Interpolate Color,点击 Apply。
(7) 点击播放动画图标。
Step12:更改设计方案
通过查看求解结果,不难发现,该卫星的底板部分需要加强。在 HyperMesh 中,可以方便的对原有设计方案进行更改,包括增加材料厚度、增加一维单元截面积并改进其形态、使用新型材料等。注意:每将一磅载荷送入近地轨道,需要花费$3,000-$4,000。如果将一磅载荷送入同步轨道,那么需要花费$10,000。 因此,请仔细查看最终设计方案,并校核求解结果。
【相关内容】
HyperWorks卫星惯性释放分析(OptiStruct)的更多相关文章
- ABAQUS用户子程序一览表
说明 ABAQUS用户子程序一览表 ABAQUSStandard subroutines Refence 说明 本系列文章本人基本没有原创贡献,都是在学习过程中找到的相关书籍和教程相关内容的汇总和梳理 ...
- Abaqus 子模型法 和 子结构法
目录 1 子模型法 1.2 子模型法应用考虑因素 1.3 子模型法关键技术 1.3.1 单元选择 1.3.2 驱动变量 1.3.3 链接整体模型和子模型 1.4 仿真过程 1.4.1 问题描述 1.4 ...
- Ext4中内存使用技巧的一点思考
今天在分析Ext4文件系统的时候,看到两个函数ext4_kvzalloc()/ext4_kvfree(),想到以前在使用kzalloc()/kmalloc()带来的内存分配失败问题,不得 ...
- nyoj 20-吝啬的国度 (DFS)
20-吝啬的国度 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:12 submit:43 题目描述: 在一个吝啬的国度里有N个城市,这N个城市间只有 ...
- JAVA并发-CountDownLatch
源码: 内部类Sync private static final class Sync extends AbstractQueuedSynchronizer { private static fina ...
- 【转载】 第四范式首席科学家杨强:AlphaGo的弱点及迁移学习的应对(附视频)
原文地址: https://www.jiqizhixin.com/articles/2017-06-02-2 ============================================= ...
- Redis源代码分析(二十八)--- object创建和释放redisObject物
今天的学习更有效率.该Rio分析过,学习之间的另一种方式RedisObject文件,只想说RedisObject有些生成和转换.都是很类似的.列出里面长长的API列表: /* ------------ ...
- FFmpeg源代码简单分析:内存的分配和释放(av_malloc()、av_free()等)
===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...
- 网络协议抓包分析——TCP传输控制协议(连接建立、释放)
前言 TCP协议为数据提供可靠的端到端的传输,处理数据的顺序和错误恢复,保证数据能够到达其应到达的地方.TCP协议是面向连接的,在两台主机使用TCP协议进行通信之前,会先建立一个TCP连接(三次握手) ...
- iOS 底层解析weak的实现原理(包含weak对象的初始化,引用,释放的分析)
原文 很少有人知道weak表其实是一个hash(哈希)表,Key是所指对象的地址,Value是weak指针的地址数组.更多人的人只是知道weak是弱引用,所引用对象的计数器不会加一,并在引用对象被释放 ...
随机推荐
- 环境配置-Git和GitLab
Git安装 到官网下载安装包,直接一路next即可. https://git-scm.com/download/win 配置用户名和用户邮箱 $ git config --global user.na ...
- 异常--java进阶day08
1.异常 java中,所有的异常都是类 2.异常的体系结构 3.编译时异常与运行时异常 1.编译时异常 语法完全正确,但是代码就是会报错,如下图 上图中,写的是时间格式化类的使用,parse方法将给的 ...
- 「硬核实战」回调函数到底是个啥?一文带你从原理到实战彻底掌握C/C++回调函数
大家好,我是小康. 网上讲回调函数的文章不少,但大多浅尝辄止.缺少系统性,更别提实战场景和踩坑指南了.作为一个在生产环境中与回调函数打了多年交道的开发者,今天我想分享一些真正实用的经验,带你揭开回调函 ...
- redis的作用:高性能和高并发
一.高性能 假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作mysql,半天查出来一个结果,耗时600ms.但是这个结果可能接下来几个小时都不会变了,或者变了也可以不用立即反馈给用 ...
- mybatis插入数据返回id的实现方式
一. useGeneratedKeys="true" <insert id="saveUser" parameterType="com.apcs ...
- Cursor怎么使用,3分钟上手Cursor:比ChatGPT更懂需求,用聊天的方式写代码,GPT4、Claude 3.5等先进LLM辅助编程
前言 在人工智能工具井喷的今天,大家早已习惯用AI辅助编程,但大多数工具要么停留在"问答式"交互,要么对复杂代码逻辑束手无策.而Cursor--这款专为开发者设计的AI编程工具,凭 ...
- 解决React Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, ... useEffect cleanup function.
在写react程序时遇到警告: Warning: Can't perform a React state update on an unmounted component. This is a no- ...
- 通过远程连接,docker访问获取数据表信息
<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId&g ...
- netcore限流
netcore限流 using System; using System.Collections.Generic; using System.Threading.Tasks; using Micros ...
- CentOS 7.6 安装 Mysql 5.7
一.查看CentOS版本 Mysql的版本必须要和CentOS的版本对应!查看CentOS版本的指令如下: cat /etc/redhat-release 二.下载yum源包 wget http:// ...