一种大容量仿真结果文件存储与访问方法

文档序号:6354251阅读:348来源:国知局
专利名称:一种大容量仿真结果文件存储与访问方法
技术领域
本发明涉及一种基于物理建模语言的多领域建模与仿真软件,具体涉及一种在建 模与仿真软件中,由求解器生成的包含大量数据的仿真结果文件的存储和访问方法。
背景技术
Modelica是为解决复杂物理系统建模与仿真问题而提出的一种统一建模语言,它 采用面向对象和组件的思想,对不同领域物理系统的模型进行统一表述,语言本身带有机 械、电子、液压、控制、热流等领域的标准库和扩展库。基于Modelica语言,出现了多种建模 与仿真软件。仿真结果文件存储了对模型求解的结果信息,是对模型进一步处理的基础。基于物理建模语言Modelica建立的模型,采用陈述式建模方式,具有方程数较多 的特点,尤其对于涉及到多体的模型,不仅包含模型的物理特性方程,还包含模型各个组件 的空间位置方程。当模型复杂程度提高,或用户的仿真时间延长时,求解器求解点数随之增 加,同一变量的数据随之增加,导致求解生成的仿真结果数据量非常大。对大容量仿真结果 文件处理的难点在于文件的大小与访问速度相互矛盾。文件过大,则对其访问速度减慢, 延长了仿真的响应时间,降低了软件的性能;限制文件大小,虽然可以提高软件的响应速 度,但是,降低了软件可以处理的模型的复杂程度,限制了软件在工程上的应用。现有的多领域建模与仿真软件如瑞典Dynasim AB公司的Dymola和德国ITI GmbH 公司的Simulation X等,采用的数据分类存储和整体访问的方法,能够保证系统的响应速 度符合用户要求,但是,能处理的仿真结果文件偏小,工程应用明显受到限制。因此,提供一种适用于大容量仿真结果文件的存储与访问方法,对于提高仿真软 件的响应速度及处理复杂模型的能力,有着重要的意义。

发明内容
本发明的目的是提供一种大容量仿真结果文件存储与访问方法,在提高软件响应 速度的同时,增大软件可以处理的仿真结果文件的大小,以增强软件处理复杂模型的能力, 提高软件在工程中的应用性。为达到上述目的,本发明采用的技术方案是一种大容量仿真结果文件存储与访 问方法,包括文件存储方法和文件访问方法,所述文件存储方法为,数据被分类以表的形式 分段存储于文件中;数据写入时,先将数据写入内存中预先分配的缓冲区中,缓冲区的大小 根据运行环境动态确定;缓冲区溢出时,将缓冲区的数据一次性写入文件;
所述文件访问方法为,数据被分类按需访问;访问文件时,根据访问请求读入所需的局 部文件数据,存储于内存中预先分配的缓冲区中,请求方对缓冲区中的数据进行读取操作, 缓冲区的大小根据运行环境动态确定。上述技术方案中,所述文件包括文件头、表元信息和表数据三部分,所述文件头中 的信息包括存储的表的个数、允许存储的最多表的个数;所述表元信息包括每个表的类型、 行数、列数、表数据在文件中的位置信息、以及变量信息表;所述表数据包括由表元信息定义的每个表的数据,每个表中分别包括列名、列类型、列宽以及与列名对应的仿真结果数据。上述技术方案中,所述表数据中每个表的数据通过分次写入方法形成,每次缓冲 区溢出时,根据缓冲区的数据对各个表的数据进行追加存储,更新文件头和表元信息,并清 空缓冲区中的表数据以进行下一次写入。进一步的技术方案,进行文件访问时,先读入变量信息表,根据访问请求在变量信 息表中检索待访问的数据的位置,仅读入需要的数据至缓冲区中。上述技术方案中,所述数据被分为时变量和时不变量两类。时变量是指仿真过程 中值随时间变化的信号量,时不变量指仿真过程中值恒定不变的信号量。上述技术方案中,所述表被分为一维表和二维表两类。一维表仅包含一行仿真结 果数据,存储时允许先预留空间,后写入数据。二维表包含多行仿真结果数据,存储时,在对 当前二维表的写入操作未完成之前,不允许创建新的表。在实际使用中,仿真结果文件数据由文件概要信息表、变量信息表、常量数据表和 变量数据表等表组成。概要信息表记录文件的版本及简要说明信息,变量信息表记录仿真 结果文件中记录的信号量(包括时变量和时变量的名称)、信号量数据所属的表、数据在表 中的位置以及信号量的简要说明等信息。访问信号量数据时,首先通过变量信息表检索,再 读入需要的数据。在仿真结果文件存储时,遵循创建文件,创建表,写入数据,关闭表,关闭文件的流 程。创建文件时写入文件头信息,预留表元信息空间。创建一维表时可以先预留空间,以后 再写入数据。创建二维表时,必须待向表中写入数据后,才能进行其他表的操作。当写入数 据时,先将数据写入预先分配的动态缓存中,缓存溢出后再一次性写入文件,然后继续后续 写入操作。待完成对表操作后更新文件头或表元信息。在访问仿真数据结果文件时,遵循打开文件,打开表,读入数据,关闭表,关闭文件 的流程。读入数据时,首先读入变量信息表,在表中检索读入数据的位置,然后读入需要的 数据。由于上述技术方案运用,本发明与现有技术相比具有下列优点
1.本发明在存储时将文件数据以表的形式进行组织,存储时表的数据被分段写入,每 次写入的数据大小为预先分配的缓存区大小,避免了将文件数据整体写入时机器内存对文 件大小的约束,能够存储超过20G大小的仿真结果文件。2.本发明在访问时按需读入数据,通过变量信息表检索,每次只读入文件的部分 数据到内存,避免了将文件数据全部载入内存时,机器内存对文件大小的限制以及读入数 据缓慢的缺点。3.本发明通过动态分配缓存技术,能够达到现有技术中仿真软件相同的响应速 度;而能够处理的仿真结果文件的大小远远超过现有技术能够处理的仿真结果文件的大


