法律状态公告日
法律状态信息
法律状态
2013-03-27
授权
授权
2010-03-03
实质审查的生效
实质审查的生效
2010-01-06
公开
公开
技术领域
本发明涉及一种用于对设备或机器、尤其是风力发电设备(WKA)进行计算机模拟的方法和计算机系统。
背景技术
随着现代化设备和机器复杂程度的增加,为了测试和分析的目的对这种系统进行模拟的可能性方面的要求也在增加。与此相关地,特别是广泛计算机模拟的可能性的要求变得越来越迫切,即使在无设备或机器实际结构的情况下也能进行广泛的研究。
例如,风力发电设备的制造商或者多个风力发电设备在一个总系统中工作的所谓风力发电厂的运营商需要能够对其设备在各种干扰情景下或者在各种风力条件下、也包括实际上可能不会出现的极端条件下进行研究。
同时,已经有不同的提供者提供模拟输入/输出系统(E/A系统)(英文:(Input/Output-System,IO-System)的解决方案(例如Mewes和INTEBUS、PROFINET等的合作者)并从而寻求不同的解决途径。
所提供的一种解决途径是利用PC系统模拟设备或机器本身的过程,然后这些设备或机器的真正SPS(存储器可编程控制器,英文:programmable logiccontroller,PLC)利用其应用程序处理以这种方式产生的输入数据并产生相应的输出数据。
该方法的缺点主要在于计算机模拟的程度很低。
所提供的另一种解决途径是通过使为SPS提供的应用程序(英文:usercode,user program)在PC系统上作为非实时应用程序运行,利用PC系统来模拟设备或机器的SPS,其中设备或机器本身的过程不是在总体上被模拟,而是在这里事先手动设置输入数据。
这种模拟方式中存在的主要缺点是,通常不考虑SPS的特殊功能和实时能力或E/A系统。
发明内容
因此,本发明的目的是提供一种对设备或机器进行广泛计算机模拟的可能性。
本发明的另一个方面在于,在计算机模拟时能够考虑到实时条件和E/A系统的能力,从而更快地更新数据并相应地产生更多的数据。
另外,本发明的另一个方面在于,在计算机模拟时能够对包括更多设备或机器的总系统进行研究。
本发明一方面通过一种具有权利要求1所述方法步骤的方法来解决该目的。
据此,提出一种用于借助计算机、特别是个人计算机对设备或机器进行模拟的方法,该计算机具有至少两个处理器内核。在该方法中,用于对所要模拟的设备或机器的至少一个过程进行模拟的模拟程序在至少一个第一处理器内核上执行,用于对所要模拟的设备或机器的存储器可编程控制器进行模拟的存储器可编程控制器的应用程序在至少一个第二处理器内核上执行,并且输入和输出数据通过透明信道在所述模拟程序和应用程序之间传输。
该方法的同时考虑到此前所提到的其他方面的具有优点的和/或者优选的实施方式和改进是从属权利要求的主题。
在该方法中透明信道最好是一种借助所执行的驱动程序所提供的通信接口(英文:communication interface)。
按照符合目的的方式,在该方法中计算机的操作系统是一种实时操作系统(英文:real-time operating system,RTOS),或者是一种不具实时能力的操作系统(英文:non-time operating system,NRTOS)、特别是多任务操作系统(英文:multi-purpose operating system,OS),例如像Microsoft Windows,但其借助另外所执行的附加程序加以扩展从而具有实时能力,使得过程和/或存储器可编程控制器可以在考虑实时条件的情况下进行模拟。
在该方法中,最好是在每个另外的第二处理器内核上分别执行用于模拟另一个存储器可编程控制器并从此用于模拟包括更多设备或机器的总系统的应用程序。
按照符合目的的方式,在该方法中存储器可编程控制器的每个应用程序分别在运行时间环境的实例中执行。
在该方法中,处理器内核特别优选为至少一个多核处理器(英文:multi-coreprocessor)的组成部分。
此外,在该方法中特别优选为每个所模拟的存储器可编程控制器分配一个虚拟的网络接口(英文:virtual network interface controller NTC),这样所模拟的存储器可编程控制器之间可以传输特别是基于TCP/IP的数据。
本发明因此提供了一种方法,利用该方法可以按照简单方式仅在一台计算机上广泛模拟设备或机器。
另一方面,上述目的同样通过依据权利要求8所述的计算机系统得以实现。
据此,提出一种用于对设备或机器进行模拟的计算机系统,其包括具有至少两个处理器内核的至少一台计算机,其中第一处理器内核用于执行对所要模拟的设备或机器的至少一个过程进行模拟的模拟程序,第二处理器内核用于执行对所要模拟的设备或机器的存储器可编程控制器进行模拟的存储器可编程控制器的应用程序,还具有透明信道,通过所述透明信道能够在所述模拟程序和应用程序之间传输输入和输出数据。
依据一种具有优点的实施方式,该计算机系统包括具有至少一个处理器内核的至少一台另外的计算机,其中每台计算机分别具有用于通过网络连接交换数据的物理网络接口(英文:physical network interface controller,NIC)。
附图说明
本发明的这些和其他特征以及由此带来的优点由下面参照附图对优选实施例的详细说明得出。
如图所示:
图1示出在使用两个处理器内核PK1和PK2模拟风力发电设备的情况下实施该方法的示意图;
图2示出在使用四个处理器内核PK1、PK2、PK3和PK4模拟包括两个风力发电设备WA1和WA2以及一个风力发电厂控制装置WS的风力发电厂的情况下实施该方法的示意图。
具体实施方式
在图1所示的例子中,执行模拟单个风力发电设备的方法。在此使用总共具有两个处理器内核PK1和PK2的计算机C1,其中处理器内核PK1和PK2为一个双核处理器(英文:dual-core processor)的组成部分。但在计算机C1的主板上同样也可以安装两个单核处理器(英文:single-core processor)。计算机C1例如可以是个人计算机、膝上型计算机或笔记本电脑。
在处理器内核PK1上一方面执行计算机C1的运行程序BS1,另一方面处理器内核PK1被设置用于过程模拟PS1,也就是用于模拟风力发电设备的过程P1。为此,在处理器内核PK1上除了运行程序BS1外还执行模拟程序SI1,借助该模拟程序SPI来模拟过程P1。运行程序BS1例如可以是MicrosoftWindows,其中模拟程序SI1例如是The Mathworks的MATLAB-Simulink。
计算机C1的处理器内核PK2仅用于SPS模拟SS1,也就是用于模拟风力发电设备的SPS S1。为此,在处理器内核PK2上执行运行时间环境LU1的实例,其还可以执行风力发电设备SPS S1的应用程序。
此外,在图1所示的例子中,在处理器内核PK2上执行附加程序E2的实例,该附加程序对不具实时能力的操作系统加以扩展使其具有实时能力,使得至少SPS S1也可以在实时条件下进行模拟。此外,需要时也可以在处理器内核PK1上执行附加程序E1的实例,用于对操作系统BS1进行实时性扩展,从而也可以在实时条件下模拟风力发电设备的过程P1。
当使用实时操作系统、也就是本身已经具备实时能力的操作系统时,或者当在模拟时考虑实时条件并不重要的情况下,则不需要操作系统BS1的这种实时性扩展。
根据所要研究的情景,借助在处理器内核PK1上运行的过程模拟PS1,相应的输入数据ED1、例如由所要模拟的风力发电设备的风速传感器在特定的主要的风速下产生的那些数据,然后通过所谓的透明信道TK1、即借助驱动程序实现的通信接口,被传递到在处理器内核PK2上运行的SPS模拟SS1。
这些输入数据ED1然后由SPS模拟SS1特别是在考虑到应用程序内所保存的规则算法的情况下进行处理并产生相应的输出数据AD1,将其再通过透明信道TK1传递到过程模拟PS1。在那里,随后基于SPS模拟SS1的输出数据AD1,例如对风力发电设备的转子的制动或转子叶片的迎角改变进行模拟,并从中产生新的输入数据ED1。
换句话说,E/A数据ED1/AD1从模拟程序SI1向SPS S1的应用程序传递,并反方向传递。
过程模拟PS1与SPS模拟SS1之间的E/A数据ED1/AD1通过透明信道TK1的交换例如可以这样进行:使数据借助适当的驱动程序从过程模拟PS1的E/A图像复制到SPS模拟SS1的E/A图像,并反向进行,其中可以利用已知的机制如共享内存、队列和/或事件。
按照这种方式,可以研究不同风力和天气状况下的风力发电设备状态,而无需实际建造设备。
在图2所示的例子中,执行模拟风力发电厂的方法,该风力发电厂包括两个风力发电设备WA1和WA2以及一个中央风力发电厂控制装置WS。为此使用具有总共四个处理器内核的计算机C1。处理器内核PK1、PK2、PK3和PK4在这里为四核处理器(英文:quad-core processor)的组成部分,但它们也可以是安装在计算机C1的主板上的四个单核或者两个双核处理器。下面还要进一步介绍其他可能性。
在该例中,在处理器内核PK1上除了计算机C1的操作系统BS1外还执行模拟程序SI1,但现在借助该模拟程序模拟两个风力发电设备WA1、WA2和风力发电厂控制装置WS的过程P1、P2、P3。
该例所需的三个SPS S1、S2、S3在计算机C1的其余三个处理器内核PK2、PK3和PK4中的每一个上分别这样被模拟,使得在三个处理器内核中的每一个上执行针对SPS应用程序的运行时间环境LU1、LU2、LU3的一个实例,其中,具体来说是在处理器内核PK2上执行所要模拟的风力发电设备WA1的SPS S1的应用程序,在处理器内核PK3上执行所要模拟的风力发电设备WA2的SPSS2的应用程序,并在处理器内核PK4上执行所要模拟的风力发电厂控制装置WS的SPS S3的应用程序。
在每个SPS模拟SS1、SS2、SS3与各自所属的过程模拟PS1、PS2、PS3之间,E/A数据ED1/AD12、ED2/AD2和ED3/AD3可以通过各自所分配的透明信道TK1、TK2、TK3进行交换。
此外,为每个SPS模拟SS1、SS2、SS3分配一个虚拟网络接口VN1、VN2、VN3。它们与操作系统BS1的虚拟网络接口相连接,其中操作系统BS1提供路由选择功能RF1,从而使三个SPS模拟SS1、SS2、SS3也相互连接并可以在该路径上交换数据。因此,风力发电厂控制装置WS的SPS模拟SS3可以将例如基于TCP/IP的控制指令SK1、SK2发送到风力发电设备WA1、WA2的SPS模拟SS1、SS2之一,或者也可以发送到这二者。作为替代,控制指令SK1、SK2的发送可以借助E/A数据通过各自的透明信道TK1、TK2、TK3进行,其中数据借助适当的驱动程序从风力发电厂控制装置WS的SPS模拟SS3的E/A图像复制到风力发电设备WA1、WA2的SPS模拟SS1、SS2之一或者这二者的E/A图像内。
为了能够在实时条件下模拟三个SPS S1、S2、S3,三个处理器内核PK2、PK3和PK4中的每一个也分别执行附加程序E2、E3、E4的一个实例,从而对本身不具备实时能力的操作系统BS1进行实时性扩展。此外,在处理器内核PK1上地可以执行附加程序E1,从而当需要在实时条件下模拟风力发电设备WA1和WA2以及风力发电厂控制装置WS的过程P1、P2、P3时,对操作系统BS1进行实时性扩展。
除了图1和2中所示的例子外,还存在用于实现该方法的其他变体,下面无图示对其进行说明。
此外借助该方法还可以模拟具有两个以上风力发电设备WA1、WA2...、WAn的风力发电厂,其中为所要模拟的其他WKA WAn中的每个SPS Sn提供一个另外的处理器内核PKn。虽然具有四个以上处理器内核的计算机或处理器目前已经可以获得,从而通常公在一台计算机上也能模拟较大的风力发电厂或较大的总系统。但实际上所需的其他处理器内核Pn也可以包含在一个或多个其他计算机C2、...Cn中,它们随后通过具有足够高的数据传输速率的网络连接相互连接以进行数据交换。在此,它们是在一台还是多台计算机的处理器内核上运行或执行对于过程模拟PS1、...、PSn和SPS模拟SS1、...、SSn是完全透明的。
即使仅具有一个处理器内核的计算机也可以作为另外的计算机用于该方法。在该处理器内核上,然后例如既执行操作系统,必要时执行用于操作系统实时性扩展的附加程序的实例,也执行所要模拟的其他设备或机器SPS的应用程序以及为此所需的运行时间环境的实例。
前提是有足够数量的可用处理器内核,在该方法中,根据要求此外特别是为了提高性能,一个SPS模拟不仅可以在一个处理器内核上执行,而且也可以在多个处理器内核上共同执行。
同样还存在这样的可能性:特别是为了提高性能,操作系统和模拟程序可以在多个处理器内核上共同执行。
在多个所要模拟的设备或机器的过程P1、...Pn的情况下,每个过程也可以执行模拟程序SI1、...、SIn的一个固有实例。此外,模拟程序的每个实例也可以分别在一个固有的处理器内核上执行,从而每个过程模拟分别在一个处理器内核上运行。
附图附记一览
WA风力发电设备
WS风力发电厂控制装置
C计算机
PK处理器内核
BS操作系统
SI模拟程序
P过程
LU运行时间环境
S SPS
PS过程模拟
SS SPS模拟
E用于实时性扩展的附加程序
TK透明信道
ED输入数据
AD输出数据
VN虚拟网络接口
RF路由选择功能
SK控制指令
机译: 电子人或机器人的人工智能计算机系统的接收信号反应,电子人或机器人的人工智能计算机系统的关联,计算机模拟的计算机系统证实了机器人或机器人,并且该机器人或机器人的人工智能计算机系统的工作方法
机译: 一种基于指针的对象获取方法,用于对计算机系统的信息进行有形处理,该方法基于一种自然语言,并且该机器人或机器人的人工智能系统对该计算机系统的接收信号作出反应,该计算机系统具有相应的关联机器人或机器人的人工智能,该机器人或机器人的人工智能计算机系统的相应思想得到证实
机译: 用于最佳地控制计算机网络上的计算机程序的兑现和转移的计算机系统和相关方法(57)专利:“用于最佳地控制计算机网络上的计算机程序的兑现和转移的计算机系统和相关方法”。一种计算机系统和相关方法,用于最佳地控制网络上计算机之间的计算机程序的存储和传输,并促进交互式程序的使用。根据该方法,应用程序作为多个单独且独立的机器可执行代码模块存储在第一计算机的非易失性存储器中。响应于通过网络连接传输的第二计算机的请求,第一计算机从所述机器可执行代码模块中检索选择的模块,并且仅从存储器中检索该选择的代码模块,并将通过网络连接选择的代码模块传输到第二计算机。