System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种mo文件的查找和处理方法技术_技高网

一种mo文件的查找和处理方法技术

技术编号:40090916 阅读:9 留言:0更新日期:2024-01-23 16:11
本发明专利技术涉及计算机仿真领域,公开了一种mo文件的查找和处理方法。查找mo文件时,先在模型库类加载器的内存缓存中进行查找,按照模型库类加载器层级高低关系从高到低的顺序,在各模型库类加载器内存缓存中查找,如果查找未果,则从基础类型加载器的固态缓存开始,按照缓存级别从高到低、模型库类加载器层级高低关系从低级到高级的顺序,遍历剩余模型库类加载器的各级缓存。若查找到的mo文件为SRC数据结构对象格式,则不进行处理;若非SRC数据结构对象格式,则进行处理,存入相应的缓存中。这种查找和处理方法,查找速度快,且不会重复查找,在编译mo的过程中快速查找并转换成所需要的SRC数据结构对象,用于后续的编译仿真工作,加快整体编译速度。

【技术实现步骤摘要】

本专利技术涉及计算机仿真领域,尤其涉及一种mo文件的查找和处理方法


技术介绍

1、modelica是一种用于建模和仿真复杂系统的开放标准建模语言。它提供了一种描述物理系统的方式,包括机械、电气、热力、控制和其他领域的系统。modelica还是一种基于对象的语言,允许用户描述系统的物理结构、组件之间的连接和它们之间的行为。

2、modelica模型描述的是系统的物理行为,而不仅仅是数学方程。这使得modelica成为一种强大的工具,可以用于建模和仿真各种复杂系统,从汽车和飞机到能源系统和工业过程。

3、使用modelica语言,可以创建模型,这些模型由各种组件(如电机、传感器、阀门等)组成,这些组件相互交互以描述系统的行为。modelica提供了丰富的内置库,涵盖了各种领域的建模需求,例如电气、机械、控制等。

4、运行modelica模型需要加载多种模块或组件,模块或组件存储于mo文件中,如用户创建的modelica内置库中的各种组件对应的mo文件,对于mo文件的查找及加载是一项非常复杂且耗时的工作,影响程序的编译、运行效率。

5、因此,针对modelica语言模型亟需一种能够快速查找、准确加载mo文件的方法。


技术实现思路

1、为了解决上述技术问题,本专利技术提供了一种基于modelica语言模型的mo文件的查找和处理方法,实现了快速编译modelica语言生成可执行求解器的目的,提高了编译modelica语言模型的正确性及编译速度

2、本专利技术提供的一种mo文件的查找方法,具体包括如下步骤:

3、步骤s1:根据mo文件的编译请求,确定查找对象,将所述查找对象输入类加载器中进行查找;

4、所述类加载器包括多个模型库类加载器,所述多个模型库类加载器具有不同层级,每个所述模型库类加载器中包含多级缓存;

5、步骤s2:基于多个模型库类加载器的层级高低关系和每个模型库类加载器的缓存级别,在所述模型库类加载器中进行查找;

6、步骤s3:判断查找结果:

7、若查找到所述mo文件,则结束查找;

8、若未查找到所述mo文件,返回未查找到的异常信息。

9、具体地,所述模型库类加载器包括基础类型加载器、标准库类型加载器、商业库类型加载器、用户库类型加载器;

10、所述模型库类加载器的层级高低关系,按照从高到低的顺序为:用户库类型加载器>商业库类型加载器>标准库类型加载器>基础类型加载器。

11、进一步地,所述缓存包括内存缓存、固态缓存和硬盘存储,所述内存缓存、固态缓存和硬盘存储缓存级别从高到低的顺序为:内存缓存>固态缓存>硬盘存储。

12、进一步地,步骤s2中,基于多个模型库类加载器的层级高低关系和每个模型库类加载器的缓存级别,在所述模型库类加载器中进行查找,具体包括:

13、步骤s21:按照所述模型库类加载器层级从高到低的顺序,在各模型库类加载器内存缓存中查找;

14、若在所述模型库类加载器的内存缓存中查找到所述mo文件,执行步骤s3;

15、若在所述模型库类加载器的内存缓存中未查找到所述mo文件,执行步骤s22;

16、步骤s22:从基础类型加载器的固态缓存开始,按照缓存级别从高到低、模型库类加载器层级高低关系从低级到高级的顺序,遍历剩余模型库类加载器的各级缓存,进行查找;

17、若在所述模型库类加载器的固态缓存中查找到所述mo文件,则将所述mo文件进行处理,将处理后的mo文件存至当前模型库类加载器的内存缓存;

18、若在所述模型库类加载器的硬盘存储中查找到所述mo文件,则将所述mo文件进行处理,将处理后的mo文件存至当前模型库类加载器的固态缓存和内存缓存。

19、具体地,所述内存缓存中存储所述mo文件的数据结构对象格式,所述固态缓存中存储所述mo文件的数据结构对象序列化后的二进制流文件格式,所述硬盘存储中存储所述mo文件的原始格式。

20、本专利技术还提供一种mo文件的处理方法,由上述任一项所述的一种mo文件的查找方法得到mo文件,或者根据mo文件的编译请求给定mo文件,针对所述mo文件进行处理,具体如下:

21、判断所述mo文件的格式;

22、若所述mo文件为所述数据结构对象格式,则不进行处理;

