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

1.算法描述

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

 

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

 

       随着无人机行业的不断发展,无人机定位问题日益成为行业关注的焦点。传统无人机定位使用全球定位系统(globalpositioningsystemgps),但由于卫星的信号功率低,无法穿透建筑物等固体障碍,由于一些遮蔽物的存在,类似于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

 

  

 

posted @ 2023-02-23 12:11  我爱C编程  阅读(67)  评论(0编辑  收藏  举报