您的位置:网站首页 > Ansys教程

ANSYS模拟预应力钢束的两种方法

时间:2011-04-11 08:44:13 来源:未知

方法1:通过体分割的办法建立预应力钢束,然后通过定义降温荷载来模拟预应力效应。这种方法在张立明编的《ALGOR、ANSYS在桥梁工程中的应用方法与实例》中有一个算例。
命令流如下:
/prep7  
/title,the analysis of the solid beam and prestressed tendon
/DIST,1,1.08222638492,1
/REP,FAST   
*SET,egjx,2e11  
*SET,agjx,60e-4
*SET,ehnt,3.5e10
*SET,xzxs,1.2e-5
*SET,yjl,200000
et,1,link8  
et,2,solid95
r,1,agjx
r,2
mp,ex,1,egjx
mp,prxy,1,0.3   
mp,dens,1,7800  
mp,dens,2,2500  
mp,alpx,1,xzxs  
mp,ex,2,ehnt
mp,prxy,2,0.3   
blc4,,,1,2,30   
/VIEW,1,1,1,1   
/ANG,1  
/AUTO,1
/REP,FAST   
klist,all   
kwpave,6
wpoff,-0.3  
wprot,0,0,90
vsbw,1  
wpoff,0,0,-0.4  
vsbw,2  
wpoff,0,0.4
wprot,0,90  
vsbw,all
wpstyl  
nummrg,all,,,,low   
numcmp,all  
esize,0.3   
klist,all   
llist,all   
lsel,s,,,28,38,10   
latt,1,1,1  
lmesh,all   
allsel,all  
gplot   
vsel,s,,,all
vatt,2,2,2  
mshape,0,3d
mshkey,1
vmesh,all   
finish  
/solu   
dl,3,,all   
dl,16,,all  
dl,23,,all  
dl,2,,uy
dl,15,,uy   
dl,22,,uy   
/AUTO,1
/REP,FAST   
bfl,28,temp,-yjl/(xzxs*egjx*agjx)   
bfl,38,temp,-yjl/(xzxs*egjx*agjx)   
allsel  
acel,,9.8   
solve   
finish  
/post1  
pldisp  
plnsol,s,1

