一种基于EO变量的单元模型解析系统的制作方法

文档序号:29913222发布日期:2022-05-06 02:25阅读:171来源:国知局
一种基于EO变量的单元模型解析系统的制作方法
一种基于eo变量的单元模型解析系统
技术领域
1.本发明涉及数据处理技术领域,尤其涉及一种基于eo变量的单元模型解析系统。


背景技术:

2.化工工艺设计中工程人员通常使用类似流程图的工具(流程模拟软件如aspen)对工厂中的生产流程进行抽象,将工艺流程抽象为复杂的流程图,这些流程图中组成元素通常包含工厂中的设备,测量仪器,管道等,业内人士将这些元素称为单元模型。当流程图中的元素参数被正确配置后可以进行流程图的计算来模拟生产过程,通常计算过程有两种:序贯和eo;序贯是按照流程图的箭头顺序(拓扑)进行计算,前一个模型将计算结果输出给下一个连接模型;eo则将流模型(即流程图)中的计算数据描述为变量,将模型中的计算描述为方程,这些方程描述了变量之间的关联关系,模型之间的输入输出关系用变量之间的连接方程给出。
3.国内绝大多数的流程模拟软件都是基于序贯计算的,但序贯计算有很多缺点,如计算上不够灵活,当流程中有很多环时不容易收敛,不适合做操作变量上的优化控制等。
4.传统面向eo的单元模型的构建,由于缺少开发框架通常是用matlab编码,以实现简单流程的计算和优化,主要缺点有:1)单元模型开发扩展性差;2)代码重用性较差;3)编码重复工作量大;4)一般只能用于小规模流程的测试计算;5)对于eo变量和方程缺失组织使得定位和管理变得困难。


技术实现要素:

