风力干扰环境下四旋翼飞行器姿态解算方法.pdf

上传人:1520****312 文档编号:6074231 上传时间:2019-04-07 格式:PDF 页数:18 大小:1.03MB
返回 下载 相关 举报
摘要
申请专利号:

CN201710067656.9

申请日:

2017.02.07

公开号:

CN106643737A

公开日:

2017.05.10

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G01C 21/20申请日:20170207|||公开

IPC分类号:

G01C21/20; G01C21/16

主分类号:

G01C21/20

申请人:

大连大学

发明人:

王洪雁; 裴炳南; 郑佳; 房云飞; 季科; 乔惠娇

地址:

116622 辽宁省大连市开发区学府大街10号

优先权:

专利代理机构:

大连八方知识产权代理有限公司 21226

代理人:

卫茂才

PDF下载: PDF下载
内容摘要

本发明属于无人机控制领域,针对风力会影响无人机姿态解算,进而干扰无人机飞行控制问题,基于扩展卡尔曼滤波理论,本文提出一种风力干扰环境下无人机姿态解算方法以增强姿态解算的稳健性从而提高无人机控制性能。所提方法通过四元数微分方程和陀螺仪噪声误差建立扩展卡尔曼滤波状态方程,并基于加速度计、磁强计、风力相关数据,得到四元数解算结果。基于实测数据测试结果表明,所提算法可以有效抑制姿态角发散,提高姿态解算精度,改善无人机控制性能。

权利要求书

