基于MATLAB优化工具箱的优化计算_第1页
基于MATLAB优化工具箱的优化计算_第2页
基于MATLAB优化工具箱的优化计算_第3页
基于MATLAB优化工具箱的优化计算_第4页
基于MATLAB优化工具箱的优化计算_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于MATLAB优化工具箱

的优化计算最优化(optimization

)的定义

最优化就是在众多可行的方案或方法中找到最好的方案和方法。最优方案就是达到最优目标的方案。最优化方法就是搜寻最优方案的方法。最优化理论就是最优化方法的理论。

建立最优化问题数学模型的三要素:(1)决策变量和参数。决策变量是由数学模型的解确定的未知数。参数表示系统的控制变量,有确定性的也有随机性的。(2)约束或限制条件。由于现实系统的客观物质条件限制,模型必须包括把决策变量限制在它们可行值之内的约束条件,而这通常是用约束的数学函数形式来表示的。(3)目标函数。这是作为系统决策变量的一个数学函数来衡量系统的效率,即系统追求的目标。2023/2/54线性与非线性规划问题例1.1运输问题:设有m个生产地点可供应物资,其供应量(产量)分别为.有n个销售地点,其需求量分别为,假设供需平衡既.用表示由运输单位物资的运价,如何确定一种调运方案才能使总运输费用最小.2023/2/55用表示由调运物资的数量,则运输问题的数学模型为:2023/2/56例1.2背包问题:有一只背包(泛指仓库、船舱、卫星仓等),最大装载重量为w单位。现有k种物品,每种的数量无限。第i种物品每件重量为,价值。每种物品各取多少装入背包,使其中的物品总价值最高。设取第i种物品件,则背包问题的数学模型为:

s.t.2023/2/57例1.3把半径为1的实心金属球熔化后,铸成一个实心圆柱体,问圆柱体取什么尺寸才能使它的表面积最小?决定圆柱体表面积大小有两个决策变量:圆柱体底面半径r、高h。问题的约束条件是所铸圆柱体重量与球重相等。即问题追求的目标是圆柱体表面积最小。即

min2023/2/58则得原问题的数学模型:2023/2/59例1.4(混合饲料配合)以最低成本确定满足动物所需营养的最优混合饲料。下面举一个简化了的例子予以说明。设每天需要混合饲料的批量为100磅,这份饲料必须含:至少0.8%而不超过1.2%的钙;至少22%的蛋白质;至多5%的粗纤维。假定主要配料包括石灰石、谷物、大豆粉。这些配料的主要营养成分为:2023/2/510配料每磅配料中的营养含量钙蛋白质纤维每磅成本(元)石灰石谷物大豆粉0.3800.000.0010.090.02

0.500.08

0.01640.04630.1250设是生产100磅混合饲料所须的石灰石、谷物、大豆粉的量(磅)。0.000.0022023/2/5112023/2/516基本概念1.约束最优化2023/2/517(1)等式约束最优化(2)不等式约束最优化(3)混合约束最优化:既有等式约束又有不等式约束的最优化问题。2023/2/5182.无约束最优化3.离散最优化

最优化模型中决策变量的取值为离散的最优化问题。4.连续最优化

最优化模型中决策变量的取值为连续的最优化问题。2023/2/5195.光滑最优化连续最优化模型中函数为光滑的最优化问题。即模型(1.1.1)中所有函数都是连续可微的。只要有一个函数非光滑的,则称为非光滑最优化。6.线性规划问题MATLAB优化工具箱一、常用的优化功能函数求解线性规划问题的主要函数是linprog。求解二次规划问题的主要函数是quadprog。求解无约束非线性规划问题的主要函数是fminbnd、fminunc和fminsearch。求解约束非线性规划问题的主要函数是fgoalattain和fminimax。二、一般步骤

建立目标函数文件

针对具体工程问题建立优化设计的数学模型不等式约束条件表示成g(X)≥0的形式

建立调用优化工具函数的命令文件文件内容:必须的输入参数、描述标函数表达式等存储:以自定义的目标函数文件名存储在文件夹中建立约束函数文件文件内容:必须的输入参数、约束函数表达式等存储:以自定义的约束函数文件名存储在文件夹中将优化设计的命令文件复制到MATLAB命令窗口中进行运算求解。分析优化设计的数学模型,选择适用的优化工具函数文件内容:初始点,设计变量的边界约束条件,运算结果输出等内容存储:以自定义的命令文件名存储于文件夹中。9.2线性规划问题一、线性规划数学模型1.主要应用对象:(1)在有限的资源条件下完成最多的任务;(2)如何统筹任务以使用最少资源。2.数学模型形式:

