人気ブログランキング | 話題のタグを見る

軌道設計に使っている最適化ツール  2005年

 軌道設計をしていると、関数の最小化問題 (非線形計画問題, NLP:Non-Linear Programming) を解く必要がしばしば生じる。私が今まで使って来た手法、ツールを簡単に振り返ってみる。

 最初に非線形計画問題を解く必要性を感じたのは、1982年頃の『液体アポジエンジンによる軌道制御の初期検討』においてである。この頃は、制約条件の必要性は小さく、制御変数(最適化のために調整するパラメータ)の数も数個程度であった。最初は等高線を描いて 2次元問題を解く事から始め、次に、微分情報を使わないシンプレックス法で 4次元の問題を解いた。

 1984年~1986年頃の『液体アポジエンジンによる最適制御の研究』では、低推力による長時間の軌道制御の最適化を対象とした。最大原理で定式化して得られる随伴微分方程式を使い、離散的なパラメータは非線形計画法で求める方法を中心に検討した。しかし、一般には随伴ベクトルの初期値の設定が難しい事、制約条件を扱い難い事、等のため、低推力の制御変数(連続量)を離散化して 全て非線形計画法で解く方向に傾いて行った。この頃は、まだ大型計算機の時代であり、富士通の科学ライブラリの中にあった準ニュートン法のサブルーチンを使用した。ここでも、まだ制約条件は扱えなかった。扱った制御変数の個数は、数十個であった。

 1986年~1987年にジェット推進研究所に1年間滞在した時に、『空力を利用した軌道面変更の最適化』の研究を行なった。その時はジェット推進研究所の Navigation Section にあった最適化ライブラリを使用したが、上記の富士通の準ニュートン法のサブルーチンと同程度のものであった。制約条件は考慮できなかった。後で知ったのであるが、実はこの頃には、逐次二次計画法(SQP法)という制約条件も考慮できる効率的な解法のアルゴリズム研究が進んでいた。

 次に私が知ったのは、乗数法という解法であった。等号制約関数と目的関数を組み合わせて拡張ラグランジュ関数を定義し、それを制約無しの準ニュートン法で解く方法である。不等号制約は、スラック変数を導入して等号制約に変換して解く。準ニュートン法のライブラリが使えれば、後は比較的簡単に自作できる方法だったので、非線形計画問題を解く必要が生じたら、乗数法のソフトを作って解いてみようと考えていた。この頃までの検討で非常に参考になったのが以下の文献である。
今野浩, 山下浩, "非線形計画法(OR ライブラリ - 6)," 日科技連出版社, 1978年.

 しかし、その後、1990年4月に地球観測センターに異動になり、仕事の内容や計算機環境が大きく変わったため、最適化ソフトの事は頭から消えていた。1995年4月に再び筑波宇宙センターに戻ってから、最適化との関わりが復活した。

 非線形計画問題の最も良い解法は乗数法であるとまだ思っていた私が、逐次二次計画法(SQP法: Sequential Quadratic Programming) を知ったのは、以下の本を近所の書店で見つけた時である。
