Main Content

addTargetVariables

KinematicsSolver オブジェクトの運動学的変数をターゲットとして割り当て

説明

addTargetVariables(ks,ids) は、KinematicsSolver オブジェクト ks の運動学的変数 ids をターゲットとして割り当てます。

オブジェクト関数 addTargetVariables の出力は、ターゲットとなる変数を行にリストした table です。各行に変数の詳細が表示されます。ジョイント変数については、ID、ジョイント タイプ、ブロック パス、および単位が table に表示されます。座標系変数については、ID、base 座標系、follower 座標系、および単位が table に表示されます。

座標系変数とジョイント変数の両方をターゲット変数として割り当て、それらを任意の順序で追加できます。ターゲット変数を追加するときは、次の点に注意してください。

  • LinearVelocity の座標系変数はターゲットとして指定できません。

  • AngularVelocity の座標系変数はターゲットとして指定できません。

  • Rotation タイプの座標系変数をターゲットとして使用する場合は、座標系変数の "x" 成分と "y" 成分を同時に指定しなければなりません。

  • 球面プリミティブのジョイント位置変数は 4 つ同時にターゲットにする必要があります。

  • 球面プリミティブのジョイント速度変数は 3 つ同時にターゲットにする必要があります。

  • 等速プリミティブの方位角のジョイント位置変数は、対応する曲げ角もターゲットにしないとターゲットにできません。

  • 等速プリミティブの方位角速度のジョイント速度変数は、対応する曲げ角速度もターゲットにしないとターゲットにできません。

ソルバーによる探索では、ターゲット変数がシステムに対する制約として機能し、ターゲットとなるジョイント変数および座標系変数と互換性がある解が求められます。システムにターゲット変数による制約を過度に適用しないでください。システムの運動学的ループにジョイントごとにターゲットがあると、システムに過度の制約が適用されます。過度の制約を避ける 1 つの方法は、オブジェクト関数 addInitialGuessVariables を使用してジョイント変数の 1 つをターゲットから初期推定に再割り当てすることです。

変数はターゲットと出力の両方として機能できます。ただし、ターゲットと推定の両方としては機能しません。

入力引数

すべて折りたたむ

運動学ソルバー オブジェクト。運動学的解析に使用される Simscape™ Multibody™ モデルの表現である KinematicsSolver オブジェクトとして指定します。

例: ks = simscape.multibody.KinematicsSolver("DoublePendulumExample ' ')

運動学的変数の識別子。文字の cell 配列または string ベクトルとして指定します。文字の cell 配列および string ベクトルは、1 行 N 列または N 行 1 列になります。ここで、N は正の整数です。ジョイント変数の ID を表示するには、オブジェクト関数 jointPositionVariables または jointVelocityVariables を使用します。座標系変数の ID を表示するには、オブジェクト関数 frameVariables を使用します。

例: "j1.Rz.q"、["j1.Rz.q", "j2.Rz.q"]、{'j1.Rz.q'}、{'j1.Rz.q'; 'j2.Rz.q'};

バージョン履歴

R2019a で導入