minfTXs.t.AX≤b(线性不等式约束条件)

AeqX=beq(线性等式约束条件)

lb≤X≤ub(边界约束条件)约束条件决策变量目标函数非负数线性3.MATLAB中函数调用格式

[xopt,fopt]=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)最优解最优值目标函数各维变量系数向量初始点可选项二、例题生产规划问题:某厂利用a,b,c三种原料生产A,B,C三种产品,已知生产每种产品在消耗原料方面的各项指标和单位产品的利润,以及可利用的数量,试制定适当的生产规划使得该工厂的总利润最大。生产每单位产品所消耗的原料现有原料数量(千克)ABCa342600b212400c132800单位产品利润(万元)243合计1800千克→x1→x2→x32x14x23x33x14x22x32x1x1x23x22x32x3≤≤≤++++++++3.确定约束条件:X=[x1,x2,x3]T4.编制线性规划计算的M文件f=[2,4,3]’A=[3,4,2;2,1,2;1,3,2];b=[600;400;800];Aeq=[];beq=[];lb=zeros(3,1);[xopt,fopt]=linprog(f,A,b,Aeq,beq,lb)二、例题解:1.确定决策变量:max2x1+4x2+3x33x1+4x2+2x3≤6002x1+x2+2x3≤400x1+3x2+2x3≤800设生产A、B、C三种产品的数量分别是x1,x2,x3,决策变量:

根据三种单位产品的利润情况,按照实现总的利润最大化,建立关于决策变量的函数:2.建立目标函数:根据三种资料数量限制,建立三个线性不等式约束条件5.M文件运行结果:Optimizationterminatedsuccessfully.xopt=0.000066.6667166.6667fopt=-766.6667x1,x2,x3≥0[xopt,fopt]=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)---9.3二次规划问题1.研究意义:(1)最简单的非线性规划问题;(2)求解方法比较成熟。2.数学模型形式:

s.t.AX≤b(线性不等式约束条件)

AeqX=beq(线性等式约束条件)

lb≤X≤ub(边界约束条件)一、二次规划问题数学模型约束条件决策变量目标函数二次函数3.MATLAB中函数调用格式

[xopt,fopt]=quadprog(H,C,A,b,Aeq,beq,lb,ub,x0,options)最优解最优值目标函数的海赛矩阵初始点可选项目标函数的一次项系数向量

结果xopt=[2.571,1.143,0.000]fopt=-16.4898二、例题求解约束优化问题s.t.解:(1)将目标函数写成二次函数的形式,其中:[xopt,fopt]=quadprog(H,C,A,b,Aeq,beq,lb,ub,x0,options)(2)编写求解二次规划的M文件:H=[4,-2,0;-2,4,0;0,0,2];C=[0,0,1];A=[1,3,2];b=[6];Aeq=[2,-1,1];beq=[4];lb=zeros(3,1);[xopt,fopt]=quadprig(H,C,A,b,Aeq,beq,lb)9.4无约束非线性规划问题无约束非线性规划问题的MATLAB函数有fminbnd要求目标函数为连续函数只求解单变量问题fminunc可求解单变量和多变量问题适用于简单优化问题可求解复杂优化问题fminsearch1.使用格式:

[xopt,fopt]=fminbnd(fun,x1,x2,options)9.4.1函数fminbnd设置优化选项参数迭代搜索区间目标函数返回目标函数的最优值返回目标函数的最优解2.例题:求解一维无约束优化问题f(x)=(x3+cosx+xlogx/ex)

在区间[0,1]中的极小值。解:(1)编制求解优化问题的M文件。

%求解一维优化问题fun=inline(‘(x^3+cos(x)+x*log(x))/exp(x)’,‘x’);%目标函数

x1=0;x2=1;%搜索区间

[xopt,fopt]=fminbnd(fun,x1,x2)(2)编制一维函数图形的M文件。

