雷达通信基于matlab GPS和INS联合导航含Matlab源码 1814期

Posted 紫极神光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了雷达通信基于matlab GPS和INS联合导航含Matlab源码 1814期相关的知识,希望对你有一定的参考价值。

一、GPS和INS联合导航简介

GPS/INS复合制导技术是把INS和GPS有效地组合。基本方法有两种, 一种方法称为紧耦合, 如图l;另一种方法称为松耦合, 如图2。其中, 卡尔曼滤波器是INS和GPS组合的关键器件, 起到数据融合作用。
松耦合方法的优点是构成GPS/INS复合制导比较简单, 技术上易实现, 制导精度可以达到13~16m。
紧耦合方法采用一个卡尔曼滤波器来统一处理GPS测量得到的伪距和距离差, 以及从惯性组合来的5s~10s更新一次的误差状态信息, 在技术上有一定难度。由于系统共用一个卡尔曼滤波器, 存在一个相互权衡、彼此协调的最优化设计问题。但是紧耦合方法的优点是精度较高, 达到米级。

图2 紧耦合GPS/INS结构示意图
在GPS/INS复合制导系统中, INS和GPS之间彼此可以优势互补, 取长补短。GPS接收机可以向INS提供有关它当前的积累误差的实时而准确的数值, 并进行补偿, 提高制导精度。INS能够用准确的位置和速度初始值提供给GPS接收机跟踪回路, 从而减少其采集GPS卫星信息所需要的时间。制导过程中, INS把速度和加速度信息提供给GPS接收机, 可以提高GPS接收机的抗干扰能力和动态特征。如果GPS接收机失去对卫星的自动跟踪, INS仍然能够独立工作, 并且提供的位置和速度值能够帮助GPS接收机及时地采集GPS卫星信息。

GPS/INS复合制导的关键技术包括5个方面:在INS方面, 要发展各种新型惯性传感器技术, 例如激光陀螺、光纤陀螺、半球谐振陀螺, 以及各种微机电制造技术;在GPS方面, 要采用各种最新半导体器件和集成电路, 组装出性能优良的GPS接收机;在GPS/INS组合方面, 要发展卡尔曼滤波配置和误差估值等新技术;在发展GPS/INS弹载综合技术方面, 要发展传递对准、瞄准攻击和精度分析等技术;在GPS干扰和抗干扰方面, 要发展GPS接收机的干扰和抗干扰、加密和解密以及精度补偿等技术。

二、部分源代码

%GPS/INS组合导航


%量测信号:   位置
%INS输出数据由simulink计算得出


clear
clc

%得到轨迹信号

load ode500

Re 		= 6378245;   																						  %地球长半径

%真实轨迹
a_R 	= yout(:,1:3);
v_R	  = yout(:,4:6);
p_R 	= yout(:,7:9);

%加噪声后的INS计算结果
a_ins = yout(:,10:12);
v_ins = yout(:,13:15);
p_ins = yout(:,16:18);
quat  = yout(:,19:22);    %姿态四元数
Fn    = yout(:,23:25); 	%地理系下的比力

%惯导相关的噪声统计数据
Q_wg  = (0.04/(57*3600))^2;         %陀螺马氏过程
Q_wr  = (0.01/(57*3600))^2;      	%陀螺白噪声
Q_wa  = (1e-3)^2;   %加计马氏过程
Q 		= diag([Q_wg Q_wg Q_wg,  Q_wr Q_wr Q_wr,  Q_wa Q_wa Q_wa]);
Tg 		= 300*ones(3,1);
Ta 		= 1000*ones(3,1);

%得到带误差的GPS输出信号
p_gps_sample = p_R(1:10:end,:);
n = size(p_gps_sample,1);
p_error(:,1:2)  = 30*randn(n,2)/Re;    
p_error(:,3) = 30*randn(n,1);                                %位置误差
p_gps = p_gps_sample+p_error;                                %加入位置误差
R = diag(std(p_error).^2);                                   %计算测量噪声方差R

%卡尔曼滤波
tao= 1;                                            %滤波步长
a_ins_sample 		= a_ins(1:10:end,:);
v_ins_sample 		= v_ins(1:10:end,:);
p_ins_sample 		= p_ins(1:10:end,:);
a_R_sample 			= a_R(1:10:end,:);
v_R_sample 			= v_R(1:10:end,:);
p_R_sample 			= p_R(1:10:end,:);
Dp= p_ins_sample-p_gps;                           %INS与GPS输出的位置差值
a = a_ins_sample; 
v = v_ins_sample;
p = p_ins_sample;
quat0 = quat(1:10:end,:);
Fn0 = Fn(1:10:end,:);

[Error_a, Error_v, Error_p, PP] = kalman_GPS_INS_position_sp_NFb(Dp, v, p, quat0, Fn0, Q, R, Tg, Ta, tao);   %得到位置,速度误差误差估计值

a_estimate 			= a(1:size(Error_a,1),:)-Error_a;
v_estimate 			= v(1:size(Error_v,1),:)-Error_v;
p_estimate 			= p(1:size(Error_p,1),:)-Error_p;

n = size(p_estimate,1);   %行数

%位置误差比较
figure  
subplot(3,1,1)
plot((1:n),(p_R_sample(1:n,1)-p(1:n,1))*6e6,'k',(1:n),(p_R_sample(1:n,1)-p_estimate(:,1))*6e6,'r')  %黑线-滤波前的误差   红线-滤波后的误差
xlabel('时间,单位s')
subplot(3,1,2)
plot((1:n),(p_R_sample(1:n,2)-p(1:n,2))*6e6,'k',(1:n),(p_R_sample(1:n,2)-p_estimate(:,2))*6e6,'r')  %黑线-滤波前的误差   红线-滤波后的误差
ylabel('位置误差,单位m')
subplot(3,1,3)
plot((1:n),p_R_sample(1:n,3)-p(1:n,3),'k',(1:n),p_R_sample(1:n,3)-p_estimate(:,3),'r')  						%黑线-滤波前的误差   红线-滤波后的误差
xlabel('黑线-滤波前的INS误差   红线-滤波后的误差')

三、运行结果




四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
[4]李树锋.基于完全互补序列的MIMO雷达与5G MIMO通信[M].清华大学出版社.2021
[5]何友,关键.雷达目标检测与恒虚警处理(第二版)[M].清华大学出版社.2011
[6]陈燕飞,张曦文GPS/INS复合制导技术[J].情报指挥控制系统与仿真技术. 2005,(01)

以上是关于雷达通信基于matlab GPS和INS联合导航含Matlab源码 1814期的主要内容,如果未能解决你的问题,请参考以下文章

雷达通信基于matlab间接卡尔曼滤波IMU与GPS融合含Matlab源码 1360期

雷达通信基于matlab间接卡尔曼滤波IMU与GPS融合含Matlab源码 1360期

滤波跟踪基于matlab不变扩展卡尔曼滤波器对装有惯性导航系统和全球定位系统IMU+GPS进行滤波跟踪含Matlab源码 2232期

雷达通信基于matlab线性调频脉冲雷达仿真含Matlab源码 2104期

雷达通信基于matlab线性调频脉冲雷达仿真含Matlab源码 2104期

雷达通信基于matlab雷达仿真模拟系统含Matlab源码 150期