找回密码
 注册
Simdroid-非首页
查看: 125|回复: 7

[问题讨论] 重启动分析后,怎么更改约束呀

[复制链接]
发表于 2012-4-10 17:40:24 | 显示全部楼层 |阅读模式 来自 辽宁沈阳
小弟最近在做个瞬态分析,重启动后,想利用循环更改节点的约束条件,但程序始终只删除了第一步的约束,之后的约束约束都没有删除,哪位高手可以帮帮小弟呀,急呀。
*do,i,1,20
*if,G,lt,1e30,then
/solu
antype,trans,rest,2,7
ddele,560-i,uy,560,1
ddele,560-i,ux,560,1
ddele,2249+i,ux,2249,1
ddele,2249+i,uy,2249,1
solve
/post1
*get,u1,node,560-i,u,x
*get,u2,node,2249+i,u,x
*get,w1,node,560-i,u,y
*get,w2,node,2249+i,u,y
*get,x1,node,559-i,rf,fx
*get,z1,node,559+i,rf,fy
E=1/2*(x1*(u1-u2)+z1*(w1-w2))
G=E/0.2
*status
*enddo
这是循环部分的命令流,恳请各位高手帮帮忙啦
发表于 2012-4-10 20:43:32 | 显示全部楼层 来自 湖北武汉
Simdroid开发平台
这样的循环估计是循环变量i在循环内无效,也就是不能调用i变量实现,试试用数组变量代替循环变量i。
*dim,kk,array,1,2
kk(1,1)=1
kk(1,2)=1
*cfopen,cycle,txt
*vwrite,kk(1,1),kk(1,2)
(2f5.2)
*cfclos

*do,i,1,20
*if,G,lt,1e30,then
/solu
*dim,cc,array,1,2
*vread,cc,cycle,txt,,jik,2,1
(2f5.2)

antype,trans,rest,2,7
ddele,560-cc(1,1),uy,560,1
ddele,560-cc(1,1),ux,560,1
ddele,2249+cc(1,1),ux,2249,1
ddele,2249+cc(1,1),uy,2249,1
solve
/post1
*get,u1,node,560-cc(1,1),u,x
*get,u2,node,2249+cc(1,1),u,x
*get,w1,node,560-cc(1,1),u,y
*get,w2,node,2249+cc(1,1),u,y
*get,x1,node,559-cc(1,1),rf,fx
*get,z1,node,559+cc(1,1),rf,fy
E=1/2*(x1*(u1-u2)+z1*(w1-w2))
G=E/0.2
*status
cc(1,1)=cc(1,1)+1
*cfopen,cycle,txt
*vwrite,cc(1,1),cc(1,2)
(2f5.2)
*cfclos
*enddo
回复 不支持

使用道具 举报

 楼主| 发表于 2012-4-11 16:24:56 | 显示全部楼层 来自 辽宁沈阳
