Instant Engineering

エンジニアの仕事効率を上げる知識をシェアするWeb記事/機械設計/TPS/QC品質管理

ハンチングとは|制御工学から見る振動メカニズムと対策

サーボモータの電源を入れた瞬間、「ウィーン、ウィーン」という周期的な唸り音が止まらない。あるいは、位置決め停止したはずのステージが、いつまでも「ジジジ…」と微振動を続けている。

これらはすべて「ハンチング(Hunting)」と呼ばれる現象です。獲物を探してうろつき回る猟犬(Hunting)の姿に例えられるこの現象は、制御工学における「安定性」が崩れた状態を指します。

メカトロニクス機器において、ハンチングは単なる不快な音ではありません。加工精度の悪化、モータの発熱、最悪の場合は機械の破損を招く重大なトラブルです。「ゲインを下げれば止まる」と安易に対処すれば、今度は応答性が低下し、タクトタイムが伸びてしまいます。

本記事では、サーボ制御の宿命とも言えるこのハンチング現象について、PID制御の理論的背景から、機械剛性との関係、イナーシャ比の計算、そして現場で使える具体的な調整テクニックまで徹底的に解説します。

1. ハンチングとは:現象の定義と本質

まず、ハンチングという現象を工学的に正しく定義し、その種類を分類します。

目標値に対する「迷い」の振動

ハンチングとは、自動制御系において、制御量が目標値(セットポイント)に収束せず、目標値の前後を行き過ぎたり戻ったりを繰り返す「自励振動」のことです。

サーボモータの場合、エンコーダからの位置情報(現在値)を目標値に一致させようとトルクを出しますが、以下の理由で「行き過ぎ(オーバーシュート)」と「戻り過ぎ(アンダーシュート)」を繰り返してしまいます。

  • 修正が強すぎる:偏差に対する復元力(ゲイン)が高すぎて、目標地点を猛スピードで通り越してしまう。
  • 反応が遅れる:偏差を検知してから力を出すまでの間に「位相遅れ」があり、タイミングがずれた力を加えてしまう。

この振動は、外部から揺らされたわけではなく、システム内部のエネルギー循環によって発生し続ける点が特徴です。

発生状況による3つの分類

現場で遭遇するハンチングは、発生するタイミングによって原因と対策が異なります。

  1. 停止時ハンチング(微振動): 位置決め完了後、停止しているはずなのに「チリチリ」「ジージー」と高周波で振動する現象。 原因は主に、位置ループゲインの上げすぎや、外乱オブザーバの設定不良、あるいはエンコーダの分解能不足に起因します。
  2. 過渡時ハンチング(オーバーシュート): 移動から停止に移る際、また目標位置を通り越して「ガガガッ」と大きく揺れてから止まる現象。 原因は、速度ループゲインと位置ループゲインのバランス不良、あるいはイナーシャ比の誤設定です。
  3. 低速送り時ハンチング(うなり): ゆっくり移動している最中に「ウワン、ウワン」と波打つように速度変動する現象。 原因は、積分ゲインの強すぎ、機械系の摩擦(スティックスリップ)、あるいはコギングトルクの影響などが考えられます。

 

2. 制御工学的メカニズム:PIDと位相遅れ

なぜ「正しく制御しよう」としているのに振動してしまうのか。そのメカニズムをPID制御の数式と伝達関数を用いて解き明かします。

PID制御の基本式と各項の役割

サーボアンプの中では、以下の式に基づいた演算が行われています(簡略化した時間領域の式)。

 u(t) = K_p e(t) + K_i \int e(t) dt + K_d \dfrac{de(t)}{dt}

  •  e(t):偏差(目標値 - 現在値)
  •  K_p:比例ゲイン
  •  K_i:積分ゲイン
  •  K_d:微分ゲイン

それぞれの項が過剰になった時、どのようなハンチングを引き起こすかを見てみましょう。

P(比例)ゲインと「バネ」の関係

比例項  K_p e(t) は、ズレた分だけ戻そうとする力です。これは物理的には「バネ」と同じ働きをします。 バネ定数( K_p)を強くすればするほど、偏差は小さくなり剛性は高まります(サーボ剛性)。

