Python与土木工程:确定ANSYS壳单元局部坐标轴的Python脚本

一、ANSYS中壳单元默认单元坐标系的规定

     在ANSYS中建模或者从其他地方导入模型时,壳单元的单元坐标系是默认生成的。当然,我们可以自定义壳单元的局部坐标系,此处不去赘述此方法,毕竟不是很常用。此处仅讨论默认单元坐标系的确定。通常,我们在给壳单元施加面荷载时,首先需要确定荷载方向与壳单元e3轴的位置关系。因此,只有确定了壳单元坐标系在整体坐标系的方向,才能实现荷载的正确施加。

     下面,以shell181单元为例,我们先看看ANSYS中关于壳单元默认的单元坐标系的规定。


   图1 shell181默认的单元坐标系
 

      如图1所示,e1、e2、e3分别代表单元坐标1轴、2轴和3轴;S1和S2为第一和第二参数方向;关键项KEYOPT(11)为单元 x 轴的默认方向,若KEYOPT(11)=0,则单元 x 轴的默认方向与质心的第一个参数方向S1一致(默认);若KEYOPT(11)=1,则单元 x 轴的默认方向与单元节点 i 指向节点 j 的方向一致。


   图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)

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空