先谢谢斑竹了。不过我试了一下,每次运算都提示我数组CC没有定义,不知道该怎么解决。恳请斑竹帮忙呀。
把整个的命令流贴上吧。
/PREP7  
ET,1,VISCO106   
ET,2,PLANE42
MPTEMP,,,,,,,,  
MPTEMP,1,0  
MPDATA,EX,1,,3.2e11
MPDATA,PRXY,1,,0.38
TB,ANAN,1,,,0   
TBMODIF,1,1,5.633e7
TBMODIF,2,1,10830   
TBMODIF,3,1,1.49e7  
TBMODIF,4,1,11  
TBMODIF,5,1,0.303   
TBMODIF,6,1,2.6408e9
TBMODIF,7,1,8.0415e7
TBMODIF,8,1,0.0231  
TBMODIF,9,1,1.34
mpdata,ex,2,,2e9
mpdata,prxy,2,,0.3  
MPTEMP,,,,,,,,  
MPTEMP,1,0  
MPDATA,DENS,1,,8400
mpdata,dens,2,,7800
rect,0,112,0,0.2   
rect,0,160,0.2,12.8
rect,0,112,0,-0.2  
rect,0,160,-0.2,-12.8   
aglue,1,2   
aglue,3,4   
CYL4,152.5,6.5,3
CYL4,152.5,-6.5,3
ASBA,       5,       4  
ASBA,       2,       6  
TYPE,   1   
MAT,       1
REAL,   
ESYS,       0   
SECNUM,
LESIZE,2,0.1, , , , , , ,1  
LESIZE,10,0.1, , , , , , ,1
LESIZE,4,0.1, , , , , , ,1  
LESIZE,12,0.1, , , , , , ,1
LESIZE,1,0.2, , , , , , ,1  
LESIZE,11,0.2, , , , , , ,1
LESIZE,9,0.2, , , , , , ,1  
LESIZE,3,0.2, , , , , , ,1  
TYPE,   2   
MAT,       2
REAL,   
ESYS,       0   
SECNUM,
LESIZE,17,1, , , , , , ,1   
LESIZE,6,1, , , , , , ,1
LESIZE,7,1, , , , , , ,1
LESIZE,18,1, , , , , , ,1   
LESIZE,5,1, , , , , , ,1
LESIZE,13,1, , , , , , ,1   
LESIZE,14,1, , , , , , ,1   
LESIZE,15,1, , , , , , ,1   
LESIZE,16,1, , , , , , ,1   
LESIZE,19,1, , , , , , ,1   
LESIZE,20,1, , , , , , ,1   
LESIZE,21,1, , , , , , ,1   
LESIZE,22,1, , , , , , ,1   
LESIZE,23,1, , , , , , ,1   
LESIZE,24,1, , , , , , ,1   
LESIZE,8,1, , , , , , ,1
amesh,all   
finish
/SOLU   
ANTYPE,4
TRNOPT,FULL
LUMPM,0   
ANTYPE,4
NLGEOM,1
DELTIM,0.25,0,0
OUTRES,ERASE
OUTRES,ALL,ALL  
KBC,0   
RESCONTRL,DEFINE,ALL,ALL,9  
TIME,1
DL,18,,ALL,
DL,4,,ALL,  
DL,12,,ALL,
DL,5,,ALL,  
D,3,ALL,,560,1
D,2249,ALL,,2806,1   
BFA,1,TEMP,300  
BFA,3,TEMP,300  
TIME,0.25
AUTOTS,-1   
DELTIM,0.2, , ,1
KBC,0   
TSRES,ERASE
solve   
TIME,1
AUTOTS,-1     
DELTIM,0.2, , ,1  
KBC,0
TSRES,ERASE
nsel,all
DL,15, ,UY,3  
DL,16, ,UY,3
DL,23, ,UY,-3
DL,24, ,UY,-3
solve
/post1
*get,u11,node,561,u,x
*get,u12,node,2248,u,x
*get,w11,node,561,u,y
*get,w12,node,2248,u,y
*get,x1,node,560,rf,fx
*get,z1,node,560,rf,fy
E=1/2*(x1*(u11-u12)+z1*(w11-w12))
G=E/0.2
*status
*dim,kk,array,1,2
kk(1,1)=1
kk(1,2)=1
*cfopen,cycle,txt
*vwrite,kk(1,1),kk(1,2)
(2f5.2)
*cfclos
*do,i,1,5
*if,G,lt,1e30,then
/solu
*dim,cc,array,1,2
*vread,cc,cycle,txt,,jik,2,1
(2f5.2)
antype,trans,rest,2,4
ddele,560-cc(1,1),uy,560,1
ddele,560-cc(1,1),ux,560,1
ddele,2249+cc(1,1),ux,2249,1
ddele,2249+cc(1,1),uy,2249,1
solve
/post1
*get,u1,node,560-cc(1,1),u,x
*get,u2,node,2249+cc(1,1),u,x
*get,w1,node,560-cc(1,1),u,y
*get,w2,node,2249+cc(1,1),u,y
*get,x1,node,559-cc(1,1),rf,fx
*get,z1,node,559-cc(1,1),rf,fy
E=1/2*(x1*(u1-u2)+z1*(w1-w2))
G=-E/0.2
*status
cc(1,1)=cc(1,1)+1
*cfopen,cycle,txt
*vwrite,cc(1,1),cc(1,2)
(2f5.2)
*cfclos
*enddo
回复 不支持

使用道具 举报

 楼主| 发表于 2012-4-11 16:32:58 | 显示全部楼层 来自 辽宁沈阳
