Commit 67d88c4c authored by 张晓彤's avatar 张晓彤

异常处理BUG

parent 9b13cd89
......@@ -327,6 +327,58 @@ class Group(WalkManage):
logger.error(es)
logger.error("modify update 异常")
def update_excavator_hold_truck(self, excavator_hold_truck):
group_excavator_hold_truck = {}
for group_id in self.group_set:
excavator_group = self.device_group[group_id][1]
group_excavator_hold_truck[group_id] = np.zeros(len(excavator_group))
for excavator_id in excavator_group:
group_excavator_index = self.group_excavator_uuid_to_index_dict[group_id][excavator_id]
excavator_index = self.excavator.excavator_uuid_to_index_dict[excavator_id]
group_excavator_hold_truck[group_id][group_excavator_index] = excavator_hold_truck[excavator_index]
return group_excavator_hold_truck
def update_dump_hold_truck(self, dump_hold_truck):
group_dump_hold_truck = {}
for group_id in self.group_set:
dump_group = self.device_group[group_id][0]
group_dump_hold_truck[group_id] = np.zeros(len(dump_group))
for dump_id in dump_group:
group_dump_index = self.group_dump_uuid_to_index_dict[group_id][dump_id]
dump_index = self.dump.dump_uuid_to_index_dict[dump_id]
group_dump_hold_truck[group_id][group_dump_index] = dump_hold_truck[dump_index]
return group_dump_hold_truck
def update_allow_flow_to_excavator(self):
group_allow_flow_to_excavator = {}
for group_id in self.group_set:
dump_group = self.device_group[group_id][0]
group_allow_flow_to_excavator[group_id] = np.zeros(len(dump_group))
for dump_id in dump_group:
group_dump_index = self.group_dump_uuid_to_index_dict[group_id][dump_id]
dump_index = self.dump.dump_uuid_to_index_dict[dump_id]
group_allow_flow_to_excavator[group_id][group_dump_index] = self.excavator.excavator_strength[dump_index]
return group_allow_flow_to_excavator
def update_allow_flow_to_dump(self):
group_allow_flow_to_dump = {}
for group_id in self.group_set:
dump_group = self.device_group[group_id][0]
group_allow_flow_to_dump[group_id] = np.zeros(len(dump_group))
for dump_id in dump_group:
group_dump_index = self.group_dump_uuid_to_index_dict[group_id][dump_id]
dump_index = self.dump.dump_uuid_to_index_dict[dump_id]
group_allow_flow_to_dump[group_id][group_dump_index] = self.dump.dump_strength[dump_index]
return group_allow_flow_to_dump
def period_update(self):
self.reset()
self.update_dispatch_truck_group()
......
......@@ -353,9 +353,17 @@ class Dispatcher(WalkManage):
# 3. 启用饱和度调度
else:
logger.info("饱和度调度")
actual_flow_to_excavator = truck.excavator_hold_truck_num * truck.payload / self.group.group_park_to_excavator[group_id].reshape(1, -1)
logger.info(truck.excavator_hold_truck_num)
logger.info(np.mean(truck.payload))
logger.info(self.group.update_excavator_hold_truck(truck.excavator_hold_truck_num))
allow_flow_to_excavator = excavator.excavator_strength
excavator_hold_truck = self.group.update_excavator_hold_truck(truck.excavator_hold_truck_num)[group_id]
actual_flow_to_excavator = excavator_hold_truck * np.mean(truck.payload) / self.group.group_park_to_excavator[group_id].reshape(1, -1).flatten()
# allow_flow_to_excavator = excavator.excavator_strength
allow_flow_to_excavator = self.group.update_allow_flow_to_excavator()[group_id]
target = np.argmin(actual_flow_to_excavator / allow_flow_to_excavator)
......@@ -536,11 +544,15 @@ class Dispatcher(WalkManage):
transport_value = self.group.group_walk_to_dump_cost[group_id][:, excavator_index].reshape(1, -1)
actual_flow_to_dump = truck.dump_hold_truck_num * truck.payload / \
dump_hold_truck = self.group.update_dump_hold_truck(truck.dump_hold_truck_num)[group_id]
actual_flow_to_dump = dump_hold_truck * truck.payload / \
self.group.group_walk_to_dump_cost[group_id][:, excavator_index].reshape(1,
-1)
allow_flow_to_dump = dump.dump_strength
allow_flow_to_dump = self.group.update_allow_flow_to_dump()[group_id]
target = np.argmax((1 - actual_flow_to_dump / allow_flow_to_dump) / transport_value)
target = dump.dump_uuid_to_index_dict[
......@@ -669,11 +681,16 @@ class Dispatcher(WalkManage):
transport_value = self.group.group_walk_to_excavator_cost[group_id][dump_index, :].reshape(1, -1)
actual_flow_to_excavator = truck.excavator_hold_truck_num * truck.payload / \
excavator_hold_truck = self.group.update_excavator_hold_truck(truck.excavator_hold_truck_num)[
group_id]
actual_flow_to_excavator = excavator_hold_truck * truck.payload / \
self.group.group_walk_to_excavator_cost[group_id][dump_index, :].reshape(
1, -1)
allow_flow_to_excavator = excavator.excavator_strength
# allow_flow_to_excavator = excavator.excavator_strength
allow_flow_to_excavator = self.group.update_allow_flow_to_excavator()[group_id]
target = np.argmax((1 - actual_flow_to_excavator / allow_flow_to_excavator) / transport_value)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment