控制系统模拟系统和方法

文档序号:6307693阅读:212来源:国知局
控制系统模拟系统和方法
【专利摘要】本发明题为控制系统模拟系统和方法。非暂时有形计算机可读介质可包括由模拟系统中的处理器可执行以进行模拟的指令。指令可包括等待多个虚拟控制器完成前一模拟步骤,把来自多个虚拟控制器的每个的前一步骤的结果写到共享存储器,从存储器将输入读取到多个虚拟控制器的每个,在多个虚拟控制器的每个上发起模拟步骤,以及在多个虚拟控制器的每个中的模拟步骤的发起时指示模拟的完成,其中多个虚拟控制器包括具有多个模拟步骤的控制器模型,并且指令配置成由处理器并行地执行。
【专利说明】控制系统模拟系统和方法

【技术领域】
[0001]一般来说,本文所公开的主题涉及模拟系统,以及更具体来说,涉及用来模拟控制设施、设备和过程中有用的控制系统的操作的模拟系统。

【背景技术】
[0002]用于过程、设施和设备的控制系统可包括配置控制系统如何监测和控制过程、设施和设备的大量逻辑。例如,控制系统可包括控制器,其设计成监测和控制过程、设施和/或设备。为了改进控制系统的操作,包括虚拟控制器、组件模型、过程模型或者它们的任何组合的模拟系统可用来模拟控制系统的操作。相应地,改进这种模拟系统的模拟逻辑是有益的。


【发明内容】

