シミュレーション中にSimscape Multibodyの​ジョイントブロックの​設定値を変更したい。

7 ビュー (過去 30 日間)
Ryo
Ryo 2023 年 12 月 29 日
コメント済み: Ryo 2024 年 1 月 8 日
お世話になっております。
現在、Simscape Multibodyを使ったモデル化に取り組んでいます。
具体的には、楽器の弦が張力により固有値が変わるように、ばね乗数が一定に定まらず、なんらかの式で表現される様なばね乗数を実装できないかと考えています。
(ジョイントで提議するパラメータをシミュレーション中に変更したい)
Matlab Functionブロックを用いて、ワークスペース変数やモデル変数を変更すればなんとかなるかとも思ったのですが、思ったように計算できていないのが実状です。
他になにか良い方法がありましたらご教示下さい。
よろしくお願いいたします。

採用された回答

Toshinobu Shintai
Toshinobu Shintai 2024 年 1 月 3 日
「Translational Multibody Interface」「Rotational Multibody Interface」などを使ってみてはいかがでしょうか。以下リンク先の例題にありますように、併進、回転運動ドメインと繋ぐことができ、そちらでばね定数などを可変にすることができます。
可変ばねブロックは、Simscape Drivelineになりますが、以下にあります。
  5 件のコメント
Toshinobu Shintai
Toshinobu Shintai 2024 年 1 月 4 日
「Simscape」の基本機能として、カスタムブロックを作成することができます。そちらを用いれば、少なくとも「Simscape Driveline」を用いなくてもよくなりますが、いかがでしょうか。
以下の投稿画像にて、その手順が紹介されています。
通常の「Translational Spring」のソースコードをコピーして改変し、ばね定数を可変にしたカスタムブロックを作成することができます。
Ryo
Ryo 2024 年 1 月 8 日
なるほど、カスタムブロックを作成するという方法もあるんですね。
現在、実装したいブロックがカスタムできないものだったのですが、今後他の用途で必要になった場合葉この方法を採用したいと思います。
ありがとうございました。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeApplications についてさらに検索

製品


リリース

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!