senja 发表于 2012-4-10 20:43
这样的循环估计是循环变量i在循环内无效,也就是不能调用i变量实现,试试用数组变量代替循环变量i。
*dim,k ...

先谢谢斑竹了。不过我试了一下,每次运算都提示我数组CC没有定义,不知道该怎么解决。恳请斑竹帮忙呀。
把整个的命令流贴上吧。
/PREP7  
ET,1,VISCO106   
ET,2,PLANE42
MPTEMP,,,,,,,,  
MPTEMP,1,0  
MPDATA,EX,1,,3.2e11
MPDATA,PRXY,1,,0.38
TB,ANAN,1,,,0   
TBMODIF,1,1,5.633e7
TBMODIF,2,1,10830   
TBMODIF,3,1,1.49e7  
TBMODIF,4,1,11  
TBMODIF,5,1,0.303   
TBMODIF,6,1,2.6408e9
TBMODIF,7,1,8.0415e7
TBMODIF,8,1,0.0231  
TBMODIF,9,1,1.34
mpdata,ex,2,,2e9
mpdata,prxy,2,,0.3  
MPTEMP,,,,,,,,  
MPTEMP,1,0  
MPDATA,DENS,1,,8400
mpdata,dens,2,,7800
rect,0,112,0,0.2   
rect,0,160,0.2,12.8
rect,0,112,0,-0.2  
rect,0,160,-0.2,-12.8   
aglue,1,2   
aglue,3,4   
CYL4,152.5,6.5,3
CYL4,152.5,-6.5,3
ASBA,       5,       4  
ASBA,       2,       6  
TYPE,   1   
MAT,       1
REAL,   
ESYS,       0   
SECNUM,
LESIZE,2,0.1, , , , , , ,1  
LESIZE,10,0.1, , , , , , ,1
LESIZE,4,0.1, , , , , , ,1  
LESIZE,12,0.1, , , , , , ,1
LESIZE,1,0.2, , , , , , ,1  
LESIZE,11,0.2, , , , , , ,1
LESIZE,9,0.2, , , , , , ,1  
LESIZE,3,0.2, , , , , , ,1  
TYPE,   2   
MAT,       2
REAL,   
ESYS,       0   
SECNUM,
LESIZE,17,1, , , , , , ,1   
LESIZE,6,1, , , , , , ,1
LESIZE,7,1, , , , , , ,1
LESIZE,18,1, , , , , , ,1   
LESIZE,5,1, , , , , , ,1
LESIZE,13,1, , , , , , ,1   
LESIZE,14,1, , , , , , ,1   
LESIZE,15,1, , , , , , ,1   
LESIZE,16,1, , , , , , ,1   
LESIZE,19,1, , , , , , ,1   
LESIZE,20,1, , , , , , ,1   
LESIZE,21,1, , , , , , ,1   
LESIZE,22,1, , , , , , ,1   
LESIZE,23,1, , , , , , ,1   
LESIZE,24,1, , , , , , ,1   
LESIZE,8,1, , , , , , ,1
amesh,all   
finish
/SOLU   
ANTYPE,4
TRNOPT,FULL
LUMPM,0   
ANTYPE,4
NLGEOM,1
DELTIM,0.25,0,0
OUTRES,ERASE
OUTRES,ALL,ALL  
KBC,0   
RESCONTRL,DEFINE,ALL,ALL,9  
TIME,1
DL,18,,ALL,
DL,4,,ALL,  
DL,12,,ALL,
DL,5,,ALL,  
D,3,ALL,,560,1
D,2249,ALL,,2806,1   
BFA,1,TEMP,300  
BFA,3,TEMP,300  
TIME,0.25
AUTOTS,-1   
DELTIM,0.2, , ,1
KBC,0   
TSRES,ERASE
solve   
TIME,1
AUTOTS,-1     
DELTIM,0.2, , ,1  
KBC,0
TSRES,ERASE
nsel,all
DL,15, ,UY,3  
DL,16, ,UY,3
DL,23, ,UY,-3
DL,24, ,UY,-3
solve
/post1
*get,u11,node,561,u,x
*get,u12,node,2248,u,x
*get,w11,node,561,u,y
*get,w12,node,2248,u,y
*get,x1,node,560,rf,fx
*get,z1,node,560,rf,fy
E=1/2*(x1*(u11-u12)+z1*(w11-w12))
G=E/0.2
*status
*dim,kk,array,1,2
kk(1,1)=1
kk(1,2)=1
*cfopen,cycle,txt
*vwrite,kk(1,1),kk(1,2)
(2f5.2)
*cfclos
*do,i,1,5
*if,G,lt,1e30,then
/solu
*dim,cc,array,1,2
*vread,cc,cycle,txt,,jik,2,1
(2f5.2)
antype,trans,rest,2,4
ddele,560-cc(1,1),uy,560,1
ddele,560-cc(1,1),ux,560,1
ddele,2249+cc(1,1),ux,2249,1
ddele,2249+cc(1,1),uy,2249,1
solve
/post1
*get,u1,node,560-cc(1,1),u,x
*get,u2,node,2249+cc(1,1),u,x
*get,w1,node,560-cc(1,1),u,y
*get,w2,node,2249+cc(1,1),u,y
*get,x1,node,559-cc(1,1),rf,fx
*get,z1,node,559-cc(1,1),rf,fy
E=1/2*(x1*(u1-u2)+z1*(w1-w2))
G=-E/0.2
*status
cc(1,1)=cc(1,1)+1
*cfopen,cycle,txt
*vwrite,cc(1,1),cc(1,2)
(2f5.2)
*cfclos
*enddo
回复 不支持