方法二:体线独立耦合法建立预应力钢束
命令流如下,并附有命令说明:
/prep7  
*SET,eg,2e5    !钢束弹模
*SET,ag,140    !钢束面积
*SET,eh,4e4    !混凝土的弹模
*SET,r0,9345   !曲线钢束的半径   
*SET,yyl,200000  !钢束的预应力大小
et,1,link8       !定于预应力钢束单元类型为link8
et,2,solid95     !定义混凝土单元类型为solid95
r,1,ag,yyl/eg/ag*1.036258     !定义单元实常数,对于link8单元为钢束面积、以及钢束的初始应变(除模拟预应力张拉还会用于应力刚度矩阵的计算) #p#分页标题#e#  
r,2              !solid95的单元实常数仅为x轴的调整,并且该实常数仅仅在单元坐标系统选择为1的时候填写。一般不填。
mp,ex,1,eg       !预应力钢束单元性质,包括之前定义的弹模,泊松比
mp,prxy,1,0.3   
mp,ex,2,eh       !混凝土单元性质,包括弹模、泊松比  
mp,prxy,2,0.2   
blc4,,,100,200,3000   !定义长方体的长宽高(混凝土块体)
/view,1,1,1,1         !调整观察的角度   
/ang,1  
vplot                 !显示选择的体  
ksel,all              !选择所有的关键点
klist
*get,kp0,kp,0,num,max !将最大的kp编号存于kp0中,因为事先不知道最大的关键点号是多少,所以先要存在kp0中  
lsel,none             !不选择所有的线
llist   
k,kp0+1,50,160        !定义关键点,kp0是已有的最大关键点编号。
k,kp0+2,50,160,3000
k,kp0+3,50,800,1500
larc,kp0+1,kp0+2,kp0+3,r0      !将定义的以上三点连成一条圆弧,半径为r0。kp0+3用于定义圆弧所在面及曲线边中点  
kdele,kp0+3                    !删除kp0+3这个关键点
klist
llist
*get,line1,line,0,num,min      !将最小的线编号存于line1中,因为line1是最先定义的预应力钢束   
lsel,s,loc,z,0                 !选择z、y坐标均为0的线,用于施加约束(该线为右侧截面的梁底线)
lsel,r,loc,y,0  
dl,all,,uy                     !对线施加y方向的约束  
lsel,s,loc,z,3000              !选择左侧截面梁底线(即z=3000,而y=0的线)   
lsel,r,loc,y,0  
dl,all,,all                    !对选择的线施加约束(UX、UY、UZ)#p#分页标题#e#
allsel,all                     !选择所有对象  
lsel,s,,,line1                 !选择线,最小值line1  
latt,1,1,1                     !将单元性质与选择的、尚未网格化的线联系起来  
lesize,all,,,50                !线单元划分的数目
lmesh,all                      !对line1进行分网   
vsel,all                       !选择所有的体
vlist
vatt,2,2,2                     !给体赋予相应的属性(混凝土)  
lsel,s,loc,z,0                 !选择z=0,而y坐标从10到140范围内的所有的线  
lsel,r,loc,y,10,140
lesize,all,,,8                 !分网数目8  
lsel,s,loc,z,0                 !再次选择z=0,而不选y坐标从10到140范围内的所有线  
lsel,u,loc,y,10,140
lesize,all,,,4                 !分网数目为4  
lsel,s,loc,y,0                 !选择x=0、y=0坐标处的线(仅有一根线被选中)注意这根线是一根分网的扫掠线。
lsel,r,loc,x,0  
lesize,all,,,50                !分网数目为50
vsweep,all                #p#分页标题#e#     !通过扫掠网格的方法来用单元填充体                       
allsel,all                     !选择所有的对象  
lsel,s,,,line1                 !选择line1最小值(预应力钢绞线)  
nsll,s,1                       !选择与所选择的线对应的所有的节点,即钢绞线上面的节点,因为网格数为50,所以节点总数为51
cm,cmljnod,node                !将钢绞线节点编组,其组名为cmljnod
*get,max1,node,0,count         !选择钢绞线中的节点单元数目,将其赋给变量max1,此变量可以作为*do循环的上界来确定循环的次数  
*dim,ojd,,max1                 !定义数组序列。数组名为ojd,max1为行的范围  
*dim,jd,,max1                  !定义数组序列。数组名为jd,max1为行的范围   
*get,nod1,node,0,num,min       !选择集中最小的节点号,赋给变量nod1,作为*do循环的上界
*SET,ojd(1),nod1               !将nod1的值赋给ojd(1)
*do,i,2,max1                   !do循环,从2到max1
*SET,ojd(i),ndnext(ojd(i-1))   !将ndnext(ojd(i-1))赋给ojd(i)
*enddo                         !结束循环  
allsel,all                     !选择所有  
nsel,all                     #p#分页标题#e#  !选择所有节点
cmsel,u,cmljnod                !不选择cmljnod,即钢绞线对应的节点
*do,i,1,max1                   !i从1循环开始到max1
*SET,nod1,ojd(i)               !将ojd(i)赋给nod1
*SET,j,nnear(nod1)             !将nnear(nod1)赋给j,是指ojdi邻近的节点吗?nnear()是一个函数,表示选择最近的节点。  
*SET,jd(i),j                   !将j赋给jd(i)
*enddo                         !结束循环  
nsel,all                       !选择所有节点
*SET,ji,1                      !将1赋给ji   
*do,i,1,max1                   !i从1到max1
cp,ji,ux,ojd(i),jd(i)          !定义耦合自由度,ji只是随机设置的耦合编号。ux为耦合节点的x方向的位移。  
cp,ji+1,uy,ojd(i),jd(i)
cp,ji+2,uz,ojd(i),jd(i)
*SET,ji,ji+3                   !ji+3赋给ji
*enddo                         !结束循环
allsel,all                     !选择所有单元
*SET,ji,                       !将所有的参数删除(第三项value为空格时标识删除)
*SET,i,
*SET,max1,  
*SET,nod1,  
*SET,ojd,   #p#分页标题#e#
*SET,jd,
*SET,j,
*SET,ag,
*SET,eg,
*SET,eh,
*SET,kp0,   
*SET,r0,
*SET,yyl,   
*SET,line1,
finish                          !建模结束,进入求解
/solu
allsel,all
acel,,9.8                       !考虑自重   
solve   
FINISH  
/POST1                          !进入后处理  
pldisp,1
etable,sigi,ls,1
plls,sigi,sigi,1
plnsol,s,1