非常感谢雨人热心奉献!
还得请教雨人版主,我计算摩擦滑移隔震结构,要考虑竖向地震作用对水平地震反应的影响,弹簧单元模拟支座。时程分析过程中每步都要改变弹簧参数,不知如何实现?仿照雨人版主的例子,程序如下,但报错:1.COMBIN40 element 1 real constant has changed value. 2.*create can't be used within a *do loop.
程序如下:
fini
/clear
*set,number,10
*set,dt,0.01
*dim,accel,,number
*vread,accel(1),wave,dat
(f15.5)
*dim,tim,,number
*vfill,tim(1),ramp,dt,dt
*dim,FSLIDE,,number,1,1
FSLIDE(1)=6.0E-3,
/prep7
ET,1,COMBIN40
KEYOPT,1,3,2
KEYOPT,1,6,2
R,1,1.0,,2.0e-2,,FSLIDE(1),1.0E-1
N,1,0,0,0,
N,2,0,-0.01,0,
E,1,2
D,1,all,
allsel,all
fini
*dim,U_2,,number,1,1
*dim,ss1,,number,1,1
*dim,ss2,,number,1,1
*dim,ss4,,number,1,1
*dim,force,,number,1,1
i=1
/solu
antype,trans
nropt,full,,off
OUTPR,all,none
OUTRES,all,last
LNSRCH,ON
AUTOTS,ON
DELTIM,0.01,0.01,0.01,ON
KBC,0
ALPHAD,0.38
BETAD,0.006
TIMINT,ON
TINTP,0.005, , ,1,0.5,0
ACEL,0,accel(i),0
TIME,tim(i)
solve
*get,U_2(i),node,2,u,y
*get,ss1(i),elem,1,smisc,1
*get,ss2(i),elem,1,smisc,2
*get,ss4(i),elem,1,nmisc,4
fini
*do,i,2,number,1
/post1
FSLIDE(i)=6.0E-3+U_2(i-1)/10
fini
*create,outp_data
*cfopen,'inpu_ex','',''
*vwrite,FSLIDE(1)
(f14.6)
*cfclos
*end
/input,outp_data
fini
/solu
antype,,rest,,,
*dim,FSLIDE,,number,1,1
*create,read_data
*vread,FSLIDE(1),inpu_ex
(f14.6)
*end
/input,read_data
R,1,1.0,,2.0e-2,,FSLIDE(i),1.0E-1
nropt,full,,off
OUTPR,all,none
OUTRES,ALL,NONE
OUTRES,all,last
LNSRCH,ON
AUTOTS,ON
DELTIM,0.01,0.01,0.01,ON
KBC,0
ALPHAD,0.3805
BETAD,0.006312
TIMINT,ON
TINTP,0.005, , ,1,0.5,0
ACEL,0,accel(i),0
TIME,tim(i)
solve
*get,U_2(i),node,2,u,y
*get,ss1(i),elem,1,smisc,1
*get,ss2(i),elem,1,smisc,2
*get,ss4(i),elem,1,nmisc,4
fini
*enddo
/post26
*cfopen,U_2,dat,
*vwrite,U_2(1)
(e14.6)
*cfclos
*VOPER,force(1),ss1(1),ADD,ss2(1)
*CFOPEN,spring,dat,
*VWRITE,ss4(1),force(1)
(e16.6,e16.6)
*CFCLOS
save
fini |