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

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整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
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%三点公式,计算速度
%传入路程的数组,返回相同大小的速度数组
%路程的数组应该是递增的数组
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function result=three_point(list,step)
%获取数组大小
num=size(list);
number=num(1);
 
result=list;
 
%除了最后一个和第一个其它的都要用相邻两个点的数据来算
for i=2:number-1
    result(i)=(list(i+1)-list(i-1))/(2*step);
end
 
%第一个点和最后一个点要分开计算
result(1)=(list(1)*(-3)+list(2)*4-list(3))/(2*step);
result(number)=(list(number-2)-4*list(number-1)+3*list(number))/(2*step);
 
end
。。。。。。。。。。。。。。。。。
A121

4.完整MATLAB

V

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱C编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值