武器系统仿真技术(二):末端制导系统蒙特卡洛仿真法

article/2025/4/22 3:16:05

1.蒙特卡洛仿真方法的统计特性

假设一个 m m m个系统输出数据 { y i } i = 1 m \{y_i\}_{i=1}^m {yi}i=1m N N N次循环得到 N N N组数据 { { y i } i = 1 m } j = 1 N \{\{y_i\}_{i=1}^m\}_{j=1}^N {{yi}i=1m}j=1N。那么实际上会有以下两组统计特性指标:

1.2数值统计特性:

(1)数学期望: E ( y ) ≈ 1 N ∑ k = 1 N y k E(y) \approx \frac{1}{N}\sum_{k=1}^Ny_k E(y)N1k=1Nyk

(2)方差: σ y 2 ≈ 1 N ∑ K = 1 N ( y k − E y ) 2 \sigma_y^2 \approx \frac{1}{N}\sum_{K=1}^N{(y_k-Ey)}^2 σy2N1K=1N(ykEy)2

(3)概率密度函数: p ( y ) ≈ N y N Δ y p(y)\approx\frac{N_y}{N\Delta y} p(y)NΔyNy,其中若将区间 ( a , b ) (a,b) (a,b)划分为 L L L段,则 Δ y = b − a L \Delta y=\frac{b-a}{L} Δy=Lba,其中 N y N_y Ny是数值满足不等式:

( y − 0.5 Δ y ) < y < ( y + 0.5 Δ y ) (y-0.5\Delta y)<y<(y+0.5\Delta y) (y0.5Δy)<y<(y+0.5Δy)的个数,用曲线拟合可以得到概率密度函数 p ( y ) p(y) p(y)

1.3 时间统计特性计算(Y(t)是平稳随机过程):

(1)时间均值 E { y K ( t ) } = l i m T → ∞ 1 T ∫ 0 T y K ( t ) d t E\{y_K(t)\}=lim_{T\rightarrow \infty}\frac{1}{T}\int_0^Ty_K(t)dt E{yK(t)}=limTT10TyK(t)dt

(2)时间均方差 σ y K 2 = l i m T → ∞ 1 T ∫ 0 T { y K ( t ) − E { y K ( t ) } } 2 d t \sigma_{y_K}^2=lim_{T\rightarrow \infty}\frac{1}{T}\int_0^T\{y_K(t)-E\{y_K(t)\}\}^2dt σyK2=limTT10T{yK(t)E{yK(t)}}2dt

(3)自相关函数 R y K ( t 1 , t 2 ) = l i m T → ∞ 1 T ∫ 0 T y K ( t ) y K ( t + τ ) d t R_{y_K}(t_1,t_2)=lim_{T\rightarrow \infty}\frac{1}{T}\int_0^Ty_K(t)y_K(t+\tau)dt RyK(t1,t2)=limTT10TyK(t)yK(t+τ)dt

2.仿真实例

以导弹末端制导系统仿真为例,说明该仿真方法的应用

2.1仿真原理及算法

1.系统组成

一个导弹末端制导系统由控制系统,导引头,目标运动,导弹运动和相对运动等若干环节组成,这些环节构成了末端制导系统(如下图所示)。符号说明: R : R: R:视线距, λ : \lambda: λ:视线角, a c a_c ac:控制指令, a L a_L aL:导弹控制系统对制导指令的响应(实际视线法向加速度)。采用比例制导法,那么 a c = K v c λ ˙ a_c=Kv_c\dot{\lambda} ac=Kvcλ˙,其中 K K K为比例导引系数, v c v_c vc为导弹实际接近目标的速度, λ ˙ \dot{\lambda} λ˙为目标的实际角速度。
在这里插入图片描述

2.工作原理

由视线角速度 λ ˙ \dot\lambda λ˙进过制导计算机形成制导指令,导弹控制系统执行制导指令,改变导弹的姿态运动并且给出导弹视线法向加速度,影响导弹同目标运动的相对运动,使得 R ( t F ) R(t_F) R(tF)(即在一段飞行时间内导弹的视线距尽可能小)。

仿真目的在于通过仿真活得脱靶量 y ( t F ) y(t_F) y(tF)在不同的 m m m个飞行时间内由于随机目标机动运动造成的均方根 σ y ( 1 ) , σ y ( 2 ) , σ y ( 3 ) . . . , σ y ( m ) \sigma_{y(1)},\sigma_{y(2)},\sigma_{y(3)}...,\sigma_{y(m)} σy(1),σy(2),σy(3)...,σy(m),以及相关的数值和时间统计特性。

3.制导系统的线性化模型

在这里插入图片描述

仿真过程中: a T a_T aT是目标的运动加速度是随机量,其代表的是一类“电报机动”的随机干扰模型,即目标要么正的最大加速度机动,要么负的最大加速度机动,机动开始时间和正负方向都是随机的。当运动规律确定的时候,开始时间随机的随机扰动可以描述为:
x ( t ) = h ( t − T ) p T ( t ) = 1 t F ( 0 ≤ t ≤ t F ) , 0 ( e l s e ) x(t)=h(t-T)\\ p_T(t)=\frac{1}{t_F}(0\leq t\leq t_F),0(else) x(t)=h(tT)pT(t)=tF1(0ttF),0(else)
在本例中,目标做随机机动,其视线法向加速度 a T a_T aT的幅值为29.4m/s,加速度的正负符号和开始时间 T T T为在区间 ( 0 , t F ) (0,t_F) (0,tF)内的等概率的随机量。其描述如下:
a T ( t ) = C o e f ∗ a T ∗ s i g n ( t − T ) C o e f = 1 ( R a n d o m > 0.5 ) , − 1 ( r a n d o m < 0.5 ) , p T ( t ) = 1 t F ( 0 ≤ t ≤ t F ) , 0 ( e l s e ) a_T(t)=C_{oef}*a_T*sign(t-T)\\ C_{oef}=1(Random>0.5),-1(random<0.5),p_T(t)=\frac{1}{t_F}(0\leq t\leq t_F),0(else) aT(t)=CoefaTsign(tT)Coef=1(Random>0.5),1(random<0.5),pT(t)=tF1(0ttF),0(else)
其中 R ( 0 ) R(0) R(0)为视线距初值, t F = R ( 0 ) v c t_F=\frac{R(0)}{v_c} tF=vcR(0), y ( t F ) y(t_F) y(tF)定义为脱靶量, t g o = t F − t t_{go}=t_F-t tgo=tFt为剩余飞行时间, v c t g o v_ct_{go} vctgo为剩余飞行距离,视线角为 λ = y v c t g o \lambda=\frac{y}{v_ct_{go}} λ=vctgoy。一些其他的参数标注为v_c=1219m/s,K=3,系统时间常数T=1s,导弹速度v_m=914.4m/s

X = ( y , y ˙ , a c , a L ) T X=(y,\dot{y},a_c,a_L)^T X=(y,y˙,ac,aL)T系统的状态方程可以描述为:
X ˙ = f ( t , X , a T , t F ) \dot{X}=f(t,X,a_T,t_F) X˙=f(t,X,aT,tF)
其中: X ˙ = ( X ( 2 ) , a T − X ( 4 ) , K ( X ( 2 ) t F − t + X ( 1 ) ( t F − t ) 2 ) , X ( 3 ) − X ( 4 ) T ) T \dot X = (X(2),a_T-X(4),K(\frac{X(2)}{t_F-t}+\frac{X(1)}{(t_F-t)^2}),\frac{X(3)-X(4)}{T})^T X˙=(X(2),aTX(4),K(tFtX(2)+(tFt)2X(1)),TX(3)X(4))T

