资源简介
基于自适应滑模制导律完成了导弹制导仿真,目标做机动飞行,本资源为自适应滑模制导律matlab程序,含有弹道图,制导控制量,方位角速率图等可以自己改。仿真环境:matlab

代码片段和文件信息
clear all
n=0;
T=0.;
S=0.;
H=.002;
VM = 3500.;
VT = 7300.;
k = 3; %导航比 N
AT = 5.; %目标加速度nt 最终要算的是NC 然后刷新导弹的加速度
drt = -8558; %VC r(t)一阶导数
HE=0; %转化为弧度角 航向误差 HE
SEITA = -1.5/57.3; %初始λ 50°
BETA = 0./57.3;
RM1 = 0.;
RM2 = 0.;
RT1 = 100000.;
RT2 = 1000.;
RTM1=RT1-RM1; %相对位置
RTM2=RT2-RM2;
rt=sqrt(RTM1*RTM1+RTM2*RTM2); %rtm
ry3t = RT2-RM2;
qt = ry3t/rt;
VM1 = VM*cos(SEITA); %刷新导弹速度
VM2 = VM*sin(SEITA);
VT1 = -VT*cos(BETA);
VT2 = VT*sin(BETA);
VTM1 = VT1 - VM1; %相对速度大小
VTM2 = VT2 - VM2;
SEITA = atan2(RTM2RTM1);%tan反函数
SEITAD=(RTM1*VTM2-RTM2*VTM1)/rt^2;
dry3t = VT2 - VM2; % 核心算法
dqt = (dry3t*rt-ry3t*drt)/(rt*rt);
u = (k+1)*drt*dqt+hardlim(dqt);
AM1=u*sin(SEITA); %导弹加速度分量 qt 仰角
AM2=-u*cos(SEITA);
while drt <= 0 %只要接近速度>0 就得继续
BETAOLD=BETA; %存数据
RT1OLD=RT1;
RT2OLD=RT2;
RM1OLD=RM1;
RM2OLD=RM2;
VM1OLD=VM1;
VM2OLD=VM2;
STEP=1;
FLAG=0;
while STEP <=1
if FLAG==1
STEP=2;
BETA=BETA+H*BETAD; %β=β+H*β的一阶导数
RT1=RT1+H*VT1; %根据步长改变数据
RT2=RT2+H*VT2;
RM1=RM1+H*VM1;
RM2=RM2+H*VM2;
VM1=VM1+H*AM1;
VM2=VM2+H*AM2;
T=T+H; %T是步长H的累计
end
RTM1=RT1-RM1;
RTM2=RT2-RM2;
SEITA=atan2(RTM2RTM1);
ry3t = RT2-RM2;
rt=sqrt(RTM1*RTM1+RTM2*RTM2);
VTM1 = VT1 - VM1; %相对速度大小
VTM2 = VT2 - VM2;
SEITAD=(RTM1*VTM2-RTM2*VTM1)/rt^2;
VM = sqrt(VM1*VM1+VM2*VM2);
drt = (RTM1*VTM1+RTM2*VTM2)/rt;
qt = ry3t/rt;
dry3t = VT2 - VM2;
dqt = (dry3t*rt-ry3t*drt)/(rt*rt);
u = (k+1)*drt*dqt+hardlim(dqt);
AM1=u*sin(SEITA); %导弹加速度分量 qt 仰角
AM2=-u*cos(SEITA);
VT1=-VT*cos(BETA);
VT2=-VT*sin(BETA);
BETAD=AT/VT; %β的一阶导数
FLAG=1;
end
FLAG=0;
BETA=.5*(BETAOLD+BETA+H*BETAD); %老数据加上新数据 再 乘1/2
RT1=.5*(RT1OLD+RT1+H*VT1);
RT2=.5*(RT2OLD+RT2+H*VT2);
RM1=.5*(RM1OLD+RM1+H*VM1);
RM2=.5*(RM2OLD+RM2+H*VM2);
VM1=.5*(VM1OLD+VM1+H*AM1);
VM2=.5*(VM2OLD+VM2+H*AM2);
S=S+H;
if S >=.09999 %计算这么多次后 存一下值 大概10次
S=0.;
n=n+1;
ArrayT(n)=T;
ArrayRT1(n)=RT1;
ArrayRT2(n)=RT2;
ArrayRM1(n)=RM1;
ArrayRM2(n)=RM2;
ArrayXNCG(n)=u;
ArrayRTM(n)=rt;
ArrayQT(n)=qt;
ArraySEITAD(n)=SEITAD;
ArrayK(n)=-drt/rt;
end
end
figure
plot(ArrayRT1ArrayRT2ArrayRM1ArrayRM2)grid
title(‘Eventual ight path in the xy plane‘)
xlabel(‘X ‘)
ylabel(‘Z‘)
figure
plot(ArrayTArraySEITAD)grid
titl
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3442 2020-07-06 16:49 ASMG\asmg_2.m
目录 0 2020-08-06 11:03 ASMG
----------- --------- ---------- ----- ----
3442 2
- 上一篇:Volterra_均衡器
- 下一篇:Matlab中求解最小生成树的程序
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论