首页/ 数值模拟/ 文章
数值模拟

组合结构的模型建立

    这两天很忙,自己却不清楚在忙什么,莫非这就是传说中的“穷忙一族”吧。比如今天搞了一晚上才弄好的这个新皮肤,颇为缺乏成就感,或许这就是生活的一部分吧……

    闲话不说了,趁着休息之前,给大家共享一个我本科毕业论文做的命令流。我的课题是《钢竹组合结构墙体的力学性能分析》,在这里对于这两种材料我就不多说了——或者改日做个专题,今天实在是太困了~其中,我认为比较精华的部分是节点耦合的部分,想想第一次做的时候竟然用人工的方法去找点,那真是一件可怕的事情。不过今天分享出来的不存在这样的问题,用了一个排序的算法,只需要选中目标节点就可以了,至于节点编号的选取等接下来的一系列操作交给程序自己完成去好了。

    下面是建模+约束部分的命令。

/prep7

!材料属性 
ET,1,solid45
ET,2,shell63
MPTEMP,,,,,,,, 
MPTEMP,1,0 
MPDATA,EX,1,,1.2e7
MPDATA,PRXY,1,,0.46
MPTEMP,,,,,,,, 
MPTEMP,1,0 
MPDATA,EX,2,,2.1e8 
MPDATA,PRXY,2,,0.3 
R,2,0.8, , , , , ,

!型钢
k,1,0,0,10.5
k,2,20,0,36
k,3,55,0,36
k,4,82.5,0,1
k,5,117.5,0,1
k,6,145,0,36

kgen,9,3,6,1,125,0,0,4

k,39,1180,0,36
k,40,1200,0,10.5

*do,ii,1,39,1
 l,ii,ii+1
*enddo

k,41,0,1400,10.5
l,1,41
FLST,2,39,4,ORDE,2 
FITEM,2,1  
FITEM,2,-39
ADRAG,P51X, , , , , ,      40  
ldele,40
kdele,41
aplot

!型钢网格划分
TYPE,2  
MAT,2
REAL,2  
ESYS,0  
SECNUM,
lsel,s,loc,y,0
LESIZE,all,,,1,,,,,1
LSEL,INVE
LESIZE,all,50
allsel
asel,all
amesh,all

!竹板
k,82,0,0,0
k,83,20,0,0
k,84,55,0,0
k,85,82.5,0,0
k,86,117.5,0,0
k,87,145,0,0

kgen,9,84,87,1,125,0,0,4

k,120,1180,0,0
k,121,1200,0,0

*do,a,82,120,1
 l,a,a+1
*enddo

k,122,0,1400,0
l,82,122
FLST,2,39,4,ORDE,3 
FITEM,2,40 
FITEM,2,120
FITEM,2,-157
ADRAG,P51X, , , , , ,     158 
ldele,158
kdele,122

allsel
asel,s,loc,z,0
aplot
vext,all,,,0,0,-8

!网格划分
TYPE,1  
MAT,1
ESYS,0
allsel
lsel,s,loc,z,0
lsel,r,loc,y,0
LESIZE,all,,,1,,,,,1

allsel
lsel,s,loc,z,-8
lsel,r,loc,y,0
LESIZE,all,,,1,,,,,1

allsel
lsel,s,loc,z,0
lsel,r,loc,y,1400
LESIZE,all,,,1,,,,,1

allsel
lsel,s,loc,z,-8
lsel,r,loc,y,1400
LESIZE,all,,,1,,,,,1

allsel
lesize,244,,,1,1
lesize,241,,,1,1
lesize,433,,,1,1
lesize,434,,,1,1

allsel
lsel,s,loc,z,0
lsel,u,loc,y,0
lsel,u,loc,y,1400
LESIZE,all,50

allsel
lsel,s,loc,z,-8
lsel,u,loc,y,0
lsel,u,loc,y,1400
LESIZE,all,50
vmesh,1,39,1
vgen,2,1,39,1,0,0,45,

!节点耦合
allsel
nsel,s,loc,z,1
nsel,a,loc,z,36
*get,max1,node,0,count  !取得节点数目
*dim,steel,,max1 !定义“节点数”长度的数组
*get,nod1,node,0,num,min !最小节点编号定义给nod1
steel(1)=nod1 !数组第一个位置是最小节点的编号
*do,i,2,max1
steel(i)=ndnext(steel(i-1))
*enddo
allsel
nsel,all
allsel
nsel,all
jj=1
*do,i,1,max1
cp,jj,ux,steel(i),nnear(steel(i))
cp,jj+1,uy,steel(i),nnear(steel(i))
cp,jj+2,uz,steel(i),nnear(steel(i))
jj=jj+3
*enddo

!施加约束
allsel
nsel,s,loc,y,0
nsel,r,loc,z,-8
d,all,all,
allsel

nsel,s,loc,y,0
nsel,r,loc,z,45
d,all,all,
allsel
eplot

    最后要说明一下,考虑到可能涉及到的版权问题(命令是我原创的,但具体参数是要通过学校试验确定的),所以这里用到的材料属性都是在手册或者网络上查到的,而且没有包括加载(低周反复荷载)的部分。

 

       

按 ESC 关闭 · 输入关键词回车搜索