- 积分
- 0
- 注册时间
- 2008-9-23
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2008-9-23 15:46:41
|
显示全部楼层
来自 合肥工业大学
方法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
以上两个命令流均经过调试通过。希望对大家建立模型有所帮助。里面有不恰当的地方还请多多指正,以期共同提高~ |
|