ezplot(fun,[0,10])title('(x^3+cosx+xlogx)/e^x')gridon9.4.1函数fminbnd运行结果:xopt=0.5223fopt=0.39741.使用格式:

[xopt,fopt]=fminsearch(fun,x0,options)9.4.2函数fminsearch设置优化选项参数初始点目标函数返回目标函数的最优值返回目标函数的最优解2.例题:求解二维无约束优化问题

f(x)=(x14+3x12+x22-2x1-2x2-2x12x2+6)的极小值。解:(1)编制求解二维无约束优化问题的M文件。

%求解二维优化问题

fun='x(1)^4+3*x(1)^2+x(2)^2-2*x(1)-2*x(2)-2*x(1)^2*x(2)+6';

x0=[0,0];

%初始点

[xopt,fopt]=fminsearch(fun,x0)(2)讨论。将目标函数写成函数文件的形式:

%目标函数文件search.mfunctionf=search(x)

f=x(1)^4+3*x(1)^2+x(2)^2-2*x(1)-2*x(2)-2*x(1)^2*x(2)+6;

则命令文件变为:

%命令文件名称为eg9_4.m

x0=[0,0];

%初始点

[xopt,fopt]=fminsearch(@search,x0)9.4.2函数fminsearch运行结果:xopt=1.00002.0000fopt=4.00001.使用格式:

[x,fval,exitflag,output,grad,hessian]=fminunc(@fun,x0,options,P1,P2…)9.4.3函数fminunc设置优化选项参数初始点调用目标函数的函数文件名目标函数在最优解的海色矩阵返回目标函数在最优解的梯度优化算法信息的一个数据结构返回算法的终止标志返回目标函数的最优值返回目标函数的最优解附加参数管道截面积:其中设计变量:9.4.3函数fminunc2.例题:已知梯形截面管道的参数是:底边长度c,高度h,面积A=64516mm2,斜边与底边夹角为θ。管道内液体的流速与管道截面的周长s的倒数成比例关系。试按照使液体流速最大确定该管道的参数。解:(1)建立优化设计数学模型

管道截面周长

hcθminx1x2f(X)目标函数的文件(sc_wysyh.m):functionf=sc_wysyh(x)%定义目标函数调用格式a=64516;hd=pi/180;f=a/x(1)-x(1)/tan(x(2)*hd)+2*x(1)/sin(x(2)*hd);%定义目标函数9.4.3函数fminunc2.例题:解:(1)建立优化设计数学模型

(2)编写求解无约束非线性优化问题的M文件[x,fval,exitflag,output,grad,hessian]=fminbnd(@fun,x0,options,P1,P2…)求最优化解时的命令程序:x0=[25,45];%初始点[x,Fmin]=fminunc(@sc_wysyh,x0);%求优语句fprintf(1,'截面高度hx(1)=%3.4fmm\n',x(1))fprintf(1,'斜边夹角θx(2)=%3.4f度\n',x(2))fprintf(1,'截面周长sf=%3.4fmm\n',Fmin)计算结果截面高度hx(1)=192.9958mm斜边夹角θx(2)=60.0005度截面周长sf=668.5656mmxx1=linspace(100,300,25);xx2=linspace(30,120,25);[x1,x2]=meshgrid(xx1,xx2);a=64516;hd=pi/180;f=a./x1-x1./tan(x2*hd)+2*x1./sin(x2*hd);subplot(1,2,1);h=contour(x1,x2,f);clabel(h);axis([100,300,30,120])xlabel('高度h/mm')ylabel('倾斜角\theta/(^{。})')9.4.3函数fminunc2.例题:解:(1)建立优化设计数学模型

(2)编写求解无约束非线性优化问题的M文件

