掌桥专利:专业的专利平台
掌桥专利
首页

一种智能引导控制联合仿真平台

文献发布时间:2024-04-18 20:01:30


一种智能引导控制联合仿真平台

技术领域

本申请涉及飞行仿真技术领域,特别涉及一种智能引导控制联合仿真平台。

背景技术

随着人工智能技术的发展,传统的飞行控制也向着智能引导控制方向发展,伴随而来的便是智能引导控制仿真。

Python编程语言是一种解释型语言,其简单、易用使得其在人工智能领域广泛使用,非常适合基于人工智能算法的顶层引导算法开发。然而Python作为代码语言,其对于控制律设计调试、无人机仿真模型搭建等具备较大挑战。因此在基于Python编程语言的工程应用中,常常使用质点方程等非常不精确的模型代替无人机控制律及无人机模型,这就导致模型仿真的误差较大。然而飞机控制对于控制律和仿真模型的精确度却有较高的要求。

发明内容

本申请的目的是提供了一种智能引导控制联合仿真平台,以解决或减轻背景技术中的至少一个问题。

本申请的技术方案是:一种智能引导控制联合仿真平台,包括:智能引导模块、无人机控制仿真模块和数据交互模块,其中;

所述智能引导模块基于Python开发,且所述智能引导模块基于强化学习算法训练得到逼近神经网络的值函数,加载该神经网络,将环境态势和任务解算得到的态势综合信息作为输入,计算得到相对应的各个动作的值,并根据选择的动作综合为引导控制指令,通过数据交互模块发送给无人机控制仿真模块;

所述无人机控制仿真模块基于Simulink搭建成无人机实物相同的架构,基于引导控制指令生成环境态势;

所述数据交互模块用于智能引导模块与无人机控制仿真模块的数据交互。

进一步的,所述智能引导模块包括:

接口数据更新模块,通过数据交互模块获取无人机信息及环境状态;

态势综合模块,根据无人机信息和环境状态观测无人机周围的环境以获得观测状态,进而评估无人机的环境信息获得态势综合信息,同时进行目标检测和任务解算,完成无人机状态判断,该状态判断作为智能引导控制器运算模块的输入;

智能引导控制器运算模块,基于强化学习算法训练得到逼近神经网络的值函数,加载该神经网络,将环境态势和任务解算得到的态势综合信息作为输入,计算得到相对应的各个动作的值,根据各动作的值最大策略选择动作;

引导控制指令综合模块,将选择的动作或动作值综合为引导控制指令;

接口数据更新模块将综合到的引导控制指令进行更新,并通过数据交互模块发送给无人机控制仿真模块。

进一步的,所述飞机信息包括位置、姿态、速度。

进一步的,所述引导控制指令包括应飞航向、应飞速度及应飞高度。

进一步的,在对引导控制指令进行更新过程中,判断无人机是否碰到障碍物或到达边界、判断是否到达目标、判断是否达到最大步长,若均为否,则更新接口数据,继续进行上述循环,若不全为否,则退出该循环,输出运行过程及结果。

进一步的,所述无人机控制仿真模块包括:

无人机控制律,用于将引导控制指令解算为纵向、横向与油门控制指令;

无人机仿真模型,包括无人机内环增稳控制律及飞机方程,无人机仿真模型用于通过运算得到包括角速率、过载、位置与姿态的信息,经过机体传感器模型反馈作为无人机控制律和内环增稳控制律的输入,

仿真环境,内含障碍物模型与目标点模型,根据飞机方程运算得到的无人机位置姿态信息,解算出无人机与障碍物模型、目标点模型的相对态势,经过环境传感器,反馈作为智能引导模块的控制输入;

传感器模型,传感器模型用于模拟真实传感器,按照信息流向划分为机体传感器模型和环境传感器模型。

进一步的,所述数据交互模块按照功能定义包括:智能引导模块的数据接收、智能引导模块的数据发送、无人机控制仿真模块的数据发送和无人机控制仿真模块的数据接收。

本申请的联合仿真平台具有如下优点:

1)按照功能架构将联合仿真平台划分为智能引导模块、无人机控制仿真模块、数据交互模块等三部分,架构清晰通用,功能划分明确,各个模块可独立开发;

