石中玉 发表于 2018-6-10 13:14:17

【求助】循环求解命令流怎么写

如下一段求解的命令流,是否可以写成循环求解?

!边坡在强度折减系数K=1.05时求解
FINISH
/TITLE,Slope stability Analysis of K=1.05
/SOLU
ALLSEL
ASEL,S,AREA,,2,3,1                           !选择面积A2、A3
MPCHG,3,ALL                                  !把所选择单元材料号改为3
ALLSEL
SOLVE                                        !进行求解
SAVE,K1.05,DB                              !把K=1.05时求解结果保存
/POST1
PLNSOL,U,X
!边坡在强度折减系数K=1.10时求解
/TITLE,Slope stability Analysis of K=1.10
FINISH
/SOLU
ALLSEL
ASEL,S,AREA,,2,3,1                           !选择面积A2、A3
MPCHG,4,ALL                                  !把所选择单元材料号改为4
ALLSEL
SOLVE                                        !进行求解
SAVE,F1.10,DB                              !把K=1.10时求解结果保存
/POST1
PLNSOL,U,X


我自己写的循环求解:
!边坡在强度折减系数K=1.0+(I-2)*0.05时求解    !把K=1.0+(I-2)*0.05时求解结果保存,I=3,4,...,22
FINISH
*DO,I,3,22,1
/TITLE,Slope stability Analysis of K=1.0+(I-2)*0.05
/SOLU
ALLSEL
ASEL,S,AREA,,2,3,1                           !选择面积A2、A3
MPCHG,I,ALL                                  !把所选择单元材料号改为3
ALLSEL
SOLVE                                        !进行求解
SAVE,K=1.0+(I-2)*0.05,DB                     !把K=1.0+(I-2)*0.05时求解结果保存
/POST1
PLNSOL,U,X
*ENDDO

htbbzzg 发表于 2018-6-12 09:59:45

你的 save 命令好像不对:
    SAVE,K=1.0+(I-2)*0.05,DB                     !把K=1.0+(I-2)*0.05时求解结果保存
模型文件名不能是:
    K=1.0+(I-2)*0.05.DB

石中玉 发表于 2018-6-12 15:11:45

htbbzzg 发表于 2018-6-12 09:59
你的 save 命令好像不对:
    SAVE,K=1.0+(I-2)*0.05,DB                     !把K=1.0+(I-2)*0.05时求 ...

那应该怎么写呢?

'K=1.0+(I-2)*0.05'

这样吗?

htbbzzg 发表于 2018-6-13 08:46:19

文件名不能有 + 等字符。
你想要的文件名是什么?

石中玉 发表于 2018-6-13 15:12:56

htbbzzg 发表于 2018-6-13 08:46
文件名不能有 + 等字符。
你想要的文件名是什么?

例如:
K1.0,表示折减系数为1.0时的
K1.1,表示折减系数为1.1时的
K1.2,表示折减系数为1.2时的
......

redwar 发表于 2018-6-13 15:37:57

数据格式问题 一个是字符一个是双精度参考 chrval 命令转换后就可以了

redwar 发表于 2018-6-13 15:40:42

   DBname=1.0+(I-2)*0.05
SAVE,K%chaval(DBname)%,DB                  

htbbzzg 发表于 2018-6-14 09:22:21

或者试试:
SAVE, K%1.0+(I-2)*0.05% ,DB

redwar 发表于 2018-6-14 19:29:27

htbbzzg 发表于 2018-6-14 09:22
或者试试:
SAVE, K%1.0+(I-2)*0.05% ,DB
这个应该是不可以的 因为这条命令中默认1.0+... 为一个字符串的返回值,不会做计算的

htbbzzg 发表于 2018-6-15 08:24:51

楼上说的是对的,应该改为:
a=1.0+(I-2)*0.05
SAVE, K%a% ,DB

Ampare1987 发表于 2018-6-15 11:16:34

除了文件名之外还有其他问题吗?

石中玉 发表于 2018-6-15 11:45:09

Ampare1987 发表于 2018-6-15 11:16
除了文件名之外还有其他问题吗?

就是分析标题和文件名这块出错

htbbzzg 发表于 2018-6-16 07:33:29

另外可能的问题:
   MPCHG,I,ALL                                  !把所选择单元材料号改为3
应该是:把所选择单元材料号改为 I,而不是 3
不知你的原意是什么。3 是否笔误?

再者,每次循环,在计算完成后,都要到常用后处理去绘制 Ux 的云图,下一次循环时将被当作新的分析,与前面的分析无关。因而最终的结果文件只有一个结果组 (I=22),其余结果都没有保留,且每个循环的结果都是各自独立的,不受前面计算的影响。同样不知道是否符合你的原意。

石中玉 发表于 2018-6-17 01:15:33

htbbzzg 发表于 2018-6-16 07:33
另外可能的问题:
   MPCHG,I,ALL                                  !把所选择单元材料号改为3
应该 ...

1、注解中,材料号I误写成了3
2、如何不考虑保存每个安全系数的计算结果保存,是没有问题的;
再就是每次求解,查看,输出,感觉很麻烦,所以想写成循环结构

htbbzzg 发表于 2018-6-20 07:54:03

在 plnsol,U,X 命令之后乐意增加一个命令,类似于:
   /IMAGE,save,UX-%i%, jpg
将当前显示的 Ux 的结果云图存到盘上的 .jpg 文件中。
全部计算完成后,可以查看这些 .jpg 文件所保存的各个 i 对应的 Ux 结果。
也可以类似的保存其它结果的云图到图片,不过每个 PLNSOL 命令需要一个 /IMAGE 命令与其配套。
页: [1]
查看完整版本: 【求助】循环求解命令流怎么写