しかし、バネを強くしすぎるとどうなるでしょうか? 質量(イナーシャ)を持った物体を強いバネで引っ張れば、ビヨンビヨンと激しく振動します。これが「Pゲイン過多による高周波ハンチング」です。

I(積分)ゲインと「位相遅れ」の罠

積分項  K_i \int e(t) dt は、過去の偏差の蓄積に対して力を出します。定常偏差(どうしても残ってしまうズレ)をゼロにする強力な効果があります。

しかし、積分するということは「過去の情報」を使うということであり、本質的に「時間の遅れ(位相の遅れ)」を伴います。 数学的には、積分動作は位相を90度遅らせます。 システム全体の位相遅れが180度に達した周波数で、もしループゲインが1(0dB)を超えていると、フィードバック信号は「逆位相(修正動作)」ではなく「同位相(助長動作)」となり、振動が発散します。 これが「Iゲイン過多による低周波ハンチング(うなり)」の正体です。

D(微分)ゲインと「ダンピング」

微分項  K_d \dfrac{de(t)}{dt} は、偏差の変化速度、つまり「勢い」に反応してブレーキをかける項です。物理的には「ダンパ(粘性抵抗)」に相当します。 振動を抑制する(減衰させる)効果がありますが、これを上げすぎると、エンコーダの量子化ノイズなどの微細な信号変動にも過敏に反応してしまい、ガサガサとしたノイズ的な微振動を引き起こします。

ボード線図による安定判別

制御の安定性は、周波数応答特性を示す「ボード線図」で評価されます。ハンチングしないための指標として以下の2つが重要です。

  1. ゲイン余裕(Gain Margin): 位相が-180度回った周波数において、ゲインが0dBよりどれだけ低いか。目安は10〜20dB以上。
  2. 位相余裕(Phase Margin): ゲインが0dBになる周波数(クロスオーバー周波数)において、位相が-180度まであと何度余裕があるか。目安は40〜60度。

ハンチングが発生している時は、これらの余裕が枯渇している状態です。

 

関連記事

instant.engineer

 

3. メカニカルな要因:剛性不足と共振

制御パラメータだけでなく、接続されている機械側の特性もハンチングの主要因です。特に「剛性」と「バックラッシ」は天敵です。

2慣性系モデルとねじり共振

モータと負荷(テーブルやアーム)は、カップリングやボールねじで繋がれていますが、これらは完全な剛体ではなく「バネ要素」を持っています。 したがって、システムは「モータ慣性」と「負荷慣性」が「バネ」で繋がれた「2慣性系」となります。

この系には固有振動数(共振周波数)が存在します。 共振周波数  f_r は以下の式で表されます。

 f_r = \dfrac{1}{2\pi} \sqrt{K_c \left(\dfrac{1}{J_M} + \dfrac{1}{J_L}\right)}

  •  K_c:連結部のねじり剛性 [N・m/rad]
  •  J_M:モータイナーシャ [kg・m²]
  •  J_L:負荷イナーシャ [kg・m²]

サーボの応答周波数(制御帯域)を上げていき、この機械共振周波数  f_r に近づくと、激しいハンチング(共振)が発生します。 「剛性が低い( K_cが小さい)」あるいは「負荷が重い( J_Lが大きい)」ほど、共振周波数は低くなり、ゲインを上げられなくなります。

【計算事例】ボールねじ駆動系の共振周波数

具体的な数値で計算してみましょう。

条件: * モータイナーシャ  J_M = 5 \times 10^{-4} \, kg \cdot m^2 * 負荷イナーシャ  J_L = 15 \times 10^{-4} \, kg \cdot m^2 (イナーシャ比 3倍) * カップリング剛性  K_c = 20,000 \, N \cdot m/rad

計算: まず、慣性項を計算します。  \dfrac{1}{J_M} + \dfrac{1}{J_L} = \dfrac{1}{0.0005} + \dfrac{1}{0.0015} = 2000 + 666.6 \approx 2667

次に剛性を掛けます。  20000 \times 2667 = 53,340,000

ルートを取ります。  \sqrt{53,340,000} \approx 7303 \, rad/s

