机械优化设计实例

更新时间:2023-08-26 03:41:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

机械优化设计实例

Matlab优化工具箱应用

郭惠昕

长沙学院机电工程系

优化设计的关键内容:

优化设计就是借助最优化数值计算方法与计算机技术,求取工程问题的最优设计方案。

优化设计包括:

(1)必须将实际问题加以数学描述,形成数学模型;

(2)选用适当的一种最优化数值方法和计算程序运算求解。

续:Matlab典型优化函数

2.3约束及其优化函数

1. 典型优化函数fminbnd

[函数] fminbnd

[格式] x = fminbnd(fun,x1,x2)

x = fminbnd(fun,x1,x2,options)

[应用背景]给定区间x1<x<x2,求函数f(x)的最小值。X可以是多元向量

[x,fval] = fminbnd(…)

[x,fval,exitflag] = fminbnd(…)

[x,fval,exitflag,output] = fminbnd(…)

2.3约束及其优化函数

[说明]

fun 是目标函数

x1,x2 设置优化变量给定区间的上下界options 设置优化选项参数

fval返回目标函数在最优解x点的函数值exitflag返回算法的终止标志

output 是一个返回优化算法信息的结构

2.3约束及其优化函数

[应用举例]

2

求函数f(x)=(x 3) 1在区间(0,5)内的最小值[代码] %首先编写目标函数的.m文件

function f=myfun(x)f=(x-3).^2-1;

%调用函数fminbnd

[x,fval]=fminbnd(@myfun,0,5)

[结果]x = 3fval= -1

2.3约束及其优化函数

2. 典型约束优化函数fimincon

求解函数如下数学模型:minf(x) x∈Rn

s.t.c(x)≤0

ceq(x)=0

A*x≤bAeq*x=beqlb≤x≤ub

其中A、Aeq是矩阵,b、x、beq、lb、ub均是向量

2.3约束及其优化函数约束函数: nonlcon:函数由每一个输入变量x计算出c c( x)≤ 0和非和ceq,用于估计给定x点的非线性不等式 c( x) ceq( x)= 0。线性等式和ceq ( x )见应用例。[注意]非线性、线性约束条件和设计变量的上下界约束:

c( x)≤ 0 ceq( x)= 0

非线性

A* x≤ b Aeq * x= beq lb≤ x≤ ub线性约束上下界

其中A、Aeq是矩阵,b、x、beq、lb、ub均是向量

minf(x)=0.78539815(4.75x1xx+85x1x2x 85x1x+0.92x1x

25

25

26

26

2223232326

x1x+0.8x1x2x3x6 1.6x1x3x6+x4x+x4x+32x)

s.t. g1(x)=17 x2≤0 g2(x)=x2x3 30≤0 g3(x)=0.2 x3≤0 g4(x)=16 x1x3 1≤0 g5(x)=x1x3 1 35≤0 g6(x)=10 x5≤0 g7(x)=x5 15≤0 g8(x)=13 x6≤0 g9(x)=x6 20≤0

g10(x)=x1+0.5x6 x4+4≤0

1 1 0.5

g11(x)=43854x2x3x1 855≤0

22g12(x)=7098/[x1x2x3(0.169+0.006666x2 0.0000854x2)] 261≤022g13(x)=7098/[x1x2x3(0.2824+0.00177x2 0.0000394x2)] 213≤0 13 4g14(x)=0.01233x1 1x3x4x5 0.003x4)] 261≤0 1 1 322 20.5g15(x)=29050x2x3x4x5(1+0.29709x2x3x4) 55≤0 1 1 322 20.5g16(x)=29050x2x3x4x6(1+7.42727x2x3x4)

55≤0

2.3约束及其优化函数

[函数] fmincon[格式]

x = fmincon(fun,x0,A,b)

x = fmincon(fun,x0,A,b,Aeq,beq)

x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)

x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)

x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)[x,fval] = fmincon(…)

[x,fval,exitflag] = fmincon(…)

[x,fval,exitflag,output] = fmincon(…)

2.3约束及其优化函数

[x,fval,exitflag,output,lambda] = fmincon(…)

[x,fval,exitflag,output,lambda,grad] = fmincon(…)

[x,fval,exitflag,output,lambda,grad,hessian] = fmincon(…)[说明]fun 是目标函数

options 设置优化选项参数

fval返回目标函数在最优解x点的函数值exitflag返回算法的终止标志

output 返回优化算法信息的一个数据结构grad 返回目标函数在最优解x点的梯度

hessian返回目标函数在最游解x点Hessian矩阵值

2.3约束及其优化函数

llllllll

[应用举例]计算使函数f(x)= x1x2x3取最小值时的x值,

T

x0=[10,10,10],约束条件为0≤x1+2x2+2x3≤27分析:将约束条件化为两个不等式:

x1 2x2 2x3≤0x1+2x2+2x3≤27

从而可将它们写成矩阵不等式的形式:

A*x≤b

其中A=[-1,-2,-2;1,2,2], b=[0;27]

2.3约束及其优化函数

lll

代码:%首先编写目标函数的.m文件

function f=myfun(x) f=-x(1)*x(2)*x(3);

x0=[10;10;10] %起始点A=[-1,-2,-2;1,2,2];b=[0;27];

[x,fval]=fmincon(@myfun,x0,A,b)

llll

2.3约束及其优化函数

解得x =

1.0e+006 *

2.0057 -0.5014 -0.5014fval =

-5.0426e+017

2.4综合应用l l l l

范例(教材p194-195) 1、已知函数求2 f ( x )= e x1 * ( 4 x12+ 2 x2+ 4 x1 x2+ 2 x2+ 1)

min f ( x)x

且满足非线形约束:x1≥ 0 x2≥ 0

x1 x2 x1 x2≤ 1.5 x1 x2≥ 10

l

边界约束:

2.4综合应用l l

[分析]这样的非线性约束优化问题可以用MATLAB优化工具箱中的fmincon函数来求解,因为约束为非线性约束,所以不能将约束条件信息直接包含在函数的输入中,必须编写函数返回在每一点x处的约束值,然后再调用优化函数fmincon;另一方面,fmincon函数要求的约束条件一般为c(x)≤0,所以将约束改为:

x1 x2 x1 x2+ 1.5≤ 0 x1 x2 10≤ 0

2.4综合应用

llll

[程序清单]

%编写目标函数function y=objfun(x)

y=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);%编写返回约束值的函数Function [c,ceq]=confun(x)%非线性不等式约束

C=[1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];

llll

2.4综合应用

ll

%线形等式约束ceq=[];%初始点x0=[-1,1];%设置下界lb=[0,0];%无上界ub=[];

llllll

2.4综合应用

lll

llllll

%采用标准算法

options=optimset(‘largescale’, ‘off’);

[x,fval]=fmincon(‘objfun’,x0,[],[],[],[],lb,ub, ……..‘confun’,options)[c,ceq]=confun(x);[结果输出]x=

0 1.5000fval=

8.5000

本文来源:https://www.bwwdw.com/article/in4i.html

Top