金塘大桥竖向预应力ansys建模心得一、坐标首先在建模之前把截面的各关键点(视分块而定)坐标找出,以及纵向的分段,将坐标单独做成ansys的矩阵形式,以便以后类似的桥继续使用。*dim,x,array,8,4! 第1排节点x 第2排节点x 第3排节点x 第4排节点xx(1,1)=-0.00 $ x(1,2)=-0.00 $ x(1,3)=-0.00 $ x(1,4)=-0.00x(2,1)=-0.45 $ x(2,2)=-0.45 $ x(2,3)=-1.35 $ x(2,4)=-1.35
金塘大桥竖向预应力ansys建模心得
一、坐标
首先在建模之前把截面的各关键点(视分块而定)坐标找出,以及纵向的分段,将坐标单独做成ansys的矩阵形式,以便以后类似的桥继续使用。
*dim,x,array,8,4
! 第1排节点x 第2排节点x 第3排节点x 第4排节点x
x(1,1)=-0.00 $ x(1,2)=-0.00 $ x(1,3)=-0.00 $ x(1,4)=-0.00
x(2,1)=-0.45 $ x(2,2)=-0.45 $ x(2,3)=-1.35 $ x(2,4)=-1.35
x(3,1)=-1.15 $ x(3,2)=-1.15 $ x(3,3)=-2.35 $ x(3,4)=-2.35
x(4,1)=-2.35 $ x(4,2)=-2.35 $ x(4,3)=-2.75 $ x(4,4)=-2.75
x(5,1)=-2.75 $ x(5,2)=-2.75 $ x(5,3)=-3.15 $ x(5,4)=-3.15
x(6,1)=-3.15 $ x(6,2)=-3.15 $ x(6,3)=0 $ x(6,4)=0
x(7,1)=-4.35 $ x(7,2)=-4.35 $ x(7,3)=0 $ x(7,4)=0
x(8,1)=-6.15 $ x(8,2)=-6.15 $ x(8,3)=0 $ x(8,4)=0
!纵向分段
*dim,y,array,19
y(1) =0
y(2) =0.5
y(3) =1
y(4) =1.5
y(5) =2
y(6) =2.5
y(7) =3
y(8) =3.5
y(9) =4
y(10)=4.5
y(11)=5
y(12)=5.5
y(13)=6
y(14)=6.5
y(15)=7
y(16)=7.5
y(17)=8
y(18)=8.5
y(19)=9
*dim,z,array,8,4
!sec207的z坐标
! 第1排节点z 第2排节点z 第3排节点z 第4排节点z
z(1,1)=0.000 $ z(1,2)=-0.310 $ z(1,3)=-8.417 $ z(1,4)=-9.264
z(2,1)=0.009 $ z(2,2)=-0.301 $ z(2,3)=-8.417 $ z(2,4)=-9.264
z(3,1)=0.023 $ z(3,2)=-0.377 $ z(3,3)=-8.117 $ z(3,4)=-9.264
z(4,1)=0.047 $ z(4,2)=-0.753 $ z(4,3)=-8.117 $ z(4,4)=-9.264
z(5,1)=0.055 $ z(5,2)=-0.745 $ z(5,3)=-8.117 $ z(5,4)=-9.264
z(6,1)=0.063 $ z(6,2)=-0.737 $ z(6,3)=0 $ z(6,4)=0
z(7,1)=0.087 $ z(7,2)=-0.313 $ z(7,3)=0 $ z(7,4)=0
z(8,1)=0.123 $ z(8,2)=-0.077 $ z(8,3)=0 $ z(8,4)=0
附件是模型的命令流文件
2楼
二、节点标号
节点编号要明确,如在断面内将各排节点分开编号,第一排从1-9,第二排从11-19,或第一排从101-199,第二排从201-299(若节点较多时),在纵向分段时编号宜大,如第一个断面从1000开始,第二个为2000,以此类推,这样在建模时就能方便的找到你想要的节点,而且对后面的用点连接成体也方便,因为用点连体必须为同时顺时针或逆时针,如果点编号之间有固定的差值,那建体时就方便建立循环。
!定义节点
!生成第1排节点
!i-y,j-x,z
*DO,I,1,19
*do,j,1,8
K,1000*I+j,x(j,1),y(i),z(j,1)
*enddo
*enddo
!生成第2排节点
!i-y,j-x,z
*DO,I,1,19
*do,j,11,18
K,1000*I+j,x((j-10),2),y(i),z((j-10),2)
*enddo
*enddo
!生成第3排节点
!i-y,j-x,z
*DO,I,1,19
*do,j,21,25
K,1000*I+j,x((j-20),3),y(i),z((j-20),3)+a*((i-1)/2)**1.6
*enddo
*enddo
!生成第4排节点
!i-y,j-x,z
*DO,I,1,19
*do,j,31,35
K,1000*I+j,x((j-30),4),y(i),z((j-30),4)+a*((i-1)/2)**1.6
*enddo
*enddo
!生成箱梁体
MAT,2
TYPE,1
*DO,I,1,nsec
PP=I*1000
PD=(I+1)*1000
*DO,J,1,7
v,PP+J,PP+J+1,PP+J+11,PP+J+10,PD+J,PD+J+1,PD+J+11,PD+J+10
*ENDDO
*DO,J,14,15
v,PP+J,PP+J+1,PP+J+10,PP+J+9,PD+J,PD+J+1,PD+J+10,PD+J+9
*ENDDO
*DO,J,21,24
v,PP+J,PP+J+1,PP+J+11,PP+J+10,PD+J,PD+J+1,PD+J+11,PD+J+10
*ENDDO
*ENDDO
回复
3楼
三、组的应用(cm,….)
Ansys里建模时提供了分组功能,就是你可以把一些点线面体分成各种组,方便调用,因为ansys里编号有的时候会变乱,如布尔运算之后,有了组你就可以找到你想要的东西,而且组与组之间还可进行操作运算,不必再去一个一个选,但要注意,布尔运算后组往往会被删除,这时你就需要重新定义。有时候你新建了一些东西,但要用时又不知道它们的编号,那就可以在建立这些元素前先把已经建好的东西定义为一个临时组,建好新的元素后,将临时组unselect掉,那就可以选出最新建立的元素了。
allsel,all !选择全部
cm,atemp,area !将所有面建立临时面组
cm,vjieduan,volu !将所有体建立临时体组
kwpave,1004 !工作平面移动到关键点1004
wpoff,-0.25 !工作平面移动-25cm(X)
wpoff,0,0.35,0.5
*do,i,1,18
cyl4,0,0,0.0255
wpoff,0,0.5
*enddo
kwpave,1006 !工作平面移动到关键点1006
wpoff,0.25 !工作平面移动-25cm(X)
wpoff,0,0.35,0.5
*do,i,1,18
cyl4,0,0,0.0255
wpoff,0,0.5
*enddo
allsel,all !选择全部
cmsel,u,atemp !不选临时组
cm,ashu,area !建立新的元素组
VEXT,ALL, , ,0,0,-15
allsel,all
cmsel,u,vjieduan !不选临时体组
cm,kd,volu ! 建立新的体元素组
allsel,all
vsbv,vjieduan,kd !组与组的布尔运算
cmdele,vjieduan !删除组
allsel,all
numcmp,volu
allsel,all
cm,vjieduan,volu !重新定义组
allsel,all
回复
4楼
四、关于网格划分
对于一些比较复杂的实体模型,如中间有圆孔,或带圆弧的体,划分时有可能出错,出错的原因主要时尺寸不匹配,其实只要注意到一些细节问题就可以解决,比如:在ansys里面,一个圆应该由四段圆弧组成,划分时ansys会自动根据尺寸将其划分,但有时候生成的圆只有两段圆弧,比如你首先生成一个圆柱体(用cylind或cyl4命令生成),这时它的上下面的圆还是由四段圆弧组成,但如果从中间将体切开,,中间由生成一个圆,此时你会发现新生成的圆只有两段圆弧,这是尺寸就会不匹配,划分网格时会提示该段圆弧只有两个element,不能划分,虽然可以将圆弧手动定义尺寸,让它划分为4段,但当这样的圆弧太多时,那就很不方便了,有的你还会漏掉,导致老是划分不了。或者用智能划分,但这样作出来的单元太多,求解速度慢,我以前做过的一个模型,智能划分了一百多万各单元,都不敢再算了。有一个解决办法就是生成圆柱体的方法变换一下,利用圆面拉伸(VEXT,ALL, , ,0,0,-15)成为圆柱体,这样无论怎么切所生成的圆都是由4段圆弧组成,划分网格时不再出错。
还有在网格划分之前最好就先把各组的属性定义好,划分时按组来划分(主要适用与命令流操作方式)
cmsel,s,yyl
vatt,1,1,1
cmsel,s,vjieduan
vatt,2,2,1
cmsel,s,vsai
vatt,3,3,1
allsel,all
划分网格时若要映射划分和自由划分混合使用时,一定要先映射,若果先自由划分,映射划分往往会尺寸接不上,导致无法划分。
!划分网格
!划分预应力筋和锚塞
allsel,all
cmsel,s,yyl
cmsel,a,vsai
esize,0.16
mshape,1,3d !将体划分单元的形状定位tri
mshkey,0 !采用free划分器
vmesh,all
!划分顶板翼板底板
allsel,all
cmsel,s,other
esize,0.55 !定义网分时边长控制
mshape,0,3d !将体划分单元的形状定位tri
mshkey,1 !采用mapped划分器
vmesh,all !对other进行划分单元
!划分腹板
allsel,all
cmsel,s,fb
esize,0.20 !定义网分时边长控制
mshape,1,3d !将体划分单元的形状定位tri
mshkey,0 !采用free划分器
vmesh,all
回复
5楼
五、关于选择集的应用
选择在前面已经提到,其实在ansys里选择用得时比较频繁的,灵活的应用选择能达到事半功倍的效果。Ansys里面选择的方式很多,由根据编号(名称)、坐标位置、属性等,有的时候这些方法需要交叉起来用,比如先应用某种方法选出来,但选多了,那就用另外一种方法unselect,如:
allsel,all
vsel,s,loc,z,-2,-6
cmsel,u,vjieduan
cm,yyl,volu
allsel,all
cmsel,u,vjieduan
cmsel,u,yyl
cm,vsai,volu
allsel,all
cmdele,vtemp
关于属性选择方式需要预先定义元素的属性,即在建立元素前先声明材料属性,
mat,1
type,1…………..
这样就可以根据属性来选择了:vsel,s,mat,,2,3
六、说在最后
有时一个ansys模型的命令流很多,若全部放在一起会看的头晕眼花,可以将一些东西放到另外的文件里面,如坐标文件,网格划分等,建模用单独的文件,需要时将其他文件用/input命令到如就可以了。对于划分单元很多的模型,在求解之前最好先将节点单元编号压缩整理一下,这样可以节约一点求解时间,最好在求解的前一步,不要在建模时,因为建模时你还有可能用到节点编号。
Ansys是一个功能强大的有限元软件,以上只是一小部分的内容,有很多功能还需要仔细的研究,在学习过程中逐渐掌握ansys,为我们的工程计算带来更多的方便。
回复
6楼
楼主建模时,规划的很不错。有个问题,实体一旦进行布尔操作,由于编号的重排,以前的编组就没有用了。
重分组的话,好像除了通过坐标选择,没什么较好的方法了,不知楼主是如何处理的。
回复
7楼
好东西!谢谢分享!
回复