matlab源程序求修改能运行

2025-03-01 12:21:36
推荐回答(1个)
回答1:

VDCD_3mb_YS.m

function[c,ceq]=VDCD_3mb_YS(x)
%V带传动多目标优化设计的约束函数文件
i=3;n1=1440;
c(1)=pi*x(1)*n1/6e4-25;
a1=x(2)/4-pi*x(1)*(i+1)/8;
a2=x(1)^2*(i-1)^2/8;
a=a1+sqrt(a1^2-a2);
c(2)=120-180*(1-x(1)*(i-1)/a/pi);
c(3)=0.7*x(1)*(i+1)-a;
ceq=[];

VDCD_3mb_MB.m

function f=VDCD_3mb_MB(x)
%V带传动多目标优化设计的目标函数文件
P=4;i=3;KA=1.1;
f(1)=x(1);
a1=x(2)/4-pi*x(1)*(i+1)/8;
a2=x(1)^2*(i-1)^2/8;
a=a1+sqrt(a1^2-a2);
f(2)=a;
P0=0.02424*x(1)-1.112879;
DP0=0.17;
alpha=180-180*x(1)*(i-1)/pi/a;
Kalp=alpha/(0.549636*alpha+80.396114);
KL=0.20639*x(2)^0.211806;
f(3)=KA*P/(P0+DP0)/Kalp/KL;

主程序

%V带传动多目标优化设计 
%多目标:f(1)-小带轮直径,f(2)-中心距,f(3)-V带根数
 %设计变量:x(1)-小带轮直径,x(2)-V带基准长度 
P=4;i=3;n1=1440;KA=1.1;
%已知条件:功率、传动比、转速、工况系数 
disp('==========已知条件==========');
fprintf('电动机功率P=%3.2fkW\n',P);
fprintf('电动机转速n1=%3.0fr/min\n',n1);
fprintf('传动比i=%3.2f\n',i);
fprintf('V带型号A型V带\n');
fprintf('工作情况系数KA=%3.2f\n',KA);
%V带传动多目标优化设计
P=4;i=3;n1=1440;KA=1.1;
x0=[100;1250];
A=[];b=[];
Aeq=[];
beq=[];
lb=[75;630];
ub=[331;4000];
goal=[80,400,4];
w=abs(goal);
[xopt,fopt]=fgoalattain(@VDCD_3mb_MB,x0,goal,w,A,b,Aeq,beq,lb,ub,@VDCD_3mb_YS)
%[xopt,fopt]=fminimax(@VDCD_3mb_MB,x0,A,b,Aeq,beq,lb,ub,@VDCD_3mb_YS)
%根据计算结果圆整为规范值
%V带轮基准直径
Dd1=input('根据A型V带轮基准直径系列圆整小带轮基准直径Dd1=');
disp('大带轮计算直径计算值:'),Dd2j=Dd1*i;
Dd2=input('根据A型V带轮基准直径系列圆整大带轮基准直径Dd2=');
%V带基准长度
Ld=input('根据A型V带轮基准长度系列圆整V带基准长度 Ld=');
%V带根数
z=input('确定带根数 z=');
%传动中心距和包角
a1=Ld/4-pi*Dd1*(i+1)/8;
a2=Dd1^2*(i-1)^2/8;
a=a1+sqrt(a1^2-a2);
alpha=180-180*Dd1*(i-1)/pi/a;
disp('*********计算结果*********');
fprintf('       小带轮基准直径    Dd1=%3.0fmm\n',Dd1);
fprintf('       大带轮基准直径    Dd2=%3.0fmm\n',Dd2);
fprintf('        V带基准长度       Ld=%3.0fmm\n',Ld);
fprintf('         传动中心距        a=%3.2fmm\n',round(a));
fprintf('         小带轮包角      alpha=%3.2f°\n',alpha);
fprintf('          V带根数          z=%3.0f\n',z);
%带速、带的初拉力和压轴力
q=0.1;
v=pi*Dd1*n1/6e4;
Kalp=alpha/(0.549636*alpha+80.396114);
F0=500*KA*P*(2.5/Kalp-1)/v/z+q*v^2;
Q=2*z*F0*sin(0.5*alpha*pi/180);
fprintf('             带速         v=%3.2fm/s\n',v);
fprintf('       带的初拉力        F0=%3.2fN\n',F0);
fprintf('       带的压轴力        FQ=%3.2fN\n',Q);

运行:

==========已知条件==========
电动机功率P=4.00kW
电动机转速n1=1440r/min
传动比i=3.00
V带型号A型V带
工作情况系数KA=1.10

Local minimum possible. Constraints satisfied.

fgoalattain stopped because the predicted change in the objective function
is less than the default value of the function tolerance and constraints 
are satisfied to within the default value of the constraint tolerance.




xopt =

   1.0e+03 *

    0.0872
    1.2500


fopt =

   87.1733  339.9628    4.3587

根据A型V带轮基准直径系列圆整小带轮基准直径Dd1=10
大带轮计算直径计算值:
根据A型V带轮基准直径系列圆整大带轮基准直径Dd2=20
根据A型V带轮基准长度系列圆整V带基准长度 Ld=5
确定带根数 z=2
*********计算结果*********
       小带轮基准直径    Dd1= 10mm
       大带轮基准直径    Dd2= 20mm
        V带基准长度       Ld=  5mm
         传动中心距        a=-2.00mm
         小带轮包角      alpha=800.37°
          V带根数          z=  2
             带速         v=0.75m/s
       带的初拉力        F0=912.19N
       带的压轴力        FQ=2354.41N