(3)编写绘制一维函数图形的M文件title('目标函数等值线')subplot(1,2,2);meshc(x1,x2,f);axis([100,300,30,120,600,1200])title('目标函数网格曲面图')控制参数options序号功能默认值及其含义说明1输出形式0,无中间结果输出Options(1)=1,按照表格输出结果Options(1)=-1,隐藏警告信息2解x的精度1e-4Options(2)设置x解的终止条件3函数f的精度1e-4Options(3)设置函数f的终止条件4约束g的精度1e-6Options(4)设置约束g的终止条件5选择主要算法0Options(5)选择主要优化算法6搜索方向算法0fmin()函数为无约束优化搜索方向提供3种算法:Options(6)=0,拟牛顿法BFGS公式Options(6)=1,拟牛顿法DFP公式Options(6)=2,梯度法7步长一维搜索0fmin()函数为无约束优化的步长一维搜索提供2种算法:Options(7)=0,二次和三次混合插值法Options(7)=1,三次多项式插值法123控制参数options序号功能默认值及其含义说明8函数值输出Options(8)输出最终迭代函数值9梯度检验0,不检验Options(9)比较梯度10函数计算次数Options(10)输出函数计算次数11梯度计算次数Options(11)输出函数梯度计算次数12约束计算次数Options(12)输出约束计算次数13等式约束个数0,等式约束为0Options(13)输入等式约束个数14最大迭代次数100n(n为变量维数)Options(14)输入最大迭代次数15目标个数0Options(15)输入目标个数16差分步长最小值1e-8Options(16)步长的下限或变量的最小梯度值17差分步长最大值0.1Options(17)步长的上限或变量的最大梯度值18步长Options(18)步长参数,第1次迭代时置11239.5约束非线性规划问题1.数学模型形式:

minf(X)

s.t.AX≤b(线性不等式约束)

AeqX=beq(线性等式约束)

C(X)≤0(非线性不等式约束条件)

Ceq(X)=0(非线性等式约束)

Lb≤X≤Ub(边界约束条件)约束条件2.使用格式:

[x,fval,exitflag,output,grad,hessian]=fmincon(@fun,x0,A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)设置优化选项参数初始点调用目标函数的函数文件名目标函数在最优解的海色矩阵返回目标函数在最优解的梯度优化算法信息的一个数据结构返回算法的终止标志返回目标函数的最优值返回目标函数的最优解附加参数非线性约束条件的函数名设计变量的下界和上界线性等式约束的常数向量线性等式约束的系数矩阵线性不等式约束的常数向量线性不等式约束的系数矩阵无定义时以空矩阵符号“[]”代替控制参数options序号功能默认值及其含义说明1输出形式0,无中间结果输出Options(1)=1,按照表格输出结果Options(1)=-1,隐藏警告信息2解x的精度1e-4Options(2)设置x解的终止条件3函数f的精度1e-4Options(3)设置函数f的终止条件4约束g的精度1e-6Options(4)设置约束g的终止条件5选择主要算法0Options(5)选择主要优化算法6搜索方向算法0fmin()函数为无约束优化搜索方向提供3种算法:Options(6)=0,拟牛顿法BFGS公式Options(6)=1,拟牛顿法DFP公式Options(6)=2,梯度法7步长一维搜索0fmin()函数为无约束优化的步长一维搜索提供2种算法:Options(7)=0,二次和三次混合插值法Options(7)=1,三次多项式插值法控制参数options序号功能默认值及其含义说明8函数值输出Options(8)输出最终迭代函数值9梯度检验0,不检验Options(9)比较梯度10函数计算次数Options(10)输出函数计算次数11梯度计算次数Options(11)输出函数梯度计算次数12约束计算次数Options(12)输出约束计算次数13等式约束个数0,等式约束为0Options(13)输入等式约束个数14最大迭代次数100n(n为变量维数)Options(14)输入最大迭代次数15目标个数0Options(15)输入目标个数16差分步长最小值1e-8Options(16)步长的下限或变量的最小梯度值17差分步长最大值0.1Options(17)步长的上限或变量的最大梯度值18步长Options(18)步长参数,第1次迭代时置1例9-6

某二级斜齿圆柱齿轮减速器,高速级输入功率P1=6.2kW,转速n1=1450r/min;总传动比i=31.5,齿轮宽度系数ψa=0.4,齿轮材料和热处理:大齿轮45号钢正火187~207HB,小齿轮45号钢调质228~255HB,工作寿命10年以上。要求按照总中心距a∑最小来确定齿轮传动方案。解:(1)建立优化设计的数学模型①设计变量:将涉及总中心距a∑齿轮传动方案的6个独立参数作为设计变量

X=[mn1,mn2,z1,z3,i1,β]T=[x1,x2,x3,x4,x5,x6]T②目标函数:减速器总中心距a∑最小为目标函数二、例题

