模型过程调试方法、设备和存储介质技术

技术编号:31906963 阅读:16 留言:0更新日期:2022-01-15 12:45
本发明专利技术实施例公开了一种模型过程调试方法、设备和介质,涉及模型调试技术领域。其中,方法包括:获取目标模型中的暂定错误代码行;确定所述暂定错误代码行中的目标变量,并在所述目标变量出现的代码行的上一行和下一行添加目标变量信息输出代码;调试添加操作后的目标模型,输出所述目标变量的信息;确定所述目标变量的关联变量;将所述关联变量作为新的目标变量,并返回在所述目标变量出现的代码行的上一行和下一行添加目标变量信息输出代码的操作。本实施例能够快速实现代码问题发现及输出,减少工程技术人员代码调试的工作强度。减少工程技术人员代码调试的工作强度。减少工程技术人员代码调试的工作强度。

【技术实现步骤摘要】
模型过程调试方法、设备和存储介质


[0001]本专利技术实施例涉及模型调试技术,尤其涉及一种模型过程调试方法、设备和存储介质。

技术介绍

[0002]Modelica是一种开放、面向对象、基于方程的计算机语言,可以跨越不同领域,方便地实现复杂物理系统的建模。
[0003]由于Modelica语言主要为面向对象的建模及方程求解,不能在程序运行过程中形成调试断点,进行逐行代码调试,导致计算过程的调试不方便,无法在计算过程中准确的提供错误原因,导致模型代码调试过程较为缓慢和困难,影响到软件学习,模型搭建,模型验证等各个环节。

技术实现思路

[0004]本专利技术实施例提供一种模型过程调试方法、设备和存储介质。
[0005]第一方面,本专利技术实施例提供了一种模型过程调试方法,包括:
[0006]获取目标模型中的暂定错误代码行;
[0007]确定所述暂定错误代码行中的目标变量,并在所述目标变量出现的代码行的上一行和下一行添加目标变量信息输出代码;
[0008]调试添加操作后的目标模型,输出所述目标变量的信息;
[0009]如果所述目标变量的信息错误且目标变量出现的代码行正确,确定所述目标变量的关联变量;
[0010]将所述关联变量作为新的目标变量,并返回在所述目标变量出现的代码行的上一行和下一行添加目标变量信息输出代码的操作,直到确定新的目标变量出现的代码行错误。
[0011]第二方面,本专利技术实施例还提供了一种电子设备,所述电子设备包括:r/>[0012]一个或多个处理器;
[0013]存储器,用于存储一个或多个程序,
[0014]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现任一实施例所述的模型过程调试方法。
[0015]第三方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的模型过程调试方法。
[0016]第四方面,本专利技术实施例还提供了一种模型过程调试方法,包括:
[0017]获取所述目标模型中的暂定错误代码行;
[0018]确定所述暂定错误代码行中的目标变量,以及所述目标变量的关联变量;
[0019]在所述目标变量出现的代码行的上一行和下一行添加目标变量信息输出代码,在所述关联变量出现的代码行的上一行和下一行添加关联变量信息输出代码;
[0020]调试添加操作后的目标模型,输出所述目标变量和关联变量的信息。
[0021]本专利技术实施例提供一种高效的基于Modelica语言特性的问题调试方案,通过确定可能出错的目标变量并添加目标变量信息输出代码,从而在调试目标模型的过程中,自动输出目标变量的信息;通过判定目标变量的信息错误且目标变量出现的代码行正确,确定目标变量的关联变量,进一步通过添加代码的方式获取关联变量的信息,从而逐步回溯每个可能出错的变量,直到确定新的目标变量出现的代码行错误。本实施例能够快速实现代码问题发现及输出,减少工程技术人员代码调试的工作强度。
附图说明
[0022]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023]图1是本专利技术实施例提供的一种模型过程调试方法的流程图;
[0024]图2是本专利技术实施例提供的另一种模型过程调试方法的流程图;
[0025]图3是本专利技术实施例提供的一种电子设备的结构示意图。
具体实施方式
[0026]为使本专利技术的目的、技术方案和优点更加清楚,下面将对本专利技术的技术方案进行清楚、完整的描述。显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本专利技术所保护的范围。
[0027]在本专利技术的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0028]在本专利技术的描述中,还需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利技术中的具体含义。
[0029]为了方便描述本专利技术提供的方法,首先引入一示例,描述传统的过程调试方法。待调试的基于Modelica语言编写的模型如下:
[0030]表1基于Modelica语言编写的模型
[0031]1model Model172Real x(start=1);3Real timeX;4Real y;
5Real z;6algorithm7timeX:=x+time;8z:=sqrt(timeX);9equation10z