1.风力干扰环境下四旋翼飞行器姿态解算方法,其特征在于:包括如下步骤:
第一步:坐标系定义以及姿态矩阵,
为了描述飞行器的俯仰、偏航、横滚的姿态信息,需要建立相应的坐标系;本专利采用
两个不同的三维坐标系,分别为导航坐标系n,定义为东北天坐标系;载体坐标系b,其中xb
沿机体横轴指向右,yb沿机体纵轴指向前,zb沿机体竖直指向上,满足右手定则,原点皆为无
人机重心;姿态解算在导航坐标系中完成,因而须将无人机上传感器测得的姿态信息经坐
标变换矩阵映射至坐标系n;
从导航坐标系到载体坐标系的姿态矩阵可表示为:
<mrow> <msubsup> <mi>C</mi> <mi>n</mi> <mi>b</mi> </msubsup> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>2</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>3</mn> <mn>2</mn> </msubsup> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>2</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>3</mn> <mn>2</mn> </msubsup> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>2</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>3</mn> <mn>2</mn> </msubsup> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>
其方向余弦形式可表述如下:
<mrow> <msubsup> <mi>C</mi> <mi>n</mi> <mi>b</mi> </msubsup> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>cos</mi> <mi>&theta;</mi> <mi>cos</mi> <mi>&psi;</mi> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mi>&psi;</mi> <mi>sin</mi> <mi>&theta;</mi> <mi>sin</mi> <mi>&phi;</mi> <mo>-</mo> <mi>cos</mi> <mi>&phi;</mi> <mi>sin</mi> <mi>&psi;</mi> </mrow> </mtd> <mtd> <mrow> <mi>sin</mi> <mi>&phi;</mi> <mi>sin</mi> <mi>&psi;</mi> <mo>+</mo> <mi>cos</mi> <mi>&phi;</mi> <mi>sin</mi> <mi>&theta;</mi> <mi>s</mi> <mi> </mi> <mi>cos</mi> <mi>&psi;</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>cos</mi> <mi>&theta;</mi> <mi>sin</mi> <mi>&psi;</mi> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mi>&phi;</mi> <mi>cos</mi> <mi>&psi;</mi> <mo>+</mo> <mi>sin</mi> <mi>&phi;</mi> <mi>sin</mi> <mi>&theta;</mi> <mi>sin</mi> <mi>&psi;</mi> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mi>&phi;</mi> <mi>sin</mi> <mi>&theta;</mi> <mi>sin</mi> <mi>&psi;</mi> <mo>-</mo> <mi>sin</mi> <mi>&phi;</mi> <mi>cos</mi> <mi>&psi;</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mi>sin</mi> <mi>&theta;</mi> </mrow> </mtd> <mtd> <mrow> <mi>sin</mi> <mi>&phi;</mi> <mi>cos</mi> <mi>&theta;</mi> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mi>&phi;</mi> <mi>cos</mi> <mi>&theta;</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>
式中,ψ,θ,φ分别表示无人机的航向角,俯仰角,翻滚角;比较姿态矩阵的四元数形式
(1)及欧拉角形式(2),可知:
<mrow> <mtable> <mtr> <mtd> <mrow> <mi>&psi;</mi> <mo>=</mo> <mi>arctan</mi> <mrow> <mo>(</mo> <mfrac> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <msubsup> <mi>q</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>2</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>3</mn> <mn>2</mn> </msubsup> </mrow> </mfrac> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>&theta;</mi> <mo>=</mo> <mo>-</mo> <mi>arcsin</mi> <mrow> <mo>(</mo> <mn>2</mn> <mo>(</mo> <mrow> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>&phi;</mi> <mo>=</mo> <mi>arctan</mi> <mrow> <mo>(</mo> <mfrac> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <mo>-</mo> <msubsup> <mi>q</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>2</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>3</mn> <mn>2</mn> </msubsup> </mrow> </mfrac> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>
至此,可得姿态角的四元数表示形式,基于此形式可对风力干扰条件下基于卡尔曼滤
波的姿态计算问题进行深入分析;
第二步:卡尔曼滤波定姿方程
①卡尔曼滤波姿态解算的状态方程
卡尔曼滤波姿态解算的预测方程表示为:
Xk=Φk,k-1Xk-1+Wk-1 (4)
其中Φk,k-1为tk-1时刻到tk时刻的一步转移矩阵,Wk为系统噪声序列;
系统状态方程可表示为:
<mrow> <mover> <mi>q</mi> <mo>&CenterDot;</mo> </mover> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <msub> <mi>&Omega;</mi> <mi>b</mi> </msub> <mi>q</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>
由于状态估计量为四元数,则状态方程用四元数微分方程可进一步表示为:
<mrow> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msub> <mover> <mi>q</mi> <mo>&CenterDot;</mo> </mover> <mn>0</mn> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mover> <mi>q</mi> <mo>&CenterDot;</mo> </mover> <mn>1</mn> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mover> <mi>q</mi> <mo>&CenterDot;</mo> </mover> <mn>2</mn> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mover> <mi>q</mi> <mo>&CenterDot;</mo> </mover> <mn>3</mn> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>=</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mo>-</mo> <msub> <mi>&omega;</mi> <mi>x</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <msub> <mi>&omega;</mi> <mi>y</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <msub> <mi>&omega;</mi> <mi>z</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <msub> <mi>&omega;</mi> <mi>x</mi> </msub> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>&omega;</mi> <mi>z</mi> </msub> </mtd> <mtd> <mrow> <mo>-</mo> <msub> <mi>&omega;</mi> <mi>y</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <msub> <mi>&omega;</mi> <mi>y</mi> </msub> </mtd> <mtd> <mrow> <mo>-</mo> <msub> <mi>&omega;</mi> <mi>x</mi> </msub> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>&omega;</mi> <mi>x</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>&omega;</mi> <mi>z</mi> </msub> </mtd> <mtd> <msub> <mi>&omega;</mi> <mi>y</mi> </msub> </mtd> <mtd> <mrow> <mo>-</mo> <msub> <mi>&omega;</mi> <mi>x</mi> </msub> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> </mtable> </mfenced> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msub> <mi>q</mi> <mn>0</mn> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>q</mi> <mn>1</mn> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>q</mi> <mn>2</mn> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>q</mi> <mn>3</mn> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>
其中,ωx,ωy,ωz为安装在四旋翼飞行器上陀螺仪的角速度分量;
由于系统状态方程是连续的,不易采用数字化方法对其进行求解;针对此问题,目前求
解四元数微分方程主要有两种方法:一种是龙格库塔法,另一种是毕卡逼近法;本专利采用
四阶毕卡逼近法将其离散化,取q(t)=[q0(t) q1(t) q2(t) q3(t)],将(6)式离散化可得:
q(k+1)=Φk,k-1q(k) (7)
其中:
<mrow> <msub> <mi>&Phi;</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mn>1</mn> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>8</mn> </mfrac> <mo>+</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>4</mn> </msubsup> </mrow> <mn>384</mn> </mfrac> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mrow> <mo>(</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>48</mn> </mfrac> <mo>)</mo> </mrow> <msub> <mi>&Delta;&theta;</mi> <mi>x</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mrow> <mo>(</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>48</mn> </mfrac> <mo>)</mo> </mrow> <msub> <mi>&Delta;&theta;</mi> <mi>y</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mrow> <mo>(</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>48</mn> </mfrac> <mo>)</mo> </mrow> <msub> <mi>&Delta;&theta;</mi> <mi>z</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>(</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>48</mn> </mfrac> <mo>)</mo> <msub> <mi>&Delta;&theta;</mi> <mi>x</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mn>1</mn> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>8</mn> </mfrac> <mo>+</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>4</mn> </msubsup> </mrow> <mn>384</mn> </mfrac> </mrow> </mtd> <mtd> <mrow> <mo>(</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>48</mn> </mfrac> <mo>)</mo> <msub> <mi>&Delta;&theta;</mi> <mi>z</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mrow> <mo>(</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>48</mn> </mfrac> <mo>)</mo> </mrow> <msub> <mi>&Delta;&theta;</mi> <mi>y</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>(</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>48</mn> </mfrac> <mo>)</mo> <msub> <mi>&Delta;&theta;</mi> <mi>y</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mrow> <mo>(</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>48</mn> </mfrac> <mo>)</mo> </mrow> <msub> <mi>&Delta;&theta;</mi> <mi>z</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mn>1</mn> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>8</mn> </mfrac> <mo>+</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>4</mn> </msubsup> </mrow> <mn>384</mn> </mfrac> </mrow> </mtd> <mtd> <mrow> <mo>(</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>48</mn> </mfrac> <mo>)</mo> <msub> <mi>&Delta;&theta;</mi> <mi>x</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>(</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>48</mn> </mfrac> <mo>)</mo> <msub> <mi>&Delta;&theta;</mi> <mi>z</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mo>(</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>48</mn> </mfrac> <mo>)</mo> <msub> <mi>&Delta;&theta;</mi> <mi>y</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mrow> <mo>(</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>48</mn> </mfrac> <mo>)</mo> </mrow> <msub> <mi>&Delta;&theta;</mi> <mi>x</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mn>1</mn> <mo>-</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> </mrow> <mn>8</mn> </mfrac> <mo>+</mo> <mfrac> <mrow> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>4</mn> </msubsup> </mrow> <mn>384</mn> </mfrac> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>
<mrow> <msub> <mi>&Delta;&theta;</mi> <mi>x</mi> </msub> <mo>=</mo> <msubsup> <mo>&Integral;</mo> <mi>k</mi> <mrow> <mi>k</mi> <mo>+</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>&omega;</mi> <mi>x</mi> </msub> <mi>d</mi> <mi>t</mi> <mo>,</mo> <msub> <mi>&Delta;&theta;</mi> <mi>y</mi> </msub> <mo>=</mo> <msubsup> <mo>&Integral;</mo> <mi>k</mi> <mrow> <mi>k</mi> <mo>+</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>&omega;</mi> <mi>y</mi> </msub> <mi>d</mi> <mi>t</mi> <mo>,</mo> <msub> <mi>&Delta;&theta;</mi> <mi>z</mi> </msub> <mo>=</mo> <msubsup> <mo>&Integral;</mo> <mi>k</mi> <mrow> <mi>k</mi> <mo>+</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>&omega;</mi> <mi>z</mi> </msub> <mi>d</mi> <mi>t</mi> <mo>,</mo> <msubsup> <mi>&Delta;&theta;</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>=</mo> <msubsup> <mi>&Delta;&theta;</mi> <mi>x</mi> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>&Delta;&theta;</mi> <mi>y</mi> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>&Delta;&theta;</mi> <mi>z</mi> <mn>2</mn> </msubsup> </mrow>
②卡尔曼滤波姿态解算的观测方程
风力干扰环境下,观测量可由以下三种测量值构成:加速度计、磁力计和风力;其观测
方程为:
Z(t)=HX(t)+V(t) (8)
其中V(t)是白噪声,下面对测量值进行深入分析;
首先针对观测量加速度计和磁强计进行分析:
参考坐标系下重力向量定义为G=[0 0 1]T,地磁场向量h=[hx hy hz]T;其矩阵形式可
分别表示为:
<mrow> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>g</mi> <mi>x</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>g</mi> <mi>y</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>g</mi> <mi>z</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>=</mo> <msubsup> <mi>C</mi> <mi>n</mi> <mi>b</mi> </msubsup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>9</mn> <mo>)</mo> </mrow> </mrow>
<mrow> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>m</mi> <mi>x</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>m</mi> <mi>y</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>m</mi> <mi>z</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>=</mo> <msubsup> <mi>C</mi> <mi>n</mi> <mi>b</mi> </msubsup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>h</mi> <mi>x</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>h</mi> <mi>y</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>h</mi> <mi>z</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>10</mn> <mo>)</mo> </mrow> </mrow>
其中,g,m分别是载体坐标系下加速度计及磁力计的量测值;由式(9)及(10)可得:
<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>g</mi> <mi>x</mi> </msub> <mo>=</mo> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>g</mi> <mi>y</mi> </msub> <mo>=</mo> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>g</mi> <mi>z</mi> </msub> <mo>=</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>2</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>3</mn> <mn>2</mn> </msubsup> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>11</mn> <mo>)</mo> </mrow> </mrow>
<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>m</mi> <mi>x</mi> </msub> <mo>=</mo> <mrow> <mo>(</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>+</mo> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>+</mo> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>h</mi> <mi>z</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>m</mi> <mi>y</mi> </msub> <mo>=</mo> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>+</mo> <mrow> <mo>(</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>+</mo> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>h</mi> <mi>z</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>m</mi> <mi>z</mi> </msub> <mo>=</mo> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>+</mo> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>+</mo> <mrow> <mo>(</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <msub> <mi>h</mi> <mi>z</mi> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>12</mn> <mo>)</mo> </mrow> </mrow>
由以上所述,可得加速度计及磁力计量测值的四元数表示形式,下面针对风力进行深
入分析;
第三步:风力观测方程
①气流坐标系
空气流动用幅值为VT的空速矢量VT表示,其方向由相对机体的两个角来定义,即攻角α
和侧滑角β,分别定义为:
<mrow> <msub> <mi>V</mi> <mi>T</mi> </msub> <mo>=</mo> <msqrt> <mrow> <msubsup> <mi>u</mi> <mi>T</mi> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>v</mi> <mi>T</mi> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>w</mi> <mi>T</mi> <mn>2</mn> </msubsup> </mrow> </msqrt> <mo>,</mo> <mi>&alpha;</mi> <mo>=</mo> <mi>arctan</mi> <mrow> <mo>(</mo> <mfrac> <msub> <mi>w</mi> <mi>T</mi> </msub> <msub> <mi>u</mi> <mi>T</mi> </msub> </mfrac> <mo>)</mo> </mrow> <mo>,</mo> <mi>&beta;</mi> <mo>=</mo> <mi>arcsin</mi> <mrow> <mo>(</mo> <mfrac> <msub> <mi>v</mi> <mi>T</mi> </msub> <msub> <mi>V</mi> <mi>T</mi> </msub> </mfrac> <mo>)</mo> </mrow> <mo>,</mo> </mrow>
机体坐标系(b)到气流坐标系(w)的旋转矩阵可表述如下:
由于则:
<mrow> <msup> <mi>A</mi> <mi>w</mi> </msup> <mo>=</mo> <msubsup> <mi>C</mi> <mi>b</mi> <mi>w</mi> </msubsup> <msup> <mi>A</mi> <mi>b</mi> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>13</mn> <mo>)</mo> </mrow> </mrow>
其中A为矢量,由上式可得:
其中,
<mrow> <msubsup> <mi>C</mi> <mi>b</mi> <mi>w</mi> </msubsup> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>cos</mi> <mi>&beta;</mi> </mrow> </mtd> <mtd> <mrow> <mi>sin</mi> <mi>&beta;</mi> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mi>sin</mi> <mi>&beta;</mi> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mi>&beta;</mi> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>cos</mi> <mi>&alpha;</mi> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>sin</mi> <mi>&alpha;</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mi>sin</mi> <mi>&alpha;</mi> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>cos</mi> <mi>&alpha;</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>cos</mi> <mi>&alpha;</mi> <mi>cos</mi> <mi>&beta;</mi> </mrow> </mtd> <mtd> <mrow> <mi>sin</mi> <mi>&beta;</mi> </mrow> </mtd> <mtd> <mrow> <mi>sin</mi> <mi>&alpha;</mi> <mi>cos</mi> <mi>&beta;</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mi>sin</mi> <mi>&beta;</mi> <mi>cos</mi> <mi>&alpha;</mi> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mi>&beta;</mi> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mi>sin</mi> <mi>&alpha;</mi> <mi>sin</mi> <mi>&beta;</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mi>sin</mi> <mi>&alpha;</mi> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>cos</mi> <mi>&alpha;</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>
基于上述分析,空速矢量可表示为:
<mrow> <msubsup> <mi>V</mi> <mi>T</mi> <mi>b</mi> </msubsup> <mo>=</mo> <msubsup> <mi>C</mi> <mi>w</mi> <mi>b</mi> </msubsup> <msubsup> <mi>V</mi> <mi>T</mi> <mi>w</mi> </msubsup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>14</mn> <mo>)</mo> </mrow> </mrow>
在机体坐标系中,空速矢量可改写为:
<mrow> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>u</mi> <mi>T</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>v</mi> <mi>T</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>w</mi> <mi>T</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>=</mo> <msubsup> <mi>C</mi> <mi>w</mi> <mi>b</mi> </msubsup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>V</mi> <mi>T</mi> </msub> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>15</mn> <mo>)</mo> </mrow> </mrow>
至此,气流坐标系已建立,下面将在此坐标系下对风力干扰进行分析;
②风力干扰
飞机惯性速度v为空速VT及风速W之和,可表示为:
v=VT+W (16)
导航坐标系下,扰动风表示为Wn,机体坐标系飞机速度可表示为:
<mrow> <msup> <mi>v</mi> <mi>b</mi> </msup> <mo>=</mo> <msubsup> <mi>V</mi> <mi>T</mi> <mi>b</mi> </msubsup> <mo>+</mo> <msubsup> <mi>C</mi> <mi>n</mi> <mi>b</mi> </msubsup> <msup> <mi>W</mi> <mi>n</mi> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>17</mn> <mo>)</mo> </mrow> </mrow>
上式可改写为:
<mrow> <msubsup> <mi>C</mi> <mi>n</mi> <mi>b</mi> </msubsup> <msup> <mi>W</mi> <mi>n</mi> </msup> <mo>=</mo> <msup> <mi>v</mi> <mi>b</mi> </msup> <mo>-</mo> <msubsup> <mi>V</mi> <mi>T</mi> <mi>b</mi> </msubsup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>18</mn> <mo>)</mo> </mrow> </mrow>
导航坐标系下,式(18)的矩阵形式可表示为:
<mrow> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>u</mi> <mi>T</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>v</mi> <mi>T</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>w</mi> <mi>T</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>=</mo> <msubsup> <mi>C</mi> <mi>n</mi> <mi>b</mi> </msubsup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mi>u</mi> </mtd> </mtr> <mtr> <mtd> <mi>v</mi> </mtd> </mtr> <mtr> <mtd> <mi>w</mi> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <msubsup> <mi>C</mi> <mi>n</mi> <mi>b</mi> </msubsup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>W</mi> <mi>N</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>W</mi> <mi>E</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>W</mi> <mi>D</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>19</mn> <mo>)</mo> </mrow> </mrow>
由系统观测过程可知,四元数为关于加速度计磁力计的量测值及风力值的非线性函
数;为求解四元数,须基于雅克比矩阵将其线性化;基于式(12)及(13),雅克比矩阵H可表示
为:
<mrow> <mi>H</mi> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>q</mi> <mn>2</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <msub> <mi>q</mi> <mn>3</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>q</mi> <mn>0</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <msub> <mi>q</mi> <mn>1</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>2</mn> <msub> <mi>q</mi> <mn>1</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <msub> <mi>q</mi> <mn>0</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <msub> <mi>q</mi> <mn>3</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <msub> <mi>q</mi> <mn>2</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>2</mn> <msub> <mi>q</mi> <mn>0</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>q</mi> <mn>1</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>q</mi> <mn>2</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <msub> <mi>q</mi> <mn>3</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>3</mn> </msub> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>h</mi> <mi>z</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>3</mn> </msub> <msub> <mi>h</mi> <mi>z</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <mo>-</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>h</mi> <mi>z</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <mo>-</mo> <msub> <mi>q</mi> <mn>3</mn> </msub> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>h</mi> <mi>z</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <mo>-</mo> <msub> <mi>q</mi> <mn>3</mn> </msub> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>h</mi> <mi>z</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>h</mi> <mi>z</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>3</mn> </msub> <msub> <mi>h</mi> <mi>z</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>3</mn> </msub> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>h</mi> <mi>z</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>h</mi> <mi>z</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>3</mn> </msub> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>h</mi> <mi>z</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>3</mn> </msub> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>h</mi> <mi>z</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>h</mi> <mi>x</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>h</mi> <mi>y</mi> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>3</mn> </msub> <msub> <mi>h</mi> <mi>z</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>2</mn> <msub> <mi>q</mi> <mn>3</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>q</mi> <mn>2</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>q</mi> <mn>1</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <msub> <mi>q</mi> <mn>0</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>q</mi> <mn>0</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <msub> <mi>q</mi> <mn>1</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>q</mi> <mn>2</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <msub> <mi>q</mi> <mn>3</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>q</mi> <mn>1</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>q</mi> <mn>0</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>q</mi> <mn>2</mn> </msub> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>q</mi> <mn>3</mn> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>20</mn> <mo>)</mo> </mrow> </mrow>
至此,得到了风力观测方程及将其线性化的雅克比矩阵;基于此,即可利用扩展卡尔曼
滤波对四元数进行解算;
第四步:基于扩展卡尔曼滤波流程的四元数姿态解算。
2.根据权利要求1所述的风力干扰环境下四旋翼飞行器姿态解算方法,其特征在于:包
括如下步骤:
第一步:时间更新过程,
状态一步预测:
<mrow> <msub> <mover> <mi>X</mi> <mo>^</mo> </mover> <mrow> <mi>k</mi> <mo>/</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>&Phi;</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <msub> <mover> <mi>X</mi> <mo>^</mo> </mover> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>21</mn> <mo>)</mo> </mrow> </mrow>
均方误差的一步预测:
<mrow> <msub> <mi>P</mi> <mrow> <mi>k</mi> <mo>/</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>&Phi;</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <msub> <mi>P</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <msubsup> <mi>&Phi;</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> </mrow> <mi>T</mi> </msubsup> <mo>+</mo> <msub> <mi>&Gamma;</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <msub> <mi>Q</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <msubsup> <mi>&Gamma;</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>T</mi> </msubsup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>22</mn> <mo>)</mo> </mrow> </mrow>
第二步:量测更新过程,
卡尔曼滤波增益:
<mrow> <msub> <mi>K</mi> <mi>k</mi> </msub> <mo>=</mo> <msub> <mi>P</mi> <mrow> <mi>k</mi> <mo>/</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <msubsup> <mi>H</mi> <mi>k</mi> <mi>T</mi> </msubsup> <mrow> <mo>(</mo> <msub> <mi>H</mi> <mi>k</mi> </msub> <msub> <mi>P</mi> <mrow> <mi>k</mi> <mo>/</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <msubsup> <mi>H</mi> <mi>k</mi> <mi>T</mi> </msubsup> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>23</mn> <mo>)</mo> </mrow> </mrow>
协方差阵更新:
Pk=(I-KkHk)Pk/k-1 (24)
状态更新:
<mrow> <msub> <mover> <mi>X</mi> <mo>^</mo> </mover> <mi>k</mi> </msub> <mo>=</mo> <msub> <mover> <mi>X</mi> <mo>^</mo> </mover> <mrow> <mi>k</mi> <mo>/</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <msub> <mi>K</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>Z</mi> <mi>k</mi> </msub> <mo>-</mo> <msub> <mi>H</mi> <mi>k</mi> </msub> <msub> <mover> <mi>X</mi> <mo>^</mo> </mover> <mrow> <mi>k</mi> <mo>/</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>.</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>25</mn> <mo>)</mo> </mrow> </mrow>

