倣い制御における移動平均フィルタの最適化:アーク・レーザセンサの応答性と安定性の両立
溶接ロボットにおけるセンシング制御において、ノイズ除去と応答性のトレードオフは永遠の課題である。特にアークセンサ(電流・電圧フィードバック)やレーザセンサを用いた倣いにおいて、急峻な形状変化への追従遅れは「オーバーシュート」や「溶け込み不良」を誘発する。本稿では、デジタル信号処理の基礎から現場でのパラメータチューニングまでを詳述する。
1. 倣い制御における信号処理の理論的背景
倣い制御のループは「センシング → フィルタリング → 演算(PID制御等) → 駆動」の順で構成される。移動平均フィルタ(Moving Average Filter)は、以下の式で定義される。
$$y[n] = \frac{1}{N} \sum_{i=0}^{N-1} x[n-i]$$
ここで、$N$が窓幅(ウィンドウサイズ)である。
ノイズの種類と周波数特性
- アークセンサ: アーク長変動、スパッタ、ワイヤ突き出し長さの変化がノイズ源。特に短絡移行溶接では高周波ノイズが支配的。
- レーザセンサ: 表面の光沢(反射率)、溶接ヒューム、周辺の光干渉がノイズ源。
- トレードオフ: $N$を大きくすると平滑化効果は高まるが、群遅延(Group Delay)が発生し、制御の位相遅れ(Phase Lag)が蓄積する。これがオーバーシュートの直接原因となる。
2. 移動平均フィルタ窓幅(N)の最適選定プロセス
現場でのチューニングは、むやみに数値を変更するのではなく、以下のステップを推奨する。
ステップ1:サンプリング周期の確認
ロボットコントローラの通信周期(スキャンタイム)を $T_s$ [ms] とする。
- 一般的な産業用ロボット:$T_s = 2 \sim 10$ [ms]
- 高精度倣い対応機:$T_s = 0.5 \sim 1$ [ms]
ステップ2:遮断周波数(カットオフ)の推定
溶接速度 $v$ [mm/s] と、対象とする形状変化の最小曲率半径 $R$ [mm] から、必要な応答周波数 $f_c$ を算出する。
$$f_c \approx \frac{v}{2\pi R}$$
この周波数以上の成分を遮断しつつ、それ以下の信号を通す必要がある。
ステップ3:窓幅 $N$ の算出式
移動平均フィルタの周波数特性は $\text{sinc}$ 関数に従う。第一零点(ノイズを最も除去できる周波数)を $f_n$ とすると:
$$N = \frac{1}{T_s \cdot f_n}$$
現場の鉄則:
- $N < 5$: ノイズ除去能力不足。アークセンサではスパッタを拾い、軸がハンチングする。
- $N > 20$: 位相遅れが致命的。急峻なコーナーや立ち上がりで、ロボットが形状を「追い越して」から補正をかけるため、オーバーシュートが顕著になる。
- 推奨初期値: $N=8 \sim 12$ から開始し、溶接速度の10%刻みで調整する。
3. 現場実務におけるオーバーシュート対策
フィルタリングだけで解決できない場合、制御アルゴリズム側に以下の工夫を施す。
フィードフォワード(FF)制御の併用
単純なPID制御では、フィルタによる遅延を補償できない。
- 加速度・速度予測: 前後のデータから形状の変化率を算出し、補正量に加算する。
- 適応型フィルタ: 直線部では $N$ を大きく(安定性重視)、コーナー部では $N$ を小さく(応答性重視)する動的な窓幅切り替えを実装する。
溶接条件別パラメータ例(参考値)
| 溶接モード | 溶接速度 (mm/s) | 推奨窓幅 N | 備考 |
|---|---|---|---|
| CO2/MAG(短絡) | 5-10 | 15 | スパッタ多いため窓幅広め |
| パルス溶接 | 10-20 | 8 | 安定性が高いため応答性重視 |
| レーザ倣い | 20-50 | 4-6 | 高速追従のため窓幅狭め |
4. 評価方法と検証データ
JIS Z 3111(溶接継手の試験方法)やISO 15016に基づき、以下の指標で評価を行う。
1. ステップ応答試験:
溶接中にセンサへ意図的に段差(例:2mmのシム)を入力し、ロボットの追従波形をオシロスコープ機能で確認する。
- 立ち上がり時間(Rise Time): 10%~90%までの時間。
- オーバーシュート量: 目標値に対する最大偏差の割合。5%以下を目標とする。
2. 定常偏差の確認:
直線溶接時の電流・電圧のバラつき(標準偏差 $\sigma$)をモニタリングする。フィルタが適切であれば、$\sigma$ は溶接電流設定値の3%以内に収まるべきである。
5. トラブルシューティング:現場で起こる「なぜか追従しない」
- 現象:低速時は綺麗だが、高速にすると急にオーバーシュートする
- 原因:フィルタ遅延による位相余裕の低下。
- 対策:微分項(D)を強めすぎている可能性が高い。D項を下げ、フィルタの窓幅を維持したまま、Pゲインを再調整する。
- 現象:特定の溶接姿勢でハンチングする
- 原因:重力の影響による軸負荷の偏り。
- 対策:重力補償パラメータを確認し、移動平均フィルタの窓幅を少し広げる(平滑化を強化)。
- 現象:スパッタ付着によるセンサ信号のスパイク
- 対策:移動平均フィルタの前段に「メディアンフィルタ(中央値フィルタ)」を配置する。これにより、異常値(スパイクノイズ)を完全に除去してから移動平均にかけることが可能。
実装のポイント:
デジタル制御において、浮動小数点演算のオーバーヘッドを考慮する必要がある。特に高機能なフィルタを多段で組む場合、コントローラのCPU負荷が上昇し、スキャンタイムが変動(ジッタ)するリスクがある。必ず実機にてタスク実行時間の余裕を確認すること。