ufo_me 发表于 2007-12-15 17:18

关于ansys优化的一点疑问

我在ansys优化时,是将各荷载步的节点位移提到一个数组里面,在*vwrite读取已知数组,然后将他们进行相减在归一化,最后叠加赋值到一个变量上,再求这个变量的最小。可是为什么每次优化时都进行不下去,目标函数OBJ总是不变,DV虽然变化但是根本就没优化啊?实在时搞不懂了,哪位高手帮我解决一下啊。

chenyanru 发表于 2007-12-15 19:51

与你设置什么变量关系也许不是很大,可能是你的设计变量的范围取得不合适,或者是状态变量的函数取得不合适。

chenyanru 发表于 2007-12-15 19:53

与你设置什么变量关系也许不是很大,可能是你的设计变量的范围取得不合适,或者是状态变量的函数取得不合适。

ufo_me 发表于 2007-12-16 16:38

我的状态变量没有设,只设了目标函数和设计变量,而且目前只设弹模为设计变量!

ufo_me 发表于 2007-12-16 16:39

这是我的命令流

*CREATE,WWWW

!设置参数

B=0.2                !截面宽 (米)
H=0.4                !截面高 (米)
AREA=B*H             !截面面积(可根据具体截面形式改变换算公式)
IZZ=(B*(H**3))/12    !截面惯性矩(可根据具体截面形式改变换算公式)
ppppp=3.45E10   !未损伤弹模(C50混凝土)

BEAM_L=10            !梁长度 (米)
NE=10                !单元数
NL=BEAM_L/NE         !单元长度
NN=NE+1            !节点数
VV=5               !荷载移动速度(公里/小时)
DT=NL/VV*3.6         !移动荷载经过一个单元所需时间(秒)
FF=10000            !定义移动荷载 (牛)

XN=6         
*DIM,DEIF,ARRAY,NN      !定义损伤模型影响线值数组
*VREAD,DEIF,XXXXX,TXT   !读取
(F10.6)

!建模
/PREP7
ET,1,BEAM3
MP,EX,1,ppppp
MP,PRXY,1,0.2
R,1,AREA,IZZ,H

*DO,I,1,NN,1         !建立节点
N,I,(I-1)*NL
*ENDDO

MAT,1
*DO,I,1,NE,1         !建立单元
E,I,I+1
*ENDDO

!加载
D,1,UY             !边界条件
D,1,UX
D,NN,UY

FINISH

!求解
/SOLU
ANTYPE,0      !静态分析
*DO,II,1,NN,1
TIME,II*DT         !荷载步结束时间
NSUBST,1         !指定此荷载步的子步数
FDELE,ALL,ALL      !删除节点上的集中力。
NSEL,S,NODE,,II                  
F,ALL,FY,-FF
ALLSEL             !选中所有
OUTRES,ALL,ALL
SOLVE
*ENDDO
FINISH

!后处理

/POST1
*DIM,ILINE,ARRAY,NN         !定义影响值数组
*DO,I,1,NN
SET,I
*GET,ILINE(I),NODE,XN,U,Y
*ENDDO

!定义残差函数
*DIM,XX,ARRAY,NN          !定义残差数组
XX(1)=0
*DO,i,2,nn-1
XX(I)=((DEIF(I)-ILINE(I))/DEIF(I))**2
*ENDDO
XX(nn)=0

*VSCFUN,MB,SUM,XX   !目标残差函数数组求和   

FINISH
*END
*USE,WWWW

调用优化模块
/OPT
OPANL,WWWW                  !定义优化文件
OPVAR,mb,OBJ
OPVAR,ppppp,DV,0,3.45E10

OPLOOP,prep
OPTYPE,subp
OPEXE

FINISH

[ 本帖最后由 ufo_me 于 2007-12-16 16:40 编辑 ]
页: [1]
查看完整版本: 关于ansys优化的一点疑问