其流程图可以表述如下:

在这里插入图片描述

2.2 仿真代码及结果

clc,clear;close all;
v_c = 1219;K = 3;T = 1;
v_m = 914.4;a_T = 29.4;
coffient.K = K;
coffient.a_T = a_T;
t_f = 10;h = 0.1;
%重要参数区间
E = [];D = [];time_point = [];
for time = h:h:t_fT =  time*rand;%产生常数Tx0 = [0 0 0 0]';%下面进行参数结构体赋值coffient.t_F = time;coffient.T = T;[tout,yout] = Adams_4v(@(t,x)missle_model(t,x,coffient),[0 time],x0,(time - 0)/50);%下面计算具体参数time_point = [time_point;time];E = [E;mean(yout(:,1))];D = [D;sqrt(mean((yout(:,1) - mean(yout(:,1))).^2))];
end
%下面进行绘图操作
subplot(121)
hold on;box on;grid on;
plot(time_point,E,'bo');
xlabel('t_F/s');ylabel('E(y_P{t_F})/m');
title('数学期望仿真结果');
subplot(122)
hold on;box on;grid on;
plot(time_point,D,'r-+');
xlabel('t_F/s');ylabel('\sigma(y_P{t_F})/m');
title('方差仿真结果');%导弹末端制导模型
function f = missle_model(t,x,coffient)K = coffient.K;t_F = coffient.t_F;aT = coffient.a_T;T = coffient.T;f = zeros(4,1);%下面给出随机a_Tif rand >= 0.5C_oef = 1;elseC_oef = -1;endif t>Tflag = 1;elseflag = 0;enda_T = C_oef*aT*flag;%下面是函数导数f(1) = x(2);f(2) = a_T - x(4);f(3) = K*(x(2)/(t_F - t) + x(1)/(t_F - t)^2);f(4) = (x(3) - x(4))/T;
end%下面是4阶亚当姆斯预估-校正法
function [t_,y] = Adams_4v(f,tspan,x0,h)t_min = tspan(1);t_max = tspan(2);t_f1 = [t_min,t_min+h,t_min+2*h,t_min+3*h];t_f2 = [t_min+h,t_min+2*h,t_min+3*h,t_min+4*h];fn1 = zeros(1,4);fn2 = zeros(1,4);y = [];t_ = [];x = x0;t = t_min;%下面是用RK-4初始化提供初值while(t<t_f1(end))y = [y;x'];t_ = [t_;t];K1 = h*f(t,x);K2 = h*f(t + h/2,x + 1/2*K1);K3 = h*f(t + h/2,x + 1/2*K2);K4 = h*f(t + h,x + K3);x = x + (K1 + 2*K2 + 2*K3 + K4)/6;t = t + h;endfor t = (t_min+3*h):h:t_maxy = [y;x'];t_ = [t_;t];x_ = x + h/24*(55*f(t,x)-59*f(t-h,x)+37*f(t-2*h,x)-9*f(t-3*h,x));f_ = f(t+h,x_);x = x + h/24*(9*f_ + 19*f(t,x) - 5*f(t-h,x) + f(t-2*h,x));end
end

结果:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/m9uKrowB.shtml

相关文章

检测性能的蒙特卡洛仿真-估计部分

一、 实验目的 使用matlab编程&#xff0c;利用蒙特卡洛方法&#xff0c;对一个简单的二元假设检验问题进行仿真&#xff0c;分析不同信噪比下检测器的性能&#xff0c;分析SNR、MSE对估计的影响。 二、 实验步骤 通过蒙特卡洛仿真实验&#xff0c;检测性能在不同信噪比下的…

cadence的工艺角仿真、蒙特卡洛仿真、PSRR

cadence的工艺角仿真、蒙特卡洛仿真、PSRR 工艺角仿真打开ADE XL选择工艺角为ff设置工艺角 蒙特卡洛仿真PSRR温度扫描 学习来源&#xff1a;https://www.bilibili.com/video/BV1gX4y1g7JJ?spm_id_from333.337.search-card.all.click 工艺角仿真 打开ADE XL 当你在ADEL完成仿…

雅可比迭代法法

雅可比迭代法法 在图形图像中很多地方用到求矩阵的特征值和特征向量&#xff0c;比如主成分分析、OBB包围盒等。编程时一般都是用数值分析的方法来计算&#xff0c;这里介绍一下雅可比迭代法求解特征值和特征向量。雅可比迭代法的原理&#xff0c;网上资料很多&#xff0c;详细…

雅可比迭代法和高斯赛德尔迭代法

刚学 Jacobi算法和Gauss_Siedel算法不久&#xff0c;觉的对以后学习会有帮助&#xff0c;所以记下来&#xff0c;希望感兴趣的朋友共勉&#xff01; 雅克比迭代 #include < iostream > #include " math.h " using namespace std; #define n 3 double a[n][n] …

数值计算——雅可比迭代法解线性方程组

1.雅克比迭代法的计算过程: (1).取初始向量: &#xff08;1&#xff09; (2).迭代过程 &#xff08;2&#xff09; 2.求解实例&#xff1a; &#xff08;3&#xff09; 用 Jacobi 方法求解&#xff0c;精确到小数点后 6 位, 给出所需步数及残差; 3.求解结果&#xff1a; 当n1…

雅可比迭代法、高斯-赛德尔迭代法、超松弛迭代法 matlab 实现

雅可比迭代法、高斯-赛德尔迭代法、超松弛迭代法 matlab 实现 一、雅可比迭代法 程序代码&#xff1a; function y Jacobi(A,b,e,M) % input: A 的对角线元素均不为 0 e: 精度 M: 最大计算次数 % output: y: 方程的解n length(A); x0 zeros(n,1); y zeros(n,1);[l,w] si…

数值计算——雅可比迭代法解线性方程组(附代码)

1.雅克比迭代法的计算过程: (1).取初始向量: &#xff08;1&#xff09; (2).迭代过程 &#xff08;2&#xff09; 2.求解实例&#xff1a; &#xff08;3&#xff09; 用 Jacobi 方法求解&#xff0c;精确到小数点后 6 位, 给出所需步数及残差; 3.求解结果&#xff1a; 当n1…

雅可比迭代法程序c语言,求雅可比迭代法解方程组的C\C++程序

满意答案 singleycf 2013.07.05 采纳率&#xff1a;54% 等级&#xff1a;13 已帮助&#xff1a;7908人 #include #include Jacobidiedai(int n, double *a, double *b,double *x) { int i,j; double *x0,m0,eps; x0 (double *) malloc(n*sizeof(double)); for(i0;i x0[i]x…

雅可比迭代法解线性方程组。

L U分解在我之前写的文章里。 定义的变量有点多&#xff0c;但挺容易看的。 #include<stdio.h> #include<math.h> #define N 3 int main (void) {double A[N][N] {0};double D[N][N] {0};double L[N][N] {0};double U[N][N] {0};double C[N][N] {0};double…

线性方程组迭代法—雅克比迭代法C++

此例子使用三个变量、三个方程的情况&#xff0c;如需讨论多个的情况&#xff0c;使用vector稍加修改即可。 使用的方程组如下&#xff1a; 每次迭代的值如下&#xff1a; 程序流程图&#xff1a; 程序代码&#xff1a; /********雅克比迭代法********* *1.Xi为每一步迭代…

《数值分析》-- 雅可比迭代法、高斯—塞德尔迭代法

文章目录 一、基本迭代法的格式及收敛性1.1 迭代法思想1.2 向量序列收敛的定义 二、迭代法的收敛与发散三、雅可比迭代法和高斯赛德尔迭代法3.1 雅可比迭代法3.2 高斯――赛得尔(Gauss-Seidel)迭代法 四、迭代法的收敛性4.1 严格对角占优矩阵与对角占优矩阵4.2 Jacobi迭代法和G…

雅克比迭代法,高斯赛德尔迭代法,sor迭代法(python)

计算方法实验&#xff0c;在已给matlab的程序基础上进行修改得到的python程序&#xff0c;原理不再赘述。实际使用时&#xff0c;只需修改以下程序中的A,b矩阵&#xff08;注意只适用与A为n*n的情况&#xff09; 1.雅克比迭代法 import numpy as npA np.array([[10,-1,-2],[…

C语言实现雅克比迭代法求根

C语言实现雅克比迭代法求根 雅克比迭代法求根 C语言实现雅克比迭代法求根问题描述算法思想C语言程序实验结果 问题描述 设方程组 A x b Ax b Axb的系数矩阵 A A A非奇异 &#xff0c;且 a i i ≠ 0 {a_{ii}} \ne 0 aii​​0将 A A A分裂为&#xff1a; A D L U A D L…

雅克比迭代法和高斯-塞德尔迭代法

https://wenku.baidu.com/view/ac6a0d89d0d233d4b04e6905.html 另外附上迭代收敛的条件&#xff1a; 且越小&#xff0c;收敛的越快。

雅可比迭代法

雅可比迭代法 设有线性方程组 &#xff08;1&#xff09; 其矩阵形式为 设系数矩阵A为非奇异矩阵&#xff0c;且 从式(1)的第个方程中解出&#xff0c;得其等价形式 (2) 取初始向量 对式(2)应用迭代法&#xff0c;建立相应的迭代公式 (3) 也可记为矩阵形式 (4) 若将系数…

数值分析-雅克比迭代法

雅克比迭代法 雅克比迭代法就是众多迭代法中比较早且较简单的一种&#xff0c;其命名也是为纪念普鲁士著名数学家雅可比。雅克比迭代法的计算公式简单&#xff0c;每迭代一次只需计算一次矩阵和向量的乘法&#xff0c;且计算过程中原始矩阵A始终不变&#xff0c;比较容易并行计…

雅克比迭代算法

From https://blog.csdn.net/weixin_33895016/article/details/86031039 雅克比迭代&#xff0c;一般用来对线性方程组&#xff0c;进行求解。形如&#xff1a; a11∗x1a12∗x2a13∗x3b1a11∗x1a12∗x2a13∗x3b1   a21∗x1a22∗x2a23∗x3b2a21∗x1a22∗x2a23∗x3b2   a31…

雅克比(Jacobi)迭代法求解线性方程组

长博文不利于翻阅&#xff0c;于是又将Jacobi迭代法单独出来了。 这篇博文把高斯—赛德尔迭代法和雅克比迭代法都放到一起了&#xff0c;个人觉得看着有点累。&#xff08;迭代法求解线性方程组&#xff09;&#xff0c;不过还是要看的&#xff0c;因为它引出了迭代法。 进入…

MATLAB Jacobi迭代法 求解线性方程组

文章目录 前言一、Jacobi迭代法是什么&#xff1f;二、对应的编程思想以及公式推导 1.Jacobi迭代法 公式推导2.Jacobi迭代法求解线性方程组 例子3.Jacobi迭代法 编程实现总结 前言 雅克比&#xff08;Jacobi&#xff09;迭代法求解线性方程组 一、Jacobi迭代法是什么&#xff1…

紧张的337小时,终于等来了宇宙条字节跳动offer

作者&#xff1a;不穿格子衫的Java程序猿 来源&#xff1a;https://url.cn/5IiC4LJ 坐标北京&#xff0c;某211本科毕业生&#xff0c;之前学校活动有去过字节跳动公司总部参观&#xff0c;所以一直以来就蛮想进入字节工作的&#xff0c;被字节的企业文化和工作氛围所影响。字节…