二维下料优化系统.docx

上传人:b****7 文档编号:8702648 上传时间:2023-02-01 格式:DOCX 页数:22 大小:616.25KB
下载 相关 举报
二维下料优化系统.docx_第1页
第1页 / 共22页
二维下料优化系统.docx_第2页
第2页 / 共22页
二维下料优化系统.docx_第3页
第3页 / 共22页
二维下料优化系统.docx_第4页
第4页 / 共22页
二维下料优化系统.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

二维下料优化系统.docx

《二维下料优化系统.docx》由会员分享,可在线阅读,更多相关《二维下料优化系统.docx(22页珍藏版)》请在冰豆网上搜索。

二维下料优化系统.docx

二维下料优化系统

二维下料优化系统设计

2-DCuttingStockDesignOptimizationSystem

摘要

下料车间切割下料前的手工制图需要花费大量的人力,而且手工制图即使花费很长的时间还很难找到板材资料最大利用率的解决方案,以至于切割时浪费了大量材料。

基于上述问题,系统设计主要研究利用背包函数寻求二维排样的最优解决方案,并用VB绘制方案图形。

本文介绍了一个快速寻求二维下料最优方案的系统软件,它可以减少企业的人力消耗、提高原材料的利用率,进而提高企业的经济效益。

论文首先在调研的基础上分析了车间切割生产的现状,介绍了系统的开发背景和开发工具;然后详细介绍了系统模型的建立、线性模型的求解及模型的求解步骤,论述了算法的正确性和排样方式的生成过程;随后重点介绍了系统的各模块功能的设计过程与实现,并给出了核心模块的主要方法实现过程。

论文最后分析了系统的特点,概括了系统的优点,也指出了系统不足之处及改进方法。

关键词背包函数,二维排样,最优解方案,线性模型

ABSTRACT

Beforemanualdrawing,workshopofcuttingmaterialneedstospendalotofmanpowerandthemanualdrawingspendsmuchtime.Butitisverydifficulttofindinformationsheetutilizationofthelargestsolutioncutting,whichcauseswastageofmaterials.Basedontheproblemsmentionedabove,thesystemdesignmainlystudieshowtousebackpacksfunctionfortheoptimalsolutionoftwo-dimensionallayout.AndprogramfiguresaredrawnbyVB.Thispaperintroducesaquicksearchoftheoptimaltwo-dimensionalmaterialssystem.Theprogramcanreducehumanconsumptionofenterprise,improvetheutilizationofrawmaterialsandincreasethebenefitofenterprises.

Firstly,thispaperanalyzedcurrentcuttingproductionworkshop,andintroducedthebackground,developmenttoolsofthesystem,thesystemmodelandthelinearmodel.Andthesolutionstepsofthemodelsareintroducedindetail.Secondly,itdiscussesthevalidityofthewaysandtheproductionprocessofcuttingpatterns.Afterthat,itfocusesonthefunctionofthesystemofthemoduledesign,implementation,andthecoremoduleofthemainwaystoachievetheprocess.

Finally,thispaperanalyzedthecharacteristicsandtheadvantagesofthesystem.Itpointsoutthedeficienciesandthemeasuresoftheimprovement.

Keywordsbackpackfunction,two-dimensionallayout,optimalsolution,linearmodel

第1章绪论

在当今制造业中,存在着各种各样的浪费现象,其中最多的就是切割下料时造成的浪费。

现在计算机在各个行业的应用得到普及,为了减少浪费,提高板材利用率,开发一种软件用来对下料过程进行优化,并能有效的对零件进行管理是十分有必要的。

也就是采用计算机辅助排样技术来提高板材利用率。

计算机辅助排样,又称为CAN,和计算机辅助设计一样,是广泛应用的计算机辅助技术之一。

CAN的作用,就是设计最优排样方案以提高材料分割时的利用率。

本系统即基于VB开发平台和Access数据库的二维排样优化系统。

1.1开发背景及意义

现在下料车间板材浪费的主要原因是切割下料技术和下料方式过于旧,基本上还使用传统的手工切割生产方式。

随着科学技术的日益发展,计算机在制造业中也扮演着越来越重要的角色。

