自主空战连续决策方法

2022-10-25 05:03单圣哲杨孟超张伟伟高传强
航空工程进展 2022年5期
关键词:空战敌机机动

单圣哲,杨孟超,张伟伟,高传强

(1.西北工业大学 航空学院,西安 710072)(2.中国人民解放军93995部队,西安 710306)

0 引言

自主空战(AAC)是指战机依靠机载设备,感知战场态势,基于人工智能在战场中实时选择作战方案和战术动作的机制,其智能化程度决定了机制的优劣。空战过程中,交战飞机需要在复杂的环境中通过连续高强度机动来力争态势,进而消灭敌人保全自己,故决策是自主空战中最为核心的部分。

依据自主空战决策算法的核心内涵不同,可以将现有算法划分为基于数学求解、机器搜索以及数据驱动三大类。

数学求解方法将空战决策视为博弈问题。该类方法通常基于博弈论对空战问题进行简化假设,使用微分对策方法求解Nash均衡,根据假设类型不同可以将空战问题描述为追逃问题(Pursuit-Evasion Game,简称PE)、双目标优化问题(Two Target Game)和态势函数优化问题等。微分对策方法本身属于解析求解方法,其结果具有清晰的数学形式和显式优越性,但由于微分对策方法在数学上具有局限性,尤其是在处理奇异曲面问题上的不完备性,限制了数学求解方法在复杂博弈问题中的应用。

机器搜索方法通常将空战中的可选方案离散化,通过试探输入得出每种机动方案的可能结果,并通过态势函数量化其结果,最终通过一定的搜索机制找出最有利的方案。根据搜索机制的不同该类方法可分为AML(Adaptive Maneuvering Logic)搜索、博弈矩阵搜索、启发算法搜索等。由于空战机动中的控制量为连续变化量,存在选择方案无穷多的“维度爆炸”问题,针对该问题,文献[28-31]使用多种动作库来描述机动方案,但仍存在动作突变或灵活性较差问题。

数据驱动方法的优势在于可以摆脱常规方法对人类知识的高度依赖,主要有神经网络、模糊矩阵、强化学习等。

强化学习方法,是基于马尔科夫决策过程(Markov Decision Process,简称MDP)中的价值迭代和策略迭代,让智能体与环境交互,利用环境的奖励反馈不断改进策略,以获得最大累计折扣奖励的方法。Liu P等基于DQN(Deep Q-Learning)算法将深度强化学习用于空战决策,解决了连续状态输入的“维度灾难”问题,同时验证了奖励与行为的效用性,但DQN网络无法解决连续动作输出问题;张强等基于强化学习中的Q-Network开展了超视距空战决策的研究,并基于QNetwork的输出量求解Nash均衡,选择敌我的空战动作,但动作的选取仍与真实空战有一定差距;B.Kurniawan等将行动者—批评者(Actor-Critic,简称AC)架构引入空战决策研究,提高了训练效率,同时探索了奖励结构对学习速度的影响,但训 练 课 目 设 置 仍 较 为 简 单;Yang Q等采 用DDPG(Deep Deterministic Policy Gradient)算法解决了DQN算法无法实现空战的连续动作输出问题,提高了控制的精度和平滑性,同时也开展了DQN与Curriculum Learning相结合的研究,提高了决策模型在对抗中的获胜率。

综合考虑自主空战决策算法的研究进展与问题,为建立一种连续动作、强远视性、全动态的实时空战机动决策方法架构以适应于实际空战需求,本文基于AC强化学习架构,使用深度神经网络的非线性表现能力,构建由连续状态空间至连续动作空间的映射,采用线性方法将飞机各个状态机动包线动态归一化,与动作空间对齐,保证决策算法充分调用飞机机动潜力的同时避免动态失速;通过增大空战训练环境的不确定性,增强算法的全泛化能力,避免决策算法仅对特定起始条件有效;通过高不确定度的空战场景设置与训练,说明方法架构的合理性。

1 AC强化学习基本架构

强化学习问题分为连续时间问题和离散时间问题,通常将连续时间问题近似为离散时间问题,这样强化学习问题就可以统一表示为离散时间马尔科夫决策过程。本文基于连续时间的离散化与环境完全可知表述空战轨迹序列:

基于马尔科夫性假设进一步引入MDP的演化概率为