5.(一)要解决的技术问题
6.鉴于现有技术的上述缺点、不足,本发明提供一种基于eo变量的单元模型解析系统。
7.(二)技术方案
8.为了达到上述目的,本发明采用的主要技术方案包括:
9.第一方面,本发明实施例提供一种基于eo变量的单元模型解析系统,
10.所述单元模型解析系统为客户端-服务器的分布式架构,服务器包括:
11.中间数据处理层,用于接收服务器传输的所述客户端的流程图信息及与流程图对应的处理指令,将所述流程图信息转换为用于进行计算服务使用的结构化数据,根据所述处理指令选择与处理指令对应的处理策略与计算引擎进行交互,获取与处理指令对应的处理结果;
12.将所述处理结果转换为客户端能够识别的信息,通过所述服务器传输客户端展示;
13.计算引擎,用于根据中间数据层转换的结构化数据,创建对应结构化数据的信息结构表;和/或基于所述处理指令、结构化数据和信息结构表与中间数据层、各个动态链接库交互调用,以分布式迭代并求解信息结构表中的eo变量或结果,方程的残差或雅克比矩
阵;
14.动态链接库,该动态链接库至少包括:单元模型库、求解器库、热力学库和数值计算库,所述动态链接库通过各自的抽象接口与计算引擎连接,以使计算引擎根据处理指令和结构化数据的需求调用所述动态链接库实现分布式迭代,获得传输计算引擎的结果。
15.可选地,所述处理指令为用户在客户端基于展示界面选择的流程图信息触发的待服务器执行的指令,该处理指令包括:编译、初值预估、初值导入或运行;
16.所述计算引擎创建的信息结构表包括下述的一种或多种:单元模型对象列表、连接信息表、单元模型库信息、求解器库信息、eo变量和方程总表、全局配置信息、组分热力学信息、计算过程信息、eo变量和方程定位信息。
17.可选地,所述处理指令为编译指令时,所述中间数据处理层,具体用于:
18.接收所述服务器传输的流程图完整信息,并将接收的流程图完整信息转换为结构化数据;调用所述计算引擎的初始化进程,根据所述结构化数据和编译指令创建对应流程图中每一节点的单元模型对象,基于创建的单元模型对象,生成与单元模型对象对应的eo变量和方程,且使所述计算引擎将所述单元模型对象所属的eo变量和方程存储在信息结构表中;以及所述计算引擎更新/创建信息结构表中的eo变量和方程的用于进行后续调用或访问的定位信息;
19.所述中间数据层将所述信息结构表中的信息转换为客户端能够识别查看的数据通过服务器发送所述客户端展示;
20.和/或,所述流程图完整信息包括下述的一种或多种:流程图中各节点(即单元模型)对应的组态信息、组分组信息、总组分信息、连接信息、组分配置信息、组分组配置信息、全局配置信息。
21.可选地,所述处理指令为初值估计指令时,所述中间数据处理层,具体用于:
22.将所述服务器传输的流程图第一关联信息转换为结构化数据,并在该中间数据处理层中进行序贯操作,基于流程图的所有单元模型对象的标识从计算引擎的信息结构表中调取eo变量和方程并进行初始处理,根据预先定义的输入输出规则,确定eo变量的连接及输入输出流股信息,实现所有单元模型对象的eo变量的传递及获取每一eo变量的预估初值;
23.将所述预估初值和eo变量的传递信息转化为客户端能够识别查看的数据通过服务器发送所述客户端展示;
24.所述流程图第一关联信息包括:流程图完整信息、eo变量和方程。
25.可选地,所述中间数据处理层的输入输出规则包括:
26.所有属于单元模型对象指定流股的eo变量需要连续,
27.创建单个单元模型对象时需要规定eo变量组中间的排布;
28.单元模型对象特有的eo变量连接组需要连续。
29.可选地,所述处理指令为初值导入指令时,所述中间数据处理层,具体用于:接收服务器传输的eo变量的初值信息并配置在流程图所属的每一单元模型对象的eo变量,将配置后的信息并转化为客户端能够识别查看的数据通过服务器发送所述客户端展示。
30.可选地,所述处理指令为运行指令时,所述中间数据处理层,具体用于:
31.将所述服务器传输的流程图第二关联信息转换为结构化数据,将转换的结构化数
据和运行指令传输至计算引擎;
32.所述计算引擎根据结构化数据中的求解器及求解器参数信息构建求解器能够识别并处理的与结构化数据对应的数学模型,借助于连接各求解器的抽象接口将所述数学模型分配至对应的求解器,实现各求解器与动态链接库配合的异步求解,所述求解器在分布式求解中通过对应抽象接口调用所述计算引擎的信息结构表的信息进行处理;
33.所述计算引擎接收各求解器在每一次处理过程的过程信息和结果信息,并存储和组合处理,通过设定的迭代次数,获取最终的结果信息;
34.所述中间数据层将存储的过程信息、每一次迭代的结果信息和最终的结果信息转化为客户端能够识别查看的数据通过服务器发送所述客户端展示;
35.所述流程图第二关联信息包括:流程图完整信息、eo变量和方程、求解器、求解器的参数信息。
36.可选地,所述单元模型库中存储有该单元模型对象所属的eo变量在计算引擎的信息结构表中的定位信息/位置信息;
37.所述计算引擎的处理功能包括:eo变量和方程的生成,eo变量的初值估计,方程残差的计算和雅可比矩阵的计算。
38.可选地,中间数据层将接收的流程图完整信息转换为结构化数据;调用所述计算引擎的初始化进程生成eo变量和方程中,还用于遵循eo变量和方程的生成规则进行处理;
39.eo变量和方程的生成规则包括:
40.所有eo变量和方程需要连续存储;
41.eo变量和方程需要分组存储,组内变量和方程占据连续的存储空间;
42.对于相同的配置信息,生成对象/例程需要生成相同的eo变量和方程信息。
43.(三)有益效果
44.本发明的方法可以使现有技术的全流程模拟软件扩展性和实用性更好,克服传统流程图基于matlab直接进行数值计算,本发明中将各类单元模型中的相同的特征(如热力学配置,eo变量生成)提取出来放入公共基类中,使用连接流股聚合类将eo变量进行分组管理从而大大减少了单元模型开发的难度和代码量,提高了代码复用率。
45.本发明的系统利用了该构建方案在短期内实现了流程图计算引擎,单元模型构建只需要关注流股类型,自身变量,方程计算,大大缩短了开发周期。
附图说明
46.图1a和图1b为本发明一实施例提供的基于eo变量的单元模型解析系统中服务器架构的部分示意图;
47.图2为图1中计算引擎的信息结构表的架构的示意图;
48.图3为图1中单元模型与计算引擎之间交互的示意图;
49.图4为基于图1的构建闪蒸罐类的过程示意图;
50.图5为单元模型的各功能的示意图;
51.图6为基于eo变量的单元模型解析系统中服务器处理流程的部分示意图。
具体实施方式
52.为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
53.为克服序贯的缺陷,本发明实施例提供一种全流程模拟软件即基于eo变量的单元模型解析系统,其采用eo变量的计算策略,将eo变量进行分组管理,提高代码复用率,且实现面向方程分布式迭代。
54.为更好的理解,对本发明实施例中的一些词语进行定义或说明。
55.组分:化工常用物质构成计算流程中的组分,如甲烷,氧气,水,氮气,空气,苯等。总组分:当前流程计算使用的所有的组分的集合。组分组:总组分的一个非空子集。物性:组分的性质参数,如平均分子量。单元模型:实际工厂中的各类设备在流程图中的抽象。流程图中工厂中的设备被抽像为模型信息,输入流股,输出流股,配置信息;计算中单元模型将根据流程图中的信息被进一步抽象为eo变量和eo方程(描述它自身eo变量之间的关系)。单元模型类型主要有源流股,闪蒸罐,混合,分离器,加热器等。
56.模型信息:包含模型类型(源流股,闪蒸罐,etc),模型id等单元模型相关的信息。流股:流股通常类似管道,里面用于输送一定浓度的混合物,流程图中的流股通常需要存储混合物的温度,压力,流量,混合物总焓,混合物中各个组分摩尔浓度作为其属性。流股数据一般都是嵌入在单元模型中输入,输出中描述。
57.连接流股:连接流股可以描述两个单元模型之间的连接关系,属于流程图组态的数据,可以用《源单元模型,目标单元模型,连接流股id,源单元模型流股id,目标单元模型id》描述,说明了源单元模型的流股通过连接流股连接到了目标单元模型的指定流股中。连接流股在计算中将源单元模型的流股相关的属性(如温度压力,被抽象为eo变量)直接关联(通过等式关联)到目标单元模型流股中的对应属性。另外,连接流股还可以是单元模型里面的信息,该单元模型里面的连接流股用于表示单元模型里面的引脚跟外面流股的对应关系,其属于单元模型的配置,即用于对象自身的计算在实际应用中可直接把单元模型里面的连接流股直接称为流股。
58.模型配置信息:包含单元模型相关的界面可配信息,如模型名字,组分组,热力学,输入流股数量/id,输出流股数量/id等,不同类型的单元模型配置信息不一样,如反应器有反应配置,压缩机有特性曲线配置,配置信息将决定模型在计算层的抽象(eo变量和方程)。
59.全局配置信息:包含一些所有单元模型共享的配置信息,如当前时间,单元模型计算选项等。
60.求解配置信息:包含求解器的一些配置信息,如求解器的选择,求解器相关的配置信息。
61.计算模式:主要分为模拟计算和优化计算,模拟计算主要求解自由度为0的方程,优化问题主要求解自由度大于0的优化问题,主要最小化代价或最大化经济效益。
62.eo变量:流股和单元模型相关的数值属性的底层抽象,如流股混合物流量,各类组分摩尔浓度,闪蒸罐的气相分率,分离器的分离系数,压缩机的等熵效率,换热器的换热系数等,不同单元模型在不同模型配置下可能抽象出不同的eo变量。流程图中eo变量主要分为2种,固定变量,计算变量。固定变量在计算过程中为常量,计算变量通常由固定变量和eo方程组通过数学方法求解出来。优化计算模式下固定变量可以选择作为优化变量。
63.eo方程:用于描述eo变量之间的数学关系。
64.单变量连接:用于描述不同eo变量之间的连接关系(一般用等式关系),一个连接关系在计算中将增加一个方程。可以由客户端配置或系统固定(由系统自身或单元模型需求生成)。
65.变量连接组:为了方便变量连接管理引入,由多个单变量连接构成的组。可由客户端配置或系统固定。如连接流股在底层实际是一个变量连接组(系统固定),建立了源/目标单元模型中指定流股eo变量(温度,压力,流量,混合物浓度)的关系(等式关系)。根据实际需求可以在各个单元模型设计的时候指定特定的连接组用于连接,如设计闪蒸罐时可以将表示热量的eo变量暴露给上层用于连接。
66.自由度:用计算变量数-方程数表示。0表示方程数与变量个数相等,此时方程为方的,此时方程可以直接用数值法求解,如果自由度大于0则有优化变量,对应优化问题求解。通常模拟模式需要自由度为0,优化模式需要自由度大于等于0。
67.子流程:特殊类型的单元模型。流程图自身也可以抽象为单元模型,因为它可以与外面的流程图中单元模型通过连接流股建立连接,也有eo变量和方程。
68.求解器:用于数学模型求解,如求解方程f(x)=0或优化问题min f(x)s.t.g(x)=0,l《=x《=u。
69.单元模型库:各类单元模型构成的集合,计算端的库是由实现单元模型通用接口的动态链接库构成的集合。
70.求解器库:求解器动态链接库构成的集合。
71.热力学库:各种热力学计算动态链接库构成的集合。
72.模型求解序列:描述参与流程图求解的模型序列,求解的时候不一定是流程图中所有单元模型都参与计算,可能中间会选择部分子流程通过配置变量连接组进行虚拟连接求解,所以需要求解序列描述参与求解的单元模型。
73.计算服务:主要用于计算资源管理和客户端的远程交互,如计算任务的分配,并行/分布式计算线程管理。
74.中间数据层:主要用于将客户端的数据进行处理转成计算所需的高效结构,将流程计算引擎返回的结果信息进行组织处理成客户端所需的结构
75.流程计算引擎:根据中间数据层提供的数据进行相关建模计算,将计算结果返回中间数据层处理。
76.实施例一
77.如图1a和图1b所示,本实施例提供的一种基于eo变量的单元模型解析系统,单元模型解析系统为客户端-服务器的分布式架构,该分布式架构的服务器包括:中间数据处理层、计算引擎和动态链接库;
78.其中,中间数据处理层,用于接收服务器传输的所述客户端的流程图信息及与流程图对应的处理指令,将所述流程图信息转换为用于进行计算服务使用的结构化数据,根据所述处理指令选择与处理指令对应的处理策略与计算引擎进行交互,获取与处理指令对应的处理结果;
79.将所述处理结果转换为客户端能够识别的信息,通过所述服务器传输客户端展示;
80.计算引擎,用于根据中间数据层转换的结构化数据,创建对应结构化数据的信息结构表;和/或基于所述处理指令、结构化数据和信息结构表与中间数据层、各个动态链接库交互调用,以分布式迭代并求解信息结构表中的eo变量和方程的初值或结果,
81.动态链接库,该动态链接库至少包括:单元模型库、求解器库、热力学库和数值计算库,所述动态链接库通过各自的抽象接口与计算引擎连接,以使计算引擎根据处理指令和结构化数据的需求调用所述动态链接库实现分布式迭代,获得所述初值或结果,如图1b所示。
82.可理解的是,所述单元模型库中存储有该单元模型对象所属的eo变量在计算引擎的信息结构表中的定位信息/位置信息;
83.所述计算引擎的处理功能包括:eo变量和方程的生成,eo变量的初值估计,残差方程的计算和雅可比的计算。
84.在实际应用中,服务器可通过接收模块接收客户端传送的相关数据,进而通过计算服务创建线程等,再由计算服务传输给中间数据处理层,本实施例不限定接收模块和计算服务的过程,其均属于现有方式可以实现的内容,本实施例的改进在于中间数据处理层和计算引擎、动态链接库之间的调用和交互。其通过上述的调用和交互,实现了分布式迭代计算,并提高了代码复用率,大大缩短了开发周期。
85.另外,本实施例中,所述处理指令为用户在客户端基于展示界面选择的流程图信息触发的待服务器执行的指令,该处理指令包括:编译、初值预估、初值导入或运行;如图6所示。
86.所述计算引擎创建的信息结构表包括下述的一种或多种:单元模型对象列表、连接信息表、单元模型库信息、求解器库信息、eo变量和方程总表、全局配置信息、组分热力学信息、计算过程信息、eo变量和方程定位信息,如图2所示。
87.在具体实现过程中,所述处理指令为编译指令时,所述中间数据处理层,具体用于:
88.接收所述服务器传输的流程图完整信息,并将接收的流程图完整信息转换为结构化数据;调用所述计算引擎的初始化进程,根据所述结构化数据和编译指令创建对应流程图中每一节点的单元模型对象,基于创建的单元模型对象,生成与单元模型对象对应的eo变量和方程,且使所述计算引擎将所述单元模型对象所属的eo变量和方程存储在信息结构表中;以及所述计算引擎更新/创建信息结构表中的eo变量和方程的用于进行后续调用或访问的定位信息;
89.所述中间数据层将所述信息结构表中的信息转换为客户端能够识别查看的数据通过服务器发送所述客户端展示;
90.上述的流程图完整信息包括下述的一种或多种:各节点对应的组态信息、组分组信息、总组分信息、连接信息、组分配置信息、组分组配置信息、全局配置信息。上述的流程图完整信息即可为用户在客户端配置的,对应图6中的组态过程,其可以选取总组分,设置若干组分组,配置热力学,组流程图(如一个源流股os1,一个闪蒸罐b1,通过连接流股s1相连),配置单元模型对象(如配置源流股温度,压力,组成参数(主要用与初值估计),配置闪蒸罐有效相态,雾沫夹带(影响eo变量和方程),闪蒸类型,温度,压力等属性(用于初值估计)等),在组态过程中可以产生组分组和热力学数据,流程图数据对应的单元模型数据和
连接流股数据等。
91.可理解的是,编译过程可触发的操作包括:检测组态,若组态正确,客户端将组态数据通过服务器的计算服务发送给中间数据层,并告之进行编译,中间数据层对组态数据进行解析,并对配置参数进行单位转换,最后形成结构化求解结构和求解序列,将处理后的数据传给计算引擎进行编译;计算引擎根据中间数据层的数据创建流程图中的单元模型和连接对象,并根据求解序列调用每个单元模型的eo变量和方程生成接口生成eo变量和方程,将eo变量/方程返回给中间数据层;中间数据层将返回的eo变量和方程进行数据处理最终传给客户端显示。
92.另外,中间数据层将接收的流程图完整信息转换为结构化数据;调用所述计算引擎的初始化进程生成eo变量和方程中,还用于遵循eo变量和方程的生成规则进行处理;即eo变量的排布不是随意的,为了提升系统的效率和可扩展性,本实施例定义下述规则。
93.eo变量和方程的生成规则包括:规则1):所有eo变量和方程需要连续存储;因为流股里面的变量通常是一个变量连接组,如果连续可以方便后续连接操作。规则2)eo变量和方程需要分组存储,组内变量和方程占据连续的存储空间,方便后续作为整体进行的连接操作;规则3)对于相同的配置信息,生成对象/例程需要生成相同的eo变量和方程信息。
94.上述规则实现了单个单元模型中规定变量组中间的排布,如闪蒸罐一般先按照顺序排入口流股、闪蒸罐自身变量,气相出口,液相出口,保证方程雅克比的分解过程的稀疏度,提升求解效率。
95.在第二种可实现的方式中,所述处理指令为初值估计指令时,所述中间数据处理层,具体用于:将所述服务器传输的流程图第一关联信息转换为结构化数据,并在该中间数据处理层中进行序贯操作,基于流程图的所有单元模型对象的标识从计算引擎的信息结构表中调取eo变量和方程并进行初始处理,根据预先定义的输入输出规则,确定eo变量的连接及输入输出流股信息,实现所有单元模型对象的eo变量的传递及获取每一eo变量的预估初值;将所述预估初值和eo变量的传递信息转化为客户端能够识别查看的数据通过服务器发送所述客户端展示;
96.可理解的是,编译生成eo变量后用户可以直接从其他地方把以前算过的eo变量值导入进来,如果没有值可以用则需要进行初值估计,初值估计将触发以下操作:中间数据层进行数据转换,并计算流程图的拓扑序列,根据拓扑序列调用计算引擎的单元模型初值估计接口,计算完当前单元模型后根据连接流股信息将该流股相关的变量(变量连接组)连接到下一个单元模型指定的流股变量中继续计算直至计算完所有需要估计的单元模型,中间数据层将eo变量的值最终返回给客户端显示。
97.上述的流程图第一关联信息包括:流程图完整信息、eo变量和方程。具体地,上述中间数据处理层的输入输出规则包括:a)所有属于单元模型对象指定流股的eo变量需要连续,b)创建单个单元模型对象时需要规定eo变量组中间的排布;c)单元模型对象特有的eo变量连接组需要连续。
98.当然,上述的处理指令为初值导入指令时,所述中间数据处理层,具体用于:接收服务器传输的eo变量的初值信息并配置在流程图所属的每一单元模型对象的eo变量,将配置后的信息并转化为客户端能够识别查看的数据通过服务器发送所述客户端展示。
99.在第三种可能的实现方式中,所述处理指令为运行指令时,所述中间数据处理层,
具体用于:将所述服务器传输的流程图第二关联信息转换为结构化数据,将转换的结构化数据和运行指令传输至计算引擎;
100.所述计算引擎根据结构化数据中的求解器及求解器参数信息构建求解器能够识别并处理的与结构化数据对应的数学模型,借助于连接各求解器的抽象接口将所述数学模型分配至对应的求解器,实现各求解器与动态链接库配合的异步求解,所述求解器在分布式求解中通过对应抽象接口调用所述计算引擎的信息结构表的信息进行处理;
101.所述计算引擎接收各求解器在每一次处理过程的过程信息和结果信息,并存储和组合处理,通过设定的迭代次数,获取最终的结果信息;
102.所述中间数据层将存储的过程信息、每一次迭代的结果信息和最终的结果信息转化为客户端能够识别查看的数据通过服务器发送所述客户端展示;
103.所述流程图第二关联信息包括:流程图完整信息、eo变量和方程、求解器、求解器的参数信息。
104.可接的是,有了eo变量初始值之后就可以进行eo相关的配置,比如改变变量属性(将固定变量和计算变量进行交换),改变变量上下限,改变固定变量的值进行特殊计算,选择计算模式,配置求解器等操作。
105.完成eo相关的配置就可以进行计算,流程计算过程(录像中的运行按钮,以模拟模式为例)将触发以下操作:
106.服务器传输客户端的自由度配置信息、组态信息和全局配置信息等数据传给中间数据层进行模拟场景计算,中间数据层将客户端的组态信息数据和全局配置信息进行结构化处理,生成求解引擎需要的结构(单元模型结构数据(包含id,组分组/热力学数据,出入流股描述,配置信息

),连接流股表),并生成求解序列,变量连接组信息,求解配置信息(求解器id,求解器属性),将这些数据传给计算引擎进行模拟模式求解;计算引擎根据中间层的数据构建流程图的数学模型,将数学模型传给求解配置中选择的底层求解器进行计算;
107.求解器不断更新当前eo变量的值并调用单元模型的残差,雅可比计算接口获取当前eo变量值下的残差值和雅可比矩阵进行迭代计算,并将每轮的求解结果异步通知中间数据层,最后完成数学模型的求解。
108.计算引擎将求解器返回的结果进行处理得到流程图的求解结果,将结果返回中间数据层;中间数据层对结果进行组织和处理最终返回给客户端显示。获取最后的求解结果后,通常用户会根据结果重新组态或者进行eo配置,再重新计算直到获取满意的结果为止。
109.本实施例的单元模型解析系统中的客户端可以为任意的用于创建工艺流程图的客户端,其客户端主要用于展示操作结果和接收用户的操作指令。例如,上述系统可包括:用于在客户端展示并接收用户触发操作的展示界面,所述展示界面中展示有组分组区域、总组分区域、单元模型配置区域、热力学配置区域和编辑区等;
110.上述的组分组区域主要展示有多个化学物质构成计算流程图中的组分;上述的总组分区域主要展示有多个计算流程图中使用的共同组分的信息;上述的单元模型配置区域主要展示有多个流程图中单元模型抽象的eo变量和/或eo方程;上述的热力学配置区域主要用于配置热力图中的热力学的属性信息;上述的编辑区主要用于展示用户触发所述组分组区域、总组分区域、单元模型配置区域、热力学配置区域中元素,并根据用户选择的操作
指令进行组合和/或展示服务器反馈的结果。
111.举例来说,在客户端中可选取总组分,如选择c6h6,c7h8,h2o等,也可设置若干组分组,以及配置热力学,指定每种热力学属性的计算子程序,组流程图,例如可组一个源流股os1,一个闪蒸罐b1,通过连接流股s1相连;还可配置单元模型,如配置源流股温度,压力,组成参数(主要用与初值估计),配置闪蒸罐有效相态,雾沫夹带(影响eo变量和方程),闪蒸类型,温度,压力等属性(用于初值估计)等。
112.本实施例中的计算引擎,记录每个单元模型对象eo变量在总表里面的定位信息,根据定位信息,将计算分散到各个单元模型,使得各单元模型的计算仅对自身eo变量的关系处理,不同单元模型的关系通过连接方程关联实现。
113.现有技术在编译阶段eo变量和方程时,设计eo变量和方程都存在单元模型对象内存中,这样会导致eo变量方程在内存中比较分散,访问需要遍历流程中的单元模型才能得到所有eo变量。本发明实施例中是编译时候由计算引擎分配总表并让每个单元模型对象往里面填入eo变量和方程,计算引擎记录每个单元模型对象eo变量在总表里面的定位信息。
114.eo变量分组管理使得中间数据层的工作得到简化,主要是处理变量连接组的时候可以不需要考虑具体的eo变量直接将组内变量进行连接。
115.单元模型设计上将连接流股单独抽象成类并聚合到单元模型中,主要有以下优点:减少了与单元模型代码之间的耦合性;可以根据需要构建模型流股库,增加了代码复用率;简化了单元模型的设计;与单元模型聚合可以使得方程计算例程快速进行指定出入口流股eo变量访问,直接进行指针转换即可,不需要查表;可以方便公共基类生成变量定位信息,只需要按顺序生成流股eo变量,记录下变量偏移信息即可;可以使用特殊连接流股类来实现单元模型eo变量的虚拟分组,这样一些流程中的复杂功能可以简化(如变量组之间的连接方程)。
116.同时,单元模型的公共基类实现了所有模型公共功能(如热力学配置,属性配置)与跟引擎的交互,模型开发只需关注变量,方程,大大简化了单元模型设计和编码,如图3所示。
117.另外,计算引擎将计算分散到各个单独单元模型,通过一些信息的组织和求解器接口进性适配,所以单元模型计算过程只需要关注自身eo变量之间的关系,不同单元模型之前的关系只通过连接方程描述。
118.实施例二
119.为更好的说明书上述实施例一的内容,下面从另一角度对本技术的技术方案进行说明。
120.整体计算架构说明
121.基于eo变量的单元模型解析系统的服务器可包括计算引擎,单元模型库,求解器库;如图1a所示。
122.计算引擎将各类单元模型(如闪蒸罐,分离器等),求解器通过抽象接口集成起来。各类单元模型通过抽象接口与引擎连接与交互;求解器库也通过专用求解抽象接口与计算引擎交互。
123.如图2所示的计算引擎的具体结构,其主要负责单元模型库和求解器库的管理,流程图的建立,eo变量和方程的管理,各类场景的计算模式。
124.流程图信息在计算引擎中的表示为单元模型信息列表和连接流股列表,连接主要表示为源单元模型,目标单元模型,源连接流股,目标连接流股的元组。
125.为了方便计算引擎中eo变量的管理,需要将全部单元模型的eo变量一起连续存储在计算引擎,单元模型中只需要存储它自身变量在整张总表中的位置就能迅速访问。
126.在计算方面,求解器端往往需要大量迭代计算,每轮迭代计算引擎将求解器当前迭代信息组织并分散更新到各个单独的单元模型中计算,等待所有单元模型计算完后再将计算结果组织在一起传给求解器继续迭代;这种构架可以将求解任务分散到各个单独单元模型中,每种单元模型只需提供自身的计算方法,这样不仅可以提升系统的并行性,而且也方便后续解析系统的扩展。
127.本实施例中,从计算功能划分,单元模型主要可以分为eo变量/方程的生成,eo变量的初值估计,方程残差的计算和雅可比矩阵的计算。单元模型的eo变量/方程是根据单元模型当前的配置组态信息来生成的,eo变量/方程的生成满足需要以下规则:
128.1)所有eo变量/方程需要连续存储
129.2)eo变量/方程需要分组存储,组内变量/方程占据连续的存储空间
130.3)对于相同的配置信息,生成例程需要生成相同的eo变量/方程信息,
131.规则1)主要用于访问性能提升(可以通过数组索引访问)和方便后续统一管理,规则2)主要用于组态计算功能扩展和方便变量组管理(组变量/方程可以用索引区间表示),如在计算时需要建立单元模型之间某些特殊eo变量/方程之间的关联关系,可以将这些特殊变量/方程放在单独的组里,直接将索引区间返回引擎计算,规则3)为组态计算强制的约束条件。
132.在编译阶段,eo变量/方程生成例程将根据客户端传输过来的流程图中当前组态配置生成符合生成规则的变量/方程表。在初值估计阶段,eo变量初值估计则需要根据客户端传输过来的流程图中当前组态配置计算出生成eo变量的值和相关属性,在运行阶段,方程残差计算需要根据当前模型eo变量的初始值和当前单元模型配置计算出各个方程的残差值,雅可比计算则需要根据当前单元模型eo变量的初始值和当前单元模型配置计算出各个方程对它的eo变量的一阶导数。eo变量初值估计,方程残差计算和雅可比矩阵的计算需要访问单元模型配置相关信息,单元模型的eo变量,单元模型的方程。
133.单元模型的配置信息主要包含单元模型之间的连接流股信息、单元模型内部的连接流股信息,组分组信息,热力学信息,模型相关的配置属性,这些配置信息可以决定模型的eo变量/方程。单元模型之间的连接流股信息主要描述了单元模型的连接相关的信息,主要包含单元模型引脚编号,连接编号,连接流股编号,流股组分组和热力学。连接流股可以根据用途可以分为出口流股,入口流股,出口气相流股,出口液相流股等,不同流股包含不同类型个数的eo变量,属于同一流股的eo变量需要构成一个组。组分组相关信息主要用于eo变量/方程生成,热力学主要用于初值估计,残差和雅可比计算。单元模型相关的配置属性主要影响eo变量/方程生成,初值估计,方程残差和雅可比矩阵的计算,属性一般用《键,值》对表示。也就是说,单元模型之间的连接流股信息用于eo变量连接组的生成,或者实现整体计算。中间数据层的序贯操作会使用单元模型之间的连接流股,在运行时计算引擎会在合并各个单元模型对象计算结果合并时加上单元模型对象之间的连接流股的eo变量连接组,即单元模型之间的连接流股主要在单元模型对象编译生成eo变量和方程时候、方程
残差和雅可比矩阵的计算使用;
134.另外,连接流股是单元模型里面的信息,该单元模型里面的连接流股用于表示单元模型里面的引脚跟外面流股的对应关系,其属于单元模型的配置,即用于对象自身的计算在实际应用中可直接把单元模型里面的连接流股直接称为流股。
135.为了满足上面单元模型需求,本实施例的服务器提供一种合理的单元模型构建方案。由于单元模型之间功能上唯一的不同点就是eo变量/方程生成,初值估计,方程残差/雅可比矩阵的计算,可以将其他所有的功能(如属性获取,组分组获取,连接流股获取)都放到基础类中,导出对应接口给后续派生类访问。如图3所示,所有组分组,热力学,模型属性等配置相关信息可以全部放在基础类中(直接由引擎交互获取创建),不需要后续派生类创建和修改,这样派生类只需要关心eo变量/方程和相关的计算例程就可以了。由于单元模型eo变量可以分为流股相关eo变量组,模型eo变量组,特殊eo变量组,可以定义一个特殊的类流股连接类,存储了连接相关的信息结构,用于流股eo变量组和特殊eo变量组(虚拟流股)的生成,该类提供了该组eo变量的生成规则,模型变量生成函数是负责生成模型自身的eo变量。这样只需要单元模型派生提供每个组的eo变量生成规则表,基础类可以根据表依次按照指定顺序生成整体的eo变量表,同时又可以维护组eo变量的位置信息。为了提升访问性能,规则列表可以以聚合的方式集成到单元模型基础类中,避免后续查表带来的时间损耗。为了隐藏单元模型和引擎之间的交互,可以将所有交互接口全部实现在基础类中,这些交互接口实现中可以通过多态访问派生类中功能接口(c++中可以考虑使用crtp实现)。基础类还负责给出方程生成,初值估计,残差雅可比计算的默认实现,主要利用多态方式调用派生类的实现。基础类提供的接口功能,如图5所示。
136.鉴于图3所示的单元模型,借助于客户端的展示界面可以很容易组合出一个简单的闪蒸罐模型。闪蒸罐模型主要包含入口(可变个数,至少一个),气相出口,液相出口,则可以定3个变量生成规则来根据当前流股类的配置信息生成eo变量组,可以将闪蒸罐从基础类派生出来并将3个规则传给基础类,接下来只需要实现eo变量/方程生成,初值估计,残差/雅可比接口就可以,使用上述基础类提供的方法可以很容易实现各个方法。这样构建出来的闪蒸罐eo变量和方程上不但满足计算相关的约束,可以直接由引擎控制操作,而派生类中只有变量生成和方程计算相关的实现,对应的构建关系如图4所示。
137.应当注意的是,在权利要求中,不应将位于括号之间的任何附图标记理解成对权利要求的限制。词语“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的词语“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的权利要求中,这些装置中的若干个可以是通过同一个硬件来具体体现。词语第一、第二、第三等的使用,仅是为了表述方便,而不表示任何顺序。可将这些词语理解为部件名称的一部分。
138.此外,需要说明的是,在本说明书的描述中,术语“一个实施例”、“一些实施例”、“实施例”、“示例”、“具体示例”或“一些示例”等的描述,是指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实
施例或示例的特征进行结合和组合。
139.尽管已描述了本发明的优选实施例,但本领域的技术人员在得知了基本创造性概念后,则可对这些实施例作出另外的变更和修改。所以,权利要求应该解释为包括优选实施例以及落入本发明范围的所有变更和修改。
140.显然,本领域的技术人员可以对本发明进行各种修改和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也应该包含这些修改和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1