发明名称 基于角速度的飞行器极限飞行时四元数拉盖尔近似输出方法
摘要 本发明公开了一种基于角速度的飞行器极限飞行时四元数拉盖尔近似输出方法,用于解决现有的飞行器极限飞行时惯性设备输出四元数精度差的技术问题。技术方案是采用Shifted Laguerre正交多项式对滚转、俯仰、偏航角速度p,q,r进行近似逼近描述,直接得到了四元数状态转移矩阵,从而保证了确定四元数的迭代计算精度;本发明可以根据工程精度的要求,确定对滚转、俯仰、偏航角速度p,q,r的Shifted Laguerre正交多项式阶次,实现对四元数状态方程转移矩阵Φe[(k+1)T,kT]的超线性逼近,保证了确定四元数的迭代计算精度,从而提高了飞行器极限飞行时惯性设备输出精度。
申请公布号 CN102494688A 申请公布日期 2012.06.13
申请号 CN201110366738.6 申请日期 2011.11.17
申请人 西北工业大学 发明人 史忠科
分类号 G01C21/24(2006.01)I 主分类号 G01C21/24(2006.01)I
代理机构 代理人
主权项 1.一种基于角速度的飞行器极限飞行时四元数拉盖尔近似输出方法,其特征在于包括以下步骤:根据四元数连续状态方程<maths num="0001"><![CDATA[<math><mrow><mover><mi>e</mi><mo>&CenterDot;</mo></mover><mo>=</mo><msub><mi>A</mi><mi>e</mi></msub><mi>e</mi></mrow></math>]]></maths>和离散状态方程e(k+1)=Φ<sub>e</sub>[(k+1)T,kT]e(k)其中e=[e<sub>1</sub>,e<sub>2</sub>,e<sub>3</sub>,e<sub>4</sub>]<sup>T</sup><maths num="0002"><![CDATA[<math><mrow><msub><mi>A</mi><mi>e</mi></msub><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mi>p</mi></mtd><mtd><mo>-</mo><mi>q</mi></mtd><mtd><mo>-</mo><mi>r</mi></mtd></mtr><mtr><mtd><mi>p</mi></mtd><mtd><mn>0</mn></mtd><mtd><mi>r</mi></mtd><mtd><mo>-</mo><mi>q</mi></mtd></mtr><mtr><mtd><mi>q</mi></mtd><mtd><mo>-</mo><mi>r</mi></mtd><mtd><mn>0</mn></mtd><mtd><mi>p</mi></mtd></mtr><mtr><mtd><mi>r</mi></mtd><mtd><mi>q</mi></mtd><mtd><mo>-</mo><mi>p</mi></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>Φ<sub>e</sub>[(k+1)T,kT]为A<sub>e</sub>的状态转移矩阵,T为采样周期,全文符号定义相同;<img file="FSA00000615366400013.GIF" wi="1261" he="294" />p,q,r分别为滚转、俯仰、偏航角速度;欧拉角<img file="FSA00000615366400014.GIF" wi="40" he="37" />θ,ψ分别指滚转、俯仰、偏航角;状态转移矩阵按照逼近式<maths num="0003"><![CDATA[<math><mrow><msub><mi>&Phi;</mi><mi>e</mi></msub><mo>[</mo><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mi>T</mi><mo>,</mo><mi>kT</mi><mo>]</mo><mo>&ap;</mo><mi>I</mi><mo>+</mo><mi>&Pi;H&xi;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><msubsup><mo>|</mo><mi>kT</mi><mrow><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mi>T</mi></mrow></msubsup><mo>+</mo><mi>&Pi;</mi><msubsup><mo>&Integral;</mo><mi>kT</mi><mrow><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mi>T</mi></mrow></msubsup><mo>[</mo><mi>&xi;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><msup><mi>&xi;</mi><mi>T</mi></msup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>]</mo><mi>dt</mi><msup><mi>H</mi><mi>T</mi></msup><msub><mi>&Pi;</mi><mn>1</mn></msub><mo>-</mo><mi>&Pi;H&xi;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><msubsup><mo>|</mo><mi>kT</mi><mrow><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mi>T</mi></mrow></msubsup><mi>&Pi;H&xi;</mi><mrow><mo>(</mo><mi>kT</mi><mo>)</mo></mrow></mrow></math>]]></maths>及e(k+1)=Φ<sub>e</sub>[(k+1)T,kT]e(k)得到四元数的时间更新值;其中<maths num="0004"><![CDATA[<math><mrow><mi>I</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>ξ(t)=[ξ<sub>0</sub>(t)ξ<sub>1</sub>(t)…ξ<sub>n-1</sub>(t)ξ<sub>n</sub>(t)]<sup>T</sup><maths num="0005"><![CDATA[<math><mfenced open='' close='}'><mtable><mtr><mtd><msub><mi>&xi;</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mn>1</mn></mtd></mtr><mtr><mtd><msub><mi>&xi;</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mn>1</mn><mo>-</mo><mi>t</mi></mtd></mtr><mtr><mtd><msub><mi>&xi;</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mn>1</mn><mo>-</mo><mn>2</mn><mi>t</mi><mo>+</mo><mn>0.5</mn><msup><mi>t</mi><mn>2</mn></msup></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><msub><mi>&xi;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>2</mn><mi>i</mi><mo>-</mo><mi>t</mi><mo>)</mo></mrow><msub><mi>&xi;</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>-</mo><mi>i</mi><msub><mi>&xi;</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></math>]]></maths>i=2,3,…,n-1为Laguerre正交多项式的递推形式,滚转、俯仰、偏航角速度p,q,r的展开式分别为p(t)=[p<sub>0</sub> p<sub>1</sub>…p<sub>n-1</sub> p<sub>n</sub>][ξ<sub>0</sub>(t)ξ<sub>1</sub>(t)…ξ<sub>n-1</sub>(t)ξ<sub>n</sub>(t)]<sup>T</sup>q(t)=[q<sub>0</sub> q<sub>1</sub>…q<sub>n-1</sub> q<sub>n</sub>][ξ<sub>0</sub>(t)ξ<sub>1</sub>(t)…ξ<sub>n-1</sub>(t)ξ<sub>n</sub>(t)]<sup>T</sup>r(t)=[r<sub>0</sub> r<sub>1</sub>…r<sub>n-1</sub> r<sub>n</sub>][ξ<sub>0</sub>(t)ξ<sub>1</sub>(t)…ξ<sub>n-1</sub>(t)ξ<sub>n</sub>(t)]<sup>T</sup><maths num="0006"><![CDATA[<math><mrow><mi>&Pi;</mi><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo>{</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mn>0</mn></msub></mtd><mtd><msub><mi>p</mi><mn>1</mn></msub></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><msub><mi>p</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>p</mi><mi>n</mi></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths><maths num="0007"><![CDATA[<math><mrow><mo>+</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>q</mi><mn>0</mn></msub></mtd><mtd><msub><mi>q</mi><mn>1</mn></msub></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><msub><mi>q</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>q</mi><mi>n</mi></msub></mtd></mtr></mtable></mfenced><mo>+</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>r</mi><mn>0</mn></msub></mtd><mtd><msub><mi>r</mi><mn>1</mn></msub></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><msub><mi>r</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>r</mi><mi>n</mi></msub></mtd></mtr></mtable></mfenced><mo>}</mo></mrow></math>]]></maths><maths num="0008"><![CDATA[<math><mrow><msub><mi>&Pi;</mi><mn>1</mn></msub><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo>{</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mn>0</mn></msub></mtd><mtd><msub><mi>p</mi><mn>1</mn></msub></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><msub><mi>p</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>p</mi><mi>n</mi></msub></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths><maths num="0009"><![CDATA[<math><mrow><mo>+</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>q</mi><mn>0</mn></msub></mtd><mtd><msub><mi>q</mi><mn>1</mn></msub></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><msub><mi>q</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>q</mi><mi>n</mi></msub></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>+</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>r</mi><mn>0</mn></msub></mtd><mtd><msub><mi>r</mi><mn>1</mn></msub></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><msub><mi>r</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>r</mi><mi>n</mi></msub></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>}</mo></mrow></math>]]></maths><img file="FSA00000615366400025.GIF" wi="621" he="520" />当p,q,r的展开式最高次项n为奇数时,m=4,6,...,n+1,高次项n为偶数时m=5,7,...,n+1。
地址 710072 陕西省西安市友谊西路127号