MV-1025:点-曲線(PTCV)高次ペア拘束の構築

本チュートリアルでは、PTCV(点-曲線)ジョイントをモデル化する方法について学習します。

PTCV(点-曲線)ジョイントは、高次ペア拘束です。この拘束は、1つのボディ上の指定したポイントを、別のボディ上の指定したカーブに沿って動くよう拘束します。カーブは、開いているか、もしくは閉じている、平坦か、もしくは3次元スペース内にあることが可能です。ポイントは、剛体または弾性体に属していることが可能です。この拘束は、ある種のシステム内で接触のモデル化を回避するために役立ちます。正しい接触のモデル化(MV-1010:3Dメッシュ間の接触のシミュレーションを参照)はほとんどの場合、接触パラメータの微調整を必要とするため、これは好都合とされます。そのようなシステムの一例として、カムフォロワーの機構が挙げられます。カムとフォロワーの間の接触のモデル化は、PTCVジョイント、すなわちカーブがカムの輪郭、ポイントがフォロワーの先端として定義することによって回避できます。


図 1. カムフォロワーの機構
本チュートリアルでは、PTCVジョイントを用いて、カムフォロワーの機構をモデル化します。

ポイントの作成

このステップでは、モデルにポイントを作成します。

mbd_modeling\interactiveフォルダーにあるすべてのファイルを、自身の<作業ディレクトリ>にコピーします。
  1. 新しいMotionViewセッションを開始します。
    デフォルトの単位(kg、mm、s、N)を使用します。
  2. 以下のいずれかの方法で、Add Point or PointPairダイアログを開きます:
    • ProjectブラウザModelを右クリックしてAdd Reference Entity > Pointを選択します。
    • Model-Referenceツールバーで、(Point)アイコンを右クリックします。
  3. LabelにPivotPointと入力します。デフォルトの識別子を受諾します。
  4. OKをクリックします。
  5. Propertiesタブをクリックし、X、Y、Z座標値を0.0と指定します。
  6. 手順2から5までを繰り返し、表 1に指定したポイントを作成します。
    表 1.
    Point X Y Z
    FollowerCM 0.0 65.557 0.0
    FollowerPoint 0.0 25.0 0.0
    FollowerJoint 0.0 85.0 0.0
    CamCM 0.0 -14.1604 0.0

ボディの作成

このステップでは、CamボディとFollowerを作成します。

ボディの定義には、予め指定されている慣性のプロッティングを使用します。
  1. 以下のいずれかの方法で、Add Body or BodyPairダイアログを開きます:
    • ProjectブラウザModelを右クリックしてAdd Reference Entity > Bodyを選択します。
    • Model-Referenceツールバーで、(Body)アイコンを右クリックします。
  2. CamボディとFollowerを追加します。
    1. 1つ目のLabelにCamと入力します。
    2. 適用(Apply)をクリックします。
    3. 2つ目のLabelにFollowerと入力します。
    4. OKをクリックし、Add Body or BodyPairダイアログを閉じます。
      作成したボディがモデルツリーのBodiesフォルダーの下に現れます。
  3. 各ボディについてのPropertiesパネルで、表 2に示される情報を指定します。
    表 2.
    Body Mass Ixx Iyy Izz Ixy Iyz Izx
    Cam 0.174526 60.3623 63.699 123.276 0.0 0.0 0.0
    Follower 0.0228149 7.10381 0.219116 7.22026 0.0 0.0 0.0
  4. Camボディについて、CM Coordinateタブの設定を指定します。
    1. Use center of mass coordinate systemボックスをチェックします。
    2. をダブルクリックします。
    3. Select a Pointダイアログで、CamCMを選択します。
    4. OKをクリックします。
    5. 軸の方向のプロパティについては、デフォルトの設定を受諾します。
  5. Followerボディについて、CM Coordinateタブの設定を指定します。
    1. Use CM Coordsysボックスをチェックします。
    2. をダブルクリックします。
    3. Select a Pointダイアログで、FollowerCMを選択します。
    4. OKをクリックします。
    5. 軸の方向のプロパティについては、デフォルトの設定を受諾します。

ジョイントの作成

このステップでは、モデルに必要な回転ジョイントと並進ジョイントを定義します。