③约束条件:含性能约束和边界约束高速级齿轮接触强度条件低速级齿轮接触强度条件高速级大齿轮弯曲强度条件低速级大齿轮弯曲强度条件大齿轮与轴不干涉低速级齿轮副模数的下限和上限高速级小齿轮齿数的下限和上限高速级小齿轮齿数的下限和上限低速级小齿轮齿数的下限和上限高速级传动比的下限和上限齿轮副螺旋角的下限和上限性能约束边界约束二、例题(2)编制优化设计的M文件

[x,fval,exitflag,output,grad,hessian]=fmincon(@fun,x0,A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)%两级斜齿轮减速器总中心距目标函数functionf=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;%两级斜齿轮减速器优化设计的非线性不等式约束函数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=[];[]文件名为:Jsqyh_g.m文件名为:Jsqyh_f.m二、例题(2)编制优化设计的M文件

[x,fval,exitflag,output,grad,hessian]=fmincon(@fun,x0,A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)x0=[2;4;18;20;6.4;10];%设计变量的初始值lb=[2;3.5;14;16;5.8;8];%设计变量的下限ub=[5;6;22;22;7;15];%设计变量的上限[x,fn]=fmincon(@jsqyh_f,x0,[],[],[],[],lb,ub,@jsqyh_g);disp'************两级斜齿轮传动中心距优化设计最优解*************'fprintf(1,'高速级齿轮副模数Mn1=%3.4fmm\n',x(1))fprintf(1,'低速级齿轮副模数Mn2=%3.4fmm\n',x(2))fprintf(1,'高速级小齿轮齿数z1=%3.4fmm\n',x(3))fprintf(1,'低速级小齿轮齿数z2=%3.4fmm\n',x(4))fprintf(1,'高速级齿轮副传动比i1=%3.4fmm\n',x(5))fprintf(1,'齿轮副螺旋角beta=%3.4fmm\n',x(6))fprintf(1,'减速器总中心距a12=%3.4fmm\n',fn)g=jsqyh_g(x);disp'==========最优点的性能约束函数值=========='fprintf(1,'高速级齿轮副接触疲劳强度约束函数值g1=%3.4fmm\n',g(1))fprintf(1,'低速级齿轮副接触疲劳强度约束函数值g2=%3.4fmm\n',g(2))fprintf(1,'高速级大齿轮齿根弯曲强度约束函数值g3=%3.4fmm\n',g(3))fprintf(1,'低速级大齿轮齿根弯曲强度约束函数值g4=%3.4fmm\n',g(4))fprintf(1,'大齿轮顶圆与轴不干涉几何约束函数值g5=%3.4fmm\n',g(5))[],[],[],[],文件名为eg9_6.m二、例题(3)M文件运行结果

************两级斜齿轮传动中心距优化设计最优解*************高速级齿轮副模数Mn1=2.0461mm

低速级齿轮副模数Mn2=3.6059mm

高速级小齿轮齿数z1=18.5156mm

低速级小齿轮齿数z2=16.0000mm

高速级齿轮副传动比i1=5.8000mm

齿轮副螺旋角beta=8.0000

减速器总中心距a12=317.4186mm==========最优点的性能约束函数值==========

高速级齿轮副接触疲劳强度约束函数值g1=0.0000mm

低速级齿轮副接触疲劳强度约束函数值g2=0.0000mm

高速级大齿轮齿根弯曲强度约束函数值g3=-1.0042mm

低速级大齿轮齿根弯曲强度约束函数值g4=-15.1854mm

大齿轮顶圆与轴不干涉几何约束函数值g5=-761.8043mm2mm4mm19165.88338.292mm340mm9.838(4)优化结果处理

9.6多目标优化问题多目标优化问题的MATLAB函数有fgoalattain需确定各分目标的加权系数需知各分目标的单个的最优值目标函数的最大值逐次减小fminimax9.6.1函数fgoalattain

minvs.t.fi(X)-wiv≤goali

i=1,2,…,tAX≤b(线性不等式约束)

AeqX=beq(线性等式约束)

C(X)≤0(非线性不等式约束条件)

Ceq(X)=0(非线性等式约束)

Lb≤X≤Ub(边界约束条件)一、多目标优化问题数学模型标量变量各分目标函数分目标函数的权重各分目标函数的目标值

二、优化函数使用格式

