对于优化设计来讲,ANSYS Workbench本身的优化工具箱已经具有非常多的功能,然而也正是由于对算法的过度包装,如果用户想自定义优化算法,用优化工具箱则不太现实,这时候可考虑采用Matlab和ANSYS APDL联合仿真来实现。Matlab负责整个优化算法的实施与控制,而ANSYS则负责对控制函数的求解。下面以一个框架结构来简单说明具体的操作流程。
框架结构的基本概况如下:
某4层4跨钢结构框架,各层矩形截面梁尺寸及各层柱尺寸相同,具体尺寸见下表。顶部两层承受200kN/m 均布荷载,底部两层承受100kN/m均布荷载, 整体结构承受200kN/m的侧向荷载,施加约束及荷载情况下图所示。 钢材弹性模量为210GPa, 泊松比为0.3,许用应力为235MPa,最大层间位移角为1/550,优化目标为各截面尺寸使总体质量最小。
各个优化变量的变化范围如下:
遗传算法的基本流程为:
针对本案例,操作流程为:
1、设置种群及遗传算法基本参数,种群 规模popsize,变量个数 N,最大进化代数 gmax,交叉概率 Pc,变异概率 Pm;
2、随机在设计变量的优化区间内初始化设计变量所得的值(A11,A21,A31,A41,,,,An1);
3、将初始的设计变量值存入 Input.txt文件;
4、ANSYS读取Input.txt文件;
5、以读取的值作为设计参数进行结构分析;
6、提取分析结果的状态变量—应力最 大值、层间位移角
7、将状态变量值存到Output.txt文件;
8、MATLAB读取Output.txt文件;
9、计算第i 个设计变量的目标函数值objvaluei;
10、计算第 i 个设计变量的适应度函数 fitvaluei;
计算图示为:
对于参数的设置,这里有如下建议:
1、对于种群规模的设置,当变量个数小于5时,建议取50,而大于5时,建议取200。种群数量直接决定了计算效率以及收敛性,以种群50,迭代为20代为例,则Matlab需要调用ANSYS计算1000次!
2、交叉概率建议取值在0.4~0.99之间,变异概率建议取值在0.001~0.1之间;
3、对于适应度函数的编写:这里的适应度函数其实是ANSYS目标函数到Matlab适应度形式的映射,所以在编写适应度函数的时候应考虑如下方面:
1)、适应度函数应直接和ANSYS所求目标变量挂钩;
2)、将ANSYS中的状态变量加入到适应度函数中;
3)、适应度函数必须是非负的,因为遗传算法通常是求取最小值;
4)、常见的两种映射关系如下所示。
对于低版本,可直接采用Matlab遗传算法工具箱进行,对于高版本,只能通过命令调用遗传算法,核心代码如下:
clear
clc
ansys_start_file='C:\Program Files\ANSYS Inc\v211\ansys\bin\winx64\MAPDL.exe';
ansys_work_dir='D:/MatlabEX';
macfile='D:/MatlabEX/kuangjia.mac';
global ansysline
ansysline=makeansys(ansys_start_file,ansys_work_dir,macfile);
bb=210;
bh=330;
ch=450;
fid=fopen('Indata.txt','w');
fprintf(fid,'%10.2f\n',bb);
fprintf(fid,'%10.2f\n',bh);
fprintf(fid,'%10.2f\n',ch);
fclose(fid);
%ansysfun(bb,bh,ch)
Lb=[100;100;100];
Ub=[500;500;500];
%算法控制
options=optimoptions('ga','MaxGenerations',25,'FunctionTolerance',1,'PlotFcn',{@gaplotstopping,@gaplotscorediversity,@gaplotscores,@gaplotdistance,@gaplotbestf,@gaplotbestindiv})
[x,feq]=ga(@ansysfun,3,[],[],[],[],Lb,Ub,[],options)
为了比较分析不同迭代次数对结果的影响,这里分别列出了种群数为50,迭代次数分别为10、15、25次的优化结果,如下所示:
从图中可见,当迭代次数为15次时,适应度函数基本收敛,最终优化的变量数值为:
梁宽BB=120mm左右;梁高HH=300mm左右;柱宽CB=240mm左右。
为了验算上述优化的正确性,采用ANSYS Workbench的优化工具箱进行了验证,最终采用优化工具箱得到的优化结果如下所示:
从结果可见,两者非常接近,说明上述过程采用Matlab调用ANSYS 并采用遗传算法的优化过程 可靠!
本次案例来源于水哥Matlab&ANSYS APDL联合仿真专题教程的第一个综合案例,欢迎大家购买观看,详细课程目录及案例详情可点击下方文章了解。
Matlab&ANSYS联合仿真系列教程
有任何问题,欢迎留言~
更多即时资讯,欢迎扫描如下二维码关注本站微信公众号:ANSYS结构院
暂无评论内容