回転ジョイントはカムボディとグラウンドボディ間、並進ジョイントはフォロワーボディとグラウンドボディ間です。PTCVジョイントは、異なるステップで定義します。
  1. 以下のいずれかの方法で、Add Joint or JointPairダイアログを開きます:
    • ProjectブラウザModelを右クリックしてAdd > Constraint > Jointを選択します。
    • Model-Constraintsツールバーで、(Joints)アイコンを右クリックします。
  2. CamPivotジョイントを作成します。
    1. Add Joint or JointPairで、LabelにCamPivotと入力します。
    2. TypeにRevolute Jointを選択します。
    3. OKをクリックします。
    4. Connectivityタブでをダブルクリックし、Camとします。
    5. Ground Bodyとし、OKをクリックします。
    6. Connectivityタブでをダブルクリックし、PivotPointとします。
    7. Alignment Axisをに変更します。VectorをGlobal Zにします。
  3. FollowerJointを作成します。
    1. Add Joint or JointPairで、LabelにFollowerJointと入力します。
    2. TypeにTranslational Jointを選択します。
    3. OKをクリックします。
    4. Connectivityタブでをダブルクリックし、Followerとします。
    5. Ground Bodyとし、OKをクリックします。
    6. Connectivityタブでをダブルクリックし、FollowerJointとします。
    7. Alignment Axisをに変更します。VectorをGlobal Yとし、OKをクリックします。

マーカーの作成

このステップでは、PTCVジョイントの定義に必要なマーカーを定義します。

Cam(カーブ用)およびFollower(ポイント用)にそれぞれ関連付けされているマーカーが必要です。
  1. 以下のいずれかの方法で、Add Marker or MarkerPairダイアログを開きます:
    • ProjectブラウザModelを右クリックしてAdd > Reference Entity > Markerを選択します。
    • Model-Referenceツールバーで、(Marker)アイコンを右クリックします。
  2. CamMarkerを作成します。
    1. Add Marker or MarkerPairダイアログで、LabelにCamMarkerと入力します。
    2. OKをクリックします。
    3. PropertiesタブでをダブルクリックしてCamとし、OKをクリックします。
    4. Propertiesタブでをダブルクリックし、PivotPointとします。
    5. OKをクリックします。軸の方向については、デフォルトの設定を受諾します。
  3. FollowerMarkerを作成します。
    1. Add Marker or MarkerPairダイアログで、LabelにFollowerMarkerと入力します。
    2. OKをクリックします。
    3. PropertiesタブでをダブルクリックしてFollowerとし、OKをクリックします。
    4. Propertiesタブでをダブルクリックし、FollowerPointとします。
    5. OKをクリックします。軸の方向については、デフォルトの設定を受諾します。

グラフィックスの作成

このステップでは、CamとFollowerのグラフィックスを読み込み、モデル内のジョイントについてもグラフィックスを作成します。

