地下车站双层框架结构内力计算ansys命令流.docx
《地下车站双层框架结构内力计算ansys命令流.docx》由会员分享,可在线阅读,更多相关《地下车站双层框架结构内力计算ansys命令流.docx(22页珍藏版)》请在冰豆网上搜索。
地下车站双层框架结构内力计算ansys命令流
!
双层两跨框架结构
!
建模
finish
/clear
/title,nanhudadaozhan
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
几何参数设置(根据工程修改)
!
顶板厚度
d1=0.8
!
楼板厚度
d2=0.4
!
底板厚度
d3=0.9
!
两侧墙厚度
d4=0.7
!
支柱等效厚度
zhuchang=1.0!
!
!
!
柱长
zhukuan=0.7!
!
!
!
柱宽
zhuju=8!
!
!
!
柱距
d5=(zhuchang*zhukuan**3/zhuju)**(1/3)
!
围护结构等效厚度
d6=0.8
!
跨度
w1=10!
!
!
支柱离左侧墙距离
nw1=10!
!
!
划分数
w2=10!
!
!
支柱离右侧墙距离
nw2=10!
!
!
划分数
!
中板距顶板
h1=5
nh1=5!
!
!
划分数
!
中板距底板
h2=5
nh2=5!
!
!
划分数
!
底板距连续墙底
h3=7
nh3=7!
!
!
划分数
!
顶板距连续墙顶
h4=2
nh4=2!
!
!
划分数
!
围护结构与侧墙距离(侧墙单元别小于nn,它用来选择单元来用的)
nn=0.9
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
荷载参数(根据工程修改)
!
顶板水土压力加超载
p1=80*1000
!
楼板荷载,恒载加活载
p2=6*1000
!
底板水压
p3=130*1000
!
围护结构顶水平土压
qt1=10*1000
!
围护结构底水平土压,可以将土从中板处分层两个线性荷载来施加
qt2=64*1000
!
围护结构底水平土压
qt3=100*1000
!
侧墙顶水压
qw1=30*1000
!
侧墙底水压
qw2=p3
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
物理参数
!
c30
!
衬砌容重
r1=25e3*1
!
衬砌弹性模量
e1=30e9
!
衬砌泊松比
u1=0.2
!
c40
!
衬砌容重
r2=25e3*1
!
衬砌弹性模量
e2=32.5e9
!
衬砌泊松比
u2=0.2
!
围岩弹性抗力系数,和单元划分细密有关,尽量将单元划分为1米长
k1=10e6!
!
!
!
底板竖向基床系数
k3=12e6!
!
!
!
水平基床系数
!
链杆单元弹性模量,按C30取
k2=1e13!
!
!
!
!
可以取个大数吧?
?
?
?
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
定义单元类型、实常数、材料属性。
/prep7
!
定义梁单元
et,1,beam3
!
定义链杆单元
et,2,link10
keyopt,2,3,1!
设为只受压
!
定义弹簧单元
et,3,combin14
!
定义实常数
!
定义梁单元的面积、惯性矩和梁高
r,1,d1,d1*d1*d1/12,d1
r,2,d2,d2*d2*d2/12,d2
r,3,d3,d3*d3*d3/12,d3
r,4,d4,d4*d4*d4/12,d4
r,5,d5,d5*d5*d5/12,d5
r,6,d6,d6*d6*d6/12,d6!
!
!
围护结构若考虑刚度折减,则在此惯性矩可乘个系数
!
定义弹簧单元的弹性系数
r,7,k1!
!
!
!
底板竖向基床系数
r,9,k3!
!
!
!
水平基床系数
!
定义链杆单元的实常数(面积)
r,8,1
!
定义材料属性
!
衬砌材料属性,C30
mp,ex,1,e1
mp,prxy,1,u1
mp,dens,1,r1/10
!
衬砌材料属性,C40
mp,ex,2,e2
mp,prxy,2,u2
mp,dens,2,r2/10
!
链杆单元属性
mp,ex,3,k2
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
建立几何模型。
!
创建隧道支护控制关键点
k,1,-w1,0
k,2,0,0
k,3,w2,0
k,4,-w1,h2
k,5,0,h2
k,6,w2,h2
k,7,-w1,h2+h1
k,8,0,h2+h1
k,9,w2,h2+h1
K,10,w2+nn,-h3
K,11,w2+nn,0
K,12,w2+nn,h2
K,13,w2+nn,h2+h1
K,14,w2+nn,h2+h1+h4
K,15,-w1-nn,-h3
K,16,-w1-nn,0
K,17,-w1-nn,h2
K,18,-w1-nn,h2+h1
K,19,-w1-nn,h2+h1+h4
!
生成线
l,1,2
l,2,3
l,4,5
l,5,6
l,7,8
l,8,9
l,1,4
l,4,7
l,3,6
l,6,9
l,2,5
l,5,8
l,10,11
l,11,12
l,12,13
l,13,14
l,15,16
l,16,17
l,17,18
l,18,19
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
单元网格划分。
!
底板
lsel,s,line,,1
lesize,all,,,nw1
latt,2,3,1
lmesh,all
lsel,s,line,,2
lesize,all,,,nw2
latt,2,3,1
lmesh,all
!
中板
lsel,s,line,,3
lesize,all,,,nw1
latt,2,2,1
lmesh,all
lsel,s,line,,4
lesize,all,,,nw2
latt,2,2,1
lmesh,all
!
顶板
lsel,s,line,,5
lesize,all,,,nw1
latt,2,1,1
lmesh,all
lsel,s,line,,6
lesize,all,,,nw2
latt,2,1,1
lmesh,all
!
侧墙
lsel,s,line,,7,9,2
lesize,all,,,nh2
latt,2,4,1
lmesh,all
!
!
lsel,s,line,,8,10,2
lesize,all,,,nh1
latt,2,4,1
lmesh,all
!
中柱
lsel,s,line,,11
lesize,all,,,nh2
latt,2,5,1
lmesh,all
lsel,s,line,,12
lesize,all,,,nh1
latt,2,5,1
lmesh,all
!
围护
lsel,s,line,,13,17,4
lesize,all,,,nh3
latt,1,6,1
lmesh,all
lsel,s,line,,14,18,4
lesize,all,,,nh2
latt,1,6,1
lmesh,all
lsel,s,line,,15,19,4
lesize,all,,,nh1
latt,1,6,1
lmesh,all
lsel,s,line,,16,20,4
lesize,all,,,nh4
latt,1,6,1
lmesh,all
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
创建弹簧单元
!
显示节点
nplot
!
显示节点编号
/pnum,node,1
/replot
!
确定单元类型
type,3
!
赋予弹簧单元实常数
real,7
!
创建底板弹簧单元
!
选择底板节点
nsel,s,loc,y,0
nsel,r,loc,x,-w1,w2
ngen,2,300,all,,,,-0.9
*do,i,1,nw1+nw2+1,1
e,i,i+300
*enddo
!
创建左围护结构水平弹簧单元
type,3
real,9
nsel,s,loc,x,-w1-nn
nsel,u,loc,y,-0.1,h1+h2+0.1
ngen,2,400,all,,,-1
nsel,r,loc,x,-w1-nn
*get,Node,node,0,count
*get,Nmin,node,0,num,min
*dim,P,array,Node,2,1
k=Nmin!
令K等于所选取最小节点号
*do,i,1,Node,1
P(i,1)=k!
保存当前节点号
P(i,2)=P(i,1)+400
k=ndnext(k)!
令K等于下一个所选取节点号
*enddo
*do,i,1,Node,1
e,P(i,1),P(i,2)
*enddo
k=
Node=
Nmin=
!
!
!
!
!
!
!
!
!
创建右围护结构弹簧单元
type,3
real,9
nsel,s,loc,x,w2+nn
nsel,u,loc,y,-0.1,h1+h2+0.1
ngen,2,700,all,,,1
nsel,r,loc,x,w2+nn
*get,Node,node,0,count
*get,Nmin,node,0,num,min
*dim,P,array,Node,2,1
k=Nmin!
令K等于所选取最小节点号
*do,i,1,Node,1
P(i,1)=k!
保存当前节点号
P(i,2)=P(i,1)+700
k=ndnext(k)!
令K等于下一个所选取节点号
*enddo
*do,i,1,Node,1
e,P(i,1),P(i,2)
*enddo
k=
Node=
Nmin=
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
创建链杆单元。
!
!
!
!
!
!
!
!
创建左侧链杆单元
nsel,s,loc,x,-w1
nsel,r,loc,y,-0.1,h1+h2+0.1
*get,Node,node,0,count
*get,Nmin,node,0,num,min
*dim,P,array,Node,2,1
nsel,s,loc,x,-w1
nsel,a,loc,x,-w1-nn
nsel,r,loc,y,-0.1,h1+h2+0.1
k=Nmin!
令K等于所选取最小节点号
*do,i,1,Node,1
P(i,1)=k!
保存当前节点号
P(i,2)=nnear(P(i,1))
k=ndnext(k)!
令K等于下一个所选取节点号
*enddo
type,2
real,8
mat,3
*do,i,1,Node,1
e,P(i,1),P(i,2)
*enddo
k=
Node=
Nmin=
!
!
!
!
!
!
!
!
创建右侧链杆单元
nsel,s,loc,x,w2
nsel,r,loc,y,-0.1,h1+h2+0.1
*get,Node,node,0,count
*get,Nmin,node,0,num,min
*dim,P,array,Node,2,1
nsel,s,loc,x,w2
nsel,a,loc,x,w2+nn
nsel,r,loc,y,-0.1,h1+h2+0.1
k=Nmin!
令K等于所选取最小节点号
*do,i,1,Node,1
P(i,1)=k!
保存当前节点号
P(i,2)=nnear(P(i,1))
k=ndnext(k)!
令K等于下一个所选取节点号
*enddo
type,2
real,8
mat,3
*do,i,1,Node,1
e,P(i,1),P(i,2)
*enddo
k=
Node=
Nmin=
finish
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
加载与求解
/solu
!
对弹簧施加约束
alls
nsel,s,loc,x,-w1-nn-1
nsel,a,loc,x,w2+nn+1
d,all,ux,0,,,,,uy!
!
!
!
!
对水平弹簧约束
alls
nsel,s,loc,y,-0.9
d,all,ux,0,,,,,uy!
!
!
!
!
对底板弹簧约束
allsel,all
nsel,s,loc,y,-h3
d,all,uy,0!
!
!
!
对围护结构底施加竖向约束
allsel,all
nsel,s,loc,y,h1+h2
nsel,r,loc,x,-w1
d,all,uy,0
allsel,all
nsel,s,loc,y,h1+h2
nsel,r,loc,x,w2
d,all,uy,0!
!
!
!
相当于压顶梁的作用,若抗浮满足,则这两个约束可取消
alls
nsel,s,loc,x,0
nsel,r,loc,y,0
d,all,ux,0!
!
!
!
!
底板某点施加水平约束
allsel,all
acel,0,10,0!
!
!
!
!
施加重力荷载
!
!
!
!
!
!
加载
!
施加顶板荷载
alls
esel,s,real,,1
sfbeam,all,1,pres,p1
!
施加底板水压
allsel,all
esel,s,real,,3
sfbeam,all,1,pres,-p3
!
施加楼板荷载
allsel,all
esel,s,real,,2
sfbeam,all,1,pres,p2
!
!
!
!
左侧墙水压
allsel,all
esel,s,real,,4
nsle,s
nsel,r,loc,x,-w1
esln,r,1
!
!
!
!
!
!
!
!
!
!
!
!
*get,Nelm,elem,0,count!
读取所选取单元总数
*get,Emin,elem,0,num,min!
读取所选取单元中最小单元号
*dim,P,array,Nelm,3,1!
定义一个Nelm行3列的数组
!
数组第1列储存单元号
k=Emin!
令K等于所选取单元中最小单元号
*do,i,1,Nelm
P(i,1)=k!
保存当前单元号
k=elnext(k)!
令K等于下一个所选取单元号
*enddo
*do,i,1,Nelm
m1=nelem(P(i,1),1)
m2=nelem(P(i,1),2)
P(i,2)=qw2-(qw2-qw1)*ny(m1)/(h1+h2)
P(i,3)=qw2-(qw2-qw1)*ny(m2)/(h1+h2)
*enddo
*do,i,1,Nelm
sfbeam,P(i,1),1,pres,P(i,2),P(i,3)
*enddo
!
!
!
!
右侧墙水压
allsel,all
esel,s,real,,4
nsle,s
nsel,r,loc,x,w2
esln,r,1
!
!
!
!
!
!
!
!
!
!
!
!
*get,Nelm,elem,0,count!
读取所选取单元总数
*get,Emin,elem,0,num,min!
读取所选取单元中最小单元号
*dim,P,array,Nelm,3,1!
定义一个Nelm行3列的数组
!
数组第1列储存单元号
k=Emin!
令K等于所选取单元中最小单元号
*do,i,1,Nelm
P(i,1)=k!
保存当前单元号
k=elnext(k)!
令K等于下一个所选取单元号
*enddo
*do,i,1,Nelm
m1=nelem(P(i,1),1)
m2=nelem(P(i,1),2)
P(i,2)=qw2-(qw2-qw1)*ny(m1)/(h1+h2)
P(i,3)=qw2-(qw2-qw1)*ny(m2)/(h1+h2)
*enddo
*do,i,1,Nelm
sfbeam,P(i,1),1,pres,-P(i,2),-P(i,3)
*enddo
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
左围护墙荷载
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
allsel,all
esel,s,real,,6
nsel,r,loc,x,-w1-nn
nsel,r,loc,y,h2,h1+h2+h4
esln,r,1
!
!
!
!
!
!
!
*get,Nelm,elem,0,count!
读取所选取单元总数
*get,Emin,elem,0,num,min!
读取所选取单元中最小单元号
*dim,P,array,Nelm,3,1!
定义一个Nelm行3列的数组
!
数组第1列储存单元号
k=Emin!
令K等于所选取单元中最小单元号
*do,i,1,Nelm
P(i,1)=k!
保存当前单元号
k=elnext(k)!
令K等于下一个所选取单元号
*enddo
*do,i,1,Nelm
m1=nelem(P(i,1),1)
m2=nelem(P(i,1),2)
p(i,2)=qt2-(qt2-qt1)*ny(m1)/(h1+h2+h4)
p(i,3)=qt2-(qt2-qt1)*ny(m2)/(h1+h2+h4)
*enddo
*do,i,1,Nelm
sfbeam,P(i,1),1,pres,p(i,2),p(i,3)
*enddo
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
allsel,all
esel,s,real,,6
nsel,r,loc,x,-w1-nn
nsel,r,loc,y,0,h2
esln,r,1
!
!
!
!
!
!
!
*get,Nelm,elem,0,count!
读取所选取单元总数
*get,Emin,elem,0,num,min!
读取所选取单元中最小单元号
*dim,P,array,Nelm,3,1!
定义一个Nelm行3列的数组
!
数组第1列储存单元号
k=Emin!
令K等于所选取单元中最小单元号
*do,i,1,Nelm
P(i,1)=k!
保存当前单元号
k=elnext(k)!
令K等于下一个所选取单元号
*enddo
*do,i,1,Nelm
m1=nelem(P(i,1),1)
m2=nelem(P(i,1),2)
p(i,2)=qt3-(qt3-qt2)*ny(m1)/h2
p(i,3)=qt3-(qt3-qt2)*ny(m2)/h2
*enddo
*do,i,1,Nelm
sfbeam,P(i,1),1,pres,p(i,2),p(i,3)
*enddo
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
allsel,all
esel,s,real,,6
nsle,s
nsel,r,loc,x,-w1-nn
nsel,r,loc,y,-h3,0
esln,r,1
sfbeam,all,1,pres,qt3
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
右围护墙荷载
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
allsel,all
esel,s,real,,6
nsel,r,loc,x,w2+nn
nsel,r,loc,y,h2,h1+h2+h4
esln,r,1
!
!
!
!
!
!
!
*get,Nelm,elem,0,count!
读取所选取单元总数
*get,Emin,elem,0,num,min!
读取所选取单元中最小单元号
*dim,P,array,Nelm,3,1!
定义一个Nelm行3列的数组
!
数组第1列储存单元号
k=Emin!
令K等于所选取单元中最小单元号
*do,i,1,Nelm
P(i,1)=k!
保存当前单元号
k=elnext(k)!
令K等于下一个所选取单元号
*enddo
*do,i,1,Nelm
m1=nelem(P(i,1),1)
m2=nelem(P(i,1),2)
p(i,2)=qt2-(qt2-qt1)*ny(m1)/(h1+h2+h4)
p(i,3)=qt2-(qt2-qt1)*ny(m2)/(h1+h2+h4)
*enddo
*do,i,1,Nelm
sfbeam,P(i,1),1,pres,-p(i,2),-p(i,3)
*enddo
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
allsel,all
esel,s,real,,6
nsel,r,loc,x,w2+nn
nsel,r,loc,y,0,h2
esln,r,1
!
!
!
!
!
!
!
*get,Nelm,elem,0,count!
读取所选取单元总数
*get,Emin,elem,0,num,min!
读取所选取单元中最小单元号
*dim,P,array,Nelm,3,1!
定义一个Nelm行3列的数组
!
数组第1列储存单元号
k=Emin!
令K等于所选取单元中最小单元号
*do,i,1,Nelm
P(i,1)=k!
保存当前单元号
k=elnext(k)!
令K等于下一个所选取单元号
*enddo
*do,i,1,Nelm
m1=nelem(P(i,1),1)
m2=nelem(P(i,1),2)
p(i,2)=qt3-(qt3-qt2)*ny(m1)/h2
p(i,3)=qt3-(qt3-qt2)*ny(m2)/h2
*enddo
*do,i,1,Nelm
sfbeam,P(i,1),1,pres,-p(i,2),-p(i,3)
*enddo
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
allsel,all
esel,s,real,,6
nsle,s
nsel,r,loc,x,w2+nn
nsel,r,loc,y,-h3,0
esln,r,1
sfbeam,all,1,pres,-qt3
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
求解
NROPT,FULL,,!
采用全牛顿-拉普森法进行求解
Allsel!
选择所有内容
Outres,all,all!
输出所有内容
allsel,all
solve
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
进入后处理
/post1
allsel,all
esel,s,type,,1
/AUTO,1!
!
!
!
相当于fit
/post1
/pnum,node,0
/RGB,INDEX,100,100,100,0
/RGB,INDEX,80,80,80,13
/RGB,INDEX,60,60,60,14
/RGB,INDEX,0,0,0,15
/REPLOT
/COLOR,PBAK,OFF!
关闭背景颜色
allsel,all
!
选择梁单元
esel,s,type,,1
!
画变形结果图
/TITLE,deformdiagram
pldisp,1
!
保存为图片
!
/image,save,deform_1,jpg
Save!
保存数据
allsel
!
!
!
底板部分弹簧单元都是受拉,因此要去除受拉弹簧单元,并进行重新计算
Finish!
结束后处理器操作
/sol!
进入求解器
e