使用道具 举报

发表于 2012-4-11 20:34:58 | 显示全部楼层 来自 湖北武汉
本帖最后由 senja 于 2012-4-11 20:38 编辑
我是大笨蛋 发表于 2012-4-11 16:32
先谢谢斑竹了。不过我试了一下,每次运算都提示我数组CC没有定义,不知道该怎么解决。恳请斑竹帮忙呀。
...

之前没写好,应该再重启动之后再读入cc,就没问题了。另外发现命令D处有点小小问题,都改过来了。运行没有问题。

finish
/clear

/PREP7
ET,1,VISCO106   
ET,2,PLANE42
MPTEMP,,,,,,,,  
MPTEMP,1,0  
MPDATA,EX,1,,3.2e11
MPDATA,PRXY,1,,0.38
TB,ANAN,1,,,0  
TBMODIF,1,1,5.633e7
TBMODIF,2,1,10830
TBMODIF,3,1,1.49e7
TBMODIF,4,1,11
TBMODIF,5,1,0.303   
TBMODIF,6,1,2.6408e9
TBMODIF,7,1,8.0415e7
TBMODIF,8,1,0.0231  
TBMODIF,9,1,1.34
mpdata,ex,2,,2e9
mpdata,prxy,2,,0.3  
MPTEMP,,,,,,,,  
MPTEMP,1,0  
MPDATA,DENS,1,,8400
mpdata,dens,2,,7800
rect,0,112,0,0.2
rect,0,160,0.2,12.8
rect,0,112,0,-0.2
rect,0,160,-0.2,-12.8   
aglue,1,2   
aglue,3,4   
CYL4,152.5,6.5,3
CYL4,152.5,-6.5,3
ASBA,5,4  
ASBA,2,6
TYPE,1  
MAT,1
REAL,
ESYS,0
SECNUM,
LESIZE,2,0.1, , , , , , ,1  
LESIZE,10,0.1, , , , , , ,1
LESIZE,4,0.1, , , , , , ,1  
LESIZE,12,0.1, , , , , , ,1  
LESIZE,1,0.2, , , , , , ,1  
LESIZE,11,0.2, , , , , , ,1
LESIZE,9,0.2, , , , , , ,1  
LESIZE,3,0.2, , , , , , ,1  
TYPE,2   
MAT,2
REAL,   
ESYS,0   
SECNUM,
LESIZE,17,1, , , , , , ,1   
LESIZE,6,1, , , , , , ,1
LESIZE,7,1, , , , , , ,1
LESIZE,18,1, , , , , , ,1   
LESIZE,5,1, , , , , , ,11
LESIZE,13,1, , , , , , ,1     
LESIZE,14,1, , , , , , ,1   
LESIZE,15,1, , , , , , ,1  
LESIZE,16,1, , , , , , ,1   
LESIZE,19,1, , , , , , ,1   
LESIZE,20,1, , , , , , ,1   
LESIZE,21,1, , , , , , ,1   
LESIZE,22,1, , , , , , ,1   
LESIZE,23,1, , , , , , ,1   
LESIZE,24,1, , , , , , ,1   
LESIZE,8,1, , , , , , ,1
amesh,all
finish

