kfinit是kf的参数初始化函数,用于初始化滤波参数
本文所述的代码需要基于PSINS工具箱,工具箱的讲解:
PSINS(Precision Strapdown Inertial Navigation System)是面向高精度惯性导航算法开发的MATLAB工具箱,集成了150+个导航相关函数与20+种典型场景案例。其核心功能涵盖:
环境配置
% 添加工具箱路径
addpath(genpath('PSINS_toolbox'));
% 验证安装
psins_init;
入门实践
开发资源
资源类型 | 获取途径 |
---|---|
官方文档 | /PSINS/docs 目录下的PDF技术手册 |
函数速查表 | psins_functionlist.xlsx (含300+函数分类说明) |
测试数据集 | \data\marine_navigation.mat (含船舶运动IMU/GNSS实测数据) |
ggnss
ggnss
是面向多卫星导航系统仿真的全局参数初始化函数,主要用于为GPS(美国)、北斗(中国)、GLONASS(俄罗斯)三大卫星导航系统创建标准化的仿真参数结构体。该函数通过调用 ggpsvars
、gbdvars
、gglovars
三个子系统初始化模块,在工作区生成符合国际卫星导航标准的参数集合。
结构体名称 | 对应系统 | 核心参数组成 |
---|---|---|
ggps |
GPS系统 | 载波频率(L1/L2)、星历参数、电离层延迟模型、卫星钟差参数、DOP计算门限 |
gbd |
北斗系统 | B1/B2频点参数、GEO/IGSO/MEO卫星特性、时间系统参数、坐标转换矩阵 |
gglo |
GLONASS系统 | FDMA频分多址参数、PZ-90坐标系参数、卫星健康状态标识、频偏校正系数 |
glv |
公共参数 | 光速常量、地球自转角速率、WGS-84椭球参数、仿真步长设置、可见卫星仰角门限 |
%% 多系统组合定位仿真初始化
ggnss; % 初始化全局参数
traj = pathtrajgen(glv.dt); % 生成运动轨迹
[eph, iono] = gnss_ephemeris(traj.t(1)); % 获取卫星星历
obs = gnss_obsgen(traj, eph, iono, ggps, gbd, gglo); % 生成观测数据
pos = gnss_pos(obs, glv); % 解算定位结果
运行初始化脚本
>> ggpsvars; % 初始化GPS参数
>> gbdvars; % 初始化北斗参数
>> gglovars; % 初始化GLONASS参数
>> glv = psinsglv; % 加载公共参数
参数查看与修改
>> disp(ggps.freq); % 查看GPS载波频率
>> ggps.ionoAlpha = [0.1397e-7, -0.7451e-8]; % 修改电离层延迟系数
参数持久化存储
save('gnss_config.mat','ggps','gbd','gglo'); % 保存配置
load('gnss_config.mat'); % 加载历史配置
function ggpsvars
ggps.freq = [1575.42e6, 1227.60e6]; % L1/L2频点 (MHz)
ggps.CA_rate = 1.023e6; % C/A码速率 (chip/s)
ggps.ionoAlpha = [0.1397e-7, -0.7451e-8]; % Klobuchar alpha参数
% ... 其余参数约50项
assignin('base', 'ggps', ggps);
end
多频点支持扩展
% 添加Galileo系统支持
function ggalvars
ggal.freq = [1575.42e6, 1176.45e6, 1278.75e6]; % E1/E5a/E5b
% ... Galileo特有参数
assignin('base', 'ggal', ggal);
end
动态参数重载
function update_glonass_freq(k)
global gglo;
gglo.freq = 1602e6 + k*0.5625e6; % 根据频道号k更新频点
end