複雑化したシステムが抱える保守点検の難しさ

産業機器や輸送機器など極めて複雑化したシステムにおいては、その保守点検も複雑化していく。一例を挙げれば航空機などの場合、すべての部品について飛行時間あるいは利用頻度に応じて点検を行い、異常があれば交換修理を行うといった運用が義務付けられている。ただ、この点検の頻度を上げると安全性は向上するものの稼働率が下がってしまうし、逆に頻度を落とすと重大事故に繋がる恐れがあるため、どの程度の頻度で何をチェックすべきか、は安全性と経済合理性の両面から慎重に検討されている。

これを改善する方法として、例えばセンサ類を増やして常に部品を監視することで、異常状態を早期に検出・対策を行うことで無駄な点検を減らしつつ安全性を高める、というアイディアは昔から出ている。ところが実際には

  • 必ずしも故障の可能性があるすべての部品にセンサを設置できるゆとりがあるとは限らない
  • 個々のセンサの値が、必ずしも大きな触れ幅を示すとは限らない。これは異常状態が単独の部品でのみ引き起こされる訳ではなく、複数の条件が組み合わさって起きる場合があるためで、個々の部品を監視するセンサそのものの値の変動は小さい場合がありえる
  • 実際の飛行状態と地上待機などの定常状態では環境が大きく異なるため、センサの値そのものも定常状態では異常と判断されるものが飛行状態では正常と分類される事もありえる。このため、定常状態における知見がそのまま飛行状態には適用できない

といった難しさが存在する。

ここでは航空機を例に取ったが、実はこうした問題は列車や発電所、大規模プラントなどさまざまなシステムでもかなりの部分共通化する問題である。

故障予知検出システムにMATLABを活用

三菱重工業(MHI)は、まさにそうした大規模・複雑なシステムやソリューションを提供する企業である。同社は現在、「エネルギー・環境」、「機械設備」、「交通」、「防衛宇宙」という4つの事業ドメインがあり、各々のドメインが各々の分野に向けた製品あるいはソリューションを提供しているが、いずれも提供される製品は大規模・複雑なシステムのものばかりであり、その多くに精度の高い故障予兆・検出システムが求められている。同社には、事業部を横断する形で技術的な支援を行うICTソリューション本部が設けられており、そこでこうした共通の課題解決に向けた取り組みが進められている。

冒頭に述べた航空機の油圧・空調系統の故障予知検出のシステムもその1つ。昨今の航空機は、翼の一部(エルロン・スポイラなど)を油圧で駆動し、これで機体の制御を行っている。例えばエルロンは左右の傾きの制御を行うし、スポイラは離着陸時に利用されるので、ここで油圧系統に故障が発生するのはクリティカルな事故に繋がりかねない。また空調系統はエンジン吸気部から高圧空気を抜き取って冷暖房に利用しており、エンジンを掛けた際に急激に負荷が掛かる。このため吸気部が離陸直前に故障、飛行中止といった事態が考えられる。

Photo01:三菱重工業(MHI) ICTソリューション本部の藤島泰郎氏

具体的な話として、油圧系統について「FMEA(Failure Model and Effect Analysis)」という分析を行った結果、エンジンポンプや制御バルブ、アクチュエータの異常が深刻な影響を及ぼすと判断されたという。これらは実際の機械を利用し、制御系や機体制御部はシミュレーションの形で実装、ここからポンプやバルブ・アクチュエータの値を確認することで異常の予知や検出を行う試みである。

ここで用いられた技術が、「SVM(Support Vector Machine)」と呼ばれる、一種の機械学習の手法である。通常SVMを使う場合、正常状態と異常状態の両方を流してデータを取り、これをSVMを使って分析する事で正常/異常のパターン判別方法を確立するというやり方だが、今回の様なケースでは異常状態の頻度が非常に少ない。そこで、まず正常値のみの学習を行って判断パターンを学習させる1クラスSVMという手法を利用する事になったと、開発に携わった同社ICTソリューション本部 システム技術開発部 情報・システム開発三課の藤島泰郎氏は語る(Photo01)。

