CN108228467B - 一种嵌入式飞控软件算法快速验证方法及系统 - Google Patents

一种嵌入式飞控软件算法快速验证方法及系统 Download PDF

Info

Publication number
CN108228467B
CN108228467B CN201810086337.7A CN201810086337A CN108228467B CN 108228467 B CN108228467 B CN 108228467B CN 201810086337 A CN201810086337 A CN 201810086337A CN 108228467 B CN108228467 B CN 108228467B
Authority
CN
China
Prior art keywords
flight control
control software
algorithm
file
software
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
CN201810086337.7A
Other languages
English (en)
Other versions
CN108228467A (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.)
China Academy of Launch Vehicle Technology CALT
Beijing Aerospace Changzheng Aircraft Institute
Original Assignee
China Academy of Launch Vehicle Technology CALT
Beijing Aerospace Changzheng Aircraft Institute
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 China Academy of Launch Vehicle Technology CALT, Beijing Aerospace Changzheng Aircraft Institute filed Critical China Academy of Launch Vehicle Technology CALT
Priority to CN201810086337.7A priority Critical patent/CN108228467B/zh
Publication of CN108228467A publication Critical patent/CN108228467A/zh
Application granted granted Critical
Publication of CN108228467B publication Critical patent/CN108228467B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种嵌入式飞控软件算法快速验证方法及系统,在根据任务要求进行嵌入式飞控软件功能分解的基础上,按一定的项目构成分别在开发环境和测试环境中建立嵌入式飞控软件算法实现项目和测试项目,并共用嵌入式软件算法文件,完成嵌入式软件在开发环境和测试环境中平台移植;在测试环境中由接口程序将输入数据文件引入嵌入式飞控软件的算法,实现数据文件与被测嵌入式飞控软件算法的对接;最终通过编写测试脚本、执行测试程序获得嵌入式飞控软件算法的输出、比较该输出与任务要求的输出是否一致来判定嵌入式飞控软件的算法验证是否通过。该验证方法使嵌入式飞控软件的算法验证脱离硬件平台和半实物仿真环境限制,达到快速验证的目的。

Description

