发明内容
为了解决现有技术中存在的缺点和不足,本申请提供了用于原油储运系统的全局调合调度优化方法,采用多重逻辑约束规划方法,允许以逻辑约束表达系统运转过程中的操作规则,简化模型。相对于采用其他优化求解器的方法降低了模型的求解难度,在考虑全局优化的同时拥有更快的求解速度和更高的求解可行性。
为了达到上述技术目的,本申请提供了用于原油储运系统的全局调合调度优化方法,包括:
获取包括待处理数据种类;
结合获取到的待处理数据种类,分别建立对应原油调合、库存匹配度以及油品切换次数的目标函数,构建对应所述目标函数的约束条件;
分别在预设每日油品需求固定以及对常减压装置收率集成数据模型驱动建模的前提下,在约束条件的限行条件中对目标函数进行求解,计算罐存储的匹配度、油品需求匹配度和规定油品切换次数;
根据计算结果对码头罐到原油罐的付油情况和原油调合调度进行调整。
可选的,所述获取包括待处理数据种类,包括:
已知的泊位调度结果数据、码头罐和原油罐的数量和性质数据、油品的性质数据、常减压装置加工比例和收率的历史数据以及用户设置的时间间隔数据、规定每日油品调合数据、数据驱动方法、规定油品切换次数。
可选的,所述结合获取到的待处理数据种类,分别建立对应原油调合、库存匹配度以及油品切换次数的目标函数,包括:
原油调合目标函数,包括进料油品已定np以及收率预测建模ny,进料油品已定np=1,收率预测建模ny=find(Yeildmatch==0)>0,式中,ny表示优化的油品进料与已知的油品需求的匹配度,0-1变量,np表示常减压装置侧线收率不匹配个数,ny=0,1,2…2*m*n;
库存匹配度ns,ns=find(Storage_canmatch==0),ns1=length(ns)>0,ns1表示罐存储的不匹配个数,式中,Storage_canmatch表示罐存储匹配度,0-1变量。每个时刻的罐存如果不超过罐的最大存储不低于罐的最小存储,则视为匹配,赋值1;
油品切换次数Swi≤nSwi,Swi表示油品切换次数,nSwi表示规定油品切换次数。
可选的,所述构建对应所述目标函数的约束条件,包括:
x是一个2m*n的0-1矩阵,代表所有罐的进出料情况;
由码头调度优化函数已知码头罐进
x(s,:)=wharfcan_in,(s=1,3…2*m1-1);
所有的罐只能进或出
If x(s,k)=1,
x(s+1,k)=0,(s=1,3,5…2*m-1,k=1,2,3…n);
进罐后需24h沉降
If x(s,k)=1
x(s+1,k+1)=0,x(s+1,k+2)=0,x(s+1,k+3)=0,(s=1,3,5…2*m-1,k=1,2,3…n);
同油种码头罐付=原油罐进
Q(1,k)=Q(2,k),
m表所有罐总数,m1表示码头罐个数,m2表示原油罐个数,n表示时间段,8个小时是一个间隔,x中三列表示一天,wharfcan_in是由泊位调度优化函数得到的码头罐进罐情况,Q第一行表示某油品的码头罐付油总数,第二行表示同种油品的原油罐进油总数,列表示时间段。
可选的,所述分别在预设每日油品需求固定以及对常减压装置收率集成数据模型驱动建模的前提下,在约束条件的限行条件中对目标函数进行求解,计算罐存储的匹配度、油品需求匹配度和规定油品切换次数,包括:
在预设每日油品需求固定的前提下,在约束条件的限行条件中对目标函数进行求解,计算罐存储的匹配度、油品需求匹配度和规定油品切换次数,判断侧线收率和罐存储的不匹配个数是否为零,油品切换次数是否达标,如果是,结果数据处理;否则重新循环;
在对常减压装置收率集成数据模型驱动建模的前提下,在约束条件的限行条件中对目标函数进行求解,计算罐存储的匹配度、油品需求匹配度和规定油品切换次数,判断侧线收率和罐存储的不匹配个数是否为零,油品切换次数是否达标,如果是,结果数据处理;否则重新循环。
可选的,所述在预设每日油品需求固定的前提下,在约束条件的限行条件中对目标函数进行求解,计算罐存储的匹配度、油品需求匹配度和规定油品切换次数,判断侧线收率和罐存储的不匹配个数是否为零,油品切换次数是否达标,如果是,结果数据处理;否则重新循环,包括:
随机得到码头罐付油的0-1矩阵,原油罐付油全部赋值为1;
由码头调度函数已知码头罐进油情况;
根据码头罐进油约束禁止付油的时间段:进油期间不能付油、进罐后需24h沉降;
根据同油种码头罐付油=原油罐进油,给原油罐进油赋值;
根据原油罐进油约束禁止付油的时间段:进油期间不能付油、进罐后需24h沉降;
根据每天的油品需求为原油罐付油为1的时间段安排付油,计算油品需求匹配度;
根据每天的进付油情况计算每天罐的库存,得到罐存储的不匹配个数;
判断侧线收率和罐存储的不匹配个数是否为零,油品切换次数是否达标,如果是,结果数据处理;否则,重新循环。
可选的,所述在对常减压装置收率集成数据模型驱动建模的前提下,在约束条件的限行条件中对目标函数进行求解,计算罐存储的匹配度、油品需求匹配度和规定油品切换次数,判断侧线收率和罐存储的不匹配个数是否为零,油品切换次数是否达标,如果是,结果数据处理;否则重新循环,包括:
随机得到码头罐付油的0–1矩阵,原油罐付油全部赋值为1;
由码头调度函数已知码头罐进油情况;
根据码头罐进油约束禁止付油的时间段:进油期间不能付油、进罐后需24h沉降;
根据同油种码头罐付油=原油罐进油,给原油罐进油赋值;
根据原油罐进油约束禁止付油的时间段:进油期间不能付油、进罐后需24h沉降;
为原油罐付油为1的时间段安排付油;
根据原油罐付油计算装置侧线收率和油品切换次数,得到侧线收率不匹配个数;
根据每天的进付油情况计算每天罐的库存,得到罐存储的不匹配个数;
判断侧线收率和罐存储的不匹配个数是否为零,油品切换次数是否达标,如果是,结果数据处理;否则,重新循环。
可选的,所述全局调合调度优化方法,还包括:
获取包括历史每日侧线收率、加工比例在内的待处理数据;
提取对应数据驱动模型的设定值,选取设定值对应的驱动方式计算收率匹配度。
可选的,所述选取设定值对应的驱动方式计算收率匹配度,包括:
分别采用线性回归、plsregress,随机森林,神经网络算法计算收率匹配度。
可选的,所述全局调合调度优化方法,包括:
根据当前计算需求,对构建的约束条件进行针对性选取。
本申请提供的技术方案带来的有益效果是:
将原油调合和原油调度多目标优化问题结合,即在全局调度优化求解的时候把原油掺炼调合也作为约束之一进行优化,避免了局部最优解;该原油调合调度模型采用多重逻辑约束规划方法,允许以逻辑约束表达系统运转过程中的操作规则,简化模型。相对于采用其他优化求解器的方法降低了模型的求解难度,在考虑全局优化的同时拥有更快的求解速度和更高的求解可行性。
具体实施方式
为使本申请的结构和优点更加清楚,下面将结合附图对本申请的结构作进一步地描述。
实施例一
为了达到上述技术目的,本申请提供了用于原油储运系统的全局调合调度优化方法,如图1所示,包括:
11、获取包括待处理数据种类;
12、结合获取到的待处理数据种类,分别建立对应原油调合、库存匹配度以及油品切换次数的目标函数,构建对应所述目标函数的约束条件;
13、分别在预设每日油品需求固定以及对常减压装置收率集成数据模型驱动建模的前提下,在约束条件的限行条件中对目标函数进行求解,计算罐存储的匹配度、油品需求匹配度和规定油品切换次数;
14、根据计算结果对码头罐到原油罐的付油情况和原油调合调度进行调整。
在实施中,本申请的目的是建立一套适用于炼厂的原油储运系统调合调度优化方法。该方法综合考虑罐、装置、油品、业务流程等约束,通过集成数据驱动方法建立常减压装置收率预测模型,基于多目标优化方法,来建立优化排产策略实现未来一个周期时间段内对炼厂全局的原油储运系统的安排。这种长期的全局考虑的调度排产能够保证炼厂在一个周期内可以安全平稳地作业,避免罐的不合理使用(罐存的不合理分配),避免油品的多次切换(切换次数过多会造成成本的增加),从而有效地提高企业的经济效益。
更重要的是,本申请创新性地在考虑原油调合的约束下对炼厂原油进行调度。通过全局考虑,将所有流程都结合起来,通过内嵌集成数据驱动预测常减压装置收率的方式,可以同时安排原油调合和调度作业。通过离散时间方式建模,设定固定的系列时间段可以直观地展示各个时间段内的作业情况。
可以根据自身的需求和总周期的需求设置初始值,更改时间间隔的长短和个数来更好地进行调度排产。本申请还提出多种数据驱动方法集成建模预测常减压装置收率,采集足够多的历史原油加工比例和常减压装置收率数据,用户可以选择最符合实际情况的数据驱动方法来进行优化计算。
考虑不同炼厂的原油调合目标需求,本申请还提供了确定常减压装置加工原油需求的的前提下的原油调度优化方法。
该原油储运系统调合调度优化方法的数据结构其实是“ICO”模型,也就是输入、计算和输出。首先需要输入一系列的模型数据并进行整理,根据整理后的模型数据建立合适的原油调合调度模型。
模型数据包括已知的泊位调度结果数据、码头罐和原油罐的数量和性质数据、油品的性质数据、常减压装置加工比例和收率的历史数据以及用户设置的时间间隔数据、规定每日油品调合数据、数据驱动方法、规定油品切换次数。
接着,通过对罐存储的匹配度、油品需求匹配度和规定油品切换次数的判断,优化模型会不断地进行迭代计算。
最后,模型会对数据结果进行处理并输出原油加工比例数据、预测常减压装置各侧线收率数据、码头罐到原油罐的付油情况和原油调合调度总安排情况。
为了能够实现上述目的,本申请提出的获取包括待处理数据种类,包括:已知的泊位调度结果数据、码头罐和原油罐的数量和性质数据、油品的性质数据、常减压装置加工比例和收率的历史数据以及用户设置的时间间隔数据、规定每日油品调合数据、数据驱动方法、规定油品切换次数。
可选的,所述结合获取到的待处理数据种类,分别建立对应原油调合、库存匹配度以及油品切换次数的目标函数,包括:
原油调合目标函数,包括进料油品已定np以及收率预测建模ny,进料油品已定np=1,收率预测建模ny=find(Yeildmatch==0)>0,式中,ny表示优化的油品进料与已知的油品需求的匹配度,0-1变量,np表示常减压装置侧线收率不匹配个数,ny=0,1,2…2*m*n;
库存匹配度ns,ns=find(Storage_canmatch==0),ns1=length(ns)>0,ns1表示罐存储的不匹配个数,式中,Storage_canmatch表示罐存储匹配度,0-1变量。每个时刻的罐存如果不超过罐的最大存储不低于罐的最小存储,则视为匹配,赋值1;
油品切换次数Swi≤nSwi,Swi表示油品切换次数,nSwi表示规定油品切换次数。
与上述建立的目标函数对应的约束条件,包括:
1)x是一个2m*n的0-1矩阵,代表所有罐的进出料情况;
2)由码头调度优化函数已知码头罐进
x(s,:)=wharfcan_in,(s=1,3…2*m1-1);
3)所有的罐只能进或出
If x(s,k)=1,
x(s+1,k)=0,(s=1,3,5…2*m-1,k=1,2,3…n);
4)进罐后需24h沉降
If x(s,k)=1
x(s+1,k+1)=0,x(s+1,k+2)=0,x(s+1,k+3)=0,(s=1,3,5…2*m-1,k=1,2,3…n);
5)同油种码头罐付=原油罐进
Q(1,k)=Q(2,k),
m表所有罐总数,m1表示码头罐个数,m2表示原油罐个数,n表示时间段,8个小时是一个间隔,x中三列表示一天,wharfcan_in是由泊位调度优化函数得到的码头罐进罐情况,Q第一行表示某油品的码头罐付油总数,第二行表示同种油品的原油罐进油总数,列表示时间段。
实施例二
前述实施例一提出了用于原油储运系统的全局调合调度优化方法,本实施例分别从每日油品需求固定、常减压装置收率集成数据模型驱动建模两个方面对具体的实现过程进行描述。
可选的,所述分别在预设每日油品需求固定以及对常减压装置收率集成数据模型驱动建模的前提下,在约束条件的限行条件中对目标函数进行求解,计算罐存储的匹配度、油品需求匹配度和规定油品切换次数,具体包括两个方面:
1)在预设每日油品需求固定的前提下,在约束条件的限行条件中对目标函数进行求解,计算罐存储的匹配度、油品需求匹配度和规定油品切换次数,判断侧线收率和罐存储的不匹配个数是否为零,油品切换次数是否达标,如果是,结果数据处理;否则重新循环;
2)在对常减压装置收率集成数据模型驱动建模的前提下,在约束条件的限行条件中对目标函数进行求解,计算罐存储的匹配度、油品需求匹配度和规定油品切换次数,判断侧线收率和罐存储的不匹配个数是否为零,油品切换次数是否达标,如果是,结果数据处理;否则重新循环。
其中,1)对应规定每日油品需求时的原油储运系统调合调度优化计算流程,具体内容如图2所示:
随机得到码头罐付油的0-1矩阵,原油罐付油全部赋值为1;
由码头调度函数已知码头罐进油情况;
根据码头罐进油约束禁止付油的时间段:进油期间不能付油、进罐后需24h沉降;
根据同油种码头罐付油=原油罐进油,给原油罐进油赋值;
根据原油罐进油约束禁止付油的时间段:进油期间不能付油、进罐后需24h沉降;
根据每天的油品需求为原油罐付油为1的时间段安排付油,计算油品需求匹配度;
根据每天的进付油情况计算每天罐的库存,得到罐存储的不匹配个数;
判断侧线收率和罐存储的不匹配个数是否为零,油品切换次数是否达标,如果是,结果数据处理;否则,重新循环。
2)对应规定每日油品需求时的原油储运系统调合调度优化计算流程,具体内容如图3所示:
随机得到码头罐付油的0–1矩阵,原油罐付油全部赋值为1;
由码头调度函数已知码头罐进油情况;
根据码头罐进油约束禁止付油的时间段:进油期间不能付油、进罐后需24h沉降;
根据同油种码头罐付油=原油罐进油,给原油罐进油赋值;
根据原油罐进油约束禁止付油的时间段:进油期间不能付油、进罐后需24h沉降;
为原油罐付油为1的时间段安排付油;
根据原油罐付油计算装置侧线收率和油品切换次数,得到侧线收率不匹配个数;
根据每天的进付油情况计算每天罐的库存,得到罐存储的不匹配个数;
判断侧线收率和罐存储的不匹配个数是否为零,油品切换次数是否达标,如果是,结果数据处理;否则,重新循环。
在实施过程中,在集成数据驱动常减压装置收率预测模型中增加专家数据库,对于一些特殊的不能直接靠函数计算的情况可以进行人为设定。
实施例三
所述全局调合调度优化方法,如图4所示,还包括:
41、获取包括历史每日侧线收率、加工比例在内的待处理数据;
42、提取对应数据驱动模型的设定值,选取设定值对应的驱动方式计算收率匹配度。
在实施中,选取设定值对应的驱动方式计算收率匹配度,包括四种计算侧线收率的步骤,分别采用线性回归、plsregress,随机森林,神经网络算法。如图5所示,图5中的字母e即为步骤42中的设定值,对应e=1的线性回归的处理方式为:采用线性回归对训练集进行训练,根据实际数据计算得到预测的侧线收线率;对应e=2的处理方式为:采用偏最小二乘回归对训练集进行训练,根据实际训练数据计算得到预测的侧线收线率;对应e=3的处理方式为:采用随机森林对训练集进行训练,根据实际数据计算饿到预测的侧线收率;对应e=4的处理方式为:采用神经网络对训练集进行训练,根据实际数据计算得到预测的侧线收率。
可选的,所述全局调合调度优化方法,包括:
根据当前计算需求,对构建的约束条件进行针对性选取。
在实施中,不同的企业用户对原油调合调度业务往往有着不同的关注点。用户可以根据业务实际需求,勾选相应的约束条件,生成个性化的原油调合调度模型。
本申请创新性地在考虑原油调合的约束下对炼厂原油进行调度。通过全局考虑,将所有流程都结合起来,通过内嵌集成数据驱动预测常减压装置收率的方式,可以同时安排原油调合和调度作业。通过离散时间方式建模,设定固定的系列时间段可以直观地展示各个时间段内的作业情况。
上述实施例中的各个序号仅仅为了描述,不代表各部件的组装或使用过程中的先后顺序。
以上所述仅为本申请的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。