(57)【要約】【課題】  抵抗等を用いた計測を行うことなく、単純な構成で通信ノードにおいて消費された消費電力量を高精度に推定できるようにする。【解決手段】  本発明の消費電力量推定システム１０は、処理フローを実行するとともに実行した処理フローの実行情報を計測する処理手段２１および送信失敗情報あるいは受信失敗情報を計測して処理フロー実行情報とともに管理装置３０へ送信する通信手段２２を備えた通信ノード２０と、第１〜３相関図を保持する記憶手段３１および処理フロー実行情報にもとづいて処理フロー消費電力量を第１相関図によって算出し、送信失敗情報にもとづいて送信失敗消費電力量を第２相関図によって算出し、受信失敗情報にもとづいて受信失敗消費電力量を第３相関図によって算出し、算出された三つの消費電力量の合計を通信ノードの総消費電力量とする消費電力量推定手段３２を備えた管理装置３０と、を備える。【選択図】      図１
2015191402.tif 000002
【特許請求の範囲】
【請求項１】
消費電力量推定対象である通信ノードと、前記通信ノードを管理する管理装置と、を備え、
前記通信ノードは、
処理フローを実行するとともに実行した処理フローの実行情報を計測する処理手段と、
前記管理装置との間で各種情報を送受信するとともに送受信に失敗した時に送信失敗情報あるいは受信失敗情報を計測して送信失敗情報と受信失敗情報と前記処理フロー実行情報とを前記管理装置へ送信する通信手段と、
を備え、
前記管理装置は、
前記通信ノードが実行する可能性のある処理フローに関する前記処理フロー実行情報と処理フロー消費電力量の関係を表す第１相関図と、送信失敗情報と送信失敗消費電力量の関係を表す第２相関図と、受信失敗情報と受信失敗消費電力量の関係を表す第３相関図と、を保持する記憶手段と、
前記通信ノードから通知された処理フロー実行情報にもとづいて処理フロー消費電力量を第１相関図によって算出し、前記通信ノードから通知された送信失敗情報にもとづいて送信失敗消費電力量を第２相関図によって算出し、前記通信ノードから通知された受信失敗情報にもとづいて受信失敗消費電力量を第３相関図によって算出し、前記算出された三つの消費電力量の合計を前記通信ノードの総消費電力量とする消費電力量推定手段と、
を備える、
ことを特徴とする消費電力量推定システム。
【請求項２】
前記記憶手段は、複数の処理フローにそれぞれ対応する複数の第１相関図を保持し、
前記処理手段は、前記複数の処理フローのいずれかを実施し、実行した処理フローの実行情報を前記通信手段を介して管理装置へ送信し、
前記消費電力量推定手段は、前記通信ノードから通知された処理フロー実行情報に基づいて実行された処理フローを特定し、特定した処理フローに対応する第１相関図を前記記憶手段から抽出して用いる、
請求項１記載の消費電力量推定システム。
【請求項３】
前記処理フロー実行情報は、複数の処理フローの中から前記通信ノードが実行した処理フローを表す番号と、当該処理フローの実行にかかった時間と、を含むことを特徴とする、請求項２に記載の消費電力推定システム。
【請求項４】
前記送信失敗情報は、送信失敗回数および個々の送信時の送信データサイズを含み、
前記受信失敗情報は、受信失敗回数および個々の受信時の受信データサイズを含み、
前記消費電力量推定手段は、通知された前記送信データサイズおよび受信データサイズごとに、対応する消費電力量を第２相関図および第３相関図からそれぞれ抽出し、抽出した消費電力量を送信および受信ごとに合計して前記送信用消費電力量および受信用消費電力量とする、
請求項１乃至３のいずれか１項記載の消費電力量推定システム。
【請求項５】
前記通信ノードは、所定の電力量が蓄電され、各手段へ電力を供給する電力供給手段をさらに備え、
前記消費電力量推定手段は、前記蓄電された電力量から前記演算した総消費電力量を減算することによって前記電力供給手段の残電力量を推定する、
請求項１乃至４のいずれか１項記載の消費電力量推定システム。
【請求項６】
処理フローを実行するとともに実行した処理フローの実行情報を計測する処理手段と、
各種情報を送受信すると共に送受信に失敗した時に送信失敗情報または受信失敗情報を計測する通信手段と、
前記処理手段が実行する可能性のある処理フローに関する処理フロー実行情報と処理フロー消費電力量の関係を表す第１相関図、送信失敗情報と送信失敗消費電力量の関係を表す第２相関図、受信失敗情報と受信失敗消費電力量の関係を表す第３相関図、の三つの相関図を保持する記憶手段と、
前記処理手段が計測した処理フロー実行情報にもとづいて処理フロー消費電力量を第１相関図によって算出し、前記通信手段が計測した送信失敗情報にもとづいて送信失敗消費電力量を第２相関図によって算出し、前記通信手段が計測した受信失敗情報にもとづいて受信失敗消費電力量を第３相関図によって算出し、前記算出された三つの消費電力量の合計を総消費電力量とする消費電力量推定手段と、
を備える通信ノード。
【請求項７】
消費電力量推定対象である通信ノードが実行する処理フローの処理フロー実行情報を計測するとともに、前記通信ノードと管理装置との間の通信に関する送信失敗情報あるいは受信失敗情報を計測し、
前記通信ノードが実行する可能性のある処理フローに関する処理フロー実行情報と処理フロー消費電力量の関係を表す第１相関図を使って前記計測された処理フロー実行情報に対応する処理フロー消費電力量を算出し、
送信失敗情報と送信失敗消費電力量の関係を表す第２相関図を使って前記計測された送信失敗情報に対応する送信失敗消費電力量を算出し、
受信失敗情報と受信失敗消費電力量の関係を表す第３相関図を使って前記計測された受信失敗情報に対応する受信失敗消費電力量を算出し、
前記算出された三つの消費電力量の合計を当該通信ノードの総消費電力量とする、
ことを特徴とする通信ノードの消費電力推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、消費電力量推定システム、通信ノードおよび消費電力量推定方法に関し、特に、通信ノードにおいて消費した消費電力を推定する消費電力量推定システム、通信ノードおよび消費電力量推定方法に関する。
【背景技術】
【０００２】
長期のモニタリングを目的とするセンサネットワーク向け通信ノードは、搭載されたセンサにより温度、湿度、振動などを定期的に計測し、外部へ送信する。計測の間隔は、１０分おき、１時間おき、１日おき、など様々であるが、計測している時間よりも、待機している時間のほうが圧倒的に多いのが特徴である。
【０００３】
このような通信ノードは、複数年にわたって長期メンテナンス不要であることが望ましい。そのためのひとつの条件は、消費電力が少ないことである。一般的なセンサネットワーク向けの通信ノードは、電池交換なしで半年から１年程度の動作が可能である。
【０００４】
また、このような通信ノードにおいては電池残量の計測が定期的に行われる。通信ノードにおける一般的な電池残量計測方法は、電池につないだ抵抗の電圧を計測し、予め計測しておいた電圧−電池残量曲線にもとづいて電池残量を推定する。しかし、この方法は、電池に抵抗を接続するため、計測時に抵抗に電流が流れて数ｍＷの電力が消費される。さらに、電池残量の非計測時にも電池残量計測回路への漏れ電流がμＡオーダで発生する。わずかな漏れ電流であっても、それが長時間にわたって続くと無視できない電力浪費となる。従って、電池に抵抗をつないで直接計測することなしに、電池残量を計測することが望ましい。
【０００５】
そこで、特許文献１には、電池に抵抗をつないで直接計測することなしに、電池残量を取得する技術が開示されている。特許文献１の消費電力推定システムは、複数の消費電力測定機能付き情報処理装置から、使用したアプリケーションおよびその時の電池残量を取得して記録し、自装置のアプリケーション使用状況と最も近い消費電力測定機能付き情報処理装置を抽出し、その装置の電池残量を自装置の電池残量とする。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−６８８０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、自装置のアプリケーション使用状況と最も近い消費電力測定機能付き情報処理装置の電池残量を自装置の電池残量とする場合、電池残量を高い精度で推定することは困難である。また、複数の消費電力測定機能付き情報処理装置から、使用したアプリケーションおよびその時の電池残量を取得して保持しておく場合、システム構成の規模が大きくなってしまう。
【０００８】
本発明は上記の課題に鑑みてなされたものであり、抵抗等を用いた計測を行うことなく、単純な構成で通信ノードにおいて消費された消費電力量を高精度に推定できる、消費電力量推定システム、通信ノードおよび消費電力量推定方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明に係る消費電力量推定システムは、消費電力量推定対象である通信ノードと、当該通信ノードを管理する管理装置と、を備え、当該通信ノードは、処理フローを実行するとともに実行した処理フローの実行情報を計測する処理手段と、当該管理装置との間で各種情報を送受信するとともに送受信に失敗した時に送信失敗情報あるいは受信失敗情報を計測して送信失敗情報と受信失敗情報と前期処理フロー実行情報とを管理装置へ送信する通信手段と、を備え、当該管理装置は、当該通信ノードが実行する可能性のある処理フローに関する処理フロー実行情報と処理フロー消費電力量の関係を表す第１相関図と、送信失敗情報と送信失敗消費電力量の関係を表す第２相関図と、受信失敗情報と受信失敗消費電力量の関係を表す第３相関図と、を保持する記憶手段と、通信ノードから通知された処理フロー実行情報にもとづいて処理フロー消費電力量を第１相関図によって算出し、同じく送信失敗情報にもとづいて送信失敗消費電力量を第２相関図によって算出し、同じく受信失敗情報にもとづいて受信失敗消費電力量を第３相関図によって算出し、前記算出された三つの消費電力量の合計を当該通信ノードの総消費電力量とする消費電力量推定手段を備える。
【００１０】
上記目的を達成するために本発明に係る別の通信ノードは、処理フローを実行するとともに実行した処理フローの実行情報を計測する処理手段と、各種情報を送受信すると共に送受信に失敗した時に送信失敗情報または受信失敗情報を計測する通信手段と、当該通信ノードが実行する可能性のある処理フローに関する処理フロー実行情報と処理フロー消費電力量の関係を表す第１相関図、送信失敗情報と送信失敗消費電力量の関係を表す第２相関図、受信失敗情報と受信失敗消費電力量の関係を表す第３相関図、の三つの相関図を保持する記憶手段と、当該処理手段が計測した処理フロー実行情報にもとづいて処理フロー消費電力量を第１相関図によって算出し、同じく送信失敗情報にもとづいて送信失敗消費電力量を第２相関図によって算出し、同じく受信失敗情報にもとづいて受信失敗消費電力量を第３相関図によって算出し、前記算出された三つの消費電力量の合計を当該通信ノードの総消費電力量とする消費電力量推定手段と、を備える。
【００１１】
上記目的を達成するために本発明に係る消費電力量推定方法は、消費電力量推定対象である通信ノードが実行する処理フローの処理フロー実行情報を計測するとともに、当該通信ノードと管理装置との間の通信に関する送信失敗情報あるいは受信失敗情報を計測し、当該通信ノードが実行する可能性のある処理フローに関する処理フロー実行情報と処理フロー消費電力量の関係を表す第1相関図を使って前記計測された処理フロー実行情報に対応する処理フロー消費電力量を算出し、送信失敗情報と送信失敗消費電力量の関係を表す第２相関図を使って前記計測された送信失敗情報に対応する送信失敗消費電力量を算出し、受信失敗情報と受信失敗消費電力量の関係を表す第３相関図を使って前記計測された受信失敗情報に対応する受信失敗消費電力量を算出し、前記算出された三つの消費電力量の合計を当該通信ノードの総消費電力量とする、ことを特徴とする。
【発明の効果】
【００１２】
上述した本発明の態様によれば、抵抗等を用いた計測を行うことなく、単純な構成で通信ノードにおいて消費された消費電力量を高精度に推定できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態に係る、（ａ）消費電力量推定システム１０のシステム構成図、（ｂ）通信ノード２０Ｂのブロック構成図である。
【図２】第２の実施形態に係る通信ノード１００のブロック構成図である。
【図３】第２の実施形態に係る計測処理部３００において実行されるプログラム処理の一例を示す図である。
【図４】第２の実施形態に係る記憶部５００に保持されている計測処理・消費電力量表の一例である。
【図５】第２の実施形態に係る記憶部５００に保持されている通信失敗・消費電力量表の一例である。
【図６】第２の実施形態の変形例に係る消費電力量推定システム７００Ｂのシステム構成図である。
【発明を実施するための形態】
【００１４】
＜第１の実施形態＞
本発明の第１の実施形態について説明する。本実施形態に係る消費電力量推定システムのシステム構成図を図１（ａ）に示す。図１（ａ）において、消費電力量推定システム１０は、処理回路２１および通信回路２２を備えた通信ノード２０と、記憶回路３１および消費電力量推定回路３２を備えた管理装置３０と、によって構成される。
【００１５】
通信ノード２０において、処理回路２１は、複数の処理フローの中から所定の処理フローを選択して実行する。処理回路２１は、選択した処理フローに従って、例えば、温度、湿度、加速度等を計測し、雑音除去、圧縮等の処理を施した後、処理結果を処理データとして出力する。また、処理回路２１は、処理フローを実行した時に要した時間および実行した処理フローを特定するための情報（処理フロー実行情報）を出力する。処理フロー実行情報には、通信ノード２０が実行する可能性のある複数の処理フローの中から実際に実行された処理フローを区別するための番号と、その番号の処理フローを実行するのにかかった時間とが含まれる。
【００１６】
ここで、処理回路２１が実行する複数の処理フローはそれぞれ、複数の単位処理および条件分岐処理を組み合わせることによって構成される。処理回路２１は、全処理フローごとに一つの処理フローにしか属さない単位処理を注目処理として設定する。例えば、処理回路２１は、処理フローごとに、最も下流に位置する条件分岐処理の直下に位置する単位処理を注目処理として設定する。そして、処理回路２１は、設定した注目処理が実行された場合、それを含む処理フローを特定するための情報、つまり、処理フロー実行情報（処理フローの番号、処理フローの実行時間）を計測する。
【００１７】
通信回路２２は、各種情報を管理装置３０との間で送受信する。また、通信回路２２は、送信に失敗した時に送信失敗情報を計測し、受信に失敗した時に受信失敗情報を計測する。本実施形態において、送信失敗情報は、送信失敗回数および送信に失敗した時のそれぞれの送信データサイズを含む。また、受信失敗情報は、受信失敗回数および受信に失敗した時のそれぞれの受信データサイズを含む。なお、送受信に失敗した時の送信データサイズおよび受信データサイズの代わりに、送受信に失敗した時の送信時間および受信時間等を送信失敗情報および受信失敗情報に含めることもできる。
【００１８】
そして、通信回路２２は、処理回路２１から出力された処理データ、処理フロー実行情報、計測された送信失敗情報および受信失敗情報を、管理装置３０へ送信する。
【００１９】
管理装置３０において、記憶回路３１は、通信ノード２０が実行する可能性のある処理フローに関する処理フロー実行情報と通信ノード２０が処理フローを実行する過程で消費する電力量との関係を表す第１相関図３１ａを保持する。本実施形態においては、もし通信ノード２０が処理フローの実行過程で通信を行うならば、通信成功の場合に通信回路２２が消費する電力量は、通信ノード２０が処理フローを実行する過程で消費する電力量に含まれるものとする。したがって、第１相関図３１ａには、通信成功の場合に通信回路２２が消費する電力量が含まれている。
【００２０】
本実施形態においては、記憶回路３１には、通信ノード２０の処理回路２１において実行される複数の処理フローにそれぞれ対応する、複数の第１相関図３１ａを保持している。また、記憶回路３１は、送信失敗情報と送信失敗によって消費される電力量との関係を表す第２相関図３１ｂ、受信失敗情報と受信失敗によって消費される電力量との関係を表す第３相関図３１ｃを保持する。
【００２１】
消費電力量推定回路３２は、記憶回路３１に保持されている第１相関図３１ａを参照して、通信ノード２０において計測された処理フロー実行情報に対応する処理フロー消費電力量を算出する。算出された処理フロー消費電力量は、通信ノード２０が処理フローを実行する過程で消費した電力量の推定値となる。ただし、この処理フロー消費電力量には、通信失敗による消費電力量は含まれていない。
【００２２】
消費電力量推定回路３２はさらに、記憶回路３１に保持されている第２相関図３１ｂおよび第３相関図３１ｃを参照して、通信ノード２０において計測された送信失敗情報および受信失敗情報に対応する送信失敗消費電力量および受信失敗消費電力量を算出する。算出された送信失敗消費電力量および受信失敗消費電力量は、通信ノード２０が送信失敗時あるいは受信失敗時に消費した電力量の推定値となる。第１相関図、第２相関図、第３相関図から各種消費電力量を算出する具体的な方法については、第２の実施形態で説明されている。
【００２３】
そして、消費電力量推定回路３２は、算出された処理フロー消費電力量、送信失敗消費電力量および受信失敗消費電力量の合計を演算し、演算結果を通信ノード２０において消費された総消費電力量の推定値とする。
【００２４】
上記のように構成された消費電力量推定システム１０は、抵抗等を用いた計測を行うことなく、単純な構成で通信ノード２０において消費された総消費電力量を高精度に推定できる。ここで、通信ノード２０が各回路に電力を供給する図示しない電源回路を備える場合、管理装置３０は、電源回路の初期蓄電量から、演算した総消費電力量の累積値を減算することによって、通信ノード２０の電源回路の残電力量を推定することができる。
【００２５】
なお、通信ノード２０で消費した総消費電力量の推定を通信ノード２０自体で行うこともできる。この場合の通信ノードのブロック構成図を図１（ｂ）に示す。図１（ｂ）において、通信ノード２０Ｂは、処理回路２１Ｂ、通信回路２２Ｂ、記憶回路２３Ｂおよび消費電力量推定回路２４Ｂを備える。
【００２６】
処理回路２１Ｂは、複数の処理フローの中から適宜必要な処理フローを選択して実行する。また、処理回路２１Ｂは、実行した処理フローを特定するための情報、つまり、処理フロー実行情報（処理フローの番号、処理フローの実行時間）を消費電力量推定回路２４Ｂへ出力する。
【００２７】
通信回路２２Ｂは、各種情報を送受信する。また、通信回路２２Ｂは、送受信に失敗した時に、送信失敗情報または受信失敗情報を計測して消費電力量推定回路２４Ｂへ出力する。
【００２８】
記憶回路２３Ｂは、処理フロー実行情報と処理フロー消費電力量との関係を示した複数の第１相関図、送信失敗情報と送信失敗によって消費される電力量との関係を表す第２相関図、受信失敗情報と受信失敗によって消費される電力量との関係を表す第３相関図を保持する。
【００２９】
消費電力量推定回路２４Ｂは、記憶回路２３Ｂに保持されている第１相関図を参照して、処理回路２１Ｂが計測した処理フロー実行情報に対応する処理フロー消費電力量を算出する。算出された処理フロー消費電力量は、通信ノード２０が処理フローを実行する過程で消費した電力の推定値となる。ただし、この処理フロー消費電力量は、通信失敗による消費電力量は含まれていない。
【００３０】
また、消費電力量推定回路２４Ｂは、記憶回路２３Ｂに保持されている第２相関図および第３相関図を参照して、通信回路２２Ｂが計測した送信失敗情報および受信失敗情報に対応する送信失敗消費電力量および受信失敗消費電力量を算出する。第１相関図、第２相関図、第３相関図から各種消費電力量を算出する具体的な方法については、第２の実施形態で説明されている。そして、消費電力量推定回路２４Ｂは、算出された処理フロー消費電力量、送信失敗消費電力量および受信失敗消費電力量の合計を演算し、演算結果を通信ノード２０Ｂにおいて消費された総消費電力量の推定値とする。
【００３１】
上記のように構成された通信ノード２０Ｂは、抵抗等を用いた計測を行うことなく、単純な構成で通信ノード２０Ｂにおいて消費した総消費電力量を高精度に推定できる。
【００３２】
＜第２の実施形態＞
第２の実施形態について説明する。本実施形態に係る通信ノードのブロック構成図を図２に示す。図２において、通信ノード１００は、電力供給部２００、計測処理部３００、通信部４００、記憶部５００および消費電力量推定部６００を備える。
【００３３】
電力供給部２００は、電池等であり、蓄えている電力を通信ノード１００の各部に供給する。
【００３４】
計測処理部３００は、複数のフローから成るプログラム処理を実行する。本実施形態に係る計測処理部３００は、プログラム処理として、通信ノード２００を管理している図示しない外部サーバによって設定された管理情報に対応するフローを実行する。計測処理部３００は、管理情報に対応するフローを実行することにより、温度、湿度、加速度等を定期的にあるいは不定期に計測し、雑音除去、圧縮等の処理を施した後、処理結果を計測データとして外部サーバへ出力する。管理情報には、計測処理部３００が計測すべきデータの種類、計測周期、計測データの送信周期等が含まれる。
【００３５】
通信部４００は、電気、光等の有線通信や電波、光、音、振動等の無線通信によって、外部サーバとの間で各種情報を送受信する。本実施形態に係る通信部４００は、外部サーバから管理情報を不定期に受信し、外部サーバへ計測データを指示された周期で送信する。さらに、通信部４００は、外部サーバと各種情報を送受信するごとに、送受信の成否およびその時に送受信したデータのバイト数を消費電力量推定部６００へ報告する。
【００３６】
記憶部５００は各種情報を保持する。本実施形態に係る記憶部５００は、計測処理部３００が実行する全てのフローごとに、実行時間と消費電力量との関係を示す「計測処理・消費電力量表」を保持する。さらに、記憶部５００は、通信部４００が扱った送受信データのバイト数と送受信時の消費電力量との関係を示す「通信失敗・消費電力量表」を保持する。「計測処理・消費電力量表」および「通信失敗・消費電力量表」については後述する。
【００３７】
消費電力量推定部６００は、電力供給部２００の電池残量を推定する。本実施形態に係る消費電力量推定部６００は、計測処理部３００が計測処理を実施するごとに、計測処理部３００において消費された電力量（計測処理消費電力量Ｐｍ）および通信部４００において失敗した通信に消費された電力量（送信失敗消費電力量Ｐｔ，受信失敗消費電力量Ｐｒ）を演算し、演算した計測処理消費電力量Ｐｍ、送信失敗消費電力量Ｐｔおよび受信失敗消費電力量Ｐｒの累積結果を通信ノード１００において今までに消費された電力量（総消費電力量Ｐｓ）の推定値とする。消費電力量推定部６００は、電力供給部２００の初期蓄電量から総消費電力量Ｐｓを減算して電力供給部２００の電池残量を推定する。計測処理消費電力量Ｐｍ、送信失敗消費電力量Ｐｔ、受信失敗消費電力量Ｐｒ、総消費電力量Ｐｓの取得手順については後述する。
【００３８】
次に、記憶部５００に保持されている「計測処理・消費電力量表」および消費電力量推定部６００が計測処理部３００において消費された電力量（計測処理消費電力量Ｐｍ）を推定する手順について説明する。
【００３９】
先ず、計測処理部３００において実行されるプログラム処理について説明する。図３に、計測処理部３００において実行されるプログラム処理の一例を示す。図３に示すように、計測処理部３００において実行されるプログラム処理は、９つの「Ｔａｓｋ」および２つの「ｃａｓｅ」を含み、それらが組み合わされた４つの「フロー」によって構成される。
【００４０】
「Ｔａｓｋ」は一つの処理として扱う処理単位であり、例えば、関数、Ｃ言語のｆｏｒ文のような繰り返し処理、いくつかの計算ステートメントの集合等である。「ｃａｓｅ」は条件分岐であり、例えば、「ｃａｓｅ１」において変数ｘの値が検査され、変数ｘの値に応じて「Ｔａｓｋ３」、「Ｔａｓｋ４」、「Ｔａｓｋ５」のいずれかに分岐される。
【００４１】
本実施形態では、入力信号や内部状態などの条件によって異なる種類の計算を切り替えるようなものをひとつの「Ｔａｓｋ」に含めないこととする。すなわち、入力信号や内部状態などの条件によって処理内容が変化する場合は「ｃａｓｅ」を挿入して、条件ごとに異なる「Ｔａｓｋ」を設定する。また、条件分岐における「戻り処理」や「繰り返し処理」は、対応する「Ｔａｓｋ」内に含める。条件ごとに異なる「Ｔａｓｋ」に分岐させると共に「戻り処理」や「繰り返し処理」を「Ｔａｓｋ」内に含めることにより、プログラム処理を非巡回型有効グラフとみなすことができ、計測処理部３００において実行されるプログラム処理を、互いに独立した有限の「フロー」で表現することができる。
【００４２】
そして、記憶部５００には、上記フローごとの「計測処理・消費電力量表」が予め保持されている。記憶部５００に保持されている「計測処理・消費電力量表」の一例を図４に示す。図４のグラフは、フローの実行時間とその時に消費された消費電力量とを複数回実測し、それらを最小二乗法によって回帰分析することによって得たものである。実行時間と消費電力量とを回帰分析することにより、式（１）の係数Ａｍ、Ｃｍが得られる。
【００４３】
計測処理・消費電力量Ｐｍ＝Ｃｍ＋（Ａｍ×実行時間）      …式（１）
ここで、計測を多数回行ってプロット数を大きくすることにより、計測処理・消費電力量の推定精度を高めることができる。なお、「計測処理・消費電力量表」には、フローに含まれる全ての通信が１回で成功し、通信失敗によるリトライを全く行わなかった時のデータのみがプロットされる。すなわち、通信に失敗した時のデータはプロットされない。本実施形態では、通信部４００において通信に要する消費電力量は計測処理部３００において計測に要する消費電力量よりも一般的には大きいため、通信に失敗した時に消費される電力量を計測処理・消費電力量とは別に見積もる。
【００４４】
そして、消費電力量推定部６００は、記憶部５００に保持されている「計測処理・消費電力量表」を用いて計測処理消費電力量Ｐｍを推定する。本実施形態に係る消費電力量推定部６００は、計測処理部３００がフローを実行した時の実行時間ｔを計測すると共に、各フローにおいて最も下流にある条件分岐「ｃａｓｅ」の直後の「Ｔａｓｋ」に注目することによって計測処理部３００がどの「フロー」を実行したかを判別する。
【００４５】
例えば、図３に示したプログラム処理において、消費電力量推定部６００は、最も下流にある条件分岐「ｃａｓｅ」の直後の「Ｔａｓｋ」として、フロー１については「Ｔａｓｋ３」、フロー２」については「Ｔａｓｋ４」、フロー３については「Ｔａｓｋ８」、フロー４については「Ｔａｓｋ９」に注目する。そして、計測処理部３００がフロー３に属する「Ｔａｓｋ８」を実行した場合、消費電力量推定部６００は、計測処理部３００がフロー３を実行したと認定する。
【００４６】
そして、消費電力量推定部６００は、特定したフロー３に対応する「計測処理・消費電力量表（係数Ａｍ、Ｃｍ）」を記憶部５００から抽出し、計測した実行時間ｔに対応する計測処理消費電力量Ｐｍを取得する。
【００４７】
計測処理部３００が実行したプログラム処理を、「Ｔａｓｋ」、「ｃａｓｅ」等の単純な情報で「フロー」として表現することにより、計測処理消費電力量Ｐｍを簡便に見積もることができる。また、本実施形態においては、条件が異なる場合に「ｃａｓｅ」で分岐し、条件ごとに「Ｔａｓｋ」を設定した。この場合、実行時間が「Ｔａｓｋ」の処理時間に比例するようになり、より理想的な回帰分析を行うことができる。さらに、本実施形態においては、条件分岐における「戻り処理」や「繰り返し処理」を「Ｔａｓｋ」の中に閉じ込めて一つの「Ｔａｓｋ」として扱った。この場合、フローの数が大きくなることを避けることができ、保持する「計測処理・消費電力量表」の数を必要最小限にすることができる。
【００４８】
ここで、本実施形態では、１次の線形回帰式（式（１））を用いて計測処理・消費電力量Ｐｍを演算したが、式（１）を用いる代わりに、非線形など他の回帰モデルを適用することもできる。消費電力量と実行時間の関係をより適切に表現する回帰モデルを適用すればよい。さらに、式（１）を用いる代わりに、実行時間と消費電力量の関係をルックアップテーブルとして表形式で表し、該ルックアップテーブル等を用いて計測処理・消費電力量Ｐｍを取得することもできる。この場合、表には存在しない実行時間に対しては内挿あるいは外挿によって消費電力量を推定する。
【００４９】
次に、記憶部５００に保持されている「通信失敗・消費電力量表」および消費電力量推定部６００が通信部４００において消費された電力量（送信失敗消費電力量Ｐｔ，受信失敗消費電力量Ｐｒ）を推定する手順について説明する。
【００５０】
記憶部５００に保持されている「通信失敗・消費電力量表」の一例を図５に示す。「通信失敗・消費電力量表」は、送受信したデータのバイト数とその時に消費された消費電力量とを複数回実測し、それらを最小二乗法によって回帰分析することによって得たものである。図５において、上図は、外部サーバへ送信した計測データのバイト数と送信に要した消費電力量との回帰直線（係数Ａｔ、Ｃｔ）、下図は、外部サーバから受信した管理情報等のバイト数と受信に要した消費電力量との回帰直線（係数Ａｒ、Ｃｒ）である。
【００５１】
例えば、送信バイト数がＳｔの場合、送信に要した消費電力量ｐｔは式（２）で表される。同様に、受信バイト数がＳｒである場合、受信に要した消費電力量ｐｒは式（３）で表される。
【００５２】
ｐｔ＝Ｃｔ＋（Ａｔ×送信バイト数Ｓｔ）    …式（２）
ｐｒ＝Ｃｒ＋（Ａｒ×受信バイト数Ｓｒ）    …式（３）
そして、通信部４００は、外部サーバと各種情報を送受信するごとに、送受信の成否およびその時に送受信したデータのバイト数を消費電力量推定部６００へ報告する。
【００５３】
本実施形態に係る消費電力量推定部６００は、計測処理・消費電力量Ｐｍを算出する場合、並行して通信に失敗した時の消費電力量（送信失敗消費電力量Ｐｔおよび受信失敗消費電力量Ｐｒ）を算出する。つまり、消費電力量推定部６００は、通信部４００から入力した情報のうち、送信に失敗した回数とその個々の失敗の送信バイト数および受信に失敗した回数と個々の失敗の受信バイト数を抽出する。そして、消費電力量推定部６００は、式（２）を用いることにより、抽出した失敗送信バイト数に対応する送信失敗消費電力量ｐｔを取得する。さらに、消費電力量推定部６００は、式（３）を用いることにより、抽出した失敗受信バイト数に対応する受信失敗消費電力量ｐｒを取得する。例えば、第ｋ回目の送信失敗時の送信バイト数をＢＴＸｋとすると、第ｋ回目の送信失敗の消費電力量ｐｔｋは式（２）によってＣｔ＋（Ａｔ×ＢＴＸｋ）と表される。同様に、第ｋ回目の受信失敗時の送信バイト数をＢＲＸｋとすると、第ｋ回目の受信失敗の消費電力量ｐｒｋは式（３）によってＣｒ＋（Ａｒ×ＢＲＸｋ）と表される。
【００５４】
従って、計測処理部３００においてフロー３を実行するにあたり、全Ｋｔ回の送信失敗に要した送信失敗消費電力量Ｐｔは、式（４）で表される。同様に、計測処理部３００においてフロー３を実行するにあたり、全Ｋｒ回の受信失敗に要した受信失敗消費電力量Ｐｒは式（５）で表される。
【００５５】
Ｐｔ＝Σｐｔｋ＝Σ（Ｃｔ＋（Ａｔ＊ＢＴＸｋ））    ｋ＝１〜Ｋｔ      …式（４）
Ｐｒ＝Σｐｒｋ＝Σ（Ｃｒ＋（Ａｒ×ＢＲＸｋ））    ｋ＝１〜Ｋｒ      …式（５）
ここで、本実施形態では、式（４）、（５）に１次の線形回帰式（式（２）、（３））を適用したが、１次の線形回帰式を適用する代わりに、非線形など他の回帰モデルを適用することもできる。通信バイト数と消費電力量の関係をより適切に表現する回帰モデルを適用すればよい。さらに、１次の線形回帰式を適用する代わりに、通信バイト数と消費電力量との関係をルックアップテーブルとして表形式で表し、該ルックアップテーブル等を用いて式（２）のｐｔ，式（３）のｐｒを取得することもできる。この場合、表には存在しないバイト数に対しては内挿あるいは外挿によって消費電力量を推定する。
【００５６】
次に、消費電力量推定部６００が総消費電力量Ｐｓを演算する手順および電力供給部２００の電池残量を推定する手順について説明する。本実施形態に係る消費電力量推定部６００は、式（１）を用いて取得した計測処理・消費電力量Ｐｍ、式（４）を用いて取得した送信失敗消費電力量Ｐｔおよび式（５）を用いて取得した受信失敗消費電力量Ｐｒの合計を、式（６）によって演算し、計測処理部３００の計測実行時における総消費電力量Ｐｓｎを取得する。
【００５７】
第ｎ回目の計測時の総消費電力量Ｐｓｎ＝計測処理・消費電力量Ｐｍ＋送信失敗消費電力量Ｐｔ＋受信失敗消費電力量Ｐｒ      …式（６）
消費電力量推定部６００は、計測処理部３００がフロー（計測処理）を実行するたびに総消費電力量Ｐｓｎを演算し、演算結果を累積加算する。消費電力量推定部６００は、式（７）によって全Ｎ回のフローの実施に要した総消費電力量Ｐｓを演算する。
【００５８】
総消費電力量Ｐｓ＝Σ第ｎ回目の計測時の総消費電力量Ｐｓｎ  ｎ＝１〜Ｎ    …式（７）
さらに、消費電力量推定部６００は、演算した総消費電力量Ｐｓを通信ノード１００において今までに消費された電力量とみなして電力供給部２００の初期蓄電量から減算することにより（式（８））、電力供給部２００の電池残量を取得する。
【００５９】
電力供給部２００の電池残量＝初期蓄電量−総消費電力量Ｐｓ      …式（８）
以上のように、本実施形態に係る通信ノード１００は、計測処理部３００において実行されるプログラム処理を、条件ごとに設定された「Ｔａｓｋ」を用いて互いに独立した有限のフローで表現し、全フローについての「計測処理・消費電力量表」を予め保持する。さらに、通信ノード１００は、送受信したデータのバイト数とそのデータを送受信した時に消費された消費電力量との実測結果を「通信失敗・消費電力量表」として予め保持する。
【００６０】
そして、消費電力量推定部６００は、計測処理部３００がフローを実行するたびに、実行されたフローの特定、フローの実行時間の計測処理を行い、記憶部５００に保持されている「計測処理・消費電力量表」に当て嵌めることによって計測処理に要した計測処理・消費電力量Ｐｍを取得する。さらに、消費電力量推定部６００は、計測処理部３００がフローを実行するたびに、通信に失敗した時の送受信バイト数を、記憶部５００に保持されている「通信失敗・消費電力量表」に当て嵌めることによって送信失敗消費電力量Ｐｔおよび受信失敗消費電力量Ｐｒを算出する。そして、消費電力量推定部６００は、それらを累積合計することにより、総消費電力量Ｐｓを取得すると共に電力供給部２００の電池残量を推定する。
【００６１】
従って、本実施形態に係る通信ノード１００は、抵抗等を用いた計測を行うことなく、単純な演算処理によって通信ノード１００の総消費電力量Ｐｓを取得することができ、電力供給部２００の電池残量を高い精度で推定することができる。
【００６２】
なお、本実施形態に係る通信ノード１００は、センサネットワーク内に配置されるノードに適用できる他、電池で駆動する通信端末等にも適用することができる。
【００６３】
＜第２の実施形態の変形例＞
第２の実施形態の変形例について説明する。第２の実施形態では、通信ノード１００において電力供給部２００の電池残量を推定したが、電力供給部２００の電池残量の推定を通信ノード１００とは別の外部サーバ等で行うこともできる。本実施形態に係る消費電力量推定システムのシステム構成図を図６に示す。図６において、消費電力量推定システム７００Ｂは、通信ノード１００Ｂおよび外部サーバ８００Ｂを含む。
【００６４】
通信ノード１００Ｂは、電力供給部２００Ｂ、計測処理部３００Ｂおよび通信部４００Ｂを備える。以下、第２の実施形態で説明した通信ノード１００と異なる部分を中心に説明する。
【００６５】
計測処理部３００Ｂは、所定のフローに沿って各種データを計測し、計測データと共に実行したフローおよびその実行時間（処理フロー実行情報）を外部サーバ８００Ｂへ報告する。この報告は、実行するフローに「Ｔａｓｋ」として含まれている。なお、処理フロー実行情報の報告は、他の設定情報や管理情報と合わせて、通信ノード１００Ｂから外部サーバ８００Ｂへ送信することもできる。
【００６６】
通信部４００Ｂは、計測処理部３００Ｂが出力した計測データ、実行したフローおよび実行時間（処理フロー実行情報）を、外部サーバ８００Ｂへ送信する。また、通信部４００Ｂは、外部サーバ８００Ｂとの通信失敗に関する情報（送信失敗情報：送信失敗した回数および個々の失敗における送信データサイズ、受信失敗情報：受信失敗した回数および個々の失敗における受信データサイズ）を外部サーバ８００Ｂへ報告する。なお、外部サーバ８００Ｂに送信する計測データに、処理フロー実行情報と送信失敗情報と受信失敗情報を含めることもできる。
【００６７】
外部サーバ８００Ｂは、通信ノード１００Ｂを管理する。本実施形態に係る外部サーバ８００Ｂは、第２の実施形態で説明した「計測処理・消費電力量表」および「通信失敗・消費電力量表」を保持する。外部サーバ８００Ｂは、保持している「計測処理・消費電力量表」および「通信失敗・消費電力量表」を参照して、通信ノード１００Ｂから報告された処理フロー実行情報と送信失敗情報と受信失敗情報にもとづいて総消費電力量Ｐｓを演算し、さらに、通信ノード１００Ｂの電力供給部２００Ｂの電池残量を推定する。外部サーバ８００Ｂにおいて総消費電力量Ｐｓを演算する方法および電力供給部２００Ｂの電池残量を推定する方法は、第２の実施形態で説明した方法をそのまま適用することができる。
【００６８】
外部サーバ８００Ｂが総消費電力量Ｐｓを演算して通信ノード１００Ｂの電力供給部２００Ｂの電池残量を推定する場合、通信ノード１００Ｂにおいて演算および推定に消費される電力量を低減することができる。さらに、外部サーバ８００Ｂが「計測処理・消費電力量表」および「通信失敗・消費電力量表」を保持する場合、通信ノード１００Ｂの記憶部のメモリを節約できる。
【００６９】
なお、上記の実施形態では、通信部４００Ｂが、外部サーバ８００Ｂとの通信において失敗した回数およびその時に送受信したデータのバイト数を外部サーバ８００Ｂへ報告したが、互いに、送信側から受信側へ送信失敗回数および送信バイト数を送信データに含めて送信することもできる。
【００７０】
すなわち、通信ノード１００Ｂが送信失敗回数および送信バイト数を送信データに含めて送信することにより、外部サーバ８００Ｂはそれらを知ることができる。同様にして、外部サーバ８００Ｂが送信失敗回数および送信バイト数を送信データに含めて送信することにより、通信ノード１００Ｂはそれらを知ることができる。そして、通信ノード１００Ｂが外部サーバ８００Ｂから送信された送信失敗回数および送信バイト数を、受信失敗回数および受信バイト数として外部サーバ８００Ｂへ送信することにより、外部サーバ８００Ｂは消費電力量の推定計算に必要なデータを取得することができる。
【００７１】
ここで、「計測処理・消費電力量表」に示すように、通信ノード１００Ｂの計測処理部３００Ｂにおいて実行されたフローとその実行時間とは、所定の回帰分布を示す。従って、外部サーバ８００Ｂは、通信ノード１００Ｂから受信した実行フローおよび実行時間が回帰分布から大きく逸脱している場合、通信ノード１００Ｂに何らかの異常が発生したと判断することができる。この場合、外部サーバ８００Ｂは、システムの管理者にアラーム等を発する。
【００７２】
本願発明は上記実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもこの発明に含まれる。
【符号の説明】
【００７３】
１０    消費電力量推定システム
２０、２０Ｂ    通信ノード
２１、２１Ｂ    処理回路
２２、２２Ｂ    通信回路
２３Ｂ    記憶回路
２４Ｂ    消費電力量推定回路
３０    管理装置
３１    記憶回路
３２    消費電力量推定回路
１００、１００Ｂ    通信ノード
２００、２００Ｂ    電力供給部
３００、３００Ｂ    計測処理部
４００、４００Ｂ    通信部
５００    記憶部
６００    消費電力量推定部
７００Ｂ    消費電力量推定システム
８００Ｂ    外部サーバ
【図１】
2015191402.tif 000003
【図２】
2015191402.tif 000004
【図３】
2015191402.tif 000005
【図４】
2015191402.tif 000006
【図５】
2015191402.tif 000007
【図６】
2015191402.tif 000008