当前位置:文档之家› 下料问题的优化设计

下料问题的优化设计

题1、[下料问题的优化设计]某车间有一大批长130cm的棒料,根据加工零件的要求,需要从这批棒料中成套截取70cm长的毛坯不少于100根,32cm 长的毛坯不少于100根,35cm长的毛坯不大于100根。

要求合理设计下料方案,使剩下的边角料总长最短。

根据题目意义,运用优化设计理论和方法,完成设计全过程;工程问题分析:数学模型建立及特征分析:优化方法选择;优化程序设计(解析优化);计算结果分析;结论及体会。

基于MATLAB一维优化下料问题分析
0 前言
生产中常会通过切割、剪裁、冲压等手段,将原材料加工成所需大小零件,这种工艺过程,称为原料下料问题。

在生产实践中,毛坯下料是中小企业的一个重要工序。

怎样减少剩余料头损失是节约钢材、降低产品成本、提高企业经济效益的一个重要途径。

在毛坯下料中我们常会遇到毛坯种类多、数量大的情况,如不进行周密计算则因料头而造成的钢材损失是相当可观的。

为使料头造成的钢材损失减少到最小程度,我们可依据预定的目标和限制条件统筹安排,以最少的材料完成生产任务。

1 一维优化下料问题的具体模型分析
设原材料长度为L,数量充足。

需要切割成n (n≥0)种不同规格的零件,根据既省材料容易操作的原则,人们已经设计好了n 种不同的下料方式,设第j 种下料方式中可下得第i 种零件
ij
a 个,又已知第i 种零件得需要量为i
b 个, j x
表示第
j
B 种下料方式所消耗得零件数目, j c
表示第
j
B 种下料方式所得余料(j=1, 2 , ⋯,
n, j x
∈ Z)。

满足条件的切割方案有很多种,现在要求既满足需要又使所用原材料数量最少,即最优下料方案满足:μp=min (∑j c j
x )约束条件:∑
ij a j x =i
b ,
j
x ∈Z 。

线性规划数学模型
根据线性规划算法,约束条件包括两部分:一是等式约束条件,二是变量的非负性。

出变量的非负要求外,还有其他不等式约束条件,可通过引入松弛变量将不等式约束化成等式约束形式。

如果是求最大值的,则松弛模型最优解对应的目标函数值必大于或等于整数规划最优解对应的目标函数值;如果问题是求最小值,则松弛模型最优解对应的目标函数值必于或等于整数规划最优解对应的目标函数值。

