一种在线自定义工艺计算方法与流程

文档序号:17927621发布日期:2019-06-15 00:31阅读:308来源:国知局
一种在线自定义工艺计算方法与流程

本发明涉及工业生产在线计算的技术领域,尤其涉及一种应用于带有控制系统并具有工艺计算需求的工业生产过程的在线自定义工艺计算方法。



背景技术:

生产技术的不断发展和生产过程的日益复杂,促进了产品质量的直接闭环控制、质量约束和安全约束控制的广泛应用,以确保生产装置安全、保证产品质量和卡边优化。但是,同时也对目前产品质量指标等还不可测的生产装置提出了实时测量的迫切需求。然而,对于许多生产装置的重要过程变量,由于技术上或是经济上的原因,很难通过传感器进行测量,例如催裂化装置的催化剂循环量、精馏塔的产品组分浓度,生物发酵罐的菌体浓度等等。

为了解决这些问题,目前形成了软测量方法及其应用技术的研究方向。特别是自从基于装置级的先进控制和优化技术得到普遍应用以来,软测量技术得到了更为广泛地发展和应用。可以说软测量在某种意义上决定了先进控制的成败,因而它已成为先进控制技术中不可或缺的重要部分。

软测量(soft-sensor)原理是选择那些能与被测变量构成某种数学关系的其他一些容易测量的变量加以测量,然后利用相应的数学关系来推断和估计被测变量。与一般的测量仪表相比,软测量的工作原理上并无本质的区别,类似流量变送器将压力传感器测量信号通过变送器内的电子元件或气动元件转换为流量输出信号的过程。软测量实际上就是选择与被估计变量相关的一组可测变量,构造某种以可测变量为输入、被估计变量为输出的数学模型,利用计算机软件实现对重要过程变量以及其他关注的指标的估计。

软测量可以通过数据驱动建模,采用数据回归的方式建立模型;也可以通过经验公式、机理模型等建模。传统的工艺计算系统只能进行静态计算,无法考虑带有时间信息的计算公式,化工装置惯性大,滞后大,往往一个操作单元从进到出需要几分钟到几十分钟,这其中的时间信息不可忽略。如何利用传统的经验公式、机理模型,使之更有效地表达整个工艺过程的动态时间特性,是当下亟需解决的技术问题。



技术实现要素:

针对上述技术问题,本发明提出一种在线自定义工艺计算方法,包括:

通用设置步骤,建立工艺计算单元,每个计算单元包含一个或多个工艺计算组态,其中,为各个计算单元指定相应的数据源,为各个计算组态指定相应的计算周期、时间相位和校正方式;其中,各个计算组态的时间相位设置成使得各个计算组态能够错开时间分别执行;

模型建立步骤,根据各个计算组态所涉及的工艺过程以及要估算的工艺指标,确定各个计算组态所依赖的原始变量、所涉及的中间变量和要输出的输出变量,并根据校正方式确定各个输出变量的校正变量,然后结合工艺过程的动态时间特性确定各个计算组态的带有时间信息的计算模型;

组态导出步骤,检查每个计算组态的合法性,以计算单元为单位导出合法的计算组态;

组态导入步骤,以计算单元为单位导入合法的计算组态到控制系统;

在线计算步骤,在每个计算周期内,解析各个计算组态的带有时间信息的计算模型,根据时间信息到变量历史队列中提取相应的历史数据,用于计算和更新中间变量、输出变量以及相应的校正变量,并利用校正变量对输出变量的计算结果进行校正,然后将校正后的输出变量的计算结果提供给控制系统。

根据本发明的实施例,上述校正方式为无校正、化验值校正或分析仪校正。

根据本发明的实施例,当校正方式为化验值校正时,所述在线计算步骤包括以下步骤:

根据化验值的采样时间查找在采样时间附近指定时间段内输出变量的历史数据,求取其平均值作为输出变量的平均值;

