Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
integrated-scheduling-v3
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
虢奥
integrated-scheduling-v3
Commits
4b2d50f5
Commit
4b2d50f5
authored
Nov 04, 2021
by
张晓彤
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
change readme
parent
d95dc881
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
202 additions
and
2 deletions
+202
-2
readme.md
readme.md
+202
-2
No files found.
readme.md
View file @
4b2d50f5
#还没想好写什么
\ No newline at end of file
# 露天矿山卡车集成调度系统
# 1 引言
## **1.1** **背景**
机群系统当前已具备基础调度功能,现有框架下,更改调度任务,需要先完成当前的任务后,新的调度任务才会生效;再者,当前调度的时机是发生在卸载作业面(即完成采运排一个周期才进行调度变更)。本方案将新增装载作业面的调度。
机群系统当前已支持依据挖机饱和度策略的调度,挖机饱和度是由挖机能够承载的矿卡数量来量化,只是当前是固定的(通过配置文件指定),这与实际场景不符,每个挖机能够承载的矿卡数量是不同的,动态变化的。因此,需要构建动态的挖机饱和度,本方案采用“车流饱和度”的概念作为矿卡调度的依据。
## **1.2 **定义
1)理想车流
车流规划以产量最大、出动设备数量最少、运营成本最低等为目标,根据最佳路径,综合考虑电铲能力、卸点能力、矿用卡车数量、矿用卡车型号、各个运输环节的统计时间、优先级以及其他生产约束,通过线性规划,求取各装、卸点之间的卡车运量分配,称之为理想车流。
2)行程时间
行程时间分为空载行程时间、重载行程时间。
① 空载行程时间,包括矿卡空载驶往装载区用时,矿卡等待时间,矿卡装载时间。其中,矿卡等待时间计算方式如下:
假设在该矿卡前面已经安排了N辆矿卡,矿卡等待时间计算公式如下:
MAX{N辆矿卡作业时间(完成装载的时刻),矿卡空载驶到装载区的时刻}-矿卡空载驶到装载区的时刻)
② 重载行程时间,包括矿卡重载驶往卸载区用时,矿卡等待时间,矿卡卸载时间。其中,矿卡等待时间计算方式如下:
假设在该矿卡前面已经安排了N辆矿卡,矿卡等待时间计算公式如下:
MAX{N辆矿卡作业时间(完成卸载的时刻),矿卡重载驶到卸载区的时刻}-矿卡重载驶到卸载区的时刻)
3)车流饱和度
车流饱和度指各路线实际车流与理想车流之比,调度算法倾向于将矿卡与车流饱和度较低的设备配对
**。**
4)一个派车计划(即配对关系)存在三种状态:
① 用户在派车计划管理界面新建的“派车计划”,这是“计划的等待生效的”配对(数据存储在sys_dispatch_setting表);
② 矿卡启动后,申请到的“派车计划”,这是“生效的正在执行的”配对(数据存储在sys_equipment_pair表);
③ 卡调服务周期执行的,提前计算出来的“派车计划”,这是为矿卡可能发生配对变更服务的,这是“缓存的下一次的”配对(数据存储在redis 库5中)。
5)缓存中矿卡的状态信息:
127.
0.0.1:6379> select 2
对应缓存,如下所示:

① 当前状态state:
0-待机 1 运输 2 装载入场请求 3 装载入场等待 4 装载入场 5 装载请求 6 装载 7 出场 8 卸载入场请求 9 卸载入场等待 10 卸载入场 11 卸载请求 12 卸载 13 卸载出场
② 当前任务currentTask:
-1:当前车辆空闲,没有正在执行的任务文件;
0:停车场至装载入场点
1:装载入场点至装载点
2:装载点至装载出场点
3:装载出场点至卸载入场点
4:卸载入场点至卸载点
5:卸载点至卸载出场点
6:卸载出场点至装载入场点
7:卸载出场点至停车场
8:装载入场点至停车场
9:装载点至停车场
A:当前位置至停车场
# 2 系统整体结构
基于矿区路网数据、派车计划提供的调度规划等,为运输设备生成调度决策。系统收到运输设备发出的调度请求后,向运输设备发出调度指令,指导其完成运输作业。系统周期性分析矿山实时状态及设备运行状态,动态调整调度策略,如下图所示。