カムとフォロワーのグラフィックスは、h3dファイルとして用意されています。モデル内に定義されているボディをh3dファイルと関連付ける必要があります。
  1. 以下のいずれかの方法で、Add Graphics or GraphicPairダイアログを開きます:
    • ProjectブラウザModelを右クリックしてAdd > Reference Entity > Graphicsを選択します。
    • Model-Referenceツールバーで、(Graphics)アイコンを右クリックします。
  2. ダイアログで、LabelにCamと入力します。
  3. ドロップダウンメニューからFileをクリックします。


    図 2.
  4. (File Browser)アイコンをクリックし、モデルフォルダーからCamProfile.h3dを開きます。
  5. OKをクリックします。
  6. Connectivityタブでをダブルクリックし、グラフィックスをCamボディとします。
  7. 手順1を繰り返し、もう一つのグラフィックスを作成します。LabelにFollowerと入力します。
  8. ドロップダウンメニューからFileをクリックします。
  9. (File Browser)アイコンをクリックし、モデルフォルダーからFollowerProfile.h3dを開きます。
  10. OKをクリックします。
  11. Connectivityタブでをダブルクリックし、グラフィックスをFollowerボディとします。
  12. 表 3にリストされているスペックを用いて、モデル内のカムピボットについて、シリンダーグラフィックスを作成します。
    表 3.
    ラベル Type Direction(
    PivotGraphicOne Cylinder Ground Body PivotPoint Global Z
    PivotGraphicTwo Cylinder Cam PivotPoint Global Z
  13. ProjectブラウザPivotGraphicOneをクリックします。
  14. Propertiesタブで、表 4にリストされている値を指定します。
    表 4.
    Property
    Length 7.5
    Offset -3.75
    Radius 1 4.000
    Radius 2 4.000
  15. CapのプロパティにCap Both Endsを選択します。
  16. ProjectブラウザPivotGraphicTwoをクリックします。
  17. Propertiesタブで、表 5にリストされている値を指定します。
    表 5.
    Property
    Length 7.6
    Offset -3.8
    Radius 1 2.000
    Radius 2 2.000
  18. CapのプロパティにCap Both Endsを選択します。
  19. Follower並進ジョイントに、表 6のスペックと表 7にリストされたプロパティで、ボックスグラフィックを作成します。
    表 6.
    ラベル Type Z-Axis( XZ Plane(
    FollowerJointGraphic Center(Connectivityタブでこのオプションを選択) Ground Body FollowerJoint Global Z Global X
    表 7.
    Property
    Length X 15
    Length Y 10
    Length Z 10
    モデルは図 3ようになるはずです。
    図 3. MotionViewでのカムフォロワーの機構

カーブの作成

このステップでは、Camの輪郭を定義するカーブを作成します。

カーブの定義には、.csvフォーマットのデータを使用します。
  1. 以下のいずれかの方法で、Add Curveダイアログを開きます:
    • ProjectブラウザModelを右クリックしてAdd > Reference Entity > Curveを選択します。
    • Model-Referenceツールバーで、(Curves)アイコンを右クリックします。
  2. LabelにCamProfileと入力し、OKをクリックします。
  3. Propertiesタブで、1つ目のドロップダウンメニューを使って、カーブを2D Cartesianから3D Cartesianに変更します。
  4. ドロップダウンメニューをクリックし、カーブタイプをClosed curveに設定します。
  5. xラジオボタンをクリックします。
  6. をクリックし、CamProfile.csvを開きます。
  7. 図 4に示されているカーブのプロパティを選択します。
    図 4.
  8. yラジオボタンをクリックします。ComponentをColumn 2に変更します。


    図 5.
  9. zラジオボタンをクリックします。ComponentをColumn 3に変更します。


    図 6.

PTCVジョイントの作成

このステップでは、PTCVを作成します。

  1. 以下のいずれかの方法で、Add AdvJointダイアログを開きます:
    • ProjectブラウザModelを右クリックしてAdd > Constraint > Advanced Jointを選択します。
    • Model-Referenceツールバーで、(Advanced Joint)アイコンを右クリックします。
  2. ダイアログ内で、LabelにPTCVと入力します。
  3. ドロップダウンメニューからPointToCurveJointを選択し、OKをクリックします。
  4. PTCVについて、Connectivityタブを設定します。
    1. をダブルクリックします。ダイアログでFollowerを選択し、OKをクリックします。
    2. をダブルクリックします。ダイアログでFollowerPointを選択し、OKをクリックします。
    3. をダブルクリックします。ダイアログでCamProfileを選択し、OKをクリックします。
    4. をダブルクリックします。ダイアログでCamMarkerを選択し、OKをクリックします。

カムの動きの指定

このステップでは、式を使ってカムの動きを指定します。

  1. 以下のいずれかの方法で、Add Motion or MotionPairダイアログを開きます:
    • ProjectブラウザModelを右クリックしてAdd > Constraint > Motionを選択します。
    • Model-Referenceツールバーで、(Motion)アイコンを右クリックします。
  2. ダイアログ内で、LabelにCamMotionと入力し、OKをクリックします。
  3. Connectivityタブで、をダブルクリックします。CamPivotを選択し、OKをクリックします。
  4. Propertiesタブで、ドロップダウンメニューのExpressionにより動きを定義します。
  5. Expression欄に、`10*TIME`と入力します。


    図 7.

重力の指定

このステップでは、負のY方向に重力を指定します。

  1. Projectブラウザで、Misc. > Formsをクリックして拡張します。
  2. Formsフォルダーで、Gravityをクリックします。パネル内で、以下の値を指定します。
    • X Component = 0
    • Y Component = -9810
    • Z Component = 0

出力リクエストの指定

このステップでは、PTCVジョイントの反力を監視するために、出力リクエストを指定します。

  1. 以下のいずれかの方法で、Add Outputダイアログを開きます:
    • ProjectブラウザModelを右クリックしてAdd > General MDL Entity > Outputを選択します。
    • Generalツールバーで、(Outputs)アイコンをクリックします。
  2. ダイアログで、LabelにPTCV Reactionと入力し、OKをクリックします。
  3. Propertiesタブで、ドロップダウンメニューのExpressionにより動きを定義します。
  4. F2欄内をクリックし、ボタンをアクティブにします。
  5. ボタンをクリックします。
  6. Expression Builderで、式を'PTCV({aj_0.idstring},0,2,0)'と入力します。


    図 8.
  7. OKをクリックします。
  8. F3、F4、F6、F7、F8について、手順4から6までを繰り返します。式内の3番目のパラメータはそれぞれ34678に変更します。
    PTCV(idjflagcompref_marker)関数は、PTCVジョイントの反力を戻します:
    • id PTCVジョイントのID
    • jflag 0はIマーカー、1はJマーカーにかかる反力、
    • comp 反力の成分
    • ref_marker 参照マーカー(0はGlobal Frameを意味する)

モデルの実行

このステップでは、カムフォロワーモデルを実行します。

モデルは完全に定義され、実行の準備が整っています。
  1. ツールバーで、(Run)をクリックします。
  2. Runパネルで、図 9にリストされている値を指定します。


    図 9.
  3. Save and run current modelラジオボタンをクリックします。
  4. (ブラウザアイコン)をクリックし、ソルバーファイルの名称を指定します。
  5. Saveをクリックします。
  6. (Check Model)ボタンをクリックし、モデルのエラーを確認します。
  7. ソルバーを起動するために、Runボタンをクリックします。
  8. ソルバーが完了したら、(Start/Pause Animation)ボタンをクリックし、アニメーションを見ます。

結果の表示

このステップでは、アニメーションの確認とフォロワーのY変位をプロットする方法について学習します。

  1. ソルバーがジョブを完了すると、Animateボタンがアクティブになります。Animateをクリックします。
    (Start/Pause Animation)ボタンをクリックし、アニメーションを見ます。

    この機構に含まれるフォロワーの変位のプロファイルにも注目する必要があります。そのためには、フォロワーの重心のY位置をプロットします。

  2. Page Controlsツールバーで、 > をクリックします。下部右側のウィンドウをクリックしてアクティブにします。
  3. アプリケーション選択ドロップダウンメニューを使って、クライアントをMotionSolve から HyperGraph 2D に切り替えます。
  4. Curvesツールバーから(Build Plotsl)アイコンをクリックします。
  5. (ブラウザアイコン)をクリックし、result.abfファイルを読み込みます。
  6. Plotパネルを図 10に示すとおり設定します。


    図 10.
  7. 適用(Apply)をクリックします。これにより、フォロワーの重心のY位置をプロットします。
    フォロワーのY変位のプロファイルは、図 11に示すようになっているはずです。
    図 11.
    X-軸プロパティを1つのサイクルにズームインするよう設定した場合、プロファイルは図 12のようになります。
    図 12.

潜在的なリフトオフについてモデルをチェック

このステップでは、フォロワーのY-反力をプロットすることによって、潜在的なリフトオフについてカムフォロワーの機構をチェックします。

機構の動きによって、フォロワーはカムとの接触を失う場合があります。これは‘リフトオフ’と呼ばれます。そのようなケースにおいてPTCVで機構をモデル化すると、ジョイントがフォロワーポイントを常にカーブ上にあるよう制約する(ゆえに、リフトオフをモデル化できない)ため、正しくない結果が与えられてしまいます。そのような場合は、接触のモデル化(MV-1010:3Dメッシュ間の接触のシミュレーションを参照)を使用する必要があります。しかしながら、PTCVジョイントのモデル化は接触のモデル化よりもかなり易しいため、PTCVモデルから始めたいことになります。この状況を鑑み、PTCVジョイントを使って機構をモデル化し、PTCVジョイントの反力を監視します。フォロワーにかかる反力が‘引く‘反力である場合、リフトオフが生じており、接触のモデル化に切り替える必要があることを示しています。そうでない場合は、接触のモデル化は不要です。ここで、本チュートリアルで使用するモデルをチェックします。フォロワーはY軸に沿って動いているため、Y軸に沿った負の反力は‘引く’反力です。
  1. (Add Page)をクリックし、セッションに新規ページを追加します。
  2. クライアントをHyperGraph 2D に切り替えます。
  3. (Build Plots)をクリックします。
  4. (ブラウザアイコン)をクリックし、result.abfファイルを読み込みます。
  5. Plotパネルを図 13に示すとおり設定します。


    図 13.
  6. 適用(Apply)をクリックします。
    プロファイルは、図 14に示すようになるはずです。


    図 14.
  7. x軸をスケーリングして、プロファイルを1つのサイクルについて見てみます。


    図 15.
    図 15に示されたとおり、フォロワーにかかるPTCV反力のY成分は常に正となっています。引く反力はなく、PTCVモデルはこの機構に適しています。