ロボットの減速機をひも解く(3/4) ―― 測る前の予測を、公開データに当てる

  • python
  • ロボット
  • メカトロニクス
  • 予知保全
  • 信号処理

前回までで、構造から作った次数の地図、電流という覗き窓、次数で数える測り方と、道具は揃いました。ただし、ここまでは全部、実データをひとつも使わずに立てた話です。今回は、それが当たっているのかを確かめます。

最初に困ったことを書いておくと、ロボットの減速機そのものの公開データは、私が探した範囲では見つかりませんでした。この話は最終回で詳しくします。ただ、歯車の噛み合い次数と側帯波という論理そのものは、平歯車のギヤボックスで検証できます。歯数が全部公開されているデータセットがあるからです。振動でひとつ、電流でひとつ。順に当てます。

データを開く前に、予測を書き出す

使うのは、University of Connecticut の歯車故障データです(figshare で公開、CC BY 4.0)。2段の平行軸ギヤボックスを20kHzで収録したもので、9条件×104レコード、1レコードは3600点、時間にして0.18秒しかありません。

このデータの価値は、幾何が全部公開されていることです。

1段目: ピニオン32枚、ギヤ80枚
2段目: ピニオン48枚、ギヤ64枚
総減速比 = (80/32) × (64/48) = 10/3 ≈ 3.333

モデルは、データを開く前にこう予測します。1段目の噛み合いは、入力軸に32枚のピニオンが付いているので入力軸の32次。2段目は、中間軸が入力軸の32/80、つまり0.4倍の速さで回るので、48×0.4で19.2次。非整数になります。32次の倍調波として64次と96次。そして損傷は入力軸のピニオンに付けられているので、損傷すれば32次の周りに入力軸1次刻みの側帯波が立ち、歯先欠けは5段階そろっているので、進むほど側帯波が育つはずです。

当てはめたのは、軸回転数ひとつ

ファイルを開いて、最初に分かったことがあります。タコメータの信号が入っていません。配布元の説明には同時収録とあるのですが、中身は加速度波形の行列が1本だけでした。説明と中身のずれは、のちほど側帯波の段でもう一度出てきます。

回転数が分からなければ次数軸に載せられないので、軸回転数だけを当てはめます。15から60Hzまで掃引して、32次が最強線に載る回転数を採ると、22.222Hz、毎分1333回転で決まりました。候補になりうる別の読み方、つまり30次を噛み合いと誤読する、倍調波を噛み合いと誤読する、2段目を噛み合いと誤読する、との差はそれぞれ3.0倍、5.3倍、35倍で、はっきり決まっています。

19.2次は、当てはめに一切使っていません。だから19.2次が実際に立っていれば、それは独立した検証になります。

副産物もありました。0.18秒×22.222Hzはちょうど4.000回転で、レコードは整数回転で切られているらしいと分かります。そして4回転しかないということは、次数の分解能は1/4、0.25次。前回の言葉でいえば、かなり粗い。図にもそう書いてあります。

結果 ―― 位置は当たった

事前の予測 結果
32次に最大のピーク 当たった。全9条件で最大線、床の11〜30倍
19.20次(非整数) 当たった。全条件で第2の大線、床の10〜18倍
64次・96次の倍調波 出た
健全時は側帯波が無い 当たった。±1次は周囲の床より低い(0.8〜0.9倍)
損傷時に側帯波が立つ 8条件中7条件で1.5〜2.9倍に成長
損傷が進むほど側帯波が育つ 外れた。単調にならなかった

19.2次が出たことが、この連載にとってはいちばん大きい収穫です。非整数の次数が、非整数のまま、予測した場所に立ちました。参照する軸を間違えれば、このピークは意味の取れない位置に現れます。どの軸を基準に数えるかが本質的だということを、実データで確認できました。

UConn歯車データに予測位置の縦線を重ねたスペクトル
歯数だけから、データを開く前に32次・19.20次・側帯波の位置を計算しておき、各条件104レコードの平均スペクトルに縦の点線で重ねた図。9条件を順に切り替えます。データから当てはめたのは軸回転数ひとつだけで、19.2次は当てはめに使っていません。分解能0.25次という粗さも図に明記してあります。拡大パネルは32次まわりの櫛で、健全時に無く、損傷7条件で立ち、スポーリングでだけ立ちません。

外れた三つも、そのまま書く