为了提高下料生产率,开发软件用来对下料过程进行优化,并能有效的对零件进行管理是很需要的。

即采用计算机辅助排样技术CAN来提高板材利用率。

排样问题的类型有:

〔1〕一维半排样问题,又称卷材排样问题,是指被分割的材料宽度较小,长度很大。

布匹、纸、皮革、塑料、金属网、金属薄板等,都可以以卷材的形式供应。

在分割过程中,通常先沿着卷材的长度方向,将其分割成很长的条带,然后再将条带分割成较小的毛皮。

〔2〕二维排样问题,又称为板材排样问题,是指将板材分割成各种形状的毛坯。

这些毛坯可以是矩形、圆形、扇形等规则形状,也可以是不规则形状。

〔3〕三维排样问题,在这个问题中,材料与毛坯都必须按立体形状处理。

典型的应用领域包括木材加工业,在那里需要将圆木分割成尺寸较小的方木。

现代切割技术有别于传统的手工切割技术,她是基于现代计算机信息技术,针对不同的切割下料设备,对传统切割技术加以改进提升,以余料数据库管理为核心的计算机辅助切割生产和管理软件,以有效提高板材综合利用率,提高切割效率和切割质量,强化企业的切割生产管理。

相应而生的现代切割技术。

为此对板材二维下料作了初步研究分析,并初步制作了一个有关矩形下料方面的软件。

1.2系统开发工具简介

在这里使用VB作为开发工具,用VB和Access数据库来完成系统的开发。

VB是当前Windows平台上的快速开发工具。

无论是企业级用户还是个人开发者,都能够利用VB轻松、快捷地构建企业应用。

VB具有以下优点:

〔1〕VB的语法简单易学,很容易上手。

〔2〕VB提供了强大的可视化编程能力,可以轻松地做出漂亮的程序。

〔3〕众多的控件让编程变得像搭积木一样简单。

1.3系统概述

首先进行数学模型分析、建立数据模型并实现计算机的计算求解。

实现的逻辑过程步骤如下:

〔1〕根据我们的问题建立线性规划模型。

〔2〕求解线性规划模型关键即求解背包函数问题。

〔3〕寻求几种求解背包函数问题的解法进行方案比较,选取合适的解法。

〔4〕用VB语言设计计算求线性规划方程的解的过程。

数据库信息管理主要包括:

用Access建立毛坯零件数据库;用VB语言及控件毛坯数据库;用VB语言对毛坯数据库数据进行管理分类;VB语言引用毛坯零件数据库数据进行线性规划模型的求解。

系统界面设计方面,在窗体上合理布局各个控件以便于用户的使用,为各个控件编程,实现其相应功能。

排样图形的生成设计过程,首先对计算结果数据的分析,找其规律进行引用,然后用VB语言的line控件绘制排样图。

第2章系统模型的建立及求解

二维下料系统有很重要的实际意义,一旦把它用于生产,将会产生巨大的经济效益。

目前市场上也出现了各种版本的优化软件,软件质量的好坏取决于优化率和优化速度,归根到底,也就是所采取的计算方法,即优化系统数学模型的建立问题。

由此看来,数学模型的建立是本系统开发的关键。

二维下料优化系统具有计算速度快,利用效率高的优点,这和它优秀的计算方法是分不开的,当然它也有其不足的地方:

〔1〕其解也只是一种近似最优解。

〔2〕由于是初步研究,目前我们的软件的计算前提是所用板材规格单一,只考虑了矩形毛坯且板材所用数量不限制。

下面我们就详细介绍数学模型的建立及计算机求解过程。

2.1模型的建立

下料问题是把相同形状的一些原材料分割加工成若干个不同规格大小的零件的问题,此类问题在工程技术和工业生产中有着重要和广泛的应用。

生产实践中,经常会遇到如钢板、木板等板材的下料问题,即如何根据原材料的长度、零件的尺寸以及需求量确定出使原材料消耗最少的最优下料方案。

在生产能力容许的条件下,以最少数量的原材料,尽可能按时完成需求任务,同时下料方式数也尽量地小。

由于是初步研究矩形毛坯排样系统的设计原理,我们建立的数学模型:

不考虑板材所用数的约束,在讨论生成排样方式时,只考虑单毛坯条带,整板直切排样方式,是初步对板材排样系统的开发研究。