2)Python承担智能引导功能,Simulink承担无人机控制仿真功能,数据交互模块基于UDP(用户数据报协议)进行数据传输交互,Python代码语言与Simulink图形化开发语言的优势互补;

3)数据交互采用简单的UDP等传输层通讯协议,通过将UDP数据包封装到IP数据包,进而发送往目的地,提供无连接的服务,一个客户端可以向多个服务器发送数据,同样的,一个服务器也可以从若干个不同客户端接收数据,因此该联合仿真平台可以有多个智能引导模块或无人机控制仿真模块,为集群智能联合仿真验证等提供了良好的数据交互能力支撑。

附图说明

为了更清楚地说明本申请提供的技术方案,下面将对附图作简单地介绍。显而易见地,下面描述的附图仅仅是本申请的一些实施例。

图1为本申请的智能引导控制联合仿真平台架构示意图。

图2为本申请的智能引导模块示意图。

图3为本申请的无人机控制仿真模块示意图。

图4为本申请的数据交互模块示意图。

具体实施方式

为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。

为了克服Python等代码语言不擅长设计调试控制律和搭建仿真模型等问题,本申请中使用Simulink(MATLAB中的一种可视化仿真工具)设计调试控制律和搭建仿真模型,通过将Python语言的人工智能算法开发优势与Simulink的控制律和模型搭建优势,构建智能引导控制仿真平台。

如图1所示,本申请提供的智能引导联合仿真平台100包括智能引导模块200、无人机控制仿真模块300和数据交互模块400。

智能引导模块200基于Python编程语言设计,基于强化学习Q-Learning算法实现智能引导控制器的自主学习,基于ε-greedy设计策略得到逼近神经网络的设计值函数,根据环境反馈设计奖惩函数。

如图2所示,智能引导模块200主要聚焦于训练好的神经网络控制器应用的算法架构设计,其包括如下模块:

接口数据更新模块210,通过数据交互模块400获取无人机位置、姿态、速度等信息及环境状态;

态势综合模块220,根据无人机信息和环境状态观测无人机周围的环境信息获得观测状态,进而评估无人机的环境信息获得态势综合信息,同时进行目标检测和任务解算,完成无人机状态判断,该状态判断为智能引导控制器运算模块230的输入;

智能引导控制器运算模块230,基于强化学习算法训练得到逼近神经网络的值函数,加载该神经网络,将环境态势和任务解算得到的态势综合信息作为输入,计算得到相对应的各个动作的值,根据Q值最大策略选择动作;

引导控制指令综合模块240,将选择的动作或动作值综合为引导控制指令,包括应飞航向、应飞速度及应飞高度等;

最后,接口数据更新模块210将综合到的引导控制指令进行更新,并通过数据交互模块400发送给无人机控制仿真模块300;

重复上述过程,在此过程中判断无人机是否碰到障碍物或到达边界,判断是否到达目标,判断是否达到最大步长MaxStep。若均是否,则更新接口数据,继续进行上述循环。若不全是否,则退出该循环,输出运行过程及结果。

如图3所示,无人机控制仿真模块300基于Simulink搭建,其包括如下部分:

无人机控制律310,用于将引导控制指令的应飞高度、应飞速度、应飞航向等指令解算为纵向、横向与油门控制指令;

无人机仿真模型320,包括无人机内环增稳控制律321及飞机方程322;

仿真环境340,内含障碍物模型与目标点模型等,根据飞机方程322运算得到的无人机位置姿态信息,解算出无人机与障碍物模型、目标点模型的相对态势;

传感器模型330,传感器模型用于模拟真实传感器的时延、滞环、死区等特征,按照信息流向划分为机体传感器模型332和环境传感器模型321。

无人机仿真模型320运算得到角速率、过载、位置与姿态等信息,经过机体传感器模型332反馈作为无人机控制律310和内环增稳控制律321的输入,仿真环境340运算得到的相对态势信息,经过环境传感器,反馈作为智能引导模块200的控制输入。

在本申请中,智能引导模块200是基于Python开发的,其数据发送与接收也同样基于Python开发。无人机控制仿真模块300是基于Simulink开发的,其发送与接收也同样基于Simulink开发。

无人机控制仿真模块300(即Simulink模块)的“控制律—仿真模型—仿真环境—传感器模型”部分与无人机实物的架构相同,仿真模型与实物贴近。