[x,fval,exitflag,output,grad,hessian]=

fgoalattain(@fun,x0,goal,w,A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)设置优化选项参数各分目标权重各分目标期望值目标函数在最优解的海色矩阵返回目标函数在最优解的梯度优化算法信息的一个数据结构返回算法的终止标志返回目标函数的最优值返回目标函数的最优解附加参数非线性约束条件的函数名设计变量的下界和上界线性等式约束的常数向量线性等式约束的系数矩阵线性不等式约束的常数向量线性不等式约束的系数矩阵无定义时以空矩阵符号“[]”代替9.6.1函数fgoalattain初始点目标函数文件名三、例题

设计带式输送机传动装置上的普通V带传动。已知电机额定功率P=4kW,转速n1=1440r/min,传动比i=3,采用A型V带,每天工作不超过10小时。要求传动结构紧凑(带的根数尽量少,带轮直径和中心距尽量小)。

解:(1)建立优化设计的数学模型①设计变量:

V带传动的独立设计变量是小带轮直径dd1和带的基准长度LdX=[dd1,Ld]T=[x1,x2]T②目标函数:小带轮直径:中心距:带的根数:9.6.1函数fgoalattain1.1拟合直线P0=(0.02424dd1-1.112879)(kW)0.17kWKL=0.20639Ld0.211806拟合幂函数方程拟合双曲线方程minf1(X)=dd1=x1

③约束条件:含性能约束和边界约束小带轮直径>=推荐的A型带轮最小直径最大带速<25m/s小带轮包角>120°带传动的中心距要求小带轮基准直径的下限和上限带基准长度的下限和上限性能约束边界约束三、例题9.6.1函数fgoalattain9.6.1函数fgoalattain三、例题解:(1)建立优化设计的数学模型①设计变量:

X=[dd1,Ld]T=[x1,x2]T②目标函数:小带轮直径:中心距:带的根数:minf1(X)=dd1=x180~100mm320~400mm1~4按容限值确定权重,以使目标函数值在数量级上统一

③约束条件:(2)确定分目标和它们的权重(3)编制优化设计的M文件[x,fval,exitflag,output,grad,hessian]=fgoalattain(@fun,x0,goal,w,A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)%V带传动多目标优化设计的目标函数文件functionf=VDCD_3mb_MB(x)P=4;i=3;KA=1.1;

%已知条件:功率,传动比,工况系数f(1)=x(1);

%f1-小带轮基准直径:目标函数1a1=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;

%f2,中心距:目标函数2P0=0.02424*x(1)-1.1128789;

%单根带额定功率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;

%f3-V带根数:目标函数39.6.1函数fgoalattain三、例题(3)编制优化设计的M文件

%V带传动多目标优化设计的约束函数文件

function[g,ceq]=VDCD_3mb_YS(x)i=3;n1=1440;%已知条件:传动比,转速

g(1)=100-x(1);%小带轮直径>=Ddming(2)=pi*x(1)*n1/6e4-25%带速范围V<=Vmaxa1=x(2)/4-pi*x(1)*(i+1)/8;a2=x(1)^2*(i-1)^2/8;a=a1+sqrt(a1^2-a2);g(3)=120-180*(1-x(1)*(i-1)/a/pi);%小带轮包角>=alpming(4)=0.7*x(1)*(i+1)-a;%中心距范围a>=aminceq=[];9.6.1函数fgoalattain三、例题[x,fval,exitflag,output,grad,hessian]=fgoalattain(@fun,x0,goal,w,A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)(3)编制优化设计的M文件%V带传动多目标优化设计的调用命令P=4;i=3;n1=1440;KA=1.1;

%已知条件:功率,传动比,转速,工况系数x0=[100;1250];

%初始点(小带轮直径,V带基准长度)goal=[75,280,2];

%分目标w=[10^(-2),40^(-2),1.5^(-2)];

%分目标加权系数lb=[80,630];

%最小带轮直径和A型V带的基准长度ub=[100;4000];

%最大带轮直径和A型V带基准长度[xopt,fopt]=fgoalattain(@VDCD_3mb_MB,x0,goal,w,[],[],[],[],lb,ub,@VDCD_3mb_YS)9.6.1函数fgoalattain三、例题[x,fval,exitflag,output,grad,hessian]=fgoalattain(@fun,x0,goal,w,A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)[],[],[],[],Optimizationterminatedsuccessfully:Searchdirectionlessthan2*options.xopt=1.0e+003*0.10001.2269fopt=100.0000281.52963.5957(4)M文件运算结果9.6.1函数fgoalattain三、例题(5)优化结果处理

