Skip to content
New issue

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

Add flexible structure model #639

Merged
merged 21 commits into from
Jun 7, 2024

Conversation

TomokiMochizuki
Copy link
Member

@TomokiMochizuki TomokiMochizuki commented Apr 17, 2024

Related issues

#17

Description

This PR aims to add a flexible structure model, i.e. flexible boom or flexible SAP.

image

For the modelling of the flexible structure model, this PR suggests to use a relatively simple dynamics model proposed in the research conductec by Iwata et al.
https://ntrs.nasa.gov/citations/20080012649

$$(I_b + I_p)\ddot{\psi}_b + I_p \ddot{\psi}_d = T_c \tag{1}$$ $$I_p(\ddot{\psi}_b + \ddot{\psi}_d) + c_p\dot{\psi}_d + k_p\psi_d = 0 \tag{2}$$

Equations (1) and (2) approximate the following terms as microterms.

$$\dot{\psi}_b \times \{ (I_b + I_p) \dot{\psi}_b\},\, \textrm{Angular momentum} \tag{3}$$

When considering the term written in (3), the Equation (1) can be rewritten as :

$$(I_b + I_p)\ddot{\psi}_b + I_p \ddot{\psi}_d + \dot{\psi}_b \times \{(I_b + I_p)\dot{\psi}_b\} + (\textrm{Angular momentum})= T_c \tag{4}$$

Therefore, combination of Equations (2) and (4) helps construct the spacecraft dynamics model with a flexible structure.

Variables

$I_b$: Inertia moment of spacecraft structure (without flexible structure)
$I_p$: Inertia moment of a flexible structure of the spacecraft
$\psi_b$: Attitude angle of the spacecraft based on the inertia frame
$\psi_d$: Bending angle of the flexible structure
$T_c$: Torque affecting spacecraft
$c_p$: Dumping coefficient of the flexible structure
$k_p$: String constant of the flexible structure

Test results

  • $\omega_p = 4.06 \times 2\pi$ [rad/s]
  • $\zeta_p = 0.05$
    image

where the torque is set to the following values:
image

Comparison between matlab simulation and S2E simulation:
image

Even after changing the calculation method (using libra::numerical_integrator library), the outcome looks like the same.
image

