本科毕业设计论文露天矿生产的车辆安排设计.docx
《本科毕业设计论文露天矿生产的车辆安排设计.docx》由会员分享,可在线阅读,更多相关《本科毕业设计论文露天矿生产的车辆安排设计.docx(58页珍藏版)》请在冰豆网上搜索。
本科毕业设计论文露天矿生产的车辆安排设计
露天矿生产的车辆安排
摘要:
本文主要研究了在露天矿生产过程中车辆安排的最优方案。
问题1模型的目标是使总运量(吨公里)为最小,在此基础上使用最小数量的卡车,同时保证在卡车不等待的条件下满足产量与质量的要求,并考虑到各铲位铲车数量与总共卡车数量以及各铲位石料数量的限制。
这个问题由于有电铲数量的限制,实际上是一个非线性规划问题,我们通过一定的技巧将问题转化为一个线性规划问题,通过MATLAB与LINDO软件进行求解。
问题2模型的目标是在满足现有车辆数量的限制下获得最大的产量,在产量相同的情况下,优先考虑岩石的产量,并求出在上述两者相同的条件下总运量最小的解,同时考虑问题1中的各个约束条件。
本题模型简单,对铲点与卸点的数量,铲车与卡车数量以及其他条件没有特别的要求,适用面非常广泛。
本问题最后的结果是:
第一小题安排7台电铲,分别安排在铲位1,2,3,4,8,9,10,出动13辆卡车,具体的运输计划见后面模型求解中的表格3,最小的总运量是8.56万吨公里(其中岩石产量3.22万吨,矿石产量3.82万吨)。
第二小题安排7台电铲,分别安排在铲位1,2,3,4,5,9,10,需要出动全部20辆卡车,具体的运输计划见后面模型求解中的表格4,最大的产量是10.19万吨,其中岩石产量是4.93万吨,在这个条件下,总运量最小是15.44万吨公里。
1.问题的重述
1.1背景
许多现代化铁矿露天开采的生产主要是由电动铲车(以下简称电铲)装车、电动轮自卸卡车(以下简称卡车)运输来完成,提高这些大型设备的利用率是增加露天矿经济效益的首要任务。
1.2问题
本题是一个来自实际露天矿生产的车辆安排的问题。
由题目可知,石料分为矿石和岩石,同时每个铲位至多一台电铲,并且一个班次内卸点保持不变。
题目要求卡车只点火一次且安排时不发生等待的情况,电铲与卸点同时只能为一辆卡车服务并且卡车每次都是满载运输,同时假设卡车在路上不会出现堵车现象。
一个班次的生产计划应该包含出动几台电铲,分别安排在哪些铲位上;出动几辆卡车,分别在哪些路线上各运输多少次(因为随机因素影响,装卸时间与运输时间都不精确,所以排时计划无效,只求出各条路线上的卡车数及安排即可)。
该问题要求我们找出一个合格的班次生产计划,在卡车不等待条件下满足产量和质量(品位)要求,同时考虑下列两条原则之一:
原则1:
总运量(吨公里)最小,同时出动最少的卡车,从而运输成本最小。
原则2:
利用现有车辆运输,获得最大的产量(岩石产量优先;在产量相同的情况下,取总运量最小的解)。
并就这两条原则分别建立数学模型,同时给出一个班次生产计划的快速算法。
在此要求的基础上,本问题还给出一实例,要求给出具体的生产计划,相应的总运量及岩石和矿石产量。
2.符号概念说明:
2.1常用概念说明:
1.工作量:
在一个班次时间内完成一定任务所需要的卡车数量(单位:
车次/班次,计算结果可能是非整数)。
2.整工作量:
工作量的整数部分。
3.余工作量:
工作量的小数部分。
2.2符号说明:
Si:
第i个铲位标号。
i=1,2…n,n为铲位数,本实例中为n=10。
Dj:
第j个卸点标号。
j=1,2…m,m为卸点数,本实例中为m=5。
xij:
从第i个铲位Si运送石料到第j个卸点Dj的运输次数。
其中i=1,2,...n,j=1,2,...m。
dij:
第i个铲位Si到第j个卸点Dj的距离(单位:
公里)。
w:
卡车的载重量(单位:
吨)。
v:
卡车的平均时速(单位:
公里/小时)。
k:
矿石卸点数(包括矿石漏和倒装场),本实例中为3,分别为矿石漏,倒装场
,倒装场
。
l:
岩石卸点数(包括岩石漏和岩场),本实例中为2,分别为岩石漏,岩场。
易见k+l=m。
ri:
第i个铲位Si的矿石数量。
si:
第i个铲位Si的岩石数量。
tj:
第j个卸点Dj一个班次的产量要求。
qi:
第i个铲位Si矿石的平均含铁量。
qmin:
卸点的含铁量要求的下限值。
(本实例中,Pmin=29.5%-1%=0.285)
qmax:
卸点的含铁量要求的上限值。
(本实例中,Pmin=29.5%+1%=0.305)
M:
总运量。
(单位:
吨公里)
H:
总产量。
(单位:
吨)
Q:
提供的卡车数。
N:
出动的卡车数。
P:
提供的电铲数。
U:
出动的电铲数。
R:
所有可能路线的数目(不包括没有安排任务的路线数,经计算在本实例中R=12(即xij中不为零的个数))。
T:
一个班次的时间(本实例为8小时)。
Tup:
铲位的装载时间。
Tdown:
卸点的卸载时间。
TTij:
从第i个铲位Si到第j个卸点Dj进行一次运输所需要的运输时间。
Tij:
从第i个铲位Si到第j个卸点Dj进行一次运输总共所需要的时间(其中包装载时间Tup,卸载时间Tdown和运输时间TTij三部分)。
yij:
在第i个铲位Si到第j个卸点Dj这条线路SiDj中,完全由若干辆卡车专门为此线路服务时所需要的车辆数,即这条线路的工作量。
zij:
在第i个铲位Si到第j个卸点Dj这条线路SiDj中,完全由若干辆卡车专门为此线路服务时,完成余下的任务所需要的车辆数(显然zij={yij}(yij的小数部分),是一个[0,1〕中的数),即这条线路的余工作量。
nij:
第i个铲位Si到第j个卸点Dj这条线路上安排的卡车数(可能是非整数)。
numij:
第i个铲位Si到第j个卸点Dj这条路线所能承受的卡车数(即同时运输满足不发生等待的最大的卡车数,可能是非整数)。
3.模型假设与分析
3.1模型的假设:
根据本问题的具体要求,并为了使得题目得到简化,除了问题中已给出了的若干假设外,我们进一步作以下的假设:
1.假设电动铲车固定在某一个铲位后不能移动到其他铲位;
2.假设卡车在一个卸点将所装载的所有石料(矿石或岩石)全部卸载;
3.2模型的分析:
本问题是一个有条件约束的非线性规划问题。
第一个问题的目标函数是总运量(用吨公里表示)最小,总运量是用卡车装载量和每对卸点与铲位之间的运输次数以及路线长度三者的乘积对各条道路的求和来表示。
此问题受到以下条件的约束:
不能出现卡车在各卸点和铲位等待的情况,满足各卸点矿石与岩石的产量与质量(品位)要求以及各铲点的供应能力(包括矿石与岩石)。
然后在上述方案的前提下,求出需要的最少卡车数,以尽可能降低运输成本,同时求出在每条线路上卡车的具体安排方案。
第二个问题的目标函数是产量最大,产量用各个卸点的矿石,岩石总数之和来表示。
除需要满足上述的约束条件外,还受到铲车数量与卡车数量的限制。
求出最大产量后,将产量作为一个约束条件,求出岩石最大的运输方案。
然后在这两者的约束下,求出总运量最小的解。
4.模型的建立与求解
下面从既定的两个原则出发,分别建立本问题的数学模型。
4.1首先分析问题一和问题二模型共同的约束条件:
4.1.1约束条件:
1.卸点的产量要求:
w*
>=tj,j=1,2,...m.
2.铲位的供应能力:
对于矿石来说,
w*
<=ri,i=1,2,...n.
对于岩石来说,
w*
<=si,i=1,2,...n.
3.卸点矿石的含铁量搭配(品位)要求:
qmin<=(
)/
<=qmax
4.不出现卡车等待的情况:
xij<=nij*numij;i=1,2,...n;j=1,2,...m.
<=T/Tdown,j=1,2,...m.
<=T/Tup,i=1,2,...n.
5.卡车数量的约束:
<=Q
6.电铲数量的约束:
U<=P
4.1.2约束条件说明:
约束条件1:
满足每个卸点所要求的最低产量,其中此产量是通过对每个铲位向该卸点运输的重量求和而得到。
约束条件2:
表示从每个铲位输出的石料(其中包括矿石和岩石)不超过该铲位的供应能力。
约束条件3:
表示运输到每个
卸点的矿石平均含铁量符合品位要求的范围。
平均含量=
。
约束条件4:
我们作这样的考虑:
首先计算每条路线所能承受的卡车数,当卡车数超过某一确定值numij时,将会发生等待情况。
其中:
numij=(dij*2/v+Tup+Tdown)/max(Tup,Tdown)通过一次运输装卸总时间与装/卸时间的对比计算了每条路线上最大可以承受的卡车数,因此,不会发生卡车等待现象的约束条件是xij<=nij*numij(i=1,2,...n;j=1,2,...m)。
在一个班次的有限时间内,即使每个卸点一直接受卡车的访问,它能够接受访问的次数是有限的,不能超过T/Tdown,即有
<=T/Tdown,j=1,2,...m.
对每个铲位来说,也有这样的约束:
<=T/Tup,i=1,2,...n.
约束条件5:
总共出动的卡车数N为所有路线上卡车数目之和,不超过Q。
约束条件6:
对于n个铲位和P个电铲,由排列组合原理知可以有Cnp中安排电铲的方法。
我们采用枚举的办法对这Cnp种情况逐一进行求解并从中选取最优解。
4.2问题一模型:
目标函数:
总运量最小minw*
出动最少的卡车minN
4.2.1目标函数说明:
目标函数
通过对每对铲位与卸点之间的运量(单位:
吨公里)求和(其中运量=该对铲位与卸点的距离*通过该路线的石料运输重量)来计算总运量。
目标函数
在满足目标函数
的同时,要使得出动的卡车数量最小。
4.2.2求解过程:
我们有如下的二分图:
铲位卸点
1)首先使用matlab对上述模型进行求解(参考文献[1]p213),得到各条路线上的卡车数nij,我们可以得到在矿井5,6,7不安排电铲的情况下可使得总产量取到最大值,具体的matlab实现代码请参见附录一。
2)然后我们使用了Lindo软件在满足以上约束条件的情况下对下面的目标函数进行了优化求解。
目标函数:
minw*
约束条件是在前述基本约束条件的基础上,增加了下述条件:
xij=0,i=5,6,7;j=1,2,...5即表示在矿位5,6,7不安排电铲。
这样就求得最小的总运量8.56万吨公里。
以下为优化结果(详细的实现代码请参见附录二)
表1
xij
value
xij
value
xij
value
xij
value
xij
value
X11
0
X12
0
X13
0
X14
0
X15
81
X21
13
X22
42
X23
13
X24
0
X25
0
X31
0
X32
0
X33
2
X34
0
X35
43
X41
0
X42
43
X43
0
X44
0
X45
0
X51
0
X52
0
X53
0
X54
0
X55
0
X61
0
X62
0
X63
0
X64
0
X65
0
X71
0
X72
0
X73
0
X74
0
X75
0
X81
54
X82
0
X83
0
X84
0
X85
0
X91
0
X92
0
X93
0
X94
70
X95
0
X101
11
X102
0
X103
70
X104
15
X105
0
由表中结果可以看出:
计划出动7台电铲,分别放置在铲位1,2,3,4,8,9,10。
下面考虑对卡车数进行优化求解,并得出每辆卡车的具体行车路线。
3)在这一步中,对由铲位卸点对构成的每条线路作这样的考虑:
该条线路的工作量=
即yij=xij*Tij/T
其中,Tij=Tup+Tdown+TTij(来回运输一次的总时间是装载时间,旅途运输时间和卸载时间三部分之和。
)
而旅途运输时间:
TTij=dij*2/v。
表2
Yij
value
Yij
value
Yij
value
Yij
value
Yij
value
Y11
0
Y12
0
Y13
0
Y14
0
Y15
1.81
Y21
0.82
Y22
1.07
Y23
0.66
Y24
0
Y25
0
Y31
0
Y32
0
Y33
0.10
Y34
0
Y35
1.20
Y41
0
Y42
1.15
Y43
0
Y44
0
Y45
0
Y51
0
Y52
0
Y53
0
Y54
0
Y55
0
Y61
0
Y62
0
Y63
0
Y64
0
Y65
0
Y71
0
Y72
0
Y73
0
Y74
0
Y75
0
Y81
1.82
Y82
0
Y83
0
Y84
0
Y85
0
Y91
0
Y92
0
Y93
0
Y94
1.83
Y95
0
Y101
0.31
Y102
0
Y103
1.48
Y104
0.33
Y105
0
对于这条线路所需要进行的运输车数,首先用最多的整数辆(即取上面计算得到的运输车数的高斯函数)卡车进行来回运输,余下的工作量(不足用一辆车来做的工作量)另外安排若干辆卡车来完成。
(记F为完成所有整工作量所需要的卡车数)。
对于每条线路SiDj(由铲位与卸点对确定的线路)的余工作量,可以抽象为如下的图论模型:
作有向图,将每条线路SiDj作为一个点Vk,点的权值为zij。
有向边VkVl的权值为从第k条线路的卸点到第l条线路的铲位卡车移动的工作量(即表示这卡车在完成第k个任务后移动去完成第j个任务的转移代价)。
下面分两种情况来分析模型。
不考虑边的权值:
即不考虑卡车在两个任务之间转移过程中所需的工作量,作这样的假设是有实际意义的,因为在转移过程中只需作一次从一个任务的卸点到另一任务的铲位的移动,这个工作量相对于全局来说是可以忽略的。
例如在本实例中,两个任务之间转移的最大的工作量是
=0.027车次/班次,相对于余工作量的平均值(0+1)/2=0.5车次/班次来说可以不考虑。
作了这样的假设之后,我们只需计算图中各顶点的权值之和:
H=
zij
因而,余工作量只需取H的天花板函数所得的卡车数在一个班次内完成。
这样便求得了整个过程所需的最少卡车数。
考虑边的权值:
考虑到在某些生产实例中,我们不能忽略任务之间转移的工作量,于是将模型简化为:
寻找最少数目的路线(长度不超过T),遍历所有的顶点。
这就转化为近似的多旅行商问题。
首先通过
H=
zij+(R-1)min{dij},
来求得附加所需车数的下界Amin=不小于H的最小整数。
然后对图划分为Amin块,对每一块用模拟退火算法求出权值,使得各块是大致均衡的(即各块的权值之和最接近)。
如果有的块权值之和大于tm,则将图划分为Amin+1块,按这样的方法对图进行逐步求解,直到所有的块的权值之和均不超过T为止,此时便得到了一种可行的分块方法,这种分块方法对应着一种完成余工作量的安排方法。
这样,我们可以得出整个过程中卡车的安排计划。
具体结果见下表。
Si:
第i个铲位;
D1:
矿石漏;
D2:
倒装场Ⅰ;
D3:
倒装场Ⅱ;
D4:
岩场;
D5:
岩石漏;
表3
卡车
一个班次卡车的运输路线及往返次数
K1
S1-D544次
K2
S2-D239次
K3
S3-D535次
K4
S4-D237次
K5
S8-D129次
K6
S10-D347次
K7
S9-D438次
K8
S1-D537次S4-D26次
K9
S9-D432次S10-D12次
K10
S8-D122次S10-D19次
K11
S10-D415次S10-D323次S8-D13次
K12
S2-D113次S2-D23次S2-D32次
K13
S2-D311次S3-D32次S3-D58次
由上述计算可得:
需要出动7台电铲,分别安排在铲位1,2,3,4,8,9,10;最小总运量为8.56(万吨公里);最少需要出动13辆卡车。
各辆卡车的具体运输路线见上表,详细实现代码请参见附录2。
4.3问题二模型:
目标函数:
总产量最大maxw*
4.3.1目标函数说明:
目标是总产量最大(岩石产量优先)。
总产量=各条路线所进行运输的产量之和。
首先安排固定的nij辆卡车为特定的路线服务,在这种情况下,我们计算各条路线上应安排的卡车数nij.
4.3.2模型的求解过程
我们对模型的求解分成两个部分。
1.先使用matlab对上述模型进行求解,得到各条路线上的卡车数nij,我们可以找在在矿井6,7,8不安排电铲的情况下可使得总产量取到最大值,具体的matlab实现代码请参见附录三。
2.接下来我们使用Lindo进行整线性规划,逐步求得最优的安排方案。
在求解过程中,我们不考虑卡车在不同路线之间转移所作的工作量。
阶段一:
目标函数
:
maxw*
约束条件是在基本约束条件的基础上,增加了下述条件:
xij=0,i=6,7,8;j=1,2,...5即表示在矿位6,7,8不安排电铲。
这样就求得最大的总产量Hmax=10.2万吨。
LINDO代码见附录四。
然后在总产量最大的情况下,找出岩石产量最大的安排计划。
阶段二:
目标函数
:
maxw*
在阶段一的约束条件基础上又增加了下述条件:
w*
=Hmax
即将总产量的最大值作为新增的约束条件,找出岩石产量最大的安排计划。
这样求出岩石产量的最大值Qmax为4.93万吨。
LINDO代码见附录五。
阶段三:
目标函数
:
minw*
dij*xij
在阶段二的约束条件基础上又增加了下述条件:
w*
=Qmax
即将岩石产量的最大值作为新增的约束条件,找出总运量最小的安排计划。
这样求出最小的总运量为15.44万吨公里。
LINDO代码见附录六。
至此我们计算得到了满足要求的最优解:
安排7台电铲,分别放在铲位1,2,3,4,5,9,10,运输的最大产量为10.2万吨。
其中,岩石产量为4.93万吨,最小的总运量为15.44万吨公里。
具体的卡车安排方案见下表。
表4
卡车
一个班次卡车的运输路线及往返次数
K1
S2-D239次
K2
S3-D320次
K3
S4-D237次
K4
S5-D327次
K5
S9-D438次
K6
S10-D446次
K7
S1-D544次S10-D31次
K8
S3-D118次S10-D31次
K9
S3-D118次S10-D31次
K10
S5-D420次S10-D32次
K11
S1-D215次S1-D522次
K12
S1-D515次S2-D226次
K13
S3-D513次S4-D224次
K14
S2-D21次S2-D32次S2-D527次
K15
S4-D27次S4-D519次S5-D14次
K16
S5-D112次S5-D211次S5-D35次
K17
S5-D312次S5-D44次S9-D116次
K18
S9-D15次S9-D434次S10-D31次
K19
S9-D43次S10-D415次S10-D329次
K20
S2-D51次S3-D15次S3-D33次
S3-D519次
5.模型的检验和评价
5.1模型的结果分析:
我们对计算机模拟得到的结果进行了近似估计。
对于第一个问题,从理论上估计出需要卡车的数量。
固定车辆数:
F=
=8;
附加的车数也可以通过余工作量来进行初步估计,即忽略了卡车在不同线路之间转移的工作量。
完成余工作量需要的卡车数:
E=
=4.48
所以需要的卡车数Nmin=F+E=12.48。
这从理论上说明了,至少要13辆卡车才能达到题中的产量要求。
5.2模型的评价:
5.2.1优点:
1.模型具有一般性,即提出了一个快速的通用算法,不论对于有题目背景的实际问题,还是对于其他工程科学中的相关问题,只要针对问题作一些微小的调整,本模型都适用。
2.算法相对简单,对于实际问题来说,模型的可操作性较强。
3.所建立的模型简洁明了,便于用数学工具,如MATLAB,LINDO等,降低了编程求解的难度,缩短了运行的时间,提高了工作效率。
5.2.2缺点:
1.为了简便计算,对一些次要因素我们进行了忽略,比如在问题二的模型求解过程中,我们忽略了不同路线之间的转移时间,可能会对结果产生微小的影响。
2.由于问题中涉及了整数的非线性规划,给精确计算带来了较大的困难,对此,我们采用了一些近似求解的技巧,这也可能会对计算结果产生影响。
3.由于题目要求卡车在运输过程中不能发生等待的情况,同时不能用精确的排时计划,所以按照我们提供的卡车安排计划,如果时间安排得不合理,可能会出现等待现象。
6.模型的改进
针对上述缺点,我们也试图通过增加一些约束条件来使得结果得到进一步的优化。
比如说对于卡车不等待的要求,我们从整体上作了一个约束,以保证从整个过程来看,在每个铲位,每个卸点,以及每条路线上都不会发生卡车等待的情况。
但对于具体的行车安排计划下,发生等待情况是有可能的。
我们进一步考虑了各个路线上进行一次运输所需要的时间与安排计划之间的关系,并用MATLAB作出关系图,编写程序来进一步约束,以取得更优的解,但限于时间,更深入的工作还没有完成。
7.参考文献
[1]姜启源,何青,高立,《数学实验》,北京:
高等教育出版社,1999
[2]中国数学会,《数学的实践与认识》,北京报刊发行局,VOL31,NO.1,2001
8.附录
附录1:
functionpp=f()
%距离
d=[5.26,4.21,2.95,2.46,0.64,
1.90,1.90,1.27,1.48,3.09,
4.42,3.72,2.25,0.78,1.27,
5.89,5.61,3.51,2.46,1.06,
0.64,1.27,2.74,4.21,5.05,
5.19,4.00,2.74,1.90,1.27,
0.99,1.13,2.25,2.04,3.51,
3.86,3.16,2.81,1.62,0.50,
5.61,4.56,3.65,2.46,0.57,
1.76,1.83,2.60,3.72,6.10,
];
v=28;
t1=5;
t2=3;
T=480;
%每班次的次数
fori=1:
10
forj=1:
5
num(i,j)=T/(d(j+5*(i-1))*2*60/v+t1+t2);
end
end
w=154;
%不等待
p=eye(50,50);
%产量要求
r=zeros(5,50);
fori=1:
5
forj=1:
10
r(i,i+5*(j-1))=-num(j,i);
end
end
r=r*w;
%供给能力
fori=1:
5
forj=1: