Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
integrated-scheduling
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
Commits
8cc6dd61
Unverified
Commit
8cc6dd61
authored
Aug 25, 2021
by
Allvey
Committed by
GitHub
Aug 25, 2021
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #3 from JonathonGuo777/master
guoao_update
parents
14588e42
3aab4f9a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
114 additions
and
33 deletions
+114
-33
tables.py
tables.py
+2
-1
traffic_flow_info.py
traffic_flow/traffic_flow_info.py
+112
-32
No files found.
tables.py
View file @
8cc6dd61
...
@@ -393,7 +393,7 @@ class DumpArea(Base):
...
@@ -393,7 +393,7 @@ class DumpArea(Base):
self
.
Disabled
=
Disabled
self
.
Disabled
=
Disabled
self
.
Material
=
Material
self
.
Material
=
Material
class
Digg
er
Area
(
Base
):
class
Digg
ingWork
Area
(
Base
):
__tablename__
=
'Geo_DiggingWorkArea'
__tablename__
=
'Geo_DiggingWorkArea'
Id
=
Column
(
VARCHAR
(
50
),
primary_key
=
True
)
Id
=
Column
(
VARCHAR
(
50
),
primary_key
=
True
)
...
@@ -402,3 +402,4 @@ class DiggerArea(Base):
...
@@ -402,3 +402,4 @@ class DiggerArea(Base):
def
__init__
(
self
,
Id
,
Material
):
def
__init__
(
self
,
Id
,
Material
):
self
.
Id
=
Id
self
.
Id
=
Id
self
.
Material
=
Material
self
.
Material
=
Material
traffic_flow/traffic_flow_info.py
View file @
8cc6dd61
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
# @Time : 2021/8/3 10:41
# @Time : 2021/8/3 10:41
# @Author : Opfer
# @Author : Opfer
# @Site :
# @Site :
# @File : traffic_flow_info.py
# @File : traffic_flow_info.py
# @Software: PyCharm
# @Software: PyCharm
# import
# import
...
@@ -12,6 +12,13 @@ from static_data_process import *
...
@@ -12,6 +12,13 @@ from static_data_process import *
from
settings
import
*
from
settings
import
*
from
path_plan.path_plannner
import
*
from
path_plan.path_plannner
import
*
from
para_config
import
*
from
para_config
import
*
from
traffic_flow.traffic_flow_planner
import
*
from
static_data_process
import
*
from
para_config
import
*
from
settings
import
*
from
equipment.truck
import
TruckInfo
from
equipment.excavator
import
ExcavatorInfo
from
equipment.dump
import
DumpInfo
# 车流规划类
# 车流规划类
class
Traffic_para
(
WalkManage
):
class
Traffic_para
(
WalkManage
):
...
@@ -54,6 +61,7 @@ class Traffic_para(WalkManage):
...
@@ -54,6 +61,7 @@ class Traffic_para(WalkManage):
self
.
path_planner
=
PathPlanner
()
self
.
path_planner
=
PathPlanner
()
self
.
path_planner
.
walk_cost
()
self
.
path_planner
.
walk_cost
()
'''
'''
以下参数暂时没用到
以下参数暂时没用到
'''
'''
...
@@ -70,6 +78,10 @@ class Traffic_para(WalkManage):
...
@@ -70,6 +78,10 @@ class Traffic_para(WalkManage):
self
.
grade_lower_dump_array
=
np
.
zeros
(
num_of_dump
)
# 卸载点矿石品位下限
self
.
grade_lower_dump_array
=
np
.
zeros
(
num_of_dump
)
# 卸载点矿石品位下限
self
.
grade_upper_dump_array
=
np
.
zeros
(
num_of_dump
)
# 卸载点矿石品位上限
self
.
grade_upper_dump_array
=
np
.
zeros
(
num_of_dump
)
# 卸载点矿石品位上限
# 装/卸区的物料类型
self
.
load_area_material_type
=
{}
self
.
unload_area_material_type
=
{}
# # 提取卸载点信息并建立映射
# # 提取卸载点信息并建立映射
# def extract_dump_info(self):
# def extract_dump_info(self):
# dump_index = 0
# dump_index = 0
...
@@ -168,7 +180,22 @@ class Traffic_para(WalkManage):
...
@@ -168,7 +180,22 @@ class Traffic_para(WalkManage):
# unload_area_uuid_to_index_dict[unload_area_id] = unload_area_index
# unload_area_uuid_to_index_dict[unload_area_id] = unload_area_index
# unload_area_index_to_uuid_dict[unload_area_index] = unload_area_id
# unload_area_index_to_uuid_dict[unload_area_index] = unload_area_id
# unload_area_index += 1
# unload_area_index += 1
def
extract_walk_time_info
(
self
):
# 根据物料优先级生成新的影响调度的coast矩阵
# def arrange_material_type (self, material_type):
#
# # 首先判断物料的种
# # if material_type:
# # logger.info(f'物料类型是土方')
# # else:
# # logger.info(f'物料类型是煤方')
include_material_type
=
True
def
extract_walk_time_info
(
self
,
include_material_type
):
try
:
try
:
# 车流规划部分矩阵格式与其余两个模块不同
# 车流规划部分矩阵格式与其余两个模块不同
cost_to_load_area
=
self
.
path_planner
.
cost_to_load_area
cost_to_load_area
=
self
.
path_planner
.
cost_to_load_area
...
@@ -177,44 +204,97 @@ class Traffic_para(WalkManage):
...
@@ -177,44 +204,97 @@ class Traffic_para(WalkManage):
distance_to_load_area
=
self
.
path_planner
.
distance_to_load_area
distance_to_load_area
=
self
.
path_planner
.
distance_to_load_area
distance_to_unload_area
=
self
.
path_planner
.
distance_to_unload_area
distance_to_unload_area
=
self
.
path_planner
.
distance_to_unload_area
self
.
load_area_material_type
=
{}
self
.
unload_area_material_type
=
{}
for
item
in
session_postgre
.
query
(
DiggingWorkArea
)
.
all
():
if
item
.
Material
is
not
None
:
self
.
load_area_material_type
[
load_area_uuid_to_index_dict
[
item
.
Id
]]
=
item
.
Material
for
item
in
session_postgre
.
query
(
DumpArea
)
.
all
():
if
item
.
Material
is
not
None
:
self
.
unload_area_material_type
[
unload_area_uuid_to_index_dict
[
item
.
Id
]]
=
item
.
Material
# 路网信息读取
# 路网信息读取
for
unload_area_index
in
range
(
unload_area_num
):
for
unload_area_index
in
range
(
unload_area_num
):
for
load_area_index
in
range
(
load_area_num
):
for
load_area_index
in
range
(
load_area_num
):
self
.
goto_load_area_factor
[
unload_area_index
][
load_area_index
]
=
\
# 是否考虑cost
(
cost_to_load_area
[
unload_area_index
][
load_area_index
]
/
(
empty_speed
*
1000
))
/
self
.
payload
if
include_material_type
==
True
:
logger
.
info
(
f
'考虑物料类型'
)
if
self
.
unload_area_material_type
[
unload_area_index
]
==
'c481794b-6ced-45b9-a9c4-c4a388f44418'
\
and
self
.
load_area_material_type
[
load_area_index
]
==
'c481794b-6ced-45b9-a9c4-c4a388f44418'
:
self
.
goto_load_area_factor
[
unload_area_index
][
load_area_index
]
=
\
0.75
*
(
cost_to_load_area
[
unload_area_index
][
load_area_index
]
/
(
empty_speed
*
1000
))
/
self
.
payload
self
.
goto_unload_area_factor
[
load_area_index
][
unload_area_index
]
=
\
0.75
*
(
cost_to_unload_area
[
unload_area_index
][
load_area_index
]
/
(
heavy_speed
*
1000
))
/
self
.
payload
else
:
self
.
goto_load_area_factor
[
unload_area_index
][
load_area_index
]
=
\
(
cost_to_load_area
[
unload_area_index
][
load_area_index
]
/
(
empty_speed
*
1000
))
/
self
.
payload
self
.
goto_unload_area_factor
[
load_area_index
][
unload_area_index
]
=
\
(
cost_to_unload_area
[
unload_area_index
][
load_area_index
]
/
(
heavy_speed
*
1000
))
/
self
.
payload
# 不考虑物料类型的cost
else
:
self
.
goto_load_area_factor
[
unload_area_index
][
load_area_index
]
=
\
(
cost_to_load_area
[
unload_area_index
][
load_area_index
]
/
(
empty_speed
*
1000
))
/
self
.
payload
self
.
goto_unload_area_factor
[
load_area_index
][
unload_area_index
]
=
\
(
cost_to_unload_area
[
unload_area_index
][
load_area_index
]
/
(
heavy_speed
*
1000
))
/
self
.
payload
self
.
goto_unload_area_factor
[
load_area_index
][
unload_area_index
]
=
\
(
cost_to_unload_area
[
unload_area_index
][
load_area_index
]
/
(
heavy_speed
*
1000
))
/
self
.
payload
except
Exception
as
es
:
except
Exception
as
es
:
logger
.
error
(
es
)
logger
.
error
(
es
)
logger
.
error
(
"车流规划信息计算异常"
)
logger
.
error
(
"车流规划信息计算异常"
)
# for walk_time in session_postgre.query(WalkTime).all():
# load_area_id = str(walk_time.load_area_id)
# def extract_walk_time_info(self):
# unload_area_id = str(walk_time.unload_area_id)
# try:
# # 将uuid转为id
# # 车流规划部分矩阵格式与其余两个模块不同
# load_area_index = load_area_uuid_to_index_dict[load_area_id]
# cost_to_load_area = self.path_planner.cost_to_load_area
# unload_area_index = unload_area_uuid_to_index_dict[unload_area_id]
# cost_to_unload_area = self.path_planner.cost_to_unload_area
#
#
# # # 运输路线距离
# distance_to_load_area = self.path_planner.distance_to_load_area
# # self.walk_time_to_load_area[unload_area_index][load_area_index] = walk_time.to_load_distance
# distance_to_unload_area = self.path_planner.distance_to_unload_area
# # self.walk_time_to_unload_area[load_area_index][unload_area_index] = walk_time.to_unload_distance
#
#
# # 路网信息读取
# # 卸载道路上,每运输1吨货物需要一辆卡车运行时长,等于(该卸载道路上车辆平均运行时长/卡车平均实际装载量)
# for unload_area_index in range(unload_area_num):
# # 单位为辆小时/吨
# for load_area_index in range(load_area_num):
# # i代表第i个电铲,j代表第j个卸载点
# self.goto_load_area_factor[unload_area_index][load_area_index] = \
# # walktime_goto_dump单位是秒,需要除以3600,转成小时
# (cost_to_load_area[unload_area_index][load_area_index] / (empty_speed * 1000)) / self.payload
# self.goto_load_area_factor[unload_area_index][load_area_index] = \
#
# (60 / 1000 * walk_time.to_load_distance / self.empty_speed) / self.payload
# self.goto_unload_area_factor[load_area_index][unload_area_index] = \
# # / self.avg_goto_excavator_weight[load_area_index][unload_area_index]
# (cost_to_unload_area[unload_area_index][load_area_index] / (heavy_speed * 1000)) / self.payload
#
# except Exception as es:
# # 装载道路上,每提供1吨的装载能力需要一辆卡车运行时长,等于(该装载道路上车辆平均运行时长/卡车平均装载能力)
# logger.error(es)
# # 单位为辆小时/吨
# logger.error("车流规划信息计算异常")
# # i代表第i个卸载点,j代表第j个电铲
#
# # walktime_goto_excavator单位是秒,需要除以3600,转成小时
# # for walk_time in session_postgre.query(WalkTime).all():
# self.goto_unload_area_factor[load_area_index][unload_area_index] = \
# # load_area_id = str(walk_time.load_area_id)
# (60 / 1000 * walk_time.to_unload_distance / self.heavy_speed) / self.payload
# # unload_area_id = str(walk_time.unload_area_id)
# # / self.avg_goto_excavator_weight[unload_area_index][load_area_index]
# # # 将uuid转为id
# # load_area_index = load_area_uuid_to_index_dict[load_area_id]
# # unload_area_index = unload_area_uuid_to_index_dict[unload_area_id]
# #
# # # # 运输路线距离
# # # self.walk_time_to_load_area[unload_area_index][load_area_index] = walk_time.to_load_distance
# # # self.walk_time_to_unload_area[load_area_index][unload_area_index] = walk_time.to_unload_distance
# #
# # # 卸载道路上,每运输1吨货物需要一辆卡车运行时长,等于(该卸载道路上车辆平均运行时长/卡车平均实际装载量)
# # # 单位为辆小时/吨
# # # i代表第i个电铲,j代表第j个卸载点
# # # walktime_goto_dump单位是秒,需要除以3600,转成小时
# # self.goto_load_area_factor[unload_area_index][load_area_index] = \
# # (60 / 1000 * walk_time.to_load_distance / self.empty_speed) / self.payload
# # # / self.avg_goto_excavator_weight[load_area_index][unload_area_index]
# #
# # # 装载道路上,每提供1吨的装载能力需要一辆卡车运行时长,等于(该装载道路上车辆平均运行时长/卡车平均装载能力)
# # # 单位为辆小时/吨
# # # i代表第i个卸载点,j代表第j个电铲
# # # walktime_goto_excavator单位是秒,需要除以3600,转成小时
# # self.goto_unload_area_factor[load_area_index][unload_area_index] = \
# # (60 / 1000 * walk_time.to_unload_distance / self.heavy_speed) / self.payload
# # # / self.avg_goto_excavator_weight[unload_area_index][load_area_index]
# 初始化车流规划类
# 初始化车流规划类
...
...
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