至此,MDP可 由 四 元组S,A,R,P来表示,其中P是环境动力的四阶张量形式。

在AC架 构 下,agent由Actor和Critic两 部 分构成,分别负责动作生成与策略评估工作,其基本框架如图1所示。

图1 Actor-Critic架构Fig.1 Framework of Actor-Critic

Actor网络以当前时刻状态s为输入,输出当前时刻动作a的相关量;Critic网络以当前状态—动作对(s,a)为输入,动作价值q(s,a)为输出,其作用为评价当前状态采取的动作方案的价值。

式中:γ∈[0,1]为累加奖励的折扣因子,代表agent的远视程度。

agent从环境观测得到当前状态样本s,依据Actor网络输出的动作相关量选择动作样本a,在环境中执行该动作,进而使环境演化至下一状态样本s,并返回奖励样本r。Critic对s下行动方案a进行价值评估,并与奖励r进行对比更新自身网络参数,使其评价更接近真实值,本文采用单步时序差分的方式更新,其评估方式为

根据动作价值评估q(s,a),利用随机策略梯度(Policy Gradient,简称PG)方法更新Actor网络参数,使其策略得到优化。

基于上述Actor-Critic架构产生了多种算法,其中比较有代表性的有邻近策略优化算法(Proximal Policy Optimization,简称PPO)、柔性行动 者—批 评 者 算 法(Soft Actor-Critic,简 称SAC)、深度确定性策略梯度算法(Deep Deterministic Policy Gradient,简称DDPG)以及双重延迟深度确定性策略梯度算法(Twin Delay Deep Deterministic Policy Gradient,简称TD3)等。

本文空战环境为连续动作环境,DDPG算法的Actor网络输出为连续动作范围内的值,通过加入噪声N确定执行动作;TD3算法在DDPG算法的基础上采用了两套价值函数,避免DDPG算法更新时陷入局部最优;SAC算法的Actor网络输出为动作的均值与方差,以此均值和方差选取执行动作,并使用奖励工程在原奖励的基础上增加由动作分布确定的熵以鼓励智能体探索。

2 状态空间及动作空间设计

AC强化学习架构下,由于深度神经网络具有强大的非线性映射能力,可直接由连续状态空间向连续动作空间进行决策映射,通过数值方法实现空战环境连续决策。为在空战机动决策中使用AC架构,首先对空战的状态空间和动作空间进行设计。

2.1 空战状态空间设计

参量化空战状态空间,首先应建立空战态势的几何模型。敌我空战几何关系如图2所示,红色飞机为我方飞机,蓝色飞机为敌方飞机。R为敌我距离矢量,其方向由我方指向敌方,同时也是我方的射击瞄准线方向;V为我方的速度矢量;V为敌方的速度矢量;两者参考系为地面坐标系Oxyz;φ为我方飞机的提前角,即我方飞机机体轴与射击瞄准线之间的夹角,其大小等于我方速度矢量V与距离矢量R之间的夹角,该角度同时也是导弹瞄准时我方导弹的离轴角;q为我方飞机的方位角,表示我方飞机相对敌机的方位,其大小等于敌方速度矢量V与距离矢量R之间夹角。角度φ与q的计算公式如式(5)所示。

图2 空战几何关系Fig.2 Geometry relationship of air combat

由于环境需要满足马尔科夫性的要求,参量化空战状态空间需尽量包含空战的态势特征,而空战中位置、速度、加速度及角度是机动飞行的最主要特征,故将空战态势信息S描述为S=[p,V,a,φ,q,p,V,a,φ,q],其 中p和p分别为我机和敌机的位置坐标;V和V分别为我机和敌机的速度矢量;a和a分别为我机和敌机的加速度矢量;φ和φ分别为我机与敌机的提前角;q和q分别为我机和敌机的方位角。

2.2 空战连续动作空间设计

2.2.1 动作维度选取及动态求解

动作维度应在保证可实现大多数机动动作的基础上尽量减少。参考飞行员在空战中的操纵习惯,多以驾驶杆和油门配合完成战术机动,故选取飞机法向过载n、推力T与速度滚转角φ三个维度的连续量构成动作空间。

输入上述三个操纵量后,飞机动态仿真可在气流轴系下利用三自由度飞行动力学方程求解实现。

由于飞机机动范围较大,可能出现垂直向上或向下的姿态,采用欧拉角表征姿态会出现“万向锁”问题进而导致仿真求解中断。故采用四元数法表征飞机姿态。

