马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本人因为优化需要编写了一个简单的命令流文件,可是出现问题不知道怎么解决,求apdl高手帮助
finish
/clear,start !命名
/filname,ss
/title,hh
/prep7
!改变实常数
b=2
h=3 !确定宽度b和循环参数j的关系,自己确定,同样适用于h
*set,area,b*h
*set,izz,(b*(h**3))/12
et,1,beam3 !定义属性
r,1,area,izz,h
mp,ex,1,30e6
mp,prxy,1,0.3
mp,dens,1,7900
n,1, !建模
n,11,10
fill,1,11,9
e,1,2
egen,10,1,1
finish
/solu
d,1,all,0,,11,10
antype,3 !谐响应分析
harfrq,0,30000,
nsubst,10,
kbc,1
f,4,fy,-1000
solve
finish
/prep7
allsel,all
cdwrite,db,tt,cdb
nwrite,yy,txt !在默认路径建一个文件保存
*get,nnum,node,0,count
*dim,x2,array,2,nnum
*vread,x2(1,1),yy,txt,,nnum !目的是把节点的编号存在x2里
(f8.0)
/post26
!优化
nsol,2,2,u,y,uy_2
xvar,1
plvar,2
prvar,2
*GET,num_var,VARI,0, NSETS !得到变量长度并赋给ff
ff=num_var
*DIM,T_U,ARRAY,ff,4 ! 定义保存时间历程结果的矩阵T_U,有num_var行,4列
VGET,T_U(1,1,1),1 ! 矩阵的第一列保存第一个时间历程变量(默认为TIME)
*dim,num_t,array,1,4 !定义一个数组
*cfopen,file2,dat
*do,i,1,ff,1 !外循环
num_t(1,1)=T_U(i,1,1) !按次序取TIME值
!-------------------默认路径建dat文件
*VWRITE,num_t(1,1)
(E20.8)
/post1
*dim,nd,array,1,4
*do,j,1,nnum,1 !内循环
set,,i,,0,,,
a1=x2(1,j)
nd(1,1)=a1
nd(1,2)=uy(a1)
*vwrite,nd(1,1),nd(1,1) !数据为什么是零?
(E20.14)
*enddo
*enddo
*cfclos
ALLSEL,ALL
cdwrite,db,all,cdb |