说明书

风力干扰环境下四旋翼飞行器姿态解算方法

技术领域

本发明涉及风力干扰环境下四旋翼飞行器姿态解算方法,属于无人机飞行控制领
域。

背景技术

近年来,随着微电子技术,微机电技术,高聚合物新能源技术,先进控制技术的发
展,四旋翼飞行器已成为人们研究的热点。无人飞行器的种类繁多,其中四旋翼无人飞行器
是一个重要的研究方向。与其他无人飞行器相比,四旋翼飞行器可以实现垂直起降,定点悬
停等功能,同时具有体积小,机构简单,成本低,机动性能好,有效载荷能力好,易于穿行狭
小空间等优势,因此在环境监测、灾区营救、输电线路巡查和空中航拍等领域得到了广泛的
应用。

飞行器的位姿估计是实现无人飞行器(UAV)自主能力飞行的基础。互补滤波最先
在无人机姿态解算中得到很好的应用,然而姿态解算的精度还是达不到要求。在过去的几
十年里,众多学者致力于研究卡尔曼滤波算法,如:扩展卡尔曼滤波(EKF),无迹卡尔曼滤波
(UKF)和粒子滤波。并成功将EKF和UKF运用到无人机姿态解算中去,得到了更高精度的姿态
角。万晓凤,康利平,余运俊等基于互补滤波算法进行姿态解算,并取得了较高精度的姿态
角。李萧然,陈谋等人基于EKF进行无人机姿态解算,得到了很高精度的姿态角。朱岩,付巍
等人基于UKF进行无人机姿态解算,得到了更高精度的姿态角。以上学者皆没有考虑风力估
算,针对此问题,A Cho等人提出用一个单天线GPS和流速计对风进行估计。然而,该学者仅
仅考虑了风力的估计,而没有深入研究风力对无人机控制的影响。在实际环境下,飞行器飞
行时易受风力影响,从而导致飞行器姿态解算误差较大,进而影响到对无人机的有效控制。
针对此问题,本发明提出一种风力干扰环境下无人机姿态解算算法。本算法将风力作为观
测量,基于四元数微分方程和陀螺仪噪声误差建立卡尔曼滤波状态方程,并利用来自加速
度计,磁力计,GPS,空速计等传感器补偿陀螺仪引起的误差,最后利用加速度计,磁力计和
风力相关数据进行四元数解算。基于实测数据的测试表明,所提算法可以有效抑制姿态角
发散,提高姿态解算精度,改善无人机控制性能。

