武器系统仿真技术(二):末端制导系统蒙特卡洛仿真法
1.蒙特卡洛仿真方法的统计特性
假设一个mmm个系统输出数据{yi}i=1m\{y_i\}_{i=1}^m{yi}i=1m,NNN次循环得到NNN组数据{{yi}i=1m}j=1N\{\{y_i\}_{i=1}^m\}_{j=1}^N{{yi}i=1m}j=1N。那么实际上会有以下两组统计特性指标:
1.2数值统计特性:
(1)数学期望:E(y)≈1N∑k=1NykE(y) \approx \frac{1}{N}\sum_{k=1}^Ny_kE(y)≈N1∑k=1Nyk
(2)方差:σy2≈1N∑K=1N(yk−Ey)2\sigma_y^2 \approx \frac{1}{N}\sum_{K=1}^N{(y_k-Ey)}^2σy2≈N1∑K=1N(yk−Ey)2
(3)概率密度函数:p(y)≈NyNΔyp(y)\approx\frac{N_y}{N\Delta y}p(y)≈NΔyNy,其中若将区间(a,b)(a,b)(a,b)划分为LLL段,则Δy=b−aL\Delta y=\frac{b-a}{L}Δy=Lb−a,其中NyN_yNy是数值满足不等式:
(y−0.5Δy)<y<(y+0.5Δy)(y-0.5\Delta y)<y<(y+0.5\Delta y)(y−0.5Δy)<y<(y+0.5Δy)的个数,用曲线拟合可以得到概率密度函数p(y)p(y)p(y)
1.3 时间统计特性计算(Y(t)是平稳随机过程):
(1)时间均值E{yK(t)}=limT→∞1T∫0TyK(t)dtE\{y_K(t)\}=lim_{T\rightarrow \infty}\frac{1}{T}\int_0^Ty_K(t)dtE{yK(t)}=limT→∞T1∫0TyK(t)dt
(2)时间均方差σyK2=limT→∞1T∫0T{yK(t)−E{yK(t)}}2dt\sigma_{y_K}^2=lim_{T\rightarrow \infty}\frac{1}{T}\int_0^T\{y_K(t)-E\{y_K(t)\}\}^2dtσyK2=limT→∞T1∫0T{yK(t)−E{yK(t)}}2dt
(3)自相关函数RyK(t1,t2)=limT→∞1T∫0TyK(t)yK(t+τ)dtR_{y_K}(t_1,t_2)=lim_{T\rightarrow \infty}\frac{1}{T}\int_0^Ty_K(t)y_K(t+\tau)dtRyK(t1,t2)=limT→∞T1∫0TyK(t)yK(t+τ)dt
2.仿真实例
以导弹末端制导系统仿真为例,说明该仿真方法的应用
2.1仿真原理及算法
1.系统组成
一个导弹末端制导系统由控制系统,导引头,目标运动,导弹运动和相对运动等若干环节组成,这些环节构成了末端制导系统(如下图所示)。符号说明:R:R:R:视线距,λ:\lambda:λ:视线角,aca_cac:控制指令,aLa_LaL:导弹控制系统对制导指令的响应(实际视线法向加速度)。采用比例制导法,那么ac=Kvcλ˙a_c=Kv_c\dot{\lambda}ac=Kvcλ˙,其中KKK为比例导引系数,vcv_cvc为导弹实际接近目标的速度,λ˙\dot{\lambda}λ˙为目标的实际角速度。
2.工作原理
由视线角速度λ˙\dot\lambdaλ˙进过制导计算机形成制导指令,导弹控制系统执行制导指令,改变导弹的姿态运动并且给出导弹视线法向加速度,影响导弹同目标运动的相对运动,使得R(tF)R(t_F)R(tF)(即在一段飞行时间内导弹的视线距尽可能小)。
仿真目的在于通过仿真活得脱靶量y(tF)y(t_F)y(tF)在不同的mmm个飞行时间内由于随机目标机动运动造成的均方根σ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.制导系统的线性化模型
仿真过程中:aTa_TaT是目标的运动加速度是随机量,其代表的是一类“电报机动”的随机干扰模型,即目标要么正的最大加速度机动,要么负的最大加速度机动,机动开始时间和正负方向都是随机的。当运动规律确定的时候,开始时间随机的随机扰动可以描述为:
x(t)=h(t−T)pT(t)=1tF(0≤t≤tF),0(else)x(t)=h(t-T)\\ p_T(t)=\frac{1}{t_F}(0\leq t\leq t_F),0(else) x(t)=h(t−T)pT(t)=tF1(0≤t≤tF),0(else)
在本例中,目标做随机机动,其视线法向加速度 aTa_TaT的幅值为29.4m/s
,加速度的正负符号和开始时间TTT为在区间(0,tF)(0,t_F)(0,tF)内的等概率的随机量。其描述如下:
aT(t)=Coef∗aT∗sign(t−T)Coef=1(Random>0.5),−1(random<0.5),pT(t)=1tF(0≤t≤tF),0(else)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)=Coef∗aT∗sign(t−T)Coef=1(Random>0.5),−1(random<0.5),pT(t)=tF1(0≤t≤tF),0(else)
其中R(0)R(0)R(0)为视线距初值,tF=R(0)vct_F=\frac{R(0)}{v_c}tF=vcR(0),y(tF)y(t_F)y(tF)定义为脱靶量,tgo=tF−tt_{go}=t_F-ttgo=tF−t为剩余飞行时间,vctgov_ct_{go}vctgo为剩余飞行距离,视线角为λ=yvctgo\lambda=\frac{y}{v_ct_{go}}λ=vctgoy。一些其他的参数标注为v_c=1219m/s
,K=3
,系统时间常数T=1s
,导弹速度v_m=914.4m/s
。
设X=(y,y˙,ac,aL)TX=(y,\dot{y},a_c,a_L)^TX=(y,y˙,ac,aL)T系统的状态方程可以描述为:
X˙=f(t,X,aT,tF)\dot{X}=f(t,X,a_T,t_F) X˙=f(t,X,aT,tF)
其中:X˙=(X(2),aT−X(4),K(X(2)tF−t+X(1)(tF−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})^TX˙=(X(2),aT−X(4),K(tF−tX(2)+(tF−t)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
结果:
武器系统仿真技术(二):末端制导系统蒙特卡洛仿真法相关推荐
- 武器系统仿真技术(一):系统误差分析的蒙特卡洛算法
1.应用前景 可以用于航空武器系统的误差分析,特别是函数误差的计算.蒙特卡洛法和协方差法是武器系统误差分析中的两种常用方法.其基本思想是通过对随机变量的模拟,对模拟结果进行统计分析,最终给出问题数 ...
- 控制系统仿真技术(二)-连续系统的数字仿真二
太原理工大学控制系统仿真技术实验报告 连续系统的数字仿真 1.分别利用欧拉法和预估-校正法求下图所示系统的阶跃响应,并对其结果进行比较. %欧拉法求阶跃响应 r=2;num0=8;den0=[1 3 ...
- RHEL6.3 DNS高级技术二 通过DNS主从区域复制实现DNS View负载均衡和冗余备份
RHEL6.3 DNS高级技术二 ----通过DNS主从区域复制实现DNS View负载均衡和冗余备份 版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 ...
- Android 二维码扫描(仿微信界面),根据Google zxing
Android 二维码扫描(仿微信界面),根据Google zxing Android项目开发中经常会用到二维码扫描,例如登陆.支付等谷歌方面已经有了一个开源库(地址: https://github. ...
- 【大疆DJI】安卓开发实习历程- 0.前期准备到面试(HR电话初面+技术一面+技术二面/终面+OC)
目录 前言 实习选择 0. 腾讯云 1. 面试复盘 2. 海投简历 大疆HR电话初面 大疆技术一面 0. 面试形式 1. 问题准备 2. 面试经过(70 mins) 大疆技术二面(终面) 0. 面试形 ...
- 【Visual C++】游戏开发笔记四十三 浅墨DirectX教程十一 为三维世界添彩:纹理映射技术(二)...
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 作者:毛星云(浅墨) 邮箱: happylifemxy@163.com 本篇文章里,我们首先对Direct3D之中固定功能流水线中的 ...
- 控制系统仿真技术(一)仿真软件-MATLAB
太原理工大学控制系统仿真技术实验报告 在 MATLAB下输入矩阵 , ,并使用以下命令要求输出结果:A& B , A|B ,xor(A,B), A.*B. 答案: >> A=[1 ...
- 邮储银行web前端技术二面面经
面试流程及形式 面试流程是6对1面试 ,中间坐着的是宣读面试流程以及拿着一个电脑一直在打字的女面试官,其余5位都是男面试官,我以为中间的是hr,后来才知道那位女面试官之所以能坐在中间,是因为他是研发中 ...
- 基于MATLAB/Simulink的系统仿真技术与应用(PDF)
本书首先介绍了MATLAB语言的程序设计的基本内容,在此基础上系统介绍了系统仿真所必要的数值计算方法及MATLAB实现,并以Simulink为主要工具介绍了系统仿真方法与技巧,包括连续系统.离散系统. ...
最新文章
- 随机采样池化--S3Pool: Pooling with Stochastic Spatial Sampling
- tensorrt yolov5 批量预测学习笔记
- Java-Java5.0泛型解读
- AspectJ Join Point Matching based on Annotations
- VirtualAlloc 申请可执行内存
- jquery中的attr()和prop()
- Android Gradle使用总结
- Java文本框只有一行数据,Java只允许输入数目字的文本框
- 【BZOJ3677】[Apio2014]连珠线 换根DP
- mysql 两个数相加_LeetCode 01两数之和02两数相加
- 计算机三种不同类型的用户账户,计算机应用基础(第2版)教学课件作者陈绥阳第二章.ppt...
- 10g手动创建数据库
- QQ定时发消息vbs代码
- 常用的android脱壳工具,Android万能脱壳机
- 返回 代码: E_INVALIDARG (0x80070057)解决方法
- 金融学期末复习重点准备
- 八、Web 的攻击技术
- 计算机术语写祝福语,祝福语精选
- b树的表示形式_B.Com的完整形式是什么?
- 网卡工作模式(混杂模式)