メインコンテンツ

Flexible Body Model Builder

R2026b

柔軟体用の低次元化されたモデルのデータを生成する

R2023a 以降

説明

Flexible Body Model Builder アプリは、クレイグ-バンプトンの手法 [1] を使用して、柔軟体用の低次元化されたモデル (ROM) のデータを生成します。このアプリを使用して、柔軟体のジオメトリ、材料特性、およびインターフェイス フレームを指定できます。低次元化されたモデルの精度を制御するために、メッシュ パラメーターおよびモデル低次元化の設定を指定できます。

このアプリは、ROM データを FlexibleBody という名前の構造体として MAT ファイルに保存します。ROM データには、剛性行列と質量行列、インターフェイス フレームの原点と向き、および柔軟体の変形した形状を表示するためのグラフィカル情報が含まれます。この構造体のフィールドを使用して Reduced Order Flexible Solid ブロックの対応するパラメーターを指定し、柔軟体をモデル化できます。

このアプリには、ROM データを生成するための Partial Differential Equation Toolbox および Integro-Differential Modeling Frameworks オプションが用意されています。Partial Differential Equation Toolbox オプションを使用する場合、FlexibleBody 構造体には ReducedStructuralModel オブジェクトも含まれています。このオブジェクトを reconstructSolution (Partial Differential Equation Toolbox) 関数で使用すると、応力やひずみの評価といった、さらなる解析のためにモデル全体の結果を復元できます。Partial Differential Equation Toolbox オプションを使用するには、Partial Differential Equation Toolbox™ が必要です。Integro-Differential Modeling Frameworks (IDMF) オプションを使用するには、Linux® および Windows® をサポートしている Integro-Differential Modeling Framework for MATLAB® アドオンが必要です。

Linux では、IDMF アドオンは追加の要件なしで実行されます。Windows では、IDMF オプションには Windows Subsystem for Linux (WSL) などの追加のセットアップが必要です。セットアップの詳細については、Windows での IDMF のセットアップを参照してください。

Flexible body model builder generates reduced order model data for dipper arm

Flexible Body Model Builder アプリを開く

  • MATLAB ツールストリップ: [アプリ] タブの [Simscape] で、[Flexible Body Model Builder] をクリックします。

  • MATLAB コマンド プロンプト: 「flexibleBodyModelBuilder」と入力します。

例

すべて展開する

この例では、Flexible Body Model Builder アプリを使用して低次元化されたモデル (ROM) のデータを生成する方法を示します。この例では、事前定義済みジオメトリ、材料特性、およびフレームのあるディッパー アーム部を使用します。

例を開き、ジオメトリ ファイルを現在の MATLAB® セッションの検索パスに追加します。

addpath(fullfile("ReducedOrderFlexibleSolidSupport","Geometries"));

アプリの起動

"Flexible Body Model Builder" アプリを起動するには、MATLAB コマンド ラインで次のコマンドを入力します。

flexibleBodyModelBuilder

ジオメトリ特性と材料特性の指定

ジオメトリを指定するには、[Geometry] の [File Name] パラメーターに「Dipper.step」と入力します。ディッパー アームを表示するには、[生成] タブで更新ボタン をクリックします。

ディッパー アームは鋼鉄製です。材料特性を表すには、イメージに示されているように、[Stiffness and Inertia] セクションで [Density]、[Young's Modulus]、および [Poisson's Ratio] を指定します。

インターフェイス フレームの追加

柔軟体はインターフェイス フレームを使用して、Simscape™ Multibody™ の他の要素 (ジョイント、拘束、力、センサーなど) を接続します。この例では、ディッパー アームに 3 つのインターフェイス フレームを追加します。[Frames] パラメーターを使用して、インターフェイス フレームの位置と向きを指定します。イメージに示されているように、F1、F2、および F3 フレームの位置を、それぞれ円柱面 4、平面 11、および円柱面 1 の中心に設定します。インターフェイス フレームの向きについては既定の設定を使用します。

メッシュの指定および ROM データの生成

