其实个人主要做机械结构方面的分析,很少接触到需要大量调整的梁结构。会考虑写这样一篇文章主要源于前几天夜谈会室友向我们抱怨,说做项目用NX Nastran调整了120根梁截面的方向,因为基体结构是个圆筒,所以调整起来异常麻烦。当时我想着没这么麻烦吧,于是第二天用hypermesh试了下,发现的确不是很容易,于是就该问题总结了一些方法,可能不是很好,但有总比没有好。下面用两个例子来进行说明:
第一个案例是这种圆筒结构(平面框架的就不说了),内部有横向以及纵向的U形辐条,其中槽口均朝向各截面圆心处。
图 1 圆筒框架示意
第二个案例是任意曲面形式的结构,内部也有一定形式摆放的纵向U形梁,各槽口指向所在曲面的内法线方向(第一种的扩展)
图 2 曲面框架示意
1 方向节点和方向矢量
在进行案例的说明之前,有两个概念得先和大家说一下,就是梁单元的方向节点和方向矢量。其实从文章题目可以看出,我主要想强调下方向矢量的概念和使用。
图 3 梁单元坐标系创建示意
首先我们得明白一点,梁截面的方向是与单元坐标系一致,因此我们的重点在于梁单元的单元坐标系是如何建立的。如上图所示梁单元,单元坐标系的原点在单元中心,根据1(I节点)→2(J节点)我们知道了梁单元的X方向,其次,我们指定了一个方向节点3(K节点),那么1→3实际定义了一个方向矢量V。利用X方向以及方向矢量V,根据右手定则(V叉乘X)可以得到单元坐标系的Y轴,再使用一次右手定则(X叉乘Y)就得到了Z方向。也就是上图中的白色(X),绿色(Y),蓝色(Z),这样截面的Y,Z就直接与单元坐标系的Y,Z对应上了。按照上面的坐标系,我们赋予一个L形截面,会得到如下对应结果:
图 4 单元坐标系与截面坐标系的对应
所以说实际上方向节点并不是说直接指定截面的Z方向,而是通过生成一个方向矢量V与X方向叉积得到Y方向,再将X方向与Y方向叉积就得到了Z方向,当方向节点K恰好在I节点上方的时候,I→K就是Z方向。明白了这个我们其实就可以理解调整梁截面的方向其实有两种办法:①通过方向节点间接定义②直接通过各种方式给出方向矢量。
开始两个案例之前得先说明下:上述规则是ansys的并不一定适用于nastran或者其它软件,但是基本的方法是类似的,比如下面两个例子基于optistruct和nastran模板进行操作,它的截面方向与ansys正好相反,所以是X先叉乘V得到Z方向,然后Z叉乘X得到Y方向。
2 案例1
图 5 案例一
首先,我们通过hyperbeam创建optistruct的U形梁截面,尺寸如下:
图 6 截面尺寸
将截面形式赋予给横梁与纵梁的组件,并对横梁与纵梁进行网格划分,默认情况下会得到如下的截面形式:
图 7 默认截面方向结果
可以看到,大部分梁的截面方向以及偏置都不是我们要的,因此需要进行调整。
2.1 横梁调整
首先调整横向的梁。通过观察我们可以知道,如果梁截面的Y方向刚好是沿着桶的轴向的,则槽口的方向(截面Z方向)恰好朝着径向,也就是我们需要的结构,因此使得这些梁单元的矢量方向指定为轴向(也就是全局的Y方向)则可以得到一个初步的结果,如下:
图 8 初次调整
如上,虽然槽口的方向趋势是对的,但是朝向却是反的,因为截面方向还和梁单元的IJ方向有关,所以再把反的部分(白色部分)使用负Y方向矢量摆正即可得到下面的正确朝向结果(建议更新的时候pin a,b一起更新)。
图 9 截面调整一致
我们可以看看这些单元的坐标系都是怎么样的:
图 10 单元坐标系示意
可以看到,Y为桶的轴向,X为切向,Z为法向,YZ截面恰好对应我们定义的U形截面。
方向调整好之后我们设置截面偏置(沿着单元坐标系的Z方向)就得到了最终的结果(偏置的大小可以通过hyperbeam测量)
图 11 横梁最终结果
2.2 纵梁调整
纵梁调整原理和上面一致,都是创建合适的单元坐标系。我们观察纵梁,要达到预期要求,和上面类似只要所有梁单元的单元坐标系的Z方向指向圆心就行。这样我们只需要定义方向矢量为切线方向,那么Z方向就直接是我们需要的了。但是每根梁的切线表达在总体笛卡尔坐标系下表述会比较麻烦,因此建立局部柱坐标系,将这部分梁节点的位移坐标系(dispalcement system)转到柱坐标系下,则柱坐标系的Y方向就是切线方向。坐标系转好之后,直接按照displacemen system进行设置即可初次得到结果如下
图 12 纵梁初次调整
和上面一样,由于节点IJ方向的原因,我们还需要将恰好相反的方向调整为-Y方向,最终得到如下截面方向:
图 13 纵梁方向一致向内
同样,我们来看看梁单元的单元坐标系,如下:
图 14 纵梁单元坐标系示意
可以看到,Y方向是切线方向,X方向是单元IJ定义的纵向,Z方向是发现向内。最后调整下截面的偏移即可得到最终的结果如下:
图 15 最终结果
其实可以发现,横梁和纵梁的局部坐标系几乎是类似的,只是横梁的切线方向由IJ方向指定,所以定义纵向矢量,纵梁的纵向方向由IJ指定,所以定义切向矢量。
其实圆形的还算比较方便的了,我们只需要统一调整再局部微调就行,但是如果是下面这种非圆形的,我们不能使用局部柱坐标系又怎么办?这个时候需要直接创建矢量方向调整了,下面例子进行说明。
2.3 案例2
图 16 案例二
这个就是上面的圆筒的一个变种,说实话还没找到很好的方法,只能说提供一种。
参照上面圆筒的思路,我们其实只要有每根梁的切线矢量就很好使槽口指向法向,因此难点就在如何得到各个梁的切线方向(向上面一步就调整好应该很难)。好在hypermesh提供了比较健全的创建矢量的方法,能通过几何很快得到切线方向,如下:
图 17 创建切线矢量
图 18 切线矢量示意
那么利用这些切线矢量来更新梁单元指向就很方便了,如下所示,以最左边一根为例:
图 19 初次调整
全部调整完成后,我们也来看看单元坐标系的指向:
图 20 单元局部坐标系示意
可以看到,局部坐标系的Z轴通过IJ定义的X轴与矢量定义的叉积定义,恰为我们需要的方向。
3 小结
通过上面两个例子其实截面方向(或者说单元坐标系)定义的方式已经比较明晰了。对于optistruct和nastran来说,梁单元的方向是直接由方向矢量控制的,对于ansys来说实际是通过方向节点间接得到方向矢量,但是原理基本相似。个人其实一直没有遇到上述问题,主要是因为建立的梁模型都是比较规则的框架,因此只需要几个方向节点就很好调整,但是一旦出现曲线或者环绕型框架,理解方向矢量以及方向节点就很有必要了,对于快速调整模型截面很有帮助。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删