首先定义如下符号:

L——板材长度

H——板材宽度

m——毛坯种数

n——考察排样的方式数

li——第i种毛坯的长度,1

i

m

hi——第i种毛坯的宽度,1

i

m

bi——第i种毛坯的需求量,1

i

m

B——B=[b1,b2,….,bn]T,bi表示第i种毛坯的需求量,1

i

m

X——X=[x1,x2,…xn]T,xj表示第j种排样方式切割的板材数,1

j

n。

C——C=[c1,c2,…cn]T,cj表示第j种排样方式所使用板材的单面积,如果只用一种板材,可令cj=L

H,1

j

n。

<本系统设计只考虑一种板材>

A——m行n列矩阵,其元素aij表示第j种排样方式每板材含第i种毛坯的数量,1

i

m,1

j

n。

矩形毛坯排样的线性规划模型如下:

minz=CX<1-1>

其中AX

BX

0

2.2线性规划模型的求解

根据线性规划理论,模型〔1-1〕可以按照下述步骤求解:

2.2.1确定初始可行解

初始令A为单位矩阵,初始可行解为X=B,第i种排样方式只包括第i种毛坯一个,不包括其他毛坯,i=1,2,3,…m。

采用这种方式处理后,模型中的排样方式数等于毛坯整数,即m=n。

2.2.2确定毛坯价值向量

令V=CA-1=[v1,v2,…vn]

寻求可能使目标函数改变的排样方式

设当前考察的排样方式P=[p1,p2,…,pn]T,pi表示含第i种毛坯的数量,1

i

m。

根据线性规划理论,若LH-VP<0,引入排样方式P可能改善目标函数。

寻求排样方式p以便改善目标函数的问题,可归纳为求解如下数学模型:

w=max〔

〕〔1-2〕

其中P为可行的排样方式〔1-2〕

若LH-w<0,根据线性规划问题求解法则,用排样方式P置换矩阵A中的一列〔设为第k列〕,并令Ck=LH,转步骤2;否则已不存在可以使模型〔1-1〕改善的排样方式,当前解为最优解。

应该如下确定A中被置换的列的序号:

{xi/pi│pi>0}=xk/pk<1-3>

2.2.3排样方式的形成

〔1〕确定当前毛坯的宽度和价值向量

矩形毛坯li,hi对应于两种宽度的条带,其宽度分别为hi和li,i=1,2,…,m。

用:

W=[w1,w2,…w2m],U=[u1,u2,…u2m]

分别记录当前条带的宽度向量和价值向量,用int表示不大于x的最大正整数,则有:

w2i-1=hi,w2i=li;u2i-1=vi*int,u2i=vi*int,i=1,2,…,m

〔2〕确定排样方式P

设方式P的条带构成由向量Y=[y1,y2,…,y2m]T反映,yi表示第i中条带的根数,1

i

2m。

如果已知Y,由于一种条带只包括一种毛坯,就可以经过简单的计算,确定排样方式P。

可通过求解如下数学模型得到向量Y:

w=max<

><1-4>

其中

H,yi为非负整数,i=1,2,…,2m

模型〔1-4〕为背包问题,相应的背包函数如下:

F〔x〕=max{

;yi为非负整数,

x}

上述模型可用如下递推公式求解:

F=0;Q=0;X<=H时

F=max{u1+F,u2+F,…,u2m+F}

如果根据上式,F=uk+F,则令Q=k,1

k

m,最优解w=F

这里对于给定的任何x,用Q记录实现F的路径。

实现F的路径由x1,x2,…,xr=x给出,这里xj-1=xj-wk,k=Q,j

2。

可以从Q开始,根据Q进行反向追踪,得到在最优路径众所含各种毛坯的个数。

从而决定各决策变量的值。

2.3模型的计算机求解步骤

根据线性规划理论,模型〔1-1〕可以按照下述步骤求解:

〔1〕定义数组分别代:

B--B=[b1,b2,…,bm]T,bi表示第i种毛坯的需求量,1

i

m

X--X=[x1,x2,…xm]T,xj表示第j种排样方式切割的板材数,1

j

m。

