interface
構文
説明
は、2 次スパース モデル sysCon
= interface(sys
,C1,IC1,C2,IC2)sys
のコンポーネント C1
と C2
間の物理結合を指定します。IC1
および IC2
には、C1
および C2
の自由度 (DOF) を基準とした、結合後の DOF のインデックスが含まれます。物理インターフェイスは剛体と見なされ、標準の整合性と平衡条件を満たします。sysCon
は、指定された物理接続を使用する結果のモデルです。sys
の使用可能なすべてのコンポーネントのリストを取得するには showStateInfo
を使用します。
例
スパース 2 次モデルのコンポーネント間の物理的接続
この例では、下の図に示すように、各頂点の支柱に連結されている 2 枚の四角形のプレートで構成される構造モデルを考えます。下のプレートは地面にしっかり取り付けられ、支柱は四角形のプレートの各頂点にしっかり取り付けられています。
platePillarModel.mat
に含まれている有限要素モデル行列を読み込み、上記システムを表すスパース 2 次モデルを作成します。
load('platePillarModel.mat') model = ... mechss(M1,[],K1,B1,F1,'Name','Plate1') + ... mechss(M2,[],K2,B2,F2,'Name','Plate2') + ... mechss(Mp,[],Kp,Bp,Fp,'Name','Pillar3') + ... mechss(Mp,[],Kp,Bp,Fp,'Name','Pillar4') + ... mechss(Mp,[],Kp,Bp,Fp,'Name','Pillar5') + ... mechss(Mp,[],Kp,Bp,Fp,'Name','Pillar6'); sys = model;
mechss
モデル オブジェクトのコンポーネントを確認するには showStateInfo
を使用します。
showStateInfo(sys)
The state groups are: Type Name Size ---------------------------- Component Plate1 2646 Component Plate2 2646 Component Pillar3 132 Component Pillar4 132 Component Pillar5 132 Component Pillar6 132
次に、相互作用する自由度 (DOF) インデックス データを dofData.mat
から読み込み、interface
を使用して 2 枚のプレートと 4 本の支柱間の物理的接続を作成します。dofs
は、最初の 2 行に 1 枚目と 2 枚目のプレートの DOF インデックス データを含み、他の 4 行に 4 本の支柱のインデックス データを含む 6x7
の cell 配列です。関数は既定で、物理結合のデュアルアセンブリ メソッドを使用します。
load('dofData.mat','dofs') for i=3:6 sys = interface(sys,"Plate1",dofs{1,i},"Pillar"+i,dofs{i,1}); sys = interface(sys,"Plate2",dofs{2,i},"Pillar"+i,dofs{i,2}); end
下のプレートと地面間の接続を指定します。
sysConDual = interface(sys,"Plate2",dofs{2,7});
物理インターフェイスを確認するには showStateInfo
を使用します。
showStateInfo(sysConDual)
The state groups are: Type Name Size ----------------------------------- Component Plate1 2646 Component Plate2 2646 Component Pillar3 132 Component Pillar4 132 Component Pillar5 132 Component Pillar6 132 Interface Plate1-Pillar3 12 Interface Plate2-Pillar3 12 Interface Plate1-Pillar4 12 Interface Plate2-Pillar4 12 Interface Plate1-Pillar5 12 Interface Plate2-Pillar5 12 Interface Plate1-Pillar6 12 Interface Plate2-Pillar6 12 Interface Plate2-Ground 6
spy
を使用して、最終モデルのスパース行列を可視化できます。
spy(sysConDual)
ここで、主要アセンブリ メソッドを使用して物理的接続を指定します。
sys = model; for i=3:6 sys = interface(sys,"Plate1",dofs{1,i},"Pillar"+i,dofs{i,1},'primal'); sys = interface(sys,"Plate2",dofs{2,i},"Pillar"+i,dofs{i,2},'primal'); end sysConPrimal = interface(sys,"Plate2",dofs{2,7},'primal');
物理インターフェイスを確認するには showStateInfo
を使用します。
showStateInfo(sysConPrimal)
The state groups are: Type Name Size ---------------------------- Component Plate1 2646 Component Plate2 2640 Component Pillar3 108 Component Pillar4 108 Component Pillar5 108 Component Pillar6 108
主要アセンブリによって、グローバル有限要素メッシュ内の一連の共有 DOF に関連付けられた冗長な DOF の半分が取り除かれます。
spy
を使用して、最終モデルのスパース行列を可視化できます。
spy(sysConPrimal)
この例のデータセットは、ASML の Victor Dolk によって提供されています。
入力引数
sys
— スパース 2 次モデル
mechss
モデル オブジェクト
スパース 2 次モデル。mechss
モデル オブジェクトとして指定します。詳細については、mechss
を参照してください。
C
— 接続するコンポーネント
string | 文字ベクトルの配列
接続する sys
のコンポーネント。string または文字ベクトルの配列として指定します。sys
の使用可能なすべてのコンポーネントのリストを取得するには showStateInfo
を使用します。
IC
— 接続するコンポーネントのインデックス情報
Nc
行 Ni
列の cell 配列
接続するコンポーネントのインデックス情報。Nc
行 Ni
列の cell 配列として指定します。ここで、Nc
はコンポーネントの数、Ni
は物理インターフェイスの数です。
KI
— 剛性行列
Nq
行 Nq
列のスパース行列
剛性行列。Nq
行 Nq
列のスパース行列として指定します。ここで Nq
は sys
内の DOF の数です。
CI
— 減衰行列
Nq
行 Nq
列のスパース行列
減衰行列。Nq
行 Nq
列のスパース行列として指定します。ここで Nq
は sys
内の DOF の数です。
method
— アセンブリ メソッド
'dual'
(既定値) | 'primal'
インターフェイスのアセンブリ メソッド。次のいずれかとして指定します。
'dual'
— 物理結合のデュアルアセンブリ メソッドを使用します。このメソッドは、代数変数を追加することでスパース性を維持します。'primal'
— 物理結合の主要アセンブリ メソッドを使用します。このメソッドでは最小数の DOF を使用しますが、システムは非スパース要素の影響を受ける場合があります。
詳細については、アルゴリズムを参照してください。
出力引数
sysCon
— 物理インターフェイスをもつ出力システム
mechss
モデル オブジェクト
物理インターフェイスをもつ出力システム。mechss
モデル オブジェクトとして返されます。システムの物理インターフェイスのリストを確認するには、showStateInfo
を使用します。
アルゴリズム
剛体インターフェイス
物理領域の n 個のサブ構造体を表す、ブロック対角型のスパース行列は次のようになります。
相互作用する 2 つのコンポーネントは、グローバル有限要素メッシュ q で一連の DOF を共有します。最初のコンポーネントの DOF のサブセット N1 は、2 番目のコンポーネントの DOF のサブネット N2 と一致しています。2 つのコンポーネント間の結合は、次の場合にのみ剛体になります。
共有された DOF における変位 q が両方のコンポーネントで等しい。
一方のコンポーネントが他方に及ぼす力 g が (作用反作用の原理により) 逆になる。
これらの関係は、次のように要約できます。
ここで、H はエントリが 0、1、または –1 の位置推定行列です。方程式 Hq = 0 は q(N1) = q(N2) と等価で、方程式 g = −HT λ は g(N1) = −λ および g(N2) = λ と等価です。
方程式は次のようになります。
これらは、次の微分代数方程式 (DAE) 形式で結合できます。
この DAE モデルは、構造体全体の "デュアルアセンブリ" モデルと呼ばれます。2 つのコンポーネントの原則について説明しましたが、このモデルには、2 つを超えるコンポーネントが関係するインターフェイスを含む複数のインターフェイスを受け入れることができます。
剛体インターフェイスの "主要アセンブリ" は、次の制約と関連付けられた冗長な DOF の半分を取り除くことで構成されます。
Hq = 0 がこの制約の行列表現である場合、これは結局 q = Lqr を記述することになります。ここで、qr は一連の独立した (自由な) DOF であり、L は H のヌル空間に広がります。
q = Lqr を使用すると、方程式
は次のようになります。
LTHT = (HL)T = 0 を使用すると、方程式の最初の部分は、LT を左から掛けることで L の範囲に投影できます。
これは構造体全体の "主要アセンブリ" モデルです。対応するデュアルアセンブリよりも代数変数が 2N1 個少なくなりますが、低次元化された M、C、K に非スパース要素の生ずる可能性があります。
非剛体インターフェイス
非剛体インターフェイスでは、変位 q1(N1) と q2(N2) が異なっていてもよく、内力は以下で与えられます。
これにより、最初のコンポーネントの DOF N1 と 2 番目のコンポーネントの DOF N2 間でバネ-ダンパー状の接続がモデル化されます。剛体接続から非剛体接続にすることで、代数制約 Hq = 0 が削除され、内力が示されます。λ を削除すると、以下が得られます。
これは、分離されたモデルが対称の場合に対称のままになる、非剛体結合形式の一連の主要アセンブリ方程式です。この形式の欠点は、連結項 および により非スパースが生じる可能性があることです。これを回避するために、等価のデュアルアセンブリ形式を使用できます。
バージョン履歴
R2020b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)