接続フレームの作成
接続点としてのフレーム
ボディのフレームは、モデル内でのジョイントと拘束の接続点を提供します。これらによって、そうしたジョイントと拘束の相対的な向き、ひいてはシミュレーション中に可能となる運動の方向も決まります。ジョイントと拘束を介してボディをうまく接続するには、適切な接続フレームを作成しなければなりません。この作業は、ボディ自体をモデル化するときに行うのが最も効率的です。
フレームの作成と変換
固体ブロックのフレーム作成インターフェイスを使用して、フレームを直接固体に追加することができます。このインターフェイスを使用すると、頂点、エッジ、面などのジオメトリの主要な特徴、または重心や慣性の主軸などの慣性の主要な特徴について、フレームの位置と向きを対話形式で定義できます。作成されたフレームはカスタムと呼ばれ、そのフレームが属する固体ブロックにフレーム端子として表示されます。次の図は、F1 と F2 というラベルの付いた 2 つのカスタム フレーム端子をもつ Brick Solid ブロックを示しています。

Rigid Transform ブロックを使用してフレームを作成することもできます。このブロックを使用すると、回転変換と並進変換によってフレームの位置と向きを数値的に定義できます。回転変換の場合は回転行列と回転シーケンス、並進変換の場合は直交と円柱のオフセット座標といったように、さまざまな変換のパラメーター化を使用できます。次の図は、Rigid Transform ブロックを使用して既存の固体フレームから作成した新しいフレーム (F) を示しています。

Rigid Transform ブロックを使用して作成するフレームは、固体固有の特徴のいずれからも独立しています。これらは、配置の取得に必要な変換を特定できるのであれば、別のフレームに対してどの位置にでも配置できます。2 つのフレーム端子間に Rigid Transform ブロックを配置すると、このブロックを既存のフレームをオフセットする手段として、より適切に捉えることができます。次の図は、既存の 2 つのフレーム間に配置した Rigid Transform ブロックによって指定されたオフセットを示しています。

フレームと変換の詳細については、フレームの取り扱いを参照してください。
確認: 標準的なボディ内のフレーム
MATLAB® コマンド プロンプトで「openExample("sm/PointOnCurveExample")」と入力します。羽ばたく翼機構のモデルが開きます。RightWing という名前のボディ サブシステムのマスク内部を確認します。固体ブロックのうちの 2 つ、Peg と WingLink のそれぞれに 2 つのフレーム端子があることに注意してください。端子の 1 つは、Cylindrical Solid ブロックを使用して作成されたカスタム フレームを示します。カスタム フレームの 1 つを調べます。
Pegという名前の Cylindrical Solid ブロックのダイアログ ボックスを開きます。可視化ツールストリップで、[Frame] ボタンをクリックします。可視化ペインが更新され、固体の基準フレームとカスタム フレームが表示されます。

