模拟简支梁上移动质量块-弹簧的作用求解出问题
求神解答:本人在做一个车桥耦合系统(移动荷载)的模拟,模拟简支梁上移动质量块-弹簧的作用。求解时出现如下问题,怎么回事呢?下面出现的问题和本人的命令流。error:Unable to open file file.r001. Unit 29 is already in use. Please send your date to your ansys technical Support Provider
命令流
/config,nres,30000
/PREP7
!model creation
l=20.0 !beam length
h=0.2 !higth
b=0.2 !wigth
EX0=200E9
PRXY0=0.3
DENS0=7850
IM=3*0.2*0.2*0.2*0.2/12
N0=400 !elements number
Nh=10 !number of ele along depth direction
v=2 !velocity is v m/s
F=1000 !load amplitude
l_e=l/N0 !length of each element
time_ele=(l/v)/N0 !time of each element
ET,1,BEAM3$R,1,0.04,IM,0.2 !difine the shell element
!material setting
MPTEMP,1,0
MPDATA,EX,1,,EX0
MPDATA,PRXY,1,,PRXY0
MPDATA,DENS,1,,DENS0
ET,2,mass21,,,4 !difine mass elenent
R,2,F/9.8 !difine mass real constant
KSTIF=1e9$ET,3,14,,,2$R,3,KSTIF !difine the stiffness element
!creat nodes
*DO, i, 1, N0+1
N,i,(i-1)*l_e
*ENDDO
!creat elements
TYPE,1$REAL,1$mat,1
*DO, i, 1, N0
EN,i, i, i+1 !creat beam element
*ENDDO
TYPE,2$REAL,2 !set the MASS element type 2
*DO, i, 1, N0+1
N,1000+i,(i-1)*l_e,0.05 !creat the mass nodes
EN,1000+i,1000+i !creat the mass elements
*ENDDO
TYPE,3$REAL,3 !set the stiffness type 3
*DO, i, 1, N0+1
EN,2000+i,i,1000+i !creat the stiffness elements
*ENDDO
!creat damage
!trans analysis type
!displacement seting
D,1, ,0, , , ,UX,UY, , , ,
D,N0+1, ,0, , , ,UX,UY, , , ,
finish
/SOLU$ANTYPE,4$NLGEOM,ON !open large deformation
NROPT,FULL$ACEL,,9.8 !Newton-Raphson full transient analysis,open gravity
ESEL,S,REAL,,2$EKILL,ALL$ALLSEl,ALL !KILL all the mass element
timint,off$time,1E-6 !close all the transient setting
NSUBST,2$KBC,1$solv
timint,on,all$OUTRES,all,all !open trans
!alphad,0.001 !a damp
!betad,0.0001 !beta damp
EALIVE,10001 !Activation the mass No.10001
time,time_ele
NSUBST, 5
kbc,1$AUTOTS,ON
SOLVE
*do,i,1,N0,1
EKILL,10000+i$EALIVE,10001+i
time,time_ele*(i+1) !time cordinate
NSUBST, 5 !sample frequence
kbc,1$AUTOTS,ON
solve
*enddo
finish
!result extract
/POST26
*DIM,dis,array,5000,2
*DIM,velo,array,5000,2
*DIM,accel,array,5000,2
NUMVAR,200
!store 2Nos results
*do,i,1,2,1
j=i+1
N=(N0+1)*Nh+i*N0*1/4
NSOL,j,N,U,Y !extract displacement signa,j is the name of viration, must j>2
NSOL,j+10,N,ACC,Y !extract acceleration signal
NSOL,j+30,N,VEL,Y
*enddo
!
!
!read the results
*do,j,2,3,1
VGET,dis(1,j-1),j
VGET,accel(1,j-1),j+10
VGET,velo(1,j-1),j+30
*enddo
!
*CFOPEN,1023dis0,TXT
*Vwrite,dis(1,1),dis(1,2)
(2F13.8,' ')
*CFCLOS
finish
*CFOPEN,1023acce0,TXT
*Vwrite,accel(1,1),accel(1,2)
(2F13.6,' ')
*CFCLOS
finish
*CFOPEN,1023velo0,TXT
*Vwrite,velo(1,1),velo(1,2)
(2F16.11,' ')
*CFCLOS
finish
是在最后写结果数组到文件时出的问题吗?
你的命令流最后部分,每写一个数组到文件,就接着一个 finish,可能太多了。试试看,去掉中间两个 finish,只保留最后一个 finish。
htbbzzg 发表于 2014-10-24 08:38
是在最后写结果数组到文件时出的问题吗?
你的命令流最后部分,每写一个数组到文件,就接着一个 finish, ...
不是这原因,试了还是一样 补充:错误里面是send your data,不是send your date ,写错了 本帖最后由 htbbzzg 于 2014-10-24 18:06 编辑
试了一下你的命令流,上面指出的地方也确实有问题,几个多余的 finish 需要删除,否则不能正确输出。不过这不是关键。
关键问题有两个:
首先,你在循环求解部分,杀死和激活的本应是质量单元,但是你使用的单元编号是错误的,不存在的单元编号,因而没有任何质量单元被杀死,所以质量单元一直处于激活状态,也就达不到移动载荷的目的。
无论对质量单元编号是否进行修改,试算你的命令流时都出现存在大量小主元的警告 (检查 output 窗口时可以看到 - 不知为什么,你没有提到),说明约束不足,求解若干步后提示有节点位移超过限制,不能继续求解。
对已计算完成的载荷步的结果进行显示,发现质量单元所在的节点都有较大位移,经检查命令流,发现原因是它们并没有附着在梁单元上,在你的命令流中,你对质量单元定义了新的节点,而不是直接将质量单元添加到梁的节点上,由于新添加的节点不在梁上 (位置在梁上,但是是独立节点),因此质量单元与梁没有关系,可以自由移动。
这两个问题修改后可以正常计算,但显示结果仍出问题,原因就是以前指出的,多了两个 finish 命令。
你先试试是否这些问题。如有新的问题再继续讨论。 htbbzzg 发表于 2014-10-24 18:04
试了一下你的命令流,上面指出的地方也确实有问题,几个多余的 finish 需要删除,否则不能正确输出。不 ...
谢谢高人指点,我修改试试看。有个问题:如果是把质量单元直接附在梁节点上,就不能体现弹簧的作用,我是要模拟质量单元通过弹簧单元连接梁节点来模拟耦合作用,所以有弹簧单元连接应该是和梁式一体的吧?指教 htbbzzg 发表于 2014-10-24 18:04
试了一下你的命令流,上面指出的地方也确实有问题,几个多余的 finish 需要删除,否则不能正确输出。不 ...
我从新定义了弹簧单元,把原来的弹簧单元改为1维的轴向作用单元,即ET,3,14,,2(原来是 ET,3,14,,,2,即为2维),能计算,但是提示弹簧单元两节点不重合,我又把质量单元从新定义与梁节点重合,弹簧单元还是梁节点和质量节点连接(其实这样弹簧长度为0,但帮助文件里提示1维弹簧两节点要重合), 再计算就又出现原来第一次一样的错误提示,请问你是不是直接把质量单元附在梁节点上,而弹簧忽略掉了的情况下计算能走通是吗?谢谢! 还有谁遇到同样的问题?这提示是什么原因造成的呢?急 给你一篇资料看看吧。
htbbzzg 发表于 2014-10-27 08:50
给你一篇资料看看吧。
谢谢老兄,这个我也看到过,研究完还是解决不了,继续弄 对于你的情况,应该设置 combin14 单元类型的 seyopt(2) 为 1~6 中的某一个值 - 根据弹簧的方向来确定重合节点之间的弹簧单元,然后定义两个重合节点,并定义一个连接该两个重合节点的弹簧单元。
你的命令流中,梁上的节点和质量单元的节点是一对一对重合的,那么你只要在每一对重合节点之间定义一个 combin14 单元即可,只是要根据两个节点的连接方向选择不同 keyopt(2) 的 combin14 单元类型。
注意:当设置seyopt(2) 为 1~6 时,弹簧单元的两个节点必须是重合节点;如果设置seyopt(2) 为 0,那么弹簧单元的方向是由两个节点 的连线方向决定的,这时,两个节点就不能重合,否则会报错。 本帖最后由 huazi071783 于 2014-10-27 22:32 编辑
ET,3,14,,2$R,3,KSTIF !difine the stiffness element
弹簧单元keyopt(2)选择为2,即1维单元,质量单元节点和梁上对应的节点重合,重合的两点建立弹簧单元,应该没问题啊?!!
本帖最后由 huazi071783 于 2014-10-27 22:30 编辑
htbbzzg 发表于 2014-10-27 16:13
对于你的情况,应该设置 combin14 单元类型的 seyopt(2) 为 1~6 中的某一个值 - 根据弹簧的方向来确定重 ...
keyopt(2)=1是代表x方向作用,=2时是y方向,=3是z中方向,=4、5、6是表示扭转。 是的。注意两个节点必须是重合节点,否则会报错。 已经解决了
页:
[1]