发明内容

针对风力会影响无人机姿态解算,进而干扰无人机飞行控制问题,基于扩展卡尔
曼滤波理论,本发明提出一种风力干扰环境下无人机姿态解算方法以增强姿态解算的稳健
性从而提高无人机控制性能。所提方法通过四元数微分方程和陀螺仪噪声误差建立扩展卡
尔曼滤波状态方程,并基于加速度计、磁强计、风力相关数据,得到四元数解算结果。基于实
测数据测试结果表明,所提算法可以有效抑制姿态角发散,提高姿态解算精度,改善无人机
控制性能。实现本发明的基本思路是,首先建立无人机姿态模型,建立扩展卡尔曼滤波状态
方程和观测方程,引入风力作为观测量,对状态方程进行线性化,求解最优姿态角。

本发明的具体步骤包含如下:

第一步:坐标系定义以及姿态矩阵

为了描述飞行器的俯仰、偏航、横滚的姿态信息,需要建立相应的坐标系。本专利
采用两个不同的三维坐标系,分别为导航坐标系n,定义为东北天坐标系;载体坐标系b,其
中xb沿机体横轴指向右,yb沿机体纵轴指向前,zb沿机体竖直指向上,满足右手定则,原点皆
为无人机重心。姿态解算在导航坐标系中完成,因而须将无人机上传感器测得的姿态信息
经坐标变换矩阵映射至坐标系n。

