冬/春学期振り返り(講義編)
Period:
無事に冬学期と春学期が終わり、一年目の講義を全て取り終えたので、忘れないうちに感想をまとめておこうと思います。秋学期編はこちら。
冬学期(1) AA200: Applied Aerodynamics
流体力学の基礎や翼理論、プロペラの設計論などについて幅広く学ぶクラス。様々な近似モデルとその適用先、ポテンシャル流の理論についてなどから授業が始まって、中盤はひたすら2次元や3次元の翼理論についてやって、最後ちょろっとプロペラ設計について学ぶ感じでした。課題は正直内容をあまり理解していなくてもプリントに載っている式をMATLABに実装すれば解けてしまったので、内容をきちんと深く理解できたかというと微妙です… (そういえば院試で圧縮流体に完全に山を張って勉強してたらポテンシャル流が出て流体爆死したことを思い出しました)。成績はAでした。
最終レポートでは東大時代の研究室で後輩がやっていた研究を参考にしつつ、高高度を飛行する柔軟な翼を持つ航空機 (High Altitude Long Endurance aircraft, HALE)の制御や設計についてまとめました。高高度を飛行する柔軟航空機は、低軌道衛星よりも高い解像度でリモートセンシングができる利点があり、また低軌道衛星と違って同じ場所近辺に留まることができるので将来の通信プラットフォームとしても期待されています。高高度を飛ぶのは風の影響を避けて燃費を良くするためです。しかし高高度では大気密度が低いので得られる揚力が小さいため翼を大きくする必要があり、構造重量も抑える必要があります。さらに長時間飛行を行うために推進に必要な動力源は太陽光発電によって確保するのですが、取り出せるpowerはあまり大きくないため翼の誘導抵抗をなるべく減らす必要があります。これらの結果として、要求を満たす航空機は必然的に柔軟で細長い翼を持つものになります。詳細は割愛しますが、このような機体はBody Freedom Flutter と呼ばれる不安定化現象を引き起こしてしまったりして、設計や制御の際には空力弾性を考慮した様々な配慮が必要となります。最終レポートではそれに関連する先行研究を色々と調べたりしてました。興味がある方向けに一応私が書いたレポートをここに貼っておきます。あと東大航空宇宙の森田助教が小型の実機を使った制御実験を色々とやられていて面白いです。
NASAのHALE実験機 (HELIOS)
冬学期(2) EE364A: Convex Optimization I
凸最適化の理論と応用について幅広く学ぶクラスで、100人を超える学生が受講するスタンフォードの名物講義。講師のBoyd教授 は最適化界隈で知らない人はいない程の超大御所の先生であることもあり、講義はとても分かりやすい上に内容も非常に面白く感動しました。ハードな講義であることでも有名で、2ヶ月ちょっとでBoyd教授の書いた教科書を一通り終わらせる上に、毎週平均8題くらいの演習問題が出て来て強制的に演習量を積まされます。ただその分Convex眼が養われて、期末試験を解くころには成長を実感できます。解きたい問題を凸最適化問題に落とし込んで高速に解くためのテクニックを色々学ぶことができ、今後の自身の研究にも色々応用できるであろう非常に有意義な内容だったと思います。期末試験は79/80取れましたが成績はAでした(レベル高い…).
凸最適化で計算できる宇宙機の最小燃料着陸軌道
春学期(1): AA222: Engineering Design Optimization
最適化やPOMDPの研究で有名なKochenderfer教授が教える講義で、様々な最適化アルゴリズムについて幅広く学びます。課題は最適化のコンペ方式 (5問の合計スコアで競う)になっていて、締め切り直前になると彼のラボの学生達が本気を出してきてすごいスコアを出してて面白かったです。(私はパラメータチューニングに苦戦して無難にBFGSで局所解に確実に収束させる逃げのムーブをかましていました)授業では彼の書いた最適化の教科書 を使うのですが、アルゴリズムの網羅性が凄くて読んでいて面白かったです。Kochenderfer教授は Life is POMDP
を座右の銘? にするぐらい不確定性が大好物なので、終盤はガウス過程や確率的近似モデル、さらに不確定性を考慮した最適化について重点的にやっていました。期末課題は最適化を含む問題を何か解けばなんでも良かったので、Factor Graphの最適化を使って宇宙機のナビゲーションを行う私の研究についてのレポートを書いて、無事Aを取って終了しました。いい授業だったと思います。
制約条件付きRosenbrock関数の最適化
春学期(2): AA203: Optimal and Learning Based Control
最適制御や強化学習について、最新のトピックも含めて幅広く学ぶ授業です。例年はロボティクス界のスター教授であるMarco Pavoneが教えているのですが、今年は彼がNVIDIAでラボを立ち上げているので代わりに彼のラボのポスドクのEdが教えていました(授業は割と早口ですが、質問に親身に答えてくれるとてもいい方です)。学期を通してLQRやモデル予測制御 (MPC) 、動的計画法、強化学習などが根底で全てつながっている事を実感できるような授業構成になっていました。課題は結構重くて採点も厳密で厳しいので、みんなでヒーヒー言いながらやってましたが総じていい演習になったと思います。ちなみにEdは Life is MPC
と言ってました。(私はこっちの方が好きです)
最終課題は3人の班で宇宙機の相対位置制御を Direct Shooting (Open-loop) や MPC, Sequatial Convex Programmingを使ってやって見る、というお題でやりました。宇宙機のダイナミクスは非線形がとても強く正面から脳筋でやろうとするととても難しいので、普通は適切な近似を入れてClosed-Formで解けるようなダイナミクスにして解いたりするのですが、あえてそういうことをせずに正面からぶつかろうというコンセプトです。状態量推定や制御の誤差なしでやってみるとMPCを使えば結構上手く行ったのですが、状態量の推定値が完璧でない場合などは割とロバストネスに難があり、結局あまり上手くいきませんでした。あと(半ばおふざけ的に)宇宙機にかかる太陽輻射圧や大気抵抗による摂動をニューラルネットワークで予測して制御に利用するということもやってみたのですが、残念な結果に終わりました。個人的にこのフィールドにいる人間としては中途半端な出来のレポートになってしまったのですが、色々な手法を試したのが気に入ってもらえたようで成績はA+でした。ここら辺の非線形性の効果は気になるので個人的に実験してみたいところです。
講義でカバーするトピックのロードマップ
まとめ
これで必修授業6つのうち4つを取り終え、今後余程のことがなければGPA3.8要件も問題なくクリアできそうなので少しほっとしています。夏は研究頑張ります。