低次元化されたモデルの精度を制御するために、メッシュ パラメーターおよびモデル低次元化の設定を指定できます。ボディに対して粗いメッシュを生成するために、[Max Element Size] に 0.2 m、[Min Element Size] に 0.02 m を指定します。これらのパラメーターを調整することで、メッシュを調整して結果の精度を向上させることができます。モデル低次元化の設定を指定するには、[Model Order Reduction] で [Number of Fixed-Interface Normal Modes] を指定します。この例では、10 個の動的なクレイグ-バンプトン モードを維持します。

ROM データを生成するには、[低次元化モデル ジェネレーター] オプションのいずれかを選択します。この例では、Partial Differential Equation Toolbox オプションを選択して [生成] をクリックします。このアプリでは、すべての ROM データが MAT ファイルに保存されます。この例では、MAT ファイルに DipperROM.mat という名前を付けます。

なお、出力 ROM データでは、ROM データを生成するためにアプリに提供した入力は一切保存されません。つまり、ROM データを生成した後にアプリを閉じると、アプリから仕様にアクセスできなくなります。アプリを閉じる前にすべての入力を記録することをお勧めします。

この例では、"Flexible Body Model Builder" アプリによって生成された ROM データを使用してReduced Order Flexible Solidブロックを指定する方法を示します。

ROM データの読み込み

この例では、「ROM データの生成」の例で生成された ROM データを使用します。ROM データを格納している DipperROM.mat ファイルを見つけて読み込みます。MATLAB® ワークスペースで FlexibleBody 構造体配列をダブルクリックして、各種フィールドに分類されている ROM データを表示します。

Reduced Order Flexible Solid ブロックの指定

このセクションでは、Reduced Order Flexible Solid ブロックの使用 - 柔軟なディッパー アームモデルを使用して、読み込んだ ROM データを使用して Reduced Order Flexible Solid ブロックを指定する方法を示します。この例では、ROM データを使用して、柔軟体のインターフェイス フレーム、剛性行列と質量行列、およびグラフィックス特性を指定します。

ReducedOrderFlexibleSolid.slx モデルで、Flexible Dipper Arm ブロックを開きます。FlexibleBody.fieldName という形式のドット表記を使用して、次のパラメーターを対応する ROM データに設定します。

Interface Frames

  • フレームの数

  • 原点

  • 向き

Reduced Order Matrices

  • 剛性行列

  • 質量行列

Graphic

  • 頂点の座標

  • 小平面の頂点のインデックス

  • 再構成行列

減衰特性では、比例減衰の既定の設定を使用します。"Flexible Body Model Builder" アプリによって生成される ROM データは SI 単位であるため、[Unit System] を SI (m, kg, s) に設定する必要があります。

パラメーター

すべて展開する

ジオメトリ

CAD ファイルの名前または CAD ファイルのパス。文字ベクトルとして指定します。ファイル名またはパスにファイル拡張子が含まれない場合、アプリはファイル タイプを STEP と想定します。アプリはさまざまなフォーマットの CAD ファイルをサポートしています。サポートされている CAD ファイルのフォーマットのリストについては、サポートされているソフトウェアとファイル形式を参照してください。

CAD ファイルの場所に応じて、これらのメソッドのいずれかを使用して、[ファイル名] を指定します。

場所メソッド
ファイルが、現在の作業フォルダーまたは MATLAB パスにある

テキスト ボックスにファイル名を入力します。

例: myShape.STEP

ファイルが存在するフォルダーが、現在のフォルダーではなく、MATLAB パス上のフォルダーでもない
  • CAD ファイルの相対パスを入力します。これは現在のフォルダーに対するパスです。

    例: Geometries/myShape.STEP, or ../Geometries/myShape.STEP

  • Browsing for CAD file ボタンをクリックし、CAD ファイルを参照します。

  • CAD ファイルの絶対パスを入力します。

    例: C:/Users/Model/Geometries/myShape.STEP

ヒント

  • 複数のプラットフォームでアプリを使用する場合、または他のユーザーとモデルを共有する場合は、ファイル名または相対パスの使用を検討してください。

  • スラッシュ (/) はどのプラットフォームでも有効な区切り記号です。バックスラッシュ (\) は Microsoft® Windows プラットフォームでのみ有効です。

