无人机位置信息计算无人机的瞬时速度的matlab仿真
1.算法描述
无人机最早在20世纪20年代出现,1914年第一次世界大战正进行得如火如荼,英国的卡德尔和皮切尔两位将军,向英国军事航空学会提出了一项建议:研制一种不用人驾驶,而用无线电操纵的小型飞机,使它能够飞到敌方某一目标区上空,将事先装在小飞机上的炸弹投下去。这种大胆的设想立即得到当时英国军事航空学会理事长戴·亨德森爵士赏识。他指定由A.M.洛教授率领一班人马进行研制。无人机当时是作为训练用的靶机使用的。是一个许多国家用于描述最新一代无人驾驶飞机的术语。从字面上讲,这个术语可以描述从风筝,无线电遥控飞机,到V-1飞弹从发展来的巡航导弹,但是在军方的术语中仅限于可重复使用的比空气重的飞行器。
无人机的航迹跟踪控制,主要通过无人机的飞行控制系统来实现。无人机之所以能发挥如此巨大的作用,除了在气动力、结构以及发动机方面取得了重大突破外,在无人机上安装有各种不同功能的飞行控制系统也是至关重要的。飞行控制系统一般由不同功能的分系统或部件组成,能够控制无人机重心运动(航迹运动)、角运动和飞行速度等,并能改善无人机飞行品质与保障无人机的飞行安全。其基本功能是实现无人机的自动飞行,改善无人机的动态性能。
随着无人机行业的不断发展,无人机定位问题日益成为行业关注的焦点。传统无人机定位使用全球定位系统(globalpositioningsystem,gps),但由于卫星的信号功率低,无法穿透建筑物等固体障碍,由于一些遮蔽物的存在,类似于gps、北斗的卫星导航技术在室内场景下就无法应用了。
利用飞行高度、姿态信息和成像帧频计算得到无人机的瞬时飞行速度.在无人机的匀速平飞段,通过大量数据拟合得到高精度的平均飞行速度。我们分别使用两点公式','三点公式','五点公式','样条求导对无人机的速度进行估计。
2.仿真效果预览
matlab2022a仿真结果如下:
3.MATLAB核心程序
%第二张图,绘制误差 subplot(1,2,2); plot(time_inter,error_two); hold on; plot(time_inter,error_three); hold on; plot(time_inter,error_five); hold on; plot(time_inter,error_spline); title('误差比较') xlabel('时间'); ylabel('误差'); legend('两点公式','三点公式','五点公式','样条求导'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %两点公式,计算速度 %传入路程的数组,返回相同大小的速度数组 %路程的数组应该是递增的数组 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function result=two_point(list,step) %获取数组大小 num=size(list); number=num(1); result=list; %除了最后一个速度,其它的速度都是后面的减去前面的路程再除以时间间隔 for i=1:number-1 result(i)= (list(i+1)-list(i))/step; end %最后一个速度等于前面的速度,这是两点法的缺陷 result(number)=result(number-1); end