使用四元数,由地面坐标系到气流坐标系的旋转矩阵L可以表示为

则飞机在地面惯性参考系下的速度矢量投影V为

飞机所受外力可以简化为由重力mg、气动升力L、气动阻力D和发动机推力T构成,其中L和D可由操纵量法向过载n和飞行状态(飞行高度、飞行马赫数、飞行动压)确定。飞机所受合力在地面惯性参考系下的投影F为

飞机运动过程中,因所受外力与速度方向不共线而导致的速度轴的转动角速度ω为

则飞机气流坐标系相对惯性参考系的旋转角速度在自身坐标系的投影为

则飞机的动力学方程可表示为

在实时求解飞机动态时,可以通过数值积分更新四元数和飞行速度标量V,进而更新L矩阵,代表飞机的姿态。接下来可利用式(7)更新飞行速度矢量在地面坐标系下的投影V,进而对时间进行数值积分,便可求解飞机的位置坐标。

2.2.2 机动包线动态归一化

基于上述连续动作空间,理论上可以实现除失速机动和非协调侧滑外的所有空战机动动作的仿真模拟,但在实际空战中,飞机操纵量的安全范围和极限使用范围是随飞行状态实时变化的。以法向过载为例,某型飞机法向过载的使用包线如图3所示,上方曲线代表不同高度最大可用正过载,下方曲线代表不同高度最大可用负过载。在实际飞行中,如果飞机使用过载超出过载包线范围可能发生失速偏离或结构受损等危险情况,同样在油门和滚转角控制量上也存在着随飞行状态变化的限制条件。

图3 飞机可使用过载包线Fig.3 Envelope of load factor

由于存在限制条件,使得动作空间不再整齐,且量纲随飞行状态实时变化。本文在不破坏强化学习方法对环境马尔科夫性要求的前提下,采用动态线性归一化的方法,即实时将每个动作范围线性映射至[-1,1]区间内。以法向过载n为例,法向过载的动态归一化公式为

式中:n为归一化后的法向过载动作量;n和n分别为飞机当时状态下的最大正、负过载可用值,两者都受飞行马赫数和飞行高度的影响。

(1)在不破坏环境马尔科夫性的同时,使所用动作范围保持在[-1,1]范围内,可以与深度神经网络的输出层激活函数tanh进行量纲对接,且数值范围处于激活函数的非饱和区域有利于加速训练;

(2)可保证决策的输出动作均在包线以内,不会产生失速、结构超载等危险动作;

(3)完成常规机动动作的难度更低,如完成垂直动作时,若使用未归一化的动作空间需要根据动作阶段不断调整法向过载,而使用归一化后的动作空间只需保持法向过载为0.8即可使其保持在最优使用范围内。

2.3 空战连续机动动作验证

为验证动作空间设置的合理性和仿真方程的有效性,本文选取空中的高斤斗、斜斤斗和水平盘旋进行仿真验证。

以归一化动作为操纵量的斜斤斗及水平盘旋飞行轨迹分别如图4~图5所示。

图4 斜斤斗运动轨迹图Fig.4 Trajectory of inclined loop maneuver

图5 水平盘旋运动轨迹图Fig.5 Trajectory of sustained turn

从图4可以看出:飞机的机动轨迹平滑,在垂直位置未出现仿真中断现象。斜斤斗机动过程中三个欧拉角会急剧变化,尤其是接近垂直向上位置时,会出现欧拉角变化率无穷大的现象,表明本文采用的仿真方法具有良好的鲁棒性。

空战中所有常规机动动作均可以认为是水平动作和垂直动作的组合与变形。使用归一化的动作空间来参量化空战动作,经验证可以通过保持特定操纵量完成成套的垂直和水平机动动作。在实际空战中,机动动作多是成套动作的拆分和组合。通常飞行员动作切换的时间为秒量级,故本文选取2 s为一个决策步长,决策步长之间的操作量变化受到飞机敏捷性制约。理论上使用本文动作空间设置方法,可以实现飞机全状态、全包线、任意空战动作的连续决策,且决策步长之间不会出现操纵量突变的现象。

3 空战环境与奖励设置

3.1 空战环境设置

AC强化学习架构下,agent需要不断与环境交互获得奖励,通过“试错”方式搜索最优策略。

