资源简介
组合导航matlab代码组合导航matlab代码组合导航matlab代码组合导航matlab代码组合导航matlab代码组合导航matlab代码组合导航matlab代码
代码片段和文件信息
clear
clc
close all
%%初始量定义
wie = 0.000072921151467;
Re = 6378135.072;
g = 9.7803267714;
e = 1.0 / 298.25;
T = 0.01; %IMU频率100hz此程序中GPS频率100hz
datanumber = 72001; %数据时间3600s
a = load(‘C:\Users\wangbo\Desktop\2学习\程序\IMU.dat‘);
w = a(:3:5)‘*pi/180/3600; %陀螺仪输出的角速率信息单位由°/h化为rad/s
f = a(:6:8)‘; %三轴比力输出,单位g
a = load(‘C:\Users\wangbo\Desktop\2学习\程序\GPS.dat‘);
gps_pos = a(:3:5); %GPS输出的纬度、经度、高度信息
gps_pos(:1:2) = gps_pos(:1:2)*pi/180; %纬 经单位化为弧度
gps_v = a(:6:8); %GPS输出的东北天速度信息
%捷联解算及卡尔曼相关
v=zeros(datanumber3); %组合后的速度信息ffffffff
atti = zeros(datanumber3); %组合后的姿态信息
pos = zeros(datanumber3); %组合后的位置信息
gyro=zeros(31);
acc=zeros(31);
x_kf = zeros(datanumber15);
p_kf = zeros(datanumber15);
lat = 40.0211142228246*pi/180; %组合导航的初始位置、姿态、速度
lon =116.3703629769560*pi/180;
height =43.0674;
fai = 219.9744642380873*pi/180;
theta = -0.895865732956914*pi/180;
gama = 0.640089448357591*pi/180;
Vx=gps_v(11);
Vy=gps_v(12);
Vz=gps_v(13);
X_o=zeros(151); %X的初值选为0
X=zeros(151);
%Q=diag([(50e-6*g)^2(50e-6*g)^2(50e-6*g)^2(0.1*pi/180/3600)^2(0.1*pi/180/3600)^2(0.1*pi/180/3600)^2000000000]); %随机
Q=diag([(0.008*pi/180/3600)^2(0.008*pi/180/3600)^2(0.008*pi/180/3600)^2(50e-6*g)^2(50e-6*g)^2(50e-6*g)^2000000000]);
R=diag([(0.001)^2(0.001)^2(0.001)^2(0.1)^2(0.1)^2(0.15)^2]);
P=zeros(15);
P_k=diag([(0.00005*pi/180)^2(0.00005*pi/180)^2(0.00005*pi/180)^20.00005^20.00005^20.00005^22^22^22^2(0.001*pi/180/3600)^2(0.001*pi/180/3600)^2(0.001*pi/180/3600)^2(50e-6*g)^2(50e-6*g)^2(50e-6*g)^2]); %
K=zeros(156);
Z=zeros(61);
I=eye(15);
Cnb = [cos(gama)*cos(fai)-sin(gama)*sin(theta)*sin(fai) cos(gama)*sin(fai)+sin(gama)*sin(theta)*cos(fai) -sin(gama)*cos(theta);
-cos(theta)*sin(fai) cos(theta)*cos(fai) sin(theta);
sin(gama)*cos(fai)+cos(gama)*sin(theta)*sin(fai) sin(gama)*sin(fai)-cos(gama)*sin(theta)*cos(fai) cos(gama) * cos(theta)];
q = [ cos(fai/2)*cos(theta/2)*cos(gama/2) - sin(fai/2)*sin(theta/2)*sin(gama/2);
cos(fai/2)*sin(theta/2)*cos(gama/2) - sin(fai/2)*cos(theta/2)*sin(gama/2);
cos(fai/2)*cos(theta/2)*sin(gama/2) + sin(fai/2)*sin(theta/2)*cos(gama/2);
cos(fai/2)*sin(theta/2)*sin(gama/2) + sin(fai/2)*cos(theta/2)*cos(gama/2)];
Cnb_s=Cnb;
q_s=q;
for i=1:1:datanumber
Rmh = Re * (1.0 - 2.0 * e + 3.0 * e * sin(lat) * sin(lat)) + height;
Rnh = Re * (1.0 + e * sin(lat) * sin(lat)) + height;
Wien = [ 0; wie * cos(lat); wie * sin(lat)];
Wenn = [ -Vy / Rmh; Vx / Rnh; Vx * tan(lat) / Rnh];
Winn = Wien + Wenn;
Winb = Cnb * Winn;
for j=1:3
gyro(j1) = w(ji);
acc(j1) = f(ji)*g; %加速度信息,单位化为m/s^2
end
angle = (gyro - Winb)
相关资源
- 惯导-GPS组合导航程序
- 卡尔曼程序+UKF程序matlab
-
simuli
nk建立卡尔曼滤波算法 - 卡尔曼滤波与matlab实现
- 自适应卡尔曼滤波
- EKF扩展卡尔曼在线滤波
- 自适应卡尔曼滤波,MATLAB
- 卡尔曼滤波算法和扩展卡尔曼滤波算
- 卡尔曼平滑
- 卡尔曼滤波算法的matlab 实现
- 卡尔曼滤波matlab代码
- CKF.m容积卡尔曼滤波在室内定位技术中
- 卡尔曼滤波matlab仿真程序
- 扩展卡尔曼滤波估测SOC.mdl
- 基于卡尔曼滤波的2d目标跟踪算法 M
- 自适应卡尔曼滤波,MATLAB_main
- 多维容积卡尔曼滤波CKF的函数
- MATLAB下扩展卡尔曼滤波的S函数实现
- 粒子滤波和卡尔曼滤波视频运动目标
- 卡尔曼滤波算法的电池SOC估计仿真模
- 卡尔曼滤波视觉跟踪源代码及效果视
- 用卡尔曼滤波算法估计soc
-
基于Simuli
nk的Kalman滤波器仿真 matl - UKF 无迹卡尔曼滤波源程序 matlab
- 使用扩展卡尔曼滤波训练的神经网络
- IMM算法卡尔曼滤波matlab仿真
- 卡尔曼滤波跟踪视频目标matlab程序
- UKF无迹卡尔曼滤波算法matlab代码
- 利用matlab实现的简单的基于卡尔曼滤
- D-S证据理论数据融合MATLAB实现
评论
共有 条评论