当前位置:文档之家› Matlab机械优化设计实例教程

Matlab机械优化设计实例教程

表2 机床加工情况表
机床类 型
单位工作所需加工台时数 工件1 工件2 工件3
单位工件的加工费用 工件1 工件2 工件3
可用 台时数

0.4
1.1
1.0
13
9
10
700

0.5
1.2
1.3
11
12
8
800
设在甲机床上加工工件1、2和3的数量分别为x1、x2和x3,在乙机床上加工 工件1、2和3的数量分别为x4、x5和x6。根据三种工种的数量限制,有
令生产产品甲的数量为x1,生产产品乙的数量为x2。由题意可以 建立下面的模型: 该模型中要求目标函数最大化,需要按照Matlab的要求进行转换,即 目标函数为 首先输入下列系数:
f = [-7;-5]; A = [3 2
46 0 7];
现代设计理论与方法 浙师大工学院机械系 15
1.3线性规划及其优化函数
有约束的非线性最小化 二次规划
fgoalattain
多目标达到问题
现代设计理论与方法 浙师大工学院机械系 3
1.2有边界非线性最小化
[函数] fminbnd 功能:找到固定区间内单变量函数的最小值。 [格式] x = fminbnd(fun,x1,x2) x = fminbnd(fun,x1,x2,options)
现代设计理论与方法 浙师大工学院机械系 10
1.3线性规划及其优化函数
[说明] f: 是优化参数x的系数矩阵; lb,ub: 设置优化参数x的上下界; fval: 返回目标函数在最优解x点的函数值; exitflag:返回算法的终止标志; output: 返回优化算法信息的一个数据结构。 lambda:解x的Lagrange乘子
现代设计理论与方法 浙师大工学院机械系 13
1.3线性规划及其优化函数
[代码]f = [-5; -4; -6]; A = [1 -1 1;3 2 4;3 2 0]; b = [20; 42; 30]; lb = zeros(3,1); [x,fval] = linprog(f,A,b,[],[],lb)
1.2有界非线性最小化
[说明] fun 是目标函数 x1,x2 设置优化变量给定区间的上下界 options 设置优化选项参数 fval 返回目标函数在最优解x点的函数值 exitflag 返回算法的终止标志 output是一个返回优化算法信息的结构 该参数包含下列优化信息:
1. output.iterations – 迭代次数。 2. output.algorithm – 所采用的算法。
现代设计理论与方法 浙师大工学院机械系 12
1.3线性规划及其优化函数
[应用举例] 求使函数 f (x) 5x1 4x2 6x3 取最小值的x值, 且满足约束条件:
x1 x2 x3 20
3x1 2x2 4x3 42
3x1 2x2 30
x1 0, x2 0, x3 0
y =-2.0000
所以水槽的最大容积为2.0000m3。
现代设计理论与方法 浙师大工学院机械系 8
1.3线性规划及其优化函数
线性规划问题是目标函数和约束条件均为线性函数的问题, MATLAB解决的线性规划问题的标准形式为 :
f xmin x Rn sub.to:A x b
Aeq x beq
function f = myfun(x)
f = -(3-2*x).^2 * x;
然后调用fminbnd函数(磁盘中M文件名为opt21_3.m):
x = fminbnd(@opt21_3o,0,1.5)
得到问题的解:
x = 0.5000
即剪掉的正方形的边长为0.5m时水槽的容积最大。
水槽的最大容积计算:
[例四] 生产计划的最优化问题 某工厂生产A和B两种产品,它们需要经过三种设备的加工,其工时
如表9-16所示。设备一、二和三每天可使用的时间分别不超过12、10和8 小时。产品A和B的利润随市场的需求有所波动,如果预测未来某个时期 内A和B的利润分别为4和3千元/吨,问在那个时期内,每天应安排产品A、 B各多少吨,才能使工厂获利最大?
b = [90; 200; 210]; lb = zeros(2,1); 然后调用linprog函数: [x,fval,exitflag,output] = linprog(f,A,b,[],[],lb) x=
14.0000 24.0000 fval = -218.0000 exitflag =
1 output =
现代设计理论与方法 浙师大工学院机械系 2
1.1 优化工具箱中的函数
优化工具箱中的函数包括下面几类: 最小化函数
函数
描述
fminbnd
有边界的标量非线性最小化
linprog
线性规划
fminsearch, fminunc fminimax fmincon quadprog
无约束非线性最小化 最大最小化
[x,fval] = fminbnd(…) [x,fval,exitflag] = fminbnd(…) [x,fval,exitflag,output] = fminbnd(…) [应用背景]给定区间x1<x<x2,求函数f(x)的最小值。X可以 是多元向量
现代设计理论与方法 浙师大工学院机械系 4
iterations: 5 cgiterations: 0 algorithm: 'lipsol' 由上可知,生产甲种产品14吨、乙种产品24吨可使创建的总经济价值 最高。最高经济价值为218万元。exitflag=1表示过程正常收敛于解x 处。
现代设计理论与方法 浙师大工学院机械系 16
1.3线性规划及其优化函数
-1.0000
现代设计理论与方法 浙师大工学院机械系 7
[例二] 对边长为3m的正方形铁板,在四个角处剪去相等的正
方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?
假设剪去的正方形的边长为x,则水槽的容
积为
现在要求在区间(0,1.5)上确定一个x,使 最大化。
首先编写M文件opt21_3o.m:
[结果] x = 0.0000 15.0000 3.0000
fval = -78.0000
现代设计理论与方法 浙师大工学院机械系 14
1.3线性规划及其优化函数
应用实例 [ [例三] 生产决策问题 某厂生产甲乙两种产品,已知制成一吨产品甲需用资源A 3吨,资源B 4m3;制成一吨产品乙需用资源A 2吨,资源B 6m3,资源C 7个单位。 若一吨产品甲和乙的经济价值分别为7万元和5万元,三种资源的限制 量分别为90吨、200m3和210个单位,试决定应生产这两种产品各多少 吨才能使创造的总经济价值最高?
现代设计理论与方法 浙师大工学院机械系 6
1.2有边界非线性最小化
1.2.1 应用实例 [例一] 在区间(0,2π)上求函数sin(x)的最小值: x = fminbnd(@sin,0,2*pi) x=
4.7124 所以区间(0,2π)上函数sin(x)的最小值点位于 x=4.7124处。 最小值处的函数值为: y = sin(x) y=
现代设计理论与方法 浙师大工学院机械系 19
x1+x4=300 (对工件1) x2+x5=500 (对工件2) x3+x6=400 (对工件3) 再根据机床甲和乙的可用总台时限制,可以得到其它约束条件。 以总加工费用最少为目标函数,组合约束条件,可以得到下面的数 学模型: 首先输入下列系数: f = [13;9;10;11;12;8]; A = [0.4 1.1 1 0 0 0 0 0 0 0.5 1.2 1.3]; b = [700; 800]; Aeq=[1 0 0 1 0 0 010010 0 0 1 0 0 1]; beq=[300 500 400]; lb = zeros(6,1);
3. output.funcCount – 函数评价次数。
现代设计理论与方法 浙师大工学院机械系 5
1.2有边界非线性最小化
算法: fminbnd是一个M文件。其算法基于黄金分割法和二次插 值法。 局限性: 1.目标函数必须是连续的。 2.fminbnd函数可能只给出局部最优解。 3.当问题的解位于区间边界上时,fminbnd函数的收敛 速度常常很慢。此时,fmincon函数的计算速度更快,计 算精度更高。 4.fminbnd函数只用于实数变量。
MATLAB机械优化设计 实例指导教程
现代设计理论与方法 浙师大工学院机械系 1
概述
利用Matlab的优化工具箱,可以求解线性规 划、非线性规划和多目标规划问题。具体而言, 包括线性、非线性最小化,最大最小化,二次规 划,半无限问题,线性、非线性方程(组)的求 解,线性、非线性的最小二乘问题。另外,该工 具箱还提供了线性、非线性最小化,方程求解, 曲线拟合,二次规划等问题中大型课题的求解方 法,为优化方法在工程中的实际应用提供了更方 便快捷的途径。
现代设计理论与方法 浙师大工学院机械系 11
1.3线性规划及其优化函数
说明: 若exitflag>0表示函数收敛于解x, exitflag=0表示超过函数估值或迭代的最大数字, exitflag<0表示函数不收敛于解x;若lambda=lower 表示下界lb,lambda=upper表示上界ub, lambda=ineqlin表示不等式约束,lambda=eqlin表示 等式约束,lambda中的非0元素表示对应的约束是有 效约束;output=iterations表示迭代次数, output=algorithm表示使用的运算规则, output=cgiterations表示PCG迭代次数。
表1 生产产品工时表
产品
设备一 设备二 设备三
相关主题