Simscape Multibodyで​Jointの動きをプ​ログラミングする方法

こんにちは.
私は,現在Simscape Multibodyを使ってRevolute Jointを用いたアクチュエータを作成しているのですが,C言語で関節の動きを制御しようとしています.
Cylindrical Jointの回転方向にプログラミングでトルクを入力したいのですが,どのブロックを接続すればいいか分かりません.無題.jpg

 採用された回答

Toshinobu Shintai
Toshinobu Shintai 2019 年 9 月 9 日

0 投票

添付のように、「Simulink-PS Converter」を用いることで、通常のSimulinkの信号を接続することができます。添付のサンプルではConstantブロックを接続していますが、それ以外のSimulinkの信号を扱うブロックからも接続できます。
もしSimulink内にC言語のコードを取り込んで制御したいということであれば、S-Functionを用いると出来るようになります。
例としては以下のS-Function Builderをご確認ください。

10 件のコメント

minato tohjima
minato tohjima 2019 年 9 月 10 日
S-Function Bilderを使ったところ動かすことができました!ありがとうございます.
ちなみに上図のCylindricalで角度データを観測したいのですが,なにか方法はありますでしょうか?
Toshinobu Shintai
Toshinobu Shintai 2019 年 9 月 10 日
添付画像のようにCylindrical Jointで「Z Revolute Primitive (Rz)」「Sensing」「Position」にチェックを入れてください。添付モデルのように信号が出力されます。単位はラジアンです。
言い忘れていましたが、モデルのバージョンR2019aです。
minato tohjima
minato tohjima 2019 年 9 月 10 日
度々ありがとうございます.観測した角度をもう一度S-Functionに入力することはできるでしょうか?
Toshinobu Shintai
Toshinobu Shintai 2019 年 9 月 10 日
S-Function Builderをお使いでしたら、添付画像のように自由に入力変数( = ブロックの入力ポート)を増やすことができますが、この方法で問題ありませんでしょうか。
minato tohjima
minato tohjima 2019 年 9 月 10 日
添付画像の通り,入力ポートを増やして実行してみます.完了まで数時間かかるようなので,この方法の成否はまた明日以降ご報告させていただきます.
本日は若輩者の質問に付き合っていただき誠にありがとうございます.
minato tohjima
minato tohjima 2019 年 9 月 17 日
こんにちは,遅ればせながらアクチュエータの動作に成功しました.お力添えありがとうございます.
疑問が尽きず申し訳ないのですが,反発係数を導入したいと考えています.物体が落下してきて床に衝突する際のものです.この機能をもったブロックはありますでしょうか?または,Simscapeのジョイントの「Actuation」→「Motion」で入力ができますでしょうか?
Toshinobu Shintai
Toshinobu Shintai 2019 年 9 月 17 日
物体同士の接触力をモデル化したいということでしょうか。
その場合、先日リリースされましたR2019bにて可能になりました。以下のリンク先に接触力を用いたサンプルモデルがありますのでご確認ください。
minato tohjima
minato tohjima 2019 年 9 月 18 日
2019bをダウンロードしてサンプルモデルを使用してみました.
一般的なSolidではできるのですが,File SolidではExportが出てきません.
CADからモデルをインポートして使っているので,File Solidになってしまいます.なにかいい方法はないでしょうか?
Toshinobu Shintai
Toshinobu Shintai 2019 年 9 月 18 日
申し訳ありません。
R2019b時点では「Brick」「Cylinder」「Sphere」のみ対応していまして、File Solidは未対応です。
接触部分のみを上記形状に置き換えるか、付け足すなどをして対応していただく必要があります。
minato tohjima
minato tohjima 2019 年 9 月 20 日
対応していただき,ありがとうございます.
複雑な形状なので,ご助言通り簡単な形状のものを付け足します

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

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!