der(y)=1;11x=sqrt(z

10*time);12end Model17;
[0032]使用目前已有的Modelica商业软件,开始对模型进行调试。该软件对于计算类错误无法定位到特定位置,只会给出大致的方程形式,少数会给出具体定位行。上述模型的报错内容为:
[0033]Error:sqrt(z+(

2)*time)=sqrt(

0.135081857131789)
[0034]Error:sqrt(z+(

2)*time)=sqrt(

0.135081848943282)
[0035]经过分析认为,sqrt括号中的数据应为正,认为错误出现在第11行。研发人员只能自行寻找模型搭建过程中的错误原因,导致无法快速找到问题产生的原因。本专利技术实施例提供一种模型过程调试方法,其流程图如图1所示,可适用于对基于Modelica语言编写的模型进行过程调试的情况。本实施例由电子设备执行,作为Modelica商业软件的辅助工具,在模型过程调试过程中运行。结合图1,本实施例提供的方法具体包括:
[0036]S110、获取所述目标模型中的暂定错误代码行。
[0037]其中,目标模型为基于Modelica语言编写的模型,是待调试的模型。暂定错误代码行可以是可能出错的包括算法或方本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种模型过程调试方法,其特征在于,包括:获取目标模型中的暂定错误代码行;确定所述暂定错误代码行中的目标变量,并在所述目标变量出现的代码行的上一行和下一行添加目标变量信息输出代码;调试添加操作后的目标模型,输出所述目标变量的信息;如果所述目标变量的信息错误且目标变量出现的代码行正确,确定所述目标变量的关联变量;将所述关联变量作为新的目标变量,并返回在所述目标变量出现的代码行的上一行和下一行添加目标变量信息输出代码的操作,直到确定新的目标变量出现的代码行错误。2.根据权利要求1所述的方法,其特征在于,所述确定所述暂定错误代码行中的目标变量,包括:将所述暂定错误代码行中的非时间变量确定为目标变量;或者,响应于用户的变量选中操作,将用户选中的变量作为所述目标变量。3.根据权利要求1所述的方法,其特征在于,所述在所述目标变量出现的代码行的上一行和下一行添加目标变量信息输出代码,包括:响应于用户的设定触发操作,根据目标变量生成目标变量信息输出代码,并自动添加到所述目标变量出现的代码行的上一行和下一行;其中,所述设定触发操作包括:对键盘快捷键的触发操作、对鼠标代码调试按键的触发操作或者对触控面板的手势触发操作;所述变量信息包括所述变量的值和运行时刻。4.根据权利要求1所述的方法,其特征在于,所述变量信息包括所述变量的值和运行时刻;在所述如果所述目标变量的信息错误且目标变量出现的代码行正确之前,还包括:响应于用户的设定操作,确定所述目标变量出现的代码行正确;根据所述目标变量的值和运行时刻,计算所述目标变量的值随时间的变化规律;如果所述变化规律与目标变量出现的代码行中方程或算法的物理变化规律不一致,则所述目标变量的信息错误;如果所述变化规律与目标变量出现的代码行中方程或算法的物理变化规律一致,则所述目标变量的信息正确。5.根据权利要求1所述的方...

【专利技术属性】
技术研发人员:张强何绍清张鹏金薄宋立群陶恒阳
申请(专利权)人:中汽数据有限公司
类型:发明
国别省市:

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

1