资源简介

运动物体的轨迹预测,分别使用卡尔曼滤波、扩展卡尔曼滤波、无迹卡尔曼滤波以及数据拟合方法实现。本例代码仅含数据拟合部分代码。 本例仅为本人在研究轨迹预测问题时为理解算法原理所写,针对具体问题请自行斟酌算法适用性。 本例代码详解后续会在本人博客中做具体说明,欢迎讨论!

资源截图

代码片段和文件信息

clear all
clc
%纬度
latitude = load(‘C:\workspace\matlab workspace\CES9937\latitude.txt‘);
%经度
longitude = load(‘C:\workspace\matlab workspace\CES9937\longitude.txt‘);
%每五对数据点做一次数据拟合
%以第六对数据点的纬度值作为基准点,计算经度值
%计算真实经度值和通过拟合曲线计算出的经度值之间的差值
%=================================================================
%真实值与拟合值之差
err_fit = [];
%用来做数据拟合的点集
data_fit_lat = [];
data_fit_lon = [];
%数据拟合得到的结果集
data_fit = [];
%对应的真实数据集合
data_real = [];
%拟合预测过程
for i = 1:length(latitude)
%当前用来做数据拟合的集合中有几组数据
    n = length(data_fit_lat);
    %当集合中的数据不满足拟合需要的最少数据点时,继续向集合中添加数据
    if n<=10
        data_fit_lat(n+1) = latitude(i);
        data_fit_lon(n+1) = longitude(i);
        continue
    end
    %当集合中的数据满足拟合需要的最少数据点时
    %曲线拟合
    if i        %最小二乘拟合-二阶拟合
        line_fit = polyfit(data_fit_latdata_fit_lon2);
        %通过拟合函数求下一时刻经度值
        lon_fit = polyval(line_fitlatitude(i+1));
        %保存结果
        df = length(data_fit);
        data_fit(df+1) = lon_fit;
        %计算预测值与真实值之间的差值
        m = length(err_fit);
        err_fit(m+1) = abs(longitude(i+1) - lon_fit);
        %记录真实值
        dr = length(data_real);
        data_real(dr+1) = longitude(i+1);
        %更新拟合数据
        data_fit_lat(1) = [];
        data_fit_lat(10) = latitude(i+1);
        data_fit_lon(1) = [];
        data_fit_lon(10) = longitude(i+1);
    end
end
%=================================================================
%绘制误差图
k = 1:length(err_fit);
figure
hold on;
grid on;
plot(kerr_fit‘k.‘);
xlabel(‘X‘);
ylabel(‘误差值‘);
title(‘拟合‘);
%绘制预测值与真实值曲线图
b = 1:length(data_real);
figure
hold on;
grid on;
plot(bdata_real‘g.-‘bdata_fit‘r.-‘);
xlabel(‘X‘);
ylabel(‘误差值‘);
title(‘拟合‘);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     153993  2018-07-24 16:28  CES9937\CES9937.docx

     文件       1825  2018-07-17 15:07  CES9937\latitude.txt

     文件       2051  2018-07-17 15:15  CES9937\longitude.txt

     文件        410  2018-07-17 11:16  CES9937\飞行数据-20组.txt

     文件       2000  2018-08-14 13:46  re_fit_4.m

     目录          0  2018-08-14 20:18  CES9937

----------- ---------  ---------- -----  ----

               160279                    6


评论

共有 条评论