• 关于PSINS运动轨迹仿真模块的理解和思考


    本篇博客主要是对严恭敏老师PSINS工具箱中的轨迹仿真模块的一些阅读、理解和思考,同时也包含了一些疑问。运动轨迹仿真模块主要是输出载体的位置、姿态、速度,以及仿真生成惯性传感器信息的模块。一般做导航算法仿真验证的时候,都需要利用该模块生成传感器信息,验证算法的正确性和有效性。

    坐标系定义

    在PSINS中部分定义如下:

    • 载体坐标系(b): 右前上(RFU)
    • 地理坐标系(导航系n):东北天(ENU)
    • 姿态/欧拉角向量: att=[俯仰pitch;横滚roll;方位yaw],俯仰角范围-pi2 ~ pi/2,机头朝上为正;横滚范围-pi ~ pi,右倾为正;方位角范围-pi ~ pi,注意北偏西为正

    飞行轨迹设计

    1. 飞行轨迹类型

    参考严恭敏老师《捷联惯导算法与组合导航原理》的第8章或者readme.doc的第10.8节可知,PSINS轨迹仿真中包含的运动类型有:

    在这里插入图片描述

    2. 相关代码

    在demo/test_SINS_trj.m是一个轨迹仿真的例子。

    (1) test_SINS_trj.m

    • 在该文件中调用trjsegement函数对航迹进行了分段仿真
    • 调用trjsimu函数生成姿态、速度、位置以及惯性器件信息
      在这里插入图片描述

    (2) trjsegement.m

    该文件根据输出的航迹类型,持续时间,前向加速度,姿态变化率生成seg.wat。其中seg.wat中包含持续时间、机头前向速度、姿态变化率以及“t frame”中的加速度。

    对于向心加速度这部分的计算,以及后面推算导航系下的加速度,我不太确定PSINS这部分计算的正确性,而且我感觉不引入t frame对我来说更容易理解,具体会在后面的思考中解释。

    手册中对t frame相关的描述如下:

    在这里插入图片描述

    相关代码如下:

    在这里插入图片描述

    (3) trjsimu.m

    手册中包含了计算惯性器件信息(陀螺仪输出、加速度计输出)的公式,对照公式看代码会比较容易理解。

    手册中的相关描述:
    在这里插入图片描述

    相关代码:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    疑问与思考

    我主要不太明白的地方有两个:

    1. damping是在做什么?暂时没有在手册或参考材料中找到相关解释,不是很理解。
    2. 计算导航系加速度an = Cnt*at (注释第7条)的方法是否正确?

    对于疑问2,我认为比较正确的方法是:

    • 首先计算欧拉旋转矩阵,然后计算Wnbb — 机体相对导航系的角速率在机体系下的投影
      在这里插入图片描述
    • 叉乘计算向心力,并计算地理系加速度acceN (acceB只有机头方向有加速度,其他两个方向为0)
      在这里插入图片描述

    由于b系和t系y轴重合(机头前向),而且对于机体而言,只有前向有速度,因此PSINS中的算法则相当于:
    在这里插入图片描述
    用matlab计算试了试,在姿态角都不为0,且机体有速度,并且航向变化率不为0的情况下,这两种方法给出的结果是不太一致的。我没有做详细的公式推导,但是从计算结果来看,两种计算方法应该是不等价的。

  • 相关阅读:
    POJ - 3278 Catch That Cow
    【Make YOLO Great Again】YOLOv1-v7全系列大解析(输入侧篇)
    状态压缩dp,91. 最短Hamilton路径
    Springboot整合之Shiro和JWT技术实现无感刷新
    Vue2.0中的$watch、$set、$delete源码解析
    民安智库(第三方窗口服务暗访评估)政务窗口服务满意度调查如何开展
    【毕业设计】老人心率脉搏血压体征监测手表 - stm32 单片机 嵌入式 物联网
    操作系统复习第五章:虚拟存储器
    分布式事务之Seata TCC
    处理多对一映射关系的三种方法
  • 原文地址:https://blog.csdn.net/weixin_42918498/article/details/125040528