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
1
Merge Requests
1
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
b6c1a234
Commit
b6c1a234
authored
Nov 18, 2021
by
张晓彤
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复行程异常BUG
parent
f9f2cf59
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
83 additions
and
66 deletions
+83
-66
truck.py
equipment/truck.py
+2
-5
path_plannner.py
path_plan/path_plannner.py
+17
-14
realtime_dispatch.py
realtime_dispatch.py
+1
-6
static_data_process.py
static_data_process.py
+11
-6
traffic_flow_info.py
traffic_flow/traffic_flow_info.py
+52
-35
No files found.
equipment/truck.py
View file @
b6c1a234
...
@@ -365,8 +365,6 @@ class TruckInfo(WalkManage):
...
@@ -365,8 +365,6 @@ class TruckInfo(WalkManage):
def
update_eqp_hold_truck
(
self
):
def
update_eqp_hold_truck
(
self
):
# 初始化矿卡行程, -1代表备停区
self
.
truck_current_trip
=
np
.
full
((
self
.
dynamic_truck_num
,
2
),
-
1
)
for
i
in
range
(
self
.
dynamic_truck_num
):
for
i
in
range
(
self
.
dynamic_truck_num
):
try
:
try
:
session_mysql
.
commit
()
session_mysql
.
commit
()
...
@@ -742,10 +740,9 @@ class TruckInfo(WalkManage):
...
@@ -742,10 +740,9 @@ class TruckInfo(WalkManage):
if
rule7
:
if
rule7
:
logger
.
info
(
"物料优先级规则未启用"
)
logger
.
info
(
"物料优先级规则未启用"
)
else
:
else
:
# 更新矿卡物料类型
self
.
update_truck_material
()
logger
.
info
(
"物料优先级规则启用"
)
logger
.
info
(
"物料优先级规则启用"
)
# 更新矿卡物料类型
self
.
update_truck_material
()
...
...
path_plan/path_plannner.py
View file @
b6c1a234
...
@@ -41,11 +41,15 @@ class PathPlanner(WalkManage):
...
@@ -41,11 +41,15 @@ class PathPlanner(WalkManage):
self
.
num_of_unload_area
=
len
(
set
(
update_unload_area
()))
self
.
num_of_unload_area
=
len
(
set
(
update_unload_area
()))
# 备停区数量
# 备停区数量
self
.
num_of_park_area
=
len
(
set
(
update_park_area
()))
self
.
num_of_park_area
=
len
(
set
(
update_park_area
()))
# 路网行驶成本信息
信息
# 路网行驶成本信息
self
.
cost_to_load_area
=
np
.
full
((
self
.
num_of_unload_area
,
self
.
num_of_load_area
),
M
)
self
.
cost_to_load_area
=
np
.
full
((
self
.
num_of_unload_area
,
self
.
num_of_load_area
),
M
)
self
.
cost_to_unload_area
=
np
.
full
((
self
.
num_of_unload_area
,
self
.
num_of_load_area
),
M
)
self
.
cost_to_unload_area
=
np
.
full
((
self
.
num_of_unload_area
,
self
.
num_of_load_area
),
M
)
# 路网信息(备停区)
# 路网信息(备停区)
self
.
cost_park_to_load_area
=
np
.
full
((
self
.
num_of_park_area
,
self
.
num_of_load_area
),
M
)
self
.
cost_park_to_load_area
=
np
.
full
((
self
.
num_of_park_area
,
self
.
num_of_load_area
),
M
)
# 设备路网成本信息
self
.
cost_to_excavator
=
np
.
zeros_like
(
get_value
(
"distance_to_excavator"
))
self
.
cost_to_dump
=
np
.
zeros_like
(
get_value
(
"distance_to_dump"
))
self
.
cost_park_to_excavator
=
np
.
zeros_like
(
get_value
(
"distance_park_to_excavator"
))
def
path_cost_generate
(
self
,
load_area_id
,
unload_area_id
,
is_park
):
def
path_cost_generate
(
self
,
load_area_id
,
unload_area_id
,
is_park
):
...
@@ -182,11 +186,11 @@ class PathPlanner(WalkManage):
...
@@ -182,11 +186,11 @@ class PathPlanner(WalkManage):
logger
.
error
(
'路网信息计成本计算异常'
)
logger
.
error
(
'路网信息计成本计算异常'
)
logger
.
error
(
es
)
logger
.
error
(
es
)
cost_to_excavator
=
np
.
zeros_like
(
get_value
(
"distance_to_excavator"
))
self
.
cost_to_excavator
=
np
.
zeros_like
(
get_value
(
"distance_to_excavator"
))
print
(
"distance_to_excavator"
)
print
(
"distance_to_excavator"
)
print
(
cost_to_excavator
)
print
(
self
.
cost_to_excavator
)
cost_to_dump
=
np
.
zeros_like
(
get_value
(
"distance_to_dump"
))
self
.
cost_to_dump
=
np
.
zeros_like
(
get_value
(
"distance_to_dump"
))
cost_park_to_excavator
=
np
.
zeros_like
(
get_value
(
"distance_park_to_excavator"
))
self
.
cost_park_to_excavator
=
np
.
zeros_like
(
get_value
(
"distance_park_to_excavator"
))
logger
.
info
(
"distance_park_to_excavator"
)
logger
.
info
(
"distance_park_to_excavator"
)
logger
.
info
(
self
.
distance_park_to_excavator
)
logger
.
info
(
self
.
distance_park_to_excavator
)
...
@@ -214,14 +218,13 @@ class PathPlanner(WalkManage):
...
@@ -214,14 +218,13 @@ class PathPlanner(WalkManage):
load_area_index
=
self
.
excavator_index_to_load_area_index_dict
[
j
]
load_area_index
=
self
.
excavator_index_to_load_area_index_dict
[
j
]
unload_area_index
=
self
.
dump_index_to_unload_area_index_dict
[
i
]
unload_area_index
=
self
.
dump_index_to_unload_area_index_dict
[
i
]
logger
.
info
(
"cost_to_excavator"
)
logger
.
info
(
"cost_to_excavator"
)
logger
.
info
(
cost_to_excavator
)
logger
.
info
(
self
.
cost_to_excavator
)
print
(
i
,
j
)
self
.
cost_to_excavator
[
i
][
j
]
=
self
.
cost_to_load_area
[
unload_area_index
][
load_area_index
]
/
walk_weight
[
i
][
j
]
+
group_walk_available
[
i
][
j
]
cost_to_excavator
[
i
][
j
]
=
self
.
cost_to_load_area
[
unload_area_index
][
load_area_index
]
/
walk_weight
[
i
][
j
]
+
group_walk_available
[
i
][
j
]
self
.
cost_to_dump
[
i
][
j
]
=
self
.
cost_to_unload_area
[
unload_area_index
][
load_area_index
]
/
walk_weight
[
i
][
j
]
+
walk_available
[
i
][
j
]
+
group_walk_available
[
i
][
j
]
cost_to_dump
[
i
][
j
]
=
self
.
cost_to_unload_area
[
unload_area_index
][
load_area_index
]
/
walk_weight
[
i
][
j
]
+
walk_available
[
i
][
j
]
+
group_walk_available
[
i
][
j
]
for
j
in
range
(
get_value
(
"dynamic_excavator_num"
)):
for
j
in
range
(
get_value
(
"dynamic_excavator_num"
)):
load_area_index
=
self
.
excavator_index_to_load_area_index_dict
[
j
]
load_area_index
=
self
.
excavator_index_to_load_area_index_dict
[
j
]
cost_park_to_excavator
[
0
][
j
]
=
self
.
cost_park_to_load_area
[
0
][
load_area_index
]
/
park_walk_weight
[
0
][
j
]
self
.
cost_park_to_excavator
[
0
][
j
]
=
self
.
cost_park_to_load_area
[
0
][
load_area_index
]
/
park_walk_weight
[
0
][
j
]
logger
.
info
(
"真实路网距离-驶往挖机:"
)
logger
.
info
(
"真实路网距离-驶往挖机:"
)
logger
.
info
(
self
.
distance_to_excavator
)
logger
.
info
(
self
.
distance_to_excavator
)
...
@@ -233,15 +236,15 @@ class PathPlanner(WalkManage):
...
@@ -233,15 +236,15 @@ class PathPlanner(WalkManage):
logger
.
info
(
self
.
distance_park_to_excavator
)
logger
.
info
(
self
.
distance_park_to_excavator
)
logger
.
info
(
"阻塞路网距离-驶往挖机:"
)
logger
.
info
(
"阻塞路网距离-驶往挖机:"
)
logger
.
info
(
cost_to_excavator
)
logger
.
info
(
self
.
cost_to_excavator
)
logger
.
info
(
"阻塞路网距离-驶往卸点:"
)
logger
.
info
(
"阻塞路网距离-驶往卸点:"
)
logger
.
info
(
cost_to_dump
)
logger
.
info
(
self
.
cost_to_dump
)
logger
.
info
(
"阻塞备停区路网距离-驶往挖机:"
)
logger
.
info
(
"阻塞备停区路网距离-驶往挖机:"
)
logger
.
info
(
cost_park_to_excavator
)
logger
.
info
(
self
.
cost_park_to_excavator
)
return
cost_to_excavator
,
cost_to_dump
,
cost_park_to_excavator
return
self
.
cost_to_excavator
,
self
.
cost_to_dump
,
self
.
cost_park_to_excavator
class
LaneInfo
:
class
LaneInfo
:
...
...
realtime_dispatch.py
View file @
b6c1a234
...
@@ -378,11 +378,6 @@ class Dispatcher(WalkManage):
...
@@ -378,11 +378,6 @@ class Dispatcher(WalkManage):
truck
.
state_period_update
()
truck
.
state_period_update
()
print
(
"test_truck"
)
print
(
truck
.
dynamic_truck_set
)
print
(
truck
.
truck_current_task
)
print
(
truck
.
truck_uuid_to_index_dict
)
# 更新实时车流
# 更新实时车流
self
.
update_actual_traffic_flow
()
self
.
update_actual_traffic_flow
()
...
@@ -1367,7 +1362,7 @@ def process(dispatcher):
...
@@ -1367,7 +1362,7 @@ def process(dispatcher):
# except Exception as es:
# except Exception as es:
# logger.error(es)
# logger.error(es)
period_para_update
()
scheduler
=
sched
.
scheduler
(
time
.
time
,
time
.
sleep
)
scheduler
=
sched
.
scheduler
(
time
.
time
,
time
.
sleep
)
dispatcher
=
Dispatcher
()
dispatcher
=
Dispatcher
()
...
...
static_data_process.py
View file @
b6c1a234
...
@@ -136,10 +136,16 @@ def update_deveices_map(unload_area_uuid_to_index_dict, load_area_uuid_to_index_
...
@@ -136,10 +136,16 @@ def update_deveices_map(unload_area_uuid_to_index_dict, load_area_uuid_to_index_
if
excavator_num
<
1
or
dump_num
<
1
:
if
excavator_num
<
1
or
dump_num
<
1
:
raise
Exception
(
"无动态派车计划可用-动态派车挖机/卸载设备映射失败"
)
raise
Exception
(
"无动态派车计划可用-动态派车挖机/卸载设备映射失败"
)
except
Exception
as
es
:
except
Exception
as
es
:
logger
.
warning
(
es
)
logger
.
error
(
"卸载区信息异常"
)
logger
.
error
(
es
)
logger
.
info
(
"excavator_index_to_load_area_index_dict"
)
logger
.
info
(
excavator_index_to_load_area_index_dict
)
print
(
"static_excavator_uuid_to_index_dict"
)
logger
.
info
(
"load_area_uuid_to_index_dict"
)
print
(
excavator_uuid_to_index_dict
)
logger
.
info
(
load_area_uuid_to_index_dict
)
logger
.
info
(
"static_excavator_uuid_to_index_dict"
)
logger
.
info
(
excavator_uuid_to_index_dict
)
return
{
return
{
"excavator_uuid_to_index_dict"
:
excavator_uuid_to_index_dict
,
"excavator_uuid_to_index_dict"
:
excavator_uuid_to_index_dict
,
...
@@ -164,9 +170,8 @@ def update_truck_uuid_index_map(dynamic_truck_set):
...
@@ -164,9 +170,8 @@ def update_truck_uuid_index_map(dynamic_truck_set):
truck_index_to_uuid_dict
[
truck_num
]
=
truck_id
truck_index_to_uuid_dict
[
truck_num
]
=
truck_id
truck_num
=
truck_num
+
1
truck_num
=
truck_num
+
1
print
(
dynamic_truck_set
)
logger
.
info
(
"static_data_process.py-truck_uuid_to_index_dict"
)
print
(
"static-truck_uuid_to_index_dict"
)
logger
.
info
(
truck_uuid_to_index_dict
)
print
(
truck_uuid_to_index_dict
)
return
{
return
{
"truck_uuid_to_index_dict"
:
truck_uuid_to_index_dict
,
"truck_uuid_to_index_dict"
:
truck_uuid_to_index_dict
,
...
...
traffic_flow/traffic_flow_info.py
View file @
b6c1a234
...
@@ -130,27 +130,49 @@ class Traffic_para(WalkManage):
...
@@ -130,27 +130,49 @@ class Traffic_para(WalkManage):
logger
.
error
(
"挖机信息设置异常"
)
logger
.
error
(
"挖机信息设置异常"
)
def
extract_walk_time_info
(
self
):
def
extract_walk_time_info
(
self
):
# try:
# # 车流规划部分矩阵格式与其余两个模块不同
# cost_to_load_area = self.path_planner.cost_to_load_area
# cost_to_unload_area = self.path_planner.cost_to_unload_area
#
# distance_to_load_area = self.path_planner.distance_to_load_area
# distance_to_unload_area = self.path_planner.distance_to_unload_area
#
# # 路网信息读取
# for unload_area_index in range(unload_area_num):
# for load_area_index in range(load_area_num):
# 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
#
# logger.info("goto_unload_area_factor")
# logger.info(self.goto_unload_area_factor)
# logger.info("cost_to_unload_area")
# logger.info(cost_to_unload_area)
# except Exception as es:
# logger.error(es)
# logger.error("车流规划信息计算异常")
try
:
try
:
# 车流规划部分矩阵格式与其余两个模块不同
# 车流规划部分矩阵格式与其余两个模块不同
cost_to_load_area
=
self
.
path_planner
.
cost_to_load_area
cost_to_dump
=
self
.
path_planner
.
cost_to_dump
cost_to_unload_area
=
self
.
path_planner
.
cost_to_unload_area
cost_to_excavator
=
self
.
path_planner
.
cost_to_excavator
distance_to_load_area
=
self
.
path_planner
.
distance_to_load_area
distance_to_unload_area
=
self
.
path_planner
.
distance_to_unload_area
# 路网信息读取
# 路网信息读取
for
unload_area_index
in
range
(
unload_area_num
):
for
dump_index
in
range
(
get_value
(
"dynamic_dump_num"
)
):
for
load_area_index
in
range
(
load_area_num
):
for
excavator_index
in
range
(
get_value
(
"dynamic_excavator_num"
)
):
self
.
goto_
load_area_factor
[
unload_area_index
][
load_area
_index
]
=
\
self
.
goto_
excavator_factor
[
dump_index
][
excavator
_index
]
=
\
(
cost_to_
load_area
[
unload_area_index
][
load_area
_index
]
/
(
empty_speed
*
1000
))
/
self
.
payload
(
cost_to_
excavator
[
dump_index
][
excavator
_index
]
/
(
empty_speed
*
1000
))
/
self
.
payload
self
.
goto_
unload_area_factor
[
load_area_index
][
unload_area
_index
]
=
\
self
.
goto_
dump_factor
[
excavator_index
][
dump
_index
]
=
\
(
cost_to_
unload_area
[
unload_area_index
][
load_area
_index
]
/
(
heavy_speed
*
1000
))
/
self
.
payload
(
cost_to_
dump
[
excavator_index
][
dump
_index
]
/
(
heavy_speed
*
1000
))
/
self
.
payload
logger
.
info
(
"
goto_unload_area
_factor"
)
logger
.
info
(
"
self.goto_dump
_factor"
)
logger
.
info
(
self
.
goto_
unload_area
_factor
)
logger
.
info
(
self
.
goto_
dump
_factor
)
logger
.
info
(
"
cost_to_unload_area
"
)
logger
.
info
(
"
self.goto_dump_factor
"
)
logger
.
info
(
cost_to_unload_area
)
logger
.
info
(
self
.
goto_dump_factor
)
except
Exception
as
es
:
except
Exception
as
es
:
logger
.
error
(
es
)
logger
.
error
(
es
)
logger
.
error
(
"车流规划信息计算异常"
)
logger
.
error
(
"车流规划信息计算异常"
)
...
@@ -193,25 +215,20 @@ def Traffic_para_init(num_of_load_area, num_of_unload_area, num_of_excavator, nu
...
@@ -193,25 +215,20 @@ def Traffic_para_init(num_of_load_area, num_of_unload_area, num_of_excavator, nu
# 计算逻辑道路因子
# 计算逻辑道路因子
print
(
"here4"
)
# for i in range(num_of_excavator):
print
(
num_of_dump
)
# for j in range(num_of_dump):
# # 查找挖机绑定的装载区, 卸载设备绑定的卸载区
for
i
in
range
(
num_of_excavator
):
# load_area_index = tra_para.excavator_index_to_load_area_index_dict[i]
for
j
in
range
(
num_of_dump
):
# unload_area_index = tra_para.dump_index_to_unload_area_index_dict[j]
# 查找挖机绑定的装载区, 卸载设备绑定的卸载区
#
load_area_index
=
tra_para
.
excavator_index_to_load_area_index_dict
[
i
]
# # 逻辑道路因子赋值, 来自实际道路因子
unload_area_index
=
tra_para
.
dump_index_to_unload_area_index_dict
[
j
]
# tra_para.goto_excavator_factor[j][i] = \
# tra_para.goto_load_area_factor[unload_area_index][load_area_index]
# 逻辑道路因子赋值, 来自实际道路因子
#
tra_para
.
goto_excavator_factor
[
j
][
i
]
=
\
# tra_para.goto_dump_factor[i][j] = \
tra_para
.
goto_load_area_factor
[
unload_area_index
][
load_area_index
]
# tra_para.goto_unload_area_factor[load_area_index][unload_area_index]
tra_para
.
goto_dump_factor
[
i
][
j
]
=
\
tra_para
.
goto_unload_area_factor
[
load_area_index
][
unload_area_index
]
# print("cout", tra_para.priority_coefficient_goto_dump, tra_para.priority_coefficient_goto_excavator)
# except Exception as es:
# except Exception as es:
# logger.error(es)
# logger.error(es)
# logger.error("车流规划类
比
初始化异常")
# logger.error("车流规划类初始化异常")
return
tra_para
return
tra_para
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