当前位置:   article > 正文

无人机位置信息计算无人机的瞬时速度的matlab仿真_matlab无人机仿真

matlab无人机仿真

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

       无人机最早在20世纪20年代出现,1914年第一次世界大战正进行得如火如荼,英国的卡德尔和皮切尔两位将军,向英国军事航空学会提出了一项建议:研制一种不用人驾驶,而用无线电操纵的小型飞机,使它能够飞到敌方某一目标区上空,将事先装在小飞机上的炸弹投下去。这种大胆的设想立即得到当时英国军事航空学会理事长戴·亨德森爵士赏识。他指定由A.M.洛教授率领一班人马进行研制。无人机当时是作为训练用的靶机使用的。是一个许多国家用于描述最新一代无人驾驶飞机的术语。从字面上讲,这个术语可以描述从风筝,无线电遥控飞机,到V-1飞弹从发展来的巡航导弹,但是在军方的术语中仅限于可重复使用的比空气重的飞行器。

        无人机的航迹跟踪控制,主要通过无人机的飞行控制系统来实现。无人机之所以能发挥如此巨大的作用,除了在气动力、结构以及发动机方面取得了重大突破外,在无人机上安装有各种不同功能的飞行控制系统也是至关重要的。飞行控制系统一般由不同功能的分系统或部件组成,能够控制无人机重心运动(航迹运动)、角运动和飞行速度等,并能改善无人机飞行品质与保障无人机的飞行安全。其基本功能是实现无人机的自动飞行,改善无人机的动态性能。

       随着无人机行业的不断发展,无人机定位问题日益成为行业关注的焦点。传统无人机定位使用全球定位系统(globalpositioningsystem,gps),但由于卫星的信号功率低,无法穿透建筑物等固体障碍,由于一些遮蔽物的存在,类似于gps、北斗的卫星导航技术在室内场景下就无法应用了。

      利用飞行高度、姿态信息和成像帧频计算得到无人机的瞬时飞行速度.在无人机的匀速平飞段,通过大量数据拟合得到高精度的平均飞行速度。我们分别使用两点公式','三点公式','五点公式','样条求导对无人机的速度进行估计。

2.仿真效果预览

matlab2022a仿真结果如下:

3.MATLAB核心程序

  1. 。。。。。。。。。。。。。。。。。。。。。。。。。。。
  2. %第二张图,绘制误差
  3. subplot(1,2,2);
  4. plot(time_inter,error_two);
  5. hold on;
  6. plot(time_inter,error_three);
  7. hold on;
  8. plot(time_inter,error_five);
  9. hold on;
  10. plot(time_inter,error_spline);
  11. title('误差比较')
  12. xlabel('时间');
  13. ylabel('误差');
  14. legend('两点公式','三点公式','五点公式','样条求导');
  15. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  16. %两点公式,计算速度
  17. %传入路程的数组,返回相同大小的速度数组
  18. %路程的数组应该是递增的数组
  19. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  20. function result=two_point(list,step)
  21. %获取数组大小
  22. num=size(list);
  23. number=num(1);
  24. result=list;
  25. %除了最后一个速度,其它的速度都是后面的减去前面的路程再除以时间间隔
  26. for i=1:number-1
  27. result(i)= (list(i+1)-list(i))/step;
  28. end
  29. %最后一个速度等于前面的速度,这是两点法的缺陷
  30. result(number)=result(number-1);
  31. end
  32. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  33. %三点公式,计算速度
  34. %传入路程的数组,返回相同大小的速度数组
  35. %路程的数组应该是递增的数组
  36. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  37. function result=three_point(list,step)
  38. %获取数组大小
  39. num=size(list);
  40. number=num(1);
  41. result=list;
  42. %除了最后一个和第一个其它的都要用相邻两个点的数据来算
  43. for i=2:number-1
  44. result(i)=(list(i+1)-list(i-1))/(2*step);
  45. end
  46. %第一个点和最后一个点要分开计算
  47. result(1)=(list(1)*(-3)+list(2)*4-list(3))/(2*step);
  48. result(number)=(list(number-2)-4*list(number-1)+3*list(number))/(2*step);
  49. end
  50. 。。。。。。。。。。。。。。。。。
  51. A121

4.完整MATLAB

V

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/720468
推荐阅读
相关标签
  

闽ICP备14008679号