以下に、本願の開示する制御計画生成方法、制御計画生成装置および制御計画生成プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例1では一例として、オフィスなどのコミュニティー単位の電力需要予測を基に、ノートPC(Personal Computer)のバッテリーをオフィスの余剰電力として利用することを提案する。ノートPCのバッテリーを蓄電池として利用する。これにより、ピーク電力の削減と使用電力の平準化を目指す。
例えば、一定時間の使用電力量が閾値を越える場合には放電し、閾値を超えない場合には充電するような制御方法が考えられる。
なお、ノートPCのバッテリーには、最低限の充電量を残しておく。停電時や出張時などの電源が使えない時にも、ノートPCは動作しなければならないからである。また、充放電の繰り返しによる無駄なバッテリーの劣化は、避けるようにする。
最初に、本実施例1に係る制御システムの概要を説明する。図1は、制御システムの概略図である。制御システムは、ネットワーク50に接続されている。例えば、制御システムは、クラウド10上にあり、ネットワーク50を介してオフィス20のLAN(Local Area Network)と接続している。あるいは、制御システムは、オフィス20のLANに直接接続されている。オフィス20のLANの図示を省略する。
オフィス20のLANには、複数のノートPCが接続されている。制御システムは、ノートPCから電源モード、バッテリーの充電率等の情報を収集し、更に、ノートPCの電力にまつわる制御を行う。
制御システム、あるいは制御システムと同様にネットワークを介してノートPCと接続された予測システムが、複数の確率付きの電力需要予測を行う。ここでは、一日分の予測を想定する。制御システム又は予測システムは、ノートPCと他の電気機器による使用電力量の現在の実測値と、過去の実測値などに基づいて、確率付きの電力需要予測を行う。例えば、予測システムは、どのような従来技術を利用して、確率付きの電力需要予測を行っても良い。予測システムは、複数の電力需要予測をたてた場合には、電力需要予測毎に、係る電力需要予測となる確率を対応付ける。例えば、異なる日にちにおける実際の複数の電力需要と、電力需要予測とを比較し、電力需要予測と略一致する実際の電力需要の割合から、電力需要予測の確率を算出する。
制御システムは、この複数の確率付きの電力需要予測と現在の電力使用状況に基づいて、一日の充放電計画を立案する。充放電計画は、一日を通して繰り返し最適化される。
次に、ノートPCについて説明する。起動中のノートPCは、バッテリーの充電率と電源モードの状態を保持する。制御システム及び予測システムは、ネットワークを介して、この情報を取得する。
電源モードについて説明する。図2は、電源モードの例を示す図である。電源モードは、交流電源モードと、バッテリーモードと、チャージモードのいずれかである。以下では、交流電源モードをAC(Alternating Current)電源モードと表記する。
AC電源モードでは、ノートPCは交流電源から供給された電力を使用する。但し、AC電源モードでは、ノートPCのバッテリーの充電を行わない。従って、バッテリーの充電率は変化しない。尚、交流電源は、電力会社や自家発電システムなど、制御対象の外から供給される。例えば、AC電源モードの使用電力は13Wとなる。以下、交流電源をAC電源と表記する。
バッテリーモードでは、ノートPCはバッテリーから供給された電力を使用する。従って、AC電源から供給される電力は使用せず、バッテリーの充電率は、単調に減少する。バッテリーモードの使用電力は0Wとなる。
チャージモードでは、ノートPCはAC電源から供給された電力を使用し、更にノートPCのバッテリーの充電を行う。従って、バッテリーの充電率は、増加する。例えば、チャージモードの使用電力は65Wとなる。
図3は、ノートPC使用時の電力の変化の一例を示す図である。図3の横軸は時間を示し、縦軸は使用電力(W)を示す。図3において、AcはAC電源モードを示し、Baはバッテリーモードを示し、Chは、チャージモードを示す。チャージモードの使用電力は、AC電源モードの使用電力に比べて高い。
ノートPCは、電源モードを変更できるようになっている。例えば、電源モードはソフトウェアで制御してもよい。図4は、電源モードを制御するソフトウェアが提供する画面の例を示す図である。図4に示す画面は、充電しない時間帯とバッテリーで動作する時間帯の指定を受け付ける。ノートPCは、自動的に指定された電源モードで動作する。電源モードの切り替えのために、電源ケーブルを抜き差しせずともよい。
但し、各ノートPCのチャージモードが重複する場合、全体の使用電力は増大する。従って、制御システムにより、電源モードの全体的な制御を行うことにする。制御システムは、ユーザに代わって、各ノートPCの電源モードを切り替える。制御システムは、例えば前述のソフトウェアを介してノートPCを遠隔制御する。
次に、ノートPCのバッテリーについて説明する。バッテリーには、例えばリチウムイオン電池が使用される。過度の劣化は、避けなければならないので、電源モードを制御する際は、リチウムイオン電池の劣化にも配慮する。
リチウムイオン電池は以下の特性を持つ。リチウムイオン電池は、100%付近での充電と0%付近での放電によって、大きく劣化する。100%付近での充電を過充電とよび、0%付近での放電を過放電という。リチウムイオン電池は、放電しきらない状態で再充電を繰り返すことにより、劣化は加速しない。すなわち、リチウムイオン電池にメモリー効果はない。リチウムイオン電池は、充放電を繰り返すことによって、充電可能な容量が減少する。
バッテリーの劣化を抑えるために、注意を払い、無駄な充放電は、避けるようにする。また、100%付近での充電と0%付近での放電も避けるようにする。一方、充放電の切り替え回数については、上記の特性から配慮しないものとする。
ノートPCは持ち運びにより、ネットワークから切断され、後に再接続される。再接続までの時間や再接続された時点での充電率の予測は、困難である。そのため、短い間隔で充放電計画を見直すことが望ましい。電力需要予測と充放電計画の最適化は、例えば30分間隔で繰り返される。
また、最適化の計算の間にも、状態は変化する。従って、最適化の計算時間は、短い方が望ましい。例えば、本実施の形態では、制御システムは、1分程度で最適化の計算を終えるものとする。
夜間電力による充電ができない場合には、夜間であっても所定の終了時刻に制御を終了する。時間が経過する毎に、最適化計算の対象となる区間数が小さくなるようにしてもよい。また、翌日のピーク電力削減のために、終了時刻での充電量最大化を目的としてもよい。
充放電計画は、複数の目的関数を持つ最適化問題により導かれる。例えば、オフィス全体の一日にピーク電力を指標として算出し、その指標の最小化を目標とする。また、終了時刻でのバッテリー充電量を指標として算出し、その指標の最大化を目標とする。また、オフィスの総使用電力を指標として算出し、その指標の最小化を目標とする。
以下に各目的関数について説明する。
下記の説明において、ピーク電力P(Wh)は、オフィスにおける時刻0から時刻keまでのピーク電力を示す実数変数である。充電量の総和C(Wh)は、時刻keでのバッテリー充電量の総和を示す実数変数である。総使用電力量G(Wh)は、時刻ksからkeまでに全ノートPCがAC電源から使用する総使用電力量を示す変数である。
例えば、ピーク電力削減を最大目標とすると、ピーク電力P、充電量の総和C、総使用電力量Gの順に優先される。これらは、例えば辞書式順序で単目的化した目的関数を用いることにより、総合的に評価することができる。
辞書式順序とは、以下のように定義される。
x=(x1,...xn),y=(y1,...yn)∈Rに対して、ベクトルに対する辞書式順序≦lexは以下のように定義される。
x≦lexy <=>x=y または x≠y かつ xj<yj (j=min(j|xj≠yj)
以下、各種のパラメータについて説明する。
時刻ksにネットワークを介して観測されたノートPCを表す集合Mを下記の式で定義する。
時刻を表す集合Kを下記の式で定義する。
最適化対象となる時刻の集合Koを下記のように定義する。
最適化以前の時刻の集合Kpを以下のように定義する。
電源モードを表す集合Uを下記のように定義する。AcはAC電源モードを示し、Baはバッテリーモードを示し、Chはチャージモードを示す。
時刻k∈KoにおけるノートPCi∈Mに対する指令値(電源モード)を表す変数ui[k]を下記のように定義する。
時刻k∈KoにおけるノートPCi∈Mの電源モードを表す変数を下記のように定義する。
時刻ksにおけるノートPCi∈Mの電源モードの実測値を表す定数vi,ksを下記のように定義する。
時刻k∈K
oにおけるノートPCi∈Mの充電率を示す実数変数を
と表記する。
時刻k
sにおけるノートPCi∈Mの充電率の実測値を示す定数を
と表記する。
ノートPCi∈Mの最小充電を示す定数を
と表記する。
ノートPCi∈Mの最大充電率を示す定数を
と表記する。
ノートPCi∈Mのバッテリー容量(Wh)を表す定数を
と表記する。
オフィス全体における時刻k∈K
pからk+1までの使用電力の実測値を
と表記する。
時刻k
sに得られた、オフィスにおける時刻k∈K
oからk+1までの電力需要予測を示す定数(Wh)を
と表記する。本実施例1では、電力需要予測D
m ks[k]は、使用電力量の実測値s[k](k∈K
p)に基づき時刻毎に、複数種類予測される。ここでは、同一時間帯の各電力需要予測D
ksを区別するべく、添え字「m」を用いる。
充電率x
i[k]かつ電源モードv
i[k]のノートPCi∈Mの、時刻k+1における充電率x
i[k+1]を表す関数を
と表記する。
充電率x
i[k]かつ電源モードv
i[k]のノートPCi∈Mが、時刻kからk+1までにAC電源から使用する使用電力(Wh)を示す関数を
と表記する。
図5は、各変数の時刻毎の関係を示す図である。図5の横軸は時間を示し、縦軸は充電率を示す。一般に指令値ui[ks−1]と実測値vi,ksは一致しない。充電率に最大値および最小値が存在するのは、充電率が飽和するからである。例えば充電率は、100%以上にはならないので、時刻ks−1の時点で、電源モードChで動作していても、100%になった時点で電源モードAcに推移し、実測値vi,ksは電源モードAcになる。
また、Ac以外の電源モードでは、充電率の実測値xi,ksは、充電率の変数xi[ks]と一致しないが、同じ値として扱うものとする。
最適化開始時刻での問題は、指令値ui[k]を決定変数とする数理計画問題として定式化される。
目的関数(1a)は、辞書式順序により単目的化した目的関数である。
制約式(1b)および(1c)は、ピーク電力が、オフィス全体の使用電力の過去の実測値と、ノートPCのバッテリー制御後におけるオフィス全体の使用電力量とのうちの最大値であることを表している。制約式(1c)の電力需要予測Dks[k]は、使用電力量の実測値s[k](k∈Kp)に基づき複数種類予測され、ノートPCの使用電力量を含んでいる。このため、ノートPCに対する指令値である電源モードによる使用電力量とノートPCが電源モードAcで動作している場合を仮定した使用電力量との差の総和にてDks[k]を調整している。電力需要予測Dksは、確率付きの電力需要予測毎に生成されるため、ここでは、各電力需要予測Dksをmで区別する。
なお、電源モードBaでは、AC電源からの電力を使用しないため、使用電力量は0である。また、電源モードCh時には電源モードAc時よりも電力を多く使用するので、電源モードChによる使用電力量は、電源モードAcによる使用電力量よりも大きい。
制約式(1d)は、充電量Cが最適化終了時刻keにおけるすべてのノートPCの充電量の和であることを表している。
制約式(1e)は、総使用電力量Gが時刻ksからkeまでに全てのノートPCのAC電源から使用した電力量の和であることを表している。
制約式(1f)は、電源モードの実測値が時刻ks−1における電源モードとして設定されることを表している。
制約式(1g)は、最適化期間の各時刻では、指定した電源モードで動作することを意味する。
制約式(1h)は、充電率の実測値が最適化開始時刻の充電率に設定されることを表している。
制約式(1i)は、充電率に関する状態方程式である。なお、バッテリーから供給された電力で動作する場合には充電率は減少するためfi(xi[k],Ba)<xi[k]であり、充電時には充電率が増加するためfi(xi[k],Ch)>xi[k]である。ここでは自然放電はないものと仮定する。したがって、fi(xi[k],Ac)=xi[k]である。
制約式(1j)は、充電率の範囲を表している。そして式(A)は、充電率がxl i以下の場合には放電しないことを表し、式(B)は、充電率がxu i以上の場合には充電しないことを表す。
制約式(1k)は、過充電を避けるための制約を表す。この式は、充電率が、設定されている最大充電率xu iより10%以上下がっていない場合には充電を開始しない、ということを表している。
図6は、ノートPCの充電時及び放電時の充電率の推移を示す図である。図6の曲線60aは、充電曲線を示し、曲線60bは、放電曲線を示す。図6からわかるように、放電に費やされる時間よりも充電にかかる時間のほうが短い。このように、バッテリーを短時間で充電させるので、図2で示すように充電時(Ch)での電力使用量は大きい。
図6に示したデータを基に、充電率fiの関数を設定する。各電源モードでの使用電力量は、CPU(Central Processing Unit)使用率などに依存するが、たとえば図2のように一定値をとると仮定して、関数giも、線形関数で近似する。
上記のように、与えられた問題は、最適値を与える変数ui[k]を探索する組み合わせの最適化問題である。決定変数ui[k]は電源モードAc,Ba,及びChの3つの状態をとるため、多数の組み合わせがあり、総当たりで厳密な解を得ることは困難である。そのため、局所探索法による近似解法が現実的に有効な手段の一つである。
例えば、単純な局所探索法として、以下に示すような探索近傍が考えられる。探索空間を以下のように定義する。
また、置換は、u∈Xに含まれる任意の変数(k∈Ko,i∈Mであるui[k])を、Uの任意の要素で置き換える操作である。Xは、置換操作について閉じている。
単純な局所探索法では、u∈Xの探索近傍Nm(u)は、以下の通り定義される。
Nm(u)={v∈X|vはuをm回置換したもの}
しかし、このような単純な局所探索法は、実行可能領域において効率的に探索できないことがある。その場合に、異なる探索空間を用意し、その中で効率的に局所探索を行う方法が考えられる。以下の例では、単純な局所探索法ではなく、架空の探索空間に基づく局所探索アルゴリズムを採用する。架空の探索空間は、間接的な指令(この例では、架空の電源モード。例えば、後述する継続指令Du)を含む。間接的な指令は、直接実行することはできないが、架空の探索空間は、実行可能な領域に変換されるので、最終的に実行可能となる。
架空の探索空間のため、新たな変数u'i[k](k∈Ko,i∈M)を導入する。この変数を、未確定の指令値という。
この変数u'i[k]は、電源モードの指令値を表す変数であり、指令値として実行可能な電源モードAc,Ba及びChの他に架空の電源モードDu(Dummy)をもつ。電源モードDuは、前回の時刻での電源モードを継続することを示し、継続指令ともいう。
Duを加えた電源モード集合U'={Ac、Ba、Ch、Du}による探索空間を以下のように定義する。
以下、図1に示した制御システム(より具体的には充放電制御を実行する1又は複数のコンピュータ)内のシミュレーション部によるシミュレーション処理について説明する。なお、制御システムは、充放電制御を実行する1又は複数のコンピュータによって構成される。また、シミュレーション部を後述する図に対応させて、シミュレーション部19と表記する。
シミュレーション部19は、空間X'から空間Xへの写像も行う。シミュレーション部19は、未確定の指令値u'i[k]に基づいて、元の問題の決定変数である実行可能な指令値ui[k]および目的関数値を求める。また、シミュレーション部19は、後述するサブルーチン処理も行う。シミュレーション部19は、サブルーチン処理で、各ノートPCであるi∈Mについて、最適化期間の各時刻における使用電力量と、各時刻における実行可能な指令値ui[k]と、各時刻において想定される充電率xi[k]を求める。
サブルーチン処理において、シミュレーション部19は、制約に違反した未確定の指令値u'i[k]を受け取った場合に、実行可能な指令値に電源モードAcを設定する。電源モードAcは常に実行できるので、この設定により、シミュレーション部19は、任意の未確定の指令値u'i[k]に対して常に実行可能な解が得られるようにする。
制約に違反した未確定の指令値を受けて電源モードAcを設定することは、制御システムから受けた指令値による電源モードが制約に違反している場合に、ノートPC自身が自動的に電源モードをAcに変更する動作に相当する。実際に100%以上に充電することはできないので、図5のように電源モードChが100%に達した時点で、電源モードをAcに変更することは、理にかなう動作である。
図7は、未確定の指令値及び実行可能な指令値と充電率との関係の例を示す図である。横軸は時間軸を示し、縦軸はノートPCのバッテリーの充電率を示している。この例で、最小充電率は10%である。つまり、シミュレーション部19は、充電率が10%以下にならないように制御する。電源モードDuは、前の電源モードの継続を意味するので、シミュレーション部19は、u'i[2]=Duについて、ui[1]=Acを反復し、ui[2]=Acと設定する。また、シミュレーション部19は、u'i[4]=Duについて、ui[3]=Baを反復し、ui[4]=Baと設定する。一方、時刻5に充電率は10%に達するので、シミュレーション部19は、u'i[6]=Duについて、ui[5]=Baを反復せず、ui[6]=Acと設定する。それ以降の時刻7でも、シミュレーション部19は、u'i[7]=Baの指令に従わず、ui[7]=Acと設定する。このように、シミュレーション部19は、任意のu'∈X'から実行可能解u∈Xを生成する。
次に、具体的なシミュレーション処理について説明する。図8Aと図8Bは、シミュレーション処理のメインルーチンのフローを示す図である。シミュレーション部19は、このシミュレーション処理で、全ノートPCiについての未確定の指令値u'i[k]と電源モードの実測値vi,ksと充電率の実測値xi,ksと、更に全体の電力需要予測Dks[k]と使用電力量の実測値s[k]とを入力し、全ノートPCiについての実行可能な指令値ui[k]と目的関数値とを出力する。
まず、シミュレーション部19は、総使用電力量変数Gと充電量総和変数Cとピーク電力変数P[k]を初期化する(S101〜S105)。なお、ステップS105では、予測された複数のDm ks[k]の値が、それぞれpm[k]に入力されるものとする。図9は、目標の指標を記憶する領域の構成の例を示す図である。シミュレーション部19は、総使用電力量変数Gに0を設定し、充電量総和変数Cに0を設定し、各時刻のピーク電力変数Pm[k]に、対応する時刻の電力需要予測Dm ks[k]を設定する。図10は、電力需要予測を記憶する領域の構成の例を示す図である。
シミュレーション部19は、各ノートPCについて、S109〜S121のループ処理を繰り返す。シミュレーション部19は、S111の第一行で、実行可能な指令値を初期化する。具体的には、シミュレーション部19は、電源モードの実測値を、最適化開始時刻の一単位時間前の指令値変数に設定する。図11は、実行可能な指令値を記憶する領域の構成の例を示す図である。次に、シミュレーション部19は、S111の第二行で、充電率を初期化する。具体的には、シミュレーション部19は、最適化開始時刻の充電率の実測値を、最適化開始時刻の充電率の変数に設定する。図12は、充電率の記憶領域の構成の例を示す図である。シミュレーション部19は、S111の第三行で、ノートPC単位のシミュレーション(サブルーチン処理)を行う。この処理については、後述する。
シミュレーション部19は、S111の第四行で、前述のノートPC単位のシミュレーションにより算出された最適化期間のノートPCiの使用電力Gi(simulatePC( )の結果に含まれる)を、総使用電力量変数Gに加算する。S109〜S121のループをすべてのノートPCについて実行すると、すべてのノートPC使用電力を合算することになり、シミュレーション部19は、総使用電力量Gを算出したことになる。
シミュレーション部19は、S111の第五行で、充電量総和変数Cに最適化終了時刻のノートPCの充電量cixi[ke]を加算する。シミュレーション部19は、ノートPCiの容量に最適化終了時刻におけるそのノートPCiの充電率(simulatePC( )の結果に含まれる)を乗ずることにより、最適化終了時刻におけるそのノートPCiの充電量を求める。シミュレーション部19は、PC情報テーブルから各ノートPCの容量の情報を取得する。PC情報テーブルは、各ノートPCについてそれぞれのバッテリーの容量の情報を記憶している。
また、シミュレーション部19は、前述のノートPC単位のシミュレーション(サブルーチン処理)で、最適化終了時刻のノートPCiの充電率をすでに算出しているので、これらを用いる。シミュレーション部19は、S109〜S121のループを繰り返すことで、すべてのノートPCの最適化終了時刻の充電量を合算することになり、充電量総和Cを算出したことになる。
更に、シミュレーション部19は、最適化期間の各時刻におけるピーク電力変数Pを算出する(S113〜S119)。シミュレーション部19は、各ノートPCについて、AC電源モードで制御したと想定した場合の使用電力量から、実行可能な指令値の電源モードに従って制御したと想定した場合の使用電力量を引いた差(削減分の電力量に相当する。)を減ずることによりピーク電力を求める。このとき、シミュレーション部19は、AC電源からの使用電力量のみを算出の対象としている。また、シミュレーション部19は、充電率と電源モードに基づいて使用電力量を算出している。シミュレーション部19は、すべてのノートPCについて削減分の電力量を既に初期値として設定されているDm ks[k]から調整することにより、各時刻におけるピーク電力変数を求める。シミュレーション部19が求めたピーク電力変数は、各時間帯の全体の消費電力量を示している。
なお、シミュレーション部19は、ステップS117において、Pm[k]のmを変更しつつステップS117の矢印右側の計算を実行し、実行した各計算結果の内、計算結果が最大となる値を、P[k]に格納する。
最後に、図8bの処理に移行して、シミュレーション部19は、各時刻における使用電力量の実測値s[k]とピーク電力変数P[k]から最大値を探索する。具体的には、シミュレーション部19は、各使用電力量の実測値s[k]同士を比較して、kがks以下の場合には、それらのうちの最大値を求め(S123〜S131)、kがksより大きい場合には、その最大値に対して各ピーク電力変数も比較して、全体のうちの最大値を求める(S133〜S141)。
続いて、図13を用いてサブルーチン処理によるノートPC単位のシミュレーションについて説明する。図13は、サブルーチン処理のフローを示す図である。シミュレーション部19は、このサブルーチン処理で、一つのノートPCiについての未確定の指令値u'i[k]を入力し、未確定の指令値u'i[k]に従って動作した場合の最適化の対象となる時刻における実行可能な指令値ui[k]と最適化期間の最終時刻における充電率xi[ke]と最適化期間における使用電力量Giとを出力する。シミュレーション部19は、最適化期間の使用電力変数Giを0に初期化する(S201)。
シミュレーション部19は、更に、最適化期間の各時刻について、S205〜S227のループ処理を行う。S207では、最適化期間内の時刻における当該ノートPCiの未確定の指令値が継続指令Duであるかを判断する。各時刻における当該ノートPCiの未確定の指令値が継続指令Duである場合には(S207,Yes)、シミュレーション部19は、前回の指令値を反復して当該未確定の指令値に設定する(S209)。当該未確定の指令値が継続指令Duではない場合(S207,No)、つまり実行可能な電源モードの指令(Ac、Ba、Ch)である場合には、シミュレーション部19は指令値を変更しない。図14は、未確定の指令値を記憶する領域の構成の例を示す図である。
S211では、(1k)の制約条件及び(A)及び(B)式を満たすか否かを判断する。(1k)の制限に該当する場合には(ステップS211,Yes)、シミュレーション部19は、未確定の指令値をAcに変更する(S213)。つまり、充電率が最大値より10%以上下がっていない場合には、シミュレーション部19は、充電が行われないようにする。
そして、シミュレーション部19は、当該時刻の充電率xi[k]と未確定の指令値u'i[k](電源モード)に基づいて、次回の時刻の充電率を求める(S215)。
S217では、(1j)の制約条件を満たすか否かを判断する。(1j)の制約に該当する場合には(S217,Yes)、シミュレーション部19は、実行可能な指令値をAcに変更する(S219)。つまり、充電率が上限あるいは下限を越えている場合には、シミュレーション部19は、過放電及び過充電が生じないようにする。更に、シミュレーション部19は、当該時刻の充電率と実行可能な指令値に基づいて、次回の時刻の充電率を求める(S221)。
いずれの制限にも該当しない場合には(S217,No)、シミュレーション部19は、未確定の指令値を実行可能な指令値に設定する(S223)。
シミュレーション部19は、処理に係る時刻の充電率xi[k]と実行可能な指令値ui[k](電源モード)に従って、その単位時間における当該ノートPCの使用電力を求め、求めた使用電力量をそのノートPCのこれまでの使用電力量の変数Giに加算する(S225)。
このようにして、シミュレーション部19は、実行可能な指令値を特定するとともに、変数Gの値を総使用電力量として、変数Cの値を充電量総和として、変数Pの値をピーク電力(1単位時間における電力量)として得る。
続いて、図1に示した制御システムの置換部による局所探索処理について説明する。また、置換部を後述する図に対応させて、置換部13と表記する。置換部13は、u'∈X'に含まれる任意の指令値(k∈Ko,i∈Mであるu'i[k])をUの任意の要素に置き換える。つまり、置換部13は、一部の指令値をDu以外の実行可能な電源モードの指令(Ac、Ba、あるいはCh)のいずれかに置き換える。
u'∈X'の探索近傍N'm(u')は、以下の通り定義される。
N'm(u')={v'∈X'|v'はu'をm回置換したもの}
図15は、図1に示した制御システムにおいて局所探索を行う生成部の構成例を示す図である。生成部39は、初期化部11と、設定データ格納部12と、置換部13と、第一制御計画記憶部15と、第二制御計画記憶部17と、シミュレーション部19と、第三制御計画記憶部21と、結果記憶部23と、判定部25と、更新部27と、出力部29とを有する。
第一制御計画記憶部15と第二制御計画記憶部17は、探索空間に相当する制御計画を格納するための記憶部である。従って、第一制御計画記憶部15に格納されている第一制御計画と第二制御計画記憶部17に格納されている第二制御計画には、指令値Duが含まれる。
第三制御計画記憶部21は、実行可能な領域に相当する制御計画を格納するための記憶部である。従って、第三制御計画記憶部21に格納されている第三制御計画には、指令値Duが含まれない。
図16は、局所探索による制御計画の生成処理のフローを示す図である。初期化部11は、S301の初期化を行う。最初の指令値を制御計画に設定する。この構成例の場合には、初期化部11は、第一制御計画記憶部15と第二制御計画記憶部17に同じ制御計画を設定する。
初期化部11は、すべての最初の指令値u'i[k]に継続指令Duを設定する。初期化部11がすべての最初の指令値u'i[k]に継続指令Duを設定することは、当初何も制御しない状態を想定していることを意味する。このように、初期化部11は、局所探索の初期解にランダム解ではなく一定の解を設定する。図16中のuは、探索空間の解である。
シミュレーション部19は、S303で、初回のシミュレーション処理を行う。シミュレーション部19は、第二制御計画記憶部17から未確定の指令値u'i[k]を読み込み、前述の通りシミュレーション処理を行う。シミュレーション部19は、元となった制御計画を特定できる状態でシミュレーション結果を結果記憶部23に格納する。シミュレーション部19は、更に、生成した実行可能な指令値からなる第三制御計画を、第三制御計画記憶部21に格納する。図中のuaは、シミュレーションの結果として得られる目的関数値である。なお、シミュレーション部19は、設定データ格納部12に格納されている各種設定データを用いてシミュレーション処理を実施する。設定データには、上記で述べた関数fi及びgiのデータをも含む。さらに、シミュレーション部19は、各ノートPCからの実測値(電源モードの実測値vi,ks及び充電率の実測値xi,ks)と、予測システムから得られる複数の電力需要予測Dm ks[k]も用いる。
以下で述べる終了条件を満たさなければ(S305,No)、置換部13は、探索近傍の選択に相当する置換処理を行う(S307)。これにより、置換部13は、第一制御計画記憶部15の第一制御計画の一部を置き換えた第二制御計画を生成し、生成した第二制御計画を第二制御計画記憶部17に格納する。図16のvは、近傍から選択された解であり、第二制御計画に相当する。矢印は、近傍からの解の選択を意味している。
続いて、シミュレーション部19は、第二制御計画に基づいてシミュレーション処理を行う(S309)。シミュレーション部19は、前述と同様に、シミュレーション結果を結果記憶部23に格納する。更に、シミュレーション部19は、前述と同様に、生成した実行可能な指令値ui[k]からなる第三制御計画を、第三制御計画記憶部21に格納する。図16のvaは、近傍から選択された解についてのシミュレーションの結果として得られる目的関数値である。
続いて、判定部25は判定処理を行う(S311)。判定部25は、置換後のシミュレーション結果が置換前のシミュレーション結果に比べて目標により近い場合には、改善したと判断する。この例で、判定部25は、複数の目的を単目的化した関数値により得られた指標に基づいて、その大小比較により優劣を判断する。判定部25は、指標の最大化を目標としている場合には、置換後の指標が置換前の指標より大きい場合に改善したと判定し、指標の最小化を目標としている場合には、置換後の指標が置換前の指標より小さい場合に改善したと判定する。元の解によるシミュレーション結果の目的関数値uaと近傍の解によるシミュレーション結果の目的関数値vaを比較し、その指標が減少している場合に、改善したと判断することを意味している。
判定部25が改善したと判断した場合に、更新部27は更新処理を行なう(S313)。更新部27は、第二制御計画記憶部17の第二制御計画を、新たな第一制御計画として第一制御計画記憶部15に書き込む。また、更新部27は、第二制御計画のシミュレーション結果を、新たな第一制御計画のシミュレーション結果とするように、結果記憶部23の情報を更新する。
なお、判定部25は、制約式(1c)で求められた複数ノートPCに対する複数の電力の需要予測の時間帯毎の最大値を各時間帯のピーク電力値として、置換後のシミュレーション結果が置換前のシミュレーション結果に比べて目標により近いか否かを判定する。
生成部39は、終了条件を満たすまで、S305からS313の処理を繰り返す。生成部39は、最適化のための実行制限時間が経過したときに、終了と判断する。生成部39は、更に、探索近傍内のすべての要素に対して解が改善されない場合にも、局所最適解に陥ったものと解して終了と判断する。
処理の終了により、出力部29は、実行可能な指令値である第三制御計画を、実際に各ノートPCを制御する遠隔制御部に出力する。なお、シミュレーション結果を出力するようにしても良い。なお、シミュレーション結果には、目的関数の値だけではなく、ピーク電力P、バッテリー充電量C、総使用電力量Gのデータを含むようにしても良い。
図17は、ノートPCの制御に係る構成を示す図である。図18は、全体処理フローを示す図である。図17と図18は、それぞれ電力需要予測と実測値の測定に係る構成及び処理についても示している。制御システムは、生成部39の他に、外部の予測システムあるいは予測システムに相当する内部の予測処理部から、複数の電力需要予測の情報を取得する取得部31と、取得した電力需要予測の情報を格納する領域である電力需要予測記憶部33と、各ノートPCにおける現在の充電率や現在の電源モードを実測値として測定する測定部35と、測定した実測値を格納する領域である実測値記憶部37とを有している。
所定のタイミングによる生成処理時間に至ると(S401)、取得部31は、電力需要予測を取得し、電力需要予測記憶部33に格納する(S403)。測定部35は、ネットワークを介してノートPCが保持する情報の測定を行い、取得した実測値を実測値記憶部37に格納する(S405)。実測値には、電源モードの実測値vi,ks及び充電率の実測値xi,ksが含まれる。そして、生成部39は、前述の制御計画の生成処理を行う(S404)。
所定のタイミングによる遠隔制御処理時間に至ると(S409)、遠隔制御部41は、生成部39から得た制御計画(実行可能な指令値からなる第三制御計画)に従って、各ノートPCを遠隔制御する(S411)。つまり、遠隔制御部41は、最適化期間の各時刻において各ノートPCが実行可能な指令値に従って、そのノートPCに対して電源モードの選択を指示する。所定の最適化期間を経過すると、処理を終了する(S413)。
上述の一連の動作により、ノートPCを制御する計画の生成とその計画に基づくノートPCの制御が行われる。但し、上述の処理だけでは、対処不能の状況が考えられる。
一つには、測定部35が、ノートPCからの実測値を得られない状況が想定される。ノートPCがLANに接続されていない場合には、測定部35はそのノートPCが保持する情報を測定できないからである。例えば、ユーザがノートPCをオフィス外に持ち出しているときには、測定部35はそのノートPCが保持する情報を測定できない。このような状況では、消費電力は増えないが、充電率は低下している恐れがある。他に、ユーザがノートPCをオフィス内でLANに接続せずに使用している場合にも、測定部35はそのノートPCが保持する情報を測定できない。このような状況では、AC電力が使用されている可能性もある。
シミュレーションによる想定よりも現状が悪いという事態は、回避することが望ましい。従って、シミュレーション部19は、実測値が得られない場合には、目標に対して好ましくない状態であると仮定する。ノートPCからの実測値を得られない場合には、シミュレーション部19は、以下のように処理する。
シミュレーション部19は、電力消費の観点から電源モードはChであると仮定し、仮定した電源モードChを用いて図8AのS117と図13のS225などの消費電力の算出を行う。電源モードChは、このような状況で想定される電源モードのうち、最も消費する電力が大きいからである。
また、シミュレーション部19は、充電の観点から電源モードはBaであると仮定し、仮定した電源モードBaを用いて図13のS215などの充電率の算出を行う。このような状況で電源モードBaによりノートPCが動作している場合には、充電率が低下し、充電量が低下するからである。
また、ノートPCの使用電源を遠隔制御できない場合も想定される。例えば、ノートPCが、AC電源に接続されていない場合が考えられる。この場合に、シミュレーション部19は、電力消費の観点から電源モードはAcであると仮定する。ノートPCが現在AC電源に接続されていなくとも、すぐにAC電源に再接続される可能性があるので、シミュレーション部19はその状態を見越してAC電源により動作するときの消費電力量を用いてシミュレーションを行う。具体的には、シミュレーション部19は、仮定した電源モードAcを用いて図8AのS117と図13のS225などの消費電力の算出を行う。
また、シミュレーション部19は、充電の観点から電源モードはBaであると仮定して、仮定した電源モードBaを用いて図13のS215などの充電率の算出を行う。このような状況のもと、ノートPCがバッテリー電源を使用している可能性があるからである。
最後に、単純な局所探索法による制御の例と、本実施の形態による制御、つまり異なる架空の探索空間に基づく局所探索による制御の例を比較する。
まず、単純な局所探索法による制御の例を示す。図19は、実行可能な領域を探索空間とする場合の指令値の例を示す図である。図19では、各PCの各時間帯の指示値が示されている。図20は、実行可能な領域を探索空間とする場合の電力使用状態の例を示す図である。図21は、実行可能な領域を探索空間とする場合の制御結果の例を示す図である。
初期値は、すべて電源モードAcである。この例では、15:00の電源モードがBaに変更されないと、電力需要の予測値におけるピーク電力量は減少しない。しかし、単純な局所探索法では、直接この時刻の指令値を置換できる確率は低く、高い改善効率は望めない。
次に、異なる架空の探索空間による制御の例を示す。図22は、探索空間の写像を行なう場合の未確定の指令値の例を示す図である。図23は、探索空間の写像を行なう場合の実行可能な指令値の例を示す図である。図22、図23では、各PCの各時間帯の指示値が示されている。図24は、探索空間の写像を行なう場合の電力使用状態の例を示す図である。図25は、探索空間の写像を行なう場合の制御結果の例を示す図である。
例えば、図25に示すように、充電率が最大値から最小値まで降下するのに2時間程度かかると仮定すると、13:30〜15:00の時刻のいずれかの指令値がBaに置き換われば、15:00に生じると予想されるピーク電力量の削減が期待できる。異なる架空の探索空間による制御では、前の例に比べて有効な置換が行われる確率が高く、改善の期待は大きい。この例では、すべての指令値が継続指令Duである初期状態に対して、置換部13が14:00の一部の指令値をBaに置き換えたために、ピーク電力の削減が図られている。
次に、本実施例に係る制御システムの効果について説明する。制御システムは、複数ノートPCに対する複数の電力の需要予測の時間帯毎の最大値を各時間帯のピーク電力値として設定し、第二制御計画における複数回の第二指令に従って複数機器を制御した場合の状態遷移をシミュレーションする。そして、制御システムは、シミュレーション結果に基づき、第二制御計画による状態遷移が第一制御計画による状態遷移よりも、目標関数値が小さい場合に、第二制御計画で第一制御計画を更新する。このため、ピーク電力を削減する蓄電池の制御計画を最適化することができる。
次に、本実施例に係る制御システムのその他の処理について説明する。制御システムのシミュレーション部19は、下記に示す目的関数(2a)と、確率付きの複数の電力の需要予測と、第二制御計画を基にして目標関数値を算出し、算出した目標関数値が、今まで算出した目標関数値よりも小さい場合に、第一制御計画を第二制御計画によって更新しても良い。なお、上記実施例で示した目的関数C、Gも併用して利用しても良い。
目的関数(2a)のPmは、需要予測毎の制御前の電力のピーク値である。Qmは、需要予測毎の制御後の電力のピーク値である。例えば、制御後の電力のピーク値Qmは、第二制御計画によってピーク電力が抑えられた後の、ピーク電力に対応する。例えば、第ニ制御計画から導かれる各時刻の電力を特定し、最大となる電力をピーク電力として算出する。wmは、各需要予測の確率である。各需要予測の確率は予め指定されたものを用いても良いし、過去の電力需要の実測値の傾向から、各需要予測の確率を求めてもよい。
例えば、判定部25が、目標関数値の情報をシミュレーション部19から取得して、第二制御計画を基に算出された目標関数値が、今まで算出した目標関数値よりも小さいか否かを判定する。そして、更新部27は、判定部25によって、今まで算出した目標関数値よりも小さいと判定された場合に、第一制御計画を第二制御計画によって更新する。制御システムが上記処理を実行することによって、ピーク電力を削減する蓄電池の制御計画を最適化することができる。
次に、上記の実施例に示した制御システムの生成部39と同様の機能を実現する制御計画生成プログラムを実行するコンピュータの一例を説明する。図26は、制御計画生成プログラムを実行するコンピュータの一例を示す図である。
図26に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203を有する。また、コンピュータ200は、記憶媒体からプログラム等を読取る読み取り装置204と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置205とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207を有する。そして、各装置201〜207は、バス208に接続される。
ハードディスク装置207は、例えば、置換プログラム207a、シミュレーションプログラム207b、判定プログラム207c、更新プログラム207dを有する。CPU201は、各プログラム207a,207bを読み出してRAM206に展開する。
置換プログラム207aは置換プロセス206aとして機能する。シミュレーションプログラム207bはシミュレーションプロセス206bとして機能する。判定プログラム207cは判定プロセス206cとして機能する。更新プログラム207dは更新プロセス206dとして機能する。
例えば、置換プロセス206aは、置換部13に対応する。シミュレーションプロセス206bは、シミュレーション部19に対応する。判定プロセス206cは、判定部25に対応する。更新プロセス206dは、更新部27に対応する。
なお、各プログラム207a〜207dについては、必ずしも最初からハードディスク装置207に記憶させておかなくてもよい。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200がこれらから各プログラム207a〜207dを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)複数機器に対して間隔をおいて繰り返される複数回の制御指令を定めた第一制御計画に含まれる指令の一部を他の指令に置き換えた第二制御計画を生成し、
前記複数機器を含む所定のシステムに対する複数の電力の需要予測の時間帯毎の最大値を各時間帯のピーク電力値として設定し、前記第二制御計画における前記複数回の指令に従って前記複数機器を制御した場合の状態遷移をシミュレーションし、
シミュレーション結果に基づき、前記第二制御計画による状態遷移が前記第一制御計画による状態遷移よりも、所定の目標により近いかを判定し、
前記所定の目標により近い場合に前記第二制御計画で前記第一制御計画を更新する
処理を繰り返しコンピュータが実行し、
前記シミュレーションする処理は、前記第二制御計画に指令の継続を意味する継続指令が含まれている場合には、当該継続指令より一回前の指令による制御と同じ制御を行うことによる状態遷移を求める
制御計画生成方法。
(付記2)複数機器に対して間隔をおいて繰り返される複数回の制御指令を定めた第一制御計画に含まれる指令の一部を他の指令に置き換えた第二制御計画を生成し、
前記第二制御計画における前記複数回の指令に従って前記複数機器を制御した場合の状態遷移をシミュレーションし、
前記複数機器を含む所定のシステムに対する確率付きの複数の需要予測毎に、各需要予測の電力のピーク値と前記第二制御計画の状態遷移によって電力の抑えられたピーク値との差分を前記確率によって補正した値をそれぞれ合計した目標関数値を算出し、
前記第二制御計画を基に算出した目標関数値が以前に算出した目標関数値よりも小さい場合に前記第二制御計画で前記第一制御計画を更新する
処理を繰り返しコンピュータが実行し、
前記シミュレーションする処理は、前記第二制御計画に指令の継続を意味する継続指令が含まれている場合には、当該継続指令より一回前の指令による制御と同じ制御を行うことによる状態遷移を求める
制御計画生成方法。
(付記3)複数機器に対して間隔をおいて繰り返される複数回の制御指令を定めた第一制御計画に含まれる指令の一部を他の指令に置き換えることにより第二制御計画を生成する置換部と、
前記複数機器を含む所定のシステムに対する複数の電力の需要予測の時間帯毎の最大値を各時間帯のピーク電力値として設定し、前記第二制御計画における前記複数回の指令に従って前記複数機器を制御した場合の状態遷移をシミュレーションするシミュレーション部と、
シミュレーション結果に基づき、前記第二制御計画による状態遷移が前記第一制御計画による状態遷移よりも、所定の目標により近いかを判定する判定部と、
前記所定の目標により近い場合に前記第二制御計画で前記第一制御計画を更新する更新部と、
を有し、
前記シミュレーション部は、前記第二制御計画に指令の継続を意味する継続指令が含まれている場合には、当該継続指令より一回前の指令による制御と同じ制御を行うことによる状態遷移を求める
制御計画生成装置。
(付記4)複数機器に対して間隔をおいて繰り返される複数回の制御指令を定めた第一制御計画に含まれる指令の一部を他の指令に置き換えた第二制御計画を生成する置換部と、
前記第二制御計画における前記複数回の指令に従って前記複数機器を制御した場合の状態遷移をシミュレーションし、
前記複数機器を含む所定のシステムに対する確率付きの複数の需要予測毎に、各需要予測の電力のピーク値と前記第二制御計画の状態遷移によって電力の抑えられたピーク値との差分を前記確率によって補正した値をそれぞれ合計した目標関数値を算出するシミュレーション部と、
前記第二制御計画を基に算出した目標関数値が以前に算出した目標関数値よりも小さい場合に前記第二制御計画で前記第一制御計画を更新する更新部と
を有し、
前記シミュレーション部は、前記第二制御計画に指令の継続を意味する継続指令が含まれている場合には、当該継続指令より一回前の指令による制御と同じ制御を行うことによる状態遷移を求める
制御計画生成方法。
(付記5)コンピュータに、
複数機器に対して間隔をおいて繰り返される複数回の制御指令を定めた第一制御計画に含まれる第一指令の一部を他の指令に置き換えた第二制御計画を生成し、
前記複数機器を含む所定のシステムに対する複数の電力の需要予測の時間帯毎の最大値を各時間帯のピーク電力値として設定し、前記第二制御計画における前記複数回の指令に従って前記複数機器を制御した場合の状態遷移をシミュレーションし、
シミュレーション結果に基づき、前記第二制御計画による状態遷移が前記第一制御計画による状態遷移よりも、所定の目標により近いかを判定し、
前記所定の目標により近い場合に前記第二制御計画で前記第一制御計画を更新する
処理を繰り返し実行させ、
前記シミュレーションする処理は、前記第二制御計画に指令の継続を意味する継続指令が含まれている場合には、当該継続指令より一回前の指令による制御と同じ制御を行うことによる状態遷移を求める
制御計画生成プログラム。
(付記6)コンピュータに、
複数機器に対して間隔をおいて繰り返される複数回の制御指令を定めた第一制御計画に含まれる指令の一部を他の指令に置き換えることで第二制御計画を生成し、
前記第二制御計画における前記複数回の指令に従って前記複数機器を制御した場合の状態遷移をシミュレーションし、
前記複数機器を含む所定のシステムに対する確率付きの複数の需要予測毎に、各需要予測の電力のピーク値と前記第二制御計画の状態遷移によって電力の抑えられたピーク値との差分を前記確率によって補正した値をそれぞれ合計した目標関数値を算出し、
前記第二制御計画を基に算出した目標関数値が以前に算出した目標関数値よりも小さい場合に前記第二制御計画で前記第一制御計画を更新する
処理を繰り返し実行させ、
前記シミュレーションする処理は、前記第二制御計画に指令の継続を意味する継続指令が含まれている場合には、当該継続指令より一回前の第二指令による制御と同じ制御を行うことによる状態遷移を求める
制御計画生成プログラム。