周波数(Hz)に換算します。  f_r = \dfrac{7303}{2\pi} \approx 1162 \, Hz

この場合、共振点は約1160Hzです。一般的な位置制御ゲイン(数十Hz〜100Hz程度)に対しては十分高く、ハンチングのリスクは低い「高剛性な設計」と言えます。 もしこれが100Hz〜200Hz付近になると、調整は極めて困難になります。

バックラッシによるリミットサイクル

ギアやボールねじにガタ(バックラッシ)があると、モータが少し動いても負荷がついてこない「不感帯」が生まれます。 制御系は「動かしているのに偏差が減らない」と判断し、積分項を溜め込んで強いトルクを出します。するとガタの分を一気に飛び越えて負荷に衝突し、今度は行き過ぎて戻そうとする…というサイクルを繰り返します。 これを非線形振動(リミットサイクル)と呼び、低周波の振幅の大きなハンチングとなります。

 

4. イナーシャ比の影響と計算

サーボモータ選定において「イナーシャ比」が重要視されるのは、これがハンチングのしやすさに直結するからです。

イナーシャ比とは

モータ自身のロータ慣性モーメントに対する、負荷の慣性モーメントの倍率です。

 \text{イナーシャ比} = \dfrac{J_L}{J_M}

一般的に、以下の範囲が推奨されます。

  • 高応答・高精度加工機:5倍〜10倍以下
  • 汎用搬送機:30倍以下
  • ダイレクトドライブ(DD)モータ:50倍〜100倍程度まで許容される場合あり

イナーシャ比が大きすぎる(頭でっかちな状態)と、モータが必死に動こうとしても負荷がついてこず、制御不能な振動に陥りやすくなります。

【計算事例】円筒負荷のイナーシャ計算

鉄製の円柱ワークを回転させる場合を考えます。

条件: * 材質:鉄(密度  \rho = 7.87 \times 10^3 \, kg/m^3) * 形状:直径  D = 200 \, mm、厚さ  t = 50 \, mm の円盤 * モータ: J_M = 10 \times 10^{-4} \, kg \cdot m^2

質量  m の計算: 半径  r = 0.1 \, m 体積  V = \pi r^2 t = \pi \times 0.1^2 \times 0.05 \approx 0.00157 \, m^3 質量  m = \rho V = 7870 \times 0.00157 \approx 12.36 \, kg

負荷イナーシャ  J_L の計算: 円盤の中心軸回りのイナーシャ公式  J = \dfrac{1}{2}mr^2  J_L = 0.5 \times 12.36 \times 0.1^2 = 0.0618 \, kg \cdot m^2 = 618 \times 10^{-4} \, kg \cdot m^2

イナーシャ比の確認:  \text{比率} = \dfrac{618}{10} = 61.8 \text{倍}

この場合、イナーシャ比が60倍を超えており、通常のサーボモータでは制御が不安定になり、ハンチングする可能性が高いです。 対策として、減速機を入れてイナーシャ比を下げる(減速比の2乗で効く)か、モータ容量を上げて  J_M の大きいサイズに変更する必要があります。

 

関連記事

instant.engineer

 

5. シーン別ハンチング対策と調整手順

実際にハンチングが発生した際、どのパラメータをどう触れば良いのか。実践的なトラブルシューティングフローを解説します。

基本手順:ゲインを下げる順序

ハンチングを止めるための応急処置は「ゲインを下げる」ことです。しかし、闇雲に下げると制御崩壊します。以下の順序で調整します。

  1. 位置ループゲイン(Kp)を下げる: まずこれを下げます。振動が止まるまで下げていきます。
  2. 速度ループゲイン(Kv)を下げる: 位置ゲインを下げても止まらない、あるいは高周波音(キーン)がする場合は、速度ゲインを下げます。
  3. 積分時定数(Ti)を上げる: 低周波のうねりの場合は、積分効果を弱める(時定数を長くする)のが有効です。

※最近のオートチューニング機能付きアンプでは、「剛性設定」や「レスポンスレベル」という一つのパラメータを上下させるだけで、内部のPIゲインを比率を保ったまま一括変更してくれます。

ケース1:停止時の「ジジジ」音(微振動)

