Skip to main content

トルク制限とトルクフィードフォワード制御

のトルク制限 CODESYS SoftMotion 調整された動作中にドライブのトルクまたは力の指定された制限を超えないようにします。これらのトルクと力の制限は、ドライブの速度、加速度、ジャークに対する既存の制限に加えて尊重されます。これの要件は、適用されるキネマティクスの動的モデルであり、機能ブロックの形で実装されます。 ISMDynamics からのインターフェース SM3_Dynamics 図書館。基本的に、 AxesStateToTorque 軸の特定の状態 (位置、速度、および加速度) に必要なトルクを計算するメソッドが必要です。

トルク制限に加えて、動的モデルにより、トルク フィード フォワード制御の設定トルクを計算できます。の章でアプリケーションの例を見つけることができます 動的ロボットモデル.

ユースケース

多くのキネマティクス、特にシリアル キネマティクスでは、複数のジョイントまたはすべてのジョイントのカップリングがあります。これの簡単な例は、以下に示すように、ジョイントにドライブを備えた二重振り子です。

_sm_img_torque_1.png

ユースケース 1

_sm_img_torque_2.png

ユースケース 2

第 1 ジョイントのドライブは 90° 回転します。 2 番目の関節は動かないはずです (使用例 1)。受動的な第 2 関節を仮定すると、二重振り子の第 2 肢がその慣性により左に回転することは容易に想像できます。この回転を防ぐために、第 2 ジョイントのドライブは右方向にトルクを生成する必要があります。したがって、最初のドライブの動きには、2 番目のドライブからの反応が必要です。

反対方向のカップリングは、たとえば、最初のドライブが一定の速度で移動し、2 番目のドライブが二重振り子の 2 番目のリムを引っ込める場合に存在します (ユース ケース 2)。これにより、最初のジョイントに関する二重振り子の慣性行列が減少します。角運動量 (慣性行列と角速度の積) を取得するには、最初のジョイントの角速度を増加させる必要があります。角速度を一定に保つには、最初のドライブのトルクをその回転方向に対して変化させて、角運動量を減少させる必要があります。したがって、2 番目のドライブの移動には、1 番目のドライブからの反応が必要です。

動的モデルがない場合は、設定位置、設定速度、および設定加速度のみをドライブに送信できます。最初のケースでは、最初のジョイントが動いているかどうかに関係なく、一定の設定位置が 2 番目のドライブに対して定義されます。 2 番目のドライブのコントロール ユニットは、同じ設定値に対してトルクを生成する必要がある場合と生成しない場合があるという事実に対処できる必要があります。動作は 2 番目のケースと似ています。ここでは、第 2 関節が動いているかどうかに関係なく、同じ一定の設定速度が第 1 ドライブに指定されています。ここでも、ドライブの制御ユニットは、同じ設定値に対して異なるトルクを生成する必要があるという事実に対処する必要があります。

動的モデルを使用すると、設定トルクを計算してドライブに送信できます。そこでは、コントロール ユニットのフィード フォワード ディメンションとして使用できます。その結果、制御ユニットは、制御品質の改善を可能にする追加情報を受信する。

トルク制限により、ドライブの制限をより正確に遵守できます。多くの場合、決定的なのはドライブの速度や加速度の制限ではなく、トルクの制限です。トルク制限の利点は、前述の二重振り子の例から、次の動きを比較すると明らかになります。つまり、第 1 駆動装置の第 2 肢が縮んだ状態の動きと、第 1 駆動装置の第 2 肢が伸びた状態の動きです。収縮状態では、第 1 関節に関する慣性行列は、伸長状態よりも小さくなります。したがって、同じ動き (ドライブの同じ速度曲線と加速曲線) の場合、収縮状態よりも伸長状態の方がより大きなトルクが必要になります。動的モデルがない場合は、速度と加速度の制限を設定して、両方の状態でトルクの制限が守られるようにする必要があります。これにより、最初のドライブは、ドライブのトルク制限を遵守するために必要な速度または加速よりも低い速度または加速度で収縮状態で移動する可能性があります。動的モデルを使用すると、トルク制限を構成して、動作を計画するときに考慮できるため、両方の状態で十分に活用できます。