从导航坐标系到载体坐标系的姿态矩阵可表示为:


其方向余弦形式可表述如下:


式中,ψ,θ,φ分别表示无人机的航向角,俯仰角,翻滚角。比较姿态矩阵的四元数
形式(1)及欧拉角形式(2),可知:


至此,可得姿态角的四元数表示形式,基于此形式可对风力干扰条件下基于卡尔
曼滤波的姿态计算问题进行深入分析。

第二步:卡尔曼滤波定姿方程,

1.卡尔曼滤波姿态解算的状态方程,

卡尔曼滤波姿态解算的预测方程表示为:

Xk=Φk,k-1Xk-1+Wk-1 (4)

其中Φk,k-1为tk-1时刻到tk时刻的一步转移矩阵,Wk为系统噪声序列。

系统状态方程可表示为:


由于状态估计量为四元数,则状态方程用四元数微分方程可进一步表示为:


其中,ωx,ωy,ωz为安装在四旋翼飞行器上陀螺仪的角速度分量。

由于系统状态方程是连续的,不易采用数字化方法对其进行求解。针对此问题,目
前求解四元数微分方程主要有两种方法:一种是龙格库塔法,另一种是毕卡逼近法。本专利
采用四阶毕卡逼近法将其离散化,取q(t)=[q0(t)q1(t)q2(t)q3(t)],将(6)式离散化可得:

