机载 ARAIM 算法测试技术研究附matlab代码

简介: 机载 ARAIM 算法测试技术研究附matlab代码

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

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

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

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

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

⛄ 内容介绍

Advanced Receiver Autonomous Integrity Monitoring (ARAIM) algorithm is used to improve GNSS service quality in aviation applications. Previous researches mostly focus on the MATLAB simulation of the algorithm. This research is about the ARAIM algorithm test based on the real flight data. An airborne ARAIM algorithm testing technology based on UAV platform is established to verify the feasibility of the airborne ARAIM algorithm. The UAV platform is built to carry the receiver and the airborne computer. The real-time airborne software is based on the ARAIM algorithm and the raw measurements obtained from ComNav M300-G Mini GNSS receiver. The results show that the ARAIM test platform can accommodate test of the airborne ARAIM algorithm in various scenarios and the usability of BDS+GPS airborne ARAIM algorithm is verified in the test.

⛄ 部分代码


%MAIN_ARAIM_MAAST runs maast for ARAIM.

% all settings are edited in this file (RAIM ISM parameters, the user grid, the constellation

%configuration, and the receiver settings)

%allows for repeatable and recorded runs

%The parameters are described in: Blanch, J., Walter, T., Enge, P., Lee, Y., Pervan, B., Rippl, M., Spletter, A., Kropp, V.,

%"Baseline Advanced RAIM User Algorithm and Possible Improvements," IEEE Transactions on Aerospace and Electronic Systems,

%Volume 51,  No. 1, January 2015.


%In the position optimization option, the code attempts to lower the

%protection levels by applying the method described in:

% Blanch, J., Walter, T., Enge, P., Kropp, V.,擜 Simple Position Estimator that Improves Advanced RAIM Performance,�

% IEEE Transactions on Aerospace and Electronic Systems Vol. 51, No. 3, July 2015.

%Some of the constants might be set to a different value than in the paper


%The protection levels are computed following the algorithm described in

%the ARAIM Airborne Algorithm Algorithm Description Document v3.0


% global TRUTH_FLAG

%

% global BRAZPARAMS RTR_FLAG IPP_SPREAD_FLAG


global ARAIM_URA_GPS ARAIM_URA_GLO ARAIM_URA_GAL ARAIM_URA_BDU ...

   ARAIM_BIAS_GPS ARAIM_BIAS_GLO ARAIM_BIAS_GAL ARAIM_BIAS_BDU


global ARAIM_URE_GPS ARAIM_URE_GLO ARAIM_URE_GAL ARAIM_URE_BDU ...

   ARAIM_BIAS_CONT_GPS ARAIM_BIAS_CONT_GLO ARAIM_BIAS_CONT_GAL ARAIM_BIAS_CONT_BDU


global ARAIM_PSAT_GPS ARAIM_PSAT_GAL ARAIM_PSAT_GLO ARAIM_PSAT_BDU ...

   ARAIM_PCONST_GPS ARAIM_PCONST_GAL ARAIM_PCONST_GLO ARAIM_PCONST_BDU


global PHMI_VERT PHMI_HOR P_THRES PFA_VERT PFA_HOR P_EMT PL_TOL FC_THRES ...

   PL0_FDE FDE_FLAG FDE_WF_FLAG


%global P_EMT_NEW

global SIG_ACC_MAX_VERT

global SIG_ACC_MAX_HOR1 SIG_ACC_MAX_HOR2

global VPLT HPLT EMTT ATTEMPT_OPT


global ARAIM_USRMASK_GPS ARAIM_USRMASK_GLO ARAIM_USRMASK_GAL ARAIM_USRMASK_BDU

global ARAIM_SIN_USRMASK_GPS ARAIM_SIN_USRMASK_GLO ARAIM_SIN_USRMASK_GAL

global ARAIM_SIN_USRMASK_BDU PFAULT_EXC_THRES





%Integrity Support Message parameters

ARAIM_URA_GPS = 1;

ARAIM_URA_GAL = 1;

ARAIM_URA_GLO = 1;

ARAIM_URA_BDU = Inf;


ARAIM_BIAS_GPS = .75;

ARAIM_BIAS_GAL = .75;

ARAIM_BIAS_GLO = .75;

ARAIM_BIAS_BDU = Inf;


ARAIM_URE_GPS = 2/3*ARAIM_URA_GPS;

ARAIM_URE_GAL = 2/3*ARAIM_URA_GAL;

ARAIM_URE_GLO = 2/3*ARAIM_URA_GLO;

ARAIM_URE_BDU = Inf;


ARAIM_BIAS_CONT_GPS = 0;

ARAIM_BIAS_CONT_GAL = 0;

ARAIM_BIAS_CONT_GLO = 0;

ARAIM_BIAS_CONT_BDU = 0;


ARAIM_PSAT_GPS = 1e-5;

ARAIM_PSAT_GAL = 1e-5;

ARAIM_PSAT_GLO = 1e-3;

ARAIM_PSAT_BDU = 1;


