We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bdotモードのタスクリストの組み方・磁気排他制御タイマーの状態によってはMTQが全く出力されないケースがあることが判明した。
Bdotモードの現状のタスクリストは以下である:
c2a-aobc/src/src_user/Settings/Modes/TaskLists/tl_bdot.c
Lines 13 to 36 in c8caecd
磁気制御がタスクリストに沿ってどのように実行されるかを理解するためには、各アプリの仕様と実装を正しく理解しておく必要がある。
OBSERVE
CONTROL
STANDBY
ノミナルケースである磁気センサにRM3100を使う場合は、それぞれの状態量が時間に沿って以下のように変化していくため、MTQが正しく出力される。
RM3100を使っているがstate timerのアップデートタイミングが50msズレている場合・MPU9250を使っている場合は、それぞれの状態量が時間に沿って以下のように変化していくため、MTQが出力されなくなってしまう。
magnetic_exclusive_control_timer->state_timer_ms
一旦は、タイミング関連のパラメータを調整して上記の問題が解決したら
なにかあれば
The text was updated successfully, but these errors were encountered:
@suzuki-toshihir0 「タイミング関連のパラメータの調整」にstepの変更も含まれるでしょうか?
#307 でのアプリタイムの調整と干渉しないかを心配しています。
Sorry, something went wrong.
@seki-hiro いえ、タスクリストの変更がないように対処します。具体的な対処は次の2点になる予定です。
observe_duration
c2a-aobc/src/src_user/Applications/UserDefined/AOCS/ExclusiveControl/magnetic_exclusive_control_timer.c
Lines 33 to 35 in c8caecd
c2a-aobc/src/src_user/Settings/SatelliteParameters/Sample/attitude_control_parameters.c
Line 11 in c8caecd
干渉しないということでよかったです。ありがとうございます。
#313 で対応したのでcloseする
suzuki-toshihir0
No branches or pull requests
詳細
Bdotモードのタスクリストの組み方・磁気排他制御タイマーの状態によってはMTQが全く出力されないケースがあることが判明した。
前提
Bdotモードの現状のタスクリストは以下である:
c2a-aobc/src/src_user/Settings/Modes/TaskLists/tl_bdot.c
Lines 13 to 36 in c8caecd
現状の仕様と実装
磁気制御がタスクリストに沿ってどのように実行されるかを理解するためには、各アプリの仕様と実装を正しく理解しておく必要がある。
OBSERVE
(磁気センサを使った磁場観測とそれに伴う磁場推定・出力目標値計算に使って良い時間枠)-->CONTROL
(計算した出力目標値を使ってMTQを出力するのに使って良い時間) -->STANDBY
(消磁待ちに使って良い時間)と順番に切り替わる。磁気排他制御タイマーは他のオブジェクトのGetter / Setterを叩いて操作することはせず、他のアプリが磁気排他制御タイマーのstateを見ることによって排他制御を実現する。OBSERVE
のときに限り、スパイクフィルタ(とLPF)を実行してAOCS managerの磁場ベクトル推定値に値をpushする。OBSERVE
のとき、AOCS managerの目標出力磁気モーメントを読み、3個のMTQに対してそれぞれが何秒間出力すればその磁気モーメントを実現できるかを計算する。続いて、stateがCONTROL
のとき、MTQ DIに磁気モーメント出力指令をする。MTQが出力されるケース
ノミナルケースである磁気センサにRM3100を使う場合は、それぞれの状態量が時間に沿って以下のように変化していくため、MTQが正しく出力される。
MTQが出力されないケース
RM3100を使っているがstate timerのアップデートタイミングが50msズレている場合・MPU9250を使っている場合は、それぞれの状態量が時間に沿って以下のように変化していくため、MTQが出力されなくなってしまう。
magnetic_exclusive_control_timer->state_timer_ms
が50となるケースmagnetic_exclusive_control_timer->state_timer_ms
が0となるケースmagnetic_exclusive_control_timer->state_timer_ms
が50となるケースclose条件
一旦は、タイミング関連のパラメータを調整して上記の問題が解決したら
備考
なにかあれば
The text was updated successfully, but these errors were encountered: