声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2371|回复: 3

[航空航天] 用比例制导律拦截弹道导弹的仿真程序

[复制链接]
发表于 2010-10-10 22:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 kkkttt 于 2010-10-10 22:45 编辑
  1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  2. % PNGE.m

  3. % Proportional Navigation Guidance Emluator

  4. % 导弹拦截的比例制导仿真程序

  5. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  6. function [IT,MD,PT]=PNGE(MT,MTSD,ILP,ILD,IV,IAL,S)

  7. %用比例导引律仿真拦截器拦截来袭导弹的时间步长模拟算法

  8. % ChengAihua,PLA Information Engineering University,ZhengZhou,China

  9. % Email:aihuacheng@gmail.com

  10. % All rights reserved

  11. %比例导引律:拦截器速度向量的偏转角速度(法向过载)与目标视线的旋转角速度成正比

  12. %输入参数列表

  13. % MT Missile Track 来袭弹道导弹运动轨迹(N×3矩阵)

  14. % MTSD Missile Track's Sample Disdance 导弹轨迹采样时间间隔,兼仿真时间步长

  15. % ILP Interceptor's Launch Position 拦截器发射地点(1×3矩阵)

  16. % ILD Interceptor's Launch Direction 拦截器发射方向归一化向量(1×3矩阵)

  17. % IV Interceptor's Velocity 拦截器飞行速率

  18. % IAL Interceptor's Acceleration Limit 拦截器(角)加速度上限

  19. % S Scale 比例导引律中的比例系数

  20. %输出参数列表

  21. % IT Interceptor's Track 拦截器的运行轨迹

  22. % MD Miss Disdance 脱靶量

  23. % PT Pursuit Time 追踪时间

  24. % 程序还将绘出拦截器拦截导弹的空间轨迹曲线·

  25. %第一步:初始化

  26. XYZ1=MT(1,:);

  27. xyz1=ILP;

  28. XYZ2=MT(2,:);

  29. v1=ILD;

  30. counter=2

  31. IT=zeros(0,3);

  32. IT=[IT;xyz1];

  33. L1=xyz1-XYZ1;

  34. LL1=L1.^2;

  35. L1=L1./sqrt(sum(LL1));

  36. L2=xyz1-XYZ2;

  37. LL2=L2.^2;

  38. L2=L2./sqrt(sum(LL2));

  39. v2=v1+S.*(L1-L2);

  40. IA=(IV/MTSD).*(v2-v1);

  41. IA=sqrt(sum(IA.^2));

  42. if IA>IAL

  43. k=IAL/IA;

  44. v2=v1+(k*S).*(L1-L2);

  45. end

  46. vv2=v2.^2;

  47. v2=v2./sqrt(sum(vv2));

  48. xyz2=xyz1+(MTSD*IV).*v2;

  49. IT=[IT;xyz2];

  50. XYZ1=MT(2,:);

  51. XYZ2=MT(3,:);

  52. xyz1=xyz2;

  53. %下面是迭代过程

  54. while 1

  55. %第二步:计算视线方向向量

  56. L1=xyz1-XYZ1;

  57. LL1=L1.^2;

  58. L1=L1./sqrt(sum(LL1));

  59. L2=xyz1-XYZ2;

  60. LL2=L2.^2;

  61. L2=L2./sqrt(sum(LL2));

  62. %第三步:利用比例引导律计算v2

  63. v2=v1+S.*(L1-L2);

  64. %第四步:计算拦截器需要的偏转加速度

  65. IA=(IV/MTSD).*(v2-v1);

  66. IA=sqrt(sum(IA.^2));

  67. %第五步:如果需要的加速度超过拦截器加速度上限,则修正v2向量

  68. if IA>IAL

  69. k=IAL/IA;

  70. v2=v1+(k*S).*(L1-L2);

  71. end

  72. %第六步:计算xyz2

  73. vv2=v2.^2;

  74. v2=v2./sqrt(sum(vv2));%对v2做归一化处理

  75. xyz2=xyz1+(MTSD*IV).*v2;

  76. %第六步:记录和更新

  77. IT=[IT;xyz2];

  78. counter=counter+1;

  79. XYZ1=MT(counter,:);

  80. XYZ2=MT(counter+1,:);

  81. xyz1=xyz2;

  82. if IT(counter,3)>MT(counter,3)||IT(counter,3)>MT(counter-1,3)||IT(counter,3)>MT(counter-2,3)

  83. Len=size(IT,1);

  84. P1=IT(Len-1,:);

  85. P2=IT(Len,:);

  86. Q1=MT(Len,:);

  87. Q2=MT(Len+1,:);

  88. x1=P1(1);y1=P1(2);z1=P1(3);

  89. x2=Q1(1);y2=Q1(2);z2=Q1(3);

  90. l1=P1(1)-P2(1);m1=P1(2)-P2(2);n1=P1(3)-P2(3);

  91. l2=Q1(1)-Q2(1);m2=Q1(2)-Q2(2);n2=Q1(3)-Q2(3);

  92. A=[l1,m1;l2,m2];

  93. B=[m1,n1;m2,n2];

  94. C=[n1,l1;n2,l2];

  95. M=[x2-x1,y2-y1,z2-z1;l1,m1,n1;l2,m2,n2];

  96. MD=det(M)/(sqrt((det(A))^2+(det(B))^2+(det(C))^2));

  97. PT=(Len-1)*MTS*;

  98. %绘出导弹和拦截器的轨迹图

  99. %**p=1:10:971

  100. %plot3(MT(ppp,1),MT(ppp,2),MT(ppp,3),'ro-')

  101. plot3(MT(:,1),MT(:,2),MT(:,3),'r.-')

  102. grid on

  103. hold on

  104. %qqq=1:10:351

  105. %plot3(IT(qqq,1),IT(qqq,2),IT(qqq,3),'bo-')

  106. plot3(IT(:,1),IT(:,2),IT(:,3),'b-')

  107. return

  108. end

  109. end
复制代码
程序作者:aiwa
Email:cheng_aihua@163.com
Q Q:330264704
MSN:aihuacheng@hotmail.com
Google Talk:aihuacheng@gmail.com
版权归原作者所有
回复
分享到:

使用道具 举报

发表于 2011-4-2 21:10 | 显示全部楼层
看看谢谢 看看谢谢大家我好好学习啊
发表于 2013-12-9 23:57 | 显示全部楼层
发表于 2013-12-9 23:58 | 显示全部楼层
楼主能提供给我一些导弹的其他资料吗?nickycqu@163.com 我的邮箱 谢谢了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-23 19:31 , Processed in 0.068969 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表