ひとつ目。スポーリングだけ、側帯波が育ちません。明らかに損傷していて、RMSは健全の3.4倍、噛み合い次数も1.7倍あるのに、±1次は健全時のまま動きません。上がるのは噛み合い線と広帯域の床だけ。側帯波だけを見る検出器は、これを見逃します。

ふたつ目。±2次、つまり30次と34次は、健全時から床の3.4倍と5.5倍で立っていました。櫛の予測は入力軸1次刻みでしたが、この機械で診断に使えるのは奇数側だけでした。半分外れた形です。

みっつ目。歯先欠けの5段階は、公開順に単調に育ちませんでした。側帯波の成長率は2.26、2.52、1.55、1.70、1.54。逆順に並べても単調になりません。ラベルが重症度の順でないのか、側帯波の振幅がそもそも損傷量の単調な関数でないのか。配布データに重症度の実数値が無いので、このデータからは決められません。

さらに、櫛は非対称でした。マイナス1次は1.9〜4.3倍に育つのに、プラス1次は1.0〜2.3倍しか動きません。振幅変調と位相変調が混ざって構造の伝達経路を通れば起きることではあるのですが、モデルはそこまで予測していませんでした。

この外れ方には、はっきりした傾向があります。位置は幾何が決めます。歯数と軸の比が決まってしまえば、32次と19.2次は動きようがありません。しかし振幅は、損傷から加速度計までの伝達経路、変調の形、荷重、取付と、モデルが持っていないものすべてに依存します。だから位置は予測できて、序列は予測できません。

電流にも出るのか ―― 出なかった

次は電流です。使うのは Paderborn 大学 KAt-DataCenter のデータです(CC BY-NC 4.0、非商用・要表示)。軸受の振動とモータ電流を同期収録した、この分野では希少なデータで、32状態のうち14は加速寿命試験で作った本物の損傷、12は人工的に付けた傷です。

使ったのは3状態です。健全、外輪の人工傷(機械加工の切欠き)、外輪の実損傷(加速寿命試験)。運転条件は、公開されている4条件のうち最も速く最も重い、毎分1500回転・トルク0.7N·m・ラジアル荷重1000Nを選びました。主張にとって最も有利な条件です。ここで出なければ、ほかの条件でも出ないと判断できます。

軸受の内径17mmと外径40mmは規格で決まっていますが、内部の幾何までは決まりません。この型で代表的な値、ピッチ径28.5mm、転動体8個、玉径6.75mmを取ると、外輪通過次数は3.0526次、毎分1500回転なら76.3Hzと計算できます。この同じ1本の縦線を、振動と電流の両方に引きます。

振動 モータ電流
健全 +2.7dB +3.2dB
外輪・人工傷 +44.6dB(170倍) +4.2dB
外輪・実損傷 +47.3dB(232倍) +3.0dB

数字は各スペクトル自身のノイズ床からの高さで、いずれも幾何から先に計算しておいた予測位置で読んだ値です。

振動には出ました。電流には出ませんでした。しかも損傷側が健全側と区別できていません。実損傷の電流+3.0dBは、健全の+3.2dBより低いのです。

帯域の選び方を疑って、100Hzから20kHzまで40帯域をすべて掃引しました。それでも電流はどの帯域でも立ちませんでした。513帯域を一括で探索する周期変調スペクトルでも同じ。包絡、空間ベクトル、供給周波数まわりの復調、決定論成分の白色化と、一通り試して、すべて同じでした。

振動と電流のスペクトルに同じ予測線を引いた比較図
同一条件・同一処理で振動(左)と電流(右)のスペクトルを並べ、代表寸法から計算した外輪通過次数3.053に同じ縦線を引いた図。電流には軸の整数次(1・2・4・6・8次)が立っているのに、予測線のところだけが谷になっています。下段は100Hzから20kHzまで40帯域すべての掃引で、振動はどの帯域でも立ち、電流はどの帯域でも立ちません。

なお、この電流の照合に使ったデータは CC BY-NC 4.0、非商用・要表示の条件で公開されています。この記事は無料公開なので要件を満たしますが、有料の媒体に載せる場合はこの図の差し替えが必要になります。出典は記事末にまとめました。

理由は、同じ記録の別チャネルに書いてあった

このデータには荷重とトルクも同時収録されています。同じ次数で読むと、ラジアル荷重は健全の+14.5dBから実損傷の+38.3dB、82倍に育っていました。ところが軸トルクは、健全で−0.2dB、実損傷で+0.2dB。まったく動いていません。

