以下、本発明の実施形態について、図面を参照して説明する。
図1は、本発明の実施形態のシステムが稼動する環境を示す説明図である。
図1に示す本実施形態のシステムは、稼動場所1000、通信地点1100、データセンタ1130、及び、保守会社1140を含む環境において、実装される。また、図1に示す機器1020及び機器1040は、本実施形態において保守される機器である。
稼動場所1000は、本実施形態の保守される機器1020が稼動する場所である。稼動場所1000は、例えば鉱山などの僻地であり、データセンタ1130との接続が困難な場所である。
機器1020及び機器1040は、稼動場所1000において稼動する。機器1020は、例えば、トラック、油圧ショベル、又は、ローダといった採掘機器などである。機器1020は、稼動場所1000からの移動が可能であり、機器1040は、稼動場所1000からの移動が困難である。
通信地点1100は、データセンタ1130と通信が可能な設備を備える場所であり、例えば、事務所又は機器の整備場などである。通信地点1100は、稼動場所1000から離れた場所にある。
通信地点1100は、データセンタ1130と通信するための通信装置1120を備える。このため、機器1020は、稼動場所1000から通信地点1100に移動し、通信装置1120を介して、機器1020の状態を示すセンサデータをデータセンタ1130に送信することができる。また、機器1020は、故障の予兆を検知するために用いる診断モデルを、データセンタ1130から受信することができる。
また、通信地点1100から移動できない機器1040を保守する場合、保守員1030は、センサデータが蓄えられたストレージなどを機器1040内から取得し、取得されたストレージなどを、通信地点1100へ運ぶ。そして、保守員1030は、通信装置1120を介して、ストレージなどに蓄えられたセンサデータを、データセンタ1130に送信する。
さらに、保守員1030は、データセンタ1130から受信された診断モデルをストレージに格納し、診断モデルを格納されたストレージを機器1040まで運ぶ。そして、保守員1030は、診断モデルが格納されたストレージを、機器1040に接続することによって、機器1040に最新の診断モデル取得させることができる。
データセンタ1130は、高い処理性能を持つ計算機を備える。そして、通信装置1120を介して送信された大量のセンサデータを高速に分析し、機器1020又は機器1040の異常又は故障の予兆を診断するための診断モデルを生成する。
保守会社1140は、機器1020及び機器1040を保守する会社であり、機器1020及び機器1040の故障の予兆が検知された場合、データセンタ1130から報告を受信する。
機器1020及び機器1040は、ともに保守される機器である。このため、以降において機器1020及び機器1040を総称し、診断対象機器1010と記載する。
図2は、本発明の実施形態のシステムの論理的な構成を示すブロック図である。
診断対象機器1010は、データセンタ1130とネットワークを介して接続される。また、保守会社1140は、データセンタ1130とネットワークを介して接続される。
図3は、本発明の実施形態の診断対象機器1010の物理的な構成を示すブロック図である。
診断対象機器1010は、センサ3100(3100−1〜3100−N)、センサコントローラ3120、CPU3140、通信装置3160、機器側提示装置3180、不揮発性メモリ3300、及びRAM3400を備える。
センサ3100は、診断対象機器1010の現在の状態を示す物理量を測定するためのセンサである。診断対象機器1010の物理量とは、例えば、温度、回転数、又は、内蔵発電機の電流値などである。
センサコントローラ3120は、センサ3100からセンサデータを収集する。センサデータとは、センサ3100によって測定された結果のデータである。センサコントローラ3120は、収集されたセンサデータを、不揮発性メモリ3300に格納する。
CPU3140は、RAM3400に格納されるプログラム等を実行するためのプロセッサである。通信装置3160は、診断対象機器1010とデータセンタ1130との間で、データを送受信するための通信装置である。
通信装置3160は、通信地点1100に備わる通信装置1120と接続するための装置である。また、診断対象機器1010が機器1040である場合、センサデータを、磁気ディスク等のストレージに格納するための機能を持つ。
機器側提示装置3180は、診断対象機器1010における異常又は故障の予兆が検知された場合、診断対象機器1010を操作する作業者へ、検知された内容を表示するための装置である。機器側提示装置3180は、例えば、ディスプレイでもよく、また、音声を発する装置でもよい。
不揮発性メモリ3300は、例えば、フラッシュメモリなどであり、診断対象機器1010の電源を停止させても、格納された情報が保持される記憶媒体である。センサデータ及び診断モデル等を格納する。不揮発性メモリ3300は、機器側センサテーブル3330、機器側診断モデルテーブル3360、次回接続日データ3350、診断モデル欠乏フラグデータ3370、前回更新日データ3375、診断モデル3470、及び、前回接続日データ3380を保持する。
機器側センサテーブル3330は、診断対象機器1010において測定されたセンサデータを格納するテーブルである。機器側診断モデルテーブル3360は、診断モデル3470に格納される診断モデルが、いずれの日に収集されたか(すなわち、生成されたか)を格納するためのテーブルである。
次回接続日データ3350は、診断対象機器1010がデータセンタ1130に、次に接続する日を示す。診断モデル欠乏フラグデータ3370には、診断対象機器1010において異常又は故障の予兆を診断するために用いる診断モデル3470が最新版であるか否かを示すフラグが格納される。
前回更新日データ3375は、診断対象機器1010において用いられる診断モデル3470が、最後に更新された日を示す。診断モデル3470は、診断対象機器1010の異常等を診断するための診断モデルが格納される。前回接続日データ3380は、データセンタ1130に最後に接続された日を示す。
RAM3400は、CPU3140が実行するプログラムを保持し、DRAMやSRAMといった高速な読み書きができる記憶装置である。RAM3400は、異常診断プログラム3420、センサデータ送信プログラム3440、及び、診断モデル更新プログラム3460を保持する。
異常診断プログラム3420は、センサコントローラ3120がセンサデータを収集した後、収集されたセンサデータを分析するプログラムである。そして、これによって、診断対象機器1010が異常であるか否かを診断し、また、故障の予兆があるか否かを診断するプログラムである。
センサデータ送信プログラム3440は、機器側センサテーブル3330に格納されたセンサデータをデータセンタ1130に送信するプログラムである。
診断モデル更新プログラム3460は、機器側診断モデルテーブル3360に格納される診断モデルを取得し、不揮発性メモリ3300にロードすることによって診断モデル3470を更新するプログラムである。
診断モデル3470は、センサデータに基づいて、診断対象機器1010の異常等を診断する際に、異常診断プログラム3420によって用いられるデータである。
図4は、本発明の実施形態のデータセンタ1130及び保守会社1140の物理的な構成を示すブロック図である。
データセンタ1130は、CPU3530、通信装置3560、RAM3600、及び、HDD3700を備える。
CPU3530は、RAM3600に格納されるプログラムを実行するプロセッサである。通信装置3560は、診断対象機器1010と通信するための装置である。
RAM3600は、例えば、DRAM又はSRAMなどであり、高速な読み書きが可能な記憶装置である。RAM3600は、診断モデル作成プログラム3620、診断モデル片検索・更新プログラム3640、次回接続日算出プログラム3630、及び、診断モデル片マージプログラム3650を保持する。
診断モデル作成プログラム3620は、診断対象機器1010から送信されたセンサデータを分析し、診断対象機器1010の異常等を診断するために用いられる診断モデルを生成するプログラムである。診断モデル片検索・更新プログラム3640は、センタ側診断モデル片テーブル群3740から、診断対象機器1010に必要な診断モデル片を検索し、また、診断対象機器1010に必要な診断モデル片を更新するプログラムである。
次回接続日算出プログラム3630は、データセンタ1130と診断対象機器1010とが接続されるべき日を算出するプログラムである。診断モデル片マージプログラム3650は、診断モデル片をマージすることによって、数日分(後述する、学習日)のセンサデータの正常範囲を示す診断モデルを生成するプログラムである。
HDD3700は、例えば、大容量のハードディスクドライブである。図1の稼動場所1000において稼動する全ての診断対象機器1010のセンサデータと、診断モデルのデータとを保持する。HDD3700は、機器センサ構成テーブル3710、機器診断構成テーブル3720、機器稼動日構成テーブル3750、センタ側センサテーブル群3730、センタ側診断モデル片テーブル群3740、及び、稼動日テーブル群3760を保持する。
機器センサ構成テーブル3710は、稼動場所1000において稼動する全診断対象機器1010を一意に示す識別子と、その識別子に対応するセンサデータが格納されるテーブル名を保持する。センタ側センサテーブル群3730は、診断対象機器1010において測定されたセンサデータを、診断対象機器1010ごとに保持するテーブル群である。
機器診断構成テーブル3720は、稼動場所1000において稼動する全診断対象機器1010の識別子と、その識別子に対応する診断モデルが格納されるテーブル名を保持する。センタ側診断モデル片テーブル群3740は、診断対象機器1010の診断モデルを、診断対象機器1010ごとに保持するテーブルである。
機器稼動日構成テーブル3750は、稼動場所1000において稼動する全診断対象機器1010の識別子と、その識別子に対応する診断対象機器1010の稼動日とを保持する稼動日テーブル群3760のテーブル名を保持する。稼動日テーブル群3760は、診断対象機器1010の稼動日を、診断対象機器1010ごとに保持するテーブル群である。
保守会社1140は、保守会社サーバ3920、及び保守会社側提示装置3940を備える。
保守会社サーバ3920は、保守会社1140内に設置される計算機である。データセンタ1130による診断の結果、図1の稼動場所1000において稼動する診断対象機器1010に、異常が発生した、又は、故障の予兆がある場合、保守会社サーバ3920は、データセンタ1130から異常を示す報告を受信する。
保守会社側提示装置3940は、保守会社サーバ3920が受信した診断対象機器1010の異常の報告を、保守会社1140に所属するシステム管理者等に通知するための装置である。保守会社側提示装置3940は、異常の報告を通知するための液晶ディスプレイ、ブラウン管、又は、音声提示装置などを備える。
図5は、本発明の実施形態の機器側センサテーブル3330を示す説明図である。
機器側センサテーブル3330は、取得時刻4100及びセンサデータ4110(4110−1〜4110−N)を含む。センサデータ4110(4110−1〜4110−N)は、センサ3100(3100−1〜3100−N)から収集されたセンサデータの値を示す。
取得時刻4100は、センサ3100(3100−1〜3100−N)からセンサデータ4110(4110−1〜4110−N)が、各々収集された時刻を示す。センサコントローラ3120は、センサデータを短い周期で収集するか、または、センサ3100による測定の周期に従って収集する。このため、取得時刻4100は、センサ3100によって、センサデータが生成された時刻と、ほぼ同じである。
機器側センサテーブル3330における取得時刻4100が指定されることによって、指定された取得時刻4100に対応するセンサデータ4110が取得される。
図6は、本発明の実施形態の機器側診断モデルテーブル3360を示す説明図である。
機器側診断モデルテーブル3360は、診断日4420及び診断モデル4430を含む。診断モデル4430は、診断モデルを一意に示す識別子である。診断日4420は、診断モデル4430が示す診断モデルによって、センサデータを診断する日を示す。
本実施形態における診断モデルとは、測定されたセンサデータの、正常値の範囲を示すモデルである。図15を用いて診断モデルと診断モデルによる異常診断とを説明する。
図7A〜Eは、本発明の実施形態のセンサデータの分布と診断モデルを示す説明図である。
図7Aのモデル12100は、センサ3100−1とセンサ3100−2とを備える診断対象機器1010が、正常に稼動している場合、センサ3100−1とセンサ3100−2によって測定された1日分のセンサデータを、センサデータが収集された時刻(取得時刻4100)ごとに2次元の座標系に図示した分布である。なお、図7Aに示す点12110は、一つのセンサデータを示す。
モデル12100が示すセンサデータの分布と、機械学習技術の一つであるクラスタリング技術とに基づいて、センサデータの傾向が学習された場合、図7Bのモデル12200の円12210のように、正常なセンサデータの分布が円によって近似される。
図7Cのモデル12300は、モデル12100のセンサデータの分布がすべて円によって近似された場合の、三つの円を示す。そして、近似された円の、中心座標と半径とが算出される。
収集されたセンサデータが、モデル12300に示す円に含まれる場合、センサ3100−1とセンサ3100−2とが測定する診断対象機器1010は、正常に稼動していることを示す。
また、本実施形態において、前述のように求められた正常なセンサデータの分布から、収集されたセンサデータが外れる場合、測定された診断対象機器1010には、異常があると診断される。例えば、モデル12200に含まれる点12230のようなセンサデータがセンサ3100−1とセンサ3100−2とから収集された場合、センサ3100−1とセンサ3100−2とが測定する診断対象機器1010には、異常があると診断される。
さらに、図7Dのモデル12400は、センサ3100−1とセンサ3100−2とによって別の日に測定されたセンサデータが、前述と同じくクラスタリング技術を用いて学習された結果、求められた正常なセンサデータの分布を示す。ここで、モデル12300とモデル12400とをマージすることによって、2日分の正常なセンサデータの分布を示す診断モデルが生成される。
図7Eは、モデル12300とモデル12400とをマージすることによって生成された診断モデル12500を示す。なお、本実施形態において、センサデータの分布をマージする場合、分布と分布との論理和が求められる。
すなわち、センサデータの分布をマージして診断モデルを生成する場合、具体的には、各モデルに含まれる分布の、近似された円の中心座標と半径とのデータが、各々追加されることによって診断モデルが生成される。
以降、本実施形態において、モデル12300のように、1日ごとに生成される正常なセンサデータの分布を示すモデルを、診断モデル片と記載する。また、複数の診断モデル片をマージすることによって生成される、複数日の正常なセンサデータの分布を示すモデルを診断モデルと記載する。本実施形態において、診断モデルは、診断対象機器1010のセンサデータを診断するために用いられる。
図8は、本発明の実施形態の診断モデル4430を示す説明図である。
診断モデル4430は、不揮発性メモリ3300に格納される。診断モデル4430は、診断モデルID4431、正常範囲中心4433及び正常範囲半径4436を含む。
診断モデルID4431は、診断モデルを一意に示す識別子であり、機器側診断モデルテーブル3360の診断モデル4430に格納される識別子に対応する。正常範囲中心4433は、診断モデルID4431が示す診断モデルの中心座標を示す。また、正常範囲半径4436は、診断モデルID4431が示す診断モデルの半径を示す。
本実施形態の診断対象機器1010によるセンサデータの診断方法は、診断日4420より前に収集されていたセンサデータを、学習することによって診断モデルを生成する。そして、生成された診断モデルを、あらかじめ、診断モデル4430に格納しておく。そして、診断日4420が示す日になった際に、その診断日4420に対応する診断モデルを用いて、センサデータを診断する。
本実施形態において、学習する対象となるセンサデータが、診断対象機器1010において生成された日を、学習日と記載する。学習日は、診断する日より前の、1日以上の日数を含む。学習日に含まれる日数は、あらかじめ管理者等によって定められる。
さらに、診断モデルは、学習日に含まれる各日における診断モデル片によって生成されるため、学習日における診断対象機器1010の状態に基づいて生成される。そして、周囲の環境及び機器の経年劣化などによって診断対象機器1010の状態は、日々変化する。このため、学習日には、診断日に近い日が選ばれる必要がある。
図9は、本発明の実施形態のすべての学習日において診断対象機器1010が稼動する場合の診断日及び学習日を示す説明図である。
日程13600は、診断対象機器1010がすべての学習日において稼動する場合の、学習日、診断日、及び、診断遅れ日を示す。また、日程13600は、日程13600A、日程13600B、及び、日程13600Cの三つの例を含む。
日程13600は、枠ごとに日付が示される。日程13600は、4月1日〜4月19日の各日を示す。
日程13600Aにおいて、学習日は4月1日〜4月7日である。そして診断日は、学習日の最終日である4月7日から、7日後の4月14日である。ここで、日程13600における診断遅れ日は、7日間である。また、学習日に含まれる日数も、7日間である。
本実施形態における診断遅れ日とは、学習日の最終日から、診断日までの日数である。診断遅れ日は、管理者等によってあらかじめ定められた値である。
診断遅れ日の値は、稼動場所1000の環境、又は、診断対象機器1010の種類などに依存する。このため、あらかじめ様々な診断遅れ日が試された結果、異常診断をする精度がもっとも高い最適値が、管理者等によって、診断遅れ日に定められる。
さらに、診断日が1日移動するごとに学習日も1日移動する。日程13600Bは、日程13600Aの診断日を、1日未来に移動させた場合の、学習日及び診断遅れ日を示す。日程13600Bにおける診断日は、4月15日であり、学習日は、4月2日〜4月8日である。日程13660Bの学習日は、診断日とともに1日未来に移動され、診断遅れ日は変化しない。
日程13600Cは、日程13600Bにおける診断日を、さらに1日未来に移動させた場合の学習日及び診断遅れ日13640を示す。日程13600Cにおける診断日は、4月16日であり、学習日は、4月3日〜4月9日である。
図10は、本発明の実施形態の学習日に診断対象機器1010が稼動しない日がある場合の診断日及び学習日を示す説明図である。
日程13700は、日程13700A及び日程13700Bの二つの例を含む。
日程13700Aは、すべての学習日において診断対象機器1010が稼動する場合の診断日及び学習日を示す。日程13700Aにおける学習日は、4月4日〜4月10日であり、診断日は4月17である。
日程13700Bは、日程13700Aにおける学習日のうちの二日間、診断対象機器1010が稼動しない場合の例である。診断対象機器1010が稼動しない日には、診断対象機器1010においてセンサデータが収集されない。日程13700Bにおいて、診断対象機器1010が稼動しない日(以下、非稼働日と記載)は、4月8日及び4月9日である。
学習に用いられるセンサデータの数が減る場合、生成された診断モデルの精度は下がる。このため、本実施形態において、非稼動日が発生した場合、診断対象機器1010の非稼動日の分、過去へ学習日を延ばす。日程13700Bにおける4月2日及び4月3日は、4月8日及び4月9日の非稼動日の分、過去へ延ばされた学習日である。
しかし、学習日を過去へ延ばす場合、生成された診断モデルには、過去のセンサデータの傾向が強く反映される。このため、診断日も、学習日とあわせて過去へ移される必要がある。
特に、生成された診断モデルは、非稼動日が診断日に近いほど、非稼動日が無かった場合と比べて、より過去のセンサデータの傾向を強く反映する。このため、非稼動日が診断日に近いほど、診断日を多く過去に戻す必要がある。
そこで、本実施形態における、診断日を過去に戻す日数は、学習日と診断日との間の平均日数差に基づいて算出する。学習日と診断日との間の平均日数差の計算式は、例えば、以下の計算式(1)である。
平均日数差={(診断日−学習日開始日)+(診断日−(学習開始日+1))+(診断日−(学習開始日+2))+(診断日−(学習開始日+3))+・・・+(診断日−学習終了日)}/学習日日数 ・・・(1)
日程13700Aにおける学習日と診断日との間の平均日数差は、前述の計算式(1)によって以下のように算出される。
日程13700Aにおける平均日数差:{(17−4)+(17−5)+(17−6)+・・・+(17−10)}/7=10日
さらに、日程13700Bにおいて、学習日が4月2日〜4月7日及び4月10日であり、診断日が4月17日である場合の、学習日と診断日との間の平均日数差は、以下のように算出される。
日程13700Bにおける平均日数差:{(17−2)+(17−3)+(17−4)+・・・+(17−7)+(17−10)}/7=11.7日
すなわち、学習日の期間中に非稼動日が無い場合の平均日数差(10日)より、学習日の期間中に非稼動日がある場合の平均日数差のほうが、約2日長くなる。このため、日程13700Aにおける診断日を2日過去に移動させ、非稼動日が発生した場合の診断日を4月15日にする。これによって、学習日におけるセンサデータは、あらかじめ決定されていた最適な診断遅れ日と同等の日数が経過した後に診断される。そして、これによって本発明は、診断モデルの精度の低下を防止することができる。
さらに、本実施形態における診断対象機器1010において、診断モデルは毎日更新される必要がある。一方で、データセンタ1130へ毎日接続する場合、診断対象機器1010の運用費用又は保守費用が上がるため、診断対象機器1010は、データセンタ1130に毎日接続されるとは限らない。
そこでデータセンタ1130は、診断対象機器1010と接続された接続日において診断対象機器1010から送信された接続日までのセンサデータに基づいて、接続日以降の診断日における診断モデルを、可能な限り生成する必要がある。そして、生成された数日分の診断モデルを、診断対象機器1010に送信する必要がある。
例えば、データセンタ1130は、診断日が接続日+1日である場合に用いられる診断モデル、診断日が接続日+2日である場合に用いられる診断モデル、・・・、及び、診断日が接続日+N日である場合に用いられる診断モデルを、診断対象機器1010と接続時に生成する。
診断対象機器1010は、データセンタ1130から送信された診断モデルを、図6の機器側診断モデルテーブル3360に格納する。これによって、診断対象機器1010は、データセンタ1130と毎日接続できなくても、機器側診断モデルテーブル3360に格納された診断モデル4430が、すべて使用されるまで診断対象機器1010のみによって、センサデータを診断できる。
本発明は、データセンタ1130によって生成された診断モデルが、診断対象機器1010においてすべて使用される日を、データセンタ1130との次回接続日とする。そして、診断対象機器1010は、次回接続日において新たな診断モデルを受信することによって、常に診断対象機器1010の診断モデルが不足しないようにする。
例えば、図10の日程13700A及び日程13700Bにおいて、データセンタ1130と診断対象機器1010とが4月10日に接続された場合、学習に使えるセンサデータは、4月10日までに診断対象機器1010において収集されたセンサデータである。
日程13700Aにおいて、診断対象機器1010がデータセンタ1130から送信された診断モデルによって最後にセンサデータの診断できる日は、診断遅れ日である7日後の4月17日である。すなわち、次回接続日は4月18日である。
一方、日程13700Bにおいて、診断対象機器1010がデータセンタ1130から送信された診断モデルによって最後に診断できる日は、学習日と診断日との間の平均日数差を考慮した4月15日である。すなわち、次回接続日は4月16日である。
なお、次回接続日までに、事故などによって診断対象機器1010がデータセンタ1130に接続できず、診断モデルが不足した場合、診断モデル欠乏フラグデータ3370に"有効"が格納される。そして、診断モデル欠乏フラグデータ3370に"有効"が格納される場合、古い診断モデルによってセンサデータが診断される。
診断モデル欠乏フラグデータ3370に"有効"が格納されている場合において、診断対象機器1010によって、診断対象機器1010が異常であると診断された場合、用いる診断モデルが古いため、誤った診断である可能性がある。このため、後述の処理によって、データセンタ1130によって再度診断が行われる。
図11は、本発明の実施形態のデータセンタ1130によって保持される機器センサ構成テーブル3710を示す説明図である。
機器センサ構成テーブル3710は、機器ID4610、テーブル名4630、及びセンサ名4650を含む。機器ID4610は、診断対象機器1010を一意に示す識別子である。
テーブル名4630は、機器ID4610が示す診断対象機器1010から送信されたセンサデータが格納されるテーブルを、一意に示す識別子である。センサ名4650は、診断対象機器1010に備わるセンサ3100を一意に示す名称が格納される。
機器センサ構成テーブル3710によれば、機器ID4610に基づいて、センサデータが格納されたセンタ側センサテーブル群3730を抽出することができる。
図12は、本発明の実施形態のデータセンタ1130によって保持されるセンタ側センサテーブル群3730を示す説明図である。
センタ側センサテーブル群3730は、診断対象機器1010から送信されたセンサデータが格納されるテーブルの集合である。センタ側センサテーブル群3730は、テーブル名4920、取得時刻4925、及び、センサデータ4930(4930−1〜4930−N)を含む。
テーブル名4920は、センタ側センサテーブル群3730に含まれるテーブルを一意に示す識別子である。テーブル名4920は、図11に示す機器センサ構成テーブル3710のテーブル名4630に対応する。
取得時刻4925は、センサ3100からセンサデータ4930が、各々収集された時刻を示す。すなわち、センサデータ4930が生成された時刻を示す。図5に示す機器側センサテーブル3330の取得時刻4100に対応する。
センサデータ4930(4930−1〜4930−N)は、センサ3100から収集されたセンサデータの値を示す。センサデータ4930は、図5に示す機器側センサテーブル3330のセンサデータ4110に対応する。
データセンタ1130は、診断対象機器1010のセンサデータを抽出する場合、機器センサ構成テーブル3710の機器ID4610に対応するテーブル名4630を抽出し、抽出されたテーブル名4630に対応するテーブル名4920のセンサデータ4930を抽出する。その際、センサデータ4930の取得時刻4925に基づいて、センサデータを抽出する。
図13は、本発明の実施形態のデータセンタ1130によって保持される機器診断構成テーブル3720を示す説明図である。
機器診断構成テーブル3720は、機器ID5410、及び診断モデル片テーブル名5440を含む。機器ID5410は、診断対象機器1010を一意に示す識別子であり、図11に示す機器センサ構成テーブル3710の機器ID4610に対応する。診断モデル片テーブル名5440は、診断モデル片が格納されるテーブルを一意に示す識別子である。
データセンタ1130は、機器診断構成テーブル3720と機器ID5410とに基づいて、センタ側診断モデル片テーブル群3740に含まれるテーブルの識別子を抽出できる。
図14は、本発明の実施形態のデータセンタ1130によって保持されるセンタ側診断モデル片テーブル群3740を示す説明図である。
センタ側診断モデル片テーブル群3740は、診断モデル片が格納されるテーブルの集合である。診断モデル片とは、前述のとおり、診断対象機器1010から送信されたセンサデータが学習されることによって生成された1日ごとの診断モデルである。
センタ側診断モデル片テーブル群3740に含まれる各テーブルは、診断モデル片テーブル名5620、元データ取得日5610、及び、診断モデル片5640を含む。診断モデル片テーブル名5620は、診断モデル片が格納されるテーブルを一意に示す識別子である。診断モデル片テーブル名5620は、図13に示す機器診断構成テーブル3720の診断モデル片テーブル名5440に対応する。
元データ取得日5610は、診断モデル片が生成される際に用いられたセンサデータがセンサ3100から収集された日、すなわち、センサデータが生成された日を示す。元データ取得日5610は、センタ側センサテーブル群3730の取得時刻4925に対応する。
診断モデル片5640は、診断モデル片を一意に示す識別子である。
図15は、本発明の実施形態の診断モデル片5640を示す説明図である。
図15は、1日分のセンサデータから学習された結果である診断モデル片5640のデータ構造を示す。
診断モデル片5640は、診断モデル片ID5641、正常範囲中心5643、及び、正常範囲半径5646を含む。診断モデル片ID5641は、センタ側診断モデル片テーブル群3740の診断モデル片5640に格納される値に対応する。
正常範囲中心5643は、診断モデル片5640の正常範囲の中心座標である。また、正常範囲半径5646は、診断モデル片5640の正常範囲の半径である。
データセンタ1130は、元データ取得日5610を参照することによって、数日分の診断モデル片5640を抽出する。そしてデータセンタ1130は、抽出された数日分の診断モデル片5640をマージすることによって、数日分の正常範囲を含む診断モデルを生成する。
図16は、本発明の実施形態のデータセンタ1130によって保持される機器稼動日構成テーブル3750を示す説明図である。
機器稼動日構成テーブル3750は、機器ID11150、及び、稼動日テーブル名11170を含む。機器ID11150は、診断対象機器1010を一意に示す識別子であり、機器ID5410、及び、機器ID4610に対応する。
稼動日テーブル名11170は、診断対象機器1010が稼動する日を示す情報が格納されるテーブルを一意に示す識別子である。データセンタ1130は、機器ID11150を参照することによって、診断対象機器1010が稼動する日を示す情報が格納されたテーブルの識別子を抽出できる。
図17は、本発明の実施形態のデータセンタ1130によって保持される稼動日テーブル群3760を示す説明図である。
稼動日テーブル群3760は、診断対象機器1010が稼動したのか、休みなどで稼動しない日なのかを、1日ごとに示す。
稼動日テーブル群3760に含まれる各テーブルは、稼動日テーブル名11500、日付11700、及び状態11600を含む。稼動日テーブル名11500は、診断対象機器1010が稼動する日を示す情報が格納されるテーブルを一意に示す識別子である。稼動日テーブル名11500は、機器稼動日構成テーブル3750の稼動日テーブル名11170に対応する。日付11700には、1日単位で日付が格納される。
状態11600は、日付11700において、診断対象機器1010が稼動しているか否かを示す。本実施形態において、診断対象機器1010が稼動する場合、状態11600は"稼動日"を示し、診断対象機器1010が稼動しない場合、状態11600は"非稼動日"を示す。
稼動日テーブル群3760の状態11600には、保守員等によって、診断対象機器1010の稼動予定に従って、あらかじめ値が格納されてもよい。
稼動日テーブル群3760は、診断対象機器1010ごとにテーブルが分かれている。データセンタ1130は、日付11700を参照することによって、各診断対象機器1010の状態11600を抽出することができる。
図18は、本発明の実施形態の全体の処理を示すフローチャートである。
まず、診断対象機器1010が稼動し始める(S6010)。具体的には、診断対象機器1010がトラック又はショベルカーなどの移動可能な機器1020である場合、作業員がエンジンスイッチを入れることを意味する。また、発電機などの据え置き型の機器1040である場合、作業員が電源のスイッチを入れることを意味する。
S6010の後、診断対象機器1010は、現在日が前回の診断モデルの更新日から1日以上経過しているか否かを判定する。具体的には、図3に示す前回更新日データ3375を参照し、診断対象機器1010における現在日が、参照された前回更新日データ3375よりも1日以上経過しているか否かを判定する(S6015)。なお、診断対象機器1010は、診断対象機器1010が運転中に、現在日を取得する機能を備える。
前回更新日データ3375から1日以上経過している場合、現在日は、診断モデルを更新する日であるため、診断対象機器1010は、S6020に移行する。前回更新日データ3375から1日も経過していない場合、診断モデルを更新する必要がないため、診断対象機器1010は、S6025に移行する。
診断対象機器1010は、S6015によって、診断対象機器1010における診断モデルを一日ごとに更新する。
S6020において、診断対象機器1010は、後述するサブルーチンSUB0によって、診断モデルを更新する。
図19は、本発明の実施形態のサブルーチンSUB0の処理を示すフローチャートである。
S6015の後、診断モデル更新プログラム3460は、機器側診断モデルテーブル3360を参照することによって、診断日4420が現在日の日付である診断モデル4430を抽出する(S7100)。
S7100の後、診断モデル更新プログラム3460は、S7100の結果、診断日4420が現在日の日付である診断モデル4430が抽出できたか否かを判定する(S7200)。
診断日4420が現在日の日付である診断モデル4430が抽出できた場合、診断モデル更新プログラム3460は、S7300に移行する。また、診断日4420が現在日の日付である診断モデル4430が抽出できない場合、診断モデル更新プログラム3460は、S7400に移行する。
S7300において、診断モデル更新プログラム3460は、S7100において抽出された診断モデル4430を、不揮発性メモリ3300の診断モデル3470にロードする。ロードされることによって、診断対象機器1010は、最新の診断モデル3470を用いてセンサデータを診断できる。
S7400において、診断モデル更新プログラム3460は、診断モデル欠乏フラグデータ3370に、診断モデルが欠乏していることを示す"有効"の値を格納する。診断モデル欠乏フラグデータ3370に、"有効"の値を格納することによって、診断対象機器1010は、後述の処理において、データセンタ1130に診断モデルを生成させるか、又は、センサデータを診断させることができる。
S7300又はS7400の後、診断モデル更新プログラム3460は、前回更新日データ3375を、現在日の日付によって更新する(S7500)。前回更新日データ3375を、現在日の日付によって更新することによって、診断対象機器1010は、S6015において、診断モデルを更新するべきか否かを判定することができる。
S7500の後、診断モデル更新プログラム3460は、図19に示す処理を終了する。
S6015又はS6020の後、診断対象機器1010は、次回接続日データ3350を参照することによって、現在日がデータセンタ1130との次回接続日であるか否かを判定する(S6025)。
現在日がデータセンタ1130との次回接続日である場合、又は、現在日がデータセンタ1130との次回接続日を過ぎている場合、データセンタ1130と接続するため、診断対象機器1010は、S6030に移行する。現在日がデータセンタ1130との次回接続日よりも前の日である場合、データセンタ1130と接続する必要はないため、診断対象機器1010は、S6035に移行する。
S6030において、診断対象機器1010は、後述するサブルーチンSUB1によって、データセンタ1130と接続する。また、S6030において診断対象機器1010は、データセンタ1130へセンサデータを送信し、診断モデルをデータセンタ1130から受信する。
図20は、本発明の実施形態のサブルーチンSUB1の処理を示すフローチャートである。
図20に示すS8020、S8080及びS8090の処理は、センサデータ送信プログラム3440によって実行される。
診断対象機器1010は、データセンタ1130と接続し、データの送受信を開始する(S8010)。
具体的には、S8010において、診断対象機器1010がトラック又はショベルカーなどの機器1020である場合、作業員等は、図1に示す通信地点1100まで機器1020を移動させる。そして、機器1020とデータセンタ1130とは、通信装置1120を介してデータの送受信を開始する。
また、S8010において、診断対象機器1010が発電機などの据え置き型の機器1020である場合、作業員等が、通信地点1100まで機器1020を移動させるのは困難である。このため、図1に示す保守員1030等は、機器1020のセンサデータ等をストレージに複写し、センサデータ等が複写されたストレージを通信地点1100の場所に運び、そして、通信地点1100においてデータセンタ1130とのデータの送受信を開始する。
センサデータ送信プログラム3440は、通信装置1120を介して、データセンタ1130にセンサデータ等を送信する。送信されるセンサデータ等には、少なくとも、データセンタ1130に接続された診断対象機器1010の識別子と、センサデータと、センサデータが生成された時刻(すなわち、取得時刻4100)と、診断モデル欠乏フラグデータ3370と、前回接続日データ3380とが含まれる(S8020)。
センサデータ送信プログラム3440は、S8020において、前回接続日データ3380を参照することによって、データセンタ1130に前回接続された日を抽出する。そして、取得時刻4100を参照することによって、機器側センサテーブル3330に格納されるセンサデータ4110のうち、データセンタ1130に前回接続された日から現在日までの診断対象機器1010のセンサデータ4110を抽出する。
具体的には、センサデータ送信プログラム3440は、S8020において、前回接続日データ3380から抽出されたデータセンタ1130に前回接続された日を、不揮発性メモリ3300内に読み込む。そして、そのデータセンタ1130に前回接続された日から現在日までの取得時刻4100とセンサデータ4110とを機器側センサテーブル3330から抽出し、抽出された取得時刻4100とセンサデータ4110とをRAM3400にロードする。さらに、ロードされた取得時刻とセンサデータとをデータセンタ1130に送信する。
また、センサデータ送信プログラム3440は、S8020において、診断モデル欠乏フラグデータ3370に格納された"有効"又は"無効"を示す値を、データセンタ1130に送信する。また、診断対象機器1010は、あらかじめ自らを一意に示す識別子を保持する。このため、センサデータ送信プログラム3440は、自らが保持される診断対象機器1010の識別子(ID)を、データセンタ1130に送信する。
S8020において、データセンタ1130は、受信されたセンサデータ等によって、センタ側センサテーブル群3730を更新する。センサデータ等を新たな診断対象機器1010から送信された場合、データセンタ1130は、機器センサ構成テーブル3710も更新する。
なお、図17に示す稼動日テーブル群3760は、S8020において受信されたセンサデータと、センサデータの取得時刻とによって、更新されてもよい。
すなわち、センサデータの取得時刻が存在しない日は非稼動日であるため、センサデータの取得時刻が存在しない日に対応する日付11700を抽出し、抽出された日付11700の状態11600に、"非稼動日"を格納してもよい。また、センサデータの取得時刻が存在する日は稼動日であるため、センサデータの取得時刻が存在する日に対応する日付11700を抽出し、抽出された日付11700の状態11600に"稼動日"を格納してもよい。
S8020の後、データセンタ1130は、診断対象機器1010の次回接続日を算出する(S8030)。
S8030において、データセンタ1130は、後述するサブルーチンSUB11によって、診断対象機器1010の次回の接続日を算出する。
図21は、本発明の実施形態のサブルーチンSUB11の処理を示すフローチャートである。
データセンタ1130に保持される次回接続日算出プログラム3630は、センサデータを学習するための学習日の間に、非稼動日がない場合の学習日と診断日との間の平均日数差を、前述の計算式(1)によって算出する(S8110)。なお、データセンタ1130は、あらかじめ定められた学習日を保持する。
また、データセンタ1130は、現在日を取得する機能を備え、データセンタ1130における現在日と診断対象機器1010における現在日とは、同期されている。
具体的には、次回接続日算出プログラム3630は、現在日(すなわち、データセンタ1130と診断対象機器1010とが接続された最新の日)から過去へ学習日分さかのぼった期間において非稼動日がない場合において、診断対象機器1010から送信されたセンサデータによって診断が可能な、最も未来の診断日を算出する。そして、次回接続日算出プログラム3630は、前述の計算式(1)と算出された最も未来の診断日とによって、平均日数差を算出する。
なお、診断対象機器1010がデータセンタ1130に送信できるセンサデータが、診断対象機器1010とデータセンタ1130との最新の接続日の前日までのセンサデータである場合、データセンタ1130は、データセンタ1130によって受信されたセンサデータのうち、最も新しいセンサデータの取得時刻から過去へ学習日分さかのぼった期間におけるセンサノードによって、最も未来の診断日を算出する。
S8110の後、次回接続日算出プログラム3630は、非稼動日を考慮した平均日数差を、前述の計算式(1)によって算出する(S8120)。ここで、次回接続日算出プログラム3630は、図16に示す機器稼動日構成テーブル3750と稼動日テーブル群3760とに基づいて、非稼動日を抽出する。まず、S8020において受信された診断対象機器1010の識別子から、機器ID11150と稼動日テーブル名11170とを抽出し、抽出された稼動日テーブル名11170に対応する稼動日テーブル名11500を稼動日テーブル群3760から抽出する。そして、抽出された稼動日テーブル名11500を参照することによって、学習日中の非稼動日を抽出する。
S8120の後、次回接続日算出プログラム3630は、変数DをRAM3600に保持する。そして次回接続日算出プログラム3630は、S8110において算出された平均日数差から、S8120において算出された平均日数差を減算した日数を、変数Dに格納する(S8130)。
次回接続日算出プログラム3630は、以下の計算式によって、データセンタ1130と診断対象機器1010との次回接続日を算出する。
次回接続日=現在日+診断遅れ日−変数D ・・・(2)
なお、診断対象機器1010がデータセンタ1130に送信できるセンサデータが、診断対象機器1010とデータセンタ1130との最新の接続日の前日までのセンサデータである場合、データセンタ1130は、前述の計算式(2)の現在日を、最も新しいセンサデータの取得時刻に変更することによって、次回接続日を算出する。
次回接続日算出プログラム3630は、前述の計算式(2)によって算出された次回接続日をサブルーチンSUB11の返り値とする(S8140)。そして、次回接続日算出プログラム3630は、サブルーチンSUB11を終了する。
S8030の後、データセンタ1130は、サブルーチンSUB10によって、次回接続日までの複数日分の診断モデルを生成する(S8040)。
図22は、本発明の実施形態のサブルーチンSUB10の処理を示すフローチャートである。
データセンタ1130は、まず、S8020において受信されたセンサデータに基づいて、診断モデル片を生成するため、サブルーチンSUB100を実行する(S9010)。
図23は、本発明の実施形態のサブルーチンSUB100の処理を示すフローチャートである。
診断モデル片検索・更新プログラム3640は、変数XをRAM3600に保持する。そして、S8020において受信された前回接続日データ3380が示す値をXに格納する(S9100)。
S9100の後、診断モデル片検索・更新プログラム3640は、S8020において受信されたセンサデータのうち、センサデータの取得時刻がXであるセンサデータを抽出する。そして、抽出されたセンサデータを診断モデル作成プログラム3620によって学習することによって、1日分の診断モデルである診断モデル片を生成する(S9130)。
S9130の後、診断モデル片検索・更新プログラム3640は、S9130において生成された診断モデル片を、センタ側診断モデル片テーブル群3740に格納する。センタ側診断モデル片テーブル群3740の元データ取得日5610には変数Xの値を格納する(S9140)。
S9140の後、診断モデル片検索・更新プログラム3640は、変数Xの値に1を加算することによって、変数Xが示す日付を、1日分進める(S9145)。
さらに、診断モデル片検索・更新プログラム3640は、変数Xが現在日より前の日付を示すか否かを判定する(S9150)。診断モデル片検索・更新プログラム3640は、変数Xが現在日より前の日付を示す場合、S9130に戻る。そうでない場合、サブルーチンSUB100を終了する。なお、終了の際にデータセンタ1130は、RAM3600に保持されていた変数Xを解放する。
S9010の後、データセンタ1130は、新たな変数XをRAM3600に保持し、前回接続日データが示す日付を変数Xに格納する(S9015)。
S9015の後、データセンタ1130は、変数ZをRAM3600に保持する。そして、データセンタ1130は、"'前回接続日'−'学習日数'−'学習日中に存在する非稼動日数'"の日付を算出し、算出された日付を、変数Zに格納する(S9020)。S9020によって、データセンタ1130は、学習日の初日を算出することができる。
データセンタ1130は、S9020において、'学習日中に存在する非稼動日数'を、機器稼動日構成テーブル3750と稼動日テーブル群3760とに基づいて抽出する。すなわち、機器稼動日構成テーブル3750から、機器ID11150と稼動日テーブル名11170とを抽出し、抽出された11170によって、稼動日テーブル群3760から学習日における非稼動日を抽出する。
S9020の後、データセンタ1130は、変数Xと変数Zとを引数にサブルーチンSUB105を実行することによって、稼動日の診断モデル片をマージする(S9030)。なお、サブルーチンSUB105において、変数Xは診断日を示す、変数Zは学習日の初日を示す。
図24は、本発明の実施形態のサブルーチンSUB105の処理を示す説明図である。
診断モデル片マージプログラムは、学習日数を数えるため、カウント変数cntをRAM3600上に保持し、カウント変数cntに、初期値である0を格納する(S9510)。
S9510の後、診断モデル片マージプログラムは、マージされた診断モデル片、すなわち、診断モデルを格納するためのメモリを、RAM3600上に保持する(S9530)。
図25は、本発明の実施形態の診断モデルのRAM3600に保持されるテーブル14000を示す説明図である。
テーブル14000は、各診断モデル片のデータ構造が格納される。テーブル14000は、診断日14100、正常範囲中心14200及び正常範囲半径14300を含む。診断日14100には、各診断モデル片が用いられる診断日が格納される。
正常範囲中心14200及び正常範囲半径14300は、診断モデル4430における正常範囲中心4433及び正常範囲半径4436に対応する。
S9530において、RAM3600に保持されるテーブル14000には、値が格納されていない。
S9530の後、診断モデル片マージプログラムは、引数として与えられた変数Zとカウント変数cntとを加算し、加算された値が稼動日を示すか否かを、稼動日テーブル群3760を参照することによって判定する(S9540)。
変数Zとカウント変数cntとの加算された値が稼動日を示す場合、診断モデル片を抽出できるため、診断モデル片マージプログラムは、S9550に移行する。また、変数Zとカウント変数cntとが加算された値が非稼動日である場合、診断モデル片を抽出できないため、診断モデル片マージプログラムは、S9580に移行する。
S9540の後、診断モデル片マージプログラムは、変数Zとカウント変数cntとの加算された値が示す日が、元データ取得日5610である診断モデル片5640を、センタ側診断モデル片テーブル群3740から抽出し、抽出された診断モデル片5640を、RAM3600にロードする(S9550)。
S9550の後、診断モデル片マージプログラムは、RAM3600にロードされた診断モデル片5640を、テーブル14000に追加する。引数として与えられた変数Xの示す日付を、診断日14100に格納する。そして、抽出された診断モデル片5640の正常範囲中心5643を正常範囲中心14200、正常範囲半径5646を正常範囲半径14300に追加する(S9560)。
S9560において、診断モデル片マージプログラムは、変数Xの値が同じであれば、同じ診断日14100の行に正常範囲中心及び正常範囲半径を追加する。すなわち、同じ診断日14100の行に追加することによって、診断モデル片をマージする。
S9560の後、診断モデル片マージプログラムは、カウント変数cntを+1する(S9570)。カウント変数cnt+1によって、診断モデルを生成するための学習日における診断モデル片を、すべて抽出することができる。すなわち、すべての学習日について、診断モデル片5640を抽出した後に、サブルーチンSUB105を終了させることができる。
S9530又はS9570の後、診断モデル片マージプログラムは、カウント変数cntが、あらかじめ定められた学習日数以下であるか否かを判定する(S9580)。カウント変数cntが、あらかじめ定められた学習日数以下である場合、診断モデル片5640をさらに抽出するため、S8540に戻る。
カウント変数cntが、あらかじめ定められた学習日数より大きい場合、診断モデル片マージプログラムは、診断モデル片5640をさらに抽出する必要がないため、サブルーチンSUB105の処理を終了する。
S9030の後、データセンタ1130は、変数Xに1を加算し、変数Xが示す日付を1日分未来に移動させる(S9040)。これによって、前回、データセンタ1130と診断対象機器1010とが接続されてから、次回接続日までの診断モデルを生成させることができる。
S9040の後、データセンタ1130は、変数Xが示す日付が、S8030において算出された次回接続日よりも過去の日付を示すか否かを判定する(S9050)。変数Xが、次回接続日よりも過去の日付を示す場合、すべての診断モデルを生成し終わっていないため、S9030に戻る。また、変数Xが、次回接続日と同日か未来の日付を示す場合、サブルーチンSUB10を終了する。
S8040の後、データセンタ1130は、S8040において生成されたテーブル14110の診断モデルと、S8030において算出された次回接続日とを、診断対象機器1010に送信する(S8070)。なお、診断モデルには、診断モデルが用いられる診断日が付加される。
S8070の後、診断対象機器1010は、診断モデルと次回接続日とを、データセンタ1130から受信する(S8080)。
S8080の後、診断対象機器1010は、S8080において受信された診断モデルと次回接続日とを、機器側診断モデルテーブル3360に追加する(S8090)。具体的には、診断対象機器1010は、機器側診断モデルテーブル3360の診断日4420にテーブル14000の診断日14100を、診断モデル4430の正常範囲中心4433にテーブル14000の正常範囲中心14200、診断モデル4430の正常範囲半径4436にテーブル14000の正常範囲半径14300を格納する。
また、診断対象機器1010は、受信された次回接続日によって、次回接続日データ3350を更新する。
S8090の後、診断対象機器1010はサブルーチンSUB1の処理を終了する。すなわち、診断対象機器1010は、S6030の処理を終了する。
S6025、S6030、又は、後述するS6140の後、作業員等は、稼動場所1000において診断対象機器1010を運転する(S6035)。S6035において保守員1030等は、診断対象機器1010が保持する通常の機能を診断対象機器1010に実行させる。例えば、診断対象機器1010がローダである場合、診断対象機器1010に土砂を運搬させる。S6035において、診断対象機器1010のセンサ3100は、診断対象機器1010の各部位の状況を測定し、測定された結果によってセンサデータを生成する。
S6035の後、診断対象機器1010は、S6035においてセンサ3100によって測定された結果であるセンサデータを、センサコントローラ3120によって収集する。そして、収集されたセンサデータを、不揮発性メモリ3300の取得時刻4100とともに、センサデータ4110に格納する(S6040)。
なお、センサデータを収集する時間の間隔には、診断の方式、診断対象機器1010の種類、又は、メモリのサイズ等から、最適な所定の間隔が予め定められる。すなわち、S6035及びS6040は、所定の間隔において、繰り返されてよい。また、S6035とS6040とが同時に実行されてもよい。
S6040の後、診断対象機器1010は、S6040において収集されたセンサデータ4110に基づいて、診断対象機器1010が異常であるか否か、また、診断対象機器1010に故障の予兆があるか否かを診断する(S6050)。
具体的には、診断対象機器1010は、S6040において、機器側診断モデルテーブル3360の診断日4420が現在日を示す診断モデル4430を抽出する。さらに抽出された診断モデル4430の正常範囲中心4433及び正常範囲半径4436が示す正常範囲の円内に、S6040において収集されたセンサデータ4110の値が含まれる場合、診断対象機器1010が正常であると診断する。また、正常範囲の円内に、S6040において収集されたセンサデータ4110の値が含まれない場合、診断対象機器1010が異常であるか、又は、診断対象機器1010に故障の予兆があると診断する。
S6050の後、診断対象機器1010は、S6050において異常又は故障の予兆があると診断されたか否かを判定する(S6060)。異常又は故障の予兆が診断された場合、異常が発生したことを保守員1030に通知するため、診断対象機器1010は、S6070に移行する。また、異常又は故障の予兆が診断されない場合、センサ3100による測定を継続するため、診断対象機器1010はS6035に戻る。
S6060の後、診断対象機器1010は、異常等が発生したことを、診断対象機器1010の作業員又は保守員1030等に機器側提示装置3180を介して通知する。そして、診断対象機器1010は、診断対象機器1010の保持する通常の機能の運転を停止する(S6070)。
S6070の後、診断対象機器1010は、データセンタ1130に接続され、センサデータ4110と診断モデル欠乏フラグデータ3370とをデータセンタ1130に送信する。または、保守員1030は、ストレージを介してデータセンタ1130に診断対象機器1010のセンサデータ4110と、診断モデル欠乏フラグデータ3370と、機器1010において異常が診断されたことを示す通知とを送信する。診断対象機器1010は、前回接続日から現在日までのセンサデータ4110を、データセンタ1130に送信する(S6080)。また、S6080において、データセンタ1130は、送信されたセンサデータ4110を、センタ側センサテーブル群3730に格納する。
S6080の後、データセンタ1130は、S6080において送信された診断モデル欠乏フラグデータ3370を参照し、診断モデル欠乏フラグデータ3370が示す値が"有効"であるか否かを判定する(S6100)。診断モデル欠乏フラグデータ3370が示す値が"有効"ではない場合、診断対象機器1010は、不足のない診断モデルによって診断したため、診断対象機器1010による診断は正確である。このためデータセンタ1130は、S6160に移行する。
診断モデル欠乏フラグデータ3370が示す値が"有効"である場合、診断対象機器1010によって保持される診断モデルが不足しているため、診断対象機器1010による診断が不正確である可能性がある。このため、データセンタ1130は、診断対象機器1010を再度診断するためS6120に移行する。
S6100の後、データセンタ1130は、診断対象機器1010から送信されたセンサデータを再度診断するため、前述のサブルーチンSUB10によって、診断モデルを生成する。そして、生成された診断モデルと、S6080において送信されたセンサデータとによって、診断対象機器1010が異常であるか否か、又は、診断対象機器1010に故障の予兆があるか否かを診断する(S6120)。
S6120においてデータセンタ1130は、前述のS6050における診断対象機器1010と同様に、センタ側センサテーブル群3730及びテーブル14000を用いて、異常であるか否か等を再度診断する。さらに、データセンタ1130は、診断結果を診断対象機器1010に送信する。
なお、S6120においてデータセンタ1130は、現在日を診断日(すなわち変数X)とする診断モデルのみを生成してもよい。また、生成された診断モデルを診断対象機器1010に送信し、診断対象機器1010に診断させてもよい。さらに、診断結果をデータセンタ1130へ送信させてもよい。
S6120の後、データセンタ1130は、S6120において診断対象機器1010に異常又は故障の予兆があると再度診断されたか否かを判定する(S6140)。診断対象機器1010に異常又は故障の予兆があると再度診断された場合、診断対象機器1010による診断は正確であるため、S6160に移行する。
診断対象機器1010に異常又は故障の予兆があると診断されなかった場合、データセンタ1130は、診断対象機器1010に保持される診断モデルが古いために、診断対象機器1010が誤って診断したと判定する。そして、データセンタ1130は、診断が誤診であることを診断対象機器1010に通知し、診断対象機器1010は、S6035に戻る。
S6100又はS6140の後、データセンタ1130から保守会社1140に所属する保守員に、診断対象機器1010に異常又は故障の予兆があることを示す通知を送信する(S6160)。保守会社1140に備わる保守会社サーバ3920は、データセンタ1130から通知を受信し、保守会社側提示装置3940によって保守員に通知を確認させる。
本実施形態によれば、僻地において稼働する診断対象機器1010が、一定期間の後に、データセンタ1130と接続され、センサデータ及び診断モデルの送受信を行う。このため、診断対象機器1010が常時データセンタ1130と接続されていなくても、診断対象機器1010は自らの異常又は故障の予兆を診断することができる。
また、毎日センサデータと接続する必要がないため、診断対象機器1010を保守するための費用を低減できる。
また、診断対象機器1010によって異常等が検知された後、データセンタ1130によって最新の診断モデルを再度生成され、診断されることによって、より精度の高い異常等の診断が可能である。
さらに、本実施形態のデータセンタ1130は、診断モデルの生成において、センサデータのうち、診断対象機器1010の稼動日におけるセンサデータを用い、診断対象機器1010の非稼働日を学習日に含めない。このため、より精度の高い診断モデルを生成することができる。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。