dd1100mm1227mmLd小带轮基准直径带传动中心距带的根数1250mm圆整4圆整%优化结果数据处理后部分参数计算Dd1=100;Dd2=Dd1*i;z=4;Ld=1250;v=pi*Dd1*n1/6e4;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''disp'***************计算结果*****************'fprintf(1,'小带轮基准直径Dd1=%3.0fmm\n',Dd1);fprintf(1,'大带轮基准直径Dd2=%3.0fmm\n',Dd2);fprintf(1,'V带基准长度Ld=%3.0fmm\n',Ld);fprintf(1,'传动中心距a=%3.2fmm\n',a);fprintf(1,'小带轮包角alpha=%3.2f度\n',alpha);fprintf(1,'V带根数z=%3.0fmm\n',z);(4)M文件运算结果9.6.1函数fgoalattain三、例题(5)优化结果处理

***************计算结果*****************小带轮基准直径Dd1=100mm大带轮基准直径Dd2=300mmV带基准长度Ld=1250mm传动中心距a=293.82mm小带轮包角alpha=141.00度V带根数z=4mm(4)M文件运算结果9.6.1函数fgoalattain三、例题(5)优化结果处理

(6)最终方案

9.6.2函数fminimax

minmax{f1,f2,…,f3}s.t.AX≤b(线性不等式约束)

AeqX=beq(线性等式约束)

C(X)≤0(非线性不等式约束条件)

Ceq(X)=0(非线性等式约束)

Lb≤X≤Ub(边界约束条件)一、多目标优化问题数学模型各分目标函数

二、优化函数使用格式

[x,fval,exitflag,output,grad,hessian]=

fminimax(@fun,x0,A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)设置优化选项参数目标函数在最优解的海色矩阵返回目标函数在最优解的梯度优化算法信息的一个数据结构返回算法的终止标志返回目标函数的最优值返回目标函数的最优解附加参数非线性约束条件的函数名设计变量的下界和上界线性等式约束的常数向量线性等式约束的系数矩阵线性不等式约束的常数向量线性不等式约束的系数矩阵无定义时以空矩阵符号“[]”代替9.6.2函数fminimax初始点目标函数文件名三、例题

已知直径为1单位长度的圆柱梁,要求将它制成矩形截面梁,满足重量最轻和强度最大的条件,试确定矩形截面尺寸。

解:(1)建立优化设计的数学模型①设计变量:矩形截面的宽和高

X=[x1,x2]T②目标函数:重量→截面积:弯曲强度→矩形截面矩量:9.6.2函数fminimaxminf1(X)=x1x2r=1x1x2

③约束条件:含性能约束和边界约束变量x1的上下限变量x2的上下限等式约束性能约束边界约束9.6.2函数fminimax三、例题(2)编制优化设计的M文件[x,fval,exitflag,output,grad,hessian]=fminimax(@fun,x0,A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)%矩形截面梁两目标优化设计的目标函数文件functionf=JXL_2mb_MB(x)f(1)=x(1)*x(2);

%f1:梁的截面积f(2)=-x(1)*x(2)^2/6;