外輪の傷はラジアル荷重を82倍揺らすのに、軸トルクは揺らさない。そして電流とは、トルクの測定値です。

前回、制御器は外乱をトルク指令へ押し出す、と書きました。あれは正しいのですが、押し出せるのはトルクを乱す外乱だけです。電流の感度そのものは足りています。同じ電流の包絡の中で、軸の整数次は2次が+26dB、4次が+30dBと立っています。立たないのはこの線だけです。

だから、前回の主張に条件を付けます。電流で見えるのは、トルク経路に乗っている異常です。噛み合いや偏心や軸系といった歯車側の異常はトルクを直接乱すので出ます。軸受の外輪傷はラジアル荷重を乱すがトルクをほとんど乱さないので、出ません。追加センサ無しで見えるのは減速機の歯車側であって、それを支える軸受側ではない。軸受まで見たいなら、加速度計を足すか、別の物理量に頼ることになります。

留保を二つ添える

ひとつ。この試験台には位置制御のループがありません。定速運転と受動的なブレーキ負荷で、外乱を抑えにいく制御器がそもそも存在しません。前回書いた、異常が電流に移るという機構が働く余地の無い条件です。ですから今回の結果は前回の話の反例にはならず、私が前回ひとつ書き落としていた必要条件が見えた形です。実際のサーボ軸で同じ実験をすれば、結果は変わりえます。

もうひとつ。このデータセットは元々、電流で軸受の故障を分類できることを示すために公開されたものです。機械学習の分類器なら、健全と損傷を電流から見分けられる。私が確かめたのは別の問いで、モデルが予測した次数の線が電流スペクトルに立つか、でした。分類器が見分けられることと、予測した線がそこに在ることは、同じではありません。分類器は、異常だ、とは言えますが、外輪だ、とは言えません。モデルは、外輪ならここに立つ、と言えます。ただ、今回は立ちませんでした。

人工傷と本物の傷は、鳴る帯域が違う

振動の側で、副産物がもうひとつ出ました。最もよく鳴る復調帯域が、人工傷では2.99kHz、実損傷では0.26kHzと、ちょうど一桁違うのです。人工傷で決めた帯域を本物の傷に使うと、8dB損をします。逆も同じです。

人工傷で作った検出器は、本物の傷に効くのか。この分野で長く議論されてきた問いへの、このデータからの答えは、次数の位置は共通、帯域の選び方は移らない、でした。位置は幾何が決めるので、人工傷でも実損傷でも同じ。どの周波数帯で鳴るかは、傷の形と構造の共振が決めるので、移りません。

ここまでの照合と、最終回

予測を二つのデータに当てて、当たり方と外れ方が分かれました。歯車では、ピークの位置は全部当たり、大きさの序列は外れた。電流では、立つはずの線が立たず、そのかわり、電流で見えるものの境界線が一本引けた。どちらも同じ形をしています。モデルが強いのは、どこを見るか。弱いのは、どれくらいか。

最終回は、残った最後の問いです。劣化を破壊まで追いかけたとき、警報の線はどこに引けるのか。5本の軸受を寿命まで走らせた公開データに、300本の閾値を引いて確かめます。そのうえで、ロボットの減速機のデータが公開されていないという話と、この連載で言えることの境界を書いて、締めくくります。

使用した公開データセット

  • Cao, P., Zhang, S., Tang, J. "Gear Fault Data". figshare (2018). DOI: 10.6084/m9.figshare.6127874.v1(CC BY 4.0。University of Connecticut。歯車の照合で使用。表示のみで商用可)
  • Lessmeier, C., Kimotho, J. K., Zink, D., Sextro, W. "Condition Monitoring of Bearing Damage in Electromechanical Drive Systems by Using Motor Current Signals of Electric Motors: A Benchmark Data Set for Data-Driven Classification". European Conference of the PHM Society (2016). KAt-DataCenter, Chair of Design and Drive Technology, Paderborn University(CC BY-NC 4.0。非商用のみ。電流の照合で使用)

生データは再配布せず、図はすべてデータから自分で計算して描いています。配布物の図の転載はしていません。

コード

この連載の図と数値は、すべて次のリポジトリから生成しています。

https://github.com/logicia32/reducer-health-labhttps://github.com/logicia32/reducer-health-lab

この記事は Zenn に初出したものを加筆・補足したものです ── Zenn の元記事を見る