搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
IT小白
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
2024年阿里云部署幻兽帕鲁服务器详细流程
2
单片机 嵌入式开发软件介绍对比与推荐(Keil、IAR、VSCode、Clion、STM32CubeIDE)_stm32cubeide和keil哪个好用
3
AI(一):初体验(借助ChatGPT从零开发一款应用程序)_假如你是一位java架构师,而我是一个新人,我希望你能协助我去开发一款程序,接下来
4
Android App应用启动欢迎页_安卓 app 启动页
5
AI大模型学习笔记之四:生成式人工智能(AIGC)是如何工作的?_学习aigc模型
6
pgyvpn使用_ubuntu 如何 启动 pgyenterprise 蒲公英
7
Unity接入Steam平台详细流程一_steammanager获取名字
8
微信小程序使用百度TTS功能合成语音_微信小程序中怎么使用tts
9
职业技能鉴定服务中心前端静态页面(官网+证书查询)
10
关于react-native项目运行时下载依赖慢或无法运行的问题_react-native-webview 下载速度太慢了吧
当前位置:
article
> 正文
基于四元素法的捷联惯导姿态更新算法_捷联式四元素
作者:IT小白 | 2024-02-20 03:58:44
赞
踩
捷联式四元素
摘要
本文主要介绍了机载捷联惯导系统常用的姿态更新算法——四元素法,并重点介绍了利用四元素法进行姿态更新的一般过程。
关键词:
四元素法,连贯导,姿态
1 引言
所谓姿态更新是指将运载体上惯性单元的输出,实时转换成运载体的姿态。这里的姿态通常指机体坐标系(b系)
相对于导航坐标系(n系)
的角位置。
对于一个姿态求解系统而言,其内部的姿态更新算法,无疑是其整个系统的核心,如何根据系统输入以及应用场合的特点选用一种速度、精度都能充分满足要求的算法是系统设计人员必须认真考虑的一件事情。目前,常用姿态更新算法主要有欧拉角算法、方向余弦法、四元素法以及旋转矢量法。
欧拉角算法通过求解欧拉角微分方程直接计算航向角、俯仰角和横滚角,但由于其微分方程特点,当俯仰角接近90º度时方程出现退化,故其只适用于水平姿态变化不大的情况,而不适用于全姿态的姿态确定。
方向余弦法避免了退化问题,可计算运载体全姿态,但是由于算法计算量大,实时计算困难,工程中很少采用。
四元素法计算量比余弦法小,且算法简单,易于操作,是比较实用的工程方法。但其对有限转动引起的不可交换误差的补偿程度不够,所以只适用于低动态运载体的姿态解算。对于高动态运载体,其算法漂移十分严重。
旋转矢量法根据运载体角速度拟合方式,分为单子样算法(常数拟合),二子样算法(直线拟合),三子样算法(抛物线拟合)。因此可以根据需要采用合适的多子样算法实现对不可交换误差做有效补偿。旋转矢量法精度通常优于四元素法,但是通常计算量较四元素法更大,其较四元素法更适合角机动频繁或者存在严重角振动的场合。值得一提的是,当旋转矢量法采用单子样计算姿态时,就等同于四元素法。
由于民航飞机以及直升机正常工作状态常处于低动态,故在此类飞机的捷联惯导系统中常采用四元素法作为姿态更新算法,本文也将主要针对应用于此类系统的四元素法进行介绍。
2
四元素定义
所谓四元素,即由四个元构成的数:
(2.1)
其中q0、q1、q2、q3是实数,i、j、k既是互相正交的单位向量,又是虚单位,因此四元素既可以看作是四维空间中的一个向量,又可看作一个超复数。
3 四元素性质
在计算运载体姿态时,当只关心机体坐标系相对于导航坐标系的的角位置时,可以认为机体坐标系(b系)是由导航坐标系(n系)经过无中间过程一次性等效旋转形成的,四元素Q包含了这种等效旋转的全部信息。其姿态变换公式见下式:
(3.1)
式(3.1)中,为b系中矢量,为b系相
对于n系旋转后,在n系中的矢量投影结果。式中坐标旋转矩阵具体形式如下:
(3.2)
当已知运载体的航向角Y、俯仰角q、横滚角g时,机体坐标系相对于导航坐标系的一次性等效旋转矩阵还可以表示成如下形式:
(3.3)
记
,故当已知姿态变换矩阵时,根据式(3.2)、式(3.3)可以求出当前姿态的四元素以及欧拉角,其中四元素求解方程如下:
(3.4)
式中q0、q1、q2、q3的符号可以按下式确定,其中的值可以任意假设:
(3.5)
由旋转矩阵式(3.3)得到的欧拉角求解公式如下:
(3.6)
式(3.6)中的航向角和横滚角的真值按
表
1和表2确定。
表1
表3.2
4
四元素微分方程的毕卡求解法
捷联陀螺的输出通常是角速度,因此,为了计算运载体姿态,我们需要引入四元素微分方程。引入微分方程的好处是,根据上一时刻姿态四元素,通过定时采样机体坐标系的三轴角增量即可求出新的姿态四元素(即机体坐标系相对于导航坐标系的四元素)。
四元素微分方程见下式:
(4.1)
式(4.1)中:
(4.2)
其中
分别为定时采样时三个轴的角增量,I为单位矩阵。因此由时刻陀螺仪定时采样的角增量,结合式(4.1),即可求出
时刻的四元素
。
5 四元素姿态更新流程
利用四元素微分方程进行姿态更新前,需要知道系统的初始四元素,求取初始四元素的方法以捷联惯导为例,通常是利用捷联惯导的加速度计在无加速状态时的输出结果计算出系统初始的欧拉角,再利用式(3.3)求出初始的姿态旋转矩阵
,再将
的矩阵元素代入式(3.4)、式(3.5)即可求出初始四元素。
求出初始四元素后,定时采样系统陀螺仪的角速度即可得到等时间间隔内的系统角增量,代统姿态。
6 结论
本文仅对基于四元素法更新的一般情况进行了讨论,实际应用中还必须充分考虑到四元素法由于算法本身问题造成的误差,例如利用四元素法进行姿态更新时,陀螺仪的角增量为定时采样的,然而实际陀螺仪的输出并非完全线性关系,即不为常数,同时四元素法对旋转轴的旋转次序是敏感的,即当
的结果相同时,不同的
输出次序将导致不同的四元素更新结果。而在利用四元素法进行姿态更新时,近似的认为其在等时间内三轴同时产生角增量。这势必产生前文所述的不可交换误差。缩短采样时间间隔可以有效降低近似误差,然而却增加了计算量,对系统提出了更高要求,因此实际使用中必须根据应用场合对四元素法进行适当修正,才能得到满意的结果。
参考文献
[1] 秦永元,惯性导航[M],北京:科学出版社,2009。
来源:
http://andawell.com/item.php?n_id=231
本文内容由网友自发贡献,转载请注明出处:
【wpsshop博客】
推荐阅读
article
第一人称
游戏
技术
- 实现
在
高低不平
的
3D
地形上
行走
效果...
在
高低不平
的
3D
地图上
行走
比
在
平面上
行走
要困难很多,因为y轴的高度要随着地形不同而变化,要想让镜头固定
在
地面上某一高度,...
赞
踩
article
9 个值得推荐
的
VUE3
UI
框架
_
vue3
框架
...
本文推荐几个比较流行
的
VUE3
UI
框架
,同时提供出色
的
开发人员体验,合理利用,又或者学习借鉴都是不错
的
选择,排名不...
赞
踩
article
HarmonyOS
应用
开发者
高级认证答案_元
服务
包
每个hap
包
不得超过多少...
快速拿去HarmonyOs
应用
开发高级认证_元
服务
包
每个hap
包
不得超过多少元
服务
包
每个hap
包
不得超过多少 ...
赞
踩
article
四元
数
姿态
计算_
四元
数
表示
姿态
...
本文基本上就是[1]的注解一基本概念1.1
四元
数
的定义 QuaternionA quaternion is a fou...
赞
踩
article
使用
py
side
+
design
er将.
ui
文件转化为.
py
文件的两种方法_
py
dm
design
和...
一、使用
py
side
-
ui
c.exe将.
ui
文件转化为.
py
文件1、进入Pycharm的设置界面 2、进入外部工具设置 ...
赞
踩
article
ElementUI
的
表格
换行
符失效、不
换行
_
element
ui
table
换行
符失效...
后台返回的接口数据 ‘“名称:示例↵ID:717”,在
表格
种并没有
换行
,原因是
element
UI 在
表格
样式中写了whi...
赞
踩
article
unity
4——
动作
融合
与
动作
混合_
unity
动作
融合
...
动作
混合https://blog.csdn.net/u014635337/article/details/4224307...
赞
踩
article
node
.
js
编写
网页_为
Node
.
js
编写
可扩展
架构
...
node
.
js
编写
网页by Zafar Saleem 通过Zafar Saleem 为
Node
.
js
编写
可扩展
架构
(W...
赞
踩
article
[
专栏
精选]
Visual
Effect
Graph
入门...
本文节选自洪流学堂公众号技术
专栏
《大话Unity2018》,未经允许不可转载。洪流学堂公众号回复
专栏
,查看更多
专栏
文章。...
赞
踩
article
Mediapipe
的
Unity
实现_
mediapipe
unity
...
无_
mediapipe
unity
mediapipe
unity
...
赞
踩
article
C#
中
EPPlus
对
Excel
的读写_
c#
epplus
读取
excel
xls
后缀...
1.
EPPlus
概述
EPPlus
是使用Open Office XML格式(
xls
x)读写
Excel
2007 / 2...
赞
踩
article
linux
系统
下安装
qgis
,深度
操作
系统
deepin
15.11安装
QGIS
3.4...
深度
操作
系统
是基于Linux内核,以桌面应用为主的开源 GNU/Linux
操作
系统
,支持笔记本、台式机和一体机。深度操...
赞
踩
article
快速彻底
卸载
SQL
Server
及
实例
的方法分享_
sql
实例
名已存在怎么
删除
...
快速彻底
卸载
SQL
Server
及
实例
的方法分享_
sql
实例
名已存在怎么
删除
sql
实例
名已存在怎么
删除
...
赞
踩
article
Docker部署
Stable
-
Diffusion
-
webui
...
Docker容器内,从零开始搭建一个
Stable
Diffusion
Webui服务。_docker部署stable-d...
赞
踩
article
numpy
的
linalg
模块
_
gt-
linalg
是什么...
linalg
是
numpy
中用于线性代数计算
的
模块是linear algebra
的
简写里面有很多功能函数,可以求行列式、特...
赞
踩
article
vue2+
el
Tree 实现
右键
菜单
_
el
-
tree
右键
菜单
...
vue2+
el
Tree 实现
右键
菜单
_
el
-
tree
右键
菜单
el
-
tree
右键
菜单
背景:通...
赞
踩
article
javax
.
net
.
ssl
.SSLHandshakeException: Received fata...
1、找到jvm下的java.security文件,Mac电脑路径示例:/Library/Java/JavaVirtual...
赞
踩
article
pi
六轴
算法
_
蒙特卡洛
算法
求PI...
利用
蒙特卡洛
法随机生成任意点,求出PI源码:import java.awt.*;import java.util.Lin...
赞
踩
article
鼠标
悬停
变小手的效果,兼容FF_
unity3d
toggle
鼠标
悬浮
手势改变...
_
unity3d
toggle
鼠标
悬浮
手势改变
unity3d
toggle
鼠标
悬浮
手势改变 ...
赞
踩
article
Element
Ui
Tree
组件实现增、删、
改
、查、拖拽节点
的
树形结构
_
element
ui
树...
如: 获取所有权限,匹配
改
个节点(角色)所包含
的
权限,修
改
时默认勾选,List
_
id 该角色拥有权限
的
id
的
集合!2,组...
赞
踩
相关标签
c/c++
photoshop
ui
vue
前端
harmonyos
华为
学习方法
四元数
pyqt
pyside-uic
vue.js
css3
unity
3dsmax
数据库
java
python
中间件
ViewUI
游戏引擎
linux系统下安装qgis
microsoft
sql