Twitterでおののきさんももやすがガイド鏡に言及されていて、タカsiさんが0.5秒ガイドに助けられているとコメント、更におののきさんがCGXが暴れることがある時に(速いガイドが)効果があると言っています。
私もCGX-Lでの赤経側で発振のように周期的に揺れが出る傾向があり、ガイド鏡のサンプリングレートを0.2秒にすると軽減したことがあります。
原因はある程度推測していたのですが、いまいち自信がなくそのときはブログ記事を一旦書いて、削除した覚えがあります。でもおののきさんも同じように、ガイドを速くしたら暴れを抑えられると書いているので、同じ現象かはわかりませんが、可能性の一つとして書いておこうと思います。
今回の周期的に揺れが大きくなる現象が、推測する「発振」だとして話を進めると、制御の言葉で言う「位相遅れ」というのを理解しなくてはいけません。制御に詳しい方や、回路などに詳しい方はこの時点ですでにピンときているかもしれません。
まず何か揺れているもの、例えば振り子を考えてみましょう。紐にぶら下げた質量、何でもいいですがここではすぐ横にあるMacのバッテリーで代用しましょう(本来は振り子ではありません(笑)。もし同じように試す場合は目的外使用ですので自己責任でお願いします。)
ケーブルにつられたバッテリーは、持っている根本の揺れに依存して、常に揺れています。特に振り子の長さだけによって決まる共振周波数あたりでは、揺れは増幅され大きく揺れます。
その揺れを抑えるために、あるセンサー(ここでは「目」)を用いてその揺れを観測し、揺れを抑えるようにアクチュエーター(ここでは空いている方の手の「指」)を用いてバッテリー本体に力を加えます。バッテリーが大きく揺れている時、目でその揺れを見て、その揺れが収まるように指で突いて力を加えてやり、それを何度かすることで徐々に揺れの振幅を小さくすることが可能です。
力を加えるタイミングに注目してみましょう。揺れを抑えるためには、「振り子が指に迫ってくる」時に力を加えているはずです。もしこのタイミングが遅れて「振り子が指から離れていく」時に力を加えると、揺れは収まるどころかどんどん大きくなっていくはずです。これが「発振」です。
もう少し考えます。この振り子の大きな共振周波数あたりでの揺れは、ある振幅と位相をもって揺れています。位相というのは1周期で360度となるような時間的なタイミングを表します。振り子が指から最も離れて、方向が反転する瞬間の位相を0度とします。振り子が指に迫ってきて、最も近づいて方向がさらに反転する瞬間が位相180度です。振り子の揺れを止めるためには、位相が180度になる手前で力を加える必要があります。位相が180度を超えて力を加えると「発振」するということです。この時の「180度になるどれくらい前」に力を加えているかというのを「位相余裕」と呼びます。通常位相余裕は数10度は欲しくて、0度に近づくほど発振に近くなります。
ここまでは共振周波数付近のみでの説明でしたが、実際は大きな揺れではないですが、振り子は共振周波数以上でも以下でも揺れています。常に速い細かい揺れがあるとかを想像してください。目でこの揺れを見るのは難しいかもしれませんが、それこそ望遠鏡などで拡大して見てやれば小さな揺れも見えますね。これらの速い揺れもやはり抑えてやりたいわけです。でも速い揺れに対しては反応も早くなくてはダメで、その反応が遅れると「位相余裕」がなくなっていきます。速い揺れに対して遅い力で抑えようとしても、反応が遅いために「位相余裕」がなくなり揺れが増幅される、これが「発振」です。
さて、これらのことを今回の赤道儀の周期的な揺れに置き換えてみましょう。まず、センサーはガイド鏡のCMOSカメラで、対象はガイド鏡で見たガイド星の位置になります。アクチュエーターは赤道儀についているモーターです。位相を遅らせる原因はさまざまなものがあります。
こうやってみると遅延だらけですが、この中で今回重要なのは、センサーから星の位置を特定するまでの遅延と、赤道儀のメカ的な遅延です。
まず、PHD2でのガイドのタイミングを0.5秒とか、0.2秒とか速くしたということは、カメラからの読み取りのサンプリングレート速くし、情報を速く取り入れるということに相当します。遅延が少なくなるので、位相余裕が食われにくくなります。
ではなぜCGXやCGX-L特有で揺れが問題になるのか?一つは大きくて重い赤道儀だからというのがあると思います。赤緯体よりは赤経体の方が(赤緯体自身も含むので)重いはずです。揺れなので慣性モーメントで議論すべきですが、当然赤経体の慣性モーメントも大きいです。慣性モーメントが大きいということは、外力に対して反応が遅いということを意味しているため、ガイド信号に対する応答も遅く、遅延の原因になり、位相余裕を食います。その他にCGXやCGX-L特有でメカ的に何かロスなどがあり、遅延を発生しているという可能性もあるかもしれません。
いずれにせよ、大きく重い赤道儀を駆動する場合、発振は起きやすいということは定性的にはそれほど間違ってはいないでしょう。
では解決策はというと、
とまあ、対処療法的にはいくつか解決策も考えることができるので、他にもアイデアがあれば試していきたいと思います。ただし、あくまでこの揺れが「発振」によるものだとしてですが。
あと、ここまで書いたことは古典制御の範囲で「線形性」を仮定しています。モーターを使った制御の場合は線形性は保証されません。モーター制御の話は詳しくないので、もしかしたら全然勘違いしたことを書いている可能性もあります。その場合はゴメンなさい。
今回議論した、「制御の位相余裕がないことによる発振」ではない可能性としては、何か周期的な機械的な歪みがあることが考えられますが、調べてみるとCGX-Lによくある現象の様です。系統的に何かCGX、CGX-Lにメカ的に問題がある可能性はありますが、状況によって大きく変わるというのはメカものというよりは、制御系と考えた方がスッキリします。
制御についてこのブログで扱ったことは今回が初めてかと思います。
ガイド制御ループの位相遅れが原因の、位相余裕の無さによる発振と考えるとかなりすっきりすると思いますが、まだ他のCGX系特有の別の理由の可能性もあり得ます。私のところでもすでに何度か再現していて、そこそこ再現性はありそうなので、もう少しじっくり見ていきたいと思います。
今回の話は古典制御のさわりみたいなものですが、理解しておくと望遠鏡にも色々役立つことは多いと思います。もし興味がある人がたくさんいるなろ、Zoomとかで勉強会を開くとかもいいのかもしれません。結構マニアックな話になると思いますが、そんな人いますかね?
ガイダースコープの整理
— おののきももやす@意識を低く保つ (@tjm8874) May 17, 2022
反射用、ADMリングでレールに2箇所固定
EdgeHD11にEvoguide50(240mm)+174
UNC20012にFMA180+290
屈折用
FMA135+290
SV165+290
ZWO30F4+120
・星像はやはり、FMAやEvoguideだとばっちりですなあ
・174は高いけど高感度、0.5秒ガイドも出来る pic.twitter.com/TGmYozDmO8
私もCGX-Lでの赤経側で発振のように周期的に揺れが出る傾向があり、ガイド鏡のサンプリングレートを0.2秒にすると軽減したことがあります。
原因はある程度推測していたのですが、いまいち自信がなくそのときはブログ記事を一旦書いて、削除した覚えがあります。でもおののきさんも同じように、ガイドを速くしたら暴れを抑えられると書いているので、同じ現象かはわかりませんが、可能性の一つとして書いておこうと思います。
発振のメカニズム
今回の周期的に揺れが大きくなる現象が、推測する「発振」だとして話を進めると、制御の言葉で言う「位相遅れ」というのを理解しなくてはいけません。制御に詳しい方や、回路などに詳しい方はこの時点ですでにピンときているかもしれません。
まず何か揺れているもの、例えば振り子を考えてみましょう。紐にぶら下げた質量、何でもいいですがここではすぐ横にあるMacのバッテリーで代用しましょう(本来は振り子ではありません(笑)。もし同じように試す場合は目的外使用ですので自己責任でお願いします。)
ケーブルにつられたバッテリーは、持っている根本の揺れに依存して、常に揺れています。特に振り子の長さだけによって決まる共振周波数あたりでは、揺れは増幅され大きく揺れます。
その揺れを抑えるために、あるセンサー(ここでは「目」)を用いてその揺れを観測し、揺れを抑えるようにアクチュエーター(ここでは空いている方の手の「指」)を用いてバッテリー本体に力を加えます。バッテリーが大きく揺れている時、目でその揺れを見て、その揺れが収まるように指で突いて力を加えてやり、それを何度かすることで徐々に揺れの振幅を小さくすることが可能です。
力を加えるタイミングに注目してみましょう。揺れを抑えるためには、「振り子が指に迫ってくる」時に力を加えているはずです。もしこのタイミングが遅れて「振り子が指から離れていく」時に力を加えると、揺れは収まるどころかどんどん大きくなっていくはずです。これが「発振」です。
位相余裕と発振
もう少し考えます。この振り子の大きな共振周波数あたりでの揺れは、ある振幅と位相をもって揺れています。位相というのは1周期で360度となるような時間的なタイミングを表します。振り子が指から最も離れて、方向が反転する瞬間の位相を0度とします。振り子が指に迫ってきて、最も近づいて方向がさらに反転する瞬間が位相180度です。振り子の揺れを止めるためには、位相が180度になる手前で力を加える必要があります。位相が180度を超えて力を加えると「発振」するということです。この時の「180度になるどれくらい前」に力を加えているかというのを「位相余裕」と呼びます。通常位相余裕は数10度は欲しくて、0度に近づくほど発振に近くなります。
ここまでは共振周波数付近のみでの説明でしたが、実際は大きな揺れではないですが、振り子は共振周波数以上でも以下でも揺れています。常に速い細かい揺れがあるとかを想像してください。目でこの揺れを見るのは難しいかもしれませんが、それこそ望遠鏡などで拡大して見てやれば小さな揺れも見えますね。これらの速い揺れもやはり抑えてやりたいわけです。でも速い揺れに対しては反応も早くなくてはダメで、その反応が遅れると「位相余裕」がなくなっていきます。速い揺れに対して遅い力で抑えようとしても、反応が遅いために「位相余裕」がなくなり揺れが増幅される、これが「発振」です。
赤道儀のガイド制御ループでの遅延
さて、これらのことを今回の赤道儀の周期的な揺れに置き換えてみましょう。まず、センサーはガイド鏡のCMOSカメラで、対象はガイド鏡で見たガイド星の位置になります。アクチュエーターは赤道儀についているモーターです。位相を遅らせる原因はさまざまなものがあります。
- まず、カメラで星を見てPCに取り込むまでに時間がかかります。時間の遅延になるので位相余裕を食います。
- カメラの画像から星の位置を計算をするのに時間がかかります。ここでも位相余裕を食います。
- その位置をもとに、どうフィードバックフィルターを設計して赤道儀に返すか(PHD2のパラメータ調整に相当)ですが、フィルターの設定度合いによって遅延が起きます。
- モーターは信号が来て初めて動くので、そこでも当然遅延が発生します。
- モーターが動いても、実際の赤道儀が反応するまでには有限の時間が必要なので、ここでも遅延が発生します。
では何が原因か?
こうやってみると遅延だらけですが、この中で今回重要なのは、センサーから星の位置を特定するまでの遅延と、赤道儀のメカ的な遅延です。
まず、PHD2でのガイドのタイミングを0.5秒とか、0.2秒とか速くしたということは、カメラからの読み取りのサンプリングレート速くし、情報を速く取り入れるということに相当します。遅延が少なくなるので、位相余裕が食われにくくなります。
ではなぜCGXやCGX-L特有で揺れが問題になるのか?一つは大きくて重い赤道儀だからというのがあると思います。赤緯体よりは赤経体の方が(赤緯体自身も含むので)重いはずです。揺れなので慣性モーメントで議論すべきですが、当然赤経体の慣性モーメントも大きいです。慣性モーメントが大きいということは、外力に対して反応が遅いということを意味しているため、ガイド信号に対する応答も遅く、遅延の原因になり、位相余裕を食います。その他にCGXやCGX-L特有でメカ的に何かロスなどがあり、遅延を発生しているという可能性もあるかもしれません。
いずれにせよ、大きく重い赤道儀を駆動する場合、発振は起きやすいということは定性的にはそれほど間違ってはいないでしょう。
解決策の例
では解決策はというと、
- 応答を速くすることができる場所でできるだけ速くする。今回はカメラの取り込みのレートを、1秒とかから0.5秒や0.2秒と、2倍から5倍くらい速くしたこと。
- もう一つは、制御全体のゲインを下げることです。これはPHD2の「Agressiveness」を下げるとかでしょうか?結局トータルのゲインは赤道儀自身の応答(周波数で測った伝達関数)を含むので、PHD2の一つのパラメータだけで調整できるものでもありません。いずれにせよ、制御が効いている周波数帯域で位相余裕が残っていればいいわけですから、制御帯域を狭め位相余裕が残っている遅い周波数帯だけで制御するというセンスです
とまあ、対処療法的にはいくつか解決策も考えることができるので、他にもアイデアがあれば試していきたいと思います。ただし、あくまでこの揺れが「発振」によるものだとしてですが。
少し冷静に、発振でない可能性も
あと、ここまで書いたことは古典制御の範囲で「線形性」を仮定しています。モーターを使った制御の場合は線形性は保証されません。モーター制御の話は詳しくないので、もしかしたら全然勘違いしたことを書いている可能性もあります。その場合はゴメンなさい。
今回議論した、「制御の位相余裕がないことによる発振」ではない可能性としては、何か周期的な機械的な歪みがあることが考えられますが、調べてみるとCGX-Lによくある現象の様です。系統的に何かCGX、CGX-Lにメカ的に問題がある可能性はありますが、状況によって大きく変わるというのはメカものというよりは、制御系と考えた方がスッキリします。
まとめ
制御についてこのブログで扱ったことは今回が初めてかと思います。
ガイド制御ループの位相遅れが原因の、位相余裕の無さによる発振と考えるとかなりすっきりすると思いますが、まだ他のCGX系特有の別の理由の可能性もあり得ます。私のところでもすでに何度か再現していて、そこそこ再現性はありそうなので、もう少しじっくり見ていきたいと思います。
今回の話は古典制御のさわりみたいなものですが、理解しておくと望遠鏡にも色々役立つことは多いと思います。もし興味がある人がたくさんいるなろ、Zoomとかで勉強会を開くとかもいいのかもしれません。結構マニアックな話になると思いますが、そんな人いますかね?