一种嵌入式飞控软件算法快速验证方法及系统
技术领域
本发明涉及一种嵌入式飞控软件算法快速验证方法及系统,属于属于飞行器控制领域嵌入式软件测试技术领域,用于实现对嵌入式飞行控制软件复杂算法的快速验证。
背景技术
嵌入式飞控软件通常用于实现飞行器的制导、稳定飞行控制,包含复杂算法实现和严格的飞行时序,具有运算复杂、功能模块多且输入参数多、实时性强、时序复杂的特点。这类软件实现后,由于其运行离不开其固化的、单机设备提供的硬件平台环境,因此通常需要在单机设备上调试、验证。
但是在软件开发的过程中,通常硬件平台的生产周期比软件实现的慢,延长了软件研制周期。若软件代码实现后只在硬件平台上运行、调试,则需要针对各模块模拟、采集大量的输入、输出参数,且只能进行单步调试,无法令软件按既定时序运行起来。因此必须配合半实物仿真环境形成闭环,才能进行完整的算法测试。但是搭建半实物仿真环境,同样依赖于硬件设备、仿真控制程序等,且需要对半实物仿真环境及其控制程序进行有效性确认。这些因素使半实物仿真环境搭建的前期准备时间及嵌入式飞控软件的验证周期非常长,需要耗费大量的人力、物力、财力。
对于嵌入式飞控软件的算法验证,市场上也有包含工具软件和设备的专业测试系统,但需要在测试系统的软件环境中搭建嵌入式飞控软件运行环境和接口环境,进行测试软件二次开发的工作量非常大,不能满足研制周期紧张情况下的嵌入式飞控软件的算法验证的需求。
发明内容
本发明解决的技术问题为:克服现有技术不足,提供一种嵌入式飞控软件算法快速验证方法及系统,用快速搭建数字化软件平台的验证方案,使嵌入式飞控软件的算法验证脱离软件运行的硬件平台和半实物仿真试验环境限制,节省人力、物力和财力投入,极大节省研制周期,达到快速验证的目的。
本发明解决的技术方案为:一种嵌入式飞控软件算法快速验证方法,步骤如下:
(1)根据任务要求,对嵌入式飞控软件的功能进行分解,并确定分解后每项功能的要求,完成软件需求分析;
(2)在软件开发环境中建立项目用于嵌入式飞控软件的算法实现,根据步骤(1)划分的功能,建立相应独立的代码文件,代码文件包括:配置文件、头文件、源文件;
(3)根据步骤(1)分解的每项功能的要求,在步骤(2)建立的独立的代码文件中,进行代码编写与调试,完成代码编译;
(4)在软件测试环境中,建立项目用于嵌入式飞控软件的算法验证,该项目包含测试嵌入式飞控软件算法的测试源文件、头文件以及步骤(3)中编写的嵌入式飞控软件各功能的源文件、头文件;
(5)在步骤(4)的测试文件中编写测试脚本,将任务要求提供的用于测试嵌入式飞控软件算法的数据文件作为输入,实现数据文件与被测嵌入式飞控软件算法的对接,执行测试脚本,得到嵌入式飞控软件算法的输出并写入输出文件;
(6)将步骤(5)得到的输出文件中的数据与任务要求的期望输出相比较,若一致则判定嵌入式飞控软件的算法验证通过,否则判定嵌入式飞控软件的算法验证不通过。
任务要求,包括嵌入式飞控软件的外部接口(含输入接口和输出接口)形式和数据处理、飞行时序控制、制导稳定控制算法等功能要求以及控制周期、定时精度等性能要求;此外,在任务要求中还应提供用于嵌入式飞控软件算法验证用的输入数据和期望输出数据,即沿弹道的惯性敏感设备输出数据和控制指令数据。
任务要求能够分解为:外部接口要求、接口数据处理要求、飞行时序控制要求、制导稳定控制算法要求。
软件开发环境根据嵌入式软件运行的硬件环境(包括DSP、单片机、片上系统SOC等)确定,包括CCStudio、KeilμVision、Xilinx Software Development Kit。
软件开发环境中配置文件用于完成软件运行对硬件环境的资源配置;源文件包括主函数源文件和各功能源文件,主函数源文件只包含主程序,各功能源文件用于完成各功能相关子函数定义;各功能头文件与相应的源文件相匹配,完成各功能相关子函数的声明和宏定义。
代码编写时软件开发语言优选C,以保证嵌入式飞控软件在不同开发环境、测试环境中的通用性;如果代码在能够在开发环境中调试,可在开发环境中对输入、输出参数较少(通常不超过3个)、用一组或两组输入、输出数据即可验证代码实现正确与否的子函数进行单元测试,并覆盖异常分支;需要三组或三组以上输入、输出数据才能验证代码实现正确与否的、接口参数较多的子函数在测试环境中完成平台移植后进行验证。
软件测试环境优选Microsoft Visual Studio,保证各种开发环境中软件代码在测试环境中的通用性;项目中测试源文件和头文件分别用于定义测试脚本和相关宏定义;输出文件为嵌入式飞控软件算法输出的控制指令数据,也可包含其它想要分析的过程数据。
其数据文件存储了嵌入式飞控软件算法沿弹道的所有输入信息,数据格式应与敏感设备的输出格式保持一致;数据文件可以根据敏感设备的个数分多个文件。
在步骤(5)将测试嵌入式飞控软件算法的数据文件引入嵌入式飞控软件的算法时,要利用外部接口的宏定义,重新定义存储从输入文件读取数据的数组为外部接口输入数据的读取地址,完成数据文件中的数据嫁接引入。
编写测试脚本时需要重新编写测试主函数,其基本原则为:尽量与嵌入式飞控软件主函数保持一致,可更改生成;函数初始化完成后,需到开输入的数据文件和准备输出的数据文件;不能包含与软件运行硬件平台环境相关的初始化、驱动代码;需要根据软件应用的实际情况设置条件调用中断服务子程序;在软件采集惯性敏感设备输入信息前,读取数据文件中的一组输入数据;在嵌入式飞控软件算法计算出软件控制指令后、通过外部接口发送给伺服系统之前,采集输出数据并存储到输出文件中。
一种嵌入式飞控软件算法快速验证系统,其其特征在于:需求分析模块、代码文件建立模块、代码编译模块、项目建立模块、执行模块、判定模块;
需求分析模块,根据任务要求,对嵌入式飞控软件的功能进行分解,并确定分解后每项功能的要求,完成软件需求分析;
代码文件建立模块,在软件开发环境中建立项目用于嵌入式飞控软件的算法实现,根据需求分析模块划分的功能,建立相应独立的代码文件,代码文件包括:配置文件、头文件、源文件;
代码编译模块,根据需求分析模块分解的每项功能的要求,在代码文件建立模块建立的独立的代码文件中,进行代码编写与调试,完成代码编译;
项目建立模块,在软件测试环境中,建立项目用于嵌入式飞控软件的算法验证,该项目包含测试嵌入式飞控软件算法的测试源文件、头文件以及代码编译模块中编写的嵌入式飞控软件各功能的源文件、头文件;
执行模块,在项目建立模块的测试文件中编写测试脚本,将任务要求提供的用于测试嵌入式飞控软件算法的数据文件作为输入,实现数据文件与被测嵌入式飞控软件算法的对接,执行测试脚本,得到嵌入式飞控软件算法的输出并写入输出文件;
判定模块,将执行模块得到的输出文件中的数据与任务要求的期望输出相比较,若一致则判定嵌入式飞控软件的算法验证通过,否则判定嵌入式飞控软件的算法验证不通过。
本发明与现有技术相比的优点在于:
(1)本发明提出了明确的、开发的嵌入式飞控软件项目构成,方便同类软件间的平台、算法移植;
(2)本发明提出了方便、灵活的软件测试环境搭建方法,由于共用开发环境中的嵌入式软件算法文件,因此为搭建测试环境进行的二次开发工作量很少;
(3)本发明提供的验证方法,不用添加专用设备或者专用工具软件,在任何一台同时具有开发环境和测试环境的计算机上均可完成,极大的节省测试所需的成本;
(4)本发明提供的验证方法,不用占用半实物仿真试验设备,试验准备只要完成设备间的接口匹配即可,大大缩短研制工期;
(5)本发明通过优化软件的工程结构、嫁接外部接口的方式,使嵌入式软件算法验证脱离硬件平台和半实物仿真环境的限制,将算法验证工作提前,避免在产品研制后期修改算法问题带来的重复验证研制成本。
附图说明
图1为本发明验证流程示意图;
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细描述。
本发明提供了一种嵌入式飞控软件算法快速验证方法及系统,在根据任务要求进行嵌入式飞控软件功能分解的基础上,按一定的项目构成分别在开发环境和测试环境中建立嵌入式飞控软件算法实现项目和测试项目,并共用嵌入式软件算法文件,完成嵌入式软件在开发环境和测试环境中平台移植;在测试环境中由接口程序将输入数据文件引入嵌入式飞控软件的算法,实现数据文件与被测嵌入式飞控软件算法的对接;最终通过编写测试脚本、执行测试程序获得嵌入式飞控软件算法的输出、比较该输出与任务要求的输出是否一致来判定嵌入式飞控软件的算法验证是否通过。该验证方法使嵌入式飞控软件的算法验证脱离硬件平台和半实物仿真环境限制,达到快速验证的目的。
嵌入式飞控软件通常固化在飞行器控制系统主控计算机单机设备的主控芯片中,用于完成飞行器的制导稳定控制和飞行时序控制。飞行器控制系统一般由惯性敏感设备、主控计算机、伺服系统组成,其中惯性敏感设备测量飞行器的姿态角、姿态角速度和线加速度等信息提供给主控计算机;主控计算机以惯性敏感设备提供的信息为输入,采用某种飞行时序和制导稳定控制算法计算出控制指令,提供给伺服系统;伺服系统根据控制指令运动改变飞行器的空气动力控制面或推力矢量方向,使飞行器按控制系统要求的姿态、位置、速度飞行。固化在主控计算机中的嵌入式飞控软件,采集惯性敏感设备输出的数据,根据任务要求提供的制导稳定控制算法计算控制指令并输出,驱动伺服系统动作。
嵌入式飞控软件的任务要求通常以软件任务书或设计要求的形式给出,其中详细的描述了嵌入式飞控软件的外部接口(含输入接口和输出接口)形式和数据处理、飞行时序控制、制导稳定控制算法等功能要求以及控制周期、定时精度等性能要求。此外,在任务要求中还应提供用于嵌入式飞控软件算法验证用的输入数据和期望输出数据,即沿弹道的惯性敏感设备输出数据和控制指令数据。
嵌入式飞控软件实现后要对软件算法实现的正确性进行验证。由于嵌入式飞控软件的运行离不开其固化单机设备提供的硬件平台环境,因此通常需要随单机设备在半实物仿真试验中验证。嵌入式飞控软件算法快速验证方法提供一种在“软件平台”环境中进行算法验证的方法,具体的实施方式,如图1所示,如下。
(1)根据任务要求,对嵌入式飞控软件的功能进行分解,并确定分解后每项功能的要求,完成软件需求分析;各功能模块之间尽量相互独立,减少功能间的耦合,提高后期嵌入式飞控软件代码设计、实现的效率,减少代码模块间的耦合。
任务要求一般包括嵌入式飞控软件的外部接口(含输入接口和输出接口)形式和数据处理、飞行时序控制、制导稳定控制算法等功能要求以及控制周期、定时精度等性能要求。与任务要求相对应,嵌入式飞控软件的功能可分解为:外部接口要求、接口数据处理要求、飞行时序控制要求、制导稳定控制算法要求。
针对本发明,任务要求还需提供用于嵌入式飞控软件算法验证用的输入数据和期望输出数据,即沿弹道的惯性敏感设备输出数据和控制指令数据。
(2)在软件开发环境中建立项目用于嵌入式飞控软件的算法实现,根据步骤(1)划分的功能,建立相应独立的代码文件,代码文件包括:配置文件、头文件、源文件。
嵌入式飞控软件各功能代码文件独立,其目的是方便在测试环境中部分包含,可以根据被测对象实时增减文件;因此,针对某一功能,可以建立多个独立的代码文件与之相对应。对于外部接口软件功能,需要将与硬件平台环境直接操作的底层驱动和上层应用分开成两个独立的代码文件。项目中各功能代码文件的多少,体现了对各功能纵向或横向进一步分解的力度。
软件开发环境根据嵌入式软件运行的硬件环境(包括DSP、单片机、片上系统SOC等)确定,包括CCStudio、KeilμVision、Xilinx Software Development Kit等。在软件开发环境中建立项目,其中的配置文件用于完成软件运行对硬件环境的资源配置;源文件包括主函数源文件和各功能源文件,主函数源文件只包含主程序,各功能源文件用于完成各功能相关子函数定义;各功能头文件与相应的源文件相匹配,完成各功能相关子函数的声明和宏定义。
(3)根据步骤(1)分解的每项功能的要求,在步骤(2)建立的独立的代码文件中,进行代码编写,完成代码编译。
代码编写时软件开发语言优选C,以保证嵌入式飞控软件在不同开发环境、测试环境中的通用性;代码编写遵循高内聚、低耦合的原则,方便单个子函数单元测试。
对于嵌入式飞控软件,在没有单机设备提供硬件平台环境的情况下通常无法在开发环境中调试,编译通过即可。如果开发环境具备软件调试功能,代码编译通过后,可对输入、输出参数较少(通常不超过3个)、用一组或两组输入、输出数据即可验证代码实现正确与否的子函数在开发环境中进行单元测试,并覆盖所有分支;需要三组或三组以上输入、输出数据才能验证代码实现正确与否的、函数形参较多的子函数可在完成平台移植后的测试环境中验证,提高代码验证效率。
(4)在软件测试环境中,建立项目用于嵌入式飞控软件的算法验证,该项目中包含嵌入式飞控软件各功能的源文件、头文件以及测试嵌入式飞控软件算法的测试源文件、头文件。
软件测试环境优选Microsoft Visual Studio,保证各种开发环境中软件代码在测试环境中的通用性。项目中测试源文件和头文件分别用于定义测试脚本和相关宏定义;输出文件为嵌入式飞控软件算法输出的控制指令数据,也可包含其它想要分析的过程数据。
测试项目在包含嵌入式飞控软件各功能的源文件、头文件时,可以根据测试的功能范围单个或部分添加。若不想测试外部接口功能,可以不添加。
(5)在步骤(4)的测试文件中编写测试脚本,将任务要求提供的用于测试嵌入式飞控软件算法的数据文件作为输入,实现数据文件与被测嵌入式飞控软件算法的对接,执行测试脚本,得到嵌入式飞控软件算法的输出并写入输出文件;
编写测试脚本时需要重新编写测试主函数,其基本原则为:减少二次开发工作,尽量与嵌入式飞控软件主函数保持一致,可更改生成;函数初始化完成后,需打开输入的数据文件和准备输出的数据文件;不能包含与软件运行硬件平台环境相关的初始化、驱动代码;需要根据软件应用的实际情况设置条件调用中断服务子程序;在软件采集惯性敏感设备输入信息前,读取数据文件中的一组输入数据;在嵌入式飞控软件算法计算出软件控制指令后、通过外部接口发送给伺服系统之前,采集输出数据并存储到输出文件中。
数据文件存储了嵌入式飞控软件算法沿弹道的所有输入信息,数据格式通常与敏感设备的输出格式保持一致;数据文件可以根据敏感设备的个数分多个文件。
对接时要利用外部接口的宏定义,重新定义存储从输入文件读取数据的数组为外部接口输入数据的读取地址,完成数据文件中的数据嫁接引入。
(6)将输出文件中的数据与任务要求的输出相比较,若一致则判定嵌入式飞控软件的算法验证通过,否则判定嵌入式飞控软件的算法验证不通过,检查代码与任务要求的一致性,确定问题,修改代码,重新验证,直至验证通过。
本发明提供的验证方法,从规范软件实现入手,用软件平台实现了对嵌入式飞控软件的算法验证,既避免了半实物仿真试验环境的搭建、设备购置和人力投入,也避免了引进专用测试系统带来的大量二次开发工作。用该方法验证嵌入式飞控软件算法不用添加专用设备或者专用工具软件,在任何一台同时具有开发环境和测试环境的计算机上均可完成,极大的节省了算法验证所需的成本。由于验证使用软件平台,平台搭建灵活,不受软件运行的硬件平台环境限制,验证方便、快捷,在提高验证效率的同时将算法验证工作提前,避免在产品研制后期修改算法问题带来的重复验证研制成本。算法的提前验证,使后期飞行器控制系统地半实物仿真试验准备时间缩短50%以上,极大节省研制工期。用嵌入式飞控软件算法快速验证方法验证的嵌入式飞控软件,在同类软件、不同平台间移植、重用非常方便,容易形成软件产品的系列化和产品化。
嵌入式飞控软件算法快速验证方法通用性强,易于推广。既不受开发平台限制,也不受算法限制,只要合理规划实现嵌入式软件的项目结构,就可以用该方法进行验证。飞控软件由于其制导稳定控制算法复杂,用本验证方法的费效比较高。下面以TMS320C6713中实现的一个简单的嵌入式飞控软件为例,加以说明。
例如:某飞行器控制系统包括惯组(飞行器姿态敏感设备)、主控计算机、舵机组合(伺服系统)。其中惯组从RS422串口每5ms输出一帧惯组数据给飞控计算机;主控计算机每5ms根据接收的惯组进行一次导航计算,然后根据导航计算得到的位置、速度、姿态角及动压、马赫数等信息每20ms计算一次制导指令;最后根据导航结果和制导信息每5ms计算一次舵机组合控制指令,从DAC输出给舵机组合;舵机组合根据主控计算机输出的指令进行舵面控制。根据本发明,要实现上述嵌入式软件并进行算法验证,实施步骤如下:
(1)根据任务要求,分解软件功能如表1所示:
表1
Figure BDA0001562499070000101
Figure BDA0001562499070000111
(2)在软件开发环境CCStudio中建立项目,按表1所列功能模块建立相应空的独立代码文件,如表2,项目建成后,其结构如表3所示:
表2
Figure BDA0001562499070000112
表3软件项目的文件组成及功能描述
Figure BDA0001562499070000113
Figure BDA0001562499070000121
(3)按照软件要求及代码文件分类进行相应的代码编写与调试;
在HardWareDriver.c/h代码文件编写时,对于外部接口的访问地址,建议以两层宏定义的方式编写,方便后面测试时对端口地址的嫁接。比如:串口基址为0xB0000000,可定义串口基址的宏定义如下:
#define CE2_BASEADDR 0xB0000000
#define UART_BASEADDR CE2_BASEADDR
在测试工程中,屏蔽第一层宏定义,将CE2_BASEADDR宏定义为指针变量即可。
(4)在Microsoft Visual Studio(简称“VC”)测试环境中建立软件测试项目,项目构成如表4所示,包含表2中与算法相关的文件,完成代码的平台移植;还需建立数据文件Input.dat和输出文件Output.dat两个文件。
表4软件项目的文件组成及功能描述
Figure BDA0001562499070000122
Figure BDA0001562499070000131
(5)在各测试文件中编写测试脚本,其中测试主函数文件在嵌入式飞控软件主函数文件的基础上修改而成:函数初始化完成后,打开输入的数据文件Input.dat和准备输出的数据文件Output.dat,获取文件指针;屏蔽与软件运行硬件平台环境相关的初始化代码;每个控制周期调用一次中断服务子程序,以使定时有效;在采集惯组数据之前,读取数据文件Input.dat中的一组输入数据;通过步骤(3)中重新宏定义的CE2_BASEADDR指针变量代入被测软件;在嵌入式飞控软件算法计算出舵机组合控制指令后、通过数模转换接口发送给舵机组合之前,采集输出数据并存储到输出文件Output.dat中;执行代码测试,获得输出数据。
(6)将输出文件Output.dat中的数据与任务要求提供的期望输出相比较,检查输出数据与期望输出的一致性;若一致,嵌入式飞控软件算法验证通过;否则,否则判定嵌入式飞控软件的算法验证不通过,检查代码与任务要求的一致性,确定问题,修改代码,重新验证,直至验证通过。
嵌入式飞控软件快速验证方法实施的关键是:
a.被测的软件项目结构配置要合理,方便从中提取被测软件单元、部件,在测试项目时复用,不用更改软件代码;
b.软件外部接口的定义要使用两层宏定义,方便在测试项目中进行接口嫁接;好的外部接口定义形式,可以对接口嫁接起到事半功倍的效果;而成功的接口嫁接,是软件测试项目搭建的关键;
外部接口如果设计合理,除算法验证外,在接口驱动中设置输入、输出数据流检测点,也可以实现对整个嵌入式软件飞行时序的验证。但是本验证方法无法对软件的运算速度等性能进行测试。
一种嵌入式飞控软件算法快速验证系统,其其特征在于:需求分析模块、代码文件建立模块、代码编译模块、项目建立模块、执行模块、判定模块;
需求分析模块,根据任务要求,对嵌入式飞控软件的功能进行分解,并确定分解后每项功能的要求,完成软件需求分析;
代码文件建立模块,在软件开发环境中建立项目用于嵌入式飞控软件的算法实现,根据需求分析模块划分的功能,建立相应独立的代码文件,代码文件包括:配置文件、头文件、源文件;
代码编译模块,根据需求分析模块分解的每项功能的要求,在代码文件建立模块建立的独立的代码文件中,进行代码编写与调试,完成代码编译;
项目建立模块,在软件测试环境中,建立项目用于嵌入式飞控软件的算法验证,该项目包含测试嵌入式飞控软件算法的测试源文件、头文件以及代码编译模块中编写的嵌入式飞控软件各功能的源文件、头文件;
执行模块,在项目建立模块的测试文件中编写测试脚本,将任务要求提供的用于测试嵌入式飞控软件算法的数据文件作为输入,实现数据文件与被测嵌入式飞控软件算法的对接,执行测试脚本,得到嵌入式飞控软件算法的输出并写入输出文件;
判定模块,将执行模块得到的输出文件中的数据与任务要求的期望输出相比较,若一致则判定嵌入式飞控软件的算法验证通过,否则判定嵌入式飞控软件的算法验证不通过。
本发明提出了明确的、开发的嵌入式飞控软件项目构成,方便同类软件间的平台、算法移植,提出了方便、灵活的软件测试环境搭建方法,由于共用开发环境中的嵌入式软件算法文件,因此为搭建测试环境进行的二次开发工作量很少,不用添加专用设备或者专用工具软件,在任何一台同时具有开发环境和测试环境的计算机上均可完成,极大的节省测试所需的成本,不用占用半实物仿真试验设备,试验准备只要完成设备间的接口匹配即可,大大缩短研制工期,通过优化软件的工程结构、嫁接外部接口的方式,使嵌入式软件算法验证脱离硬件平台和半实物仿真环境的限制,将算法验证工作提前,避免在产品研制后期修改算法问题带来的重复验证研制成本。