**图**
**1****调度服务交互图**
# 3 程序设计
## **3.1** **调度功能设计**
### 3.1.1 功能描述
| 功能编号 | SERVICE-FUNCTION-Dispatch | 功能名称 | 处理位置点请求 |
| ------------------- | ------------------------------------------------------------ | -------- | -------------- |
| 需求编号 | SERVICE-REQUIREMENT-Dispatch | | |
| 调用方式 | 机群系统调用 | 权限说明 | 无 |
| 模块功能描述 | 该模块主要为运输设备(有人卡车与无人卡车)生成调度决策服务。通过分析矿山实时状态及设备运行状态,周期计算运输设备最佳派车计划。如果最佳派车计划与当前不一致,该模块更新运输设备所绑定的派车计划,否则保持不变。 | | |
| 内部依赖 | 无 | | |
| 外部依赖 | 缓存(Redis) | | |
| 所属组件包 | fleet-service | | |
| 功能点 | | | |
| 名称 | 功能描述 | | |
| 1、实时数据处理 | 读取数据库 (mysql+mysqlconnector://root:password@192.168.28.111:3306/waytous'),更新参数:挖机/卸载设备饱和度、装载/卸载平均时间、矿卡当前派车计划。 读取矿卡状态缓存(redis://password@192.168.28.111:6379/2),更新参数:矿卡当前任务、挖机/卸载设备可用时间、矿卡可用时间。 | | |
| 2、生成最新派车计划 | 基于实时设备信息,结合车流规划及拥堵度计算结果,为在线矿卡计算最佳派车计划。 派车计划计算成功,将新的计划写入矿卡派车计划缓存(redis://password@192.168.28.111:6379/5),供机群端读取。 | | |
| 3、车流规划 | 综合考虑电铲能力、卸点能力、矿用卡车数量、矿用卡车型号、各个运输环节的统计时间、优先级以及其他生产约束,通过线性规划,求取各装、卸点之间的卡车运量分配,并将车流规划结果反馈给实时调度部分。 | | |
| 4、 路径规划 | 根据矿山中每段道路的长度以及道路的实时拥堵信息,计算每段道路的代价因子!
[
img
](
readme/clip_image008.gif
)
。 并将路网各设备间道路拥堵度信息反馈给实时调度部分。 | | |
| 5、反馈错误原因 | 调度策略计算失败,将错误信息返回给前端。 | | |
### 3.1.2 处理流程


#### 周期卡调逻辑
1、检测待调度矿卡
2、若矿卡为固定派车模式,直接将对应派车计划写入调度缓存。获取剩余用于动态派车的矿卡及派车计划
3、按照矿卡预计抵达目的地时间顺序确定调度优先级(理论上先抵达目的地的矿卡先发出调度请求,应优先调度;未启动矿卡的调度优先级低于已启动;未启动矿卡间的分配顺序随机)
4、判断矿卡是否为启动调度;若矿卡为启动调度,计算从停车场到各装载区的“车流饱和度”;若为正常调度,计算矿卡执行各动态派车计划的“车流饱和度”
5、取行车流饱和对最小派车计划写入对应矿卡调度缓存,作为一下次调度的派车计划
6、周期性(如1分钟)全局参数重新计算
#### 调度规则
1、 矿卡优先级
当预计多辆矿卡在同一时间窗内请求调度,系统将为优先级高的矿卡优先计算调度策略。若不同矿卡请求调度时间差别较大,系统将仍然为预计先请求调度矿卡计算调度策略。
2、 卸点锁定矿卡(排斥锁定)
矿卡装载结束后请求调度,系统在为矿卡分配调度计划前,将判断目的地中是否存在锁定该矿卡的卸载点,若存在,将优先将该矿卡派往该锁定卸载点。
若开启排斥锁定,则卸载点不接受锁定矿卡外的其他矿卡调度请求。
3、 挖机锁定矿卡(排斥锁定)
矿卡卸载结束后请求调度,系统在为矿卡分配调度计划前,将判断目的地中是否存在锁定该矿卡的挖机,若存在,将优先将该矿卡派往该锁定挖机。
若开启排斥锁定,则该挖机不接受锁定矿卡外的其他矿卡调度请求。
4、 矿卡禁止锁定
矿卡禁止后,系统将不再维护该矿卡的动态调度。
5、 物料优先级
物料一般指废石和矿石,该规则启动后,矿石优先级高于废石优先级。与矿石关联的运输路线被赋予更高的调度价值。
6、 物料类型控制
同种物料只能在开采该物料的挖机处装载,同样只能在卸载该类型物料的卸点处卸载。对于路网中关联两个不同类型物料的挖机及卸载点的运输路线,系统将给予极大的惩罚项。
与卸载点锁定的矿卡始终只能运输该卸载点关联物料,类似,与挖机锁定的矿卡只能运输该挖机关联物料。
7、 矿卡型号
本系统中,不同型号矿卡的载重与速度为主要影响因素。
车流规划部分,道路因子计算采用矿卡平均载重。车流规划结果为单位时间内各路线运输吨位,兼容各型号矿卡。
实时调度部分,各型号矿卡速度影响矿卡行驶时间,出入场时间差异忽略不计。
### 3.1.3 接口设计
|
**接口类型**
|
**描述**
|
| ------------ | ------------------------------------------------------------ |
| Redis接口 | 机群服务中心通过读取矿卡最新派车计划缓存redis(redis://password@192.168.28.111:6379/5)间接与集成调度服务进行通信 |
### 3.1.4 组件核心类图

Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment