【翻译】战术与战略导弹制导导论-第7章-寻的回路中的数字衰减记忆噪声滤波器

第7章 寻的回路中的数字衰减记忆噪声滤波器

引言

到目前为止,在我们的分析中,我们假设几何视线角速率可用于制导目的。实际上,导引头对视线角的测量受到了噪声的污染。因此,为了推导出比例导引律所需的视线角速率估计值,必须在弹载制导系统中使用数字噪声滤波器。虽然我们将在第 9 章研究最优数字噪声滤波器,但我们将首先考虑简单的常增益滤波器,即衰减记忆滤波器,以推导视线角速率估计值。我们将通过示例研究数字衰减记忆滤波器的一些特性及其对系统性能的影响。衰减记忆滤波器将作为更高级数字滤波器(即卡尔曼滤波器)的基础。

衰减记忆滤波器 [1]

一种简单的数字噪声滤波器被称为衰减记忆滤波器。该滤波器是递归的,并且对新测量的权重高于旧测量。表 7.1 以递归形式列出了如一阶、二阶和三阶衰减记忆滤波器及其增益。从表中我们可以看出,滤波器估计值本质上是旧估计值加上增益乘以残差(当前测量值与先前估计值之差)。表 7.1 还显示,衰减记忆滤波器的增益是常数,并且仅是一个参数 β\betaβ 的函数。该参数与滤波器的记忆长度有关,是 0 到 1 之间的常数。增加 β\betaβ 往往会降低滤波器的带宽,并使滤波器能够"记住"更多关于先前测量的信息。

从表 7.1 中我们可以看出,衰减记忆滤波器假设实际过程为多项式模型。如果滤波器的多项式过程

表 7.1: 不同阶数的数字衰减记忆滤波器

滤波器 增益
x^n=x^n−1+G[xn−1−x^n−1]\hat{x}n = \hat{x}{n-1} + G[x_{n-1} - \hat{x}_{n-1}]x^n=x^n−1+G[xn−1−x^n−1] G=1−βG = 1 - \betaG=1−β
x^n=x^n−1+x^˙n−1Ts+G[xn−1−(x^n−1+x^˙n−1Ts)]\hat{x}n = \hat{x}{n-1} + \dot{\hat{x}}{n-1}T_s + G[x{n-1} - (\hat{x}{n-1} + \dot{\hat{x}}{n-1}T_s)]x^n=x^n−1+x^˙n−1Ts+G[xn−1−(x^n−1+x^˙n−1Ts)] G=1−β2G = 1 - \beta^2G=1−β2
x^˙n=x^˙n−1+H/Ts[xn−1−(x^n−1+x^˙n−1Ts)]\dot{\hat{x}}n = \dot{\hat{x}}{n-1} + H/T_s [x_{n-1} - (\hat{x}{n-1} + \dot{\hat{x}}{n-1}T_s)]x^˙n=x^˙n−1+H/Ts[xn−1−(x^n−1+x^˙n−1Ts)] H=(1−β)2H = (1 - \beta)^2H=(1−β)2
x^n=x^n−1+x^˙n−1Ts+0.5x^¨n−1Ts2+G[xn−1−(x^n−1+x^˙n−1Ts+0.5x^¨n−1Ts2)]\hat{x}n = \hat{x}{n-1} + \dot{\hat{x}}{n-1}T_s + 0.5\ddot{\hat{x}}{n-1}T_s^2 + G[x_{n-1} - (\hat{x}{n-1} + \dot{\hat{x}}{n-1}T_s + 0.5\ddot{\hat{x}}_{n-1}T_s^2)]x^n=x^n−1+x^˙n−1Ts+0.5x^¨n−1Ts2+G[xn−1−(x^n−1+x^˙n−1Ts+0.5x^¨n−1Ts2)] G=1−β3G = 1 - \beta^3G=1−β3
x^˙n=x^˙n−1+x^¨n−1Ts+H/Ts[xn−1−(x^n−1+x^˙n−1Ts+0.5x^¨n−1Ts2)]\dot{\hat{x}}n = \dot{\hat{x}}{n-1} + \ddot{\hat{x}}{n-1}T_s + H/T_s [x{n-1} - (\hat{x}{n-1} + \dot{\hat{x}}{n-1}T_s + 0.5\ddot{\hat{x}}_{n-1}T_s^2)]x^˙n=x^˙n−1+x^¨n−1Ts+H/Ts[xn−1−(x^n−1+x^˙n−1Ts+0.5x^¨n−1Ts2)] H=1.5(1−β)2(1+β)H = 1.5(1 - \beta)^2(1 + \beta)H=1.5(1−β)2(1+β)
x^¨n=x^¨n−1+2K/Ts2[xn−1−(x^n−1+x^˙n−1Ts+0.5x^¨n−1Ts2)]\ddot{\hat{x}}n = \ddot{\hat{x}}{n-1} + 2K/T_s^2 [x_{n-1} - (\hat{x}{n-1} + \dot{\hat{x}}{n-1}T_s + 0.5\ddot{\hat{x}}_{n-1}T_s^2)]x^¨n=x^¨n−1+2K/Ts2[xn−1−(x^n−1+x^˙n−1Ts+0.5x^¨n−1Ts2)] K=0.5(1−β)3K = 0.5(1 - \beta)^3K=0.5(1−β)3

低估了实际过程的多项式次数,那么就会出现滤波器截断误差。最低阶滤波器在从信号中去除噪声方面做得最好;然而,它也最有可能产生最大的截断误差。滤波器设计者必须选择合适的滤波器阶数,以在降低滤波器方差与防止截断误差累积之间进行权衡。衰减记忆滤波器在雷达跟踪应用中非常流行 [2, 3],正如我们将看到的,它也可以用于战术导弹寻的应用。

寻的回路中的衰减记忆滤波器

图 7.1 展示了一个二阶衰减记忆滤波器如何包含在寻的回路中的示例。在该回路中,实际视线角 λ\lambdaλ 每隔 TsT _ { s }Ts 秒被采样并加入噪声,从而提供了一个理想化的导引头模型。视线角和视线角速率的估计值是利用数字二态衰减记忆滤波器对含噪视线角 λk∗\lambda _ { k } ^ { * }λk∗ 的测量值生成的。正如第 1 章中提到的,符号 z−1z ^ { - 1 }z−1 是 ZZZ 变换符号,表示 TsT _ { s }Ts 秒的纯延迟。利用估计的视线角速率,通过比例导引律生成制导指令。生成的指令通过一个"保持"网络,将数字信号转换为用于飞行控制系统的连续信号。该图显示了飞行控制系统理想化表示的单位增益。

清单 7.1 是图 7.1 所示寻的回路的 MATLAB 交战仿真程序。均值为零、样本间独立且标准差为 SIGNOISE 的高斯噪声每隔 TsT _ { s }Ts 秒被添加到测量的视线角中。

图 7.1: 寻的回路中的二阶衰减记忆滤波器。

从清单中我们可以看到,程序由两个独立的部分组成。第一部分代表真实世界,由微分方程和二阶龙格-库塔数值积分技术组成;第二部分代表弹载制导系统,包含二阶数字衰减记忆滤波器的差分方程。我们每隔 H 秒求解一次微分方程,而差分方程则每隔 TsT _ { s }Ts 秒求解一次。值得注意的是,比率 Ts/HT _ { s } / HTs/H 必须是一个大的整数,以便正确且准确地处理采样时刻之间的效应。

清单 7.1: 带有二阶衰减记忆滤波器的交战仿真

matlab 复制代码
clear
count=0;
VC=4000;
XNT=96.6;
YIC=0;
VM=3000;
HEDEG=0;
BETA=0.3;
XNP=3;
SIGNOISE=.001;
TF=10;
TS=.1;
NOISE=1;
Y=YIC;
YD=-VM*HEDEG/57.3;
YDIC=YD;
T=0;
H=.01;
S=0;
GFILTER=1.-BETA^2;
HFILTER=(1.-BETA)^2;
XLAMH=0;
XLAMDH=0;
XNC=0;
while T <= (TF - 1e-5)
    YOLD=Y;
    YDOLD=YD;
    STEP=1;
    FLAG=0;
    while STEP <= 1
        if FLAG==1
            Y=Y+H*YD;
            YD=YD+H*YDD;
            T=T+H;
            STEP=2;
        end;
        TGO=TF-T+1e-5;
        RTM=VC*TGO;
        XLAM=Y/(VC*TGO);
        XLAMD=(RTM*YD+Y*VC)/(RTM^2);
        YDD=XNT-XNC;
        FLAG=1;
    end;
    FLAG=0;
    Y=.5*(YOLD+Y+H*YD);
    YD=.5*(YDOLD+YD+H*YDD);
    S=S+H;
    if S>=(TS-1e-5)
        S=0.;
        if NOISE==1
            XLAMNOISE=SIGNOISE*randn;
        else
            XLAMNOISE=0.;
        end;
        RES=XLAM-(XLAMH+TS*XLAMDH)+XLAMNOISE;
        XLAMH=GFILTER*RES+XLAMH+TS*XLAMDH;
        XLAMDH=HFILTER*RES/TS+XLAMDH;
        XNC=XNP*VC*XLAMDH;
        count=count+1;
        ArrayT(count)=T;
        ArrayY(count)=Y;
        ArrayXNC(count)=XNC;
        ArrayXLAMD(count)=XLAMD;
        ArrayXLAMDH(count)=XLAMDH;
    end;
end;
figure
plot(ArrayT,ArrayXLAMD,ArrayT,ArrayXLAMDH),grid
title('Decreasing beta increase noise transmission of fading memory filter')
xlabel('Time (S)')
ylabel('Line of Sight Rate (Rad/S)')
axis([0 10 -.01 .06])
output=[ArrayT',ArrayY',ArrayXNC',ArrayXLAMD',ArrayXLAMDH'];
save datfil.txt output -ascii
disp('Simulation Complete')

运行交战仿真,并设置了一个标称案例,其中衰减记忆滤波器的 β\betaβ 设置为 0.8。图 7.2 比较了实际视线角速率与滤波器对测量导数的估计值。

图 7.2:{ \\pmb \\beta } = { \\bf 0 . 8 } 进,滤波器反应迟钝并滞后于信号。

我们可以看到,滤波器对视线角速率的估计是平滑的,但滞后于实际视线角速率,这表明滤波器反应迟钝。

图 7.3 表明,我们可以通过减小 β\betaβ 来有效地增加衰减记忆滤波器的带宽。在这里我们可以看到,当 β\betaβ 从 0.8 减小到 0.3 时,视线角速率估计值不再滞后于实际信号。然而,我们可以从图中看到,视线角速率估计值的噪声增加是减小 β\betaβ 所付出的代价。换句话说,减小 β\betaβ 会增加衰减记忆滤波器的噪声传输。

到目前为止展示的结果是针对具有特定噪声流的单次飞行。对于具有不同噪声流的另一次飞行,答案将会改变。为了获得关于脱靶量的准确性能预测,我们必须在蒙特卡洛模式下运行程序;也就是说,必须对每个感兴趣的飞行时间进行重复仿真试验。所得的脱靶量数据必须进行后处理(正如第 4 章处理随机目标机动时所做的那样),以计算所得脱靶量的均值和标准差。清单 7.2 展示了对清单 7.1 交战仿真的修改。这里向程序添加了两个循环。一个循环对每个感兴趣的飞行时间执行 50 次仿真试验 (RUN=50)( \mathsf { R U N } = 5 0 )(RUN=50),另一个循环选择不同的飞行时间(TF 从 0.5 到 10 秒,增量为 0.5 秒)。换句话说,清单 7.2 的仿真针对以飞行时间为参数的交战运行蒙特卡洛集。结果数据的后处理是在第一个 for 循环结束时根据第 4 章开发的公式和例程进行的。

图 7.3: 减小β 会增加衰减记忆滤波器的噪声传输。

清单 7.2: 寻的回路中衰减记忆滤波器的蒙特卡洛版本

matlab 复制代码
clear
%Preallocation
Z=zeros(size(1:1000));
I=zeros(size(1:50));
TF=zeros(size(1:50));
count=0;
VC=4000;
XNT=96.6;
YIC=0;
VM=3000;
HEDEG=0;
BETA=.8;
XNP=3;
SIGNOISE=.001;
TS=.1;
RUN=50;
NOISE=1;
for TF=.5:.5:10.0,
    Z1=0;
    for I=1:RUN
        Y=YIC;
        YD=-VM*HEDEG/57.3;
        YDIC=YD;
        T=0.;
        H=.01;
        S=0.;
        GFILTER=1.-BETA^2;
        HFILTER=(1.-BETA)^2;
        XLAMH=0.;
        XLAMDH=0.;
        XNC=0.;
        while T<= (TF - 1e-5)
            YOLD=Y;
            YDOLD=YD;
            STEP=1;
            FLAG=0;
            while STEP<=1
                if FLAG==1
                    Y=Y+H*YD;
                    YD=YD+H*YDD;
                    T=T+H;
                    STEP=2;
                end;
                TGO=TF-T+.00001;
                RTM=VC*TGO;
                XLAM=Y/(VC*TGO);
                XLAMD=(RTM*YD+Y*VC)/(RTM^2);
                YDD=XNT-XNC;
                FLAG=1;
            end;
            FLAG=0;
            Y=.5*(YOLD+Y+H*YD);
            YD=.5*(YDOLD+YD+H*YDD);
            S=S+H;
            if S>=(TS - 1e-5)
                S=0;
                if NOISE==1
                    XLAMNOISE=SIGNOISE*randn;
                else
                    XLAMNOISE=0;
                end;
                RES=XLAM-(XLAMH+TS*XLAMDH)+XLAMNOISE;
                XLAMH=GFILTER*RES+XLAMH+TS*XLAMDH;
                XLAMDH=HFILTER*RES/TS+XLAMDH;
                XNC=XNP*VC*XLAMDH;
            end;
        end;
        Z(I)=Y;
        Z1=Z(I)+Z1;
        XMEAN=Z1/I;
    end;
    SIGMA=0;
    Z1=0;
    for I=1:RUN,
        Z1=(Z(I)-XMEAN)^2+Z1;
        if I==1,
            SIGMA=0;
        else
            SIGMA=sqrt(Z1/(I-1));
        end;
    end;
    count=count+1;
    ArrayTF(count)=TF;
    ArraySIGMA(count)=SIGMA;
    ArrayXMEAN(count)=XMEAN;
end;
figure
plot(ArrayTF',ArraySIGMA'),grid
title('Standard deviation of miss for various flight times')
xlabel('Flight Time (S)')
ylabel('Noise Miss Standard Deviation (Ft)')
axis([00,10,00,4])
figure
plot(ArrayTF',ArrayXMEAN'),grid
title('Mean of miss for various flight times')
xlabel('Flight Time (S)')
ylabel('Noise Miss Standard Deviation (Ft)')
axis([00,10,00,60])
clc
output=[ArrayTF',ArraySIGMA',ArrayXMEAN'];
save datfil.txt output -ascii
disp('Simulation Complete')

考虑了一个标称案例,其中有恒定的 3g 目标机动和 1 毫弧度 (mrad) 的测量噪声。对于标称案例,选择了 0.8 的滤波器衰减记忆因子和 0.1 秒的采样时间。使用清单 7.2 的程序对 20 个不同的飞行时间值运行了 50 次蒙特卡洛集,总共运行了 1000 次!计算了每个 50 次蒙特卡洛集的标准差和平均脱靶量,结果显示在图 7.4 和 7.5 中。在这个实验中只有两种扰动。目标机动是确定性的(始终为 3 g),噪声是零均值随机过程。因此,我们可以假设脱靶量的标准差必定是由噪声引起的,而脱靶量的均值必定是由目标机动引起的。图 7.4 和 7.5 显示,对于所选的 β\betaβ 值,在大多数飞行时间内,噪声引起的脱靶量与目标机动引起的脱靶量相比较小。这并不奇怪,因为我们知道 β=0.8\beta = 0 . 8β=0.8 的衰减记忆滤波器反应迟钝。

图 7.4: 不同飞行时间的脱靶量标准差。

图 7.5: 不同飞行时间的平均脱靶量。

为了生成图 7.4 和 7.5 的数据,必须进行 1000 次运行!每次更改感兴趣的参数时,都必须进行 1000 次运行集。此外,我们之所以能够在 1000 次运行集中分离出测量噪声和目标机动对脱靶量的贡献,仅仅是因为噪声是随机的而目标机动是确定性的。在具有许多确定性和随机输入的系统中,人们必须一次针对一种扰动运行 1000 次运行集,以生成脱靶量误差预算。幸运的是,伴随技术允许我们仅在一次运行中获得此类误差预算信息!由于所考虑的系统是混合连续离散系统,我们必须扩展第 3 章和第 4 章中涵盖的伴随规则。

混合连续离散伴随理论 [4, 5]

构建混合连续离散系统伴随系统的规则很简单,并且与连续系统伴随规则相似。给定一个具有脉冲响应 HDH _ { D }HD 的线性时变离散系统,其中飞行时间与采样时间之比为整数,即

N=tF/Ts N = t _ {F} / T _ {s} N=tF/Ts

则存在一个具有脉冲响应 HD∗H _ { D } ^ { * }HD∗ 的伴随系统。利用第 3 章和第 4 章的规则以及下一小节给出的附加规则,可以从原始系统构建混合连续离散伴随系统。

在所有变系数的参数中用 N-n 替换 n

连续和混合连续离散伴随系统的规则在以下方面是相同的:原始系统的信号流被反转,原始系统中的时变增益在伴随系统中反向生成。在混合连续离散系统中,伴随规则稍微复杂一些,因为需要额外的元件来连接系统的连续部分和离散部分;例如,如图 7.6 所示,需要采样器或模数转换器将连续系统连接到离散系统。

图 7.6: 连接连续和离散系统。

采样器的输入-输出特性很容易说明;例如,图 7.7 显示,如果采样器的输入信号是连续的,则输出信号具有相同的形状,但仅在每个采样时刻由一个数字定义。这些数字或采样点间隔 TsT _ { s }Ts 秒。

图 7.7: 采样对连续信号的影响。

将伴随理论应用于混合连续离散系统需要取采样器的伴随。采样器的伴随如图 7.8 所示。这个 s 模块代表纯微分,而"保持"模块稍后将定义。z−1z ^ { - 1 }z−1 模块是 ZZZ 变换符号,代表 TsT _ { s }Ts 秒的纯延迟。

图 7.8: 采样器的伴随。

如图 7.9 所示,需要保持网络或数模转换器将离散网络的信号流连接到连续网络。

图 7.9: 连接离散和连续系统。

如果保持器的输入是一组数字,图 7.10 说明了保持网络的正确输入/输出特性。这里我们可以看到,离散信号被"保持"后,变成了连续信号。

图 7.10: 保持离散信号的效果。

保持器的伴随如图 7.11 所示。这个 1/s1 / s1/s 项是积分器的拉普拉斯变换表示。同样,z−1z ^ { - 1 }z−1 项代表 TsT _ { s }Ts 秒的纯延迟。

图 7.11: 保持器的伴随。

我们现在有足够的规则来对混合连续离散系统进行伴随变换。考虑图 7.12 的模型。在这个模型中,有三个连续线性时变网络,其脉冲响应分别为 HC1H _ { C 1 }HC1、HC2H _ { C 2 }HC2 和 HC3H _ { C 3 }HC3。谱密度为 ΦC\Phi _ { C }ΦC 的白噪声 uCu _ { C }uC 通过成形网络 HC3H _ { C 3 }HC3 进入系统的连续部分。此外,幅度为 a 的阶跃扰动也通过成形网络
HC1H _ { C 1 }HC1 进入系统。阶跃输入被表示为通过积分器的脉冲,以便可以将伴随理论应用于该误差源。

图 7.12: 混合连续离散系统模型。

在这个例子中,我们感兴趣的是观察最终时间 tFt _ { F }tF 时的连续 y\boldsymbol { y }y。网络 HC2H _ { C 2 }HC2 的输出被采样并通过脉冲响应为 HD1H _ { D 1 }HD1 的离散网络发送。方差为 σD2\sigma _ { D } ^ { 2 }σD2 的零均值高斯噪声通过成形网络 HD2H _ { D 2 }HD2 进入系统的离散部分。结果信号通过离散网络 HD1H _ { D 1 }HD1 后,输出被保持并反馈到连续网络 HC1H _ { C 1 }HC1,从而完成回路。在这个例子中,我们试图找到由每个扰动引起的 y(tF)y ( t _ { F } )y(tF)。伴随理论可以很容易地应用于这个例子。

遵循伴随规则,我们可以获得图 7.13 的伴随系统。虽然这个伴随模型是由脉冲驱动的,但在第 3-5 章中我们已经看到,没有必要模拟脉冲。脉冲变成了其前向路径中积分器的初始条件。脉冲施加在最终时间的零时刻。伴随模型显示在伴随系统之前出现了一个微分器,因为原始系统中感兴趣的输出是在 HC2∗H _ { C 2 } ^ { * }HC2∗ 处。同样,不需要模拟微分器,只需使用框图操作将其消除(即将其馈送通过 HC2∗H _ { C 2 } ^ { * }HC2∗)。

伴随模型的输出代表系统的输出灵敏度。它们被称为灵敏度,因为它们水平的变化不需要重新运行伴随仿真。从图 7.13 中可以看出,可以通过观察计算新的输出。注意,为了找到由连续随机扰动引起的 y(tF)y ( t _ { F } )y(tF),我们对连续信号(即 HC3∗H _ { C 3 } ^ { * }HC3∗ 的输出)进行平方和积分。为了找到由离散随机扰动引起的 y(tF)y ( t _ { F } )y(tF),我们对离散信号(即 HD2∗H _ { D 2 } ^ { * }HD2∗ 的输出)进行平方和求和。

图 7.13: 混合连续离散系统的伴随。

利用伴随法评估滤波器性能

混合连续离散伴随理论可以应用于图 7.1 的交战模型,这是一个包含二态衰减记忆滤波器的采样数据寻的回路。回想一下,在这个例子中有两个扰动:确定的目标机动和视线角的测量噪声。然而,在我们进行完整的伴随变换之前,让我们意识到,当对"采样器"进行伴随变换时,我们将在寻的回路中得到一个纯微分器。出于仿真的原因,最好通过框图操作来消除微分器。这可以通过修改原始系统,在采样器之前增加一个积分器来轻松实现。这可以通过先生成视线角速率

图 7.14: 视线角速率的框图。

然后对其进行积分以获得视线角来实现。首先我们必须认识到,视线角可以表示为

λ=yRTM=yVctgo \lambda = \frac {y}{R _ {T M}} = \frac {y}{V _ {c} t _ {\mathrm {g o}}} λ=RTMy=Vctgoy

对上述表达式求导,使用商法则,并以框图形式表示结果,我们得到图 7.14。

遵循上一节讨论的混合连续离散伴随规则,整个寻的回路的结果伴随框图如图 7.15 所示。原始系统的两个扰动变成了伴随输出,

图 7.15: 寻的回路中二阶衰减记忆滤波器的伴随。

而原始系统的脱靶量输出变成了伴随系统中的脉冲输入(或积分器 x3x 3x3 上的初始条件)。注意,由于噪声是数字的,伴随噪声脱靶量灵敏度是通过对相应信号进行平方和求和获得的。

清单 7.3 给出了图 7.15 交战模型的 MATLAB 伴随程序,其中寻的回路包含一个二阶衰减记忆滤波器。与本章中介绍的原始交战仿真一样,伴随程序也由两部分组成:一部分用于微分方程,另一部分用于差分方程。在伴随程序中也必须注意确保采样间隔与积分间隔之比是一个大的整数。

清单 7.3: 带有二阶衰减记忆滤波器的伴随交战仿真

matlab 复制代码
clear
count=1;
XNT=96.6;
XNP=3.;
TF=10.;
TS=.1;
BETA=.8;
SIGNOISE=.001;
VC=4000.;
T=0.;
S=0.;
TP=T+.00001;
X1=0;
X2=0;
X3=1;
X5=0.;
Y1OLD=0.;
Y2OLD=0.;
Y3OLD=0.;
Y4OLD=0.;
Y5OLD=0.;
H=.01;
GFILTER=1.-BETA^2;
HFILTER=(1.-BETA)^2;
while TP<= (TF-1e-5)
    X1OLD=X1;
    X2OLD=X2;
    X3OLD=X3;
    X5OLD=X5;
    STEP=1;
    FLAG=0;
    while STEP<=1
        if FLAG==1
            STEP=2;
            X1=X1+H*X1D;
            X2=X2+H*X2D;
            X3=X3+H*X3D;
            X5=X5+H*X5D;
            TP=TP+H;
        end
        TGO=TP+.00001;
        X1D=X2;
        X2D=X3+Y4OLD/(VC*TGO);
        X3D=(Y4OLD)/(VC*TGO*TGO);
        X5D=-X2;
        FLAG=1;
    end
    FLAG=0;
    X1=(X1OLD+X1)/2+.5*H*X1D;
    X2=(X2OLD+X2)/2+.5*H*X2D;
    X3=(X3OLD+X3)/2+.5*H*X3D;
    X5=(X5OLD+X5)/2+.5*H*X5D;
    S=S+H;
    if S>=(TS-.0001)
        S=0.;
        TEMP1=(X5-Y1OLD)*XNP*VC;
        TEMP2=HFILTER*(Y2OLD+TEMP1)/TS+GFILTER*Y3OLD;
        Y1NEW=X5;
        Y2NEW=TEMP1+Y2OLD+TS*(Y3OLD-TEMP2);
        Y3NEW=Y3OLD-TEMP2;
        Y4NEW=Y4OLD+TEMP2;
        Y5NEW=Y5OLD+TEMP2*TEMP2;
        Y1OLD=Y1NEW;
        Y2OLD=Y2NEW;
        Y3OLD=Y3NEW;
        Y4OLD=Y4NEW;
        Y5OLD=Y5NEW;
        XMNOISE=SIGNOISE*sqrt(Y5NEW);
        XMNT=XNT*X1;
        count=count+1;
        ArrayTP(count)=TP;
        ArrayXMNT(count)=XMNT;
        ArrayXMNOISE(count)=XMNOISE;
    end
end
figure
plot(ArrayTP,ArrayXMNT),grid
xlabel('Flight Time (Sec)')
ylabel('Target Maneuver Miss (Ft)')
figure
plot(ArrayTP,ArrayXMNOISE),grid
xlabel('Flight Time (Sec)')
ylabel('Noise Miss (Ft)')
clc
output=[ArrayTP',ArrayXMNT',ArrayXMNOISE'];
save datfil.txt output -ascii
disp 'simulation finished'

对本章开头考虑的标称案例 (β=0.8)(\beta = 0 . 8)(β=0.8) 进行了一次伴随运行。目标机动脱靶量和噪声脱靶量输出分别与伴随时间或飞行时间的关系绘制在图 7.16 和 7.17 中。叠加在这些单次运行伴随结果上的是蒙特卡洛脱靶量结果的标准差和均值,这些结果是通过 1000 次运行(20 个飞行时间值,每个 50 次运行集)获得的。我们可以看到,两种方法得出答案大致相同。如果有更多的误差源,仍然可以通过监测额外的输出来从同一次伴随运行中获得脱靶量性能预测。因此,我们可以看到,伴随技术是一种非常强大的方法,可以有效地生成脱靶量误差预算。

图 7.16: 伴随噪声脱靶量预测与蒙特卡洛结果一致。

图 7.17: 伴随目标机动脱靶量预测与蒙特卡洛结果一致。

衰减记忆滤波器的一些特性

滤波器参数 β\betaβ 决定了滤波器对过去测量的记忆程度,这反过来又决定了滤波器的带宽或响应速度。较高的 β\betaβ 值会产生一个对过去记忆深刻的滤波器。这种类型的滤波器具有低带宽和慢响应速度。较低的 β\betaβ 值会导致高带宽的快速滤波器。图 7.18 和 7.19

图 7.18: 更快的衰减记忆滤波器产生的目标机动脱靶量更小。

根据伴随仿真结果显示了脱靶量如何随衰减记忆滤波器参数 β\betaβ 变化。图 7.18 显示带宽较宽的滤波器(更快的制导系统产生更小的目标机动脱靶量)显著改善了脱靶量结果,这并不令人惊讶。然而,令人惊讶的是,如图 7.19 显示,即使我们知道更快的滤波器具有更多的噪声传输,但对于更快的滤波器,由视线角噪声引起的脱靶量也略有减少。一般来主说,在没有寄生和饱和效应的情况下,减小制导系统时间常数将减少比例导引制导系统中大多数扰动引起的脱靶量。最终,过度的噪声传输将导致饱和并增加脱靶量。

改变采样时间也会影响滤波器和系统的性能。增加采样率(更小的 TsT _ { s }Ts 值)意味着滤波器在单位时间内拥有更多的信息。因此,增加采样率应该是受益的。图 7.20 从单次飞行结果显示,在 β=0.8\beta = 0.8β=0.8 时,增加采样率(将 TsT _ { s }Ts 从 0.1 s 减小到 0.05 s)消除了先前指出的视线角速率估计中的滞后(参见图 7.2 进行比较)。噪声传输似乎与采样时间为 0.1 s 时的情冠大致相同,或略有减少。

从系统性能的角度来看,增加采样率也应该是受益的。本质上,我们正在加快制导系统的速度,这意味着对于先前考虑的输入,脱靶量应该减少。图 7.21 中显示的伴随结果证实,将采样率加倍(将 TsT _ { s }Ts 从 0.1 s 减小到 0.05 s)显著降低了对目标机动的脱靶量灵敏度。

图 7.19: 更快的噪声滤波器产生的视线角噪声脱靶量更小。

图 7.20: 增加采样率使衰减记忆滤波器更快。

图 7.22 也证实了噪声引起的脱靶量随着采样率的增加而减少。通常,增加系统成本与更高的采样率有关。因此,财务考虑通常对实际可实现的采样率设定了上限。

值得注意的是,在上述实验中,噪声标准差随着数据速率的变化而保持不变。在许多系统中,噪声谱密度保持不变,因此噪声标准差

图 7.21: 增加采样率减少了目标机动引起的脱靶量。

图 7.22: 增加采样率减少了噪声引起的脱靶量。

随着数据速率的变化而变化。有兴趣的读者可以参考本章的最后一节,以获得关于该主题的更完整的讨论。

估计目标机动

在第 8 章中,我们将研究更高级的制导律。为了实现更高级的制导律,我们必须了解所有目标状态。换句话说,我们必须知道目标在做什么。用数学语言来说,我们希望能够基于含噪的视线角测量值来估计目标的当前机动水平。理论上,如果没有额外的测量信息或先验信息,仅基于单个传感器的角度测量是不可能估计目标机动水平的。然而,许多战术雷达寻的导弹除了测量视线角外,还测量距离和距离变化率,这使得目标加速度估计成为可能。

图 7.23 展示了一个制导系统,该系统使用三态衰减记忆滤波器,通过测量视线角、距离和接近速度来估计目标加速度。含噪的视线角测量值乘以距离测量值,得到相对位置的伪测量值 γk∗{ \gamma _ { k } } ^ { * }γk∗。然后滤波器估计测量的导数。利用假设已知且精确的导弹加速度知识,就可以从相对加速度中估计目标加速度,如图 7.23 所示。对于这种类型的制导系统,我们还需要剩余飞行时间信息(可以从距离和距离变化率测量中获得),以实现比例导引或增强比例导引制导律。

图 7.23: 用三态衰减记忆滤波器估计目标机动。

清单 7.4 展示了如图 7.23 所示的带有三态衰减记忆滤波器的 MATLAB 交战仿真。注意三态滤波器的增益与二态滤波器的增益不同。

清单 7.4: 带有三态衰减记忆滤波器的交战仿真

matlab 复制代码
clear
count=0;
VC=4000.;
XNT=96.6;
YIC=0.;
VM=3000.;
HEDEG=0.;
BETA=.8;
XNP=3.;
SIGNOISE=.001;
TF=10.;
TS=.1;
NOISE=1;
Y=YIC;
YD=-VM*HEDEG/57.3;
YDIC=YD;
T=0.;
H=.01;
S=0.;
GFILTER=1.-BETA^3;
HFILTER=1.5*(1.-BETA)^2*(1.+BETA);
KFILTER=0.5*(1.-BETA)^3;
YH=0.;
YDH=0.;
XNTH=0.;
XNC=0.;
while T<= (TF - 1e-5)
    YOLD=Y;
    YDOLD=YD;
    STEP=1;
    FLAG=0;
    while STEP<=1
        if FLAG==1
            Y=Y+H*YD;
            YD=YD+H*YDD;
            T=T+H;
            STEP=2;
        end
        TGO=TF-T+.00001;
        RTM=VC*TGO;
        XLAM=Y/(VC*TGO);
        XLAMD=(RTM*YD+Y*VC)/(RTM^2);
        YDD=XNT-XNC;
        FLAG=1;
    end
    FLAG=0;
    Y=.5*(YOLD+Y+H*YD);
    YD=.5*(YDOLD+YD+H*YDD);
    S=S+H;
    if S>=(TS - 1e-5)
        S=0.;
        if NOISE==1,
            XLAMNOISE=SIGNOISE*randn;
        else
            XLAMNOISE=0.;
        end;
        YSTAR=RTM*(XLAM+XLAMNOISE);
        RES=YSTAR-YH-TS*YDH-.5*TS*TS*(XNTH-XNC);
        YH=GFILTER*RES+YH+TS*YDH+.5*TS*TS*(XNTH-XNC);
        YDH=HFILTER*RES/TS+YDH+TS*(XNTH-XNC);
        XNTH=2.*KFILTER*RES/(TS*TS)+XNTH;
        XLAMDH=(YH+YDH*TGO)/(VC*TGO*TGO);
        XNC=XNP*VC*XLAMDH;
        count=count+1;
        ArrayT(count)=T;
        ArrayY(count)=Y;
        ArrayXNCG(count)=XNC/32.2;
        ArrayXLAMD(count)=XLAMD;
        ArrayXLAMDH(count)=XLAMDH;
        ArrayXNTG(count)=XNT/32.2;
        ArrayXNTHG(count)=XNTH/32.2;
    end
end
figure
plot(ArrayT,ArrayXLAMD,ArrayT,ArrayXLAMDH),grid
xlabel('Time (S)')
ylabel('Line of Sight Rate (Rad/S)')
axis([0 10 0 .05])
figure
plot(ArrayT,ArrayXNTG,ArrayT,ArrayXNTHG),grid
xlabel('Acceleration (G)')
clc
output=[ArrayT',ArrayY',ArrayXNCG',ArrayXLAMD',ArrayXLAMDH',ArrayXNTG',ArrayXNTHG'];
save datfil.txt output -ascii
disp 'simulation finished'

使用了清单 7.4 的仿真运行了一个标称案例,其中滤波器的衰减记忆因子为 0.8,采样时间为 0.1 秒。图 7.24 比较了标称案例中滤波器的视线角速率估计值与实际视线角速率。我们可以看到,滤波器估计值跟随几何视线角速率,且没有过多的噪声传输。

图 7.25 显示了同一案例中滤波器对目标机动的估计。图中叠加了实际机动。我们可以看到,对于这个案例,滤波器大约需要 5 秒才能得到机动水平的合理估计。更快的滤波器将具有更小的瞬态周期,但噪声传输会大得多。图 7.25 所示质量的估计足以提高制导系统性能。

图 7.24: 三态滤波器产生了极好的视线角速率估计。

采样实验

在本章中,我们使用数字衰减记忆噪声滤波器进行了简化的数据速率研究。我们得出的结论是,随着数据速率的增加(即采样时间减少),由噪声和目标机动引起的脱靶量趋于减少。为了简单起见,在数据速率研究中,测量噪声标准差随着数据速率的变化而保持不变。在许多系统中,当人们深入研究信号处理的细节时,

图 7.25: 三态衰减记忆滤波器能够估计目标机动。

很容易发现数据速率和测量噪声标准差不是独立的。在这些系统中,测量噪声谱密度 Φ\PhiΦ 保持不变,这意味着模拟数字测量噪声的标准差与数据速率的平方根成正比(换句话说,与采样时间 TsT _ { s }Ts 的平方根成反比),即

σ=ΦTs \sigma = \sqrt {\frac {\Phi}{T _ {s}}} σ=TsΦ

因此,如果我们将数据速率加倍(即采样时间减半),我们还必须将模拟数字测量噪声的标准差增加 41.4%4 1 . 4 \%41.4% (2.5=1.414)( 2 ^ { . 5 } = 1 . 4 1 4 )(2.5=1.414)。在本节中,我们将重复本章的实验,看看当测量噪声谱密度保持不变时,由数字测量噪声引起的脱靶量是否仍然随着数据速率의 增加而减少。

清单 7.3 的脱靶量伴随程序代表了寻的回路中数字二态衰减记忆滤波器的伴随。修改了程序,使得数据速率的变化将根据上述关系(在恒定谱密度假设下)引起测量噪声标准差的变化。假设 0.1 秒的采样时间(10 Hz 数据速率)对应于 1 mrad 的测量噪声。进行了将采样时间作为参数的伴随运行。图 7.26 显示,由数字测量噪声引起的脱靶量标准差仍然随着数据速率的增加而减少,尽管不像图 7.22 那样显著。

图 7.26: 增加数据速率仍然减少了由数字测量噪声引起的脱靶量。

总之,我们可以说,即使在进行数据速率研究时适合保持测量噪声谱密度恒定的情况下,当使用衰减记忆滤波器时,噪声引起的脱靶量仍然随着数据速率的增加而减少。这种数字噪声滤波器考虑了关于数据速率的信息,以便在数据速率变化时能够实现良好的性能。

总结

本章展示了如何在导弹制导系统中实现一种简单的常增益数字噪声滤波器,即衰减记忆滤波器。结果表明,滤波器带宽和采样率都是决定整体系统性能的重要参数。扩展了伴随法,使其可用于产生带有数字噪声滤波器的导弹制导系统的性能预测。实验证实,蒙特卡洛仿真结果与单次运行伴随性能预测完全一致。还展示了如何利用衰减记忆滤波器提供目标加速度估计。

最后,结果表明,在某些系统中,当采样时间减少时,必须保持测量噪声的功率谱密度不变(即保持恒定)。

参考文献

1\] Morrison, N., Introduction to Sequential Smoothing and Prediction, McGraw-Hill, New York, 1969. \[2\] Bar-Shalom, Y., and Li, X. R., Estimation and Tracking Principles, Techniques, and Software, Artech House, Boston, MA, 1993. \[3\] Kalata, P. R., "The Tracking Index: A Generalized Parameter for Alpha-Beta-Gamma Target Trackers," IEEE Transactions Aerospace and Electronic Systems, AES-20, March 1994, pp. 174--182. \[4\] Moroney, R., "The Adjoint of Mixed Continuous/Discrete Systems," Raytheon Memo RM-69-1, Jan. 1969. \[5\] Zarchan, P., and Warren, R. S., "Discrete Adjoint Simulation," Raytheon Rept, BR-5440-1, Oct. 1969. ### 声明 本文翻译自Paul Zarchan的《Tactical and Strategic Missile Guidance: An Introduction (Seventh Edition, Volume1)》,仅用于个人学习和研究,无任何商业用途,如有侵权,请及时告知。

相关推荐
Leweslyh4 小时前
【翻译】战术与战略导弹制导导论-第1章-数值计算技术
导弹制导