⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 16-多目标优化问题的理想有效解.m__.htm

📁 机械原理、设计matlab程序,01-连杆机构的运动设计-1.m__.htm 等
💻 HTM
字号:
<html><head><title>MATLAB.rar 16-多目标优化问题的理想有效解.m</title>
<LINK href="/inc/read_style.css" type=text/css rel=stylesheet></head>
<body>
<p><a href=http://www.pudn.com>www.pudn.com</a> &gt; <a href="http://www.pudn.com/downloads111/sourcecode/graph/detail461284.html">MATLAB.rar</a> &gt 16-多目标优化问题的理想有效解.m</p><!-- saved from http://www.pudn.com -->
<script src="/inc/gg_read1.js"></script><BR>
<pre name="code" class="m">
% 圆柱螺旋弹簧的多目标优化设计 
% 设计变量:簧丝直径x(1)=d,中径x(2)=D2,圈数x(3)=n 
% 1----主程序(极小极大值函数fminimax) 
% 设计变量的初始值 
x0=[6.2;39;5]; 
% 设计变量的下限与上限 
lb=[2.5;27.5;3]; 
ub=[9;51;6]; 
% 线性不等式约束(g6(x)-g11(x))中设计变量的系数矩阵(非零元素) 
a=zeros(6,3); 
a(1,1)=-1; 
a(2,1)= 1; 
a(3,1)=-1;a(3,2)=-1; 
a(4,1)= 1;a(4,2)= 1; 
                    a(5,3)=-1; 
                    a(6,3)= 1; 
% 线性不等式约束(g6(x)-g11(x))中的常数项列阵 
b=[-2.5;9;-30;60;-3;6]'; 
% 没有等式约束,参数Aeq和beq定义为空矩阵符号“[ ]” 
L=[0.9434 42.5514 1.709e-3]; 
% 多目标优化函数fminimax(调目标函数TH_dmbyh_fTS和非线性约束函数TH_dmbyh_gTS) 
for i=1:4 
    H=[11*L(1)-i*L(1) 11.5*L(2)-i*L(2) 13.5*L(3)-i*L(3)]; 
    [x,fn]=fminimax('TH_dmbyh_fTS',x0,a,b,[],[],lb,ub,'TH_dmbyh_gTS',[],L,H); 
    for j=1:3 
        ff(j)=fn(j)*(H(j)-L(j))+L(j);         % 将各分目标函数还原成实际值 
    end 
    f1(i)=ff(1);f2(i)=ff(2);f3(i)=1./ff(3);   % 将各分目标最优值赋给各数组 
