AGV调度算法

AGV调度算法的目标是在指定原点向多条路径进行调度AGV派送任务。

如何用更快、成本更小地调度AGV? 当变量足够多、情况足够复杂时, 很难从数学的角度找到一个通式或是最优解。本文主要探讨AGV调度算法的两种模式——basic模式和handover模式。

Basic模式

Basic模式指在一条路径上仅用一辆AGV进行调度,  是一种最简单的模式并且可以根据参数给出一个普遍的数学公式求解系统的运行时间:

t=\sum_{k=1}^{n} \frac{2d_{i}}{v}T_{i}

并且可由此得到AGV运动总距离:

S=v\sum_{k=1}^{n} \frac{2d_{i}}{v}T_{i} = \sum_{k=1}^{n}2d_{i}T_{i}

代码实现

已实现, 套公式即可。

Handover模式

Handover模式指对任意路径的AGV调度数量无上限, 且在路径上的碰撞认定为任务的交接。交接完成后运行方向改变。

在现实中根据任务不同, 交接时间也不相同。当然, 本文主要讨论给定条件与参数的Handover模式, 只需要考虑交接时间平均值, 即交接时间固定. 以后研究实时AGV调度时,会考虑灵活交接时间的Handover情况。

当变量足够多,情况足够复杂时,很难得到一个普遍的数学公式。

本文首先从交接时间为0的理想情况入手, 此模式称为理想Handover模式。

理想Handover模式为Handover模式的极限情况。

理想Handover模式的特例

在理想情况下, 当系统有足够数量的AGV,满足为可连续派发AGV的特例时, 可给出一个数学公式计算系统运行时间:

t=max\left \{ T_{1} t_{0} + \frac{2d_{1}}{v}, (T_{1}+T_{2})t_{0})+ \frac{2d_{2}}{v},....., t_{0}\sum_{k=1}^{i}T_{i}+ \frac{2d_{i}}{v},....., t_{0}\sum_{k=1}^{n}T_{n}+ \frac{2d_{n}}{v} \right \}

可用归纳法证明, 

调度优先级的数学归纳法证明:

结论1: 无交接时间情况下, 每条路各存在一个任务时, 满足调度优先级原则。(调度优先级原则:路径越长优先级越大)

首先声明:此情况为系统可调度的车辆足够多,只需要证明车辆够的情况就等价于证明了车辆不够的情况。

设AGV速度为v, 调度间隔为T

1.首先证明存在两条路径的情况

设d1<=d2

易知,两条路径的情况共有2种调度顺序。

d1 -> d2

d2 -> d1

从图表中可知, 若d1先调度, 则系统的最终返回时间必为T+\frac{2d_{2}}{v}。 此时间大于d2先调度情况下的任何返回时刻。

所以调度顺序应为d2 -> d1

因此当只有两条路径时路径越长调度优先级越大.........

2.下面证明存在三条路径的情况

设d1<=d2<=d3

易知,三条路径的情况共有6种调度顺序:

d1 -> d2 -> d3

d1 -> d3 -> d2

d2 -> d1 -> d3

d2 -> d3 -> d1

d3 -> d1 -> d2

d3 -> d2 -> d1

首先我们固定第一条路径, 根据结论①可知, 剩下的两条路径中长路径先调度.

因此, 三种路径的情况化简为3种调度顺序:

d1 -> d3 -> d2

d2 -> d3 -> d1

d3 -> d2 -> d1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MedivhMai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值