Claims (8)

1.一种嵌入式飞控软件算法快速验证方法,其特征在于步骤如下:
(1)根据任务要求,对嵌入式飞控软件的功能进行分解,并确定分解后每项功能的要求,完成软件需求分析;
(2)在软件开发环境中建立项目用于嵌入式飞控软件的算法实现,根据步骤(1)划分的功能,建立相应独立的代码文件,代码文件包括:配置文件、头文件、源文件;
(3)根据步骤(1)分解的每项功能的要求,在步骤(2)建立的独立的代码文件中,进行代码编写与调试,完成代码编译;代码编写时软件开发语言选则C语言,如果代码在能够在开发环境中调试,在开发环境中对输入、输出参数较少、用一组或两组输入、输出数据即能够验证代码实现正确与否的子函数进行单元测试,并覆盖异常分支;需要三组或三组以上输入、输出数据才能验证代码实现正确与否的、接口参数较多的子函数在测试环境中完成平台移植后进行验证;任务要求能够分解为:外部接口要求、接口数据处理要求、飞行时序控制要求、制导稳定控制算法要求;
(4)在软件测试环境中,建立项目用于嵌入式飞控软件的算法验证,该项目包含测试嵌入式飞控软件算法的测试源文件、头文件以及步骤(3)中编写的嵌入式飞控软件各功能的源文件、头文件;
(5)在步骤(4)的测试文件中编写测试脚本,将任务要求提供的用于测试嵌入式飞控软件算法的数据文件作为输入,实现数据文件与被测嵌入式飞控软件算法的对接,执行测试脚本,得到嵌入式飞控软件算法的输出并写入输出文件;
(6)将步骤(5)得到的输出文件中的数据与任务要求的期望输出相比较,若一致则判定嵌入式飞控软件的算法验证通过,否则判定嵌入式飞控软件的算法验证不通过。
2.根据权利要求1所述的一种嵌入式飞控软件算法快速验证方法,其其特征在于:任务要求,包括嵌入式飞控软件的外部接口形式和数据处理、飞行时序控制、制导稳定控制算法功能要求以及控制周期、定时精度这些性能要求;在任务要求中还应提供用于嵌入式飞控软件算法验证用的输入数据和期望输出数据,即沿弹道的惯性敏感设备输出数据和控制指令数据。
3.根据权利要求1所述的一种嵌入式飞控软件算法快速验证方法,其其特征在于:软件开发环境根据嵌入式软件运行的硬件环境确定,包括CCStudio、KeilμVision、XilinxSoftware Development Kit。
4.根据权利要求1所述的一种嵌入式飞控软件算法快速验证方法,其其特征在于:软件开发环境中配置文件用于完成软件运行对硬件环境的资源配置;源文件包括主函数源文件和各功能源文件,主函数源文件只包含主程序,各功能源文件用于完成各功能相关子函数定义;各功能头文件与相应的源文件相匹配,完成各功能相关子函数的声明和宏定义。
5.根据权利要求1所述的一种嵌入式飞控软件算法快速验证方法,其其特征在于:软件测试环境选择Microsoft Visual Studio,使各种开发环境中软件代码在测试环境中的通用性;项目中测试源文件和头文件分别用于定义测试脚本和相关宏定义;输出文件为嵌入式飞控软件算法输出的控制指令数据,也能包含其它想要分析的过程数据。
6.根据权利要求1所述的一种嵌入式飞控软件算法快速验证方法,其其特征在于:数据文件存储了嵌入式飞控软件算法沿弹道的所有输入信息,数据格式应与敏感设备的输出格式保持一致;数据文件能够根据敏感设备的个数分多个文件。
7.根据权利要求1所述的一种嵌入式飞控软件算法快速验证方法,其其特征在于:在步骤(5)将测试嵌入式飞控软件算法的数据文件引入嵌入式飞控软件的算法时,要利用外部接口的宏定义,重新定义存储从输入文件读取数据的数组为外部接口输入数据的读取地址,完成数据文件中的数据嫁接引入。
8.一种嵌入式飞控软件算法快速验证系统,其其特征在于:需求分析模块、代码文件建立模块、代码编译模块、项目建立模块、执行模块、判定模块;
需求分析模块,根据任务要求,对嵌入式飞控软件的功能进行分解,并确定分解后每项功能的要求,完成软件需求分析;
代码文件建立模块,在软件开发环境中建立项目用于嵌入式飞控软件的算法实现,根据需求分析模块划分的功能,建立相应独立的代码文件,代码文件包括:配置文件、头文件、源文件;
代码编译模块,根据需求分析模块分解的每项功能的要求,在代码文件建立模块建立的独立的代码文件中,进行代码编写与调试,完成代码编译;代码编写时软件开发语言选则C语言,如果代码在能够在开发环境中调试,在开发环境中对输入、输出参数较少、用一组或两组输入、输出数据即能够验证代码实现正确与否的子函数进行单元测试,并覆盖异常分支;需要三组或三组以上输入、输出数据才能验证代码实现正确与否的、接口参数较多的子函数在测试环境中完成平台移植后进行验证;任务要求能够分解为:外部接口要求、接口数据处理要求、飞行时序控制要求、制导稳定控制算法要求;
项目建立模块,在软件测试环境中,建立项目用于嵌入式飞控软件的算法验证,该项目包含测试嵌入式飞控软件算法的测试源文件、头文件以及代码编译模块中编写的嵌入式飞控软件各功能的源文件、头文件;
执行模块,在项目建立模块的测试文件中编写测试脚本,将任务要求提供的用于测试嵌入式飞控软件算法的数据文件作为输入,实现数据文件与被测嵌入式飞控软件算法的对接,执行测试脚本,得到嵌入式飞控软件算法的输出并写入输出文件;
判定模块,将执行模块得到的输出文件中的数据与任务要求的期望输出相比较,若一致则判定嵌入式飞控软件的算法验证通过,否则判定嵌入式飞控软件的算法验证不通过。
CN201810086337.7A 2018-01-30 2018-01-30 一种嵌入式飞控软件算法快速验证方法及系统 Active CN108228467B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810086337.7A CN108228467B (zh) 2018-01-30 2018-01-30 一种嵌入式飞控软件算法快速验证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810086337.7A CN108228467B (zh) 2018-01-30 2018-01-30 一种嵌入式飞控软件算法快速验证方法及系统

