CN109948213A - 一种基于fmi标准的协同仿真方法及装置 - Google Patents
一种基于fmi标准的协同仿真方法及装置 Download PDFInfo
- Publication number
- CN109948213A CN109948213A CN201910179835.0A CN201910179835A CN109948213A CN 109948213 A CN109948213 A CN 109948213A CN 201910179835 A CN201910179835 A CN 201910179835A CN 109948213 A CN109948213 A CN 109948213A
- Authority
- CN
- China
- Prior art keywords
- simulation
- fmu
- model
- pseudo
- fmu model
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000004088 simulation Methods 0.000 claims abstract description 193
- 238000013515 script Methods 0.000 claims description 54
- 238000004364 calculation method Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 16
- 238000004806 packaging method and process Methods 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 description 24
- 238000012545 processing Methods 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012821 model calculation Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 238000012536 packaging technology Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于FMI标准的协同仿真方法,包括:解析目标仿真系统中包含的仿真模块,其中,所述仿真模块包含FMU模型和伪FMU模型;接收所述仿真模块中的包含的仿真数据;依据所述仿真数据,更新所述FMU模型和所述伪FMU模型,得到目标仿真数据;将所述目标仿真数据进行显示。上述的仿真方法,在仿真系统中加入了伪FMU模型,实现了半实物系统的协同仿真。
Description
技术领域
本发明涉及仿真技术领域,尤其涉及一种基于FMI标准的协同仿真方法及装置。
背景技术
传统的基于FMI标准封装FMU技术仅面向多源异构模型,即基于FMI标准,将多源异构模型封装成FMU,在系统仿真软件中实现协同仿真。
然而,随着用户对系统仿真的要求不断提高,比如介入半实物系统的协同仿真,仅将多源异构模型封装为FMU不能满足其要求。
发明内容
有鉴于此,本发明提供了一种基于FMI标准的协同仿真方法及装置,用以解决现有技术中随着用户对系统仿真的要求不断提高,比如介入半实物系统的协同仿真,仅将多源异构模型封装为FMU不能满足其要求的问题。具体方案如下:
一种基于FMI标准的协同仿真方法,包括:
解析目标仿真系统中包含的仿真模块,其中,所述仿真模块包含FMU模型和伪FMU模型;
接收所述仿真模块中的包含的仿真数据;
依据所述仿真数据,更新所述FMU模型和所述伪FMU模型,得到目标仿真数据;
将所述目标仿真数据进行显示。
上述的方法,可选的,所述FMU模型为多源异构模型,所述伪FMU模型为外部硬件、外部软件和脚本中的至少一个。
上述的方法,可选的,所述伪FMU模型是通过对所述外部硬件、外部软件和脚本中的至少一个进行封装得到的,其中,对所述外部硬件的封装过程包括:
获取目标板卡的通用接口,其中,所述目标板卡为与所述外部件硬件通过总线连接的板卡;
依据第一预设类调用第二预设类解析所述目标板卡参数、管理所述目标板卡并提供所述通用接口。
上述的方法,可选的,所述伪FMU模型是通过对所述外部硬件、外部软件和脚本中的至少一个进行封装得到的,其中,对所述外部软件的封装过程包括:
构建目标动态链接库;
依据所述目标动态链接库对所述外部软件进行封装。
上述的方法,可选的,所述伪FMU模型是通过对所述外部硬件、外部软件和脚本中的至少一个进行封装得到的,其中,对所述脚本的封装过程包括:
解析所述脚本的脚本类型;
确定与所述脚本类型对应的目标封装规则;
依据所述目标封装规则对所述脚本进行封装。
上述的方法,可选的,所述脚本的类型可以为自定义变量接口、Python脚本和CSV文件中的至少一种。
上述的方法,可选的,依据所述仿真数据,更新所述FMU模型和所述伪FMU模型,包括:
确定所述目标仿真系统中所述FMU模型和所述伪FMU模型之间的数据传输关系;
在预设的仿真步长内,将对应的仿真数据由主线程并行的分配给对应的FMU模型和/或伪FMU模型对应的执行线程进行仿真计算;
获取所述FMU模型和所述伪FMU模型中预设步骤的计算结果;
依据所述数据传输关系,将对应的计算结果在FMU模型和/或伪FMU模型中进行交换,完成所述FMU模型和所述伪FMU模型的更新。
一种基于FMI标准的协同仿真装置,包括:
解析模块,用于解析目标仿真系统中包含的仿真模块,其中,所述仿真模块包含FMU模型和伪FMU模型;
接收模块,用于接收所述仿真模块中的包含的仿真数据;
更新模块,用于依据所述仿真数据,更新所述FMU模型和所述伪FMU模型,得到目标仿真数据;
显示模块,用于将所述目标仿真数据进行显示。
上述的装置,可选的,所述解析模块中所述FMU模型为多源异构模型,所述伪FMU模型为外部硬件、外部软件和脚本中的至少一个。
上述的装置,可选的,所述更新模块包括:
确定单元,用于确定所述目标仿真系统中所述FMU模型和所述伪FMU模型之间的数据传输关系;
分配计算单元,用于在预设的仿真步长内,将对应的仿真数据由主线程并行的分配给对应的FMU模型和/或伪FMU模型对应的执行线程进行仿真计算;
获取单元,用于获取所述FMU模型和所述伪FMU模型中预设步骤的计算结果;
交换更新单元,用于依据所述数据传输关系,将对应的计算结果在FMU模型和/或伪FMU模型中进行交换,完成所述FMU模型和所述伪FMU模型的更新。
与现有技术相比,本发明包括以下优点:
本发明公开了一种基于FMI标准的协同仿真方法,包括:解析目标仿真系统中包含的仿真模块,其中,所述仿真模块包含FMU模型和伪FMU模型;接收所述仿真模块中的包含的仿真数据;依据所述仿真数据,更新所述FMU模型和所述伪FMU模型,得到目标仿真数据;将所述目标仿真数据进行显示。上述的仿真方法,在仿真系统中加入了伪FMU模型,实现了半实物系统的协同仿真。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种基于FMI标准的协同仿真方法流程图;
图2为本发明实施例公开的一种基于FMI标准的协同仿真方法又一流程图;
图3为本发明实施例公开的一种基于FMI标准的协同仿真方法又一流程图;
图4为本发明提供的一种基于FMI标准的协同仿真系统结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明公开了一种基于FMI标准的协同仿真方法及装置,应用于协同仿真过程中,传统的基于FMI标准封装FMU技术仅面向模型,即基于FMI标准,将多源异构模型封装成FMU,在系统仿真软件中实现协同仿真。然而,随着用户对系统仿真的要求不断提高,比如介入半实物系统的协同仿真,仅将数字模型封装为FMU不能满足其要求。因此,我们研究了基于FMI标准的将外部软件系统、外部硬件系统、脚本等多种形式的对象封装为“伪FMU”,与FMU一起集成到系统仿真软件上进行协同仿真的技术。所述仿真方法的执行流程如图1所示,包括步骤:
S101、解析目标仿真系统中包含的仿真模块,其中,所述仿真模块包含FMU模型和伪FMU模型;
本发明实施例中,所述目标仿真系统为当前需要进行仿真的系统,其中,优选的,所述目标仿真系统可以为一个工程,其余可以进行仿真的系统、平台等都可以作为所述目标仿真系统,本发明实施例对所述目标仿真系统的形式不作限制。
其中,本发明采用GCAir平台对所述目标仿真系统进行解析,其中,GCAir是一款适用于多源异构模型集成的虚拟飞行器仿真工具,本发明实施例中仅以GCAir进行举例,对解析的执行主体不进行限制。解析目标仿真系统中包含的仿真模块,其中,所述仿真模块包含FMU模型和伪FMU模型,其中,所述FMU模型为多源异构模型,所述伪FMU模型为外部硬件、外部软件和脚本中的至少一个。
S102、接收所述仿真模块中的包含的仿真数据;
本发明实施例中,接收所述仿真模块中的所述FMU模型和所述伪FMU模型的仿真数据,在所述仿真模块中的所述FMU模型和所述伪FMU在集成到所述GCAir平台过程中,需要对仿真模块进行接口校验和接口描述。当验证完成后,获取所述仿真模块中包含的仿真数据。
其中,优选的,可以将常用的仿真模型存储到仿真模型库,当需要采用重复使用该仿真模型时,将参数重新配置,对流程进行设计。
S103、依据所述仿真数据,更新所述FMU模型和所述伪FMU模型,得到目标仿真数据;
本发明实施例中,在每一个预设的仿真步长内,将对应的仿真数据并行的分配给所述FMU模型或所述伪FMU模型进行仿真,实现对所述FMU模型和所述伪FMU模型的更新;若仿真步长执行完所有执行线程后,进行下一个仿真步长的仿真,当仿真完成时,得到目标仿真数据,其中,所述预设的仿真步长可以依据经验值或者具体情况进行设定
S104、将所述目标仿真数据进行显示。
本发明实施例中,将所述目标仿真数据通过数据发送线程发送给上位机进行显示,优选的,将所述目标仿真数据进行保存。
本发明公开了一种基于FMI标准的协同仿真方法,包括:解析目标仿真系统中包含的仿真模块,其中,所述仿真模块包含FMU模型和伪FMU模型;接收所述仿真模块中的包含的仿真数据;依据所述仿真数据,更新所述FMU模型和所述伪FMU模型,得到目标仿真数据;将所述目标仿真数据进行显示。上述的仿真方法,在仿真系统中加入了伪FMU模型,实现了半实物系统的协同仿真。
本发明实施例中,所述伪FMU模型是通过对所述外部硬件、外部软件和脚本中的至少一个进行封装得到的,其中,对所述外部硬件来说外部硬件(如试验台等)信息通过各类总线传输到目标板卡中,将所述目标板卡处理后传送到主板,显示在上位机上,用户可通过上位机对所述外部硬件进行查看和修改。其中所述外部硬件的封装过程包括:
获取目标板卡的通用接口,其中,所述目标板卡类通用接口包括:InitCard:初始化板卡,UnInitCard:关闭板卡,AddIOVarInfo:增加一个变量关系映射,ReleaseIOVarInfo:解除所有变量关系映射,SetData:设置Output数据,GetData:取得Input数据。
依据第一预设类调用第二预设类解析所述目标板卡参数、管理所述目标板卡并提供所述通用接口。其中,所述第一预设类为CHardWareCtrl类,所述第二预设的类为CParseXML类。
针对所述第二预设类CParseXML类:解析XML类(板卡配置文件)格式:
<Device Name=“M35N02”slot=“6”>
<type>AI8</type>
<Range>UNIPOLAR</Range>
<Gain>1</Gain>
</Device>
<Device Name=“M62N00”slot=“7”>
<type>AO16</type>
<Range>BIPOLAR</Range>
</Device>
最后返回一个包含板卡类实例的vector
针对所述第一预设类为CHardWareCtrl类:CHardWareCtrl类负责调用CParseXML类解析板卡参数,管理板卡,提供板卡对外操作接口,包含上面那个板卡类实例的vector,vector<CHardWareBase*>m_vecIOCard。
本发明实施例中,所述伪FMU模型是通过对所述外部硬件、外部软件和脚本中的至少一个进行封装得到的,其中,针对所述外部软件:GCAir使用TCP模块将用户现有的可执行程序通过简单改造封装为伪FMU,以此作为一个仿真模块加入到当前的仿真工程中,完成外部软件系统的集成操作。为了降低用户的使用难度,软件提供一个名为GCTCPComponent.dll的动态库供用户调用,动态库文件的接口函数如表1所示:
表1
本发明实施例中,所述伪FMU模型是通过对所述外部硬件、外部软件和脚本中的至少一个进行封装得到的,其中,针对所述脚本:GCAir参照FMI标准,按照不同脚本的不同作用和特点,对UserVar(自定义变量接口)、Python脚本、CSV文件三种类型脚本制定了不同的规则,并通过这些规则将脚本文件封装为伪FMU。通过图2所示执行流程,将所述脚本伪FMU集成到仿真平台上,并进行交互运算。
用户添加所述脚本伪FMU后,软件根据文件添加的入口自动识别脚本类型,并按照GCAir中规定的相应格式进行解析和语法/词法检测。解析过程中,发现语法/词法不符合格式要求时,自动反馈语法/词法规则错误,提醒用户修改文件,并重新加载修改后的脚本;若语法/词法检测通过,解析完成。用户开始仿真时,系统检测源文件是否被占用,避免仿真过程中源文件修改而造成结果偏差,解除占用的文件将检测是否已修改,若修改则重新加载,若未修改,则继续执行后续任务,上位机生成配置文件发送给引擎,引擎执行动态运算。
其中,各类型脚本规则如下:
UserVar允许用户根据需要自定义添加、修改以及删除变量信息,方便用户对一些经常改变的关系和简单算法进行较为频繁的操作,对平台的灵活性有重大意义。
UserVar信息由变量名字和表达式两部分组成,GCAir中对UserVar类型的伪FMU的变量命名和表达式分别制定了如下规则:
1)变量命名规则:
A1.自定义变量名不能为空;
B1.自定义变量名中只能出现字母、数字以及下划线,不能出现其它特殊字符和汉字字符;
C1.自定义变量名的首字母不能是数字。
2)表达式的计算规则:
A2.常见的混合运算:+、-、*、/、0、负号、取余%、幂运算、逻辑运算>、<、=、>=、<=、<>等;
B2.常见的数学公式:三角函数、INTEGRAL(积分)、DELAY(信号延迟)、NOISE(噪声函数,噪声分布满足均值为0,标准差为1。噪声设置参数为噪声幅值。例如:out=in+NOISE(Amplitude))等;
C2.自定义宏:STEPTIME(单步仿真时间)、SIMTIME(当前仿真位置时间)。
当用户编辑完自定义变量和表达式后,软件自动对UserVar信息进行检测,如果不符合上述要求,软件会有针对性地提示用户,方便用户修改,编辑完自定义变量信息后,点击“确定”按钮,软件将把自定义信息加入到仿真工程,同时在工程信息窗口中显示新添加的自定义变量信息。
GCAir软件平台中用到的是Python2.7版本,它允许用户使用强大且灵活性高、不需要每次编译的Python语言来编写按照自己意图运行的仿真模块,它作为比自定义变量更加灵活强大的可扩展部件存在,主要应用于仿真工程中会灵活改变的模型(自定义变量功能的定位在于变量,两者关注的粒度不一样)以及控制等方面,和真实的FMU相比,其省去了每次修改模型还要打开模型(FMU)生成软件的诸多麻烦。
在GCAir中,制定了变量声明、初始化函数、执行函数的语法规则,并提供了三种内置函数,通过此种方式实现将python脚本封装为伪FMU。具体规则如下:
A3.变量的声明格式:
name=Variable("front_wheel.om","input","a_input",0.2)
#其中,name:变量的名字。
#Variable:声明一个变量的关键字。
#"front_wheel.om":将要显示在GCAir软件工程信息窗口模型树中的变量名字。
#"input":该变量的类型,在此可以是"input"、"output"和"parameter"三种,如果写的是其它信息,此变量将不会出现在变量列表中。
#"a_input"是变量的备注信息(Comment),0.2是变量的默认值,如果采用其它方式定义变量,将会被Python模块认为是此模型的内部变量,不会被解析到工程信息窗口的变量树中显示。
B3.初始化函数Init。
Init函数作为Python脚本模块和GCAir软件平台交互的一个接口,将会在开始仿真之前被平台调用一次,在此函数中,脚本编写者可以根据实际需要完成脚本中需要初始化的信息和操作,为脚本在参与进仿真操作之前提供一个控制接口。
C3.执行函数DoStep。
DoStep函数的名字模仿FMI1.0标准中的执行函数名称,其包含两个参数,脚本编写者可以在该函数中对两个参数变量进行使用。DoStep函数将会被软件平台在每一个仿真步骤中均调用一次,是具体脚本计算方法的体现者。
D3.内置函数
GCAir在python中新增3个函数,分别是GetWorkSpacePath();GetInstallPath()和GetProjectPath(),可以实现返回GCAir的工作路径;安装路径和工程路径。
对于前文规定外的其他函数,用户可以依照Python语言的语法添加自定义的函数接口,这些函数仅仅被脚本中的其它函数所调用完成指定的功能,GCAir软件平台不做处理。
目前很多飞行数据(实验数据)都是csv文件格式,为提高仿真过程的准确性和实用性,GCAir支持将csv文件封装为伪FMU,作为一个模块加入到仿真过程。
CSV文件主要为系统中的其他模型提供按照时间序列添加的输入数据,按照其数据特点和GCAir软件的执行规则,GCAir中为CSV类型的伪FMU制定了如下数据规则:
A5.第一列表头必须为t或者time,且所有表头项不能为空。
B5.数据部分从第二行开始,第二行以下为数据,且不能为空。
C5.时间列数据必须是依次增大的,且不能有空白。
D5.第一行表头部分不能存在重复,不能存在除字母、数字,点和下划线以外的字符。
E5.文件内容不能为空。
F5.CSV文件的名字不能存在除字母、数字,点和下划线以外的字符。
G5.当数据结束后执行方式选择循环使用所有数据时,CSV文件的第一行和最后一行除时间外的值必须一样。
在GCAir主机工具程序的建模菜单中,当用户增加了CSV文件模块后,GCAir软件平台首先对所增加的CSV文件模块进行词法检查,若词法错误,则提示用户“加载CSV文件错误”。若词法正确,则继续执行。当用户开始仿真时,GCAir软件平台要先判断所加载的CSV文件是否被修改,若未被修改,则继续仿真。若已被修改,则重新加载修改后的CSV文件,然后对该CSV文件进行词法检查,若词法错误,则提示用户“检查格式失败”,仿真停止,若词法正确,则继续仿真。
本发明实施中,优选的,仅以上述三种类型的脚本的封装进行举例说明,但本发明实施例中对脚本的类型不作限制。
本发明实施例中,软件基于FMI1.0和FMI2.0协议实现了相应的接口功能,能够将多源异构模型封装成的FMU,将外部软件系统、硬件系统、脚本封装为伪FMU,并提供FMI标准接口,按照标准加载FMI格式模型,与FMU一同组成模型库,并调度模块进行仿真,具体的执行流程如图3所示:
仿真引擎通过TCP网络协议,接收到数据后,执行命令处理线程,将不同的FMU或伪FMU分配到不同的线程执行操作:
1)命令处理线程:接收上位机发送的仿真命令和仿真参数,控制仿真进行;
2)主控制线程:在仿真开始后,按照仿真步长调度FMU等执行线程进行仿真及中间数据处理,并把结果数据交给数据发送线程;
3)数据发送线程:实时发送仿真结果数据到上位机;
4)FMU执行线程:处理FMU模型;
5)伪FMU_外部硬件系统执行线程:从外部硬件系统实时读取输入数据参与仿真计算;
6)伪FMU_外部软件系统执行线程:与第三方软件系统进行交互,完成模型的3D显示等功能,并处理来自外部软件系统的反馈信息;
7)伪FMU_脚本执行线程:读取并处理Python脚本、CSV文件、UserVar(用户自定义脚本模型)等模块封装成的伪FMU模型;
其中,最开始会由主线程对(伪)FMU进行格式检查和初始化操作,之后由上位机对(伪)FMU模型进行参数设定,然后准备工作结束,可以开始仿真。
本发明实施例中,在仿真过程中,在每一个仿真步长中,主线程会等待所有FMU线程执行完各自的任务,然后分别从各个FMU模型中把模型计算数据获取到,再对工程中的所有FMU模型进行数据交换,确保每一个FMU模型得到了最新的输入,然后将所有FMU模型的计算数据保存到发送缓冲区中,当达到采样时间时,才会将当前时刻数据发送到上位机上进行显示/分析,然后清空缓存区,其中,本发明实施例中,所述采样时间为仿真步长的整数倍,且所述采样时间≤10000仿真步长。最后主线程会唤醒所有的FMU线程,调度他们开始下一个仿真步长的工作,在FMU线程被唤醒后会和主线程同步当前的仿真步长数,之后便调用实际的FMU进行模型计算,在模型计算完成后会自行挂起,等待下一个步长。
基于上述的一种基于FMI标准的协同仿真方法,本发明实施例中还提供了一种协同仿真装置,所述协同仿真装置的结构框图如图4所示,包括:
解析模块201、接收模块202、更新模块203和显示模块204。
其中,
所述解析模块201,用于解析目标仿真系统中包含的仿真模块,其中,所述仿真模块包含FMU模型和伪FMU模型;
所述接收模块202,用于接收所述仿真模块中的包含的仿真数据;
所述更新模块203,用于依据所述仿真数据,更新所述FMU模型和所述伪FMU模型,得到目标仿真数据;
所述显示模块204,用于将所述目标仿真数据进行显示。
本发明公开了一种基于FMI标准的协同仿真装置,包括:解析目标仿真系统中包含的仿真模块,其中,所述仿真模块包含FMU模型和伪FMU模型;接收所述仿真模块中的包含的仿真数据;依据所述仿真数据,更新所述FMU模型和所述伪FMU模型,得到目标仿真数据;将所述目标仿真数据进行显示。上述的仿真装置,在仿真系统中加入了伪FMU模型,实现了半实物系统的协同仿真。
本发明实施例中,所述解析模块中所述FMU模型为多源异构模型,所述伪FMU模型为外部硬件、外部软件和脚本中的至少一个。
本发明实施例中,所述更新模块203包括:
确定单元205、分配计算单元206、获取单元207和交换更新单元208。
其中,
所述确定单元205,用于确定所述目标仿真系统中所述FMU模型和所述伪FMU模型之间的数据传输关系;
所述分配计算单元206,用于在预设的仿真步长内,将对应的仿真数据由主线程并行的分配给对应的FMU模型和/或伪FMU模型对应的执行线程进行仿真计算;
所述获取单元207,用于获取所述FMU模型和所述伪FMU模型中预设步骤的计算结果;
所述交换更新单元208,用于依据所述数据传输关系,将对应的计算结果在FMU模型和/或伪FMU模型中进行交换,完成所述FMU模型和所述伪FMU模型的更新。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种基于FMI标准的协同仿真方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于FMI标准的协同仿真方法,其特征在于,包括:
解析目标仿真系统中包含的仿真模块,其中,所述仿真模块包含FMU模型和伪FMU模型;
接收所述仿真模块中的包含的仿真数据;
依据所述仿真数据,更新所述FMU模型和所述伪FMU模型,得到目标仿真数据;
将所述目标仿真数据进行显示。
2.根据权利要求1所述的方法,其特征在于,所述FMU模型为多源异构模型,所述伪FMU模型为外部硬件、外部软件和脚本中的至少一个。
3.根据权利要求2所述的方法,其特征在于,所述伪FMU模型是通过对所述外部硬件、外部软件和脚本中的至少一个进行封装得到的,其中,对所述外部硬件的封装过程包括:
获取目标板卡的通用接口,其中,所述目标板卡为与所述外部件硬件通过总线连接的板卡;
依据第一预设类调用第二预设类解析所述目标板卡参数、管理所述目标板卡并提供所述通用接口。
4.根据权利要求2所述的方法,其特征在于,所述伪FMU模型是通过对所述外部硬件、外部软件和脚本中的至少一个进行封装得到的,其中,对所述外部软件的封装过程包括:
构建目标动态链接库;
依据所述目标动态链接库对所述外部软件进行封装。
5.根据权利要求2所述的方法,其特征在于,所述伪FMU模型是通过对所述外部硬件、外部软件和脚本中的至少一个进行封装得到的,其中,对所述脚本的封装过程包括:
解析所述脚本的脚本类型;
确定与所述脚本类型对应的目标封装规则;
依据所述目标封装规则对所述脚本进行封装。
6.根据权利要求5所述的方法,其特征在于,所述脚本的类型可以为自定义变量接口、Python脚本和CSV文件中的至少一种。
7.根据权利要求1所述的方法,其特征在于,依据所述仿真数据,更新所述FMU模型和所述伪FMU模型,包括:
确定所述目标仿真系统中所述FMU模型和所述伪FMU模型之间的数据传输关系;
在预设的仿真步长内,将对应的仿真数据由主线程并行的分配给对应的FMU模型和/或伪FMU模型对应的执行线程进行仿真计算;
获取所述FMU模型和所述伪FMU模型中预设步骤的计算结果;
依据所述数据传输关系,将对应的计算结果在FMU模型和/或伪FMU模型中进行交换,完成所述FMU模型和所述伪FMU模型的更新。
8.一种基于FMI标准的协同仿真装置,其特征在于,包括:
解析模块,用于解析目标仿真系统中包含的仿真模块,其中,所述仿真模块包含FMU模型和伪FMU模型;
接收模块,用于接收所述仿真模块中的包含的仿真数据;
更新模块,用于依据所述仿真数据,更新所述FMU模型和所述伪FMU模型,得到目标仿真数据;
显示模块,用于将所述目标仿真数据进行显示。
9.根据权利要求8所述的装置,其特征在于,所述解析模块中所述FMU模型为多源异构模型,所述伪FMU模型为外部硬件、外部软件和脚本中的至少一个。
10.根据权利要求8所述的装置,其特征在于,所述更新模块包括:
确定单元,用于确定所述目标仿真系统中所述FMU模型和所述伪FMU模型之间的数据传输关系;
分配计算单元,用于在预设的仿真步长内,将对应的仿真数据由主线程并行的分配给对应的FMU模型和/或伪FMU模型对应的执行线程进行仿真计算;
获取单元,用于获取所述FMU模型和所述伪FMU模型中预设步骤的计算结果;
交换更新单元,用于依据所述数据传输关系,将对应的计算结果在FMU模型和/或伪FMU模型中进行交换,完成所述FMU模型和所述伪FMU模型的更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910179835.0A CN109948213A (zh) | 2019-03-11 | 2019-03-11 | 一种基于fmi标准的协同仿真方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910179835.0A CN109948213A (zh) | 2019-03-11 | 2019-03-11 | 一种基于fmi标准的协同仿真方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109948213A true CN109948213A (zh) | 2019-06-28 |
Family
ID=67008682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910179835.0A Pending CN109948213A (zh) | 2019-03-11 | 2019-03-11 | 一种基于fmi标准的协同仿真方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109948213A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111123889A (zh) * | 2019-12-20 | 2020-05-08 | 北京空天技术研究所 | 飞行器制导控制仿真测试方法及装置 |
CN111444053A (zh) * | 2020-03-27 | 2020-07-24 | 北京润科通用技术有限公司 | 一种电子系统的变量激励方法和装置 |
CN111796531A (zh) * | 2020-07-07 | 2020-10-20 | 北京世冠金洋科技发展有限公司 | 一种多装备协同任务仿真方法、装置、存储介质及设备 |
CN111985055A (zh) * | 2020-08-28 | 2020-11-24 | 北京世冠金洋科技发展有限公司 | 一种模型封装方法、装置及电子设备 |
CN111985102A (zh) * | 2020-08-19 | 2020-11-24 | 西安中锐创联科技有限公司 | 一种多源异构模型分布式集成仿真方法及系统 |
CN112084668A (zh) * | 2020-09-14 | 2020-12-15 | 北京世冠金洋科技发展有限公司 | 一种仿真测试方法、装置及电子设备 |
CN112084734A (zh) * | 2020-09-14 | 2020-12-15 | 北京世冠金洋科技发展有限公司 | 一种测试结果处理方法、装置及电子设备 |
CN113761745A (zh) * | 2021-09-08 | 2021-12-07 | 北京世冠金洋科技发展有限公司 | 联合仿真方法及装置、存储介质及电子设备 |
CN113791793A (zh) * | 2021-09-09 | 2021-12-14 | 中国汽车技术研究中心有限公司 | 基于fmi的多源异构模型联合仿真方法、装置、设备及介质 |
CN114968745A (zh) * | 2022-06-10 | 2022-08-30 | 北京世冠金洋科技发展有限公司 | 一种处理系统模型的运行信息的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103093059A (zh) * | 2013-02-05 | 2013-05-08 | 中国电子科技集团公司电子科学研究院 | 一种实时高效的分布式半实物仿真系统构建方法 |
CN106354924A (zh) * | 2016-08-29 | 2017-01-25 | 中冶赛迪工程技术股份有限公司 | 基于fmi的装备协同仿真系统及其构建方法 |
CN109143894A (zh) * | 2018-09-28 | 2019-01-04 | 中冶赛迪技术研究中心有限公司 | 一种基于开源架构的半实物仿真系统及方法 |
CN109407552A (zh) * | 2018-12-17 | 2019-03-01 | 上海机电工程研究所 | 一种多半实物仿真系统协同仿真方法 |
-
2019
- 2019-03-11 CN CN201910179835.0A patent/CN109948213A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103093059A (zh) * | 2013-02-05 | 2013-05-08 | 中国电子科技集团公司电子科学研究院 | 一种实时高效的分布式半实物仿真系统构建方法 |
CN106354924A (zh) * | 2016-08-29 | 2017-01-25 | 中冶赛迪工程技术股份有限公司 | 基于fmi的装备协同仿真系统及其构建方法 |
CN109143894A (zh) * | 2018-09-28 | 2019-01-04 | 中冶赛迪技术研究中心有限公司 | 一种基于开源架构的半实物仿真系统及方法 |
CN109407552A (zh) * | 2018-12-17 | 2019-03-01 | 上海机电工程研究所 | 一种多半实物仿真系统协同仿真方法 |
Non-Patent Citations (3)
Title |
---|
TIAN HONG-FANG 等: "Semi-physical Simulation Platform Design Base on FMI", 《APPLIED MECHANICS AND MATERIALS》 * |
单立志: "基于FMI的实时仿真应用研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
陆冠华 等: "基于FMI的飞行器分系统多源异构模型一体化仿真", 《导航定位与授时》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111123889A (zh) * | 2019-12-20 | 2020-05-08 | 北京空天技术研究所 | 飞行器制导控制仿真测试方法及装置 |
CN111444053B (zh) * | 2020-03-27 | 2023-03-24 | 北京润科通用技术有限公司 | 一种电子系统的变量激励方法和装置 |
CN111444053A (zh) * | 2020-03-27 | 2020-07-24 | 北京润科通用技术有限公司 | 一种电子系统的变量激励方法和装置 |
CN111796531A (zh) * | 2020-07-07 | 2020-10-20 | 北京世冠金洋科技发展有限公司 | 一种多装备协同任务仿真方法、装置、存储介质及设备 |
CN111796531B (zh) * | 2020-07-07 | 2024-04-09 | 北京世冠金洋科技发展有限公司 | 一种多装备协同任务仿真方法、装置、存储介质及设备 |
CN111985102A (zh) * | 2020-08-19 | 2020-11-24 | 西安中锐创联科技有限公司 | 一种多源异构模型分布式集成仿真方法及系统 |
CN111985055B (zh) * | 2020-08-28 | 2023-08-08 | 北京世冠金洋科技发展有限公司 | 一种模型封装方法、装置及电子设备 |
CN111985055A (zh) * | 2020-08-28 | 2020-11-24 | 北京世冠金洋科技发展有限公司 | 一种模型封装方法、装置及电子设备 |
CN112084734A (zh) * | 2020-09-14 | 2020-12-15 | 北京世冠金洋科技发展有限公司 | 一种测试结果处理方法、装置及电子设备 |
CN112084668A (zh) * | 2020-09-14 | 2020-12-15 | 北京世冠金洋科技发展有限公司 | 一种仿真测试方法、装置及电子设备 |
CN112084668B (zh) * | 2020-09-14 | 2023-11-14 | 北京世冠金洋科技发展有限公司 | 一种仿真测试方法、装置及电子设备 |
CN113761745A (zh) * | 2021-09-08 | 2021-12-07 | 北京世冠金洋科技发展有限公司 | 联合仿真方法及装置、存储介质及电子设备 |
CN113761745B (zh) * | 2021-09-08 | 2023-08-15 | 北京世冠金洋科技发展有限公司 | 联合仿真方法及装置、存储介质及电子设备 |
CN113791793A (zh) * | 2021-09-09 | 2021-12-14 | 中国汽车技术研究中心有限公司 | 基于fmi的多源异构模型联合仿真方法、装置、设备及介质 |
CN114968745A (zh) * | 2022-06-10 | 2022-08-30 | 北京世冠金洋科技发展有限公司 | 一种处理系统模型的运行信息的方法及装置 |
CN114968745B (zh) * | 2022-06-10 | 2023-06-16 | 北京世冠金洋科技发展有限公司 | 一种处理系统模型的运行信息的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109948213A (zh) | 一种基于fmi标准的协同仿真方法及装置 | |
US20130238384A1 (en) | Business management system | |
US10248545B2 (en) | Method for tracking high-level source attribution of generated assembly language code | |
Pohlmann et al. | Generating functional mockup units from software specifications | |
Patil et al. | Formal Verification of IEC61499 Function Blocks with Abstract State Machines and SMV--Modelling | |
CN111650847A (zh) | 执行机构模型在航空发动机硬件在回路平台的集成方法 | |
US8032877B2 (en) | Compiler neutral linking solution for C++ code | |
Lee et al. | Requirements modeling and automated requirements-based test generation | |
CN109100952B (zh) | 分布式半实物仿真航天器健康管理系统区域推理机 | |
CN112667242A (zh) | 一种将c代码封装成fmu的方法及装置 | |
Ma et al. | System synthesis from aadl using polychrony | |
Xie et al. | Model checking for an executable subset of UML | |
EP3575990A2 (en) | Observer for simulation test and verification | |
Yang et al. | C2AADL_Reverse: A model-driven reverse engineering approach to development and verification of safety-critical software | |
Roth et al. | A gateway to easily integrate simulation platforms for co-simulation of cyber-physical systems | |
Tessier et al. | A component-based methodology for embedded system prototyping | |
Grabe et al. | Credo methodology: Modeling and analyzing a peer-to-peer system in credo | |
Bardaro et al. | From models to software through automatic transformations: An AADL to ROS end-to-end toolchain | |
CN114003232A (zh) | 一种基于航电数据模型的传输服务实现方法 | |
Socci et al. | A timed-automata based middleware for time-critical multicore applications | |
Khoroshilov et al. | Integrating aadl-based tool chain into existing industrial processes | |
CN110187898A (zh) | 一种软件包的部署系统及方法 | |
Ma et al. | Virtual prototyping AADL architectures in a polychronous model of computation | |
Hu et al. | Safety critical applications and hard real-time profile for Java: a case study in avionics | |
Din et al. | An approach to compositional reasoning about concurrent objects and futures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190628 |