end 
disp '      ********  圆柱螺旋弹簧多目标优化设计最优解  ********'   
fprintf (1,'               簧丝直径 x(1)*       d = %3.4f mm \n',x(1)) 
fprintf (1,'               弹簧中径 x(2)*      D2 = %3.4f mm \n',x(2)) 
fprintf (1,'               弹簧圈数 x(3)*       n = %3.4f 圈 \n',x(3)) 
fprintf (1,'               弹簧结构重量 f1*     W = %3.4f N  \n',ff(1)) 
fprintf (1,'               弹簧自由高度 f2*    H0 = %3.4f mm \n',ff(2)) 
fprintf (1,'               弹簧自振频率 f3*    fr = %3.4f Hz \n',1/ff(3)) 
% 调用多维约束优化非线性约束函数(TH_dmbyh_gTS)计算最优点x*的性能约束函数值 
g=TH_dmbyh_gTS(x,L,H); 
disp '         ########    最优点的性能约束函数值    ########' 
fprintf (1,'              弹簧强度约束函数值     g1* = %3.4f \n',g(1)) 
fprintf (1,'              弹簧指数约束函数值     g2* = %3.4f \n',g(2)) 
fprintf (1,'              弹簧稳定性约束函数值   g3* = %3.4f \n',g(3)) 
fprintf (1,'              弹簧无共振约束函数值   g4* = %3.4f \n',g(4)) 
fprintf (1,'              弹簧刚度约束函数值     g5* = %3.4f \n',g(5)) 
disp '         ========    最优点的边界约束函数值    ========' 
fprintf (1,'            簧丝直径下限约束函数值   g6* = %3.4f \n',-b(1)-x(1)) 
fprintf (1,'                    上限约束函数值   g7* = %3.4f \n',x(1)-b(2)) 
fprintf (1,'            弹簧外径下限约束函数值   g8* = %3.4f \n',-b(3)-x(2)) 
fprintf (1,'                    上限约束函数值   g9* = %3.4f \n',x(2)-b(4)) 
fprintf (1,'            工作圈数下限约束函数值  g10* = %3.4f \n',-b(5)-x(3)) 
fprintf (1,'                    上限约束函数值  g11* = %3.4f \n',x(3)-b(6)) 
% 描述多目标优化决策的极小极大值和理想平面 
[fsort]=sort([f1;f2;f3]);             % 对数组f1,f2,f3元素按升序进行排序 
disp ' &&&&&&&&  多目标的极小极大值矩阵  &&&&&&&&' 
disp (fsort) 
subplot(1,2,1); 
plot3([fsort(1,1)],[fsort(2,1)],[fsort(3,1)],'go'); 
hold on; 
plot3([fsort(1,2)],[fsort(2,2)],[fsort(3,2)],'ro'); 
plot3([fsort(1,3)],[fsort(2,3)],[fsort(3,3)],'co'); 
plot3([fsort(1,4)],[fsort(2,4)],[fsort(3,4)],'b*'); 
grid; 
title('多目标函数的极小极大值'); 
xlabel('结构重量 f1 (N)'); 
ylabel('自由高度 f2 (mm)'); 
zlabel('自振频率 f3 (Hz)'); 
rotate3d;  
subplot(1,2,2); 
plot3([ff(1),0,0],[0,ff(2),0],[0,0,1/ff(3)],'r*-'); 
grid; 
title('多目标函数的理想平面') 
xlabel('结构重量 f1 (N)'); 
ylabel('自由高度 f2 (mm)'); 
zlabel('自振频率 f3 (Hz)'); 
rotate3d;                             % 鼠标控制三维视角变化的函数  
 
% 2----圆柱螺旋弹簧的多目标优化设计的目标函数(TH_dmbyh_fTS) 
function [f]=TH_dmbyh_fTS(x,L,H); 
% 钢的密度7.5e-6kg/mm^3;重力加速度9.80665m/s^2 
p=7.5e-6;gl=9.80665; 
% 对各分目标函数进行相同数量级的变换 ff=(f-L)/(H-L) 
f1=p*gl*pi^2*x(1)^2*x(2)*(x(3)+1.8)/4;    % 弹簧重量 
f(1)=(f1-L(1))/(H(1)-L(1)); 
f2=x(1)*(x(3)+1.3)+18.25;                 % 弹簧自由高度 
f(2)=(f2-L(2))/(H(2)-L(2)); 
f3=2.809e-6*x(2)^2*x(3)/x(1);             % 弹簧自振频率的倒数 
f(3)=(f3-L(3))/(H(3)-L(3)); 
 
% 3----圆柱螺旋弹簧的多目标优化设计的非线性不等式约束函数(TH_dmbyh_gTS) 
function [g,ceq]=TH_dmbyh_gTS(x,L,H); 
% 载荷F=680N;许用应力t=405MPa;工作频率fr=25;工作行程h=16.59 
% 弹簧曲度系数K=1.6/C^0.14(当工作循环次数N>1e3时);稳定临界高径比HD=5.3 
F=680;t=405;K=1.6;HD=5.3;fr=25;h=16.59;G=8e4; 
g(1)=8*K*F/pi*x(2)^0.86/x(1)^2.86-t; 
g(2)=6-x(2)/x(1); 
g(3)=(x(3)+1.3)*x(1)+18.25-HD*x(2); 
g(4)=10*fr-3.56e5*x(1)/x(2)^2/x(3); 
g(5)=F-h*G/8*x(1)^4/x(2)^3/x(3); 
ceq=[]; 
</pre>
<script src="/inc/gg_read2.js"></script><BR>
<script src="http://s117.cnzz.com/stat.php?id=1236358&web_id=1236358&show=pic" language="JavaScript" charset="gb2312"></script>
</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -