可とう体のモデル化

添付のURLの計算した
  • Origins: arm.P
  • Stiffness Matrix: arm.K(1:24,1:24)
  • Mass Matrix: arm.M(1:24,1:24)
  • Damping Matrix: arm.C(1:24,1:24)
をReduced Order Flexible Solidにインポートすると思うのですが,自分で作成したSimulinkモデルにてReduced Order Flexible Solidを複数使いたい場合上記の4つの計算結果をそれぞれどこかに保存して参照しなければいけないのでしょうか?また使うReduced Order Flexible Solidの数の分だけ上記の4つの要素を一気に計算するには同じコードを並べて最初のstlファイルを変えて関数名を変更すればよろしいでしょうか?教えていただけると幸いです.

Answers (1)

Yoko
Yoko on 2 Sep 2021

0 votes

1つ目の質問については,arm という変数を,MAT-ファイル,もしくはモデルワークスペースなどに保存しておくことで,Simulink モデルが動かせるようになります.4つの計算結果は,arm という構造体変数の中に格納されているので,保存するのは arm という変数だけで大丈夫です.
また,2つ目の質問,STL ファイルを変えて,複数の要素を一気に計算されたい件について.URL にある下記手順について,要素毎に異なる場合は,その情報も別途指定する必要があります.
手順 2: インターフェイス座標系の場所の指定
手順 3: 有限要素メッシュの作成
手順 4: インターフェイス座標系用の多点拘束の設定
手順のスクリプトを関数化して,変更が必要な情報を入力引数で指定することで,まとまった処理が可能になるかと思います.

12 Comments

Akio Tsukamoto
Akio Tsukamoto on 3 Sep 2021
ご回答ありがとうございます.
手順2に関しては各部材の接点の座標を定義する.
手順3は手順1にてヤング率,ポアソン比,質量密度を定義しておけば変更点はないでしょうか?
また手順4の変更点はfaceIDsの部分のみでしょうか?faceIDsに関してなのですが,例を見ると接点が3つあるため面が3つ定義されていると思うのですが,部材によって接点が2つや3つになった場合どのような順番で定義すればよろしいでしょうか?
度重なる質問で申し訳ございませんが,お答えいただけると助かります.
Yoko
Yoko on 3 Sep 2021
手順 2,3 に関しては,それで問題ないと思います.
手順4 は,faceIDs のみとなります.ヘルプドキュメントの faceID のコメントにも書いてありますが,ID は,origins で定義した座標に対応する face 番号を順番に設定します.
faceIDs = [1,27,23]; % List in the same order as the interface frame origins
Akio Tsukamoto
Akio Tsukamoto on 29 Sep 2021
時間が空いての質問で申し訳ございません.faceIDsに関してなのですが,インターフェイス座用の番号が回転などさせてみても見づらい部分などは部材の場所をクリックしたりすれば番号が表示されるなどの機能はありますでしょうか?また定義する順番はorisinsとfaceIDsで順番をそろえれば問題ないでしょうか?
Yoko
Yoko on 12 Oct 2021
こちらこそ,返信に気付かず遅くなってすみませんでした.定義する順番は,origin ご faceIDs の順番を揃えれば OK です.
なお,部材の場所をクリックして番号を表示させる機能は残念ながらありません.. 現状,URL にあるコマンドを参考に,ID を指定して場所をハイライトさせる方法で部材の場所と ID をご確認頂ければと思います.
Akio Tsukamoto
Akio Tsukamoto on 13 Oct 2021
ご回答ありがとうございます.定義する順番の件は順番通り定義したら解決できたのですが,添付の写真のようなインターフェイス座標が5,6個ある部材をモデル化しようとしたら添付の写真のようなエラーが発生してしまいました.インターフェイス座標が少ないモデル化したいものは上手く実行できたのですが,3個以上になるとエラーが発生するという状況です.このエラーを解決するためにはどうすればよろしいでしょうか?
Akio Tsukamoto
Akio Tsukamoto on 13 Oct 2021
reduceの部分がエラーしているようなのですが,添付の写真のように113行しかコードがないのに123行がエラーと書かれているのも何故でしょうか?
Yoko
Yoko on 13 Oct 2021
エラーメッセージからは判断がしづらいところですが,FEM オブジェクト (feModel)に指定する,インターフェースの座標と,該当する faceID は 1対1対応しておりますでしょうか?
スクリーンショットを見ると,numFrames という変数が値が 3 となっており,この変数を使用している場合は,インターフェースの座標の数と一致していない可能性があるかと思いました.
なお,reduce の部分のエラーは,reduce 関数の 123 行目がエラーであることを指しています.
Akio Tsukamoto
Akio Tsukamoto on 13 Oct 2021
インターフェイス座標とfaceIDは添付の写真のように対応するように定義しております.同じstlファイルで座標が3つの場合と4つの場合で試したのですが同じエラーが発生しました.
添付のメッシュの写真なのですが,赤い部分の右側が色がついてないのですがここは別の面という扱いなのでしょうか?側面のねじなどの固定部までインターフェイス座標と見なすと座標数が多くなるのですが,そのあたりはどのように定義すればよろしいでしょうか?
Akio Tsukamoto
Akio Tsukamoto on 13 Oct 2021
続けての質問で申し訳ないのですが,添付の写真のようなインターフェイス座標が2個位しかないものでは無効なジオメトリです.メッシュとジオメトリの間の関連性を計算できないとのエラーが出てしまいます.複数個のモデルの可とう化を試したのですが,3個以下だと上記のようなエラーが発生して4個を越えるとreduce関数がエラーするというのが現状です.それぞれのエラーにはどのように対応すれば良いか教えていただけますでしょうか?
Yoko
Yoko on 31 Oct 2021
2つ目の,無効なジオメトリと出るエラーは,インターフェースの座標を定義する前の,メッシュ生成時にエラーが発生しています.メッシュ生成時に座標とうまく関連づけられないというエラーで,インポートしているファイル自体に問題がある可能性があります.
Figure の画像を見ると,形状データというよりは,既にメッシュが切られたデータのようにも見えます.MATLAB にインポートする前の STL ファイルを形状データとして加工できるようでしたら,加工してからインポートを試されては如何でしょうか.
Yoko
Yoko on 31 Oct 2021
1つ目のエラーについて,おそらく特定のインターフェース座標と faceID を定義することで,発生しているることが考えられます.該当する場所(座標,Face)がどこか特定し,意図通りの設定になっているか確認するところから始めることをお勧めします.
Akio Tsukamoto
Akio Tsukamoto on 1 Nov 2021
ご回答ありがとうございます.reduce関数がエラーしているのがスクリーンショット(218)で無効なジオメトリとエラーが出るのがスクリーンショット(216),(217)になります.インポート前のSTLファイルを加工すれば上手くいくものなのでしょうか?他にもいくつか同じ手順でSTEPファイルから変換したものをモデル化したときはエラーは発生しませんでした.

Sign in to comment.

Products

Release

R2021a

Asked:

on 31 Aug 2021

Commented:

on 1 Nov 2021

Community Treasure Hunt

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

Start Hunting!