发明名称 一种深空探测器自主姿态机动控制方法
摘要 本发明公开的一种深空探测器自主姿态机动控制方法,涉及自主姿态机动控制方法,属于航天器姿态控制技术领域。本发明以ORRT算法作为路径规划方法,对姿态空间的一致分布节点进行随机采样,然后进行权衡择优扩展路径,以贪婪扩展方式在安全空间中增量扩展,在探测器本体坐标系下分别建立探测器姿态机动动力学约束模型、实际工程约束模型和探测器几何约束模型,得到满足约束的路径节点和生成节点的控制力矩,进而生成探测器姿态机动路径和所需要的控制力矩,按照生成探测器姿态机动路径和所需要的控制力矩实现探测器机动到目标姿态。本发明在满足探测器面临的各种复杂约束条件下,缩短规划路径时间,提高探测器从起始姿态机动到目标姿态的效率。
申请公布号 CN104635740B 申请公布日期 2017.03.01
申请号 CN201410815372.X 申请日期 2014.12.23
申请人 北京理工大学 发明人 徐瑞;武长青;崔平远;朱圣英;尚海滨
分类号 G05D1/08(2006.01)I 主分类号 G05D1/08(2006.01)I
代理机构 代理人
主权项 一种深空探测器自主姿态机动控制方法,其特征在于:以ORRT(Optimized Rapidly Exploring Random Tree)算法作为路径规划方法,对姿态空间的一致分布节点进行随机采样,然后进行权衡择优扩展路径,以贪婪扩展方式在安全空间中增量扩展,在探测器本体坐标系下分别建立探测器姿态机动动力学约束模型、实际工程约束模型和探测器几何约束模型,得到满足约束的路径节点和生成节点的控制力矩,进而生成探测器姿态机动路径和所需要的控制力矩,按照生成探测器姿态机动路径和所需要的控制力矩实现探测器机动到目标姿态;具体实现步骤如下,步骤一:根据当时姿态机动时刻星历时刻,确定出相关强光天体在惯性系下的表示r<sub>I</sub>,然后确定惯性系到探测器本体坐标系下的姿态转换矩阵C<sub>BI</sub>,因此可以表示出强光天体在本体坐标下的方向矢量v<sub>B</sub>;根据探测器自身安装特性,确定出敏感元件在本体坐标系下的方向矢量r<sub>B</sub>;步骤二:建立探测器姿态机动动力学约束模型,建立工程中面临的实际工程约束模型;建立探测器面临的几何约束模型;具体分三步:第一步:建立探测器姿态机动动力学约束模型;姿态运动学和动力学方程表示如下:<maths num="0001"><math><![CDATA[<mrow><mover><mi>q</mi><mo>&CenterDot;</mo></mover><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mi>Q</mi><mi>&omega;</mi><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mi>&Omega;</mi><mi>&omega;</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001158507630000011.GIF" wi="1091" he="100" /></maths>Jω=T‑ω×Jω   (2)   其中,q=[q<sub>0</sub>,q<sub>1</sub>,q<sub>2</sub>,q<sub>3</sub>]<sup>T</sup>,满足归一化约束||q||<sub>2</sub>=1,||·||<sub>2</sub>表示2‑范数;ω=[ω<sub>1</sub>,ω<sub>2</sub>,ω<sub>3</sub>]<sup>T</sup>是航天器相对惯性系的角速度在本体系下的表示,而<maths num="0002"><math><![CDATA[<mrow><mi>Q</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>-</mo><msub><mi>q</mi><mn>1</mn></msub></mrow></mtd><mtd><mrow><mo>-</mo><msub><mi>q</mi><mn>2</mn></msub></mrow></mtd><mtd><mrow><mo>-</mo><msub><mi>q</mi><mn>3</mn></msub></mrow></mtd></mtr><mtr><mtd><msub><mi>q</mi><mn>0</mn></msub></mtd><mtd><mrow><mo>-</mo><msub><mi>q</mi><mn>3</mn></msub></mrow></mtd><mtd><msub><mi>q</mi><mn>2</mn></msub></mtd></mtr><mtr><mtd><msub><mi>q</mi><mn>3</mn></msub></mtd><mtd><msub><mi>q</mi><mn>0</mn></msub></mtd><mtd><mrow><mo>-</mo><msub><mi>q</mi><mn>1</mn></msub></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><msub><mi>q</mi><mn>2</mn></msub></mrow></mtd><mtd><msub><mi>q</mi><mn>1</mn></msub></mtd><mtd><msub><mi>q</mi><mn>0</mn></msub></mtd></mtr></mtable></mfenced><mo>,</mo><mi>&Omega;</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><msub><mi>&omega;</mi><mn>1</mn></msub></mrow></mtd><mtd><mrow><mo>-</mo><msub><mi>&omega;</mi><mn>2</mn></msub></mrow></mtd><mtd><mrow><mo>-</mo><msub><mi>&omega;</mi><mn>3</mn></msub></mrow></mtd></mtr><mtr><mtd><msub><mi>&omega;</mi><mn>1</mn></msub></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>&omega;</mi><mn>3</mn></msub></mtd><mtd><mrow><mo>-</mo><msub><mi>&omega;</mi><mn>2</mn></msub></mrow></mtd></mtr><mtr><mtd><msub><mi>&omega;</mi><mn>2</mn></msub></mtd><mtd><mrow><mo>-</mo><msub><mi>&omega;</mi><mn>3</mn></msub></mrow></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>&omega;</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>&omega;</mi><mn>3</mn></msub></mtd><mtd><msub><mi>&omega;</mi><mn>2</mn></msub></mtd><mtd><mrow><mo>-</mo><msub><mi>&omega;</mi><mn>1</mn></msub></mrow></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001158507630000012.GIF" wi="1412" he="251" /></maths>J=diag(J<sub>1</sub>,J<sub>2</sub>,J<sub>3</sub>)表示航天器相对本体系的惯性矩阵,u=[T<sub>1</sub>,T<sub>2</sub>,T<sub>3</sub>]<sup>T</sup>为控制力矩在本体系下的分量;第二步:建立工程中面临的实际工程约束模型;所述的实际工程约束包括控制力矩有界约束和角速度有界约束;由于在实际工程中,控制力矩有界约束表示为:|T<sub>i</sub>|≤γ<sub>Ti</sub>   (4)在姿态机动过程中,由于测量元件存在测量范围或者为了某些仪器的正常工作,需要将角速度限幅在一定范围内,角速度有界约束表示为:|ω<sub>i</sub>|≤γ<sub>ωi</sub>   (5)第三步:建立几何约束模型;<maths num="0003"><math><![CDATA[<mrow><msubsup><mi>r</mi><mi>B</mi><mi>T</mi></msubsup><msub><mi>v</mi><mi>B</mi></msub><mo>&le;</mo><mi>c</mi><mi>o</mi><mi>s</mi><mi>&theta;</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001158507630000021.GIF" wi="1116" he="70" /></maths>其中,r<sub>B</sub>表示敏感元件在本体系下的方向矢量,v<sub>B</sub>为强光天体在本体坐标下的方向矢量;为了避免航天器在机动过程中,强光天体光线进入到光学敏感元件的视场内,必须要保证此类敏感器件的视线方向矢量与强光天体方向矢量之间的夹角不能低于阈值θ;将(6)式转换成四元数表示形式v<sub>B</sub>=C<sub>BI</sub>r<sub>I</sub>=r<sub>I</sub>‑2<u>q</u><sup>T</sup><u>q</u>r<sub>I</sub>+2<u>qq</u><sup>T</sup>r<sub>I</sub>+2q<sub>0</sub>([r<sub>I</sub>×]<u>q</u>)   (7)其中,r<sub>I</sub>表示探测器到强光天体的方向矢量在惯性系下的分量,C<sub>BI</sub>表示航天器的姿态转换矩阵;其中,<u>q</u>=[q<sub>1</sub>,q<sub>2</sub>,q<sub>3</sub>]<sup>T</sup>为四元数矢量部分;[r<sub>I</sub>×]为叉乘矩阵,具体形式为<maths num="0004"><math><![CDATA[<mrow><mo>&lsqb;</mo><msub><mi>r</mi><mi>I</mi></msub><mo>&times;</mo><mo>&rsqb;</mo><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><msub><mi>r</mi><mrow><mi>I</mi><mn>3</mn></mrow></msub></mrow></mtd><mtd><msub><mi>r</mi><mrow><mi>I</mi><mn>2</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>r</mi><mrow><mi>I</mi><mn>3</mn></mrow></msub></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><msub><mi>r</mi><mrow><mi>I</mi><mn>1</mn></mrow></msub></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><msub><mi>r</mi><mrow><mi>I</mi><mn>2</mn></mrow></msub></mrow></mtd><mtd><msub><mi>r</mi><mrow><mi>I</mi><mn>1</mn></mrow></msub></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001158507630000022.GIF" wi="1289" he="189" /></maths>以下形式相同;将(6)表示成更加紧凑的形式,得到(9)式中的二次约束形式;q<sup>T</sup>Aq≤0   (9)其中,<maths num="0005"><math><![CDATA[<mrow><mi>A</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><msubsup><mi>r</mi><mi>B</mi><mi>T</mi></msubsup><msub><mi>r</mi><mi>I</mi></msub><mo>-</mo><mi>c</mi><mi>o</mi><mi>s</mi><mi>&theta;</mi></mrow></mtd><mtd><mrow><mo>-</mo><msubsup><mi>r</mi><mi>B</mi><mi>T</mi></msubsup><mo>&lsqb;</mo><msub><mi>r</mi><mi>I</mi></msub><mo>&times;</mo><mo>&rsqb;</mo></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><msubsup><mi>r</mi><mi>B</mi><mi>T</mi></msubsup><mo>&lsqb;</mo><msub><mi>r</mi><mi>I</mi></msub><mo>&times;</mo><mo>&rsqb;</mo></mrow></mtd><mtd><mrow><mn>2</mn><msub><mi>r</mi><mi>I</mi></msub><msubsup><mi>r</mi><mi>B</mi><mi>T</mi></msubsup><mo>-</mo><mrow><mo>(</mo><msubsup><mi>r</mi><mi>B</mi><mi>T</mi></msubsup><msub><mi>r</mi><mi>I</mi></msub><mo>+</mo><mi>c</mi><mi>o</mi><mi>s</mi><mi>&theta;</mi><mo>)</mo></mrow><msub><mi>I</mi><mn>3</mn></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001158507630000023.GIF" wi="1361" he="154" /></maths>步骤三:结合上述步骤二提出的各种复杂约束,利用ORRT规划算法得出自主姿态机动控制方法;ORRT是在一致姿态采样空间内的贪婪扩展过程,包括随机目标节点采样、邻近节点计算以及新节点扩展;首先进行初始化,然后生成规划空间,在此之前必须要选取有效的度量函数:<maths num="0006"><math><![CDATA[<mrow><mi>&rho;</mi><mo>=</mo><msubsup><munder><mi>q</mi><mo>&OverBar;</mo></munder><mi>e</mi><mi>T</mi></msubsup><msub><munder><mi>q</mi><mo>&OverBar;</mo></munder><mi>e</mi></msub><mo>+</mo><msubsup><mi>&omega;</mi><mi>e</mi><mi>T</mi></msubsup><msub><mi>&omega;</mi><mi>e</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>11</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001158507630000024.GIF" wi="1221" he="75" /></maths>其中<u>q</u><sub>e</sub>为两姿态四元数间偏差的矢部,ω<sub>e</sub>为两角速度间的偏差;然后在规划空间内生成M个随机节点,然后根据评价函数f(q,w)进行优化筛选,找出最近的节点进行扩展;<maths num="0007"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><mi>q</mi><mo>,</mo><mi>w</mi><mo>)</mo></mrow><mo>=</mo><msubsup><munder><mi>q</mi><mo>&OverBar;</mo></munder><mi>e</mi><mi>T</mi></msubsup><mi>a</mi><msub><munder><mi>q</mi><mo>&OverBar;</mo></munder><mi>e</mi></msub><mo>+</mo><msubsup><mi>&omega;</mi><mi>e</mi><mi>T</mi></msubsup><msub><mi>b&omega;</mi><mi>e</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>12</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001158507630000031.GIF" wi="1270" he="70" /></maths>其中,a和b为加权矩阵;优化出最近节点后进行扩展,此时应该考虑动力学部分;将状态方程(1)和(2)进行一阶Euler线性化,<maths num="0008"><math><![CDATA[<mrow><mtable><mtr><mtd><mrow><mi>q</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><mi>q</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><mi>&Delta;</mi><mi>T</mi><mrow><mo>(</mo><mn>0.5</mn><mi>Q</mi><mo>(</mo><mi>k</mi><mo>)</mo><mi>&omega;</mi><mo>(</mo><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>J</mi><mi>&omega;</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mi>J</mi><mi>&omega;</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><mi>&Delta;</mi><mi>T</mi><mrow><mo>(</mo><mi>u</mi><mo>(</mo><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo><mo>-</mo><mi>&omega;</mi><mo>(</mo><mi>k</mi><mo>)</mo><mo>&times;</mo><mi>J</mi><mi>&omega;</mi><mo>(</mo><mi>k</mi><mo>)</mo><mo>)</mo></mrow></mrow></mtd></mtr></mtable><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>13</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001158507630000032.GIF" wi="1285" he="142" /></maths>进而表示成更加紧凑的线性约束表达式FX=E   (14)其中,X=[u(k+1)<sup>T</sup>,ω(k+1)<sup>T</sup>,q(k+1)<sup>T</sup>]<sup>T</sup>   (15)<maths num="0009"><math><![CDATA[<mrow><mi>F</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>-</mo><msub><mi>&Delta;TI</mi><mrow><mn>3</mn><mo>&times;</mo><mn>3</mn></mrow></msub></mrow></mtd><mtd><mi>J</mi></mtd><mtd><msub><mn>0</mn><mrow><mn>3</mn><mo>&times;</mo><mn>4</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mn>0</mn><mrow><mn>4</mn><mo>&times;</mo><mn>3</mn></mrow></msub></mtd><mtd><mrow><mo>-</mo><mn>0.5</mn><mi>&Delta;</mi><mi>T</mi><mi>Q</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd><mtd><msub><mi>I</mi><mrow><mn>4</mn><mo>&times;</mo><mn>4</mn></mrow></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>16</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001158507630000033.GIF" wi="1237" he="124" /></maths><maths num="0010"><math><![CDATA[<mrow><mi>E</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>J</mi><mi>&omega;</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><mi>&Delta;</mi><mi>T</mi><mo>&lsqb;</mo><mi>&omega;</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>&times;</mo><mo>&rsqb;</mo><mi>J</mi><mi>&omega;</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>q</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>17</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001158507630000034.GIF" wi="1293" he="141" /></maths><maths num="0011"><math><![CDATA[<mrow><mi>Q</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>-</mo><msub><mi>q</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>-</mo><msub><mi>q</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>-</mo><msub><mi>q</mi><mn>3</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>q</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>-</mo><msub><mi>q</mi><mn>3</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><msub><mi>q</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>q</mi><mn>3</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><msub><mi>q</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>-</mo><msub><mi>q</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><msub><mi>q</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><msub><mi>q</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><msub><mi>q</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>18</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001158507630000035.GIF" wi="1292" he="245" /></maths>由此计算得到扩展后新的节点,然后进行判断是否满足步骤二的约束,假如不满足,重新进行搜索,假如满足再判断是否到达目标姿态,若到达目标姿态则停止搜索返回整个结果,若没有到达目标姿态继续进行搜索;搜索结束后会得到满足约束的路径节点和生成节点的控制力矩;满足约束指满足动力学约束、实际工程约束、几何约束等各种复杂约束;步骤四:利用设计出的姿态机动方法,实现从起始姿态机动到目标姿态;在给出探测器的起始姿态和目标姿态条件下,通过上述步骤一、二、三规划出满足约束的路径节点和生成节点的控制力矩,可以生成探测器姿态机动路径和所需要的控制力矩,按照生成探测器姿态机动路径和所需要的控制力矩实现探测器机动到目标姿态。
地址 100081 北京市海淀区中关村南大街5号北京理工大学