利用APDL语言进行优化设计的例子.docx
《利用APDL语言进行优化设计的例子.docx》由会员分享,可在线阅读,更多相关《利用APDL语言进行优化设计的例子.docx(8页珍藏版)》请在冰点文库上搜索。
![利用APDL语言进行优化设计的例子.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/284f2b28-95cd-4efe-b842-8c43e4cd1e7d/284f2b28-95cd-4efe-b842-8c43e4cd1e7d1.gif)
利用APDL语言进行优化设计的例子
利用ansysAPDL进行优化设计的例子
一、问题描述:
二、分析文件的APDL语句及注释:
(可把该文件拷贝到一个文本文件,作为ansys的分析文件。
)
!
第一步,初始化ANSYS系统环境
FINISH
/CLEAR
/filename,BeamOpt
!
第二步,定义参数化设计变量
B=1.4 !
初始化宽度
H=3.8 !
初始化高度
!
第三步,利用参数创建有限元模型
/PREP7 !
进入前处理
ET,1,BEAM3 !
定义单元类型为BEAM3
AREA=B*H !
梁的截面积
IZZ=(B*(H**3))/12 !
绕Z轴的转动惯量
R,1,AREA,IZZ,H !
定义单元实常数,以设计变量表示
MP,EX,1,30E6 !
定义材料性质
MP,PRXY,1,0.3
N,1 !
创建节点1
N,11,120 !
创建节点11
FILL
E,1,2
EGEN,10,1,-1 !
复制单元
FINISH !
退出前处理
!
第四步,执行求解
/SOLU
ANTYPE,STATIC
D,1,UX,0,,11,10,UY
SFBEAM,ALL,1,PRES,20!
施加压力(单位长度上的负荷)=20
SOLVE
FINISH
!
第五步,进入后处理并创建状态变量与目标变量
/POST1
SET,,,,
NSORT,U,Y !
以Uy为基准对节点排序
*GET,DMAX,SORT,,MAX !
参数DMAX=最大位移
ETABLE,VOLU,VOLU !
VOLU=每个单元的体积
ETABLE,SMAX_I,NMISC,1 !
每个单元I节点处应力的最大值
ETABLE,SMAX_J,NMISC,3 !
每个单元J节点处应力的最大值
SSUM !
对单元表求和
*GET,VOLUME,SSUM,,ITEM,VOLU!
得到总的体积
ESORT,ETAB,SMAX_I,,1 !
按照单元SMAX_I的绝对值大小排序
*GET,SMAXI,SORT,,MAX !
参数SMAXI=SMAX_I中的最大值
ESORT,ETAB,SMAX_J,,1 !
按照单元SMAX_J的绝对值大小排序
*GET,SMAXJ,SORT,,MAX !
参数SMAXJ=SMAX_J中的最大值
SMAX=SMAXI>SMAXJ !
找到最大的应力
FINISH
三、优化过程的菜单方式实现
1、
设计变量有两个:
B和H
在本例中需要分别采用两种方法进行优化设计:
1)首先选用子问题(sub-problem)优化方法,设置迭代30次,获得7个可行性优化结果;2)再次基础上进行扫描法优化(DV-sweep),选择BESTDesignopt,NSPS中填入5.
优化过程的apdl,命令流:
finish
/INPUT,'BEAM','INP',',,0
!
执行优化分析
/OPT
OPCLR
OPANL,'BEAM','INP','' !
指定分析文件名
!
声明优化变量
OPVAR,B,DV,0.5,16.5 !
B和H为设计变量
OPVAR,H,DV,0.5,8
OPVAR,DMAX,SV,-0.1,0 !
DMAX和SMAX为状态变量
OPVAR,SMAX,SV,0,20000
OPVAR,VOLUME,OBJ !
VOLUME为目标函数
!
优化控制设置选项
OPDATA,,,
OPLOOP,PREP,PROC,ALL
OPPRNT,ON
OPKEEP,ON
!
选择子问题法进行第一次优化计算
OPTYPE,SUBP !
子问题法
OPSUBP,30,7, !
最大迭代次数
OPEXE !
执行优化循环
!
选择扫描法进行第二次优化分析
OPTYPE,SWEEP !
dvsweep扫描法
OPSWEEP,BEST,5 !
最佳设计序列,5次评估
OPEXE !
执行优化分析