実践ロバスト制御を読んで②
本を読んでも全体像が見えなかったので、下記のようにまとめてみました。
実践ロバスト制御を読んで①
人工衛星は、環境や衛星のモデル自体に不確定性があるため、それらを考慮した制御が必要になります。 特に姿勢制御は、衛星が提供する観測や通信の品質に影響するため、この不確定性考慮が重要になります。 今まで、自分はあまりこの点について深く知見が無かったのですが、重要なので勉強しようと、下記を読み進めています。
https://www.amazon.co.jp/dp/4339033111/ref=cm_sw_r_tw_dp_CJE9N97GVBW6CY1YE490
実践ロバスト制御
今回は前半だけまとめますが、要点は下記のような感じ
1. ロバスト制御のシナリオ
ロバスト制御が重要となる、不確かさが影響する状況や、それらを表現するのに必要な基本的な概念について説明しています。
2. H∞制御理論
まず導入として、一般化プラントについて説明しています。一般化プラントとは、入出力信号を持つシステムの定義方法の一つで、H∞制御問題を画一的に扱うのに使います。
すなわち、いろんなシステムを、いろんな表現方法であらわすと、同じ式、アルゴリズムが適用できないので、この型にあてはめようというものです。
一般化プラントとの伝達関数Gについて、H∞ノルムという尺度、フィードバック制御を用いて内部安定化、H∞ノルム<γとするのがH∞制御問題です。
また、この章では、一般化プラントの伝達関数を状態空間表現する方法を説明しています。状態空間実現を行い、標準H∞制御問題にすることで、これまで提案されてきたH∞制御問題の解放アルゴリズムが使えます。
ただ、難しいのが、標準H∞制御問題におかれる過程を満たすように、一般化プラントを構成する必要があることで、必要に応じて変数の定義、伝達関数の追加定義が必要です。
3. 不確かさの表現とロバスト安定化
前章で、H∞制御の理論が説明されたが、ここの時点ではフィードバック制御を用いて内部安定化、H∞ノルム<γとすることができて、「不確かさにたいしてロバストに制御する」は実現できません。 その道具をこの章では説明していて、ノミナルモデルを摂動を加えて表現する方法、スモールゲインの定理:「内部安定となるための必要十分条件」を説明しています。 スモールゲインの定理により、内部安定化⇔ (感度関数、重み関数の積伝達関数)H∞ノルム<γ = 1という形になり、前述のH∞制御理論が使えるというわけです。
4. H∞制御設計
前章で内部安定とする方法はわかりましたが、それでは目標追従性や外乱抑制について議論できていない。そこで、感度関数に関しても、H∞ノルムの中で考慮できるようにする混合感度問題とすることで、ロバストかつ性能のよい制御系を見つける方法おw定義しています。そして、そのような閉ループ伝達関数を2章で用いた一般化プラントにするためのフィードバック系の定義方法を述べています。 あとは、実例、および、外乱に対する安定性を踏まえた修正混合感度問題について、説明を追加しています。
ざっと前半だけまとめました。実際の実装とか、その試験とかは今後やっていきたいです。
HW開発は**ができないから難しい。
はんだごてを4年ぶりくらいに手にして、Amazonで勢いで買った磁気浮上台のはんだ付けをやってみたのですが、あろうことか盛大に失敗しました。 一番重要な素子を反転して取り付け、外せないから無理やり引き抜こうとしたらダイオードをぶっ壊しました。 うーん、もう力じゃ修復不可能かな・・・これ・・・ しかも、反転して取り付けた状態で、電源おw入れてしまいましたとさ・・・どこが壊れているのやら。
こういう失敗をしてみると、なるほど、ハードウエアは難しいなぁと、落ち込みながらもハードウエアづくり体験に戻れた自分を嬉しく思います。 これを重ねることが、きっと最強エンジニアになれる可能性を上げるはず・・・。 それにしたって、ハードウエアはソフトウエアと違って、
- ctrl + zができない
- 試しにやってみて、ダメだったらすぐ修正
が利かないから難しいですね。ソフトウエアならエラーはいても数秒あれば、修復、再実行できる。 ハードウエアだと、素子が無ければ数時間、数日、あるいは数カ月だってかかる。 それや難しいなぁ・・・。
これを克服するのが、デジタルツインなんだろうけど、なるほど、単なるシミュレータではなく、今の状況、を考えないとデジタルに、デジタルの状況を、現実に、簡単にやり取りできないと意味がないわけだ。 これ、できたら面白いんだけどな・・・どうすればいいんでしょう。
たまに考えてみたいですね。 では。
Python ベースの簡易的な衛星3軸姿勢制御のシミュレーション
勉強がてら構築した衛星三軸姿勢制御のスクリプトです。下記で開発しています。
下記は姿勢を90deg回転させたときの結果です。
推定はGyro STTのカルマンフィルタで行っているのですが、微妙にバイアスが残ってしまっていて、何かしらバグがありそう・・・