一种多领域协同分布式仿真系统的制作方法

文档序号:6380132阅读:314来源:国知局
专利名称:一种多领域协同分布式仿真系统的制作方法
技术领域
本发明涉及一种多领域协同分布式仿真系统,属于工程系统数字分布式协同仿真技术领域。
背景技术
工程系统(包括飞机、导弹、卫星、汽车等)通常由机械、电气、液压、燃油、环控等不同领域的子系统组成,所以在设计阶段通常需要各种不同领域的建模仿真软件(如Matlab/ Simulink、ADAMS、Simplorer> Flowmaster> AMESim等)进行系统分析。而不同领域的子系统之间相互影响,所以需要不同领域的仿真软件进行协同仿真分析以完成大系统分析的功倉泛。
而不同领域的仿真软件其建模机理、解算方法都有所不同,解算步长通常外部也无法控制,软件时钟也各自独立,这就增加了各仿真软件协同仿真的难度。而且通常各仿真软件运行在不同的计算机上,而且运行不同的操作系统,多数软件本身并不支持分布式数据传输,这使分布式协同仿真更加困难。
目前现有的进行多领域协同仿真的系统均采用将不同软件建立的模型通过S函数等形式嵌入到Matlab/Simulink中,成为Simulink的子模型,然后通过Simulink的解算器或者内嵌的自带解算器进行解算,时钟推进及数据交互由Simulink完成,这种协同仿真模式存在如下问题
I.不是所有的仿真软件均能够封装成Simulink下的模型并支持导出,这就限制了协同仿真软件的种类;
2.不同仿真软件通常使用自带的适合该领域系统模型的解算器,该解算器在导出时由于脱离各自仿真软件独立运行,其功能均有所裁剪,这将影响协同仿真的解算精度,甚至导致解算失败;
3.不同仿真软件的解算步长均不同,而且多数采用变步长解算,而这种嵌入到 Simulink的模式,其解算步长由Simulink指定,Simulink必须设置步长为所有软件生成模型所需要的最小步长才能使协同仿真正常解算,这不仅严重影响了解算效率,而且可能带来不必要的数值误差;
4.嵌入到Simulink的模式通常无法进行分布式仿真,而单机仿真解算时间收到 CPU的制约,从而导致解算时间过长,而且收到Simulink长期解算导致的软件稳定性的影响,容易导致解算失败;
5.由于不同软件仿真步长、系统初值等不同,这种嵌入到Simulink的模式无法实现不同步长模型之间的数据内外差值补偿,从而在数据交互过程中模型由于输入数据的突变导致系统刚性,致使局部解算失败而导致协同仿真失败;
6.由于嵌入到Simulink模式将不同领域软件生成的模型进行了封装,无法在运行过程中监视模型内部数据变化,不利于仿真分析;
7.各领域模型的数据交互传输均需通过Simulink环境完成,无法实现点对点直接传输,当数据传输量很大时,这种传输方式将严重影响仿真速度。发明内容
本发明为解决现有的协同仿真系统存在的采用将不同软件建立的模型嵌入同一系统时存在的不支持所有仿真软件导出、协同仿真的解算精度和解算效率较差以及容易导致协同仿真失败的问题,进而提供了一种多领域协同分布式仿真系统。为此,本发明提供了如下的技术方案
一种多领域协同分布式仿真系统,包括
主控模块,用于通过载入预定模型的描述文件获得相应的模型信息,根据所述模型信息设置时钟基频并下发所述时钟基频及仿真控制指令,根据所述模型信息设置位于数据服务模块中的模型之间的数据传输通道并定义各个数据通道的数据更新周期;
数据服务模块,用于通过建立具有独立数据传输周期的数据链路,为分布式协同仿真的仿真数据提供数据通道;
模型接口模块,用于建立主控模块与仿真子引擎的连接关系和调度管理,并将所述时钟基频及仿真控制指令发送给仿真子引擎,以完成相应模型的解算。
本发明的有益效果包括提出了独立于多领域仿真软件的独立运行的协同仿真环境架构,不同仿真软件在该架构统一管理下进行协同仿真运行;提出了多领域仿真软件数据点对点传输模式,无需通过中间软件环境传输,当传输数据量较大时不会影响其它软件, 提高了仿真效率;提出了协同仿真数据软总线的概念,将模型解算周期与总线数据传输周期分离,不仅更加逼近实际系统行为,而且便于进行数据控制及数据预测算法实现;将仿真引擎分为主引擎和子引擎两层管理,不仅提高了效率,而且增加了灵活性;子引擎的时钟与主引擎时钟同步推进但相对独立,对应的仿真时间各自独立,从而便于系统中仿真节点动态加入与退出;支持分布式协同仿真节点运行在不同操作系统环境下进行异构系统仿真; 支持实时仿真时钟调度,子仿真节点可运行在实时操作系统中,并可通过物理I/o接口与外部实物连接。