C--C=[c1,c2,…cm]T,cj表示第j种排样方式所使用板材的单面积,如果只用一种板材,可令cj=L*H,1

j

m。

A--m行n列矩阵,其元素aij表示第j种排样方式每板材含第i种毛坯的数量,1

i

m,1

j

n。

此时令n=m,并令A向量为单位矩阵。

hi--第i种毛坯的宽度

li--第i种毛坯的长度

li,hi--对应于两种宽度的条带

V--V=C*AT=[v1,v2,v3……,vm]

W--[w1,w2,w3……,w2m],w2i-1=hi,w2i=li,宽度向量

U--[u1,u2,u3……,u2m],u2i-1=vi*int,u2i=vi*int,

价值向量

P--[p1,p2,p3……,pm]pi=li,

SP--[sp1,sp2,sp3…,spm]spi=hi,

〔2〕利用递推公式求解背包函数:

SW--[sw1,sw2….sw2m]sw2i=intsw2i-1=int

F--递推函数j=<1,2,3……,H>

F=max{sw1+F,sw2+F,……,sw2m+F}j-i<0时,swi+F=0

Q--所取F函数的位置j=<1,2,3……,H>

间接推出一种中间方式Y--[y1,y2,y3,y4……,y2m],从而得到寻优排样方式PP--[pp1,pp2……,ppm],

pp

=y2i*int+y2i-1*int

当L*H-F<0,应将排样方式PP引入,由上述递推公式求解的方法来确定A中应该被置换的列的序号k:

min{x1/pp1,x2/pp2,……xi/ppi}由最小函数的位置来确定k的值,从而得到:

C=[L*H,L*H,…….]C中元素个数为m个

A,B,X=ATB。

如此递推,直到LH-F>=0,取其上一次的X,B,A,C各向量,其中X中的元素代表此次下料对应于A中各列〔代表各个排样方式〕所用的板材数。

A中各列代表每一板材上的排样,其中的元素代表在一板材上排的各种零件的个数。

在这里值得大家注意的是:

一板材沿长度方向分割成几种条带,每个条带上排的零件必是同一种,且横放竖放一样,这样的排样方式大大方便了切割加工,提高了生成效率的同时又兼顾到板材下料的利用率,两者兼得。

计算机求解线性规划模型的背包函数问题的过程如图2-3所示。

第3章系统的开发及实现

二维下料优化系统的数学模型建立后,就可以进行系统的开发了。

系统使用VB〔VisualBasic6.0〕作为开发工具,用VB和Access数据库来完成系统的开发。

VB是当前Windows平台上的快速开发工具。

无论是企业级用户还是个人开发者,都能够利用VisualBasic轻松、快捷地构建企业应用。

3.1设计思想

系统要实现计算机寻求最优排样方案,需要规的毛坯数据信息,因此系统首先要实现对毛坯数据库的管理。

依据调研过程中排样方案设计人员的工作流程,对于系统的实现方式可用如图3-1来表示:

3.2功能模块的划分

在开发二维下料系统应用程序之前,必须清楚地了解程序需要实现地各项功能,设计出应用程序的结构。

根据上述的系统功能分析,可以得到如图3-2所示系统功能模块。

3.3数据库实现

在二维下料系统中,其中重要的一部分就是毛坯零件信息库的管理。

在管理这些数据时,需要对这些数据进行插入、修改和删除等操作。

但最重要的是要对这些数据进行分析,然后从分析结果中把厚度、材质相同的毛坯零件放在同一个下料任务表中,并且要把表中那些长宽相同的加在一起。

毛坯零件基本信息实体的E-R图如3-3所示。

关系数据模型由概念模型转化而来,是按照计算机系统的观点来对数据建模的。

上面的数据库概念结构转化为某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。

毛坯零件基本信息表如表3-1所示。

表3-1毛坯数据库字段属性

字段名

类型

长度

是否为空

说明

编号

数字

长整型

N

长度

数字

单精度

N

二维下料零件的长度

宽度

数字

单精度

N

二维下料零件的宽度

厚度

数字

单精度

N

二维下料零件的厚度

材料

文本

50

N

二维下料零件的材料

数量

数字

单精度

N

二维下料零件的数量

名称

文本

50

N

