function [out_profile,out_errors,out_IMU_bias_est,out_clock,out_KF_SD] =...
Tightly_coupled_INS_GNSS(in_profile,no_epochs,initialization_errors,...
IMU_errors,GNSS_config,TC_KF_config)
%Tightly_coupled_INS_GNSS - Simulates inertial navigation using ECEF
% navigation equations and kinematic model, GNSS and tightly coupled
% INS/GNSS integration.
%
% Software for use with "Principles of GNSS, Inertial, and Multisensor
% Integrated Navigation Systems," Second Edition.
%
% This function created 12/4/2012 by Paul Groves
%
% Inputs:
% in_profile True motion profile array
% no_epochs Number of epochs of profile data
% initialization_errors
% .delta_r_eb_n position error resolved along NED (m)
% .delta_v_eb_n velocity error resolved along NED (m/s)
% .delta_eul_nb_n attitude error as NED Euler angles (rad)
% IMU_errors
% .delta_r_eb_n position error resolved along NED (m)
% .b_a Accelerometer biases (m/s^2)
% .b_g Gyro biases (rad/s)
% .M_a Accelerometer scale factor and cross coupling errors
% .M_g Gyro scale factor and cross coupling errors
% .G_g Gyro g-dependent biases (rad-sec/m)
% .accel_noise_root_PSD Accelerometer noise root PSD (m s^-1.5)
% .gyro_noise_root_PSD Gyro noise root PSD (rad s^-0.5)
% .accel_quant_level Accelerometer quantization level (m/s^2)
% .gyro_quant_level Gyro quantization level (rad/s)
% GNSS_config
% .epoch_interval Interval between GNSS epochs (s)
% .init_est_r_ea_e Initial estimated position (m; ECEF)
% .no_sat Number of satellites in constellation
% .r_os Orbital radius of satellites (m)
% .inclination Inclination angle of satellites (deg)
% .const_delta_lambda Longitude offset of constellation (deg)
% .const_delta_t Timing offset of constellation (s)
% .mask_angle Mask angle (deg)
% .SIS_err_SD Signal in space error SD (m)
% .zenith_iono_err_SD Zenith ionosphere error SD (m)
% .zenith_trop_err_SD Zenith troposphere error SD (m)
% .code_track_err_SD Code tracking error SD (m)
% .rate_track_err_SD Range rate tracking error SD (m/s)
% .rx_clock_offset Receiver clock offset at time=0 (m)
% .rx_clock_drift Receiver clock drift at time=0 (m/s)
% TC_KF_config
% .init_att_unc Initial attitude uncertainty per axis (rad)
% .init_vel_unc Initial velocity uncertainty per axis (m/s)
% .init_pos_unc Initial position uncertainty per axis (m)
% .init_b_a_unc Initial accel. bias uncertainty (m/s^2)
% .init_b_g_unc Initial gyro. bias uncertainty (rad/s)
% .init_clock_offset_unc Initial clock offset uncertainty per axis (m)
% .init_clock_drift_unc Initial clock drift uncertainty per axis (m/s)
% .gyro_noise_PSD Gyro noise PSD (rad^2/s)
% .accel_noise_PSD Accelerometer noise PSD (m^2 s^-3)
% .accel_bias_PSD Accelerometer bias random walk PSD (m^2 s^-5)
% .gyro_bias_PSD Gyro bias random walk PSD (rad^2 s^-3)
% .clock_freq_PSD Receiver clock frequency-drift PSD (m^2/s^3)
% .clock_phase_PSD Receiver clock phase-drift PSD (m^2/s)
% .pseudo_range_SD Pseudo-range measurement noise SD (m)
% .range_rate_SD Pseudo-range rate measurement noise SD (m/s)
%
% Outputs:
% out_profile Navigation solution as a motion profile array
% out_errors Navigation solution error array
% out_IMU_bias_est Kalman filter IMU bias estimate array
% out_clock GNSS Receiver clock estimate array
% out_KF_SD Output Kalman filter state uncertainties
%
% Format of motion profiles:
% Column 1: time (sec)
% Column 2: latitude (rad)
% Column 3: longitude (rad)
% Column 4: height (m)
% Column 5: north velocity (m/s)
% Column 6: east velocity (m/s)
% Column 7: down velocity (m/s)
% Column 8: roll angle of body w.r.t NED (rad)
% Column 9: pitch angle of body w.r.t NED (rad)
% Column 10: yaw angle of body w.r.t NED (rad)
%
% Format of error array:
% Column 1: time (sec)
% Column 2: north position error (m)
% Column 3: east position error (m)
% Column 4: down position error (m)
% Column 5: north velocity error (m/s)
% Column 6: east velocity error (m/s)
% Column 7: down velocity (error m/s)
% Column 8: attitude error about north (rad)
% Column 9: attitude error about east (rad)
% Column 10: attitude error about down = heading error (rad)
%
% Format of output IMU biases array:
% Column 1: time (sec)
% Column 2: estimated X accelerometer bias (m/s^2)
% Column 3: estimated Y accelerometer bias (m/s^2)
% Column 4: estimated Z accelerometer bias (m/s^2)
% Column 5: estimated X gyro bias (rad/s)
% Column 6: estimated Y gyro bias (rad/s)
% Column 7: estimated Z gyro bias (rad/s)
%
% Format of receiver clock array:
% Column 1: time (sec)
% Column 2: estimated clock offset (m)
% Column 3: estimated clock drift (m/s)
%
% Format of KF state uncertainties array:
% Column 1: time (sec)
% Column 2: X attitude error uncertainty (rad)
% Column 3: Y attitude error uncertainty (rad)
% Column 4: Z attitude error uncertainty (rad)
% Column 5: X velocity error uncertainty (m/s)
% Column 6: Y velocity error uncertainty (m/s)
% Column 7: Z velocity error uncertainty (m/s)
% Column 8: X position error uncertainty (m)
% Column 9: Y position error uncertainty (m)
% Column 10: Z position error uncertainty (m)
% Column 11: X accelerometer bias uncertainty (m/s^2)
% Column 12: Y accelerometer bias uncertainty (m/s^2)
% Column 13: Z accelerometer bias uncertainty (m/s^2)
% Column 14: X gyro bias uncertainty (rad/s)
% Column 15: Y gyro bias uncertainty (rad/s)
% Column 16: Z gyro bias uncertainty (rad/s)
% Column 17: clock offset uncertainty (m)
% Column 18: clock drift uncertainty (m/s)
% Copyright 2012, Paul Groves
% License: BSD; see license.txt for details
% Begins
% Initialize true navigation solution
old_time = in_profile(1,1);
true_L_b = in_profile(1,2);
true_lambda_b = in_profile(1,3);
true_h_b = in_profile(1,4);
true_v_eb_n = in_profile(1,5:7)';
true_eul_nb = in_profile(1,8:10)';
true_C_b_n = Euler_to_CTM(true_eul_nb)';
[old_true_r_eb_e,old_true_v_eb_e,old_true_C_b_e] =...
NED_to_ECEF(true_L_b,true_lambda_b,true_h_b,true_v_eb_n,true_C_b_n);
% Determine satellite positions and velocities
[sat_r_es_e,sat_v_es_e] = Satellite_positions_and_velocities(old_time,...
GNSS_config);
% Initialize the GNSS biases. Note that these are assumed constant throughout
% the simulation and are based on the initial elevation angles. Therefore,
% this function is unsuited to simulations longer than about 30 min.
GNSS_biases = Initialize_GNSS_biases(sat_r_es_e,old_true_r_eb_e,true_L_b,...
true_lambda_b,GNSS_config);
% Generate GNSS measurements
[GNSS_measurements,no_GNSS_meas] = Generate_GNSS_measurements(old_time,...
sat_r_es_e,sat_v_es_e,old_true_r_eb_e,true_L_b,true_lambda_b,...
old_true_v_eb_e,GNSS_biases,GNSS_config);
% Determine Least-squares GNSS position solution
[old_est_r_eb_e,old_est_v_eb_e,est_clock] = GNSS_LS_position_velocity(...
GNSS_measurements,no_GNSS_meas,GNSS_config.init_est_r_ea_e,[0;0;0]);
[old_est_L_b,old_est_lambda_b,old_est_h_b,old_est_v_eb_n] =...
pv_ECEF_to_NED(old_est_r_eb_e,old_est_v_eb_e);
est_L_b = old_est_L_b;
% Initialize estimated attitude solution
old_est_C_b_n = Initialize_NED_attitude(true_C_b_n,initialization_errors);
[temp1,temp2,old_est_C_b_e] = NED_to_ECEF(old_est_L_b,...
old_est_lambda_b,old_est_h_b,old_est_v_eb_n,old_est_C_b_n);
% Initialize output profile record and errors record
out_profile = zeros(no_epochs,10);
out_errors = zeros(no_epochs,10);
% Generate output profile record
out_profile(1,1) = old_time;
out_profile(1,2) = old_est_L_b;
out_profile(1,3) = ol
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计&课设-GNSS、惯性和多传感器组合导航系统原理.zip (85个子文件)
matlab_codings
.gitattributes 378B
MATLAB
Initialize_LC_P_matrix.m 1KB
Nav_equations_ECEF.m 3KB
Velocity_from_curvilinear.m 2KB
Skew_symmetric.m 507B
Initialize_NED.m 2KB
pv_NED_to_ECEF.m 2KB
INS_GNSS_Demo_9.m 6KB
Gravity_ECEF.m 1KB
GNSS_Least_Squares.m 8KB
Inertial_Demo_4.m 3KB
Update_curvilinear_position.m 2KB
IMU_model.m 3KB
Read_profile.m 1KB
Inertial_Demo_2.m 3KB
Write_profile.m 1KB
GNSS_Demo_3.m 3KB
GNSS_Demo_1.m 3KB
INS_GNSS_Demo_11.m 6KB
INS_GNSS_Demo_8.m 6KB
INS_GNSS_Demo_6.m 6KB
Adjust_profile_position.m 2KB
Profile_3.csv 3.12MB
Inertial_Demo_6.m 3KB
GNSS_Demo_6.m 3KB
Inertial_Demo_1ECEF.m 3KB
Gravity_NED.m 1KB
Kinematics_NED.m 4KB
Radii_of_curvature.m 839B
Calculate_errors_NED.m 2KB
Inertial_navigation_NED.m 6KB
INS_GNSS_Demo_1.m 6KB
Euler_to_CTM.m 1KB
Profile_4.csv 3.02MB
Nav_equations_ECI.m 3KB
NED_to_ECEF.m 2KB
Write_errors.m 1KB
ECEF_to_NED.m 2KB
INS_GNSS_Demo_5.m 6KB
Inertial_Demo_1ECI.m 3KB
CTM_to_Euler.m 800B
GNSS_LS_position_velocity.m 5KB
INS_GNSS_Demo_4.m 5KB
TC_KF_Epoch.m 8KB
Profile_2.csv 1.07MB
Inertial_navigation_ECEF.m 6KB
Profile_0.csv 151KB
Smooth_profile_velocity.m 2KB
Loosely_coupled_INS_GNSS.m 13KB
Nav_equations_NED.m 4KB
INS_GNSS_Demo_12.m 6KB
Kinematics_ECI.m 3KB
Tightly_coupled_INS_GNSS.m 13KB
GNSS_Demo_4.m 3KB
Plot_profile.m 3KB
Initialize_TC_P_matrix.m 1KB
Inertial_Demo_5.m 3KB
Inertial_navigation_ECI.m 7KB
GNSS_KF_Epoch.m 6KB
Adjust_profile_velocity.m 2KB
INS_GNSS_Demo_2.m 6KB
Profile_1.csv 850KB
Initialize_GNSS_biases.m 2KB
Gravitation_ECI.m 1KB
GNSS_Demo_2.m 3KB
Satellite_positions_and_velocities.m 3KB
INS_GNSS_Demo_3.m 6KB
LC_KF_Epoch.m 5KB
INS_GNSS_Demo_10.m 6KB
Plot_errors.m 3KB
INS_GNSS_Demo_7.m 6KB
pv_ECEF_to_NED.m 2KB
Generate_GNSS_measurements.m 4KB
Interpolate_profile.m 3KB
GNSS_Demo_5.m 3KB
Inertial_Demo_7.m 3KB
ECI_to_ECEF.m 2KB
GNSS_Kalman_Filter.m 9KB
Kinematics_ECEF.m 4KB
Inertial_Demo_3.m 3KB
Inertial_Demo_1NED.m 3KB
ECEF_to_ECI.m 2KB
Initialize_NED_attitude.m 848B
Initialize_GNSS_KF.m 2KB
.gitignore 649B
共 85 条
- 1
资源评论
毕业小助手
- 粉丝: 2747
- 资源: 5583
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于JSP的论坛系统.zip
- (源码)基于Arduino的温湿度监控与控制系统.zip
- (源码)基于STM32F103的正点原子战舰V3开发板系统.zip
- 基于HMMR隐马尔科夫模型的时间序列分割算法matlab仿真,包括程序,中文注释,仿真操作步骤
- (源码)基于Spring Boot和Vue的新生儿管理系统.zip
- (源码)基于Arduino的智能家居控制系统.zip
- (源码)基于数据库系统实现的聚集存储系统.zip
- (源码)基于Spring Boot和Vue的学生管理系统.zip
- (源码)基于Java Servlet的新闻发布系统.zip
- (源码)基于C#和SQL Server的高校教学管理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功