计算化验值与输出变量的平均值之间的差值,按照预设的校正比率取所述差值的一部分加到校正变量的目标值上,同时根据校正变量的上限对校正变量的目标值进行限幅处理,以防过度校正;

更新校正变量的当前值,使其趋近于校正变量的目标值;

利用更新后的校正变量的当前值对当前的输出变量的计算结果进行校正,然后将校正后的输出变量的计算结果提供给控制系统。

根据本发明的实施例,如果距离上一次校正时间小于预设的第一时间阈值或者距离化验值采样时间大于预设的第二时间阈值,则不予校正;

如果化验值超出了化验值的阈值范围,则不予校正。

根据本发明的实施例,当校正方式为分析仪校正时,所述在线计算步骤包括以下步骤:

结合分析仪的滞后时间查找在指定时间段内分析仪的输出结果的历史数据,求取其平均值作为分析仪的输出结果的平均值;

查找在所述指定时间段内输出变量的历史数据,求取其平均值作为输出变量的平均值;

计算分析仪的输出结果的平均值与输出变量的平均值之间的差值,按照预设的校正比率取所述差值的一部分加到校正变量的目标值上,同时根据校正变量的上限对校正变量的目标值进行限幅处理,以防过度校正;

更新校正变量的当前值,使其按照惯性过渡趋近于校正变量的目标值;

利用更新后的校正变量的当前值对当前的输出变量的计算结果进行校正,然后将校正后的输出变量的计算结果提供给控制系统。

根据本发明的实施例,若分析仪的输出结果的平均值超过分析仪的输出结果的阈值范围,则不予校正。

根据本发明的实施例,在所述在线计算步骤中,更新校正变量的当前值,使其按照惯性过渡趋近于校正变量的目标值。

根据本发明的实施例,在所述在线计算步骤中,更新校正变量的当前值,使其根据下式趋近于校正变量的目标值:

adjcur=adjcur*α+adjtarget*(1-α)

其中,ts为计算周期,tf为滤波时间,α为滤波系数,校正变量的目标值adjtarget,校正目标的当前值adjcur。

根据本发明的实施例,当校正方式为化验值校正时,在操作员输入新的化验值与采样时间后,通过操作员改写化验新值标志位的方式开时校正计算。

根据本发明的实施例,当校正方式为分析仪校正时,每当到达新的校正周期时,自动开时校正计算。

与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:

本发明提供一种全新的能够解析带时间信息的动态公式并具有校正功能的在线工艺计算方法。利用该方法,用户能够自行建立计算组态的带时间信息的计算模型,然后系统自动在线解析计算模型所带的时间信息,确定需要访问的变量的历史数据位置,提取对应的历史数据,从而执行相应的计算。此外,对于输入的计算模型(计算式)中的语法错误,系统能够予以定位并将错误位置提示给用户。利用该方法,用户能够自行建立连接变量,用以实现对工业过程的数据自动读入;计算组态的计算模型(包含中间变量的计算式)考虑了工艺过程的动态时间特性,并支持各种常规运算。利用该方法,用户能够自行建立校正变量,选择通过化验值输入或者分析仪输入对计算结果的在线校正。此外,利用该方法,用户可以在一个计算单元内建立任意个工艺计算组态,并且能够很方便地进行离线组件编辑与在线组件计算。通过该方法,可以很方便地将现有的经验公式、机理模型等嵌入到dcs控制系统中,实现基于动态过程的在线工艺计算,能够减少下装次数,尽可能地避免对dcs控制系统的干扰,为生产提供在线操作指导。

附图说明

通过结合附图阅读下文示例性实施例的详细描述可更好地理解本公开的范围。其中所包括的附图是:

图1是根据本发明实施例的在线工艺计算方法的工作流程图;

图2是根据本发明实施例的一个计算组态的组成示意图;

图3是根据本发明实施例的公式解析器的运算流程图;

