使用神经网络的末制导方法[1]
神经网络算法的研究与应用

神经网络算法的研究与应用近年来,随着计算机技术的快速发展和数据量的不断增加,人工智能成为了研究的热点之一。
神经网络算法是人工智能领域里的一种重要算法,已经被广泛应用于语音识别、图像识别、自然语言处理等领域。
本文将从神经网络算法的基本原理、发展历程以及应用情况等方面来进行探讨。
一、神经网络算法的基本原理神经网络算法是一种通过模拟人类大脑神经元之间的相互作用来进行学习和预测的非线性模型。
在神经网络中,每个神经元都会接收来自其它神经元的输入,并经过一定的权重和非线性函数进行处理,然后把处理结果传递给下一个神经元。
神经网络可以通过多个层次来构建,其中每层的神经元数量和连接方式都可以进行调整。
神经网络算法的核心就是反向传播算法,它是一种用来调节神经网络权值的方法,在进行训练时能够不断优化预测结果。
具体来说,反向传播算法主要包括正向计算和误差反向传播两个步骤。
在正向计算中,神经网络按照输入和权值进行计算,并输出预测结果;在误差反向传播中,算法通过计算输出结果与真实结果之间的误差,来调整权值以达到更加准确的预测结果。
二、神经网络算法的发展历程神经网络算法早期的发展可以追溯到20世纪50年代,最早的神经元模型是由心理学家McCulloch和数学家Pitts提出的“McCulloch-Pitts”模型。
该模型可以对输入进行数字化的编码处理,进而实现数字逻辑的计算。
然而,在应用上却具有很大的局限性,无法实现更加复杂的学习和推理。
进入20世纪80年代,神经网络开始接受更加深入的研究。
在这个阶段,科学家们提出了“误差反向传播”算法,并逐渐发展出多层前馈网络和递归神经网络等更加复杂的神经网络模型。
在90年代,随着计算机技术的进一步提升,神经网络算法得以广泛应用于语音识别、图像处理和自然语言处理等领域,并且取得了许多成果。
近年来,随着深度学习技术的出现和不断发展,神经网络算法呈现出了一种全新的面貌,并且在人工智能领域发挥着越来越大的作用。
神经网络的基本原理

神经网络的基本原理
神经网络的基本原理是基于生物神经系统的工作原理进行设计的一种人工智能算法。
它由一个由大量人工神经元(或“节点”)组成的网络,这些神经元通过“连接”进行信息传递和处理。
在神经网络中,每个神经元接收来自其他神经元的输入,并根据这些输入进行处理后产生一个输出。
每个连接都有一个权重,用于调节输入信号对神经元输出的贡献。
神经网络的目标是通过调整权重来最小化输出与实际值之间的误差。
神经网络通常由多个层组成,包括输入层、隐藏层和输出层。
输入层接收外部输入,比如图像、文本等,然后将输入传递到隐藏层。
隐藏层中的神经元通过计算并传递信号,最后输出层将得出最终结果。
神经网络在训练过程中使用反向传播算法。
该算法通过计算误差,并将误差从输出层向后传播到隐藏层和输入层,以调整网络中的权重。
通过多次迭代训练,神经网络可以提高自己的准确性和性能。
使用神经网络可以解决各种问题,如图像识别、语音识别、自然语言处理等。
它具有自学习和适应能力,能够从大量的训练数据中学习模式和特征,并应用于新的数据中进行预测和分类。
总结来说,神经网络是一种模拟生物神经系统的人工智能算法。
通过调整权重和使用反向传播算法,神经网络可以从训练数据
中学习并提高自身的性能。
它在图像、语音、文本等领域有广泛的应用。
BP算法程序实现

