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

📄 15-优化设计的分析与计算-2.m

📁 MATLAb 机械源码文件好东西啊
💻 M
字号:
% 例2-两级斜齿轮传动中心距优化设计
% 1----减速器中心距优化设计主程序
% 设计变量的初始值
x0=[2;4;18;20;6.4;10];
% 设计变量的下界与上界
lb=[2;3.5;14;16;5.8;8];
ub=[5;6;22;22;7;15];
% 线性不等式约束(g6(x)-g17(x))中设计变量的系数矩阵
a=zeros(12,6);
a(1,1)=-1;a(2,1)= 1;
a(3,2)=-1;a(4,2)= 1;
a(5,3)=-1;a(6,3)= 1;
a(7,4)=-1;a(8,4)= 1;
a(9,5)=-1;a(10,5)= 1;
a(11,6)=-1;a(12,6)= 1;
% 线性不等式约束(g6(x)-g17(x))中的常数项列阵
b=[-2;5;-3.5;6;-14;22;-16;22;-5.8;7;-8;15];
% 使用多维约束优化命令fmincon(调用目标函数jsqyh_f和非线性约束函数jsqyh_g)
% 没有等式约束,参数Aeq和beq定义为空矩阵符号“[ ]”
[x,fn]=fmincon(@jsqyh_f,x0,a,b,[],[],lb,ub,@jsqyh_g);
disp '     ********  两级斜齿轮传动中心距优化设计最优解  ********'  
fprintf (1,'          高速级齿轮副模数           Mn1 = %3.4f mm \n',x(1))
fprintf (1,'          低速级齿轮副模数           Mn2 = %3.4f mm \n',x(2))
fprintf (1,'          高速级小齿轮齿数            z1 = %3.4f    \n',x(3))
fprintf (1,'          低速级小齿轮齿数            z3 = %3.4f    \n',x(4))
fprintf (1,'          高速级齿轮副传动比          i1 = %3.4f    \n',x(5))
fprintf (1,'          齿轮副螺旋角              beta = %3.4f 度 \n',x(6))
fprintf (1,'          减速器总中心距             a12 = %3.4f mm \n',fn)
% 调用多维约束优化非线性约束函数(jsqyh_g)计算最优点x*的性能约束函数值 
g=jsqyh_g(x);
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))

% 2----两级斜齿轮减速器总中心距的目标函数(jsqyh_f)
function f=jsqyh_f(x);
hd=pi/180;
a1=x(1)*x(3)*(1+x(5));
a2=x(2)*x(4)*(1+31.5/x(5));
cb=2*cos(x(6)*hd);
f=(a1+a2)/cb;

% 3----两级斜齿轮减速器优化设计的非线性不等式约束函数(jsqyh_g)
function [g,ceq]=jsqyh_g(x);
hd=pi/180;
g(1)=cos(x(6)*hd)^3-3.079e-6*x(1)^3*x(3)^3*x(5);
g(2)=x(5)^2*cos(x(6)*hd)^3-1.701e-4*x(2)^3*x(4)^3;
g(3)=cos(x(6)*hd)^2-9.939e-5*(1+x(5))*x(1)^3*x(3)^2;
g(4)=x(5)^2.*cos(x(6)*hd)^2-1.076e-4*(31.5+x(5))*x(2)^3*x(4)^2;
g(5)=x(5)*(2*(x(1)+50)*cos(x(6)*hd)+x(1)*x(2)*x(3))-x(2)*x(4)*(31.5+x(5));
ceq=[];

⌨️ 快捷键说明

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