Publications (2)

Publication Number Publication Date
CN108228467A CN108228467A (zh) 2018-06-29
CN108228467B true CN108228467B (zh) 2021-07-13

Family

ID=62669309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810086337.7A Active CN108228467B (zh) 2018-01-30 2018-01-30 一种嵌入式飞控软件算法快速验证方法及系统

Country Status (1)

Country Link
CN (1) CN108228467B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144849B (zh) * 2018-07-23 2022-04-01 武汉虹信科技发展有限责任公司 一种嵌入式软件调测方法
CN109857640B (zh) * 2018-12-28 2022-05-24 上海航天控制技术研究所 一种基于原型设计的嵌入式代码提前验证方法
CN110275830A (zh) * 2019-06-13 2019-09-24 南京邮电大学 基于延续的无人机编队飞控系统的动态调试方法
CN110737985A (zh) * 2019-10-15 2020-01-31 上海联影医疗科技有限公司 运行数据验证方法、装置、计算机设备和可读存储介质
CN110990252A (zh) * 2019-10-22 2020-04-10 北京计算机技术及应用研究所 一种嵌入式飞控软件测试质量和效率的测试方法
CN112214402B (zh) * 2020-09-23 2023-07-18 深圳大学 一种代码验证算法的选择方法、装置及存储介质
CN112597006B (zh) * 2020-12-14 2023-10-03 中国航发控制系统研究所 一种嵌入式软件集成测试自动化执行系统及方法
CN112668262B (zh) * 2020-12-25 2023-04-07 瓴盛科技有限公司 SoC验证方法、系统、装置和计算机可读介质
CN113064819A (zh) * 2021-03-26 2021-07-02 山东英信计算机技术有限公司 一种软件开发测试方法、系统、设备以及介质
CN113569333B (zh) * 2021-06-24 2023-02-17 中国人民解放军63620部队 基于预编译指令的多种飞行器仿真模型并行开发维护方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012673A (zh) * 2010-11-26 2011-04-13 南京航空航天大学 复杂反应型系统控制器设计方法
CN102662661A (zh) * 2012-03-23 2012-09-12 中山大学 一种面向嵌入式软件的软件分析集成方法
CN104216703A (zh) * 2014-06-23 2014-12-17 武汉大学深圳研究院 嵌入式软件系统程序的开发方法
CN104391791A (zh) * 2014-11-21 2015-03-04 北京经纬恒润科技有限公司 嵌入式控制算法的测试方法及装置
CN106325883A (zh) * 2016-08-31 2017-01-11 中国建设银行股份有限公司 一种行业业务领域信息系统的开发方法及系统
CN107346249A (zh) * 2017-07-13 2017-11-14 重庆电子工程职业学院 一种基于模型的计算机软件开发方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080052690A1 (en) * 2006-08-08 2008-02-28 Microsoft Corporation Testing software with a build engine
US9098673B2 (en) * 2010-03-23 2015-08-04 Honda Motor Co., Ltd. Structural optimization for vehicle crashworthiness
CN102122265B (zh) * 2011-03-03 2014-05-14 中国工商银行股份有限公司 一种计算机软件测试结果的验证方法及系统
US9519495B2 (en) * 2013-06-14 2016-12-13 Microsoft Technology Licensing, Llc Timed API rules for runtime verification
CN106294121B (zh) * 2016-07-13 2019-04-05 北京航空航天大学 飞机嵌入式实时诊断推理算法试验方法
CN106502695A (zh) * 2016-10-26 2017-03-15 合肥润客软件科技有限公司 一种基于嵌入式软件开发方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012673A (zh) * 2010-11-26 2011-04-13 南京航空航天大学 复杂反应型系统控制器设计方法
CN102662661A (zh) * 2012-03-23 2012-09-12 中山大学 一种面向嵌入式软件的软件分析集成方法
CN104216703A (zh) * 2014-06-23 2014-12-17 武汉大学深圳研究院 嵌入式软件系统程序的开发方法
CN104391791A (zh) * 2014-11-21 2015-03-04 北京经纬恒润科技有限公司 嵌入式控制算法的测试方法及装置
CN106325883A (zh) * 2016-08-31 2017-01-11 中国建设银行股份有限公司 一种行业业务领域信息系统的开发方法及系统
CN107346249A (zh) * 2017-07-13 2017-11-14 重庆电子工程职业学院 一种基于模型的计算机软件开发方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
软件生命周期及各阶段任务;佚名;《http://blog.chinaunix.net/uid-7411781-id-4786220.html》;20150126;第1页 *
面向云计算大数据中心的制造业项目管理系统设计;张向睿;《现代电子技术 计算机软/硬件与数据总线》;20170711(第12期);第1-4页 *