图4是根据本发明实施例的动态解析过程的工作流程图;

图5是根据本发明实施例的化验值校正计算的步骤流程图;

图6是根据本发明实施例的分析仪校正计算的步骤流程图;

图7是根据本发明实施例的校正变量惯性过渡的示意图。

具体实施方式

从下文提供的详细描述中,将显而易见本公开的其他应用领域。但是,应当理解,示例性实施例的详细描述仅用于说明性目的,因此,并非旨在必须限制本公开的范围。

传统的工艺计算方式(例如软测量等)是在dcs控制系统中建立计算模块,输入计算公式,检查组态语法,改错,下装,并执行相应的运算。这种方式难以处理动态时间和复杂的工艺计算,在模型修改后需要重新下装,操作复杂。采用本发明提出的在线工艺计算方法,只需要在dcs控制系统中建立若干数值点以及操作界面,一次下装,之后就可以由位于上位机的在线计算系统控制自动运行。其中,上位机与控制系统一般通过opc或者其他工业协议做通讯。整个操作流程包括离线建立组态,添加变量,导出组态;在线导入组态,连接控制系统,执行计算等步骤。

考虑到在实际应用中一个复杂的工艺过程会涉及很多的工艺计算需求,为了将这些工艺计算有机地组织在一起,本发明提出了工艺计算单元的概念,每个单元中包含一个或多个工艺计算组态,可以以工艺计算单元为单位将相应的工艺计算组态整体地导出或者导入在线计算程序中。

本发明提出的方法实际上可以分为离线编辑步骤和在线计算步骤两个部分。离线编辑步骤包含工艺计算通用设置步骤、模型建立步骤、组态导出步骤等,离线编辑步骤的作用是建立单元,在单元中建立若干工艺计算组态,每个组态又按照确定原始变量、中间变量、输出变量和相应校正变量以及带有时间信息的计算模型的步骤完成整体的配置过程,然后在导出之前检查计算组态是否存在错误,将合法的计算组态以组态文件的形式导出到磁盘。在线计算步骤的作用是导入离线编辑步骤所生成的组态文件,连接数据源,解析动态公式,读取历史数据,执行计算,校正计算结果,并将校正后的计算结果输出到dcs控制系统。

下面结合图1详细说明本发明的在线工艺计算方法的工作流程。

步骤一、通用设置步骤

首先需要指定一个单元名称,建立一个工艺计算单元,同时指定该单元的数据源(一般为opc服务器名称与所在机器名),其次指定在该单元下的工艺计算组态,建立工艺计算组态时需要指定计算周期ts、时间相位phase以及校正方式。

其中:

计算周期是一个工艺计算组态的计算执行周期,这需要根据工艺需求来确定;

设置时间相位的目的是确保在一个工艺计算系统中能够平衡计算资源与通讯负荷,不同的工艺计算组态能够通过时间相位错开执行时间,从而避免多个计算组态同时读写dcs系统;

校正方式可以为无校正、分析仪校正或者化验值校正。

步骤二、模型建立步骤

在该步骤中首先进行工艺过程分析,分析要计算的工艺指标,找出计算组态所依赖的原始变量、所涉及的中间变量和要输出的输出变量,然后列写并分析计算组态的计算模型。

在具体实施时,由于所有的变量(原始变量,中间变量,输出变量,校正变量)都需要参与计算,因此其命名规则优选需要满足c语言变量名,即由数字字母下划线组成,开头只能是字母下划线。

原始变量的配置过程:

建立原始变量,原始变量的作用是提供计算需要的原始数据数值或者固定常数数值。原始变量可以是连接变量或者手动变量。

