缩略图
Primary Education

自适应大邻域搜索算法求解卡车无人机联合检测风力发电机群

作者

陶文瑀

江苏自动化研究所 江苏连云港 222000

1 引言

风电作为最常见、最成熟的可再生能源之一,近年来得到了广泛关注与增长。一个风力发电场的建设通常占用数百平方公里,且部署在偏远地区,这使得风力发电机都处于恶劣环境,需要经常进行故障检测。而目前传统的检测方式为无损检测(NDT),通常由人工完成 ,这在检测故障方面将面临巨大的运行和维护成本。 最近对无人机检测风力发电机的关注越来越多,用无人机检测风力发电机是一种更加经济且高效的方式。目前,总部位于密歇根州的初创公司 SkySpecs 可以使用无人机在 15 分钟内检查一台风力涡轮机,每天覆盖 17 台风力涡轮机。

由于无人机检测的种种优势,使用卡车和无人机联合检测的方法被提出。本文研究 了使用一架无人机和一辆可搭载无人机的卡车从仓库出发,卡车停留在预定风机位置。在每次卡车停靠时,无人机飞行检查几个风力发电机,然后返回卡车的情形。研究考虑如何规划卡车和无人机路径,使得总巡检时间最短。

2 文献综述

使 用无人机检测风力发电机的研究早已成熟。赵等人提出的基于优化深度学习框架的自动诊断方法可有效实现对风力机叶片表面损伤的准确诊断 [1]。

在无人机与卡车的结合使用在物流配送领域已经得到大量关注。在物流配送领域,杨双鹏[2] 等人提出" 卡车 + 无人机" 联合配送模式,构造三阶段求解方法。陈希琼 [3] 等以最小总成本为目标建立了单卡车和多无人机联合配送路径优化模型,设计了自适应大邻域搜索算法;肖建华 , 徐俪轩 [4] 等人针对农村电商物流 " 最后一公里 " 的配送难问题,设计了 " 动态 " 破坏策略和 " 平行 " 修复策略 , 提出了改进的大邻域搜索算法求解该模型。

以上研究假设卡车仅作为搭载无人机的工具而本身不具备交付货物的功能。在配送领域,无人机一次发射只能访问一个客户是符合现实情况的,但是若连续服务多个客户目前还有不少的挑战,但是在检测风力发电机就有很大的应用价值。 Baik 和 Valenzuela[5] 考虑了上述卡车无人机系统用于风力发电机群的检测工作,其中无人机可以连续访问多个需求点,而卡车的停靠点为某个集群的需求点位置,研究首先使用结合旅行商问题(TSP)的 k-means 算法确定风力发电机群和无人机访问路径,而后通过混合整数规划模型求解广义旅行商问题(G-TSP)确定卡车行驶路径。

在这篇文章中,对 Baik 和 Valenzuela[5] 提出的问题场景下,设计了结合切割策略的自适应大邻域搜索算法求解。并基于 Baik 和Valenzuela[5] 中的案例和国内真实风力发电机群进行了实验,结果表明使用了切割策略的自适应大邻域搜索算法能显著减小总巡检时间。

3 问题描述

无人机卡车联合检测系统使用一辆卡车和一架无人机。无人机完成检测工作,每个风机的检测时间为 I 分钟,卡车仅作为携带无人机的运输载具。假设无人机以 V-drone 的恒定速度飞行,飞行续航时间为 D-max(最大飞行时间)。卡车以 V-truck 的恒定速度从一个集群移动到另一个集群,并且只在集群中的某个风机位置停放,以部署和发射无人机。在卡车到达每个集群(停靠站),有部署准备时间P 分钟。其目标是最小化返回仓库的总时间具体模式如图 1 所示:

图 1 卡车无人机联合检测模式

4 结合切割策略的自适应大邻域搜索算法

上述 问题使用 CPLEX 求解后发现在风机数大于 12 时,花费 3 小时也无法求得最优解,在实际情况中一个风力发电站的规模至少是30 个风机以上,因此难以应用模型求解。考虑到问题的特点,求解质量和效率,本文提出基于切割策略的自适应大邻域搜索算法。

