发明名称 基于角速度的飞行器极限飞行时四元数Hartley近似输出方法
摘要 本发明公开了一种基于角速度的飞行器极限飞行时四元数Hartley近似输出方法,用于解决现有的飞行器极限飞行时惯性设备输出四元数精度差的技术问题。技术方案是采用Hartley多项式对滚转、俯仰、偏航角速度p,q,r进行近似逼近描述,直接得到四元数状态转移矩阵二阶逼近式,直接得到了四元数状态转移矩阵,保证了确定四元数的迭代计算精度;本发明可以根据工程精度的要求,确定对滚转、俯仰、偏航角速度p,q,r的Hartley多项式阶次,实现对四元数状态方程转移矩阵Ф<sub>e</sub>[(k+1)T,kT]的超线性逼近。保证了确定四元数的迭代计算精度,从而提高了飞行器极限飞行时惯性设备输出精度。
申请公布号 CN102495830B 申请公布日期 2015.03.25
申请号 CN201110366774.2 申请日期 2011.11.17
申请人 西北工业大学 发明人 史忠科
分类号 G06F17/16(2006.01)I 主分类号 G06F17/16(2006.01)I
代理机构 代理人
主权项 一种基于角速度的飞行器极限飞行时四元数Hartley近似输出方法,其特征在于包括以下步骤:根据四元数连续状态方程<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mover><mi>e</mi><mo>&CenterDot;</mo></mover><mo>=</mo><msub><mi>A</mi><mi>e</mi></msub><mi>e</mi></mrow>]]></math><img file="FSB0000130313810000011.GIF" wi="237" he="55" /></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" id="cmaths0002"><math><![CDATA[<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><img file="FSB0000130313810000012.GIF" wi="689" he="316" /></maths>Φ<sub>e</sub>[(k+1)T,kT]为A<sub>e</sub>的状态转移矩阵,T为采样周期;<img file="FSB0000130313810000013.GIF" wi="1258" he="293" />p,q,r分别为惯性设备直接测量的滚转、俯仰、偏航角速度;欧拉角<img file="FSB0000130313810000017.GIF" wi="88" he="63" />ψ分别指滚转、俯仰、偏航角;状态转移矩阵按照逼近式<maths num="0003" id="cmaths0003"><math><![CDATA[<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><msubsup><mrow><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>|</mo></mrow><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;&Omega;</mi><msubsup><mrow><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>|</mo></mrow><mi>kT</mi><mrow><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mi>T</mi></mrow></msubsup><msup><mi>H</mi><mi>T</mi></msup><msub><mi>&Pi;</mi><mn>1</mn></msub><mo>-</mo><mi>&Pi;H&xi;</mi><msubsup><mrow><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>|</mo></mrow><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><img file="FSB0000130313810000014.GIF" wi="1268" he="68" /></maths>及e(k+1)=Φ<sub>e</sub>[(k+1)T,kT]e(k)得到四元数的时间更新值;其中<maths num="0004" id="cmaths0004"><math><![CDATA[<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></mrow>]]></math><img file="FSB0000130313810000015.GIF" wi="327" he="290" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>&xi;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msubsup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>&xi;</mi><mrow><mo>-</mo><mi>n</mi></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>&xi;</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mtd><mtd><msub><mi>&xi;</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mtd><mtd><msub><mi>&xi;</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>&xi;</mi><mi>n</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mrow><mrow><mo>(</mo><mn>2</mn><mi>n</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>&times;</mo><mn>1</mn></mrow><mi>T</mi></msubsup></mrow>]]></math><img file="FSB0000130313810000016.GIF" wi="1134" he="83" /></maths>ξ<sub>i</sub>(t)=cas(iωt)=cos(iωt)+sin(iωt),(f=‑n,‑n+1,…,‑1,0,1,2,…,n)ω为角频率;滚转、俯仰、偏航角速度p,q,r的Hartley展开式分别为p(t)=[p<sub>‑n</sub> … p<sub>‑1</sub> p<sub>0</sub> p<sub>1</sub> … p<sub>n</sub>][ξ<sub>‑n</sub>(t) … ξ<sub>‑1</sub>(t) ξ<sub>0</sub>(t) ξ<sub>1</sub>(t) … ξ<sub>n</sub>(t)]<sup>T</sup>q(t)=[q<sub>‑n</sub> … q<sub>‑1</sub> q<sub>0</sub> q<sub>1</sub> … q<sub>n</sub>][ξ<sub>‑n</sub>(t) … ξ<sub>‑1</sub>(t) ξ<sub>0</sub>(t) ξ<sub>1</sub>(t) … ξ<sub>n</sub>(t)]<sup>T</sup>r(t)=[r<sub>‑n</sub> … r<sub>‑1</sub> r<sub>0</sub> r<sub>1</sub> … r<sub>n</sub>][ξ<sub>‑n</sub>(t) … ξ<sub>‑1</sub>(t) ξ<sub>0</sub>(t) ξ<sub>1</sub>(t) … ξ<sub>n</sub>(t)]<sup>T</sup><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>&Pi;</mi><mo>=</mo><mfenced open='' close=''><mtable><mtr><mtd><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><mrow><mo>-</mo><mi>n</mi></mrow></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>p</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>p</mi><mn>0</mn></msub></mtd><mtd><msub><mi>p</mi><mn>1</mn></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>p</mi><mi>n</mi></msub></mtd></mtr></mtable></mfenced></mtd></mtr><mtr><mtd><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><mrow><mo>-</mo><mi>n</mi></mrow></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>q</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>q</mi><mn>0</mn></msub></mtd><mtd><msub><mi>q</mi><mn>1</mn></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></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><mrow><mo>-</mo><mi>n</mi></mrow></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>r</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>r</mi><mn>0</mn></msub></mtd><mtd><msub><mi>r</mi><mn>1</mn></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>r</mi><mi>n</mi></msub></mtd></mtr></mtable></mfenced><mo>}</mo></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FSB0000130313810000021.GIF" wi="1578" he="505" /></maths><maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>&Pi;</mi><mn>1</mn></msub><mo>=</mo><mfenced open='' close=''><mtable><mtr><mtd><mfrac><mn>1</mn><mn>2</mn></mfrac><mo>{</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mrow><mo>-</mo><mi>n</mi></mrow></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>p</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>p</mi><mn>0</mn></msub></mtd><mtd><msub><mi>p</mi><mn>1</mn></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></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></mtd></mtr><mtr><mtd><mo>+</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>q</mi><mrow><mo>-</mo><mi>n</mi></mrow></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>q</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>q</mi><mn>0</mn></msub></mtd><mtd><msub><mi>q</mi><mn>1</mn></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></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><mrow><mo>-</mo><mi>n</mi></mrow></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>r</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>r</mi><mn>0</mn></msub></mtd><mtd><msub><mi>r</mi><mn>1</mn></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></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></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FSB0000130313810000022.GIF" wi="1606" he="513" /></maths><maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msubsup><mo>&Integral;</mo><mn>0</mn><mi>t</mi></msubsup><msub><mi>&xi;</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mi>dt</mi><mo>=</mo><mi>t</mi><mo>=</mo><mfrac><mrow><mi>&xi;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mn>2</mn><mi>&pi;</mi></mrow></mfrac><mfenced open='[' close=']'><mtable><mtr><mtd><mfrac><mn>1</mn><mi>n</mi></mfrac></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mfrac><mn>1</mn><mn>2</mn></mfrac></mtd><mtd><mn>1</mn></mtd><mtd><mi>&pi;</mi></mtd><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mfrac><mn>1</mn><mn>2</mn></mfrac></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mfrac><mn>1</mn><mi>n</mi></mfrac></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FSB0000130313810000023.GIF" wi="925" he="144" /></maths><maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><msubsup><mo>&Integral;</mo><mn>0</mn><mi>t</mi></msubsup><msub><mi>&xi;</mi><mrow><mo>-</mo><mi>n</mi></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mi>dt</mi><mo>=</mo><mfrac><mrow><mi>&xi;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mn>2</mn><mi>&pi;</mi></mrow></mfrac><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mfrac><mn>1</mn><mi>n</mi></mfrac></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mfrac><mn>1</mn><mi>n</mi></mfrac></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FSB0000130313810000024.GIF" wi="965" he="115" /></maths><maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><msubsup><mo>&Integral;</mo><mn>0</mn><mi>t</mi></msubsup><msub><mi>&xi;</mi><mrow><mo>-</mo><mi>n</mi></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mi>dt</mi><mo>=</mo><mfrac><mrow><mi>&xi;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mn>2</mn><mi>&pi;</mi></mrow></mfrac><mfenced open='[' close=']'><mtable><mtr><mtd><mo>-</mo><mfrac><mn>1</mn><mi>n</mi></mfrac></mtd><mtd><mn>0</mn></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mn>0</mn></mtd><mtd><mfrac><mn>1</mn><mi>n</mi></mfrac></mtd><mtd><mn>0</mn></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&Element;</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FSB0000130313810000025.GIF" wi="1024" he="141" /></maths><img file="FSB0000130313810000026.GIF" wi="855" he="710" /><img file="FSB0000130313810000027.GIF" wi="2063" he="631" />
地址 710072 陕西省西安市友谊西路127号