BP算法程序实现BP(Back Propagation)神经网络是一种常见的人工神经网络模型,是一种监督学习算法。
在BP算法中,神经网络的参数通过反向传播的方式得到更新,以最小化损失函数。
BP神经网络的实现主要分为前向传播和反向传播两个步骤。
首先,我们需要定义BP神经网络的结构。
一个典型的BP神经网络包括输入层、隐藏层和输出层。
输入层接收原始数据,隐藏层进行特征提取和转换,输出层进行最终的预测。
在实现BP神经网络时,我们首先需要进行初始化。
初始化可以为神经网络的权重和偏置添加一些随机的初始值。
这里我们使用numpy库来处理矩阵运算。
前向传播的过程实际上就是将输入数据通过神经网络的每一层,直到输出层。
在每一层中,我们将对应权重和输入数据进行点乘运算,并加上偏置项,然后通过一个激活函数进行非线性转换。
这里我们可以选择sigmoid函数作为激活函数。
在反向传播中,我们根据损失函数对权重和偏置进行调整。
首先,我们计算输出误差,即预测值与真实值之间的差异。
然后,我们根据链式法则来计算每一层的误差,并将误差传递回前一层。
根据误差和激活函数的导数,我们可以计算每个权重和偏置的更新量,然后使用梯度下降法对权重和偏置进行更新。
实现BP算法的程序如下:```pythonimport numpy as npclass NeuralNetwork:def __init__(self, layers):yers = layersself.weights = [np.random.randn(y, x) for x, y inzip(layers[:-1], layers[1:])]self.biases = [np.random.randn(y, 1) for y in layers[1:]] def forward(self, x):a = np.array(x).reshape(-1, 1)for w, b in zip(self.weights, self.biases):z = np.dot(w, a) + ba = self.sigmoid(z)return adef backward(self, x, y, lr=0.01):a = np.array(x).reshape(-1, 1)targets = np.array(y).reshape(-1, 1)# forward passactivations = [a]zs = []for w, b in zip(self.weights, self.biases):z = np.dot(w, a) + bzs.append(z)a = self.sigmoid(z)activations.append(a)# backward passdeltas = [self.loss_derivative(activations[-1], targets) * self.sigmoid_derivative(zs[-1])]for l in range(2, len(yers)):z = zs[-l]sp = self.sigmoid_derivative(z)deltas.append(np.dot(self.weights[-l + 1].T, deltas[-1]) * sp)deltas.reverse# update weights and biasesfor l in range(len(yers) - 1):self.weights[l] += -lr * np.dot(deltas[l], activations[l].T) self.biases[l] += -lr * deltas[l]def sigmoid(x):return 1 / (1 + np.exp(-x))def sigmoid_derivative(x):return NeuralNetwork.sigmoid(x) * (1 -NeuralNetwork.sigmoid(x))def loss_derivative(y_pred, y_true):return y_pred - y_true```上述代码中,首先我们定义一个NeuralNetwork类,包含两个主要方法:forward(和backward(。
bp算法公式

bp算法公式
BP算法是一种常用的人工神经网络训练算法。
其全称为“反向传播算法”,其基本思想是利用链式求导法则,通过计算输出误差对每个权重的偏导数来更新网络中各层之间的连接权重,从而不断调整网络参数直到达到预定的训练目标。
BP算法的公式如下:
1. 前向传播
对于输入样本x,在神经网络中进行前向传播,计算出每个神经元的输出值,并将这些值作为输入传递到下一层神经元中,直至输出层。
2. 计算误差项
对于输出层每个神经元j,计算其误差项δj = yj - tj,其中yj为神经元j的输出值,tj为样本对应的真实标签值。
3. 反向传播
从输出层开始,计算每个神经元的误差项,然后根据误差项计算每个权重的偏导数,最后根据偏导数调整权重。
对于隐藏层每个神经元h,其误差项δh可由以下公式计算:
δh = f"(netH) * Σ(δj * wjh)
其中f"为h的激活函数的导数,netH表示神经元h的净输入,wjh为从神经元h到神经元j的权重,Σ表示对输出层每个神经元j 求和。
对于连接h->j的权重wjh,其偏导数可以使用以下公式计算: E/wjh = δj * ah
其中ah为连接h->j的输入值。
4. 更新权重
根据计算出来的各个权重的偏导数,利用梯度下降法更新权重。
具体地,对于权重wjh,更新方式为:
wjh = wjh - η * E/wjh
其中η为学习率,即权重的调整步长。
如何处理神经网络中的输入数据缺失问题

如何处理神经网络中的输入数据缺失问题神经网络作为一种强大的机器学习工具,在各个领域都取得了巨大的成功。
然而,在实际应用中,我们常常会遇到输入数据缺失的问题。
这种情况下,我们需要采取一些方法来处理缺失数据,以保证神经网络的准确性和稳定性。
首先,我们需要了解缺失数据的类型。
数据缺失可以分为完全缺失和部分缺失两种情况。
完全缺失是指某个样本的所有特征都缺失,而部分缺失是指某个样本的一部分特征缺失。
对于完全缺失的样本,我们可以选择直接删除或者进行插补处理。
而对于部分缺失的样本,我们需要采取一些更加复杂的方法来处理。
对于完全缺失的样本,直接删除是最简单的方法。
通过删除这些样本,我们可以确保训练集的完整性,但同时也会导致数据的丢失。
因此,在使用这种方法时,我们需要权衡数据的重要性和可用性。
插补是处理完全缺失数据的另一种方法。
插补的目的是通过已有的数据来预测缺失数据的值。
常用的插补方法包括均值插补、中位数插补和回归插补等。
均值插补是指用特征的平均值来替代缺失值,适用于连续型数据。
中位数插补是指用特征的中位数来替代缺失值,适用于有偏数据。
回归插补是指通过建立回归模型来预测缺失值,适用于特征之间存在相关性的情况。
对于部分缺失的样本,处理起来更加复杂。
一种常用的方法是多重插补。
多重插补的思想是通过多次插补生成多个完整的数据集,然后分别进行训练和预测,最后取平均值或者投票来得到最终结果。
多重插补的优点是能够充分利用已有的信息,提高数据的利用率。
然而,多重插补的计算量较大,需要进行多次插补和训练,因此在实际应用中需要权衡计算资源和模型性能。
除了插补方法,还有一些其他的处理缺失数据的方法。
比如,可以使用特征选择方法来选择具有较少缺失值的特征,然后再进行插补。
另外,还可以使用深度学习模型来自动学习特征之间的关系,从而预测缺失值。
这些方法在一定程度上可以提高模型的准确性和鲁棒性。
在处理缺失数据时,我们还需要注意一些问题。
首先,需要确保插补方法不会引入额外的偏差或方差。
神经网络优化方法

神经网络优化方法神经网络优化方法是改进神经网络的训练过程,以提高其性能和准确性。
在神经网络中,优化方法的目标是寻找最优的权重和偏置,以最小化损失函数。
以下是几种常见的神经网络优化方法:1. 梯度下降法(Gradient Descent):梯度下降法是一种常见且简单的优化方法,它通过求解损失函数对权重和偏置的梯度来更新参数。
根据梯度的方向和大小,将参数沿着负梯度方向进行迭代调整,直至找到最优解。
2. 批量梯度下降法(Batch Gradient Descent):批量梯度下降法是梯度下降法的一种改进方法。
它与梯度下降法的区别在于,批量梯度下降法在每次迭代时使用全部训练样本来计算梯度。
由于计算量较大,因此对于大数据集,批量梯度下降法的训练速度相对较慢。
3. 随机梯度下降法(Stochastic Gradient Descent):随机梯度下降法是梯度下降法的另一种改进方法。
与批量梯度下降法不同的是,随机梯度下降法在每次迭代时只使用一个样本来计算梯度。
这种方法可以加快训练速度,但也可能使收敛过程变得不稳定。
4. 小批量梯度下降法(Mini-batch Gradient Descent):小批量梯度下降法是批量梯度下降法和随机梯度下降法的折中方法。
它在每次迭代时,使用一小部分(通常是2-100个)样本来计算梯度。
这种方法可以加快训练速度,并且具有较好的收敛性。
5. 动量法(Momentum):动量法是一种在梯度下降法的基础上引入动量项的优化方法。
动量法通过累积之前的梯度信息,并将其作为下一次迭代的方向进行调整。
这样可以在参数更新过程中减少震荡,提高收敛速度。
6. 学习率衰减(Learning Rate Decay):学习率衰减是一种动态调整学习率的方法。
在训练的早期,使用较大的学习率可以快速逼近全局最优解,而在训练的后期,使用较小的学习率可以细致调整参数,提高性能。
7. 自适应学习率方法(Adaptive Learning Rate):自适应学习率方法是根据梯度的变化自动调整学习率的方法。
神经网络算法的代码实现详解

神经网络算法的代码实现详解神经网络算法是一种模拟人脑神经系统的计算模型,它通过构建多层神经元网络来实现对数据的学习与预测。
本文将对神经网络算法的代码实现进行详细解析,通过Python语言实现。
1.数据准备首先,我们需要准备训练数据和测试数据。
训练数据是用来训练神经网络的样本,通常包含一组输入数据和对应的输出数据。
测试数据则是用来测试训练后的神经网络模型的准确性。
2.构建神经网络结构接下来,我们需要构建神经网络的结构。
神经网络通常由多层神经元组成,每层神经元与上一层的神经元全连接。
我们可以使用Python的Numpy库来创建神经网络的结构,其中的矩阵运算能够高效地实现神经网络算法。
3.定义激活函数神经网络中,每个神经元都需要一个激活函数来对输入数据进行处理,并输出非线性的结果。
常用的激活函数有sigmoid函数、ReLU 函数等。
我们可以在构建神经网络结构时定义激活函数。
4.前向传播前向传播是指从输入层开始,逐层计算神经元的输出,直到输出层为止。
这一过程可以通过矩阵运算实现,其中每一层的输出都是上一层输出与权重矩阵的乘积再经过激活函数处理得到。
最终,输出层的输出即为神经网络的预测结果。
5.反向传播反向传播是指根据预测结果,逐层更新权重矩阵,以使得预测结果与实际结果尽可能接近。
反向传播算法通过计算误差项,逆向更新权重矩阵。
误差项的计算根据损失函数的不同而有所差异,常用的损失函数有均方误差、交叉熵等。
6.更新权重矩阵根据反向传播算法计算得到的误差项,我们可以更新每一层的权重矩阵。
更新的方法一般是使用梯度下降算法,通过计算每个权重的梯度值以及学习率,来逐步调整权重的取值。
7.训练神经网络模型在完成以上步骤后,我们可以开始训练神经网络模型。
训练过程即是重复进行前向传播和反向传播,以不断更新权重矩阵。
通过多次迭代,使得神经网络模型的预测结果逼近真实结果。
8.测试神经网络模型在训练完成后,我们需要使用测试数据对神经网络模型进行测试,以评估其性能。
神经网络算法原理

神经网络算法原理神经网络算法是一种模拟人脑神经元网络的计算模型,它可以用来识别模式、分类数据、进行预测等。
神经网络算法的原理主要包括神经元、权重、激活函数和反向传播等几个方面。
首先,神经元是神经网络的基本单元,它接收输入信号并产生输出。
神经元的输入经过加权求和后,通过激活函数进行非线性变换,最终输出到下一层神经元。
神经网络中的每个神经元都有一个权重,它决定了输入信号的重要性,通过不断调整权重,神经网络可以学习到输入和输出之间的映射关系。
其次,激活函数是神经元的输出函数,它将加权求和的结果映射到一个非线性的范围内。
常用的激活函数包括Sigmoid函数、ReLU函数、Tanh函数等,它们能够引入非线性因素,提高神经网络的表达能力。
另外,反向传播是神经网络学习的关键算法,它通过计算损失函数对权重的偏导数,然后利用梯度下降的方法不断调整权重,使得损失函数最小化。
通过反向传播算法,神经网络可以不断地优化权重,提高模型的准确性和泛化能力。
总的来说,神经网络算法原理包括神经元、权重、激活函数和反向传播等几个方面,它们共同作用于神经网络的学习和预测过程中。
神经网络算法通过不断地调整权重和优化模型参数,能够逐渐学习到输入和输出之间的映射关系,实现对复杂数据的分类和预测。
在实际应用中,神经网络算法已经被广泛应用于图像识别、语音识别、自然语言处理等领域,取得了许多成功的案例。
随着计算机硬件的不断进步和神经网络算法的不断优化,相信神经网络算法将在未来发挥越来越重要的作用,为人工智能的发展提供强大的支持。
总的来说,神经网络算法原理是一种模拟人脑神经元网络的计算模型,它通过神经元、权重、激活函数和反向传播等几个方面的原理,实现对复杂数据的分类和预测。
神经网络算法已经在许多领域取得了成功的应用,并且在人工智能发展中发挥着越来越重要的作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第16卷 第4期 1998年12月飞 行 力 学F LI GHT D YN A M ICS V o l.16 N o.4Dec.1998 1998-09-10收到初稿,1998-10-12收到修改稿。
使用神经网络的末制导方法郦苏丹 吴瑞林(国防科技大学,长沙,410073) 摘 要 选择具有常值加速度的目标作为一个简化但有代表性的目标模型,以拦截弹的 v 最小为性能指标,得到了一定初始拦截距离下的训练数据,并使用BP 算法对神经网络进行了训练。
在有目标机动加速度估计误差的情况下,将神经网络制导获得的拦截精度和变轨机动速度增量同用扩展比例导引得到的结果进行了比较。
结果表明,神经网络导引法能够保证对目标的拦截精度,具有很强的适应性。
关键词 神经网络 拦截 制导引言对付非机动目标,传统的比例导引法就可以获得良好的效果,但是实际上目标都具有一定的机动能力,这时须采用扩展比例导引,引入目标加速度补偿项进行修正。
如果目标加速度获取无误差的话,扩展比例导引的效果也很好。
由于实际目标可以观测的状态是位置和速度,加速度只有通过对观测信息处理获取,获得的目标的速度和位置信息具有误差,从中导出的加速度误差将不可避免,在这种条件下扩展比例导引的效果将受到影响。
由于神经网络在解决非线性问题中有着巨大潜力,本文选择三层前馈网络作为网络模型,将其应用于拦截弹的末制导控制中。
1 神经网络模型神经元模型一般由输入、输出加权和;线性动态系统;非线性函数三部分构成。
改图1 神经网络模型变神经元的特性和神经元之间的连接关系,可以构造出不同的神经网络模型[1,2]。
多层前馈网络(m ulti -layerfeedforw ard netw orks,M LF)是控制系统中经常使用的一种网络,它由一个输入层、一个输出层、一个或多个隐含层构成。
研究中使用的是一个三层前馈网络,如图1所示。
图1中,R 0为初始交战距离;为视线转率;a ic 为拦截弹控制加速度。
神经元函数取为:f (u )=1-ex p(-2u )1+ex p(-2u )(1) 神经网络的训练采用反向传播算法(back-propag ation,BP)完成。
BP 算法由正向和反向传播组成,正向传播由输入层至输出层逐层处理,并传向输出层,若在输出层得不到期望值,则转向反向传播,将误差沿原来的连接通路返回。
通过修正各层神经元的连接权值,使输出误差减小。
定义误差函数为:r =12 j(y j -y *j )2(2)式中,y *j 为输出单元的期望输出;y j 为实际的输出。
神经网络权值修正为:W (k )ij ∝- r W (k )ij (3)式中,W (k )ij 为第k -1层j 单元到k 层i 单元的连接权。
从理论上讲,多层前馈网络能够逼近任意的存在有限间断点的分段连续函数,因此可以用神经网络近似实际的非线性系统模型。
2 神经网络的制导律下面提出一个反映一定实际背景,但做了一些简化的拦截问题(见图2),研究如何图2 拦截交战图通过神经网络实现拦截。
如图2所示,交战实例选取导弹目标的再入速度v t为3200m/s,其初始速度前置角 为4°,拦截弹的速度v d 为2000m /s,开始时刻对准目标,初始视线角 为40°。
目标在垂直速度方向上有一大小为7g 的恒定加速度a t 作为机动加速度。
假设地球不旋转,以拦截弹发射点为原点,当地水平方向为x 方向建立发射坐标系,可导出发射坐标系中的交战动力学方程为:x t =v tx , y t =v ty v tx =a tx , v ty =a tyx d =v dx , y d =v d y v dx =a icx , v dy =a icy (4)式中,x t ,y t ,v tx ,v ty ,x d ,y d ,v dx ,v dy 分别为目标和拦截弹在x ,y 方向上的位置、速度分量。
采用扩展比例导引[3],则有:a ic =N v r+(N /2)a tn v r =(v t -v d )r / r=(r / r )×(v t -v d )/ r r =(x t -x d )e x +(y t -y d )e y(5)式中,N 为导航比,取值在2~6之间;v r 为拦截弹与目标的相对速度在视线方向的分量;93 第4期郦苏丹等.使用神经网络的末制导方法a tn 为目标加速度在垂直视线方向的分量;a ic 为拦截弹的控制加速度在垂直视线方向的投影;r 为拦截弹与目标的相对距离。
研究的神经网络导引是使性能指标 v 最小控制的逼近:J = v =∫tf t 0a ic d t (6)由于拦截弹性能限制,具有控制约束:-a ic max ≤a ic ≤a ic max ,无法得到控制的解析形式,需要通过数值方法求解。
v 最小实际上是一个最省燃料问题[4],理论上控制应该取在约束的边界上,只需要求出控制的切换点。
可从这得到启发,在工程上得到接近最优的控制。
用使 v 最小的次优弹道数据来训练神经网络,可以得到在一定条件下适用的神经网络导引律。
由于开始时刻视线转率为正,拦截弹加速度控制也应为正,又由于最省燃料问题中的控制应在控制的边界[4],因而开始时a ic =a ic max ,并持续一段时间间隔。
然后再用扩展比例导引进行控制,通过调整间隔的大小,可以获得脱靶量和 v 都较小的控制。
假设初始交战时刻的视线角是固定的,仅考虑不同初始交战距离下的情况。
输入量可以是视线转率、接近速度、目标机动加速度等的组合。
输入太多会使网络复杂且影响训练速度,因而考虑主要因素,通过试验分析采用R 0,作为训练的输入量,拦截弹的控制加速度a ic 作为输出,中间层设六个神经元[5],所得到的网络模型如图1所示。
由于神经元所采用的非线性函数在输入大于2以后就对输入不敏感了,因此训练前先要对训练数据进行比例放缩,以R 0/100,100 ,a ic /10作为实际训练时的输入输出量,使神经元的非线性函数能在较大范围内发挥作用。
为了使神经网络训练的误差较小,收敛较快,先使用遗传算法[6]结合BP 算法来确定网络的初始权值,然后使用M AT LA B 软件神经网络工具箱中的T rainBPx 指令对网络进行训练,对于隐含层该指令用T ANSIG ,对于输出层该指令用PU RELIN [7]。
在所设的交战条件下,可得到 v 最小的多条训练弹道,为了使神经网络能够在较大范围内逼近控制系统,选择40,70,95km 三种条件下的弹道数据,来训练网络。
训练最后确定输入层与隐含层及隐含层与输出层的权值为: W 1=-0.9250-9.6652-2.8920 4.2280 3.4530- 3.9098 3.0039 9.4388 1.1393- 4.1407-1.5167 2.6153, B 1=-6.7930 6.7237-6.2246 0.5867 6.2884 2.6153 W 2=[1.6525 -6.6551 -1.8803 0.6272 7.0819 -3.0957] B 2=[0.0217]3 神经网络导引与扩展比例导引分析比较分别用 v 最小的神经网络导引(NNG )和扩展比例导引(APN )对拦截问题进行数字仿真。
因为NNG 的训练是针对7g 的目标机动加速度的,所以APN 也用7g 作为目94飞 行 力 学第16卷标机动加速度的估计。
为了考虑两种方法的适应性,在给目标加速度估计加上一定误差情况下对两种导引方法进行比较,假设目标的机动加速度为7g ,估计误差比7g 大30%和45%。
这样可以得到每种情况下两种导引法的脱靶量(R mis )对初始交战距离的变化曲线,如图3所示。
图3中,实线、虚线、点划线分别对应于无加速度误差、30%加速度误差、45%加速度误差时的情况。
图3 A P N 和N NG 脱靶量与初始交战距离的关系从图3中可以看出,当初始交战距离R 0<30km 时,拦截弹的控制加速度达到饱和,两种方法的脱靶量都很大。
但当目标的实际加速度大于估计加速度时,NNG 和APN 在脱靶量上有很大差异。
当实际加速度比估计大30%时,R 0>80km 后,APN 就会产生不可接受的脱靶量,而NNG 仍可获得零脱靶量;当实际加速度比估计大45%时,APN 在整个初始交战距离范围内都会产生不可接受的脱靶量,而NNG 在60km <R 0<100km 时可获得零脱靶量,只当R 0>100km 以后脱靶量会显著增加。
这个结果表明:在特定的交战环境中,使 v 最小的NNG 导引比APN 对目标加速度的估计误差有更大的适应力。
图4 拦截弹 v 与R 0的关系 APN (实线)和NNG (虚线)两种导引律所引起的图5 拦截弹的加速度变化曲线拦截弹速度增量情况如图4所示。
图4中,曲线1,2,3分别代表无加速度误差、30%加速度误差和45%加速度误差时的情况。
由图4可以发现在任何一种情况下,NNG 所获得的速度增量都比APN 要小,且初始交战距离越长,节省的速度增量越大,尽管一些情况下APN 巨大的脱靶量已使比较速度增量变的没有意义。
减小速度增量意味着可以减少拦截弹的燃料质量,可以使拦截器小型化,并可以增大它的机动能力。
选择R 0=90km,目标机动估计误差为30%的情况,比较APN 和N NG 的加速度曲线(图5)可以发现:APN 最后加速度达到饱和,而NNG 最后可以使拦截器的轨控加速度在容许范围内,这导致二者脱靶量产生巨大差异。
实际上扩展比例导引的导航比N 对于不同的初始交战情况应取不同的值,一个固定的导航比不会对所有交战情况适合。
输入NNG 的变量也是视线转率,不同的是NNG 用的是时变的导航比以使 v 最小。
95 第4期郦苏丹等.使用神经网络的末制导方法96飞 行 力 学第16卷虽然上述NNG是以初始视线角为40°,目标初始速度前置角为4°情况下的拦截弹道数据训练得到,当改变初始视线角或目标初始速度前置角时,NNG仍具有较好的表现,在有加速度误差的情况下脱靶量较小,尤其对初始视线角不敏感,其在60°以下拦截效果都很好。
4 结束语通过对NNG和APN效果的比较,说明在有目标机动加速度估计误差的情况下,神经网络的容错性将发挥巨大优势,以保证对目标的拦截精度,神经网络导引法具有更大的适应性,并能有效地节省燃料,减轻拦截器的质量。
前述的网络训练是离线训练,对于特定的目标,将网络权值事先装订好,可以加入在线自学习方法,但是拦截过程较短,可能不会产生明显效果。
还应进一步深入研究,建立用于三维空间拦截的神经模型,使它具有实用性。
其中训练数据的产生、网络模型的构造及学习方法是重要研究方面。