2010-09-07 07:48:00| 分类: ANSYS 入门基础 | 标签: |举报 |字号大中小 订阅
三、 梁与壳体的连接
2D 梁单元节点:UX、UY 和 ROTZ;
3D 梁单元节点自由度:UX、UY、UZ、ROTX、ROTY、ROTZ 及 WARP
板壳单元实际具有 5 个自由度:UX、UY、UZ、ROTX 和 ROTY。引入第 6 个即面内转动自由度 ROTZ,其意义与梁单元的 ROTZ 不同。
2D实体单元节点自由度:UX 和 UY;
3D实体单元节点自由度:UX、UY 和 UZ。
由于梁壳体单元节点的自由度个数或自由度物理意义不同,因此要考虑梁单元与板壳单元、体单元连接时的自由度问题。
梁与壳体的连接可分为如下 4 种情况讨论:
① 梁单元与壳体单元铰接时的情况;
② 2D 梁单元与 2D 实体单元刚接时的情况;
③ 3D 梁单元与板壳单元刚接时的情况;
④ 3D 梁单元与 3D 实体单元刚接时的情况。
1. 梁单元与壳体单元铰接
因梁单元平动自由度与实体单元平动自由度物理意义相同,因此当梁单元与实体单元铰接时,只要具有公共节点就无需约束方程;或者不具有公共节点但具有重合的节点时,直接耦合节点的平动自由度即可。
梁单元与板壳单元因有 5 个自由度物理意义相同,因此当单元间具有公共节点时,不是铰接,而是除 ROTZ 外的一种刚性连接。如果欲使梁单元与板壳单元铰接,就必须采用主从节点的方法,即无公共节点但在同一位置建立各自的节点,然后耦合平动自由度。或者,对于有节点自由度释放功能的梁,释放适当的节点自由度。
2. 2D 梁单元与 2D 实体单元刚接处理方法:
★ 约束方程法
★ 虚梁法
★ MPC法等。
原理:建立自由度之间的关系方程。
注意:由于所建立自由度之间的关系都采用了局部区域的节点,因此所得结果在局部范围内可能造成应力集中,后处理中应予以注意。
3. 3D 梁单元与板壳单元刚接
梁单元与板壳单元有5个自由度物理意义相同,因此当单元间具有公共节点时,只需建立梁单元自由度 ROTZ 与板壳单元其他自由度之间的约束方程。
3D 梁单元与板壳单元的刚性连接:
★ 梁与壳面垂直或穿过壳面
★ 梁包含在壳面内
★ 梁在壳面内但不包含
⑴ 梁与壳面垂直或穿过壳面的情况
梁垂直于板壳或穿过壳面的情况,可建立梁单元自由度 ROTZ 与板壳单元其他自由度之间的约束方程。
图 A 为一方板,在方板中心位置焊接一圆柱杆件,圆柱杆件顶端固结,方板四角作用有集中力。图 B 为梁与壳简化计算的几何模型,图 C 为有限元模型,图 D 为梁与壳连接点局部的单元的节点编号,按图中坐标系,节点 2 自由度 ROTZ 与其余节点自由度之间的关系为:
写成标准方程形式如下:
上述示例中,梁单元与壳单元共用节点,如不共用节点或各自节点独立,也可采用约束方程。如梁单元节点位于某个壳单元的某位置,需要编写除 ROTZ 外的其余自由度的约束方程;如果梁单元节点与壳单元节点位置重合,但各自独立,则需要将 ROTZ 外的自由度耦合。因此建议采用共用节点,只需编写关于 ROTZ 的约束方程,以减少工作量。
如果采用刚性区法,可在节点 2 附近创建一刚性区(自动生成约束方程),即将该小区域的 SHELL 视为刚性,这样势必就增加了结构的刚性。当采用 MPC184 建立几个刚性梁单元时,情况与之类似,也增加了结构的刚性。因此,这两种方法的结果不如编写约束方程合理。
⑵ 梁包含在壳面内的情况
如带加劲肋的箱梁、模板、双壁围堰、正交异性桥面板等,其加劲肋可用梁单元模拟,板面用板壳单元模拟,即为梁包含在壳面内的情况。当然这种结构也可采用全壳单元模拟,除建模稍稍复杂一些外,计算费用方面相差并不很多。
对这种梁包含在壳面内的情况,只要梁单元和壳单元共用节点即可,不必建立约束方程。
① 采用实体单元模拟;
② 采用全壳单元模拟;
③ 采用梁壳单元模拟,梁单元与壳单元共用节点,需梁偏置或壳偏置;
④ 采用梁壳单元模拟,梁单元与壳单元节点独立,但必须建立约束方程;
⑤ 采用梁截面系列的梁单元,如 beam44 或 beam18x 单元等;
⑥ 采用输入实常数系列的梁单元,如 BEAM4 等。
以上方法各有利弊,不做讨论,此处仅仅考虑偏置梁壳单元模拟悬臂梁。其基本思路是创建面,切分面形成拟用梁单元模拟的线(简称梁线),即此梁线同时为组成面的线;定义梁截面和偏置量;赋予面和梁线属性、划分网格、加载、求解等。
示例:
! EX6.32 梁包含在壳面内的情况 - 梁偏置
finish $ /clear $ /prep7
l=500 $ b1=200 $ b2=12 $ t=2 $ h=15 ! 定义几何参数
q1=0.01 $ q2=10 ! 定义 Q1(N/mm2)和Q2(N/mm)
et,1,shell63 $ et,2,beam188 ! 定义单元类型 shell63 和 beam188
mp,ex,1,2e5 $ mp,prxy,1,0.3 $ r,1,t ! 定义材料性质和实常数(板厚)
sectype,1,beam,rect ! 定义梁截面为矩形
secdata,b2,h,3,3 ! 定义矩形截面数据及格栅数
secoffset,user,0,h/2+t/2 ! 将截面原点偏置到 (h+t)/2
wprota,,90 $ rectng,-b1/2,b1/2,0,l ! 旋转工作平面,创建矩形面
wprota,,,90 $ asbw,all$wpcsys,-1 ! 旋转工作平面,切分面形成梁线
lsel,s,tan1,x $ lesize,all,,,50 ! 选择纵向线、定义划分个数为 50
lsel,s,tan1,z $ lesize,all,,,10 ! 选择横向线、定义划分个数为 10
aatt,1,1,1 $ amesh,all ! 赋予面属性,划分单元
k,100,,100,100 ! 创建关键点 100,用于梁截面的方向点
lsel,s,loc,x,0 $ latt,1,,2,,100,,1 ! 选择梁线、赋予属性和截面 ID
lmesh,all ! 对梁线划分单元
lsel,s,loc,z,0$dl,all,,all ! 选择线、施加约束
lsel,s,loc,x,b1/2 $ sfl,all,pres,q2 ! 选择线、施加分布荷载 Q2
sfa,all,1,pres,q1 $ allsel,all ! 施加面荷载 Q1
/solu $ solve $ /post1 $ pldisp,1 ! 求解及后处理等
⑶ 梁在壳面内但不包含的情况
此种情况为梁与板壳位于同一面内,但面不包含梁线,例如一工字形截面悬臂梁,承受竖向和横向均布面荷载作用,可用:
① 采用实体单元模拟;
② 采用全壳单元模拟;
③ 采用任意梁单元,如 BEAM4、BEAM44 或 BEAM18x 系列等;
④ 采用梁壳单元模拟,将梁单元插入到壳单元中至少一个壳单元长度,并共用节点;
⑤ 采用梁壳单元模拟,共用节点,并在与梁连接的壳单元端部创建 MPC184 刚性梁单元;
⑥ 采用梁壳单元模拟,共用节点,并在与梁连接的壳单元端部创建刚性区。
分别采用不同的计算模型的计算结果比较接近,如表所示。
在考虑梁壳结合的模型中,刚性梁和刚性区法较为方便。
! EX6.33 梁在壳面内但不包含的情况 - 采用 MPC184 单元模拟连接部位
finish $ /clear $ /prep7
b0=0.1 $ h0=0.09 $ t0=0.01 $ l0=3 ! 定义几何参数
et,1,shell63,,,2 $ et,2,beam188 $ et,3,mpc184,1 ! 定义 3 种单元类型
mp,ex,1,2.1e11 $ mp,prxy,1,0.3 $ r,1,t0 ! 定义材料属性及实常数
sectype,1,beam,i $ secdata,b0,b0,h0,t0,t0,t0 ! 定义梁截面及其数据
wprota,,90 $ blc4,,,b0,l0/2 $ agen,2,all,,,,h0-t0 ! 旋转工作平面,创建上下翼板
wpoff,b0/2 $ wprota,,,90 $ blc4,,,h0-t0,l0/2 ! 移动并旋转工作平面,创建腹板
aglue,all $ wpcsys,-1 ! 粘接各板
wpoff,,(h0-t0)/2 $ wprota,,90 $ asbw,all ! 移动并旋转工作平面,切分腹板
esize,b0/6 $ mshape,0 $ mshkey,1 ! 定义单元尺寸、形状、网分类型
aatt,1,1,1 $ amesh,all ! 赋予面属性,划分单元
kp0=kp(b0/2,(h0-t0)/2,l0/2) ! 得到与梁连接部位的关键点号
k,100,kx(kp0),ky(kp0),l0 $ k,200,kx(kp0),l0,l0 ! 创建两个关键点
lsel,none $ l,kp0,100 $ lesize,all,,,10 ! 选择线空集,创建线,定义划分
latt,1,,2,,,200,,1 $ lmesh,all ! 赋予线属性,划分单元
lsel,s,loc,z,l0/2 $ latt,1,,3 $ lmesh,all ! 选择连接断面的线,并划分单元
lsel,s,loc,z,0 $ dl,all,,all ! 选择线,施加所有约束
asel,s,loc,y,h0-t0 $ sfa,all,1,pres,5000 ! 选择面,施加均布荷载(顶面)
asel,s,loc,x,b0/2 $ sfa,all,1,pres,3000 ! 选择面,施加均布荷载(侧面)
lsel,s,loc,z,l0/2+0.1,l0 $ esll,s ! 选择梁线及单元
sfbeam,all,1,pres,5000*b0 ! 施加均布线荷载(竖向)
sfbeam,all,2,pres,-3000*(h0-t0) $ allsel,all ! 施加均布线荷载(侧向)
finish $ /solu $ solve $ /post1 ! 求解后进入后处理
四、 3D 梁单元与 3D 实体单元刚接
3D 梁单元与 3D 实体单元共用节点时其连接为铰接,如要刚性连接可通过建立约束方程、设置刚性区、MPC184 刚性梁等方法实现。CERIG 自动建立约束方程为较好方法。
例如一尺寸为 B×H 的矩形截面悬臂梁,一部分采用实体单元,另一部分采用普通梁单元,两种单元的连接采用刚性区(CERIG 命令),其命令流如下:
! EX6.34 3D 梁单元与 3D 实体单元刚接---采用刚性区法
finish $ /clear $ /prep7
b=10 $ h=20 $ l1=100 $ l2=150 ! 定义梁宽、高、实体长度、普通梁长度
a1=b*h $ i1=b*h**3/12 $ i2=h*b**3/12 ! 计算梁单元截面特性
et,1,solid95 $ et,2,beam4 ! 定义两种单元,实体单元和 BEAM4 单元
mp,ex,1,3e5 $ mp,prxy,1,0.3 $ r,1,a1,i1,i2,b,h ! 定义材料性质和梁单元的实常数
blc5,,,b,h,l1 $ wprota,0,90 $ vsbw,all ! 创建实体部分,旋转工作平面,切分体
wprota,,,90 $ vsbw,all $ wpcsys,-1 ! 旋转工作平面,再次切分体
kp0=kp(0,0,l1) $ k,100,,,l1+l2 $ l,kp0,100 ! 获取关键点,创建关键点和线
lsel,s,loc,z,l1+1,l1+l2 $ latt,1,1,2 ! 选择普通梁线,赋予属性
lesize,all,,,10 $ lmesh,all ! 定义划分单元数目,划分单元
vatt,1,,1 $ esize,2.5 $ mshape,0 $ mshkey,1 ! 赋予体属性,定义单元形状和划分类型
lsel,s,loc,z,1,l1-1 $ lesize,all,b/2 ! 选择实体部分纵向线,定义网分尺寸
vmesh,all ! 划分实体单元网格
asel,s,loc,z,0 $ da,all,all ! 选择固结端面,施加约束
fk,100,fx,100 $ fk,100,fy,-200 ! 施加集中荷载
nsel,s,loc,z,l1 $ cerig,1,all $ alls,all ! 选择连接截面节点,创建刚性区
/solu $ solve $ /post1 $ pldisp,1 ! 求解并进入后处理
上述例子中,如采用刚性区法也可不必切分几何体,即几何实体和梁线独立不共用关键点(也不共用节点),而通过建立刚性区连接其结果相同。
! EX6.34B 3D 梁单元与 3D 实体单元刚接 - 采用刚性区法,几何实体和梁各自独立建模
finish $ /clear $ /prep7
b=10 $ h=20 $ l1=100 $ l2=150 ! 定义梁宽、高、实体长度、普通梁长度
a1=b*h $ i1=b*h**3/12 $ i2=h*b**3/12 ! 计算梁单元截面特性
et,1,solid95 $ et,2,beam4 ! 定义两种单元,实体单元和 BEAM4 单元
mp,ex,1,3e5 $ mp,prxy,1,0.3 $ r,1,a1,i1,i2,b,h ! 定义材料性质和梁单元的实常数
blc5,,,b,h,l1 ! 创建实体部分
k,99,,,l1 $ k,100,,,l1+l2 $ l,99,100 ! 创建两个关键点和线
lsel,s,loc,z,l1+1,l1+l2 $ latt,1,1,2 ! 选择普通梁线,赋予属性
lesize,all,,,10 $ lmesh,all ! 定义划分单元数目,划分单元
vatt,1,,1 $ esize,2.5 $ mshape,0 $ mshkey,1 ! 赋予体属性,定义单元形状和划分类型
lsel,s,loc,z,1,l1-1 $ lesize,all,b/2 ! 选择实体部分纵向线,定义网分尺寸
vmesh,all ! 划分实体单元网格
asel,s,loc,z,0 $ da,all,all ! 选择固结端面,施加约束
fk,100,fx,100 $ fk,100,fy,-200 ! 施加集中荷载
nsel,s,loc,z,l1 $ cerig,1,all $ alls,all ! 选择连接截面节点,创建刚性区
/solu $ solve $ /post1 $ pldisp,1 ! 求解并进入后处理
五、 壳与体的连接
板壳单元与 3D 实体单元当仅仅共用节点时其连接可认为是铰接,而刚性连接的实现也要通过约束方程,当然也可采用创建刚性区自动建立约束方程。
如图所示结构,悬臂部分采用壳单元,其余采用实体单元,在壳与实体单元连接部位建立竖向刚性线,而不能将连接部位的整个面作为刚性区。
为了减少约束方程的数量,建模时使壳单元与体单元共用节点;以壳单元的节点为主节点,以体单元的节点为从节点,考虑主节点的转动自由度与从节点 UX 和 UZ 建立约束方程,即建立刚性线自动生成约束方程。其基本方法是选择连接区域的节点,再从中选择 Y 向某一列节点,利用 CERIG 命令自动生成约束方程, 其命令如 CERIG,1,ALL,UX,UZ, 而不是 CERIG,1,ALL (LDOF 缺省 为ALL)。
命令流示例:
! EX6.35 壳与 3D 实体的刚性连接
finish $ /clear $ /prep7
h=2.4 $ b=2.0 $ l1=1.8 $ l2=3.0 $ t=0.3 ! 定义几何参数
q1=10000 $ q2=50000 ! 定义面荷载值
et,1,solid95 $ et,2,shell93 ! 定义两类单元
mp,ex,1,3.0e10 $ mp,prxy,1,0.2 $ r,1,t ! 定义材料性质及实常数
blc4,,,b,h,l1 $ wpoff,,h-t/2,l1 $ wprota,,90 $ vsbw,all ! 创建体,并用工作平面切分体
blc4,,,b,l2 $ nummrg,all ! 创建面,粘接图素(面体共用线)
vatt,1,,1 $ esize,t/2 $ vmesh,all ! 赋予体属性和单元尺寸,划分体
asel,s,loc,z,l1+t,l1+l2 $ aatt,1,1,2 $ amesh,all ! 选择面,赋属性,划分面
sfa,all,1,pres,q1 ! 施加面荷载 Q1
lsla,s $ lsel,r,loc,x,b $ sfl,all,pres,q2*t ! 选择线,施加线荷载 Q2×T
asel,s,loc,y,0 $ da,all,all $ allsel,all ! 选择面,施加约束
nsel,s,loc,z,l1 $ nsel,r,loc,y,h-t,h ! 选择连接区域的节点
cm,nodcm,node ! 定义节点元件,名为 nodcm
*do,i,1,29 $ cmsel,s,nodcm $ nsel,r,loc,x,nx(i) ! 循环选择某列节点
cerig,i,all,ux,uz $ *enddo$allsel,all ! 创建刚性线,结束循环
/solu $ solve $ /post1 $ pldisp,1 ! 求解进入后处理
六、 多种单元的组合结构
根据实际结构的建模需要,一个模型中会出现多种单元的组合,但所有结构单元类出现在一个模型中的情况是很少的。经常出现的组合可能是杆单元(LINK 系列)、梁单元(BEAM 系列)、板壳单元(SHELL 系列)、实体单元(SOLID 系列)、弹簧单元(COMBIN 系列)、质量单元(MASS21)和接触单元,以及它们之间的某些单元的组合。各单元间的连接处理已在上述作了介绍,此处仅就两端固结梁的典型例子予以介绍。
以 B×H 的矩形截面两端固结板梁为例,分别采用梁单元、壳单元、实体单元以及三者组合进行分析,其主要结果如表所示。
表中位移单位为 mm,应力单位为 MPa。最后一行结果中,跨中应力上面一行是梁单元结果,下面一行是壳单元结果;固端应力上面一行是壳单元结果,下面一行是实体单元结果。所有模型中,梁单元采用 BEAM189,壳单元采用 SHELL93,实体单元采用 SOLID95。
! EX6.36 两端固结梁 - 梁壳体模型
finish $ /clear $ /prep7
! 定义几何参数、单元类型、材料性质、实常数、梁截面、创建模型
b=300 $ h=30 $ l=2000 $ q1=0.1 $ q2=2 $ et,1,solid95 $ et,2,shell93 $ et,3,beam189
mp,ex,1,2.1e5 $ mp,prxy,1,0.3 $ r,1,h $ sectype,1,beam,rect $ secdata,b,h
blc4,,,b,h,l/4 $ wpoff,,h/2 $ wprota,,90 $ blc4,,l/4,b,l/4 $ vsbw,all $ nummrg,all
wpoff,b/2 $ wprota,,,90 $ vsbw,all $ asbw,all
k,100,b/2,h/2,l $ k,200,b/2,l/2,l/2 $ l,kp(b/2,h/2,l/2),100
! 赋予几何模型单元属性、定义划分尺寸、划分各种单元
esize,h/2 $ vatt,1,,1 $ vmesh,all $ asel,s,loc,z,l/4+1,l/2 $ aatt,1,1,2 $ amesh,all
lsel,s,loc,z,l/2+1,l $ latt,1,,3,,200,,1 $ lmesh,all
! 选择面、线等,施加荷载与约束
asel,s,loc,y,h $ sfa,all,1,pres,q1 $ asel,s,loc,x,0 $ sfa,all,1,pres,q2
asel,s,loc,z,l/4+1,l/2 $ sfa,all,1,pres,q1$lsel,s,loc,x,0$lsel,r,loc,z,l/4+1,l/2
sfl,all,pres,q2*h $ lsel,s,loc,z,l/2+1,l $ esll,s $ sfbeam,all,1,pres,q1*b
sfbeam,all,2,pres,-q2*h $ dk,100,all $ asel,s,loc,z,0 $ da,all,all $ allsel,all
! 以下创建连接部位的约束方程
nsel,s,loc,z,l/2 $ cerig,7986,all ! 梁单元与壳单元连接部位创建刚性区
nsel,s,loc,z,l/4 $ cm,n1cm,node ! 选择壳与实体单元连接处的所有节点
nsel,r,loc,y,h/2 ! 从中选择壳单元的所有节点
*get,nodtol,node,,count ! 得到连接部位处壳单元节点总数
*dim,nodenum,,nodtol ! 定义数组,以存放壳单元的节点号
*get,nodenum(1),node,,num,min
! 获取最小节点号,并赋予数组;然后循环获取
*do,i,2,nodtol $ nodenum(i)=ndnext(nodenum(i-1)) $ *enddo
*do,i,1,nodtol $ cmsel,s,n1cm ! 对连接处壳节点总数循环,并选择 N1cm 组件
nsel,r,loc,x,nx(nodenum(i)) ! 从中选择与壳单元某节点 X 坐标相同的节点
cerig,nodenum(i),all,ux,uz ! 建立刚性线,主节点为壳单元的节点
*enddo$allsel,all ! 循环结束,刚性线全部生成
/solu $ solve $ /post1 $ pldisp,1 ! 求解并进入后处理
评论