发明名称 基于扩展雅克比矩阵的空间机器人星臂协调控制方法
摘要 基于扩展雅克比矩阵的空间机器人星臂协调控制方法,解决在轨工作的空间机械臂与基座卫星整体协同控制问题。包括计算空间机器人的运动学和动力学参数;建立基于扩展雅可比矩阵的空间机器人数学模型;设计空间机器人星臂协调控制器;对机械臂末端轨迹进行参数化;对机械臂轨迹进行优化;计算空间机器人单框架控制力矩陀螺系统的角速度指令。本发明不需要卫星根据姿态测量进行滞后的反馈控制,通过将臂星的耦合运动进行整体数学建模,根据输入的机械臂末端轨迹,直接计算出卫星需补偿机械臂运动的单框架控制力矩陀螺系统的角速度指令,实现臂星的整体协调控制;机械臂末端轨迹经过优化使卫星态控制系统补偿机械臂反作用力矩所消耗的能量较小。
申请公布号 CN103869704B 申请公布日期 2016.05.25
申请号 CN201410138354.2 申请日期 2014.04.08
申请人 哈尔滨工业大学 发明人 刘宏;王滨;李振宇;夏进军;王志超
分类号 G05B13/04(2006.01)I 主分类号 G05B13/04(2006.01)I
代理机构 哈尔滨市松花江专利商标事务所 23109 代理人 杨立超
主权项 基于扩展雅克比矩阵的空间机器人星臂协调控制方法,其特征在于它由以下步骤完成:步骤一、通过ProE建模计算出包括机械臂和基座卫星的空间机器人的运动学和动力学参数;步骤二、建立基于扩展雅克比矩阵的空间机器人整体数学模型;<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>v</mi><mi>e</mi></msub></mtd></mtr><mtr><mtd><msub><mi>&omega;</mi><mi>e</mi></msub></mtd></mtr><mtr><mtd><msub><mi>&omega;</mi><mn>0</mn></msub></mtd></mtr></mtable></mfenced><mo>=</mo><mo>=</mo><msub><mi>J</mi><mi>K</mi></msub><mfenced open = "[" close = "]"><mtable><mtr><mtd><mover><mi>&Theta;</mi><mo>&CenterDot;</mo></mover></mtd></mtr><mtr><mtd><msub><mi>L</mi><mrow><mi>c</mi><mi>m</mi><mi>g</mi></mrow></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000873885880000011.GIF" wi="900" he="198" /></maths>其中J<sub>K</sub>是扩展雅克比矩阵,v<sub>e</sub>为空间机器人末端线速度,ω<sub>e</sub>为空间机器人末端角速度,ω<sub>0</sub>为载体卫星转动角速度,<img file="FDA0000873885880000016.GIF" wi="44" he="61" />为空间机器人关节角速度指令,L<sub>cmg</sub>为单框架控制力矩陀螺系统的角动量;扩展雅克比矩阵J<sub>K</sub>可用中间变量J<sub>g_v</sub>、J<sub>g_ω</sub>、K<sub>l_v</sub>、K<sub>l_ω</sub>、J<sub>bm_ω</sub>和K<sub>bl_ω</sub>表示为分块矩阵,令<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>J</mi><mi>K</mi></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>J</mi><mrow><mi>g</mi><mo>_</mo><mi>v</mi></mrow></msub></mtd><mtd><msub><mi>K</mi><mrow><mi>l</mi><mo>_</mo><mi>v</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>J</mi><mrow><mi>g</mi><mo>_</mo><mi>&omega;</mi></mrow></msub></mtd><mtd><msub><mi>K</mi><mrow><mi>l</mi><mo>_</mo><mi>&omega;</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>J</mi><mrow><mi>b</mi><mi>m</mi><mo>_</mo><mi>&omega;</mi></mrow></msub></mtd><mtd><msub><mi>K</mi><mrow><mi>b</mi><mi>l</mi><mo>_</mo><mi>&omega;</mi></mrow></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000873885880000012.GIF" wi="397" he="206" /></maths>其中<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>J</mi><mrow><mi>g</mi><mo>_</mo><mi>v</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>J</mi><mrow><mi>g</mi><mo>_</mo><mi>&omega;</mi></mrow></msub></mtd></mtr></mtable></mfenced><mo>=</mo><msub><mi>J</mi><mi>m</mi></msub><mo>+</mo><msub><mi>J</mi><mi>b</mi></msub><msub><mi>J</mi><mrow><mi>b</mi><mi>m</mi></mrow></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000873885880000013.GIF" wi="877" he="141" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>J</mi><mi>m</mi></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><msub><mi>k</mi><mn>1</mn></msub><mo>&times;</mo><mrow><mo>(</mo><msub><mi>p</mi><mi>e</mi></msub><mo>-</mo><msub><mi>p</mi><mn>1</mn></msub><mo>)</mo></mrow></mrow></mtd><mtd><mo>...</mo></mtd><mtd><mrow><msub><mi>k</mi><mi>n</mi></msub><mo>&times;</mo><mrow><mo>(</mo><msub><mi>p</mi><mi>e</mi></msub><mo>-</mo><msub><mi>p</mi><mi>n</mi></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><msub><mi>k</mi><mn>1</mn></msub></mtd><mtd><mo>...</mo></mtd><mtd><msub><mi>k</mi><mi>n</mi></msub></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000873885880000014.GIF" wi="708" he="134" /></maths>k<sub>i</sub>为第i个臂杆转轴的方向向量,p<sub>e</sub>‑p<sub>i</sub>表示空间机械臂末端相对于第i个臂杆末端的位置向量;<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>J</mi><mi>b</mi></msub><mo>=</mo><mfenced open = "(" close = ")"><mtable><mtr><mtd><mi>E</mi></mtd><mtd><mrow><mo>-</mo><msub><mover><mi>p</mi><mo>~</mo></mover><mrow><mn>0</mn><mi>e</mi></mrow></msub></mrow></mtd></mtr><mtr><mtd><mi>O</mi></mtd><mtd><mi>E</mi></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000873885880000015.GIF" wi="298" he="132" /></maths>p<sub>0e</sub>=p<sub>e</sub>‑r<sub>0</sub>E为单位矩阵,<img file="FDA0000873885880000017.GIF" wi="59" he="61" />为p<sub>0e</sub>的斜对称矩阵,p<sub>0e</sub>为p<sub>e</sub>‑r<sub>0</sub>,表示空间机械臂末端相对于基座质心的位置向量;J<sub>bm</sub>的求解过程如下:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mi>J</mi><mrow><mi>b</mi><mi>m</mi></mrow></msub><mo>=</mo><msup><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>J</mi><mrow><mi>b</mi><mi>m</mi><mo>_</mo><mi>v</mi></mrow></msub></mtd><mtd><msub><mi>J</mi><mrow><mi>b</mi><mi>m</mi><mo>_</mo><mi>&omega;</mi></mrow></msub></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>=</mo><msup><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>-</mo><mrow><mo>(</mo><msub><mi>J</mi><mrow><mi>T</mi><mi>w</mi></mrow></msub><mo>/</mo><mi>M</mi><mo>+</mo><msub><mover><mi>r</mi><mo>~</mo></mover><mrow><mn>0</mn><mi>g</mi></mrow></msub><msubsup><mi>H</mi><mi>s</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><msub><mi>H</mi><mi>&Theta;</mi></msub><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>-</mo><msubsup><mi>H</mi><mi>s</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><msub><mi>H</mi><mi>&Theta;</mi></msub></mrow></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000873885880000021.GIF" wi="1390" he="95" /></maths><maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>J</mi><mrow><mi>T</mi><mi>w</mi></mrow></msub><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mrow><mo>(</mo><msub><mi>m</mi><mi>i</mi></msub><msub><mi>J</mi><mrow><mi>T</mi><mi>i</mi></mrow></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000873885880000022.GIF" wi="333" he="128" /></maths>J<sub>Ti</sub>=[k<sub>1</sub>×(r<sub>i</sub>‑p<sub>1</sub>),k<sub>2</sub>×(r<sub>i</sub>‑p<sub>2</sub>),...,k<sub>i</sub>×(r<sub>i</sub>‑p<sub>i</sub>),0,...,0]<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msub><mi>H</mi><mi>s</mi></msub><mo>=</mo><mrow><mo>(</mo><mi>M</mi><msub><mover><mi>r</mi><mo>~</mo></mover><mrow><mn>0</mn><mi>g</mi></mrow></msub><msub><mover><mi>r</mi><mo>~</mo></mover><mrow><mn>0</mn><mi>g</mi></mrow></msub><mo>+</mo><msub><mi>H</mi><mi>w</mi></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000873885880000023.GIF" wi="371" he="79" /></maths><maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><msub><mi>H</mi><mi>w</mi></msub><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mrow><mo>(</mo><msub><mi>I</mi><mi>i</mi></msub><mo>+</mo><msub><mi>m</mi><mi>i</mi></msub><msubsup><mover><mi>r</mi><mo>~</mo></mover><mrow><mn>0</mn><mi>i</mi></mrow><mi>T</mi></msubsup><msub><mover><mi>r</mi><mo>~</mo></mover><mrow><mn>0</mn><mi>i</mi></mrow></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>I</mi><mn>0</mn></msub></mrow>]]></math><img file="FDA0000873885880000024.GIF" wi="540" he="134" /></maths><maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><msub><mi>H</mi><mi>&Theta;</mi></msub><mo>=</mo><msub><mi>H</mi><mrow><mi>w</mi><mi>&phi;</mi></mrow></msub><mo>-</mo><msub><mover><mi>r</mi><mo>~</mo></mover><mrow><mn>0</mn><mi>g</mi></mrow></msub><msub><mi>J</mi><mrow><mi>T</mi><mi>w</mi></mrow></msub></mrow>]]></math><img file="FDA0000873885880000025.GIF" wi="324" he="71" /></maths><maths num="0011" id="cmaths0011"><math><![CDATA[<mrow><msub><mi>H</mi><mrow><mi>w</mi><mi>&phi;</mi></mrow></msub><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mrow><mo>(</mo><msub><mi>I</mi><mi>i</mi></msub><msub><mi>J</mi><mrow><mi>R</mi><mi>i</mi></mrow></msub><mo>+</mo><msub><mi>m</mi><mi>i</mi></msub><msub><mover><mi>r</mi><mo>~</mo></mover><mrow><mn>0</mn><mi>i</mi></mrow></msub><msub><mi>J</mi><mrow><mi>T</mi><mi>i</mi></mrow></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000873885880000026.GIF" wi="533" he="128" /></maths>J<sub>Ri</sub>=[k<sub>1</sub>,k<sub>2</sub>,...,k<sub>i</sub>,0,...,0]式中:m<sub>i</sub>为第i个臂杆的质量,k<sub>i</sub>为第i个臂杆转轴的方向向量,r<sub>i</sub>‑p<sub>m</sub>表示第i个臂杆质心相对于第m个臂杆末端的位置向量,M为空间机器人总质量,<img file="FDA0000873885880000028.GIF" wi="51" he="63" />为载体航天器质心相对于空间机器人系统质心的位置向量的斜对称矩阵,I<sub>i</sub>为第i个臂杆的惯性张量矩阵,I<sub>0</sub>为载体卫星的惯性张量矩阵;<maths num="0012" id="cmaths0012"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>K</mi><mrow><mi>l</mi><mo>_</mo><mi>v</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>K</mi><mrow><mi>l</mi><mo>_</mo><mi>&omega;</mi></mrow></msub></mtd></mtr></mtable></mfenced><mo>=</mo><msub><mi>J</mi><mi>b</mi></msub><msup><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>-</mo><msub><mover><mi>r</mi><mo>~</mo></mover><mrow><mn>0</mn><mi>g</mi></mrow></msub><msubsup><mi>H</mi><mi>s</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup></mrow></mtd><mtd><mrow><mo>-</mo><msubsup><mi>H</mi><mi>s</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup></mrow></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000873885880000027.GIF" wi="1052" he="135" /></maths><maths num="0013" id="cmaths0013"><math><![CDATA[<mrow><msub><mi>K</mi><mrow><mi>b</mi><mi>l</mi><mo>_</mo><mi>w</mi></mrow></msub><mo>=</mo><mo>-</mo><msubsup><mi>H</mi><mi>s</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000873885880000029.GIF" wi="1078" he="74" /></maths>步骤三、利用Moore‑Penrose伪逆求解方法设计空间机器人星臂协调控制器;步骤四、空间机械臂末端轨迹参数化;步骤五、基于粒子群优化方法,根据空间机器人协调控制器得到的单框架控制力矩陀螺系统角动量的表达式构建优化目标函数,利用构建的优化目标函数对经过参数化的空间机械臂末端轨迹进行优化;步骤六、将空间机械臂优化轨迹数据输入给空间机器人星臂协调控制器,得到单框架控制力矩陀螺系统的角动量,利用得到的角动量计算出单框架控制力矩陀螺系统的角速度指令。
地址 150001 黑龙江省哈尔滨市南岗区西大直街92号