基于非线性最小二乘法 (NLLS) 实现伪距数据的 UAV 轨迹跟踪附matlab代码

简介: 基于非线性最小二乘法 (NLLS) 实现伪距数据的 UAV 轨迹跟踪附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

This project consists of two primary tasks. The first is to use non-linear least squares (NLLS) analysis to find a UAV trajectory given pseudorange data and validating this result by matching them to the true UAV trajectory (also given). The second is to calculate the dilution of precision (DOP) of the calculated UAV trajectory.

The DOP is a measure of the accuracy of any given GPS position data. Five different types of 1 DOPs will be calculated: Geometric DOP, Position DOP, Horizontal DOP, Vertical DOP and time DOP. They are a function of the variances in x,y,z,t (clock bias) components: Vx , Vy , Vz & Vt .Geometric DOP is the error due to the geometric orientation of the satellites in space. Position DOP is the error in the 3D position of the UAV. Horizontal DOP is the error in the horizontal position of the UAV while Vertical DOP is the error in the altitude of the UAV. Time DOP is the error due to the time accuracy.

The lower the DOP values, the better the instantaneous position measurement of the UAV. A good GDOP or PDOP is considered to be <5 while values >10 for PDOP are very poor. HDOP is expected to be between 2-3. VDOP is expected to be higher than HDOP as a result of all the satellites being above the receiver whereas for the horizontal coordinates, data is received from all sides of the UAV.

GPS Positioning Problem

Suppose a receiver is located on a flat 2D earth. Two GPS satellites can be used to pinpoint its location on earth, provided that if the range of the two satellites is represented by a circle there will be two intersections, of which only one will be located on earth. This is given no range error. Suppose there is a range error in GPS gps satellites, the intersection of the two range circles will now have shifted, resulting in an incorrect position estimation of the receiver on the earth.

This issue can be resolved by having a third GPS satellite resolve the location of the receiver. Provided that all GPS satellites have the same clock/range error, all three range circle will intersect at the receiver position. This can be used to calculate the clock bias, hence the range error. Similarly in 3D space, we need four satellites to pinpoint receiver location.

⛄ 部分代码

% Clear workspace, close all open figure & clear the command windowclear allclose all;clc;% Extract the data from the text file% Add other folders to pathaddpath('../data', '../lib/', '../lib/conversion');% Load constantsconstants();% Initialise Ground Station Position% Defining Sydney Ground Station Coordinateslat        = deg2rad(-34.76);long       = deg2rad(150.03);alt        = 680;pos_llh_gs = [lat;long;alt];% File Nameuav_data_fpath = 'UAVPosition_F1.txt';% Import pseudorange datapseudo_data = importdata('GPS_pseudorange_F1.txt');% Load ECEF position values of satellitesload ECEFPos%% Categorising time values% Vernal Equinox timeequinox_time = 7347737.336;% Store time datatimes     = pseudo_data(:,1) - equinox_time;% Obtain the unique time values% nTimes is an array containing the total number of occurences of single time% value% timeVal is an array containing all unique timevalues[total_occurences time_values] = hist(times(:),unique(times));% Cummulative Time Arraycummulative_times = cumsum(total_occurences);% Increment time values% timeVal = timeVal + 1;%% Observed UAV Positions% Obtain the polar coordinates of UAV w.r.t Ground Station[pos_UAV_Cart_obs,pos_UAV_Pol_Obs, pos_ECEF_gs, UAVVel, UAVPos] = UAVpolarCoor(time_values,...                                         cummulative_times, pseudo_data, ECEFPos, pos_llh_gs);%% Extract true UAV Position data from text files% % Obtain polar coordinates of true measurements[pos_UAV_Pol_True, pos_UAV_Cart_True] = extractUAVtrue(uav_data_fpath,equinox_time);%% Catalog the position of the satellites during UAV Tracking% Find satellite position w.r.t ground station[pos_Sat_Pol_Obs] = findSatPos(ECEFPos, pos_ECEF_gs, pos_llh_gs);%% Calculate the DOP for each time value% Calculate the best and worst satellite configurations according to DOP[bestSatConfig, worstSatConfig, DOP, maxDOPIndex, minDOPIndex] = findDOP(UAVVel, pos_Sat_Pol_Obs);%% Save relevant data as a structured array for plottingplotData.timeArray         = times;plotData.pos_UAV_Cart_obs  = pos_UAV_Cart_obs;plotData.pos_UAV_Pol_Obs   = pos_UAV_Pol_Obs;plotData.pos_ECEF_gs       = pos_ECEF_gs;plotData.UAVVel            = UAVVel;plotData.UAVPos            = UAVPos;plotData.pos_UAV_Pol_True  = pos_UAV_Pol_True;plotData.pos_UAV_Cart_True = pos_UAV_Cart_True;plotData.pos_Sat_Pol_Obs   = pos_Sat_Pol_Obs;plotData.bestSatConfig     = bestSatConfig;plotData.worstSatConfig    = worstSatConfig;plotData.DOP               = DOP;plotData.maxDOPIndex       = maxDOPIndex;plotData.minDOPIndex       = minDOPIndex;plotData.nTimes            = total_occurences;plotData.pseudo_data       = pseudo_data;plotData.cumArray          = cummulative_times;%% Plot graphsplotq1B(plotData)

⛄ 运行结果

⛄ 参考文献

[1] 强明辉,张京娥.基于MATLAB的递推最小二乘法辨识与仿真[J].自动化与仪器仪表, 2008(6):3.DOI:10.3969/j.issn.1001-9227.2008.06.002.

[2] 熊学亮,陈淑娟,汤万龙.应用最小二乘法实现新疆建筑气象参数数据拟合[J].数学学习与研究, 2016(20):2.DOI:CNKI:SUN:SXYG.0.2016-20-130.

[3] 王海鹏,赵莉,王殿生,等.基于MATLAB的均匀设计实验数据多元非线性最小二乘拟合[J].化学工程与装备, 2010(9):4.DOI:10.3969/j.issn.1003-0735.2010.09.011.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料

🍅 仿真咨询

1.卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
2.图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
3.旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划
4.无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
5.传感器部署优化、通信协议优化、路由优化、目标定位
6.信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号
7.生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化
8.微电网优化、无功优化、配电网重构、储能配置
9.元胞自动机交通流 人群疏散 病毒扩散 晶体生长


相关文章
|
3天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
3天前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
3天前
|
算法 数据安全/隐私保护
matlab程序,傅里叶变换,频域数据,补零与不补零傅里叶变换
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
3天前
|
数据安全/隐私保护
matlab 曲线光滑,去毛刺,去离群值,数据滤波,高通滤波,低通滤波,带通滤波,带阻滤波
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
3天前
|
数据安全/隐私保护
时域与频域数据互相转换,傅里叶变换与逆傅里叶变换,matlab程序,时域转频域
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
3天前
|
算法 调度
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
|
3天前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
3天前
|
运维 算法
基于改进遗传算法的配电网故障定位(matlab代码)
基于改进遗传算法的配电网故障定位(matlab代码)
|
3天前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)

热门文章

最新文章