Modelica语言模型处理方法、设备和存储介质与流程

文档序号:30969931发布日期:2022-08-02 18:33阅读:361来源:国知局
Modelica语言模型处理方法、设备和存储介质与流程
modelica语言模型处理方法、设备和存储介质
技术领域
1.本发明涉及软件领域,尤其涉及一种modelica语言模型处理方法、设备和存储介质。


背景技术:

2.工业仿真技术作为生产制造中的重要环节,旨在将实体工业中的各个模块转化成数据并拟合到一个虚拟的体系中,即仿真模型。在仿真模型运行时,能够较为真实地展现各个工作和流程,并反馈仿真数据。通过前期对仿真模型的搭建与仿真计算,可消除或降低在生产制造中可能会出现的故障应对不完全、实验危险系统高、验证费用高昂等诸多问题。
3.modelica 是一种面向对象的、适用于规范化构建复杂异构自然系统或人造系统的建模语言,可以满足多领域物理系统建模需求,而且 modelica语言可以搭建软件组件模型,支持组件的创建和连接,因此,对于工业仿真中复杂物理系统的建模,modelica是一种理想的结构化描述语言,彻底地实现了不同领域模型间的无缝集成,能够实现完全意义上的多领域统一建模。
4.而modelica文本如仅仅通过普通的文本编辑器打开,只能查看其文本代码,可视化程度极低,不利于工程人员进行方便、快捷的模型搭建,也不利于模型使用人员对模型快速的使用和分析。
5.有鉴于此,特提出本发明。


技术实现要素:

6.为了解决上述技术问题,本发明提供了一种modelica语言模型处理方法、设备和存储介质,实现了将modelica语言模型以可视化的形式显示在cautosim软件画布界面的目的,提高了modelica语言模型的可读性,极大地方便了模型使用人员对modelica语言模型进行快速的使用和分析。
7.本发明实施例提供了一种modelica语言模型处理方法,该方法包括:在通过cautosim软件打开基于modelica语言编写的目标模型文件时,对所述目标模型文件的合法性进行校验;若所述目标模型文件是设定合法文件,通过cautosim软件读取所述目标模型文件中的文本内容;将所述文本内容输入至语法解析工具;通过所述语法解析工具对所述文本内容进行语法和词法分析,以确定所述文本内容是否符合modelica语言的语法规范;若所述文本内容符合modelica语言的语法规范,通过所述语法解析工具对所述文本内容进行解析,生成语法树;基于所述语法树将所述文本内容在所述cautosim软件中进行实例化,生成目标实例;
对所述目标实例进行解析,并在所述cautosim软件的画布界面显示对应的实例组件。
8.本发明实施例提供了一种电子设备,所述电子设备包括:处理器和存储器;所述处理器通过调用所述存储器存储的程序或指令,用于执行任一实施例所述的modelica语言模型处理方法的步骤。
9.本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行任一实施例所述的modelica语言模型处理方法的步骤。
10.本发明实施例具有以下技术效果:实现了将modelica语言模型以可视化的形式显示在cautosim软件画布界面的目的,提高了modelica语言模型的可读性,极大地方便了模型使用人员对modelica语言模型进行快速的使用和分析。
附图说明
11.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
12.图1是本发明实施例提供的一种modelica语言模型处理方法的流程图;图2是本发明实施例提供的一种modelica语言模型处理方法的流程图;图3是本发明实施例提供的一种相对索引位置与绝对索引位置的示意图;图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
13.为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行清楚、完整的描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
14.modelica 是一种面向对象的、适用于规范化构建复杂异构自然系统或人造系统的建模语言,可以满足多领域物理系统建模需求,而且 modelica语言可以搭建软件组件模型,支持组件的创建和连接,因此,对于工业仿真中复杂物理系统的建模,modelica是一种理想的结构化描述语言,彻底地实现了不同领域模型间的无缝集成,能够实现完全意义上的多领域统一建模。
15.而modelica文本如仅仅通过普通的文本编辑器打开,只能查看其文本代码,可视化程度极低,不利于工程人员进行方便、快捷的模型搭建,也不利于模型使用人员对模型快速的使用和分析。
16.针对上述问题,本发明实施例提供一种基于cautosim软件的modelica模型解析、编辑及保存方法,可以使模型开发人员基于cautosim软件,可视化地搭建工程模型。能够在
cautosim软件中针对模型进行可视化的修改,包括新增组件,封装组件,设置参数,建立组件间通信连线等,所有可视化的修改将同步生成符合modelica语言规范的模型代码,并保存至原模型文件中,便于模型的搭建与传播。
17.本发明实施例提供的modelica语言模型处理方法可以由电子设备执行。图1是本发明实施例提供的一种modelica语言模型处理方法的流程图。参见图1,该modelica语言模型处理方法具体包括:步骤110、在通过cautosim软件打开基于modelica语言编写的目标模型文件时,对所述目标模型文件的合法性进行校验。
18.可选的,所述对所述目标模型文件的合法性进行校验,包括:确定所述目标模型文件的后缀是否是.mo格式的后缀,若所述目标模型文件的后缀是.mo格式的后缀,则确定所述目标模型文件是设定合法文件;若所述目标模型文件的后缀不是.mo格式的后缀,则确定所述目标模型文件不是设定合法文件。
19.步骤120、若所述目标模型文件是设定合法文件,通过cautosim软件读取所述目标模型文件中的文本内容。
20.步骤130、将所述文本内容输入至语法解析工具。
21.其中,语法解析工具可以是antlr。cautosim软件将读取到的文本内容输入antlr进行语法和词法分析。antlr采用自顶向下的递归分析方法,针对读取的文本进行语法和词法的分析。
22.步骤140、通过所述语法解析工具对所述文本内容进行语法和词法分析,以确定所述文本内容是否符合modelica语言的语法规范。
23.步骤150、若所述文本内容符合modelica语言的语法规范,通过所述语法解析工具对所述文本内容进行解析,生成语法树。
24.所述文本内容均可在语法树中对应到一个树节点中。
25.步骤160、基于所述语法树将所述文本内容在所述cautosim软件中进行实例化,生成目标实例。
26.cautosim软件内部自定义了基于modelica语言的数据结构,例如包含类class、连接connection、连接器connector、常数constant、容器container、函数function、模型model等。
27.可选的,从语法树中,逐一读取各个节点的值,并记录其在语法树中的索引位置,并将各个节点的值对应至cautosim软件中基于modelica语言的数据结构中,从而完成针对所述文本内容的实例化。
28.或者,根据实际需求,读取语法树中一些节点的值,并记录其在语法树中的索引位置,并将这些节点的值对应至cautosim软件中基于modelica语言的数据结构中,从而完成针对所述文本内容的实例化,对于没有被读取的节点的值,以字符串的形式存储其对于的内容。
29.示例性的,所述基于所述语法树将所述文本内容在所述cautosim软件中进行实例化,生成目标实例,包括:
读取所述语法树中设定节点的值,并分别记录所述设定节点在所述语法树中的索引位置;根据所述设定节点的值、所述设定节点的索引位置以及与所述cautosim软件适配的modelica数据结构之间的对应关系,将所述设定节点的值替换为对应的与所述cautosim软件适配的modelica数据结构,生成目标实例。
30.步骤170、对所述目标实例进行解析,并在所述cautosim软件的画布界面显示对应的实例组件。
31.在完成对所述文本内容的实例化之后,cautosim软件可读取所述文本内容对应到cautosim软件的数据结构,并进行软件层面的显示,以实现可视化地显示对应的实例组件,例如电阻、电机等均可用诸如图形、对应英文单词的形式在cautosim软件的画布界面进行显示,使得开发人员一目了然地确定当前显示的实例组件是什么,而不需要具备太多的关于modelica语言的知识也能看懂所显示的模型内容,从而达到使模型使用人员对模型进行快速的使用和分析的目的。
32.进一步的,若所述文本内容不符合modelica语言的语法规范,则通过设定方式进行提示。所述通过设定方式进行提示,包括:在所述cautosim软件的显示界面显示提示信息;或者以气泡的形式弹出信息提示框进行提示。
33.对应的,参考如图2所示的一种modelica语言模型处理方法的流程示意图,具体包括:步骤210、打开模型文件。
34.步骤220、判断模型文件是否为.mo文件,如果是,继续执行步骤230a,如果不是,则执行步骤230b。
35.步骤230a、读取文本内容。步骤230b、拒绝读取文本内容。
36.步骤240、通过antlr对读取的文本内容进行语法分析。
37.步骤250、判断读取的文本内容符合规范,如果符合规范,则执行步骤260a,如果不符合规范,则执行步骤260b。
38.步骤260a、生成语法树。步骤260b、拒绝生成语法树。
39.步骤270、匹配语法树结构与cautosim软件数据结构。
40.进一步的,本发明实施例还提供一种基于cautosim软件的modelica语言模型保存方法,能够使模型在cautosim软件中打开后,使用者对于模型进行修改后,以modelica语言保存对应文本代码至源文件中。具体的,所述modelica语言模型处理方法,还包括:在检测到针对在所述cautosim软件的画布界面显示的实例组件进行修改的操作指令时,针对各操作指令生成对应的改动内容记录,并将生成的改动内容记录基于修改时间存储在与被修改的实例组件对应的操作记录序列中;在检测到保存操作指令时,从所述操作记录序列中获取修改时间最近的改动内容记录;根据所述修改时间最近的改动内容记录对所述被修改的实例组件在所述目标模型文件中的对应文本进行替换,以使针对所述被修改的实例组件的修改操作同步至所述目标模型文件。
41.在检测到在所述cautosim软件的画布界面可视化新建组件或者通过连接器对两个已有组件进行连接形成通信关系时的新建操作指令时,基于所述cautosim软件创建与所述新建操作指令匹配的数据结构,并确定所述数据结构在所述目标模型文件中的对应位置,将所述对应位置处的内容同步修改为与所述数据结构对应的modelica语言的文本;当目标模型层级存在多层嵌套时,针对其中一个嵌套节点的编辑操作执行一下处理逻辑:在检测到针对多层嵌套节点中的一个节点的编辑指令时,记录编辑内容,并确定被编辑节点和与其存在嵌套关系的节点之间的相对索引位置,在检测到保存指令时,根据所述相对索引位置换算得到所述被编辑节点在所述目标模型文件中的绝对索引位置,并根据所述编辑内容对所述绝对索引位置处的内容进行修改与保存。
42.概括性的,在用户使用cautosim软件对基于modelica语言的模型进行修改时,将用户的修改行为记录至操作记录中。
43.在对已有组件进行修改操作时,则执行以下步骤:每个组件均存在自己的操作记录序列。当在软件中针对该组件进行可视化的修改时,每个组件均生成一份改动内容记录,存储在操作记录序列中。当进行保存时,将从操作记录序列中取最新的操作记录,并对该组件在数据结构中的内容进行替换。
44.当创建新的组件时,将执行以下步骤:当从cautosim软件中,对模型组件进行可视化拖拽至建模区域画布中进行建模,或针对画布已有组件,通过连接器对两个组件进行连接形成通信关系时,均可认为是创造新的数据结构,此时cautosim软件将新创建新的数据结构,并根据实际情况,计算其在modelica模型文本中的插入位置。
45.当模型层级存在多层嵌套时,针对其中一个嵌套节点的模型的新增或修改步骤,将执行以下步骤:当模型存在多个层级时,针对其中一个层级的一个模型的修改时,将对其修改的内容,创造相对索引位置。当其保存后,进行相对索引位置至绝对索引位置的换算,并使其在其对应的层级结构中,得以正确保存。该操作是为了避免每次针对嵌套结构的保存,都需要对整体结构进行全保存,采用此种形式,能够提升保存效率,每次只保存被修改的部分。
46.示例性的,相对索引位置与绝对索引位置的示意图可以参考如图3所示,其中,相对索引位置为51-100之间,绝对索引位置则根据所处的嵌套层级确定是第二级310,再在第二级310中找个与相对索引位置51-100之间某位置对应的位置。
47.进一步的,本发明实施例还提供了一种基于cautosim软件的modelica语言模型保存地址复用的方法,能够使用户在修改模型后,对生成的modelica语言的模型文本进行再次解析。
48.具体的,当所述目标模型文件通过所述cautosim软件被修改过之后,所述方法还包括:在检测到针对在所述cautosim软件的画布界面显示的实例组件的编辑指令时,对被修改过的所述目标模型文件进行重新解析,在内存中,按照所述目标模型文件的模型名称寻找对应对象;如果在内存中找到与所述模型名称与对应的对象时,则加载缓存,并根据所述编辑指令对所述对象内容进行编辑;如果在内存中没有找到与所述模型名称与对应的对象时,则创建新的变量;当多个编辑操作指令同时存在时,对多个需要编辑的对象的索引
位置进行排序,按照索引位置从后往前的顺序逐渐对各需要编辑的对象进行编辑,以保证多个编辑操作指令对应的编辑内容分别被正确替换与保存。
49.本发明实施例具有以下技术效果:提供一种基于cautosim软件的modelica语言模型解析与保存方法,以解决现有技术中存在的多领域建模过程中,可视化不足、便捷程度不足等问题。通过本发明实施例提供的处理方法,可以使模型开发人员基于cautosim软件,可视化地搭建工程模型。能够在cautosim软件中针对模型进行可视化的修改,包括新增组件,封装组件,设置参数,建立组件间通信连线等,所有可视化的修改将同步生成符合modelica语言规范的模型代码,并保存至原模型文件中,便于模型的搭建与传播。
50.具体的,通过自定义的抽象语法树,可针对基于modelica模型的词法和语法的快速判断,解析。可将机械、控制、电子、液压、气动、软件等不同学科领域的基于modelica的模型,可视化的展示在cautosim软件中,通过软件对模型进行扩展,修改和维护,全自动化地生成符合modelica语法规范的文本代码,便于工程师对于模型的搭建,组成更大的,更复杂的多领域建模模型。
51.图4为本发明实施例提供的一种电子设备的结构示意图。如图4所示,电子设备400包括一个或多个处理器401和存储器402。
52.处理器401可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备400中的其他组件以执行期望的功能。
53.存储器402可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器401可以运行所述程序指令,以实现上文所说明的本发明任意实施例的modelica语言模型处理方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如初始外参、阈值等各种内容。
54.在一个示例中,电子设备400还可以包括:输入装置403和输出装置404,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。该输入装置403可以包括例如键盘、鼠标等等。该输出装置404可以向外部输出各种信息,包括预警提示信息、制动力度等。该输出装置404可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
55.当然,为了简化,图4中仅示出了该电子设备400中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备400还可以包括任何其他适当的组件。
56.除了上述方法和设备以外,本发明的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本发明任意实施例所提供的modelica语言模型处理方法的步骤。
57.所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软
件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
58.此外,本发明的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本发明任意实施例所提供的modelica语言模型处理方法的步骤。
59.所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
60.需要说明的是,本发明所用术语仅为了描述特定实施例,而非限制本技术范围。如本发明说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。
61.还需说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”等应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
62.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1