航炮是应用最广泛的空对空武器,随着战斗机性能的不断提升,人们开始寻求更强的火力。即使航炮与瞄准设备在不断更新换代,航炮的空对空射击仍然对飞行员有较高的要求。实际需求与技术的进一步发展促使空对空导弹的出现。现代空战中,战斗机多会在装备航炮的同时携带导弹,由飞行员控制飞机做出机动以获得有利态势。纵观战斗机发展历程,虽然其作战能力在不断提升,但在近距空战中使用的战术机动并未体现出较大的差异性,仍以尾后攻击为主,因此空战环境中敌我双方飞机不同的性能参数设置并不会对强化学习结果产生很大的影响。同时考虑到在实际空战训练时,双方使用的飞机不会具有较大的性能差别,故对敌我飞机设置了相同的性能参数。在空战仿真环境中,机载武器考虑使用空空导弹与机炮的情况。同时为了与真实空战训练场景保持一致,本文主要针对从敌我飞机发现对方到一方构成武器攻击条件的空战机动过程进行训练寻优,不考虑武器发射后的后续规避过程。空战胜负的判据设定主要参考实际空战中BFM(Basic Fighter Maneuvering)课目的设置方法,即一方构成火力控制系统解算下的导弹发射条件或机炮攻击条件,则认为该轮训练已分出胜负。参考空战训练中的相关课目,除上述情况外,若一方被迫撞地,也认为另一方对其完成“撞地击杀”;若发生双机危险接近,则认为双机相撞,双方均“失败”;若一方飞出边界,则认为该方任务失败。

3.2 空战奖励设置

参考空战实际训练中的课目设置方法,并考虑强化学习网络的收敛性,采用事件奖励为主,过程奖励为辅的奖励设置方法。

事件奖励只有在回合结束时才会给出,会受到折扣因子的影响而衰减。本文在奖励设计时选取较大量级的事件奖励值与合理的折扣因子,使智能体仍有足够的动力以结果为导向进行决策。而事件奖励在整个空战过程中是稀疏的,此时无明显的策略梯度来引导agent的演化方向。针对该现象,结合飞行员空战的先验知识合理设置过程奖励,在空战过程中实时给予智能体反馈以引导智能体探索最有可能获胜的方向。首先根据不同空战结果的重要程度,设置以结果为导向的事件奖励。空战中最“完美”的结果为使用导弹击杀敌机,若空战仿真结果为使用导弹击杀敌机,则agent获得奖励+2 000;若使用航炮击杀敌机,则agent获得奖励+1 000;若双方缠斗中,迫使敌方损失高度而最终撞地,则获得奖励+1 000;空战中应尽量避免与敌机相撞,若发生此结果,agent获得奖励-1 000。相对应,若被敌机导弹击杀,agent获得奖励-2 000;若被敌机航炮击杀,agent获得奖励-1 000;被迫损失高度撞地,agent获得奖励

-1 000。

在仿真训练中,由于agent操纵飞机的自由度较大,飞机易出现进入小速度、低高度、超速、超出升限或者脱离初始空域等现象。在实际空战出现该类现象可能会影响飞行安全,故将该类现象统一称为“飞出边界”事件,并给予一定负奖励。发生该事件后将终止本轮空战仿真,重置空战环境,agent得到奖励-300,此处负奖励绝对值较小的原因是防止agent因避免“飞出边界”而限制飞机机动潜能。

综上,空战事件奖励的设置汇总如表1所示。

表1 事件奖励设置Table 1 Reward setting of statements

过程奖励的设置,主要以飞行手册中的“最佳机动点”为依据。实际双机机动对抗中,存在一个相对的位置区域,在该区域内飞机可以用最小的机动过载来保持对敌机的持续跟踪,且容易达成导弹发射条件,该区域的中心即为“最佳机动点”。

使用某型导弹攻击某型飞机时,最佳机动点的坐标计算经验公式为

式中:p为最佳机动点在地面坐标系下的坐标;V为敌方飞机速度矢量;α为最佳攻击距离的比例系数,α∈[0,1]。

过程奖励的设置思路为:当飞机位置与最佳机动点距离较远时,让奖励与该距离负相关,以引导agent以最快方式向最佳机动点接近;当距离较近时,为引导agent减小敌机视线率和导弹离轴角以构成导弹发射条件,此时的奖励要与敌机视线率和导弹离轴角的大小负相关,且距离越小奖励值越大,设置经验过程奖励公式为

式中:d为我方飞机与最佳机动点的欧式距离;R为过程奖励值;φ为我机导弹离轴角;φ为导弹最大离轴角;l为敌机视线率的大小;l为导弹发射架的最大转动速率。

4 神经网络模型搭建

由于总体算法基于Actor-Critic框架,故需要建立两类神经网络模型。参考深度强化学习算法搭建神经网络,如文献[47]中使用DDPG算法在隐藏层较少时设置了300与400个节点,在不同难度的经典强化学习环境中获得了较好的收敛结果,如4维度状态空间的倒立摆环境,18维度状态空间的机械臂环境等。而空战环境更为复杂且状态空间维度更大,同时考虑到通用性与封装性,本文Actor和Critic网络均采用相同规格的隐藏层,均设有两个隐藏层,每个隐藏层均有512个节点,在隐藏层后加入ReLu激活层,用来增强神经网络的非线性映射能力。

其中Actor网络以敌我飞机的总体态势为输入,由于S中的p、p、V、V、a、a均为三维矢量,对于敌我飞机均有方位角与离轴角,故Actor网络的输入维度为22维。Critic网络的输入层维度为状态S维度与动作A维度的叠加,即22+3=25。其隐藏层参数设置与Actor网络基本相同。Critic的输出为状态—动作对的价值评估,输出维度为1维。

本文主要对比DDPG、SAC、TD3三种算法的效果,虽然都基于AC架构,但神经网络的构建仍有区别,SAC将动作分布嵌入神经网络,而DDPG与TD3算法选择在外部添加噪声来实现连续动作的训练。

SAC算法中Actor的输出不是确定性的动作,而是基于高斯分布的动作概率,故其输出为动作的均值与标准差,由于操纵量的设置共有3个维度,故均值与标准差均为3维输出。在均值与标准差输出层后,Actor网络会基于高斯分布抽样选择出动作样本,并由Tanh激活层将动作归一化至[-1,1]区间,与仿真环境进行量纲对齐,Actor网络结构如图6所示。

图6 SAC算法Actor网络结构Fig.6 Structure of actor neural network in SAC

为对比不同算法的效果,DDPG算法与TD3的Actor网络架构与SAC基本相同,但输出为确定性动作,经Tanh激活层将动作归一化至[-1,1]区间,在神经网络框架外引入高斯噪声,再经过范围限制输出动作,其Actor网络结构如图7所示。

图7 DDPG、TD3算法Actor网络结构Fig.7 Structure of actor neural network in DDPG and TD3

三种算法Critic网络作用都为输出价值评估值,采用相同的Critic网络架构,如图8所示。

图8 Critic网络结构Fig.8 Structure of Critic neural network

5 结果与讨论

空战场景的设置,借鉴空战训练中的“热身练习”课目。空战训练中,在开始正式对抗课目之前,飞行员通常会进行1~2轮的热身练习,用以熟悉空战技术和适应空战节奏。本文研究以验证思路可行性为主,故借鉴空战中的热身训练课目设置空战场景。空战训练中常见的热身方式为,扮演敌方的飞机进行过载转弯,我方分别从劣势、均势、优势的起始态势下,对敌方飞机进行机动、跟踪、锁定、射击等操纵。

为提高决策算法的泛化能力,以更加适应实际空战中的复杂态势,设置高不确定度的空战场景以验证决策算法的有效性,具体设置如下。

敌方由蓝色飞机代表,轨迹为虚线,初始水平坐标为(0,0),起始高度为3 000 m,起始速度为138~305 m/s,起始航向从0~360°随机选取,0~60°随机选取滚转角做向左或向右等速水平盘旋机动;我方由红色飞机代表,轨迹为实线,起始水平坐标为(5 000,5 000),起始高度从2 500~3 500 m随机选取,即我方初始高度优势随机设置,起始速度为208 m/s,与敌机速度相比我方初始速度优势随机设置,起始航向从0~360°随机选取,即我方初始角度优势随机设置。