個体ジオメトリ単位のソース。[From File] または [Custom] として指定します。インポート ファイルで指定されている単位を使用する場合は、[From File] を選択します。独自の単位を指定する場合は、[Custom] を選択します。

ジオメトリを解釈する際の長さの単位。単位を変更すると、インポートされるジオメトリのスケールが変更されます。

依存関係

このパラメーターを有効にするには、[単位のタイプ] を [カスタム] に設定します。

剛性と慣性

材料の単位体積あたりの質量。既定値はアルミニウムに対応しています。

プレートのパラメーター化に使用する弾性特性。Young's Modulus and Poisson's Ratio または Young's and Shear Modulus のいずれかを指定できます。これらの特性は材料データベースで一般的に使用可能です。

垂直歪みに対する垂直応力の比率。正のスカラーとして指定します。既定値はアルミニウムに対応しています。

アプリはヤング率とせん断弾性率でのクロスパラメーター チェックを実行し、結果のポアソン比が範囲 [0, 0.5) に収まるようにします。

プレートのポアソン比。指定する値はゼロ以上、0.5 未満でなければなりません。既定値はアルミニウムに対応しています。

依存関係

このパラメーターを有効にするには、[Specify] を [Young's Modulus and Poisson's Ratio] に設定します。

工学せん断歪みに対するせん断応力の比率。正のスカラーとして指定します。既定値はアルミニウムに対応しています。

アプリはヤング率とせん断弾性率でのクロスパラメーター チェックを実行し、結果のポアソン比が範囲 [0, 0.5) に収まるようにします。

依存関係

