以下に図面を参照して、開示の分析方法、分析プログラム、および分析装置の実施の形態を詳細に説明する。
(実施の形態1の説明)
図1は、実施の形態1にかかるシステムの動作例を示す説明図である。実施の形態1にかかるシステム100は、複数のノード#1〜Nを含む。Nは、2以上の整数である。複数のノード#1〜Nの各々のノードは、通信装置である。システム100は、複数のノード#1〜Nに処理を実行させるシステムである。たとえば、複数のノード#1〜Nが、所定領域に散布されており、システム100は、複数のノードの各ノードが有するセンサーから取得した計測結果を取得して、システム100を利用する利用者に、所定領域の情報を提供するという機能を有する。また、システム100は、複数のノード#1〜Nに、ある処理を分散した処理を実行させて、ある時間以内に、ある処理の結果を利用者に提供するという機能を有してもよい。
ここで、システム100は、複数のノード#1〜Nのうちの一部のノードが故障しても機能を実現可能なシステムである。具体的に、複数のノードの個数を示すNが、機能を実現可能なノードの個数より多ければ、システム100は、複数のノード#1〜Nのうちの一部のノードが故障しても機能を実現可能なシステムとなる。ここで、故障したノードとは、通信可能でないノードである。たとえば、通信可能でないノードとなる場合の一例としては、経年劣化により、ノードを形成するハードウェアの一部が破損した場合である。また、通信可能でないノードとなる場合の他の例としては、複数のノード#1〜Nの電力が無くなった場合である。
ところで、一般的な工業製品は、機能を維持できる保障期間が設定される場合がある。ここで、工業製品の運用期間が保障期間を超えたとしても、工業製品はそのまま機能を維持できることが多いが、保障期間を超えた後の次の瞬間に故障する可能性があるため、どのタイミングで機能を維持できなくなるか予測することは難しい。
そこで、本実施の形態にかかる分析装置101は、複数のノード#1〜Nの一部のノードが故障しても機能を実現可能なシステム100の運用中の期間内で故障したノードの個数から、期間以降に単位時間当たりに故障するノードの個数を算出する。これにより、分析装置101は、システム100の障害の発生タイミングが予測可能になる。たとえば、分析装置101は、期間以降に単位時間当たりに故障するノードの個数を用いて、故障していないノードの個数が、機能が維持できるノードの個数を下回る時刻をシステム100の障害の発生タイミングとして算出することができる。また、システム100の運用者が、期間以降に単位時間当たりに故障するノードの個数を閲覧することにより、システム100の障害の発生タイミングを予測することもできる。
分析装置101は、複数のノード#1〜Nの一部のノードが故障した際に、システム100の障害の発生タイミングを予測可能にする、一部のノードが故障した期間以降に単位時間当たりに故障するノードの個数を算出するコンピュータである。分析装置101とシステム100との関係について、分析装置101は、システム100に直接接続し、故障したノードの個数を検出してもよい。または、システム100が外部のネットワークから遮断された状態であるとする。このとき、システム100に接続可能な携帯端末が、複数のノード#1〜Nのうち、故障したノードの個数を取得し、分析装置101は、前述の携帯端末から、故障したノードの個数を検出してもよい。
また、故障したノードの個数の検出について、分析装置101が検出してもよいし、故障したノードに隣接するノードが検出してもよい。分析装置101が検出する例としては、分析装置101が複数のノード#1〜Nから定期的にデータを受け付けるとする。このとき、ある時刻におけるデータ数より、ある時刻の次の時刻におけるデータ数が少ない際に、分析装置101は、ある時刻におけるデータ数と次の時刻におけるデータ数との差分を、故障したノードの個数として検出する。また、故障したノードに隣接するノードが検出する例としては、あるノードの隣接するノードから、ある時刻においてデータを受け付けたにも関わらず、次の時刻においてデータを受け付けない場合、あるノードは、隣接するノードが故障したとして検出する。
図1の(A)の例では、分析装置101は、システム100に直接接続する例を示す。そして、図1の(A)の例では、いずれかの期間prdの間に、ノード#1、3が故障した場合を示す。いずれかの期間prdは、システム100の運用中の期間であればいつでもよい。たとえば、いずれかの期間prdは、システム100の運用開始時刻から現時刻までの期間でもよいし、システム100が運用開始してから、故障したノードを初めて検出した時刻から現時刻までの期間でもよい。
分析装置101は、システム100を運用中のいずれかの期間に複数のノードのうちの故障したノードの個数を検出する。図1の(A)の例では、分析装置101は、期間prdの間に故障したノードの個数Ntが2[個]であると検出する。続けて、分析装置101は、検出した故障したノードの個数と期間prdとに基づいて、期間prd以降に単位時間当たりに故障するノードの個数Nperを算出する。単位時間は、どのような時間間隔でもよい。たとえば、システム100は、単位時間を、1日、10日、1か月等に設定することができる。
図1の(B)は、単位時間当たりに故障する個数を算出する値を、グラフ110を用いて図示したものである。グラフ110の横軸は、運用期間である。グラフ110の縦軸は、故障していないノードの個数を示す。たとえば、分析装置101は、Nper=Nt/prdにより算出する。
Nperを算出後、分析装置101は、Nperを出力する。システム100の運用者は、Nperを閲覧して、たとえば、システム100にノードを追加すべきか否かを判断する。たとえば、Nperがシステム100の運用者の想定した値より大きければ、システム100の運用者は、システム100にノードを追加すべきと判断する。
次に、システム100をセンサーネットワークシステムに適用した例を、図2を用いて説明する。
図2は、実施の形態1にかかるセンサーネットワークシステムの接続例を示す説明図である。センサーネットワークシステム200は、複数のノード#1〜Nが互いに通信を行い、ノードのデータを収集することができるシステムである。センサーネットワークシステム200は、複数のノード#1〜Nと、集約装置AGと、ゲートウェイGWと、サーバ201と、データ分析コンピュータ202とを有する。サーバ201と、データ分析コンピュータ202とはネットワークNETにより接続される。ここで、サーバ201は、図1における分析装置101に相当する。
センサーネットワークシステム200は、斜面などのセンシングフィールドARに複数のノードを設け、ノードに含まれるセンサーが計測する圧力の値に基づいて、センシングフィールドARの崩落を監視する。また、ノードは、斜面に限らず、たとえば、圃場や建造物などのコンクリート、土、水、空気などの物質で満たされた領域に設けられてもよい。また、ノードに含まれるセンサーは、たとえば、温度や水分量、振動の大きさなどを計測してもよい。
複数のノードの各ノードは、定期的に設定される通信経路に従ってマルチホップ通信によりデータを送受信する。通信経路は、センサーネットワークシステム200の運用開始時に設定されたり、ノードが追加散布された際に設置されたりする。
集約装置AGは、受信した収集データを集約し、集約したデータをサーバ201に送信する装置である。集約装置AGは、センサーを有するノードであってもよい。
ゲートウェイGWは、サーバ201からの信号を集約装置AGへ送信し、また、集約装置AGからの信号をサーバ201へ送信する装置である。
サーバ201は、センサーネットワークシステム200に散布されたノードのうち、単位時間当たりに故障したノードの個数を算出するコンピュータである。
データ分析コンピュータ202は、収集したデータを用いて、センシングフィールドARの状態を分析するコンピュータである。
(サーバ201のハードウェア構成例)
図3は、サーバのハードウェア構成例を示すブロック図である。図3において、サーバ201は、CPU(Central Processing Unit)301と、ROM(Read Only Memory)302と、RAM(Random Access Memory)303と、を含む。また、サーバ201は、ディスクドライブ304およびディスク305と、通信インターフェース306と、を含む。また、CPU301〜通信インターフェース306はバス307によってそれぞれ接続される。
CPU301は、サーバ201の全体の制御を司る演算処理装置である。ROM302は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。RAM303は、CPU301のワークエリアとして使用される揮発性メモリである。
ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ304には、たとえば、磁気ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する不揮発性メモリである。たとえばディスクドライブ304が磁気ディスクドライブである場合、ディスク305には、磁気ディスクを採用することができる。また、ディスクドライブ304がソリッドステートドライブである場合、ディスク305には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
通信インターフェース306は、ネットワークと内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース306は、通信回線を通じてネットワークを介して他の装置に接続される。通信インターフェース306には、たとえば、モデムやLANアダプタなどを採用することができる。
また、センサーネットワークシステム200の運用者が、直接サーバ201を操作する場合、サーバ201は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。
また、データ分析コンピュータ202のハードウェア構成については、図示しないが、CPU、ROM、RAM、ディスクドライブ、ディスク、通信インターフェース、ディスプレイ、キーボード、マウスを有する。
(集約装置AGのハードウェア構成例)
図4は、データ集約装置のハードウェア構成例を示すブロック図である。集約装置AGは、CPU401と、ROM402と、RAM403と、大容量不揮発メモリ404と、I/O回路405と、無線通信回路411と、アンテナ412と、通信インターフェース413と、を有する。CPU401は、集約装置AG全体の制御を司る演算処理装置である。また、集約装置AGは、CPU401と、ROM402と、RAM403と、大容量不揮発メモリ404と、I/O回路405と、を接続するバス406を有する。集約装置AGは、ノードと異なり外部電源に基づき動作してもよいし、内部電源に基づき動作してもよい。大容量不揮発メモリ404は、読書可能な記憶装置であって、電力供給が途絶えたときにおいても書き込まれた所定のデータを保持する。たとえば、大容量不揮発メモリ404は、HDD、フラッシュメモリ等が採用される。
また、I/O回路405には、無線通信回路411およびアンテナ412と、通信インターフェース413が接続される。これにより、集約装置AGは、無線通信回路411およびアンテナ412を介して、周辺のノードと無線通信することができる。さらに、集約装置AGは、通信インターフェース413を介して、IPのプロトコル処理などにより、サーバ201と通信を行うことができる。
(ノードのハードウェア構成例)
図5は、ノードのハードウェア構成例を示すブロック図である。図5の例では、複数のノード#1〜Nのうち、ノード#1を例として、ノード#1のハードウェア構成を示す。ノード#1以外の他のノードも、ノード#1と同様のハードウェア構成となる。ノード#1は、マイクロプロセッサ(以下、「MCU(Micro Control Unit)」と称する。)501と、センサー502と、無線通信回路503と、RAM504と、ROM505と、不揮発メモリ506と、アンテナ507と、ハーベスタ508と、バッテリ509と、を有する。ノード#1は、MCU501と、センサー502と、無線通信回路503と、RAM504と、ROM505と、不揮発メモリ506と、を接続するバス510を有する。
MCU501は、ノード#1の全体の制御を司る演算処理装置である。たとえば、MCU501は、センサー502が検出したデータを処理する。センサー502は、設置箇所における所定の変位量を検出する装置である。センサー502は、たとえば、設置箇所の圧力を検出する圧電素子や、温度を検出する素子、光を検出する光電素子などを用いることができる。アンテナ507は、親機と無線通信する電波を送受信する。無線通信回路503(RF(Radio Frequency))は、受信した無線電波を受信信号として出力し、送信信号を無線電波としてアンテナ507を介して送信する。無線通信回路503は、数10cm付近にある他ノードと通信可能とする短距離無線が採用された通信回路でよい。
RAM504は、MCU501における処理の一時データを格納する記憶装置である。ROM505は、MCU501が実行する処理プログラムなどを格納する記憶装置である。不揮発メモリ506は、読書可能な記憶装置であって、電力供給が途絶えたときにおいても書き込まれた所定のデータを保持する。たとえば、不揮発メモリ506は、フラッシュメモリ等が採用される。
ハーベスタ508は、図1で説明したエナジーハーベスト素子であり、ノード#1の設置箇所における外部環境、たとえば、光、振動、温度、無線電波(受信電波)などのエネルギー変化に基づき発電を行う装置である。また、ハーベスタ508は、センサー502によって検出された変位量に応じて発電を行ってもよい。バッテリ509は、ハーベスタ508により発電された電力を蓄える装置である。すなわち、ノード#1は、外部電源などが不要であり、動作に要求される電力を自装置の内部で生成する。
(サーバ201の機能構成例)
図6は、実施の形態1にかかるサーバの機能構成例を示すブロック図である。サーバ201は、制御部600と、良品率DB610と、を含む。制御部600は、検出部601と、第1算出部602と、判断部603と、第2算出部604と、第3算出部605とを含む。制御部600は、記憶装置に記憶された実施の形態1における分析プログラムをCPU301が実行することにより、制御部600の機能を実現する。記憶装置とは、具体的には、たとえば、図3に示したROM302、RAM303、ディスク305などである。また、検出部601〜第3算出部605の処理結果は、CPU301が有するレジスタや、RAM303等に記憶される。
また、サーバ201は、良品率DB610にアクセス可能である。良品率DB610は、RAM303、ディスク305といった記憶装置に格納される。良品率DB610の記憶内容の一例は、図8で後述する。
検出部601は、センサーネットワークシステム200を運用中のいずれかの期間に複数のノード#1〜Nのうちの故障したノードの個数を検出する。たとえば、検出部601は、複数のノード#1〜Nのうちのいずれかの期間の開始時刻に通信可能なノードの個数と、いずれかの期間の終了時刻に通信可能なノードの個数との差分を、故障したノードの個数として検出する。
第1算出部602は、検出部601が検出した故障したノードの個数といずれかの期間とに基づいて、いずれかの期間以降に単位時間当たりに故障するノードの個数を算出する。
また、第1算出部602は、単位時間当たりに故障するノードの個数と、複数のノード#1〜Nのうちのいずれかの期間の終了時刻に故障していないノードの個数とに基づいて、いずれかの期間以降のいずれかの時刻に故障していないノードの個数を算出してもよい。ここで、故障していないノードとは、通信可能なノードである。以下、故障していないノードを、「運用中のノード」と呼称する場合がある。
たとえば、単位時間当たりに故障するノードの個数がNtであり、複数のノード#1〜Nのうちのいずれかの期間の終了時刻Tendに故障していないノードの個数Nendとする。このとき、第1算出部602は、いずれかの時刻tに故障していないノードの個数を、Nend−Nt×(t−Tend)/単位時間というように算出する。
判断部603は、単位時間当たりに故障するノードの個数と複数のノードのうちのいずれかの期間の終了時刻に故障していないノードの個数とに基づいて、いずれかの期間以降のいずれかの時刻に故障していないノードの個数が、所定数未満となるか否かを判断する。ここで、所定数は、機能を実現可能なノードの個数を示す数値である。以下、所定数を、「機能維持の閾値」と称する。機能維持の閾値は、良品率DB610や、RAM303等に記憶される。いずれかの期間以降のいずれかの時刻に故障していないノードの個数について、判断部603は、第1算出部602と同様の方法で求める。
判断部603がいずれかの時刻に故障していないノードの個数が機能維持の閾値未満であると判断したとする。この場合に、第2算出部604は、いずれかの時刻に故障していないノードの個数と機能維持の閾値とに基づいて、いずれかの時刻までにセンサーネットワークシステム200に追加すべきノードの個数を算出する。具体的な、追加すべきノードの個数の算出例は、図11で後述する。
また、第2算出部604は、予め良品率DB610に記憶されたノードの良品率と、いずれかの時刻に故障していないノードの個数と、機能維持の閾値とに基づいて、追加すべきノードの個数を算出してもよい。また、第2算出部604は、ノード製造時における製造数単位であるロットごとに、ロット単位のノードの良品率と、いずれかの時刻に故障していないノードの個数と、機能維持の閾値とに基づいて、追加すべきノードの個数を算出してもよい。良品率に基づく追加すべきノードの個数の算出例も、図11で後述する。
第3算出部605は、ロットごとに、予め良品率DB610に記憶されたロット単位のノードの単価と、算出した追加すべきノードの個数とに基づいて、追加すべきノードの個数分のノードをセンサーネットワークシステム200に追加する際のコストを算出する。コストの算出例も、図11で後述する。
図7は、センサーネットワークシステムの開発から運用までのシナリオを示す説明図である。開発から運用までのシナリオは、大きく分類して、開発シナリオ701と、配布シナリオ702と、設置シナリオ703と、運用シナリオ704とがある。また、開発から運用までのシナリオの途中で生成された情報が、良品率DB610に格納される。良品率DB610は、サーバ201が有するデータベースである。
開発シナリオ701は、製造業者によりノードの設計と製造とを繰り返すシナリオである。製造したノードに対する出荷検査が終了した後、設計者は、製造したノードと、ノードに付与した製造業者を特定するベンダーIDとロットを特定するロットIDと、サーバ201が行う機能認証試験(IOT:InterOperability Testing)を行うプログラムとを記憶する記憶媒体と、を卸業者に提供する。
ここで、ロットについて説明する。ロットは、ノード製造時における製造数単位である。小量生産、高単価なノードについて、製造業者は、全品検査を行い、正確な歩留まりをカウントする。また、高単価なノードについて、製造業者は、良品率を上げるために、製造時においてコストをかけたり、設計時において、回路の冗長性を考慮したりする。一方で、大量生産、低単価なノードについて、製造業者は、抜き取り検査で、ロット単位の歩留まり管理を行う。
ここで、出荷検査では、前述した全品検査または抜き取り検査が行われる。製造業者は、出荷段階において、ロットに含まれるノード群のうち良品であるノードの割合を示す出荷時良品率も記憶媒体に格納する。良品率は、全品検査が行われたノードなのか、または抜き取り検査が行われたノードなのかによって変動する値である。以下、全品検査が行われたノードを「全品検査ノード」と呼称する。また、抜き取り検査が行われたノードを「抜き取り検査ノード」と呼称する。全品検査ノードと抜き取り検査ノードとが同一のセンシングフィールドARに混在しても、同一のプロトコルを実行することができれば、センサーネットワークシステム200を構築することができる。
また、製造業者は、製造時または検査時において、ノードを運用する、またはノードの運用をシミュレーションした結果により得られる、運用期間と、運用期間中の良品率とを対応付けた出荷時良品率時間経過情報を記憶媒体に格納する。出荷時良品率と出荷時良品率時間経過情報については、図8で後述する。また、図11で、出荷時良品率時間経過情報を図示する。
配布シナリオ702は、製造業者により製造が終了した後に行うシナリオであり、卸業者によりノードと記憶媒体とを配布するシナリオである。設置シナリオ703は、卸業者からノードと記憶媒体とを購入したセンサーネットワークシステム200の設置者によりノードを設置するシナリオである。より詳細には、設置シナリオ703は、設置者により、ノードを設置する場所を計画し、ノードを取り付け、取り付けたノードを調節するシナリオである。サーバ201は、設置者の操作により、記憶媒体に格納された情報と、購入時のノードと記憶媒体との販売価格に基づくノードの単価と、取り付けたノードの総数とを、良品率DB610に格納する。
運用シナリオ704は、センサーネットワークシステム200の運用者によりセンサーネットワークシステム200を運用するシナリオである。より詳細には、運用シナリオ704は、運用サブシナリオ711とメンテナンスサブシナリオ712とを繰り返す。
運用サブシナリオ711は、運用者により、通常運用とロバスト制御とを行うシナリオである。通常運用は、たとえば、10分ごとに行う運用である。ロバスト制御は、マイナーエラーが発生したときに行う運用である。
メンテナンスサブシナリオ712は、通常メンテナンスと緊急メンテナンスとを行うシナリオである。通常メンテナンスは、定期的に行うメンテナンスである。緊急メンテナンスは、緊急に行うメンテナンスである。たとえば、緊急メンテナンスとして、設置したノードのハードウェアに致命的な不具合が検出された際に、運用者は、設置したノードを、不具合を解消したノードとを取り替える。また、不具合が修理可能なものであれば、運用者は、設置したノードのうちの不具合がある箇所を修理する。また、何らかの追加機能を有するハードウェアにより不具合が解消するのであれば、運用者は、設置したノードにハードウェアを追加する。
通常運用と、ロバスト制御と、通常メンテナンスとは、図7に示すステップS721〜ステップS726を、サーバ201、ノードが実行することにより実現する。具体的に、通常運用は、ステップS721〜ステップS725が実行されることにより実現される。また、ロバスト制御は、ステップS726が実行されることにより実現される。また、通常メンテナンスは、ステップS723〜ステップS726が実行されることにより実現される。
ノードは、周囲の状態を計測する(ステップS721)。次に、データ分析コンピュータ202は、収集したデータを用いて、センシングフィールドARのノードの状態を分析する(ステップS722)。続けて、サーバ201は、異常を検出したか否かを判断する(ステップS723)。たとえば、ノードが定期的にサーバ201にデータを送信するとして、前回データを送信してきたにも関わらず、今回データを送信してこなかったノードがあった場合に、サーバ201は、異常を検出したと判断する。
異常を検出しなかった場合(ステップS723:No)、サーバ201は、引き続きノードからのデータを受信する。異常を検出した場合(ステップS723:Yes)、サーバ201は、機能を維持できるか否かを判断する(ステップS724)。機能を維持できるか否かは、故障していないノードの個数と機能維持の閾値との比較により行える。
機能を維持できると判断した場合(ステップS724:Yes)、サーバ201は、警告をデータ分析コンピュータ202等に出力して(ステップS725)、引き続きノードからのデータを受信する。機能を維持できないと判断した場合(ステップS724:No)、サーバ201は、フェールセーフを行うべき旨を出力し(ステップS726)、引き続きノードからのデータを受信する。フェールセーフを行うべき旨を閲覧した運用者は、対策として、ノードを追加散布する。
図8は、良品率DBの記憶内容の一例を示す説明図である。良品率DB610は、IOTプログラム801と、CERT/Auth802と、Trace803とを記憶する。IOTプログラム801は、設置シナリオ703、運用シナリオ704時にサーバ201で実行されるプログラムである。たとえば、サーバ201は、IOTプログラム801に従って、ベンダーIDと、ロットIDとの取得要求をノードに通知する。このとき、IDを通知しないノードがある場合、または、良品率DB610に登録されたベンダーID、ロットID以外のIDを通知したノードがある場合、サーバ201は、不明IDとして処理する。
CERT/Auth802は、ベンダーIDと、ロットIDとの組ごとに、ノードに関する情報を記憶する。具体的に、CERT/Auth802は、ベンダーIDと、ロットIDと、単価と、出荷時良品率と、出荷時良品率時間経過情報とを記憶する。
ベンダーIDは、ノードを製造した製造業者を特定する情報である。ロットIDは、ロットを特定する情報である。単価は、購入時のノードと記憶媒体との販売価格に基づく、ノード一個当たりの価格である。出荷時良品率は、出荷段階において、ベンダーIDおよびロットIDにより特定されるノード群のうち良品であるノードの割合を示す。たとえば、全品検査ノードは、全てが良品であることが保障されるため、出荷時良品率は、100[%]となる。出荷時良品率時間経過情報は、ベンダーIDおよびロットIDにより特定されるノード群の運用期間と運用中におけるノード群のうち良品であるノードの割合を示す良品率とを対応付けた情報である。たとえば、出荷時良品率時間経過情報は、ベンダーIDおよびロットIDにより特定されるノードを100個運用させた際に、60か月後に1個故障する、61か月後に2個故障する、といった内容である。償却単価は、ベンダーIDおよびロットIDにより特定されるノード群の購入単価を使用期間で除した値である。
たとえば、図8では、全品検査ノードには、ベンダーIDとして1、ロットIDとして1が付与されており、単価がノード1つ当たり100[円]であり、出荷時良品率が100[%]であることを示す。
Trace803は、センサーネットワークシステム200の運用中に起きた状態変化を記憶するデータである。たとえば、Trace803は、センサーネットワークシステム200が運用開始してから、ベンダーIDおよびロットIDにより特定されるノード群のうち、何個故障したかを記憶する。
たとえば、図8の例では、20か月目に、ベンダーIDとして1、ロットIDとして2が付与された抜き取り検査ノードが故障した個数が2個であり、35か月目に、抜き取り検査ノードが故障した個数が3個であることを示す。
次に、図9と図10とを用いて、全品検査品と抜き取り検査品との出荷時良品率時間経過情報について図示する。図9では、全品検査品を過不足無く散布した例と、抜き取り検査品とを過不足無く散布した場合を示す。また、図10では、さらに、抜き取り検査品を冗長に散布した場合を示す。また、図9、図10に示す出荷時良品率時間経過情報は、故障するノードをランダムで付加した際のシミュレーション結果である。
図9は、全品検査品と抜き取り検査品との良品率の時間経過の一例を示す説明図である。図9では、全品検査ノードの出荷時良品率時間経過情報と、抜き取り検査ノードの出荷時良品率時間経過情報とをグラフ901としてプロットした図を用いて、運用中良品率の時間経過を説明する。ここで、運用中良品率とは、センサーネットワークシステム200の運用中における、センシングフィールドARに散布すべきノードの個数に対して、良品であるノードの割合を示す。センシングフィールドARに散布すべきノードの個数は、センサーネットワークシステム200の運用者が指定する値である。たとえば、運用者は、センシングフィールドARの面積を、ノードが隣のノード通信可能な面積で除した値を、センシングフィールドARに散布すべきノードの個数に指定する。
グラフ901は、運用中良品率の時間経過を示すグラフである。グラフ901の横軸は運用期間を示す。グラフ901の縦軸は、運用中良品率を示す。また、センサーネットワークシステム200の機能を維持できる運用中良品率の閾値を、点線902で示すように90[%]とする。
全品検査ノードを100[%]散布した場合に、全品検査ノードは、白抜きの菱型で表したプロットのような特性を示すとする。グラフ901は、全品検査ノードを100[%]散布したセンサーネットワークシステム200の運用を続けていき、60か月を過ぎるあたりから、経年劣化により徐々に故障していく例を示す。このとき、時間経過に対する運用中良品率は、時間的に局所的な故障もありえるため多少上下するが、大局的には単調減少となる。そして、運用中良品率は、82か月目頃に、点線902を下回る状態になるとする。運用開始の時点から、点線902を下回るまでの期間を「機能保障期間」と呼称する。全品検査ノードを100[%]散布した際の機能保障期間は82か月となる。
ここで、出荷時良品率時間経過情報と、センサーネットワークシステム200を運用した際の時間経過に対する運用中良品率とは、異なる傾向を示すことがある。異なる傾向を示す理由としては、環境が一様では無いためである。すなわち、動作環境によっては、より早まる場合もあるし、遅くなることもあるため、出荷時良品率時間経過情報を用いて単純な補間処理を行うだけでは、センサーネットワークシステム200の運用中のノードの劣化特性を方程式化することはできない。
一方、抜き取り検査ノードを100[%]散布した場合に、抜き取り検査ノードは、白抜きの正方形で表したプロットのような特性を示すとする。抜き取り検査ノードにおいては、出荷時良品率が95%であるから、品質には一定のバラツキがあり、全品検査ノードと同様に、品質劣化が始まる。グラフ901には、60か月の時点で機能維持の閾値を下回る例を記載する。抜き取り検査ノードを100[%]散布した際の機能保障期間は60か月となる。抜き取り検査ノードにおいても、出荷からの劣化特性を単純な方程式で表現することはできない。
図10は、抜き取り検査品を冗長数散布した際の運用中良品率の時間経過を示す説明図である。図10では、グラフ901で示した状態から、さらに、抜き取り検査ノードを120[%]散布した際の出荷時良品率時間経過情報を、グラフ1001としてプロットした図を用いて、運用中良品率の時間経過を説明する。
抜き取り検査ノードを120[%]散布した場合、白抜きの三角形で表したプロットのような特性を示す。抜き取り検査ノードを120[%]散布した場合のプロットは、抜き取り検査ノードを100[%]散布した場合のプロットを、縦方向に20[%]拡大したものとなる。
品質が安定しない抜き取り検査ノードであるが、20[%]増量して散布することにより、図10の例では、全品検査ノードと同じ機能保障期間である82か月時点で追加散布のポイントを迎える。
次に、図11を用いて、ノードを追加散布すべきか否かの判断方法と、追加散布すべきであればいくつ散布すべきかについて説明する。
図11は、ノードを追加散布すべきか否かの判断と、追加すべきノードの個数の一例を示す説明図である。図11の(A)では、ノードを追加散布すべきか否かの判断と、全品検査ノードを追加するとした場合の追加すべきノードの個数の算出方法の一例を示す。また、図11の(B)では、抜き取り検査ノードを追加するとした場合の追加すべきノードの個数の算出方法の一例を示す。また、図11の(C)では、全品検査ノードと抜き取り検査ノードとのうち、どちらを追加散布したほうがよいかの指標となるコストの算出例について説明する。
図11の(A)で示すグラフ1101と白抜きの菱型は、全品検査ノードを100[%]散布した際の出荷時良品率時間経過情報をプロットしたものである。また、白抜きの丸は、全品検査ノードを100[%]散布して、実際にセンサーネットワークシステム200を運用した際の、Trace803から得られる故障したノードをプロットしたものである。
グラフ1101は、運用中良品率の時間経過を示すグラフである。グラフ1101が示すように、実際にセンサーネットワークシステム200を運用した結果、出荷時良品率時間経過情報より環境が劣悪であったため、運用中良品率の低下が出荷時良品率時間経過情報より早く始まる。
サーバ201は、Trace803を参照して、運用期間に対する故障数を表す劣化近似関数E=f(t)を作成する。ここで、Eは、ノードの故障数である。tは運用期間である。作成例として、たとえば、サーバ201は、劣化近似関数f(t)を、f(t)=at+bであるとして、係数aと定数bとを、Trace803を参照して作成する。最も簡単な作成例として、サーバ201は、現時刻txにおける故障数Exと、前回ノードが故障したということを検出した時刻tyにおけるEyとを、f(t)=at+bに代入し、aとbとを求める。また、サーバ201は、3つ以上の時刻tにおける故障数Eを用いて、最小自乗法によりaとbとを求めてもよい。
ここで、劣化近似関数E=f(t)が、運用期間tを用いる関数である理由について説明する。ノードがいくつ故障するかについては、ノードが散布される環境に大きく依存するものであり、散布されるノードの良品率や散布したノードの個数の影響は小さいものとなる。したがって、本実施の形態においては、サーバ201は、散布されるノードの良品率や散布したノードの個数は使用せず、運用期間tと故障したノードの個数Eとを用いて劣化近似関数E=f(t)を作成する。
劣化近似関数f(t)を作成した後、サーバ201は、現時刻T以降のいずれかの時刻T+Δtに故障していないノードの個数N'を、下記(1)式を用いて算出する。
N'=N+α―f(T+Δt) …(1)
ここで、Nは、センシングフィールドARに散布すべきノードの個数であり、ノードの初期散布数である。αは、ノードを冗長に散布した個数である。そして、サーバ201は、センサーネットワークシステム200にノードを追加すべきか否かを、下記(2)式で示す不等式を満たすか否かにより判断する。
N'<機能維持の閾値 …(2)
(2)式を満たす場合、サーバ201は、センサーネットワークシステム200にノードを追加すべきと判断する。一方、(2)式を満たさない場合、サーバ201は、センサーネットワークシステム200にノードを追加しなくてよいと判断する。グラフ1101では、冗長散布を行っていないためα=0であり、現時刻Tを70か月目、現時刻T以降のいずれかの時刻T+Δtを75か月目とする。このとき、グラフ1101より、f(T+Δt)は、(100−87)×0.01×N=0.13×N[個]となる。サーバ201は、N'を(1)式を用いて下記のように算出する。
N'=N+0−0.13×N=0.87×N[個]
そして、機能維持の閾値を、0.90×Nとすると、サーバ201は、(2)式により、センサーネットワークシステム200にノードを追加すべきと判断する。
次に、追加すべきノードの個数を算出する例について説明する。追加すべきノードの個数を算出する方法としては、第1の算出方法と、第2の算出方法とがある。第1の算出方法としては、機能維持の閾値とN'との差分を出荷時良品率で除した値を、追加すべき個数として算出する方法である。
第1の算出方法を用いた場合、全品検査ノードを追加散布する場合、サーバ201は、追加すべきノードの個数を、(0.90×N−0.87×N)/1=0.03×N[個]と算出する。また、抜き取り検査ノードを追加散布する場合、サーバ201は、追加すべきノードの個数を、(0.90×N−0.87×N)/0.95=0.0316×N[個]と算出する。
第2の算出方法は、散布数を調整すると出荷時良品率時間経過情報のプロット位置を変動することを利用して、追加すべきノードの個数を算出する方法である。第2の算出方法の具体的な方法について、グラフ1102を用いて説明する。
図11の(B)で示すグラフ1102において、白抜きの正方形は、抜き取り検査ノードを100[%]散布した際の出荷時良品率時間経過情報をプロットしたものである。また、白抜きの丸は、全品検査ノードを100[%]散布して、実際にセンサーネットワークシステム200を運用した際の、Trace803から得られる故障したノードをプロットしたものである。また、白抜きの五角形は、抜き取り検査ノードを112.5[%]散布した際の出荷時良品率時間経過情報をプロットしたものである。112.5[%]という数値の理由については後述する。
第2の算出方法では、まず、現時刻T以降のいずれかの時刻T+Δtにおいて、機能維持の閾値と一致するように、散布数を決定する。具体的には、グラフ1102が示すように、抜き取り検査ノードを100[%]散布した際の出荷時良品率時間経過情報から、いずれかの時刻T+Δt=75か月目の時点において故障していないノードの個数は、80[%]×N個である。したがって、抜き取り検査ノードを(0.90×N)/(0.80×N)=1.125=112.5[%]散布した際の出荷時良品率時間経過情報は、75か月目の時点で機能維持の閾値と一致するようになる。
続けて、第2の算出方法では、現時刻Tにおいて、112.5[%]散布した際の出荷時良品率時間経過情報と、現時刻Tにおける全品検査ノードを100[%]運用した際の故障していないノードの個数との差分を、追加すべき個数とする。具体的には、グラフ1102が示すように、抜き取り検査ノードを112.5[%]散布した際の出荷時良品率時間経過情報から、現時刻T=70か月目の時点において故障していないノードの個数は、0.96×N[個]である。また、現時刻Tにおける全品検査ノードを100[%]運用した際の故障していないノードの個数は、0.91×N[個]である。したがって、サーバ201は、追加すべき個数を、(0.96×N−0.91×N)=0.05×N[個]と算出する。
サーバ201は、算出した追加すべき個数を用いて、センサーネットワークシステム200に追加する際のコストを算出する。具体的には、サーバ201は、下記(3)式を用いて、ノードを追加する際のコストCoを算出する。下記(3)式が示すコストは、ノードにかかる費用を、ノードが運用できる運用期間で除していることから、償却単価を示す。
コストCo=追加すべきノードの個数×ノードの単価/運用期間 …(3)
サーバ201は、全品検査ノード、抜き打ち検査ノードのうち、いずれを追加した方がよいかについて、(3)式で得た結果を比較して、値が小さい方を追加すべきノードであると判断する。ここで、運用期間は全品検査ノード、抜き打ち検査ノードとで同一の値となるため、サーバ201は、下記(3')式を用いて判断してもよい。
コストCo=追加すべきノードの個数×ノードの単価 …(3')
ここで、(3')式を用いて、コストを算出する例を示す。全品検査ノードを追加すべきノードの個数が、0.03×N[個]であり、抜き取り検査ノードを追加すべきノードの個数が、0.05×N[個]であるとする。このとき、図11の(C)では、サーバ201は、(3')式を用いて、全品検査ノードを追加する際のコストCo_aと、抜き取り検査ノードを追加する際のコストCo_pを、下記のように算出する。
コストCo_a=(0.03×N)×100=3×N
コストCo_p=(0.05×N)×80=4×N
サーバ201は、コストCo_a、コストCo_pを比較して、全品検査ノードを追加した方がよいことを出力する。また、単に、サーバ201は、コストCo_a、コストCo_pを出力してもよい。センサーネットワークシステム200の運用者は、コストCo_a、コストCo_pを閲覧して、どちらを追加するかを決定する。図11の(C)の例では、運用者は、コストCo_aの方が小さいため、全品検査ノードを追加すると決定する。
図12は、ノードの追加散布の一例を示す説明図である。図12には、センサーネットワークシステム200に、ノードを散布する様子を状態1〜6で示す。状態1〜6において、"a"を有する白抜きの丸は、運用中の全品検査ノードを示す。また、"p"を有する白抜きの丸は、運用中の抜き取り検査ノードを示す。"x"を有する白抜きの丸は、故障したノードを示す。
図12に示す状態1は、センサーネットワークシステム200の運用開始時点を示す。状態1において、センサーネットワークシステム200には、全品検査ノードが散布されており、抜き取り検査ノードは散布されていない。
図12に示す状態2は、図12に示す状態1から82か月経過した後の状態である。図12に示す状態2では、故障したノードが2個存在する。図12に示す状態2において、サーバ201は、センサーネットワークシステム200にノードを追加すべきと判断する。
図12に示す状態3は、図12に示す状態2の後、センサーネットワークシステム200の運用者により、抜き取り検査ノードを追加散布した状態である。ここで、追加散布する際、センシングフィールドARのどの領域にノードが不足しているのかは不明である。図12に示す状態3の例では、運用者がノードを追加散布した領域が、偶然にノードが不足した領域であった場合を示す。
図12に示す状態4は、図12に示す状態3の後、ある程度時間経過した状態である。図12に示す状態4では、故障したノードが3個存在する。図12に示す状態4において、サーバ201は、センサーネットワークシステム200にノードを追加すべきと判断する。
図12に示す状態5は、図12に示す状態4の後、センサーネットワークシステム200の運用者により、抜き取り検査ノードを追加散布した状態である。図12に示す状態5では、運用者がノードを追加散布したが、領域1201と、領域1202とが、ノードの散布密度が低く、センサーネットワークシステム200の機能維持が困難である。図12に示す状態5において、引き続き、サーバ201は、センサーネットワークシステム200にノードを追加すべきと判断する。
ここで、図12に示す状態5では、運用中であるノードの個数が実質機能維持の閾値より多いにも関わらず、サーバ201がセンサーネットワークシステム200にノードを追加すべきと判断することができる理由について説明する。前述したことをできるようにするには、センサーネットワークシステム200の各ノードが、運用中のノードが近くにあると判断した場合、近隣のノードと通信しないという特性を有すればよい。運用中のノードが近くにあると判断する方法としては、たとえば、電波を受信した際の受信強度が所定の閾値以上である場合、運用中のノードが近くにあると判断する方法がある。
このように、ノードの散布密度が高い領域に含まれるノード群の一部が、近隣のノードと通信しないことにより、サーバ201が検出する、故障していないノードの個数が減少して、ノードの散布密度が低い領域があれば、機能維持の閾値を下回ることになる。また、ノードの散布密度が高い領域に含まれるノード群のうちの近隣のノードと通信しないノードは、運用中のノードが故障すると、近隣のノードとの通信を再開することになる。したがって、近隣のノードと通信してなかったノードも、いつかは近隣のノードとの通信を再開することになるため、追加散布したノードが無駄になることはない。
図12に示す状態6は、図12に示す状態5の後、センサーネットワークシステム200の運用者により、抜き取り検査ノードを追加散布した状態である。図12に示す状態6の例では、運用者がノードを追加散布した領域が、ノードが不足した領域と重なったため、サーバ201は、センサーネットワークシステム200にノードを追加しなくてよいと判断する。
図12に示した運用が長期間行われることにより、サーバ201は、償却単価を定量化することができ、運用者は、(3)式、(3')式等で求めた値を閲覧して、コスト最適なノードの散布計画を立てることができる。次に、図13と図14とを用いて、複数のノード#1〜Nの各ノードとサーバ201とが行うフローチャートについて説明する。
図13は、ノードによるセンサーネットワークシステム運用処理手順の一例を示すフローチャートである。ノードによるセンサーネットワークシステム運用処理は、センサーネットワークシステム200の運用開始および運用中にノードが行う処理である。ノードは、ノードの通信経路を設定する(ステップS1301)。次に、ノードは、経過時間Tを0に設定する(ステップS1302)。ステップS1301とステップS1302は、センサーネットワークシステム200の運用開始時点で行う処理である。
続けて、ノードは、ノードの追加散布通知を受け付けたか否かを判断する(ステップS1303)。ノードの追加散布通知は、後述するステップS1412の処理によりサーバ201から受け付ける。ノードの追加散布通知を受け付けていない場合(ステップS1303:No)、ノードは、通常運用処理を実行する(ステップS1304)。ここで、通常運用処理とは、センサー502による周囲の状態の計測や、MCU501、無線通信回路503、アンテナ507による計測した結果の送信処理等である。
次に、ノードは、故障したノードを検出したか否かを判断する(ステップS1305)。故障したノードを検出した場合(ステップS1305:Yes)、ノードは、故障したノードの個数Exと、現在の時刻txとをサーバに通知する(ステップS1306)。ステップS1306の処理終了後、または、故障したノードを検出していない場合(ステップS1305:No)、ノードは、ステップS1303の処理に移行する。
ノードの追加散布通知を受け付けた場合(ステップS1303:Yes)、ノードは、ノードの通信経路を再設定する(ステップS1307)。ステップS1307の処理終了後、ノードは、ステップS1303の処理に移行する。ノードによるセンサーネットワークシステム運用処理を実行することにより、ノードは、通常運用を行うことができる。
図14は、分析処理手順の一例を示すフローチャートである。分析処理は、センサーネットワークシステム200のノードの状態を分析する処理である。
サーバ201は、初期運用ノード数Nと、冗長ノード数αとを記憶する(ステップS1401)。次に、サーバ201は、故障したノードの個数Exと故障した時刻txとを検出したか否かを判断する(ステップS1402)。検出する例として、サーバ201は、ステップS1306の処理による複数のノード#1〜Nのいずれかからの通知を受け付けて、ある時刻において故障したノードの個数Exと故障した時刻txとを検出する。また、サーバ201は、集約装置AGから、ある時刻において故障していない個数を受け付けて、前回受け付けたノードの個数との差があった際に、故障したノードの個数Exと故障した時刻txとを検出してもよい。
故障したノードの個数Exと故障した時刻txとを検出していない場合(ステップS1402:No)、サーバ201は、ステップS1402の処理に移行する。故障したノードの個数Exと故障した時刻txとを検出した場合(ステップS1402:Yes)、サーバ201は、過去の故障したノードの個数および時刻と、Ex,txを用いて、劣化近似関数E=f(t)を生成する(ステップS1403)。次に、サーバ201は、N'=N+α−f(tx+Δt)を計算する(ステップS1404)。
続けて、サーバ201は、N'が機能維持の閾値以上か否かを判断する(ステップS1405)。N'が機能維持の閾値以上である場合(ステップS1405:Yes)、サーバ201は、ステップS1402の処理に移行する。
N'が機能維持の閾値未満である場合(ステップS1405:No)、サーバ201は、N'と機能維持の閾値とを用いて、全品検査ノードを追加する際の追加すべきノードの個数Naを算出する(ステップS1406)。続けて、サーバ201は、コストCo_a=Ca×Naを計算する(ステップS1407)。次に、サーバ201は、N'と機能維持の閾値とを用いて、抜き取り検査ノードを追加する際の追加すべきノードの個数Npを算出する(ステップS1408)。続けて、サーバ201は、コストCo_p=Cp×Npを計算する(ステップS1409)。
次に、サーバ201は、Co_a,Co_pのうち、値が小さい方を、追加すべきノードであるとして出力する(ステップS1410)。続けて、サーバ201は、運用者によりノードが追加散布されたことが入力されたか否かを判断する(ステップS1411)。運用者によりノードが追加散布されたことが入力されていない場合(ステップS1411:No)、サーバ201は、ステップS1402の処理に移行する。
運用者によりノードが追加散布されたことが入力された場合(ステップS1411:Yes)、サーバ201は、集約装置AGにノードの追加散布通知を通知する(ステップS1412)。ステップS1412の処理終了後、サーバ201は、ステップS1402の処理に移行する。
以上説明したように、サーバ201によれば、センサーネットワークシステム200の運用中の期間内で故障したノードの個数から、期間以降に単位時間当たりに故障するノードの個数を算出する。これにより、サーバ201は、センサーネットワークシステム200の障害の発生タイミングが予測可能になる。
また、サーバ201によれば、単位時間当たりに故障するノードの個数と、複数のノードのうちのいずれかの期間の終了時刻に故障していないノードの個数とに基づいて、いずれかの期間以降のいずれかの時刻に故障していないノードの個数を算出してもよい。これにより、運用者は、いずれかの時刻に故障していないノードの個数を閲覧して、ノードを追加散布すべきか否かの判断材料とすることができる。たとえば、運用者は、いずれかの時刻に故障していないノードの個数が想定より少なければ、機能維持の閾値より大きくても、ノードを追加すべきと判断してもよい。
また、サーバ201によれば、単位時間当たりに故障するノードの個数と、いずれかの期間の終了時刻に故障していないノードの個数とに基づいて、いずれかの時刻に故障していないノードの個数が、機能維持の閾値未満となるか否かを判断してもよい。これにより、運用者は、判断結果を閲覧して、ノードを追加散布すべきか否かの判断材料とすることができる。たとえば、運用者は、いずれかの時刻に故障していないノードの個数が、機能維持の閾値未満であれば、ノードを追加すべきと判断してもよい。
また、サーバ201によれば、いずれかの時刻に故障していないノードの個数と機能維持の閾値とに基づいて、いずれかの時刻までにセンサーネットワークシステム200に追加すべきノードの個数を算出してもよい。これにより、運用者は、追加すべきノードの個数を閲覧して、追加するノードの個数を決定材料にすることができる。たとえば、運用者が、あるロットの散布していないノードを12[個]ずつに小分けにして管理してあるとする。そして、サーバ201が、追加すべきノードの個数を20[個]であると出力したとする。このとき、運用者は、12×2=24[個]を追加するノードの個数とする。
また、サーバ201によれば、ノードの良品率と、いずれかの時刻に故障していないノードの個数と、機能維持の閾値とに基づいて、追加すべきノードの個数を算出してもよい。これにより、運用者は、大量生産、低単価なノードを追加する場合でも、適切な追加すべきノードの個数を知ることができる。
また、サーバ201によれば、ロットごとに追加すべきノードの個数を算出し、ロットごとに、ロット単位のノードの単価と、算出した追加すべきノードの個数とに基づいて、センサーネットワークシステム200に追加する際のコストを算出してもよい。これにより、良品率の異なるノードが複数ある場合、運用者は、追加すべきノードとして、よりコストの小さいノードを選ぶことができる。また、実施の形態1では、全品検査ノードと、抜き取り検査ノードという、良品率が異なるノードが2種類であったが、3種類以上あってもよい。たとえば、製造業者が、抜き取り検査の段階で、ロットから抜き取るサンプル数を多くした、中品質、中単価なノードと、ロットから抜き取るサンプル数を少なくした、低品質、低単価なノードとを提供していたとする。このとき、サーバ201は、全品検査ノードと、良品率が中程度で、中単価な抜き取り検査と、良品率が低く、低単価な抜き取り検査と、のそれぞれのコストを算出してもよい。
また、サーバ201によれば、複数のノードのうちのいずれかの期間の開始時刻に通信可能なノードの個数と、いずれかの期間の終了時刻に通信可能なノードの個数との差分を、故障したノードの個数として検出してもよい。これにより、サーバ201は、故障したノードを得ることができる。
(実施の形態2の説明)
実施の形態1にかかるセンサーネットワークシステム200では、複数のノード#1〜Nの位置情報を用いず、いずれかの期間以降のいずれかの時刻における故障していないノードの個数と機能維持の閾値とを比較して、機能が維持できるか否かを判断する。しかしながら、いずれかの時刻における故障していないノードの個数が、機能維持の閾値未満であったとしても、故障していないノードの位置によっては、機能維持できる場合もある。そこで、実施の形態2にかかるセンサーネットワークシステムでは、複数のノード#1〜Nの位置情報を用いて、機能維持できるか否かをシミュレーションする。なお、実施の形態1において説明した箇所と同様の箇所については、同一符号を付して図示および説明を省略する。
図15は、実施の形態2にかかるセンサーネットワークシステムの接続例を示す説明図である。実施の形態2にかかるセンサーネットワークシステム1500は、複数のノードと、集約装置AGと、ゲートウェイGWと、サーバ1501と、データ分析コンピュータ202と、シミュレータ1502とを有する。
サーバ1501は、サーバ201が有する機能を有し、さらに、シミュレータ1502に、いずれかの期間の終了時点で故障していないノードの位置情報と、いずれかの期間以降のいずれかの時刻において故障していないノードの個数を通知する。または、サーバ1501は、シミュレータ1502に、いずれかの時刻において故障していないノードの個数の代わりに、いずれかの時刻において故障するノードの個数を通知してもよい。通知した後、サーバ1501は、シミュレータ1502から、シミュレーションの結果を受け付けて、センサーネットワークシステム1500の運用者に出力する。
シミュレータ1502は、いずれかの期間の終了時点で故障していないノードの位置情報と、いずれかの期間以降のいずれかの時刻において故障していないノードの個数を用いて、いずれかの時刻におけるノードのマルチホップ通信を模擬するコンピュータである。また、サーバ1501が、シミュレータ1502が行う機能を実行してもよい。シミュレータ1502のハードウェア構成は、サーバ1501と同様のハードウェアを有するため、説明を省略する。
また、実施の形態2では、複数のノード#1〜Nの各ノードの位置情報を用いる。ノードの位置情報を得るための一例として、一部のノードは、GPS(Global Positioning System)センサーを有し、GPSセンサーによって位置情報を取得可能であってもよい。そして、GPSを有さないノードは、GPSセンサーを有するノードの位置情報と、GPSセンサーを有するノードからの相対距離とに基づいて、自ノードの位置情報を算出すればよい。
図16は、シミュレータの機能構成例を示すブロック図である。シミュレータ1502は、制御部1600を含む。制御部1600は、受付部1601と、実行部1602と、判断部1603と、算出部1604とを含む。制御部1600は、記憶装置に記憶された実施の形態2における分析プログラムをシミュレータ1502のCPUが実行することにより、制御部1600の機能を実現する。記憶装置とは、具体的には、たとえば、シミュレータ1502のROM、RAM、ディスクなどである。また、受付部1601〜算出部1604の処理結果は、シミュレータ1502のCPUが有するレジスタや、RAM等に記憶される。
受付部1601は、複数のノード#1〜Nのうちのいずれかの期間の終了時刻に故障していないノードの位置情報を受け付ける。
実行部1602は、終了時刻に故障していないノードのうち、算出した時刻に故障していないノードの個数分、いずれかの時刻に故障していないノードをランダムに設定する。そして、実行部1602は、故障していないノードをランダムに設定した場合に、受付部1601が受け付けた、故障していないノードの位置情報に基づいて、いずれかの時刻に故障していないノードによるマルチホップ通信を模擬するシミュレーションを実行する。また、実行部1602は、故障するノードをランダムに設定してシミュレーションを実行してもよい。シミュレーションの様子は、図17〜図21で示す。
また、実行部1602は、いずれかの時刻に故障していないノードをランダムに設定して、シミュレーションを所定回数実行してもよい。ここで、所定回数とは、センサーネットワークシステム1500の運用者が設定する値である。たとえば、運用者は、予め、1回のシミュレーションにかかる時間を取得しておく。そして、運用者は、シミュレーションにかける時間を1回のシミュレーションにかかる時間で除した値を、所定回数として設定する。
判断部1603は、実行部1602によるシミュレーションの実行結果から得られる通信可能なノードの個数と、機能維持の閾値とを比較することにより、機能が実現可能か否かを判断する。
また、判断部1603は、実行部1602が所定回数実行したシミュレーションの実行結果ごとに、実行結果から得られる通信可能なノードの個数と、機能維持の閾値とを比較することにより、機能が実現可能であるか否かを判断する。たとえば、判断部1603は、機能を維持できたと判断した回数と、機能を維持できないと判断した回数とを出力する。
算出部1604は、所定回数と、終了時刻に故障していないノードからいずれかの時刻に故障していないノードを設定する場合にとり得る組合せの総数とに基づいて、判断部1603の判断結果の尤もらしさを示す尤度を算出する。たとえば、算出部1604は、所定回数/(組合せの総数)を、値が大きいほど尤もらしい尤度として算出する。また、算出部1604は、(組合せの総数)/所定回数を算出し、値が小さいほど尤もらしい尤度として算出してもよい。尤度については、図17で後述する。
図17は、故障するノードをランダムに変えた場合のシミュレーションの結果の一例を示す説明図である。図17では、現時刻である時刻t1以降の時刻t2において、運用中の12個のノードのうち、ノードが3個故障するであろうという予測の下、シミュレータ1502がパターン1〜3についてシミュレーションした結果を示す。ここで、図17において、"s"を有する白抜きの丸は、運用中のノードを示す。また、"x1"を有する白抜きの丸は、現時刻である時刻t1で故障中のノードを示す。また、"x2"を有する白抜きの丸は、時刻t1以降の時刻t2で故障すると仮定したノードを示す。
パターン1およびパターン3のシミュレーションにおいて、シミュレータ1502は、ノードの再接続などにより、機能維持として十分な計測を継続できると判断する。この時の判断基準は、計測したいポイント、測定密度指標を想定するセンシングフィールドARに依存して定められたものとする。
これに対し、パターン2のシミュレーションにおいて、シミュレータ1502は、センシングフィールドARの東南部分の領域1701が十分に計測できておらず、機能維持できないと判断する。
サーバ1501は、シミュレータ1502による、各パターンのシミュレーションの結果を取得して、故障確率を、下記(4)式を用いて算出する。
故障確率=100×m/n[%] …(4)
ここで、mは、シミュレータ1502が機能維持できると判断した回数である。nは、シミュレーションを行った回数である。さらに、サーバ1501は、算出した故障確率の尤もらしさを示す尤度を、下記(5)式を用いて算出する。
尤度=n/C …(5)
ここで、Cは、故障するノードの組合せの総数である。図17の例では、サーバ1501は、(4)式を用いて、図17の例における故障確率を下記のように算出する。
故障確率=100×1/3=33[%]
また、サーバ1501は、(5)式を用いて、図17の例における尤度を算出する。故障するノードの組合せの総数Cは、15C3=220である。
尤度=3/220=0.014
センサーネットワークシステム1500の運用者は、故障確率を閲覧して、ノードを追加散布すべきか否かを判断する。また、センサーネットワークシステム1500の運用者は、尤度を閲覧して、故障確率が信用にたる値か判断する。たとえば、センサーネットワークシステム1500の運用者は、尤度が小さすぎると判断した場合、サーバ1501を操作して、シミュレータ1502に再度のシミュレーションを実行させる。
次に、図18〜図21を用いて、シミュレータ1502が行う、ノードが構築する通信経路の模擬について説明を行う。図18〜図21において、"t"を有する白抜きの丸は、運用中のノードであり、データを中継しない終端ノードを示す。また、"r"を有する白抜きの丸は、運用中のノードであり、データを中継する中継ノードを示す。また、"s"を有する白抜きの丸は、余剰のノードであり、近隣のノードとの通信を休止しているノードを示す。また、"x"を有する白抜きの丸は、故障したノードを示す。
図18は、ノードが構築する通信経路の変更の一例を示す説明図(その1)である。図18の(A)では、故障したノードが無い状態におけるノードの通信経路を示す。また、図18の(B)では、故障したノードが無い状態におけるノードの通信経路において、集約装置AGにデータが集約する様子を示す。
図19は、ノードが構築する通信経路の変更の一例を示す説明図(その2)である。図19の(A)では、終端ノードの一つが故障した場合を示す。図19の(A)では、運用中のノード数は、20から19に減少する。これに対し、図19の(B)では、中継ノードの一つが故障した場合を示す。図19の(B)では、運用中のノード数は、20から12に減少する。このように、中継ノードが故障した場合の運用中のノード数が、終端ノードが故障する場合の運用中のノード数より大きく減少し、機能維持の閾値を下回る可能性がある。このような場合、集約装置AG、サーバ1501等が、通信経路の再構築をノードに指示するため、シミュレータ1502は、通信経路の再構築を模擬する。
図20は、ノードが構築する通信経路の変更の一例を示す説明図(その3)である。図20の(A)では、各ノードが近傍のノードに、通信経路の接続要求を送信し、仮接続を行う様子を示す。図20の(B)では、終端ノードを、中継ノードとして割り当てる様子を示す。
図21は、ノードが構築する通信経路の変更の一例を示す説明図(その4)である。図21では、中継ノードを割り当てて、通信経路の再構築を終了した状態を示す。このように、センサーネットワークシステム1500では、中継ノードが故障したとしても、終端ノードを中継ノードとして割り当てることにより、運用中のノードの減少を抑えることができる。図18〜図21で示したように、シミュレータ1502は、中継ノードが故障したと仮定した場合、通信経路の再構築を行い、機能維持の閾値と比較して、機能維持できるか否かを判断する。
図22は、機能維持指標値出力処理手順の一例を示すフローチャートである。機能維持指標値出力処理は、ノードのマルチホップ通信を模擬するシミュレーション処理を実行し、機能が維持できるか否かの指標値を出力する処理である。シミュレータ1502は、現在時刻Tにおいて故障したノードの位置情報を加えて、現在時刻Tにおけるシミュレーションを実行する(ステップS2201)。
次に、シミュレータ1502は、現在時刻Tにおけるシミュレーションの結果が、機能維持できるとなったか否かを判断する(ステップS2202)。機能維持できないとなった場合(ステップS2202:No)、シミュレータ1502は、ノードを追加配布すべき旨のアラームを出力する(ステップS2203)。アラームの出力先は、サーバ1501となる。アラームを受けたサーバ1501は、センサーネットワークシステム1500の運用者が閲覧できるような方法で、アラームの内容を出力する。ステップS2203の処理終了後、シミュレータ1502は、機能維持指標値出力処理を終了する。
一方、機能維持できるとなった場合(ステップS2202:Yes)、シミュレータ1502は、サーバ1501から、未来時刻となるT+Δt時点で新たに故障するノードの個数e_Δtを受け付ける(ステップS2204)。次に、シミュレータ1502は、故障カウントを0に設定する(ステップS2205)。続けて、シミュレータ1502は、未来時刻T+Δtにおけるシミュレーションを、所定回数行ったか否かを判断する(ステップS2206)。まだシミュレーションを所定回数行っていない場合(ステップS2206:No)、シミュレータ1502は、現在時刻Tで運用中のノードのうち、故障するノードをe_Δt分、ランダムに設定する(ステップS2207)。
次に、シミュレータ1502は、故障していないノードの位置情報を用いて、未来時刻T+Δtにおけるシミュレーションを実行する(ステップS2208)。続けて、シミュレータ1502は、未来時刻T+Δtにおけるシミュレーションの結果から得られる通信可能なノード数と機能維持の閾値とを比較して、機能維持できるとなったか否かを判断する(ステップS2209)。機能維持できるとならなかった場合(ステップS2209:No)、シミュレータ1502は、故障カウントをインクリメントする(ステップS2210)。ステップS2210の処理終了後、または、機能維持できるとなった場合(ステップS2209:Yes)、シミュレータ1502は、ステップS2206の処理に移行する。
シミュレーションを所定回数行った場合(ステップS2206:Yes)、シミュレータ1502は、故障確率=故障カウント/所定回数を計算する(ステップS2211)。続けて、シミュレータ1502は、尤度=所定回数/(nからe_Δtを選ぶ組合せの個数C)を計算する(ステップS2212)。次に、シミュレータ1502は、故障確率と尤度とを出力する(ステップS2213)。故障確率と尤度との出力先は、サーバ1501となる。故障確率と尤度とを受けたサーバ1501は、センサーネットワークシステム1500の運用者が閲覧できるような方法で、故障確率と尤度とを出力する。ステップS2213の処理終了後、シミュレータ1502は、機能維持指標値出力処理を終了する。
機能維持指標値出力処理を実行することにより、センサーネットワークシステム1500は、運用者に、ノードを追加すべきか否かの判断の材料となる、故障確率、尤度という機能が維持できるか否かの指標値を提供することができる。
以上説明したように、シミュレータ1502によれば、終了時刻に故障していないノードのうち、算出したいずれかの時刻に故障していないノードの個数分、いずれかの時刻に故障していないノードをランダムに設定する。そして、シミュレータ1502は、終了時刻に故障していないノードの位置情報に基づいて、いずれかの時刻におけるシミュレーションを実行し、シミュレーションの実行結果から、機能が維持できたか否かを出力してもよい。これにより、運用者は、現時刻以降のいずれかの時刻において、故障していないノードの個数が、機能維持の閾値未満となったとしても、機能が維持できる可能性が高ければ、ノードを追加散布しないという判断を取ることができる。
また、シミュレータ1502によれば、いずれかの時刻に故障していないノードをランダムに設定し、シミュレーションを所定回数繰り返して、機能維持できた回数と、機能維持できなかった回数とを出力してもよい。これにより、運用者は、機能維持できた回数と、機能維持できなかった回数とを閲覧して、ノードを追加すべきか否か判断することができる。
また、シミュレータ1502によれば、所定回数と、いずれかの終了時刻に故障していないノードからいずれかの時刻に故障していないノードを設定する場合にとり得る組合せの総数とに基づいて、尤度を算出してもよい。これにより、運用者は、機能維持できた回数と、機能維持できなかった回数を信用できるか否かを判断できる。たとえば、機能維持できた回数が、機能維持できなかった回数より大きい値を示していても、尤度が尤もらしくないことを示す場合、運用者は、所定回数を増やしてシミュレータ1502にシミュレーションを行わせたり、ノードを追加すべきとしたりしてもよい。
なお、実施の形態1、2で説明した分析方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本分析プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本分析プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態1〜nに関し、さらに以下の付記を開示する。
(付記1)コンピュータが、
複数のノードのうちの一部のノードが故障しても機能を実現可能なシステムを運用中のいずれかの期間に前記複数のノードのうちの故障したノードの個数を検出し、
検出した前記故障したノードの個数と前記期間とに基づいて、前記期間以降に単位時間当たりに故障するノードの個数を算出する、
処理を実行することを特徴とする分析方法。
(付記2)前記コンピュータが、
算出した前記単位時間当たりに故障するノードの個数と、前記複数のノードのうちの前記期間の終了時刻に故障していないノードの個数とに基づいて、前記期間以降のいずれかの時刻に故障していないノードの個数を算出する、
処理を実行することを特徴とする付記1に記載の分析方法。
(付記3)前記コンピュータが、
前記単位時間当たりに故障するノードの個数と、前記複数のノードのうちの前記期間の終了時刻に故障していないノードの個数とに基づいて、前記期間以降のいずれかの時刻に故障していないノードの個数が、予め記憶された前記機能を実現可能なノードの個数を示す所定数未満となるか否かを判断する、
処理を実行することを特徴とする付記1または2に記載の分析方法。
(付記4)前記コンピュータが、
前記時刻に故障していないノードの個数が前記所定数未満であると判断した場合に、前記時刻に故障していないノードの個数と前記所定数とに基づいて、前記時刻までに前記システムに追加すべきノードの個数を算出する、
処理を実行することを特徴とする付記3に記載の分析方法。
(付記5)前記追加すべきノードの個数を算出する処理は、
予め記憶されたノードの良品率と、前記時刻に故障していないノードの個数と、前記所定数とに基づいて、前記追加すべきノードの個数を算出することを特徴とする付記4に記載の分析方法。
(付記6)前記コンピュータが、
ノード製造時における製造数単位であるロットごとに、予め記憶されたロット単位のノードの良品率と、前記時刻に故障していないノードの個数と、前記所定数とに基づいて、前記追加すべきノードの個数を算出し、
前記ロットごとに、予め記憶されたロット単位のノードの単価と、算出した前記追加すべきノードの個数とに基づいて、前記追加すべきノードの個数分のノードを前記システムに追加する際のコストを算出することを特徴とする付記4に記載の分析方法。
(付記7)前記コンピュータが、
前記複数のノードのうちの前記終了時刻に故障していないノードの位置情報を受け付け、
前記終了時刻に故障していないノードのうち、算出した前記時刻に故障していないノードの個数分、前記時刻に故障していないノードをランダムに設定した場合に、受け付けた前記終了時刻に故障していないノードの位置情報に基づいて、前記時刻に故障していないノードによるマルチホップ通信を模擬するシミュレーションを実行し、
前記シミュレーションの実行結果から得られる通信可能なノードの個数と、予め記憶された前記機能を実現可能なノードの個数を示す所定数とを比較することにより、前記機能が実現可能か否かを判断する、
処理を実行することを特徴とする付記2〜6のいずれか一つに記載の分析方法。
(付記8)前記シミュレーションを実行する処理は、
前記時刻に故障していないノードをランダムに設定して前記シミュレーションを所定回数実行し、
前記機能が実現可能か否かを判断する処理は、
前記所定回数実行した前記シミュレーションの実行結果ごとに、当該実行結果から得られる通信可能なノードの個数と、前記所定数とを比較することにより、前記機能が実現可能であるか否かを判断する、
ことを特徴とする付記7に記載の分析方法。
(付記9)前記コンピュータが、
前記所定回数と、前記終了時刻に故障していないノードから前記時刻に故障していないノードを設定する場合にとり得る組合せの総数とに基づいて、前記機能が実現可能か否かを判断する処理の結果の尤もらしさを示す尤度を算出する、
ことを特徴とする付記8に記載の分析方法。
(付記10)前記検出する処理は、
前記複数のノードのうちの前記期間の開始時刻に通信可能なノードの個数と前記期間の終了時刻に通信可能なノードの個数との差分を前記故障したノードの個数として検出することを特徴とする付記1〜9のいずれか一つに記載の分析方法。
(付記11)コンピュータに、
複数のノードのうちの一部のノードが故障しても機能を実現可能なシステムを運用中のいずれかの期間に前記複数のノードのうちの故障したノードの個数を検出し、
検出した前記故障したノードの個数と前記期間とに基づいて、前記期間以降に単位時間当たりに故障するノードの個数を算出する、
処理を実行することを特徴とする分析プログラム。
(付記12)複数のノードのうちの一部のノードが故障しても機能を実現可能なシステムを運用中のいずれかの期間に前記複数のノードのうちの故障したノードの個数を検出し、検出した前記故障したノードの個数と前記期間とに基づいて、前記期間以降に単位時間当たりに故障するノードの個数を算出する制御部を、
有することを特徴とする分析装置。