茨木俊秀・福島雅夫著, "FORTRAN77 最適化プログラミング (岩波 コンピュータ サイエンス シリーズ)," 岩波書店, 1991年, 4800円.

 1996年11月にこの本を購入した。この時は、特に解きたい問題があった訳ではない。集録されているソフトのソース・リストも本の中に書かれているが、1万円で別売の 5インチ・フロッピーに格納されたソース・ファイルもあった。このフロッピーも購入しようと思ったが、岩波書店ではフロッピーは既に絶版になっていた。どこかの書店に在庫があればと思って、東京の大きな書店に電話して調べて頂いたが、どこにも無かった。

 2000年の暮れ頃、『ユリシーズ型太陽極軌道への軌道設計』を進めており、上記の SQP ソフトを使おうと思った。岩波書店にメールを送り、ソースの電子ファイルを何とか販売して頂けないかとお願いしたところ、残っていたソースファイルを 3.5インチのフロッピーにコピーして売って頂けた。ちょっと苦労したが、この SQP ソフトを使って、電気推進系によるユリシーズ型太陽極軌道への軌道設計を行なう事ができた。その次は、太陽発電衛星を LEO から GEO まで電気推進系を使ってスパイラル軌道で輸送する最適化問題を SQP ソフトを使って解いた。3番目の適用問題は、L2点リサジュ基準軌道の設計であった。現在は、L2点ハロー基準軌道の設計に用いている。

 ところが現在は、フロッピーだけでなく、書籍自体も在庫がなく、入手できなくなっている。とても良い本なので、是非、再発行して頂ければと思っている。

 この SQP ソフトは、計15000円で手に入った。SQP 法のソフトは、MATLAB の Optimization Toolbox の中や、大きな次元の問題も解ける高価な最適化ソフトのパッケージの中にも存在するが、とても高い。問題の次元が大きくなると、スパース行列の効率的な計算に対応した高価なツールでないと、計算時間が掛かり過ぎたり精度が出なかったりするようだが(私はまだ経験がない)、岩波の SQP ソフトでも、数百次元の問題であれば、問題はない。私は、まだ 300次元を超えた問題は扱った事がない。

 高価なソフトだけでなく、個人でも買える安価で性能の良いソフトが消えないことを祈りたい。

 最後に、2001年12月に調べた時点での疎な行列計算にも対応した逐次2 次計画法の情報を記しておく。現在のウェブサイトにリンクを貼っておいたが、以下の情報は 2001年当時に調べたものであり、現在は更新されている可能性があるので、関心をお持ちの方は各自で調べて頂きたい。

(1)GESOP(Graphical Environment for Simulation and Optimization)
 これは、Direct Multiple Shooting Method と Direct Collocation Method の両方が実装されており、NLP ソルバとして、疎な行列にも対応した SNOPT が使用されている。

(2)SNOPT
 SNOPT は約3000 次元まで解く事が出来る。SNOPT は単体でも Stanford Business Software, Inc. から発売されており、価格は6000 ドル(single CPU)、9000 ドル(Site)、30000 ドル(Company wide)である。アカデミック価格は350ドル(single CPU)と、個人でも買えそうな金額であった。

(3)SOCS
 ボーイング社からは、更に高性能の SOCS (Sparse Optimal Control Software) が発売されており、10 万次元以上まで解けるようである。SOCS のオブジェクト・コード・ライセンスは初年度 190 万円、年間更新料 78 万円である。

(4)NUOPT
 日本製のソフトでは、株式会社 数理計画が販売している NUOPT がある。独自の解法の内点法を用いており、数万次元の問題も解いている。価格は 80 万円、年間保守料 12 万円である。
by utashima | 2005-07-16 12:30 | 宇宙機の軌道設計/ 解析 | Trackback | Comments(4)
Commented by kodama at 2005-07-20 16:53 x
昨日の朝日の夕刊で紹介されてたのはこれかな。

http://astro.ysc.go.jp/orbitron.html
Commented by 歌島昌由 at 2005-07-20 19:32 x
軌道表示ソフトOrbitronですね。折角紹介して頂いたので、セットアップし、先日打ち上げたAstro-E2、Suzakuの軌道要素を探して表示してみました。確かTLE_NEW.txt(最近打ち上げられた衛星という意味)の中にありました。まだ、近地点高度が356kmでした。
Commented by kodama at 2005-07-21 09:42 x
Heavens-aboveにはまだありませんでした。

http://celestrak.com/NORAD/elements/tle-new.txt
Commented by utashima at 2005-07-23 19:19
Heavens-aboveでもOrbitronでも、約570km高度の円軌道になっている事を確認できました。7月21日の朝に軌道制御をしています。
http://www.jaxa.jp/missions/projects/sat/astronomy/astro_e2/index_j.html


<< 銭形の起源は? 観測ターゲットを自律的に割り出す衛星 >>