もう少し複雑な例は、前述の最初のケースで、最初のドライブが移動中で、2 番目のドライブがその位置を保持する必要があります。位置を保持するために 2 番目のドライブに必要なトルクは、最初のドライブの動きに依存します。最初のドライブの加速が急すぎると、原則として、2 番目のドライブのトルク制限に違反する可能性があります。動的モデルがない場合、これを防ぐには、最初のドライブの加速制限を適切に構成する必要があります。動的モデルでは、移動を計画する際に 2 番目のドライブの設定されたトルク制限を考慮に入れることができ、最初のドライブの加速を制限することができます。

より複雑な動きやキネマティクスの場合、ここで説明する結合効果は、さらに多くの結合効果と一緒になります。動的モデルを使用すると、これらのカップリングを考慮に入れることができるため、設定値の仕様が向上し、ドライブの制限への準拠が向上します。

動的モデルの構成

を実装する機能ブロックの形式の既存の動的モデル ISMDynamics インターフェイスは、軸グループに割り当てることができます。 SMC_GroupSetDynamics 機能ブロック。動的モデルに加えて、関数ブロックを使用して、重力加速度の方向と大きさを機械座標系のベクトル形式で構成する必要があります。

負荷の考慮

追加の負荷 (たとえば、把持されたオブジェクトまたは取り付けられたツール) は、 SMC_GroupSetLoad 関数ブロックであり、実行時に変更されます。の ExecutionMode 機能ブロックの入力を使用して、負荷の変更がいつ有効になるかを定義できます (たとえば、すぐに、または現在の移動が完了した後のみ)。

重要

との続き MC_GroupContinue: 継続する場合、継続データに格納されているすべての動きは、最初に指令された荷重を維持します。継続後に命令される移動は、最後に設定された負荷を使用します。

ギアボックスの検討

設定トルクはギアボックス出力に対して計算され、ドライブに自動的に変換されません。の SMC_SetAdditionalConversionFactors 機能ブロックを使用して、各軸のトルクの追加の変換係数を構成できます。ギアボックスもこの方法で考慮することができます。

単位

力とトルク、およびそれらの制限は、基本的にアプリケーションでニュートン (N) またはニュートン メートル (Nm) で指定されます。設定された力または設定されたトルクがドライブに送られる前に、再スケーリングが行われる場合があります。このため、CiA 402 規格では、たとえば、定格トルク (mNm) の 1000 分の 1 で設定トルクをドライブに送信する必要があります。

長さの単位は、SoftMotion ではユーザー固有です。力とトルクは固定単位 (N または Nm) として定義されるため、ユーザー固有の長さ単位からメートルへの変換係数を構成する必要があります (メートルが長さ単位として使用されている場合を除く)。これは、 SMC_GroupSetUnits 機能ブロック。

移動座標系でのトルク制限

軸グループが可動座標系で移動する場合、トルク制限は、軸グループが可動座標系に正確に従うことができる場合にのみ尊重されます。これが不可能で、偏差の許容範囲が次の方法で設定されている場合 SMC_GroupSetPathTolerance偏差を補正しようとすると、トルク制限を超える可能性があります。偏差が許容範囲外であるためにエラーが発生した場合、軸グループは停止します。この停止中に、トルク制限を超えることもあります。設定トルクはそれぞれのケースで計算され、ドライブに送信されます。

エラー時のトルク制限

計画中にエラーが検出された場合 (たとえば、命令された移動が作業領域に違反するなど)、軸グループは以前に命令されたパスで停止します。そうすることで、トルク制限が守られます。パス上で停止できない場合 (たとえば、ドライブがエラーを報告したため)、トルク制限も順守できません。

単軸動作と協調動作の違い

基本的に、設定トルクは、動的モデルを持つ軸グループの一部であるすべての軸に対して計算されます。これは、停止時と、単軸移動によって軸が移動する場合の両方に適用されます (たとえば、 MC_MoveAbsolute) または軸グループ全体が調整された移動によって移動します (たとえば、 MC_MoveDirectAbsolute)。

トルク制限は、協調動作に対してのみ有効です。この理由は、前述のように、軸の必要なトルクが、軸グループ内の他の軸の一部またはすべての位置と動きに依存するためです。したがって、トルクの制限は、軸グループのすべての軸が協調動作として移動できる場合にのみ可能です。

例外は、 SMC_GroupJog 関数ブロック。このファンクション ブロックは、トルク制限をサポートしていません。使用することをお勧めします SMC_GroupJog2 代わりは。