huazi071783 发表于 2014-10-23 16:45

模拟简支梁上移动质量块-弹簧的作用求解出问题

求神解答:本人在做一个车桥耦合系统(移动荷载)的模拟,模拟简支梁上移动质量块-弹簧的作用。求解时出现如下问题,怎么回事呢?下面出现的问题和本人的命令流。
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

htbbzzg 发表于 2014-10-24 08:38

是在最后写结果数组到文件时出的问题吗?
你的命令流最后部分,每写一个数组到文件,就接着一个 finish,可能太多了。试试看,去掉中间两个 finish,只保留最后一个 finish。

huazi071783 发表于 2014-10-24 14:37

htbbzzg 发表于 2014-10-24 08:38
是在最后写结果数组到文件时出的问题吗?
你的命令流最后部分,每写一个数组到文件,就接着一个 finish, ...

不是这原因,试了还是一样

huazi071783 发表于 2014-10-24 16:38

补充:错误里面是send your data,不是send your date ,写错了

htbbzzg 发表于 2014-10-24 18:04

本帖最后由 htbbzzg 于 2014-10-24 18:06 编辑

   试了一下你的命令流,上面指出的地方也确实有问题,几个多余的 finish 需要删除,否则不能正确输出。不过这不是关键。
    关键问题有两个:
    首先,你在循环求解部分,杀死和激活的本应是质量单元,但是你使用的单元编号是错误的,不存在的单元编号,因而没有任何质量单元被杀死,所以质量单元一直处于激活状态,也就达不到移动载荷的目的。
    无论对质量单元编号是否进行修改,试算你的命令流时都出现存在大量小主元的警告 (检查 output 窗口时可以看到 - 不知为什么,你没有提到),说明约束不足,求解若干步后提示有节点位移超过限制,不能继续求解。
   对已计算完成的载荷步的结果进行显示,发现质量单元所在的节点都有较大位移,经检查命令流,发现原因是它们并没有附着在梁单元上,在你的命令流中,你对质量单元定义了新的节点,而不是直接将质量单元添加到梁的节点上,由于新添加的节点不在梁上 (位置在梁上,但是是独立节点),因此质量单元与梁没有关系,可以自由移动。
    这两个问题修改后可以正常计算,但显示结果仍出问题,原因就是以前指出的,多了两个 finish 命令。
    你先试试是否这些问题。如有新的问题再继续讨论。

huazi071783 发表于 2014-10-25 10:28

htbbzzg 发表于 2014-10-24 18:04
试了一下你的命令流,上面指出的地方也确实有问题,几个多余的 finish 需要删除,否则不能正确输出。不 ...

谢谢高人指点,我修改试试看。有个问题:如果是把质量单元直接附在梁节点上,就不能体现弹簧的作用,我是要模拟质量单元通过弹簧单元连接梁节点来模拟耦合作用,所以有弹簧单元连接应该是和梁式一体的吧?指教

huazi071783 发表于 2014-10-25 21:58

htbbzzg 发表于 2014-10-24 18:04
试了一下你的命令流,上面指出的地方也确实有问题,几个多余的 finish 需要删除,否则不能正确输出。不 ...

我从新定义了弹簧单元,把原来的弹簧单元改为1维的轴向作用单元,即ET,3,14,,2(原来是 ET,3,14,,,2,即为2维),能计算,但是提示弹簧单元两节点不重合,我又把质量单元从新定义与梁节点重合,弹簧单元还是梁节点和质量节点连接(其实这样弹簧长度为0,但帮助文件里提示1维弹簧两节点要重合), 再计算就又出现原来第一次一样的错误提示,请问你是不是直接把质量单元附在梁节点上,而弹簧忽略掉了的情况下计算能走通是吗?谢谢!

huazi071783 发表于 2014-10-26 11:12

还有谁遇到同样的问题?这提示是什么原因造成的呢?急

htbbzzg 发表于 2014-10-27 08:50

给你一篇资料看看吧。

huazi071783 发表于 2014-10-27 11:35

htbbzzg 发表于 2014-10-27 08:50
给你一篇资料看看吧。

谢谢老兄,这个我也看到过,研究完还是解决不了,继续弄

htbbzzg 发表于 2014-10-27 16:13

对于你的情况,应该设置 combin14 单元类型的 seyopt(2) 为 1~6 中的某一个值 - 根据弹簧的方向来确定重合节点之间的弹簧单元,然后定义两个重合节点,并定义一个连接该两个重合节点的弹簧单元。
你的命令流中,梁上的节点和质量单元的节点是一对一对重合的,那么你只要在每一对重合节点之间定义一个 combin14 单元即可,只是要根据两个节点的连接方向选择不同 keyopt(2) 的 combin14 单元类型。
    注意:当设置seyopt(2) 为 1~6 时,弹簧单元的两个节点必须是重合节点;如果设置seyopt(2) 为 0,那么弹簧单元的方向是由两个节点 的连线方向决定的,这时,两个节点就不能重合,否则会报错。

huazi071783 发表于 2014-10-27 21:57

本帖最后由 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:20

本帖最后由 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是表示扭转。

htbbzzg 发表于 2014-10-28 09:52

是的。注意两个节点必须是重合节点,否则会报错。

huazi071783 发表于 2014-10-28 13:03

已经解决了
页: [1]
查看完整版本: 模拟简支梁上移动质量块-弹簧的作用求解出问题