如图4所示,数据交互模块400用于智能引导模块200与无人机控制仿真模块300的数据交互,其按照功能定义,数据交互模块主要具备四部分功能:

1)智能引导模块200的数据接收

基于Python语言开发智能引导模块200的数据发送功能,智能引导模块的主函数文件(main.py)部分代码如附录A所示,智能引导模块200运行的开始,函数server.start()创建一个udp server用于接收matlab的数据,然后运行主循环函数main_simulation()实现智能引导控制指令解算及UDP数据接收与发送,最后函数server.join()等待线程退出。

智能引导模块的UDP数据接收在数据处理线程中完成。在主循环函数main_simulation()中,每个运算周期需要获取态势信息的时候,通过data=data_list.get_new()函数实现接口数据更新,如附录B所示。附录C与附录D的函数文件定义了底层协议。

2)智能引导模块200的数据发送

在主循环函数main_simulation()中,每个运算周期计算得到引导控制指令,将发送接口数据更新,通过send_to(action_cmd[0],action_cmd[1],action_cmd[2])函数实现UDP数据发送,如附录B所示。

send_to()函数的定义如附录A所示。附录C与附录D的函数文件定义了底层协议。

3)无人机控制仿真模块300的数据发送

基于Simulink开发无人机控制仿真模块数据发送功能。数据打包Pack用来将要发送的多个数据打包成为double类型的数据流。

Remote IP address是指定要发送到的IP地址,Remote IP port是要发送到的端口,Local IP port source是本机的发送端口,自动获取。发送的字节量大小设置为1024。

4)无人机控制仿真模块300的数据接收

基于Simulink开发无人机控制仿真模块数据接收功能。远程的IP address与发送端保持一致,数据类型设置为double类型。接收数据的采样时间设置为每一秒采样一次。

本申请的联合仿真平台具有如下优点:

1)按照功能架构将联合仿真平台划分为智能引导模块、无人机控制仿真模块、数据交互模块等三部分,架构清晰通用,功能划分明确,各个模块可独立开发;

2)Python承担智能引导功能,Simulink承担无人机控制仿真功能,数据交互模块基于UDP(用户数据报协议)进行数据传输交互,Python代码语言与Simulink图形化开发语言的优势互补;

3)数据交互采用简单的UDP等传输层通讯协议,通过将UDP数据包封装到IP数据包,进而发送往目的地,提供无连接的服务,一个客户端可以向多个服务器发送数据,同样的,一个服务器也可以从若干个不同客户端接收数据,因此该联合仿真平台可以有多个智能引导模块或无人机控制仿真模块,为集群智能联合仿真验证等提供了良好的数据交互能力支撑。

附录A main.py

#准备工作创建一个信号量,用于当接收到udp客户端数据时,处理数据线程激活工作

from multiprocessing import Event

data_receive_event=Event()

#创建一个数据区域

from data_set import dataSet

data_list=dataSet()

from processor import processor

from udp_server import udpServer

server=udpServer(data_list,data_receive_event)

def send_to(p1,p2,p3):

send_str=struct.pack('

server.send_to(send_str)

if__name__=='__main__':

#创建一个udp server用于接收matlab的数据

server.start()

main_simulation()

#等待线程退出

server.join()

附录B main_simulation()

一.主函数开始,加入UDP通讯

global data_receive_event

global data_list

二.接口数据更新(接收)

data=data_list.get_new()

三.接口数据更新(发送)

send_to(action_cmd[0],action_cmd[1],action_cmd[2])

附录C udp_server.py

附录D processor.py

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种基于纳米孔对非天然核酸直接测序的错位测序方法
  • 一种基于扩增子测序检测染色体杂合性缺失的试剂盒及方法
  • 一种用于检测副猪嗜血杆菌的RPA引物、RPA探针、试剂盒及核酸检测方法
  • 一种疟原虫核酸分型检测试剂盒及其使用方法
  • 一种用于将拭子上的细胞洗脱、裂解释放核酸的洗脱裂解液、试剂盒和方法
  • 一种提高核酸聚合测序质量的方法、反应体系和试剂盒
  • 一种提高核酸聚合测序质量的方法、反应体系和试剂盒
技术分类

06120116556945