23、若所述mo文件为所述二进制流文件格式,则进行反序列化处理,得到数据结构对象格式的mo文件;

24、若所述mo文件为所述原始格式,处理步骤包括:

25、校验原始格式mo文件的合法性,取得合法mo文件;

26、将所述合法mo文件传入语法解析工具,对所述合法mo文件进行语法和词法分析,生成由所述合法mo文件的内容信息组成的语法树;

27、转换所述语法树,获得数据结构对象格式的mo文件。

28、具体地,所述校验所述mo文件合法性,具体包括:

29、文件是否存在且文件的后缀是否为.mo;

30、若文件存在且后缀为.mo,则确定所述mo文件合法,得到所述合法mo文件;

31、若所述mo文件不存在或所述mo文件的后缀不为.mo,则确定所述mo文件为非法文件,直接跳出不再执行后续步骤。

32、进一步地,对所述合法mo文件进行语法和词法分析,具体包括:根据modelica语法的g4文件中描述的语法规则,对所述合法mo文件的内容进行词法分析及语法解析:

33、如果所述合法mo文件的内容不符合所述g4文件中描述的语法规则,则返回错误信息;

34、如果所述合法mo文件的内容符合所述g4文件中描述的语法规则,则生成所述语法树。

35、进一步地,所述数据结构对象为src数据结构对象。

36、进一步地,所述语法解析工具为antlr。

37、本专利技术实施例具有以下技术效果:

38、1.本专利技术中进行mo文件查找时,基于多个模型库类加载器的层级高低关系和每个模型库类加载器的缓存级别,在模型库类加载器中进行查找。当在模型库类加载器的内存缓存中进行查找,按照模型库类加载器层级高低关系从高到低的顺序,在各模型库类加载器内存缓存中查找,如果内存缓存中没有查找,则从基础类型加载器的固态缓存开始,按照缓存级别从高到低、模型库类加载器层级高低关系从低级到高级的顺序,遍历剩余模型库类加载器的各级缓存,进行查找,查找到后直接返回结果。这种基于模型库类加载器层级高低关系和缓存级别关系的查找方式,查找速度快,不会出现查找到多个的问题,提高软件的编译速度。

39、2.在查找mo文件过程中,若mo文件在模型库类加载器的内存缓存中查找到,则结束查找操作;若mo文件在模型库类加载器的固态缓存中查找到,则将查找到的mo文件进行数据格式处理,存至当前模型库类加载器的内存缓存中;若mo文件在模型库类加载器的硬盘本文档来自技高网...

【技术保护点】

1.一种mo文件的查找方法,其特征在于,具体包括如下步骤:

2.根据权利要求1所述的一种mo文件的查找方法,其特征在于:所述模型库类加载器包括基础类型加载器、标准库类型加载器、商业库类型加载器、用户库类型加载器;

3.根据权利要求2所述的一种mo文件的查找方法,其特征在于:

4.根据权利要求3所述的一种mo文件的查找方法,其特征在于:步骤S2中,基于多个模型库类加载器层级高低关系和每个模型库类加载器的缓存级别,在所述模型库类加载器中进行查找,具体包括:

5.根据权利要求3所述的一种mo文件的查找方法,其特征在于:所述内存缓存中存储所述mo文件的数据结构对象格式,所述固态缓存中存储所述mo文件的数据结构对象序列化后的二进制流文件格式,所述硬盘存储中存储所述mo文件的原始格式。

6.一种mo文件的处理方法,其特征在于:由权利要求1-5任一项所述的一种mo文件的查找方法得到mo文件,或者根据mo文件的编译请求给定mo文件,针对所述mo文件进行处理,具体如下:

7.根据权利要求6所述的一种mo文件的处理方法,其特征在于:所述校验所述mo文件合法性,具体包括:

8.根据权利要求6所述的一种mo文件的处理方法,其特征在于:对所述合法mo文件进行语法和词法分析,具体包括:根据Modelica语法的g4文件中描述的语法规则,对所述合法mo文件的内容进行词法分析及语法解析:

9.根据权利要求6所述的一种mo文件的处理方法,其特征在于:所述数据结构对象为SRC数据结构对象。

10.根据权利要求6所述的一种mo文件的处理方法,其特征在于:所述语法解析工具为Antlr。

...

【技术特征摘要】

1.一种mo文件的查找方法,其特征在于,具体包括如下步骤:

2.根据权利要求1所述的一种mo文件的查找方法,其特征在于:所述模型库类加载器包括基础类型加载器、标准库类型加载器、商业库类型加载器、用户库类型加载器;

3.根据权利要求2所述的一种mo文件的查找方法,其特征在于:

4.根据权利要求3所述的一种mo文件的查找方法,其特征在于:步骤s2中,基于多个模型库类加载器层级高低关系和每个模型库类加载器的缓存级别,在所述模型库类加载器中进行查找,具体包括:

5.根据权利要求3所述的一种mo文件的查找方法,其特征在于:所述内存缓存中存储所述mo文件的数据结构对象格式,所述固态缓存中存储所述mo文件的数据结构对象序列化后的二进制流文件格式,所述硬盘存储中存储所述mo文件的原始格式。

...

【专利技术属性】
技术研发人员:王妍张向磊何绍清程旭丁静雯马兵兵梅俊宇
申请(专利权)人:中汽研汽车检验中心广州有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1