メインコンテンツ

interface

mechss モデルのコンポーネント間の物理接続の指定

    説明

    sysCon = interface(sys,C1,IC1,C2,IC2) は、2 次スパース モデル sys のコンポーネント C1C2 間の物理結合を指定します。IC1 および IC2 には、C1 および C2 の自由度 (DOF) を基準とした、結合後の DOF のインデックスが含まれます。物理インターフェイスは剛体と見なされ、標準の整合性と平衡条件を満たします。sysCon は、指定された物理接続を使用する結果のモデルです。sys の使用可能なすべてのコンポーネントのリストを取得するには showStateInfo を使用します。

    sysCon = interface(sys,C,IC) は、コンポーネント C が地面と接することを指定します。C の自由度 q を地面に接続すると、ゼロの変位拘束 (q(IC) = 0) になります。

    さらに、sysCon = interface(___,KI,CI) は、非剛体インターフェイスの剛性 KI と減衰 CI も指定します。

    sysCon = interface(___,method) は、アセンブリ メソッドを指定します。既定では、method = 'dual' であり、関数は物理結合のデュアルアセンブリ メソッドを使用します。物理結合の主要アセンブリ メソッドを使用するには、method = 'primal' を設定します。詳細については、アルゴリズムを参照してください。

    すべて折りたたむ

    この例では、下の図に示すように、各頂点の支柱に連結されている 2 枚の四角形のプレートで構成される構造モデルを考えます。下のプレートは地面にしっかり取り付けられ、支柱は四角形のプレートの各頂点にしっかり取り付けられています。

    plate_pillar_assembled-01-01.png

    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)

    Figure contains an axes object. The axes object with title nnz: M=95256, K=249052, B=1, F=1., xlabel Right-click to select matrices contains 37 objects of type line. One or more of the lines displays its values using only markers These objects represent K, B, F, D.

    ここで、主要アセンブリ メソッドを使用して物理的接続を指定します。

    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)

    Figure contains an axes object. The axes object with title nnz: M=94666, K=246838, B=1, F=1., xlabel Right-click to select matrices contains 19 objects of type line. One or more of the lines displays its values using only markers These objects represent K, B, F, D.

    この例のデータセットは、ASML の Victor Dolk によって提供されています。

    入力引数

    すべて折りたたむ

    スパース 2 次モデル。mechss モデル オブジェクトとして指定します。詳細については、mechss を参照してください。

    接続する sys のコンポーネント。string または文字ベクトルの配列として指定します。sys の使用可能なすべてのコンポーネントのリストを取得するには showStateInfo を使用します。

    接続するコンポーネントのインデックス情報。NcNi 列の cell 配列として指定します。ここで、Nc はコンポーネントの数、Ni は物理インターフェイスの数です。

    剛性行列。NqNq 列のスパース行列として指定します。ここで Nqsys 内の DOF の数です。

    減衰行列。NqNq 列のスパース行列として指定します。ここで Nqsys 内の DOF の数です。

    インターフェイスのアセンブリ メソッド。次のいずれかとして指定します。

    • 'dual' — 物理結合のデュアルアセンブリ メソッドを使用します。このメソッドは、代数変数を追加することでスパース性を維持します。

    • 'primal' — 物理結合の主要アセンブリ メソッドを使用します。このメソッドでは最小数の DOF を使用しますが、システムは非スパース要素の影響を受ける場合があります。

    詳細については、アルゴリズムを参照してください。

    出力引数

    すべて折りたたむ

    物理インターフェイスをもつ出力システム。mechss モデル オブジェクトとして返されます。システムの物理インターフェイスのリストを確認するには、showStateInfo を使用します。

    アルゴリズム

    すべて折りたたむ

    バージョン履歴

    R2020b で導入