ARAIM_PCONST_GPS = 1e-8; %For H-ARAIM, PCONST_GPS can be set to 10^-8

ARAIM_PCONST_GAL = 1e-4;

ARAIM_PCONST_GLO = 1e-4;

ARAIM_PCONST_BDU = 1;


FDE_FLAG = 0; %Computes worst case PLs,EMT, sig_acc under a fault or outage scenario. In this version, only single outages and faults are taken into account for the continuity assessment.

%Probability of failed exclusion is set at PFA


FDE_WF_FLAG = 0;


PL0_FDE = 0; %When FDE_FLAG is off,and this flag is on the PLS are computed assuming that some of the integrity budget is reserved for the exclusion function



%Mask angles


ARAIM_USRMASK_GPS = 5;

ARAIM_USRMASK_GLO = 5;

ARAIM_USRMASK_GAL = 5;

ARAIM_USRMASK_BDU = 5;


ARAIM_SIN_USRMASK_GPS = sin(ARAIM_USRMASK_GPS*pi/180);

ARAIM_SIN_USRMASK_GLO = sin(ARAIM_USRMASK_GLO*pi/180);

ARAIM_SIN_USRMASK_GAL = sin(ARAIM_USRMASK_GAL*pi/180);

ARAIM_SIN_USRMASK_BDU = sin(ARAIM_USRMASK_BDU*pi/180);


%ARAIM receiver parameters


%Vertical-ARAIM

PHMI_VERT = 9.8e-8;

P_THRES = 6e-8;

PFA_VERT = 3.9e-6;

PFA_HOR  = 0.9e-6;

PL_TOL = 1e-2;

PHMI_HOR = 2e-9;

P_EMT = 1e-5;

FC_THRES = .01;


VPLT = 35;

HPLT = 40;

EMTT = 15;

%

SIG_ACC_MAX_VERT = 1.86;

SIG_ACC_MAX_HOR1 = 3;  %Do not set to infinite

SIG_ACC_MAX_HOR2 = 3;  %Do not set to infinite



% Horizontal-ARAIM


% PHMI_VERT = 0.1e-8;

% P_THRES = 6e-8;

% PFA_VERT = .01e-7;

% PFA_HOR  = 1e-7;

% PL_TOL = 1e-2;

% PHMI_HOR = 9.9e-8;

% P_EMT = 1e-5;

% FC_THRES = .01;

%

% %

% VPLT = Inf;

% HPLT = 185;

% EMTT = Inf;

%

% SIG_ACC_MAX_VERT = 10;

% SIG_ACC_MAX_HOR1 = 10;  %Do not set to infinite

% SIG_ACC_MAX_HOR2 = 10;  %Do not set to infinite




ATTEMPT_OPT = 1; %determines whether we attempt to optimize the position estimation:

% ATTEMPT_OPT = 0: no optimization

% ATTEMPT_OPT = 1: 1-dimensional optimization




%%%%%%%%

% SV Menu

%WGC scenarios


%svfile = {'almmops-1.txt','almanac Galileo 24-1 Week 703.alm.txt'};

%svfile = {'almmops.txt','almanac Galileo 24 Week 703.alm.txt','almglonass.txt'};

svfile = {'almmops.txt','almanac Galileo 24 Week 703.alm.txt'};

%svfile ={'almgps24+3.txt','almanac Galileo 24 + 3 Spare Week 703.alm.txt'};

%svfile ={'almgps24+3.txt','almanac Galileo 24 + 8 Spare Week 703.alm.txt'};

%svfile = {'almmops-1.txt'};

%svfile = {'almmops.txt'};

%svfile ={'almgps24+3.txt'};

%svfile = {'almmops_22.txt'};


%Other scenarios


%svfile = {'current.txt'};

%svfile =  {'almmops.txt','almgalileo.txt','almglonass.txt'};

% svfile =  {'almmops.txt','almgalileo24.txt'};


init_const;      % global physical and gps constants

init_col_labels; % column indices

init_mops;       % MOPS constants


close all;



%User signals:

% dual_freq = 0 : L1 only

% dual_freq = 1 : L1-L5

% dual_freq = 2 : L5 only



dual_freq = 1;



% USER CNMP Menu


%select AAD-B model

usrcnmpfun = 'af_cnmp_mops';

init_cnmp_mops;


%select AAD-A model

%      usrcnmpfun = 'af_cnmpaad';

%      init_aada;


%select AAD-B model

%      usrcnmpfun = 'af_cnmpaad';

%      init_aadb;





% USER Menu

%select the world as the user area

usrpolyfile = 'usrworld.dat';

usrlatstep = 10;

usrlonstep = 10;


%Start time for simulation

TStart = 0;


%End time for simulation

%TEnd = 862200;

TEnd = 86400;


% Size of time step

TStep = 300;


%select CONUS as the user area

%      usrpolyfile = 'usrconus.dat';


%select Alaska as the user area

%      usrpolyfile = 'usralaska.dat';


%select Canada as the user area

%      usrpolyfile = 'usrcanada.dat';


