【実施例1】
【0014】
実施例1に係る消費電力予測装置について説明する。
図1は、実施例1に係る消費電力予測装置の機能構成の一例を示す図である。
【0015】
本実施例では、消費電力予測装置10は、工場や事業所などにおける消費電力の実績値を計測するサーバ(図示しない)から、0時、1時、2時、・・・23時の消費電力の実績値を取得し、取得した実績値を記憶する。そして、本実施例では、消費電力予測装置10は、現時点までの消費電力の実績値を含む時系列データを用いて、現時点から所定時間P後、例えば、12時間後までの各時刻の消費電力の予測値を算出し、算出した予測値を出力する。ここで、以下の説明では、消費電力の実績値を含む時系列データを、パターンと表記する場合がある。
【0016】
[消費電力予測装置の機能構成]
図1に示すように、消費電力予測装置10は、入力部11と、出力部12と、記憶部13と、制御部14とを有する。
【0017】
入力部11は、各種情報を制御部14に入力する。例えば、入力部11は、ユーザから、後述の予測処理を実行するための指示を受け付けて、受け付けた指示を制御部14に入力する。入力部11のデバイスの一例としては、マウスやキーボードなどのユーザの操作を受け付けるデバイスなどが挙げられる。
【0018】
出力部12は、各種の情報を出力する。例えば、出力部12は、後述の予測部14eの制御により、消費電力の予測値を含む予測パターンを表示する。出力部12のデバイスの一例としては、液晶ディスプレイなどが挙げられる。
【0019】
記憶部13は、各種情報を記憶する。例えば、記憶部13は、パターン13aを記憶する。
【0020】
パターン13aは、工場や事業所などにおける消費電力の実績値を含む時系列データである。
図2は、パターンの一例を示す図である。
図2の例では、パターン13aは、2012年7月24日の0時から2012年8月1日の18時までの各時刻の消費電力の実績値を含む時系列データである。パターン13aには、後述の記録部14aにより消費電力の実績値が記録される。すなわち、
図2の例のパターン13aは、記録部14aにより、2012年8月1日の18時までの消費電力の実績値が記録された時系列データである。
【0021】
また、パターン13aには、後述の予測部14eにより予測された予測時系列データが記録される。
【0022】
記憶部13は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部13は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
【0023】
制御部14は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。
図1に示すように、制御部14は、記録部14aと、第1の抽出部14bと、第2の抽出部14cと、選択部14dと、予測部14eとを有する。
【0024】
記録部14aは、各種の情報を記録する。例えば、記録部14aは、0時、1時、・・・、23時の各時刻の消費電力の実績値をパターン13aに記録する。
【0025】
記録部14aの一態様について説明する。例えば、記録部14aは、入力部11から後述の予測処理を実行するための指示が入力された場合に、まず、変数tの値を1に設定する。ここで、変数tの値は、記録部14aによりパターン13aに記録された実績値の順番を表す。例えば、2012年7月24日の0時に記録部14aによるパターン13aへの実績値の記録が開始された場合を例に挙げて説明する。この場合、記録部14aにより2012年7月24日の0時に上述したサーバから取得されてパターン13aに記録された実績値の順番は、1番目となる。そのため、この場合には、記録部14aは、変数tに1を設定する。
【0026】
さらに、変数tの値は、時刻にも対応する。例えば、2012年7月24日の0時に記録部14aによるパターン13aへの実績値の記録が開始された場合を例に挙げて説明する。この場合、変数tの値が「1」であるときには、変数tは、時刻「2012年7月24日0時」に対応する。また、変数tの値が「24」であるときには、変数tは、時刻「2012年7月24日23時」に対応する。同様に、変数tの値が「25」であるときには、変数tは、時刻「2012年7月25日0時」に対応する。
【0027】
そして、変数tの値を1に設定すると、記録部14aは、変数tに対応する時刻の消費電力の実績値を上述したサーバから取得する。そして、記録部14aは、取得した実績値を、変数tに対応する時刻に対応付けてパターン13aに記録する。例えば、変数tの値が「1」である場合に上述したサーバから実績値を取得した場合には、
図2の例に示すように、記録部14aは、取得した実績値を、変数tの値「1」に対応する時刻「2012年7月24日0時」に対応付けてパターン13aに記録する。
【0028】
また、記録部14aは、後述する予測部14eにより消費電力の予測を終了しないと判定された場合には、現在の時刻が、変数tの値に1を加えた(t+1)に対応する時刻であるか否かを判定する。例えば、変数tの値が「24」である場合には、変数tの値に1を加えた(t+1)の値は、「25」となる。このとき、記録部14aは、現在の時刻が、変数tの値に1を加えた(t+1)に対応する時刻、すなわち、「25」に対応する時刻「2012年7月25日0時」であるか否かを判定する。
【0029】
記録部14aは、現在の時刻が、(t+1)に対応する時刻であると判定するまで、繰り返し、現在の時刻が、(t+1)に対応する時刻であるか否かを判定する。そして、現在の時刻が、(t+1)に対応する時刻である場合には、記録部14aは、変数tの値を1だけインクリメントする。例えば、現在の時刻が、変数tの値「24」に1を加えた「25」に対応する時刻「2012年7月25日0時」である場合には、記録部14aは、変数tの値を1だけインクリメントして、変数tの値を「25」に設定する。そして、記録部14aは、tに対応する時刻の消費電力の実績値を上述したサーバから取得する。例えば、記録部14aは、tに対応する時刻「2012年7月25日0時」の消費電力の実績値を上述したサーバから取得する。そして、記録部14aは、取得した実績値を、変数tに対応する時刻に対応付けてパターン13aに記録する。例えば、変数tの値が「25」である場合に上述したサーバから実績値を取得したときには、
図2の例に示すように、記録部14aは、取得した実績値を、変数tの値「25」に対応する時刻「2012年7月25日0時」に対応付けてパターン13aに記録する。
【0030】
図1の説明に戻り、第1の抽出部14bは、消費電力の実績値を含むパターン13aから、複数の時間幅ごとに、現時点までの時間幅のデータに類似する過去の同一の時間幅の部分時系列データを抽出する。
【0031】
第1の抽出部14bの一態様について説明する。例えば、第1の抽出部14bは、上述の記録部14aにより実績値と時刻とが対応付けられてパターン13aに記録されると、まず、変数tに対応する時刻が、消費電力の予測を実行する時刻であるか否かを判定する。具体例を挙げて説明すると、第1の抽出部14bは、変数tに対応する時刻が、予測を実行する所定の時刻、例えば、18時であるか否かを判定する。これに加えて、第1の抽出部14bは、変数tに対応する時刻の消費電力の実績値と、変数tに対応する時刻の予測値との差が所定値以上であるか否かを判定することもできる。この場合、第1の抽出部14bは、変数tに対応する時刻の消費電力の実績値と、変数tに対応する時刻の予測値との差が所定値以上である場合に、変数tに対応する時刻が、消費電力の予測を実行する時刻であると判定する。また、第1の抽出部14bは、変数tに対応する時刻の消費電力の実績値と、変数tに対応する時刻の予測値との差が所定値以上でない場合に、変数tに対応する時刻が、消費電力の予測を実行する時刻でないと判定する。
【0032】
変数tに対応する時刻が、消費電力の予測を実行する時刻である場合には、第1の抽出部14bは、変数Lに、時間幅の最小値、例えば、4を設定する。ここで、変数Lについて説明する。変数Lは、上述した参照時系列パターンの時間的な長さ、すなわち、時間幅を表す。例えば、変数Lの値が「4」である場合には、変数Lの値は、参照時系列パターンの先頭から、末尾(予測を実行する時点)までの時間幅「4時間」を示す。
【0033】
そして、第1の抽出部14bは、変数tに対応する時刻から、変数tに対応する時刻よりも変数Lが示す時間幅分前の時刻までの各時刻の実績値のデータを参照時系列パターンrefer(t,L)として生成する。例えば、参照時系列パターンreferを生成する際の変数tの値が時刻「2012年8月1日18時」に対応し、変数Lの値が4である場合、第1の抽出部14bは、次の処理を行う。すなわち、第1の抽出部14bは、
図2の例に示すように、参照時系列パターンrefer(t,4)20を生成する。ここで、参照時系列パターンrefer(t,4)20は、
図2の例に示すように、時刻「2012年8月1日14時」の実績値20aから時刻「2012年8月1日18時」の実績値20bまでの各実績値のデータである。
【0034】
続いて、第1の抽出部14bは、参照時系列パターンrefer(t,L)よりも過去の実績値のデータの中から、参照時系列パターンrefer(t,L)との類似度が上位N個の部分時系列データsim[1]、sim[2]、・・・、sim[N]を抽出する。ここで、部分時系列データsim[1]、sim[2]、・・・、sim[N]のそれぞれの時間幅は、参照時系列パターンrefer(t,L)の時間幅と同じで、「L」で表される。また、類似度を算出する方法の一例としては、平均絶対パーセント誤差(MAPE)、平均絶対誤差、平均2乗誤差平方根などの方法によって非類似度を算出し、非類似度の逆数を類似度とするなどの方法が挙げられる。ここで、Nは任意の自然数である。
【0035】
そして、第1の抽出部14bは、変数Lの値を、時間幅の最大値(例えば、「36」)まで、所定値(例えば、「4」)ずつインクリメントさせる。また、第1の抽出部14bは、変数Lの値を所定値インクリメントさせるたびに、次の処理を行う。すなわち、第1の抽出部14bは、上述した参照時系列パターンrefer(t,L)の生成、及び、上述した参照時系列パターンrefer(t,L)との類似度が上位N個の部分時系列データsim[1]、sim[2]、・・・、sim[N]の抽出を行う。これにより、第1の抽出部14bは、例えば、変数Lに設定される最小値が「4」、最大値が「36」、インクリメントされる所定値が「4」である場合には、次の処理を行うこととなる。すなわち、第1の抽出部14bは、時間幅が、「4」、「8」、「12」、・・・、「36」の9個の参照時系列パターンrefer(t,L)を生成することとなる。また、第1の抽出部14bは、9個の参照時系列パターンrefer(t,L)のそれぞれについて、参照時系列パターンrefer(t,L)との類似度が上位N個の部分時系列データsim[1]、sim[2]、・・・、sim[N]の抽出を行うこととなる。
【0036】
図3は、実施例1に係る消費電力予測装置が実行する処理の一例を説明するための図である。例えば、参照時系列パターンreferを生成する際の変数tの値が時刻「2012年8月1日18時」に対応し、変数Lの値が12である場合、第1の抽出部14bは、次の処理を行う。すなわち、第1の抽出部14bは、
図3の例に示すように、参照時系列パターンrefer(t,12)21を生成する。ここで、参照時系列パターンrefer(t,12)21は、
図3の例に示すように、時刻「2012年8月1日6時」の実績値20cから時刻「2012年8月1日18時」の実績値20bまでの各実績値のデータである。そして、第1の抽出部14bは、
図3の例に示すように、参照時系列パターンrefer(t,12)21との類似度が上位3個の部分時系列データsim[1]21a、sim[2]21b、sim[3]21cを抽出する。なお、
図3は、N=3である場合の例を示す。
【0037】
図1に戻り、第2の抽出部14cは、第1の抽出部14bにより抽出された部分時系列データsim[1]、sim[2]、・・・、sim[N]ごとに、次の処理を行う。すなわち、第2の抽出部14cは、パターン13aから、部分時系列データsim[i]に類似する過去の同一の時間幅の部分時系列データを抽出する。
【0038】
第2の抽出部14cの一態様について説明する。第2の抽出部14cは、第1の抽出部14bにより部分時系列データsim[1]、sim[2]、・・・、sim[N]が抽出されると、まず、変数iに「1」を設定する。そして、第2の抽出部14cは、部分時系列データsim[i]よりも過去の実績値のデータの中から、部分時系列データsim[i]との類似度が最も高い部分時系列データを抽出する。なお、部分時系列データsim[i]との類似度が最も高い部分時系列データの時間幅は、部分時系列データsim[i]の時間幅と同じで、「L」で表される。
図4は、実施例1に係る消費電力予測装置が実行する処理の一例を説明するための図である。例えば、変数iの値が「1」である場合には、
図4に示すように、第2の抽出部14cは、部分時系列データsim[1]21aよりも過去の実績値のデータの中から、部分時系列データsim[1]21aとの類似度が最も高い部分時系列データ31aを抽出する。
【0039】
そして、第2の抽出部14cは、変数iの値を、「N」まで、1ずつインクリメントさせる。また、第2の抽出部14cは、変数iの値を1ずつインクリメントさせるたびに、次の処理を行う。すなわち、第2の抽出部14cは、部分時系列データsim[i]よりも過去の実績値のデータの中から、部分時系列データsim[i]との類似度が最も高い部分時系列データを抽出する。
図5及び
図6は、実施例1に係る消費電力予測装置が実行する処理の一例を説明するための図である。例えば、変数iの値がインクリメントされて「2」になった場合には、
図5の例に示すように、第2の抽出部14cは、次の処理を行う。すなわち、第2の抽出部14cは、部分時系列データsim[2]22aよりも過去の実績値のデータの中から、部分時系列データsim[2]22aとの類似度が最も高い部分時系列データ32aを抽出する。また、変数iの値がインクリメントされて「3」になった場合には、
図6の例に示すように、第2の抽出部14cは、次の処理を行う。すなわち、第2の抽出部14cは、部分時系列データsim[3]23aよりも過去の実績値のデータの中から、部分時系列データsim[3]23aとの類似度が最も高い部分時系列データ33aを抽出する。
【0040】
図1の説明に戻り、選択部14dは、第2の抽出部14cにより抽出された部分時系列データに基づいて、部分時系列データsim[1]、sim[2]、・・・、sim[N]のそれぞれの末尾以降の消費電力を予測する。そして、選択部14dは、予測した消費電力と部分時系列データsim[1]、sim[2]、・・・、sim[N]のそれぞれの末尾以降の実績値との差分に基づいて、複数の時間幅(例えば、4、8、・・・、36)の中から1つの時間幅を選択する。
【0041】
選択部14dの一態様について説明する。例えば、選択部14dは、第2の抽出部14cにより抽出された部分時系列データの末尾の時点を起点とする、時間幅がP(例えば12時間)の部分時系列データを、次のようなデータとして抽出する。すなわち、選択部14dは、かかる部分時系列データを、部分時系列データsim[i]の末尾の時点s[i]を起点とする、時間幅が「P」の予測時系列データpred(sim[i],s[i],P)として抽出する。
【0042】
例えば、部分時系列データ31aの末尾の時点を起点とする、時間幅がPである予測時系列データpred(sim[1],s[1],P)について説明する。選択部14dは、
図4の例に示すように、部分時系列データ31aの末尾の時点31a_1を起点とする、時間幅がP(例えば12時間)の部分時系列データ31bを、次のようなデータとして抽出する。すなわち、選択部14dは、かかる部分時系列データ31bを、部分時系列データsim[1]21aの末尾の時点s[1]21a_1を起点とする、時間幅がPの予測時系列データpred(sim[1],s[1],P)31bとして抽出する。
【0043】
また、部分時系列データ32aの末尾の時点を起点とする、時間幅がPである予測時系列データpred(sim[2],s[2],P)について説明する。選択部14dは、
図5の例に示すように、部分時系列データ32aの末尾の時点32a_1を起点とする、時間幅がP(例えば12時間)の部分時系列データ32bを、次のようなデータとして抽出する。すなわち、選択部14dは、かかる部分時系列データ32bを、部分時系列データsim[2]22aの末尾の時点s[2]22a_1を起点とする、時間幅がPの予測時系列データpred(sim[2],s[2],P)32bとして抽出する。
【0044】
さらに、部分時系列データ33aの末尾の時点を起点とする、時間幅がPである予測時系列データpred(sim[3],s[3],P)について説明する。選択部14dは、
図6の例に示すように、部分時系列データ33aの末尾の時点33a_1を起点とする、時間幅がP(例えば12時間)の部分時系列データ33bを、次のようなデータとして抽出する。すなわち、選択部14dは、かかる部分時系列データ33bを、部分時系列データsim[3]23aの末尾の時点s[3]23a_1を起点とする、時間幅がPの予測時系列データpred(sim[3],s[3],P)33bとして抽出する。
【0045】
そして、選択部14dは、パターン13aから、部分時系列データsim[i]の末尾の時点s[i]を起点とする、時間幅が「P」の実績値のデータ(実績値データ)act(s[i],P)を抽出する。例えば、変数iの値が「1」である場合には、
図4の例に示すように、選択部14dは、部分時系列データsim[1]21aの末尾の時点s[1]21a_1を起点とする、時間幅がPの実績値データact(s[1],P)31cを抽出する。また、変数iの値が「2」である場合には、
図5の例に示すように、選択部14dは、部分時系列データsim[2]22aの末尾の時点s[2]22a_1を起点とする、時間幅がPの実績値データact(s[2],P)32cを抽出する。また、変数iの値が「3」である場合には、
図6の例に示すように、選択部14dは、部分時系列データsim[3]23aの末尾の時点s[3]23a_1を起点とする、時間幅がPの実績値データact(s[3],P)33cを抽出する。
【0046】
そして、選択部14dは、実績値データact(s[i],P)に対する予測時系列データpred(sim[i],s[i],P)の予測精度Accur[i]を算出する。ここで、予測精度Accur[i]の算出方法の一例について説明する。例えば、選択部14dは、下記の式(1)にしたがって、予測精度Accur[i]を算出する。
【数1】
ただし、a(k)は、実績値データact(s[i],P)における先頭からk番目の実績値である。また、P(k)は、予測時系列データpred(sim[i],s[i],P)における先頭からk番目の実績値である。
【0047】
上述したような処理を行うことによって、選択部14dは、変数Lが示す時間幅ごと(例えば、4、8、・・・、36ごと)に、Accur[1]〜Accur[N]のN個の予測精度を算出する。そして、選択部14dは、変数Lが示す時間幅ごとに、Accur[1]〜Accur[N]のN個の予測精度の平均値AccurIdx(t,L)を算出する。例えば、L=12、N=3であり、Accur[1]=0.012、Accur[2]=0.016、Accur[3]=0.020である場合には、選択部14dは、次の処理を行う。すなわち、選択部14dは、平均値AccurIdx(t,12)=0.016((0.012+0.016+0.020)/3)を算出する。このようにして、選択部14dは、変数Lが示す時間幅ごとに、平均値AccurIdx(t,L)を算出する。ここで、変数Lに設定される数値の個数がM個である場合には、時間幅の数もM個となる。そして、時間幅の数がM個である場合には、選択部14dは、M個の平均値AccurIdx(t,L)を算出する。例えば、変数Lに設定される数値(4、8、・・・、36)が9個である場合には、時間幅の数も9となり、選択部14dは、9個の平均値AccurIdx(t,L)を算出する。以下、時間幅の数がM個である場合について説明する。
【0048】
続いて、選択部14dは、変数Lが示す時間幅ごとに、Accur[1]〜Accur[N]のN個の予測精度のうち、最小のAccur[i]が算出された際の予測時系列データpred(sim[i],s[i],P)を用いて次の処理を行う。すなわち、選択部14dは、変数Lが示す時間幅ごとに、最小のAccur[i]が算出された際の予測時系列データpred(sim[i],s[i],P)を、変数Lが示す時間幅における最良解pred(t,L)として算出する。このようにして、選択部14dは、変数Lが示す時間幅ごとに、最良解pred(t,L)を算出する。すなわち、選択部14dは、M個の最良解pred(t,L)を算出する。
【0049】
図7は、選択部により算出された平均値AccurIdx(t,L)及び最良解pred(t,L)と、変数Lが示す時間幅との対応関係の一例を示す図である。例えば、
図7の例に示す1番目の列は、変数Lが示す時間幅が4時間である場合の最良解pred(t,L)がpred(sim[3],s[3],12)であり、平均値AccurIdx(t,L)が「0.110」であることを示す。他の列についても同様である。
【0050】
そして、選択部14dは、M個の平均値AccurIdx(t,L)のうち、最も値が小さい平均値AccurIdx(t,L)を選択する。例えば、
図7の例に示す平均値AccurIdx(t,L)及び最良解pred(t,L)を算出した場合には、選択部14dは、最も値が小さい平均値「0.016」を選択する。
【0051】
そして、選択部14dは、選択した平均値AccurIdx(t,L)に対応する変数Lの値をLoptとして選択する。例えば、
図7の例に示す平均値「0.016」を選択した場合には、選択部14dは、平均値AccurIdx(t,12)に対応する変数Lの値「12」をLoptとして選択する。
【0052】
図1の説明に戻り、予測部14eは、選択部14dにより予測された部分時系列データsim[1]、・・・、sim[N]のそれぞれの末尾以降の消費電力のうち、選択した時間幅に対応する消費電力に基づいて、変数tに対応する時刻以降の消費電力を予測する。
【0053】
予測部14eの一態様について説明する。予測部14eは、選択部14dにより算出された最良解pred(t,L)のうち、最良解pred(t,Lopt)を、変数tに対応する時刻以降の予測時系列データとしてパターン13aに記録する。ここで、選択部14dにより
図7の例に示す平均値AccurIdx(t,L)及び最良解pred(t,L)が算出された場合を例に挙げて説明する。かかる場合に、変数tに対応する時刻が「2012年8月1日の18時」であり、選択部14dにより変数Lの値「12」がLoptとして選択されたときには、予測部14eは、次の処理を行う。すなわち、予測部14eは、先の
図5に示す最良解pred(t,12)(pred(sim[2],s[2],12))32bを、先の
図3の例に示すように、「2012年8月1日の18時」以降の予測時系列データとしてパターン13aに記録する。
【0054】
そして、予測部14eは、予測時系列データが記録されたパターン13aを出力する。例えば、予測部14eは、予測時系列データが記録されたパターン13aを表示するように、表示部12の表示を制御する。そして、予測部14eは、消費電力の予測を終了するか否かを判定する。例えば、予測部14eは、変数tに対応する時刻が、消費電力の予測を終了する所定の時刻であるか否かを判定する。そして、予測部14eは、変数tに対応する時刻が、消費電力の予測を終了する所定の時刻である場合には、消費電力の予測を終了すると判定する。また、予測部14eは、変数tに対応する時刻が、消費電力の予測を終了する所定の時刻でない場合には、消費電力の予測を終了しないと判定する。
【0055】
制御部14は、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、CPU(Central Processing Unit)、MPU(Micro Processing Unit)などの回路である。
【0056】
[処理の流れ]
次に、本実施例に係る消費電力予測装置10の処理の流れについて説明する。
図8は、実施例1に係る予測処理の手順を示すフローチャートである。実施例1に係る予測処理は、例えば、入力部11から、予測処理を実行するための指示を制御部14が受け付けたタイミングで、実行される。
【0057】
図8に示すように、記録部14aは、変数tの値を1に設定する(S101)。そして、記録部14aは、変数tに対応する時刻の消費電力の実績値を上述したサーバから取得する(S102)。続いて、記録部14aは、取得した実績値を、変数tに対応する時刻に対応付けてパターン13aに記録する(S103)。
【0058】
その後、第1の抽出部14bは、変数tに対応する時刻が、消費電力の予測を実行する時刻であるか否かを判定する(S104)。変数tに対応する時刻が、消費電力の予測を実行する時刻でない場合(S104;No)には、S123へ進む。一方、変数tに対応する時刻が、消費電力の予測を実行する時刻である場合(S104;Yes)には、第1の抽出部14bは、変数Lに、時間幅の最小値、例えば、4を設定する(S105)。
【0059】
そして、第1の抽出部14bは、変数tに対応する時刻から、変数tに対応する時刻よりも変数Lが示す時間幅分前の時刻までの各時刻の実績値のデータを、参照時系列パターンrefer(t,L)として生成する(S106)。
【0060】
続いて、第1の抽出部14bは、参照時系列パターンrefer(t,L)よりも過去の実績値のデータの中から、参照時系列パターンrefer(t,L)との類似度が上位N個の部分時系列データsim[1]〜sim[N]を抽出する(S107)。
【0061】
第2の抽出部14cは、変数iに「1」を設定する(S108)。そして、第2の抽出部14cは、部分時系列データsim[i]よりも過去の実績値のデータの中から、部分時系列データsim[i]との類似度が最も高い部分時系列データを抽出する(S109)。
【0062】
そして、選択部14dは、第2の抽出部14cにより抽出された部分時系列データの末尾の時点を起点とする、時間幅がP(例えば12時間)の部分時系列データを、次のようなデータとして抽出する。すなわち、選択部14dは、かかる部分時系列データを、部分時系列データsim[i]の末尾の時点s[i]を起点とする、時間幅が「P」の予測時系列データpred(sim[i],s[i],P)として抽出する(S110)。
【0063】
そして、選択部14dは、パターン13aから、部分時系列データsim[i]の末尾の時点s[i]を起点とする、時間幅が「P」の実績値のデータ(実績値データ)act(s[i],P)を抽出する(S111)。
【0064】
そして、選択部14dは、実績値データact(s[i],P)に対する予測時系列データpred(sim[i],s[i],P)の予測精度Accur[i]を算出する(S112)。
【0065】
そして、第2の抽出部14cは、変数iの値がN以上であるか否かを判定する(S113)。変数iの値がN以上でない場合(S113;No)には、第2の抽出部14cは、変数iの値を1だけインクリメントし(S114)、S109に戻る。
【0066】
一方、変数iの値がN以上である場合(S113;Yes)には、選択部14dは、変数Lが示す時間幅におけるAccur[1]〜Accur[N]のN個の予測精度の平均値AccurIdx(t,L)を算出する(S115)。そして、選択部14dは、変数Lが示す時間幅におけるAccur[1]〜Accur[N]のN個の予測精度の中から、次のデータを選択する。すなわち、選択部14dは、N個の予測精度の中から、最小のAccur[i]が算出された際の予測時系列データpred(sim[i],s[i],P)を選択する。そして、選択部14dは、選択した予測時系列データpred(sim[i],s[i],P)を、変数Lが示す時間幅における最良解pred(t,L)として算出する(S116)。
【0067】
そして、第1の抽出部14bは、変数Lの値が、最大値、例えば、36以上であるか否かを判定する(S117)。変数Lの値が最大値以上でない場合(S117;No)には、第1の抽出部14bは、変数Lの値を所定値、例えば、4だけインクリメントし(S118)、S106に戻る。
【0068】
一方、変数Lの値が最大値以上である場合(S117;Yes)には、選択部14dは、M個の平均値AccurIdx(t,L)のうち、最も値が小さい平均値AccurIdx(t,L)を選択する(S119)。
【0069】
そして、選択部14dは、選択した平均値AccurIdx(t,L)に対応する変数Lの値をLoptとして選択する(S120)。そして、予測部14eは、選択部14dにより算出された最良解pred(t,L)のうち、最良解pred(t,Lopt)を、変数tに対応する時刻以降の予測時系列データとしてパターン13aに記録する(S121)。
【0070】
そして、予測部14eは、予測時系列データが記録されたパターン13aを出力する(S122)。そして、予測部14eは、消費電力の予測を終了するか否かを判定する(S123)。
【0071】
消費電力の予測を終了する場合(S123;Yes)には、処理を終了する。一方、消費電力の予測を終了しない場合(S123;No)には、記録部14aは、現在の時刻が、変数tの値に1を加えた(t+1)に対応する時刻であるか否かを判定する(S124)。
【0072】
現在の時刻が、(t+1)に対応する時刻でない場合(S124;No)には、記録部14aは、再び、S124での判定を行う。一方、現在の時刻が、(t+1)に対応する時刻である場合(S124;Yes)には、記録部14aは、変数tの値を1だけインクリメントし(S125)、S102に戻る。
【0073】
図9は、参照時系列データの時間幅を一定として、所定時間間隔で消費電力の予測を行った場合の一例を示す図である。
図9の例は、参照時系列データの時間幅を12時間で一定とし、8時間間隔で、予測を行う時点から24時間先までの消費電力の予測を行った場合の予測値と実績値を示す。
図9の例は、2012年10月3日の0時以降に、8時間間隔で、予測A、予測B、予測C、予測Dの順で予測を行い、予測Dの次は、予測Aに戻って、再び、予測A、予測B、予測C、予測Dの順で予測を行った場合の予測結果を示す。また、
図9の例は、2012年の10月3日の0時以降の消費電力の実績値を示す。
図9の例に示すように、参照時系列データの時間幅を一定にした場合には、10月7日から10月8日にかけての消費電力の実績値が「4500」のまま長時間継続されるような工場や事業所の長時間稼働から、実績値が下がる部分の予測の精度が良好でない。同様に、
図9の例に示すように、参照時系列データの時間幅を一定にした場合には、10月11日から10月12日、及び、10月14日から10月15日にかけての長時間稼働から、実績値が下がる部分の予測の精度が良好でない。
【0074】
図10は、実施例1に係る消費電力予測装置が所定時間間隔で消費電力の予測を行った場合の一例を示す図である。
図10の例は、消費電力装置10が、8時間間隔で、予測を行う時点から24時間先までの消費電力の予測を行った場合の予測値と実績値を示す。
図10の例は、2012年10月3日の0時以降に、消費電力予測装置10が、8時間間隔で、予測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日にかけての長時間稼働から、実績値が下がる部分の予測の精度が良好となる。
【0075】
上述してきたように、実施例に係る消費電力予測装置10は、消費電力の実績値を含むパターン13aから、複数の時間幅ごとに、現時点までの時間幅のデータに類似する過去の同一の時間幅の部分時系列データsim[1]、・・・、sim[N]を抽出する。消費電力予測装置10は、部分時系列データsim[1]、・・・、sim[N]ごとに、パターン13aから、部分時系列データに類似する過去の同一の時間幅の部分時系列データを抽出する。消費電力予測装置10は、抽出された部分時系列データに基づいて、部分時系列データsim[1]、sim[2]、・・・、sim[N]のそれぞれの末尾以降の消費電力を予測する。消費電力予測装置10は、予測した消費電力と部分時系列データsim[1]、・・・、sim[N]のそれぞれの末尾以降の実績値との差分に基づいて、複数の時間幅(例えば、4、8、・・・、36)の中から1つの時間幅を選択する。消費電力予測装置10は、予測された部分時系列データsim[1]、・・・、sim[N]のそれぞれの末尾以降の消費電力のうち、選択した時間幅に対応する消費電力に基づいて、変数tに対応する時刻以降の消費電力を予測する。したがって、消費電力予測装置10は、予測を行う時点における直近の実績値の状況に応じて、予測を行うたびに、参照時系列データの時間幅を選択する。それゆえ、消費電力予測装置10によれば、予測結果の精度が良好となるような参照時系列データの時間幅を選択することができる。
【0076】
また、消費電力予測装置10は、予測精度が良好となるような時間幅の参照時系列データを用いて予測した場合の消費電力を変数tに対応する時刻以降の消費電力として予測する。それゆえ、消費電力予測装置10によれば、予測結果の精度が良好となる。したがって、消費電力予測装置10によれば、予測結果の精度の低下を抑制することができる。
【0077】
また、消費電力予測装置10は、予測された消費電力と現時点の実績値との差が所定値以上となった場合に、消費電力の予測を実行する。したがって、消費電力予測装置10によれば、予測結果と実績値との差が大きくなることを抑制することができる。
【実施例2】
【0078】
次に、実施例2に係る消費電力予測装置について説明する。実施例2に係る消費電力予測装置は、複数の消費電力が予測された場合に、予測された消費電力が分岐する時点から所定時間前に、消費電力の予測を実行する。したがって、実施例2に係る消費電力予測装置によれば、予測結果と実績値との差が大きくなることを更に抑制することができる。
【0079】
図11は、実施例2に係る消費電力予測装置の機能構成の一例を示す図である。ここで、先の
図1に示す実施例1に係る消費電力予測装置10と同様の機能構成については、同一の符号を付し、説明を省略する。
【0080】
[消費電力予測装置の機能構成]
図11の例に示すように、消費電力予測装置70は、消費電力予測装置10の第1の抽出部14b、選択部14d、予測部14eに代えて、第1の抽出部24b、選択部24d、予測部24eを有する。
【0081】
第1の抽出部24bは、実施例1に係る第1の抽出部14bが実行する処理に加えて、下記の処理を実行する。例えば、第1の抽出部24bは、記録部14aにより変数tの値が1だけインクリメントされるたびに、変数tに対応する時刻から所定時間後の(t+α)に対応する時刻において、予測値が分岐するか否かを判定する。ここで、「α」は、例えば、所定の自然数である。
【0082】
予測値が分岐する場合には、第1の抽出部24bは、(t+α−β)に対応する時刻のフラグを「1」に設定する。
図12A及び
図12Bは、実施例2に係る消費電力予測装置が実行する処理の一例を説明するための図である。
図12Aは、消費電力予測装置70へ電源の投入が開始された直後の変数tの値と、フラグに設定された値との対応関係の一例を示す図である。
図12Aの例に示すように、消費電力予測装置70へ電源の投入が開始された直後では、各変数tの値に対応する各フラグに設定された値は、全て「0」である。なお、
図12Aの例に示す変数tの値とフラグに設定された値とが対応付けられたデータは、記憶部13または制御部14の内部メモリに格納される。そして、予測値が分岐する場合には、
図12Bの例に示すように、第1の抽出部24bは、(t+α−β)に対応する時刻のフラグを「1」に設定する。ここで、
図12Bの例では、(t+α−β)=mである。また、βは、αよりも小さい所定の自然数である。
【0083】
そして、第1の抽出部24bは、記録部14aにより実績値と時刻とが対応付けられてパターン13aに記録されると、変数tに対応する時刻が、消費電力の予測を実行する時刻であるか否かを判定する。具体例を挙げて説明すると、第1の抽出部24bは、実施例1に係る第1の抽出部14bと同様に、変数tに対応する時刻が、予測を実行する所定の時刻、例えば、18時であるか否かを判定する。また、第1の抽出部24bは、実施例1に係る第1の抽出部14bと同様に、変数tに対応する時刻の消費電力の実績値と、変数tに対応する時刻の予測値との差が所定値以上であるか否かを判定する。これに加えて、第1の抽出部24bは、変数tの値に対応するフラグの値が「1」であるか否かを判定する。フラグの値が「1」である場合には、第1の抽出部14bは、変数tに対応する時刻が、消費電力の予測を実行する時刻であると判定する。また、第1の抽出部14bは、フラグの値が「1」でない場合には、変数tに対応する時刻が、消費電力の予測を実行する時刻でないと判定する。
【0084】
選択部24dについて説明する。選択部24dが実行する処理は、実施例1に係る選択部14dが実行する処理と比較して、下記の点が異なる。すなわち、選択部14dは、M個の平均値AccurIdx(t,L)のうち、最も値が小さい平均値AccurIdx(t,L)を選択する。そして、選択部14dは、選択した平均値AccurIdx(t,L)に対応する変数Lの値をLoptとして選択する。一方、選択部24dは、M個の平均値AccurIdx(t,L)のうち、値が小さい方からK個の平均値AccurIdx(t,L)を選択する。ここで、Kは、所定の自然数である。そして、選択部24dは、選択したK個の平均値AccurIdx(t,L)のそれぞれに対応するK個の変数Lの値をLoptとして選択する。すなわち、選択部24dは、K個のLoptを選択する。
【0085】
予測部24eについて説明する。予測部24eが実行する処理は、実施例1に係る予測部14eが実行する処理と比較して、下記の点が異なる。すなわち、予測部14eは、選択部14dにより算出された最良解pred(t,L)のうち、最良解pred(t,Lopt)を、変数tに対応する時刻以降の予測時系列データとしてパターン13aに記録する。一方、予測部24eは、選択部24dにより算出された最良解pred(t,L)のうち、K個の最良解pred(t,Lopt)を、変数tに対応する時刻以降の予測時系列データとしてパターン13aに記録する。
【0086】
[処理の流れ]
次に、本実施例に係る消費電力予測装置70の処理の流れについて説明する。
図13は、実施例2に係る予測処理の手順を示すフローチャートである。実施例2に係る予測処理は、例えば、入力部11から、予測処理を実行するための指示を制御部14が受け付けたタイミングで、実行される。ここで、
図13の例に示すフローチャートのステップ(S)のうち、先の
図8に示す実施例1に係る予測処理の手順を示すフローチャートのステップと同様のステップについては、同一の符号を付し、説明を省略する場合がある。
【0087】
図13に示すように、S104において、第1の抽出部14bは、変数tに対応する時刻が、消費電力の予測を実行する時刻であるか否かを判定する(S104)。具体例を挙げて説明すると、第1の抽出部24bは、実施例1に係る第1の抽出部14bと同様に、変数tに対応する時刻が、予測を実行する所定の時刻、例えば、18時であるか否かを判定する。また、第1の抽出部24bは、実施例1に係る第1の抽出部14bと同様に、変数tに対応する時刻の消費電力の実績値と、変数tに対応する時刻の予測値との差が所定値以上であるか否かを判定する。これに加えて、第1の抽出部24bは、変数tの値に対応するフラグの値が「1」であるか否かを判定する。フラグの値が「1」である場合には、第1の抽出部14bは、変数tに対応する時刻が、消費電力の予測を実行する時刻であると判定する。また、第1の抽出部14bは、フラグの値が「1」でない場合には、変数tに対応する時刻が、消費電力の予測を実行する時刻でないと判定する。
【0088】
また、変数Lの値が最大値以上である場合(S117;Yes)には、選択部24dは、M個の平均値AccurIdx(t,L)のうち、値が小さい方からK個の平均値AccurIdx(t,L)を選択する(S201)。そして、選択部24dは、選択したK個の平均値AccurIdx(t,L)のそれぞれに対応するK個の変数Lの値をLoptとして選択する(S202)。そして、予測部24eは、選択部24dにより算出された最良解pred(t,L)のうち、K個の最良解pred(t,Lopt)を、変数tに対応する時刻以降の予測時系列データとしてパターン13aに記録し(S203)、S122へ進む。
【0089】
また、記録部14aにより変数tの値が1だけインクリメントされると(S125)、第1の抽出部24bは、変数tに対応する時刻から所定時間後の(t+α)に対応する時刻において、予測値が分岐するか否かを判定する(S204)。予測値が分岐しない場合(S204;No)には、S102に戻る。一方、予測値が分岐する場合(S204;Yes)には、第1の抽出部24bは、(t+α−β)に対応する時刻のフラグを「1」に設定し(S205)、S102に戻る。
【0090】
上述してきたように、実施例2に係る消費電力予測装置70は、消費電力の実績値を含むパターン13aから、複数の時間幅ごとに、現時点までの時間幅のデータに類似する過去の同一の時間幅の部分時系列データsim[1]、・・・、sim[N]を抽出する。消費電力予測装置70は、部分時系列データsim[1]、・・・、sim[N]ごとに、パターン13aから、部分時系列データに類似する過去の同一の時間幅の部分時系列データを抽出する。消費電力予測装置70は、抽出された部分時系列データに基づいて、部分時系列データsim[1]、sim[2]、・・・、sim[N]のそれぞれの末尾以降の消費電力を予測する。消費電力予測装置70は、予測した消費電力と部分時系列データsim[1]、・・・、sim[N]のそれぞれの末尾以降の実績値との差分に基づいて、複数の時間幅(例えば、4、8、・・・、36)の中から複数の時間幅を選択する。消費電力予測装置70は、予測された部分時系列データsim[1]、・・・、sim[N]のそれぞれの末尾以降の消費電力のうち、選択した複数の時間幅に対応する消費電力に基づいて、変数tに対応する時刻以降の消費電力を予測する。したがって、消費電力予測装置70は、予測を行う時点における直近の実績値の状況に応じて、予測を行うたびに、参照時系列データの時間幅を選択する。それゆえ、消費電力予測装置70によれば、予測結果の精度が良好となるような参照時系列データの時間幅を選択することができる。
【0091】
また、消費電力予測装置70は、予測精度が良好となるような時間幅の参照時系列データを用いて予測した場合の消費電力を変数tに対応する時刻以降の消費電力として予測する。それゆえ、消費電力予測装置70によれば、予測結果の精度が良好となる。したがって、消費電力予測装置70によれば、予測結果の精度の低下を抑制することができる。
【0092】
また、消費電力予測装置70は、予測された消費電力と現時点の実績値との差が所定値以上となった場合に、消費電力の予測を実行する。したがって、消費電力予測装置70によれば、予測結果と実績値との差が大きくなることを抑制することができる。
【0093】
また、消費電力予測装置70は、複数の消費電力が予測された場合に、予測された消費電力が分岐する時点から所定時間前に、消費電力の予測を実行する。したがって、消費電力予測装置70によれば、予測結果と実績値との差が大きくなることを更に抑制することができる。
【0094】
さて、これまで開示の装置に関する各実施例について説明したが、本発明は上述した各実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0095】
例えば、開示の装置は、実績値を、0(低)、1(中)、2(高)のように三段階に量子化した上で上述した予測処理を実行することができる。なお、開示の装置は、三段階に限られず、他の複数段階に実績値を量子化した上で予測処理を実行することもできる。また、開示の装置は、上述した方法で非類似度を算出し、算出した非類似度の逆数を類似度として算出する以外にも、例えば、曜日や時間帯などを更に考慮して類似度を算出することもできる。具体例を挙げて説明する。開示の装置は、非類似度を算出する際に、参照時系列データの先頭の時点の時刻が「hr」、部分時系列データsim[i]の先頭の時点の時刻が「hs」(hr,hs=0、1、・・・、23)である場合に、次の処理を行うこともできる。すなわち、開示の装置は、実施例1、2において上述した方法で非類似度を算出し、算出した非類似度に、時間帯項「r*diff(hr,hs)」を加えた値を、新たな非類似度とし、新たな非類似度の逆数を類似度として算出することもできる。ここで、「r」は、所定値である。また、|hr−hs|が12以下である場合に、diff(hr,hs)=|hr−hs|であり、|hr−hs|が12より大きい場合に、diff(hr,hs)=24−|hr−hs|である。
【0096】
また、開示の装置は、K個の最良解pred(t,Lopt)を、変数tに対応する時刻以降の予測時系列データとした場合に、次の処理を行うこともできる。すなわち、開示の装置は、K個の予測時系列データをクラスタリングして複数のグループに分類し、分類したグループごとに、予測時系列データの平均値を算出し、グループごとの予測時系列データの平均値をパターン13aに記録することもできる。
【0097】
また、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【0098】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
【0099】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。
【0100】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0101】
[消費電力予測プログラム]
また、上記の各実施例で説明した消費電力予測装置10,70の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、
図14を用いて、上記の各実施例で説明した消費電力予測装置10,70と同様の機能を有する消費電力予測プログラムを実行するコンピュータの一例を説明する。
図14は、消費電力予測プログラムを実行するコンピュータを示す図である。
【0102】
図14に示すように、コンピュータ300は、CPU(Central Processing Unit)310、ROM(Read Only Memory)320、HDD(Hard Disk Drive)330、RAM(Random Access Memory)340を有する。これら各機器310〜340は、バス350を介して接続されている。
【0103】
ROM320には、OSなどの基本プログラムが記憶されている。また、HDD330には、上記の実施例で示す記録部14a、第1の抽出部14b、第2の抽出部14c、選択部14d、予測部14eと同様の機能を発揮する消費電力予測プログラム330aが予め記憶される。または、HDD330には、上記の実施例で示す記録部14a、第1の抽出部24b、第2の抽出部14c、選択部24d、予測部24eと同様の機能を発揮する消費電力予測プログラム330aが予め記憶される。なお、消費電力予測プログラム330aについては、適宜分離しても良い。また、HDD330には、パターンが設けられる。パターンは、上述したパターン13aに対応する。
【0104】
そして、CPU310が、消費電力予測プログラム330aをHDD330から読み出して実行する。
【0105】
そして、CPU310は、パターンを読み出してRAM340に格納する。さらに、CPU310は、RAM340に格納されたパターンを用いて、消費電力予測プログラム330aを実行する。なお、RAM340に格納されるデータは、常に全てのデータがRAM340に格納されなくともよい。処理に用いられるデータがRAM340に格納されれば良い。
【0106】
なお、上記した消費電力予測プログラム330aについては、必ずしも最初からHDD330に記憶させておく必要はない。
【0107】
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に消費電力予測プログラム330aを記憶させておく。そして、コンピュータ300がこれらから消費電力予測プログラム330aを読み出して実行するようにしてもよい。
【0108】
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などに消費電力予測プログラム330aを記憶させておく。そして、コンピュータ300がこれらから消費電力予測プログラム330aを読み出して実行するようにしてもよい。