実施の形態1
以下実施の形態を、図面を参照して説明する。図1は情報処理システムの概要を示す説明図である。情報処理システムはインターネット、LAN(Local Area Network)及び公衆電話網等の通信網Nを介して相互に接続される複数の太陽光発電装置2及び情報処理装置1等を含む。情報処理装置1は、例えばサーバコンピュータまたはパーソナルコンピュータ等である。以下では情報処理装置1をサーバコンピュータ1と読み替えて説明する。太陽光発電装置2(以下、発電装置2という)は家庭、ビル、マンション、学校及び駅等の施設に分散設置されており、太陽光による発電量を、通信網Nを介してサーバコンピュータ1へ送信する。
サーバコンピュータ1は分散配置された発電装置2をセンサと見なし、発電量が閾値以下の領域(以下、雲領域という)を特定する。サーバコンピュータ1は雲領域の移動履歴を記憶する。またサーバコンピュータ1は履歴を参照し、雲領域の軌跡を予測し、発電装置2の発電量を予測する。以下詳細を説明する。
図2は発電装置2のハードウェア群を示すブロック図である。発電装置2は制御部としてのCPU(Central Processing Unit)21、RAM(RandomAccess Memory)22、太陽光モジュール23、電力量計24、出力部26及び時計部28等を含む。CPU21は、バス27を介してハードウェア各部と接続されている。CPU21はRAM22に記憶された制御プログラムに従いハードウェア各部を制御する。RAM22は例えばSRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ等である。RAM22は、CPU21による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。時計部28は日時情報をCPU21へ出力する。
太陽光モジュール23は太陽の光を受け発電する。電力量計24は太陽光モジュール23が発電した発電量を計測する。電力量計24は計測した発電量をCPU21へ出力する。CPU21は出力部26を介して、サーバコンピュータ1へ発電量をサーバコンピュータ1へ送信する。CPU21は時計部28から出力される日時情報を参照し、所定時間毎(例えば、15分毎)に計測した発電量及び発電装置2を特定するための識別情報(以下、装置IDという)をサーバコンピュータ1へ送信する。
なお、本実施形態では各発電装置2からサーバコンピュータ1へ直接発電量及び装置IDを出力する形態を示すがこれに限るものではない。例えば、発電装置2とサーバコンピュータ1との間に設けられる中継用のコンピュータ(図示せず)により中継しても良い。中継用のコンピュータは、地域を統括する電力管理会社及び市町村役場等の施設に設けられる。この場合中継用のコンピュータが発電装置2から受信した装置ID及び発電量を、サーバコンピュータ1へ送信する。
図3はサーバコンピュータ1のハードウェア群を示すブロック図である。サーバコンピュータ1は、CPU11、RAM12、入力部13、表示部14、記憶部15、通信部16及び時計部18等を含む。CPU11は、バス17を介してハードウェア各部と接続されている。CPU11は記憶部15に記憶された制御プログラム15Pに従いハードウェア各部を制御する。RAM12は例えばSRAM、DRAM、またはフラッシュメモリ等である。RAM12は、記憶部としても機能し、CPU11による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
通信部16はファイアウォールとしての機能を果たすゲートウェイ等であり、発電装置2との間でHTTP(HyperText Transfer Protocol)等により情報を送受信する。表示部14は液晶ディスプレイまたは有機EL(electroluminescence)ディスプレイであり、CPU11の制御に従い必要な情報を表示する。記憶部15は例えば、大容量フラッシュメモリまたはハードディスク等であり、制御プログラム15P、雲データベース(以下、DBという)151、位置DB152、予測DB153、実績DB154及び候補DB155が記憶されている。また記憶部15には、最終候補DB157、予測重心DB158及び規定値DB156等が記憶されている。なお、本実施形態では雲DB151及び位置DB152等を記憶部15に記憶する例を挙げて説明するがこれに限るものではない。例えば、サーバコンピュータ1に通信網Nを介して接続される他のコンピュータ(図示せず)に、雲DB151及び位置DB152を記憶しても良い。この場合、CPU11は必要に応じて各DBにアクセスし、情報の読み出しまたは書き込みを行う。
図4は位置DB152のレコードレイアウトを示す説明図である。位置DB152は装置IDフィールド及び座標フィールド等を含む。装置IDフィールドには分散配置された発電装置2を特定するための装置IDが記憶されている。座標フィールドには、装置IDに対応付けて発電装置2の位置が記憶されている。位置は発電装置2の緯度及び経度であり、装置IDに対応付けて座標Xフィールドに緯度、座標Yフィールドに経度が記憶されている。例えば、装置ID「A」に対応付けて座標(xa,ya)が記憶されている。
図5は雲領域を示す説明図である。図5の横軸は経度に対応するx軸、縦軸は緯度に対応するy軸である。本実施形態では説明を容易にするために、所定の緯度範囲及び経度範囲を計測対象の全領域として説明する。計測対象の全領域はx軸方向が20に区分けされており、y軸方向も20に区分けされている。図5Aのハッチングで示す領域群が雲領域である。例えば、座標(2、15)は雲領域であり、(2、14)は晴領域である。図5Bは一単位時間経過後の雲領域を示す説明図である。一単位時間経過後には、ハッチングで示す雲領域が形状を変えつつ東側に移動していることが理解できる。一単位時間経過後には、座標(2、15)は晴れ領域となる。一単位時間は例えば15分、または1時間等である。なお、本実施形態で挙げる数値は一例であり、これに限るものではない。本実施形態では区分けした一領域内に一つの発電装置2が存在するものとして説明する。
サーバコンピュータ1のCPU11は通信部16を介して発電装置2から発電量を受信する。CPU11は発電量が記憶部15に記憶した閾値以下の場合、雲領域と判断する。一方、CPU11は受信した発電量が閾値を超える場合、晴領域と判断する。例えば装置IDが「A」、座標(4,10)に位置する発電装置2の発電量が3.05KVAであり、閾値である0.5KVAを超える場合、CPU11は当該座標に係る領域(座標4,10)を晴領域と判断する。また例えば装置IDが「A」、座標(4,10)に位置する発電装置2の発電量が0.25KVAであり、閾値である0.5KVA以下の場合、CPU11は当該座標に係る領域座標(4,10)を雲領域と判断する。なお、本実施形態においては説明を容易にするために、一領域に一つの発電装置2が設置される例を挙げて説明するが、これに限るものではない。一領域に複数の発電装置2が存在していても良い。この場合、複数の発電装置2の発電量の平均発電量、最大の発電量、最小の発電量、または、最大発電量と最小発電量との平均発電量等と閾値とを比較するようにすればよい。
図6は雲DB151のレコードレイアウトを示す説明図である。雲DB151は時間フィールド、雲IDフィールド、重心座標フィールド、重心からエッジまでの距離フィールド及び一単位時間前との距離差フィールド等を含む。時間フィールドには日時が記憶されている。時間は一単位時間毎(例えば15分ごと)に記憶されているものとする。雲IDフィールドには図5に示した雲領域を特定するための固有の識別情報(以下、雲IDという)が日時に対応付けて記憶されている。重心座標フィールドには、雲領域内の基準点としての重心の座標が記憶されている。
雲領域の基準点は、雲領域内であって、雲領域の形状により算出される点をいう。基準点は例えば雲領域の重心とすればよい。図5の例では、CPU11は雲領域の外周領域の座標を抽出する。CPU11は外周各領域のx座標合計値を、外周領域数で除すことで重心のx座標を算出する。同様に、CPU11は外周各領域のy座標合計値を、外周領域数で除すことで重心のy座標を算出する。CPU11は算出した重心座標を雲IDに対応付けて記憶する。
その他基準点は、外周座標の最大値及び最小値の平均に基づき算出しても良い。具体的には、CPU11は外周領域のx座標の内、最大値と最小値を抽出する。CPU11は最大値と最小値との平均をとることでx座標を求める。同様に、CPU11は外周領域のy座標の内、最大値と最小値を抽出する。CPU11は最大値と最小値との平均をとることでy座標を求める。その他、基準点は雲領域に内接または外接する円の中心座標としても良い。重心からエッジまでの距離フィールドには、雲IDに対応付けて雲領域の形状を特定するための情報が記憶される。なお、全領域内に雲領域が存在しない場合は、雲DB151には時間に対応する情報が記憶されない。
図7は形状の特定方法を示す説明図である。本実施形態では、所定角度毎の重心座標から領域外周座標までの距離群を雲領域の形状としている。具体的には、12時方向を0度、3時方向を90度とする。CPU11は重心に対し0度方向に存在する外周領域座標を抽出する。CPU11は重心と抽出した外周領域座標との距離を、雲ID及び角度(0度)に対応付けて記憶する。同様に、CPU11は重心に対し10度方向に存在する外周領域座標を抽出する。CPU11は重心と抽出した外周領域座標との距離を、雲ID及び角度(10度)に対応付けて記憶する。なお、本実施形態では10度毎に外周領域座標までの距離を算出する例を挙げたが、これに限るものではなく、他の角度としても良い。CPU11は当該処理を360度に達する前まで繰り返し行う。
なお、領域の算出方法はこれに限るものではない。例えば、CPU11は雲領域の座標を抽出し、抽出した座標群を領域の形状として、雲IDに対応づけて記憶部15に記憶してもよい。さらにCPU11は、領域の座標数を計数し、面積として、雲IDに対応づけて記憶部15に記憶しても良い。またCPU11は、重心を中心とし、雲領域に内接または外接する円を算出し、当該円を領域の形状としても良い。一単位時間前との距離差フィールドには、雲領域の重心と、当該雲領域の一単位時間前の雲領域の重心との距離が雲IDに対応付けて記憶されている。CPU11は、重心間の距離を算出し、雲IDに対応づけて記憶する。
図8は他の領域特定方法を示す説明図である。一領域内に一つの発電装置2が存在しない場合もある。この場合、クラスタ法により領域及び重心を特定しても良い。CPU11はK-meansによるクラスタ法を用いて発電量が閾値以下の複数の発電装置2をグループ化する。CPU11はグループ化された発電装置2を一つの領域とする。CPU11はグループ化された複数の発電装置2に基づき重心を特定する。図8の例では、2つの雲領域が特定されている。また雲領域内にはXで示す重心が決定される。
図9は雲領域の関連づけ処理を示す説明図である。ハッチングで示すCが発電量に基づき現在特定された雲領域Cであるとする。雲領域Cの重心をGで示す。雲は移動または新たに発生するため、一時間単位前の雲領域がどれであるかを特定する必要がある。図9の例では、一単位時間前に点線で示す雲領域C1、雲領域C2、雲領域C3が存在していたものとする。雲領域C1、雲領域C2、雲領域C3の重心はそれぞれG1、G2、G3である。CPU11は一単位時間前の雲領域の雲ID及び重心座標を雲DB151から読み出す。またCPU11は現在の雲領域Cの雲ID及び重心座標を雲DB151から読み出す。
雲領域Cの重心座標と、一単位時間前の雲領域の重心座標との距離を算出する。CPU11は算出した距離が記憶部15に記憶した閾距離以内であるか否かを判断する。CPU11は閾距離以内であると判断した場合は、当該重心座標に係る雲領域を、雲領域Cの一単位時間前の雲領域であると判断する。図9の例では雲領域C1が一単位時間前の雲領域であると判断される。なお、CPU11は、算出した距離の内、最も近い距離である重心座標を有する雲領域を、雲領域Cの一単位時間前の雲領域と判断しても良い。
また、雲領域の形状と、一単位時間前の雲領域の形状とが最も類似する一単位時間前の雲領域を抽出しても良い。CPU11は、現在の雲領域の外周座標と、一単位時間前の雲領域の外周座標とを記憶部15から読み出し、パターンマッチングを行う。パターンマッチングの結果最も雲領域の形状が類似する雲領域を一単位時間前の雲領域とする。その他、CPU11は、雲DB151に記憶した識別情報及び重心からエッジまでの距離を読み出す。CPU11は、2つの雲領域に係る各角度の距離の差分の2乗の合計値を算出する。CPU11は、合計値の算出を一単位時間前の各雲領域について行う。図9の例では、雲領域Cと雲領域C1、雲領域Cと雲領域C2、及び、雲領域Cと雲領域C3についての合計値を求める。CPU11は、算出した合計値が最も小さい一単位時間前に係る雲領域の雲IDを読み出す。
さらに面積が最も近い雲領域同士を類似する雲領域として判断しても良い。CPU11は、雲領域を構成する座標数を計数する。計数した値が、現在の雲領域に最も近い一単位時間前の雲領域を類似する雲領域として抽出する。本実施形態においては、説明を容易にするために面積が最も近い雲領域を類似する雲領域であるものとして説明する。また、一単位時間前の雲領域の特定は、重心間の距離と面積との双方を用いる例を挙げて説明するが、いずれか一方のみを用いても良い。
図9の例では、雲領域Cの一単位時間前の雲領域は、雲領域C1であるものとして説明する。CPU11は、雲DB151を参照し、雲領域C1の雲IDを読み出す。CPU11は、読み出した雲IDと同一の雲IDに対応づけて雲領域Cの時間、重心座標及び重心からエッジまでの距離を記憶する。CPU11は、一単位時間前の雲領域の重心座標と現在の雲領域の重心座標とに基づき、距離を算出する。CPU11は、算出した距離を現在の雲領域の雲IDに対応づけて、一単位時間前との距離差フィールドに記憶する。
CPU11は、重心間の距離が所定距離を超え、かつ、面積差が所定面積以上であると判断した場合、新たな雲が発生したと判断する。CPU11は、新たな雲IDを生成し、生成した雲IDに対応づけて、時間、重心座標、重心からエッジまでの距離を記憶する。なお、CPU11は、新たな雲IDを生成した場合、一単位時間前との距離差フィールドには0を記憶する。以上の処理を繰り返すことにより、雲IDが生成される。
図10は重心の軌跡を示す説明図である。実線は予測対象となる雲領域の重心軌跡を示す。実践上の黒丸は現在の雲領域の重心位置である。以下では当該雲領域の重心の軌跡を予測する処理を説明する。点線L1からL8は他の雲IDに係る雲領域の重心軌跡を示す。予測対象の雲領域の重心軌跡は、L3からL7までの軌跡に概ね一致していることが理解できる。逆に点線L1、L2、L8の軌跡は一致していない。L3からL7までの軌跡は、今後(黒丸以降の時間帯)はL5からL7の軌跡が一致するが、L3及びL4が一致しないといえる。
CPU11は、予測対象となる雲領域の重心の履歴を読み出す。CPU11は、読み出した過去の重心群と、雲DB151に記憶した予測対象となる雲領域とは異なる他の雲IDに係る過去の重心群とに基づき、類似度を算出する。CPU11は、類似度の高い複数の雲IDを、候補として抽出する。具体的には、CPU11は、読み出した過去の重心群と、雲DB151に記憶した予測対象となる雲領域とは異なる他の雲IDに係る過去の重心群とに基づき、ユークリッド距離を算出する。CPU11は、算出したユークリッド距離が記憶部15に記憶した閾値以下の場合、候補として雲IDを抽出する。
図11は類似度算出処理の手順を示す説明図である。CPU11は、雲DB151から予測対象の雲IDの重心座標を現在から所定単位時間分遡って読み出す。例えば、5単位時間分読み出せば良い。図11の左側の表が予測対象の雲IDの重心座標履歴である。CPU11は、雲DB151を参照し、他の雲IDに係る重心座標を読み出す。図11の右側の表が他の雲IDの重心座標履歴である。時間に対応づけて重心座標の履歴が記憶されている。
CPU11は、下記式1に基づき、ユークリッド距離を算出する。
具体的には、時間t0におけるx重心座標と時間t11におけるx重心座標との差分の2乗と、時間t0におけるy重心座標と時間t11におけるy重心座標との差分の2乗とを加算し平方根を求める。CPU11は、同様の処理を時間t1とt12、t2とt13、t3とt14、t4とt15についても行う。CPU11は、平方根の合計値をユークリッド距離とする。CPU11は、ユークリッド距離が記憶部15に記憶した閾値以下の場合、候補として候補DB155に雲ID、時間及び重心座標を記憶する。CPU11は、上述した処理を、時間をずらしながら行う。つまり、続いて、他の雲IDの重心の時間t12、t13、t14、t15、t16に対するユークリッド距離を算出する。
CPU11は以上述べた処理を、雲DB151に記憶された全ての雲IDのレコードに対して行う。図12は候補DB155のレコードレイアウトを示す説明図である。候補DB155は雲IDフィールド、時間フィールド、及び重心座標フィールドを含む。雲IDフィールドには候補として抽出された類似度の高い雲IDが記憶されている。時間フィールドには雲IDに対応づけてユークリッド距離が閾値以下であった時間帯が記憶されている。重心座標フィールドには、雲ID及び時間に対応づけて対応する重心座標が記憶されている。なお、同一雲IDにおいて、ユークリッド距離が閾値以下となる時間帯が複数存在する場合は、最もユークリッド距離が小さい時間帯を候補DB155に記憶すればよい。
これにより、点線L1、L2及びL8は候補から外れることになる。なお、本実施形態では類似度の算出にあたりユークリッド距離を用いる例を挙げて説明するが、これに限るものではない。CPU11は、類似度として相関関数を算出し、相関関数が所定の閾値より大きい雲IDを候補として抽出しても良い。例えば、CPU11は、読み出した重心座標に基づき近似直線を算出する。CPU11は、予測対象の雲領域の近似直線と他の雲領域との近似直線との相関関数を類似度とする。CPU11は、相関関数が閾値より大きい近似直線に係る時間及び重心座標を抽出しても良い。
CPU11は、候補DB155に記憶した雲ID及び時間を読み出す。CPU11は、雲DB151を参照し、読み出した時間以降の雲IDに係る重心座標を読み出す。なお、読み出す時間は、記憶部15に記憶した所定単位時間分とすればよい(例えば5単位時間分)。
図13は最終候補DB157のレコードレイアウトを示す説明図である。最終候補DB157は雲IDフィールド、時間フィールド及び重心座標フィールド等を含む。雲IDフィールドには候補となる雲IDが記憶されている。CPU11は、候補DB155及び雲DB151を参照し、候補DB155に記憶した時間以降の時間及び対応する重心座標を読み出す。CPU11は、雲ID及び時間に対応づけて読み出した重心座標を重心座標フィールドに記憶する。図13の例では、雲ID「11JA0005」に関し、時間t9以降のt10からt14までの対応する重心座標が読み出される。
すなわち、CPU11は、類似度が高いとされた雲領域の時間以降の、所定時間分(例えば5単位時間分)の重心座標群を重心座標フィールドに記憶する。図13の例では、時間t9以降の時間t10、t11、t12、t13、t14が記憶されている。CPU11は、最終候補DB157に記憶された時間及び重心座標に基づき予測重心を算出する。CPU11は、最初に参照に値しない雲IDに係る雲領域を削除する処理を行う。CPU11は、最終候補DB157に記憶された複数の候補となる雲IDの重心座標を参照し、分散を算出する。具体的にはCPU11は、最終候補DB157に記憶された単位時間毎の重心座標の平均値と重心座標との差に基づき分散を算出する。
図13の例では、雲ID「11JA0005」の時間t10の重心座標と、雲ID「11JA0006」の時間t24の重心座標と、雲ID「11JA0007」の時間t66の重心座標とに基づき、平均座標を算出する。CPU11は、平均座標とt10の重心座標との差分の2乗と、平均座標とt24の重心座標との差分の2乗と、平均座標とt66の重心座標とを加算する。CPU11は、同様の処理をt11とt25とt67、t12とt26とt68、t13とt27と69、t14とt28とt70についても行う。CPU11は、全ての時間帯についての加算値の合計値を分散とする。CPU11は、合計値が記憶部15に記憶した閾値以下であると判断した場合、ばらつきが少ないとして最終候補DB157に記憶した候補雲IDの重心座標に基づき、予測重心を算出する。なお、本実施形態においてはばらつき度の算出方法として分散を挙げたがこれに限るものではない。CPU11は、雲IDの重心座標に基づき近似直線を求める。CPU11は、各雲IDの近似直線の傾きの分散、または、傾きの最大値と最小値との差に基づき、ばらつき度を算出しても良い。
CPU11は、合計値が記憶部15に記憶した閾値より大きいと判断した場合、ばらつきが大きいとして、予測対象の雲IDの過去の重心座標に基づき、予測重心を算出する。例えば、候補が点線L3からL8の雲領域である場合、点線L3及びL4に起因して分散が大きくなる。この場合、CPU11は、実線Lで示す過去の重心座標に基づき、予測重心を算出する。具体的には、CPU11は、予測対象の雲領域の一単位時間前の重心座標から現在の雲領域の重心座標までの移動ベクトルを算出する。CPU11は、算出した移動ベクトルに基づき、一単位時間後の重心座標を算出する。CPU11は、一単位時間後の重心座標に移動ベクトルを加算し、2単位時間後の重心座標を算出する。以上の処理を繰り返すことにより予測重心を算出する。反対に、候補が点線L5からL7であり、分散が小さいと判断した場合、候補であるL5からL7の重心座標に基づき、予測重心を算出する。
以下では、抽出した雲候補IDに基づき予測重心を算出する処理を説明する。図10において候補となる雲IDが点線L5、L6及びL7であるとする。CPU11は、最終候補DB157から各雲IDの重心座標を時系列順に読み出す。図13の例では時間t10とt24とt66の重心座標が読み出される。CPU11は、時系列順に読み出した重心座標の平均値を求める。CPU11は、平均値を予測される重心(以下、予測重心という)として予測重心DB158に記憶する。
図14は予測重心DB158のレコードレイアウトを示す説明図である。予測重心DB158は雲IDフィールド、時間フィールド及び予測重心座標フィールド等を含む。雲IDフィールドには予測対象となる雲領域の雲IDが記憶されている。時間フィールドには将来の時間が単位時間毎に記憶されている。予測重心座標フィールドには、将来の時間に対応づけて予測される重心が予測重心として記憶されている。CPU11は、現在の時間に単位時間を順次加算した時間を予測重心DB158の時間フィールドに、雲IDに対応づけて記憶する。例えば、現在の時間が午前9時、単位時間が15分である場合、予測重心座標の時間は、9時15分(T1)、9時30分(T2)、9時45分(T3)、10時0分(T4)、10時15分(T5)・・と15分ごとに記憶される。
なお、本実施形態においては最終候補DB157に記憶した各時間の重心座標の平均値を、予測重心として、算出する例を挙げたがこれに限るものではない。例えばCPU11は、最初に時間毎の平均値を求める。CPU11は、平均値と対応する時間の各重心座標との距離を求める。CPU11は、距離が大きい所定数(例えば3)の重心座標を削除する。CPU11は、削除後の重心座標の平均値を算出する。CPU11は、当該算出した平均座標を時間に対応づけて予測重心DB158に記憶しても良い。これにより、重心座標のばらつきによる予測精度の低下を防止することができる。
その他、CPU11は、候補DB155から最大及び最小のx座標を時間毎に抽出する。CPU11は、最大のx座標と最小のx座標の平均値を予測重心DB158に記憶する。続いて、CPU11は、候補DB155から最大及び最小のy座標を時間毎に抽出する。CPU11は、最大のy座標と最小のy座標の平均値を予測重心DB158に記憶する。このように、CPU11は、時間毎の最大値及び最小値に基づく平均座標を予測重心としても良い。
図15は予測重心軌跡及び予測雲領域を示す説明図である。ハッチングで示す雲領域が現在の雲領域である。白丸で示す点が予測される予測重心である。雲領域は各予測重心を通る点線(予測重心軌跡)に従って移動すると予測される。雲の領域は現在の雲の領域と同じ領域であるものとして説明する。CPU11は、予測対象の雲IDに対応する現在の重心座標を雲DB151から読み出す。CPU11は、図5で示す現在の雲領域を特定する。具体的にはCPU11は、雲と判断される座標を読み出す。CPU11は、現在の重心座標から予測重心DB158に記憶した予測重心座標までの移動ベクトルを算出する。CPU11は、移動ベクトルを雲と判断される各予測座標に加算することで予測雲領域を決定する。CPU11は、単位時間毎に以上の処理を繰り返すことにより、単位時間毎の予測雲領域を算出する。
図15に示す点線で囲む領域が単位時間毎の予測雲領域である。なお、予測雲領域は雲DB151に記憶した重心からエッジまでの距離を用いても良い。すなわち、CPU11は、現在の重心座標からエッジまでの距離を雲DB151から読み出す。CPU11は、予測重心DB158に記憶した予測重心座標と、読み出したエッジまでの距離とに基づき、予測雲領域を算出しても良い。なお、各角度において予測重心座標から距離を加算した線分の先端部を直線または曲線で結ぶことにより、予測雲領域の外周を特定すればよい。
CPU11は、予測雲領域に基づき、発電装置2毎に発電量の予測を行う。図16は実績DB154のレコードレイアウトを示す説明図である。実績DB154は時間フィールド及び装置IDフィールド等を含む。時間フィールドには現在の時間と一単位時間毎に遡った時間とが記憶されている。t0は現在時間、t1は一単位時間前の時間(例えば15分前)、t2は二単位時間前の時間(例えば30分前)である。装置IDフィールドには装置ID及び時間に対応づけて発電量が記憶されている。CPU11は、装置ID及び発電量が発電装置2から送信された場合、装置ID及び現在時間t0に対応づけて発電量を実績DB154に記憶する。CPU11は、時間t0のフィールドに発電量を記憶した場合、既に記憶済みの発電量を一単位時間前の時間に対応づけて記憶する。例えば、時刻t1の発電量は、更新後時刻t2の発電量として記憶される。なお、発電量は一例としてKVAであるがこれに限るものではない。発電量として太陽光モジュール23の発電能力に対する現在の発電量の割合(例えば60%等)としても良い。
図17は予測DB153のレコードレイアウトを示す説明図である。予測DB153は時間フィールド及び装置IDフィールド等を含む。時間フィールドには現在の時間から一単位時間後の時間が記憶されている。T1は現在時間t0の一単位時間後の時間(例えば15分後)、T2は二単位時間後の時間(例えば30分後)である。装置IDフィールドには装置ID及び時間に対応づけて予測発電量が記憶されている。
CPU11は、単位時間毎の予測雲領域を読み出す。CPU11は、予測雲領域に属する装置IDを読み出す。図18は規定値DB156のレコードレイアウトを示す説明図である。規定値DB156は月フィールド及び規定値フィールド等を含む。月フィールドには11月〜3月、4月〜10月、及び曇り情報が記憶されている。規定値フィールドには11月〜3月、4月〜10月、及び曇りのそれぞれに対応づけて予測発電量が記憶されている。例えば、11月〜3月の場合、予測発電量を3.05KVAとし、高い発電量が見込める4月〜10月は3.5KVAとすれば良い。また雲領域に属するとして曇りと判断される場合、発電量が十分な見込めないため0KVAを記憶する。なお、規定値DB156の記憶内容は一例であり、更に細かく日月で規定値を記憶しても良い。またオペレータが入力部13から規定値を適宜変更することが可能である。なお、規定値は、発電装置2個々の発電能力を踏まえ、装置IDごとに設けても良い。
CPU11は、規定値DB156を参照し、予測雲領域に属する装置IDに対応づけて規定値(0KVA)を予測DB153に記憶する。これにより、予測雲領域に属する装置IDの予測発電量は0KVAとなる。続いて予測雲領域に属さない装置IDについて説明する。CPU11は、規定値DB156及び時計部18から出力される日時を参照し、規定値(3.05V等)を読み出す。CPU11は、予測雲領域に属さない装置IDに対応づけて、読み出した規定値を、予測DB153に記憶する。これにより晴れと予測される領域に属する装置IDには3.05Vが記憶される。以上の処理を、単位時間毎に繰り返し行うことで、予測DB153が生成される。
以上のハードウェアにおいて各種ソフトウェア処理を、フローチャートを用いて説明する。図19及び図20は予測処理の手順を示すフローチャートである。CPU11は、発電装置2の出力部26から出力された装置ID及び発電量を単位時間毎に受信する(ステップS191)。なお、本実施形態では発電装置2のCPU21が予め記憶部15に記憶された時間毎に出力部26を介して発電量を送信するものとして説明する。CPU11は、装置IDに対応する座標を位置DB152から読み出す(ステップS192)。CPU11は、記憶部15から閾値を読み出す(ステップS193)。CPU11は、発電量が閾値を超えるか否かを判断する(ステップS194)。CPU11は、閾値を超えると判断した場合(ステップS194でYES)、当該座標の領域は晴れとみなし、処理をステップS195へ移行させる。CPU11は、装置ID、座標、発電量、晴れの情報及び時間を記憶部15に記憶する(ステップS195)。
一方、CPU11は、発電量が閾値を超えないと判断した場合(ステップS194でNO)、当該座標の領域は曇りとみなし、ステップS196へ処理を移行させる。CPU11は、装置ID、座標、発電量、曇りの情報及び時間を記憶部15に記憶する(ステップS196)。ステップS195及びS196の処理後、処理をステップS197へ移行させる。CPU11は、全ての装置IDに対する処理を終了したか否かを判断する(ステップS197)。CPU11は、全ての装置IDに対する処理を終了していないと判断した場合(ステップS197でNO)、処理をステップS191へ戻す。これにより、全ての座標について晴れか、曇りかの情報が記憶される。
CPU11は、全ての装置IDに対する処理を終了したと判断した場合(ステップS197でYES)、処理をステップS198へ移行させる。CPU11は、一単位時間前の全ての座標に曇りの情報が記憶されているか否かを判断する(ステップS198)。CPU11は、一単位時間前の全ての座標に曇りの情報が記憶されていると判断した場合(ステップS198でYES)、処理をステップS199へ移行させる。なお、ステップS199では後述する第一予測処理が実行される(ステップS199)。
CPU11は、一単位時間前の全ての座標に曇りの情報が記憶されていないと判断した場合(ステップS198でNO)、処理をステップS201へ移行させる。CPU11は、一単位時間前の全ての座標に晴れの情報が記憶されているか否かを判断する(ステップS201)。CPU11は、一単位時間前の全ての座標に晴れの情報が記憶されていると判断した場合(ステップS201でYES)、ステップS202へ処理を移行させる。CPU11は、後述する第二予測処理を行う(ステップS202)。CPU11は、一単位時間前の全ての座標に晴れの情報が記憶されていないと判断した場合(ステップS201でNO)、対応付け処理(ステップS203)及び第三予測処理(ステップS204)が実行される。なお、ステップS203及びS204の処理は別途説明する。
図21及び図22は第一予測処理の手順を示すフローチャートである。CPU11は、現在の各座標の晴れの情報及び曇りの情報を読み出す(ステップS211)。CPU11は、現在の全ての座標に曇りの情報が記憶されているか否かを判断する(ステップS212)。CPU11は、現在の全ての座標に曇りの情報が記憶されていると判断した場合(ステップS212でYES)、2単位時間連続して全ての座標において曇りであると判断し、ステップS213に移行する。CPU11は、曇りの規定値を規定値DB156から読み出す(ステップS213)。CPU11は、予測DB153の各装置ID、各単位時間に対応づけて読み出した規定値を記憶する(ステップS214)。例えば、全ての装置ID及び全ての単位時間について予測発電量0KVAが記憶される。
CPU11は、現在の全ての座標に曇りの情報が記憶されていないと判断した場合(ステップS212でNO)、処理をステップS215へ移行させる。CPU11は、現在の全ての座標に晴れの情報が記憶されているか否か判断する(ステップS215)。CPU11は、現在の全ての座標に晴れの情報が記憶されていると判断した場合(ステップS215でYES)、処理をステップS216へ移行させる。CPU11は、時計部18から日時を読み出す(ステップS216)。CPU11は、日時に対応する規定値を読み出す(ステップS217)。CPU11は、予測DB153の各装置ID、各単位時間に対応づけて読み出した規定値を記憶する(ステップS218)。例えば、全ての装置ID及び全ての単位時間について予測発電量3.05KVAが記憶される。
CPU11は、現在の全ての座標に晴れの情報が記憶されていないと判断した場合(ステップS215でNO)、処理をステップS219へ移行させる。CPU11は、読み出した各座標の晴れの情報及び曇りの情報に基づき、エッジ検出を行い、雲領域を特定する(ステップS219)。具体的には晴れの座標から曇りの座標へ変化する座標群を抽出する。CPU11は、検出したエッジに基づき雲領域の外周の座標を特定する(ステップS221)。CPU11は、外周の座標に基づき、重心座標を算出する(ステップS222)。
CPU11は、雲IDを新に生成する(ステップS223)。CPU11は、雲IDに対応づけて重心座標を雲DB151に記憶する(ステップS224)。CPU11は、外周の座標と外周内の座標を雲IDに対応づけて記憶部15に記憶する(ステップS225)。またCPU11は、領域の座標群に基づき面積を算出し、算出した面積を雲IDに対応づけて記憶部15に記憶する。CPU11は、重心座標からステップS219で検出したエッジまでの距離を、単位角度毎に算出する(ステップS226)。CPU11は、算出した距離を雲ID及び角度に対応づけて雲DB151に記憶する(ステップS227)。
CPU11は、全ての雲領域について処理を終了したか否かを判断する(ステップS228)。CPU11は、全ての雲領域について処理を終了していないと判断した場合(ステップS228でNO)、処理をステップS221へ移行させる。これにより、エッジ検出により複数の雲領域が発生したと判断した場合に、雲領域の重心及び形状を特定することができる。CPU11は、全ての雲領域について処理を終了したと判断した場合(ステップS228でYES)、処理をステップS229へ移行させる。CPU11は、予測DB153の記憶内容を変更せずに維持する(ステップS229)。つまり新に発生した雲領域であるため、CPU11は、予測処理を行うことなく終了する。
図23及び図24は第二予測処理の手順を示すフローチャートである。CPU11は、現在の各座標の晴れの情報及び曇りの情報を読み出す(ステップS231)。CPU11は、現在の全ての座標に曇りの情報が記憶されているか否かを判断する(ステップS232)。CPU11は、現在の全ての座標に曇りの情報が記憶されていると判断した場合(ステップS232でYES)、ステップS233に移行する。CPU11は、曇りの規定値を規定値DB156から読み出す(ステップS233)。CPU11は、予測DB153の各装置ID、各単位時間に対応づけて読み出した規定値を記憶する(ステップS234)。
CPU11は、現在の全ての座標に曇りの情報が記憶されていないと判断した場合(ステップS232でNO)、処理をステップS235へ移行させる。CPU11は、現在の全ての座標に晴れの情報が記憶されているか否か判断する(ステップS235)。CPU11は、現在の全ての座標に晴れの情報が記憶されていると判断した場合(ステップS235でYES)、急に全面的に晴れになったと判断し、処理をステップS236へ移行させる。CPU11は、時計部18から日時を読み出す(ステップS236)。CPU11は、日時に対応する規定値を読み出す(ステップS237)。CPU11は、予測DB153の各装置ID、各単位時間に対応づけて読み出した規定値を記憶する(ステップS238)。例えば、全ての装置ID及び全ての単位時間について予測発電量3.05KVAが記憶される。
CPU11は、現在の全ての座標に晴れの情報が記憶されていないと判断した場合(ステップS235でNO)、処理をステップS239へ移行させる。CPU11は、読み出した各座標の晴れの情報及び曇りの情報に基づき、エッジ検出を行い、雲領域を特定する(ステップS239)。具体的には晴れの座標から曇りの座標へ変化する座標群を抽出する。CPU11は、検出したエッジに基づき雲領域の外周の座標を特定する(ステップS241)。CPU11は、外周の座標に基づき、重心座標を算出する(ステップS242)。
CPU11は、雲IDを新に生成する(ステップS243)。CPU11は、雲IDに対応づけて重心座標を雲DB151に記憶する(ステップS244)。CPU11は、外周の座標と外周内の座標を雲IDに対応づけて記憶部15に記憶する(ステップS245)。またCPU11は、領域の座標群に基づき面積を算出し、算出した面積を雲IDに対応づけて記憶部15に記憶する。CPU11は、重心座標からステップS239で検出したエッジまでの距離を、単位角度毎に算出する(ステップS246)。CPU11は、算出した距離を雲ID及び角度に対応づけて雲DB151に記憶する(ステップS247)。
CPU11は、全ての雲領域について処理を終了したか否かを判断する(ステップS248)。CPU11は、全ての雲領域について処理を終了していないと判断した場合(ステップS248でNO)、処理をステップS241へ移行させる。CPU11は、全ての雲領域について処理を終了したと判断した場合(ステップS248でYES)、処理をステップS249へ移行させる。CPU11は、予測DB153の記憶内容を変更せずに維持する(ステップS249)。つまりCPU11は、新に発生した雲領域であるため予測処理を行うことなく終了する。
図25から図27は対応付け処理の手順を示すフローチャートである。CPU11は、ステップS201でNOの場合、以下の処理を行う。CPU11は、現在の各座標の晴れの情報及び曇りの情報を読み出す(ステップS251)。CPU11は、現在の全ての座標に曇りの情報が記憶されているか否かを判断する(ステップS252)。CPU11は、現在の全ての座標に曇りの情報が記憶されていると判断した場合(ステップS252でYES)、ステップS253に移行する。CPU11は、曇りの規定値を規定値DB156から読み出す(ステップS253)。CPU11は、予測DB153の各装置ID、各単位時間に対応づけて読み出した規定値を記憶する(ステップS254)。
CPU11は、現在の全ての座標に曇りの情報が記憶されていないと判断した場合(ステップS252でNO)、処理をステップS255へ移行させる。CPU11は、現在の全ての座標に晴れの情報が記憶されているか否か判断する(ステップS255)。CPU11は、現在の全ての座標に晴れの情報が記憶されていると判断した場合(ステップS255でYES)、処理をステップS256へ移行させる。CPU11は、時計部18から日時を読み出す(ステップS256)。CPU11は、日時に対応する規定値を読み出す(ステップS257)。CPU11は、予測DB153の各装置ID、各単位時間に対応づけて読み出した規定値を記憶する(ステップS258)。
CPU11は、現在の全ての座標に晴れの情報が記憶されていないと判断した場合(ステップS255でNO)、処理をステップS259へ移行させる。CPU11は、読み出した各座標の晴れの情報及び曇りの情報に基づき、エッジ検出を行い、雲領域を特定する(ステップS259)。CPU11は、エッジで特定される外周の座標、外周内の座標を特定する(ステップS261)。CPU11は、外周の座標及び外周内の座標を記憶部15に記憶する。またCPU11は、領域の座標群に基づき面積を算出し、算出した面積を雲IDに対応づけて記憶部15に記憶する。CPU11は、外周の座標に基づき、重心座標を算出する(ステップS262)。CPU11は、雲DB151から一単位時間前の雲IDを読み出す(ステップS263)。複数雲IDが存在する場合、複数の雲IDを読み出す。
CPU11は、雲DB151から一単位時間前の雲IDに対応する重心座標を読み出す(ステップS264)。CPU11は、現在の重心座標と一単位時間前の重心座標との間の距離を算出する(ステップS265)。CPU11は、最も距離が小さい重心座標及び対応する雲IDを抽出する(ステップS266)。CPU11は、算出した距離が記憶部15に記憶した閾距離以内か否かを判断する(ステップS267)。
CPU11は、算出した距離が閾距離以内であると判断した場合(ステップS267でYES)、処理をステップS268へ移行させる。CPU11は、現在の外周の座標及び一単位時間前の外周の座標を読み出す(ステップS268)。CPU11は、パターンマッチングにより類似度を算出する(ステップS269)。なお、類似度の算出は現在の重心座標からエッジまでの距離と、一単位時間前の重心座標からエッジまでの距離との平均二乗誤差により算出しても良い。この場合、平均二乗誤差が小さいほど類似度が高いと判断される。またCPU11は、記憶部15に記憶した面積を対比することにより類似度を算出しても良い。
CPU11は、記憶部15から閾値を読み出す。CPU11は、類似度が閾値以上であるか否かを判断する(ステップ271)。CPU11は、類似度が閾値以上でないと判断した場合(ステップS271でNO)、処理をステップS272へ移行させる。CPU11は、一単位時間前の他の雲IDが存在するか否か判断する(ステップS272)。CPU11は、他の雲IDが存在すると判断した場合(ステップS272でYES)、処理をステップS2721へ移行させる。CPU11は、次に距離が小さい重心座標及び雲IDを読み出す(ステップS2721)。CPU11は、処理をステップS267に戻す。これにより、他の雲IDについての類似度が繰り返し算出される。
CPU11は、他の雲IDが存在しないと判断した場合(ステップS272でNO)、及び、ステップS267において算出した距離が閾距離を超えると判断した場合(ステップS267でNO)、処理をステップS273へ移行させる。CPU11は、新たな雲が発生したと判断し、新たな雲IDを生成する(ステップS273)。CPU11は、外周の座標と外周内の座標を雲IDに対応づけて記憶部15に記憶する(ステップS274)。CPU11は、重心座標からステップS259で検出したエッジまでの距離を、単位角度毎に算出する(ステップS275)。CPU11は、算出した距離を雲ID及び角度に対応づけて雲DB151に記憶する(ステップS276)。
CPU11は、ステップS271において類似度は閾値以上であると判断した場合(ステップS271でYES)、一単位時間前の雲領域であるとして処理をステップS277へ移行させる。CPU11は、ステップS266またはS2721で抽出した雲IDと同一の雲IDを付与する(ステップS277)。CPU11は、外周の座標と外周内の座標を同一の雲IDに対応づけて記憶部15に記憶する(ステップS278)。CPU11は、重心座標からステップS259で検出したエッジまでの距離を、単位角度毎に算出する(ステップS279)。CPU11は、算出した距離を雲ID及び角度に対応づけて雲DB151に記憶する(ステップS2710)。
CPU11は、全ての雲領域について処理を終了したか否かを判断する(ステップS2711)。CPU11は、全ての雲領域について処理を終了していないと判断した場合(ステップS2711でNO)、処理をステップS261へ移行させる。これにより、各雲領域と、一単位時間前の各雲領域との紐付けが行われる。CPU11は、全ての雲領域について処理を終了したと判断した場合(ステップS2711でYES)、処理を終了する。
図28から図31は第三予測処理の手順を示すフローチャートである。CPU11は、予測対象の雲IDを読み出す(ステップS281)。CPU11は、読み出した雲IDの現在の重心座標及び過去の複数単位時間前分の重心座標を読み出す(ステップS282)。CPU11は、他の雲IDの過去の単位時間前分の重心座標群と、予測対象の雲IDの重心座標群とのユークリッド距離を算出する(ステップS283)。なお当該処理はユークリッド距離を算出した後、他の雲IDの時間帯をずらし、複数の距離を算出する。CPU11は、記憶部15から閾値を読み出す(ステップS284)。CPU11は、ユークリッド距離が閾値以下の他の雲ID、時間及び重心座標群を抽出する(ステップS285)
CPU11は、ユークリッド距離が最小となる時間及び重心座標群を候補DB155に当該他の雲IDに対応づけて記憶する(ステップS286)。CPU11は、雲DB151を参照し、所定単位時間分の後の時間の重心座標を、他の雲IDに対応づけて最終候補DB157に記憶する(ステップS2860)。CPU11は、上述した処理が未処理の他の雲IDが存在するか否かを判断する(ステップS287)。CPU11は、未処理の他の雲IDが存在すると判断した場合(ステップS287でYES)、処理をステップS283へ戻す。これにより、予測対象の雲IDの過去の軌跡に類似する他の雲IDが抽出され、候補DB155及び最終候補DB157が完成する。
CPU11は、未処理の他の雲IDが存在しないと判断した場合(ステップS287でNO)、処理をステップS288へ移行させる。CPU11は、最終候補DB157を参照し、時間毎に重心座標の平均座標を算出する(ステップS288)。具体的にはCPU11は、最終候補DB157の時間フィールドの時間毎に、重心座標を読み出し、重心座標の平均座標を算出する。CPU11は、時間毎に平均座標と各雲IDの重心座標との距離の合計値を算出する(ステップS289)。CPU11は、全ての時間帯について合計値を算出したか否かを判断する(ステップS291)。CPU11は、全ての時間帯について合計値を算出していないと判断した場合(ステップS291でNO)、処理をステップS288に戻す。
CPU11は、全ての時間帯について合計値を算出したと判断した場合(ステップS291でYES)、時間帯毎の合計値の総和をばらつき度として算出する(ステップS292)。なお総和の平均をばらつき度としても良い。CPU11は、ばらつき度が記憶部15に記憶した閾値以下であるか否かを判断する(ステップS293)。CPU11は、ばらつき度が閾値以下であると判断した場合(ステップS293でYES)、処理をステップS294へ移行させる。CPU11は、現在から所定単位時間分の時間及び各時間の平均座標を、予測重心座標として予測対象の雲IDに対応づけて予測重心DB158に記憶する(ステップS294)。なお、本実施形態ではばらつきが大きい場合に、ステップS306からS3113までの処理を行う例を挙げたがこれに限るものではない。ステップS293の処理を省略し、すなわちばらつき度の判定を行うことなく、ステップS294へ移行しても良い。
CPU11は、現在の雲領域の重心座標を雲DB151から読み出し、また雲領域の外周座標を記憶部15から読み出す(ステップS295)。CPU11は、読み出した重心座標から予測時間に対応する予測重心座標までの移動ベクトルを算出する(ステップS296)。CPU11は、算出した移動ベクトルを雲領域の外周座標に加算する(ステップS297)。CPU11は、位置DB152を参照し、加算後の外周座標内に属する装置IDを読み出す(ステップS298)。CPU11は、曇りに対応する規定値を規定値DB156から読み出す(ステップS299)。
CPU11は、時間及び装置IDに対応づけて予測DB153に曇りの規定値を記憶する(ステップS301)。CPU11は、規定値DB156を参照し、時計部18から出力される日時に対応する規定値を読み出す(ステップS302)。CPU11は、位置DB152を参照し、ステップS298における加算後の予測される外周座標外に位置する装置IDを読み出す(ステップS303)。CPU11は時間及び装置IDに対応づけて予測DB153に晴れの規定値を記憶する(ステップS304)。
CPU11は、予測重心DB158の全ての時間について処理を終了したか否かを判断する(ステップS305)。CPU11は、全ての予測すべき時間について処理を終了していないと判断した場合(ステップS305でNO)、処理をステップS296へ移行させる。CPU11は、全ての時間について処理を終了したと判断した場合(ステップS305でYES)、処理をステップS3113へ移行させる。
CPU11は、ステップS293において、ばらつき度が閾値以下でないと判断した場合(ステップS293でNO)、処理をステップS306へ移行させる。CPU11は、雲DB151を参照し、一単位時間前の重心座標を読み出す(ステップS306)。CPU11は、一単位時間前の重心座標から、現在の重心座標までの移動ベクトルを算出する(ステップS307)。CPU11は、単位時間数に応じて移動ベクトルを重心座標に加算する(ステップS308)。CPU11は、雲ID及び時間に対応づけて加算後の重心座標を、予測重心座標として予測重心DB158に記憶する(ステップS309)。具体的には、現在の重心に移動ベクトルを加算し、一単位時間後の予測重心座標を算出し、予測重心DB158に記憶する。続いて一単位時間後の予測重心座標に移動ベクトルを加算し、二単位時間後の予測重心座標を算出し、予測重心DB158に記憶する。以上述べた処理を単位時間毎に行う。
CPU11は、現在の雲領域の重心座標を雲DB151から読み出し、また雲領域の外周座標を記憶部15から読み出す(ステップS311)。CPU11は、読み出した現在の重心座標から予測時間に対応する予測重心座標までの移動ベクトルを算出する(ステップS312)。CPU11は、算出した移動ベクトルを雲領域の外周座標に加算する(ステップS313)。CPU11は、位置DB152を参照し、加算後の外周座標内に属する装置IDを読み出す(ステップS314)。CPU11は、曇りに対応する規定値を規定値DB299から読み出す(ステップS315)。
CPU11は、時間及び装置IDに対応づけて予測DB153に曇りの規定値を記憶する(ステップS316)。CPU11は、規定値DB156を参照し、時計部18から出力される日時を読み出す(ステップS317)。CPU11は、日時に対応する規定値を読み出す(ステップS318)。CPU11は、位置DB152を参照し、ステップS314における加算後の予測される外周座標外に位置する装置IDを読み出す(ステップS319)。CPU11は時間及び装置IDに対応づけて予測DB153に晴れの規定値を記憶する(ステップS3111)。
CPU11は、予測重心DB158の全ての時間について処理を終了したか否かを判断する(ステップS3112)。CPU11は、全ての予測すべき時間について処理を終了していないと判断した場合(ステップS3112でNO)、処理をステップS312へ移行させる。CPU11は、全ての時間について処理を終了したと判断した場合(ステップS3112でYES)、処理をステップS3113へ移行させる。
CPU11は、全ての現在の雲IDについて上述した処理を終了したか否か判断する(ステップS3113)。CPU11は、全ての現在の雲IDについて処理を終了していないと判断した場合(ステップS3113でNO)、処理をステップS281に戻し、他の雲IDについての予測処理を行う。CPU11は、全ての雲IDについて処理を終了したと判断した場合(ステップS3113でYES)、現在の発電量を装置IDに対応づけて実績DB154に記憶する(ステップS3114)。このように信頼度の高い過去の重心の軌跡を利用することで、より精度の良い発電量予測が可能となる。
実施の形態2
実施の形態2は風向または風速を利用する形態に関する。図32は実施の形態2に係る情報処理システムの概要を示す説明図である。発電装置2に加えて、風向風速計3が分散配置されている。なお、本実施形態では風向及び風速の双方を用いる例を挙げて説明するがこれに限るものではない。風向または風速のいずれか一方を利用しても良い。風向風速計3は測定した風向及び風速を、通信網Nを介してサーバコンピュータ1へ出力する。
図33は実施の形態2に係るサーバコンピュータ1のハードウェア群を示すブロック図である。記憶部15に風向風速DB159が格納されている。図34は風向風速DB159のレコードレイアウトを示す説明図である。風向風速DB159は風向風速計IDフィールド、時間フィールド、風向フィールド及び風速フィールド等を含む。風向風速計IDフィールドには、風向風速計3を特定するための固有の識別情報(以下、風向風速計IDという)が記憶されている。CPU11は、通信部16を介して風向風速計3から送信された風向風速計ID、風向及び風速をRAM12に記憶する。CPU11は、発電装置2の発電量を所定単位時間毎に雲DB151に記憶するタイミングに同期させて、風向及び風速を時間に対応づけて記憶する。
時間フィールドには一単位時間前の時間t1、二単位時間前の時間t2が記憶されている。なお、風向風速計3が所定単位時間毎に送信した風向及び風速を時間に対応づけて記憶しても良い。風向フィールドには、風向風速計ID及び時間に対応づけて風向が記憶されている。なお、風向は例えば北風を0度、南風を180度とすればよい。風速フィールドには風向風速計ID及び時間に対応づけて風速が記憶されている。
図35は実施の形態2に係る位置DB152のレコードレイアウトを示す説明図である。さらに風向風速計IDフィールドが設けられている。装置IDに対応づけて風向風速計IDが記憶されている。本実施形態においては説明を容易にするために、図5に示した全領域に配置される発電装置2は全て一つの風向風速計3を利用するものとして説明する。
図36は実施の形態2に係る雲DB151のレコードレイアウトを示す説明図である。新に風向フィールド及び風速フィールドが設けられている。CPU11は、風向風速DB159に時間に対応づけて風向及び風速を記憶した場合、時間に対応づけて風向及び風速を雲DB151に記憶する。なお、雲領域内に複数の風向風速計3に基づく風向及び風速のデータが存在する場合、領域内の平均風向及び平均風速を時間に対応づけて、雲DB151に記憶すればよい。
図37は実施の形態2に係る候補DB155のレコードレイアウトを示す説明図である。最終候補となる雲ID及び時間に対応づけて風向及び風速が記憶されている。CPU11は、ステップS293においてばらつきが閾値を超えると判断した場合、以下の処理を行う。CPU11は、現在の風向及び風速と、候補DB155に記憶された風向及び風速との類似度を算出する。類似度は以下のように算出すればよい。CPU11は、候補DB155を参照し、雲ID毎に風向の平均値を求める。CPU11は、求めた風向の平均値と現在の風向との差分の平方根を求める。CPU11は、平方根の逆数を風向の類似度とする。
同様にCPU11は、候補DB155を参照し、雲ID毎に風速の平均値を求める。CPU11は、求めた風速の平均値と現在の風速との差分の平方根を求める。CPU11は、平方根の逆数を風速の類似度とする。CPU11は、風向きの類似度に記憶部15に記憶した1より大きい第1重みを乗算し、風速の類似度に記憶部15に記憶した第1重みより小さい第2重みを乗算し、乗算後の値を加算して全体の類似度を算出する。なお、類似度の算出方法はこれに限るものではない。例えば、重みを用いなくとも良い。
その他、時間の内最も現在に近い風向きと、現在の風向きとの差分に基づき風向きの類似度を算出しても良い。その他、CPU11は、時間に日時の情報を記憶しておき、現在と時間帯(例えば午前)または季節(例えば冬)が同一の風向きまたは風速に基づいて類似度を算出しても良い。CPU11は、記憶部15に記憶した閾値を読み出す。CPU11は、類似度が閾値を超える雲IDを抽出する。CPU11は、抽出した雲IDを最終候補DB157に記憶する。CPU11は、雲DB151を参照し、候補DB155に記憶された時間よりも後の所定単位時間分の重心座標を読み出す。CPU11は、読み出した時間及び重心座標を雲IDに対応づけて、最終候補DB157に記憶する。
図38は風向及び風速の記憶処理手順を示すフローチャートである。CPU11は、通信部16を介して、風向風速計3から出力される風向風速計ID、風向及び風速を取得する(ステップS381)。CPU11は、風向及び風速を、所定単位時間毎に風向風速計IDに対応づけて風向風速DB159に記憶する(ステップS382)。CPU11は、時間に対応づけて、風向及び風速を雲DB151に記憶する(ステップS383)。
図39及び図40は風向及び風速を用いた予測処理の手順を示すフローチャートである。CPU11は、ステップS293でNOの場合、以下の処理を行う。なお、ステップS286においてCPU11は、時間に対応する風向及び風速を候補DB155に記憶するものとする。CPU11は、候補DB155から時間に対応する風向及び風速を読み出す(ステップS391)。CPU11は、雲ID毎に平均風向を算出する(ステップS392)。CPU11は、現在の風向を読み出す(ステップS393)。CPU11は、算出した平均風向と現在の風向との差分の平方根を算出する(ステップS394)。
CPU11は、平方根の逆数を算出する(ステップS395)。CPU11は、記憶部15に記憶した第1重みを読み出す(ステップS396)。CPU11は、逆数に第1重みを乗算し、風向類似度を算出する(ステップS397)。なお、CPU11は、乗算する以外に第1重みを加算しても良い。CPU11は、雲ID毎に平均風速を算出する(ステップS398)。CPU11は、現在の風速を読み出す(ステップS399)。CPU11は、算出した平均風速と現在の風速との差分の平方根を算出する(ステップS401)。
CPU11は、平方根の逆数を算出する(ステップS402)。CPU11は、記憶部15に記憶した第1重みより小さい第2重みを読み出す(ステップS403)。CPU11は、逆数に第2重みを乗算し、風速類似度を算出する(ステップS404)。なお、CPU11は、第2重みを加算しても良い。CPU11は、算出した風向類似度に風速類似度を加算し、雲IDに係る類似度を算出する(ステップS405)。CPU11は、候補DB155の全ての雲IDについて以上述べた処理を実行したか否かを判断する(ステップS406)。
CPU11は、全ての雲IDについて処理を終了していないと判断した場合(ステップS406でNO)、処理をステップS391に戻す。CPU11は、全ての雲IDについて処理を終了したと判断した場合(ステップS406でYES)、ステップS407へ移行する。CPU11は、記憶部15から閾値を読み出す(ステップS407)。CPU11は、類似度が閾値以上の雲IDのみを抽出する(ステップS408)。なお、本実施形態では類似度が大きいほど類似すると判断する例を挙げたがこれに限るものではない。例えば平方根の逆数ではなく平方根を類似度として用いた場合、類似度が小さいほど類似すると判断される。
CPU11は、抽出した雲IDを最終候補DB157に記憶する(ステップS409)。CPU11は、抽出した雲IDに対応する所定時間分の後の時間の重心座標を雲DB151から読み出す(ステップS4011)。CPU11は、時間に対応する重心座標を雲IDに対応づけて、最終候補DB157に記憶する(ステップS4012)。具体的にはCPU11は、候補DB155に記憶されている時間の最終時間を読み出す。CPU11は、最終時間から所定時間数分の重心座標を雲DB151から読み出す。CPU11は、雲IDに対応づけて読み出した重心座標を、最終時間から所定時間数分の時間に対応づけて記憶する。
CPU11は、最終候補DB157を参照し、時間毎に平均座標を算出する(ステップS4013)。CPU11は、時間毎に平均座標と各雲IDの重心座標との距離の合計値を算出する(ステップS4014)。CPU11は、全ての時間帯について合計値を算出したか否かを判断する(ステップS4015)。CPU11は、全ての時間帯について合計値を算出していないと判断した場合(ステップS4015でNO)、処理をステップS4013に戻す。
CPU11は、全ての時間帯について合計値を算出したと判断した場合(ステップS4015でYES)、時間帯毎の合計値の総和をばらつき度として算出する(ステップS4016)。なお総和の平均をばらつき度としても良い。CPU11は、ばらつき度が記憶部15に記憶した閾値以下であるか否かを判断する(ステップS4017)。CPU11は、ばらつき度が閾値以下であると判断した場合(ステップS4017でYES)、処理をステップS294へ移行させる。一方、CPU11は、ばらつき度が閾値以下でないと判断した場合(ステップS4017でNO)、処理をステップS306へ移行させる。以降の処理は実施の形態1で述べたとおりであるので省略する。CPU11は、これにより風向または風速が類似する履歴に限定され、より予測精度を向上させることが可能となる。
本実施の形態2は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態3
図41は上述した形態のサーバコンピュータ1の動作を示す機能ブロック図である。CPU11が制御プログラム15Pを実行することにより、サーバコンピュータ1は以下のように動作する。算出部101は出力部26から出力された発電量に基づき、発電量が閾値以下の発電装置2が含まれる領域及び該領域内の重心座標を算出する。記憶処理部102は算出した重心座標及び記憶部15に装置IDに対応づけて記憶された重心座標に基づき、一の装置IDを抽出し、抽出した位置の装置IDを算出部101により算出した領域及び重心座標に対応づけて記憶する。読み出し部103は記憶部15に記憶した他の装置IDに対応する重心座標群を読み出す。抽出部104は記憶部15に記憶した複数の他の装置IDの過去の重心座標群と、一の装置IDの過去の重心座標群とに基づき、類似度の高い複数の他の装置IDを抽出する。基準点算出部105は抽出部104により抽出した複数の他の装置IDの重心座標群に基づき、一の装置IDに係る予測重心座標を算出する。
図42は実施の形態3に係るサーバコンピュータ1のハードウェア群を示すブロック図である。サーバコンピュータ1を動作させるためのプログラムは、ディスクドライブ等の読み取り部10AにCD-ROM、DVD(DigitalVersatile Disc)ディスク、メモリーカード、またはUSB(Universal Serial Bus)メモリ等の可搬型記録媒体1Aを読み取らせて記憶部15に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ1Bをパーソナルコンピュータ1内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網Nを介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下に、その内容を説明する。
図42に示すサーバコンピュータ1は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体1Aまたは半導体メモリ1Bから読み取り、或いは、通信網Nを介して他のサーバコンピュータ(図示せず)からダウンロードする。当該プログラムは、制御プログラム15Pとしてインストールされ、RAM12にロードして実行される。これにより、上述したサーバコンピュータ1として機能する。
本実施の形態3は以上の如きであり、その他は実施の形態1及び2と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
以上の実施の形態1乃至3を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
分散配置された複数の太陽光発電装置から取得した発電量に基づき、発電量が閾値以下の太陽光発電装置が含まれる領域及び該領域内の基準点を制御部により算出し、
算出した基準点及び領域の識別情報に対応づけて記憶部に記憶された基準点に基づき前記制御部により一の識別情報を抽出し、抽出した一の識別情報を算出した領域及び基準点に対応づけて前記記憶部に記憶し、
記憶部に記憶した他の識別情報に対応する基準点群を前記制御部により読み出し、
記憶部に記憶した複数の他の識別情報の過去の基準点群と、前記一の識別情報の過去の基準点群とに基づき、類似度の高い複数の他の識別情報を前記制御部により抽出し、
抽出した複数の他の識別情報の基準点群に基づき、前記制御部により前記一の識別情報に係る予測基準点を算出する
処理を、前記制御部を有するコンピュータに実行させるプログラム。
(付記2)
算出した予測基準点及び領域に基づき、太陽光発電装置の予測される発電量を決定する
付記1に記載のプログラム。
(付記3)
算出した基準点との距離が閾距離以内である基準点を有する一の識別情報を抽出し、抽出した一の識別情報を算出した領域及び基準点に対応づけて記憶する
付記1または2に記載のプログラム。
(付記4)
算出した基準点との距離が閾距離以内であり、かつ、算出した基準点に係る領域と類似する領域を有する一の識別情報を抽出し、抽出した一の識別情報を算出した領域及び基準点に対応づけて記憶する
付記1または2に記載のプログラム。
(付記5)
記憶部に記憶した複数の他の識別情報に係る過去の基準点群と、前記一の識別情報に係る過去の基準点群とに基づき、ユークリッド距離を算出し、算出したユークリッド距離が閾値以下の基準点群に係る複数の他の識別情報を抽出する
付記1から4のいずれか一つに記載のプログラム。
(付記6)
抽出した複数の他の識別情報に係る基準点の平均、または、最大値を持つ基準点及び最小値を持つ基準点の平均により前記一の識別情報に係る予測基準点を算出する
付記1から5のいずれか一つに記載のプログラム。
(付記7)
抽出した類似度の高い複数の他の識別情報に係る基準点のばらつき度を算出し、
算出したばらつき度が閾値以下の場合に、抽出した複数の他の識別情報に係る基準点群に基づき、前記一の領域の予測基準点を算出する
付記1から6のいずれか一つに記載のプログラム。
(付記8)
前記記憶部には識別情報と、基準点と、風向または風速とが対応づけて記憶されており、
算出した複数の識別情報に係るばらつき度が閾値を超える場合に、前記一の識別情報に対応する風向または風速と、類似度の高い風向または風速に係る他の識別情報を抽出し、
抽出した他の識別情報に係る基準点群に基づき、前記一の識別情報に係る予測基準点を算出する
付記7に記載のプログラム。
(付記9)
類似度の高い風向または風速に係る他の識別情報を複数抽出した場合に、抽出した複数の他の識別情報に係る基準点のばらつき度を算出し、
算出したばらつき度が閾値以下の場合に、抽出した他の識別情報に係る基準点群に基づき、前記一の識別情報に係る予測基準点を算出する
付記8に記載のプログラム。
(付記10)
算出したばらつき度が閾値を超える場合、前記一の識別情報の基準点と、記憶部に記憶した該一の識別情報の過去の基準点とに基づき、該一の識別情報に係る予測基準点を算出する
付記9に記載のプログラム。
(付記11)
基準点は領域の重心である
付記1から10のいずれか一つに記載のプログラム。
(付記12)
分散配置された複数の太陽光発電装置から取得した発電量に基づき、発電量が閾値以下の太陽光発電装置が含まれる領域及び該領域内の基準点を算出する算出部と、
前記算出部により算出した基準点及び領域の識別情報に対応づけて記憶部に記憶された基準点に基づき一の識別情報を抽出し、抽出した一の識別情報を前記算出部により算出した領域及び基準点に対応づけて前記記憶部に記憶する記憶処理部と、
記憶部に記憶した他の識別情報に対応する基準点群を読み出す読み出し部と、
記憶部に記憶した複数の他の識別情報の過去の基準点群と、前記一の識別情報の過去の基準点群とに基づき、類似度の高い複数の他の識別情報を抽出する抽出部と、
該抽出部により抽出した複数の他の識別情報の基準点群に基づき、前記一の識別情報に係る予測基準点を算出する基準点算出部と
を備える情報処理装置。
(付記13)
分散配置された複数の太陽光発電装置から取得した発電量に基づき、発電量が閾値以下の太陽光発電装置が含まれる領域及び該領域内の基準点を制御部により算出し、
算出した基準点及び領域の識別情報に対応づけて記憶部に記憶された基準点に基づき前記制御部により一の識別情報を抽出し、抽出した一の識別情報を算出した領域及び基準点に対応づけて前記記憶部に記憶し、
記憶部に記憶した他の識別情報に対応する基準点群を前記制御部により読み出し、
記憶部に記憶した複数の他の識別情報の過去の基準点群と、前記一の識別情報の過去の基準点群とに基づき、前記制御部により類似度の高い複数の他の識別情報を抽出し、
抽出した複数の他の識別情報の基準点群に基づき、前記制御部により前記一の識別情報に係る予測基準点を算出する
前記制御部を有する情報処理装置を用いた情報処理方法。
(付記14)
分散配置された複数の太陽光発電装置と情報処理装置とが通信網を介して接続された情報処理システムにおいて、
前記太陽光発電装置は、
発電量を前記情報処理装置へ出力する出力部を備え、
前記情報処理装置は、
前記出力部から出力された発電量に基づき、発電量が閾値以下の太陽光発電装置が含まれる領域及び該領域内の基準点を算出する算出部と、
算出した基準点及び領域の識別情報に対応づけて前記記憶部に記憶された基準点に基づき一の識別情報を抽出し、抽出した一の識別情報を前記算出部により算出した領域及び基準点に対応づけて前記記憶部に記憶する記憶処理部と、
記憶部に記憶した他の識別情報に対応する基準点群を読み出す読み出し部と、
記憶部に記憶した複数の他の識別情報の過去の基準点群と、前記一の識別情報の過去の基準点群とに基づき、類似度の高い複数の他の識別情報を抽出する抽出部と、
該抽出部により抽出した複数の他の識別情報の基準点群に基づき、前記一の識別情報に係る予測基準点を算出する基準点算出部と
を備える情報処理システム。