优选地,每个连接变量包含的信息如下:连接变量名称,变量别名,数据来源,dcs位号,描述,单位,dcs位号,变量上下限,滞后时间,滤波时间。原始变量的名称是系统默认分配的变量名,命名规则为raw1、raw2、…。含有原始变量的计算式可以根据原始变量的名称访问原始变量。原始变量的别名是为了明确此变量的物理意义而指定的变量名,一般可以根据dcs位号来确定,比如一个变量数值取自fic1001.pv,则我们可以令其别名为fic1001pv。此外,如果原始变量的数据来源是dcs,则其为连接变量,为了实现对工业过程的数据自动读入,需要有一个合法位号,用于从指定的位置读取数据;否则其为手动变量,手动变量与连接变量类似,但是其不需要从dcs系统中读取数值,而是在离线时可由操作人员手动输入预先设定的数值,适用于有明确物理意义的常数。

利用滞后时间τ与滤波时间tf可以指定读入的原始变量的处理方式。例如,可以利用如下一阶加纯滞后传递函数来说明:

其中,x表示原始变量的读入数值,y表示经过滤波与滞后处理的数值。经过滤波与滞后处理后得到的y值存入原始变量的历史队列的尾端,以供公式解析器访问。

此外,原始变量的上下限rawup和rawlow表示原始变量可以接受的数据范围,超出范围的读入数据被认为无效,将用接近的上下限来替代。

在实际应用时,原始变量的数量不受限制,但是需要考虑通讯负载均衡。

中间变量的自定义过程:

建立中间变量,每个中间变量包含的信息有:变量名称,内部别名,输出类型,输出位号,单位,描述,当前计算值,当前输出值,滤波时间,滞后时间,计算式。

中间变量的名称是系统默认分配的变量名,命名规则为calc1、calc2、…。含有中间变量的计算式可以根据中间变量的名称访问此中间变量。中间变量的别名是为了明确此变量的物理意义而指定的变量名,一般可以根据其计算内容来确定。比如calc1是两个流量的比值,就可以命名为flowratio,以便其他用户方便识别。如果中间变量的输出类型是本地,则不需要指定输出位号;如果中间变量的输出类型是输出,则需要指定一个合法的输出位号,用于将中间变量的计算结果输出至dcs系统。中间变量的滞后时间与滤波时间意义与原始变量相同,在此不做赘述。

中间变量的计算式是中间变量的核心要素,体现了它的运算逻辑。例如,一个中间变量的计算式如下:

calc1=raw1[-5]+log(raw2[-2])-sin(calc1[-1]-raw2)+0.5*(raw4-raw4[-1])

其中,等号将表达式分为两部分,左侧表示待计算的中间变量,右侧表示计算该中间变量的计算表达式。

计算表达式支持四则运算,支持常见的函数:指数,对数(自然对数,常用对数),三角(正弦余弦正切余切),幂函数,双曲函数(双曲正弦,双曲余弦,双曲正切,双曲余切),随机数生成,逻辑函数(与,或,抑或,同或,条件判断赋值),统计函数(最大最小值,中位数,平均值,标准差)等。

中间变量的滞后时间τ与滤波时间tf含义与原始变量相同,在此不做赘述。最终获得的中间变量的值将存入其历史队列的尾端。

中间变量的数量不限,但是要考虑计算能力的限制。

在此,无论是原始变量还是中间变量,每个变量均可以根据滞后时间访问其历史数值,比如raw2[-2]表示两分钟以前的原始变量raw2的数值,不带方括号则默认为变量的当前的数值。

输出变量的配置过程:

建立输出变量,输出变量与中间变量类似,需要指定位号,其输出数值需要后续借助化验值进行校正或者借助分析仪数值进行校正,又或者不进行校正。输出变量实际上是一个计算组态的最终输出。然而,一个工艺计算组态不限于一个输出变量。实际上,也可以根据需求将每个中间变量的数值也输出到dcs系统。

校正变量的配置过程:

如前所述,工艺计算既可以对变量辅以校正,也可以不需要校正。

当不需要校正时,校正变量设置为零。