Verification results of the comment (#639 (comment))

  • Verified.

Impact

Describe the scope of influence of the changes, e.g., The behavior of feature ** changes.

Supplementary information

Provide any supplementary information.

@TomokiMochizuki TomokiMochizuki added the enhancement New feature or request label Apr 17, 2024
@TomokiMochizuki TomokiMochizuki self-assigned this Apr 17, 2024
@TomokiMochizuki TomokiMochizuki requested review from sksat and a team as code owners April 17, 2024 03:04
@TomokiMochizuki TomokiMochizuki requested review from 200km, seki-hiro, suzuki-toshihir0, t-hosonuma and conjikidow and removed request for a team April 17, 2024 03:04
Copy link
Member

@200km 200km left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

中身の詳細はミーティングしてお聞きしたいので、ひとまず外部とのIFに当たる部分についてコメント記入しました。

data/sample/initialize_files/sample_structure.ini Outdated Show resolved Hide resolved
data/sample/initialize_files/sample_structure.ini Outdated Show resolved Hide resolved
data/sample/initialize_files/sample_structure.ini Outdated Show resolved Hide resolved
data/sample/initialize_files/sample_structure.ini Outdated Show resolved Hide resolved
src/dynamics/attitude/attitude_rk4.cpp Outdated Show resolved Hide resolved
@200km 200km linked an issue Apr 18, 2024 that may be closed by this pull request
@suzuki-toshihir0
Copy link
Member

@TomokiMochizuki
ミーティングの調整はお願いします 🙏
ミーティングの前に今実装しようとしている内容の整理はしておきたいので、PR descriptionは丁寧に書いてもらえると嬉しいです。

@TomokiMochizuki
Copy link
Member Author

@TomokiMochizuki ミーティングの調整はお願いします 🙏 ミーティングの前に今実装しようとしている内容の整理はしておきたいので、PR descriptionは丁寧に書いてもらえると嬉しいです。

了解です。
今週は予定があるので、来週以降で調整しますが、日程調整はしばしお待ち下さい。
(また、日程調整はSlackにてさせていただきます。)

@TomokiMochizuki TomokiMochizuki force-pushed the feature/add_simple_flexible_structure branch 6 times, most recently from 5227e41 to 2c9b9b7 Compare April 22, 2024 00:36
@TomokiMochizuki
Copy link
Member Author

ミーティングの結果、Attitudeフォルダに柔軟構造モデルが追加された姿勢伝搬クラスを新たに作る方向になった。

@TomokiMochizuki
Copy link
Member Author

ミーティングの結果、Attitudeフォルダに柔軟構造モデルが追加された姿勢伝搬クラスを新たに作る方向になった。

@200km @suzuki-toshihir0
新しいcpp/hppファイルの名前ですが、attitude_flexible_structure_vibration.cpp/hppでいかがでしょう?

@suzuki-toshihir0
Copy link
Member

flexible_structure だと例えば「膜面の柔軟構造は含むのか?」とか「高次の振動は含むのか?」とかがあってまだ名前が広く、そこがMTG中で問題になっていたのだと理解しています。
「バネマスダンパ系で近似された1次元ブーム」が本質で、そこを(なるべく短く)表現した命名がいいと思います(モデルに名前がついていない以上、性質で命名せざるを得ないですがそれは仕方ないかなと)。

@TomokiMochizuki
Copy link
Member Author

TomokiMochizuki commented Apr 22, 2024

flexible_structure だと例えば「膜面の柔軟構造は含むのか?」とか「高次の振動は含むのか?」とかがあってまだ名前が広く、そこがMTG中で問題になっていたのだと理解しています。 「バネマスダンパ系で近似された1次元ブーム」が本質で、そこを(なるべく短く)表現した命名がいいと思います(モデルに名前がついていない以上、性質で命名せざるを得ないですがそれは仕方ないかなと)。

確かにそうですね。
attitude_ one_dimensional_vibration.cpp/hpp
とかですかね?

これ以上短くする手法があまり思いつかなかったです。

@suzuki-toshihir0
Copy link
Member

suzuki-toshihir0 commented Apr 22, 2024

正直僕も現状あまり良い命名は思いついてないです(すみません)

  • one_dimensional だと、何が一次元なのかが不明瞭になってしまうと思っています。モデルは1次元梁ですが、振動方向は2方向あるので......
  • 片持ち梁は cantilever なので、このへんを使うと良さそう( beam は "光線" と混同しやすいし、どういう支え方の梁になっているかも不明だな、と思ってました)
  • バネマスダンパ系は略すと SMD model ですが、S2Eの略語使用ポリシーには引っかかりそうですね。第一「どういう手法でモデル化しているか」で命名するのは性質を列挙しただけで命名といいがたいため、(言っておいてなんなんですが)やめたほうが良い気がしてきました。

そのあたりを踏まえて、今の自分なら attitude_with_cantilever_vibration_model とかで妥協する気がします。modelとかvibrationとかは長さに応じて削ってもいいかなと

@TomokiMochizuki
Copy link
Member Author

TomokiMochizuki commented Apr 25, 2024

正直僕も現状あまり良い命名は思いついてないです(すみません)

  • one_dimensional だと、何が一次元なのかが不明瞭になってしまうと思っています。モデルは1次元梁ですが、振動方向は2方向あるので......
  • 片持ち梁は cantilever なので、このへんを使うと良さそう( beam は "光線" と混同しやすいし、どういう支え方の梁になっているかも不明だな、と思ってました)
  • バネマスダンパ系は略すと SMD model ですが、S2Eの略語使用ポリシーには引っかかりそうですね。第一「どういう手法でモデル化しているか」で命名するのは性質を列挙しただけで命名といいがたいため、(言っておいてなんなんですが)やめたほうが良い気がしてきました。

そのあたりを踏まえて、今の自分なら attitude_with_cantilever_vibration_model とかで妥協する気がします。modelとかvibrationとかは長さに応じて削ってもいいかなと

とりあえずattitude_with_cantilever_vibrationで実装してみます (modelは要らない気がするので)

@TomokiMochizuki TomokiMochizuki force-pushed the feature/add_simple_flexible_structure branch from 485bb79 to b77faa3 Compare April 25, 2024 03:47
@TomokiMochizuki
Copy link
Member Author

#415, #483 のPRにあるnumerical integrationをどのように導入するかわからなかったため、とりあえずRK4のアルゴリズムを実装してみました。

@TomokiMochizuki
Copy link
Member Author

TomokiMochizuki commented May 13, 2024

私もちゃんとレビューしたいので、マージはまだしないでください。

@200km
お時間があるときでいいので、こちらのPRをレビュー頂きたいです。
MatlabとS2Eのシミュレーションの挙動が一致しているので、特に問題はないと思っています。

@TomokiMochizuki
Copy link
Member Author

@200km
こちらのレビューをお願いできないでしょうか?

@200km
Copy link
Member

200km commented Jun 4, 2024

遅くなりすみません。忙しいのが落ち着いたのでレビュー開始します。

@200km 200km added priority::high priorityg high minor update add functionality in a backwards compatible manner labels Jun 4, 2024
@TomokiMochizuki
Copy link
Member Author

この件ですが、複数の初期条件でシミュレーションを回し、問題なく動作することが確認されたので動作検証結果を簡単に記載しておきました。

Copy link
Member

@200km 200km left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

まだ途中ですが、一旦コメントです。

@200km 200km added the dynamics dynamics calculation label Jun 6, 2024
Copy link
Member

@200km 200km left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

昨日の続きのコメントをつけました。

Copy link
Member

@200km 200km left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

修正ありがとうございます。

@TomokiMochizuki TomokiMochizuki merged commit f3e13c3 into develop Jun 7, 2024
12 checks passed
@TomokiMochizuki TomokiMochizuki deleted the feature/add_simple_flexible_structure branch June 7, 2024 00:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dynamics dynamics calculation enhancement New feature or request minor update add functionality in a backwards compatible manner priority::high priorityg high
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Add flexible structure model
3 participants