问题

近日使用Nastran做一个算例,在计算频响时发现:位移场是连续的,而应变场不连续。以某一频率处应变场为例,其上表面X、Y方向应变场分布如下图。此处关闭了云图的插值,所显示的为单元的应变,因此云图显示是离散的。

从云图中可以看出,部分区域应变场出现了明显不正常分布,尤其以右下侧区域最为明显,小孔周围的应变分布同样不合理。经过对用户手册和相关书籍的阅读,很容易找到原因,不过通过Bing搜索出来的结果实在少,这样的问题居然困扰了我几天,那便发一篇以作参考吧。

Nastran的单元坐标系

Nastran中坐标系有全局坐标系、材料坐标系、单元坐标系等。通常建模与节点编辑在全局坐标系下处理,也可以通过用户自定义坐标系进行相关处理,材料坐标系则通常用于各项异性材料的方向定义。单元坐标系对于梁、壳单元而言十分重要,相关属性需要针对单元坐标系设置,如梁的截面。而壳单元的坐标系最常用的体现在其法方向上,壳的偏置正是需要根据正法向方向进行设置。这在过去笔者的经验中吃过一次亏:使用HyperMesh时有部分单元需要手动调整,手动建立的2D单元在无偏置时是没有明显区别的,但仍能在某些单元的边界处看到明显的黑色实线边界,似乎与周围单元不一致,如下图,这正是法向相反的原因,当对单元进行整体偏置时效果就显示出来了。

针对单元法向,可以直接使用HyperMesh的菜单-Tool-normals显示、修改单元法向。

除了在建模时法向影响偏置效果外,计算和后处理过程中,也需注意,单元的应力、应变是在单元坐标系中体现。这是好理解的,当单元不是严格在X-Y平面内时,对X、Y方向的定义就不明确了,除非需要人为定义一个坐标系并与之关联。我想Nastran的处理方法大概就是,只给出直接结果,坐标转换则交给用户自行处理。其实问题挺简单,就是没仔细阅读手册前倒会一直纠结为什么应变算的不对,实际上只是输出方向的问题。

首先看单元坐标系的定义方式,以CQUAD4单元为例,如下图。单元坐标系与构成单元的节点顺序有关,其X方向由G1节点指向G2节点,且平分\(2\alpha\)角。X-Y平面位于面内,且遵守右手法则。因此,在网格稍有复杂的情况下,各单元坐标系就可能千奇百怪,即使都是矩形单元,在HyperMesh中所画网格也有可能部分单元的X轴相差90°乃至180°,当然,若是相差180则看不出来。

在HyperMesh中可以通过面板-Tools-Orientation Review查看单元坐标系。然而无奈的是,目前还没找到在HyperMesh中调整单元坐标系的方法。若一定是对单元坐标系有要求,则可将模型导入Patran后再处理。具体操作为在Meshing下选择Action:Modify,Object:Element,Method:Shell Orientation,即可对单元进行操作。

后处理

实际上根据坐标系的定义方法来看,改模型的X、Y方向意义并不大,当网格非矩形、方向各异时,无法使单元坐标系的X方向与全局坐标系X方向平行,因此在后处理上再行调整或许更有效。在Patran中,可以在Action:Create,Object:Fringe下Plot Options中Coordinate Transformation选择不同坐标系。

笔者常在HyperView中查看结果,则在Contour下Resolved in选择所需坐标系。顺便一提,旁边还有Averaging method选项,选择不同的选项对Query下的查询有影响,但选择None时,不对云图进行插值,结果显示离散,则Query中通过选择Element获取应变,当选择如Simple插值时,则需选择节点获取应变数据。

壳单元应变位置

在Nastran中,默认的应变输出量为mean strains and curvatures(平均应变和曲率,平均应变我理解此处应为中性面应变?),通常我们需要的是壳单元上下表面的应变,那么需要修改应变的输出,在Patran中STRAIN的输出下设置Plate Strain Curv为Fiber,在bdf文件中体现为STRAIN后多一项FIBER设置字段。

最终f06结果文件中的显示如下图,上半部分为平均应变-曲率输出,下半部分为上下表面应变输出。能够看出两者是能够通过乘上距离简单换算的。在Patran和HyperView中,通常将mean strains设为Z0,底面设为Z1,顶面设为Z2。相关内容在Nastran的线性静分析手册中有提到。

Nastran的应变方向的更多相关文章

  1. HYPERMESH-NASTRAN梁的方向与偏置

    Nastran关于梁的定义 我们知道,在定义梁单元时,一般需要定义单元的方向,或者说是单元的局部坐标系.对于Nastran内CBAR单元来说,梁轴向为X方向,我们需要给出向量\(\overrighta ...

  2. JS判断鼠标进入容器方向的方法和分析window.open新窗口被拦截的问题

    1.鼠标进入容器方向的判定 判断鼠标从哪个方向进入元素容器是一个经常碰到的问题,如何来判断呢?首先想到的是:获取鼠标的位置,然后经过一大堆的if..else逻辑来确定.这样的做法比较繁琐,下面介绍两种 ...

  3. 普通程序员如何转向AI方向

    眼下,人工智能已经成为越来越火的一个方向.普通程序员,如何转向人工智能方向,是知乎上的一个问题.本文是我对此问题的一个回答的归档版.相比原回答有所内容增加. 一. 目的 本文的目的是给出一个简单的,平 ...

  4. Android中Activity运行时屏幕方向与显示方式详解

    现在我们的手机一般都内置有方向感应器,手机屏幕会根据所处位置自动进行横竖屏切换(前提是未锁定屏幕方向).但有时我们的应用程序仅限在横屏或者竖屏状态下才可以运行,此时我们需要锁定该程序Activity运 ...

  5. C# Word中设置/更改文本方向

    C# Word中设置/更改文本方向 一般情况下在Word中输入的文字都是横向的,今天给大家分享两种方法来设置/更改一个section内的所有文本的方向及部分文本的方向,有兴趣的朋友可以试下. 首先,从 ...

  6. 基于JQuery的获取鼠标进入和离开容器方向的实现

    做动画时,需要判断鼠标进入和退出容器的方向.网上找到的基于JQuery的实现方法,用函数封装了一下,写了一个示例.注意绑定鼠标事件用的是on(),所以JQuery版本需高于1.7. <!DOCT ...

  7. Java和PHP哪个方向更有前途?

      Java和PHP到底哪个方向更有前途呢?我从网络上收集了很多资料,并在这篇文章中做了总结.   1.TIOBE语言排行榜 Apr 2014 Apr 2013 Change Programming ...

  8. IT软件的编程方向 - 进阶者系列 - 学习者系列文章

    IT软件经过了这么些年的发展,已经形成了很多的软件公司和开发团队,而且当前编程语言也有很多种,让开发人员能够有很大的选择.现在国际上的开发阵营基本分为ASP.NET.JAVA和PHP三种,但是每种开发 ...

  9. 精灵方向移动问题[math.floor]

    local xd = math.cos(math.rad(self._direction));--self._direction方向角度 local yd = math.sin(math.rad(se ...

随机推荐

  1. for 循环打印直角三角形、正三角形、棱形

    学习目标: 熟练掌握 for 循环的使用 例题: 1.需求:打印直角三角形 代码如下: // 左直角 for(int i = 0; i < 5; i++) { for(int j = 0; j ...

  2. js多线程worker

    参考地址:https://blog.csdn.net/huang100qi/article/details/89303555?utm_source=app https://www.cnblogs.co ...

  3. MySQL安装配置教程(超级详细)

    一. 下载MySQL Mysql官网下载地址:https://downloads.mysql.com/archives/installer/ 1. 选择要安装的版本,本篇文章选择的是5.7.31版本, ...

  4. MyBatis起步搭建

    1 步骤 数据库环境 创建Maven项目 导入依赖 编写MyBatis配置文件 编写MyBatis工具类 编写实体类 编写Mapper 测试 2 数据库环境 MySQL 8.0版本 create da ...

  5. 微信开发者工具:Cannot read property 'addEventListener' of undefined 报错

    点击右上角详情 有个调试基础库 当前为2.17.0 调为2.14.1 解决 如果对您有帮助,希望对面的你能点赞加评论!拜上! 若有bug还请告知,万分感谢!

  6. 【大学物理实验】01 单摆测重力加速度 的 g 计算代码

    单摆测重力加速度 传统摆 (代码没保存,就截了个图) 研究单摆周期与摆长之间的关系 (依旧是g的计算) 我还不太会数据拟合

  7. 新华三Gen10服务器ILO 5 安装中文语言包

    ILO 5 安装中文语言包 在官网下载语言包文件,并解压 选择firmware&OS software,点击右侧的update firmware 选择本地文件,浏览到语言包里面的lpk文件,点 ...

  8. bellman-ford 单源最短路问题 图解

    ​ 核心思想:松弛操作 对于边(u,v),用dist(u)和(u,v)的和尝试更新dist(v): dist(v) = min(dist(v) , dist(u)+l(u,v) 注:dist(i)为源 ...

  9. Linux-编译安装http-实验

    准备工作 1.关闭防火墙和SELinux 2.基础安装的系统,安装以下命令 yum install gcc make autoconf gcc-c++ glibc glibc-devel pcre p ...

  10. ONNXRuntime学习笔记(三)

    接上一篇完成的pytorch模型训练结果,模型结构为ResNet18+fc,参数量约为11M,最终测试集Acc达到94.83%.接下来有分两个部分:导出onnx和使用onnxruntime推理. 一. ...