对于化验值校正,需要指定校正上限,校正比率,化验值上限,化验值下限,滤波时间,采样时间位号,新值状态位号,化验值位号;对于分析仪校正,分析仪校正需要输入校正上限,校正比率,分析仪值上限,分析仪值下限,滤波时间,分析仪校正间隔,分析仪滞后时间,分析仪数值平均时间。

对于化验值校正,化验值上下限labup与lablow的设置是为了避免错误的化验值输入,如果读入的化验值不在此上下限的范围内,则认为此次化验值输入无效。对于分析仪校正,分析仪的输出结果的上下限为anaup与analow,如果分析仪的输出结果不在此上下限的范围内,则认为此次分析仪的输出结果无效。

对于化验值校正,化验值位号是用于在dcs系统中存储当前输入的化验值,采样时间位号用以存储操作人员输入的采样时间,化验新值确认位号是为了在操作员输入新的化验值与采样时间后点击确认以便通知本工艺计算系统读取新的化验数值以及采样时间信息,开时校正计算。对于分析仪校正,其中的校正上限,校正比率,分析仪值上限,分析仪值下限,滤波时间的含义与化验值校正的相关参数的含义相同。

校正上限adjup是指校正变量的可以加到输出变量的输出数值上的最大量,定义此项用于避免过渡校正;校正比率0<radj<1是指,如果计算值vcalc与化验值vlab或者分析仪数值vana之间存在偏差e=vlab-vcalc,或者计算值vcalc与分析仪的输出结果vana之间存在偏差e=vana-vcalc,那么根据校正比率只取差值的一部分作为实际作用的校正量为adjact=radj*e。

基于确定好的原始变量、中间变量、输出变量、校正变量,结合工艺过程的动态时间特性列写计算组态的带有时间信息的计算模型,该计算模型通常包括中间变量的计算式。

例如一个示例性的计算单元,命名为jj2ch-abst,其中的计算组态lpgc5表示液化气c5含量。如图2所示,该计算组态包含:

两个原始变量:ti319pv(稳定塔顶温度)与pc302cpv(稳定塔顶压力),均需要从dcs读取数值;

三个中间变量:t_top(顶温比值)、p_top(稳定塔顶压)、f_top(顶温函数);

一个输出变量:t_top也需要对外输出,到t_top.pv;

采用化验值校正,因此需要配置化验值以及采样时间年月日时分位号,以及新值标志位号等。

步骤三、组态导出步骤

在建立工艺计算组态后,需要检查组态合法性,合法性需要从上下限是否交叉,位号是否合法,时间相位设置是否合理等多角度全方位地来考虑。当计算组态有错误时,不允许导出其所在的计算单元。

步骤四、组态导入步骤

同样地,在线导入计算单元时需要检查计算组态是否合法,如果计算组态有错误则不允许导入该计算组态。

步骤五、在线计算步骤

执行在线计算,需要在在线打开计算单元中的计算组态,优选地,在打开时做组态检查,防止有错误的组态被计算。在启动计算后,在每个计算周期内,解析计算组态的带有时间信息的计算模型,根据时间信息读取控制系统的位号,更新原始变量数值,然后解析各个中间变量的计算表达式,计算并更新中间变量的数值,最后计算输出变量,并利用校正变量对输出变量的计算结果做校正,最后将输出变量的校正后的计算结果输出至控制系统。

上述流程中需要重点说明在线计算流程中所涉及的动态解析过程以及校正输出过程。

动态解析过程:

动态解析是本发明的核心技术手段,即访问各变量的历史数值,结合各变量的历史数值完成工艺计算。为此,本发明设计了公式解析器,其带有一个变量表,里面存储了计算模型内所需变量与对应数值所形成的数据对,比如计算var1+sin(var2)。公式解析器首先分析计算模型,从中提取变量标识符var1、var2、运算符+、函数sin,然后到变量表中查找var1、var2对应的数值,用其替换原表达式中的变量标识符,求值。公式解析器的工作方式请参见图3。

