基于强化学习的分布式光伏运维资源动态调度
2022-03-11苏雍贺
高 鹏,苏雍贺,左 颖,陶 飞
(北京航空航天大学 自动化科学与电气工程学院,北京 100191)
1 问题的描述
近年来,我国光伏产业发展迅速,其中分布式光伏电站的装机总量占比逐年上升,对分布式光伏运维服务效率和服务质量提出了更高的要求。分布式光伏运维资源主要包括运维人员、辅助工具、备件等,运维任务根据紧急程度分为计划型任务和应急型任务两类,不同类型任务的调度需求如图 1所示。计划性任务通过人工手段、根据任务所需时间窗制定调度计划,当出现紧急任务时,采取插单方式对运维资源进行重调度[1],这种调度方式效率较低,难以满足日益增长的运维需求,而通过研究分布式光伏运维资源动态调度方法,根据任务插单情况对运维资源进行动态调度,可以提升分布式光伏的运维效率和服务质量。
为了实现分布式光伏运维资源动态调度,本文将开展以下研究[2]:①构建分布式光伏运维资源动态调度优先级规则,通过该规则确定运维任务执行的先后顺序;②根据运维单位调度需求建立动态调度数学模型;③为了保证调度计划的求解速度和求解稳定性,选择Q-Learning算法求解本文调度模型,通过与其他常用智能优化算法进行对比,证明Q-Learning算法更适合求解本文的动态调度模型。
2 分布式光伏运维资源动态调度方法研究现状
2.1 动态调度优先级规则研究现状
分布式光伏运维任务进行中会有新的任务插单,在运维资源有限的情况下,需要通过任务优先级规则确定执行顺序[3]。单一任务优先级规则[4-5]灵活性较差,难以满足不同类型运维任务的动态调度需求,需要建立组合优先级规则对分布式光伏运维任务的顺序进行灵活调整[6]。
王雄伟等[7]针对战场车辆抢修动态调度问题,基于维修时间、维修前等待时间、受敌威胁程度与装备重要程度等因素建立组合优先级规则,战场车辆抢修需要重点考虑在最短时间恢复最大战斗力,而在分布式光伏运维资源调度中,除维修时间最短外,还需综合考虑客户提出的任务时间窗限制及运维任务对运维资源数量的需求等,合理调整任务执行顺序;马丽萌等[8]针对车间动态调度问题,选择最早交货期、最短剩余加工时间等因素建立组合优先级规则,可以及时满足客户订单需求,但在本文中,因为故障等级不同导致任务重要性存在差异,同时部分任务需要根据业主空余时间确定时间窗,所以基于不同优先级规则组合综合考虑任务优先级。在分布式光伏运维资源动态调度中,需要考虑任务紧急程度差异、任务时间窗限制、任务接收时间、任务对运维资源需求的数量等因素,对任务优先级进行调整。
2.2 运维资源动态调度模型研究现状
在运维资源调度模型方面,ASVIN等[9]针对电网维护的人员调度问题,以电网停机时间最短和人员路径最短为优化目标建立调度模型,因其故障类型单一而未考虑人员技能差异;YUAN等[10]针对高压电传输设备的检修调度问题,考虑最小检修成本建立维修任务动态调度模型,该调度场景中的检修设备相对集中,而分布式光伏电站相对分散,需要考虑任务执行过程的运输距离;HUA等[11]针对光伏电站设备维修调度问题,考虑维修人员技能差异,以维修成本最低和最短路程时间为优化目标建立调度模型,但未考虑对辅助工具与备件的调度。
本文因为用于分布式光伏运维的部分辅助工具单价较高,对运维人员有操作资质要求,所以需要对辅助工具进行合理调度;同时,不同类型、不同数量的备件分别存储在不同的运输仓库,调度时需要考虑备件的数量和运输距离进行合理调度。因此,本文需要针对不同类型和技能的运维资源分析优化目标与约束条件,建立分布式光伏运维资源动态调度模型。
2.3 运维资源动态调度算法研究现状
动态调度算法用于求解动态调度模型,对稳定性和实时性要求较高[12]。其中,以遗传模拟退火算法[13]、粒子群优化算法[14]为代表的智能优化算法是求解运维资源动态调度问题常用的算法,但是由于存在较高的随机性,其在动态环境中的适应能力较差[15]。
强化学习算法中的Q-Learning算法凭借稳定性好、求解速度快的优点,在动态调度问题求解中应用较广[16-20]。汪浩祥等[21]采用Q-Learning算法求解航空发动机自适应装配调度问题,在装配环境变化频繁的情况下具有较好的自适应性;CAMILA等[22]采用Q-Learning算法求解太阳能热水系统的运行调度问题,能够在不同月份、不同天气状况下制定合理的运行计划来保证热水供应;苏兆品等[23]针对灾后受损路网修复的抢修队动态调度问题,通过改进Q-Learning算法并进行求解来提高运输效率和修复效率。
现有的动态调度问题主要针对单一对象、采用Q-Learning算法求解,本文在采用Q-Learning算法求解时需要考虑多类型资源下对Q矩阵状态与行为的定义方式;同时,因为不同类型资源间存在一定约束关系,所以需要考虑在这种约束关系下如何更新Q矩阵的评价值。本文基于上述两方面问题,对Q-Learning算法进行改进,用于求解本文动态调度模型,并通过与其他部分智能优化算法对比,证明本文方法的优越性。
3 分布式光伏运维资源动态调度优先级规则
分布式光伏运维单位负责指定区域内的电站运维工作,而运维单位的运维人员、辅助工具和备件数量是有限的。在运维资源调度过程中存在计划型任务的时间窗要求或应急型任务插单等情况,当某一周期内有多个任务需要同时派遣运维资源前去处理时,应根据分布式光伏运维资源动态调度优先级规则计算不同运维任务的优先级指标,对任务执行顺序进行调整。
3.1 动态调度规则分析
根据上述分析,本文按照严重任务先处理、允许期限短任务先处理、任务先到先处理、资源需求少的任务先处理4条规则构建分布式光伏运维资源动态调度规则。设某时刻的任务集合为J*={J1,J2,…,Jn},其中任务Ji的子任务集合为Ji={Ji1,Ji2,…,Jim}。下面分别介绍上述单一规则的计算方法。
(1)严重任务先处理
分布式光伏运维任务分为轻微故障、一般故障、紧急故障3类。其中,紧急故障需尽快处理,非紧急故障允许在当天无法完成的情况下放入后续维修计划。任务Jij的严重程度用常数表示,令轻微故障严重程度Cij-minor=1,一般故障严重程度Cij-impor=2,紧急故障严重程度Cij-emerg=10;令任务Jij对应的故障设备数量为nij,对应故障的紧急程度指数为cij,则任务Ji的严重程度
(1)
(2)期限短任务先处理
令当前时刻为Tc,任务Ji的任务时间窗所允许任务的最晚开始时刻为Ti-latest,则任务Ji剩余允许期限
Ti-remain=Ti-latest-Tc。
(2)
(3)任务先到先处理
令任务Ji的申报时刻为Ti-occur,当前时刻为Tc;设当日值班的开始时间为0时刻,当日值班开始之前接受的任务申报时刻Ti-occur=-Ti,其中Ti为任务接受时刻与当日值班开始时刻相隔的时长;当日插单任务的申报时刻按照任务接受实际时刻计算。则任务Ji的已等待时间
Ti-wait=Tc-Ti-occur。
(3)
(4)资源需求少任务先处理
此处任务资源数量主要考虑人员与辅助工具,令任务Ji的人员需求数量为Ni-Mreq,辅助工具需求数量为Ni-Ereq,则任务Ji的资源需求数量
Ni-req=Ni-Mreq+Ni-Ereq。
(4)
3.2 动态调度规则构建
逼近理想解排序法(Technique for Order Preference by Similarity to an Ideal Solution,TOPSIS)[24]是一种用于评价多目标下方案优劣的方法,常用于评价多种调度规则下的任务优先级,本文采用该方法构建动态调度规则,具体流程如下:
步骤1设当前调度周期待调度任务集合J={J1,J2,…,Jm},其中m>1,任务Ji∈J表示当前某一站点的故障;其各项规则指数集合Vi={Vi1,Vi2,Vi3,Vi4}。构建当前任务集合的初始评价矩阵
式中第i行表示任务Ji的各项规则指数。
步骤2对初始化矩阵中的数值进行标准化,其中:任务紧急程度和任务等待时间两项为极大型指标,用式(5)进行标准化处理;任务完成期限和任务资源需求数两项为极小型指标,用式(6)进行标准化处理。若矩阵中某一列所有元素均为0,则将分母设置为一个极小的正数。
(5)
(6)
此时得到标准矩阵
步骤3将标准矩阵的每列乘以对应规则的权重指数ωj,得到最终的规范化矩阵W,
(7)
步骤4按照式(8)计算极大指标、极小指标的理想解W+和负理想解W-。
(8)
步骤5分别按照式(9)和式(10)计算每个任务与理想解、负理想解的欧氏距离。
(9)
(10)
步骤6贴近度Ci表示任务与理想解、非理想解的接近程度,其值越大,任务的优先级越高。采用式(11)计算贴近度,然后根据贴近度值调整当前调度任务的优先级顺序。
(11)
4 分布式光伏运维资源动态调度模型
4.1 场景假设
动态调度数学模型指动态调度过程中优化目标和约束条件的数学描述。首先,根据分布式光伏运维资源调度问题特点对调度场景进行如下假设:
(1)运维任务的时间窗指任务可以开始执行的时间窗,不考虑任务结束时间是否在时间窗内。
(2)本文一个电站的所有子任务均可同时进行,没有先后顺序。
(3)运维资源最初起始点均为运维单位,在完成当前任务后,可以从当前站点直接前往下一站点,不用返回运维单位。
(4)一个子任务最多只能由一位运维人员携带一台辅助工具或备件进行处理,运维人员和辅助工具可以在一次任务中处理多个子任务。
(5)运维人员因为岗位和资质差异,不同人员可执行的任务不同,不同类型辅助工具可执行的任务也不同。
4.2 数学模型的建立
基于已有的分布式光伏运维资源静态调度方法研究成果[25],结合动态调度需求,本文将任务运输总路程、任务完成总成本和任务完成总时间作为优化目标,设本次调度任务集合J*={J1,J2,…,Jn},其中任务Ji的子任务集合Ji={Ji1,Ji2,…,Jim}。构建的动态调度数学模型如下:
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
式(12)是将3个优化目标函数进行归一化处理[26]的函数,其中:a1,a2,a3为各优化目标的权重值;F1-max,F2-max,F3-max为各项指标对应的最大值;F1-min,F2-min,F3-min为各项指标对应的最小值。
式(13)~式(15)表示本次调度计划的目标函数,分别为最短运输总路程、最低任务完成成本和最短任务完成总时间,其中βB为备件存储数量不足的成本惩罚系数。
式(16)表示任务Ji的运输路程,其中:l为运维资源的运输路径条数;Dk为移动路径k的距离。
式(17)和式(18)分别表示人员执行成本、辅助工具损耗成本,其中:cMij为子任务Jij的负责人员时薪;tij为任务Jij的预计完成时间;cEij为子任务Jij所使用的辅助工具的损耗成本,与任务时间长短无关。
5 分布式光伏运维资源动态调度算法
Q-Learning算法[27]是强化学习中常用的算法之一,其主要通过构建状态—行为的评价Q矩阵选择最优路径。本文将任务Ji中子任务所需的运维资源类型分别看做一个状态,每个状态选择的人员、工具、备件看做行为。某个状态若选择了符合当前状态所需的运维资源,则给予归一化后的优化目标值作为奖励;若选择了不符合当前状态所需的资源,例如需要人员的状态选择了辅助工具或选择了不具备该项技能的运维人员,则奖励值为0。本文对Q矩阵状态—行为的描述如图2所示。
针对分布式光伏运维资源动态调度问题,改进后的算法流程如下:
步骤1初始化每次的训练周期次数t、更新程度γ、折扣因子α、动作选择概率μ,设当前任务集合中有n个任务,令i=0,根据图5生成任务J0的初始Q矩阵,并令其所有元素值为0。
步骤2本文调度问题需要为每个子任务分配运维资源,设每个子任务调度方案的初始状态为S0。每一步动作执行后,转移至下一个状态Si+1。
步骤3从当前状态Si下选择当前状态下的动作,其中有μ∈(0,1)的概率随机选择当前动作,有(1-μ)的概率选择当前状态下最大Q矩阵值对应的动作。
步骤4设选定的动作为Aj,此时对于下一状态Si+1的各项选择,其可能获得的最大Q值为
(21)
式中:γ为Q值的更新程度;R为当前动作的评价值;α为折扣因子。按照式(21)继续计算下一状态,直至计算完所有状态。
本文存在操作技能约束和备件存储数量约束,在对辅助工具状态进行行为选择时,默认对应任务人员状态下的最大Q矩阵值对应的人员为辅助工具操作人员,按照约束条件更新两个状态的奖励值。备件存储数量也是在选择对应仓库后,按照惩罚系数计算相应指标。
步骤5重复步骤1~步骤4,直至达到最大训练次数。此时根据Q矩阵每个状态下的最大值输出任务Ji最优的调度方案。采用更新后的评价矩阵对下一个任务Ji+1制定调度计划,直至完成所有任务的制定。
步骤6经过上述步骤的训练,为每个任务找到了最优调度方案,然后根据Q矩阵输出最终的动作序列,即为最终的调度方案。
6 实验验证
6.1 实验方案设置
本文根据国电电网电子商务公司某运维单位的分布式光伏实际运维情况设计实验方案。该运维单位的运维资源信息如表1所示,运维人员对辅助工具的操作能力如表2所示,各类型辅助工具参与不同类型电站运维任务的效率提升系数如表3所示;设备故障对运维人员、辅助工具和备件的需求信息如表4所示,其中包括分别对屋顶型光伏电站和地
表1 运维资源信息表
面型光伏电站执行同类型任务的预计时间参数;运维单位与管辖范围内的电站和仓库间路程如表5所示,实验假设车辆运输速度为40 km/h;人员时薪和辅助工具执行一次任务的损耗成本分别如表6和表7所示。
表2 人员对辅助工具的操作能力矩阵
表3 辅助工具调度任务的效率提升系数
表4 分布式光伏部分运维任务的需求信息和处理时间
表5 运维单位与电站间的距离 km
表6 人员时薪表
表7 辅助工具损耗成本
设某日的初始任务信息和后续插单任务信息如表8所示,任务类型和数量中对应的数字表示发生该故障的设备数量。从当日0时刻开始,按周期驱动[28]方式制定初始调度计划。
表8 某日任务信息表
6.2 算法参数设置
根据上述实验方案的设置信息,在运维调度系统中设置任务信息。国电电网电子商务公司的光伏运维工作中,为了减少发电收益,首先要在较短时间内处理完当前的运维任务,其次尽量降低运维人工成本,最后考虑运输距离。因此,将式(7)中的优先级权重设置为ω0=0.4,ω1=0.2,ω2=0.2,ω3=0.2,将式(12)中的权重设置为a1=0.2,a2=0.3,a3=0.5,分别对应式(13)~式(15)的3项优化目标,动态调度触发周期T=60 min。
在求解算法方面,本文另外选取遗传模拟退火算法[29]和粒子群优化算法[30]进行对比,算法参数设置如表9所示。验证平台的CPU处理器为Intel Core i7-4710MQ,内存为8 GB,操作系统为64位 Windows 10,开发语言为Python 3.9。
表9 算法参数配置
6.3 验证结果分析
针对上述研究内容,本文首先对组合优先级规则的合理性进行验证分析;其次,通过采用不同算法对上述任务列表制定调度计划,对比不同算法的求解质量和求解稳定性,证明Q-Learning算法更适合求解分布式光伏运维资源动态调度模型;最后,通过Q-Learning算法分别求解基于不同优先级规则的任务序列,验证本文优先级规则对调度模型优化目标的影响。
6.3.1 优先级规则验证分析
根据上述任务的任务接收时刻和任务可执行时间窗信息,按照周期T=60 min对运维任务进行动态调度。可将运维任务分为3次调度,每次调度对应的任务集合及其相关优先级参数如表10所示。其中,第1次调度为0时刻,第2次调度为1时刻,因为2时刻时无任务调度,所以跳过,即第3次调度为3时刻。根据表8,分别仅考虑单一优先级规则对每一次调度周期的任务进行排序,结果如表11所示。其中:“→”表示前者任务优先执行,“,”表示任务没有明确的先后顺序。再按照本文TOPSIS方法计算每一次调度时各任务的优先级指数,根据该优先级指数对运维任务进行排序。计算得到的任务贴近度值及任务执行顺序如表12所示。
表10 每次调度任务的单一优先级规则参数
表11 只考虑单一规则的任务优先级顺序
表12 基于组合优先级规则的任务贴近度值与执行顺序
由上述结果可见,在本文调度问题中,若只考虑某一项单一规则,则会出现任务顺序难以确定的情况,而通过组合优先级规则可以较好地避免该问题;同时,当不同任务的某一项指标参数接近时,采用本文方法可以结合其余几项规则得出最佳方案。综上所述,本文所提动态调度组合优先级规则基本可以确定分布式光伏运维资源动态调度过程中运维任务的优先级。
6.3.2 算法性能对比分析
根据上述算法参数配置,对当日任务的调度计划进行求解。每一次触发调度时,分别采用遗传模拟退火算法、粒子群优化算法和改进Q-Learning算法求解3次,对比各项优化目标,如图3~图5所示。然后,统计各项优化目标的平均标准差和每次求解时算法的运行时间,如表13所示。
表13 算法求解时间与求解稳定性的对比
以上实验表明,Q-Learning算法在几次调度中,不但相对其他算法性能均有较好的表现,可以较快找到调度方案,而且多次求解的结果差异较小,算法比较稳定,更适合求解分布式光伏运维资源动态调度模型。
6.3.3 优先级规则验证
为了进一步验证分析本文动态调度优先级规则对制定调度计划的影响,按照4条单一规则采用Q-Learning算法求解调度计划,最终的任务执行顺序和求解优化指标如表14所示。单条规则下无法确定的任务顺序采用随机方式确定,以便于算法求解。
表14 不同优先级规则下求解的平均优化指标对比
通过对比单一规则求解的最终调度方案与采用TOPSIS方法进行组合优先级排序后求解的最终调度方案,证明本文动态调度组合优先级规则可以在一定程度上提升任务执行效率,同时明显降低任务执行成本并缩短运输成本。最终的调度计划如表15所示,其对应的任务完成时间甘特图如图6所示。
表15 最终的调度计划表
6.3.4 额外实例验证
分布式光伏运维单位一般负责一个区域内光伏电站的运维工作,在某些特殊情况下,可能在某个时间点出现大量电站故障。因此,本节重点针对某一时刻出现较多运维任务时的调度算法性能进行验证。设在时刻6由中午天气状况造成大量光伏电站出现异常,具体信息如表16所示。下班时间为时刻9,时刻9以后不再调度新的任务,将当日未完成的非紧急故障放入第2天调度计划。
表16 额外实例任务信息表
根据优先级规则可知,任务优先级顺序应为J14→J11→J12→J13→J10→J9。算法参数设置如表9所示,采用3种算法分别求解,结果如图7所示,可见相比其他两种算法,Q-Learning算法的优势较明显。对应的甘特图如图8所示。
由上述结果可见,采用遗传模拟退火算法和粒子群优化算法求解时,任务完成时间均超过下班时间,而当任务量较大时,Q-Learning算法能够更合理地调度运维资源,保证任务的完成效率。
7 结束语
随着分布式光伏电站的发展,目前的运维调度方式很难满足快速增长的运维需求。本文根据分布式光伏运维工作的实际情况,对分布式光伏运维资源动态调度方法展开研究。首先,通过建立分布式光伏运维资源动态调度优先级规则,在资源有限时确定任务执行的先后顺序;其次,选择强化学习中的Q-Learning算法求解本文的动态调度模型,并基于调度模型特点,针对算法的Q矩阵生成与评价值更新进行改进。实验表明,本文动态调度优先级规则可用于确定不同类型运维任务的优先级顺序,改进Q-Learning算法对本文动态调度模型的求解质量高,算法稳定性好。通过实际应用证明,本文的分布式光伏运维资源动态调度方法可以合理分配运维资源,并降低运维成本,提高任务完成效率。本文对动态因素只考虑了任务插单情况,今后将分析更多类型的动态因素,并进一步研究动态调度驱动流程,以完善分布式光伏运维资源动态调度方法。