/SOLU   
ANTYPE,4
TRNOPT,FULL
LUMPM,0  
ANTYPE,4
NLGEOM,1
DELTIM,0.25,0,0
OUTRES,ERASE
OUTRES,ALL,ALL  
KBC,0   
RESCONTRL,DEFINE,ALL,ALL,9  
TIME,1
DL,18,,ALL,
DL,4,,ALL,  
DL,12,,ALL,
DL,5,,ALL,  
D,3,ALL,,,560,1
D,2249,ALL,,,2806,1   
BFA,1,TEMP,300  
BFA,3,TEMP,300  
TIME,0.25
AUTOTS,-1
DELTIM,0.2, , ,1
KBC,0   
TSRES,ERASE
allsel
solve  

TIME,1
AUTOTS,-1     
DELTIM,0.2, , ,1  
KBC,0  
TSRES,ERASE
nsel,all
DL,15, ,UY,3  
DL,16, ,UY,3
DL,23, ,UY,-3
DL,24, ,UY,-3
allsel
solve

/post1
*get,u11,node,561,u,x
*get,u12,node,2248,u,x
*get,w11,node,561,u,y
*get,w12,node,2248,u,y
*get,x1,node,560,rf,fx
*get,z1,node,560,rf,fy
E=1/2*(x1*(u11-u12)+z1*(w11-w12))
G=E/0.2
*status

*dim,kk,array,1,2
kk(1,1)=1
kk(1,2)=1
*cfopen,cycle,txt
*vwrite,kk(1,1),kk(1,2)
(2f5.2)
*cfclos

*do,i,1,5

*if,G,lt,1e30,then
/solu

antype,trans,rest,2,4

*dim,cc,array,1,2
*vread,cc,cycle,txt,,jik,2,1
(2f5.2)

ddele,560-cc(1,1),uy,560,1
ddele,560-cc(1,1),ux,560,1
ddele,2249+cc(1,1),ux,2249,1
ddele,2249+cc(1,1),uy,2249,1
allsel
solve

/post1
*get,u1,node,560-cc(1,1),u,x
*get,u2,node,2249+cc(1,1),u,x
*get,w1,node,560-cc(1,1),u,y
*get,w2,node,2249+cc(1,1),u,y
*get,x1,node,559-cc(1,1),rf,fx
*get,z1,node,559-cc(1,1),rf,fy
E=1/2*(x1*(u1-u2)+z1*(w1-w2))
G=-E/0.2
*status

cc(1,1)=cc(1,1)+1
*cfopen,cycle,txt
*vwrite,cc(1,1),cc(1,2)
(2f5.2)
*cfclos

*enddo




评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2012-4-15 00:52:34 | 显示全部楼层 来自 湖南长沙
senja 发表于 2012-4-11 20:34
之前没写好,应该再重启动之后再读入cc,就没问题了。另外发现命令D处有点小小问题,都改过来了。运行没有 ...

哎呀,斑竹,实在是太感谢啦~~~谢谢啦!!!另外,我能再问一下吗,我想把每次求解出的G2存入一个数组,应该怎么编呀~~~先谢谢斑竹啦~~~
回复 不支持

使用道具 举报

发表于 2012-4-15 15:15:51 | 显示全部楼层 来自 湖北武汉
我是大笨蛋 发表于 2012-4-15 00:52
哎呀,斑竹,实在是太感谢啦~~~谢谢啦!!!另外,我能再问一下吗,我想把每次求解出的G2存入一个数组, ...

一样的道理,定义一个数组,然后给数组赋值(G2)即可。
以上命令中就有涉及这方面的内容,楼主该仔细看看怎么写,而不是直接用。
回复 不支持

使用道具 举报

 楼主| 发表于 2012-4-16 09:09:27 | 显示全部楼层 来自 辽宁沈阳
senja 发表于 2012-4-15 15:15
一样的道理,定义一个数组,然后给数组赋值(G2)即可。
以上命令中就有涉及这方面的内容,楼主该仔细看 ...

好的,谢谢斑竹啦~~~
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-22 04:21 , Processed in 0.042828 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表