matlab非线性约束优化设计-求大神指教,最好能发个源程序供参考

编了几次程序都无法运行,提示函数表达式不对,求指教,最好给我个源程序

分析题主的链轮优化问题,其极小值问题是呼有点问题。根据机械设计理论,其极小值问题这样提出比较合理。即

min  P(x)=(P0*Kz*Ki*Ka*Kp)/KA    %x=[x1,x2,x3,x4]

式中:

P0=0.04467*x(1)^1.08*(x(2)/25.4)^(3-0.028*x(2));  %单排链功率

Ka=0.71332+0.0085*x(3)-0.001*x(3)^2/3; %中心距系数

KA=1.0; %工况系数

Kz=(x(1)/19)^1.08;  %小齿轮齿数系数

Kp=x(4)^0.84;  %多排链系数

Ki=0.82; %传动比系数

约束条件与题主相同。

根据上述,可以用matlab的fmincon()最小值函数求解,得到最优解。

首先、建立目标函数,fmincon_fun(x)

第二,建立约束函数,fmincon_con(x)

第三,用fmincon函数求解,即

[x,fval,exitflag] = fmincon(@(x) fmincon_fun(x),x0,[],[],[],[],lb,ub,@(x) fmincon_con(x));

求解结果

x1=35   %链轮齿数

x2=42.644  %链条节距,此处要标准来选取

x3=90  %链条节数

x4=3  %链条排数

P=-25.8279   %最小计算功率为25.8kW

如有问题,可以私信给我。

温馨提示:答案为网友推荐,仅供参考