💥💥💞💞歡迎來到本部落格❤️❤️💥💥
🏆部落客優勢:🌞🌞🌞部落格内容盡量做到思維缜密,邏輯清晰,為了友善讀者。
⛳️座右銘:行百裡者,半于九十。
📋📋📋本文目錄如下:🎁🎁🎁
目錄
💥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 參考文獻
部分理論來源于網絡,如有侵權請聯系删除。