💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
2.1 焊接梁设计
2.2 拉伸压缩弹簧设计
2.3 压力容器设计问题
2.4 悬臂梁设计问题
🌈3 Matlab代码实现
🎉4 参考文献
💥1 概述
本文基于ES-PSO算法在设计问题上的实现.这里使用有四个问题。
ES的灵感来自鹰的觅食行为。它使用不同的算法进行全局搜索和本地搜索。ES 是一种两阶段方法。在这里,使用ES改进了Particel Swarm优化(PSO)算法。这种方法用于一些设计问题;焊接梁设计,拉伸/压缩,压力容器,悬臂梁设计。
📚2 运行结果
2.1 焊接梁设计
2.2 拉伸压缩弹簧设计
2.3 压力容器设计问题
2.4 悬臂梁设计问题
部分代码:
%______________________________________________________________________________________
% cantilever beam design problem
%______________________________________________________________________________________
function o=Obj_function4(x)
o = [0];
%
o(1)=0.0624*(x(1) + x(2) + x(3) + x(4) + x(5));
%o(2)=65856000/(30*10^6*x(4)*x(3)^3);
o=o+getnonlinear(x);
function Z=getnonlinear(x)
Z=0;
% Penalty constant
lam=10^10;
g(1)=(61/(x(1)^3)) + (37/(x(2)^3)) + (19/(x(3)^3)) + (7/(x(4)^3)) + (1/(x(5)^3)) - 1;
% No equality constraint in this problem, so empty;
geq=[];
% Apply inequality constraints
for k=1:length(g),
Z=Z+ lam*g(k)^2*getH(g(k));
end
% Apply equality constraints
for k=1:length(geq),
Z=Z+lam*geq(k)^2*getHeq(geq(k));
end
% Test if inequalities hold
% Index function H(g) for inequalities
function H=getH(g)
if g<=0,
H=0;
else
H=1;
end
% Index function for equalities
function H=getHeq(geq)
if geq==0,
H=0;
else
H=1;
end
% ----------------- end ------------------------------
🌈3 Matlab代码实现
🎉4 参考文献
部分理论来源于网络,如有侵权请联系删除。