对于计算组态中的每一个变量var,需要根据需求存储一定长度的历史数值。在解析计算表达式如var1[-2]+sin(var2[-3.5]-var2[-1])时,首先扫描解析表达式,提取出变量标识符、运算符、函数符,遇到符合var[-xx.xx]的表达式,公式解析器将其提取出来,从中提取变量名与时间信息,查找对应的历史数据var_val,将计算表达式中的var[-xx.xx]替换为var[xx_xx],得到新表达式;同时,公式解析器的变量表中增加key=var[xx_xx],value=var_val的键值对;最后通过调用公式解析器对计算表达式进行求值。整个解析过程请参见图4。

校正输出过程:

虽然化验值校对的校正逻辑与分析仪校对的校正逻辑类似,但是两者在校正周期的启动方面有着明显不同。

如图5如示,对于化验校正,当操作员输入新的化验值与采样时间后,通过操作员改写化验新值标志位的方式开时校正计算。具体地,当系统读取到操作人员输入的新值标值位为1时,读取化验值与采样时间年月日时分信息,并将新指标值置为0。如果距离上一次校正时间过短(例如不满2小时)或者化验值时间太长(例如超过24小时),则不予校正。如果读入的化验数据超出了校正变量预设的上下限,则不予校正。根据化验值的采样时间查找在采样时间附近指定时间段内输出变量的历史数据,求取其平均值作为输出变量的平均值vcalc。计算平均值vcalc与化验值vlab之间的偏差e=vlab-vcalc,实际其作用的校正量adjact=radj*e,其中,radj为校正比率(一般取值0.75左右)。将adjact添加到校正变量的目标值adjtarget之上,此时通常还要用校正上限对校正变量的目标值再做一次限幅,以防止过度校正。然后,更新校正变量的当前值adjcur,使其根据下式按照惯性过渡趋近于校正变量的目标值adjtarget:

adjcur=adjcur*α+adjtarget*(1-α)

其中,ts为计算周期,tf为滤波时间,α为滤波系数,校正变量的目标值adjtarget,校正目标的当前值adjcur。

最后,利用更新后的校正变量的当前值adjcur对当前的输出变量的计算结果进行校正,将校正后的输出变量的计算结果提供给控制系统。

如图6如示,对于分析仪校正,根据指定的校正周期(即分析仪校正间隔)执行校正运算。在每个校正周期开始时,结合分析仪的滞后时间查找在指定时间段(即分析仪平均时间)内分析仪的输出结果的历史数据,求取其平均值作为分析仪的输出结果的平均值vana。如果分析仪平均值vana超出上下限,则不予校正,否则查找在上述指定时间段内对应的输出变量的历史数据,求取其平均值作为输出变量的平均值vcalc。计算分析仪平均值vana与输出变量的平均值vcalc的偏差e=vana-vcalc,实际其作用的校正量adjact=radj*e,其中,radj为校正比率(一般取值0.75左右)。将adjact添加到校正变量的目标值adjtarget之上,通常此时还要用校正上限对校正变量的目标值再做一次限幅,以防止过度校正。然后,更新校正变量的当前值adjour,使其根据下式按照惯性过渡趋近于校正变量的目标值adjtarget:

adjcur=adjcur*α+adjtarget*(1-α)

其中,ts为计算周期,tf为滤波时间,α为滤波系数,校正变量的目标值adjtarget,校正目标的当前值adjcur。

最后,利用更新后的校正变量的当前值adjcur对当前的输出变量的计算结果进行校正,将校正后的输出变量的计算结果提供给控制系统。

优选地,为防止因校正变量的数值变化过大而引起工艺计算的输出结果的波动,本发明采用惯性过渡的方式从校正变量的当前值过渡到校正变量的目标值。图7说明惯性过渡的方式,当前校正量从0,以ts=20min惯性过渡到目标量3。

虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1