考虑长输管线输油过程的原油调度模型
2023-08-10周智菊
周智菊,房 ,张 蕾
(中石化石油化工科学研究院有限公司,北京 100083)
在炼油企业,作为计划制定和生产操作的桥梁,调度过程对于计划方案的落地实施起着重要作用。基于管理习惯,可以将整个调度过程分为原油调度、生产调度、产品调合和交货调度过程[1]。原油调度方案决定着原油的储存、运输、调合和加工过程,是保证装置安全、平稳运行,实现高效利用机会原油和节约运营成本的基础和关键之一。目前,多数企业采用人工排产的方式确定原油调度方案。这种工作模式对调度员的能力要求较高,同时会造成计划方案编制周期较长,且只能编制出可行性方案,而无法编制出优化方案。为了实现企业高质量生产,许多科研人员选择开发数学规划模型去进行原油调度的智能编排。
根据原油输送环节不同,调度工艺流程可以分为:由油轮、储罐和原油蒸馏装置组成的三级储运流程,由油轮、码头罐、厂区罐和蒸馏装置组成的四级储运流程,由油轮、码头罐、管线、厂区罐和原油蒸馏装置组成的五级储运流程,其调度流程如图1所示。在三级原油储运流程中,企业会进行油轮卸载操作、储罐收油操作、罐内油调合操作、储罐付油操作和蒸馏加工操作。在四级原油储运流程中,除上述操作外企业还会进行由储罐到储罐的原油输送操作。五级原油储运流程最为复杂,除上述操作流程外,还涉及到原油管道调合操作和管道输送操作。长距离输油管线(长输管线)是五级原油储运流程中具有特征性的设备对象。因为输油管线的长度达到数十千米、甚至数百千米,所以原油进入管线后要经历数十小时才能离开管线,延迟效应大大增加了原油调度方案的编制难度。
学者对三级[2-5]和四级[6-10]原油储运流程问题研究较为广泛,但对长输管线的输油过程研究仍较少。目前,对长输管线输油过程的建模思路主要有2类:第一类方法[11-13]以原油“先进先出”的运行特征为立足点,根据原油的入线方案,更新管线内的原油分布并确定原油的出线方案。该类方法利用大量变量和约束来抽象原油“平推流”式的移动过程,而且常常不允许发生原油管道调合操作[11-12],这些都降低了模型的适用性。第二类方法[14-15]以固定时间长度作为原油在管线中的输送时间,简化描述管线延迟输送过程。该类方法实施简单,但只适用于以恒定速率连续输送的情况,而无法描述间断或变速输油过程。因此,第二类方法无法完全解决五级原油储运流程问题,迫切需要在第二类方法的基础上研发一种新的连续时间数学规划模型,不事先固定延迟时间,而通过原油入线方案来推测管线延迟输油过程,以指导原油输送方案的规划和实施。
1 问题描述
以中国A企业的原油调度过程为例,建立的数学规划模型解决其原油调度问题,但模型并不局限于解决此问题。图2为A企业原油储运流程。由图2可知:A企业拥有Ⅰ、Ⅱ两个码头罐区,Ⅰ罐区储罐(ST1~ST12)与泊位(BE)相连,直接接收油轮来油;Ⅱ罐区储罐(LT1~LT6)通过一条海底管线(ZL)接收Ⅰ罐区来油。这两个罐区均可通过一条长输管线(PL,163 km)向厂内罐区Ⅲ储罐(CT1~CT9)付油。另外,该企业有2套蒸馏装置(CD1和CD2),CD1可以加工含硫高酸原油,由罐CT1~CT4供料;CD2可以加工高硫含酸原油,由罐CT5~CT9供料。
图2 A企业原油储运流程示意ST1~ST12—Ⅰ区储罐; LT1~LT6—Ⅱ区储罐; CT1~CT9—厂内Ⅲ区储罐; CD1~CD2—蒸馏装置; BE—泊位; V1~V6—油轮; ZL—海底管线; PL—长输管线
为了便于海关检验计量,Ⅰ罐区只能进行单储操作,并且收油以后需要静置9 h才能向外付油。Ⅰ罐区的单罐罐容较小(50 000 m3),除去罐底后最多可装原油45 000 m3,为了尽快释放Ⅰ罐区的储罐资源,避免油轮滞期,原油可在海底管线ZL的入口处以及Ⅱ罐区的储罐内进行混合操作。Ⅰ、Ⅱ罐区内原油最终还会在长输管线PL的入口处发生混合操作,最终保证符合蒸馏装置进料设防值的要求。厂内Ⅲ罐区在收油以后会静置48 h以上,使罐内原油充分脱盐脱水,确保装置安全生产。在A企业,所有原油储罐均不允许同时执行收油和付油任务,以保证计量、混合等操作的完成质量。
不难看出,A企业的原油调度问题较为复杂,油轮来油最长将经过Ⅰ罐区、ZL、Ⅱ罐区、PL、厂内Ⅲ罐区5个节点才能到达蒸馏装置。其原油储运流程较长,具有长输管线这样的复杂输送环节,原油进入长输管线后要经过很长一段时间才能离开管线。该储运过程操作复杂,原油调合形式复杂多样,如储罐调合和管道调合等,而且调合环节多,可发生3次调合。同时,Ⅰ罐区常常发生多罐并行收油过程,这是因为单船原油运输量大(超过100 000 t),而单罐罐容小(50 000 m3);而且,泊位卸油速率上限高(6 667 t/h),而单罐收油速率上限低(5 500 m3/h)。此外,Ⅲ罐区的单罐罐容小(低至30 000 m3),储罐数量少(CD1供料罐4座、CD2供料罐5座),且要求收油静置48 h以上,这迫使调度员必须合理安排厂内Ⅲ罐区的储罐资源,否则蒸馏装置无法连续加工。面对如此多高难度问题,开发一个性能优秀的数学规划模型,高效计算出可行的原油调度方案,帮助企业实现“安稳长满优”地生产,是一项极具挑战性的课题。
2 模型描述
原油调度问题是一个动态优化问题,涉及时间和空间两个维度。按照是否预先规定操作发生的可能起止时间,数学规划模型被分为离散时间模型[7,16]和连续时间模型[2,10,17]。由于时间划分可调变,连续时间模型具有更小的模型规模,更易表现出优秀的计算性能。基于此,对于五级储运流程问题建立了基于异步时间段[10]的连续时间(MILP)数学模型。
2.1 模型约束条件
模型共包含7类约束,分别是时间约束、油轮卸载约束、储罐的收付油操作、蒸馏装置进料约束、长输管线输送约束、原油性质约束、设备能力约束[13]。由于篇幅限制,此处重点介绍长输管线输送约束,并选择几种代表设备类型来描述其他类型的约束形式。
2.1.1 长输管线输送约束
长输管线具有延迟输送的特征,即厂区罐从输油管线接收原油的时间晚于码头罐向输油管线付油的时间。如果能够建立数学模型准确计算出这两种时间,模型编制的储运方案即为可行的储运方案。与文献[14-15]固定管线输油时长易导致编制方案不可行不同,研发模型将整个调度周期划分成多个时间段,通过设置二元变量bsopl(s,s′,p)和beopl(s,s′,p)来确定原油开始离开和完全离开管线的时间段编号,然后结合时间段的开始时间tsipl(s,p)和原油进入管线的体积vipl(s,p)确定出原油开始离开和完全离开管线的准确时间,因此,研发模型编制的方案一定是可行方案。长输管线输送相关约束的数学形式如式(1)~式(4)所示。
(1)
(2)
(3)
(4)
2.1.2 时间约束
时间约束是原油调度模型的基础。设置每个设备在同一个时间段内执行不超过一次收油或付油操作,然后将每个时间段内和不同时间段间的设备操作限制转化成模型约束,完成模型搭建,进而确定完整的调度方案。由于基于异步时间段约束的模型,比基于优先段模型[18]更易轻松描述储罐库存变化,比同步时间段模型[2]需要更少的时间段数来实现更加精细的原油输送操作,因而本研究采用异步时间段约束搭建研究模型。以油轮为例,相关时间约束的数学形式如式(5)~式(10)所示。其他设备和油轮的约束形式相同,仅变量设置有区别,此处不再赘述。
tevl(s,v)≥tsvl(s,v) ∀s∈SL1,v∈VL
(5)
tsvl(s+1,v)≥tevl(s,v) ∀s∈SL2,v∈VL
(6)
tsvl(s,v)≤tsbe(s,b)+[1-bvlbe(s,v,b)]×LP∀s∈SL1,v∈VL,b∈BE
(7)
tsvl(s,v)≥tsbe(s,b)-[1-bvlbe(s,v,b)]×LP∀s∈SL1,v∈VL,b∈BE
(8)
tevl(s,v)≤tebe(s,b)+[1-bvlbe(s,v,b)]×LP∀s∈SL1,v∈VL,b∈BE
(9)
tevl(s,v)≥tebe(s,b)-[1-bvlbe(s,v,b)]×LP∀s∈SL1,v∈VL,b∈BE
(10)
式(5)表示油轮v第s个时间段的结束时间晚于其开始时间;式(6)表示油轮v第s+1个时间段的开始时间晚于第s个时间段的结束时间;式(7)~式(10)表示,当油轮v第s个时间段在泊位b处卸油时[即二元变量bvlbe(s,v,b)=1],油轮v和泊位b第s个时间段的开始时间和结束时间相等。
2.1.3 油轮卸载约束
油轮卸油决策的影响因素:油轮只有到港后才能开始靠泊卸油,并且只能停靠在1个泊位处。考虑这些因素,结合物料平衡限制,形成约束(11)~(13)。
(11)
tsvl(s,v)≥TARVL(v) ∀s∈SL1,v∈VL
(12)
(13)
式(11)表示油轮v只能在一个泊位处停靠卸油;式(12)表示油轮v只有到港后才能靠泊;式(13)表示油轮v卸油过程遵守物料平衡约束。
2.1.4 储罐收付油操作约束
为了实现加工过程稳定,保证蒸馏装置进料性质,炼油厂会尽量避免储罐同时执行收油和付油操作。考虑这一操作限制,结合物料平衡,以码头罐为例形成储罐收付油操作约束(14)和(15)。其他储罐和码头罐的约束形式相同,仅变量设置有区别,此处不再赘述。
bist(s,i)+bost(s,i)≤1 ∀s∈SL1,i∈ST
(14)
vst(s,i)=vst(s-1,i)+vist(s,i)-vost(s,i)∀s∈SL3,i∈ST
(15)
式(14)表示码头罐i不能同时执行收油操作和付油操作约束;式(15)表示码头罐i的物料平衡约束。
2.1.5 蒸馏装置进料约束
影响蒸馏装置加工方案编制的关键因素有:不同类型的原油性质差距较大,为了保证原油品质,炼油企业常常将适合某蒸馏装置加工的原油储存到固定的一组储罐中;同时,除计划停工以外,蒸馏装置必须连续加工。据此形成蒸馏装置进料约束(16)~(18)。
vctcd(s,j,d)=0∀s∈SL1,j∈NCTCD(d),d∈CDU
(16)
(17)
(18)
式(16)表示,如果工艺上不支持厂区罐j向蒸馏装置d付油,那么二者之间不会发生原油输送操作;式(17)表示蒸馏装置必须连续加工;式(18)表示蒸馏装置u的物料平衡约束。
2.1.6 原油性质约束
以厂区罐为例,原油性质相关约束的数学形式如式(19)所示,其表示储罐内存量等于所有组分油存量之和。
(19)
2.1.7 设备能力约束
原油的输送和存储操作会受到油泵输油能力和储罐存储能力的限制。以码头罐为例,设备能力相关约束的数学形式如式(20)和式(21)所示。
VLST(i)≤vst(s,i)≤VUST(i) ∀s∈SL1,i∈ST
(20)
vost(s,i)≤FUST(i)×[test(s,i)-tsst(s,i)]∀s∈SL1,i∈ST
(21)
式(20)表示码头罐i的存量不能超过储存能力上下限限制;式(21)表示码头罐i的付油速率不能超过付油速率上限约束。
2.2 目标函数
蒸馏装置是炼油厂的龙头装置,其稳定生产是下游装置稳定生产的基础。油轮滞期费用高昂,一艘超级油轮(VLCC)的滞期罚款高达10~13万美元/d。企业总是希望“安稳长满优”地生产,为此,原油调度流程以最小化蒸馏装置进料油种切换和最小化油轮离港时间为目标函数,如式(22)所示。
(22)
3 计算与讨论
3.1 案例介绍
以A企业的历史工况为例,为其编排240 h内的调度方案。在这240 h内,按计划将有4艘油轮到港,需要调配9种单一原油,具有13种原油混合方案,CD1和CD2分别以616 t/h和875 t/h的进料量连续加工。表1~表7是企业提供的单油种原油信息、混油方案、船期计划、储罐能力、储罐和长输管线的初始库存情况,以及设备的输送能力要求。
表1 单油种原油性质
表2 原油混合方案
表3 单一原油储罐的储存能力
表4 储罐初始库存
表5 船期计划
表6 长输管线初始原油存量
表7 原油输送速率限制
3.2 模型求解性能
将研发模型作为测试模型;保持其他约束和目标函数不变,选择文献[11]中长输管线相关约束组成对比模型。在工作站借助GUROBI10.0求解器对2个模型进行测算,工作站的CPU型号是Intel(R) Xeon(R) Gold 6248R CPU@3.00 GHz,内存为256 GB。
GUROBI求解MILP模型的算法框架为分支定界法:一方面,在极限情况下,搜索树的分支数为2n(n为二元变量数);另一方面,变量数和约束数越多,每个分支的松弛LP模型求解越困难。因此,小规模模型的计算性能大概率优于大规模模型。表8统计了测试模型和对比模型的变量数和约束数。由表8可以看出,与对比模型相比,测试模型的二元变量数、连续变量数和约束数分别下降了6.88%,12.89%,5.80%,说明测试模型可能具有更好的计算性能。
表8 模型规模对比
设定求解时间上限为1 h,测试2个模型的计算性能。对2个模型分别测算3次,以防止求解算法的随机性影响到结果判断。两个模型的求解性能如表9所示。由表9可知:测试模型多次测算均在1 min内获得可行解,其中2次测算在3 min内获得了最优解,并且均在30 min内完成最优解证明,即gap=0(gap表示模型当前最佳可行解的目标函数值和目标函数边界值之间的差距,可用以衡量当前最佳可行解的优化空间);而对比模型在前2次测算中均不能在1 h内获得可行解,第3次测算时在5 min内获得可行解,但在1 h后仍不能证明最优解(gap=8.21%),比测试模型的最差情况高3.52%。这说明,测试模型的计算鲁棒性和计算效率均明显优于对比模型。
表9 两个模型求解性能对比
3.3 方案分析
选择测试模型第1次计算时的最优解作为方案分析对象。图3为优化方案中各流程的甘特图。图中横轴为输送时间,纵轴为设备信息;横条表示某设备在对应时间范围内的操作任务;横条内的数字表示原油体积,m3;横条数字下方的字母表示操作油种编号;由于码头罐中的原油会去向ZL和PL,因此码头罐的绿色横条内还包含原油的去向信息。例如,V1的第1个横条表示V1在第6 h至第 21.75 h内卸载F原油120 731 m3(105 000 t)。
图3 优化方案甘特图■—输出操作; ■—输入操作
3.3.1 方案可行性分析
由图3可直观地观察到,模型方案完全满足:所有储罐均不同时收油和付油,储罐内原油存量介于罐底量和罐容量之间,原油卸载、输送和加工速率均受到一定限制,蒸馏装置连续生产的操作限制。以下对部分重要约束条件进行详细分析:
结合表1和表4,由图3(c)可知,所有储罐均实现了单储操作,而且储罐在结束收油后至少静置了14.94 h(>8 h)才开始执行付油操作,为原油质检留出了充足时间。
结合表2和表4,由图3(e)可知,厂内罐区所有储罐均同时只存储一种混合原油,去除了临近装置加工前的原油调合环节,既降低了操作难度,又减少了装置进料性质波动;收油结束后,厂区罐最少等待了49.14 h才开始付油,这保证原油可以充分脱盐脱水。
由图3(b)可知,长输管线输送方案满足管线“边进边付”和“先进先出”的运行特征。虽然该模型基于入线原油延迟离开管线特点开发,但对于间隔输送情况,模型仍能提供正确的输送方案。如由于PL在第20.72小时至第22.30小时期间停止输送,在输送初始前2.28 h内进入管线的原油M9在第22.30小时后开始离开管线。这证明模型能够正确描述长输管线的输送过程,为上下游设备提供可行的操作方案。
3.3.2 优化性分析
由于该模型方案的gap值等于0(表9),说明该方案是全局最优方案。在优化方案下,CD1可持续加工M2,无进料切换操作;由于原油资源量有限和脱盐脱水时间较长,导致CD2进行了2次进料切换。其过程如下:
如果CD2首先加工M8原油,在扣除罐底油后,厂区罐库存仅有42 869 t,只能供CD2加工48.99 h。因为顶出PL期初存油(M2为40 884 m3,M12为5 116 m3)至少需要21.90 h,即使原油可以从Ⅰ、Ⅱ罐区瞬间到达厂区罐,由于需要静置脱盐脱水处理,CD2最早要在第69.90小时才能继续加工M8,因此CD2要在第48.99小时后开始加工M12原油。现有原油资源量(包括油轮载油、储罐库存、长输管线存油)最多可调合出67 205 t M12混合原油,供CD2加工76.81 h,即CD2可以在第125.80小时后开始加工另一种原油。在这种情况下,CD2共产生了2次进料切换。与此类似,如果首先加工M12原油,CD2也至少会发生2次进料切换。
上述分析说明,模型方案的长输管线输送操作合理,能够协调好2套蒸馏装置的加工需求,保证装置稳定生产。
按照模型方案执行,4艘油轮到港后均能立即以最大速率卸空原油[图3(a)],不会导致因可用储罐不足而导致的油轮滞期现象。在此案例中,油轮到港时间分布较密,前49 h内有2艘油轮(V1、V2)到港,其载油量共计250 661 m3,需要6座空罐才能卸载所有原油。模型方案充分利用Ⅱ罐区和厂区罐区资源,快速放空Ⅰ罐区储罐,最终实现了油轮快速卸油。
图4展示了长输管线内不同时间点的原油分布情况。图中横轴表示原油输送时间,纵轴表示长输管线某横切面与入线口之间的原油体积,Mi表示油种编号。例如,在t0时刻,从管线入口到出口依次为混合原油M8,M9,M12,M2。
图4 长输管线内原油分布情况
4 结 论
(1)针对五级原油储运问题,研发出连续时间原油调度MILP模型。所建模型以管线输油时间差为基础,辅以监控原油出离管线情况来描述长输管线的输送过程。
(2)所建模型计算方案符合长输管线“边收边付”“先进先出”的运行特征,为企业编制出了可行的原油调度方案。
(3)所建模型的变量数和约束条件较少,具有良好的求解性能。针对A企业原油调度的复杂问题,所建模型能够在3 min内计算出为期240 h的优化原油调度方案,通过合理安排上下游资源,实现了蒸馏装置连续稳定加工、油轮快速卸油无滞期的目标。
符号说明
索引
b——第b个泊位;
c——第c种原油组分油;
d——第d套蒸馏装置;
i——第i座码头罐;
j——第j座厂区罐;
p——第p条长输管线;
s,s′,s″——第s,s′,s″个时间段编号,无特殊的隐含逻辑;
u——第u套蒸馏装置;
v——第v艘油轮;
集合
BE——泊位集合;
CDU——蒸馏装置集合;
CT——厂区罐集合;
NCTCD(d)——不能向蒸馏装置d供料的厂区罐集合;
PL——长输管线集合;
SC——原油组分油集合;
SL1——包含所有时间段的时间段集合;
SL2——除最后一个时间段外的时间段集合;
SL3——除第一个时间段外的时间段集合;
ST——码头罐集合;
VL——油轮集合;
参数
FUPL(p)——第p条长输管线的输送速率上限,m3/h;
FUST(i)——第i座码头罐的付油速率上限,m3/h;
LP——调度周期长度,h;
NSL——时间段数;
TARVL(v)——第v艘油轮的到港时间,h;
VLST(i)——第i座码头罐的库存下限,m3;
VUPL(p)——第p条长输管线的容积,m3;
VUST(i)——第i座码头罐的库存上限,m3;
φ——最小化蒸馏装置进料油种切换目标的优化权重;
η——最小化油轮离港时间目标的优化权重;
连续变量
scdu(s,u)——取值为0和1,取值1表示第u套蒸馏装置第s和s-1个时间段的加工油种不同,否则取值0;
tebe(s,b)——第b个泊位第s个时间段的结束时间,h;
tecd(s,d)——第d套蒸馏装置第s个时间段的结束时间,h;
tedk(v)——第v艘油轮的离港时间,h;
teopl(s,p)——第s个时间段进入第p条长输管线的原油完全离开管线的时间,h;
tevl(s,v)——第v艘油轮第s个时间段的结束时间,h;
tsbe(s,b)——第b个泊位第s个时间段的开始时间,h;
tscd(s,d)——第d套蒸馏装置第s个时间段的开始时间,h;
tsipl(s,p)——第p条长输管线第s个时间段的开始时间,h;
tsopl(s,p)——第s个时间段进入第p条长输管线的原油离开管线的开始时间,h;
tsvl(s,v)——第v艘油轮第s个时间段的开始时间,h;
vcct(s,j,c)——第j座厂区罐在第s个时间段结束时组分油c的库存量,m3;
vct(s,j)——第j座厂区罐在第s个时间段结束时的库存量,m3;
vctcd(s,j,d)——第j座厂区罐在第s个时间段内向第d套蒸馏装置输送的原油量,m3;
vicd(s,d)——第d套蒸馏装置在第s个时间段内的收油量,m3;
vipl(s,p)——第p条长输管线在第s个时间段内的收油量,m3;
vost(s,i)——第i座码头罐在第s个时间段内的付油量,m3;
vst(s,i)——第i座码头罐在第s个时间段结束时的库存量,m3;
vvl(s,v)——第v艘油轮在第s个时间段结束时的载油量,m3;
二元变量
beopl(s,s′,p)——取值为1时表示第s个时间段进入第p条长输管线的原油在第s′个时间段完全离开管线;
bsopl(s,s′,p)——取值为1时表示第s个时间段进入第p条长输管线的原油在第s′个时间段开始离开管线;
bvlbe(s,v,b)——取值为1时表示第v艘油轮在第s个时间段内停靠在第b个泊位处。