特表-16208504IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機株式会社の特許一覧
再表2016-208504宇宙機の姿勢制御装置およびCMGのジンバル角演算方法
<>
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000018
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000019
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000020
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000021
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000022
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000023
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000024
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000025
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000026
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000027
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000028
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000029
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000030
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000031
  • 再表WO2016208504-宇宙機の姿勢制御装置およびCMGのジンバル角演算方法 図000032
< >
(19)【発行国】日本国特許庁(JP)
【公報種別】再公表特許(A1)
(11)【国際公開番号】WO/0
(43)【国際公開日】2016年12月29日
【発行日】2017年12月28日
(54)【発明の名称】宇宙機の姿勢制御装置およびCMGのジンバル角演算方法
(51)【国際特許分類】
   B64G 1/28 20060101AFI20171201BHJP
   G01C 19/02 20060101ALI20171201BHJP
【FI】
   B64G1/28 B
   G01C19/02 B
【審査請求】有
【予備審査請求】未請求
【全頁数】30
【出願番号】特願2017-524856(P2017-524856)
(21)【国際出願番号】PCT/0/0
(22)【国際出願日】2016年6月17日
(31)【優先権主張番号】特願2015-124561(P2015-124561)
(32)【優先日】2015年6月22日
(33)【優先権主張国】JP
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JP,KE,KG,KN,KP,KR,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US
(71)【出願人】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】100110423
【弁理士】
【氏名又は名称】曾我 道治
(74)【代理人】
【識別番号】100111648
【弁理士】
【氏名又は名称】梶並 順
(74)【代理人】
【識別番号】100122437
【弁理士】
【氏名又は名称】大宅 一宏
(74)【代理人】
【識別番号】100147566
【弁理士】
【氏名又は名称】上田 俊一
(74)【代理人】
【識別番号】100161171
【弁理士】
【氏名又は名称】吉田 潤一郎
(74)【代理人】
【識別番号】100194939
【弁理士】
【氏名又は名称】別所 公博
(72)【発明者】
【氏名】北村 憲司
(72)【発明者】
【氏名】山田 克彦
(72)【発明者】
【氏名】島 岳也
(57)【要約】
CMGの台数をn(nは、4以上の整数)とするとき、n台のCMGに対応するn個のジンバル角のうちの(n−3)個のジンバル角をフリーパラメータとして設定し、n個のジンバル角のうちの3個のジンバル角と、フリーパラメータと、CMG全体の角運動量との関係を示す代数方程式を用いて、フリーパラメータを設定範囲内で変化させながら代数方程式を解くことで、与えられた角運動量を実現するために必要な複数のCMGのジンバル角の解を求めるように構成する。
【特許請求の範囲】
【請求項1】
スピン軸回りに回転するホイールと、前記ホイールを支持するとともに前記スピン軸に対して直交するジンバル軸回りに回転するジンバルとを有し、宇宙機に搭載される複数のCMGを用いて、姿勢制御を行う宇宙機の姿勢制御装置であって、
与えられたCMG全体の角運動量を実現するために必要な前記複数のCMGのジンバル角の解を求める逆キネマティクス演算部と、
前記宇宙機の姿勢角および姿勢角速度の観測値と、各CMGのジンバル角およびジンバル角速度の観測値をフィードバックすることで、前記宇宙機において所望の姿勢変更を実現するために必要な各CMGのジンバル制御トルクを演算するジンバル制御トルク演算部と、
を備え、
前記ジンバル制御トルク演算部は、
前記CMG全体の角運動量を前記逆キネマティクス演算部に与えることで得られる前記複数のCMGのジンバル角の解を用いて、前記複数のCMGの前記ジンバル制御トルクを演算し、
前記逆キネマティクス演算部は、
前記CMGの台数をn(nは、4以上の整数)とするとき、n台のCMGに対応するn個のジンバル角のうちの(n−3)個のジンバル角をフリーパラメータとして設定し、前記n個のジンバル角のうちの3個のジンバル角と、前記フリーパラメータと、前記CMG全体の角運動量との関係を示す代数方程式を用いて、前記フリーパラメータの値を設定範囲内で変化させながら前記代数方程式を解くことで、前記与えられた前記CMG全体の角運動量を実現する前記複数のCMGのジンバル角の解を求める
宇宙機の姿勢制御装置。
【請求項2】
前記ジンバル制御トルク演算部は、
各CMGのジンバル角計画値およびジンバル角速度計画値を演算して出力する運動計画部と、
前記運動計画部から入力された各CMGのジンバル角計画値およびジンバル角速度計画値から、前記宇宙機の姿勢角目標値および姿勢角速度目標値を演算して出力する順キネマティクス演算部と、
前記順キネマティクス演算部から入力された前記宇宙機の姿勢角目標値および姿勢角速度目標値と、前記宇宙機の姿勢角および姿勢角速度の観測値とから、前記宇宙機の姿勢を制御するための姿勢制御トルクを演算して出力する姿勢制御部と、
前記姿勢制御部から入力された前記姿勢制御トルクから、各CMGのジンバル角補正値およびジンバル角速度補正値を演算して出力するステアリング制御部と、
前記運動計画部から入力された各CMGのジンバル角計画値およびジンバル角速度計画値と、前記ステアリング制御部から入力された各CMGのジンバル角補正値およびジンバル角速度補正値とをそれぞれ加算することで、各CMGのジンバル角目標値およびジンバル角速度目標値を演算して出力する加算器と、
前記加算器から入力された各CMGのジンバル角目標値およびジンバル角速度目標値と、各CMGのジンバル角およびジンバル角速度の観測値とから、各CMGのジンバル制御トルクを演算して出力するジンバル制御部と、
を備えた請求項1に記載の宇宙機の姿勢制御装置。
【請求項3】
前記運動計画部は、
CMG全体が発生しうる最大角運動量の候補値を前記与えられたCMG全体の角運動量として前記逆キネマティクス演算部に出力し、
前記逆キネマティクス演算部は、
前記運動計画部から入力された前記候補値を実現する各CMGのジンバル角の解を求め、求めた結果を前記運動計画部に出力し、
前記運動計画部は、
前記候補値を実現する各CMGのジンバル角の解の有無に応じて、前記候補値を逐次更新することで、前記最大角運動量を演算する
請求項2に記載の宇宙機の姿勢制御装置。
【請求項4】
前記運動計画部は、
CMG全体が発生しうる最大角運動量よりも小さい第1の角運動量目標値を演算し、演算した前記第1の角運動量目標値を前記与えられたCMG全体の角運動量として前記逆キネマティクス演算部に出力し、
前記逆キネマティクス演算部は、
前記運動計画部から入力された前記第1の角運動量目標値を実現する各CMGのジンバル角の解を求め、求めた前記第1の角運動量目標値を実現する各CMGのジンバル角の解の中から、第1の評価関数を最小化する解を第1の最適解として選択し、選択した前記第1の最適解を各CMGの中間ジンバル角とする
請求項2または3に記載の宇宙機の姿勢制御装置。
【請求項5】
前記ステアリング制御部は、
前記姿勢制御部から入力された前記姿勢制御トルクから、CMG全体の角運動量の微小変化分を演算し、CMG全体の角運動量の現在値に前記微小変化分を加えることで、第2の角運動量目標値を演算し、演算した前記第2の角運動量目標値を前記与えられたCMG全体の角運動量として前記逆キネマティクス演算部に出力し、
前記逆キネマティクス演算部は、
前記ステアリング制御部から入力された前記第2の角運動量目標値を実現する各CMGのジンバル角の解を求め、求めた前記第2の角運動量目標値を実現する各CMGのジンバル角の解の中から、第2の評価関数を最小化する解を第2の最適解として選択し、選択した前記第2の最適解を前記ステアリング制御部に出力し、
前記ステアリング制御部は、
前記逆キネマティクス演算部から入力された前記第2の最適解に応じて各CMGのジンバル角速度補正値を演算する
請求項2から4のいずれか1項に記載の宇宙機の姿勢制御装置。
【請求項6】
CMGの台数をn(nは、4以上の整数)とするとき、
n台のCMGに対応するn個のジンバル角のうちの(n−3)個のジンバル角をフリーパラメータとして設定するステップと、
前記n個のジンバル角のうちの3個のジンバル角と、前記フリーパラメータと、CMG全体の角運動量との関係を示す代数方程式を用いて、前記フリーパラメータの値を設定範囲内で変化させながら前記代数方程式を解くことで、与えられたCMG全体の角運動量を実現する各CMGのジンバル角の解を求めるステップと、
を備えたCMGのジンバル角演算方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、宇宙機に搭載されたコントロールモーメントジャイロ(CMG:Control Moment Gyro)を用いて姿勢制御を行う宇宙機の姿勢制御装置、および与えられたCMG全体の角運動量を実現する各CMGのジンバル角の解を求めるCMGのジンバル角演算方法に関するものである。
【背景技術】
【0002】
CMGを用いて宇宙機の3軸姿勢制御を行う場合、3台以上の1軸ジンバルCMGが用いられることが多い。このようなCMGのシステムにおいて、CMG全体の角運動量の目標値を与えたとき、その角運動量を実現する各CMGのジンバル角を演算する逆キネマティクス演算を行うことがある。なお、CMG全体の角運動量とは、各CMGが有する角運動量ベクトルのベクトル和に相当する。
【0003】
ここで、例えば、CMGの運動計画が行われる場合、またはCMGを用いてリアルタイムで姿勢制御が行われる場合において、逆キネマティクス演算を行うことで、与えられたCMG全体の角運動量を実現する各CMGのジンバル角の解を求める必要が生じる(例えば、特許文献1参照)。
【0004】
特許文献1に記載の従来技術では、ニュートン法のような繰り返し計算を用いて、逆キネマティクス演算の解が求められている。具体的には、与えられたCMG全体の角運動量を実現する各CMGのジンバル角の近似解を何らかの方法で求め、ニュートン法のような繰り返し計算を用いて、与えられた角運動量を実現するジンバル角の解を求める。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−240375号公報(5頁36行〜6頁14行、10頁5行〜44行)
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術には以下のような課題がある。
特許文献1に記載の従来技術のように、ニュートン法のような繰り返し計算によって、与えられたCMG全体の角運動量を実現する各CMGのジンバル角の解を求める場合、必ずしもその解が得られるとは限らない。そのため、所望の姿勢変更を実現するためのCMGの運動計画を行うことができず、結果として、姿勢変更を実現することができない可能性がある。
【0007】
また、CMGの台数が4台以上になると、一般に、与えられたCMG全体の角運動量を実現する各CMGのジンバル角の解が無数に存在する。しかしながら、ニュートン法のような繰り返し計算によって各CMGのジンバル角の解を求める場合、あらかじめ演算したジンバル角の近似解の近傍の解しか得ることができない。したがって、このように演算した各CMGのジンバル角の解が、無数に存在する解の中で、姿勢変更を行う上で考慮すべき評価関数を最小化する解であるという保証はない。
【0008】
さらに、ニュートン法のような繰り返し計算の収束性を保証するためには、十分に精度の高いジンバル角の近似解をもとに計算を始める必要があるが、そのような近似解を確実に演算する方法は必ずしも確立されてはいない。
【0009】
本発明は、前記のような課題を解決するためになされたものであり、ニュートン法のような繰り返し計算を用いなくても、与えられたCMG全体の角運動量を実現する各CMGのジンバル角の解を求めることのできる宇宙機の姿勢制御装置およびCMGのジンバル角演算方法を得ることを目的とする。
【課題を解決するための手段】
【0010】
本発明における宇宙機の姿勢制御装置は、スピン軸回りに回転するホイールと、ホイールを支持するとともにスピン軸に対して直交するジンバル軸回りに回転するジンバルとを有し、宇宙機に搭載される複数のCMGを用いて、姿勢制御を行う宇宙機の姿勢制御装置であって、与えられたCMG全体の角運動量を実現するために必要な複数のCMGのジンバル角の解を求める逆キネマティクス演算部と、宇宙機の姿勢角および姿勢角速度の観測値と、各CMGのジンバル角およびジンバル角速度の観測値をフィードバックすることで、宇宙機において所望の姿勢変更を実現するために必要な各CMGのジンバル制御トルクを演算するジンバル制御トルク演算部と、を備え、ジンバル制御トルク演算部は、CMG全体の角運動量を逆キネマティクス演算部に与えることで得られる複数のCMGのジンバル角の解を用いて、複数のCMGのジンバル制御トルクを演算し、逆キネマティクス演算部は、CMGの台数をn(nは、4以上の整数)とするとき、n台のCMGに対応するn個のジンバル角のうちの(n−3)個のジンバル角をフリーパラメータとして設定し、n個のジンバル角のうちの3個のジンバル角と、フリーパラメータと、CMG全体の角運動量との関係を示す代数方程式を用いて、フリーパラメータの値を設定範囲内で変化させながら代数方程式を解くことで、与えられたCMG全体の角運動量を実現する複数のCMGのジンバル角の解を求めるものである。
【0011】
また、本発明におけるCMGのジンバル角演算方法は、CMGの台数をn(nは、4以上の整数)とするとき、n台のCMGに対応するn個のジンバル角のうちの(n−3)個のジンバル角をフリーパラメータとして設定するステップと、n個のジンバル角のうちの3個のジンバル角と、フリーパラメータと、CMG全体の角運動量との関係を示す代数方程式を用いて、フリーパラメータの値を設定範囲内で変化させながら代数方程式を解くことで、与えられたCMG全体の角運動量を実現する各CMGのジンバル角の解を求めるステップと、を備えたものである。
【発明の効果】
【0012】
本発明によれば、CMGの台数をn(nは、4以上の整数)とするとき、n台のCMGに対応するn個のジンバル角のうちの(n−3)個のジンバル角をフリーパラメータとして設定し、n個のジンバル角のうちの3個のジンバル角と、フリーパラメータと、CMG全体の角運動量との関係を示す代数方程式を用いて、フリーパラメータを設定範囲内で変化させながら代数方程式を解くことで、与えられた角運動量を実現する各CMGのジンバル角の解を求めるように構成する。これにより、ニュートン法のような繰り返し計算を用いなくても、与えられたCMG全体の角運動量を実現する各CMGのジンバル角の解を求めることのできる宇宙機の姿勢制御装置およびCMGのジンバル角演算方法を得ることができる。
【図面の簡単な説明】
【0013】
図1】本発明の実施の形態1における宇宙機の姿勢制御装置によって制御されるCMGの概略構成を示す斜視図である。
図2図1のCMGを人工衛星に複数台配置する場合の配置例を示す説明図である。
図3】本発明の実施の形態1における宇宙機の姿勢制御装置の構成を示すブロック図である。
図4】本発明の実施の形態1におけるジンバル制御トルク演算部の構成を示すブロック図である。
図5】本発明の実施の形態1における宇宙機の姿勢制御装置のハードウェア構成の一例を示す構成図である。
図6】本発明の実施の形態1における宇宙機の姿勢制御装置のハードウェア構成の別例を示す構成図である。
図7】本発明の実施の形態1における順キネマティクス演算部の動作を示すフローチャートである。
図8】本発明の実施の形態2における宇宙機の姿勢制御装置の構成を示すブロック図である。
図9】本発明の実施の形態2における宇宙機の姿勢制御装置が、人工衛星の姿勢変更を行うときの最短駆動時間を演算する際の手順を示すフローチャートである。
図10図2の4台のCMGに対するCMG全体の角運動量包絡面を示す説明図である。
図11】本発明の実施の形態2における宇宙機の姿勢制御装置が、角運動量の向きを定めたときの角運動量包絡面の値を演算する際の手順を示すフローチャートである。
図12】本発明の実施の形態3における宇宙機の姿勢制御装置が、中間ジンバル角を経由するCMGのジンバル角の運動軌道を演算する際の手順を示すフローチャートである。
図13】本発明の実施の形態3における宇宙機の姿勢制御装置が、中間ジンバル角を演算する際の手順を示すフローチャートである。
図14】本発明の実施の形態4における宇宙機の姿勢制御装置の構成を示すブロック図である。
図15】本発明の実施の形態4における宇宙機の姿勢制御装置が、各CMGのジンバル角速度補正値を演算する際の手順を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、本発明による宇宙機の姿勢制御装置およびCMGのジンバル角演算方法を、好適な実施の形態にしたがって図面を用いて説明する。なお、図面の説明においては、同一部分または相当部分には同一符号を付し、重複する説明を省略する。また、以下の実施の形態では、宇宙機が人工衛星である場合を例示するが、宇宙船等の他の宇宙機に対しても本願発明が適用可能である。
【0015】
実施の形態1.
図1は、本発明の実施の形態1における宇宙機の姿勢制御装置10によって制御されるCMG1の概略構成を示す斜視図である。図1において、CMG1は、人工衛星の姿勢制御に用いられるアクチュエータであり、1軸ジンバルCMGである。また、CMG1は、スピン軸回りに高速で回転するホイールと、そのホイールを支持するとともにスピン軸に対して直交するジンバル軸回りに回転するジンバルとを備えて構成される。
【0016】
CMG1において、ホイールは、高速回転することで、スピン軸回りに一定量の角運動量を有する。また、ジンバルをジンバル軸回りに回転させ、ホイールの角運動量の向きを回転させることで、人工衛星本体に大きな反作用トルクが働く。この反作用トルクは、人工衛星の姿勢制御に利用される。
【0017】
図2は、図1のCMG1を人工衛星に複数台配置する場合の配置例を示す説明図である。図2において、CMG1は、通常、図2に示すように4台、または4台以上の台数が人工衛星に配置され、これら複数台のCMG1を協調して動作させることで、人工衛星の姿勢制御が実現可能となる。図2に示したCMG1の配置は、各CMG1が四角錐の底辺に配置されていることからピラミッド配置と呼ばれ、CMG1の典型的な配置例の一つである。
【0018】
図3は、本発明の実施の形態1における宇宙機の姿勢制御装置10の構成を示すブロック図である。図3において、宇宙機の姿勢制御装置10(以下では、姿勢制御装置10と略すことがある)は、逆キネマティクス演算部19と、ジンバル制御トルク演算部20とを備える。
【0019】
ジンバル制御トルク演算部20は、人工衛星の姿勢角および姿勢角速度の観測値と、各CMG1のジンバル角およびジンバル角速度の観測値とをフィードバックすることで、人工衛星において所望の姿勢変更を実現するために必要な各CMG1のジンバル制御トルクを演算する。なお、ジンバル制御トルク演算部20の具体的な構成例については、後述する。
【0020】
ジンバル制御トルク演算部20は、ジンバル制御制御トルクを演算する過程において、逆キネマティクス問題を解く必要がある。そこで、ジンバル制御トルク演算部20は、CMG1全体の角運動量を逆キネマティクス演算部19に与える。
【0021】
逆キネマティクス演算部19は、ジンバル制御トルク演算部20から与えられたCMG1全体の角運動量を実現するために必要な複数のCMG1のジンバル角の解を求める。ここで、逆キネマティクス演算部19において、与えられたCMG1全体の角運動量から、各CMG1のジンバル角の解を求める処理を、逆キネマティクス演算と呼ぶ。
【0022】
ジンバル制御トルク演算部20は、CMG1全体の角運動量を逆キネマティクス演算部19に与えることで得られる複数のCMG1のジンバル角の解を用いて、複数のCMG1のジンバル制御トルクを演算する。
【0023】
次に、ジンバル制御トルク演算部20の構成について、図4を参照しながら説明する。図4は、本発明の実施の形態1におけるジンバル制御トルク演算部20の構成を示すブロック図である。
【0024】
図4において、ジンバル制御トルク演算部20は、運動計画部11、順キネマティクス演算部12、第1の減算器13、姿勢制御部14、ステアリング制御部15、加算器16、第2の減算器17、ジンバル制御部18を備える。
【0025】
次に、姿勢制御装置10のハードウェア構成の一例について、図5を参照しながら説明する。図5は、本発明の実施の形態1における宇宙機の姿勢制御装置10のハードウェア構成の一例を示す構成図である。なお、図5では、姿勢制御装置10は、処理回路101によって実現される場合を例示している。
【0026】
図5において、人工衛星としての衛星30は、受信機111、センサ112、姿勢制御装置10およびCMGジンバルダイナミクス2を備える。受信機111は、地上の衛星利用者によって指定される、衛星30の姿勢変更の目標値に関する情報を受信する。センサ112は、衛星30の姿勢角および姿勢角速度を観測する。
【0027】
姿勢制御装置10は、受信機111からの信号を受けて姿勢変更軌道を計画し、さらに、センサ112からの姿勢角および姿勢角速度の情報をフィードバックすることで、衛星30を制御するために必要な各CMG1のジンバル制御トルクを演算する。
【0028】
処理回路は、専用のハードウェアであっても、メモリに格納されるプログラムを実行するCPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、DSPともいう)であってもよい。
【0029】
次に、姿勢制御装置10のハードウェア構成の別例について、図6を参照しながら説明する。図6は、本発明の実施の形態1における宇宙機の姿勢制御装置10のハードウェア構成の別例を示す構成図である。なお、図6では、姿勢制御装置10は、プロセッサ102およびメモリ103によって実現される場合を例示している。また、図5の処理回路101は、プロセッサ(CPU)102とメモリ103に当たる。
【0030】
図6において、衛星30は、先の図5と同様に、受信機111、センサ112、姿勢制御装置10およびCMGジンバルダイナミクス2を備える。
【0031】
処理回路101が、専用のハードウェアである場合、処理回路101は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGA、またはこれらを組み合わせたものが該当する。運動計画部11、順キネマティクス演算部12、姿勢制御部14、ステアリング制御部15、ジンバル制御部18の各部の機能それぞれを処理回路で実現してもよいし、各部の機能をまとめて処理回路で実現してもよい。
【0032】
処理回路がプロセッサ(CPU)102の場合、運動計画部11、順キネマティクス演算部12、第1の減算器13、姿勢制御部14、ステアリング制御部15、加算器16、第2の減算器17、ジンバル制御部18および逆キネマティクス演算部19の機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアおよびファームウェアは、プログラムとして記述され、メモリに格納される。処理回路は、メモリに記憶されたプログラムを読み出して実行することにより、各部の機能を実現する。
【0033】
すなわち、姿勢制御装置10は、処理回路101により実行されるときに、運動計画ステップ、順キネマティクス演算ステップ、第1の減算ステップ、姿勢制御ステップ、ステアリング制御ステップ、加算ステップ、第2の減算ステップ、ジンバル制御ステップおよび逆キネマティクス演算ステップが結果的に実行されることになるプログラムを格納するためのメモリを備える。また、これらのプログラムは、運動計画部11、順キネマティクス演算部12、第1の減算器13、姿勢制御部14、ステアリング制御部15、加算器16、第2の減算器17、ジンバル制御部18および逆キネマティクス演算部19の手順および方法をコンピュータに実行させるものであるともいえる。
【0034】
ここで、メモリとは、例えば、RAM、ROM、フラッシュメモリ、EPROM、EEPROM等の、不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等が該当する。
【0035】
メモリは、上述のプログラムの他、運動計画部11で決定されるジンバル角計画値およびジンバル角速度計画値と、順キネマティクス演算部12で設定される姿勢角目標値および姿勢角速度目標値と、姿勢制御部14で計算される姿勢制御トルクと、ステアリング制御部15で計算されるジンバル角速度補正値と、ジンバル制御部18で計算されるジンバル制御トルクと、逆キネマティクス演算部19で計算されるジンバル角の解とを記憶する。上述のメモリに記憶された情報は、適宜読みだされ処理に用いられ、修正される。
【0036】
なお、運動計画部11、順キネマティクス演算部12、第1の減算器13、姿勢制御部14、ステアリング制御部15、加算器16、第2の減算器17、ジンバル制御部18および逆キネマティクス演算部19の各機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。例えば、運動計画部11については専用のハードウェアとしての処理回路でその機能を実現し、逆キネマティクス演算部19については、処理回路がメモリに格納されたプログラムを読み出して実行することによってその機能を実現することが可能である。なお、上記において、図5では、処理回路101は、図6のプロセッサ102に当たり、メモリは、図6のメモリ103に当たる。
【0037】
このように、処理回路は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述の各機能を実現することができる。以下、姿勢制御装置10の各部の動作を説明する。
【0038】
図4の説明に戻り、姿勢制御装置10のジンバル制御トルク演算部20に人工衛星の姿勢変更の目標値が与えられると、運動計画部11は、その姿勢変更目標値に従って人工衛星が姿勢変更を行う際の各CMG1の運動計画を行う。具体的には、運動計画部11は、入力された姿勢変更目標値に適合する各CMG1のジンバル角の運動軌道を、ジンバル角計画値およびジンバル角速度計画値として演算する。また、運動計画部11は、演算した各CMG1のジンバル角計画値およびジンバル角速度計画値を、順キネマティクス演算部12および加算器16に出力する。
【0039】
また、運動計画部11は、CMG1の運動計画を演算する過程において、逆キネマティクス問題を解く必要がある。そこで、運動計画部11は、CMG1全体の角運動量を逆キネマティクス演算部19に出力し、逆キネマティクス演算部19から返される各CMG1のジンバル角を用いて運動計画を行う。
【0040】
運動計画部11は、処理回路101、またはプロセッサ102で処理してもよいし、独立した処理回路で実現してもよい。また、運動計画部11は、人工衛星の姿勢変更の目標値等をメモリから読み出し、演算したジンバル角計画値およびジンバル角速度計画値をメモリに記憶する。
【0041】
次に、順キネマティクス演算部12について、図7を参照しながら説明する。図7は、本発明の実施の形態1における順キネマティクス演算部12の動作を示すフローチャートである。
【0042】
順キネマティクス演算部12に各CMG1のジンバル角計画値が与えられると、順キネマティクス演算部12は、与えられた各CMG1のジンバル角計画値を受け取り(ステップS21)、入力された各CMG1のジンバル角計画値から、そのジンバル角を実現するCMG1全体の角運動量を演算する(ステップS22)。ここで、順キネマティクス演算部12において、入力された各CMG1のジンバル角計画値から、CMG1全体の角運動量の解を求める処理を、順キネマティクス演算と呼ぶ。
【0043】
図4の構成では、順キネマティクス演算部12は、運動計画部11から入力された各CMG1のジンバル角計画値から、その計画値を実現可能とするCMG1全体の角運動量を演算する。
【0044】
また、順キネマティクス演算部12は、ステップS22で計算されたCMG1全体の角運動量から、人工衛星の姿勢角速度の目標値を演算する(ステップS23)。CMG1を含む人工衛星全体では、総角運動量が慣性空間において保存されるので、このように、CMG1全体の角運動量から、人工衛星の姿勢角速度の目標値を定めることができる。
【0045】
順キネマティクス演算部12は、ステップS23で計算された姿勢角速度の目標値を時間積分することで、人工衛星の姿勢角の目標値を演算し(ステップS24)、一連の処理を終了する(ステップS25)。以上のように演算された人工衛星の姿勢角目標値および姿勢角速度目標値は、第1の減算器13に出力される。
【0046】
順キネマティクス演算部12は、処理回路101、またはプロセッサ102で処理してもよいし、独立した処理回路で実現してもよい。また、順キネマティクス演算部12は、運動計画部11で演算したジンバル角計画値およびジンバル角速度計画値をメモリから読み出し、演算した人工衛星の姿勢角目標値および姿勢角速度目標値をメモリに記憶する。
【0047】
第1の減算器13は、順キネマティクス演算部12から入力された人工衛星の姿勢角目標値および姿勢角速度目標値と、衛星姿勢ダイナミクス3から入力された人工衛星の姿勢角および姿勢角速度との偏差を演算して姿勢制御部14に出力する。なお、衛星姿勢ダイナミクス3から入力された人工衛星の姿勢角および姿勢角速度は、人工衛星の姿勢角および姿勢角速度の観測値に相当する。
【0048】
姿勢制御部14は、第1の減算器13から入力された偏差を0にするように、人工衛星の姿勢を制御するための姿勢制御トルクを演算してステアリング制御部15に出力する。このように、第1の減算器13から入力された偏差から、人工衛星の姿勢角を姿勢角目標値に近づけるとともに姿勢角速度を姿勢角速度目標値に近づけるようにフィードバック制御が行われる。
【0049】
このように、姿勢制御部14は、順キネマティクス演算部12から入力された人工衛星の姿勢角目標値および姿勢角速度目標値と、人工衛星の姿勢角および姿勢角速度の観測値とから、人工衛星の姿勢を制御するための姿勢制御トルクを演算して出力する。
【0050】
姿勢制御部14は、処理回路101、またはプロセッサ102で処理してもよいし、独立した処理回路で実現してもよい。また、姿勢制御部14は、第1の減算器13から入力された偏差をメモリから読み出し、演算した姿勢制御トルクをメモリに記憶する。
【0051】
ステアリング制御部15は、姿勢制御部14から入力された姿勢制御トルクから、その姿勢制御トルクに整合する各CMG1のジンバル角補正値およびジンバル角速度補正値を演算して加算器16に出力する。
【0052】
また、ステアリング制御部15は、その演算の過程において、逆キネマティクス問題を解く必要がある。そこで、ステアリング制御部15は、CMG1全体の角運動量を逆キネマティクス演算部19に出力し、逆キネマティクス演算部19から返される各CMG1のジンバル角を用いてジンバル角補正値およびジンバル角速度補正値を演算する。
【0053】
ステアリング制御部15は、処理回路101、またはプロセッサ102で処理してもよいし、独立した処理回路で実現してもよい。また、ステアリング制御部15は、演算したジンバル角補正値およびジンバル角速度補正値をメモリに記憶する。
【0054】
加算器16は、ステアリング制御部15から入力された各CMG1のジンバル角補正値およびジンバル角速度補正値と、運動計画部11から入力された各CMG1のジンバル角計画値およびジンバル角速度計画値とをそれぞれ加算する。また、加算器16は、演算した加算値を、各CMG1のジンバル角目標値およびジンバル角速度目標値として第2の減算器17に出力する。
【0055】
第2の減算器17は、加算器16から入力された各CMG1のジンバル角目標値およびジンバル角速度目標値と、CMGジンバルダイナミクス2から入力された各CMG1のジンバル角およびジンバル角速度との偏差を演算してジンバル制御部18に出力する。なお、CMGジンバルダイナミクス2から入力された各CMG1のジンバル角およびジンバル角速度は、各CMG1のジンバル角およびジンバル角速度の観測値に相当する。
【0056】
ジンバル制御部18は、第2の減算器17から入力された偏差を0とするように、各CMG1のジンバルの回転を制御するためのジンバル制御トルクを演算してCMGジンバルダイナミクス2に出力する。このように、第2の減算器17から入力された偏差から、各CMG1のジンバル角をジンバル角目標値に近づけるとともにジンバル角速度をジンバル角速度目標値に近づけるようにフィードバック制御が行われる。
【0057】
そのため、各CMG1に適切なジンバル制御トルクが与えられることとなり、このジンバル制御トルクの反作用トルクは、衛星姿勢ダイナミクス3に与えられる。この反作用トルクが与えられることで、姿勢角および姿勢角速度が姿勢角目標値および姿勢角速度目標値に従うように人工衛星が制御される。
【0058】
このように、ジンバル制御部18は、加算器16から入力された各CMG1のジンバル角目標値およびジンバル角速度目標値と、各CMG1のジンバル角およびジンバル角速度の観測値とから、各CMG1のジンバル制御トルクを演算して出力する。
【0059】
ジンバル制御部18は、処理回路101、またはプロセッサ102で処理してもよいし、独立した処理回路で実現してもよい。また、ジンバル制御部18は、演算した各CMG1のジンバル制御トルクをメモリに記憶する。
【0060】
続いて、逆キネマティクス演算部19による逆キネマティクス演算について説明する。前述したとおり、順キネマティクス演算部12は、入力された各CMG1のジンバル角に対して順キネマティクス演算を施すことで、CMG1全体の角運動量を演算している。この順キネマティクス演算は、容易に行うことが可能であり、順キネマティクス演算の解、すなわち、CMG1全体の角運動量の解も一意に定まる。
【0061】
これに対して、逆キネマティクス演算の解、すなわち、各CMG1のジンバル角の解は、通常、一意には定まらず、その解を厳密に求める方法も知られていない。なお、姿勢制御装置10がこのような逆キネマティクス演算を行う必要性としては、具体的には、例えば、以下の2点が挙げられる。すなわち、第1に、運動計画部11による各CMG1のジンバル角の運動軌道の演算する際に、逆キネマティクス演算の解が必要となることがある。第2に、ステアリング制御部15による各CMG1のジンバル角補正値およびジンバル角速度補正値を演算する際に、逆キネマティクス演算の解が必要となることがある。
【0062】
そこで、ニュートン法のような繰り返し計算を用いて、逆キネマティクス演算が一般的に行われている。具体的には、与えられたCMG1全体の角運動量を近似的に実現する各CMG1のジンバル角の値を何らかの方法で求め、ニュートン法のような繰り返し計算を用いて、与えられた角運動量を実現するジンバル角の解を求めることが一般的に行われている。
【0063】
本発明における宇宙機の姿勢制御装置では、ニュートン法のような繰り返し計算を用いることなく、逆キネマティクス演算を厳密に行うことが可能な逆キネマティクス演算部19を備えていることを技術的特徴としている。以下、逆キネマティクス演算部19による逆キネマティクス演算について、さらに説明する。
【0064】
人工衛星に配置されるCMG1の台数、すなわち姿勢制御装置10によって制御されるCMG1の台数が3台以上の場合、CMG1全体の角運動量が実現可能な大きさであれば、その角運動量を実現する各CMG1のジンバル角の解が存在する。ただし、CMG1の台数がn台(nは4以上の整数)の場合、(n−3)個のCMG1のジンバル角の解が必ずしも一意には定まらない。
【0065】
ここで、解が必ずしも一意には定まらない(n−3)個のジンバル角をまとめてフリーパラメータθfと呼ぶ。本発明では、このフリーパラメータθfという概念を新たに導入する。
【0066】
フリーパラメータθfの値を適当に定めるとき、(n−3)個のジンバル角以外の残りの3個のジンバル角θj(j=1,2,3)は、下式(1)の代数方程式を満たす必要がある。
【0067】
【数1】
【0068】
式(1)において、hiはCMG1全体の角運動量の各成分値から、フリーパラメータθfの分を差し引いた既知量である。また、aijおよびbijは、各CMG1の配置によって定まる係数であり、各CMG1の配置を決めれば既知量となる。式(1)の未知量は、3個のジンバル角θj(j=1,2,3)となるが、sinθjとcosθjの間には、よく知られているように、下式(2)の関係式が成立する。
【0069】
【数2】
【0070】
ここで、sinθjとcosθjを未知量と見なすことにすれば、式(1)および式(2)は、6個の未知量に対する6個の式となる。ただし、これらの式は、連立代数方程式となるので一般には解を得ることが容易ではない。そこで、CMG1全体の角運動量を表す座標系を適切に設定することで、aijおよびbijを、0を含む簡単な形で表すことができる。その場合、sinθjとcosθjの中のどれかの変数だけを含む1変数の代数方程式に変換することができる。
【0071】
1変数の代数方程式の解は容易に得られるので、その解を用いて他の変数を求めれば、最終的にすべての変数の解を求めることができる。この計算の中には、代数方程式の解を求める計算が含まれるが、ニュートン法のような解の近似値を用いた繰り返し計算を行うことなく、厳密にCMG1全体の角運動量を満たす解が得られる。
【0072】
また、フリーパラメータθfの値は任意となり、フリーパラメータθfの値がそのまま(n−3)個のジンバル角の解となる。したがって、フリーパラメータθfの値を設定範囲内で変化させながら、変化後のフリーパラメータθfの値ごとに、3個のジンバル角θj(j=1,2,3)を演算すれば、複数組の各CMG1のジンバル角の解が得られる。なお、設定範囲とは、フリーパラメータθfの値が動き得る範囲であり、どのようにフリーパラメータθfの値を動かすかは、あらかじめ設計しておけばよい。
【0073】
以上より、原理的には、CMG1全体の角運動量を実現するすべてのジンバル角の解を得ることができる。また、複数組の各CMG1のジンバル角の解のうちの、1組の各CMG1のジンバル角の解を、無数にある解の中でどれがもっとも適切な解であるかを評価する指標である評価関数を用いて選択すれば、CMG1全体の角運動量を満たす各CMG1の最適解が得られる。なお、複数組の各CMG1のジンバル角の解から、1組の各CMG1のジンバル角の最適解を特定する際には、例えば、公知の評価関数を用いればよい。
【0074】
このように、逆キネマティクス演算部19は、逆キネマティクス演算を行う際の余分な自由度となる(n−3)個のジンバル角をフリーパラメータθfとしてあらかじめ与えられるので、余分な自由度がない状態で、各CMG1のジンバル角を一意に定めることが可能となる。
【0075】
続いて、具体例として、n=4の場合における逆キネマティクス演算について説明する。この具体例では、図2に示すように、人工衛星に固定された座標系xyzを考え、±x軸上にCMG1(1)およびCMG1(3)が位置し、±y軸上にCMG1(2)およびCMG1(4)が位置するとする。また、ジンバル軸eg1,eg2,eg3,eg4の各方向が+z軸から角度βだけ倒れているとする。また、ジンバル角θ1,θ2,θ3,θ4が0のときのスピン軸es1,es2,es3,es4がそれぞれ+y,−x,−y,+x方向に一致するとする。
【0076】
このように座標系をとるとき、各CMG1のジンバル角がθ1,θ2,θ3,θ4であるときのCMG1全体の角運動量のx,y,z成分H1,H2,H3は、下式(3)のように表される。
【0077】
【数3】
【0078】
ただし、式(3)において、hは、各CMG1が保有する角運動量の大きさであり、定数である。なお、CMG1が4台存在する場合において、図2に示すピラミッド配置における座標系のとり方、および式(3)は、公知である。
【0079】
続いて、n=4、すなわち、CMG1の台数が4台であるので、フリーパラメータθfの次元が1(=4−3)となり、θf=θ4とする。このとき、CMG1全体の角運動量の各成分H1,H2,H3から、フリーパラメータθfの分をそれぞれ差し引いたものを、h1,h2,h3とすると、下式(4)のように表される。
【0080】
【数4】
【0081】
また、式(4)を式(3)に代入すると、下式(5)のように表される。なお、式(5)が式(1)に対応している。
【0082】
【数5】
【0083】
さらに、式(5)を変形すると、下式(6)のように表される。
【0084】
【数6】
【0085】
ここで、一般的に任意の2つの角度φ1とφ2に関して、下式(7)の恒等式が成立する。
【0086】
【数7】
【0087】
φ1をθ1、φ2をθ3に置き換えて、式(6)を式(7)に代入すると、下式(8)のように表される。
【0088】
【数8】
【0089】
また、式(2)から、sin2θ2+cos2θ2=1の関係式が成立するので、その関係式を用いると、式(8)から、式(9)の関係式が得られる。
【0090】
【数9】
【0091】
式(9)において、左辺は、sinθ2の2次式とcosθ2の積であり、右辺は、sinθ2の4次式である。したがって、式(9)の両辺を2乗することで、sinθ2の8次式が得られる。すなわち、CMG1全体の角運動量を表す座標系を適切に設定することで、sinθ2だけを含む1変数の代数方程式に変換されることとなる。また、sinθ2だけを含む1変数の代数方程式を解くこと得られるジンバル角θ2の解を用いれば、ジンバル角θ1,θ3の解を得ることができる。
【0092】
また、フリーパラメータθ4の値を設定範囲内で変化させながら、変化後のフリーパラメータθ4の値ごとに、3個のジンバル角θ1,θ2,θ3を演算することで、与えられた角運動量を実現する各CMGのジンバル角の解の組み合わせを複数組演算することができる。
【0093】
このように、逆キネマティクス演算部19による逆キネマティクス演算によって、n個のジンバル角のうちの3個のジンバル角と、フリーパラメータθfと、CMG1全体の角運動量との関係を示す代数方程式を用いて、フリーパラメータθfの値を設定範囲内で変化させながら代数方程式を解くことで、与えられたCMG1全体の角運動量を実現するために必要な複数のCMG1のジンバル角の解を求めることができる。
【0094】
逆キネマティクス演算部19は、処理回路101、またはプロセッサ102で処理してもよいし、独立した処理回路で実現してもよい。また、逆キネマティクス演算部19は、CMG1全体の角運動量をメモリから読み出し、演算した各CMG1のジンバル角の解をメモリに記憶する。
【0095】
以上、本実施の形態1によれば、n台のCMGに対応するn個のジンバル角のうちの(n−3)個の余分な自由度のジンバル角をフリーパラメータとして設定し、n個のジンバル角のうちの3個のジンバル角と、フリーパラメータと、CMG全体の角運動量との関係を示す代数方程式を用いて、フリーパラメータの値を設定範囲内で変化させながら代数方程式を解くことで、与えられた角運動量を実現するために必要な複数のCMGのジンバル角の解を求めるように構成する。
【0096】
これにより、ニュートン法のような繰り返し計算を用いなくても、与えられたCMG全体の角運動量を実現する各CMGのジンバル角の解を精度良く演算することができる。また、CMG全体の角運動量が与えられたときにその角運動量を満たす各CMGのジンバル角の解をすべて演算することができ、そのジンバル角の解の中から評価関数を最小化する解の組み合わせを選択し、選択した解を用いて姿勢制御を行うことで、効率的かつ滑らかな姿勢変更を実現することができる。
【0097】
実施の形態2.
本発明の実施の形態2では、逆キネマティクス演算部19による逆キネマティクス演算を利用して、運動計画部11が人工衛星の姿勢変更を行うときの最短駆動時間を演算する場合について説明する。なお、本実施の形態2では、先の実施の形態1と同様である点の説明を省略し、先の実施の形態1と異なる点を中心に説明する。
【0098】
図8は、本発明の実施の形態2における宇宙機の姿勢制御装置10の構成を示すブロック図である。図8において、運動計画部11は、人工衛星の姿勢変更を行うときの最短駆動時間を演算する。
【0099】
続いて、運動計画部11による最短駆動時間の演算について、図9を参照しながら説明する。図9は、本発明の実施の形態2における宇宙機の姿勢制御装置10が、人工衛星の姿勢変更を行うときの最短駆動時間を演算する際の手順を示すフローチャートである。
【0100】
ここで、図9に示すように、人工衛星の姿勢変更目標値が入力されたとき(ステップS1)、その姿勢変更を1軸回りの回転で実現することを考える。このような回転軸のことをオイラー軸と呼ぶ。運動計画部11は、ステップS1で与えられた姿勢変更目標値からオイラー軸を演算する(ステップS2)。このオイラー軸は、姿勢変更目標値から、簡単な計算で求められる。
【0101】
このオイラー軸の向きの単位ベクトルをαとすると、運動計画部11は、CMG1全体の角運動量を単位ベクトルαの向きにして、その向きにCMG1全体が発生しうる最大角運動量を演算する(ステップS3)。また、運動計画部11は、ステップS3で演算した最大角運動量から、近似的な最短駆動時間を演算し(ステップS4)、一連の処理を終了する(ステップS5)。
【0102】
このように、姿勢制御装置10は、図9に示す手順に従って、人工衛星が姿勢変更を行う際に、その姿勢変更軸の向きにCMG全体が発生しうる最大角運動量を演算するとともに、その演算結果を用いて人工衛星の姿勢変更を行うときの最短駆動時間を演算する。
【0103】
ここで、本実施の形態2における姿勢制御装置10では、逆キネマティクス演算部19による逆キネマティクス演算を利用して、図9のステップS3における最大角運動量の演算を行うように構成していることを技術的特徴としている。
【0104】
図10は、図2の4台のCMG1に対するCMG1全体の角運動量包絡面を示す説明図である。なお、図10では、CMG1全体のとりうる最大角運動量が3次元的に図示されている。
【0105】
ここで、図9のステップS3におけるCMG1の最大角運動量の演算とは、角運動量の向きを定めたときに、その向きの角運動量包絡面における角運動量の大きさを演算することにあたる。
【0106】
図10に示すように、角運動量包絡面は複雑な形状をしているので、最大角運動量の演算は必ずしも容易ではない。通常、その角運動量の向きに対応する特異ベクトルと呼ばれるベクトルを演算することで角運動量包絡面の値を演算する。しかしながら、角運動量の向きと特異ベクトルとは常に1対1に対応するものではなく、すべての場合に、この特異ベクトルを確実に見いだす方法は見つかっていない。
【0107】
以下、逆キネマティクス演算部19による逆キネマティクス演算を利用した最大角運動量の演算について、図11を参照しながら説明する。図11は、本発明の実施の形態2における宇宙機の姿勢制御装置10が、角運動量の向きを定めたときの角運動量包絡面の値を演算する際の手順を示すフローチャートである。図11のフローチャートの処理では、逆キネマティクス演算によるジンバル解の有無によって、二分法を用いて角運動量包絡面の値を演算するように構成されている。
【0108】
ステップS301において、運動計画部11は、角運動量の大きさの最小値hminと最大値hmaxの初期値を定める。
【0109】
この例では、1台のCMG1の角運動量の大きさをhwとして、n台のCMGによる角運動量の大きさの最大値hmax=nhw、最小値hmin=0としている。hmaxは、CMG1全体の発生できない角運動量の大きさの最小値、hminは、CMG1全体の発生できる角運動量の大きさの最大値に対応する。また、hmax−hminが設定精度Δhに可能な限り近づくまで、二分法が実行される。
【0110】
ステップS302において、運動計画部11は、(hmax+hmin)/2を中間値として、その中間値を角運動量の大きさhとして設定する。また、運動計画部11は、設定した中間値hと、単位ベクトルαとから、角運動量hαを演算して逆キネマティクス演算部19に出力する。この角運動量hαは、CMG1全体が発生しうる最大角運動量の候補値に相当する。
【0111】
ステップS303において、逆キネマティクス演算部19は、フリーパラメータθfの値を設定する。
【0112】
ステップS304において、逆キネマティクス演算部19は、ステップS303で設定したフリーパラメータθfを用いて、運動計画部11から入力された角運動量hαに対して逆キネマティクス演算を施す。すなわち、逆キネマティクス演算部19は、角運動量hαを実現する各CMG1のジンバル角の解を求める。また、逆キネマティクス演算部19は、演算結果を運動計画部11に出力する。
【0113】
ステップS305において、運動計画部11は、逆キネマティクス演算部19から入力された演算結果から、角運動量hαを実現するジンバル角の解の有無を調べる。運動計画部11は、角運動量hαを実現するジンバル角の解が存在しないと判断した場合には、ステップS306の処理が実行され、角運動量hαを実現するジンバル角の解が存在すると判断した場合には、ステップS309の処理が実行される。
【0114】
ステップS306において、逆キネマティクス演算部19は、フリーパラメータθfが設定範囲の全領域を動いたかどうかを探索する。ステップS306において、逆キネマティクス演算部19は、フリーパラメータθfが設定範囲の全領域を動いていないと判断した場合には、フリーパラメータθfの動きうる領域が残っているので、ステップS307の処理が実行される。
【0115】
ステップS307において、逆キネマティクス演算部19は、フリーパラメータθfの値を更新して、ステップS304に戻り、更新後のフリーパラメータθfを用いて、ステップS304以降の処理を再び実行される。
【0116】
一方、ステップS306において、逆キネマティクス演算部19は、フリーパラメータθfが設定範囲の全領域を動いたと判断した場合には、フリーパラメータθfを設定範囲内で変化させてもCMG1全体の角運動量hαに対するジンバル角の解が存在しないこととなるので、ステップS308の処理が実行される。
【0117】
ステップS308において、運動計画部11は、角運動量hαを実現するジンバル角の解が存在しないと判断して、hmax=hとする。
【0118】
ステップS309において、運動計画部11は、角運動量hαを実現するジンバル角の解が存在し、CMG1全体の角運動量がhαの値を取り得ると判断して、hmin=hとする。
【0119】
ステップS310において、運動計画部11は、hmax−hminの値を演算し、その値が設定精度Δh未満である場合には、その時点でのhの値を、αの向きの最大角運動量の大きさの値とする。続いて、ステップS311において、一連の処理が終了となる。
【0120】
一方、ステップS310において、運動計画部11は、hmax−hminの値を演算し、その値が設定精度Δh以上である場合には、ステップS302へと戻り、ステップS302以降の処理を再び実行される。
【0121】
このように、CMG1全体が発生しうる最大角運動量の候補値に相当する角運動量hαは、その角運動量hαを実現する各CMGのジンバル角の解の有無に応じて、逐次更新されていき、最後に更新した角運動量hαを最大角運動量としているので、角運動量の向きによらず、確実に解を得ることができる。
【0122】
具体的には、CMG1全体の角運動量の向きを定めたときの最大角運動量の大きさを、逆キネマティクス演算の解の有無による二分法で演算するので、角運動量の向きによらず、確実に解を得ることができる。
【0123】
なお、ここでは、最大角運動量の候補値を逐次更新することで最大角運動量を特定する具体的な手法として二分法を用いる場合を例示した。しかしながら、最大角運動量の候補値を実現する各CMGのジンバル角の解を求め、各CMGのジンバル角の解の有無に応じて、その候補値を逐次更新することで、最大角運動量を演算する構成であれば、二分法以外の別の手法を用いてもよい。
【0124】
図9に示すステップS1からステップS5、および図11に示すステップS301からステップS311の演算は、処理回路101を用いて実現されてもよいし、プロセッサ102を用いて実現されてもよいし、独立した処理回路を用いて実現されてもよい。運動計画部11は、上記のステップを演算することで得られる最大角運動量の値および近似的な最短駆動時間をメモリに記憶する。
【0125】
以上、本実施の形態2によれば、与えられたCMG全体の角運動量であるCMG全体が発生しうる最大角運動量の候補値を実現する各CMGのジンバル角の解を求め、各CMGのジンバル角の解の有無に応じて、最大角運動量の候補値を逐次更新することで、最大角運動量を演算するように構成する。
【0126】
これにより、人工衛星が姿勢変更を行う際に、その姿勢変更軸の向きにCMG全体が発生しうる最大角運動量の値を確実に演算することができる。また、このように演算したCMG全体が発生しうる最大角運動量を用いることで、姿勢変更に要する最短駆動時間を効率的に演算することができ、その結果、人工衛星が姿勢変更を行う際のCMGの運動計画の信頼性の向上につながる。
【0127】
実施の形態3.
本発明の実施の形態3では、逆キネマティクス演算部19による逆キネマティクス演算を利用して、運動計画部11が中間ジンバル角を経由するジンバル角の運動軌道を演算する場合について説明する。なお、本実施の形態3では、先の実施の形態1、2と同様である点の説明を省略し、先の実施の形態1、2と異なる点を中心に説明する。
【0128】
図12は、本発明の実施の形態3における宇宙機の姿勢制御装置10が、中間ジンバル角を経由するCMG1のジンバル角の運動軌道を演算する際の手順を示すフローチャートである。
【0129】
図12に示すように、運動計画部11は、人工衛星の姿勢変更目標値から、姿勢変更のオイラー軸αを演算すると、先の実施の形態2と同様に、CMG1全体の角運動量をαの向きにして、その向きにCMG1全体が発生しうる最大角運動量を演算する(ステップS6)。
【0130】
ここで、ステップS6で演算した最大角運動量をCMG1で実現させれば人工衛星がほぼ最短時間で姿勢変更を行うことができる。しかしながら、CMG1全体が最大角運動量になると、それ以上の大きさの角運動量が実現できない。したがって、人工衛星の姿勢フィードバック制御において、さらに角運動量を付加するような結果が得られても、その結果を踏まえた制御を実行することができない。
【0131】
そのため、運動計画部11でのジンバル角の運動軌道の演算にあたっては、以下のように演算される。すなわち、最大角運動量と向きが同じで、最大角運動量の大きさに対して、例えば20%程度だけ減らした大きさの角運動量を各CMG1で実現させ、その角運動量の値を一定時間保持することで、所望の姿勢変更をほぼ実現する運動軌道が演算される。なお、このときの各CMG1で一定時間保持するジンバル角の値を中間ジンバル角と呼ぶ。
【0132】
運動計画部11は、このように最大角運動量の大きさを減らした角運動量を、角運動量目標値として演算する(ステップS7)。また、運動計画部11は、演算した角運動量目標値を、逆キネマティクス演算部19に出力する。
【0133】
逆キネマティクス演算部19は、運動計画部11から入力された角運動量目標値を実現する中間ジンバル角を演算する(ステップS8)。なお、ステップS8の処理については後述する。
【0134】
ここで、CMG1全体の角運動量の値が最大角運動量である場合には、CMG1の台数が4台以上であっても、その角運動量を実現するジンバル角の値が一意に定まる。しかしながら、CMG1全体の角運動量の値が最大角運動量よりも小さい場合には、一般に、その角運動量を実現するジンバル角の解が無数に存在する。
【0135】
したがって、ステップS8において、逆キネマティクス演算部19は、角運動量目標値を実現するジンバル角の解の中で、何らかの評価関数を最小化する解を最適解として選択することで、解の最適化を図る。また、逆キネマティクス演算部19は、選択した最適解を中間ジンバル角として、その中間ジンバル角を運動計画部11に出力する。
【0136】
運動計画部11は、逆キネマティクス演算部19から入力された中間ジンバル角に基づいて人工衛星の姿勢変更目標値を実現するジンバル角の運動軌道を演算し(ステップS9)、一連の処理を終了する(ステップS10)。
【0137】
このように、運動計画部11は、図12に示す手順に従って、中間ジンバル角を経由するCMG1のジンバル角の運動軌道を演算する。
【0138】
ここで、本実施の形態3における姿勢制御装置10では、逆キネマティクス演算部19による逆キネマティクス演算を利用して、図12のステップS8における中間ジンバル角の演算を行うように構成していることを技術的特徴としている。
【0139】
以下、逆キネマティクス演算部19による逆キネマティクス演算を利用した中間ジンバル角の演算について、図13を参照しながら説明する。図13は、本発明の実施の形態3における宇宙機の姿勢制御装置10が、中間ジンバル角を演算する際の手順を示すフローチャートである。
【0140】
ステップS801において、運動計画部11は、ステップS7で演算した角運動量目標値を逆キネマティクス演算部19に出力する。続いて、ステップS802において、逆キネマティクス演算部19は、(n−3)個のジンバル角のフリーパラメータθfの値を設定する。
【0141】
ステップS803において、逆キネマティクス演算部19は、ステップS802で設定したフリーパラメータθfを用いて、運動計画部11から入力された角運動量目標値を実現するジンバル角の解を求める。
【0142】
ステップS804において、逆キネマティクス演算部19は、ステップS803で求めたジンバル角の解に対する評価関数の値を演算する。なお、評価関数とは、無数にある解の中で、どれがもっとも適切な解であるかを評価する指標のことであり、例えば、ジンバル角の大きさを表す指標やジンバル角の解の状態の特異状態からの隔たりを表す指標などが評価関数として用いられる。この他の指標を用いてもよいことは言うまでもない。
【0143】
ここで、ステップS804で用いられる評価関数の一例について説明する。ジンバル角の大きさを表す指標としての評価関数として、例えば、下式(10)のような評価関数Jθを用いることができる。ただし、式(10)では、CMG1の台数が4台である場合の評価関数を例示している。
【0144】
【数10】
【0145】
また、一般に、CMG1のジンバル角速度と、CMG1が搭載されている人工衛星に作用する姿勢制御トルクとの間には、下式(11)に示す関係式が成立する。
【0146】
【数11】
【0147】
ただし、式(11)において、θは、ジンバル角から構成されるベクトルであり、τは、人工衛星に作用する姿勢制御トルクである。また、行列Aは、ヤコビ行列と呼ばれ、各CMG1のジンバル角の関数として演算することができる。
【0148】
ここで、ヤコビ行列のランクが3の場合には、CMG1のジンバルを回転させることで任意のトルクを実現できるが、特定のジンバル角の組み合わせにおいてはランクが2となることがあり、ジンバル角を回転させても任意のトルクを実現できない場合が存在する。このような状態を一般に特異状態と呼ぶ。
【0149】
また、この特異状態からどれくらい隔たっているかの評価関数として、ヤコビ行列の条件数を用いることができる。すなわち、ジンバル角の解の状態の特異状態からの隔たりを表す指標としての評価関数として、例えば、下式(12)のような評価関数Jsを用いることができる。
【0150】
【数12】
【0151】
ただし、式(12)において、σmax(A)、σmin(A)は、それぞれヤコビ行列Aの最大固有値、最小固有値である。
【0152】
図13の説明に戻り、ステップS805において、逆キネマティクス演算部19は、フリーパラメータθfが設定範囲の全領域を動いたかどうかを探索する。ステップS805において、逆キネマティクス演算部19は、フリーパラメータθfが設定範囲の全領域を動いていないと判断した場合には、ステップS806の処理が実行される。
【0153】
ステップS806において、逆キネマティクス演算部19は、フリーパラメータθfの値を更新して、ステップS803に戻り、更新後のフリーパラメータθfを用いて、ステップS803以降の処理が再び実行される。
【0154】
一方、ステップS805において、逆キネマティクス演算部19は、フリーパラメータθfが設定範囲の全領域を動いたと判断した場合には、ステップS807において、現時点で得られているジンバル角の解の中で、評価関数を最小にする解を、最適解に近似する近似解とする。ただし、このようにステップS807で得られた近似解は、フリーパラメータθfの値の設定が離散的であるので、フリーパラメータθfの値を連続的に変化させた場合の最適解とは厳密にはいえない。
【0155】
そこで、このような近似解では最適解として十分でない可能性を考慮して、ステップS808が設けられている。ステップS808において、逆キネマティクス演算部19は、ニュートン法を用いて、ステップS807で得た近似解を修正し、修正した近似解を最適解とする。ただし、この場合、角運動量目標値を厳密に満たす解が近似解として得られているので、ニュートン法の収束が保証されることとなる。
【0156】
また、逆キネマティクス演算部19は、近似解を修正することで得られる最適解を中間ジンバル角とする。続いて、ステップS809において、一連の処理が終了となる。
【0157】
なお、ステップS807において、逆キネマティクス演算部19は、現時点で得られているジンバル角の解の中で、評価関数を最小にする解を最適解であるとして、その最適解を中間ジンバル角としてもよい。この場合、ステップS808を設ける必要はない。
【0158】
このように、最大角運動量よりも小さい角運動量目標値を実現するジンバル角の解を逆キネマティクス演算によって求め、求めたジンバル角の解に対して評価関数を用いて最適解を特定し、その最適解を中間ジンバル角としている。
【0159】
図12に示すステップS6からステップS10、および図13に示すステップS801からステップS809の演算は、処理回路101を用いて実現されてもよいし、プロセッサ102を用いて実現されてもよいし、独立した処理回路を用いて実現されてもよい。運動計画部11は、上記のステップを演算することで得られる最適な中間ジンバル角の解、およびジンバル角の運動軌道をメモリに記憶する。
【0160】
以上、本実施の形態3によれば、与えられたCMG全体の角運動量である、CMG全体が発生しうる最大角運動量よりも小さい第1の角運動量目標値を実現する各CMGのジンバル角の解を求め、演算した第1の角運動量目標値を実現する各CMGのジンバル角の解の中から、第1の評価関数を最小化する解を第1の最適解として選択し、選択した第1の最適解を各CMGの中間ジンバル角とするように構成する。
【0161】
これにより、CMG全体の角運動量目標値から、その角運動量目標値を満たす各CMGのジンバル角のすべての解を求めることができる。また、そのジンバル角の解の中から評価関数を用いて最適解を求めることで、適切な中間ジンバル角を得ることができ、その結果、姿勢変更時間の短縮およびCMGの特異点の回避につながる。
【0162】
実施の形態4.
本発明の実施の形態4では、逆キネマティクス演算部19による逆キネマティクス演算を利用して、ステアリング制御部15が姿勢制御トルクから各CMG1のジンバル角速度補正値を演算する場合について説明する。なお、本実施の形態4では、先の実施の形態1〜3と同様である点の説明を省略し、先の実施の形態1〜3と異なる点を中心に説明する。
【0163】
図14は、本発明の実施の形態4における宇宙機の姿勢制御装置10の構成を示すブロック図である。図15は、本発明の実施の形態4における宇宙機の姿勢制御装置10が、各CMG1のジンバル角速度補正値を演算する際の手順を示すフローチャートである。
【0164】
図15に示すように、ステアリング制御部15は、姿勢制御部14から姿勢制御トルクが与えられる(ステップS11)。ここで、この姿勢制御トルクをτとすると、CMG1全体の角運動量変化δhは、下式(13)で与えられる。
【0165】
【数13】
【0166】
ただし、式(13)において、Δtは、サンプリング時間であり、マイナス符号は、CMG1に働くトルクの反作用トルクが人工衛星に働くことによるものである。また、CMG1全体の角運動量の現在値をh0とすると、そのΔt後の角運動量目標値は、h0+δhで与えられる。
【0167】
ステアリング制御部15は、式(13)に従ってCMG1全体の角運動量変化δhを演算するとともに、演算した角運動量変化δhに対してCMG1全体の角運動量の現在値h0を加算することで角運動量目標値を演算する(ステップS12)。このように、ステアリング制御部15は、姿勢制御部14から入力された姿勢制御トルクから、CMG1全体の角運動量の微小変化分を演算し、CMG1全体の角運動量の現在値にその微小変化分を加えることで、角運動量目標値を演算する。また、ステアリング制御部15は、ステップS12で演算した角運動量目標値を逆キネマティクス演算部19に出力する。
【0168】
逆キネマティクス演算部19は、ステアリング制御部15から入力された角運動量目標値を実現する各CMG1のジンバル角の最適解を求める(ステップS13)。ここで、逆キネマティクス演算部19は、評価関数を用いて、先の図13のフローチャートの処理と同様の処理を行うことで、各CMG1のジンバル角の最適解を求める。すなわち、逆キネマティクス演算部19は、角運動量目標値を実現するジンバル角の解の中で、何らかの評価関数を最小化する解を、最適解とする。
【0169】
また、逆キネマティクス演算部19は、各CMG1のジンバル角の最適解をステアリング制御部15に出力する。
【0170】
続いて、ステアリング制御部15は、逆キネマティクス演算部19から入力された最適解(以下、最適解をθmと表記することがある)と、現在のジンバル角の値θ0との差であるθm−θ0を求め、その差のノルム||θm−θ0||と、設定値Δθとを比較する(ステップS14)。なお、設定値Δθは、ジンバル角速度補正値の大きさの最大値を定める量である。
【0171】
ステアリング制御部15は、ノルム||θm−θ0||が設定値Δθ未満である場合には、各CMG1のジンバル角速度補正値を、
【数14】
として設定し(ステップS15)、一連の処理を終了する(ステップS17)。
【0172】
一方、ステアリング制御部15は、ノルム||θm−θ0||が設定値Δθ以上である場合には、各CMG1のジンバル角速度補正値を、
【数15】
として設定し(ステップS16)、一連の処理を終了する(ステップS17)。
【0173】
ここで、ステップS13で用いられる評価関数の一例として、ノルム||θm−θ0||を用いることができる。この場合、ノルム||θm−θ0||において、現在のジンバル角θ0との差がなるべく小さくなるジンバル角の解を、最適解として選択すればよい。
【0174】
このように、CMG1全体の角運動量目標値を実現するジンバル角の解を逆キネマティクス演算によって求め、求めたジンバル角の解に対して評価関数を用いて最適解を特定し、その最適解を用いてジンバル角速度補正値を演算している。したがって、姿勢制御トルクからジンバル角速度補正値を演算する際にヤコビ行列の逆行列の得られないような特異状態になっても常に適切なジンバル角速度補正値を演算することができ、その結果、特異状態を自然に通過することが可能となる。なお、得られたジンバル角速度補正値を時間積分することで、ジンバル角補正値を得ることができる。
【0175】
図15に示すステップS11からステップS17の演算は、処理回路101を用いて実現されてもよいし、プロセッサ102を用いて実現されてもよいし、独立した処理回路を用いて実現されてもよい。ステアリング制御部15は、上記のステップを演算することで得られるジンバル角補正値およびジンバル角速度補正値をメモリに記憶する。
【0176】
以上、本実施の形態4によれば、与えられたCMG全体の角運動量である、姿勢制御トルクから演算されたCMG全体の角運動量の微小変化分とCMG全体の角運動量の現在値とを加えた第2の角運動量目標値を実現する各CMGのジンバル角の解の中から、第2の評価関数を最小化する解を第2の最適解として選択し、選択した第2の最適解に応じて各CMGのジンバル角速度補正値を演算するように構成する。
【0177】
これにより、CMG全体の角運動量目標値から、その角運動量目標値を満たす各CMGのジンバル角のすべての解を求めることができる。また、そのジンバル角の解の中から評価関数を用いて選択した解に応じて各CMGのジンバル角速度補正値を得ることができる。また、CMGが特異状態になっても、その特異状態を自然に通過するようなジンバル角速度補正値を得ることができ、その結果、姿勢制御系の信頼性の向上につながる。
【0178】
なお、以上のように、本実施の形態1〜4について個別に説明してきたが、本実施の形態1〜4の構成は、任意に組み合わせことが可能であり、その場合、各実施の形態の効果が重複して得られることは言うまでもない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
【国際調査報告】