chenyanru 发表于 2007-10-31 09:27

ansys优化,设计变量改编而目标函数值未改变

命令流如下,我看优化的结果,设计变量改变了,但是目标函数和状态变量没有改变。不知道是不是跟我的施工阶段有关系呢?


/prep7
/title,the anslyse of small arch bridge
!**************************************************************
!**************************************************************
!以下为建立各个截面的命令
!**************************************************************
et,1,82
!********截面9-9****************
                   !为什么只有一个82。作用何在?
                  
rectng,-0.1,0.1,-0.1,0.1       !1, 与图纸编号不同,先做框框                           
esize,0.1                            !自动划分网格,5为划分的细度,第一个数字为 1-10
amesh,all   
secwrite,xxx11,sect,,1                  !建立一个包含单元划分信息的ASC_2码文件,第一个为文件名,和路径,路径省略则为文件默认路径
SECTYPE,1,BEAM,MESH,                   !截面代号1
SECOFFSET,CENT,,,                     
SECREAD,'xxx11','SECT',,MESH            
asel,all                     
ACLEAR,ALL
ADELE,ALL,,,1
!*************9-9**********************

etdele,1                         !删除代理单元
!定义钢材特性
et,1,beam188                         !不知道此处的截面和上面的截面有什么区别?
mp,ex,1,2.1e11
mp,dens,1,7800
mp,prxy,1,0.3
mp,alpx,1,1e-5


et,2,link10                     
mp,ex,2,2.1e11
mp,dens,2,7800
mp,prxy,2,0.3
mp,alpx,2,1e-5


r,2,0.1,0.0001


!************拱肋计算************
!**********计算拱肋中心线坐标**********
*dim,cs,array,48
*dim,y,array,48
*dim,z,array,48
m=1.9
k=1.257195827                  
f=8.5
y(1)=0
*do,i,1,46,1
y(i+1)=y(i)+0.5
*enddo
y(48)=y(47)+0.349166446
*do,i,1,48,1
cs(i)=(23.34916645-y(i))*2/23.34916645/2
z(i)=f-f*(cosh(k*cs(i))-1)/(m-1)
*enddo
*do,i,1,47,1
n,i,y(i)-23.34916645,z(i)-8.5
*enddo
n,48,y(48)-23.34916645,z(48)-8.5


*do,i,47,1,-1
n,96-i,23.34916645-y(i),z(i)-8.5
*enddo

!********************************************type,1
real,1
mat,1
secnum,1

*dim,kzd,array,5
kzd(1)=16
kzd(2)=32
kzd(3)=48
kzd(4)=64
kzd(5)=80

*dim,yyc,array,5
*do,i,1,5
*get,yyc(i),node,kzd(i),loc,y
*enddo



*do,i,1,20,1
e,i,i+1
*enddo


n,150,-24,5

type,2
mat,2
real,2
e,150,18

cm,jd1,elem
esel,none


type,1
real,1
mat,1
*do,i,21,40,1
e,i,i+1
*enddo

type,2
mat,2
real,2

n,151,-24,6.5
e,151,38


cm,jd2,elem
esel,none



type,1
real,1
mat,1
*do,i,95,76,-1
e,i,i-1
*enddo

type,2
mat,2
real,2

n,153,24,5
e,153,78


cm,jd3,elem
esel,none

type,1
real,1
mat,1
*do,i,75,56,-1
e,i,i-1
*enddo

type,2
mat,2
real,2

n,154,24,6.5
e,154,58

cm,jd4,elem
esel,none


type,1
real,1
mat,1

*do,i,41,54
e,i,i+1
*enddo

cm,helong,elem
esel,none



allsel



/solu

h1=200
h2=200


bfe,21,temp,,-538.02
bfe,42,temp,,-618.30
bfe,63,temp,,-618.3
bfe,84,temp,,-538.02





acel,,10

time,1

nlgeom,on
nropt,full
estif,1e-10
allsel
ekill,all
esel,s,live

esel,all
ealive,all
esel,s,live
nsle,s
nsel,inve
d,all,all,0

nsel,s,,,150,154
d,all,all

nsel,s,,,1
nsel,a,,,95

d,all,all




allsel
solve
save



time,2


allsel
ddele,all,all

ekill,all
esel,s,live

esel,s,mat,,1
ealive,all
esel,s,live


nsle,s
nsel,inve
d,all,all,0


nsel,s,,,1
nsel,a,,,95

d,all,all




allsel
solve
save


!************优化成桥索力过程
/post1
set,last