[0003]下面概述范围与最初要求保护的本发明相称的某些实施例。这些实施例不是意在限制要求保护的本发明的范围,这些实施例而是仅预计提供本发明的可能形式的概述。实际上,本发明可包含可与下面提出的实施例相似或不同的多种形式。
[0004]在第一实施例中,非暂时有形计算机可读介质可包括由模拟系统中的处理器可执行以进行模拟的指令。指令可包括等待多个虚拟控制器完成前一模拟步骤,把来自多个虚拟控制器的每个的前一步骤的结果写到共享存储器,从存储器将输入读取到多个虚拟控制器的每个,在多个虚拟控制器的每个上发起模拟步骤,以及在多个虚拟控制器的每个中的模拟步骤的发起时指示模拟的完成,其中多个虚拟控制器包括具有多个模拟步骤的控制器模型,并且指令配置成由处理器并行地执行。
[0005]在第二实施例中,一种操作模拟系统中的通信包(communicat1n package)的方法包括从模拟执行器(simulat1n executive)来接收在多个虚拟控制器上执行模拟步骤的指令,其中多个虚拟控制器的每个包括包含多个模拟步骤的控制器模型。该方法还包括等待多个虚拟控制器的每个完成前一模拟步骤,指示多个虚拟控制器的每个将前一模拟步骤的结果写到共享存储器,指示多个虚拟控制器的每个从共享存储器读取输入,指示多个虚拟控制器的每个开始模拟步骤的执行、以使虚拟控制器的每个能够并行地执行模拟步骤,将完成状态传送给模拟执行器而无需等待多个虚拟控制器完成模拟步骤。
[0006]在第三实施例中,模拟控制系统的操作的模拟系统包括处理器,其可执行模拟执行器以协调模拟系统和多个虚拟控制器的操作,其中多个虚拟控制器的每个包括包含多个模拟步骤的控制器模型,以模拟物理控制器的操作,以及多个虚拟控制器的每个与多个虚拟控制器的另一虚拟控制器并行地执行模拟步骤。处理器也可执行通信接口,其在通信上耦合到模拟执行器和多个虚拟控制器,其中通信接口从模拟执行器接收执行模拟步骤的指令,指示多个虚拟控制器的每个开始模拟步骤的并行执行,以及在多个虚拟控制器的每个中开始模拟步骤的执行时将完成状态传送给模拟执行器。
[0007]按照本公开的第一方面,提供一种存储模拟系统中的处理器可执行以进行模拟的指令的非暂时有形计算机可读介质,所述指令配置成:
等待多个虚拟控制器完成前一模拟步骤;
把来自所述多个虚拟控制器的每个的所述前一模拟步骤的结果写到共享存储器;
从所述存储器将输入读取到所述多个虚拟控制器的每个;
在所述多个虚拟控制器的每个上发起模拟步骤;以及
在所述多个虚拟控制器的每个中发起所述模拟步骤时,指示所述模拟的完成,其中所述多个虚拟控制器包括具有多个模拟步骤的控制器模型,并且所述指令配置成由所述处理器并行地执行。
[0008]按照第一方面的计算机可读介质,其中,配置成在所述多个虚拟控制器的每个上发起所述模拟步骤的所述指令包括配置成在独立计算线程中发起各模拟步骤的指令。
[0009]按照第一方面的计算机可读介质,其中,配置成在所述多个虚拟控制器的每个上发起所述模拟步骤的所述指令包括配置成在独立处理核心中发起各模拟步骤的指令。
[0010]按照第一方面的计算机可读介质,其中,配置成在所述多个虚拟控制器的每个上发起所述模拟步骤的所述指令包括配置成在所述多个虚拟控制器的每个上依次发起所述模拟步骤的指令。
[0011]按照第一方面的计算机可读介质,其中,配置成在所述多个虚拟控制器的每个上发起所述模拟步骤的所述指令包括配置成在所述多个虚拟控制器的每个上基本上同时发起所述模拟步骤的指令。
[0012]按照第一方面的计算机可读介质,其中,配置成等待所述多个虚拟控制器完成前一模拟步骤的所述指令包括配置成检查所述多个虚拟控制器的每个的状态的指令,其中所述多个虚拟控制器的所述状态作为阵列来存储。
[0013]按照第一方面的计算机可读介质,其中,配置成等待所述多个虚拟控制器完成前一模拟步骤的所述指令包括配置成在所述多个虚拟控制器之一在所指定时间期间之内没有完成所述前一模拟步骤时超时的指令。
[0014]按照本公开的第二方面,提供一种操作模拟系统中的通信包的方法,包括:
从模拟执行器接收在多个虚拟控制器上执行模拟步骤的指令,其中所述多个虚拟控制器的每个包括包含多个模拟步骤的控制器模型;
等待所述多个虚拟控制器的每个完成前一模拟步骤;
指示所述多个虚拟控制器的每个将所述前一模拟步骤的结果写到共享存储器;
指示所述多个虚拟控制器的每个从所述共享存储器读取输入;
指示所述多个虚拟控制器的每个开始所述模拟步骤的执行,以使所述虚拟控制器的每个能够并行地执行所述模拟步骤;以及
向所述模拟执行器传送完成状态,而无需等待所述多个虚拟控制器完成所述模拟步骤。
[0015]按照第二方面的方法,其中,指示所述多个虚拟控制器的每个开始所述模拟步骤的执行包括指示所述多个虚拟控制器的每个在独立计算线程上开始所述模拟步骤的执行。
[0016]按照第二方面的方法,其中,指示所述多个虚拟控制器的每个开始所述模拟步骤的执行包括指示所述多个虚拟控制器的每个在独立处理核心上开始所述模拟步骤的执行。
[0017]按照第二方面的方法,其中,指示所述多个虚拟控制器的每个将所述前一模拟步骤的结果写到共享存储器包括依次指示所述多个控制器的每个,并且在指示后一虚拟控制器之前等待所述多个虚拟控制器的每个完成写入。
[0018]按照第二方面的方法,其中,指示所述多个虚拟控制器的每个从所述共享存储器读取输入包括依次指示所述多个控制器的每个,并且在指示后一虚拟控制器之前等待所述多个虚拟控制器的每个完成读取。
[0019]按照第二方面的方法,包括存储所述多个虚拟控制器的每个的执行状态,其中等待所述多个虚拟控制器完成前一模拟步骤包括检查所述多个虚拟控制器的所述状态。
[0020]按照本公开的第三方面,提供一种配置成模拟控制系统的操作的模拟系统,包括:
处理器,配置成执行:
模拟执行器,配置成协调所述模拟系统的操作;
多个虚拟控制器,其中所述多个虚拟控制器的每个包括包含多个模拟步骤的控制器模型,以模拟物理控制器的操作,并且所述多个虚拟控制器的每个配置成与所述多个虚拟控制器的其它虚拟控制器并行地执行模拟步骤;以及
通信接口,在通信上耦合到所述模拟执行器和所述多个虚拟控制器,其中所述通信接口配置成:
从所述模拟执行器接收执行模拟步骤的指令;
指示所述多个虚拟控制器的每个开始所述模拟步骤的并行执行;以及在所述多个虚拟控制器的每个中开始所述模拟步骤的执行时向所述模拟执行器传送完成状态。
[0021]按照第三方面的模拟系统,其中,所述处理器配置成执行:
包括多个模块步骤的多个组件模型,其中所述多个组件模型的每个配置成模拟所述控制系统中的组件的操作;以及
包括多个模拟步骤的多个过程模型,其中所述多个过程模型的每个配置成模拟所述控制系统中的过程,其中所述通信接口配置成指示所述多个虚拟控制器、所述组件模型、所述过程模型或者它们的任何组合的每个开始所述模拟步骤的并行执行。
[0022]按照第三方面的模拟系统,其中,所述处理器包括多线程处理器,其中所述多个虚拟控制器的每个配置成在所述多线程处理器的独立计算线程上执行所述模拟步骤。
[0023]按照第三方面的模拟系统,其中,所述处理器包括多核处理器,其中所述多个虚拟控制器的每个配置成在所述多线程处理器的独立处理核心上执行所述模拟步骤。
[0024]按照第三方面的模拟系统,包括在通信上耦合到所述处理器的共享存储器,其中所述多个虚拟控制器配置成在各模拟步骤之后将所述控制器模型的结果存储在所述共享存储器中,并且在各模拟步骤之前从所述共享存储器来检索所述控制器模型的输入。
[0025]按照第三方面的模拟系统,其中,所述多个虚拟控制器配置成至少部分基于从所述物理控制器所接收的数据来执行所述模拟步骤。
[0026]按照第三方面的模拟系统,其中,所述模拟系统配置成模拟燃气涡轮机系统、气化系统、蒸汽涡轮机系统、风力涡轮机系统、水力涡轮机系统、发电系统、整体气化联合循环系统或者它们的任何组合的操作。

【专利附图】

【附图说明】
[0027]通过参照附图阅读以下详细描述,将会更好地了解本发明的这些及其它特征、方面和优点,附图中,相似标号在附图中通篇表示相似部件,附图包括:
图1是按照一实施例、包括控制系统的工业设施的框图;
图2是按照一实施例、适合于模拟图1的控制系统的模拟系统的框图;
图3是按照一实施例、图2所示模拟系统的信息流程图;
图4是按照一实施例、从物理控制器接收所捕获状态的虚拟控制器的框图;
图5是按照一实施例、图2所示模拟系统的信息流程图;
图6是按照一实施例、图2所示模拟系统的设定显示;
图7是示出按照一实施例、在选择依次模式时的图2所示模拟系统的操作的显示;以及图8是示出按照一实施例、在选择并行模式时的图2所示模拟系统的操作的显示。

【具体实施方式】
[0028]下面将描述本发明的一个或多个具体实施例。在提供这些实施例的简要描述的过程中,本说明书中可能没有描述实际实现的所有特征。应当理解,在任何这种实际实现的开发中,如同任何工程或设计项目中那样,必须进行许多实现特定的判定以便实现开发人员的特定目标,例如符合系统相关和业务相关限制,这些限制可对每个实现而改变。此外,应当理解,这种开发工作可能是复杂且费时的,但仍然是获益于本公开的技术人员进行的设计、制作和制造的日常事务。
[0029]在介绍本发明的各个实施例的元件时,限定词“一”、“一个”、“该”和“所述”预计表示存在元件的一个或多个。术语“包含”、“包括”和“具有”预计包括在内,并且表示可存在除了列示元件之外的附加元件。
[0030]一般来说,控制系统包括适合于监测和/或控制过程(例如工业过程)、设施和/或设备的各种控制器(例如工业控制器)。例如,控制器可监测和控制诸如燃气涡轮机系统、气化系统、蒸汽涡轮机系统、风力涡轮机系统、水力涡轮机系统、发电系统、整体气化联合循环系统或者它们的任何组合之类的工业系统中的其它组件(例如机械)和过程的操作。
[0031]控制系统、过程、设施和/或设备的操作可由运行于工作站或其它计算装置的系统来模拟。在一些实施例中,可进行(例如执行总共离散数量的预期步骤)模拟,以逐步地实现过程、设施或设备的部分的分析。例如,由物理控制器所进行的控制动作或者动作序列可首先在虚拟控制器中模拟。相应地,模拟系统可包括各种模型,其各包括多个模拟步骤,适合于模拟物理控制器、组件和过程的操作。在一些实施例中,模拟系统可依次执行模拟步骤。例如,模拟系统可执行第一模拟步骤,等待第一模拟步骤完成,执行第二模拟步骤,等待第二模拟完成,依此类推。但是,通过更有效地利用处理架构、例如多线程和多核处理器的进步来改进模拟系统的模拟效率会是有益的。
[0032]相应地,本公开在一个实施例中包括非暂时有形计算机可读介质,其中包括由模拟系统中的处理器可执行以进行模拟的指令。指令可包括等待多个虚拟控制器完成前一模拟步骤,把来自多个虚拟控制器的每个的前一步骤的结果写到共享存储器,从存储器将输入读取到多个虚拟控制器的每个,在多个虚拟控制器的每个上发起模拟步骤,以及在多个虚拟控制器的每个中的模拟步骤的发起时指示模拟的完成,其中多个虚拟控制器包括具有多个模拟步骤的控制器模型,并且指令配置成由处理器并行地执行。换言之,不是依次执行模拟步骤,模拟步骤而是并行地执行,以改进模拟系统的模拟效率。在一些实施例中,这可使模拟系统能够比实时操作基本上更迅速地模拟操作。下面描述若干新技术,其在模拟例如与物理控制器相关的并行分支时可改进模拟时间和/或存储器/处理限制。如能够理解,这也可改进测试效率、组件的验证等。
[0033]作为介绍,图1示出耦合到工业控制系统12的工业系统10 (例如发电站)的一个实施例。虽然描述工业系统10,但是本文所述的技术可适合其它过程、设施或设备。如所示,工业系统10包括过程14、涡轮机16和发电组件18。工业系统10的其它实施例可包括其它过程和组件,例如气化器、气体处理系统(例如酸性气体去除)、空气分离单元、压缩机、风扇、鼓风机、搅拌机、混合机、离心机、打浆机、球磨机、破碎机/粉碎机、挤出机、造粒机、冷却塔/热交换器风扇等。
[0034]另外,在所示实施例中,过程14、涡轮机16和发电组件18可包括任何数量的传感器20和致动器/电动机22。更具体来说,传感器20可提供与过程条件有关的信息。例如,传感器可监测温度、压力、速度、流体流率、振动、噪声、废气排放、功率输出、净空或者任何其它适当参数。致动器22可响应输入信号而进行机械动作。例如,致动器22可控制燃料注入速率、稀释剂或水注入速率、冷却剂速率、功率输出等级、速度、流率、净空等。如所示,传感器20和致动器22经由输入/输出24与控制系统12进行通信。更具体来说,传感器20和致动器22可与控制器26 (例如可编程逻辑控制器)进行通信,以促进工业系统10的监测和控制。如本文所使用的控制器26可称作“物理控制器”。在一些实施例中,控制器26可以是 General Electric Company (Schenectady, New York)所提供的 Mark Vie? 控件或Mark VIeS?控件。在一些实施例中,仅使用一个控制器26。在另一个实施例中,三个控制器(例如R、S、T核心控制器)用来提供具有增强冗余度和故障转移能力的三模冗余(TMR)控制系统12。TMR控制系统12例如可采用通过三个核心R、S和T的表决所确定的输出来进行任务。在其它实施例中,可使用四个或更多核心。
[0035]另外,控制系统12可耦合到一个或多个工作站28并且与其通信,一个或多个工作站28可包括台式计算机、膝上型计算机或者其它适当计算装置。工作站28可使操作人员能够进行各种功能,例如监测控制系统12的组件(例如控制器26和输入/输出24),以及模拟控制系统12和工业系统10的操作。更具体来说,为了促进模拟,一个或多个工作站或其它计算装置28可包含在模拟系统中。也就是说,模拟可包括多个计算装置28,以提供附加计算能力。模拟系统30的一个实施例的框图在图2中示出。如所示,模拟系统30包括多个计算装置28 (例如计算装置1、计算装置2、计算装置N)。此外,各计算装置28包括处理器32和存储器34。在一些实施例中,处理器32可以是多线程处理器、多核处理器、多个分立处理器或者它们的任何组合。相应地,计算装置28的每个、更具体来说是处理器32和存储器34可使操作人员能够进行功能,例如监测控制系统12的组件(例如控制器26和输入/输出24),以及模拟控制系统12和工业系统10的操作。另外,计算装置28的每个可经由网络35、例如以太网等在通信上与计算装置28耦合。如能够理解,通过利用本文所述的技术,模拟系统30的其它实施例利用更少的计算装置28,以及在一些实施例中可以仅包括一个计算装置28。
[0036]为了模拟控制系统12和工业系统10的操作,模拟系统30可利用虚拟控制器和各种模型。更具体来说,模拟系统30可通过执行一个或多个虚拟控制器来模拟控制系统12的操作,以及通过执行一个或多个组件模型和过程模型来模拟工业系统10的操作。模拟系统30中的信息流程的一个实施例在图3中示出。如所示,模拟系统30包括模拟执行器38、监测器40、虚拟控制器42、组件模型44、过程模型46和共享存储器50。在一些实施例中,模拟执行器38、监测器40、虚拟控制器42、组件模型44和过程模型46可由处理器32来执行,并且由模拟系统30中的各种计算装置30的存储器34来存储。例如,模拟执行器38可在第一计算装置上存储和执行,而监测器40和虚拟控制器42的每个可在第二计算装置上存储和执行。另外,共享存储器50可利用各种计算装置30的物理存储器34。模拟系统30的预期配置可基于各种因素来调整,例如各计算装置28的计算和存储能力以及虚拟控制器42和模型(例如组件模型44和过程模型36)的计算和存储要求。相应地,下面作为整体来描述模拟系统30,而没有区分各种物理计算装置28。
[0037]如所示,模拟执行器38在通信上耦合到监测器40,以便使模拟执行器38和监测器40能够进行通信。例如,模拟执行器38可将指令传递给监测器40,以及更一般来说提供模拟管理和控制。另外,监测器40在通信上耦合到虚拟控制器42、组件模型44和过程模型46,以便使监测器40能够控制虚拟控制器42、组件模型44和过程模型46的操作。此外,虚拟控制器42、组件模型44和过程模型46可耦合到共享存储器50,以便使虚拟控制器42、组件模型44和过程模型46能够对共享存储器50进行写入并且从共享存储器50进行读取。
[0038]更具体来说,模拟执行器38可负责协调模拟的执行。换言之,模拟执行器38可保持模拟步骤的执行之间的时间相干性,因为模拟步骤各可具有不同的执行期间。例如,组件模型44可具有10 ms的执行步骤或期间,而虚拟控制器可具有40、80、120或160 ms的执行步骤或期间。相应地,模拟执行器38可指示特定虚拟控制器42和模型(例如组件模型44和过程模型46)进行特定动作。模拟执行器38可传送识别虚拟控制器42和控制动作、例如执行控制过程步骤的指令。为了促进模拟执行器38与虚拟控制器42或各种模型之间的指令的传递,监测器40可用作中介。换言之,监测器40可以是通信接口或系统。更具体来说,监测器40可从模拟执行器38接收识别哪些虚拟控制器42或模型要进行特定控制动作的指令。基于这个指令,监测器40可指示所识别虚拟控制器42来进行所指定控制动作。相应地,在一些实施例中,监测器400可包含在与装置28执行或指示的虚拟控制器40相同的计算装置28上。另外,可利用多个监测器40。例如,在一些实施例中,一个监测器40可包含在执行虚拟控制器42或模型44、46的各计算装置28上。另外,模拟执行器38可提供其它动作,例如对共享存储器50进行写入以及从共享存储器50进行读取。在一些实施例中,模拟执行器 38 可以是 General Electric Company (Schenectady, New York)所提供的加速实时引擎模型交互模拟(ARTEMIS)。
[0039]如上所述,模拟系统30可包括虚拟控制器42、组件模型44、过程模型46或者它们的任何组合,以实现控制系统12或者控制系统12的组件的模拟。更具体来说,虚拟控制器42可模拟物理控制器26的操作。相应地,各虚拟控制器42可包括控制器模型,其由多个模拟步骤或计算机可执行指令所组成。在一些实施例中,虚拟控制器42可以以充分保真度来模拟Mark Vie "*控制器和/或Mark VIeS "*控制器。
[0040]在一些实施例中,在虚拟控制器42中进行的模拟可至少部分基于物理控制器26的一个或多个的所捕获状态,其可包括过程变量、状态变量、诊断信息、告警信息、事件信息、控制命令等。从物理控制器26接收所捕获状态的虚拟控制器42的一个实施例在图4中示出。如所示,物理控制器26的所捕获状态52存储在物理控制器26的存储器54中。所捕获状态52然后可传递给虚拟控制器46。例如,所捕获状态52可在控制器26的一个或多个执行步骤之后、在预期时间期间(例如1、10、100、1000秒或以上)、通过使用调试设置点或者其组合来捕获。在接收所捕获状态52之后,所捕获状态可在虚拟控制器46中恢复。例如,虚拟控制器46可选择匹配所捕获状态52的对应模型状态。虚拟控制器46然后可至少部分基于对应模型状态来执行模拟步骤。
[0041 ] 类似地,各组件模型44可对组件(例如涡轮机16或发电18)的操作进行建模,以及各过程模型46可对工业系统10中的过程14的操作进行建模,其中各模型由多个模拟步骤或者可执行指令来组成。这些模型可基于第一原理,例如基于物理学的技术(例如低循环疲劳(LCF)使用寿命预测模型、计算流体动力学(CFD)模型、有限元分析(FEA)模型、固态模型(例如参数和非参数建模)和/或3维-2维FEA映射模型)。相应地,在一些实施例中,组件模型 44 可以是 MSC Software Corporat1n (Santa Ana, California)所提供的Easy5模型。另外,在一些实施例中,过程模型46可以是Invensys PLC (London, UnitedKingdom)所提供的DynSim模型。
[0042]此外,共享存储器50可用来促进虚拟控制器42和/或模型的每个之间的数据的传递。更具体来说,各模拟步骤的输入可从共享存储器50来读取,以及各模拟步骤的输出(例如结果)可存储在共享存储器50中。换言之,共享存储器50存储控制系统12和/或工业系统10的模拟状态(例如操作参数),在各模拟迭代的执行之后更新状态,并且可以是模拟系统30的组件的任一个可访问的(例如读取/写入)。例如,可进行模拟的一次迭代,来自那次迭代的结果可存储在共享存储器50中以更新状态,并且后续迭代可采用已更新状态来进行。如本文所使用的“模拟的一次迭代”预计描述基于控制系统12和/或工业系统10的相同状态来执行的模拟步骤的集合。在一些实施例中,共享存储器50可以是 General Electric Company (Schenectady, New York)所提供的反射存储器系统(Reflective Memory system)。
[0043]如上所述,t旲拟系统30实现控制系统12和/或工业系统10的I旲拟。I旲拟系统30的操作的一个实施例在图5中示出。为了简化论述,将相对控制系统10的模拟来描述模拟系统30。但是,能够理解,以下所述的技术可适用于工业系统10的模拟或者利用由多个模拟步骤所组成的模拟模型的任何过程、设备或设施的模拟。
[0044]图5是示出模拟系统30的模拟执行器38、监测器40和虚拟控制器42之间的信息流程的一实施例的信息流程图。如所示,模拟迭代的执行在监测器40接收来自模拟执行器38的写输出指令(过程箭头56)时开始。监测器40则可等待虚拟控制器42的每个完成前一模拟步骤的执行(过程箭头58)。一旦虚拟控制器42已经完成执行,监测器40指示虚拟控制器42的每个将前一模块步骤的结果(例如输出)写入共享存储器50 (过程箭头60)。在存储结果之后,监测器40向模拟执行器38返回已完成写输出状态(过程箭头62)。监测器40然后从模拟执行器38接收读输入指令(过程箭头64),并且指示虚拟控制器42的每个从共享存储器50读取后一模拟步骤的输入(过程箭头66)。在读取输入之后,监测器40向模拟执行器38返回已完成读输入状态(过程箭头68)。监测器40然后从模拟执行器38接收进行步骤指令(过程箭头70),并且指示虚拟控制器42的每个开始模拟步骤的并行执行(过程箭头72)。一旦在虚拟控制器42中已经发起模拟步骤,监测器40向模拟执行器38返回已完成起始步骤或者完成状态(过程箭头74)。
[0045]更具体来说,监测器40可通过检查虚拟控制器42的执行状态,来等待虚拟控制器42的每个完成前一模拟步骤的执行(过程箭头58)。如本文所使用的“虚拟控制器42的执行状态”预计指示虚拟控制器42是否已经完成模拟步骤。另外,执行状态可指示已完成百分比。在一些实施例中,虚拟控制器42的每个的执行状态可作为EventHandle (其作为阵列的一部分来存储)来保持。一旦虚拟控制器42完成模拟步骤的执行,调回例程将EventHandle设置成指示虚拟控制器42已经完成模拟步骤(过程箭头73和75)。在一些实施例中,并非全部虚拟控制器42都在各迭代期间执行模拟步骤。相应地,监测器40可等待虚拟控制器42,其将在模拟的下一迭代中执行模拟步骤。另外,在监测器40指示虚拟控制器42执行模拟步骤之前,可清除EventHandle,以指示虚拟控制器42尚未完成后一模拟步骤。
[0046]此外,监测器40可等待所指定时间期间以使虚拟控制器42的每个完成。如果一个或多个虚拟控制器42在所指定时间期间之内尚未完成,则监测器40可超时并且停止模拟的操作。控制器40可超时,因为如果虚拟控制器42的一个或多个尚未完成模拟步骤,则后续模拟步骤可基于控制系统12的未完成状态来执行。如上所述,一些虚拟控制器42可具有变化执行2期间。相应地,在一些实施例中,所指定时间期间可等于虚拟控制器42的最长执行期间。
[0047]监测器40可通过指示虚拟控制器42的每个在并行线程、处理核心、处理器或者其组合中执行模拟步骤,来指示虚拟控制器42的每个开始(例如发起)模拟步骤的并行执行(过程箭头72)。例如,监测器40可利用.NET委托,由此在来自.NET线程池的线程上执行各模拟步骤。在一些实施例中,各模拟步骤的执行在独立处理线程或核心上进行。作为补充或替代,可在几个线程或核心之间分配各模拟步骤的执行。换言之,可向各线程或核心分配一个以上模拟步骤的执行。向线性和/或核心准确指配模拟步骤可基于处理器32的处理能力和模拟步骤的处理要求来定制。
[0048]另外,在所示实施例中,监测器40依次指示虚拟控制器42开始操作(过程箭头76)。例如,监测器40可指示第一虚拟控制器开始执行,随后指示第二虚拟控制器开始执行,依此类推。作为补充或替代,监测器40可指示虚拟控制器42基本上同时开始执行。例如,监测器40可向虚拟控制器42广播指令以开始执行。在任一个实施例中,虚拟控制器42的每个可并行地执行模拟步骤,因为如上所述,在多个并行线程、核心、处理器或者它们的任何组合上进行该执行。
[0049]此外,在所示实施例中,监测器40指示虚拟控制器42依次对共享存储器50进入写入(过程箭头78)。例如,监测器40指示第一虚拟控制器对共享存储器50进行写入,从第一虚拟控制器接收写完成状态(过程箭头80),随后指示第二虚拟控制器对共享存储器50进行写入,依此类推。类似地,监测器40指示虚拟控制器依次从共享存储器50进行读取(过程箭头82)。例如,监测器40指示第一虚拟控制器从共享存储器50进行读取,从第一虚拟控制器接收读完成状态(过程箭头84),随后指示第二虚拟控制器从共享存储器50进行读取,依此类推。作为补充或替代,监测器40可例如通过广播指令,基本上同时指示虚拟控制器42对共享存储器50进行读取或写入。
[0050]最后,一旦在虚拟控制器42中已经发起模拟步骤,监测器40向模拟执行返回完成状态(过程箭头74)。换言之,监测器40返回完成状态,而无需等待虚拟控制器42完成模拟步骤的执行。如上所述,当模拟执行器38经由监测器40指示虚拟控制器42进行后一控制动作、例如写输出时,完成被检查。
[0051]在其它实施例中,模拟系统30的操作可调整成进一步改进模拟系统30的效率。例如,模拟执行器38与监测器40之间的通信可通过利用具有增加处理能力的监测器40来减少。更具体来说,模拟执行器38与监测器40之间的通信可减少到监测器40在虚拟控制器42中发起模拟步骤时则接收进行指令(过程箭头70)并且返回完成状态(过程箭头72)。监测器40然后可响应接收到进行步骤指令而指示虚拟控制器42(例如写入输出60、读输入66和执行模拟步骤72)。
[0052]在评估上述技术中,在位于Knox County (Indiana)的Duke-Edwards整体气化联合循环(IGCC)工厂的模拟中实现这些技术。模拟系统30包括从Dell Inc.(Roud Rock,Texas)所提供的三个Dell T5500双四核计算机(例如三个计算装置28)。如上所述,虚拟控制器42可依次或并行地执行。相应地,模拟系统30上的图形界面、例如图6所示的界面可使操作人员能够在适合于进行循环经过模拟(例如运行时钟周期)的依次或并行操作之间进行选择。更具体来说,图6示出显示(例如设定窗口 86)的一实施例,其使操作人员能够选择定时器模式88、模拟速度90和虚拟控制器运行模式92。如所示,虚拟控制器运行模式92包括下拉菜单,其使操作人员能够在并行模式94、异步模式96和串行(即,依次)模式98之间进行选择。因此,操作人员可易于通过在虚拟控制器运行模式菜单92中选择不同模拟模式,在三种模拟模式的每个之间进行切换。
[0053]在图7所示模拟执行器38的屏幕捕获中示出当选择依次模式98用于虚拟控制器42的执行时来自评估Duke-Edwards IGCC工厂的结果100。如所示,模拟结果100包括:模拟系统的图形表示102 ;模拟执行列表104,其描述已经执行的模拟步骤;以及设定窗口106,其描述模拟系统30的设定。在操作中,模拟系统30模拟设施的实时操作的总共75.12%的设施的操作(箭头102)。另外,将模拟系统30中的处理器32加载到总处理能力的大约20%。
[0054]在图8所示模拟执行器的屏幕捕获中示出当选择并行模式92用于虚拟控制器42的执行时来自评估Duke-Edwards IGCC工厂的结果110。在操作中,模拟系统30模拟设施的实时操作的总共317.56%的设施的操作(箭头112)。另外,将模拟系统30中的处理器32加载到总处理能力的大约80%。相应地,可通过更好地利用处理器32的处理架构,极大地改进模拟效率。
[0055]本公开的技术效果包括改进模拟系统30的模拟效率。更具体来说,可通过更好地利用模拟系统的处理能力来并行地执行模拟步骤,来改进模拟效率。在一些实施例中,这可包括在多个线程、处理核心或处理器上并行地执行模拟步骤。相应地,模拟系统30的模拟速度也可得到改进,这使诸如测试或验证之类的操作也能够更有效地完成。
[0056]本书面描述使用示例来公开本发明,其中包括最佳模式,以及还使本领域的技术人员能够实施本发明,包括制作和使用任何装置或系统并且进行任何结合的方法。本发明的专利范围由权利要求书来定义,并且可包括本领域的技术人员想到的其它示例。如果这类其它示例具有与权利要求的文字语言完全相同的结构单元,或者如果它们包括具有与权利要求的文字语言的非实质差异的等效结构单元,则预计它们落入权利要求的范围之内。
【权利要求】
1.一种存储模拟系统中的处理器可执行以进行模拟的指令的非暂时有形计算机可读介质,所述指令配置成: 等待多个虚拟控制器完成前一模拟步骤; 把来自所述多个虚拟控制器的每个的所述前一模拟步骤的结果写到共享存储器; 从所述存储器将输入读取到所述多个虚拟控制器的每个; 在所述多个虚拟控制器的每个上发起模拟步骤;以及 在所述多个虚拟控制器的每个中发起所述模拟步骤时,指示所述模拟的完成,其中所述多个虚拟控制器包括具有多个模拟步骤的控制器模型,并且所述指令配置成由所述处理器并行地执行。
2.如权利要求1所述的计算机可读介质,其中,配置成在所述多个虚拟控制器的每个上发起所述模拟步骤的所述指令包括配置成在独立计算线程中发起各模拟步骤的指令。
3.如权利要求1所述的计算机可读介质,其中,配置成在所述多个虚拟控制器的每个上发起所述模拟步骤的所述指令包括配置成在独立处理核心中发起各模拟步骤的指令。
4.如权利要求1所述的计算机可读介质,其中,配置成在所述多个虚拟控制器的每个上发起所述模拟步骤的所述指令包括配置成在所述多个虚拟控制器的每个上依次发起所述模拟步骤的指令。
5.如权利要求1所述的计算机可读介质,其中,配置成在所述多个虚拟控制器的每个上发起所述模拟步骤的所述指令包括配置成在所述多个虚拟控制器的每个上基本上同时发起所述模拟步骤的指令。
6.如权利要求1所述的计算机可读介质,其中,配置成等待所述多个虚拟控制器完成前一模拟步骤的所述指令包括配置成检查所述多个虚拟控制器的每个的状态的指令,其中所述多个虚拟控制器的所述状态作为阵列来存储。
7.如权利要求1所述的计算机可读介质,其中,配置成等待所述多个虚拟控制器完成前一模拟步骤的所述指令包括配置成在所述多个虚拟控制器之一在所指定时间期间之内没有完成所述前一模拟步骤时超时的指令。
8.一种操作模拟系统中的通信包的方法,包括: 从模拟执行器接收在多个虚拟控制器上执行模拟步骤的指令,其中所述多个虚拟控制器的每个包括包含多个模拟步骤的控制器模型; 等待所述多个虚拟控制器的每个完成前一模拟步骤; 指示所述多个虚拟控制器的每个将所述前一模拟步骤的结果写到共享存储器; 指示所述多个虚拟控制器的每个从所述共享存储器读取输入; 指示所述多个虚拟控制器的每个开始所述模拟步骤的执行,以使所述虚拟控制器的每个能够并行地执行所述模拟步骤;以及 向所述模拟执行器传送完成状态,而无需等待所述多个虚拟控制器完成所述模拟步骤。
9.如权利要求8所述的方法,其中,指示所述多个虚拟控制器的每个开始所述模拟步骤的执行包括指示所述多个虚拟控制器的每个在独立计算线程上开始所述模拟步骤的执行。
10.如权利要求8所述的方法,其中,指示所述多个虚拟控制器的每个开始所述模拟步骤的执行包括指示所述多个虚拟控制器的每个在独立处理核心上开始所述模拟步骤的执行。
【文档编号】G05B19/04GK104460360SQ201410471092
【公开日】2015年3月25日 申请日期:2014年9月16日 优先权日:2013年9月16日
【发明者】P.J.康罗伊, T.D.克劳利 申请人:通用电气公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1