位置決め完了後に止まらない場合。

  • 対策A(不感帯設定): 機械的なガタや摩擦の影響で、±1パルスを行き来している可能性があります。「インポジション幅」を広げるか、制御的な不感帯を設定して、極小の偏差を無視させます。
  • 対策B(D制御/微分ゲイン): 微細な動きにブレーキをかけるため、微分項を少し強めます。ただし強すぎるとノイズ音になります。
  • 対策C(適応フィルタ): 特定の周波数で共振している場合、オートノッチフィルタを有効にします。

ケース2:移動・減速時の「ガガガッ」(オーバーシュート)

目標位置で止まりきれずに暴れる場合。

  • 対策A(フィードフォワード比率の低減): 位置フィードフォワード、速度フィードフォワードが100%近くに入っていると、偏差ゼロを目指しすぎてオーバーシュートしやすくなります。これを数10%下げます。
  • 対策B(イナーシャ設定の確認): アンプに設定しているイナーシャ比の値が、実機と合っているか確認します。オートチューニングで誤った値(大きすぎる値)が推定されていると、過剰なトルクを出して発振します。

ケース3:低速移動中の「ウワンウワン」(低周波振動)

ゆっくり動かすと波打つ場合。

  • 対策A(摩擦補償): リニアガイドやパッキンの静摩擦と動摩擦の差(スティックスリップ)が原因の場合、摩擦補償パラメータを調整し、動き出しのトルクを補助します。
  • 対策B(速度積分ゲイン): 積分が強すぎる(溜まりすぎている)ため、積分ゲインを下げるか、積分リセットを行うタイミングを調整します。

 

6. 最新の抑制技術:フィルタと制振制御

PIDゲインの調整だけでは物理的な限界があります。現代のサーボアンプには、物理法則をデジタル処理でねじ伏せる高度なフィルタ機能が搭載されています。

ノッチフィルタ(帯域阻止フィルタ)

機械共振周波数成分の信号だけをピンポイントでカットするフィルタです。 「ゲインを上げたいが、上げると特定の周波数で鳴く」という場合、その周波数をFFTアナライザ(アンプのツール機能)で特定し、ノッチフィルタを設定します。これにより、共振点を回避しながら全体のゲインを上げることが可能になります。 最新機種では、共振周波数を常時監視し、自動で追従してカットする「リアルタイムオートノッチ」が標準装備されています。

制振制御(振動抑制フィルタ)

アームの先端など、モータから離れた場所の揺れ(残留振動)を止める技術です。 モータ単体は止まっていても、アームの先端は剛性不足で揺れている場合があります。これを止めるには、「反作用のトルク」をわざと加えるような複雑な指令パターンを生成します。 アームの揺れ周波数(通常10Hz〜100Hz程度の低周波)を設定することで、先端振動をピタリと止めることができます。

モデル追従制御(Model Reference Adaptive Control)

理想的なモータモデルをアンプ内部に持ち、そのモデルの挙動と実際の動きが一致するように制御します。 これにより、PIDゲインを個別にいじるのではなく、「応答周波数 ◯◯Hz」という直感的なパラメータで調整が可能になり、ハンチングのリスクをアルゴリズム側で吸収してくれます。

 

7. まとめ:安定と応答性の狭間で

ハンチング対策とは、結局のところ「安定性」と「応答性」のトレードオフをどこで妥協するか、という調整作業です。

  • ゲインを上げれば、キビキビ動き、偏差は減るが、ハンチングのリスクは高まる。
  • ゲインを下げれば、滑らかに動き、ハンチングは止まるが、停止までの時間が伸びる。

このジレンマを解消するためには、以下の3つのアプローチを総動員する必要があります。

  1. 機械設計(ハードウェア): 剛性を上げ、軽量化し、イナーシャ比を適正にする。これが最も効果的です。
  2. 理論的調整(ソフトウェア): 正しいイナーシャ比を設定し、共振点をノッチフィルタで潰す。
  3. 現場の感性(チューニング): 音を聞き、波形を見て、マージン(余裕)を持ったゲイン設定に落とし込む。

「止まらない振動はない」。 そう信じて、数式と工具の両方を手に、ハンチングという難敵に立ち向かってください。