!esort,etab,uy,0,0
*get,uyy1,node,16,u,y
*get,uyy2,node,32,u,y
*get,uyy3,node,48,u,y
*get,uyy4,node,64,u,y
*get,uyy5,node,80,u,y



uyyma=max(uyy1,uyy2,uyy3,uyy4,uyy5)

uyymi=min(uyy1,uyy2,uyy3,uyy4,uyy5)

uyyx=max(uyyma,-uyymi)


esel,s,mat,,1
etable,wanjs,smisc,32
etable,wanjx,smisc,33
plls,wanjs,wanjs
plls,wanjx,wanjx


!*dim,xigms,array,94
!*dim,xigmx,array,94


esort,etab,wanjs,0,0
*get,sminT,sort,,max
esort,etab,wanjx,0,0
PRETAB,wanjx
*get,sminB,sort,,max
smin=mAX(sminT,sminB)





!/eof
lgwrite,arch,lgw

/input,arch.lgw
/opt             !进入优化处理器
OPANL,arch,lgw


opvar,h1,dv,0,1000
opvar,h2,dv,0,1000         !设计变量
!opvar,h3,dv,0,1000
!opvar,h4,dv,0,1000



opvar,smin,sv,-2e7,2e7

OPSAVE,trussvar,opt


opvar,uyyx,obj,,,1e-3               !目标函数

optype,subp
opsubp,40
opexe
/opt
oplist,all,,1
finish

liyangcdm 发表于 2007-10-31 12:16

楼主能不能将优化的过程简单概括一下
否则,很难帮你

chenyanru 发表于 2007-10-31 16:05

我是想通过四根索的索力调整,优化第二个阶段即成桥的线形。

yangdong28 发表于 2007-11-2 12:25

你的命令流我运行了一下,有error,能再整理一下吗?
我也遇到同样的问题,初步感觉好像dv与sv、obj并没有建立起函数关系,虽然做了循环,但sv、obj的值没变;或许,sv、obj对dv的变化不敏感。
帮你顶顶,希望高手能指点!

chenyanru 发表于 2007-11-3 11:33

我仔细看了ansys的优化方面资料,应该是sv,dv,obj的极限值设置问题。ansys的优化似乎是如果有一个地方达到了推出的要求就退出了。

chenyanru 发表于 2007-11-3 20:31

新的问题出现了,我做了一个简单的模型进行优化。结果总是告诉我他不能优化,而且无论我如何调整初始的初应变,他都告诉我这个状态的目标函数是最优的。紧接这告诉我有个语句他不能读出来,现实一截乱码。初做优化,不是很懂原因。希望会的朋友帮帮忙。这个命令流可以用的!

/prep7
/title,the anslyse of small arch bridge
!**************************************************************
!**************************************************************
!以下为建立各个截面的命令
!**************************************************************
et,1,82
                                    
rectng,-0.1,0.1,-0.1,0.1                           
esize,0.1                           
amesh,all   
secwrite,xxx11,sect,,1      
SECTYPE,1,BEAM,MESH,                  
SECOFFSET,CENT,,,                     
SECREAD,'xxx11','SECT',,MESH            
asel,all                     
ACLEAR,ALL
ADELE,ALL,,,1
!*************9-9**********************

etdele,1                         !删除代理单元
!定义钢材特性
et,1,beam188                     
mp,ex,1,2.1e11
mp,dens,1,7800
mp,prxy,1,0.3
mp,alpx,1,1e-5




et,2,link10                     
mp,ex,2,2.1e11
mp,dens,2,7800
mp,prxy,2,0.3
mp,alpx,2,1e-5


r,2,0.001,chuyingbian2
chuyingbian2=5.1256e6/0.1/2.1e11
r,3,0.001,chuyingbian3
chuyingbian3=1.9067e6/0.1/2.1e11


*do,i,1,30
n,i,i,0,0
*enddo


*do,i,1,29
e,i,i+1
*enddo


n,31,15,5,0
n,32,30,5,0

type,2
mat,2
real,2
e,31,15
real,3
e,32,30



/solu



nlgeom,on
nropt,full
estif,1e-10
acel,,10
allsel
d,1,all
d,31,all
d,32,all
solve
save


!************优化成桥索力过程
/post1
set,last

*get,uyy1,node,15,u,y


esel,s,mat,,1



esel,s,mat,,1
etable,wanjs,smisc,32
etable,wanjx,smisc,33
plls,wanjs,wanjs
plls,wanjx,wanjx



esort,etab,wanjs,0,0
*get,sminT,sort,,max
esort,etab,wanjx,0,0
PRETAB,wanjx
*get,sminB,sort,,max
smin=mAX(sminT,sminB)