Ropke 最早于2006 年提出的自适应邻域搜索算法(ALNS),是大邻域搜索算法的扩展,其在迭代优化过程中依概率选择使用多种不同的破坏算子与修复算子,并不断根据算子的效率调整算子被选择的权重,在每一阶段加入模拟退火的思想接收较差解以减少算法陷入局部最优的概率。该算法已成功应用于车辆路径、调度等多个领域。本文分别设计了三种不同的破坏、修复算子并结合切割策略的成本评估方法运用ALNS 算法求解该问题。算法流程如Algorithm1 所示:

Algorithm1: ALNS

输入: Tinit: 初始温度; Trin :最终温度;c冷却速率;S 初始解

输入:RO:顾客移除集合;IO:顾客插入集合

1.Sb(ψs)←S, T←Tmax

2.while未达到停止条件时(循环次数)do

3.whileT mindo

4. s←s

5. q← 需要移除的风机数(这里设置为3

6. ro← 根据RO中各操作的权重,采用轮盘赌方法选择一个破坏算子

7. io← 根据IO中各操作的权重,采用轮盘赌方法选择一个修复算子

8. 采用ro算子从S"中移除q个风机

9. 采用io算子重新将q个风机插回S"

10. iff(s 1best Dthen

11. SbestSS ,增加ro和i的分数θ

12. else if f(S) ≺ f(S)then

13. s←s ,增加ro和io的分数θ2

14. else ff(S)≥f(S) ,但S'被退火准则接收then

15. s←s ,增加ro和io的分数 θ3

16. end if

17. T←T*c

18.end while

19. T←Tinit

20.更新RO和IO中各算子权重,并重置得分为0

21.end while

4.1 编码与初始解生成

本文 的算法采用整数型编码。在生成初始解时,本文考虑了两种方式。第一种则为随机生成产生初始风机排列;第二种考虑风机的空间距离特征,由于将距离较近的风机安排在同一簇内是使运输时间变小的策略,因此选取距离仓库中心最近的风机作为第一个风机,随后使用最邻近插入的方法将剩余风机依次加入排列,生成初始解。

这里以 5 个风机为例,如图 2 所示,假设仓库编号为 0,风机编号为 1-5,那么一个初始解的编码为 0-1-3-2-4-5-0。由于无人机的续航时间约束,这条排列会被分成多段,如 1-3-2,4-5 两段的无人机飞行时间成本在无人机的续航时间内,因此会形成两条无人机路径,即两个集簇;同时每段的第一个风机编号则作为卡车的停靠点,所以卡车的行驶路径为 0-1-4-0。采用 这种方式编码的优点在于简单,快捷,并且在后续的破坏修复操作总能生成可行解,避免了编码长度不固定及成本计算困难等问题。

图 2 编码方式示意图

4.2 基于贪婪切割的成本计算

卡车联 合无人机检测风力发电站的总时间成本计算在第二节中的公式(1)已经给出。但是针对以上的整数编码时,需要对解的形式进行解码才能更好地描述成本。这里采 用贪婪切割策略对解进行解码和成本的计算。即解切割成能完成最多无人机检测任务点的段。

Alg orithm2 给出将风车解排列分割成多个无人机段的算法步骤。根据分割后得到的solution 计算总巡检成本,总巡检成本计算包括卡车行驶时间 Ttruck ,无人机巡检时间 Tdrone ,无人机部署准备时间 Tρre 。其中具体计算方式如下:

(1) 卡车行驶时间 Ttruck :依次排列 solution 中每个 segment 的第一个位置风机,后计算距离 Distruck ,则卡车行驶时间

(2) 无人机巡检时间 Tdrone :所有 segment 中无人机飞行总距离为Dis , 风机个数为 j ,无人机的飞行时间为 DVisdrone , 无人机服务时间等于 I*j ,巡检时间

(3) 部署准备时间 Tpre :假设 solution 中的 segment 数量为 i ,则部署准备时间为 p*i ;

从而总时间成本等于 Tdrone+Ttruck+Tpre

Algorithm2:分割算法

输入:S:初始解;length:每个弧段的距离; Dmax :续航时间;Voowe :无人机速度;1:服务时间;

输出:solution:分割后的无人机段组

2.for风机i inSdo

3.Tlength←length +Tlength

4. segment $$ 风机加入无人机段

6. j←j+1 continueelse

9. solution $$ 将无人机段segement加入

10. Tlength←0

11. j←0

12. segment $$ 清空风机

13.end for

4.3 破坏算子和修复算子

在 ALNS 算法中,破坏算子和修复算子的设计是算法是否有效的关键。本文依据问题特征设计了 3 种破坏算子和 3 种修复算子。其中破坏算子设计如下:

(1) 随机风机删除:对当前的解,随机选择q 个风机删除;

(2) 最远距离删除:删除减少总路径距离最长的风机,即将此风机删除后,路径总距离减少最大,其中将成本减少量 di-1,i+di,j+1-di,j 降序排列,而后选择前q 个风机进行删除;

(3) 最远风机删除:使用分割算法后,计算每个集簇中距离卡车停靠点的其他风机的距离,而后降序排列,选择前 q 个风机进行删除。此算子可以调整簇内的风机的范围,使每一簇的风机尽可能的紧密分布。

修复算子设计如下:

(1) 随机风机插入:将删除后的风机随机插入当前解;

(2) 贪婪插入:对应前面的最大距离删除操作,即将风机插入后,路径总距离增加最短,其中同样将增加量 di-1,i+di,j+1-di-1,j+1 升序排列,选择前q 个点的位置依次插入删除过后的风机。

(3) 最小成本插入:插入每个风机间位置后,使用切割算法计算使总成本 f(S) 减少最小的位置,按成本减少量升序排列,选择前 q 个

点的位置插入已删除的风机。

4.4 自适应机制

这一节描述如何在每次迭代中自动调整算子的权重。其基本思想是对每个算子的有效性进行评分,该分数衡量算子的表现。高分说明算子有效,低分反之,从而在下一次迭代增加高分算子的使用概率。

ALNS 中所有算子均有相同的初始权重 ωi=1.0 。在迭代过程中,通过轮盘赌的方法选择破坏算子( roi∈RO )、修复算子( ioi∈IO) 进行搜索,各破坏算子、修复算子被选择的概率分别为

在每次破坏和修复过程后,各算子中对应 ro 与 io 的分数会根据结果的优劣更新。假如进行一次破坏修复后找到了一个比全局最优解更优的解,那么参与此次破坏修复的算子分数增加 θr ;当进行破坏修复操作后找到一个比当前解更好的改进解,则参与的算子分数增加 θ2 ;当进行破坏修复操作后,解并没有比当前更好但是被退火原则接受,为相应的算子分数增加θ3 ;其中 θ123

本文 ALNS 的搜索过程划分为多轮迭代法,这里一轮迭代是参考模拟退火算法的退火思想,即设置初始温度 T0 ,退火速率c 和终止温度 Tend ,当退火达到终止温度时一轮迭代结束。每一次破坏修复操作后,通过退火速率常数 c 来降低温度, T←T×c ,直到温度低于终止温度 Tend 开始下一轮迭代。

为了避免算法在解空间中陷入局部最优,有必要控制和接受由每次破坏、修复迭代产生的较劣解。因此,ALNS 借鉴模拟退火的接受标准。该准则依概率 接收当前解,其中Ti 为当前的温度, f(S') 为旧解的成本, f(S) 为当前解的成本。

5 算例验证

5.1 参数设置

为了测试算法的有效性,本文选取了小、中、大规模三种类型测试算例,包括文献 [5] 美国某实际风力发电站位 置坐标,其中小、中、规模发电站算例各一个。小规模算例中包括德克萨斯州怀尔多拉多附近的 Golden 风力项目,范围为 16 平方公里的 34 个风力涡轮机。中型风电场选择了德克萨斯州沙克尔福德县的 Hackberry 风力项目,这个风力项目有 72 个风力涡轮机,范围为 40 平方公里。对于代表大型风电场的案例,引文选择了位于德克萨斯州达拉斯西南约 300 英里的Langford 风力项目。这个风力项目有 100 个风力涡轮机,面积约 142平方公里。其中仓库位于风力涡轮机的质量中心。

本文算法采用 C++ 编程实现。运行环境为 Windows 10 操作系统,电脑内存为 16G,处理器为 AMD Ryzen 7 4800H,主频 2.90GHz 。经过反复测试,本文算法参数设置如下:最大迭代次数 MAXGEN ⌈=20⌉ ;模拟退火初始温度 T_MAX -5000 ; 终止温度 T_MIN=1e-8;退火速率c=0.5 ;自适应参数设置 b=0.5, 。另外无人机和卡车的具体参数设置如表 1 所示。

表 1 参数设置

5.2 实际案例优化结果对比

本节对实例下的无人机卡车路径进行优化,并分别从无人机飞行时间,卡车行驶时间,卡车准备时间三个方面对自适应大领域搜索算法(ALNS)和文献[5] 中先聚类后求解广义旅行商问题(kmeans+GTSP)的寻优结果进行对比。

从表 2 可知,本文的 ALNS 算法相较于文献 [5] 的算法在联合检测总时间上更优。虽然在小规模算例上效率提升不高,在聚簇数量(卡车停靠数)上没有改变,因为卡车运行时间的减少,总时间相对还是有 0.4% 的缩短。但在中等规模算例中,ALNS 算法的聚簇数(卡车停靠数)从 13 个下降到了 9 个,在卡车准备无人机发射阶段缩短了20min ,且卡车的行驶时间也相应的缩短,所以总时间降低了 2.31% 。在大规模算例上,ALNS 聚簇数(卡车停靠数)减少了 9 个,准备时间缩短 45min ,卡车行驶时间减少了约 12min ,尽管无人机飞行时间会增加,但是总时间上还有 3.88% 的提高。在算法耗时方面上,ALNS 算法在小规模、中规模和大规模算例分别减少了6.32s,23.04s,121.49s 。基于切割的自适应大邻域搜索算法在提升求解质量的同时,还显著的提升了求解效率。

图 4 中规模算例下文献[5] 算法卡车无人机路径

图 3 中规模算例下ALNS 算法卡车无人机路径

其中以中规模算例为例,图 3 给出了本文 ALNS 算法的卡车无人机检测路径,图 4 为文献 [5] 方法下的卡车无人机检测路径。其中实线表示卡车行驶路径,而虚线表示无人机行驶路径,其中每个椭圆形阴影表示一个卡车停靠后无人机飞行的聚簇。

6 结论

本文在卡车联合无人机共同检测风力发电站的场景下,建立了以最小化返回时间为目标的数学规划模型,给出了贪婪切割策略的自适应大邻域搜索算法(ALNS)。在数值实验中,基于不同规模的算例,对比本文的算法和前人提出的方法,测试验证了两种算法的性能。并对传统检测方式和联合方式上大规模算例上,在解的质量和运行时间方面,所提出的 ALNS 远远优于聚类启发式与,因此 ALNS 算法能够以合理的运行时间与稳健性解决新生成的大型实例。

参考文献

[1] 赵肖懿, 董朝轶, 周鹏, et al. 基于无人机机器视觉的风力机叶片损伤诊断研究 [J]. 太阳能学报 , 2021, 42(07): 390-7.

[2] 杨双鹏 , 郭秀萍 , 高娇娇 . 无接触式 " 卡车 + 无人机 " 联合配送问题研究 [J]. 工业工程与管理 , 2022, 27(1):184-194.

[3] 陈希琼 , 王兴隆 , 胡大伟 . 考虑等待成本的卡车与多无人机联合配送农村物流路径优化 [J]. 运筹与管理 , 2024, 33(8):23-29.DOI:10.12005/orms.2024.0246.

[4] 肖建华 , 徐俪轩 , 李雅梦 . 基于卡车 - 无人机的农村电商 " 最后一公里 " 联合配送优化研究 [J]. 2021.

[5]BAIK H, VALENZUELA J. An optimization drone routing model for inspecting wind farms [J]. Soft Computing, 2020, 25(3): 2483-98.

作者简介:陶文瑀(1997.10-),男,汉族,安徽当涂人,工程师,硕士学历,研究方向:优化理论,启发式算法,混合整数规划