图1是实施例一中大数据仿真文件物理组织示意图。
具体实施例方式
下面结合附图及实施例对本发明作进一步描述 实施例一一种大容量仿真结果文件存储与访问方法;
所述文件存储方法为,数据被分类以表的形式分段存储于文件中。数据写入时,先写入 预先分配的缓冲区中,缓冲区中大小根据运行环境动态确定。缓冲区溢出时,再将数据一次 性写入文件。 所述文件访问方法为,数据被分类按需访问。访问文件时,只读入感兴趣的局部文 件数据存储于预先分配的缓冲区中,缓冲区的大小根据运行环境动态确定。以写入表1、表2的内容举例说明大容量仿真结果文件的存储方法如下。表 权利要求
1.一种大容量仿真结果文件存储与访问方法,包括文件存储方法和文件访问方法,其 特征在于所述文件存储方法为,数据被分类以表的形式分段存储于文件中;数据写入时,先将数 据写入内存中预先分配的缓冲区中,缓冲区的大小根据运行环境动态确定;缓冲区溢出时, 将缓冲区的数据一次性写入文件;所述文件访问方法为,数据被分类按需访问;访问文件时,根据访问请求读入所需的局 部文件数据,存储于内存中预先分配的缓冲区中,请求方对缓冲区中的数据进行读取操作, 缓冲区的大小根据运行环境动态确定。
2.根据权利要求1所述的大容量仿真结果文件存储与访问方法,其特征在于所述文 件包括文件头、表元信息和表数据三部分,所述文件头中的信息包括存储的表的个数、允许 存储的最多表的个数;所述表元信息包括每个表的类型、行数、列数、表数据在文件中的位 置信息、以及变量信息表;所述表数据包括由表元信息定义的每个表的数据,每个表中分别 包括列名、列类型、列宽以及与列名对应的仿真结果数据。
3.根据权利要求2所述的大容量仿真结果文件存储与访问方法,其特征在于所述表 数据中每个表的数据通过分次写入方法形成,每次缓冲区溢出时,根据缓冲区的数据对各 个表的数据进行追加存储,更新文件头和表元信息,并清空缓冲区中的表数据以进行下一 次写入。
4.根据权利要求2所述的大容量仿真结果文件存储与访问方法,其特征在于进行文 件访问时,先读入变量信息表,根据访问请求在变量信息表中检索待访问的数据的位置,仅 读入需要的数据至缓冲区中。
全文摘要
本发明公开了一种大容量仿真结果文件存储与访问方法,包括文件存储方法和文件访问方法,其特征在于所述文件存储方法为,数据被分类以表的形式分段存储于文件中;数据写入时,先将数据写入内存中预先分配的缓冲区中,缓冲区的大小根据运行环境动态确定;缓冲区溢出时,将缓冲区的数据一次性写入文件;所述文件访问方法为,数据被分类按需访问;访问文件时,根据访问请求读入所需的局部文件数据,存储于内存中预先分配的缓冲区中,请求方对缓冲区中的数据进行读取操作,缓冲区的大小根据运行环境动态确定。本发明能够达到现有技术中仿真软件相同的响应速度;而能够处理的仿真结果文件的大小远远超过现有技术能够处理的仿真结果文件的大小。
文档编号G06F17/50GK102073743SQ20111003449
公开日2011年5月25日 申请日期2011年2月1日 优先权日2011年2月1日
发明者丁建完, 吕柳燕, 聂藩, 赵建军, 陈立平, 龚雄 申请人:苏州同元软控信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1