# air-combat-Reinforcement-Learning
利用值函数逼近网络设计无人机空战自主决策系统,采用epsilon贪婪策略,三层网络结构。
其中包含了无人机作为质点时的运动模型和动力学模型的建模。
由于无人机作战的动作是连续并且复杂的,本项目仅考虑俯仰角gamma(又叫航倾角)和航向角pusin的变化,并且离散的规定每次变化的幅度为10度,假定速度v为恒定值。根据飞机的运动模型,由俯仰角、航向角和速度可以推算出飞机位置的改变,即x,y,z三个方向的速度分量,在每一步中,根据这些分量变化位置position信息,posintion中的三个值为x,y,z坐标,是东北天坐标系下的坐标值。从坐标信息和角度信息以及速度信息,可以计算出两个飞机的相对作战态势state。
在上文中提到,我们的动作是仅对俯仰角和航向角进行改变,即增大,减少和不变,故两个角度的变化组合一共有3×3=9种动作。在每个态势下,都有9种动作可以选择,将这个态势下的9种动作将会产生的新的态势,作为网络的输入,网络的输出是9个数字,代表每个动作的值函数。
由于是无监督学习,故我们需要利用值函数的Bellman公式生成标签。本文利用时间差分思想,(时间差分的公式贴在此处)。
怎么生成标签呢?我们先进行一次完整的游戏,将这次游戏中所有的值都记录下来,然后在游戏结束之后,根据胜利(红方为我方)、失败和最大步数、超出范围等给出一个回报值,然后设定一个回报的衰减率,将这个回报值根据步数越靠前影响越小的规律添加在每一步的目标中。
胜利的标准是,在攻击距离内达到攻击角度,这个以后再讲。
循环进行以上过程。
在训练后的结果图:
好吧我还不会贴图,大概样子就是,在对方匀速直线运动向我方飞行的时候,我方先快速爬升到一定高度,然后俯冲向敌机。
动作集的设定很暴力,在以后可以根据一些算法对动作集进行一定的改变。
目前是初步的程序编写,最近比较忙,之后会不断更新和详解。
class_env文件是环境类,包含了无人机建模和各种坐标角度与态势之间的转换
main文件是主文件,有网络和主要的执行过程和测试过程
环境:tensorflow
python3.6
硬件:GTX1070
__AtYou__
- 粉丝: 2939
- 资源: 905
最新资源
- 智能车入门知识-智能车竞赛-智能寻迹模型车
- ChromiumSetup.exe
- 多店进销存管理系统源码本源码亲测可用 开发环境为Visual Studio 2010,数据库为SQL2008R2,使用.net
- gpt4all-installer-win64
- Python爬虫入门教程-大规模网页抓取-分布式爬虫
- 含光伏的储能选址定容模型 14节点 程序采用改进粒子群算法,对分析14节点配网系统中的储能选址定容方案,并得到储能的出力情况,有
- Python爬虫 1、Python爬虫基础知识 2、爬虫实例 3、反爬机制、应对反爬策略 4、爬虫技术栈、构建爬虫环境依赖
- python栈实战 迷宫寻找出口
- 计算机二级python考试练习代码及教程-ipynb结构代码
- Gate Traveller 但是退休版 (HJLL)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