为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图I是本发明的具体实施方式
提供的多领域协同分布式仿真系统的结构示意图2是本发明的具体实施方式
提供的仿真子引擎的内部架构示意图3是本发明的具体实施方式
提供的当前变量表内部原理示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
具体实施方式
提供了一种多领域协同分布式仿真系统,如图I所示,包括
主控模块1,用于通过载入预定模型的描述文件获得相应的模型信息,根据所述模型信息设置时钟基频并下发所述时钟基频及仿真控制指令,根据所述模型信息设置位于数据服务模块2中的模型之间的数据传输通道并定义各个数据通道的数据更新周期;
数据服务模块2,用于通过建立具有独立数据传输周期的数据链路,为分布式协同仿真的仿真数据提供数据通道;
模型接口模块3,用于建立主控模块I与仿真子引擎的连接关系和调度管理,并将所述时钟基频及仿真控制指令发送给仿真子引擎,以完成相应模型的解算。
具体实施方式
提出的支持多核多模型并行分布式实时仿真的系统架构由三部分组成主控模块、数据服务模块和模型接口模块。
具体的,主控模块I负责分布式协同仿真设计、运行管控等功能,包含的子模块及功能如下
主控模块完成分布式实时仿真调度引擎功能,
(I)主孔子模块通过载入预定模型的描述文件得到模型信息,根据模型信息设置时钟管理子模块的时钟基频,并将该时钟基频及仿真控制指令下发送给各个仿真子引擎的子时钟(SubTimer);
(2)协同仿真设计子模块根据载入的模型信息设置位于数据服务模块中的模型之间的数据传输通道,并定义各个通道的数据更新周期,如果是事件类型的数据通道则不受数据更新周期制约;
(3)数据服务管理子模块通过设置仿真运行需要监视的数据完成数据在线监视、 保存等功能,同时为了提高数据传输效率,该模块所需数据直接通过数据服务模块采集,无需通过子仿真节点单独发送;
(4)仿真运行管理子模块负责协同仿真调度功能,负责仿真子引擎的启动、运行、 暂停/恢复、停止等功能,处理仿真节点的动态加入与退出以及仿真过程中的事件处理和协调功能。
数据服务模块2采用DDS (Data Distribution Service,数据分发服务)作为基层服务,DDS支持实时数据分发及数据线路协议,完整的数据质量服务等功能。在DDS服务的基础上该层添加了软总线服务,每条传输数据相同的通道定义为一条虚拟链路,并设置该虚拟链路传输的数据为一个Topic,并通过系统自动生成该Topic。数据服务模块2是分布式协同仿真的数据通道,采用点对点的数据服务策略,并通过内部机制确保数据的完整性、 确定性及数据传输顺序,物理介质采用以太网以便于分布式仿真,在网络应用层建立虚拟数据链路,每条链路具有独立的数据传输周期,形成数据软总线。
模型接口模块3通过仿真子引擎完成模型调度、数据传输等功能。模型接口模块 3首先完成模型的初始化、数据服务层对应该仿真节点服务的初始化,向主控计算机发送其运行消息,以及建立子引擎线程的任务。在初始化完成之后,子引擎开始建立数据总线与模型输入输出之间的连接关系和调度管理。模型接受子引擎的调度完成模型解算。具体流程如图2所示。模型接口模块3通过在仿真软件中嵌入自定义的模块接口在仿真初始化时建立仿真子引擎,该子引擎又通过模块接口实现仿真软件与子引擎的数据交互,子引擎又通过模块接口控制该模块接口的解算,从而实现外部控制仿真软件解算过程的目的。子引擎通过接收主引擎发送的时钟基频,并根据各自仿真软件建立的模型信息及软总线链路数据传输周期进行模型解算控制及数据向总线传输控制。
子引擎独立于模型计算与数据总线之外,来进行子系统模型数据的分发与时钟管理,完成三个主要功能
(I)在数据总线上取得主控计算机发出的同步时钟时间,进而判断是否与子模型的模型解算周期匹配(即是否是模型解算周期的倍数关系),如果匹配则触发子模型进行一步运算。
(2)子引擎在数据总线上按照输入端口总线周期是否匹配主控时钟的原则更新订阅其他模型发出的本模型输入端口数据。
(3)子引擎将与主控时钟匹配的输入端口总线数据进行更新,再存入CVT (当前变量表)中,将与主控时钟匹配的输出端口数据从CVT中进行拷贝,并发布到数据总线上。
当前变量表(CVT)用于存储模型的端口信息。这些信息包括端口的ID,端口的名称,端口的数据类型,端口的数据维数,数据队列长度,端口的数据方向,端口的初始值等。 CVT中数据的存储以队列结构实现。此意味着当子引擎向数据总线订阅数据以更新CVT时将保持一定数量的历史数据,并将历史数据中最陈旧的一个抛弃,而进入一个最新的数据, 如图3所示。
CVT完成两个主要功能
(I)接受子引擎订阅的总线数据,并存入队列,当模型进入其解算周期时,将队头的数据拷贝给模型相应的输入端口。
(2)当模型输出端口的总线周期匹配到主控时钟时,将队头的数据拷贝给子引擎, 通过子引擎向数据总线进行数据发布。
采用本具体实施方式
提供的技术方案,提出了独立于多领域仿真软件的独立运行的协同仿真环境架构,不同仿真软件在该架构统一管理下进行协同仿真运行;提出了多领域仿真软件数据点对点传输模式,无需通过中间软件环境传输,当传输数据量较大时不会影响其它软件,提高了仿真效率;提出了协同仿真数据软总线的概念,将模型解算周期与总线数据传输周期分离,不仅更加逼近实际系统行为,而且便于进行数据控制及数据预测算法实现;将仿真引擎分为主引擎和子引擎两层管理,不仅提高了效率,而且增加了灵活性; 子引擎的时钟与主引擎时钟同步推进但相对独立,对应的仿真时间各自独立,从而便于系统中仿真节点动态加入与退出;支持分布式协同仿真节点运行在不同操作系统环境下进行异构系统仿真;支持实时仿真时钟调度,子仿真节点可运行在实时操作系统中,并可通过物理I/o接口与外部实物连接。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种多领域协同分布式仿真系统,其特征在于,包括 主控模块,用于通过载入预定模型的描述文件获得相应的模型信息,根据所述模型信息设置时钟基频并下发所述时钟基频及仿真控制指令,根据所述模型信息设置位于数据服务模块中的模型之间的数据传输通道并定义各个数据通道的数据更新周期; 数据服务模块,用于通过建立具有独立数据传输周期的数据链路,为分布式协同仿真的仿真数据提供数据通道; 模型接口模块,用于建立主控模块与仿真子引擎的连接关系和调度管理,并将所述时钟基频及仿真控制指令发送给仿真子引擎,以完成相应模型的解算。
2.根据权利要求I所述的多核多模型并行分布式实时仿真系统,其特征在于,所述主控模块包括 主控子模块,用于通过载入预定模型的描述文件获得模型信息,根据所述模型信息设置时钟管理子模块的时钟基频,并将所述时钟基频及仿真控制指令下发送给各个仿真子引擎的子时钟; 协同仿真设计子模块,用于根据载入的模型信息设置位于数据服务模块中中的模型之间的数据传输通道,并定义各个通道的数据更新周期; 数据服务管理子模块,用于通过设置仿真运行需要监视的数据完成数据在线监视和数据保存; 仿真运行管理子模块,用于仿真子引擎的启动、运行、暂停、恢复或停止,并处理仿真节点的动态加入与退出以及仿真过程中的事件处理和协调功能。
全文摘要
本发明提供了一种多领域协同分布式仿真系统,包括主控模块,用于通过载入预定模型的描述文件获得相应的模型信息,根据所述模型信息设置时钟基频并下发所述时钟基频及仿真控制指令,根据所述模型信息设置位于数据服务模块中的模型之间的数据传输通道并定义各个数据通道的数据更新周期;数据服务模块,用于通过建立具有独立数据传输周期的数据链路,为分布式协同仿真的仿真数据提供数据通道;模型接口模块,用于建立主控模块与仿真子引擎的连接关系和调度管理,并将所述时钟基频及仿真控制指令发送给仿真子引擎,以完成相应模型的解算。本发明支持所有仿真软件导出、具有协同仿真的解算精度和解算效率较高以及不易导致协同仿真失败的优点。
文档编号G06F17/50GK102982197SQ20121042602
公开日2013年3月20日 申请日期2012年10月30日 优先权日2012年10月30日
发明者李成功, 孙岩, 熊运鸿 申请人:北京华力创通科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1