ダイアログ ボックスの [Properties] セクションで [Frames] ノードを展開し、[Edit] ボタンをクリックします。フレーム作成インターフェイスが開き、現在のフレームの定義が表示されます。
フレーム原点は、円柱の底面の中心に配置されている。
フレームの軸は、ローカル基準フレームの軸と揃ったままになっている。
フレームの名前は、対応するフレーム端子 (B) のラベルと一致している。
いくつかの固体ブロック間のフレーム接続ラインに CPXform と WingXForm という名前の Rigid Transform ブロックが含まれていることにも注意してください。これらのブロックは、接続されている固体フレーム間の回転オフセットと並進オブセットを指定します。ブロックの 1 つで指定されている変換を調べます。
WingXFormという名前の Rigid Transform ブロックのプロパティ インスペクターを開きます。回転変換は、base フレームの 2 つの軸を基準に follower フレームの 2 つの軸を揃えることで設定されていることに注意してください。
[Translation] パラメーターを展開します。並進オフセットは、(base フレームの) 軸に沿って指定されていることに注意してください。並進オフセットは、
WingLinkSubsystem ブロックで指定された値をもつ MATLAB 変数Owによってパラメーター化されています。
ブロック線図を更新します。Multibody Explorer が開き、静的に可視化された羽ばたく翼のモデルが表示されます。ツリー ビュー ペインで
RightWingノードを展開し、WingXFormノードをクリックして、Rigid Transform ブロックに属するフレームを強調表示します。
接続フレームの計画
ボディでの接続フレームの配置を定義する際には、そのターゲットとなる特定のジョイントや拘束について検討しなければなりません。ジョイントや拘束は、多くの場合、それらによって接続されるフレームに特別なアセンブリ要件を課します。これらの要件は、接続フレームの適切な配置に影響します。これらは、ジョイント ブロックや拘束ブロックのリファレンス ページで確認できます。
ターゲットがジョイントの場合は、その自由度 (ジョイントの接続フレーム間で許可される運動の種類) と、自由度が対応するフレームの軸に注意してください。たとえば、Revolute Joint ブロックは、base ボディと follower ボディの接続フレームに共通の z 軸を中心に回転自由度 1 を与えます。
Revolute Joint ブロックを介して 2 つのボディを接続するには、各ボディのジョイントの接続フレームを配置して、その z 軸それぞれが各ボディの目的の回転軸と揃うようにしなければなりません。次の図は、接続フレームが Revolute Joint ブロックに対して適切に配置されている PointOnCurveExample モデルの Housing ボディと RightWing ボディの例を示しています。

接続フレームのターゲットが、噛み合ったギアの特性のような拘束である場合は、アセンブリに必要な接続フレームの配置に注意してください。たとえば、Common Gear Constraint ブロックでは、噛み合いのタイプが [External] に設定されている場合、base ボディと follower ボディの接続フレームが、それらのピッチ半径の合計に等しい距離だけ離れている必要があります。また、z 軸が平行であり、一方の x 軸と y 軸が他方のものと同一平面上にあることも必要です。

拘束ブロックのアセンブリ要件では、拘束がエラーなく適用されるように、モデルの残りの部分が接続フレームを保持する方法 (一部はボディの定義によって、一部は他のジョイントや制約によって) が指定されています。ギア拘束ブロックを介してアセンブリ用にギア ボディへと接続フレームを配置する方法については、ギア モデルの組み立てを参照してください。
アセンブリ エラーへの対処
4 節リンク機構やクランクスライダー機構のモデルのような閉ループ モデルでは、その構成ボディが取ることのできる位置や向きが限られています。接続フレームの配置によって、ループ内でのジョイントまたは拘束がその他と不整合になる場合、つまり、1 箇所の適切な接続が別の箇所での中断となる場合、アセンブリは失敗です。
たとえば、平面 4 節リンク機構で、1 つのリンクの接続フレーム間の距離が残りのリンクの同距離の合計を超える場合や、接続フレームの向きによってジョイントの回転軸が平行でなくなってしまう場合などがこれに当たります。
将来の接続を考慮してボディの接続フレームを慎重に定義すると、多くのアセンブリ エラーを防ぐことができます。ジョイント ブロックや拘束ブロックに固有のアセンブリ要件と、モデルの残りの部分によって課される運動学的拘束の両方を考慮してください。一般に、アセンブリの失敗が生じた場合には以下を行わなければなりません。
組み立てられていないジョイントまたは拘束を特定します。変数ビューアーを使用します。
対応する接続フレームを調べます。Multibody Explorer を使用して、これらのフレームを可視化します。ツリー ビュー ペインで、組み立てられていないジョイントまたは拘束の名前をクリックすると、可視化ペインでそのフレームが強調表示されます。それらのフレームの配置をジョイントまたは拘束のアセンブリ要件と比較します。

ジョイントまたは拘束のアセンブリ要件を満たすように接続フレームを変換します。Rigid Transform ブロックを使用すると、必要な回転変換と並進変換を適用することができます。接続フレームが固体ブロックに属するカスタム フレームである場合は、代わりにそのブロックを使用してフレームの定義を編集できます。
不適切に配置された接続フレームが原因のアセンブリの失敗を解決する方法を示す例は、アセンブリ エラーのトラブルシューティングを参照してください。