一、ANSYS中壳单元默认单元坐标系的规定
在ANSYS中建模或者从其他地方导入模型时,壳单元的单元坐标系是默认生成的。当然,我们可以自定义壳单元的局部坐标系,此处不去赘述此方法,毕竟不是很常用。此处仅讨论默认单元坐标系的确定。通常,我们在给壳单元施加面荷载时,首先需要确定荷载方向与壳单元e3轴的位置关系。因此,只有确定了壳单元坐标系在整体坐标系的方向,才能实现荷载的正确施加。
下面,以shell181单元为例,我们先看看ANSYS中关于壳单元默认的单元坐标系的规定。
图1 shell181默认的单元坐标系
如图1所示,e1、e2、e3分别代表单元坐标1轴、2轴和3轴;S1和S2为第一和第二参数方向;关键项KEYOPT(11)为单元 轴的默认方向,若KEYOPT(11)=0,则单元 轴的默认方向与质心的第一个参数方向S1一致(默认);若KEYOPT(11)=1,则单元 轴的默认方向与单元节点 指向节点 的方向一致。
图2 shell181单元第一、第二参数方向的确定
如图2所示,为shell181单元第一、第二参数方向的计算公式。上述公式看起来可能有些头大,我们这里参考王新敏老师在《ANSYS结构分析单元与应用》一书中的介绍,可以看出,第一、第二参数方向S1和S2与单元的形函数有关,见图3。根据此规律,我们可以推到得到S2的计算表达式。
图3 《ANSYS结构分析单元与应用》中关于shell181单元第一方向参数S1的计算表达式
如图4所示,默认的单元坐标e3与壳单元表面垂直,而默认的单元坐标e2分别与e1、e3垂直。
图4 单元坐标轴e1、e2、e3的关系
通过上述的计算公式,就可以在确定了壳单元第一、第二参数方向后,通过单元坐标轴之间的关系,计算得到单元坐标轴的方向向量。
二、基于Python编写确定壳单元坐标轴向量的代码
废话不多说,直接上代码!!!通过下述代码,我们就可以在已知壳单元节点坐标的情况下,计算得到单元坐标轴的方向向量了。
#ANSYS壳单元局部坐标轴的确定
import math
import numpy as np
#(1)壳单元I、J、K、L四个节点在整体坐标系下的坐标值
Node_I=np.array([0,0,0])
Node_J=np.array([4,0,4])
Node_K=np.array([4,4,4])
Node_L=np.array([0,4,0])
#(2)壳单元第一参数方向S1
S1_mole=1/4*(-1*Node_I+Node_J+Node_K+(-1)*Node_L)
S1_deno=np.linalg.norm(S1_mole)
S1=S1_mole/S1_deno
#(3)壳单元第二参数方向S2
S2_mole=1/4*(Node_I+Node_J+Node_K+Node_L)
S2_deno=np.linalg.norm(S2_mole)
S2=S2_mole/S2_deno
#(4)壳单元局部坐标轴e1、e2、e3
e1=S1 #默认keyopt(11)=0,即e1方向与S1方向一致
e3=np.cross(S1,S2)/np.linalg.norm(np.cross(S1,S2))
e2=np.cross(e3,e1)
实际设计计算是,是加到面上的外荷载,其方向向量往往是相对整体坐标系而言的。因此,需要计算荷载方向向量与壳单元坐标轴e3之间的夹角,才能进一步计算得到外荷载沿单元e3轴方向的荷载分量。此处,也给出了这个简短的代码,供大家参考!此处加上荷载沿整体坐标系Z轴的负方向。通过计算,就可以得到荷载方向向量与e3轴夹角的余弦了!!!
三、使用方法
下面举例说明使用方法。首先,在ANSYS中创建壳单元,以下为有限元模型的APDL代码。
finish
/clear
/prep7
!单元及材料属性
ET,1,shell181
sectype,1,shell
secdata,0.1
mp,ex,1,2.1e5
mp,prxy,1,0.3
!创建节点
n,1,0,0,0
n,2,4,0,4
n,3,4,4,4
n,4,0,4,0
!创建单元
type,1
mat,1
secnum,1
en,1,1,2,3,4
首先,将壳单元节点坐标带入Python编写的代码中,如图5所示。
图5 将壳单元节点坐标输入Python代码
然后,运行编写好的Python代码,即可计算得到该壳单元坐标轴e1、e2和e3。
现在,要往单元(编号为1)上施加沿荷载,假设荷载大小为10 Pa,方向为沿整体坐标轴Z的负方向,即其单位方向向量为 [0 , 0 , -1]。继续计算,即可得到荷载方向与e1轴夹角的余弦值为-0.7071。
!施加荷载
Press=10
Angle_Cos=-0.7071
!判断:如果荷载方向与单元e3轴正方向相反
*if,Angle_Cos,lt,0,then
sfe,1,2,pres,,-1*Press*Angle_Cos
!否则:如果荷载方向与单元e3轴正方向相同
*else
sfe,1,1,pres,,Press*Angle_Cos
*endif
将上述APDL代码运行,即可施加荷载到单元表面,如图6所示。
图6 施加荷载后的壳单元(荷载大小为7.071 Pa)
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删