PSINS工具箱函数介绍——ggnss(ggpsvars+gbdvars+gglovars)

PSINS工具箱函数介绍——ggnss(ggpsvars+gbdvars+gglovars)_第1张图片

文章目录

  • 关于工具箱
    • 工具箱概述
      • 学习路径指南
  • GNSS参数初始化函数 `ggnss`
    • 函数功能
    • 参数体系结构
  • 典型应用场景
  • 系统参数初始化操作指南
    • 执行流程
    • 运行结果解析
  • 函数源码深度解析
    • 代码架构
    • 扩展开发建议

关于工具箱

kfinit是kf的参数初始化函数,用于初始化滤波参数
本文所述的代码需要基于PSINS工具箱,工具箱的讲解:

  • PSINS初学指导:https://blog.csdn.net/callmeup/article/details/137087932

工具箱概述

PSINS(Precision Strapdown Inertial Navigation System)是面向高精度惯性导航算法开发的MATLAB工具箱,集成了150+个导航相关函数与20+种典型场景案例。其核心功能涵盖:

  • 惯性器件误差建模(陀螺随机游走、加速度计零偏)
  • 组合导航算法(GNSS/INS松耦合/紧耦合)
  • 初始对准与标定(静态基座对准、行进间对准)
  • 轨迹生成与可视化(三维轨迹动画、误差椭圆绘制)

学习路径指南

  1. 环境配置

    % 添加工具箱路径
    addpath(genpath('PSINS_toolbox'));
    % 验证安装
    psins_init;
    
  2. 入门实践

    • 基础惯性导航解算示例
    • GNSS/INS组合导航案例
  3. 开发资源

    资源类型 获取途径
    官方文档 /PSINS/docs 目录下的PDF技术手册
    函数速查表 psins_functionlist.xlsx(含300+函数分类说明)
    测试数据集 \data\marine_navigation.mat(含船舶运动IMU/GNSS实测数据)

GNSS参数初始化函数 ggnss

函数功能

ggnss 是面向多卫星导航系统仿真的全局参数初始化函数,主要用于为GPS(美国)、北斗(中国)、GLONASS(俄罗斯)三大卫星导航系统创建标准化的仿真参数结构体。该函数通过调用 ggpsvarsgbdvarsgglovars 三个子系统初始化模块,在工作区生成符合国际卫星导航标准的参数集合。

参数体系结构

结构体名称 对应系统 核心参数组成
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); % 解算定位结果

系统参数初始化操作指南

执行流程

  1. 运行初始化脚本

    >> ggpsvars;  % 初始化GPS参数
    >> gbdvars;   % 初始化北斗参数
    >> gglovars;  % 初始化GLONASS参数
    >> glv = psinsglv; % 加载公共参数
    
  2. 参数查看与修改

    >> disp(ggps.freq); % 查看GPS载波频率
    >> ggps.ionoAlpha = [0.1397e-7, -0.7451e-8]; % 修改电离层延迟系数
    
  3. 参数持久化存储

    save('gnss_config.mat','ggps','gbd','gglo'); % 保存配置
    load('gnss_config.mat'); % 加载历史配置
    

运行结果解析

PSINS工具箱函数介绍——ggnss(ggpsvars+gbdvars+gglovars)_第2张图片

  • ggps:包含GPS L1C/A码的C/A码周期(1ms)、码速率(1.023Mchip/s)、导航电文结构(HOW/TLM字)等参数
  • gbd:定义北斗B1I信号调制方式(QPSK)、GEO卫星轨道特征(定点经度)、RDSS短报文协议字段
  • gglo:设置GLONASS FDMA频偏公式中的频道号k与频点间隔(0.5625MHz)
  • glv:包含通用大地测量常数(如地球扁率1/298.257223563)、蒙特卡洛仿真次数设置(默认1000次)

函数源码深度解析

代码架构

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

扩展开发建议

  1. 多频点支持扩展

    % 添加Galileo系统支持
    function ggalvars
        ggal.freq = [1575.42e6, 1176.45e6, 1278.75e6]; % E1/E5a/E5b
        % ... Galileo特有参数
        assignin('base', 'ggal', ggal);
    end
    
  2. 动态参数重载

    function update_glonass_freq(k)
        global gglo;
        gglo.freq = 1602e6 + k*0.5625e6; % 根据频道号k更新频点
    end
    

你可能感兴趣的:(PSINS函数,matlab,PSINS)