このSVMを用いた故障予知判断システムは、すべてMATLAB/Simulink上で構成されている。正確にはSimulinkは制御系や機体制御部のハードウェアシミュレーションにのみ利用し、SVMを含む故障予知判断システムそのものはMALTAB上で実装されている。MATLABには以前からSVMをサポートするStatistics and Machine Learning toolboxが用意されていたが、同システムはこれを使わずに自身でSVMを含むシステム全体をMATLAB上で構築した。

これについて同氏は「既存の用意されているToolboxなどを使う場合、その中身を完全に把握していないといけません。あるいは、SVMを使う事が目的でない様なケースではToolboxを使うのもありえると思いますが、今回の場合はSVMを使って故障予知が行える事の検証が目的だったので、そこは自分で記述することにしました」としている。ではそもそも、何故MATLABか? については「理論をそのまま記述できるので非常に開発が楽になりました。ベクトルとか行列の演算とかが簡単ですし。これをもしC言語などを使って構築していたら、もっと大変だったろうと思います」とする。

Photo02:実験システムの概略。実際の機械は中央の青の部分のみで、あとはすべてSimulinkを利用したシミュレーションとなっている

このシステムによって、油温やポンプ吐出圧といった生データから、1クラスSVMを用いての故障予知診断が可能な事が示された(Photo03)。実際にはSVMで標準的に利用されるガウスカーネルだけではなく、評価関数を導入してカーネルパラメータの最適化を計るカスタムカーネルの開発も行い、これを利用する事でさらに精度が高まる事も確認されている。こうしたカスタムカーネルの開発も、MATLABを利用する事で容易に行えたそうだ。またここまでは触れていないが、こうした故障予知とあわせて、故障箇所の特定に向けてSOM(Self-Organization Map:自己組織化マップ)と呼ばれる技法も同時にインプリメントし、こちらでも故障部位の特定に有用な結果を得ているが、これもMATLAB上でインプリメントされたものである。

Photo03:1クラスSVMの場合、正常データのみを利用して機械学習を行い、その結果を元に生データの判断を行うが、正しく異常状態が検出できることが示されている

この研究の結果は、同社の技術論文の他、日本フルードパワーシステム学会でも技術解説記事として発表されている。社内的にも、すでにいくつかのシステムで同様の取り組みを行いたい、という声があるという。また長期的にはこうしたシステムを社内で広く使っていく事になると思われるが、その際に他のソフトウェア会社などが開発している同種のシステムとの差別化要因は「実際に自身でハードウェア(製品)を作っている」事になるだろう、との見通しであった。具体的にはより高い精度を持つシステムを構築することになるが、その際に「どのようにデータを取るようにすれば精度が高く出来るか」といった部分は、実際にその製品を作っている会社ならではの知見が生かせるだろう、との事だった。

こうした診断システムの構築に効果的と評するMATLABであるが、藤島氏は「開発中はビッグデータへの対応、処理性能などについて不満が残った」という。実は同氏が開発に使用したMATLABのバージョンはR2007aとのことで、大規模なデータの取り扱いには難があったためだ。もちろん同社には最新バージョンのMATLABをインストールした環境も多数存在しており、それらを活用すればビッグデータ処理もたやすくできるのだが、割り当てられたライセンスの都合などから、旧来のバージョンでの開発となったという。

ただし、今回の成果を踏まえて同氏は「今回の技法は、故障の予兆検出の唯一の方法という訳ではなく、他にも色々あると思います。ただ、それでもこの技法を確立したことで、予兆検出の分野で一歩前進できたと思っています」と語っており、そうした旧来のバージョンでも、複雑なシステムに対応することが示された形だ。毎年バージョンアップがなされ、さまざまな機能の拡充などが続けられてきたMATLAB/Simulinkだが、その根幹をなす使い勝手の高さは過去から変わらず続いてきた資産ともいえるだろう。