このパラメーターを有効にするには、[Specify] を [Young's and Shear Modulus] に設定します。

離散化

このアプリでは、指定した最大および最小要素サイズに基づいてメッシュが作成されます。このアプリでは、エッジの長さが指定した要素サイズに大体収まる 2 次四面体メッシュが提供されます。[Max Element Size] パラメーターと [Min Element Size] パラメーターの値は、作成されるメッシュに対して厳格な制約を課すものではありませんが、下限と上限の柔軟なターゲットを示します。場合によっては、一部の要素のエッジの長さが指定した制限を超えることがあります。

ターゲットの最大メッシュ エッジ長。正のスカラーとして指定します。

[Max Element Size] パラメーターは、メッシュ エッジ長の概算の上限です。この値は [Min Element Size] パラメーターの値より大きい必要があります。このパラメーターにより、メッシュの全体的な調整を制御します。値を小さくすると、メッシュが細かくなりますが、メッシュの生成と ROM の計算にかかる時間が長くなります。

ターゲットの最小メッシュ エッジ長。正のスカラーとして指定します。

[Min Element Size] パラメーターは、メッシュ エッジ長の概算の下限であり、丸みのあるエッジや小さい特徴などで、局所的にメッシュの調整を制御します。この値は [Max Element Size] パラメーターの値より小さい必要があります。値を小さくすると、詳細がうまく捕捉され、ROM の精度が向上しますが、メッシュの生成と ROM の計算にかかる時間が長くなります。

モデル次数の削減

維持する動的なクレイグ-バンプトン モード。範囲 [0, n] の整数として指定します。

n=3×(nn−nnf),

ここで、

  • nn はメッシュ内のすべてのノードの数です。

  • nnf はインターフェイス フレームが付加される表面上のノードの数です。

ほとんどの解析では、次の理由のため、高周波モードを維持する必要はありません。

  • 高周波モードは、シミュレーション結果にあまり貢献しません。

  • 高周波モードでのシミュレーションは、計算量が多くなります。

フレーム

フレームの作成ボタン Create Frame をクリックすると、ボディに新しいインターフェイス フレームを作成するためのペインが開きます。このペインで、フレームの原点および向きを指定できます。

フレームの原点を定義するには、[Frame Origin] で [Based on Geometric Feature] を使用して、新しいフレームの原点を選択した未変形の特徴の正準点に一致させます。表面は唯一の有効な特徴です。可視化ペインから表面を選択し、[Select Feature] をクリックして原点の位置を確定します。このオプションの下のフィールドに、原点の位置の名前が表示されます。

表面を選択してフレームの原点を定義すると、アプリによって柔軟体のその表面が厳密に制約され、フレームがその厳密な領域に厳格に付加されます。インターフェイス フレームに選択した表面は、相互に接続されていたり、重なり合ったりしてはなりません。

フレームの向きを定義するには、[Frame Axes] セクションでフレームの [Primary Axis] および [Secondary Axis] を選択し、それらの向きを指定します。

次の方法を使用して、主軸と副軸の向きを指定するベクトルを選択します。主軸は、選択したベクトルと平行になり、残る 2 つの座標軸を主軸の法平面に制約します。副軸は、選択したベクトルを法平面上に投影したものと平行になります。

  • Along Reference Frame Axis: 未変形のジオメトリの基準フレームの軸が選択されます。

  • Based on Geometric Feature: 選択した未変形のジオメトリの特徴に関連付けられたベクトルが選択されます。有効な特徴には、表面とラインがあります。対応するベクトルは、可視化ペインで矢印で示されます。可視化ペインから特徴を選択し、[Select Feature] をクリックして選択を確定できます。このオプションの下のフィールドに、選択した特徴の名前が表示されます。

作成したフレームを編集または削除します。N は、それぞれのカスタム フレームを一意に識別する番号です。

  • 原点や座標軸など、インターフェイス フレームを編集するには、編集ボタン Edit をクリックします。

  • インターフェイス フレームを削除するには、削除ボタン Delete をクリックします。

依存関係

このパラメーターを有効にするには、フレームの作成ボタン Create をクリックしてフレームを作成します。

ヒント

Windows で IDMF アドオンを実行するには、Windows Subsystem for Linux (WSL) をインストールする必要があります。WSL をインストールするには、WSL を使用して Windows に Linux をインストールするを参照してください。

Windows では、初めて IDMF を使用して ROM データ セットを生成したときに、このアプリは Linux ディストリビューションを WSL にインポートします。ディストリビューションの名前は idmf_hub_<MATLABrelease> です (idmf_hub_2023b など)。ここで、<MATLABrelease> は現在実行されている MATLAB のリリース番号です。idmf_hub_<MATLABrelease> ディストリビューションが存在しているかをクエリするには、Windows コマンド プロンプトで「wsl -l -v」と入力します。idmf_hub_<MATLABrelease> ディストリビューションを削除するには、MATLAB コマンド ラインで「idmf_container_teardown()」と入力します。

WSL を使用して Windows 上で IDMF を使用する場合、既定の設定により、使用可能なメモリとスワップ スペースが制限されることがあります。詳細については、主な WSL の設定を参照してください。IDMF で使用できるメモリの量を増やすために、.wslconfig ファイルを使用して WSL 2 のグローバル設定を構成できます。詳しい手順については、.wslconfig を参照してください。コンピューターの仕様とメモリ要件に基づいて、memory および swap エントリを設定します。たとえば、48 GB のメモリを WSL 2 に割り当て、8 GB のスワップ スペースを追加するには、.wslconfig ファイルに次の行を追加します。

[wsl2]
memory=48GB
swap=8GB

Windows では、Windows Defender ファイアウォールが PostgreSQL サーバーをブロックした場合、Flexible Body Model Builder アプリは IDMF オプションを使用して ROM データ セットを生成できません。既定では、ファイアウォールはすべてのパブリック ネットワークおよびプライベート ネットワークでサーバーをブロックします。この問題を解決するために、アプリの使用時にファイアウォールがプロンプトを出した場合に、サーバーが目的のネットワークで通信することを許可できます。あるいは、PostgreSQL サーバーの実行可能ファイルを許可されるアプリのリストに手動で追加することもできます。詳細については、Windows Defender ファイアウォールを介したアプリの許可を参照してください。実行可能ファイルは、現在実行されている MATLAB のインストール フォルダーにあります (<matlabroot>\sys\postgresql\win64\PostgreSQL\bin\postgres.exe)。これらの手順は、IT チームまたはシステム管理者と一緒に実行することをお勧めします。

参照

[1] Craig Jr, Roy R., and Andrew J. Kurdila. Fundamentals of Structural Dynamics. 2nd ed. Hoboken, N.J: John Wiley, 2006.

バージョン履歴

R2023a で導入

すべて展開する

参考

ブロック

関数