因此对于最优下料方案模型为:
[]()1
1
min 1n
p j j
j n
ij j j
j j f c x a x b x z μ==+⎧
==⎪⎪⎪=⎨⎪⎪∈⎪⎩∑∑
由式(1)的线性规划(LP)引入松弛变量
()20][min 1
1
⎪⎪⎪⎪⎩
⎪⎪⎪⎪⎨⎧
>===∑∑==j n
j i
j ij n
j j
j p x b x a x c f μ 如果得到的最优解是整数,则求解结束。

该最优解也是式(1)的最优解。

否则,得到的最优解只是式(1)的最优解的一个下界。

这样可以把式(1)划分为两个子问题。

再对式(3)和式(4)继续上述过程。

若在某一时刻得到了一个全整数解xm,则xm 为式(1)的一个上界。

此时 ,若打算从子问题k 开始分支,而这一问题的下界为xk>xm,则这一分支不必再考虑了,因为在这一分支中不会找到小于xm 的解。

如果xk<xm,则分支过程还要继续 。

MATLAB 一维优化算法
求解整数线性规划MATLAB程序 :
function [ x, y] = ILp ( f, G, h, Geq, heq, lb, ub, x, id, options)
global upper op t c x0 A b Aeq beq ID options;
if nargin < 10, options = optimset( { } ) ; options. Disp lay = ’off’;
op tions. LargeScale = ’off’; end
if nargin < 9, id = ones( size ( f) ) ; end
if nargin < 8, x = [ ] ; end
if nargin < 7 | isemp ty( ub) , ub = inf*ones( size ( f) ) ; end
if nargin < 6 | isempty( lb) , lb = zeros( size ( f) ) ; end
if nargin < 5, heq = [ ] ; end
if nargin < 4, Geq = [ ] ; end
upper = inf; c = f; x0 = x; A = G; b = h; Aeq = Geq; beq = heq; ID
= id;
ftemp = ILP ( lb ( : ) , ub ( : ) ) ;
x = opt; y = upper;
function ftemp = ILP ( vlb, vub)
global upper op t c x0 A b Aeq beq ID options;
[ x, ftemp, how ] = linp rog ( c, A, b, Aeq, beq, vlb, vub, x0, op-
tions) ;
if how < = 0
return;
end;
if ftemp - upper > 0. 00005 % in order to avoid error
return;
end;
ifmax( abs( x*ID - round ( x*ID) ) ) < 0. 00005
if upper - ftemp > 0. 00005 % in order to avoid error
op t = x’; upper = ftemp;
return;
else
op t = [ op t; x’] ;
return;
end;
end;
notintx = find ( abs( x - round ( x) ) > = 0. 00005) ; % in order to avoid error
intx = fix( x) ; tempvlb = vlb; tempvub = vub;
if vub ( notintx(1, 1) , 1) > = intx( notintx(1, 1) , 1) + 1;
tempvlb (notintx(1, 1) , 1) = intx( notintx(1, 1) , 1) + 1;
ftemp = IntLP ( tempvlb, vub) ;
end;
if vlb ( notintx(1, 1) , 1) < = intx( notintx(1, 1) , 1)
tempvub ( notintx(1, 1) , 1) = intx( notintx(1, 1) , 1) ;
ftemp = IntLP ( vlb, tempvub) ;
end;
2 线性规划实例分析
某车间有一大批长130cm的棒料,根据加工零件的要求,需要从这批棒料中成套截取70cm长的毛坯不少于100根,32cm长的毛坯不少于100根,35cm 长的毛坯不大于100根。

要求合理设计下料方案,使剩下的边角料总长最短。

分析:对于一维下料问题都可以用组合最优化的方法给出合理的下料方式。

该题要求剩余边角料总长最短,可以转化为求使用原材料的量最少。

设x1, x2, x3分别表示所需3种不同长度的棒料零件数,则70x1+32x2+35x3≤130(xi∈
Z+,i=1, 2, 3)。

其中x1≤1 ,表1给出下料方案。

表1 下料方案
由表1可列出目标函数及其约束条件
()1234561213452
34
min 2825283122510024100
52100
(1,2,3,4,5,6)j f x x x x x x x x x x x x x x x x z j +⎧=+++++⎪
+≥⎪⎪
+++≥⎨⎪++≤⎪⎪∈=⎩
用上面的MATLAB 程序求解方程组(5) > > c = [ 28, 25, 28, 31, 2,25];
> >A = [1, 1, 0, 0, 0;1,0, 1, 2, 4; 0,1,2,1,0;0,0,3]; > > b = [ 100; 100; 100 ];
> > [ x, f ] = ILp ( c, [ ] , [ ] , A, b, [ 0, 0, 0, 0, 0,0, ] , [ inf, inf, inf, inf, inf, inf,] ) ; x =[ 0 100 0 0 25 0]
由此可知按B2方式下100根,B5方式下25根,其余方式都不用,按这种方式下料最高。

3 结论及体会
通过用MATLAB 软件按
照一维下料问题优化进行分析,优化下料要求最大限度地节约原材料,提高原材料的利用率。

本次设计又加深了对机械优化设计的认识,提高了自己分析问题、解决实际问题的能力;利用软件可以快速、简洁的解决问题。

相关主题