一.拓扑优化概论:
连续体结构的拓扑优化设计是继结构的尺寸优化设计和形状优化设计之后,在结构优化领域出现的一种富有挑战性的研究方向,它是一种比尺寸优化和形状优化更高层次的优化方法,也是结构优化问题中最为复杂的一类问题。拓扑优化处于结构的概念设计阶段,其优化结果是一切后续设计的基础。因而在初始设计阶段需要确定结构的最佳拓扑形式。拓扑优化的目的是寻求结构的刚度在设计空间最佳的分布形式,或在设计域空间需求结构最佳的传力路线,以优化结构的某些性能或减轻结构的重量。
目前对于拓扑优化的研究主要集中在以下几个方面:
结构拓扑描述方式和材料插值模型;
weight的几种形式拓扑优化中结构拓扑描述方式和材料的插值模型非常重要,是一切后续拓扑优化工作的基础。常用的拓扑描述方式和材料插值模型有均匀化方法、密度法、变厚度法和拓扑函数描述法等。
拓扑优化求解数值算法,新型优化算法在拓扑优化中的应用;
拓扑优化的数值计算方法主要包括有限元法和无网格法,基于成熟的有限元理论的拓扑优化格式简单,便于实现,但在优化过程中常因网格的重分和细化导致计算困难,结构中常出现中间密度材料、棋盘格现象和网格依赖性等问题。无网格法是今年发展的一种新型数值求解技术,摆脱了有限元繁琐的网格生成过程,
从理论上看比有限元法拥有更广阔的应用前景,但目前尚处于发展和完善中。
拓扑优化的特点是:设计变量多,计算规模大,目标函数和约束函数一般为设计变量的非线性、非单调函数。目前应用于连续体结构拓扑优化计算的优化算法主要包括两类:优化准则法和序列凸规划法。
去除优化过程中数值计算不稳定的方法,优化结果的提取和重构;
拓扑优化中经常出现的数值计算问题有:多孔材料、棋盘格现象、网格依赖性和局部极值问题。优化结果的提取和应用主要考虑的是如何将优化的结果转化为可用的CAD模型问题,实现CAE和CAD之间的数据共享和交流。
随着拓扑优化理论研究的不断深入,拓扑优化在航空和汽车领域已开始得到初步的应用,主要是通过拓扑优化获得结构的最初拓扑形式,并在最初拓扑形式的基础上进行相关的后续优化设计。解决的问题范围包括:线弹性静态结构优化问题、动力优化问题及非线性等复杂情况下的优化问题。
二.ANSYS中拓扑优化相关理论及应用:
ANSYS中拓扑优化技术采用的是均匀化方法,具有优化准则法和序列凸规划两种优化算法。
1.均匀化方法:
均匀化方法是一种经典的拓扑优化方法,有着严密的数学和力学理论基础。连续体结构
拓扑优化的均匀化方法(Homogenization Method for Optimization)是Bendsoe等人于1988年提出的。其基本思想是:在组成拓扑结构的材料中引入细观结构,以宏观解结构单元模型对设计区域进行有限元离散划分,用周期性细观结构来描述宏观单元,优化过程中以细观结构的几何尺寸作为设计变量,把弹性模量、材料密度等参量表示成细观结构几何尺寸变量的函数。以细观结构的消长实现材料的增减。并产生介于由中间尺寸细观结构组成的复合材料,从而实现结构拓扑优化模型与尺寸优化模型的统一。它将复杂的拓扑优化问题挂靠在低层次的尺寸优化变量问题上来求解,但求解过程中均匀化弹性张量计算非常复杂,且微单元的最佳形状和方向难以确定,结构响应函数的密度求解复杂,优化变量过多,计算效率低等缺点,主要用于拓扑优化理论方面的研究。
2.优化算法:
目前应用于连续体结构拓扑优化计算的优化算法主要包括两类:优化准则法和序列凸规划法。
优化准则法收敛速度快,计算过程不使用导数信息,但其一般适用于单约束条件下的问题优化,且不同的优化问题需要推导不同的优化准则。序列凸规划算法包括序列线性规划方法、序列二次规划算法以及移动近似算法,其中移动近似算法(MMA)是目前使用最为广泛的算法之一,能够广泛应用于多约束情况,其计算过程中要使用前一步或多步的计算信息。
3.应用:
ANSYS中的拓扑优化工具可用来解决以下问题:
(1) 体积约束下的最大刚度设计:以柔顺度为目标函数,体积为约束函数;
(2) 刚度约束下的最小体积优化:以体积为目标函数,刚度为约束函数;
(3) 体积约束下的最大动刚度设计:以n阶自振频率为目标函数,体积为约束函数;
(4) 以上多种工况的组合优化问题;
形状优化实例
FINISH
/CLEAR,START
/TRIAD,OFF !关闭整体直角坐标系的三角符号
H=1000      !设置比例尺,采用iso
TK16=6.35/H !设置参数变量并附初值
TK27=6,35/H
TK38=6.35/H
TK49=6.35/H
TK50=4/H
/PREP7
ET,1,PLANE42
MP,EX,1,6.89E10
MP,NUXY,1,0.3
K,1
K,5,254/H
KFILL! 在第1至第5个关键点之间生成2,3,4关键点
K,6,,TK16
K,7,63.5/H,TK27
K,8,127/H,TK38
K,9,190.5/H,TK49
K,10,254/H,TK50
SPLINE,6,7,8,9,10
L,1,6
*REPEAT,5,1,1  !重复l命令,关键点编号自动加1,分别在2,7、3,8、4,9、5,10之间共生成4条线其中包含了、命令已生成的线,共5条
LSEL,S,LINE,,5,9  !选择上述生成的5条线
LESIZE,ALL,,,1 !指定线在划分网格前的等分数为1
LSEL,ALL
A,1,2,7,6
*REPEAT,4,1,1,1,1  !重复上述命令,共生成4个面
ESIZE,,4
AMESH,ALL
FINISH
/SOLU
NSEL,S,LOC,Y
DSYM,SYMM,X  !对选择的节点施加x方向的对称约束
NSEL,S,L
OC,X
DSYM,ASYM,Y !对选择的节点施加x方向的反对称约束
NSEL,ALL
FK,10,FX,66725*4 !在10号关键点施加集中载荷,实现弯矩
DK,1,ALL,0    !在1号关键点施加全约束
SOLVE
FINISH
/POST
SET,LAST
ETABLE,EVOL,VOLU      !建立单元表,并取出每个单元的体积
PRNSOL,S,SEQU  PRIN            !列出节点的主应力
NSORT,S,1
NSEL,U,LOC,Z,0,7000    !选择介于0到230/H的节点
*GET,STRS,SORT,,MAX  !取出最大的应力值并赋给strs
NSEL,ALL
SSUM                !体积相加
*GET,VTOT,SSUM,,ITEM,VOLU !取出结构总体积
TVOL=TVOL*2 !由于分析时只计算了结构的一半,总体积要乘2
NSEL,U,LOC,Z,0,7000 !选择介于250/H到265/H的节点
PRNSOL,U,X  !列表显示出所选节点在y向的位移值
NSORT,U,Y,,1  !位移值升序排列
PRNSOL,U,Y !列出排序后的结果
*GET,DEFL,SORT,,MAX !取出最大的位移值赋给defl
*STATUS,PARM !显示当前参数变量的状态值
DEFL=ABS(DEFL)
DIF1=TK16-TK27 !设置参数值,以保证曲线的光滑性
DIF2=TK27-TK38
DIF3=TK38-TK49
FINISH
/OPT
opanl,SCRATCH  !指定分析文件
opvar,TVOL,Obj,,,1/H            !定义优化目标函数,收敛误差为1
opvar,STRS,sv,,206E6                !  定义状态变量即优化过程的约束条件
opvar,DEFL,sv,,12.5/H             
opvar,DIF1,sv,,1/H
opvar,DIF2,sv,,1/H
opvar,DIF3,sv,,1/H
opvar,TK16,dv,4/H,7/H                !定义第一个设计变量及其变化范围
opvar,TK27,dv,4/H,7/H
opvar,TK38,dv,4/H,7/H         
opvar,TK4,9dv,4/H,7/H
opsave,INITIAL,opt  !保存所有的优化数据到文件optp里
optype,SUBP                    !设置优化方式,子问题逼近算法
OPSUBP,30  !指定迭代次数
opexe                            ! 执行优化
PARSAV,,RSET1  !将参数的值输出到文件中且文件名为rset1
oplist,all,,1                    !列表显示所有序列
/AXLAB,Y,TVOL  !设置曲线输出时y轴的说明
plvaropt,TVOL                !绘图显示目标函数随优化次数的变化规律
FINISH
/POST1
PLNSOL,U,SUM,0,1 !显示结构在优化后的总位移分布
PLNSOL,S,EQV,0,1 !显示结构在优化后的应力分布
FINISH
尺寸优化实例
FINISH
/
CLEAR,START
/TRIAD,OFF !关闭整体直角坐标系的三角符号
!CREATE,HEXPLATE生成一个宏文件,名为hexplate
*AFUN,DEG  !设置三角函数的角度单位为°
INRAD=200*COS(30)-20  !指定内半径
TI=30 !壁厚
FIL=10  !倒角半径
/PREP7
CYL4,-200,,INRAD,-30,INRAD+T1,30 !生成3个部分圆环面
CYL4,200*COS(60),200*SIN(60),INRAD,-90,INRAD+T1,150
CYL4,200*COS(60),200*SIN(-60),INRAD,90,INRAD+T1,150
AADD,ALL  !面相加
ADELE,ALL  !仅删除面,线保留
LSEL,,RADIUS,,INRAD+T1  !选择零件内控的线
L1=LSNEXT(0) !得到编号最小的线的编号
L2=LSNEXT(L1) !得到下一个编号最小的线的编号
L3=LSNEXT(L2)
LFILLET,L1,L2,FIL  !对内控的线进行倒角
LFILLET,L2,L3,FIL
LFILLET,L3,L1,
FIL
LSEL,AL !选择所有的线
WPROT,,90
LSBW,ALL !所有线由工作平面分割
WPROT,,,60
LSBW,ALL
CSYS,1  !设置坐标系为柱坐标系
LSEL,U,LOC,Y,0,60  !选择介于0到60°范围之外的所有线
LDELE,ALL,,,1 !删除所选择的线
LSEL,ALL !选择所有的线
KSLL  !选择依附线上的关键点
KSEL,INVE !选择不依附于线的关键点
KDELE,ALL !删除不依附于线的关键点
KSEL,ALL  !选择所有的关键点
CSYS,0  !设置坐标系为整体坐标系
KSEL,,LOC,Y,0 !选择y=0的关键点
LSTR,KPNEXT(0),KPNEXT(KPNEXT(0))  !对选择的关键点进行连线,即生成底线
KSEL,ALL
CSYS,1
KSEL,,LOC,Y,60 !选择theta=60°的关键点
LSTR,KPNEXT(0).KPNEXT(KPNEXT(0)) !由选择的关键点生成线,即左侧边线
KSEL,ALL
LSEL,,LOC,X,100 !选择x=100的线
LCOMB,ALL  !所选择的线相加生成一条线,即右侧边线
LSEL,ALL
AL,ALL !由所有线生成面
APLOT
ET,1,82,,,3 !设置单元为plan82,且为带厚度的平面应力问题
R,1,10 !
MP,EX,1,2.07E5 !
MP,NUXY,1,0.3 !
SMART,3 !设为智能划分方式
AMESH,ALL  !
FINISH !
/SOLU
CSYS,1 !设为柱坐标系
LSEL,U,LOC,Y,1,59 !选择介于0到60°范围之外的所有线,即左侧边线和底边线
DL,ALL,,SYMM !对选择的线施加对称约束
CSYS,0
LSEL,,LOC,X,100
SFL,ALL,PRES,-50 !对选择的线施加面力,即在右侧边线上施加
LSEL,ALL !
EQSLV,PCG  !选择求解器为pcg
SOLVE
WPSTYLE,,,,,,,,0 !关闭工作平面
FINISH
/
POST1
PLNSOL,S,EQV !显示应力分布图
/DSCALE,,OFF !奖比例显示关闭
/EXPAND,6,POLAR,HALF,,60!对模型进行对称扩展
/EXPAND
NSORT,S,EQV !对节点的Mises应力值进行排序
*GET,SMAX,SORT,,MAX  !取出最大的应力值
ETABLE,EVOL,VOLU      !建立单元表,并取出每个单元的体积
SSUM                !体积相加
*GET,VTOT,SSUM,,ITEM,EVOL !取出结构总体积
FINISH
!
*END    完成宏文件的生成
!*USE,HEXPLATE运行宏文件
/opt                            !进入优化处理器
opanl,HEXPLATE  !指定分析文件
opvar,t1,dv,20.5,40                !定义第一个设计变量及其变化范围
opvar,t2,dv,5,15                !         
opvar,smax,sv,,150                !  定义状态变量smax《150
opvar,,ovtot,Obj,,,1            !定义优化目标函数,收敛误差为1
optype,SUBP                    !设置优化方式,子问题逼近算法
opsave,ANFILE,opt  !保存所有的优化数据到文件optp里
opexe                            ! 执行优化
oplist,all,,,1                    !列表显示所有序列
plvaropt,t1,FIL            !绘图显示设计变量t1随优化次数的变化规律
plvaropt,smax                  !绘图显示状态变量smax随优化次数的变化规律
plvaropt,VTOT
FINISH
B=1000
A1=50
A2=50
A3=50
A4=50
A5=50
A6=50
A7=50
A8=50
A9=50
A10=50
/PREP7
ET,1,1
R,1,A1
R,2,A2
R,3,A3
R,4,A4
R,5,A5
R,6,A6
R,7,A7
R,8,A8
R,9,A9
R,10,A10
MP,EX,1,2.1E5
N,1,0
,0,0
N,2,B,0,0
N,3,2*B,0,0
N,4,2*B,B,0
N,5,B,B
N,6,0,B
REAL,1
E,6,5
REAL,2
E,5,4
REAL,3
E,1,2
REAL,4
E,2,3
REAL,5
E,2,5
REAL,6
E,3,4
REAL,7
E,2,6
REAL,8
E,1,5
REAL,9
E,3,5
REAL,10
E,2,4
FINISH
/SOLU
ANTYPE,STATICS
D,1,ALL                !结点自由度=0
D,6,ALL
F,2,FY,-4000              !结点2上的y向分量-4000
F,3,FY,-4000
SOLVE
FINISH
/POST1
SET,LAST
ETABLE,EVOL,VOLU  !将每个单元的体积放入etable
SSUM              !将单元表格内数据求和
*GET,VTOT,SSUM,,ITEM,EVOL  !vtot=总体积
RHO=7.85E-6
WT=RHO*VTOT                !计算总体积
ETABLE,SIG,LS,1              !将轴向应力放入etable
*GET,SIG1,ELEM,1,ETAB,SIG    !sig1=第一个单元的轴向应力
*GET,SIG2,ELEM,2,ETAB,SIG      !sig1=第二个单元的轴向应力
*GET,SIG3,ELEM,3,ETAB,SIG
*GET,SIG4,ELEM,4,ETAB,SIG
*GET,SIG5,ELEM,5,ETAB,SIG
*GET,SIG6,ELEM,6,ETAB,SIG
*GET,SIG7,ELEM,7,ETAB,SIG
*GET,SIG8,ELEM,8,ETAB,SIG
*GET,SIG9,ELEM,9,ETAB,SIG
*GET,SIG10,ELEM,10,ETAB,SIG
SIG1=ABS(SIG1)                !计算轴向应力的绝对值
SIG2=ABS(SIG2)
SIG3=ABS(SIG3)
SIG4=ABS(SIG4)
SIG5=ABS(SIG5)
SIG6=ABS(SIG6)
SIG7=ABS(SIG7)
SIG8=ABS(SIG8)
SIG9=ABS(SIG9)
SIG10=ABS(SIG10)
FINI
/OPT
OPANL,TRUSS,lgw        !指定分析文件
OPVAR,A1,DV,0,100      !定义设计变量
OPVAR,A2,DV,0,100
OPVAR,A3,DV,0,100
OPVAR,A4,DV,0,100
OPVAR,A5,DV,0,100
OPVAR,A6,DV,0,100
OPVAR,A7,DV,0,100
OPVAR,A8,DV,0,100
OPVAR,A9,DV,0,100
OPVAR,A10,DV,0,100
OPVAR,SIG1,SV,,200      !定义状态变量
OPVAR,SIG2,SV,,200
OPVAR,SIG3,SV,,200
OPVAR,SIG4,SV,,200
OPVAR,SIG5,SV,,200
OPVAR,SIG6,SV,,200
OPVAR,SIG7,SV,,200
OPVAR,SIG8,SV,,200
OPVAR,SIG9,SV,,200
OPVAR,SIG10,SV,,200
OPSAVE,TRUSSVAR,OPT        !存储数据
OPVAR,WT,OBJ              !定义目标函数
OPTYPE,FIRST            !定义一阶方法
OPFRST,4                  !最大4次迭代
OPEXE                    !开始优化分析
OPLIST,ALL                !列出所有设计序列或oplist,16列出最佳设计序列,序号为16
/AXLAB,X,ITERATION NUMBER !画重量对迭代次数的图形
/AXLAB,Y,Total Weight
PLVAROPT,WT
FINISH
/VIEW,1,1,1,1    !轴侧视图
EPLOT            !画单元

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。