CN109117125B - 数字飞行器多平台多运行模式源代码的人工智能书写方法 - Google Patents
数字飞行器多平台多运行模式源代码的人工智能书写方法 Download PDFInfo
- Publication number
- CN109117125B CN109117125B CN201810804156.3A CN201810804156A CN109117125B CN 109117125 B CN109117125 B CN 109117125B CN 201810804156 A CN201810804156 A CN 201810804156A CN 109117125 B CN109117125 B CN 109117125B
- Authority
- CN
- China
- Prior art keywords
- source code
- writing
- digital aircraft
- files
- file
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Traffic Control Systems (AREA)
Abstract
本发明公开了一种数字飞行器多平台多运行模式源代码的人工智能书写方法,包括:预先将源代码通用部分保存成模板存储至源代码库中,根据源代码适用的平台类型、代码功能建立模板路径;读取流设计XML文件、流设计数据库和包设计数据库;根据包设计数据库中携带的运行模式信息和模板路径读取模板,书写多运行模式源代码;根据流设计XML文件、流设计数据库和包设计数据库中携带的平台信息以及模板路径读取模板,书写多平台源代码中的应用层与系统层源代码;根据包设计数据库中携带的源代码平台信息,结合多运行模式源代码和多平台源代码的应用层与系统层源代码,得到多平台源代码中的工程框架文件,综上完成了多平台多运行模式源代码的书写。
Description
技术领域
本发明涉及人工智能程序员书写数字飞行器源代码技术领域,更具体的说是涉及一种数字飞行器多平台多运行模式源代码人工智能书写方法。
背景技术
飞行器包括但不限于飞机、导弹、卫星、航天飞船。数字飞行器是与真实飞行器的功能、组成、结构、模式、程序、操作完全一致的且运行在软件模拟的空间环境中的动态模拟仿真系统。
目前工程设计、研发、测试过程中利用数字世界进行仿真验证的比例大大提升,飞行器实物测试成本高,数字飞行器的作用更加明显。数字飞行器代码开发量大,源代码智能书写技术减少人重复的工作量,其中关键的技术是人工智能程序员。人工智能程序员是将人写程序的决策过程分解,根据每部分的特点将多种不同的人工智能方法组合起来。人工智能程序源的书写对象为数字飞行器源代码,数字飞行器源代码根据应用背景与服务对象的不同可能运行在不同的平台上,可能采用单机版或分布式的运行模式。
因此,如何提供一种数字飞行器多平台多运行模式源代码人工智能书写方法是本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种数字飞行器多平台多运行模式源代码人工智能书写方法,减少了人重复的源代码开发,减少了数字飞行器源代码开发过程中人的主观 因素,便于管理与交流。
为了实现上述目的,本发明采用如下技术方案:
一种数字飞行器多平台多运行模式源代码的人工智能书写方法,包括:
S1:对数字飞行器源代码进行系统层次分解,预先将数字飞行器源代码通用部分保存成模板存储至源代码库中,并根据源代码适用的平台类型、代码的功能建立相应的模板路径;
S2:读取流设计XML文件、流设计数据库和包设计数据库;
S3:根据所述包设计数据库中携带的运行模式信息以及所述模板路径读取相应的模板,并对读取到的模板进行书写操作,得到数字飞行器多运行模式源代码;
S4:根据所述流设计XML文件、流设计数据库、包设计数据库中携带的平台信息以及所述模板路径读取相应的模板,并对读取到的模板进行书写操作,得到数字飞行器多平台源代码中的应用层与系统层源代码;
S5:根据所述包设计数据库中携带的源代码平台信息,结合数字飞行器多运行模式源代码和数字飞行器多平台源代码的应用层与系统层源代码,得到数字飞行器多平台源代码中的工程框架文件,综上完成了数字飞行器多平台多运行模式源代码的书写。
优选的,对数字飞行器源代码进行系统层次分解具体包括:将数字飞行器源代码分解为数字飞行器系统层源代码和数字飞行器应用层源代码。
优选的,所述流设计XML文件中保存的信息包括但不限于:实体类型、飞行器包含的子系统、每个子系统下包含的部件类型、每种部件类型包含的部件型号、每种部件信号的部件个数、每个部件的安装信息和生成的每个飞行器源代码的粒度;
所述流设计数据库中包括姿轨控子系统模式定义表、电源子系统供配电逻辑定义表、推进子系统管路连接与通断逻辑表和测控子系统链路定义表;
所述数字包设计数据库包括:实体定义表、单机组配置表、接口配置表、部署方案表和联邦配置表;
其中,实体定义表中保存的信息包括:数字飞行器的代号、名称和实体类型;单机组配置表中保存实体中包含的部件信息;
部署方案表中保存的信息包括:方案的名称、运行模式和实时非实时情况;联邦配置表中保存的信息包括:联邦的名称及生成处理的工程文件夹名称、联邦运行的平台、联邦中代码的实现方式和联邦中包含的部件。
优选的,所述工程框架文件的具体包括:数字飞行器Windows平台工程框架文件、数字飞行器Linux平台工程框架文件和数字飞行器嵌入式平台工程框架文件。
优选的,数字飞行器Windows平台工程框架文件的书写步骤包括:
经过应用层、系统层源代码书写得到数字飞行器Windows平台下所有源文件;
从源代码库中获取工程框架模板并根据部署方案表中的信息修改工程名称;
统计工程中所有C文件、cpp文件和资源文件,分别写入到工程框架文件中。
优选的,数字飞行器Linux平台工程框架文件的书写步骤包括:
经过应用层、系统层源代码书写得到数字飞行器Linux平台下所有源文件;
统计工程中所有C文件、cpp文件,将C文件、cpp文件相应的名称列写到makefile文件中;
遍历所有C文件、cpp文件,查找每个文件中包含的h文件,将C文件或cpp文件分别与h文件的关系列写到makefile文件中。
优选的,数字飞行器嵌入式平台工程框架文件的书写步骤包括:
经过应用层、系统层源代码书写得到数字飞行器Linux平台下所有源文件;
在工程路径下生成makefile空文件,按照固定规范写好部分头部;
读取工程路径下所有文件,去掉路径名称、h文件和scc文件,留下c文件和s文件,完成makefile文件的书写。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种数字飞行器多平台多运行模式源代码人工智能书写方法,将数字飞行器源代码系统层次分解,减少了人重复的源代码开发,提高了源代码的利用率;将多平台多运行模式源代码智能开发重要决策过程、多平台移植部署过程教会计算机,减少源代码书写过程中人的工作,减少了数字飞行器源代码中的人的主观因素,便于管理与交流。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的数字飞行器多平台多运行模式源代码人工智能书写方法的流程图;
图2为本发明提供的数字飞行器源代码层次结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见附图1,本发明实施例公开了一种数字飞行器多平台多运行模式源代码人工智能书写方法,包括:
S1:对数字飞行器源代码进行系统层次分解,预先将数字飞行器源代码通用部分保存成模板存储至源代码库中,并根据源代码适用的平台类型、代码的功能建立相应的模板路径;
S2:读取流设计XML文件、流设计数据库和包设计数据库;
S3:根据所述包设计数据库中携带的运行模式信息以及所述模板路径读取相应的模板,并对读取到的模板进行书写操作,得到数字飞行器多运行模式源代码;
S4:根据所述流设计XML文件、流设计数据库、包设计数据库中携带的平台信息以及所述模板路径读取相应的模板,并对读取到的模板进行书写操作,得到数字飞行器多平台源代码中的应用层与系统层源代码;
S5:根据所述包设计数据库中携带的源代码平台信息,结合数字飞行器多运行模式源代码和数字飞行器多平台源代码的应用层与系统层源代码,得到数字飞行器多平台源代码中的工程框架文件,综上完成了数字飞行器多平台多运行模式源代码的书写。
本发明提供的数字飞行器多平台多运行模式源代码人工智能书写方法,将数字飞行器源代码系统层次分解,减少了人重复的源代码开发,提高了源代码的利用率;将多平台多运行模式源代码智能开发重要决策过程、多平台移植部署过程教会计算机,减少源代码书写过程中人的工作,减少了数字飞行器源代码中的人的主观因素,便于管理与交流。
为了进一步优化上述技术方案,对数字飞行器源代码进行系统层次分解具体包括:将数字飞行器源代码分解为数字飞行器系统层源代码和数字飞行器应用层源代码。
为了进一步优化上述技术方案,所述数字包设计数据库包括:实体定义表、单机组配置表、接口配置表、部署方案表和联邦配置表;
其中,实体定义表中保存的信息包括:数字飞行器的代号、名称和实体类型;单机组配置表中保存实体中包含的部件信息;
部署方案表中保存的信息包括:方案的名称、运行模式和实时非实时情况;联邦配置表中保存的信息包括:联邦的名称及生成处理的工程文件夹名称、联邦运行的平台、联邦中代码的实现方式和联邦中包含的部件。
为了进一步优化上述技术方案,所述工程框架文件的具体步骤包括:数字飞行器Windows平台工程框架文件、数字飞行器Linux平台工程框架文件和数字飞行器嵌入式平台工程框架文件。
为了进一步优化上述技术方案,数字飞行器Windows平台工程框架文件的书写步骤包括:
经过应用层、系统层源代码书写得到数字飞行器Windows平台下所有源文件;
从源代码库中获取工程框架模板并根据方案配置修改工程名称;
统计工程中所有C文件、cpp文件和资源文件,分别写入到工程框架文件中。
为了进一步优化上述技术方案,数字飞行器Linux平台工程框架文件的书写步骤包括:
经过应用层、系统层源代码书写得到数字飞行器Linux平台下所有源文件;
统计工程中所有C文件、cpp文件,将C文件、cpp文件相应的名称列写到makefile文件中;
遍历所有C文件、cpp文件,查找每个文件中包含的h文件,将C文件或cpp文件分别与h文件的关系列写到makefile文件中。
为了进一步优化上述技术方案,数字飞行器嵌入式平台工程框架文件的书写步骤包括:
经过应用层、系统层源代码书写得到数字飞行器Linux平台下所有源文件;
在工程路径下生成makefile空文件,按照固定规范写好部分头部;
读取工程路径下所有文件,去掉路径名称和h文件和scc文件,留下c 文件和s文件,完成makefile文件的书写。
下面结合进一步论述本发明的技术方案。
在步骤S1中,对数字飞行器源代码的系统层次分解主要包括两个层次:数字飞行器系统层源代码、数字飞行器应用层源代码,如图2所示。
(1)数字飞行器系统层源代码
主要包含操作系统和数据传输设备的系统服务函数。
数据传输的系统服务函数按处理流程都可分解为数据读取、数据处理、数据输出三部分。在不同平台上,传输信号的时序是相似的。如果按时序将处理流程解耦,将相似的传输过程封装在相同的接口函数上,应用层的源代码可以在各种硬件平台上通用,从而使应用层源代码的书写独立与运行平台。
操作系统的系统服务函数主要包括系统输入输出函数、系统时间函数、数据类型等。将不同操作系统所有差异的系统服务函数在头文件中用宏定义定义成相同的符号,应用层的源代码中使用相应的系统服务函数的代码替换成宏定义,从而实现应用层源代码在不同操作系统上的通用。
系统层的源代码按照应用的系统平台在源代码库中建立不同的子文件分别存储,包括:Windows、Linux、嵌入式。
另外工程框架文件模板也存储在对应的系统层的源代码库中。
(2)数字飞行器应用层源代码
主要包含数学基础层、力学基础层、算法层和实体层。
第一层是数学基础层,数学是基础学科,数学基础层是软件算法的基石,主要指数学描述的通用算法,包括矢量、矩阵、四元素计算等内容。
第二层是力学基础层,力学是专业基础,主要指用力学概念描述的通用算法,包括常用坐标系变换、天体位置计算、地磁场计算等内容。
第三层是算法层,尽管飞行器质量惯量各不相同,敏感器与执行机构的型号不同、安装位置不同,电信号接口不同,但敏感器与执行机构的用法是一样的。通用算法层就是根据这个原理,封装了敏感器与执行机构的数据处理流程,主要指能适用于不同飞行器的通用状态确定和控制算法。
第四层是实体层,一般是每个实体针对一个具体的功能模式。对于星载计算机,实体层对应了卫星控制模式,实体是完成姿态确定与控制功能的最小单位。
应用层中数学基础层、力学基础层基本不变,扩展时用源代码规范决策执行方法进行一次性书写并入库,分别在源代码库中建立数学基础库与力学基础库文件夹存放源代码模板。
应用层中算法层中基本算法利用源代码规范决策执行方法或者智能公式识别源代码书写方法的进行一次性书写并入库,将之存入源代码库中与部件相关联的文件夹中。
应用层中的实体层中的部件模型源代码,可以利用源代码规范决策执行方法或者智能公式识别源代码书写方法的进行一次性书写并入库,将之存入与部件型号关联的文件夹中。
应用层中的实体层中的实体类源代码,可以利用源代码规范决策执行方法进行一次性书写并入库,将之存入与实体类型关联的文件夹中。
对于步骤S2,读取流设计XML文件、流设计数据库和包设计数据库,获取数字飞行器系统组成与结构的数字化描述、方案与联邦、运行平台、运行模式等信息。
流设计XML文件中保存的信息包括但不限于:实体类型、飞行器包含的子系统、每个子系统下包含的部件类型、每种部件类型包含的部件型号、每种部件信号的部件个数、每个部件的安装信息,生成的每个飞行器源代码的粒度。
流设计数据库中包含的主要表包括姿轨控子系统模式定义表、电源子系统供配电逻辑定义表、推进子系统管路连接与通断逻辑表、测控子系统链路定义表。
数字卫星包设计数据库中相关的表组主要包括实体定义、单机组配置、状态量定义、总线配置、传输协议定义、部署方案、联邦配置。
上述数据库中实体定义中保存的信息包括数字飞行器的代号、名称以及实体类型,在这里实体类型包括卫星、导弹、飞机、舰艇、地面站等。
单机组配置中保存实体中的包含的部件信息,比如卫星中包含的陀螺、推力器、动量轮,导弹中包含的舵机、发动机等,以及飞行器动力学环境虚拟部件。
状态量定义表中保存了飞行器部件中包含的状态量信息,包括状态量名称、类型、长度、处理方式、最大值、最小值、可选值等。
总线配置定义了飞行器部件间的真实总线,飞行器之间的无线链路,以及飞行器单机部件与动力学环境间的虚拟总线。
传输协议定义保存了飞行器部件间信息传输的通信协议,包括的信息有:发送方、接收方、发送包、接收包、传输总线等。
部署方案表中保存的信息包括方案的名称、运行模式、实时非实时等。
联邦配置表中的保存的信息包括联邦的名称(及生成处理的工程文件夹名称)、联邦运行的、联邦的代码实现方式、联邦中包含的部件等。
对于步骤S3,数字飞行器多运行模式源代码主要分为:数字飞行器多运行模式固定源代码和数字飞行器多运行模式个性源代码;
(1)数字飞行器多运行模式固定源代码书写
书写过程为,查找从源代码库中模板路径下查找到数字飞行器多运行模式固定源代码,按照源代码的模板,根据联邦配置表中的信息确定输出的路径,根据模板在输出路径下书写出数字飞行器多运行模式固定源代码。
上述的固定源代码主要指数字飞行器主函数文件,按照源代码的功能可划分为不同模块,包括动力学与环境模块、敏感器模块、敏感器转接箱模块、控制器模块、执行机构转接箱模块、执行机构模块。其中动力学与环境模块游主要分为天体模块、飞行器实体模块。敏感器、执行机构又可以细分到具体每个部件模块。所有模块都对应一个宏定义,相关代码用宏定义包起来,分布式的每个模块的代码就能相互独立。
(2)数字飞行器多运行模式个性源代码书写
主要包括数字飞行器运行模式宏定义头文件书写、数字飞行器信息包传输文件分布式书写和数字飞行器部件调用文件分布式书写。
宏定义头文件书写依据包设计数据中的联邦配置相关表,查询到联邦中包含此类部件的单机组则书写此类宏定义,用到的主要智能书写方法为源代码规范决策执行方法,例如:若联邦中包含敏感器部件,则书写出宏定义“#define USE_AS_SENSOR”。
数字飞行器信息包传输文件分布式书写依据包设计数据中的联邦配置相关表,查询到联邦中包含此类部件的单机组则书写出此部件的信息包传输源代码。包括其头文件引用、变量定义、函数声明、初始化函数、组包发包函数、收包解包函数、后续处理函数、部件状态量更新或获取函数。主要过程是,首先根据实体定义表与单机组配置表中的信息,利用源代码规范决策执行方法确定书写的文件名称,以及主要函数的名称,函数的声明;其次根据总线配置、传输协议定义表、状态量定义表中的信息,利用源代码规范决策执行方法书写出头文件引用、变量定义源代码;根据传输协议定义表中的信息,利用源代码规范决策执行方法书写组包发包函数、收包解包函数;利用单机组配置表中的信息,读取相应源代码库中的模板,书写初始化函数、后续处理函数、部件状态量更新或获取函数。
数字飞行器部件调用文件分布式书写依据包设计数据中的联邦配置相关表,查询到联邦中包含此类部件的单机组部件调用文件中则书写相应部件的函数调用。包括初始化函数调用、收包函数调用、发包函数调用、静态处理函数调用、动态步进函数调用。主要过程是,根据实体定义表与单机组配置表中的信息,利用源代码规范决策执行方法确定书写的文件名称,调用函数的名称,以及各函数中包含的调用语句的书写形式。
对于步骤S4,主要过程为根据用户装配的数字飞行器流设计XML文件、流设计数据库、包设计数据库中的单机组、总线、传输协议等相关信息确定应用层代码的书写规则,根据包设计数据库中的联邦配置中平台与部署方案确定系统层代码的书写规则,根据书写规则书写出完整的数字飞行器多平台源代码。
(1)数字飞行器应用层源代码智能书写
应用层中的实体层源代码需要每次利用智能书写技术重新生成,主要包括:数字飞行器静态传输源代码书写、数字飞行器子系统动态耦合源代码书写。
数字飞行器静态传输源代码书写可分解为数字飞行器信息包传输源代码书写、数字飞行器遥测源代码书写、数字飞行器遥控源代码书写。主要过程为,根据XML文件和包设计数据库中实体定义、单机组配置、状态量定义、总线配置、传输协议定义表中所携带的信息,以及源代码库模板路径读取实体层中的部件模型源代码模板并对模板进行书写操作,并且结合源代码规范决策执行方法,得到数字飞行器静态传输源代码。
上述的数字飞行器信息包传输源代码书写主要包括通道及连接关系定义头文件书写模块、单机部件信息传输源代码书写模块、单机部件与动力学与环境模块信息传输源代码书写模块、其他辅助代码书写模块。数字飞行器遥测源代码书写按照遥测方式可分为卫星AOS协议遥测源程序书写、卫星波道遥测源程序书写,两者都包括了星上编码源代码书写模块及地面解码源代码书写模块。数字飞行器遥控源代码书写主要包括地面遥控指令发送源代码书写模块和星上遥控指令解码源代码书写模块。
数字飞行器子系统动态耦合源代码书写,按照实体分解包括数字卫星子系统动态耦合源代码书写、数字导弹子系统动态耦合源代码书写等。主要过程为,根据XML文件、流设计数据库和包设计数据库中实体定义中所携带的信息,以及源代码库模板路径读取实体层中的实体类源代码模板并对模板进行书写操作,得到数字飞行器子系统动态耦合源代码。
上述的数字卫星子系统动态耦合源代码按照系统维分解为姿轨控子系统、电源子系统、推进子系统、热控子系统、测控子系统耦合源代码。数字导弹子系统动态耦合源代码按照系统维分解为导航控制子系统、推进子系统耦合源代码。
(2)数字飞行器系统层源代码书写
根据包设计数据中所包含的平台信息,确定需要加载的系统层源代码模板路径,从源代码库中加载出相应平台的源代码模板,根据方案与联邦表中的信息确定源代码书写的输出路径,利用源代码规范决策执行方法实现数字飞行器系统层源代码书写。
上述书写的源代码,对于Windows平台与Linux平台主要包括利用RTI 模拟的各类总线信息传输的源代码、分布式时间同步管理源代码,对于嵌入式平台主要包括嵌入式硬件通信底层驱动源代码基础上的标准封装源代码。
对于步骤S5:
(1)数字飞行器windows平台工程框架文件书写
Windows平台工程框架文件主要指VS环境下的sln文件、vcxproj文件、vcxproj.filters文件。工程框架文件书写的主要步骤为:第一步,经过应用层、系统层源代码书写得到数字飞行器Windows平台下所有源文件;第二步,从源代码库中获取工程框架文件模板并根据方案配置修改工程名称;第三步,统计工程中所有c文件、cpp文件、资源文件,分别写入到工程框架文件中相应的组中。
人工智能程序员调用Windows下VS自带的编译工具即可将源代码便以为可执行程序。
(2)数字飞行器Linux平台工程框架文件书写
Linux平台makefile文件书写的主要步骤为:第一步,经过应用层、系统层源代码书写得到数字飞行器Linux平台下所有源文件;第二步,统计工程中所有c文件、cpp文件,将名称列写到makefile文件中;第三步,遍历所有c 文件、cpp文件,查找每个文件中包含的h文件,将c文件/cpp文件与h文件的关系依次列写到makefile文件中。
人工智能程序员调用在Linux环境系调用makefile文件完成编译,即可将源代码便以为可执行程序。
(3)数字飞行器嵌入式平台工程框架文件书写
嵌入式平台makefile文件书写的主要步骤为:第一步,经过应用层、系统层源代码书写得到数字飞行器Linux平台下所有源文件;第二步,在工程路径下生产makefile空文档,按照固定规范写好部分头部;第三步,读取工程路径下的所有文件,去掉路径名称和h文件和scc文件,留下c文件和s文件,完成makefile文件的书写。
人工智能程序员完成makefile后,再自动开机箱、开板卡、下载将源代码自动部署到相应嵌入式板卡上。
另外,还需要进一步说明本发明中所提及到的源代码规范决策执行方法和智能公式识别源代码书写方法;
其中,源代码规范决策执行方法包括以下步骤:
步骤一,利用多种维分解方法对数字飞行器源代码进行多层次分解,得到最小分解结果;
分解方法主要包括代码层次、飞行器类型、系统维、仿真粒度,以及多种分解方法之间的交叉组合;
步骤二,对所述最小分解结果进行聚类,并建立数字飞行器源代码书写决策树;
该步骤可细分为以下两个小步骤:
(1)对最小分解结果进行聚类,给出聚类后分支的适用对象和适用条件聚类依据包括通用性、工作逻辑方式。
根据工作逻辑方式进行聚类,卫星中姿轨控子系统源代码主要包括姿态确定模块、姿态控制模块、模式监测和切换模块,导弹制导控制系统中包括飞行事件监测和切换模块、导引模块、控制模块,两种飞行器工作逻辑方式基本一致,因此实现方式聚为一类,聚类后结果将飞行器源代码运动控制部分分为三部分,第一部分为飞行器状态确定模块,第二部分为飞行过程的状态监测和满足特定情况切换逻辑模块,第三部分为飞行器运动控制模块。
(2)建立程序员书写数字飞行器源代码完整决策树:将源代码分解结果聚类后,建立决策树
步骤三,根据决策树分支情况建立执行规范书写操作的人工智能程序员;根据适用范围、变化频率、变化方式因素对源代码书写执行方法进行选择,建立智能程序员。
步骤四,利用所述人工智能程序员读取所需生成场景的配置信息生成数字飞行器仿真源程序。
该步骤可细分为以下两个小步骤:
(1)智能程序员读取所需生成场景包含飞行器配置信息
利用形成的人工智能程序员,读取书写数字飞行所需的配置文件输入信息。配置文件按照文件类型分解包括数据库、格式化文件(xml文件)、文件库等。配置文件根据适用性进行分解,包括所有飞行器通用、每种类型飞行器通用、每种型号特殊等。
(2)根据决策树分支适用条件进行逐层判定,获取源代码书写操作执行方法,执行书写操作自动生成源代码。
人工智能程序员中根据决策树分支语句进行决策树各层级分支的满足条件判定和筛选,查找书写过程中每步的所属最小分支。
根据每个分支的书写方法,通过源代码生成程序书写、数据库读取书写、文件直接拷贝、文件替换拷贝方式,完成完整数字飞行器系统源代码书写。
智能公式识别源代码书写方法,即利用公式描述书写源程序的方法,包括以下步骤:
步骤一:建立推理所需知识库和方法库;
所述知识库存放变量类型识别,运算源代码书写规则,流程源代码书写规则相关知识或既定事实;
所述方法库存放处理复杂方程算法选择与流程确定的决策方法,预处理方法,以及从公式中提取变量值和变量类型的方法。
步骤二:针对带求解的复杂公式,在方法库中匹配求解算法,确认算法流程及其各步骤相关公式;
在方法库中匹配最合适的解算方法,将难以直接运算得到结果的复杂方程转化为按步骤执行的算法描述形式,并确定各个步骤中涉及到的公式;
步骤三:依据知识库与方法库识别算法流程中各步骤相关公式的变量及其类型,识别公式的运算类型,将关键信息转为树形结构存储;
将算法各个步骤中OMML格式的数学表达式通过去除无效项,解决符号粘连,变量类型识别,树形结构转化为二叉树型结构过程,将数学表达式转化为计算机方便识别的列表形式存储。
步骤四:对树形结构进行预处理;依据知识库中变量运算的相关知识,对二叉树形结构中每一此运算的结果变量类型进行判断以便后续的源代码书写工作。
步骤五:运算流程识别过程;通过关键词提取,识别出算法各步骤之间的运算流程,包含顺序运算,条件判断过程,循环过程。
步骤六:根据算法流程与公式处理结果智能书写源代码。根据知识库中的源代码书写规则,依次完成头文件引用书写,函数声明书写,变量定义书写,程序主体部分书写过程。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种数字飞行器多平台多运行模式源代码的人工智能书写方法,其特征在于,包括:
S1:对数字飞行器源代码进行系统层次分解,预先将数字飞行器源代码通用部分保存成模板存储至源代码库中,并根据源代码适用的平台类型、代码的功能建立相应的模板路径;
S2:读取流设计XML文件、流设计数据库和包设计数据库;
S3:根据所述包设计数据库中携带的运行模式信息以及所述模板路径读取相应的模板,并对读取到的模板进行书写操作,得到数字飞行器多运行模式源代码;
S4:根据所述流设计XML文件、流设计数据库、包设计数据库中携带的平台信息以及所述模板路径读取相应的模板,并对读取到的模板进行书写操作,得到数字飞行器多平台源代码中的应用层与系统层源代码;
S5:根据所述包设计数据库中携带的源代码平台信息,结合数字飞行器多运行模式源代码和数字飞行器多平台源代码的应用层与系统层源代码,得到数字飞行器多平台源代码中的工程框架文件,综上完成了数字飞行器多平台多运行模式源代码的书写。
2.根据权利要求1所述的数字飞行器多平台多运行模式源代码的人工智能书写方法,其特征在于,对数字飞行器源代码进行系统层次分解具体包括:将数字飞行器源代码分解为数字飞行器系统层源代码和数字飞行器应用层源代码。
3.根据权利要求1所述的数字飞行器多平台多运行模式源代码的人工智能书写方法,其特征在于,所述流设计XML文件中保存的信息包括:实体类型、飞行器包含的子系统、每个子系统下包含的部件类型、每种部件类型包含的部件型号、每种部件信号的部件个数、每个部件的安装信息和生成的每个飞行器源代码的粒度;
所述流设计数据库中包括姿轨控子系统模式定义表、电源子系统供配电逻辑定义表、推进子系统管路连接与通断逻辑表和测控子系统链路定义表;
所述数字包设计数据库包括:实体定义表、单机组配置表、接口配置表、部署方案表和联邦配置表;
其中,实体定义表中保存的信息包括:数字飞行器的代号、名称和实体类型;单机组配置表中保存实体中包含的部件信息;
部署方案表中保存的信息包括:方案的名称、运行模式和实时非实时情况;联邦配置表中保存的信息包括:联邦的名称及生成处理的工程文件夹名称、联邦运行的平台、联邦中代码的实现方式和联邦中包含的部件。
4.根据权利要求1所述的数字飞行器多平台多运行模式源代码的人工智能书写方法,其特征在于,所述工程框架文件的具体包括:数字飞行器Windows平台工程框架文件、数字飞行器Linux平台工程框架文件和数字飞行器嵌入式平台工程框架文件。
5.根据权利要求4所述的数字飞行器多平台多运行模式源代码的人工智能书写方法,其特征在于,数字飞行器Windows平台工程框架文件的书写步骤包括:
经过应用层、系统层源代码书写得到数字飞行器Windows平台下所有源文件;
从源代码库中获取工程框架模板并根据部署方案表中的信息修改工程名称;
统计工程中所有C文件、cpp文件和资源文件,分别写入到工程框架文件中。
6.根据权利要求4所述的数字飞行器多平台多运行模式源代码的人工智能书写方法,其特征在于,数字飞行器Linux平台工程框架文件的书写步骤包括:
经过应用层、系统层源代码书写得到数字飞行器Linux平台下所有源文件;
统计工程中所有C文件、cpp文件,将C文件、cpp文件相应的名称列写到makefile文件中;
遍历所有C文件、cpp文件,查找每个文件中包含的h文件,将C文件或cpp文件分别与h文件的关系列写到makefile文件中。
7.根据权利要求4所述的数字飞行器多平台多运行模式源代码的人工智能书写方法,其特征在于,数字飞行器嵌入式平台工程框架文件的书写步骤包括:
经过应用层、系统层源代码书写得到数字飞行器Linux平台下所有源文件;
在工程路径下生成makefile空文件,按照固定规范写好部分头部;
读取工程路径下所有文件,去掉路径名称、h文件和scc文件,留下c文件和s文件,完成makefile文件的书写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810804156.3A CN109117125B (zh) | 2018-07-20 | 2018-07-20 | 数字飞行器多平台多运行模式源代码的人工智能书写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810804156.3A CN109117125B (zh) | 2018-07-20 | 2018-07-20 | 数字飞行器多平台多运行模式源代码的人工智能书写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109117125A CN109117125A (zh) | 2019-01-01 |
CN109117125B true CN109117125B (zh) | 2021-05-25 |
Family
ID=64863043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810804156.3A Active CN109117125B (zh) | 2018-07-20 | 2018-07-20 | 数字飞行器多平台多运行模式源代码的人工智能书写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109117125B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112130828A (zh) * | 2019-06-25 | 2020-12-25 | 北京金山云网络技术有限公司 | 一种软件源代码修改方法、装置、设备及存储介质 |
CN113569333B (zh) * | 2021-06-24 | 2023-02-17 | 中国人民解放军63620部队 | 基于预编译指令的多种飞行器仿真模型并行开发维护方法 |
CN113703726A (zh) * | 2021-08-26 | 2021-11-26 | 北京航空航天大学 | 一种数字飞行器源代码构造决策知识提取归零迭代方法 |
CN118885179B (zh) * | 2024-09-27 | 2024-12-20 | 宁波天巡科技有限公司 | 一种提高航天器飞行状态识别效率的方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5875331A (en) * | 1994-09-30 | 1999-02-23 | International Business Machines Corp. | System and method for generating target language code utilizing an object oriented code generator |
CN101334728B (zh) * | 2008-07-28 | 2011-10-19 | 北京航空航天大学 | 一种基于xml文档描述的界面生成方法和装置 |
CN103019742B (zh) * | 2012-12-31 | 2016-02-10 | 清华大学 | 一种多dsp平台上的自动代码生成方法 |
US20160196204A1 (en) * | 2015-01-04 | 2016-07-07 | International Business Machines Corporation | Smart Validated Code Searching System |
CN108287959B (zh) * | 2018-01-15 | 2021-05-04 | 北京航空航天大学 | 人工智能程序员书写数字飞行器源代码执行方法 |
-
2018
- 2018-07-20 CN CN201810804156.3A patent/CN109117125B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109117125A (zh) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117125B (zh) | 数字飞行器多平台多运行模式源代码的人工智能书写方法 | |
US7735058B2 (en) | Remote component and connection architecture | |
Passalis et al. | Opendr: An open toolkit for enabling high performance, low footprint deep learning for robotics | |
US7174545B2 (en) | Apparatus and method for producing display application software for embedded systems | |
CN108399273A (zh) | 人工智能程序员书写数字飞行器源代码的决策分解方法 | |
CN113348764B (zh) | 月球飞行器全过程数字仿真系统及方法 | |
CN109189376B (zh) | 数字飞行器集群源代码的人工智能书写方法 | |
Fant et al. | A pattern-based modeling approach for software product line engineering | |
Barwell et al. | Using Program Shaping and Algorithmic Skeletons to Parallelise an Evolutionary Multi-Agent System in Erlang. | |
CN109214043B (zh) | 数字飞行器动力学环境信息传输源代码人工智能书写方法 | |
CN114127681B (zh) | 用于实现数据流ai应用的自主加速的方法和装置 | |
Prat et al. | The beccal experiment design and control software | |
JP2828735B2 (ja) | 複合プログラム用入出力データの物理単位系自動変換方式 | |
Salmon et al. | CARES, a framework for CPS simulation: application to autonomous underwater vehicle navigation function | |
CN113900388A (zh) | 一种航天器姿控物理仿真试验系统精准快建平台及方法 | |
CN110687825A (zh) | 卫星单机仿真系统及方法 | |
Singhoff et al. | Teaching real-time scheduling analysis with cheddar | |
CN113050451A (zh) | 一种飞行控制系统的建模方法及装置 | |
Bhattacharyya et al. | Animation/simulation of missions for autonomous underwater vehicles with hybrid-model based | |
Reitz et al. | Modeling and Simulation of Cyber-Physical Systems using An Extensible Co-Simulation Framework | |
Acevedo et al. | ANTARES: Spacecraft simulation for multiple user communities and facilities | |
Prastowo et al. | Tice: A real‐time language compilable using C++ compilers | |
Peinze | The SUPRENUM preprototype: Status and experiences | |
Dennis et al. | Reducing code complexity in hybrid control systems | |
Newport | Fuzzy rule based computer design |
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 |