!/eof
lgwrite,arch,lgw


!/input,arch.lgw
/opt             !进入优化处理器
OPANL,arch,lgw



opvar,chuyingbian2,dv,8E-07,1,1e-6
opvar,chuyingbian3,dv,8E-07,1,1e-6

opvar,smin,sv,-2e10,2e10,1

OPSAVE,trussvar,opt


opvar,uyy1,obj,,,1e-10

optype,first
opsubp,40
opexe
/opt
oplist,all,,1
finish

yangdong28 发表于 2007-11-4 10:32

楼主的上一帖有最优的解析解吗?有的话公布一下,我看看我算的结构对不?
根据你的命令流,重新写了一个,我优化的结构是uyy1=0.84955E-03。有几个地方我询问一下:
1.“chuyingbian2=5.1256e6/0.1/2.1e11chuyingbian3=1.9067e6/0.1/2.1e11”,没有初应变1?这也无妨,不过显得凌乱。0.1应该是索的面积,不过在“r,2,0.001,chuyingbian2”,面积是0.001?
2.“etable,wanjs,smisc,32   etable,wanjx,smisc,33”是弯曲应力,对beam188来说应该是“etable,sbzt,smisc,34etable,sbzb,
smisc,35”吧?

chenyanru 发表于 2007-11-5 20:52

1、最初是用得初应变做设计变量,后来采用的是温度作设计变量,这个地方就没有改到。
2、我用etable,wanjs,smisc,32是直接摘过来的,由于我是做钢结构,所以对力并不是很关心,只是做了一个状态变量在那里而已。忘原谅!

yangdong28 发表于 2007-11-5 23:54

我根据你的命令流修改了一下,有些数据改了,运行是没问题了,不过就是不知道结果合理不?你可以参考一下。
你最好先把自己优化的目的弄清楚了,再写命令,感觉有点乱。

/filname,arch
chuyingbian1=5.1256e6/0.001/2.1e11
chuyingbian2=1.9067e6/0.001/2.1e11
/prep7
/title,the anslyse of small arch bridge
!**************************************************************
!**************************************************************
!以下为建立各个截面的命令
!**************************************************************
et,1,82
                                    
rectng,-0.1,0.1,-0.1,0.1                           
esize,0.1                           
amesh,all   
secwrite,xxx11,sect,,1      
SECTYPE,1,BEAM,MESH,                  
SECOFFSET,CENT,,,                     
SECREAD,'xxx11','SECT',,MESH            
asel,all                     
ACLEAR,ALL
ADELE,ALL,,,1
!*************9-9**********************

etdele,1                         !删除代理单元
!定义钢材特性
et,3,beam188                     
mp,ex,3,2.1e11
mp,dens,3,7800
mp,prxy,3,0.3
mp,alpx,3,1e-5




et,2,link10                     
mp,ex,2,2.1e11
mp,dens,2,7800
mp,prxy,2,0.3
mp,alpx,2,1e-5


r,1,0.001,chuyingbian2

r,2,0.001,chuyingbian3



*do,i,1,30
n,i,i,0,0
*enddo

n,31,15,5,0
n,32,30,5,0


type,3
mat,3
*do,i,1,29
en,i,i,i+1,32
*enddo




type,2
mat,2
real,1
e,31,15
real,2
e,32,30



/solu
antype,0
nlgeom,on
nropt,full
estif,1e-10
acel,,10
allsel
d,1,all
d,31,all
d,32,all
allsel
eplot
solve
save


!************优化成桥索力过程
/post1
set,last

*get,uyy1,node,15,u,y

esel,s,mat,,3
etable,sbzt,smisc,34
etable,sbzb,smisc,35

esort,etab,sbzt,0,0
*get,sminT,sort,,max
esort,etab,sbzb,0,0
*get,sminB,sort,,max
smin=max(sminT,sminB)


lgwrite,arch,lgw
save
finish


/exit    !并修改.lgw文件(!/batch!/input,menust,tmp,)

!重新进入ansys
/filname,arch
/input,arch,lgw
/opt             !进入优化处理器
OPANL,arch,lgw


opvar,chuyingbian1,dv,8E-05,0.3,
opvar,chuyingbian2,dv,8E-05,0.3,

opvar,smin,sv,-2e8,2e8,

OPSAVE,trussvar,opt


opvar,uyy1,obj

optype,first
opsubp,10
opexe

/opt
oplist,all,,1
finish
页: [1]
查看完整版本: ansys优化,设计变量改编而目标函数值未改变