基于状态任务网络的水泥生产流程分析*
2023-11-10宫飞翔赵永亮赵昕李秋爽邹华
宫飞翔,赵永亮,赵昕,李秋爽,邹华
(1.中国电力科学研究院有限公司,北京 100192;2.北京邮电大学 网络与交换技术国家重点实验室,北京 100876;3.国网山东省电力公司经济技术研究院,山东 济南 250021)
0 引言
水泥作为基本的建筑材料,具备需求量大的特点,在2021 年及2022年,水泥产量分别达到23.63 亿吨及21.18 亿吨[1]。同时水泥行业是一类高耗能的产业类型,水泥熟料能效基准水平为117 千克标准煤/吨[2],按照电热当量计算法,截至2020 年底,水泥行业能效低于基准水平的产能约占24%,根据前文的数据进行估算,约有超过5 亿吨的水泥产量的生产能力需要进行改进,具备较大的节能减排改造潜力。为了对水泥生产耗能进行改进,除了采用更加先进的技术和生产设备之外,也可以通过对现有的生产安排进行优化,取得更为合理的生产安排,做到在生产设备运行时间不变的情况下提升水泥生产能力,从而减少每吨水泥产量的生产能耗,达到节能减排的目的[3],同时还可以提高生产效率,节约企业生产成本。
任务状态网络(State Task Network,STN)由Kondili等人提出,可以用于描述化工生产过程,此类过程通常按照一定的配方和流程进行[4]。STN 提供了一种此类流程的图形化表征、数学建模方法及相应的求解方法[5-6],将生产任务、原料及产物等抽象为有向图中的节点,并通过边的连接表示生产任务所对应的输入原料及输出产物,由于STN 的建立主要基于生产的配方,因此可以扩展至化工之外的领域。苏生等人在STN 的基础上对其进行扩展,使其成为能够描述具有复杂产品结构的生产过程、存储过程及不同运输模式的运输过程的模型,将其用于解决制造供应链问题[7]。赵均等人对药物发酵生产过程进行建模,并使用模拟退火算法对其进行求解,得到药物生产过程的调度结果[8]。Pantelides 认为STN 存在只能包含处理任务,无法处理存储、清洗等任务,同时STN 中流入、流出任务的比例必须为100%的缺陷,为了缓解上述缺陷,Pantelides 基于STN 建立了资源任务网络(Resource Task Network),将设备、存储、物料传输及公共设施按照统一的方式进行处理[9]。此外,Crooks 基于STN 提出最大化状态任务网(maximum State Task Network,mSTN),缓解了前述两个缺陷[10]。由于STN 为MILP模型,其求解为NP-hard 问题,Durand等通过一系列整数修剪方法来提高STN 建模的短期调度问题的计算性能[11]。
1 问题描述
本文主要对水泥生产中生产排产优化问题进行了研究。在水泥生产过程中,涉及的生产设备主要使用电力进行驱动,而工业用电中电价在不同的时间点可能不同,可以考虑在高峰用电时段根据生产需要选择停止生产,或是根据用电安全约束的需要对生产进行调节,将相关的生产安排在低谷电价时段,达到降低成本目的。因此通过利用STN 对水泥生产流程进行建模,对模型进行求解,得到最优化的生产安排计划。
2 本文方法
2.1 水泥生产流程的STN 对应关系
本小节主要描述水泥生产流程中可以与STN 构成对应关系的部分。以图1 所示部分水泥生产流程,可以将水泥生产过程中的原料、中间产物及最终产物表示为状态节点,生产过程中涉及的设备及生产步骤可表示为任务节点,涉及的使用原料及产生产物的关系表示为节点之间相连的边。
图1 水泥生产流程STN 部分示意图
STN 是一个有向图,包括状态节点、任务节点、状态任务边、任务状态边及设备5 个部分。
2.1.1 状态节点
状态节点s用于表示原料、中间产物及最终产物等,可具有的属性包括:
(1) 容量cs:表示在状态库存量的最大值,即在每一个时间点上可以存储在该状态的最大库存数量。
(2) 初始库存量is:表示在最开始的时候状态所拥有的库存数量。
(3) 价格ps:表示单位数量状态的价格。
2.1.2 任务节点及设备
任务节点t用于表示将输入的状态转化为其他状态的过程,如加热、反应及分离等。
设备u用于表示对每一个任务t而言,都需要为其分配一个设备来执行任务,并且在设备执行任务的过程中无法停止任务的执行,也无法转向执行其他任务。设备可具有的属性包括:
(3) 运行代价Cu,t:表示设备每运行一次所需要的代价。
(4) 处理代价Cˉu,t:表示设备在运行过程中每处理一单位输入状态量所需要的代价。
2.1.3 状态任务边及任务状态边
状态任务边Es,t为由状态节点s指向任务节点t的边,表示状态s作为任务t的输入,可具有的属性包括:
(1) 权重ρs,t:表示状态s占任务t的总输入的比例,如权重为0.5时,输入占总输入的50%。
任务状态边为由任务节点t指向状态节点s的边,表示状态s作为任务t的输出,可具有的属性包括:
(1) 权重ρt,s:表示状态s占任务t的总输出的比例,如权重为0.5时,输出占总输出的50%。
(2) 耗时dt,s:表示任务t执行时生成占总输出量一定比例的状态所需要的时间。
2.2 STN 模型的建立
本小节主要按照STN 基本元素的组成对STN 进行建模,主要分为决策变量、求解目标及求解约束三个部分。表1 给出了本节涉及的一些数学符号的含义。
表1 数学符号表
2.2.1 决策变量
模型中定义的决策变量如表2 所示,表中给出了模型变量的数学表达式、变量的类型以及具体含义。
表2 决策变量表
2.2.2 求解目标
模型中求解的目标是为了最大化利润,具体为使总利润(所有库存状态的价格之和)与总代价(总运行代价加总处理代价)之差最大,即:
2.2.3 求解约束
(1) 总利润约束:在时间到达结束时刻H时,总利润为所有状态中库存的价格之和,即:
(2) 总代价约束:在所有的时刻中,所有设备运行造成的代价之和,即总运行代价与总处理代价之和,数学公式为:
(3) 设备分配约束:在任意一个时刻中,任意一个设备最多只能够分配一个任务,即:
(4) 设备容量约束:在任意一个时刻,任意一个设备的总输入量必须大于等于最小输入量,且必须小于等于最大输入量,即:
(5) 设备质量守恒约束:在任意一个时刻,任意一个设备的库存必须为前一个时刻的库存与前一个时刻该设备的总输入量之和,然后减去前一个时刻设备的总输出量,当时刻为0时,可以认为前一个时刻的库存量、总输入量和总输出量都为0,即:
(6) 中止条件约束:所有设备在达到结束时刻H时库存量为0,即:
(7) 状态容量约束:在任意一个时刻,任意一个状态的库存量小于等于该状态的容量,即:
(8) 状态质量守恒约束:在任意一个时刻,任意一个状态的库存量等于前一个时刻的库存量与前一个时刻的总输入量之和,然后减去前一个时刻的总输出量,当时刻为0时,可以认为前一个时刻的库存量,总输入量和总输出量都为0,即:
2.2.4 模型求解
将2.2.3 节中出现的所有约束相互代换,最后代入求解目标的公式中,可以将大部分决策变量进行消除,最后仅留下和两个决策变量,其中为二元变量,为非负实数变量,并且该决策变量的阶数均为1次,因此求解目标是线性的。
同时,2.2.3 节中所有的约束所包含的决策变量的阶数均为1次,即所有的约束均为线性的,因此该模型为一个混合整数线性规划(Mixed-Integer Linear Program,MILP)模型。对于MILP 模型一般可以采用分支定界法、割平面法、隐枚举法进行求解[12],除此之外,由于MILP 模型是NP-hard的,可以通过如模拟退火、蚁群优化及遗传算法等启发式方法进行求解,启发式方法可以求出问题的近似解,并在一定概率上可以求得问题的最优解,但是此类方法无法判断问题是否有解,因为无法精确地判断是由于该方法还没有找到一个可行解,还是问题本身不存在可行解[13]。
以分支定界法求解MILP 问题精确解为例,该方法首先不对整型变量进行考虑,将所有整型变量看作是线性的,对原问题的松弛线性规划问题进行求解;之后进行分支判断,如果松弛问题的解不满足整型变量的约束,则任选一个整型变量对其上下取整,将原问题划分为两个子问题;在对问题进行求解时,通过对计算每个子问题的可行解得出问题的上下界,并通过该上下界进行剪支,加快计算的速度[14]。分支定界法也可用于求解问题的近似解,可以将松弛问题的解认为是最优解,通过求解子问题的上下界当前子空间内可能的最优解与全局最优解有多大的差异。
3 水泥生产流程的STN 排产实验
3.1 水泥生产流程的STN 表示
针对文献[15]所述水泥生产流程,将其进行简化后使用STN 进行水泥生产流程的建模,并额外扩展仓储的环节,其表示如图2 所示。图2 表示的是不带仓库的水泥生产流程的STN 表示,图3 及图4 在图2 的基础上分别对生料和熟料增加了仓储流程,在进行生产流程时可以将中间产物(生料、熟料)存放于对应的仓库之中,并在需要时从仓库中提取加入生产环节,同时还可以选择从市场中购入相应的产物补充仓储,图5 则在图2 的基础上对两种中间产物增加了仓储环节。
图2 无仓储水泥生产流程图
图3 带生料仓水泥生产流程图
图4 带熟料仓水泥生产流程图
图5 带生料仓及熟料仓水泥生产流程图
3.2 实验设置
对图2~图5 的每个图设定一个实验,分别为:
实验1:无仓库工艺流程调度实验;
实验2:带生料仓工艺流程调度实验;
实验3:带熟料仓工艺流程调度实验;
实验4:带生料仓及熟料仓工艺流程调度实验。
在图2~图5 中所有状态节点具有的属性如表3 所示。其中初始值列、价格列及容量列中取值为inf 时表示数量取足够大的值,在进行模型的求解时对规定范围内的时间范围内不会将状态的库存量全部消耗。对于生料、熟料等中间产物容量大小的设定则限定在输入设备一次所能够消耗的数量,从而对中间产物在非仓储条件下可能出现的堆积进行限制。
表3 状态节点属性表
在图2~图5 中所有出现的设备及其具有的属性如表4 所示,表中同类设备以设备名称最后的字母进行区分。对于运输设备和购入设备而言,设置代价的目的是希望生产调度的时候对这一类设备进行充分地利用,提升设备的利用效率,避免出现状态中累积数量较小时需要频繁使用设备进行运输的情况。同时考虑到实际的生产环境中如生料磨、煅烧炉及熟料磨这类主要生产设备的耗能较大,因此限定此类设备只能够在满载的情况下运作。此外对处理代价全部设置为0。
表4 设备属性表
在进行优化时,对图2~图5 所表示的水泥生产流程进行模型求解,并输出限定时间范围内最优化的调度方案,以甘特图的形式进行展示。其中进行优化的时间范围为从0~27 h,按照表3 和表4 的内容设定状态节点的属性及设备的属性。
3.3 实验结果及分析
图6~图9 分别为实验1~实验4 的调度结果图。
图6 无仓库调度图
从图6 来看,调度图呈流水线样式,调度的结果尽可能地对每个设备都进行了最大化的利用,在该图中,生料磨从0 h 开始到22 h 为止执行生料磨制任务,所生产的生料全部加入煅烧炉进行煅烧作业。由于煅烧炉每2 h 生产100 单位的生料,而煅烧炉每4 h 消耗100 单位的生料,因此生料磨不断进行作业可保证所有的煅烧炉的生料供应,煅烧炉在得到生料后即可一直保持生产,对于每个煅烧炉而言,在煅烧炉完成一个任务的作业后即可得到100 单位的熟料。由于熟料磨每小时可处理100 单位的熟料,大于两个煅烧炉每小时可获得的孰料数量,因此两个煅烧炉交替完成煅烧任务后产生的熟料可直接投入熟料磨进行生产。
从图7 来看,生产的调度安排会尽可能使各个设备以最大负荷持续运行,可以注意到生料库中的仓储生料会优先加入生产,同时在设定的时间段内生料磨会持续进行生产,生产产生的部分生料加入仓储,供生产调节使用。
从图8 来看,生产的调度安排与实验2 的类似,会主动调度仓库中的熟料进行生产,同时进行熟料的补充,可以看出带熟料仓的生产工艺可决定熟料仓是否进行运作,在需要停止生产时可将熟料存储在熟料仓中,提供一定的生产调节空间。
图8 带熟料仓调度图
从图9 来看,生产的调度安排与实验3 的类似,都在从市场中购入熟料补充仓储的同时尽可能安排生料磨和煅烧炉进行生产以补充熟料仓储,使熟料磨的利用尽可能最大化,同时利用仓库中原有的仓储进行生产的补充,使得生产具备更多的调节空间。可以看出,在同时带有两类仓库时,会优先使用仓库中的仓储原料,并且在某一仓中储量不足时会优先使用设备进行生产来补充仓储量,减少从市场上购入原料所带来的额外开销。
图9 带生料仓及熟料仓调度图
实验1 的负荷变化图如图10 所示,由于缺乏具体的用电数据,此处对负荷的计算进行了简化,假定每个设备用电功率相同,所有设备都运转时负荷为1,由于有四个设备,因此每个设备运转时负荷为0.25。可以观察到,负荷在生料磨-煅烧炉-熟料磨这条流水线满载时可达到最大负荷,同时由于熟料磨的生产能力大于煅烧炉的生产能力,该流程存在一定的生产调节空间,对照图6来看,煅烧炉完成煅烧后,熟料磨可以马上开始生产,也可以延后一个小时才开始生产,存在一个小时的调节时间。
图10 实验1 负荷变化
从四个实验来看,仓储环节及仓储补充环节的引入可以提供一定的生产调节能力,在进行生产时仓储的存在可以使得设备尽可能保持运行,对停机开机代价较大的设备比较有利,同时由于仓储提供了一定的生产调节能力,一方面可以根据电价的波峰波谷时段合理安排生产,降低生产成本,另一方面这部分生产能力作为可以进行调节的用电负荷,具备一定的负荷调节潜力,有利于平衡电网用电负荷,对电网需求侧响应能力建设具有积极作用。
4 结论
本文主要研究了基于STN 的水泥生产流程,利用STN,同时在满足用电安全约束的条件下,研究这两个环节的引入对生产调节能力的影响。
针对本文所做的研究,未来还可以有几个可以改进的方面:(1)对生产流程中状态节点的属性及各个设备的属性进行调研,获取实际的生产数据对建模进行改进;(2)在现有STN 的模型之上对其进行改进,目前STN 模型的运行时间只能针对某一特定的时间段进行,而在实际生产中设备会24 小时不停运转,因此可以研究可以支持时间段循环的STN 模型,从而适应前述实际生产场景。