%select Mexico as the user area

%      usrpolyfile = 'usrmexico.dat';


%select North America as the user area

%usrpolyfile = 'usrn_america.dat';


%select Europe as the user area

%      usrpolyfile = 'usreurope.dat';


%select Japan as the user area

%      usrpolyfile = 'usrmsas.dat';


%select Brazil as the user area

%      usrpolyfile = 'usrbrazil.dat';







% check if file(s) exist

i=1;

while i<=size(svfile,2)

   if iscell(svfile)

       fid=fopen(svfile{i});

   else

       fid=fopen(svfile);

       i = size(svfile,2);

   end

   if fid==-1

       fprintf('Almanac file not found.  Please try again.\n');

       return;

   else

       fclose(fid);

   end

   i=i+1;

end






% Mode / Alert limit


%choose PA mode vs NPA

pa_mode = 1;


%choose VAL, HAL, EMT Threshold, and sigma accuracy threshold

vhal = [35, 40, 15, 1.87];

%vhal = [Inf, 1668];


% OUTPUT Menu


%initialize histograms

%init_hist;




% turn on or off output options

%1: Availability  2: V/HPL  3: EMT  4: sig_acc


outputs = [1 1 1 1];


% Assign percentage

percent = 0.995; % 1 = 100%


% Coverage values computed for users with |lat|<lamax

latmax = 90/90*pi/2;



% WRS Menu (not used in ARAIM)


%wrsfile = 'wrs_foc.dat';




% RUN Simulation


svmrun(usrcnmpfun,usrpolyfile, svfile, TStart, TEnd, ...

   TStep, usrlatstep, usrlonstep, outputs, percent, vhal, ...

   pa_mode, dual_freq, latmax);

⛄ 运行结果

⛄ 参考文献

[1]  Blanch J ,  Phelts R E ,  Chen Y H , et al. Initial Results of a Multi-Constellation ARAIM Airborne Prototype[C]// 2017 International Technical Meeting of The Institute of Navigation. 2017.

[2]  Wang S ,  Zhan X ,  Zhang X . Research on airborne ARAIM algorithm testing technology based on UAV platform[J]. Measurement & Control Technology, 2018.

[3] 王士壮战兴群张欣梅浩. 基于UAV的ARAIM测试技术研究[J]. 测控技术, 2018, 37(5):24-28.

⛳️ 完整代码

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



相关文章
|
1天前
|
传感器 算法
基于GA遗传算法的多机无源定位系统GDOP优化matlab仿真
本项目基于遗传算法(GA)优化多机无源定位系统的GDOP,使用MATLAB2022A进行仿真。通过遗传算法的选择、交叉和变异操作,迭代优化传感器配置,最小化GDOP值,提高定位精度。仿真输出包括GDOP优化结果、遗传算法收敛曲线及三维空间坐标点分布图。核心程序实现了染色体编码、适应度评估、遗传操作等关键步骤,最终展示优化后的传感器布局及其性能。
|
2天前
|
机器学习/深度学习 算法 安全
基于深度学习的路面裂缝检测算法matlab仿真
本项目基于YOLOv2算法实现高效的路面裂缝检测,使用Matlab 2022a开发。完整程序运行效果无水印,核心代码配有详细中文注释及操作视频。通过深度学习技术,将目标检测转化为回归问题,直接预测裂缝位置和类别,大幅提升检测效率与准确性。适用于实时检测任务,确保道路安全维护。 简介涵盖了算法理论、数据集准备、网络训练及检测过程,采用Darknet-19卷积神经网络结构,结合随机梯度下降算法进行训练。
|
3天前
|
算法 数据可视化 数据安全/隐私保护
一级倒立摆平衡控制系统MATLAB仿真,可显示倒立摆平衡动画,对比极点配置,线性二次型,PID,PI及PD五种算法
本课题基于MATLAB对一级倒立摆控制系统进行升级仿真,增加了PI、PD控制器,并对比了极点配置、线性二次型、PID、PI及PD五种算法的控制效果。通过GUI界面显示倒立摆动画和控制输出曲线,展示了不同控制器在偏转角和小车位移变化上的性能差异。理论部分介绍了倒立摆系统的力学模型,包括小车和杆的动力学方程。核心程序实现了不同控制算法的选择与仿真结果的可视化。
31 15
|
3天前
|
算法
基于SOA海鸥优化算法的三维曲面最高点搜索matlab仿真
本程序基于海鸥优化算法(SOA)进行三维曲面最高点搜索的MATLAB仿真,输出收敛曲线和搜索结果。使用MATLAB2022A版本运行,核心代码实现种群初始化、适应度计算、交叉变异等操作。SOA模拟海鸥觅食行为,通过搜索飞行、跟随飞行和掠食飞行三种策略高效探索解空间,找到全局最优解。
|
5天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
29 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
7天前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
51 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
1月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
1月前
|
存储 测试技术 数据库
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。
|
1月前
|
Web App开发 JSON 测试技术
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。
|
2月前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
135 11

热门文章

最新文章