马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
方法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单元为钢束面积、以及钢束的初始应变(除模拟预应力张拉还会用于应力刚度矩阵的计算)
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)
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 !通过扫掠网格的方法来用单元填充体
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 !选择所有节点
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,
*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
转自:http://blog.sina.com.cn/s/blog_5ffd41cf0100qbes.html |