CN112084668B - 一种仿真测试方法、装置及电子设备 - Google Patents

一种仿真测试方法、装置及电子设备 Download PDF

Info

Publication number
CN112084668B
CN112084668B CN202010963241.1A CN202010963241A CN112084668B CN 112084668 B CN112084668 B CN 112084668B CN 202010963241 A CN202010963241 A CN 202010963241A CN 112084668 B CN112084668 B CN 112084668B
Authority
CN
China
Prior art keywords
input
simulation
data
parameter
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010963241.1A
Other languages
English (en)
Other versions
CN112084668A (zh
Inventor
李京燕
张桥
王宝杰
何子中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Shi Guan Jin Yang Technology Development Co ltd
Original Assignee
Beijing Shi Guan Jin Yang Technology Development Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Shi Guan Jin Yang Technology Development Co ltd filed Critical Beijing Shi Guan Jin Yang Technology Development Co ltd
Priority to CN202010963241.1A priority Critical patent/CN112084668B/zh
Publication of CN112084668A publication Critical patent/CN112084668A/zh
Application granted granted Critical
Publication of CN112084668B publication Critical patent/CN112084668B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种仿真测试方法、装置及电子设备,所述方法包括:获得待测试的功能模型单元FMU模型;获得所述FMU模型的测试用例,所述测试用例至少包含测试输入数据,所述测试输入数据至少包含至少一项仿真参数、至少一个运算时刻和至少一个输入变量,所述仿真参数在每个所述运算时刻对应有参数值,所述输入变量在每个所述运算时刻对应有输入值;控制所述FMU模型进行仿真运算,以使得所述FMU模型依次在每个所述运算时刻基于所述仿真参数的参数值对所述输入变量的输入值进行运算,得到所述FMU模型的仿真运算结果。

Description

一种仿真测试方法、装置及电子设备
技术领域
本申请涉及仿真技术领域,尤其涉及一种仿真测试方法、装置及电子设备。
背景技术
在航空航天、汽车、船舶、武器装备等仿真领域中,通常采用各专业独立设计方式,所采用的仿真工具不同,各工具之间的接口普遍也不能兼容,而系统仿真需要实现多学科、多领域的模型集成。为此,国际仿真领域提出了一种通用模型接口标准——FMI(Functional Mock-up Interface),对模型描述格式和数据存储格式进行了定义,解决了以往不同的仿真软件拥有各自的标准接口造成的多种软件联合仿真的难题。
基于FMI标准封装的仿真模型称为FMU(Functional Mock-up Unit)。工程领域常见的建模软件平台均可以将各种基于FMI标准的仿真模型可以转换为FMU文件。然而,在实际应用中,通过不同软件平台导出的FMU模型,只能基于各自软件平台进行封装正确性和功能一致性的检测。因此,需要在各个软件平台上分别部署测试系统,才能对各自导出的FMU模型分别进行测试。
因此,目前亟需一种能够对各种不同软件平台所导出的FMU模型进行统一测试的技术方案。
发明内容
有鉴于此,本申请提供一种仿真测试方法、装置及电子设备,包括:
一种仿真测试方法,所述方法包括:
获得待测试的功能模型单元FMU模型;
获得所述FMU模型的测试用例,所述测试用例至少包含测试输入数据,所述测试输入数据至少包含至少一项仿真参数、至少一个运算时刻和至少一个输入变量,所述仿真参数在每个所述运算时刻对应有参数值,所述输入变量在每个所述运算时刻对应有输入值;
控制所述FMU模型进行仿真运算,以使得所述FMU模型依次在每个所述运算时刻基于所述仿真参数的参数值对所述输入变量的输入值进行运算,得到所述FMU模型的仿真运算结果。
上述方法,可选的,在获得所述FMU模型的测试用例之前,所述方法还包括:
对所述FMU模型进行封装检测,以得到封装检测结果,所述封装检测结果表征所述FMU模型是否满足通用模型接口FMI标准;
其中,在所述封装检测结果表征所述FMU模型满足所述FMI标准的情况下,执行所述步骤:获得所述FMU模型的测试用例。
上述方法,可选的,所述测试用例还包括期望输出数据,所述期望输出数据包含在至少一个输出变量在每个所述运算时刻上对应的期望值;
其中,在得到所述FMU模型的仿真运算结果之后,所述方法还包括:
将所述仿真运算结果中每个所述输出变量在每个所述运算时刻上对应的输出值与其对应的期望值进行比对,以得到所述FMU模型的仿真测试结果,所述仿真测试结果表征所述FMU模型的功能是否正常。
上述方法,可选的,所述测试用例还包括期望输出数据,所述期望输出数据包含在至少一个输出变量在每个所述运算时刻上对应的期望值和所述期望值对应的容差数据;
其中,在得到所述FMU模型的仿真运算结果之后,所述方法还包括:
根据所述仿真运算结果中每个所述输出变量在每个所述运算时刻上对应的输出值与其对应的期望值,获得每个所述输出变量对应的偏差数据;
判断每个所述输出变量对应的偏差数据是否与其对应的容差数据相匹配,以得到所述FMU模型的仿真测试结果。
上述方法,可选的,还包括:
输出所述FMU模型的仿真测试结果。
上述方法,可选的,还包括:
输出所述FMU模型的仿真运算结果。
上述方法,可选的,还包括:
获得至少一个目标变量和多个目标运算时刻,所述目标变量至少包含目标仿真参数、目标输入变量和目标输出变量中的任意一项或任意多项;
获得所述FMU模型的仿真数据中所述目标变量在所述目标运算时刻上对应的数据值;所述仿真数据对应于所述测试用例;
根据所述数据值,输出所述目标变量对应的仿真曲线,所述仿真曲线以所述目标运算时刻为自变量并以所述目标变量为因变量。
上述方法,可选的,所述仿真曲线的输出参数与所述仿真曲线对应的目标变量相匹配。
一种仿真测试装置,所述装置包括:
模型获得单元,用于获得待测试的功能模型单元FMU模型;
用例获得单元,用于获得所述FMU模型的测试用例,所述测试用例至少包含测试输入数据,所述测试输入数据至少包含至少一项仿真参数、至少一个运算时刻和至少一个输入变量,所述仿真参数在每个所述运算时刻对应有参数值,所述输入变量在每个所述运算时刻对应有输入值;
测试控制单元,用于控制所述FMU模型进行仿真运算,以使得所述FMU模型依次在每个所述运算时刻基于所述仿真参数的参数值对所述输入变量的输入值进行运算,得到所述FMU模型的仿真运算结果。
一种电子设备,所述电子设备包括:
存储器,用于存储应用程序及所述应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现:获得待测试的功能模型单元FMU模型;获得所述FMU模型的测试用例,所述测试用例至少包含测试输入数据,所述测试输入数据至少包含至少一项仿真参数、至少一个运算时刻和至少一个输入变量,所述仿真参数在每个所述运算时刻对应有参数值,所述输入变量在每个所述运算时刻对应有输入值;控制所述FMU模型进行仿真运算,以使得所述FMU模型依次在每个所述运算时刻基于所述仿真参数的参数值对所述输入变量的输入值进行运算,得到所述FMU模型的仿真运算结果。
由上述方案可知,本申请提供的一种仿真测试方法、装置及电子设备中,在获得到待测试的FMU模型之后,可以通过获得该FMU模型的测试用例,实现对FMU模型的仿真运算,而测试用例中所包含的测试输入数据中包含有仿真参数、运算时刻和输入变量,而且,仿真参数在每个运算时刻上对应有参数值,输入变量在每个所述运算时刻上对应输入值,由此,在控制FMU模型进行仿真运算之后,FMU模型能够依次在每个运算时刻上基于仿真参数的参数值对输入变量的输入值进行运算,从而得到FMU模型的仿真运算结果。由此,不管是何种软件平台所导出的FMU模型,均可以通过获得能够对FMU模型进行仿真运算的测试用例对FMU模型进行测试,进而无需对在每种软件平台上均部署一套模型测试系统,实现对FMU模型的统一测试。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种仿真测试方法的流程图;
图2为本申请实施例中输入文件的示例图;
图3为本申请实施例一提供的一种仿真测试方法的另一流程图;
图4为本申请实施例中期望文件的示例图;
图5-图6分别为本申请实施例一提供的一种仿真测试方法的另一流程图;
图7为本申请实施例中容差数据的示意图;
图8为本申请实施例一提供的一种仿真测试方法的又一流程图;
图9为本申请实施例一提供的一种仿真测试方法的部分流程图;
图10为本申请实施例中测试输入数据的示例图;
图11为本申请实施例中期望输出数据的示例图;
图12为本申请实施例中仿真运算结果的示例图;
图13为本申请实施例一提供的一种仿真测试方法的又一流程图;
图14为本申请实施例二提供的一种仿真测试装置的结构示意图;
图15-图18分别为本申请实施例二提供的一种仿真测试装置的另一结构示意图;
图19为本申请实施例三提供的一种电子设备的结构示意图;
图20为本申请实施例在具体应用中的流程示意图;
图21为本申请实施例在具体应用中的系统架构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,为本申请实施例一提供的一种仿真测试方法的实现流程图,该方法可以适用于能够进行数据处理的电子设备中,如计算机或服务器等。本实施例中的技术方案主要用于实现对不同软件平台所导出的FMU模型进行统一测试。
具体的,本实施例中的方法可以包含以下步骤:
步骤101:获得待测试的FMU模型。
其中,待测试的FMU模型具体表现为FMU文件,该FMU模型可以任意一种软件平台所到处的FMU模型。例如,建模软件平台将基于FMI标准所搭建的仿真模型转换为FMU文件并导出,即导出的FMU模型,本实施例中主要用于对各种不同软件平台所导出的FMU模型进行测试。
步骤102:获得FMU模型的测试用例。
其中,测试用例至少包含测试输入数据,测试输入数据中至少包含至少一项仿真参数、至少一个运算时刻和至少一个输入变量。其中,运算时刻是指按照FMU模型的仿真步长所设置的时刻,而每个仿真参数在每个运算时刻对应有参数值,而输入变量也在每个运算时刻对应有输入值。
具体实现中,本实施例中的测试用例可以基于导入到本申请所实现的测试系统中的输入文件生成,输入文件可以为表格文件。具体的,输入文件中至少包含至少一个参数数据、至少一个时刻数据和至少一个输入数据。基于此,输入文件可以为表格文件,在输入文件中包含有多个表格数据,如至少一个时刻数据组成的时刻列数据、至少一个参数数据组成的参数列数据和至少一个输入数据组成的输入列数据。
在一种实现方式中,本实施例中的输入文件可以由人工导入,由此,本申请所实现的测试系统能够获得到导入的输入文件;
在另一种实现方式中,本实施例中可以通过导入接口在输入文件所在的存储区域中进行输入文件的读取,例如,可以按照FMU模型的模型名称在存储区域中查找具有相同名称或相匹配的名称的输入文件,并进行导入,由此获得到输入文件。
需要说明的是,输入文件中的时刻数据可以为一个或多个,如图2中time列中的时刻所示,单位为秒;参数数据可以包含有一个或多个仿真参数在每个时刻数据上对应的参数值,如图2中real_tunable_param列中的参数值所示;输入数据可以包含一个或多个输入变量在每个时刻数据上对应的输入值,如图2中real_continuous_in列、real_discrete_in列、int_in列和bool_in列中的输入值所示。
需要说明的是,输入文件中还包含有仿真时长,如2分钟或5秒等。该仿真时长的数值可以通过交互界面进行修改。
基于此,本实施例中基于这种输入文件生成测试用例中的测试输入数据,用以对FMU模型进行仿真运算。具体如下:
首先,根据输入文件中所包含的多个文件列的名称,分别获得目标参数列数据和目标输入列数据。
其中,目标参数列数据为与FMU模型中的至少一个仿真参数具有相同参数名称的列数据,可以为一个或者多个,分别对应于每个仿真参数;目标输入列数据为与FMU模型中的至少一个输入变量具有相同变量名称的列数据,可以为一个或多个,分别对应于每个输入变量。
具体的,本实施例中可以按照FMU模型中的仿真参数和输入变量,在输入文件中所包含的多个文件列中,分别获取到具有相同参数名称和变量名称的列数据。
之后,根据目标参数列数据和目标输入列数据,分别获得仿真参数在FMU模型的至少一个运算时刻上对应的参数值和输入变量在运算时刻上对应的输入值。
其中,参数值和输入值对应的运算时刻是与FMU模型的仿真步长相匹配。本实施例中可以读取出目标参数列数据之后,分别读取该目标参数列数据中的每个参数值,就可以得到该列对应的仿真参数在FMU模型的每个运算时刻上对应的参数值;在读取出目标输入列数据之后,分别读取该目标输入列数据中的每个输入值,就可以得到该列对应的输入变量在FMU模型的每个运算时刻上对应的输入值。
需要说明的是,由于输入文件中的时刻数据或者说目标参数列数据和目标输入列数据中的运算时刻可能是与FMU模型的仿真步长不匹配的,例如,输入文件中的相邻两个时刻数据之间的时间间隔即时间长可能是小于或大于或等于仿真步长的,因此,在获得仿真参数在FMU模型的至少一个运算时刻上对应的参数值和输入变量在运算时刻上对应的输入值时,需要采用特殊的方式实现,具体如下:
判断仿真步长是否小于输入文件中相邻两个时刻数据之间的时间长;如果仿真步长等于输入文件中相邻两个时刻数据之间的时间长,此时输入文件中的时刻数据是与FMU模型的运算时刻是相匹配,此时,可以直接将目标参数列数据中各项参数数据进行值读取,以作为该仿真参数相应运算时刻上对应的参数值,并将目标输入列数据中各项输入数据进行值读取,以作为该输入变量在相应运算时刻上对应的输入值;
如果仿真步长大于输入文件中相邻两个时刻数据之间的时间长,此时可以按照FMU模型中的运算时刻在目标参数列数据和目标输入列数据中读取相应运算时刻对应的参数值和输入值;
如果仿真步长小于输入文件中相邻两个时刻数据之间的时间长,需要在输入文件的两个时刻数据之间插入一个或多个时刻,并针对插入的时刻生成数值,即:那么按照预设的第一数值生成方式对目标参数列数据进行处理,以得到仿真参数在FMU模型的至少一个运算时刻上对应的参数值;并按照预设的第二数值生成方式对目标输入列数据进行处理,以得到输入变量在FMU模型的至少一个运算时刻上对应的输入值。
其中,第一数值生成方式与目标参数列数据的数据类型相对应,第二数值生成方式与目标输入列数据的数据类型相对应,在目标参数列数据的数据类型和目标输入列数据的数据类型相同的情况下,第一数值生成方式和第二数值生成方式为同一生成方式。
具体的,在目标参数列数据为连续型的数据类型的情况下,第一数值生成方式为线性插值的数值生成方法,在目标输入列数据为连续型的数据类型的情况下,第二数值生成方式为线性插值的数值生成方式。例如,输入文件中的时刻数据分别为0、0.5、1、1.5和2等等,连续型的输入变量real_continuous_in的输入值分别为:0、2、1、1、1等等,而FMU模型的运算时刻分别为:0、0.1、0.2、0.3、0.4、0.5等等,对于连续型的输入变量real_continuous_in,运算时刻0的输入值为时刻数据0的输入值,运算时刻0.5的输入值为时刻数据0.5的输入值,而对于运算时刻0和运算时刻0.5之间的运算时刻0.1、0.2、0.3、0.4的输入值均采用线性插值的数值生成方式,在运算时刻0.1、0.2、0.3、0.4上分别进行插值:0.4、0.8、1.2、1.6,以此列推,得到连续型的输入变量real_continuous_in在每个运算时刻上的输入值;
在目标参数列数据为离散型的数据类型的情况下,第一数值生成方式为数值保持的数值生成方式;在目标输入列数据为离散型的数据类型的情况下,第二数值生成方式为数值保持的数值生成方式。
例如,输入文件中的时刻数据分别为0、0.5、1、1.5和2等等,离散型的输入变量的输入值分别为:0、1、0、1、0等等,而FMU模型的运算时刻分别为:0、0.1、0.2、0.3、0.4、0.5等等,对于离散型的输入变量,运算时刻0的输入值为时刻数据0的输入值0,运算时刻0.5的输入值为时刻数据0.5的输入值1,运算时刻1的输入值为时刻数据1的输入值0,而对于运算时刻0和运算时刻0.5之间的运算时刻0.1、0.2、0.3、0.4的输入值均采用数值保持的数值生成方式,在运算时刻0.1、0.2、0.3、0.4上设置数值:0、0、0、0,而对于运算时刻0.5和运算时刻1之间的运算时刻0.6、0.7、0.8、0.9的输入值均采用数值保持的数值生成方式,在运算时刻0.6、0.7、0.8、0.9上设置数值:1、1、1、1,以此列推,得到离散型的输入变量在每个运算时刻上的输入值。
最后,至少根据参数值和输入值,生成测试输入数据。
具体的,本实施例中可以直接根据这些参数值和输入值进行组合,在FMU模型的每个运算时刻上分别对应有仿真参数的参数值和输入变量的输入值,即可得到测试输入数据。
步骤103:控制FMU模型进行仿真运算,以使得FMU模型依次在每个运算时刻基于仿真参数的参数值对输入变量的输入值进行运算,得到FMU模型的仿真运算结果。
其中,本实施例中可以在获得到测试用例之后自动生成控制指令,以控制FMU模型对测试用例进行仿真运算,相应的,FMU模型能够被触发并按照测试用例依次在每个运算时刻上基于仿真参数在该运算时刻上的参数值对输入变量在该运算时刻上的输入值进行运算,就可以依次得到一个或多个输出变量在每个运算时刻上的输出值,这些输出值组成FMU模型的仿真运算结果。
由上述方案可知,本申请实施例一提供的一种仿真测试方法中,在获得到待测试的FMU模型之后,可以通过获得该FMU模型的测试用例,实现对FMU模型的仿真运算,而测试用例中所包含的测试输入数据中包含有仿真参数、运算时刻和输入变量,而且,仿真参数在每个运算时刻上对应有参数值,输入变量在每个所述运算时刻上对应输入值,由此,在控制FMU模型进行仿真运算之后,FMU模型能够依次在每个运算时刻上基于仿真参数的参数值对输入变量的输入值进行运算,从而得到FMU模型的仿真运算结果。由此,不管是何种软件平台所导出的FMU模型,均可以通过获得能够对FMU模型进行仿真运算的测试用例对FMU模型进行测试,进而无需对在每种软件平台上均部署一套模型测试系统,实现对FMU模型的统一测试。
在一种实现方式中,本实施例在步骤102获得FMU模型的测试用例之前,还可以包括以下步骤,如图3中所示:
步骤104:对FMU模型进行封装检测,以得到封装检测结果。
其中,封装检测结果表征FMU模型是否满足FMI标准。基于此,在封装检测结果表征FMU模型满足FMI标准的情况下,再执行所述步骤102,即获得FMU模型的测试用例。
具体的,本实施例中对FMU模型中的文件描述内容进行检查,以检查FMU模型是否正确封装。例如,本实施例中检查FMU文件是否正确封装,具体表现为:检查FMU文件中定义的仿真参数、内部变量、输入变量、输出变量、动态库、代码等中的任一项或任意多项是否符合FMI标准。比如,检查FMU文件中FMU模型的各项参数在modelDescription.xml中的描述是否准确。
在一种实现方式中,测试用例中还包括期望输出数据,期望输出数据包含在至少一个输出变量在每个运算时刻上对应的期望值。本实施例中的期望输出数据可以基于导入到本申请所实现的测试系统中的期望文件生成,期望文件可以为表格文件,在期望文件中包含有多个表格数据,如至少一项时刻数据组成的时刻列数据和至少一项输出数据组成的输出列数据。
在一种实现方式中,本实施例中的期望文件可以由人工导入,由此,本申请所实现的测试系统能够获得到导入的期望文件;
在另一种实现方式中,本实施例中可以通过导入接口在期望文件所在的存储区域中进行期望文件的读取,例如,可以按照FMU模型的模型名称在存储区域中查找具有相同名称或相匹配的名称的期望文件,并进行导入,由此获得到期望文件。
需要说明的是,期望文件中的时刻数据可以为一个或多个,如图4中time列中的时刻所示,单位为秒;输出数据可以为包含一个或多个输出变量在每个时刻数据上对应的输出值,如图4中所示的real_continuous_out列、real_discrete_out列、int_out列和bool_out列中的输出值所示。
基于此,本实施例中基于这种期望文件生成测试用例中的期望输出数据,用以对FMU模型的仿真运算结果进行结果判断。生成测试用例中的期望输出数据的具体实现方式如下:
首先,根据期望文件中所包含的多个文件列的名称,获得目标输出列数据。
其中,目标输出列数据为与FMU模型中的至少一个输出变量具有相同变量名称的列数据,目标输出列数据可以为一个或者为多个,分别对应于每个输出变量。
具体的,本实施例中可以按照FMU模型中的待测试的输出变量,在期望文件中所包含的多个文件列中,获取到具有相同变量名称的列数据。
例如,FMU模型中有待测试的输出变量real_continuous_out、real_discrete_out、int_out和bool_out,按照这些变量名称,在期望文件中获取到real_continuous_out列、real_discrete_out列、int_out列和bool_out列的列数据,即目标输出列数据。
之后,根据目标输出列数据,获得输出变量在期望文件中的每个运算时刻上对应的期望值。
其中,本实施例中可以读取出目标输出列数据之后,分别读取该目标输出列数据中的每个期望值,就可以得到该列对应的输出变量在期望文件中的每个运算时刻上对应的期望值。
最后,至少根据期望值,生成期望输出数据。
具体的,本实施例中直接根据这些输出变量在期望文件中的每个运算时刻上对应的期望值来生成期望输出数据。
而在步骤103中得到FMU模型的仿真运算结果之后,本实施例中的方法还可以包括以下步骤,如图5中所示:
步骤105:将仿真运算结果中每个输出变量在每个运算时刻上对应的输出值与其对应的期望值进行比对,以得到FMU模型的仿真测试结果。
其中,仿真测试结果表征FMU模型的功能是否正常。
具体的,本实施例中可以对输出值和期望值进行对比,进而得到仿真测试结果,如果对比一致或者对比的结果满足一定的条件,那么仿真测试结果表征FMU模型的功能正常,即:FMU模型可以进行正常的仿真运算;如果对比不一致或者对比的结果不满足条件,那么仿真测试结果表征FMU模型的功能不正常,即:FMU模型不能进行正常的仿真运算。
在另一种实现方式中,测试用例还包括期望输出数据,期望输出数据包含在至少一个输出变量在每个运算时刻上对应的期望值和期望值对应的容差数据,这里的容差数据可以包含有每个输出变量在每个运算时刻上对应的容差数据;
其中,在步骤103中得到FMU模型的仿真运算结果之后,本实施例中的方法还可以包括以下步骤,如图6中所示:
步骤106:根据仿真运算结果中每个输出变量在每个运算时刻上对应的输出值与其对应的期望值,获得每个输出变量对应的偏差数据;
步骤107:判断每个输出变量对应的偏差数据是否与其对应的容差数据相匹配,以得到FMU模型的仿真测试结果。
具体为:判断每个输出变量在每个运算时刻上对应的偏差数据是否与相应输出变量在相应运算时刻上对应的容差数据相匹配,进而根据匹配结果来得到FMU模型的仿真测试结果。
其中,容差数据中至少包含有偏差计算方式和偏差计算方式对应的偏差阈值。偏差计算法方式主要用于计算相应输出变量在运算时刻上对应的输出值与期望值所对应的偏差数据,而偏差阈值则是用于判断偏差数据是否在合理的或者被允许的偏差范围内的依据。
需要说明的是,偏差计算方式和偏差阈值是与输出变量的变量类型相对应的。例如,偏差计算方式可以为:针对连续型变量的相对差值计算方式或者绝对差值计算方式,相应的偏差阈值是与相对差值计算方式或绝对差值计算方式相对应的阈值,如图7中所示,连续型的输出变量real_continuous_out在相对差值计算方式和绝对差值计算方式上分别对应于偏差阈值1%和0.01;或者,偏差计算方式可以为:针对离散型变量的时间容差计算方式,相应的偏差阈值是与时间容差计算方式相对应的阈值,如图7中所示,离散型的输出变量real_discrete_out、int_out和bool_out对应有前移10毫秒和后移10毫秒的偏差阈值。
由此,输出变量对应的偏差数据与其对应的容差数据相匹配也就是指:输出变量对应的偏差数据中的差值小于或等于其对应的容差数据中的偏差阈值。具体为:输出变量在每个运算时刻上对应的偏差数据中的差值小于或等于相应运算时刻上对应的容差数据中的偏差阈值。
基于此,在输出变量为连续型变量的情况下,步骤106中在获得每个输出变量对应的偏差数据时,具体可以通过以下方式实现:
将仿真运算结果中每个输出变量在每个运算时刻上对应的输出值与其对应的期望值进行对比,以得到每个输出变量在每个运算时刻上对应的输出值与其对应的期望值之间的相对差值或绝对差值,如1%的相对差值和0.01的绝对差值。
由此,步骤107中就可以将这个相对差值或绝对差值与相应的偏差阈值进行比对,进而根据比对结果来获得到仿真测试结果。例如,如果输出变量在某个或多个运算时刻上的输出值与其对应的期望值之间的相对差值小于或等于相对差值计算方式对应的偏差阈值,那么所得到的仿真测试结果表征FMU模型在该输出变量上的功能是正常的;如果输出变量在某个或多个运算时刻上的输出值与其对应的期望值之间的绝对差值大于绝对差值计算方式对应的偏差阈值,那么所得到的仿真测试结果表征FMU模型在该输出变量上的功能是不正常的。
而在输出变量为离散型变量的情况下,步骤106中在获得每个输出变量对应的偏差数据时,具体可以通过以下方式实现:
将仿真运算结果中每个输出变量在每个运算时刻上对应的输出值与其对应的期望值进行对比,以得到每个输出变量对应的输出值与其对应的期望值不同的目标运算时刻;
之后,可以根据这些目标运算时刻来获得每个输出变量对应的时刻差值。
具体的,本实施例中可以将目标运算时刻组成的时长作为时刻差值。例如,输出变量对应的输出值与其对应的期望值存在向前5毫秒不同,此时时刻差值为前移5毫秒;或者,输出变量对应的输出值与其对应的期望值在第20毫秒到第40毫秒之间的值均不同,此时的时刻差值为值不同的20毫秒;或者,输出变量对应的输出值与其对应的期望值存在向前10毫秒不同,此时的时刻差值为前移10毫秒;或者,输出变量对应的输出值与其对应的期望值从第45毫秒开始到第50毫秒的值不同,此时的时刻差值为异常的5毫秒。基于不同类型的时刻差值可以对应有相应的偏差阈值,例如,前移或后移对应于一个偏移时长阈值,如10毫秒;值不同的类型对应于一个特定阈值,如10毫秒;而异常的类型对应于另一个特定阈值,如0。
由此,步骤107中就可以将这个时刻差值与相应的偏差阈值进行比对,进而根据比对结果来获得到仿真测试结果。例如,如果时刻差值为前移或后移的偏移时长,那么偏移时长小于或等于相应的时长阈值的情况下,所得到的仿真测试结果表征FMU模型在该输出变量上的功能是正常的,例如,前移5毫秒的情况下FMU模型正常,在前移10毫秒的情况下FMU模型不正常;如果时刻差值为值不同的持续时长,那么持续时长大于相应的时长阈值的情况下,那么所得到的仿真测试结果表征FMU模型在该输出变量上是不正常的,例如20毫秒的持续时长下FMU模型值不正常;再如,如果时刻差值为异常的时长,那么异常的时长只要有即大于0,所得到的仿真测试结果表征FMU模型在该输出变量上是不正常的,例如5毫秒的异常的情况下FMU模型不正常。
基于以上实现,在仿真测试结果中存在某个或多个输出变量对应的偏差数据与容差数据不匹配的情况下,那么可以根据不匹配的具体情况对FMU模型中的算法或者参数进行修改,再重新使用测试用例进行模型测试。
在一种实现方式中,在步骤105或步骤107之后,本实施例中还可以包含以下步骤,如图8中所示:
步骤108:输出FMU模型的仿真测试结果。
具体的,本实施例中可以类似与图2或图4中表格的形式输出FMU模型中每个输出变量在每个运算时刻上的输出值、期望值及相应的输出值与期望值是否满足容差数据的结果。
需要说明的是,本实施例中可以通过传输接口将仿真测试结果输出给与本申请所实现的测试系统所在电子设备相连接的其他终端或设备,或者,通过电子设备上的显示部件直接进行输出显示。
或者,在另一种实现方式中,本实施例中还可以输出某一个或多个目标变量对应的仿真曲线,具体如图9中所示:
步骤901:获得至少一个目标变量和多个目标运算时刻。
其中,目标变量至少包含目标仿真参数、目标输入变量和目标输出变量中的任意一项或任意多项;而目标运算时刻可以为FMU模型的运算时刻中的全部或部分时刻。
步骤902:获得FMU模型的仿真数据中目标变量在目标运算时刻上对应的数据值。
其中,仿真数据中可以包含有测试用例中的测试输入数据、每个测试用例中的期望输出数据和FMU模型对每个测试用例分别进行仿真运算所得到的仿真运算结果,其中,测试输入数据、期望输出数据和仿真运算结果分别对应于多个运算时刻。例如,测试输入数据中包含FMU模型的一个或多个仿真参数在FMU模型的多个运算时刻上对应的参数值,测试输入数据中还包含FMU模型的一个或多个输入变量在FMU模型的多个运算时刻上对应的输入值,如图10中所示,测试输入数据中至少包含有real_continuous_in、real_discrete_in两个输入变量分别在每个时刻time上对应的输入值,还包含有仿真参数real_tunable_param分别在每个时刻time上对应的参数值(图10中未全部列出)。而期望输出数据中包含FMU模型的一个或多个输出变量在FMU模型的多个运算时刻上对应的期望值,如图11中所示,期望输出数据中至少包含有输出变量real_continuous_out、real_discrete_out、int_out和bool_out分别在每个时刻time上对应的期望值。仿真运算结果中则包含有每个输出变量在FMU模型的多个运算时刻上的输出值,如图12中所示,仿真运算结果中至少包含有输出变量int_out、real_discrete_out、bool_out和real_continuous_out在每个时刻time上对应的输出值。
基于此,本实施例中在获得到目标变量如输入变量、输出变量和仿真参数中的一个或任意多个之后,就可以在以上的仿真数据中获得该目标变量所对应的数据值。
步骤903:根据数据值,输出目标变量对应的仿真曲线。
其中,仿真曲线以目标运算时刻为自变量并以目标变量为因变量。
需要说明的是,目标运算时刻可以为FMU模型的已经经过运算的多个运算时刻中的全部时刻,也可以为其中一部分时刻。
基于此,本实施例中可以基于目标变量在多个运算时刻上的数据值得到与目标运算时刻为自变量以目标变量为因变量的仿真曲线,仿真曲线上任一点的曲线值即为该目标变量在相应目标运算时刻上的数据值。由此本实施例中所输出的仿真曲线可以有输入变量、输出变量和仿真参数中任意一项或任意多项各自对应的仿真曲线。
其中,本实施例中可以将仿真曲线实时输出到与本申请所实现的测试系统所在电子设备相连接的其他设备上,如与电子设备相连接的显示屏,或者本实施例中直接通过本申请所实现的测试系统所在电子设备上的显示部件实时进行输出。
在一种实现方式中,本实施例中FMU模型可以对多个测试用例分别进行仿真运算,相应的,每个测试用例均可能对应于一个或多个仿真曲线,为了区分不同的测试用例,本实施例中可以采用不同的页面或者不同区域来分别显示每个测试用例所对应的仿真曲线。
另外,针对单个的测试用例而言,其对应的仿真曲线可能一个或多个,而在目标变量为多个的情况下,仿真曲线也是多个的,此时,步骤903中输出目标变量对应的仿真曲线时,可以分别在每个目标变量各自对应的输出区域上分别输出目标变量对应的仿真曲线,例如,将目标输出变量real_continuous_out对应的仿真输出曲线与目标输入变量real_continuous_in对应的仿真输入曲线分别在各自对应的输出区域上进行输出。
或者,步骤903中输出所述目标变量对应的仿真曲线时,可以在目标区域上,叠加输出每个目标变量对应的仿真曲线。例如,将目标输出变量real_continuous_out对应的仿真输出曲线和目标输出变量real_continuous_out对应的仿真期望曲线在同一个目标区域上叠加输出,由此,可以直观的看出该输出变量在每个运算时刻上对应的输出值和期望值之间的差距。
进一步的,本实施例中在输出仿真曲线之后,可以根据需求对仿真曲线进行放大或缩小的操作,例如,只对仿真曲线的横坐标进行横向放大或缩小,或者,只对仿真曲线的纵坐标进行纵向放大或缩小,或者,同时对仿真曲线的横坐标和纵坐标分别进行相同比例或不同比例的放大或缩小,由此,可以根据需求来查看数据值的状态。
需要说明的是,在不同的输出区域输出仿真曲线或者在同一目标区域叠加输出多个仿真曲线时,可以对这些仿真曲线配置不同的输出参数,如颜色参数、线条粗细参数、线条虚实参数等,以分别代表相应的目标变量。例如,将仿真输入曲线输出为红色加粗实线的曲线,将仿真输出曲线输出为绿色加粗实线的曲线,将仿真期望曲线输出为黑色加粗虚线的曲线,由此,进一步改善用户查看这些仿真曲线的体验。
在一种实现方式中,在步骤103之后,本实施例中还可以包含以下步骤,如图13中所示:
步骤109:输出FMU模型的仿真运算结果。
例如,以表格的方式将仿真运算结果中每个输出变量在每个运算时刻上的输出值进行输出。或者,采用前文中的曲线输出方式绘制并输出每个输出变量对应的仿真曲线,此处不再详述。
需要说明的是,本实施例中可以通过传输接口将仿真运算结果输出给与本申请所实现的测试系统所在电子设备相连接的其他终端或设备,或者,通过电子设备上的显示部件直接进行输出显示。
参考图14,为本申请实施例二提供的一种仿真测试装置的结构示意图,该装置可以适用于能够进行数据处理的电子设备中,如计算机或服务器等。本实施例中的技术方案主要用于实现对不同软件平台所导出的FMU模型进行统一测试。
具体的,本实施例中的装置可以包括以下单元:
模型获得单元1401,用于获得待测试的功能模型单元FMU模型;
用例获得单元1402,用于获得所述FMU模型的测试用例,所述测试用例至少包含测试输入数据,所述测试输入数据至少包含至少一项仿真参数、至少一个运算时刻和至少一个输入变量,所述仿真参数在每个所述运算时刻对应有参数值,所述输入变量在每个所述运算时刻对应有输入值;
测试控制单元1403,用于控制所述FMU模型进行仿真运算,以使得所述FMU模型依次在每个所述运算时刻基于所述仿真参数的参数值对所述输入变量的输入值进行运算,得到所述FMU模型的仿真运算结果。
由上述方案可知,本申请实施例二提供的一种仿真测试装置中,在获得到待测试的FMU模型之后,可以通过获得该FMU模型的测试用例,实现对FMU模型的仿真运算,而测试用例中所包含的测试输入数据中包含有仿真参数、运算时刻和输入变量,而且,仿真参数在每个运算时刻上对应有参数值,输入变量在每个所述运算时刻上对应输入值,由此,在控制FMU模型进行仿真运算之后,FMU模型能够依次在每个运算时刻上基于仿真参数的参数值对输入变量的输入值进行运算,从而得到FMU模型的仿真运算结果。由此,不管是何种软件平台所导出的FMU模型,均可以通过获得能够对FMU模型进行仿真运算的测试用例对FMU模型进行测试,进而无需对在每种软件平台上均部署一套模型测试系统,实现对FMU模型的统一测试。
在一种实现方式中,本实施例中的装置还可以包括以下单元,如图15中所示:
封装检测单元1404,用于在用例获得单元1402获得FMU模型的测试用例之前,对所述FMU模型进行封装检测,以得到封装检测结果,所述封装检测结果表征所述FMU模型是否满足通用模型接口FMI标准;
其中,在所述封装检测结果表征所述FMU模型满足所述FMI标准的情况下,触发用例获得单元1402获得所述FMU模型的测试用例。
在一种实现方式中,所述测试用例还包括期望输出数据,所述期望输出数据包含在至少一个输出变量在每个所述运算时刻上对应的期望值;
其中,本实施例中的装置还可以包括以下单元,如图16中所示:
第一测试单元1405,用于在测试控制单元1403得到所述FMU模型的仿真运算结果之后,将所述仿真运算结果中每个所述输出变量在每个所述运算时刻上对应的输出值与其对应的期望值进行比对,以得到所述FMU模型的仿真测试结果,所述仿真测试结果表征所述FMU模型的功能是否正常。
在一种实现方式中,所述测试用例还包括期望输出数据,所述期望输出数据包含在至少一个输出变量在每个所述运算时刻上对应的期望值和所述期望值对应的容差数据;
其中,本实施例中的装置还可以包括以下单元,如图17中所示:
第二测试单元1406,用于在测试控制单元1403得到所述FMU模型的仿真运算结果之后,根据所述仿真运算结果中每个所述输出变量在每个所述运算时刻上对应的输出值与其对应的期望值,获得每个所述输出变量对应的偏差数据;判断每个所述输出变量对应的偏差数据是否与其对应的容差数据相匹配,以得到所述FMU模型的仿真测试结果。
在一种实现方式中,本实施例中的装置还可以包括以下单元,如图18中所示:
结果输出单元1407,用于输出所述FMU模型的仿真测试结果。
在另一种实现方式中,本实施例中结果输出单元1407用于输出所述FMU模型的仿真运算结果。
在另一种实现方式中,结果输出单元1407还可以用于:获得至少一个目标变量和多个目标运算时刻,所述目标变量至少包含目标仿真参数、目标输入变量和目标输出变量中的任意一项或任意多项;获得所述FMU模型的仿真数据中所述目标变量在所述目标运算时刻上对应的数据值;所述仿真数据对应于所述测试用例;根据所述数据值,输出所述目标变量对应的仿真曲线,所述仿真曲线以所述目标运算时刻为自变量并以所述目标变量为因变量。
可选的,所述仿真曲线的输出参数与所述仿真曲线对应的目标变量相匹配。
需要说明的是,本实施例中各单元的具体实现可以参考前文中的相应内容,此处不再详述。
参考图19,为本申请实施例三提供的一种电子设备的结构示意图,该电子设备可以为能够进行数据处理的电子设备中,如计算机或服务器等。本实施例中的技术方案主要用于实现对不同软件平台所导出的FMU模型进行统一测试。
具体的,本实施例中的电子设备可以包含以下结构:
存储器1901,用于存储应用程序及所述应用程序运行所产生的数据;
处理器1902,用于执行所述应用程序,以实现:获得待测试的功能模型单元FMU模型;获得所述FMU模型的测试用例,所述测试用例至少包含测试输入数据,所述测试输入数据至少包含至少一项仿真参数、至少一个运算时刻和至少一个输入变量,所述仿真参数在每个所述运算时刻对应有参数值,所述输入变量在每个所述运算时刻对应有输入值;控制所述FMU模型进行仿真运算,以使得所述FMU模型依次在每个所述运算时刻基于所述仿真参数的参数值对所述输入变量的输入值进行运算,得到所述FMU模型的仿真运算结果。
由上述方案可知,本申请实施例三提供的一种电子设备中,在获得到待测试的FMU模型之后,可以通过获得该FMU模型的测试用例,实现对FMU模型的仿真运算,而测试用例中所包含的测试输入数据中包含有仿真参数、运算时刻和输入变量,而且,仿真参数在每个运算时刻上对应有参数值,输入变量在每个所述运算时刻上对应输入值,由此,在控制FMU模型进行仿真运算之后,FMU模型能够依次在每个运算时刻上基于仿真参数的参数值对输入变量的输入值进行运算,从而得到FMU模型的仿真运算结果。由此,不管是何种软件平台所导出的FMU模型,均可以通过获得能够对FMU模型进行仿真运算的测试用例对FMU模型进行测试,进而无需对在每种软件平台上均部署一套模型测试系统,实现对FMU模型的统一测试。
以下分别从系统流程和系统架构两个方面对本申请的技术方案进行详细的举例说明:
结合图20所示的系统流程图所示,本实施例中具有以下流程:
首先,获得需要进行测试的FMU文件,即前文中的FMU模型。例如,可以通过本申请所实现的测试系统的交互界面来选择需要进行测试的FMU文件,或者预先配置好待测试FMU文件之后,本申请所实现的测试系统通过接口读取到待测试的FMU文件。
之后,本申请所实现的测试系统对FMU文件进行静态检查,即检查FMU文件是否正确封装,如,检查FMU定义的参数、变量、输入、输出、动态库、代码等是否符合FMI标准,即FMI规则。
之后,新建测试用例,具体可以导入输入文件进而自动生成测试用例。导入文件格式如图2中所示,第一列是时间,其他列为该次仿真时FMU的参数和输入变量的值。
再然后,导入期望文件并生成相应的期望输出数据,进而完善测试用例的配置。其中,针对待测试的FMU文件的每个输出变量进行期望值值和容差数据设置。期望文件格式如图4中所示,第一列为时间,其他列是该仿真时间下FMU根据输入值计算出的输出值所需要满足的FMU输出变量的期望值。其中,可以对每一列输出参数进行容差设置,及允许实际输出值与期望输出值的偏差。
之后,FMU模型对测试用例执行仿真运算,其中,FMU模型可以进行单用例仿真,也可以进行多用例仿真。其中,仿真过程会实时显示仿真进度和结果曲线,如前文中的仿真曲线。
基于此,可以实现曲线观察,例如,通过配置用例曲线,选择需要观察的变量,并判断相应的仿真数据是否符合容差所对应的预期结果。
最后,根据需要导出仿真结果的实际数据,也可以导出或查看对应的测试结果与报告。例如,对于完成的仿真任务,可以导出实际数据的逗号分隔值CSV(Comma-SeparatedValues)文件,也可以导出或查看对应的PDF报告。导出实际仿真CSV文件格式同预期结果文件格式相同。
结合图21所示的系统架构图,本申请所实现的测试系统分为以下结构层,且在各结构层中的各个模块按照图中所示箭头方向进行相应处理:
应用层1:主要用于实现被测对象(FMU)管理、测试工程管理、用例配置等功能,其中,用户通过应用层的用户界面进行被测对象(FMU)导入、测试工程的创建、打开、编辑,还可以进行用例创建、配置等。还可以进行静态代码分析和进行仿真等功能;
业务逻辑层1:
当开始静态代码检查时,测试系统会调用FMU静态分析模块进行分析,分析测试FMU对象(模型)是否符合FMI标准,并返回结果给应用层显示;
当用户开始使用FMU模型仿真时,逻辑层的FMU模型解析模块会将要仿真的单个或多个用例进行解析,并将解析后数据发送给数据处理层;
数据处理层-仿真控制:仿真过程控制模块接收到上层需要仿真的用例及其所需要的输入文件和对比文件等信息,通过仿真引擎管理模块调度仿真引擎,开始仿真,同时管理仿真过程。仿真引擎管理模块在调度仿真引擎时会根据FMU是32位还是64位,调度不同仿真引擎进行计算,不同的仿真引擎之间可以通过传输控制协议TCP(Transmission ControlProtocol)进行通信。
仿真层:仿真引擎根据上次传给的FMU、输入文件、期望文件、用例配置、以及仿真配置进行仿真运算。仿真运算依据FMI标准进行,在一次仿真过程需要进行若干次仿真运算,仿真运算的步长和运算次数由用例配置决定。引擎每一次仿真计算输出结果均上传到数据处理层,数据处理层与仿真层之间通过TCP进行通信。
数据处理层-数据管理:实时采集模块负责采集仿真引擎输出数据,历史数据管理模块,负责管理本次仿真的全部数据。
业务逻辑层2:数据解析模块负责分析仿真数据正确性。用例数据分析,根据结果存储负责存储仿真数据;
应用层2:仿真结果曲线模块获取分析后仿真数据,并实时显示仿真曲线,同时显示对比的期望数据。报告模块负责生成结果报告,提供给用户。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种仿真测试方法,其特征在于,所述方法包括:
获得待测试的功能模型单元FMU模型,所述FMU模型为任意一种软件平台所导出的FMU模型;
获得所述FMU模型的测试用例,所述测试用例至少包含测试输入数据,所述测试输入数据至少包含至少一项仿真参数、至少一个运算时刻和至少一个输入变量,所述仿真参数在每个所述运算时刻对应有参数值,所述输入变量在每个所述运算时刻对应有输入值;
控制所述FMU模型进行仿真运算,以使得所述FMU模型依次在每个所述运算时刻基于所述仿真参数的参数值对所述输入变量的输入值进行运算,得到所述FMU模型的仿真运算结果;
所述测试用例基于导入到测试系统中的输入文件生成,包括:
根据输入文件中所包含的多个文件列的名称,分别获得目标参数列数据和目标输入列数据;
根据目标参数列数据和目标输入列数据,分别获得仿真参数在FMU模型的至少一个运算时刻上对应的参数值和输入变量在运算时刻上对应的输入值,参数值和输入值对应的运算时刻是与FMU模型的仿真步长相匹配;
至少根据参数值和输入值,生成测试用例中的测试输入数据;
所述根据目标参数列数据和目标输入列数据,分别获得仿真参数在FMU模型的至少一个运算时刻上对应的参数值和输入变量在运算时刻上对应的输入值包括:
判断仿真步长是否小于输入文件中相邻两个时刻数据之间的时间长;
如果仿真步长等于输入文件中相邻两个时刻数据之间的时间长,直接将目标参数列数据中各项参数数据进行值读取,以作为该仿真参数相应运算时刻上对应的参数值,将目标输入列数据中各项输入数据进行值读取,以作为该输入变量在相应运算时刻上对应的输入值;
如果仿真步长大于输入文件中相邻两个时刻数据之间的时间长,按照FMU模型中的运算时刻在目标参数列数据和目标输入列数据中读取相应运算时刻对应的参数值和输入值,以使得参数值和输入值对应的运算时刻是与FMU模型的仿真步长相匹配;
如果仿真步长小于输入文件中相邻两个时刻数据之间的时间长,在输入文件的两个时刻数据之间插入一个或多个时刻,并针对插入的时刻生成数值,以使得参数值和输入值对应的运算时刻是与FMU模型的仿真步长相匹配。
2.根据权利要求1所述的方法,其特征在于,在获得所述FMU模型的测试用例之前,所述方法还包括:
对所述FMU模型进行封装检测,以得到封装检测结果,所述封装检测结果表征所述FMU模型是否满足通用模型接口FMI标准;
其中,在所述封装检测结果表征所述FMU模型满足所述FMI标准的情况下,执行所述步骤:获得所述FMU模型的测试用例。
3.根据权利要求1所述的方法,其特征在于,所述测试用例还包括期望输出数据,所述期望输出数据包含在至少一个输出变量在每个所述运算时刻上对应的期望值;
其中,在得到所述FMU模型的仿真运算结果之后,所述方法还包括:
将所述仿真运算结果中每个所述输出变量在每个所述运算时刻上对应的输出值与其对应的期望值进行比对,以得到所述FMU模型的仿真测试结果,所述仿真测试结果表征所述FMU模型的功能是否正常。
4.根据权利要求1所述的方法,其特征在于,所述测试用例还包括期望输出数据,所述期望输出数据包含在至少一个输出变量在每个所述运算时刻上对应的期望值和所述期望值对应的容差数据;
其中,在得到所述FMU模型的仿真运算结果之后,所述方法还包括:
根据所述仿真运算结果中每个所述输出变量在每个所述运算时刻上对应的输出值与其对应的期望值,获得每个所述输出变量对应的偏差数据;
判断每个所述输出变量对应的偏差数据是否与其对应的容差数据相匹配,以得到所述FMU模型的仿真测试结果。
5.根据权利要求3或4所述的方法,其特征在于,还包括:
输出所述FMU模型的仿真测试结果。
6.根据权利要求1所述的方法,其特征在于,还包括:
输出所述FMU模型的仿真运算结果。
7.根据权利要求3或4所述的方法,其特征在于,还包括:
获得至少一个目标变量和多个目标运算时刻,所述目标变量至少包含目标仿真参数、目标输入变量和目标输出变量中的任意一项或任意多项;
获得所述FMU模型的仿真数据中所述目标变量在所述目标运算时刻上对应的数据值;所述仿真数据对应于所述测试用例;
根据所述数据值,输出所述目标变量对应的仿真曲线,所述仿真曲线以所述目标运算时刻为自变量并以所述目标变量为因变量。
8.根据权利要求7所述的方法,其特征在于,所述仿真曲线的输出参数与所述仿真曲线对应的目标变量相匹配。
9.一种仿真测试装置,其特征在于,所述装置包括:
模型获得单元,用于获得待测试的功能模型单元FMU模型;所述FMU模型为任意一种软件平台所导出的FMU模型;
用例获得单元,用于获得所述FMU模型的测试用例,所述测试用例至少包含测试输入数据,所述测试输入数据至少包含至少一项仿真参数、至少一个运算时刻和至少一个输入变量,所述仿真参数在每个所述运算时刻对应有参数值,所述输入变量在每个所述运算时刻对应有输入值;测试控制单元,用于控制所述FMU模型进行仿真运算,以使得所述FMU模型依次在每个所述运算时刻基于所述仿真参数的参数值对所述输入变量的输入值进行运算,得到所述FMU模型的仿真运算结果;
测试用例生成单元,用于基于导入到测试系统中的输入文件生成所述测试用例,包括:
根据输入文件中所包含的多个文件列的名称,分别获得目标参数列数据和目标输入列数据;
根据目标参数列数据和目标输入列数据,分别获得仿真参数在FMU模型的至少一个运算时刻上对应的参数值和输入变量在运算时刻上对应的输入值,参数值和输入值对应的运算时刻是与FMU模型的仿真步长相匹配;
至少根据参数值和输入值,生成测试用例中的测试输入数据;
所述测试用例生成单元根据目标参数列数据和目标输入列数据,分别获得仿真参数在FMU模型的至少一个运算时刻上对应的参数值和输入变量在运算时刻上对应的输入值包括:
判断仿真步长是否小于输入文件中相邻两个时刻数据之间的时间长;
如果仿真步长等于输入文件中相邻两个时刻数据之间的时间长,直接将目标参数列数据中各项参数数据进行值读取,以作为该仿真参数相应运算时刻上对应的参数值,将目标输入列数据中各项输入数据进行值读取,以作为该输入变量在相应运算时刻上对应的输入值;
如果仿真步长大于输入文件中相邻两个时刻数据之间的时间长,按照FMU模型中的运算时刻在目标参数列数据和目标输入列数据中读取相应运算时刻对应的参数值和输入值,以使得参数值和输入值对应的运算时刻是与FMU模型的仿真步长相匹配;
如果仿真步长小于输入文件中相邻两个时刻数据之间的时间长,在输入文件的两个时刻数据之间插入一个或多个时刻,并针对插入的时刻生成数值,以使得参数值和输入值对应的运算时刻是与FMU模型的仿真步长相匹配。
10.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储应用程序及所述应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现:获得待测试的功能模型单元FMU模型,所述FMU模型为任意一种软件平台所导出的FMU模型;获得所述FMU模型的测试用例,所述测试用例至少包含测试输入数据,所述测试输入数据至少包含至少一项仿真参数、至少一个运算时刻和至少一个输入变量,所述仿真参数在每个所述运算时刻对应有参数值,所述输入变量在每个所述运算时刻对应有输入值;控制所述FMU模型进行仿真运算,以使得所述FMU模型依次在每个所述运算时刻基于所述仿真参数的参数值对所述输入变量的输入值进行运算,得到所述FMU模型的仿真运算结果;
其中,所述测试用例基于导入到测试系统中的输入文件生成,包括:
根据输入文件中所包含的多个文件列的名称,分别获得目标参数列数据和目标输入列数据;
根据目标参数列数据和目标输入列数据,分别获得仿真参数在FMU模型的至少一个运算时刻上对应的参数值和输入变量在运算时刻上对应的输入值,参数值和输入值对应的运算时刻是与FMU模型的仿真步长相匹配;
至少根据参数值和输入值,生成测试用例中的测试输入数据;
所述根据目标参数列数据和目标输入列数据,分别获得仿真参数在FMU模型的至少一个运算时刻上对应的参数值和输入变量在运算时刻上对应的输入值包括:
判断仿真步长是否小于输入文件中相邻两个时刻数据之间的时间长;
如果仿真步长等于输入文件中相邻两个时刻数据之间的时间长,直接将目标参数列数据中各项参数数据进行值读取,以作为该仿真参数相应运算时刻上对应的参数值,将目标输入列数据中各项输入数据进行值读取,以作为该输入变量在相应运算时刻上对应的输入值;
如果仿真步长大于输入文件中相邻两个时刻数据之间的时间长,按照FMU模型中的运算时刻在目标参数列数据和目标输入列数据中读取相应运算时刻对应的参数值和输入值,以使得参数值和输入值对应的运算时刻是与FMU模型的仿真步长相匹配;
如果仿真步长小于输入文件中相邻两个时刻数据之间的时间长,在输入文件的两个时刻数据之间插入一个或多个时刻,并针对插入的时刻生成数值,以使得参数值和输入值对应的运算时刻是与FMU模型的仿真步长相匹配。
CN202010963241.1A 2020-09-14 2020-09-14 一种仿真测试方法、装置及电子设备 Active CN112084668B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010963241.1A CN112084668B (zh) 2020-09-14 2020-09-14 一种仿真测试方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010963241.1A CN112084668B (zh) 2020-09-14 2020-09-14 一种仿真测试方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN112084668A CN112084668A (zh) 2020-12-15
CN112084668B true CN112084668B (zh) 2023-11-14

Family

ID=73737042

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010963241.1A Active CN112084668B (zh) 2020-09-14 2020-09-14 一种仿真测试方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN112084668B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799968B (zh) * 2021-04-08 2021-06-22 湖南高至科技有限公司 一种基于脚本的测试驱动建模系统及方法
CN113077158A (zh) * 2021-04-13 2021-07-06 北京中船信息科技有限公司 一种用于船舶行业的涂装业务流程模型仿真系统及方法
CN113361095B (zh) * 2021-06-02 2022-05-17 中国汽车技术研究中心有限公司 基于工业app集成开发平台的模型验证方法和系统
CN117785430B (zh) * 2024-02-23 2024-05-14 湖南汇创玮达信息科技有限公司 基于主题的fmu模型混合仿真调度方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10312311A (ja) * 1997-05-13 1998-11-24 Mitsubishi Electric Corp 論理シミュレーション方法及び論理シミュレーション方法を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
CN109948213A (zh) * 2019-03-11 2019-06-28 北京世冠金洋科技发展有限公司 一种基于fmi标准的协同仿真方法及装置
DE102019003851A1 (de) * 2018-06-01 2019-12-05 The Mathworks, Inc. Systeme und Verfahren zum automatischen Realisieren von Modellen zu Co-Simulation
DE102018116742A1 (de) * 2018-07-11 2020-01-16 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren und System zur Simulation
CN111123889A (zh) * 2019-12-20 2020-05-08 北京空天技术研究所 飞行器制导控制仿真测试方法及装置
DE102020003428A1 (de) * 2020-06-06 2020-08-13 FEV Software and Testing Solutions GmbH Verfahren zur Erstellung eines Simulationsmodells, Verwendung eines Simulationsmodells, Computerprogrammprodukt, Verfahren zur Kalibrierung eines Steuergeräts
CN111552636A (zh) * 2020-04-17 2020-08-18 中国航空无线电电子研究所 一种应用fmi协议支持aadl集成仿真的方法
CN111650847A (zh) * 2020-05-12 2020-09-11 南京航空航天大学 执行机构模型在航空发动机硬件在回路平台的集成方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11972177B2 (en) * 2013-11-08 2024-04-30 Rockwell Automation Technologies, Inc. Interface for data exchange between industrial controllers and simulation applications for simulating a machine
HUP1300737A2 (en) * 2013-12-18 2015-06-29 Turbine Halozatelemzoe Kutatasi Fejlesztesi Kft Method, processor controlled device and program for intervention planning in a complex system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10312311A (ja) * 1997-05-13 1998-11-24 Mitsubishi Electric Corp 論理シミュレーション方法及び論理シミュレーション方法を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
DE102019003851A1 (de) * 2018-06-01 2019-12-05 The Mathworks, Inc. Systeme und Verfahren zum automatischen Realisieren von Modellen zu Co-Simulation
DE102018116742A1 (de) * 2018-07-11 2020-01-16 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren und System zur Simulation
CN109948213A (zh) * 2019-03-11 2019-06-28 北京世冠金洋科技发展有限公司 一种基于fmi标准的协同仿真方法及装置
CN111123889A (zh) * 2019-12-20 2020-05-08 北京空天技术研究所 飞行器制导控制仿真测试方法及装置
CN111552636A (zh) * 2020-04-17 2020-08-18 中国航空无线电电子研究所 一种应用fmi协议支持aadl集成仿真的方法
CN111650847A (zh) * 2020-05-12 2020-09-11 南京航空航天大学 执行机构模型在航空发动机硬件在回路平台的集成方法
DE102020003428A1 (de) * 2020-06-06 2020-08-13 FEV Software and Testing Solutions GmbH Verfahren zur Erstellung eines Simulationsmodells, Verwendung eines Simulationsmodells, Computerprogrammprodukt, Verfahren zur Kalibrierung eines Steuergeräts

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
基于FMI标准的传动系统模型在环虚拟车辆仿真研究;姚逸程;周文华;;机电工程(08);全文 *
基于FMI的分布式联合仿真技术研究;王鸿亮;廉东本;徐久强;;计算机仿真(04);全文 *
基于FMI的飞行器分系统多源异构模型一体化仿真;陆冠华;郝明瑞;胡松;水尊师;;导航定位与授时(06);全文 *
建筑全性能仿真平台内核联合测试平台的设计与实现;郭勇;苏小红;邱景;;智能计算机与应用(04);全文 *

Also Published As

Publication number Publication date
CN112084668A (zh) 2020-12-15

Similar Documents

Publication Publication Date Title
CN112084668B (zh) 一种仿真测试方法、装置及电子设备
Nabi et al. An overview of hardware-in-the-loop testing systems at Visteon
CN109947646A (zh) 接口测试方法、装置、计算机设备和存储介质
US9606902B2 (en) Malfunction influence evaluation system and evaluation method using a propagation flag
CN113392025B (zh) 对可重构fpga软件进行过程监控的方法
US20050223295A1 (en) Method for the creation of sequences for testing software
US8489381B1 (en) Method and system for simulating test instruments and instrument functions
Lisagor et al. Towards a practicable process for automated safety analysis
CN106446412A (zh) 一种航空电子系统基于模型的测试方法
CN112597006A (zh) 一种嵌入式软件集成测试自动化执行系统及方法
Abalov et al. Using the SimInTech dynamic modeling environment to build and check the operation of automation systems
CN114138670B (zh) 基于接口自动化测试与功能、性能、安全测试融合的方法
CN108228454B (zh) 一种基于环境故障注入的机电产品软件可靠性评价方法
Pereira et al. Cloud based IOPT Petri net simulator to test and debug embedded system controllers
CN110109374B (zh) 液体火箭发动机推力调节系统的半实物仿真方法及装置
CN115220707B (zh) 一种基于区块链的软件开发管理方法及系统
CN113590498B (zh) 一种桌面操作系统应用启动时间的测试方法及系统
US20120265476A1 (en) System Test Specification Generation Device and Testing Device
EP3082079A1 (en) Method and system for identifying naval configurations through evaluation of operational and design parameters
KR102283234B1 (ko) 매트랩/시뮬링크를 이용한 실시간 함정 추진 체계 시뮬레이션 시스템
Trout Testing safety-critical systems using Model-based Systems Engineering (MBSE)
CN112732550A (zh) 基于模型的自动化测试方法及系统
CN115309653A (zh) 用于工业控制软件测试的组态验证方法、装置和存储介质
Pryanichnikov et al. Programming of robot synergism in multi-agent simulators
Tian et al. Conformance Testing of Link 16 Message Standard based on ATC-Gen

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant