%具有碰撞角约束的三维纯比例导引律研究
%无人机空中加油自主会合控制器设计
%说明:在仿真中,下标"_m"表示追踪器参数,下标"_t"表示目标参数clear
clc%---------------------追踪器参数设置-----------------------
V_m=300; % 单位:m/s,飞行速度
theta_m=45*pi/180;%单位:rad,初始弹道倾角
fea_m=45*pi/180;%单位:rad,初始弹道偏角
X_m=0; %单位:m,位置坐标,X轴
Y_m=0; %单位:m,位置坐标,Y轴
Z_m=0; %单位:m,位置坐标,Z轴%---------------------目标参数设置-----------------------
V_t=50; %单位:m/s,目标飞行速度
theta_t=0*pi/180;%单位:rad,初始弹道偏角
fea_t=0*pi/180;%单位:rad,初始弹道偏角
X_t=1000; %单位:m,目标位置坐标,X轴
Y_t=1000; %单位:m,目标位置坐标,Y轴
Z_t=0; %单位:m,目标位置坐标,Z轴%------------------比例导引律参数设置-----------------------
N1=20; %纵向通道导引系数
N2=20;%偏航通道导引系数
g=9.8;t=0; %单位:s,仿真时刻
dt=0.001;%单位:s,仿真时间步长
n=1;%计数用R=sqrt((X_m-X_t)^2+(Y_m-Y_t)^2+(Z_m-Z_t)^2);  % 计算弹目相对距离
dR=-1;
while(dR<0)    %当弹目相对距离增大时,仿真停止dX_m=V_m*cos(theta_m)*cos(fea_m);dY_m=V_m*sin(theta_m);dZ_m=-V_m*cos(theta_m)*sin(fea_m);dX_t=V_t*cos(theta_t)*cos(fea_t);dY_t=V_t*sin(theta_t);dZ_t=-V_t*cos(theta_t)*sin(fea_t);dR=((X_m-X_t)*(dX_m-dX_t)+(Y_m-Y_t)*(dY_m-dY_t)+(Z_m-Z_t)*(dZ_m-dZ_t))/sqrt((X_m-X_t)^2+(Y_m-Y_t)^2+(Z_m-Z_t)^2);%-------------------------纵向通道------------------------------r1=sqrt((X_t-X_m)^2+(Y_t-Y_m)^2);  %r为x-y平面内导弹和目标间的距离delta_x=X_t-X_m;delta_y=Y_t-Y_m;Ddelta_x=V_t*cos(theta_t)*cos(fea_t)-V_m*cos(theta_m)*cos(fea_m);Ddelta_y=V_t*cos(theta_t)-V_m*cos(theta_m);Dxl1=(Ddelta_y*delta_x-Ddelta_x*delta_y)/(delta_x^2+delta_y^2);theta_l=atan(delta_y/delta_x);  %计算期望会合点的视线角Vx_los1=V_m*cos(fea_m)*cos(theta_m-theta_l)-V_t*cos(fea_t)*cos(theta_t-theta_l); Dxd1=(.1*Vx_los1*(theta_t-theta_l))/(N1*r1); Dtheta_c=N1*(Dxl1-Dxd1)*dt;  %无人机空中加油自主会合控制器设计-式(1)theta_m=theta_m+Dtheta_c;  %计算指令弹道倾角%-------------------------偏航通道------------------------------r2=sqrt((X_t-X_m)^2+(Z_t-Z_m)^2);  %r为x-z平面内两者间的距离delta_x=X_t-X_m;delta_z=Z_t-Z_m;Ddelta_x=V_t*cos(theta_t)*cos(fea_t)-V_m*cos(theta_m)*cos(fea_m);Ddelta_z=V_t*cos(theta_t)*sin(fea_t)-V_m*cos(theta_m)*sin(fea_m);Dxl=(Ddelta_z*delta_x-Ddelta_x*delta_z)/(delta_x^2+delta_z^2);chi_l=-atan(delta_z/delta_x);  %计算期望会合点的视线角Vx_los=V_m*cos(theta_m)*cos(fea_m-chi_l)-V_t*cos(theta_t)*cos(fea_t-chi_l); %式(3)Dxd=(80*Vx_los*(fea_t-chi_l))/(N2*r2); %式(2)Dfea_c=N2*(Dxl-Dxd)*dt;  %式(1)fea_m=fea_m+Dfea_c;  %计算指令航向角%----------------------------计算拦截弹坐标----------------------------X_m=X_m+V_m*cos(theta_m)*cos(fea_m)*dt;Y_m=Y_m+V_m*sin(theta_m)*dt;Z_m=Z_m-V_m*cos(theta_m)*sin(fea_m)*dt;%----------------------------计算目标弹坐标----------------------------X_t=X_t+V_t*cos(theta_t)*cos(fea_t)*dt;Y_t=Y_t+V_t*sin(theta_t)*dt;Z_t=Z_t-V_t*cos(theta_t)*sin(fea_t)*dt;R=sqrt((X_m-X_t)^2+(Y_m-Y_t)^2+(Z_m-Z_t)^2);%相对距离%-------------------------保存结果------------------------------theta_m_store(n)=theta_m;  %保存弹道倾角fea_m_store(n)=fea_m;   %保存弹道偏角   P_m_store(:,n)=[X_m;Y_m;Z_m]; %保存追踪器坐标P_t_store(:,n)=[X_t;Y_t;Z_t]; %保存目标坐标R_store(n)=R;%保存相对距离n=n+1;  %每循环一次,计数加一t=t+dt; %往前推进一个仿真步长
end
disp('脱靶量为(m):')
Rfigure(1)
plot((1:n-1)*dt,theta_m_store*180/pi)
xlabel('time/s')
ylabel('弹道倾角/deg')
title('末制导:弹道倾角变化情况')figure(2)
plot((1:n-1)*dt,fea_m_store(1,:)*180/pi)
xlabel('time/s')
ylabel('弹道偏角/deg')
title('末制导:弹道偏角变化情况')figure(3)%注意matlab三维坐标画图X、Y、Z轴方向与导弹飞行力学坐标系不同
plot3(P_m_store(1,:),P_m_store(3,:),P_m_store(2,:),P_t_store(1,:),P_t_store(3,:),P_t_store(2,:))
legend('追踪器运动轨迹','目标运动轨迹')
xlabel('X/m')
ylabel('-Z/m')
zlabel('Y/m')figure(4)
plot((1:n-1)*dt,R_store)
xlabel('time/s')
ylabel('相对距离/m')
title('相对距离变化情况')

三维纯比例制导源代码相关推荐

  1. 三维视频融合 开放源代码 混合模式 内嵌web容器 c++ js 混合开发 时空克隆引擎 数字孪生 点卯 系列 魔镜系列

    元宇宙的兴起,让以三维视频融合与三维投影融合为核心.以倾斜摄影和三维地图构筑的CIM作为托底的时空克隆引擎,成为时代的主流技术,以此打造了混合架构的魔镜平台 济南用魔镜打造元宇宙城市,难道是真的? 开 ...

  2. 比例导引律Matlab程序,是否有关于比例导引方面的仿真程序?

    本人想学习这方面的知识,上网看了一个类似代码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ...

  3. PID控制器(比例-积分-微分控制器)

    PID控制器(比例-积分-微分控制器)- I 形象解释PID算法 小明接到这样一个任务: 有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置, ...

  4. PID控制器(比例-积分-微分控制器)- I

    原文链接:https://www.cnblogs.com/shangdawei/p/4825259.html 形象解释PID算法 小明接到这样一个任务:有一个水缸点漏水(而且漏水的速度还不一定固定不变 ...

  5. PID(比例积分微分)介绍

    写在前面: 本文章旨在总结备份.方便以后查询,由于是个人总结,如有不对,欢迎指正:另外,内容大部分来自网络.书籍.和各类手册,如若侵权请告知,马上删帖致歉. 来源:http://blog.sina.c ...

  6. 数据挖掘之关联分析(实验展示以及源代码)

    数据挖掘之关联分析 算法实现:Apriori算法和FP-growth 算法 源代码 简单描述下,关联分析概念 关联分析概念主要参考下面的博文 原文:https://blog.csdn.net/qq_4 ...

  7. 现在常用的java框架有哪些

    java开发都是站在jar包这个巨人的肩膀上开发,速度更快. 各个web框架综合排名: 框架从何性能测试报告: In the following tests, we have measured the ...

  8. 动态规划常见类型总结

    本文针对动态规划的常见类型进行总结.虽说总结的是动态规划,但顺便把递推也放了进来.严格来说,递推不属于动态规划问题,因为动态规划不仅有递推过程,还要有决策(即取最优),但广义的动态规划是可以包含递推的 ...

  9. Planar Evasive Aircrafts Maneuvers Using Reinforcement Learning

    原文下载:https://download.csdn.net/download/qq_29675093/10950893 虽然是2012年的论文,但是无论从理论深度还是实用价值都不足.动作限定很死,左 ...

最新文章

  1. 《超越想象——Windows_8应用设计与开发》
  2. python 格式化方法 从其他信息构建字符串
  3. Uva12716 素数筛思想的应用
  4. 注意!!Redis使用不当真的可能会导致应用卡死
  5. Android Studio生成aar包的方法以及解压aar包的方法
  6. 学习笔记(35续):Python网络编程并发编程-基于gevent及线程池实现的并发套接字通讯
  7. 2017蓝桥杯决赛-发现环 数据结构|搜索
  8. python ctypes
  9. linux怎么使用git安装目录,Linux系统中怎么安装Git?
  10. nodejs连接池连接mysql
  11. 设计安全的账号系统的正确姿势
  12. Android使用google breakpad之minidump_stackwalk
  13. pyLDA系列︱gensim中带'监督味'的作者-主题模型(Author-Topic Model)
  14. X509证书结构及解析
  15. 计算机科学 加州研究生,加州大学洛杉矶分校计算机科学研究生学制几年?
  16. Springboot+Vue+Echarts实现51job大数据岗位分析数据大屏
  17. 正则表达式—————根据银行卡号判断银行名称
  18. Redis 面试面面观
  19. Java定义一个点日期MyDate,包含三个成员变量year、month、day 表示年、月、日,每个属性对应get和set方法,最后printDate()方法,按照“yyy~mm~dd”的形式输出
  20. 创建题库后Excel导入试题老是失败?人工导题服务上线啦~

热门文章

  1. 2019年中国外贸四大猜想
  2. 勒索预警,近期一大波新型勒索病毒来袭
  3. JUC练习代码-力扣多线程1126题目:哲学家进餐,解题详解
  4. python123官网注册账号申请_python_注册入口,登录
  5. Vue组件冒号:和@符号区别及介绍
  6. 检测网数据集标注即使用方法(猫狗数据集)
  7. 抖音年赚千万主播多是小学初中文化
  8. elementui 手动上传头像
  9. 【路由器有线桥接设置教程】
  10. Redis高级玩法之利用SortedSet实现多维度排序的方法