CN111580409B - 面向实时嵌入式系统的故障仿真测试方法 - Google Patents
面向实时嵌入式系统的故障仿真测试方法 Download PDFInfo
- Publication number
- CN111580409B CN111580409B CN202010253007.XA CN202010253007A CN111580409B CN 111580409 B CN111580409 B CN 111580409B CN 202010253007 A CN202010253007 A CN 202010253007A CN 111580409 B CN111580409 B CN 111580409B
- Authority
- CN
- China
- Prior art keywords
- fault
- simulation model
- fault simulation
- external cross
- parameter information
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及仿真测试技术领域,公开了一种面向实时嵌入式系统的故障仿真测试方法。其中,该方法包括:建立故障仿真引擎;建立外部交联系统仿真模型及对应的第一参数信息清单;建立故障仿真模型;建立与故障仿真模型对应的第二参数信息清单;根据第一参数信息清单和第二参数信息清单建立外部交联系统仿真模型与故障仿真模型的数据交互区域;针对所述外部交联系统仿真模型确定故障位置,并在所述故障位置加入所述故障仿真引擎的故障仿真接口的调用;利用数据交互区域,通过故障仿真引擎、外部交联系统仿真模型和故障仿真模型执行实时故障仿真测试。
Description
技术领域
本发明涉及仿真测试技术领域,尤其涉及一种面向实时嵌入式系统的故障仿真测试方法。
背景技术
针对实时嵌入式系统(或实时嵌入式软件)的实时、动态、非侵入式测试,目前采用的一种方法是构建基于半实物仿真平台的测试验证环境。在该方法中,被测的实时嵌入式系统以实物形式参与测试,外部交联系统通过相似的实时仿真系统来构建,采用了外部交联系统仿真建模、实时仿真运行以及实时接口通信等技术。
半实物仿真测试环境中外部交联系统仿真模型对外部交联系统的功能、算法、输入输出等进行模拟,同时通过软件接口操作与被测嵌入式系统硬件接口一致的硬件接口板(比如1553B、RS422、DIO、ADDA接口)进行测试数据的收与发。同时各个外部交联系统模型之间通过软件接口也可进行数据交互。
在某些工业领域,比如飞行器控制系统,实时嵌入式系统往往要求较高的可靠性,具有容错设计,要求能够在一些极端、异常的场景下,具备一定的安全防范、可持续工作等能力;另一方面因为测试需求在设计时不确定,导致在对交联系统进行建模时无法预料所有的测试要求。另外如果建模时考虑过多测试需求,可能导致建模复杂度急剧上升。因此实际中,往往通过只构建外部交联系统在正常工作场景的仿真模型,而通过以下方法来实现异常、极限、边界等测试需求:(1)测试人员在测试过程中更改仿真模型软件代码;(2)更改仿真模型配置。方法(1)灵活性好,但测试人员要求掌握仿真建模的知识,而且较难保障仿真模型更改前后的一致性,测试回归及测试复用难以开展。方法(2)由于测试需求的数量及可变性,仿真模型配置参数难以事先提取,因此实际支持的测试有限。
发明内容
本发明的目的在于克服现有技术不足,提供了一种面向实时嵌入式系统的故障仿真测试方法,能够解决上述现有技术中的问题。
本发明的技术解决方案:一种面向实时嵌入式系统的故障仿真测试方法,其中,该方法包括:
建立故障仿真引擎;
建立外部交联系统仿真模型及对应的第一参数信息清单;
建立故障仿真模型,所述故障仿真模型包括故障仿真启动条件、故障位置、故障动作和故障参数;
建立与故障仿真模型对应的第二参数信息清单;
根据所述第一参数信息清单和所述第二参数信息清单建立所述外部交联系统仿真模型与所述故障仿真模型的数据交互区域,数据交互区域包括多个信息单元,每个信息单元至少包括相关变量的数据名称、数据类型、以及相关变量在当前运行时内存中的地址;
针对所述外部交联系统仿真模型确定故障位置,并在所述故障位置加入所述故障仿真引擎的故障仿真接口的调用;
利用所述数据交互区域,通过所述故障仿真引擎、所述外部交联系统仿真模型和所述故障仿真模型执行实时故障仿真测试。
优选地,所述第一参数信息清单包括:外部交联系统仿真模型的输入参数,外部交联系统仿真模型的输出参数,外部交联系统仿真模型的初始参数以及外部交联系统仿真模型的控制参数的名称、类型、长度和各控制参数之间的层次关系。
优选地,所述第二参数信息清单包括:所述故障仿真模型中用到的所述外部交联系统仿真模型的相关参数、故障仿真模型中创建的临时变量以及系统运行信息变量。
优选地,所述第二参数信息清单中的所述外部交联系统仿真模型的相关参数的引用名称与第一参数信息清单中的一致。
优选地,根据所述第一参数信息清单和所述第二参数信息清单建立所述外部交联系统仿真模型与所述故障仿真模型的数据交互区域包括:
针对外部交联系统仿真模型增加运行时模型参数信息导出接口;
通过模型参数信息导出接口对所述第一参数信息清单中所列的参数信息和所述第二参数信息清单中所列的参数信息进行比较;
如果在第二参数信息清单中存在增加了导出接口的外部交联系统仿真模型的相关参数,则在数据交互区域中建立增加了导出接口的外部交联系统仿真模型的相关参数的信息单元;
利用所述第二参数信息清单在数据交互区域中建立系统运行信息变量与故障仿真模型中创建的临时变量的信息单元。
优选地,针对所述外部交联系统仿真模型确定故障位置,并在所述故障位置加入所述故障仿真引擎的故障仿真接口的调用包括:
所述故障仿真接口通过比对故障仿真模型的位置属性与调用时的位置信息,确定是否执行所述故障仿真模型;
在确定执行所述故障仿真模型的情况下,所述故障仿真接口根据故障仿真模型的启动条件确定是否启动故障仿真,在确定启动故障仿真的情况下,根据故障动作的约束关系,确定与约束关系对应的策略,以便以确定的策略执行故障动作。
优选地,所述故障动作包括至少一个执行体,多个执行体之间存在故障动作约束关系,所述约束关系包括独立约束、重复约束和周期约束,独立约束用于指示各个执行体相互独立且只运行一次,重复约束用于指示任意一个执行体在每次调度中均重复执行,周期约束用于指示任意一个故障动作按照预定周期重复执行;所述故障参数包括故障仿真模型创建的临时变量和故障运行时状态变量。
优选地,所述故障位置包括外部交联系统仿真模型初始化前、外部交联系统仿真模型输出后、外部交联系统仿真模型输入前、和外部交联系统仿真模型获取控制数据前。
优选地,在实时故障仿真测试过程中,所述外部交联系统仿真模型与所述故障仿真模型均进行实时调度。
通过上述技术方案,可以对原有半实物仿真测试环境的软件架构进行少量的改动,增加故障仿真引擎及故障仿真模型的部分,故障仿真引擎基于故障仿真模型进行调度,实现动态的故障仿真。故障仿真模型采用结构化的描述形式,可以为可视化的故障仿真建模工具的开发提供支撑。并且,根据两个模型的参数信息清单建立数据交互区域,可以实现仿真测试的数据共享,提高了测试效率。此外,故障仿真模型独立于外部交联系统仿真模型,测试系统构建完成后,不再需要对外部交联系统仿真模型进行更改,维护了外部交联系统仿真模型的一致性,可以进行按照仿真试验的类型、日期、测试任务等多种形式对故障仿真测试进行管理,便于测试的工程化管理。
附图说明
所包括的附图用来提供对本发明实施例的进一步的理解,其构成了说明书的一部分,用于例示本发明的实施例,并与文字描述一起来阐释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种向实时嵌入式系统的故障仿真测试方法的流程图。
具体实施方式
下面将结合附图对本发明的具体实施例进行详细说明。在下面的描述中,出于解释而非限制性的目的,阐述了具体细节,以帮助全面地理解本发明。然而,对本领域技术人员来说显而易见的是,也可以在脱离了这些具体细节的其它实施例中实践本发明。
在此需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的设备结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
图1为本发明实施例提供的一种向实时嵌入式系统的故障仿真测试方法的流程图。
如图1所示,本发明实施例提供了一种向实时嵌入式系统的故障仿真测试方法,其中,该方法包括:
S100,建立故障仿真引擎;
S102,建立外部交联系统仿真模型及对应的第一参数信息清单;
S104,建立故障仿真模型,所述故障仿真模型包括故障仿真启动条件、故障位置、故障动作和故障参数;
S106,建立与故障仿真模型对应的第二参数信息清单(即,故障仿真模型参数信息清单);
S108,根据所述第一参数信息清单中和所述第二参数信息清单建立所述外部交联系统仿真模型与所述故障仿真模型的数据交互区域,数据交互区域包括多个信息单元,每个信息单元至少包括相关变量的数据名称、数据类型、以及相关变量在当前运行时内存中的地址;
其中,数据交互区域也可以称为数据共享区域,该区域中可以包括各参数信息的内容。
S110,针对所述外部交联系统仿真模型确定故障位置,并在所述故障位置加入所述故障仿真引擎的故障仿真接口的调用;
S112,利用所述数据交互区域,通过所述故障仿真引擎、所述外部交联系统仿真模型和所述故障仿真模型执行实时故障仿真测试。
其中,故障仿真启动条件用于表示故障的发生条件。故障位置用于指定故障仿真接口(故障实时仿真接口)调用的位置(参见S110)。
通过上述技术方案,可以对原有半实物仿真测试环境的软件架构进行少量的改动,增加故障仿真引擎及故障仿真模型的部分,故障仿真引擎基于故障仿真模型进行调度,实现动态的故障仿真。故障仿真模型采用结构化的描述形式,可以为可视化的故障仿真建模工具的开发提供支撑。并且,根据两个模型的参数信息清单建立数据交互区域,可以实现仿真测试的数据共享,提高了测试效率。此外,故障仿真模型独立于外部交联系统仿真模型,测试系统构建完成后,不再需要对外部交联系统仿真模型进行更改,维护了外部交联系统仿真模型的一致性,可以进行按照仿真试验的类型、日期、测试任务等多种形式对故障仿真测试进行管理,便于测试的工程化管理。
根据本发明一种实施例,所述第一参数信息清单可以包括:外部交联系统仿真模型的输入参数,外部交联系统仿真模型的输出参数,外部交联系统仿真模型的初始参数以及外部交联系统仿真模型的控制参数的名称、类型、长度和各控制参数之间的层次关系。
其中,第一参数信息清单(即外部交联系统仿真模型参数信息清单)可以以外部交联系统仿真模型为基本组织单位,按照结构化的方式进行组织。表1对结构化参数清单中主要的节点含义及取值进行了示例性说明。
表1外部交联系统仿真模型参数信息清单节点的示例性说明
其中,本发明实施例中建立了故障仿真模型的通用框架,用以指导测试人员构建测试需求。
根据本发明一种实施例,所述故障动作包括至少一个执行体,多个执行体之间存在故障动作约束关系,所述约束关系包括独立约束、重复约束和周期约束,独立约束用于指示各个执行体相互独立且只运行一次,重复约束用于指示任意一个执行体在每次调度中均重复执行,周期约束用于指示任意一个故障动作按照预定周期重复执行;所述故障参数包括故障仿真模型创建的临时变量和故障运行时状态变量。
换言之,故障动作可以由故障仿真执行体构成,单个或多个执行体之间存在故障动作约束关系,且故障动作约束关系可以划分为三类:独立约束、重复约束、周期约束,其中独立约束指各执行体是相互独立的,互不影响,运行一次即本次故障仿真结束;重复约束是指某个执行体在每次调度中均重复执行,用户需指定重复次数;周期约束则指某个故障按照预定周期(一定的时间频率)重复执行,用户需指定预定周期,独立约束可以连接重复与周期的执行体。故障参数可以包括故障仿真模型创建的临时变量和故障运行时状态变量,故障仿真模型创建的临时变量便于用户自定义一些数据,用于故障仿真模型间或者不同执行体之间的数据交互;故障运行时状态包括是否启动、是否完成以及故障已运行时间,测试人员在设计某一个故障仿真启动条件时,可获取其他故障仿真模型的当前运行状态,以组合出多故障约束的故障仿真模型。
基于上述,本发明实施例中的故障仿真模型可用结构化的形式进行组织,表2给出了结构化描述的故障仿真模型的各节点的示例性说明,结构化的故障仿真模型框架有利于测试用户进行测试建模的二次开发,为实现测试用例可视化开发提供了通用数据结构支撑。
表2结构化的故障仿真模型的各节点的示例性说明
根据本发明一种实施例,所述第二参数信息清单包括:所述故障仿真模型中用到的所述外部交联系统仿真模型的相关参数、故障仿真模型中创建的临时变量以及系统运行信息变量。
其中,所述第二参数信息清单中的所述外部交联系统仿真模型的相关参数的引用名称与第一参数信息清单中的一致。
举例来讲,S106中可以通过运行前扫描对故障仿真模型中用到的外交联系统仿真模型的相关参数、故障仿真模型中创建的临时变量以及系统运行信息变量进行整理,建立得到第二参数信息清单。故障仿真模型参数清单也可以以结构化的方式进行组织。表3对故障仿真模型参数信息清单中的主要节点的含义及取值进行示例性说明。其中参数类型(ParaType)如果为MODEL,说明此变量来自于外部交联系统仿真模型;如果为LOCAL_XX(XX表示该变量的数据类型),说明此变量是故障仿真模型创建的临时变量;如果为FSTART,FEND,FRUNTIME,说明此变量是故障仿真模型的运行状态,具体含义见表3。
表3故障仿真模型参数信息清单中主要节点的含义及取值的示例性说明
根据本发明一种实施例,所述第一参数信息清单中所列的参数信息的内容和所述第二参数信息清单中所列的参数信息的内容可以映射在数据交互区域中,提供为故障仿真模型读取与修改数据的接口;同时可反向映射到外部交联系统仿真模型内部,使外部交联系统仿真模型在运行时使用的数据是故障仿真模型更改后的。数据交互区域能够映射的外部交联系统仿真模型数据的多少直接决定了故障仿真测试的能力。
根据本发明一种实施例,根据所述第一参数信息清单和所述第二参数信息清单建立所述外部交联系统仿真模型与所述故障仿真模型的数据交互区域包括:
针对外部交联系统仿真模型增加运行时模型参数信息导出接口;
通过模型参数信息导出接口对所述第一参数信息清单中所列的参数信息和所述第二参数信息清单中所列的参数信息进行比较;
如果在第二参数信息清单中存在增加了导出接口的外部交联系统仿真模型的相关参数,则在数据交互区域中建立增加了导出接口的外部交联系统仿真模型的相关参数的信息单元;
其中,相关变量的数据名称与故障仿真模型中的引用名称,及故障仿真模型参数信息清单中的名称一致。比较的算法是不断扫描故障仿真模型参数信息清单中的参数信息,然后根据参数类型及参数名称进行判断:1)如果变量的类型为MODEL,说明此变量来自外部交联系统仿真模型;2)针对变量类型为MODEL的参数,获取外部交联系统仿真模型中的层次关系及外部交联系统仿真模型名称,如果此参数是本外部交联系统仿真模型的,则将该参数对应的外部交联系统仿真模型变量的相关信息,以信息单元的格式,填写到数据交互区。
利用所述第二参数信息清单在数据交互区域中建立系统运行信息变量与故障仿真模型中创建的临时变量的信息单元。
系统运行信息相关数据地址、数据名称等按照信息单元的格式由故障仿真引擎调用系统运行信息注册功能接口(SySInfo_Register())写入到数据交互区。
对于故障仿真模型临时变量、故障仿真模型运行信息,故障仿真引擎中故障信息注册功能接口(FaultPara_Register())根据故障仿真模型参数清单为故障仿真临时变量、故障仿真模型运行信息动态分配内存,并将申请的内存地址信息与临时变量名称、类型等信息一起以信息单元的格式填写到数据交互区域。
根据本发明一种实施例,针对所述外部交联系统仿真模型确定故障位置,并在所述故障位置加入所述故障仿真引擎的故障仿真接口的调用包括:
所述故障仿真接口通过比对故障仿真模型的位置属性与调用时的位置信息,确定是否执行所述故障仿真模型;
在确定执行所述故障仿真模型的情况下,所述故障仿真接口根据故障仿真模型的启动条件确定是否启动故障仿真,在确定启动故障仿真的情况下,根据故障动作的约束关系,确定与约束关系对应的策略,以便以确定的策略执行故障动作。
根据本发明一种实施例,故障位置表明了故障仿真的时机。本发明实施例根据实时嵌入式系统半实物仿真测试原理,提出了以下故障位置:a)外部交联系统仿真模型初始化前;b)外部交联系统仿真模型输出后;c)外部交联系统仿真模型输入前;d)外部交联系统仿真模型获取控制数据前。除了上述示出的故障位置以为,还可以包括e)其他需要故障仿真的位置。在上述位置外部交联系统仿真模型运行后,故障仿真引擎调用故障仿真接口。也就是,通过对外部交联系统仿真模型的调度部分进行更改,可以在故障位置加入故障仿真引擎的故障仿真接口的调用。
本领域技术人员应当理解,上述关于故障位置的描述仅仅是示例性的,并非用于限定本发明。例如,可以根据实际情况自定义选取故障位置。
根据本发明一种实施例,在实时故障仿真测试过程中,所述外部交联系统仿真模型与所述故障仿真模型均进行实时调度。
根据本发明一种实施例,故障仿真引擎是故障仿真的执行模块。举例来讲,可以包括故障仿真模型参数信息清单生成、故障仿真模型实例生成、故障仿真初始化以及故障仿真模型实时仿真等主要功能。故障仿真引擎的接口与属性的示例说明可以参见表4。
表4故障仿真引擎接口与属性的示例说明
其中,故障仿真模型实例生成是指故障仿真引擎根据所创建的结构化故障仿真模型(此时故障仿真模型是静态的),调度故障仿真模型实例化接口(FaultModelInstance),生成系统可调度运行的故障仿真模型实例。每个故障仿真模型对应一个故障仿真模型实例,实例在运行期间一直存在,运行后由故障仿真引擎销毁。故障仿真模型实例主要包括的属性及接口的示例说明参见表5。
表5故障仿真模型实例接口及属性含义的示例说明
在本发明一种实施例中,对于故障仿真初始化而言,故障仿真引擎的初始化接口调用CreatFaultDataList()功能完成故障仿真模型参数信息的扫描,建立上述实施例中的故障仿真模型参数信息清单;调用DataSharedMem_Create()功能向系统申请内存,完成数据交互区域的创建与初始化;调用SySInfo_Register()功能将系统运行信息,比如实时仿真系统的运行周期、仿真时间、帧计数等信息按照数据交互区域的信息单元结构存储到数据交互区域;调用FaultPara_Register()功能完成故障仿真模型临时变量信息在数据交互区域的创建。
在本发明一种实施例中,对于故障仿真模型实时仿真(故障仿真模型实时运行)而言,在故障仿真引擎中维护了故障仿真模型列表及指向数据交互区域的指针,以供故障实时仿真接口FaultSimuRun()的调度。如前述实施例中所述的,故障实时仿真接口的调用位置是通过故障位置确定的。故障仿真接口通过比对故障仿真模型的位置属性与调用时的位置信息,决定是否执行此故障仿真模型。同时根据故障仿真模型的故障启动条件可以决定是否启动故障仿真,根据故障执行体的组合关系,可以决定采用何种策略来执行故障动作。
根据本发明一种实施例,所述第一参数信息清单和所述第二参数信息清单为XML文档格式。
本领域技术人员应当理解,上述格式的描述仅仅是示例性的,并非用于限定本发明。
下面以某嵌入式飞控计算机的故障仿真测试为例,构建了具有故障仿真功能的半实物仿真测试环境。该半实物仿真测试环境软件例如可以通过C++语言开发。
本领域技术人员应当理解,针对某嵌入式飞控计算机的故障仿真测试的描述仅仅是示例性的,并非用于限定本发明。
1.本示例中,以CModel类为外部交联系统仿真模型的基类,以CIOAgent类为各硬件接口操作类的基类,CModelTransfer类用于实现外部交联系统模型类各类内部的交互以及与硬件接口类之间的数据交互。以CFaultManager为故障仿真引擎。以CDataExchangeZone为数据交互区域类。
2.外部交联系统仿真模型可以分为数学功能模型(CMathModel)与接口通信模型(CICDModel),实际不同的分系统交联模型(CNavigator、CINSICD等)均继承这两个类。同时数学功能模型(CMathModel)与接口通信模型(CICDModel)具有共同的父类:模型基类(CModel),模型基类提供了各类模型的基本接口,各子类通过多态的方式实现各自的功能。其中各模型类通过多态的方式需要实现与故障仿真相关的主要接口方法有:
(1)模型参数信息导出接口ExportModelParaList:该接口将外部交联系统仿真模型的相关参数信息导出到外部,供后续故障仿真模型建模与模型参数信息注册(MdParaToDtExZone方法)使用。本示例中导出的模型参数信息列表(清单)以XML文档格式为输出,但不限于XML文档。
(2)模型参数信息注册交互数据共享区接口:MdParaToDtExZone。该接口对比(1)中导出的模型参数信息与故障仿真模型参数信息清单,如果故障仿真模型参数信息清单中的参数与导出的模型参数清单一致,则在数据交互区域创建该参数的运行时信息(地址、名称、长度),通过信息交互单元(CDataUnit)注册到数据交互区域类(CDataExchangeZone)中。
3.数据交互区域类(CDataExchangeZone)提供了外部交联系统仿真模型与故障仿真模型之间的数据交互共享功能,是二者间数据动态干预的基础。其原理为数据交互区域类(CDataExchangeZone)内聚了信息交互单元(CDataUnit),而信息交互单元中记录了外部交联系统仿真模型与故障仿真模型参数、系统运行信息等数据在内存中的运行时地址。因此当故障仿真引擎根据故障仿真模型中的测试内容,将该地址对应数据的内容更改后,外部交联系统仿真模型中的参数就会被同时更改。
4.故障仿真引擎(CFaultSimuManager)内聚了故障模型类(CFaultModel),通过故障模型实例化的接口(CreateFaultInstance),实现了将故障仿真模型实例化,建立故障模型列表。该系统通过XML语法格式,定义了结构化的故障仿真模型。因此实例化的过程为:将XML语法格式的故障仿真模型进行解析,为C++语言实现的故障仿真模型(CFaultModel)实例对象进行赋值,并初始化。初始化的主要工作是:(1)为故障仿真模型中创建的临时变量进行定义;(2)设置故障仿真模型的初始运行状态。故障仿真模型具体的实现方式不限于XML格式,同时可以依赖结构化的故障仿真模型格式,开发专门的可视化前端故障建模工具,从而便于测试人员的故障仿真模型开发。
5.故障仿真引擎提供了故障仿真参数信息清单中信息的导出功能(ExportFaultParaList),其将本次试验中故障仿真模型引用的相关参数信息建立清单。
6.另外故障仿真引擎提供了注册系统运行信息及故障仿真模型参数信息到数据交互区域的接口(SysInfo_Register、FaultPara_Register),从而使得故障仿真模型中可以引用系统运行信息(可参见实时仿真调度器(CSimuScheduler)中的相关属性)以及其他故障仿真模型创建的临时变量、故障模型动态属性等。该功能实现了不同故障仿真模型间的数据交互。
7.故障模型解析器(类CFaultParser)通过RunString()方法实现了由规定符号组成故障条件字符串、故障执行体等表达式基本语句的执行,其通过从数据交互区域中获取数据,进行语句判断,并执行,将相关结果返回或修改数据交互区域中的数据。关于字符串表达的语句的执行方法,有很多方法可实现,可以通过编写简单的解释程序,例如基于字符串的计算器程序,也可通过嵌入相关脚本语言实现。本示例中可以通过嵌入Python脚本解释器实现。相关Python解释器嵌入C++的程序环境,可参考相关Python相关库帮助文件,本发明在此不再赘述。例子中主要实现方法例如可以如下:
(1)将上述字符串中的相关变量(对于赋值表达式而言,仅为右边的变量)提取出,通过查询数据交互区中该变量的值,将字符串中相关变量名用变量值进行替换,并将其中的逻辑与运算符号调整为符合Python语法格式的语句,然后将该表达式转换为Python函数。
(2)调用Python解释器库函数pyObject_CallFuction()进行执行,得到的计算结果返回值通过解析赋值给原等号右边的变量。
8.本示例中系统仿真调度器CSimuScheduler是实时仿真的总调度,内聚了模型类(CModel)、接口类(CIOAgent)、模型数据分发类(CModelTransfer)以及故障仿真引擎(CFaultManager)。具有实时运行接口ThreadRun及运行时属性(系统运行时间SysRunTime、系统仿真周期SimuPeriod、仿真帧计数SimuFrameCounts、仿真启动标识StartSimuFlag)。本示例中仿真调度器提供了三个仿真位置(故障位置),分别是仿真初始化后(LOC_MODEL_INIT)、仿真输入获取前(LOC_MODEL_IN)及仿真输出后(LOC_MODEL_OUT)。实际应用中,故障位置不限,可以根据实际需要进行设置,并为每个位置分配不同的故障位置标识(该标识与故障模型中的位置属性一致)。
在本发明实施例中,本发明所述的方法将所有需要更改仿真模型参数、模型算法、模型输入输出等测试需求,视为故障场景,即故障域;将外部交联系统仿真模型能够支撑体现的任务剖面集合,称为正常域。同时该方法包括了实时半实物仿真系统软件架构的调整、故障建模模型的框架与故障仿真模型的仿真方法,具有较高的通用性、灵活性,可支撑测试过程的工程化管理,实现测试的回归及复用,具有较高的实用价值。
从上述实施例可以看出,本发明上述实施例所述的向实时嵌入式系统的故障仿真测试方法具有以下优点:
(1)通过对原有半实物仿真测试环境的软件架构少量的改动,增加了故障仿真引擎及故障仿真模型的部分。故障仿真引擎基于故障模型进行调度,实现动态的故障仿真,且具有通用性。
(2)提出了通用的结构化故障仿真模型,可以表达故障仿真的启动条件、故障执行体间的组合关系,故障模型实例的运行状态,同时可以自定义故障模型临时变量,引用仿真系统实时运行信息等,实现故障模型间的约束判断,故障模型表达能力好,可以描述丰富的测试需求。同时故障模型采用结构化的描述形式,可以为可视化的故障仿真建模工具的开发提供支撑。
(3)数据交互区域基于外部交联系统仿真模型参数信息清单以及故障仿真模型参数信息清单等信息的比对创建,仅保存故障仿真运行时需要的必须信息管理,从而极大的减少了交互数据共享区中数据的数量,在故障仿真实时过程中,极大的提高了变量查询比对的次数,提高了效率。
(4)故障仿真模型独立于原交联系统仿真模型,测试系统构建完成后,不再需要对外部交联系统仿真模型进行更改,维护了外部交联系统仿真模型的一致性。可以进行按照仿真试验的类型、日期、测试任务等多种形式进行管理,便于测试的工程化管理。
如上针对一种实施例描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施例中使用,和/或与其它实施例中的特征相结合或替代其它实施例中的特征使用。
应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤、组件或其组合的存在或附加。
本发明以上的方法可以由软件实现,也可以由硬件结合软件实现。本发明涉及这样的计算机可读程序,当该程序被逻辑部件所执行时,能够使该逻辑部件实现上文所述的装置或构成部件,或使该逻辑部件实现上文所述的各种方法或步骤。本发明还涉及用于存储以上程序的存储介质,如硬盘、磁盘、光盘、DVD、flash存储器等。
这些实施例的许多特征和优点根据该详细描述是清楚的,因此所附权利要求旨在覆盖这些实施例的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施例限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。
本发明未详细说明部分为本领域技术人员公知技术。
Claims (9)
1.一种面向实时嵌入式系统的故障仿真测试方法,其特征在于,该方法包括:建立故障仿真引擎;
建立外部交联系统仿真模型及对应的第一参数信息清单;
建立故障仿真模型,所述故障仿真模型包括故障仿真启动条件、故障位置、故障动作和故障参数;
建立与故障仿真模型对应的第二参数信息清单;
根据所述第一参数信息清单和所述第二参数信息清单建立所述外部交联系统仿真模型与所述故障仿真模型的数据交互区域,数据交互区域包括多个信息单元,每个信息单元至少包括相关变量的数据名称、数据类型、以及相关变量在当前运行时内存中的地址;
针对所述外部交联系统仿真模型确定故障位置,并在所述故障位置加入所述故障仿真引擎的故障仿真接口的调用;
利用所述数据交互区域,通过所述故障仿真引擎、所述外部交联系统仿真模型和所述故障仿真模型执行实时故障仿真测试。
2.根据权利要求1所述的方法,其特征在于,所述第一参数信息清单包括:外部交联系统仿真模型的输入参数,外部交联系统仿真模型的输出参数,外部交联系统仿真模型的初始参数以及外部交联系统仿真模型的控制参数的名称、类型、长度和各控制参数之间的层次关系。
3.根据权利要求2所述的方法,其特征在于,所述第二参数信息清单包括:所述故障仿真模型中用到的所述外部交联系统仿真模型的相关参数、故障仿真模型中创建的临时变量以及系统运行信息变量。
4.根据权利要求3所述的方法,其特征在于,所述第二参数信息清单中的所述外部交联系统仿真模型的相关参数的引用名称与第一参数信息清单中的一致。
5.根据权利要求4所述的方法,其特征在于,根据所述第一参数信息清单和所述第二参数信息清单建立所述外部交联系统仿真模型与所述故障仿真模型的数据交互区域包括:
针对外部交联系统仿真模型增加运行时模型参数信息导出接口;
通过模型参数信息导出接口对所述第一参数信息清单中所列的参数信息和所述第二参数信息清单中所列的参数信息进行比较;
如果在第二参数信息清单中存在增加了导出接口的外部交联系统仿真模型的相关参数,则在数据交互区域中建立增加了导出接口的外部交联系统仿真模型的相关参数的信息单元;
利用所述第二参数信息清单在数据交互区域中建立系统运行信息变量与故障仿真模型中创建的临时变量的信息单元。
6.根据权利要求1所述的方法,其特征在于,针对所述外部交联系统仿真模型确定故障位置,并在所述故障位置加入所述故障仿真引擎的故障仿真接口的调用包括:
所述故障仿真接口通过比对故障仿真模型的位置属性与调用时的位置信息,确定是否执行所述故障仿真模型;
在确定执行所述故障仿真模型的情况下,所述故障仿真接口根据故障仿真模型的启动条件确定是否启动故障仿真,在确定启动故障仿真的情况下,根据故障动作的约束关系,确定与约束关系对应的策略,以便以确定的策略执行故障动作。
7.根据权利要求6所述的方法,其特征在于,所述故障动作包括至少一个执行体,多个执行体之间存在故障动作约束关系,所述约束关系包括独立约束、重复约束和周期约束,独立约束用于指示各个执行体相互独立且只运行一次,重复约束用于指示任意一个执行体在每次调度中均重复执行,周期约束用于指示任意一个故障动作按照预定周期重复执行;所述故障参数包括故障仿真模型创建的临时变量和故障运行时状态变量。
8.根据权利要求1所述的方法,其特征在于,所述故障位置包括外部交联系统仿真模型初始化前、外部交联系统仿真模型输出后、外部交联系统仿真模型输入前、和外部交联系统仿真模型获取控制数据前。
9.根据权利要求1所述的方法,其特征在于,在实时故障仿真测试过程中,所述外部交联系统仿真模型与所述故障仿真模型均进行实时调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010253007.XA CN111580409B (zh) | 2020-04-02 | 2020-04-02 | 面向实时嵌入式系统的故障仿真测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010253007.XA CN111580409B (zh) | 2020-04-02 | 2020-04-02 | 面向实时嵌入式系统的故障仿真测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111580409A CN111580409A (zh) | 2020-08-25 |
CN111580409B true CN111580409B (zh) | 2023-04-07 |
Family
ID=72114862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010253007.XA Active CN111580409B (zh) | 2020-04-02 | 2020-04-02 | 面向实时嵌入式系统的故障仿真测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111580409B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342693A (zh) * | 2021-07-06 | 2021-09-03 | 阳光电源股份有限公司 | 一种测试数据的生成方法、装置、系统及控制器 |
CN115881291B (zh) * | 2023-02-28 | 2023-06-02 | 苏州阿基米德网络科技有限公司 | 一种医疗设备的运维培训系统及培训方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5475624A (en) * | 1992-04-30 | 1995-12-12 | Schlumberger Technologies, Inc. | Test generation by environment emulation |
CN102033998A (zh) * | 2010-12-10 | 2011-04-27 | 北京航空航天大学 | 一种可靠性模型自动生成方法 |
CN104317995A (zh) * | 2014-10-17 | 2015-01-28 | 电子科技大学 | 基于PSpice AD电路仿真的单故障自动注入方法 |
CN105955065A (zh) * | 2016-05-13 | 2016-09-21 | 中国航空工业集团公司西安飞机设计研究所 | 一种基于故障注入的仿真测试系统 |
-
2020
- 2020-04-02 CN CN202010253007.XA patent/CN111580409B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5475624A (en) * | 1992-04-30 | 1995-12-12 | Schlumberger Technologies, Inc. | Test generation by environment emulation |
CN102033998A (zh) * | 2010-12-10 | 2011-04-27 | 北京航空航天大学 | 一种可靠性模型自动生成方法 |
CN104317995A (zh) * | 2014-10-17 | 2015-01-28 | 电子科技大学 | 基于PSpice AD电路仿真的单故障自动注入方法 |
CN105955065A (zh) * | 2016-05-13 | 2016-09-21 | 中国航空工业集团公司西安飞机设计研究所 | 一种基于故障注入的仿真测试系统 |
Non-Patent Citations (1)
Title |
---|
苏银科 ; 李艳雷 ; 周平 ; 常晓航 ; .基于故障注入的实时嵌入式软件仿真测试技术研究.导航定位与授时.2014,第1卷(第03期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111580409A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10817409B2 (en) | System and method for testing software applications in a software defined network | |
US6385765B1 (en) | Specification and verification for concurrent systems with graphical and textual editors | |
CN107273286B (zh) | 针对任务应用的场景自动化测试平台及方法 | |
US7409377B2 (en) | Accelerated solution of constraint satisfaction problems by partitioning of the variable space | |
CN110008113B (zh) | 一种测试方法、装置、电子设备 | |
CN111580409B (zh) | 面向实时嵌入式系统的故障仿真测试方法 | |
Lange et al. | An empirical investigation in quantifying inconsistency and incompleteness of UML designs | |
Avdeenko et al. | The ontology-based approach to support the completeness and consistency of the requirements specification | |
EP0453160A2 (en) | A method and apparatus for analyzing the flow of data through a complex information exchange system | |
CN114117977B (zh) | 一种适用于自动验证处理器系统场景的方法 | |
CN111752841A (zh) | 单测模拟方法、装置、设备与计算机可读存储介质 | |
Graham et al. | A software design and evaluation system | |
CN114201397A (zh) | 一种接口测试建模方法、装置、电子设备和存储介质 | |
Engels et al. | Model-based verification and validation of properties | |
CN110347588A (zh) | 软件验证方法、装置、计算机设备和存储介质 | |
KR101334806B1 (ko) | 테스트 케이스 자동 생성 시스템에서 테스트 케이스를 구성하는 입력값의 집합을 자동으로 산출하는 방법 | |
KR100994070B1 (ko) | 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치 | |
Hähnle et al. | HATS abstract behavioral specification: The architectural view | |
CN111143228A (zh) | 基于决策表法的测试代码生成方法及装置 | |
CN109144849A (zh) | 一种嵌入式软件调测方法 | |
Pettit et al. | Modeling behavioral patterns of concurrent software architectures using Petri nets | |
Wehrmeister et al. | Support for early verification of embedded real-time systems through UML models simulation | |
Nikiforova et al. | Towards a Business Process Model-based Testing of Information Systems Functionality. | |
CN103220186A (zh) | 一种通信设备测试方法和系统 | |
Popić et al. | The benefits of the coding standards enforcement and it's influence on the developers' coding behaviour: A case study on two small projects |
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 |