基于非线性最小二乘法 (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.元胞自动机交通流 人群疏散 病毒扩散 晶体生长


相关文章
|
8天前
|
算法
基于Adaboost模型的数据预测和分类matlab仿真
AdaBoost(Adaptive Boosting)是一种由Yoav Freund和Robert Schapire于1995年提出的集成学习方法,旨在通过迭代训练多个弱分类器并赋予分类效果好的弱分类器更高权重,最终构建一个强分类器。该方法通过逐步调整样本权重,使算法更关注前一轮中被误分类的样本,从而逐步优化模型。示例代码在MATLAB 2022A版本中运行,展示了随着弱分类器数量增加,分类错误率的变化及测试数据的分类结果。
|
2月前
|
机器学习/深度学习 算法 数据处理
基于最小二乘法的太阳黑子活动模型参数辨识和预测matlab仿真
本项目基于最小二乘法,利用Matlab对太阳黑子活动进行模型参数辨识和预测。通过分析过去288年的观测数据,研究其11年周期规律,实现对太阳黑子活动周期性的准确建模与未来趋势预测。适用于MATLAB2022a版本。
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
226 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
142 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
3月前
|
算法
基于ACO蚁群优化的UAV最优巡检路线规划算法matlab仿真
该程序基于蚁群优化算法(ACO)为无人机(UAV)规划最优巡检路线,将无人机视作“蚂蚁”,巡检点作为“食物源”,目标是最小化总距离、能耗或时间。使用MATLAB 2022a版本实现,通过迭代更新信息素浓度来优化路径。算法包括初始化信息素矩阵、蚂蚁移动与信息素更新,并在满足终止条件前不断迭代,最终输出最短路径及其长度。
|
5月前
|
算法
基于kalman滤波的UAV三维轨迹跟踪算法matlab仿真
本文介绍了一种使用卡尔曼滤波(Kalman Filter)对无人飞行器(UAV)在三维空间中的运动轨迹进行预测和估计的方法。该方法通过状态预测和观测更新两个关键步骤,实时估计UAV的位置和速度,进而生成三维轨迹。在MATLAB 2022a环境下验证了算法的有效性(参见附图)。核心程序实现了状态估计和误差协方差矩阵的更新,并通过调整参数优化滤波效果。该算法有助于提高轨迹跟踪精度和稳定性,适用于多种应用场景,例如航拍和物流运输等领域。
363 12
|
4月前
|
算法 5G vr&ar
基于1bitDAC的MU-MIMO的非线性预编码算法matlab性能仿真
在现代无线通信中,1-bit DAC的非线性预编码技术应用于MU-MIMO系统,旨在降低成本与能耗。本文采用MATLAB 2022a版本,深入探讨此技术,并通过算法运行效果图展示性能。核心代码支持中文注释与操作指导。理论部分包括信号量化、符号最大化准则,并对比ZF、WF、MRT及ADMM等算法,揭示了在1-bit量化条件下如何优化预编码以提升系统性能。
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
111 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
5月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于Qlearning强化学习的小车弧线轨迹行驶控制matlab仿真
**MATLAB 2022a仿真实现Q-learning控制小车弧线行驶,展示学习过程及奖励变化。Q-learning是无模型强化学习算法,学习最优策略以稳定行驶。环境建模为二维平面,状态包括位置、朝向,动作涵盖转向、速度。奖励函数鼓励保持在轨迹上,用贝尔曼方程更新Q表。MATLAB代码动态显示轨迹及奖励随训练改善。**
97 15
|
5月前
|
机器学习/深度学习 算法 数据挖掘
基于改进K-means的网络数据聚类算法matlab仿真
**摘要:** K-means聚类算法分析,利用MATLAB2022a进行实现。算法基于最小化误差平方和,优点在于简单快速,适合大数据集,但易受初始值影响。文中探讨了该依赖性并通过实验展示了随机初始值对结果的敏感性。针对传统算法的局限,提出改进版解决孤点影响和K值选择问题。代码中遍历不同K值,计算距离代价,寻找最优聚类数。最终应用改进后的K-means进行聚类分析。

热门文章

最新文章