Also Published As

Publication number Publication date
CN108228467A (zh) 2018-06-29

Similar Documents

Publication Publication Date Title
CN108228467B (zh) 一种嵌入式飞控软件算法快速验证方法及系统
CN104460646B (zh) 用于对虚拟控制器进行实时测试的测试装置
EP3382536B1 (en) Emulation of hardware components
CN105930201B (zh) 一种可重构专用处理器核的功能模拟器
CN111308911B (zh) 一种基于卫星姿轨控的全功能模块化模拟处理系统及方法
CN104881363B (zh) 一种控制律软件的测试方法
EP3647956B1 (en) Generalized virtualization platform for systems using hardware abstraction software layers
WO1992014202A1 (en) Method for testing and debugging computer programs
CN109117125B (zh) 数字飞行器多平台多运行模式源代码的人工智能书写方法
EP3435229B1 (en) System integration using virtualization
CN113946979A (zh) 一种导航算法精度验证方法、系统、设备及器存储介质
Gholkar et al. Hardware-in-loop simulator for mini aerial vehicle
Shixianjun et al. Hardware-in-the-loop simulation framework design for a UAV embedded control system
Holzapfel et al. Low-cost PC based flight simulator for education and research
CN117290058B (zh) 模型仿真时进行执行断点调试数据注入和数据监控的方法
CN111522252A (zh) 一种半实物仿真方法及系统
CN113050451B (zh) 一种飞行控制系统的建模方法及装置
Li et al. Research on modeling method of aeronautical weapon flight control system based on harmony-SE
Christhilf et al. Simulink-Based Simulation Architecture for Evaluating Controls for Aerospace Vehicles (SAREC-ASV)
Reinholtz Applying simulation to the development of spacecraft flight software
CN116107232A (zh) 基于linux平台的通用仿真测试系统
Stecklina et al. Hybrid Simulation Environment for rapid MSP430 system design test and validation using MSPsim and SystemC
Wennberg et al. The use of a virtual system simulator and executable specifications to enhance software validation, verification, and safety assurance
Stephenson et al. Using advanced tools to automate the design, generation and execution of formal qualification testing
Vogel et al. An integrated COTS prototyping and test environment for spacecraft control systems

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