CN102289593A - 多学科虚拟实验交互式仿真解算系统 - Google Patents
多学科虚拟实验交互式仿真解算系统 Download PDFInfo
- Publication number
- CN102289593A CN102289593A CN2011102405009A CN201110240500A CN102289593A CN 102289593 A CN102289593 A CN 102289593A CN 2011102405009 A CN2011102405009 A CN 2011102405009A CN 201110240500 A CN201110240500 A CN 201110240500A CN 102289593 A CN102289593 A CN 102289593A
- Authority
- CN
- China
- Prior art keywords
- module
- simulation
- scene
- unit
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 102
- 230000002452 interceptive effect Effects 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 claims abstract description 49
- 230000008569 process Effects 0.000 claims abstract description 38
- 238000002474 experimental method Methods 0.000 claims abstract description 35
- 238000004886 process control Methods 0.000 claims abstract description 35
- 238000013178 mathematical model Methods 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 238000012986 modification Methods 0.000 claims description 9
- 230000004048 modification Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000014509 gene expression Effects 0.000 claims description 2
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 239000000725 suspension Substances 0.000 claims 1
- 238000004458 analytical method Methods 0.000 abstract description 26
- 238000005094 computer simulation Methods 0.000 abstract description 3
- 238000004364 calculation method Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241000588769 Proteus <enterobacteria> Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000011173 large scale experimental method Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种虚拟仿真技术领域的多学科虚拟实验交互式仿真解算系统,包括:交互接口模块、实验场景解析模块、编译求解模块、实验过程控制模块以及逻辑构件管理模块,本发明实现了多学科虚拟实验的仿真解算过程,能够在同一系统中对计算机、机械、自动控制、电工电子、物理等多个学科的实验进行计算机仿真求解,获取实验结果数据并能够在实验过程中进行实时的过程控制、参数修改等交互操作,从而为交互式虚拟实验提供后台支持。
Description
技术领域
本发明涉及的是一种实验技术领域的装置,具体是一种多学科虚拟实验交互式仿真解算系统。
背景技术
实验是科学研究的基本方法之一。根据研究的目的,尽可能地排除外界的影响,突出主要因素并利用一些专门的仪器设备,而人为地变革、控制或模拟研究对象,使某一些事物或过程发生或再现,从而获得事物的内在规律。
虚拟实验的目的在于取代或者部分取代真实实验,需要提供与真实实验相同或者相近的结果。因此,虚拟实验的核心问题在于仿真结果的解算过程。目前,虚拟实验的仿真求解方法有以下几种:(1)采用实物样机进行后台仿真计算,通过数据采集卡将计算结果输出到计算机中的虚拟实验可视化界面上。这种方法能够达到远程虚拟实验的目的,但是需要有实物样机作为计算后台的支持并且一台样机同一时间只能满足一个用户的实验需求,无法满足大规模实验的需要。(2)使用实时仿真软件进行虚拟实验后台计算,如使用LabView进行测量和控制方面的仿真实验后台计算,使用Proteus进行电路仿真实验计算等。但这些软件都只能用在单个学科或相近的一两个学科,而且求解的内容仅限定在软件已有的模型,很难进行扩展,因此无法成为一个通用的求解系统。(3)自行运用学科知识将虚拟实验场景表达为数学模型,使用Matlab语言、C语言等计算机程序设计语言将数学模型转化为计算机程序并进行求解。这种方式要求实验人员精通编程语言并且花费大量时间在程序设计与调试上。此外,这种方法通常只能获取仿真实验的最终结果,用户无法在实验过程中进行修改控制等交互操作。
经过对现有技术的检索发现,Hao Shangfu、Wang Zhihui等2010年在《The VirtualExperiment Design of Arithmetic Unit Based on Object-Oriented Technology》(中文译名:基于面向对象技术计算单元的虚拟实验设计方法,发表于“Multimedia and Information Technology(MMIT),2010Second International Conference on”)中提出了一种交互式虚拟实验建模与解算方法,但是该技术要求实验人员使用C++语言自行对实验构件进行建模与调试并且大部分实验局限于计算机领域,无法实现跨学科的复杂实验。此外,Rui Yao等2010年在《Design of InquiryVirtual Experiment Platform》(中文译名:探索型虚拟实验平台的设计,发表于“2010The 3rdInternational Conference on Power Electronics and Intelligent Transportation System”)中提出一种创新型虚拟实验求解技术,但该技术只能根据指定条件一次性给出计算结果,无法在解算过程中实现实验参数的修改。
发明内容
本发明针对现有技术存在的上述不足,提供一种多学科虚拟实验交互式仿真解算系统,实现了多学科虚拟实验的仿真解算过程,能够在同一系统中对计算机、机械、自动控制、电工电子、物理等多个学科的实验进行计算机仿真求解,获取实验结果数据并能够在实验过程中进行实时的过程控制、参数修改等交互操作,从而为交互式虚拟实验提供后台支持。
本发明是通过以下技术方案实现的,本发明包括:交互接口模块、实验场景解析模块、编译求解模块、实验过程控制模块以及逻辑构件管理模块,其中:交互接口模块通过socket协议与虚拟实验前台用户进行交互并根据用户的操作指令将场景解析模块、编译求解模块和实验过程控制模块的反馈数据消息返回给虚拟实验前台,逻辑构件管理模块对内置逻辑构件库进行读取、写入与维护操作,实验场景解析模块、编译求解模块以及实验过程控制模块分别与逻辑构件管理模块相连,其中:实验场景解析模块接收用户传输的自然语言场景文件并转换成用逻辑语言表达的实验场景模型,编译求解模块将实验场景编译为实验仿真程序,实验过程控制模块根据用户的操作指令对实验仿真程序进行运行状态的控制。
所述的交互接口模块包括:实时交互仿真单元和非实时仿真单元,其中:实时交互仿真单元与用户操作前台相连接并持续传输实时结果信息,用户通过设定的socket端口向场景解析模块、编译求解模块和实验过程控制模块发送指令数据,包括XML格式的场景描述数据流、实验过程控制命令、参数修改命令等并以XML格式数据流的形式实时返回实验获取的仿真结果,用户能够控制实验的进行流程;非实时仿真单元与用户操作前台相连接并一次性传输所有解算结果信息,用户通过设定的socket端口向场景解析模块、编译求解模块和实验过程控制模块发送实验场景数据系统一次性以XML格式数据流的形式返回所有用户指定时间段的仿真结果,用户无法对实验过程进行干预。
所述的实验场景解析模块包括:数据读取单元、逻辑识别单元以及Modelica语言转换单元,该实验场景解析模块实现了从用自然语言描述的实验场景描述数据到实验场景数学模型的转换,其中:数据读取单元读取实验场景描述数据,包括虚拟实验场景中的构件信息、属性值以及连接关系等,用XML格式的文件表示;逻辑识别单元将数据读取单元中获得的数据根据其内在逻辑识别为多个构件的组合及其联接关系;Modelica语言转换单元读取逻辑识别单元得到的结果并用Modelica仿真语言表达得到场景数学模型。
所述的编译求解模块包括:模型平坦化单元、编译语言转换单元以及可执行程序编译单元,该模块在实验场景解析模块生成的场景数学模型的基础上,生成可在计算机上运行的求解执行程序。其中模型平坦化单元场景数学模型并进行平坦化处理生成具有完整编译求解信息的MO文件,编译语言转换单元使用开源Modelica语言编译器openModelica将MO文件转换为用C++语言表达的中间文件;可执行程序编译单元采用内置的具有过程控制库的GCC编译器进行编译并链接生成实验场景解算可执行程序。
所述的实验过程控制模块包括:命令解析单元、仿真过程控制单元以及仿真结果接收单元,该模块的调用编译求解模块生成的实验场景解算程序,对虚拟实验过程进行仿真和控制。其中命令解析单元将交互接口模块中得到的用户命令转换成机器能够识别的数据指令;仿真过程控制单元通过socket接口与场景解算程序进行数据交换实现对实验过程进行包括:暂停运行、继续运行、停止运行、跳转仿真时间、修改仿真参数、过滤返回数据的实时的仿真并对仿真过程进行控制,仿真结果接收单元接收可执行程序返回数据并根据操作指令进行过滤并以XML格式的数据流形式返回实验的仿真结果。
所述的逻辑构件管理模块包括:逻辑构件存储单元以及逻辑构件管理单元,其中:逻辑构件存储单元内置由若干不同学科的虚拟实验逻辑构件组成的逻辑构件库,逻辑构件管理单元对逻辑构件库输出访问、添加、删除以及修改操作指令,并接受XML文件。
所述的逻辑构件采用自然语言描述,包括:实验构件的名称、构件类型、学科信息、接口列表、属性列表信息,该逻辑构件以XML格式文件的形式储存在逻辑构件库中。
与现有技术相比,本发明具有以下特点:使用通用仿真建模语言Modelica对各个学科的实验构件进行逻辑层面上的建模,使本系统能够应用于跨学科的实验解算过程中;用户能够在实验过程中交互地进行实验过程的控制以及参数的修改;完全通过计算机进行实验过程的仿真计算,无需实物实验构件的参与。本发明能够为跨学科的实验提供仿真计算能力并提供用户控制实验过程的能力并缩短实验时间,节约实验成本。
附图说明
图1为本发明系统结构图。
图2为本发明工作过程图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例
如图1所示,本实施例包括:交互接口模块、实验场景解析模块、编译求解模块、实验过程控制模块以及逻辑构件管理模块,其中:交互接口模块通过socket协议与虚拟实验前台用户进行交互并根据用户的操作指令将场景解析模块、编译求解模块和实验过程控制模块的反馈数据消息返回给虚拟实验前台,逻辑构件管理模块对内置逻辑构件库进行读取、写入与维护操作,实验场景解析模块、编译求解模块以及实验过程控制模块分别与逻辑构件管理模块相连,其中:实验场景解析模块接收用户传输的自然语言场景文件并转换成用逻辑语言表达的实验场景模型,编译求解模块将实验场景编译为实验仿真程序,实验过程控制模块根据用户的操作指令对实验仿真程序进行运行状态的控制。
所述的交互接口模块包括:实时交互仿真单元和非实时仿真单元,其中:实时交互仿真单元与用户操作前台相连接并持续传输实时结果信息,用户通过设定的socket端口向场景解析模块、编译求解模块和实验过程控制模块发送指令数据,包括XML格式的场景描述数据流、实验过程控制命令、参数修改命令等并以XML格式数据流的形式实时返回实验获取的仿真结果,用户能够控制实验的进行流程;非实时仿真单元与用户操作前台相连接并一次性传输所有解算结果信息,用户通过设定的socket端口向场景解析模块、编译求解模块和实验过程控制模块发送实验场景数据系统一次性以XML格式数据流的形式返回所有用户指定时间段的仿真结果,用户无法对实验过程进行干预。
所述的实验场景解析模块包括:数据读取单元、逻辑识别单元以及Modelica语言转换单元,该实验场景解析模块实现了从用自然语言描述的实验场景描述数据到实验场景数学模型的转换,其中:数据读取单元读取实验场景描述数据,包括虚拟实验场景中的构件信息、属性值以及连接关系等,用XML格式的文件表示;逻辑识别单元将数据读取单元中获得的数据根据其内在逻辑识别为多个构件的组合及其联接关系;Modelica语言转换单元读取逻辑识别单元得到的结果并用Modelica仿真语言表达得到场景数学模型。
所述的编译求解模块包括:模型平坦化单元、编译语言转换单元以及可执行程序编译单元,该模块在实验场景解析模块生成的场景数学模型的基础上,生成可在计算机上运行的求解执行程序。其中模型平坦化单元场景数学模型并进行平坦化处理生成具有完整编译求解信息的MO文件,编译语言转换单元使用开源Modelica语言编译器openModelica将MO文件转换为用C++语言表达的中间文件;可执行程序编译单元采用内置的具有过程控制库的GCC编译器进行编译并链接生成实验场景解算可执行程序。
所述的实验过程控制模块包括:命令解析单元、仿真过程控制单元以及仿真结果接收单元,该模块的调用编译求解模块生成的实验场景解算程序,对虚拟实验过程进行仿真和控制。其中命令解析单元将交互接口模块中得到的用户命令转换成机器能够识别的数据指令;仿真过程控制单元通过socket接口与场景解算程序进行数据交换实现对实验过程进行包括:暂停运行、继续运行、停止运行、跳转仿真时间、修改仿真参数、过滤返回数据的实时的仿真并对仿真过程进行控制,仿真结果接收单元接收可执行程序返回数据并根据操作指令进行过滤并以XML格式的数据流形式返回实验的仿真结果。
所述的逻辑构件管理模块包括:逻辑构件存储单元以及逻辑构件管理单元,该模块对逻辑构件库进行维护和管理。其中逻辑构件存储单元内置由若干不同学科的虚拟实验逻辑构件组成的逻辑构件库,逻辑构件使用自然语言描述实验构件的名称、构件类型、学科信息、接口列表、属性列表等信息,以XML格式文件的形式储存在逻辑构件库中;逻辑构件管理单元对逻辑构件库输出访问、添加、删除以及修改操作指令,并接受XML文件。
本实施例系统的工作流程如图2所示,箭头表明数据的流向。在具体实施时,各模块的执行存在一定的顺序关系:交互接口模块接收并解析虚拟实验用户发送的场景数据,驱动场景解析模块进行场景数据转换;场景解析模块调用逻辑构件管理模块获取构件逻辑关系,生成逻辑场景文件;交互接口模块继续给编译求解模块发送编译指令,场景编译求解模块接收逻辑场景文件,调用逻辑构件管理模块获取构件逻辑模型,编译生成仿真可执行文件;交互接口模块发送指令驱动实验过程控制模块,生成仿真结果,过滤后返回给交互接口模块,由交互接口模块将数据结果编码后返回给前台用户,其中:
(1)交互接口模块
此模块实现求解系统与用户的通信功能。用户启动系统时,通过启动参数指定建立socket连接的端口号。系统运行时首先启动交互接口模块,此模块在用户指定的端口上监听,等待用户连接。用户使用TCP/IP协议与交互接口进行连接,发送用户指令并接收解算结果数据。
表1为交互接口模块定义了发送与接收数据的统一格式。
表1交互接口通信格式
交互接口模块通过建立的socket端口接收用户发送的数据,根据上述通信格式对用户数据进行解码,获得内容后并根据指令的实际功能调用相应的模块功能进行仿真。调用之后交互接口模块按照通信格式发送相应命令回复给前台,通知前台已经接收到消息并开始执行相应的模块。
表2定义了命令编号、命令名称以及相应的回复。
表2交互接口接收命令及回复列表
其中,用户传输的自然语言场景数据用xml数据流表示,xml数据中包含的内容以及格式如下:
仿真系统运行过程中,交互接口模块始终保持与用户程序之间的连接关系,当实验过程控制模块获得仿真结果后,交互接口接收数据并根据通信协议定义的通信格式对数据进行编码并通过socket端口传给用户。
交互接口模块定义了实时仿真与非实时仿真两种功能,根据实时仿真模式的不同,交互接口返回的数据也不同。实时仿真模式下,交互模块根据用户定义的仿真数据包长度,将此数据段内获取到的结果数据打包,根据通信协议编码后传输给用户,直到用户暂停或退出实验;非实时仿真模式下,交互接口将用户指定时间段长度的所有数据打包,一次全部返回给用户。
(2)实验场景解析模块
此模块接收交互接口解码生成的自然语言场景数据,生成通过Modelica语言表达的逻辑模型。
实验场景解析模块接收到交互接口输出的自然语言数据场景后,为减少磁盘I/O次数,提高解算效率,在内存中创建xml格式的字符串进行解析。实验场景解析模块首先将自然语言的实验场景数据分解为四类数据:场景信息、构件信息、连接信息以及仿真参数。
场景信息包含了当前实验场景的ID、场景名称、所属学科、所属课程、候选构件列表等信息。场景ID标示了唯一的场景编号,是当前实验场景区别于其他场景的唯一标识。所属学科、所属课程、候选构件列表等信息作为场景的自然语言描述,不参与逻辑计算。
构件信息包含了当前虚拟实验场景中所有仪器、仪表等的信息。在场景解析模块中,将虚拟实验的基本功能单位定义为构件,每个构件能够实现独立的逻辑功能并可用数学模型表达。每个构件信息包含了构件功能描述、构件版本信息、构件属性信息列表、构件接口信息、计算模型信息等。构件的接口是构件与构件之间连接的数据交换通道。不同学科、不同类型之间的构件用不同类型的接口来区分,只有相同接口类型的构件能够连接。一个构件可以有多个接口,通过接口与其他一个或几个构件相连。构件接口信息包含了构件接口列表,每个接口信息包含接口ID、接口名称、接口类型。
表3定义了构件中所包含的所有信息。
表3构件信息表
构件连接信息表示了当前场景中各个构件的连接方式,即各个仪器仪表等的连接方法。每个连接将两个相同类型的接口连接到一起,在计算过程中允许两者之间的数据传输。连接信息包括连接标号、连接类型、连接中构件1的名称,连接中构件1的接口名称、连接中构件2的名称,连接中构件2的接口名称。
仿真参数包含了实验场景在运行时的各种参数,包括运行时间、起始步长、仿真时间、仿真步数、单个仿真数据包的数据量等,这些信息提供了仿真模型运行的必要参数。
实验场景解析模块获取到构件的信息以及连接关系后,访问计算模型信息获取到计算模型在逻辑构件库中的位置并通过逻辑构件管理模块获取到构件的逻辑关系。逻辑构件采用多领域仿真语言Modelica描述,实验场景计算模块根据场景的构件、连接信息以及逻辑构件库中对每个构件Modelica模型进行递归遍历,获取当前场景中正在使用的实验构件列表并用Modelica语言规范将场景信息、各个构件信息、连接信息表达为逻辑关系文件(Scene.mo文件)。逻辑关系文件中包含了各个构件以及连接的数学表达,将构件之间的逻辑关系描述成方程的形式,使之能够为计算机所解析。
(3)编译求解模块
此模块在交互接口模块的控制下,调用Modelica语言编译器OpenModelica以及C语言编译器GCC,将实验场景解析模块中生成的逻辑场景模型编译成能够在计算机上运行的可执行文件。
编译求解模块的功能分为三步:
第一步,对每个编译任务,创建一个临时文件夹,保存在编译过程中产生的中间文件、编译生成的可执行文件以及非实时仿真模式下的计算结果文件,保证在多个实例同时运行时能够正常工作。临时文件夹根据当前解算程序的监听端口命名(如求解系统运行在8001端口,则文件夹命名为TMP8001),保证多个实例运行时不会出现重用临时文件夹,导致文件读写冲突问题。仿真后台退出时会自动删除临时文件夹。
第二步,是将采用OpenModelica语言描述的实验场景逻辑构件转换为C++语言代码文件。这一步调用了开源Modelica语言编译器OpenModelica并通过逻辑构件管理模块访问逻辑构件库,为编译过程提供支持。模块根据场景文件路径、OpenModelica编译器路径生成一个Modelica批处理文件(Scene.mos),顺序执行以下任务:读取Modelica模型库、载入当前场景Scene.mo模型以及编译当前场景命令。如果用户场景连接无误,这一步能够生成场景仿真C++源文件Scene.cpp、各种调用函数的C++源文件Scene_functions.cpp、编译环境配置Scene.makefile、以及场景构件参数初始值文件Scene_init.txt。
第三步,将C++语言源代码编译为可执行文件。这一步使用了开源C/C++求解器GCC(Linux操作系统)或者MinGW(Windows操作系统)。模块调用GCC编译器,以上一步生成的Scene.makefile为输出文件进行编译并与OpenModelica的仿真库文件进行链接生成计算机能够运行的可执行文件。如果用户场景连接无误,这一步能够生成Scene文件(Linux操作系统)或者Scene.exe文件(Windows操作系统)。
为了更好的实现交互仿真操作,系统对所用的OpenModelica编译器进行了部分功能修改,修改了以下与交互功能相关的部分功能:
1.启动时能够带参数启动可执行文件并分别指定命令接收端口、命令发送端口与数据发送端口。
2.增加可执行文件返回的数据增加总长度,以防止仿真速度较快时可能出现的数据接收错误。
3.修改指定返回值参数功能,使产生的可执行文件能够选择部分参数返回,节约数据流程并提高计算效率。
4.改进自动生成的Scene.makefile中的编译器优化选项,使整个编译过程速度更快,稳定性更高。
在第三步的编译过程中,使用根据以上内容修改后过后的OpenModelica库文件与第二步中生成的C++源代码进行链接,使生成的可执行文件更能符合交互操作的需求。
如果用户场景连接信息有误或是出现其他错误导致编译连接过程未能正确完成,模块会自动捕获整个编译过程中产生的错误以及警告消息,记录到日志文件build.log并将日志文件读入字符串并反馈到交互模块,由交互模块编码后发给用户,提示当前编译过程中的问题。
(4)实验过程控制模块
实验过程控制模块调用编译求解模块生成的可执行文件,通过socket通信收发指令控制仿真过程与结果数据并返回交互接口模块,由交互模块编码后传给用户。
实验控制模块与仿真程序之间通过socket连接传输数据,为了保证数据与指令传输的并发进行,模块使用了3个socket端口进行通信,分别为:控制模块向仿真程序发送指令端口(ctrlclientport)、仿真程序向控制模块发送执行指令响应消息的端口(ctrlserverport)以及仿真程序向控制模块发送仿真结果数据的端口(transferserverport)。
过程控制模块的工作流程如下:
1.实验控制模块接收到交互接口模块指令,解析后获得本次仿真过程的ctrlclientport、ctrlserverport以及transferserverport端口号。
2.新建两个数据接收线程,分别在ctrlserverport以及transferserverport端口上进行监听,准备接收数据与指令。
3.调用编译求解模块生成的仿真程序并通过启动参数指定交互求解模式以及端口号,如“Scene-interactive-ctrlserverport 8002-ctrlclientport 8003-transferserverport 8004”。
4.与编译求解模块建立连接关系。求解程序正常启动时,会在ctrlclientport进行监听,实验控制模块在ctrlclientport端口新建连接,与仿真程序建立通信关系。当连接成功建立后,仿真程序会主动连接ctrlserverport以及transferserverport端口,此时上述三个连接全部成功建立。
5.连接建立后,交互接口模块根据用户指令继续对过程控制模块发送仿真指令,指令类型以及数量由根据用户在虚拟实验的交互操作确定,仿真模块能够接收并执行的指令如表4所示。
表4控制模块指令表
6.当仿真控制模块接收到断开指令后,关闭-ctrlserverport、-ctrlclientport以及-transferserverport端口并结束仿真程序。
(5)逻辑构件管理模块
逻辑构件管理模块负责逻辑构件库的访问、修改与维护,在系统运行过程中,实验场景解析模块与编译求解模块均会通过逻辑构件管理模块访问逻辑构件库。此外,用户也能通过逻辑构件管理模块的接口对逻辑构件库进行添加、修改、删除等。
逻辑构件库的结构根据学科分为计算机学科、控制学科、电工电子学科、机械学科、物理学科等,此外还有通用的数学函数库、标准单位库等。各个学科之间的构件均使用Modelica语言规范统一表达,逻辑构件管理模块对各个学科之间的库进行统一管理,实现跨学科的构件调用与连接。
仿真后台运行时,逻辑构件管理模块将逻辑构件库读入内存,以避免运行过程中频繁对磁盘进行I/O操作,加快后续过程调用速度。
实验场景解析模块与编译求解模块调用逻辑构件管理模块时,首先通过逻辑构件模块的读取接口发送需要访问的逻辑构件名称及其在库下的所属学科位置,如“Modelica.VELibrary.Electron.Analog.Sensors.DigitalMultimeter”。逻辑构件管理模块解析相应的路径后,访问内存中与此构件相应的位置,获取数据流返回给调用模块,实现内容的读取。
仿真后台退出时,逻辑构件管理模块释放其申请的用于存放逻辑构件库的内存,在实验过程中对构件的修改不会保存入数据库。
在本实施例中,采用典型的虚拟实验仿真流程,对多学科虚拟实验交互式仿真解算系统的逻辑构件管理模块、实验场景解析模块、编译求解模块、实验过程控制模块以及交互接口模块的工作流程进行说明并对各个阶段的文件和传输的数据格式做了详细说明。
本实施例可以作为计算后台用于多学科虚拟实验系统中并能够支持跨学科的知识调用,支持对实验过程进行实时的交互操作并能够实时获取计算结果数据,在实验过程中具有重要作用。表5为本仿真解算后台与其他解算方法相比的结果,从表中能够看出,本实施例提供了更广泛的使用领域、更方便的使用方法。
表5本仿真解算后台与其他解算方法比较表
Claims (7)
1.一种多学科虚拟实验交互式仿真解算系统,其特征在于,包括:交互接口模块、实验场景解析模块、编译求解模块、实验过程控制模块以及逻辑构件管理模块,其中:交互接口模块通过socket协议与虚拟实验前台用户进行交互并根据用户的操作指令将场景解析模块、编译求解模块和实验过程控制模块的反馈数据消息返回给虚拟实验前台,逻辑构件管理模块对内置逻辑构件库进行读取、写入与维护操作,实验场景解析模块、编译求解模块以及实验过程控制模块分别与逻辑构件管理模块相连,其中:实验场景解析模块接收用户传输的自然语言场景文件并转换成用逻辑语言表达的实验场景模型,编译求解模块将实验场景编译为实验仿真程序,实验过程控制模块根据用户的操作指令对实验仿真程序进行运行状态的控制。
2.根据权利要求1所述的多学科虚拟实验交互式仿真解算系统,其特征是,所述的交互接口模块包括:实时交互仿真单元和非实时仿真单元,其中:实时交互仿真单元与用户操作前台相连接并持续传输实时结果信息,用户通过设定的socket端口向场景解析模块、编译求解模块和实验过程控制模块发送包括XML格式的场景描述数据流、实验过程控制命令、参数修改命令的指令数据并以XML格式数据流的形式实时返回实验获取的仿真结果,非实时仿真单元与用户操作前台相连接并一次性传输所有解算结果信息,用户通过设定的socket端口向场景解析模块、编译求解模块和实验过程控制模块发送实验场景数据系统一次性以XML格式数据流的形式返回所有用户指定时间段的仿真结果。
3.根据权利要求1所述的多学科虚拟实验交互式仿真解算系统,其特征是,所述的实验场景解析模块包括:数据读取单元、逻辑识别单元以及Modelica语言转换单元,其中:数据读取单元读取包括虚拟实验场景中的构件信息、属性值以及连接关系的XML格式的实验场景描述数据,逻辑识别单元将数据读取单元中获得的数据根据其内在逻辑识别为多个构件的组合及其联接关系,Modelica语言转换单元读取逻辑识别单元得到的结果并用Modelica仿真语言表达得到场景数学模型。
4.根据权利要求1所述的多学科虚拟实验交互式仿真解算系统,其特征是,所述的编译求解模块包括:模型平坦化单元、编译语言转换单元以及可执行程序编译单元,其中:模型平坦化单元具有完整编译求解信息的MO文件,编译语言转换单元调用Modelica语言编译器openModelica将MO文件转换为用C++语言表达的中间文件,可执行程序编译单元采用内置的具有过程控制库的GCC编译器进行编译并链接生成实验场景解算可执行程序。
5.根据权利要求1所述的多学科虚拟实验交互式仿真解算系统,其特征是,所述的实验过程控制模块包括:命令解析单元、仿真过程控制单元以及仿真结果接收单元,其中:命令解析单元将交互接口模块中得到的用户命令转换成机器能够识别的数据指令,仿真过程控制单元通过socket接口与场景解算程序进行数据交换实现对实验过程进行包括:暂停运行、继续运行、停止运行、跳转仿真时间、修改仿真参数、过滤返回数据的实时的仿真并对仿真过程进行控制,仿真结果接收单元接收可执行程序返回数据并根据操作指令进行过滤并以XML格式的数据流形式返回实验的仿真结果。
6.根据权利要求1所述的多学科虚拟实验交互式仿真解算系统,其特征是,所述的逻辑构件管理模块包括:逻辑构件存储单元以及逻辑构件管理单元,其中:逻辑构件存储单元内置由若干不同学科的虚拟实验逻辑构件组成的逻辑构件库,逻辑构件管理单元对逻辑构件库输出访问、添加、删除以及修改操作指令,并接受XML文件。
7.根据权利要求6所述的多学科虚拟实验交互式仿真解算系统,其特征是,所述的逻辑构件采用自然语言描述,包括:实验构件的名称、构件类型、学科信息、接口列表、属性列表信息,该逻辑构件以XML格式文件的形式储存在逻辑构件库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102405009A CN102289593A (zh) | 2011-08-22 | 2011-08-22 | 多学科虚拟实验交互式仿真解算系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102405009A CN102289593A (zh) | 2011-08-22 | 2011-08-22 | 多学科虚拟实验交互式仿真解算系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102289593A true CN102289593A (zh) | 2011-12-21 |
Family
ID=45336015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102405009A Pending CN102289593A (zh) | 2011-08-22 | 2011-08-22 | 多学科虚拟实验交互式仿真解算系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102289593A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104062563A (zh) * | 2014-06-24 | 2014-09-24 | 武汉大学 | 一种高电压虚拟实验平台的实现方法及系统 |
CN104933923A (zh) * | 2015-07-03 | 2015-09-23 | 广东食品药品职业学院 | 一种基于虚拟仪器的医用电子仪器仿真实验教学平台 |
CN105243223A (zh) * | 2015-10-28 | 2016-01-13 | 苏州同元软控信息技术有限公司 | 基于Modelica的程序快速构建方法 |
CN105445581A (zh) * | 2015-11-27 | 2016-03-30 | 苏州同元软控信息技术有限公司 | 一种基于Modelica模型的故障检测系统及其方法 |
CN106951575A (zh) * | 2016-01-06 | 2017-07-14 | 北京仿真中心 | 一种基于cosim的多学科虚拟试验仿真方法 |
CN106951590A (zh) * | 2017-02-16 | 2017-07-14 | 北京宇航系统工程研究所 | 一种面向多学科异构模型的仿真试验系统 |
CN107370739A (zh) * | 2017-07-28 | 2017-11-21 | 苏州大学 | 基于云服务器的信号处理虚拟实验仿真系统及方法 |
CN107463732A (zh) * | 2017-07-17 | 2017-12-12 | 中国科学院电工研究所 | 一种多端交直流主动配电网调度控制仿真系统及方法 |
CN108550022A (zh) * | 2018-03-30 | 2018-09-18 | 佛山市诺威科技有限公司 | 一种多学科的数控装备协同设计与仿真校核系统及方法 |
CN109918727A (zh) * | 2019-01-30 | 2019-06-21 | 上海卫星工程研究所 | 多仿真场景动态管理方法 |
CN110609707A (zh) * | 2018-06-14 | 2019-12-24 | 北京嘀嘀无限科技发展有限公司 | 在线数据处理系统生成方法、装置及设备 |
CN111917513A (zh) * | 2020-07-29 | 2020-11-10 | 上海海洋大学 | 一种移动端与服务器端数据交互方法 |
CN112216178A (zh) * | 2020-10-21 | 2021-01-12 | 北京高途云集教育科技有限公司 | 实验现象模拟方法、装置、系统和电子设备 |
CN113010227A (zh) * | 2021-03-18 | 2021-06-22 | 南京仁谷系统集成有限公司 | 一种基于模型驱动的仿真平台实现方法 |
CN117149359A (zh) * | 2023-10-27 | 2023-12-01 | 大尧信息科技(湖南)有限公司 | 一种面向数据链设备的软件定义仿真模拟开发平台及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1558330A (zh) * | 2004-01-18 | 2004-12-29 | 广东拓思软件科学园有限公司 | 家电控制器嵌入式软件的仿真集成开发系统及其纯软件仿真执行方法 |
CN101937359A (zh) * | 2010-08-19 | 2011-01-05 | 中国船舶重工集团公司第七○九研究所 | 一种面向仿真应用的通用可扩展计算系统 |
CN102054096A (zh) * | 2010-12-10 | 2011-05-11 | 北京航空航天大学 | 以可靠性为独立学科的多学科综合设计方法 |
-
2011
- 2011-08-22 CN CN2011102405009A patent/CN102289593A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1558330A (zh) * | 2004-01-18 | 2004-12-29 | 广东拓思软件科学园有限公司 | 家电控制器嵌入式软件的仿真集成开发系统及其纯软件仿真执行方法 |
CN101937359A (zh) * | 2010-08-19 | 2011-01-05 | 中国船舶重工集团公司第七○九研究所 | 一种面向仿真应用的通用可扩展计算系统 |
CN102054096A (zh) * | 2010-12-10 | 2011-05-11 | 北京航空航天大学 | 以可靠性为独立学科的多学科综合设计方法 |
Non-Patent Citations (1)
Title |
---|
刘超,金海,蒋文斌,李浩,张磊,王曙光,马潇: "一种多学科虚拟实验教学平台仿真计算与调度机制", 《第六届和谐人机环境联合学术会议、第19届全国多媒体学术会议、第6届全国人机交互学术会议、第5届全国普适计算学术会议论文集》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104062563A (zh) * | 2014-06-24 | 2014-09-24 | 武汉大学 | 一种高电压虚拟实验平台的实现方法及系统 |
CN104933923A (zh) * | 2015-07-03 | 2015-09-23 | 广东食品药品职业学院 | 一种基于虚拟仪器的医用电子仪器仿真实验教学平台 |
CN105243223A (zh) * | 2015-10-28 | 2016-01-13 | 苏州同元软控信息技术有限公司 | 基于Modelica的程序快速构建方法 |
CN105243223B (zh) * | 2015-10-28 | 2018-11-02 | 苏州同元软控信息技术有限公司 | 基于Modelica的程序快速构建方法 |
CN105445581B (zh) * | 2015-11-27 | 2018-05-22 | 苏州同元软控信息技术有限公司 | 一种基于Modelica模型的故障检测系统及其方法 |
CN105445581A (zh) * | 2015-11-27 | 2016-03-30 | 苏州同元软控信息技术有限公司 | 一种基于Modelica模型的故障检测系统及其方法 |
CN106951575A (zh) * | 2016-01-06 | 2017-07-14 | 北京仿真中心 | 一种基于cosim的多学科虚拟试验仿真方法 |
CN106951575B (zh) * | 2016-01-06 | 2020-05-26 | 北京仿真中心 | 一种基于cosim的多学科虚拟试验仿真方法 |
CN106951590A (zh) * | 2017-02-16 | 2017-07-14 | 北京宇航系统工程研究所 | 一种面向多学科异构模型的仿真试验系统 |
CN106951590B (zh) * | 2017-02-16 | 2020-08-14 | 北京宇航系统工程研究所 | 一种面向多学科异构模型的仿真试验系统 |
CN107463732A (zh) * | 2017-07-17 | 2017-12-12 | 中国科学院电工研究所 | 一种多端交直流主动配电网调度控制仿真系统及方法 |
CN107463732B (zh) * | 2017-07-17 | 2020-05-22 | 中国科学院电工研究所 | 一种多端交直流主动配电网调度控制仿真系统及方法 |
CN107370739B (zh) * | 2017-07-28 | 2020-11-03 | 苏州大学 | 基于云服务器的信号处理虚拟实验仿真系统及方法 |
CN107370739A (zh) * | 2017-07-28 | 2017-11-21 | 苏州大学 | 基于云服务器的信号处理虚拟实验仿真系统及方法 |
CN108550022A (zh) * | 2018-03-30 | 2018-09-18 | 佛山市诺威科技有限公司 | 一种多学科的数控装备协同设计与仿真校核系统及方法 |
CN110609707A (zh) * | 2018-06-14 | 2019-12-24 | 北京嘀嘀无限科技发展有限公司 | 在线数据处理系统生成方法、装置及设备 |
CN110609707B (zh) * | 2018-06-14 | 2021-11-02 | 北京嘀嘀无限科技发展有限公司 | 在线数据处理系统生成方法、装置及设备 |
CN109918727A (zh) * | 2019-01-30 | 2019-06-21 | 上海卫星工程研究所 | 多仿真场景动态管理方法 |
CN111917513A (zh) * | 2020-07-29 | 2020-11-10 | 上海海洋大学 | 一种移动端与服务器端数据交互方法 |
CN112216178A (zh) * | 2020-10-21 | 2021-01-12 | 北京高途云集教育科技有限公司 | 实验现象模拟方法、装置、系统和电子设备 |
CN113010227A (zh) * | 2021-03-18 | 2021-06-22 | 南京仁谷系统集成有限公司 | 一种基于模型驱动的仿真平台实现方法 |
CN117149359A (zh) * | 2023-10-27 | 2023-12-01 | 大尧信息科技(湖南)有限公司 | 一种面向数据链设备的软件定义仿真模拟开发平台及方法 |
CN117149359B (zh) * | 2023-10-27 | 2024-01-26 | 大尧信息科技(湖南)有限公司 | 一种面向数据链设备的软件定义仿真模拟开发平台及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102289593A (zh) | 多学科虚拟实验交互式仿真解算系统 | |
CN108885545B (zh) | 用于实时数据流编程语言的工具和方法 | |
Garlan et al. | Acme: An architecture description interchange language | |
CN105843630B (zh) | 一种基于机器人图形化编程开发的方法 | |
WO2020248811A1 (zh) | 一种基于blockly和树莓派的在线图形化编程系统及其使用方法 | |
US6996517B1 (en) | Performance technology infrastructure for modeling the performance of computer systems | |
CN112748914B (zh) | 一种应用程序开发方法、装置、电子设备和存储介质 | |
CN103198009A (zh) | 一种通用测试方法、系统及相应装置 | |
CN101866315B (zh) | 软件开发工具的测试方法及系统 | |
CN109143952A (zh) | 可编程逻辑控制器编程语言转换系统 | |
CN103136107A (zh) | 一种嵌入式程序动态分配内存的变量调试方法 | |
CN101604241A (zh) | 一种嵌入式系统的代码生成方法 | |
CN102915386A (zh) | 基于HLA的Adams仿真模型集成平台及方法 | |
CN105242958B (zh) | 一种虚拟试验系统与hla仿真系统数据交换方法 | |
WO2024230392A1 (zh) | 一种电子设备控制系统的仿真方法、装置、设备及存储介质 | |
CN104063231B (zh) | 一种基于hit‑tena的试验资源快速接入方法 | |
CN116339700A (zh) | 一种基于c代码的航天器控制系统用户需求自动生成方法 | |
CN115061772B (zh) | 一种多领域仿真模型集成方法及系统 | |
CN102520963A (zh) | 基于强类型关系映射实现业务逻辑处理的方法及系统 | |
CN105573763B (zh) | 一种支持rtos的嵌入式系统建模方法 | |
CN103425469A (zh) | 基于mda技术的手机游戏代码生成方法 | |
CN103164545A (zh) | 虚拟电子元器件的可视化编辑方法 | |
CN103049602B (zh) | 基于模型驱动工程的将aadl组件转换到接口自动机模型方法 | |
CN115712420B (zh) | 一种基于复杂实时嵌入式系统的架构设计与架构转换方法 | |
CN1294495C (zh) | 模拟器构造方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20111221 |