二维下料的名称

3.4功能与应用背景

二维下料优化系统可以对所有的零件进行下料优化,达到提高下料利用率,加快下料速度,降低成本,提高生产率的目的。

本优化系统主要的功能有:

〔1〕零件库的建立与维护,包括零件的添加、修改与删除等。

〔2〕可以加入和删除零件库。

〔3〕可以查询和修改常用零件库。

〔4〕可以建立常用零件库。

〔5〕生成下料图表,直观方便,直接应用于生产。

3.5二维下料优化系统的实现

VB数据库应用程序有3个部分,即数据库引擎、数据库和应用程序。

数据库引擎是数据库驱动程序,使用它,我们可以用统一的格式访问各种文件。

使用VB应用程序访问数据库时,Jet引擎被包含在一组动态连接〔DLL〕文件中。

运行时,这些文件被引用到VB程序中。

Jet引擎将应用程序的请求翻译成对.mdb文件或其他数据库的物理操作。

Jet引擎真正读取、写入和修改数据库,并处理所有部的事务。

数据库是包含数据库表的一个或多个文件。

对于本地Access数据库来说,就是.mdb文件。

3.5.1添加公共模块

模块1定义两个函数,以提高代码执行效率:

Module1.bas

OptionExplicit

PublicDeclareFunctionCopyFileLib"kernel32"Alias"CopyFileA"AsLong

'定义文件复制的API函数

'检测文件是否存在

FunctionFileExistsAsBoolean

OnErrorResumeNext

FileExists=Dir$<>""

IfErr.Number<>0Then

FileExists=False

EndIf

OnErrorGoTo0

EndFunction

模块2主要定义两个常用变量,程序中可直接使用以减少重复定义.

Module2.bas

OptionExplicit

DimyyyyAsString'主要标识符

Typestu

numAsString

EndType

3.5.2欢迎模块的实现

〔1〕为了使系统美观,开始首先进入欢迎界面,其主体部分用Timer和VScroll控制可以循环显示使界面具有动态美。

实现的滚动文字的函数如下:

PrivateSubTimer1_Timer<>

Timer1.Interval=100

b=b+1'制作滚动的文本框

Ifb>iThenb=0

IfVScroll1.Value>=VScroll1.Min+20Then

VScroll1.Value=VScroll1.Value-30

Else

VScroll1.Value=VScroll1.Max

DoEvents

EndIf

Text1.Top=VScroll1.Value

Text1.Visible=True

DoEvents

t=Left

Form5.Caption=t

EndSub

欢迎界面的功能:

点击图标,进入二维下料优化设计系统。

3.5.3系统主模块的实现

在车床切割期间一次只能使用一种板材,因此在寻求最优排样方案前应先创建本次任务的分批数据库,然后依据板材名称、规格和厚度的不同,把总体下料任务划分为具体的各个子任务,并存放在分批数据库中。

在左上角的list用于显示分批数据库中的各个下料任务表名,这样用户可以很方便的选择每次要实现的子任务,并进行排样。

有时用户需要的下料信息并不是从别的任务派生出来的,这时用户可以通过"新建下料表"自己创建一个具体的下料任务表。

表存储在数据库的同时用户也可以在右侧的text文本框里看到新建的表名。

当一个任务完成时,点击一下"确认下料表"就可以把表名从text文本框中删除,用户可以方便的了解总的任务完成的进度。

为了便于用户及时准确清楚每次的下料数据,此界面添加了一个DataGrid控件。

用户不管点击list还是text里的表名,选中表的详细信息就会添加到DataGrid控件中,用户还可以选择其中的记录进行添加、删除、更新等操作。

任务表和板材的信息确定后就可以通过"方案图表"来实现最优排样方案,并绘制方案图形。

PrivateSubfangantubiao_Click<>为实现排样的函数。

核心代码部分如下:

w=Form1.Data1.Recordset.RecordCount'记录条数宽度向量

ReDimsy<101,2*w+1>'为动态数组变量重新分配存储空间

ReDimc<1,w>

Fori=1Tow

c<1,i>=Val*Val'val函数返回包含于字符串的数字,字符串中是一个适当类型的数值

Nexti'cj表示第j种排样方式所使用板

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1