发明名称 一种再入飞行器全阶非奇异终端滑模姿态控制方法
摘要 本发明公开的一种再入飞行器全阶非奇异终端滑模姿态控制方法,涉及基于鲁棒微分器的再入飞行器全阶非奇异终端滑模姿态控制方法,属于飞行器控制技术领域。本发明包括如下步骤:生成飞行器的状态向量;建立再入飞行器的数学模型;运用反馈线性化简化再入飞行器模型;给出系统中存在外部干扰以及参数不确定时飞行器的姿态角α,β,μ渐进跟踪系统的指令信息y<sub>c</sub>=[α<sub>c</sub>,β<sub>c</sub>,μ<sub>c</sub>]<sup>T</sup>;控制分配,得到舵偏角指令δ=[δ<sub>e</sub> δ<sub>a</sub> δ<sub>r</sub>]<sup>T</sup>;将得到的舵偏角指令输入飞行器,对其进行姿态控制。本发明可保证跟踪误差在有限时间内收敛到零,且可避免控制器输出奇异问题,同时,通过对误差二阶导数进行估计抑制采用传统微分器引进的测量噪声;通过同时采用边界层与低通滤波技术消除控制量的抖振。
申请公布号 CN104950898A 申请公布日期 2015.09.30
申请号 CN201510316506.8 申请日期 2015.06.10
申请人 北京理工大学 发明人 盛永智;金震;刘向东
分类号 G05D1/08(2006.01)I 主分类号 G05D1/08(2006.01)I
代理机构 代理人
主权项 一种再入飞行器全阶非奇异终端滑模姿态控制方法,其特征在于:包括如下步骤,步骤1,生成飞行器的状态向量;结合飞行器的实际姿态角Ω=[α,β,μ]<sup>T</sup>,姿态角速度ω=[p,q,r]<sup>T</sup>,组成状态向量x:x=[α β μ p q r]<sup>T</sup>;步骤2,建立再入飞行器的数学模型;建立再入飞行器的数学模型如公式(1)<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mover><mi>x</mi><mo>&CenterDot;</mo></mover><mo>=</mo><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mn>3</mn></munderover><msub><mi>g</mi><mi>k</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><msub><mi>u</mi><mi>k</mi></msub><mo>+</mo><mi>&Delta;T</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000735270880000011.GIF" wi="640" he="152" /></maths>y<sub>i</sub>=h<sub>i</sub>(x),i=1,2,3.其中,状态向量x=[α β μ p q r]<sup>T</sup>,控制力矩u=[u<sub>1</sub>,u<sub>2</sub>,u<sub>3</sub>]<sup>T</sup>=[M<sub>x</sub>,M<sub>y</sub>,M<sub>z</sub>]<sup>T</sup>,输出向量y=[y<sub>1</sub>,y<sub>2</sub>,y<sub>3</sub>]=h(x)=[α,β,μ]<sup>T</sup>,f(x)=[f<sub>1</sub>(x) f<sub>2</sub>(x) f<sub>3</sub>(x) f<sub>4</sub>(x) f<sub>5</sub>(x) f<sub>6</sub>(x)]<sup>T</sup>;f<sub>1</sub>(x)=‑p cosαtanβ+q‑r sinαtanβf<sub>2</sub>(x)=p sinα‑r cosαf<sub>3</sub>(x)=‑p cosαcosβ‑q sinβ‑r sinαcosβ<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>f</mi><mn>4</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><msub><mi>I</mi><mi>xx</mi></msub><mo>-</mo><msub><mi>I</mi><mi>yy</mi></msub><mo>+</mo><msub><mi>I</mi><mi>zz</mi></msub><mo>)</mo></mrow><msub><mi>I</mi><mi>xz</mi></msub></mrow><msup><mi>I</mi><mo>*</mo></msup></mfrac><mi>pq</mi><mo>+</mo><mfrac><mrow><mrow><mo>(</mo><msub><mi>I</mi><mi>yy</mi></msub><mo>-</mo><msub><mi>I</mi><mi>zz</mi></msub><mo>)</mo></mrow><msub><mi>I</mi><mi>zz</mi></msub><mo>-</mo><msubsup><mi>I</mi><mi>xz</mi><mn>2</mn></msubsup></mrow><msup><mi>I</mi><mo>*</mo></msup></mfrac><mi>qr</mi></mrow>]]></math><img file="FDA0000735270880000012.GIF" wi="1032" he="142" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>f</mi><mn>5</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfrac><msub><mi>I</mi><mi>xz</mi></msub><msub><mi>I</mi><mi>yy</mi></msub></mfrac><mrow><mo>(</mo><msup><mi>r</mi><mn>2</mn></msup><mo>-</mo><msup><mi>p</mi><mn>2</mn></msup><mo>)</mo></mrow><mo>+</mo><mfrac><mrow><msub><mi>I</mi><mi>zz</mi></msub><mo>-</mo><msub><mi>I</mi><mi>xx</mi></msub></mrow><msub><mi>I</mi><mi>yy</mi></msub></mfrac><mi>pr</mi></mrow>]]></math><img file="FDA0000735270880000013.GIF" wi="681" he="147" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>f</mi><mn>6</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><msub><mi>I</mi><mi>xx</mi></msub><mo>-</mo><msub><mi>I</mi><mi>yy</mi></msub><mo>)</mo></mrow><msub><mi>I</mi><mi>xx</mi></msub><mo>+</mo><msubsup><mi>I</mi><mi>xz</mi><mn>2</mn></msubsup></mrow><msup><mi>I</mi><mo>*</mo></msup></mfrac><mi>pq</mi><mo>+</mo><mfrac><mrow><mrow><mo>(</mo><mo>-</mo><msub><mi>I</mi><mi>xx</mi></msub><mo>+</mo><msub><mi>I</mi><mi>yy</mi></msub><mo>-</mo><msub><mi>I</mi><mi>zz</mi></msub><mo>)</mo></mrow><msub><mi>I</mi><mi>xz</mi></msub></mrow><msup><mi>I</mi><mo>*</mo></msup></mfrac><mi>qr</mi></mrow>]]></math><img file="FDA0000735270880000014.GIF" wi="1069" he="142" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>g</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><msup><mrow><mo>[</mo><mn>0,0,0</mn><mo>,</mo><mfrac><msub><mi>I</mi><mi>zz</mi></msub><msup><mi>I</mi><mo>*</mo></msup></mfrac><mo>,</mo><mn>0</mn><mo>,</mo><mfrac><msub><mi>I</mi><mi>xz</mi></msub><msup><mi>I</mi><mo>*</mo></msup></mfrac><mo>]</mo></mrow><mi>T</mi></msup></mrow>]]></math><img file="FDA0000735270880000015.GIF" wi="534" he="138" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mi>g</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><msup><mrow><mo>[</mo><mn>0,0,0,0</mn><mo>,</mo><mfrac><mn>1</mn><msub><mi>I</mi><mi>yy</mi></msub></mfrac><mo>,</mo><mn>0</mn><mo>]</mo></mrow><mi>T</mi></msup></mrow>]]></math><img file="FDA0000735270880000016.GIF" wi="505" he="150" /></maths><maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>g</mi><mn>3</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><msup><mrow><mo>[</mo><mn>0,0,0</mn><mo>,</mo><mfrac><msub><mi>I</mi><mi>xz</mi></msub><msup><mi>I</mi><mo>*</mo></msup></mfrac><mo>,</mo><mn>0</mn><mo>,</mo><mfrac><msub><mi>I</mi><mi>xx</mi></msub><msup><mi>I</mi><mo>*</mo></msup></mfrac><mo>]</mo></mrow><mi>T</mi></msup></mrow>]]></math><img file="FDA0000735270880000017.GIF" wi="551" he="136" /></maths>在公式(1)中,α,β,μ分别表示攻角、侧滑角以及倾侧角;p,q,r分别表示滚转、俯仰和偏航角速度;M=[M<sub>x</sub>,M<sub>y</sub>,M<sub>z</sub>]表示控制力矩向量,M<sub>x</sub>,M<sub>y</sub>,M<sub>z</sub>分别表示滚转、俯仰以及偏航力矩;M<sub>d</sub>是外部干扰力矩向量;I<sub>xx</sub>,I<sub>yy</sub>,I<sub>zz</sub>,I<sub>xz</sub>分别是关于各个坐标轴的转动惯量和惯量积,<img file="FDA0000735270880000027.GIF" wi="344" he="80" />△T表示包括参数摄动、外部扰动以及未建模动态等聚合不确定性,由于再入过程中速度快,大气环境变化剧烈,△T无法忽略;步骤3,运用反馈线性化简化步骤2建立的再入飞行器模型;使用李导数的表示方法,则公式(1)中y<sub>i</sub>的导数表示为公式(2)<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msubsup><mi>y</mi><mi>i</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></msubsup><mo>=</mo><msubsup><mi>L</mi><mi>f</mi><mi>j</mi></msubsup><mrow><mo>(</mo><msub><mi>h</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mn>3</mn></munderover><msub><mi>L</mi><mi>gk</mi></msub><mrow><mo>(</mo><msubsup><mi>L</mi><mi>f</mi><mrow><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mrow><mo>(</mo><msub><mi>h</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><msub><mi>u</mi><mi>k</mi></msub><mo>,</mo><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><msub><mi>r</mi><mi>i</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000735270880000021.GIF" wi="970" he="137" /></maths>对飞行器模型进行形反馈线性化处理,得公式(3):<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mover><mi>y</mi><mrow><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mrow></mover><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mover><mi>y</mi><mrow><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mrow></mover><mn>2</mn></msub></mtd></mtr><mtr><mtd><msub><mover><mi>y</mi><mrow><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mrow></mover><mn>3</mn></msub></mtd></mtr></mtable></mfenced><mo>=</mo><mi>F</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>+</mo><mi>E</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mi>u</mi><mo>+</mo><mi>&Delta;v</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000735270880000022.GIF" wi="611" he="233" /></maths>其中:<maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><mi>F</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>L</mi><mi>f</mi><mn>2</mn></msubsup><mrow><mo>(</mo><msub><mi>h</mi><mn>1</mn></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msubsup><mi>L</mi><mi>f</mi><mn>2</mn></msubsup><mrow><mo>(</mo><msub><mi>h</mi><mn>2</mn></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msubsup><mi>L</mi><mi>f</mi><mn>2</mn></msubsup><mrow><mo>(</mo><msub><mi>h</mi><mn>3</mn></msub><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000735270880000023.GIF" wi="347" he="244" /></maths><maths num="0011" id="cmaths0011"><math><![CDATA[<mrow><mi>E</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>L</mi><msub><mi>g</mi><mn>1</mn></msub></msub><mrow><mo>(</mo><msub><mi>L</mi><mi>f</mi></msub><msub><mi>h</mi><mn>1</mn></msub><mo>)</mo></mrow></mtd><mtd><msub><mi>L</mi><msub><mi>g</mi><mn>2</mn></msub></msub><mrow><mo>(</mo><msub><mi>L</mi><mi>f</mi></msub><msub><mi>h</mi><mn>1</mn></msub><mo>)</mo></mrow></mtd><mtd><msub><mi>L</mi><msub><mi>g</mi><mn>3</mn></msub></msub><mrow><mo>(</mo><msub><mi>L</mi><mi>f</mi></msub><msub><mi>h</mi><mn>1</mn></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>L</mi><msub><mi>g</mi><mn>1</mn></msub></msub><mrow><mo>(</mo><msub><mi>L</mi><mi>f</mi></msub><msub><mi>h</mi><mn>2</mn></msub><mo>)</mo></mrow></mtd><mtd><msub><mi>L</mi><msub><mi>g</mi><mn>2</mn></msub></msub><mrow><mo>(</mo><msub><mi>L</mi><mi>f</mi></msub><msub><mi>h</mi><mn>2</mn></msub><mo>)</mo></mrow></mtd><mtd><msub><mi>L</mi><msub><mi>g</mi><mn>3</mn></msub></msub><mrow><mo>(</mo><msub><mi>L</mi><mi>f</mi></msub><msub><mi>h</mi><mn>2</mn></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>L</mi><msub><mi>g</mi><mn>1</mn></msub></msub><mrow><mo>(</mo><msub><mi>L</mi><mi>f</mi></msub><msub><mi>h</mi><mn>3</mn></msub><mo>)</mo></mrow></mtd><mtd><msub><mi>L</mi><msub><mi>g</mi><mn>2</mn></msub></msub><mrow><mo>(</mo><msub><mi>L</mi><mi>f</mi></msub><msub><mi>h</mi><mn>3</mn></msub><mo>)</mo></mrow></mtd><mtd><msub><mi>L</mi><msub><mi>g</mi><mn>3</mn></msub></msub><mrow><mo>(</mo><msub><mi>L</mi><mi>f</mi></msub><msub><mi>h</mi><mn>3</mn></msub><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000735270880000024.GIF" wi="876" he="267" /></maths>由计算可知:<img file="FDA0000735270880000025.GIF" wi="495" he="141" />因此控制器表示为公式(4):u=E<sup>‑1</sup>(x)(‑F(x)+v)  (4)由公式(3)和(4)可得:<maths num="0012" id="cmaths0012"><math><![CDATA[<mrow><mover><mi>y</mi><mrow><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mrow></mover><mo>=</mo><mi>v</mi><mo>+</mo><mi>&Delta;v</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000735270880000026.GIF" wi="342" he="82" /></maths>式中,v=[v<sub>1</sub>,v<sub>2</sub>,v<sub>3</sub>]为引入的辅助变量,△v为系统中的聚合扰动;聚合扰动△v以及它的一阶导数<img file="FDA0000735270880000028.GIF" wi="62" he="54" />满足如下条件:<maths num="0013" id="cmaths0013"><math><![CDATA[<mrow><mfenced open='' close=''><mtable><mtr><mtd><msub><mrow><mo>|</mo><mo>|</mo><mi>&Delta;v</mi><mo>|</mo><mo>|</mo></mrow><mo>&infin;</mo></msub><mo>&le;</mo><msub><mi>l</mi><mrow><mi>d</mi><mi>min</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mrow><mo>|</mo><mo>|</mo><mi>&Delta;</mi><mover><mi>v</mi><mo>&CenterDot;</mo></mover><mo>|</mo><mo>|</mo></mrow><mo>&infin;</mo></msub><mo>&le;</mo><msub><mi>k</mi><mrow><mi>d</mi><mi>max</mi></mrow></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000735270880000031.GIF" wi="375" he="171" /></maths>式中,l<sub>dmin</sub>,k<sub>dmin</sub>表示矩阵l<sub>d</sub>,k<sub>d</sub>中的非零元素的最小值,且有矩阵l<sub>d</sub>=diag{l<sub>d1</sub>,l<sub>d2</sub>,l<sub>d3</sub>},k<sub>d</sub>=diag{k<sub>d1</sub>,k<sub>d2</sub>,k<sub>d3</sub>};步骤4,针对再入飞行器的姿态控制问题,给出全阶终端滑控制方法以保证在系统中存在外部干扰以及参数不确定时飞行器的姿态角α,β,μ渐进跟踪系统的指令信息y<sub>c</sub>=[α<sub>c</sub>,β<sub>c</sub>,μ<sub>c</sub>]<sup>T</sup>,即:<maths num="0014" id="cmaths0014"><math><![CDATA[<mrow><munder><mi>lim</mi><mrow><mi>t</mi><mo>=</mo><msub><mi>t</mi><mi>r</mi></msub></mrow></munder><msub><mover><mi>&Omega;</mi><mo>~</mo></mover><mi>e</mi></msub><mo>=</mo><munder><mi>lim</mi><mrow><mi>t</mi><mo>=</mo><msub><mi>t</mi><mi>r</mi></msub></mrow></munder><mrow><mo>(</mo><mi>y</mi><mo>-</mo><msub><mi>y</mi><mi>c</mi></msub><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mrow>]]></math><img file="FDA0000735270880000032.GIF" wi="554" he="117" /></maths>式中,<img file="FDA0000735270880000033.GIF" wi="595" he="86" />系统的跟踪误差,t<sub>r</sub>为系统的稳定时间;步骤5,控制分配,得到舵偏角指令δ=[δ<sub>e</sub> δ<sub>a</sub> δ<sub>r</sub>]<sup>T</sup>:根据公式(9)和(10)得到舵偏角指令δ=[δ<sub>e</sub> δ<sub>a</sub> δ<sub>r</sub>]<sup>T</sup>:u=M=E<sup>‑1</sup>(x)(‑F(x)+v)  (9)δ=G<sup>‑1</sup>u  (10)分配至舵面执行机构,由公式(10)得到δ=[δ<sub>e</sub> δ<sub>a</sub> δ<sub>r</sub>]<sup>T</sup>,δ<sub>e</sub>,δ<sub>a</sub>,δ<sub>r</sub>分别为升降舵、副翼、方向舵的偏角;M=[M<sub>x</sub>,M<sub>y</sub>,M<sub>z</sub>]是由步骤4中得到的姿态控制输出v计算得到的控制力矩,G是转换矩阵,由气动参数决定;步骤6,将步骤5得到的舵偏角指令输入飞行器,对其进行姿态控制;同时,飞行器输出当前飞行器的各个状态α,β,μ,p,q,r作为姿态控制的输入,重复步骤1至步骤6,从而使得飞行器实现实际姿态角Ω=[α,β,μ]<sup>T</sup>跟踪制导系统给出的姿态角指令Ω<sub>c</sub>=[α<sub>c</sub>,β<sub>c</sub>,μ<sub>c</sub>]<sup>T</sup>的目的。
地址 100081 北京市海淀区中关村南大街5号北京理工大学