请教高手MATLAB约束非线性规划/一M文件的调试

来源:百度知道 编辑:UC知道 时间:2024/06/07 20:20:14
M文件如下,怎么调试呀,老有错误,请高手帮忙,急呀!
% 两级斜齿轮传动中心距优化设计

% 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];
% 使用多维约束优化命令fmincon(调用目标函数jsqyh_g和非线性约束函数jsqyh_g)
% 不定义线性不等式约束中设计变量的系数矩阵a=[]和常数项向量b=[]
% 没有等式约束,侧参数:系数矩阵Aeq=[]和常数项向量beq=[]
[x,fn]=fmincon(@jsqyh_f,x0,[],[],[],[],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 ' ======

改了几处,通了。

function hahah
% 两级斜齿轮传动中心距优化设计
% 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];
% 使用多维约束优化命令fmincon(调用目标函数jsqyh_g和非线性约束函数jsqyh_g)
% 不定义线性不等式约束中设计变量的系数矩阵a=[]和常数项向量b=[]
% 没有等式约束,侧参数:系数矩阵Aeq=[]和常数项向量beq=[]
[x,fn,exitflag]=fmincon(@jsqyh_f,x0,[],[],[],[],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);
g=js