%f2:梁的截面矩量%矩形截面梁两目标优化设计的约束函数文件function[c,ceq]=JXL_2mb_YS(x)ceq=x(1)^2+x(2)^2-1;%非线性等式约束c=[];%所有非线性不等式约束%矩形截面梁两目标优化设计x0=[1;1];lb=[0;0];ub=[1;1];[xopt,fopt]=fminimax(@JXL_2mb_MB,x0,[],[],[],[],lb,ub,@JXL_2mb_YS)(3)运行结果Optimizationterminatedsuccessfully:xopt=0.70710.7071fopt=0.5000-0.0589[],[],[],[],控制参数options序号功能默认值及其含义说明1输出形式0,无中间结果输出Options(1)=1,按照表格输出结果Options(1)=-1,隐藏警告信息2解x的精度1e-4Options(2)设置x解的终止条件3函数f的精度1e-4Options(3)设置函数f的终止条件4约束g的精度1e-6Options(4)设置约束g的终止条件5选择主要算法0Options(5)选择主要优化算法6搜索方向算法0fmin()函数为无约束优化搜索方向提供3种算法:Options(6)=0,拟牛顿法BFGS公式Options(6)=1,拟牛顿法DFP公式Options(6)=2,梯度法7步长一维搜索0fmin()函数为无约束优化的步长一维搜索提供2种算法:Options(7)=0,二次和三次混合插值法Options(7)=1,三次多项式插值法12控制参数options序号功能默认值及其含义说明8函数值输出Options(8)输出最终迭代函数值9梯度检验0,不检验Options(9)比较梯度10函数计算次数Options(10)输出函数计算次数11梯度计算次数Options(11)输出函数梯度计算次数12约束计算次数Options(12)输出约束计算次数13等式约束个数0,等式约束为0Options(13)输入等式约束个数14最大迭代次数100n(n为变量维数)Options(14)输入最大迭代次数15目标个数0Options(15)输入目标个数16差分步长最小值1e-8Options(16)步长的下限或变量的最小梯度值17差分步长最大值0.1Options(17)步长的上限或变量的最大梯度值18步长Options(18)步长参数,第1次迭代时置1125.1工具箱概述5.1.1工具箱的功能5.1.2工具箱的新特色5.1.3工具箱的结构5.2工具箱函数5.3GUI优化工具5.3.1GUI优化工具的启动5.3.2GUI优化工具的界面5.3.3GUI优化工具使用步骤5.3.4GUI优化工具应用实例5.4小结第5章MATLAB优化工具箱5.1.1工具箱的功能优化工具箱主要可以用于解决以下问题:(1)求解无约束条件非线性极小值;(2)求解约束条件下非线性极小值,包括目标逼近问题、极大-极小值问题以及半无限极小值问题;(3)求解二次规划和线性规划问题;(4)非线性最小二乘逼近和曲线拟合;(5)非线性系统的方程求解;(6)约束条件下的线性最小二乘优化;(7)求解复杂结构的大规模优化问题。5.1.2工具箱的新特色MATLABR2008b提供的优化工具箱是4.1版本,4.1版本较之以前的3.x版本,主要增加了以下新的特色。(1)函数fmincon、fminimax和fgoalattain中引入了并行机制,加快了梯度的计算速度;(2)函数gatool和psearchtool整合到优化工具箱GUI中;(3)函数fmincon的求解器中新增内点算法;(4)提供了KNITRO优化库的接口;(5)函数lsqcurvefit、lsqnonlin和fsolve的优化选项参数PrecondBandWidth默认值由0变为inf;(6)优化选项参数TolConSQP的默认值修改为1e–6;(7)输出结构中引入了参数constrviolation。5.1.3工具箱的结构5.2工具箱函数函数输入参数函数输出参数模型输入时需要注意的问题(1)目标函数最小化优化函数fminbnd、fminsearch、fminunc、fmincon、fgoalattain、fminmax和lsqnonlin都要求目标函数最小化。(2)约束非正优化工具箱要求非线性不等式约束的形式为Ci(x)≤0,通过对不等式取负可以达到使大于零的约束形式变为小于零的不等式约束形式的目的。(3)避免使用全局变量ceModel.vi”等VI来实现。5.3GUI优化工具优化工具(optimtool)是2006年9月在MATLAB7.2版本优化工具箱3.1版本中推出的,它是执行下列常见优化任务的图形用户界面。选择求解器并定义优化问题;设置和检查优化选项;运行问题并将结果可视化;在MATLAB工作空间和优化工具之间导入和导出问题定义、算法选项和结果;自动生成M文件代码,以获取工作并自动执行任务;带有图形选项,用来显示对求解器执行期间进度的预定义或自定义测量标准。5.3.1GUI优化工具的启动图5-2优化工具图形界面的菜单启动方式

图5-3优化工具图形界面

启动GUIOptimizationtool有以下两种方法。(1)在命令行上输入optimtool;(2)在MATLAB主界面单击左下角的“Start”按钮,然后依次选择“Toolboxes→Optimization→Optimizationtool(optimtool)。5.3.2GUI优化工具的界面GUI优化工具的界面主要分为三大块:左边为优化

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论