搜索
您的当前位置:首页正文

地下车站双层框架结构内力计算ansys命令流

来源:小奈知识网
! 双层两跨框架结构 ! 建模 finish /clear

/title,nan hu da dao zhan

几何参数设置(根据工程修改) ! 顶板厚度 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 !数组第1列储存单元号

k=Emin *do,i,1,Nelm P(i,1)=k k=elnext(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) !读取所选取单元总数

!读取所选取单元中最小单元号 定义一个Nelm行3列的数组 !令K等于所选取单元中最小单元号 !保存当前单元号

!令K等于下一个所选取单元号 !

*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 !数组第1列储存单元号

k=Emin *do,i,1,Nelm P(i,1)=k k=elnext(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

!读取所选取单元总数

!读取所选取单元中最小单元号 定义一个Nelm行3列的数组 !令K等于所选取单元中最小单元号 !保存当前单元号

!令K等于下一个所选取单元号 ! 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 !数组第1列储存单元号

k=Emin *do,i,1,Nelm P(i,1)=k k=elnext(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 !数组第1列储存单元号

!读取所选取单元总数

!读取所选取单元中最小单元号 定义一个Nelm行3列的数组 !令K等于所选取单元中最小单元号 !保存当前单元号

!令K等于下一个所选取单元号 !读取所选取单元总数

!读取所选取单元中最小单元号 定义一个Nelm行3列的数组 ! !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,deform diagram pldisp,1

! 保存为图片

!/image,save,deform_1,jpg

Save !保存数据 allsel

底板部分弹簧单元都是受拉,因此要去除受拉弹簧单元,并进行重新计算 Finish !结束后处理器操作 /sol !进入求解器

ekill,129 !进入求解器(根据每个工程杀死的单元不同) ekill,131 ekill,132 ekill,133 ekill,134 ekill,135 ekill,136 ekill,140 ekill,144 ekill,145 ekill,146 ekill,147 ekill,148 ekill,149 SAVE

ESEL,S,LIVE 只显示活着的单元 EPLOT

重新求解。

Allsel !选择所有内容 Solve !求解计算 Finish !求解结束返回Main Menu 主菜单

/post1 allsel,all esel,s,type,,1

/AUTO,1 相当于fit /post1

allsel,all

! 选择梁单元 esel,s,type,,1 ! 画变形结果图

/TITLE,deform diagram pldisp,1

! 保存为图片

!/image,save,deform_1,jpg

建立单元表

etable,imoment,smisc,6 etable,jmoment,smisc,12 etable,ishear,smisc,2 etable,jshear,smisc,8 etable,iforce,smisc,1 etable,jforce,smisc,7 !更新单元表 ETABLE,REFL !画弯矩分布图

/TITLE,Bending moment diagram plls,imoment,jmoment,-1

/image,save,Bending_moment_1,jpg ! 画剪力分布图

/TITLE,Shearing force diagram plls,ishear,jshear,-1

/image,save,Shearing_force_1,jpg ! 画轴力分布图

/TITLE,Axial force diagram plls,iforce,jforce

/image,save,Axial_force_1,jpg ! 弹簧单元轴力图 /post1 alls

esel,s,real,,7 etable,f,smisc,1 ETABLE,REFL pretab,f

因篇幅问题不能全部显示,请点此查看更多更全内容

Top