q(k+1)=Φk,k-1q(k) (7)

其中:



2.卡尔曼滤波姿态解算的观测方程

风力干扰环境下,观测量可由以下三种测量值构成:加速度计、磁力计和风力。其
观测方程为:

Z(t)=HX(t)+V(t) (8)

其中V(t)是白噪声,下面对测量值进行深入分析。

首先针对观测量加速度计和磁强计进行分析:

参考坐标系下重力向量定义为G=[0 0 1]T,地磁场向量h=[hx hy hz]T。其矩阵形
式可分别表示为:



其中,g,m分别是载体坐标系下加速度计及磁力计的量测值。由式(9)及(10)可得:



由以上所述,可得加速度计及磁力计量测值的四元数表示形式,下面针对风力进
行深入分析。

第三步:风力观测方程,

1.气流坐标系

空气流动用幅值为VT的空速矢量VT表示,其方向由相对机体的两个角来定义,即攻
角α和侧滑角β,分别定义为:


机体坐标系(b)到气流坐标系(w)的旋转矩阵可表述如下:

由于则:


其中A为矢量,由上式可得:

其中,


基于上述分析,空速矢量可表示为:


在机体坐标系中,空速矢量可改写为:


至此,气流坐标系已建立,下面将在此坐标系下对风力干扰进行分析。

2.风力干扰

飞机惯性速度v为空速VT及风速W之和,可表示为:

