资源简介
捷联惯性系统 导航解算 卡尔曼滤波
MATLAB 代码 有误差分析 姿态解算图
代码片段和文件信息
clc;
clear;
format long
%% 定义变量
%数据时间(s)
Total_Time_s=600;
%kalman 滤波周期
Kalman_Time_s=1;
%惯导解算周期(s)
dt=0.01;
%是否反馈(1为反馈)
Fankui_Guandao=1;
%选用数据段(1为读数据;0为造数据)
Shuju_Laiyuan=1;
%数据个数
n=Total_Time_s/dt;
%kalman运算次数
n1=Total_Time_s/Kalman_Time_s;
%% 惯导存储信息
V1=zeros(31);V=zeros(n3);Pos=zeros(n3);Gest=zeros(n3);wibb=zeros(n3);
fb=zeros(n3);I=eye(4);C1=zeros(33);fp=zeros(31);wepp=zeros(13);
wipp=zeros(31);wipb=zeros(31);wpbb=zeros(3n);dxt=zeros(44); data=zeros(n6);pp=zeros(n2);
wiep=zeros(31);q=zeros(41);Vep=[0 0 0];
%% 定义初值
%姿态角(单位弧度)
% pitch=0.00574143129887982*pi/180;
% roll=-0.00570276481225802*pi/180;
% yaw=0.0939588201389148*pi/180;
pitch=0.5*pi/180;
roll=-0.5*pi/180;
yaw=1*pi/180;
%经纬度(单位弧度)
Longitude=116.34340341*pi/180;
Lat=39.9778*pi/180;
%地球半径
re=6378137;
%椭球率
e=1.0/298.257223563;
%游动方位角
a=0;
%地球自转角速度(弧度每秒)
wie=7.292115147e-5;
%惯导解算高度
h=40;
%高度计高度
hr=40;
% X=0;
k=1;
%惯导器件反馈初值
w1=0;w2=0;w3=0;f1=0;f2=0;f3=0;
%求C 初始位置矩阵
C=[-sin(a)*sin(Lat)*cos(Longitude)-cos(a)*sin(Longitude) -sin(a)*sin(Lat)*sin(Longitude)+cos(a)*cos(Longitude) sin(a)*cos(Lat);
-cos(a)*sin(Lat)*cos(Longitude)+sin(a)*sin(Longitude) -cos(a)*sin(Lat)*sin(Longitude)-sin(a)*cos(Longitude) cos(a)*cos(Lat);
cos(Lat)*cos(Longitude) cos(Lat)*sin(Longitude) sin(Lat)];
% g的计算
g0=9.7803267714;gk1=0.00193185138639;gk2=0.00669437999013;
g=g0*(1+gk1*C(33)^2)*(1-2*h/re)/sqrt(1-gk2*C(33)^2);
%初始T 姿态矩阵
T=[cos(roll)*cos(yaw)-sin(roll)*sin(pitch)*sin(yaw) -cos(pitch)*sin(yaw) sin(roll)*cos(yaw)+cos(roll)*sin(pitch)*sin(yaw);
cos(roll)*sin(yaw)+sin(roll)*sin(pitch)*cos(yaw) cos(pitch)*cos(yaw) sin(roll)*sin(yaw)-cos(roll)*sin(pitch)*cos(yaw);
-sin(roll)*cos(pitch) sin(pitch) cos(roll)*cos(pitch)];
%初始四元数计算
q(2)=0.5*sign(T(32)-T(23))*sqrt(1+T(11)-T(22)-T(33));
q(3)=0.5*sign(T(13)-T(31))*sqrt(1-T(11)+T(22)-T(33));
q(4)=0.5*sign(T(21)-T(12))*sqrt(1-T(11)-T(22)+T(33));
q(1)=sqrt(1-q(2)^2-q(3)^2-q(4)^2);
%阻尼系数
K1=0.03;K2=4.0*10^(-4)+2*g/(re+h);K3=2*10^(-6);
ad=0;vd=0;a0=0;
Rm=re*(1-2*e+3*e*C(33)^2); Rn=re*(1+e*C(33)^2);
%% 读文件
if Shuju_Laiyuan==1 %导入数据
% load(‘IMU_data_noise.mat‘);
load(‘E:/静态1.txt‘);
end
if Shuju_Laiyuan==0 %仿造数据
ug=1e-6*g; rd=pi/180/3600;
for i=1:n
data(i1)= 0 +0.02*rd ; % +random(‘normal‘0(0.01*rd)1) ;
data(i2)=wie*cos(Lat) +0.02*rd ; % +random(‘normal‘0(0.01*rd)1) ;
data(i3)=wie*sin(Lat) +0.02*rd ; % +random(‘normal‘0(0.01*rd)1) ;
data(i4)= 0 +100*ug ; % +random(‘normal‘0(50*ug)1) ;
data(i5)= 0 +100*ug ; % +random(‘normal‘0(50*ug)1) ;
data(i6)= g +100*ug ; % +random(‘normal‘0(50*ug)1) ;
end
end
%%
%%卡曼滤波初始化%%
%估计值初值
x=zeros(151);
fai=zeros(3
- 上一篇:粘连字符分割、字符识别、车牌分割
- 下一篇:henon 映射
相关资源
- KF+EKF matlab程序实现
- 卡尔曼滤波MATLAB代码170027
- 基于卡尔曼滤波的三种经典室内定位
- 基于卡尔曼滤波的PID控制
- MATLAB在卡尔曼滤波器中应用的理论与
- 卡尔曼滤波基础及matlab仿真程序-王可
- matlab实现的人体跟踪kalman滤波
- 卡尔曼滤波(卡尔曼滤波理论与实践
- 集合卡尔曼滤波算法-数据同化的经典
- 基于卡尔曼滤波的目标跟踪算法-官方
- Kalman Filtering - Theory and Practice Using M
- 改进的自适应卡尔曼滤波算法
- 卡尔曼滤波理论与实践MATLAB版第四版
- 卡尔曼滤波原理及应用 MATLAB仿真pd
- 卡尔曼滤波原理及应用-黄小平pdf版
- 《卡尔曼滤波原理及应用MATLAB仿真》
- 卡尔曼滤波及原理黄小平随书程序
- 基于扩展卡尔曼滤波相关期刊和毕业
- 卡尔曼滤波原理及应用 matlab仿真
- 卫星定位-卡尔曼滤波-MATLAB程序
- 卡尔曼滤波原理及应用-MATLAB仿真随书
- 卡尔曼滤波原理及matlab仿真含程序
- 卡尔曼滤波原理及应用 MATLAB仿真pd
- 《卡尔曼滤波原理及应用-MATLAB仿真》
- 卡尔曼滤波原理及应用-黄小平pdf版
- 13811540_卡尔曼滤波原理及应用MATLAB仿
- 卡尔曼滤波器的原理以及在matlab中的
- 卡尔曼滤波原理及应用:MATLAB仿真.
- 捷联惯导算法与卡尔曼滤波原理讲义
- 《卡尔曼滤波原理及应用MATLAB仿真》
评论
共有 条评论