アセンブリ エラーのトラブルシューティング
モデルの概要
閉ループ システムでは、ジョイントと拘束は互いに矛盾のないものでなければなりません。たとえば 4 節リンク機構では、すべての回転ジョイントが平行な軸の周りを回転していなければなりません。いずれかのジョイントが平行でない軸の周りを回転していると、アセンブリが失敗し、モデルはシミュレートされません。
トラブルシューティングのプロセスを簡略化するため、Simscape™ Multibody™ では Model Report を提供しています。このツールは、アセンブリの失敗の原因となったジョイントや拘束を特定するのに役立ちます。これらのジョイントや拘束を特定すると、どの座標系をどう修正するかを判断できるようになります。
この例では、Model Report を使用して、照準機構のモデルにおけるアセンブリ エラーの発生源を特定します。その後、Mechanics Explorer を使用して、そのエラーの発生源をどのように修正するかを判断します。この例のベースとなるのは、sm_dcrankaim_assembly_with_error
の使用例です。
モデルの確認
モデルを開くには、MATLAB® コマンド ラインで「sm_dcrankaim_assembly_with_error
」と入力します。モデルが新しいウィンドウで開きます。
次の図は、モデルによって表されるシステムの概略図を示しています。このシステムには A ~ D というラベルの付いた 4 つのボディがあります。これらのボディは、Ri、Ro、Rg、Pg というラベルの付いた 4 つのジョイントを介して閉ループで接続されています。互いに接続されると、これらのコンポーネントは 1 自由度のシステムを形成します。
モデルでは、このシステムのコンポーネントをブロックを使って表しています。各ブロックは物理コンポーネントを表します。World Frame ブロックは、モデルの最終的な基準座標系を提供します。次の図は、二重クランク照準機構を表すためにモデルで使用されるブロック線図を示しています。
ボディを表すため、モデルには Rigid Body A ~ D というラベルの付いた 4 つのサブシステム ブロックが含まれています。各サブシステムには 1 つの Cylindrical Solid ブロックと複数の Rigid Transform ブロックが含まれています。Cylindrical Solid ブロックは、ジオメトリ、慣性、および色をボディ サブシステムに提供します。Rigid Transform ブロックは、ジョイントの接続先となる座標系を提供します。Reference Frame ブロックは、サブシステム ブロックの最終的な基準座標系を特定します。
モデルでは、ボディ サブシステムのブロックに Rigid Body A ~ D というラベルが付いています。ボディ サブシステムのブロック線図を調べるには、サブシステム ブロックを右クリックして、[マスク] 、 [マスク内を表示] を選択します。次の図は、Rigid Body A のブロック線図を示しています。
ジョイントを表すため、モデルには 4 つのジョイント ブロックが含まれています。3 つのジョイントは、ボディのペアの間に回転自由度 1 を与えます。これらのジョイントはそれぞれ Revolute Joint ブロックで表されます。4 つ目のジョイントは、ボディのペアの間に並進自由度 1 を与えます。このジョイントは、Prismatic Joint ブロックで表されます。このモデルでは、Revolute Joint ブロックに Ro、Rg、Ri というラベルが付いており、Prismatic Joint ブロックに Pg というラベルが付いています。
モデルの更新
モデル名によって示唆されるとおり、このモデルにはエラーがあります。このエラーによってモデルの正常な組み立てが妨げられ、シミュレーションは失敗します。モデルを更新してアセンブリ エラーを調べるには、次を行います。
[モデル化] タブで、[モデルの更新] をクリックします。
Mechanics Explorer が開き、モデルの静的表示が初期状態で提示されます。モデルにはアセンブリ エラーがあるため、Simscape Multibody によってエラー メッセージが表示されます。ここでは、このメッセージを無視してください。
アセンブリ エラーのトラブルシューティング
Mechanics Explorer では、Model Report にアクセスすることができます。これは、モデル内の各ジョイントと拘束のアセンブリ ステータスをまとめる、Simscape Multibody のユーティリティです。このユーティリティを開いて、どのジョイントで組み立てに失敗したかを判断します。これを行うには、Mechanics Explorer のメニュー バーで、[Tools] 、 [Model Report] を選択します。
Model Report が新しいウィンドウで開きます。赤い四角形は、予想されたように、モデルの組み立てが失敗したことを示します。2 つ目の赤い四角形は、組み立てられていないジョイント Pg が、モデルのアセンブリ エラーの原因となっている唯一の要素であることを示しています。この情報によって、トラブルシューティングの取り組みを、小さなブロック線図の領域 (ジョイント ブロック Pg 周辺) に集中させることができます。
エラーの根本原因の特定
モデルの更新中に Simscape Multibody によって表示されたエラー メッセージには、位置の違反がアセンブリ失敗の根本原因として挙げられています。これは、ジョイント Pg によって接続された座標系が正しく揃えられていないことを示しています。この仮説を確認するために、Mechanics Explorer でこれらの座標系の向きをチェックします。
Mechanics Explorer のツリー ペインで、[Pg] を選択します。
Mechanics Explorer の可視化ペインで、強調表示されている座標系の位置と向きを調べます。これらは、薄い空色で表示されている座標系です。
2 つの座標系は Z 軸に沿って距離を置いた位置にあります。このオフセットは有効です。ジョイント Pg には Z 軸と一致する直進プリミティブが含まれており、Z 軸に沿って並進自由度 1 を含む座標系が与えられているためです。しかし、2 つの座標系はまた、共通の Z 軸の周りを互いに対し回転もしています。このオフセットは無効です。ジョイント Pg には回転プリミティブも球面プリミティブも含まれておらず、どの軸周りにも回転自由度が存在しないからです。モデル アセンブリのエラーを修正するには、2 つの座標系のいずれかを回転させ、両者の座標軸がすべて互いに対し平行になるようにしなければなりません。
アセンブリ エラーの修正
この例では、follower 座標系に回転変換を適用して、その軸が base 座標系の軸と平行になるようにします。あるいは、等価な回転変換を base 座標系に適用することもできます。この手順により、ジョイント Pg が有効になるため、モデル自体が正しく組み立てられるようになります。
Mechanics Explorer のツリー ペインで Pg ノードを右クリックし、
[ブロックに移動]
を選択します。Simscape Multibody によってブロック線図が前面に移動し、Pg ブロックが強調表示されます。Rigid Body C Subsystem ブロックを右クリックし、[マスク] 、 [マスク内を表示] を選択します。
Slide Frame Transform ブロックをダブルクリックし、次の表に記載された新しいパラメーター値を選択します。[OK] を選択します。
パラメーター 新しい値 [Rotation] 、 [Pair 2] 、 [Follower] +X
[Rotation] 、 [Pair 2] 、 [Base] +Y
モデルのシミュレーション
ここで、モデルをシミュレートすることができます。Mechanics Explorer が開き、モデルの 3D アニメーションが提示されます。次の図は、アニメーションのスナップショットを示しています。回転、ロール、パン、ズームを使って調べてください。
Model Report ツールを使用して、アセンブリ ステータスを検証できます。これを行うには、Mechanics Explorer のメニュー バーで、[Tools] 、 [Model Report] を選択します。Model Report で、モデルとそのジョイントのアセンブリ ステータス アイコンが緑色の円になっていることを確認します。緑色の円は、モデルが正しく組み立てられたことを示します。