v=VT+W (16)

导航坐标系下,扰动风表示为Wn,机体坐标系飞机速度可表示为:


上式可改写为:


导航坐标系下,式(18)的矩阵形式可表示为:


由系统观测过程可知,四元数为关于加速度计磁力计的量测值及风力值的非线性
函数。为求解四元数,须基于雅克比矩阵将其线性化。基于式(12)及(14),雅克比矩阵H可表
示为:



至此,得到了风力观测方程及将其线性化的雅克比矩阵。基于此,即可利用扩展卡
尔曼滤波对四元数进行解算。

第四步:基于扩展卡尔曼滤波流程的四元数姿态解算

基于以上讨论可知,基于风力的无人机姿态解算可利用扩展卡尔曼滤波实现。在
一个滤波周期内,卡尔曼滤波具有两个明显的更新过程:时间更新过程和量测更新过程。因
此,基于以上所述,基于风力的时间更新过程及量测更新过程可表述如下:

1.时间更新过程

状态一步预测:


均方误差的一步预测:


2.量测更新过程

卡尔曼滤波增益:


协方差阵更新:

Pk=(I-KkHk)Pk/k-1 (24)

状态更新:


本发明有益效果:

本发明与现有技术相比具有以下优点:

本发明基于扩展卡尔曼滤波,将风力作为观测变量,在风力干扰下可以有效抑制
姿态角发散,提高姿态解算精度,改善无人机控制性能。针对风力会影响无人机姿态解算,
进而干扰无人机飞行控制问题,基于扩展卡尔曼滤波理论,本发明提出一种风力干扰环境
下无人机姿态解算方法以增强姿态解算的稳健性从而提高无人机控制性能。所提方法通过
四元数微分方程和陀螺仪噪声误差建立扩展卡尔曼滤波状态方程,并基于加速度计、磁强
计、风力相关数据,得到四元数解算结果。基于实测数据测试结果表明,所提算法可以有效
抑制姿态角发散,提高姿态解算精度,改善无人机控制性能

附图说明

图1为本发明实现的流程图;

图2为本发明分别在无风,有风时考虑风和有风时不考虑风的翻滚角偏差对比图;

图3为本发明分别在无风,有风时考虑风和有风时不考虑风的俯仰角偏差对比图;

图4位本发明分别在无风,有风时考虑风和有风时不考虑风的偏航角偏差对比图。

具体实施方式

本发明的效果可通过以下仿真进一步说明:

下面结合附图1对本发明的实现步骤做进一步详细描述:

第一步:坐标系定义以及姿态矩阵

为了描述飞行器的俯仰、偏航、横滚的姿态信息,需要建立相应的坐标系。本专利
采用两个不同的三维坐标系,分别为导航坐标系n,定义为东北天坐标系;载体坐标系b,其
中xb沿机体横轴指向右,yb沿机体纵轴指向前,zb沿机体竖直指向上,满足右手定则,原点皆
为无人机重心。姿态解算在导航坐标系中完成,因而须将无人机上传感器测得的姿态信息
经坐标变换矩阵映射至坐标系n。

从导航坐标系到载体坐标系的姿态矩阵可表示为:


其方向余弦形式可表述如下:


式中,ψ,θ,φ分别表示无人机的航向角,俯仰角,翻滚角。比较姿态矩阵的四元数
形式(1)及欧拉角形式(2),可知:


至此,可得姿态角的四元数表示形式,基于此形式可对风力干扰条件下基于卡尔
曼滤波的姿态计算问题进行深入分析。

第二步:卡尔曼滤波定姿方程

1.卡尔曼滤波姿态解算的状态方程

卡尔曼滤波姿态解算的预测方程表示为:

Xk=Φk,k-1Xk-1+Wk-1 (4)

其中Φk,k-1为tk-1时刻到tk时刻的一步转移矩阵,Wk为系统噪声序列。

系统状态方程可表示为:


由于状态估计量为四元数,则状态方程用四元数微分方程可进一步表示为:


其中,ωx,ωy,ωz为安装在四旋翼飞行器上陀螺仪的角速度分量。

由于系统状态方程是连续的,不易采用数字化方法对其进行求解。针对此问题,目
前求解四元数微分方程主要有两种方法:一种是龙格库塔法,另一种是毕卡逼近法。本专利
采用四阶毕卡逼近法将其离散化,取q(t)=[q0(t)q1(t)q2(t)q3(t)],将(6)式离散化可得:

q(k+1)=Φk,k-1q(k) (7)

其中:



2.卡尔曼滤波姿态解算的观测方程

风力干扰环境下,观测量可由以下三种测量值构成:加速度计、磁力计和风力。其
观测方程为:

Z(t)=HX(t)+V(t) (8)

其中V(t)是白噪声,下面对测量值进行深入分析。

首先针对观测量加速度计和磁强计进行分析:

参考坐标系下重力向量定义为G=[0 0 1]T,地磁场向量h=[hx hy hz]T。其矩阵形
式可分别表示为:



其中,g,m分别是载体坐标系下加速度计及磁力计的量测值。由式(9)及(10)可得:



由以上所述,可得加速度计及磁力计量测值的四元数表示形式,下面针对风力进
行深入分析。

第三步:风力观测方程

1.气流坐标系

空气流动用幅值为VT的空速矢量VT表示,其方向由相对机体的两个角来定义,即攻
角α和侧滑角β,分别定义为:


机体坐标系(b)到气流坐标系(w)的旋转矩阵可表述如下:

由于则:


其中A为矢量,由上式可得:

其中,


基于上述分析,空速矢量可表示为:


在机体坐标系中,空速矢量可改写为:


至此,气流坐标系已建立,下面将在此坐标系下对风力干扰进行分析。

2.风力干扰

飞机惯性速度v为空速VT及风速W之和,可表示为:

v=VT+W (16)

导航坐标系下,扰动风表示为Wn,机体坐标系飞机速度可表示为:


上式可改写为:


导航坐标系下,式(18)的矩阵形式可表示为:


由系统观测过程可知,四元数为关于加速度计磁力计的量测值及风力值的非线性
函数。为求解四元数,须基于雅克比矩阵将其线性化。基于式(12)及(13),雅克比矩阵H可表
示为:



至此,得到了风力观测方程及将其线性化的雅克比矩阵。基于此,即可利用扩展卡
尔曼滤波对四元数进行解算。

第四步:基于扩展卡尔曼滤波流程的四元数姿态解算

基于以上讨论可知,基于风力的无人机姿态解算可利用扩展卡尔曼滤波实现。在
一个滤波周期内,卡尔曼滤波具有两个明显的更新过程:时间更新过程和量测更新过程。因
此,基于以上所述,基于风力的时间更新过程及量测更新过程可表述如下:

1.时间更新过程

状态一步预测:


均方误差的一步预测:


2.量测更新过程

卡尔曼滤波增益:


协方差阵更新:

Pk=(I-KkHk)Pk/k-1 (24)

状态更新:


卡尔曼滤波是一种递推算法,该算法充分利用陀螺输出的角速率信号,磁强计输
出的地磁信号和风力数据,得到状态最优估计,且状态每一次更新估计都是由前一次估计
和新的输入数据计算得到,因此只需存储前一次估计,即可以实现实时处理。

本发明的效果可通过以下仿真进一步说明:

仿真条件

本节基于实测数据测试所提出方法的有效性,所得数据由如下传感器输出:陀螺
仪,磁强计,GPS和空速管。仿真数据基于以下场景得到:采样频率是100HZ,采样个数是250,
取大连为实验地,垂直分量为3.12×10-5,水平分量是3.26×10-5,h=10-5×[0.256 3.26
3.12]T。卡尔曼滤波初值为q0=[1 0 0 0]T,其对应的均方误差阵为:p0=diag[0.2846
0.2846 0.2846 0.2846]T。其中α=0,β=0,VT=1,u=0,v=1,w=0。

仿真内容

从图2中可以看出,无风时翻滚角测量值更接近真实值,和有风时相比收敛的更
快,有风时考虑风测得的翻滚角与有风时不考虑风测得的翻滚角更准确,同时可以看出有
风时考虑风测得的翻滚角波动更大。从图3中可以看出,无风时俯仰角测量值更接近真实
值,有风时考虑风测得的俯仰角与有风时不考虑风测得的俯仰角更准确。从图4中可以看
出,无风时偏航角测量值更接近真实值,有风时考虑风测得的偏航角与有风时不考虑风测
得的偏航角更准确,同时可以看出有风时考虑风测得的偏航角波动更大。综上所述,风力的
存在会显著影响姿态解算解结果,进而影响无人机的有效控制,因此将风作为观测量,通过
扩展卡尔曼滤波算法进行姿态解算,从而提高无人机姿态解算精度,进而改善无人机控制
性能。

结论

针对风力降低无人机姿态解算精度,进而影响无人机飞行有效控制的问题,基于
扩展卡尔曼滤波理论,本专利提出一种风力干扰环境下无人机姿态解算方法以增强姿态解
算的稳健性,进而提高无人机控制性能。所提方法通过四元数微分方程和陀螺仪噪声误差
建立扩展卡尔曼滤波状态方程,并基于加速度计、磁强计、风力相关数据,得到四元数解算
结果。基于实测数据的仿真结果表明:与无风场景下的姿态解算方法及有风场景下不考虑
风力的姿态解算方法相比,所提方法可有效提高姿态解算的稳健性,从而改善无人机控制
性能。

风力干扰环境下四旋翼飞行器姿态解算方法.pdf_第1页
第1页 / 共18页
风力干扰环境下四旋翼飞行器姿态解算方法.pdf_第2页
第2页 / 共18页
风力干扰环境下四旋翼飞行器姿态解算方法.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《风力干扰环境下四旋翼飞行器姿态解算方法.pdf》由会员分享,可在线阅读,更多相关《风力干扰环境下四旋翼飞行器姿态解算方法.pdf(18页珍藏版)》请在专利查询网上搜索。

本发明属于无人机控制领域,针对风力会影响无人机姿态解算,进而干扰无人机飞行控制问题,基于扩展卡尔曼滤波理论,本文提出一种风力干扰环境下无人机姿态解算方法以增强姿态解算的稳健性从而提高无人机控制性能。所提方法通过四元数微分方程和陀螺仪噪声误差建立扩展卡尔曼滤波状态方程,并基于加速度计、磁强计、风力相关数据,得到四元数解算结果。基于实测数据测试结果表明,所提算法可以有效抑制姿态角发散,提高姿态解算精度。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 测量;测试


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1