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

[前处理] *do 命令与参数的使用

[复制链接]
发表于 2008-8-15 11:09:03 | 显示全部楼层 |阅读模式 来自 湖北武汉
为了循环建立多个模型和计算这些模型,我使用了*do命令。
大致如下:
___________________________________
*do,L,1,10

FINISH  
/CLEAR  
/CWD,'e:\AnsysWorkPlace\1'
/FILNAME,1,1
/TITLE,1
/PREP7
!...里面需要用到变量L
/SOLU   
!...

*enddo
______________________________

但是运行的结果是:
好像L没设置一样。
我想可能是因为 /CLEAR  清空了变量值,于是第二次运行时,减去了 /CLEAR  命令。
这样,问题又出现了,虽然计算第一个L值可以,但是计算第二个L值就不行了。

我想这可能与 变量是否是“全局变量”有关
如果我能够把L设成一个全局变量,那么在真个APDL运行时,它就可以不会消失了。

请问,要达到这样的效果,改如何改啊?

[ 本帖最后由 perch88 于 2008-9-3 01:03 编辑 ]
发表于 2008-8-25 09:47:07 | 显示全部楼层 来自 北京
Simdroid开发平台
执行完PARSAV保存后再/clear
开始执行时/clear然后PARRES

do,L,1,10

FINISH  
/CLEAR  
PARRES,new,'temp',txt
/CWD,'e:\AnsysWorkPlace\1'
/FILNAME,1,1
/TITLE,1
/PREP7
!...里面需要用到变量L
/SOLU   
!...

/clear
PARSAV,all,'temp',txt
*enddo


试下吧。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-8-29 14:26:13 | 显示全部楼层 来自 江苏南京
在clear之前parsave,clear之后parres

还有一种方法,可以把循环体单独拿出来做一个文件,比如我的一个例子:
*dim,fluxary,,100,1
*dim,torqueary,,100,1
*dim,icurrent,,100,1
*dim,Lcoil,,100,1
AllSteps = 1
*do,step,1,AllSteps,1
  PARSAV,all
  /clear
  PARRES
  Ang = -1*180/AllSteps*(step-1)
  *use,E:\ansys\CP_Mapped.mac,step,Ang
*enddo
回复 不支持

使用道具 举报

发表于 2008-8-29 15:00:27 | 显示全部楼层 来自 西安交通大学
推荐使用优化设计中的sweep法效果跟循环一样
将循环值设为优化变量
自己希望获得变量为目标变量
等间隔取值
这是一个我以前用过的例子
保存为.mac
/TITLE,2DLJL
/FILNAME,2DLJL,1
KEYW,MAGNON
e=0.8e-3
/PREP7
a=0.004
N=50
I=2
f=2.176e-8/a/e
c=(f+e)/2
b=(f-e)/2
ET,1,PLANE13
EMUNIT,MKS
KEYOPT,1,3,1
MP,MURX,1,1
MP,MURX,2,1
MP,MURX,3,1.0997785406
MP,MGYY,3,8.9e+5
TB,BH,4,,40
TBPT,,159.2,0.2402
,,318.3,0.8654
,,477.5,1.1106
,,636.6,1.2458
,,795.8,1.331
,,1591.5,1.5
,,3183.1,1.6
,,4774.6,1.683
,,6366.2,1.741
,,7957.7,1.78
,,15915.5,1.905
,,31831,2.025
,,47746.5,2.085
,,63662,2.13
,,79577.5,2.165
,,159155,2.28
,,318310,2.485
,,397887,2.585
FINISH

/PREP7
/PNUM,AREA,1
RECTNG,0,0.0019,0.0153,0.0243
RECTNG,0.002,b,0.0153,0.0243
RECTNG,b,c,0.0153,0.0153+a
RECTNG,b,c,0.0153+a,0.0243
RECTNG,c,0.00525,0.0153,0.0163
RECTNG,c,0.00525,0.0163,0.0233
RECTNG,c,0.005,0.0233,0.0243
RECTNG,0.00525,0.006,0.0223,0.0233
ASEL,S,AREA,,ALL
ARSYM,Y,ALL
RECTNG,0,0.0019,-0.015,0.015
RECTNG,0.002,b,-0.015,0.015
RECTNG,b,0.00525,-0.014,0.014
RECTNG,c,0.00525,0.0141,0.015
RECTNG,c,0.00525,-0.015,-0.0141
RECTNG,0,0.01,-0.05,0.05
AOVLAP,ALL
AGLUE,ALL
/REPLOT
asel,all
ASEL,S,AREA,,30
ASEL,A,AREA,,33
AATT,2,1,1,0
asel,all
ASEL,S,AREA,,20,21
ASEL,A,AREA,,23
ASEL,A,AREA,,26
AATT,3,1,1,0
asel,all
asel,u,,,30,33,3
asel,u,,,20,21
asel,u,,,23,26,3
asel,u,,,38
AATT,4,1,1,0
/PNUM,MAT,1
ALLSEL,ALL
SMRTSIZE,2
MSHAPE,0,2D
MSHKEY,0
AMESH,ALL
ASEL,S,AREA,,19,35,16
ESLA,S
CM,ARM,ELEM
FMAGBC,'ARM'
FINISH
/SOLU
ALLSEL,ALL
NSEL,EXT
D,ALL,AZ,0
FINISH
/SOLU
ASEL,S,AREA,,30
ESLA,S
BFE,ALL,JS,,,,-N*I/(a*e)
ASEL,S,AREA,,33
ESLA,S
BFE,ALL,JS,,,,N*I/(a*e)
ALLSEL,ALL
SOLVE   
FINISH  
/POST1  
ETABLE,FMAGY,FMAG,Y
SSUM
*GET,FXL,SSUM,,ITEM,FMAGY
FXLA=10-FXL
FINISH
回复 不支持

使用道具 举报

发表于 2008-8-29 15:02:02 | 显示全部楼层 来自 西安交通大学
继续 优化命令
finish
/filname,yhopt
/input,'youhua','mac',,,0
/opt
opclr
opanl,'youhua','mac'
opvar,e,dv,0.0006,0.001
opvar,FXLA,obj
opdata,,,
oploop,prep,proc,all
opkeep,on
optype,rand
oprand,30,5
opexe
optype,sweep
opsweep,best,10
opexe
回复 不支持

使用道具 举报

 楼主| 发表于 2008-9-2 20:46:09 | 显示全部楼层 来自 江西九江
谢谢  llkg  huangyk  lijiliang 了
1、我用 llkg  的方法试了下,可行。
只稍微做了下修改。
其中:
/clear                          
PARSAV,all,'temp',txt
*enddo
改为了:
PARSAV,all,'temp',txt
/clear      
*enddo

2、 huangyk  lijiliang 告诉的方法,我还不怎么看得懂(我是初学者),恩,好好学习。

谢谢各位了啊!

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-9-16 09:24:46 | 显示全部楼层 来自 黑龙江大庆
很好,学习学习!
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 20:20 , Processed in 0.065819 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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