在我方起始高度优势、速度优势和角度优势都具有高不确定度的空战场景下训练,各算法训练过程中学习曲线如图9所示,可以看出:各算法在本文设置环境下都有不错的收敛性,在AMD Ryzen 7 5800H with Radeon Graphics 3.20 GHz处理器及NVIDIA GeForce RTX 3060 Laptop GPU环境下训练,由于不同算法以及代码的差异性,训练时间有所差别,但2~3 h都可以达到收敛水平;DDPG与SAC算法收敛性差别较小,TD3由于使用了延迟更新与双网络学习稍显缓慢但最终也能趋于最优值。

图9 学习曲线对比Fig.9 Learning curves contrast

在此高不确定度空战场景中对不同算法训练完成模型进行测试,统计结果如表2所示,可以看出:agent可以在多种算法下适应随机度的空战仿真环境,并且在大多数态势下做出最优决策,完成对敌击杀。

表2 空战测试结果Table 2 Results of air combat test

其中TD3算法由于延迟更新与双网络架构学习较慢,但在更多的更新回合下也能达到很好的效果;DDPG与SAC算法整体差异不大,可以看出由于SAC算法选择将动作的不确定性嵌入神经网络,使得在测试时会有少许扰动让我方飞机飞出边界。

由于环境中机炮击杀范围比导弹击杀范围小,机炮击杀比导弹击杀要求更为严苛,agent学习结果体现出使用导弹对敌击杀。

在初始条件为敌机随机位置、随机速度、随机滚转角做转弯机动时,agent可以做出半滚倒转、低速Yo-Yo等实际飞行中飞行员常做的飞行动作。

敌机转弯空战动态如图10所示。图10(a)中,我方飞机高度占优势,飞行方向与敌机基本平行,且敌机在我机后方,角度占劣势的前提下,agent操纵我方飞机滚转180°后保持较高过载,迅速下翻转,做了类似半滚倒转的机动动作,将机头指向敌机,完成导弹击杀。图10(b)中,我方飞机高度与敌机相近,飞行方向与敌机基本平行,且我机在敌机后方,角度占优势,但与敌机距离较远,无法构成导弹发射条件的前提下,agent操纵飞机向下俯冲增速,而后拉起机头指向敌机,通过类似低速Yo-Yo的机动动作,缩短双机距离,完成导弹击杀。

图10 敌机转弯空战动态Fig.10 Dynamic of air combat in enemy aircraft turn

为进一步说明空战环境与动作设置的合理性,除前文所述的敌方做随机水平盘旋机动外,还测试在不同场景下agent的表现,如双机迎面相遇、追击、爬升、防御等机动,如图11~图13所示。

图11 迎面空战动态Fig.11 Dynamic of air combat in head-on

图13 攻防转换Fig.13 Attack and defense conversion

从图11可以看出:我机以大过载小转弯半径完成领先转弯将机头指向敌机完成击杀。

从图12可以看出:设置敌机在平飞一段距离后拉起,我机可以保持跟随敌机并用导弹完成击杀。

图12 爬升空战动态Fig.12 Dynamic of air combat in climb

从图13可以看出:agent通过侧向拉起,直至敌机冲到我机前方后俯冲将机头指向敌机完成击杀。

6 结论

(1)基于AC强化学习架构,能够实现基于连续动作空间的空战机动决策,克服传统方法的“无限维度”问题,使空战基于连续动作的远视最优决策得以在较短时间内求解。

(2)利用动态归一化方法,可以解决因飞机状态变化导致的动作空间不整齐问题,且可以降低执行成套机动动作的难度,有利于agent的训练学习。

(3)通过高不确定度的空战仿真验证,训练完成的agent可以在复杂空战态势下对飞行目标保持较高的击杀率;且agent在特定态势下可以做出实际空战中的常用机动动作,其机动方案具有较高的合理性。

本文通过高不确定性的空战场景设置与多种强化学习算法验证了在此环境下实现连续动作空战决策的合理性与可行性,但可以看到智能体所学习出的机动动作仍较为有限。为了与实际空战环境更为贴近,下一步的工作将主要针对多智能体自博弈方法展开研究,这将是未来智能空战的发展方向。

猜你喜欢
空战敌机机动
1937年笕桥空战战果之谜
What Are the Different Types of Robots?
敌机不可怕 让民工吃饱更重要
未来空战怎么打
机动三轮车的昨天、今天和明天
海军航母编队启航执行机动训练任务
第三帝国的兴亡之六 大不列颠空战(下)
单兵扛导弹
敌机不支,腾空逃去
偷架敌机开回家