以下に、本願の開示する消費電力予測プログラム、消費電力予測方法および消費電力予測装置の各実施例を図面に基づいて詳細に説明する。なお、各実施例は開示の技術を限定するものではない。
実施例1に係る消費電力予測装置について説明する。図1は、実施例1に係る消費電力予測装置の機能構成の一例を示す図である。
本実施例では、消費電力予測装置10は、工場や事業所などにおける消費電力の実績値を計測するサーバ(図示しない)から、0時、1時、2時、・・・23時の消費電力の実績値を取得し、取得した実績値を記憶する。そして、本実施例では、消費電力予測装置10は、現時点までの消費電力の実績値を含む時系列データを用いて、現時点から所定時間P後、例えば、24時間後までの各時刻の消費電力の予測値を算出し、算出した予測値を出力する。ここで、以下の説明では、消費電力の実績値を含む時系列データを、パターンと表記する場合がある。
[消費電力予測装置の機能構成]
図1に示すように、消費電力予測装置10は、入力部11と、出力部12と、記憶部13と、制御部14とを有する。
入力部11は、各種情報を制御部14に入力する。例えば、入力部11は、ユーザから、後述の予測処理を実行するための指示を受け付けて、受け付けた指示を制御部14に入力する。入力部11のデバイスの一例としては、マウスやキーボードなどのユーザの操作を受け付けるデバイスなどが挙げられる。
出力部12は、各種の情報を出力する。例えば、出力部12は、後述の予測部14dの制御により、消費電力の予測値を含む予測パターンを表示する。出力部12のデバイスの一例としては、液晶ディスプレイなどが挙げられる。
記憶部13は、各種情報を記憶する。例えば、記憶部13は、パターン13aを記憶する。
パターン13aは、工場や事業所などにおける消費電力の実績値を含む時系列データである。図2は、パターンの一例を示す図である。図2の例では、パターン13aは、2012年7月1日の0時から2012年8月10日の18時までの各時刻の消費電力の実績値を含む時系列データである。パターン13aには、後述の記録部14aにより消費電力の実績値が記録される。すなわち、図2の例のパターン13aは、記録部14aにより、2012年8月10日の18時までの消費電力の実績値が記録された時系列データである。
また、パターン13aには、後述の予測部14dにより予測された予測時系列パターンが記録される。
記憶部13は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部13は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
制御部14は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図1に示すように、制御部14は、記録部14aと、特定部14bと、抽出部14cと、予測部14dとを有する。
記録部14aは、各種の情報を記録する。例えば、記録部14aは、0時、1時、・・・、23時の各時刻の消費電力の実績値をパターン13aに記録する。
記録部14aの一態様について説明する。例えば、記録部14aは、入力部11から後述の予測処理を実行するための指示が入力された場合に、まず、変数tの値を1に設定する。ここで、変数tの値は、記録部14aによりパターン13aに記録された実績値の順番を表す。例えば、2012年7月1日の0時に記録部14aによるパターン13aへの実績値の記録が開始された場合を例に挙げて説明する。この場合、記録部14aにより2012年7月1日の0時に上述したサーバから取得されてパターン13aに記録された実績値の順番は、1番目となる。そのため、この場合には、記録部14aは、変数tに1を設定する。
さらに、変数tの値は、時刻にも対応する。例えば、2012年7月1日の0時に記録部14aによるパターン13aへの実績値の記録が開始された場合を例に挙げて説明する。この場合、変数tの値が「1」であるときには、変数tは、時刻「2012年7月1日0時」に対応する。また、変数tの値が「24」であるときには、変数tは、時刻「2012年7月1日23時」に対応する。同様に、変数tの値が「25」であるときには、変数tは、時刻「2012年7月2日0時」に対応する。
そして、変数tの値を1に設定すると、記録部14aは、変数tの値に対応する時刻の消費電力の実績値を上述したサーバから取得する。そして、記録部14aは、取得した実績値を、変数tの値に対応する時刻に対応付けてパターン13aに記録する。例えば、変数tの値が「1」である場合に上述したサーバから実績値を取得した場合には、図2の例に示すように、記録部14aは、取得した実績値を、変数tの値「1」に対応する時刻「2012年7月1日0時」に対応付けてパターン13aに記録する。
また、記録部14aは、後述する予測部14dにより消費電力の予測を終了しないと判定された場合には、現在の時刻が、変数tの値に1を加えた(t+1)に対応する時刻であるか否かを判定する。例えば、変数tの値が「24」である場合には、変数tの値に1を加えた(t+1)の値は、「25」となる。このとき、記録部14aは、現在の時刻が、変数tの値に1を加えた(t+1)に対応する時刻、すなわち、「25」に対応する時刻「2012年7月2日0時」であるか否かを判定する。
記録部14aは、現在の時刻が、(t+1)に対応する時刻であると判定するまで、繰り返し、現在の時刻が、(t+1)に対応する時刻であるか否かを判定する。そして、現在の時刻が、(t+1)に対応する時刻である場合には、記録部14aは、変数tの値を1だけインクリメントする。例えば、現在の時刻が、変数tの値「24」に1を加えた「25」に対応する時刻「2012年7月2日0時」である場合には、記録部14aは、変数tの値を1だけインクリメントして、変数tの値を「25」に設定する。そして、記録部14aは、tに対応する時刻の消費電力の実績値を上述したサーバから取得する。例えば、記録部14aは、tに対応する時刻「2012年7月2日0時」の消費電力の実績値を上述したサーバから取得する。そして、記録部14aは、取得した実績値を、変数tの値に対応する時刻に対応付けてパターン13aに記録する。例えば、変数tの値が「25」である場合に上述したサーバから実績値を取得したときには、図2の例に示すように、記録部14aは、取得した実績値を、変数tの値「25」に対応する時刻「2012年7月2日0時」に対応付けてパターン13aに記録する。
図1の説明に戻り、特定部14bは、消費電力の実績値を含むパターン13aに基づいて、消費電力が所定値以上変化する場合の時点を特定する。
特定部14bの一態様について説明する。例えば、特定部14bは、上述の記録部14aにより実績値と時刻とが対応付けられてパターン13aに記録されると、まず、変数tの値に対応する時刻における変化点の尺度chpldx(t)を算出する。例えば、特定部14bは、変化点の尺度chpldx(t)として、公知技術であるSDAR(sequentially discounting AR model estimation)アルゴリズムを用いてT−移動平均スコアまたはT´−移動平均スコアを算出する。ここで、SDARアルゴリズムを用いたT−移動平均スコアまたはT´−移動平均スコアを算出する方法については、公知技術であり、例えば、次の文献に記載されている。すなわち、かかる方法については、「竹内純一、山西健二、「忘却型学習アルゴリズムを用いた外れ値検出と変化点検出の統一的扱い」、第5回情報論的学習理論ワークショップ(IBIS2002)、2002」に記載されている。ここで、変化点とは、例えば、消費電力の実績値を含む時系列データ上における、消費電力が所定値以上変化する箇所の点である。
例えば、特定部14bは、パターン13aに記録された各実績値の外れ値スコアを算出し、算出した各実績値の外れ値スコアのT−移動平均スコアを算出する。また、特定部14bは、T−移動平均スコアの時系列データをyt(t=1,2,・・・)とし、確率密度関数qtの列(qt:t=1,2,・・・)を得る。そして、特定部14bは、iの値を(t−T´+1)からtまで増加させた場合の(−lnqi−1(yi))のT´−移動平均スコアを算出する。上述したような方法で、特定部14bは、T−移動平均スコアまたはT´−移動平均スコアを算出する。なお、SDARアルゴリズムでは、ARモデル(回帰モデル)が用いられ、ARモデルは、定常性のあるものに適用できる。そこで、本実施例では、非定常な消費電力の実績値の時系列データの短い範囲をSDARアルゴリズムの適用範囲とすることで、消費電力の実績値の時系列データが定常性のあるものとみなして、T−移動平均スコアまたはT´−移動平均スコアを算出する。
そして、特定部14bは、上述の記録部14aにより実績値と時刻とが対応付けられてパターン13aに記録されるたびに、変数tの値に対応する時刻における変化点の尺度chpldx(t)を算出する。図3は、実施例1に係る消費電力予測装置が実行する処理の一例を説明するための図である。図3の例は、上述の記録部14aによりパターン13aに記録された各時刻における消費電力の実績値20と、各時刻において特定部14bにより変化点の尺度として算出されたT−移動平均スコア21との一例を示す。また、図3の例に示すグラフの横軸は、時刻を示す。また、図3の例に示すグラフの左側の縦軸は、消費電力の実績値を示す。また、図3の例に示すグラフの右側の縦軸は、T−移動平均スコアを示す。
続いて、特定部14bは、変数tの値に対応する時刻における変化点の尺度chpldx(t)を算出するたびに、算出したchpldx(t)が、変化点の条件を満たすか否かを判定する。ここで、特定部14bが変化点の尺度chpldx(t)としてT−移動平均スコアを算出した場合について説明する。かかる場合には、特定部14bは、T−移動平均スコアS(t−1)と、T−移動平均スコアS(t)とが次の条件を満たすか否かを判定する。すなわち、特定部14bは、T−移動平均スコアS(t−1)が、所定の閾値α未満であり、かつ、T−移動平均スコアS(t)が、所定の閾値αを超えるか否かを判定する。T−移動平均スコアS(t−1)が、所定の閾値α未満であり、かつ、T−移動平均スコアS(t)が、所定の閾値αを超える場合には、特定部14bは、T−移動平均スコアS(t)が、変化点の条件を満たすと判定する。一方、T−移動平均スコアS(t−1)が、所定の閾値α以上であるか、または、T−移動平均スコアS(t)が、所定の閾値α以下である場合には、特定部14bは、T−移動平均スコアS(t)が、変化点の条件を満たさないと判定する。ここで、T−移動平均スコアS(t−1)は、(t−1)に対応する時刻における変化点の尺度chpldx(t−1)として算出されたT−移動平均スコアを表す。また、T−移動平均スコアS(t)は、tに対応する時刻における変化点の尺度chpldx(t)として算出されたT−移動平均スコアを表す。
例えば、図3の例に示す場合において、特定部14bは、T−移動平均スコアS(t−1)が、閾値22(α=9)未満であり、かつ、T−移動平均スコアS(t)が、閾値22を超えるか否かを判定する。T−移動平均スコアS(t−1)が、閾値22未満であり、かつ、T−移動平均スコアS(t)が、閾値22を超える場合には、特定部14bは、T−移動平均スコアS(t)が、変化点の条件を満たすと判定する。一方、T−移動平均スコアS(t−1)が、閾値22以上であるか、または、T−移動平均スコアS(t)が、閾値22以下である場合には、特定部14bは、T−移動平均スコアS(t)が、変化点の条件を満たさないと判定する。
そして、T−移動平均スコアS(t−1)が、閾値α未満であり、かつ、T−移動平均スコアS(t)が、閾値αを超える場合には、特定部14bは、変数tの値に対応する時刻と、変化点を示す情報とを対応付けて制御部14の内部メモリに記憶する。例えば、T−移動平均スコアS(t−1)が、閾値α未満であり、かつ、T−移動平均スコアS(t)が、閾値αを超える場合には、特定部14bは、変数tの値と、変化点を示す情報「1」とを対応付けて制御部14の内部メモリに記憶する。
図1の説明に戻る。抽出部14cは、パターン13aの中から、特定部14bにより特定された少なくとも1つの時点が含まれるような、次のようなデータを抽出する。すなわち、抽出部14cは、変数tの値に対応する時刻から第1の時間幅だけ前の時点と、変数tの値に対応する時刻との間の消費電力の時系列的な変化を示すデータを抽出する。
抽出部14cの一態様について説明する。例えば、抽出部14cは、上述の特定部14bによりtに対応する時刻と変化点を示す情報とが対応付けられて制御部14の内部メモリに記憶されると、まず、変数tの値に対応する時刻が、消費電力の予測を実行する時刻であるか否かを判定する。具体例を挙げて説明すると、抽出部14cは、制御部14の内部メモリに記憶された変数tが取り得る値ごとに設けられた後述する実行フラグのうち、変数tの値に対応する実行フラグの値を参照し、次の処理を行う。すなわち、抽出部14cは、変数tの値に対応する実行フラグの値が、「1」であるか否かを判定する。抽出部14cは、変数tの値に対応する実行フラグの値が、「1」である場合には、変数tの値に対応する時刻が、消費電力の予測を実行する時刻であると判定する。また、抽出部14cは、変数tの値に対応する実行フラグの値が、「0」である場合には、変数tの値に対応する時刻が、消費電力の予測を実行する時刻でないと判定する。これに加えて、抽出部14cは、変数tの値に対応する時刻の消費電力の実績値と、変数tの値に対応する時刻の予測値との差が所定値以上であるか否かを判定することもできる。この場合、抽出部14cは、変数tの値に対応する時刻の消費電力の実績値と、変数tの値に対応する時刻の予測値との差が所定値以上であるときに、変数tの値に対応する時刻が、消費電力の予測を実行する時刻であると判定する。また、抽出部14cは、変数tの値に対応する時刻の消費電力の実績値と、変数tの値に対応する時刻の予測値との差が所定値以上でない場合に、変数tの値に対応する時刻が、消費電力の予測を実行する時刻でないと判定する。
変数tの値に対応する時刻が、消費電力の予測を実行する時刻である場合には、抽出部14cは、次の処理を行う。すなわち、抽出部14cは、変数tの値に対応する時刻と変化点が発生した情報とが対応付けられて記憶された内部メモリの記憶内容を参照し、変数tの値に対応する時刻の直前の変化点に対応する時刻を特定する。例えば、変数tの値に対応する時刻が「2012年7月26日の13時」であり、変数tの値に対応する時刻の直前の変化点に対応する時刻が「2012年7月26日の8時」である場合には、抽出部14cは、時刻「2012年7月26日の8時」を特定する。
そして、抽出部14cは、特定した時刻よりも所定時間(例えば、2時間や4時間など)前の時刻から、変数tの値に対応する時刻までの各時刻の実績値のデータを参照時系列パターンrefer(t)としてパターン13aから抽出する。図4は、実施例1に係る消費電力予測装置が実行する処理の一例を説明するための図である。図4の例は、上述の記録部14aによりパターン13aに記録された各時刻における消費電力の実績値25と、各時刻において特定部14bにより算出されたT−移動平均スコア26との一例を示す。図4の例に示すグラフの横軸は、時刻を示す。また、図4の例に示すグラフの左側の縦軸は、消費電力の実績値を示す。また、図4の例に示すグラフの右側の縦軸は、T−移動平均スコアを示す。また、図4の例に示す破線27は、変化点に対応する時刻を示す。例えば、図4の例では、破線27は、変化点に対応する時刻「2012年7月26日の8時」、変化点に対応する時刻「2012年7月27日の22時」などを示す。
図4の例に示す場合において、抽出部14cは、変数tの値が時刻「2012年7月26日の13時」に対応し、特定した時刻が「2012年7月26日の8時」である場合、抽出部14cは、次の処理を行う。すなわち、抽出部14cは、図4の例に示すように、参照時系列パターンrefer(t)28(矩形28aによって囲まれた部分の2012年7月26日の6時から同日13時までの実績値の時系列データ)を抽出する。また、図4の例に示す場合において、抽出部14cは、変数tの値が時刻「2012年7月26日の20時」に対応し、特定した時刻が「2012年7月26日の8時」である場合、抽出部14cは、次の処理を行う。すなわち、抽出部14cは、図4の例に示すように、参照時系列パターンrefer(t)29(矩形29aによって囲まれた部分の2012年7月26日の6時から同日20時までの実績値の時系列データ)を抽出する。また、図4の例に示す場合において、抽出部14cは、変数tの値が時刻「2012年7月28日の4時」に対応し、特定した時刻が「2012年7月27日の22時」である場合、抽出部14cは、次の処理を行う。すなわち、抽出部14cは、図4の例に示すように、参照時系列パターンrefer(t)30(矩形30aによって囲まれた部分の2012年7月27日の20時から翌日4時までの実績値の時系列データ)を抽出する。このように、抽出部14cは、パターン13aから、変化点を含む参照時系列パターンrefer(t)を抽出する。
図1の説明に戻り、予測部14dは、抽出した参照時系列パターンrefer(t)に基づいて、変数tの値に対応する時刻以降の消費電力を予測する。抽出したデータに基づいて、前記所定時点以降の時系列的な変化を示す消費電力を予測する。
予測部14dの一態様について説明する。例えば、予測部14dは、抽出部14cによって参照時系列パターンrefer(t)が抽出されると、次の処理を行う。すなわち、予測部14dは、参照時系列パターンrefer(t)よりも過去の実績値のデータの中から、参照時系列パターンrefer(t)との類似度が最も高い部分時系列データsimを抽出する。ここで、部分時系列データsimの時間幅は、参照時系列パターンrefer(t)の時間幅と同じである。また、部分時系列データsimを抽出する際に用いられる類似度の算出方法の一例としては、平均絶対パーセント誤差(MAPE)、平均絶対誤差、平均2乗誤差平方根などの方法によって非類似度を算出し、非類似度の逆数を類似度とするなどの方法が挙げられる。
そして、予測部14dは、パターン13aが示す実績値のデータの中から、抽出した部分時系列データsimの末尾の時点を起点とする、時間幅がP(例えば24時間)の部分時系列データを、次のようなデータとして抽出する。すなわち、予測部14dは、かかる部分時系列データを、変数tの値に対応する時刻以降の予測時系列パターンpredとして抽出する。
そして、予測部14dは、抽出した予測時系列パターンpredを、変数tの値に対応する時刻以降の予測時系列パターンとしてパターン13aに記録する。例えば、予測部14dは、抽出した予測時系列パターンpredの先頭が、変数tの値に対応する時刻に位置するように、予測時系列パターンpredを横軸及び縦軸に対して平行移動させてパターン13aに記録する。
続いて、予測部14dは、記録された予測時系列パターンpredに含まれる変化点に対応する時刻Tを特定する。ここで、時刻Tは、予測時系列パターンpred上の特定部14bによって特定された変化点に対応する時刻に、予測時系列パターンpredが、パターン13aに記録される際に、時間を表す横軸の方向を移動した量に対応する時間を足した時刻である。例えば、平行移動前の予測時系列パターンpred上の変化点に対応する時刻が「2012年7月26日の8時」であり、予測時系列パターンpredが、パターン13aに記録される際に、横軸の方向を移動した量が15時間に対応する場合について説明する。かかる場合には、予測部14dは、「2012年7月26日の8時」の「15時間」後の時刻T(=「2012年7月26日の23時」)を特定する。また、予測部14dは、記録された予測時系列パターンpredに含まれる変化点のうち、変数tの値に対応する時刻から所定時間(例えば、8時間)経過した時刻以降の変化点に対応する時刻Tを特定することもできる。
そして、予測部14dは、変数tが取り得る値ごとに設けられた実行フラグのうち、時刻Tよりも所定時間(例えば、4時間)前の時刻に対応する実行フラグの値を「1」に設定する。このようにして、予測部14dは、次回の消費電力を予測するタイミングを設定する。なお、予測部14dにより「1」が設定される前の実行フラグの値は、「0」である。
そして、予測部14dは、予測時系列パターンが記録されたパターン13aを出力する。例えば、予測部14dは、予測時系列パターンが記録されたパターン13aを表示するように、表示部12の表示を制御する。そして、予測部14dは、消費電力の予測を終了するか否かを判定する。例えば、予測部14dは、変数tの値に対応する時刻が、消費電力の予測を終了する所定の時刻であるか否かを判定する。そして、予測部14dは、変数tの値に対応する時刻が、消費電力の予測を終了する所定の時刻である場合には、消費電力の予測を終了すると判定する。また、予測部14dは、変数tの値に対応する時刻が、消費電力の予測を終了する所定の時刻でない場合には、消費電力の予測を終了しないと判定する。
制御部14は、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、CPU(Central Processing Unit)、MPU(Micro Processing Unit)などの回路である。
図5は、実施例1に係る消費電力予測装置が消費電力を予測するタイミングを設定し、設定したタイミングで消費電力の予測を行った場合の一例を示す図である。図5の例は、消費電力予測装置10が、予測を行う時点から24時間先までの消費電力の予測を行った場合の予測値と実績値を示す。また、図5の例は、2012年8月1日の0時以降に、消費電力予測装置10が、消費電力を予測するタイミングを設定し、設定したタイミングで、次の予測を行った場合の予測結果を示す。すなわち、図5の例は、予測A、予測B、予測C、予測Dの順で予測を行い、予測Dの次は、予測Aに戻って、再び、予測A、予測B、予測C、予測Dの順で予測を行った場合の予測結果を示す。また、図5の例は、2012年7月21日の0時以降の消費電力の実績値を示す。また、図5の例に示すタイミング31は、予測時系列パターンに含まれる変化点の時刻よりも4時間前に設定された、消費電力を予測するタイミングである。図5の例に示すように、実施例1に係る消費電力予測装置10によれば、実績値と、予測A〜予測Dの各結果が略一致する。また、実施例1に係る消費電力予測装置10によれば、実績値と、ある予測結果がずれた場合であっても、次の予測によって、実績値と、新たな予測結果とが略一致する。
[処理の流れ]
次に、本実施例に係る消費電力予測装置10の処理の流れについて説明する。図6は、実施例1に係る予測処理の手順を示すフローチャートである。実施例1に係る予測処理は、例えば、入力部11から、予測処理を実行するための指示を制御部14が受け付けたタイミングで、実行される。
図6に示すように、記録部14aは、変数tの値を1に設定する(S101)。そして、記録部14aは、変数tの値に対応する時刻の消費電力の実績値を上述したサーバから取得する(S102)。続いて、記録部14aは、取得した実績値を、変数tの値に対応する時刻に対応付けてパターン13aに記録する(S103)。
そして、特定部14bは、変数tの値に対応する時刻における変化点の尺度chpldx(t)を算出する(S104)。そして、特定部14bは、算出したchpldx(t)が、変化点の条件を満たすか否かを判定する(S105)。
chpldx(t)が、変化点の条件を満たす場合(S105;Yes)には、特定部14bは、変数tの値に対応する時刻と、変化点を示す情報とを対応付けて制御部14の内部メモリに記憶し(S106)、S107へ進む。また、chpldx(t)が、変化点の条件を満たさない場合(S105;No)にも、S107へ進む。
抽出部14cは、変数tの値に対応する時刻が、消費電力の予測を実行する時刻であるか否かを判定する(S107)。変数tの値に対応する時刻が、消費電力の予測を実行する時刻でない場合(S107;No)には、抽出部14cは、S116へ進む。一方、変数tの値に対応する時刻が、消費電力の予測を実行する時刻である場合(S107;Yes)には、抽出部14cは、次の処理を行う。すなわち、抽出部14cは、変数tの値に対応する時刻と変化点が発生した情報とが対応付けられて記憶された内部メモリの記憶内容を参照し、変数tの値に対応する時刻の直前の変化点に対応する時刻を特定する(S108)。
そして、抽出部14cは、特定した時刻よりも所定時間(例えば、2時間や4時間など)前の時刻から、変数tの値に対応する時刻までの各時刻の実績値のデータを参照時系列パターンrefer(t)としてパターン13aから抽出する(S109)。
そして、予測部14dは、参照時系列パターンrefer(t)よりも過去の実績値のデータの中から、参照時系列パターンrefer(t)との類似度が最も高い部分時系列データsimを抽出する(S110)。続いて、予測部14dは、パターン13aが示す実績値のデータの中から、抽出した部分時系列データsimの末尾の時点を起点とする、時間幅がP(例えば24時間)の部分時系列データを、次のようなデータとして抽出する。すなわち、予測部14dは、かかる部分時系列データを、変数tの値に対応する時刻以降の予測時系列パターンpredとして抽出する(S111)。
そして、予測部14dは、抽出した予測時系列パターンpredを、変数tの値に対応する時刻以降の予測時系列パターンとしてパターン13aに記録する(S112)。続いて、予測部14dは、記録された予測時系列パターンpredに含まれる変化点に対応する時刻Tを特定する(S113)。
そして、予測部14dは、変数tが取り得る値ごとに設けられた実行フラグのうち、時刻Tよりも所定時間(例えば、4時間)前の時刻に対応する実行フラグの値を「1」に設定する(S114)。
そして、予測部14dは、予測時系列パターンが記録されたパターン13aを出力する(S115)。そして、予測部14dは、消費電力の予測を終了するか否かを判定する(S116)。変数tに対応する時刻が、消費電力の予測を終了する所定の時刻である場合(S116;Yes)には、予測部14dは、処理を終了する。また、変数tに対応する時刻が、消費電力の予測を終了する所定の時刻でない場合(S116;No)には、記録部14aは、現在の時刻が、変数tの値に1を加えた(t+1)に対応する時刻であるか否かを判定する(S117)。
現在の時刻が、(t+1)に対応する時刻でない場合(S117;No)には、記録部14aは、再び、S117の判定を行う。一方、現在の時刻が、(t+1)に対応する時刻である場合(S117;Yes)には、記録部14aは、変数tの値を1だけインクリメントし(S118)、S102へ進む。
図7は、パターンの一例を示す図である。図7の例に示すパターン13aは、2012年9月20日の0時から2012年10月3日の0時までの各時刻の消費電力の実績値を含む時系列データである。ここで、図8を参照して、図7に示すパターン13aを用いて、従来の技術によって、消費電力を予測した場合の一例を説明する。図8は、参照時系列パターンの時間幅を一定として、所定時間間隔で消費電力の予測を行った場合の一例を示す図である。図8の例は、参照時系列パターンの時間幅を12時間で一定とし、8時間間隔で、予測を行う時点から24時間先までの消費電力の予測を行った場合の予測値と実績値を示す。図8の例は、2012年10月3日の0時以降に、8時間間隔で、予測E、予測F、予測G、予測Hの順で予測を行い、予測Hの次は、予測Eに戻って、再び、予測E、予測F、予測G、予測Hの順で予測を行った場合の予測結果を示す。また、図8の例は、2012年の10月3日の0時以降の消費電力の実績値を示す。図8の例に示すように、参照時系列パターンの時間幅を一定にした場合には、10月7日から10月8日にかけての消費電力の実績値が「4500」のまま長時間継続されるような工場や事業所の長時間稼働から、実績値が下がる部分の予測の精度が良好でない。同様に、図8の例に示すように、参照時系列パターンの時間幅を一定にした場合には、10月11日から10月12日、及び、10月14日から10月15日にかけての長時間稼働から、実績値が下がる部分の予測の精度が良好でない。上述したように、従来の技術による予測では、参照時系列パターンに、予測対象時点の直近の時系列の推移の特徴が含まれない場合があるため、予測の精度が良好でない場合がある。
図9は、実施例1に係る消費電力予測装置が実行する処理の一例を説明するための図である。図9の例は、消費電力予測装置10が、図7の例に示すパターン13aに記録された各実績値の外れ値スコアを算出し、算出した各実績値の外れ値スコアのT−移動平均スコア(T=2)を算出した場合の外れスコア、及び、T−移動平均スコアの一例を示す。また、図9の例は、消費電力予測装置10が、T−移動平均スコアの時系列データをytとし、確率密度関数qtの列を得てiの値を(t−T´+1)からtまで増加させた場合の(−lnqi−1(yi))のT´−移動平均スコアを算出した場合の次の値を示す。すなわち、図9の例は、(−lnqt−1(yt))、及び、T´−移動平均スコアの一例を示す。また、図9の例は、消費電力予測装置10が、T´−移動平均スコアS´(t−1)が、所定の閾値α(α=1)未満であり、かつ、T´−移動平均スコアS´(t)が、所定の閾値αを超えるか否かを判定した場合の一例を示す。ここで、T´−移動平均スコアS´(t−1)が、所定の閾値α未満であり、かつ、T´−移動平均スコアS´(t)が、所定の閾値αを超える場合には、消費電力予測装置10は、T´−移動平均スコアS´(t)が、変化点の条件を満たすと判定する。一方、T´−移動平均スコアS´(t−1)が、所定の閾値α以上であるか、または、T´−移動平均スコアS´(t)が、所定の閾値α以下である場合には、消費電力予測装置10は、T´−移動平均スコアS´(t)が、変化点の条件を満たさないと判定する。ここで、T´−移動平均スコアS´(t−1)は、(t−1)に対応する時刻における変化点の尺度chpldx(t−1)として算出されたT´−移動平均スコアを表す。また、T´−移動平均スコアS´(t)は、tに対応する時刻における変化点の尺度chpldx(t)として算出されたT´−移動平均スコアを表す。
ここで、図10を参照して、消費電力予測装置10が、図7に示すパターン13aを用いて、2012年10月3日の0時以降の消費電力を予測した場合の一例について説明する。図10は、実施例1に係る消費電力予測装置が消費電力を予測するタイミングを設定し、設定したタイミングで消費電力の予測を行った場合の一例を示す図である。図10の例は、消費電力予測装置10が、消費電力を予測するタイミングを設定し、設定したタイミングで予測を行う時点から24時間先までの消費電力の予測を行った場合の予測値を示す。また、図10の例は、2012年10月3日の0時以降に、消費電力予測装置10が、予測A、予測B、予測C、予測Dの順で予測を行い、予測Dの次は、予測Aに戻って、再び、予測A、予測B、予測C、予測Dの順で予測を行った場合の予測結果を示す。また、図10の例は、2012年の10月3日の0時以降の消費電力の実績値を示す。図10の例に示すように、消費電力予測装置10によれば、10月7日から10月8日、10月11日から10月12日、及び、10月14日から10月15日にかけての長時間稼働から、実績値が下がる部分の予測の精度が良好となる。上述したように、消費電力予測装置10による予測では、参照時系列パターンに、予測対象時点の直近の時系列の推移の特徴を示す変化点が含まれるため、予測の精度が良好となる。
図11は、予測実行時刻と、予測実行時刻で予測を行った際の参照時系列パターンの時間幅との一例を示す図である。図11の例は、図10の例の場合において、予測が実行された時刻と、予測をする際に用いられた参照時系列パターンの時間幅とを示す。図11の例から、消費電力予測装置10が、変化点を含むように時間幅を変えて参照時系列パターンを抽出していることが分かる。
上述してきたように、本実施例に係る消費電力予測装置10は、消費電力の実績値を含むパターン13aに基づいて、消費電力が所定値以上変化する場合の時点を特定する。消費電力予測装置10は、パターン13aの中から、特定した少なくとも1つの時点が含まれるような、次のパターンを抽出する。すなわち、消費電力予測装置10は、変数tの値に対応する時刻からある時間幅だけ前の時点と、変数tの値に対応する時刻との間の消費電力の時系列的な変化を示すデータである参照時系列パターンrefer(t)を抽出する。消費電力予測装置10は、抽出した参照時系列パターンrefer(t)に基づいて、変数tの値に対応する時刻以降の消費電力を予測する。したがって、消費電力予測装置10は、予測を行うたびに、予測結果の精度が良好となるような、変化点が含まれる参照時系列パターンを抽出し、抽出した参照時系列パターンに基づいて消費電力を予測する。それゆえ、消費電力予測装置10によれば、予測結果の精度が良好となる。したがって、消費電力予測装置10によれば、予測結果の精度の低下を抑制することができる。
また、消費電力予測装置10は、予測された消費電力と現時点の実績値との差が所定値以上となった場合に、消費電力の予測を実行することもできる。したがって、消費電力予測装置10によれば、予測結果と実績値との差が大きくなることを抑制することができる。
次に、実施例3に係る消費電力予測装置について説明する。実施例3に係る消費電力予測装置は、複数の消費電力が予測された場合に、予測された消費電力が分岐する時点から所定時間前に、消費電力の予測を実行する。したがって、実施例3に係る消費電力予測装置によれば、予測結果と実績値との差が大きくなることを更に抑制することができる。
図14は、実施例3に係る消費電力予測装置の機能構成の一例を示す図である。ここで、消費電力予測装置10及び消費電力予測装置70と同様の機能構成については、同一の符号を付し、説明を省略する。
[消費電力予測装置の機能構成]
図14の例に示すように、消費電力予測装置80は、消費電力予測装置10の制御部14に代えて制御部84を有する。制御部84は、制御部14が有する記録部14a、特定部14b、抽出部14c、予測部14dに代えて、記録部84a、特定部84b、抽出部84c、予測部84dを有する。
記録部84aは、記録部14aが実行する処理と同一の処理を実行する。特定部84bは、特定部14bが実行する処理と同一の処理を実行する。抽出部84cは、抽出部14cが実行する処理と同一の処理を実行する。
予測部84dが実行する処理と、予測部14dが実行する処理とで異なる処理について説明する。予測部14dは、上述したように、参照時系列パターンrefer(t)よりも過去の実績値のデータの中から、参照時系列パターンrefer(t)との類似度が最も高い部分時系列データsimを抽出する。続いて、予測部14dは、パターン13aが示す実績値のデータの中から、抽出した部分時系列データsimの末尾の時点を起点とする、時間幅がP(例えば24時間)の部分時系列データを、次のようなデータとして抽出する。すなわち、予測部14dは、かかる部分時系列データを、変数tの値に対応する時刻以降の予測時系列パターンpredとして抽出する。そして、予測部14dは、抽出した予測時系列パターンpredを、変数tの値に対応する時刻以降の予測時系列パターンとしてパターン13aに記録する。続いて、予測部14dは、記録された予測時系列パターンpredに含まれる変化点に対応する時刻Tを特定する。そして、予測部14dは、変数tが取り得る値ごとに設けられた実行フラグのうち、時刻Tよりも所定時間(例えば、4時間)前の時刻に対応する実行フラグの値を「1」に設定する。
一方、予測部84dは、参照時系列パターンrefer(t)よりも過去の実績値のデータの中から、参照時系列パターンrefer(t)との類似度が上位N個の部分時系列データsimを抽出する。ここで、Nは2以上の自然数である。
続いて、予測部84dは、パターン13aが示す実績値のデータの中から、抽出したN個の部分時系列データsimのそれぞれの末尾の時点を起点とする、時間幅がP(例えば24時間)のN個の部分時系列データを、次のようなデータとして抽出する。すなわち、予測部84dは、かかるN個の部分時系列データを、変数tの値に対応する時刻以降の予測時系列パターンpredとして抽出する。ここで、予測部84dは、抽出したN個の部分時系列データsimのそれぞれの末尾の時点を起点とし、部分時系列データsimの末尾以降の直近の変化点を終点とするN個の部分時系列データを、次のようなデータとして抽出することもできる。すなわち、予測部84dは、変数tの値に対応する時刻以降のN個の予測時系列パターンpredとして抽出することもできる。
そして、予測部84dは、抽出したN個の予測時系列パターンpredを、変数tの値に対応する時刻以降の予測時系列パターンとしてパターン13aに記録する。続いて、予測部84dは、記録されたN個の予測時系列パターンpredに含まれる変化点に対応する時刻Tを特定する。そして、予測部84dは、変数tが取り得る値ごとに設けられた実行フラグのうち、時刻Tよりも所定時間(例えば、4時間)前の時刻に対応する実行フラグの値を「1」に設定する。そして、予測部84dは、N個の予測時系列パターンpredが分岐する所定時間(例えば、4時間)前の時刻に対応する実行フラグの値を「1」に設定する。例えば、予測部84dは、N個の予測時系列パターンpredのそれぞれが示す各時刻の消費電力の予測値を用いて、N個の予測時系列パターンpredについて、予測値がある時刻以降異なる場合に、次の処理を行う。すなわち、予測部84dは、予測値がその時刻以降異なるある時刻よりも所定時間(例えば、4時間)前の時刻に対応する実行フラグの値を「1」に設定する。
[処理の流れ]
次に、本実施例に係る消費電力予測装置80の処理の流れについて説明する。図15は、実施例3に係る予測処理の手順を示すフローチャートである。実施例3に係る予測処理は、例えば、入力部11から、予測処理を実行するための指示を制御部14が受け付けたタイミングで、実行される。ここで、図15の例に示すフローチャートのステップ(S)のうち、先の図6に示す実施例1に係る予測処理の手順を示すフローチャートのステップと同様のステップについては、同一の符号を付し、説明を省略する場合がある。
図15に示すように、S109の次のS301において、予測部84dは、参照時系列パターンrefer(t)よりも過去の実績値のデータの中から、参照時系列パターンrefer(t)との類似度が上位N個の部分時系列データsimを抽出する。
続いて、予測部84dは、パターン13aが示す実績値のデータの中から、抽出したN個の部分時系列データsimのそれぞれの末尾の時点を起点とする、N個の部分時系列データを、次のようなデータとして抽出する。すなわち、予測部84dは、かかるN個の部分時系列データを、変数tの値に対応する時刻以降の予測時系列パターンpredとして抽出する(S302)。
そして、予測部84dは、抽出したN個の予測時系列パターンpredを、変数tの値に対応する時刻以降の予測時系列パターンとしてパターン13aに記録する(S303)。続いて、予測部84dは、記録されたN個の予測時系列パターンpredに含まれる変化点に対応する時刻Tを特定する(S304)。そして、予測部84dは、変数tが取り得る値ごとに設けられた実行フラグのうち、時刻Tよりも所定時間(例えば、4時間)前の時刻に対応する実行フラグの値を「1」に設定する(S305)。そして、予測部84dは、予測時系列パターンpredが分岐する所定時間(例えば、4時間)前の時刻に対応する実行フラグの値を「1」に設定し(S306)、S115へ進む。
上述してきたように、本実施例に係る消費電力予測装置80は、消費電力の実績値を含むパターン13aに基づいて、消費電力が所定値以上変化する場合の時点を特定する。消費電力予測装置80は、パターン13aの中から、特定した少なくとも1つの時点が含まれるような、次のパターンを抽出する。すなわち、消費電力予測装置80は、変数tの値に対応する時刻からある時間幅だけ前の時点と、変数tの値に対応する時刻との間の消費電力の時系列的な変化を示すデータである参照時系列パターンrefer(t)を抽出する。消費電力予測装置80は、抽出した参照時系列パターンrefer(t)に基づいて、変数tの値に対応する時刻以降の消費電力を予測する。したがって、消費電力予測装置80は、予測を行うたびに、予測結果の精度が良好となるような、変化点が含まれる参照時系列パターンを抽出し、抽出した参照時系列パターンに基づいて消費電力を予測する。それゆえ、消費電力予測装置80によれば、予測結果の精度が良好となる。したがって、消費電力予測装置80によれば、予測結果の精度の低下を抑制することができる。
また、消費電力予測装置80は、予測された消費電力と現時点の実績値との差が所定値以上となった場合に、消費電力の予測を実行することもできる。したがって、消費電力予測装置80によれば、予測結果と実績値との差が大きくなることを抑制することができる。
また、消費電力予測装置80は、抽出した部分時系列データsimの末尾の時点を起点とし、部分時系列データsimの末尾以降の直近の変化点を終点とする部分時系列データを、次のようなデータとして抽出する。すなわち、消費電力予測装置80は、かかる部分時系列データを、変数tの値に対応する時刻以降の予測時系列パターンpredとして抽出する。したがって、消費電力予測装置80によれば、予測時系列パターンpredに変化点が含まれるので、推移に特徴があるような部分を含む予測時系列パターンを予測することができる。
また、消費電力予測装置80は、N個の予測時系列パターンpredについて、予測値がある時刻以降異なる場合に、次の処理を行う。すなわち、消費電力予測装置80は、予測値がその時刻以降異なるある時刻よりも所定時間(例えば、4時間)前に、消費電力の予測を行う。したがって、消費電力予測装置80によれば、予測結果と実績値との差が大きくなることを更に抑制することができる。
さて、これまで開示の装置に関する各実施例について説明したが、本発明は上述した各実施例以外にも、種々の異なる形態にて実施されてよいものである。
例えば、開示の装置は、公知技術である変化点検知アルゴリズムを用いて、部分空間法に基づいて変化点を検知し、検知した変化点を用いて上述の各実施例における処理と同様の処理を行うこともできる。ここで、変化点検知アルゴリズムについては、例えば、「河原吉伸、矢入健久、町田和雄、「部分空間法に基づく変化点検知アルゴリズム」、人工知能学会論文誌23(2),76−85,2008年」に記載されている。
また、開示の装置は、特異スペクトル変換に基づいて変化点を検出する公知技術を用いて、変化点を検出し、検出した変化点を用いて上述の各実施例における処理と同様の処理を行うこともできる。ここで、特異スペクトル変換に基づいて変化点を検出する公知技術については、例えば、「井手剛、「行列の圧縮による変化点検出の高速化」、2006年情報論的学習理論ワークショップ」に記載されている。
また、開示の装置は、確率密度比に基づいて変化点を検出する公知技術を用いて、変化点を検出し、検出した変化点を用いて上述の各実施例における処理と同様の処理を行うこともできる。ここで、確率密度比に基づいて変化点を検出する公知技術については、例えば、「杉山将、「密度比に基づく機械学習の新たなアプローチ」、統計数理、Vol.58, no.2 pp.141-155, 2010」に記載されている。また、かかる公知技術については、「Y. Kawahara 「Change-point detection based on direct density-ratio estimation, Statistical Analysis and Data Mining, Vol.5, No.2, pp.114-127.」にも記載されている。
また、開示の装置は、時系列に確率モデルを与え、確率モデルのパラメータの時間変化を尤度比で評価する方法を用いて変化点を検知し、検知した変化点を用いて上述の各実施例における処理と同様の処理を行うこともできる。ここで、かかる方法は、例えば、「M. Basseville and I. V. Nikiforov. 「Detection of abrupt changes: Theory and application.」 Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1993」に記載されている。
また、開示の装置は、ベイズ推論を用いて変化点を検出し、検出した変化点を用いて上述の各実施例における処理と同様の処理を行うこともできる。ここで、かかる方法は、例えば、「Ryan Prescott Adams and David J.C. MacKay「Bayesian Online Changepoint Detection」Technical report, University of Cambridge, Cambridge, UK, 2007」に記載されている。
また、開示の装置は、実績値を、0(低)、1(中)、2(高)のように三段階に量子化した上で上述した予測処理を実行することができる。なお、開示の装置は、三段階に限られず、他の複数段階に実績値を量子化した上で予測処理を実行することもできる。
また、開示の装置は、上述した方法で非類似度を算出し、算出した非類似度の逆数を類似度として算出する以外にも、例えば、平日や休日や曜日や時間帯などを更に考慮して類似度を算出することもできる。具体例を挙げて説明する。開示の装置は、非類似度を算出する際に、参照時系列パターンの先頭の時点の時刻が「hr」、部分時系列データsim[i]の先頭の時点の時刻が「hs」(hr,hs=0、1、・・・、23)である場合に、次の処理を行うこともできる。すなわち、開示の装置は、実施例1〜3において上述した方法で非類似度を算出し、算出した非類似度に、時間帯項「r*diff(hr,hs)」を加えた値を、新たな非類似度とし、新たな非類似度の逆数を類似度として算出することもできる。ここで、「r」は、所定値である。また、|hr−hs|が12以下である場合に、diff(hr,hs)=|hr−hs|であり、|hr−hs|が12より大きい場合に、diff(hr,hs)=24−|hr−hs|である。
あるいは、開示の装置は、参照時系列パターンの先頭の時点と部分時系列データsim[i]の先頭の時点が平日であるかあるいは休日であるかをチェックする。開示の装置は、参照時系列パターンの先頭の時点が平日であり、部分時系列データsim[i]の先頭の時点が休日である場合、及び、参照時系列パターンの先頭の時点が休日であり、部分時系列データsim[i]の先頭の時点が平日である場合に次の処理を行う。すなわち、開示の装置は、実施例1〜3において上述した方法で算出した非類似度に、r2を乗じた値を新たな非類似度とし、新たな非類似度の逆数を類似度として算出することもできる。ここで、「r2」は所定値である。例えば、「r2」は、1よりも大きい値である。
また、開示の装置は、N個の予測時系列パターンを抽出した場合に、次の処理を行うこともできる。すなわち、開示の装置は、N個の予測時系列パターンをクラスタリングして複数のグループに分類し、分類したグループごとに、予測時系列パターンの平均値を算出し、グループごとの予測時系列パターンの平均値をパターン13aに記録することもできる。
また、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
[消費電力予測プログラム]
また、上記の各実施例で説明した消費電力予測装置10,70,80の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図16を用いて、上記の各実施例で説明した消費電力予測装置10,70,80と同様の機能を有する消費電力予測プログラムを実行するコンピュータの一例を説明する。図16は、消費電力予測プログラムを実行するコンピュータを示す図である。
図16に示すように、コンピュータ300は、CPU(Central Processing Unit)310、ROM(Read Only Memory)320、HDD(Hard Disk Drive)330、RAM(Random Access Memory)340を有する。これら各機器310〜340は、バス350を介して接続されている。
ROM320には、OSなどの基本プログラムが記憶されている。また、HDD330には、上記の実施例1で示す記録部14a、特定部14b、抽出部14c、予測部14dと同様の機能を発揮する消費電力予測プログラム330aが予め記憶される。または、HDD330には、上記の実施例2で示す記録部74a、特定部74b、抽出部74c、予測部74dと同様の機能を発揮する消費電力予測プログラム330aが予め記憶される。または、HDD330には、上記の実施例3で示す記録部84a、特定部84b、抽出部84c、予測部84dと同様の機能を発揮する消費電力予測プログラム330aが予め記憶される。なお、消費電力予測プログラム330aについては、適宜分離しても良い。また、HDD330には、パターンが設けられる。パターンは、上述したパターン13aに対応する。
そして、CPU310が、消費電力予測プログラム330aをHDD330から読み出して実行する。
そして、CPU310は、パターンを読み出してRAM340に格納する。さらに、CPU310は、RAM340に格納されたパターンを用いて、消費電力予測プログラム330aを実行する。なお、RAM340に格納されるデータは、常に全てのデータがRAM340に格納されなくともよい。処理に用いられるデータがRAM340に格納されれば良い。
なお、上記した消費電力予測プログラム330aについては、必ずしも最初からHDD330に記憶させておく必要はない。
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に消費電力予測プログラム330aを記憶させておく。そして、コンピュータ300がこれらから消費電力予測プログラム330aを読み出して実行するようにしてもよい。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などに消費電力予測プログラム330aを記憶させておく。そして、コンピュータ300がこれらから消費電力予測プログラム330aを読み出して実行するようにしてもよい。