(57)【要約】【課題】より最適な蓄電池容量を演算することができる蓄電池容量演算装置を提供する。【解決手段】蓄電池容量演算装置１において、各デマンド時限における平均使用電力に基づくデマンド値を所定期間分記憶する記憶部１２と、ピークカットの目標値を設定する目標値設定部１１２と、時系列をさかのぼりながら、各デマンド時限のデマンド値と目標値との差である差分値を加算してゆき、演算過程における加算値の最大値を検出する最大値検出部１１５と、最大値検出部１１５によって検出された最大値に基づいて、蓄電池容量を演算する容量演算部１１６とを備えた。【選択図】図１
2019017157.tif 000002
【特許請求の範囲】
【請求項１】
各デマンド時限における平均使用電力に基づくデマンド値を所定期間分記憶するデマンド記憶手段と、
ピークカットの目標値を設定する目標値設定手段と、
時系列をさかのぼりながら、前記各デマンド時限のデマンド値と前記目標値との差である差分値を加算してゆき、演算過程における加算値の最大値を検出する最大値検出手段と、
前記最大値検出手段によって検出された前記最大値に基づいて、蓄電池容量を演算する容量演算手段と、
を備えていることを特徴とする蓄電池容量演算装置。
【請求項２】
前記最大値検出手段は、前記時系列のさかのぼりにおいて、前記時系列の最初のデマンド時限に来た場合は最後のデマンド時限に戻る、
請求項１に記載の蓄電池容量演算装置。
【請求項３】
開始点を順に変更しながら、前記最大値検出手段に前記最大値を検出させ、前記開始点毎の前記最大値の中から最も大きい値を検出する繰り返し手段をさらに備え、
前記容量演算手段は、前記最大値検出手段によって検出された前記最大値に代えて、前記繰り返し手段によって検出された値に基づいて蓄電池容量を演算する、
請求項２に記載の蓄電池容量演算装置。
【請求項４】
前記デマンド値が前記目標値以上となる期間である放電期間と、前記デマンド値が前記目標値未満となる充電期間とを設定する期間設定手段をさらに備え、
前記繰り返し手段は、前記放電期間のデマンド時限のみを前記開始点とする、
請求項３に記載の蓄電池容量演算装置。
【請求項５】
前記期間設定手段は、前記所定期間の最初と最後が放電期間である場合は、これらの放電期間を合わせて１つの放電期間として設定し、前記所定期間の最初と最後が充電期間である場合は、これらの充電期間を合わせて１つの充電期間として設定し、
前記放電期間ごとに、当該放電期間に属するデマンド時限の前記各差分値を積算した放電積算値を算出し、前記充電期間ごとに、当該充電期間に属するデマンド時限の前記各差分値を積算した充電積算値を算出する積算値算出手段をさらに備え、
前記最大値検出手段は、前記各デマンド時限の差分値を加算してゆく代わりに、前記各放電期間の放電積算値、および、前記各充電期間の充電積算値を加算してゆく、
請求項４に記載の蓄電池容量演算装置。
【請求項６】
前記最大値検出手段は、前記演算過程において前記加算値が負の値になった場合は、当該加算値を「０」とする、
請求項１ないし５のいずれかに記載の蓄電池容量演算装置。
【請求項７】
前記目標値設定手段は、複数の目標値を設定し、
前記最大値検出手段は、前記目標値ごとに前記最大値を検出し、
前記容量演算手段は、前記目標値ごとに前記蓄電池容量を演算し、
前記目標値ごとに算出された蓄電池容量に基づいて、蓄電池容量を選択するための判断情報を生成する判断情報生成手段をさらに備えている、
請求項１ないし６のいずれかに記載の蓄電池容量演算装置。
【請求項８】
コンピュータを、
各デマンド時限における平均使用電力に基づくデマンド値を所定期間分記憶するデマンド記憶手段と、
ピークカットの目標値を設定する目標値設定手段と、
時系列をさかのぼりながら、前記各デマンド時限のデマンド値と前記目標値との差である差分値を加算してゆき、演算過程における加算値の最大値を検出する最大値検出手段と、
前記最大値検出手段によって検出された前記最大値に基づいて、蓄電池容量を演算する容量演算手段と、
して機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ピークカット運転を行うために必要となる蓄電池の容量を算出する蓄電池容量演算装置、および、蓄電池容量を演算するためのプログラムに関する。
【背景技術】
【０００２】
工場や家庭などの電力の需要家は、消費する電力を電力会社から購入する。電気料金には、基本料金と従量制料金とが含まれている。基本料金は、電力メーターによって例えば３０分単位の平均使用電力が記録され、その最大値（ピーク値）で決定される。ピーク値を抑制するために、平均使用電力の上限値を設定して、平均使用電力が当該上限値を超えないように、蓄電池の充放電を制御するピークカット制御が知られている。
【０００３】
ピークカット制御では、電力消費の少ない時間帯に蓄電池を充電しておき、電力消費の多い時間帯に蓄電池を放電させる。しかし、蓄電池の充電量が少ない場合、電力消費の多い時間帯での放電量が不足して、ピークカットができなくなる。蓄電池容量を十分大きくしておけば、この問題は解決するが、必要な蓄電池の購入費用が高くなるという問題がある。したがって、放電量が不足せず、かつ、蓄電池容量をできるだけ小さくするために、最適な蓄電池容量を演算することが重要である。
【０００４】
特許文献１には、各時刻において、消費電力量から太陽光発電の発電量および蓄電池の放電量を差し引いたものが電力使用量の上限値以下となり、蓄電池の一日分の放電量の合計（＝蓄電池容量）が最小となるように、線形計画問題を演算することで、蓄電池容量を算出することが記載されている。特許文献１に記載の蓄電池容量演算方法は、太陽光発電の発電量を正確に予測しないと蓄電池容量が過剰になったり不足することを問題視し、太陽光発電の発電量を正確に予測することで、最適な蓄電池容量を算出するものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５-８９１９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、当該蓄電池容量演算方法の場合、電力消費の少ない時間帯での蓄電池の充電量を考慮していないので、算出された蓄電池容量は、過剰になる傾向がある。
【０００７】
本発明は、上記した事情のもとで考え出されたものであって、より最適な蓄電池容量を演算することができる蓄電池容量演算装置を提供することを目的としている。
【課題を解決するための手段】
【０００８】
本発明の第１の側面によって提供される蓄電池容量演算装置は、各デマンド時限における平均使用電力に基づくデマンド値を所定期間分記憶するデマンド記憶手段と、ピークカットの目標値を設定する目標値設定手段と、時系列をさかのぼりながら、前記各デマンド時限のデマンド値と前記目標値との差である差分値を加算してゆき、演算過程における加算値の最大値を検出する最大値検出手段と、前記最大値検出手段によって検出された前記最大値に基づいて、蓄電池容量を演算する容量演算手段とを備えていることを特徴とする。この構成によると、最大値検出手段は、各デマンド時限のデマンド値と目標値との差を差分値として算出し、時系列をさかのぼりながら差分値を加算していく。デマンド時限のデマンド値が目標値以上となる場合、当該デマンド時限の差分値は、デマンド値を目標値に抑制しようとすると必要になる放電電力を示し、デマンド時限のデマンド値が目標値未満となる場合、当該デマンド時限の差分値は、デマンド値を目標値まで大きくすれば、可能になる充電電力（放電電力とは正負が逆の値）を示す。したがって、時系列をさかのぼりながら差分値を加算していくことで、時系列で後のデマンド時限で必要となる放電電力を、時系列で先のデマンド時限で可能になる充電電力によって打ち消すようにして加算していくことができる。蓄電池は、この加算の演算過程における加算値の最大値を放電できる必要がある。容量演算手段は、この最大値に基づいて、必要となる蓄電池容量を演算する。蓄電池容量の算出において、必要になる放電電力量を直前のデマンド時限で可能になる充電電力量によって打ち消しているので、算出された蓄電池容量が過剰になることを抑制することができ、より最適な蓄電池容量を演算することができる。
【０００９】
本発明の好ましい実施の形態においては、前記最大値検出手段は、前記時系列のさかのぼりにおいて、前記時系列の最初のデマンド時限に来た場合は最後のデマンド時限に戻る。この構成によると、時系列のさかのぼりを途中のデマンド時限から開始した場合でも、ひとまわりさせることができる。
【００１０】
本発明の好ましい実施の形態においては、開始点を順に変更しながら、前記最大値検出手段に前記最大値を検出させ、前記開始点毎の前記最大値の中から最も大きい値を検出する繰り返し手段を、前記蓄電池容量演算装置はさらに備え、前記容量演算手段は、前記最大値検出手段によって検出された前記最大値に代えて、前記繰り返し手段によって検出された値に基づいて蓄電池容量を演算する。この構成によると、順に変更させた開始点毎の最大値の中から最も大きい値を用いて蓄電池容量を演算するので、より最適な蓄電池容量を演算することができる。
【００１１】
本発明の好ましい実施の形態においては、前記蓄電池容量演算装置は、前記デマンド値が前記目標値以上となる期間である放電期間と、前記デマンド値が前記目標値未満となる充電期間とを設定する期間設定手段をさらに備え、前記繰り返し手段は、前記放電期間のデマンド時限のみを前記開始点とする。この構成によると、充電期間のデマンド時限を開始点として最大値を検出する処理を省略することができるので、演算量を削減することができる。
【００１２】
本発明の好ましい実施の形態においては、前記期間設定手段は、前記所定期間の最初と最後が放電期間である場合は、これらの放電期間を合わせて１つの放電期間として設定し、前記所定期間の最初と最後が充電期間である場合は、これらの充電期間を合わせて１つの充電期間として設定する。そして、前記放電期間ごとに、当該放電期間に属するデマンド時限の前記各差分値を積算した放電積算値を算出し、前記充電期間ごとに、当該充電期間に属するデマンド時限の前記各差分値を積算した充電積算値を算出する積算値算出手段を、前記蓄電池容量演算装置はさらに備え、前記最大値検出手段は、前記各デマンド時限の差分値を加算してゆく代わりに、前記各放電期間の放電積算値、および、前記各充電期間の充電積算値を加算してゆく。この構成によると、あらかじめ積算値を算出しておくので、デマンド時限ごとに加算を行う場合より演算量を削減することができる。
【００１３】
本発明の好ましい実施の形態においては、前記最大値検出手段は、前記演算過程において前記加算値が負の値になった場合は、当該加算値を「０」とする。この構成によると、蓄電池の充電量が負の値になるという現実ではありえない状態を回避することができる。
【００１４】
本発明の好ましい実施の形態においては、前記目標値設定手段は、複数の目標値を設定し、前記最大値検出手段は、前記目標値ごとに前記最大値を検出し、前記容量演算手段は、前記目標値ごとに前記蓄電池容量を演算し、前記蓄電池容量演算装置は、前記目標値ごとに算出された蓄電池容量に基づいて、蓄電池容量を選択するための判断情報を生成する判断情報生成手段をさらに備えている。この構成によると、蓄電池容量を選択するための判断情報を操作者に提供することができる。また、判断情報に基づいて、最適な蓄電池容量を推薦することができる。
【００１５】
本発明の第２の側面によって提供されるプログラムは、コンピュータを、各デマンド時限における平均使用電力に基づくデマンド値を所定期間分記憶するデマンド記憶手段と、ピークカットの目標値を設定する目標値設定手段と、時系列をさかのぼりながら、前記各デマンド時限のデマンド値と前記目標値との差である差分値を加算してゆき、演算過程における加算値の最大値を検出する最大値検出手段と、前記最大値検出手段によって検出された前記最大値に基づいて、蓄電池容量を演算する容量演算手段として機能させることを特徴とする。
【発明の効果】
【００１６】
本発明によると、最大値検出手段は、各デマンド時限のデマンド値と目標値との差を差分値として算出し、時系列をさかのぼりながら差分値を加算していく。デマンド時限のデマンド値が目標値以上となる場合、当該デマンド時限の差分値は、デマンド値を目標値に抑制しようとすると必要になる放電電力を示し、デマンド時限のデマンド値が目標値未満となる場合、当該デマンド時限の差分値は、デマンド値を目標値まで大きくすれば、可能になる充電電力（放電電力とは正負が逆の値）を示す。したがって、時系列をさかのぼりながら差分値を加算していくことで、時系列で後のデマンド時限で必要となる放電電力を、時系列で先のデマンド時限で可能になる充電電力によって打ち消すようにして加算していくことができる。蓄電池は、この加算の演算過程における加算値の最大値を放電できる必要がある。容量演算手段は、この最大値に基づいて、必要となる蓄電池容量を演算する。蓄電池容量の算出において、必要になる放電電力量を直前のデマンド時限で可能になる充電電力量によって打ち消しているので、算出された蓄電池容量が過剰になることを抑制することができ、より最適な蓄電池容量を演算することができる。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態に係る蓄電池容量演算装置の内部構成の一例を示す機能ブロック図である。
【図２】各デマンド時限のデマンド値に基づいて、最大放電量を検出する方法を説明するための図である。
【図３】演算結果の表示画像の一例を示す図である。
【図４】第１実施形態に係る蓄電池容量演算処理を説明するためのフローチャートの一例を示す図である。
【図５】期間設定処理を説明するためのフローチャートの一例を示す図である。
【図６】最大値検出処理を説明するためのフローチャートの一例を示す図である。
【図７】最大値検出処理の変形例を説明するためのフローチャートの一例を示す図である。
【図８】第２実施形態に係る蓄電池容量演算処理を説明するためのフローチャートの一例を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の好ましい実施の形態を、添付図面を参照して具体的に説明する。
【００１９】
第１実施形態に係る蓄電池容量演算装置１は、所定期間（例えば１日）の各デマンド時限のデマンド値に基づいて、必要になる蓄電池の容量を計算する装置である。「デマンド値」とは、所定時間（例えば、毎時ごとの０分〜３０分および３０分〜６０分の各３０分間）ごとの平均使用電力であり、「デマンド時限」とは、デマンド値を算出するための各所定時間である。蓄電池容量演算装置１は、汎用的なコンピュータに蓄電池容量演算プログラムをインストールすることで実現される。蓄電池容量演算プログラムは、後述する蓄電池容量演算処理を、制御部１１に実行させるためのプログラムである。本実施形態では、液晶画面などの表示装置、およびタッチパネルを備えたタブレット型コンピュータに蓄電池容量演算プログラムをインストールしたものを、蓄電池容量演算装置１としている。なお、蓄電池容量演算装置１は、デスクトップ型またはノート型のコンピュータに、蓄電池容量演算プログラムをインストールしたものであってもよいし、コンピュータにあらかじめ蓄電池容量演算プログラムを搭載した専用機であってもよい。
【００２０】
図１は、蓄電池容量演算装置１の内部構成の一例を示す機能ブロック図である。図１に示すように、蓄電池容量演算装置１は、制御部１１、記憶部１２、操作部１３、表示部１４、通信部１５、および、バス１６を備えている。制御部１１、記憶部１２、操作部１３、表示部１４および通信部１５は、バス１６によって相互にデータ伝送可能に接続されている。
【００２１】
蓄電池容量演算装置１は、通信回線２を介してサーバ３から蓄電池容量演算プログラムをダウンロードして、記憶部１２に読み込んでいる。なお、当該プログラムをフラッシュメモリやＣＤ−ＲＯＭなどの他の記録メディアから読み込むようにしてもよい。
【００２２】
記憶部１２は、各種情報を記憶するものである。記憶部１２は、一次記憶部としてのＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）と、二次記憶部とを備えている。ＲＯＭは、読み取り専用の記憶媒体であって、基本プログラムが記憶されている。ＲＡＭは、書き換え可能な記憶媒体であって、応用プログラムを格納するエリアとプログラムを処理するためのワークエリアとを提供する。二次記憶部は、例えばフラッシュメモリやハードディスクなどであり、ダウンロードした応用プログラムや各種データを記憶している。本実施形態では、サーバ３からダウンロードされた蓄電池容量演算プログラムが、記憶部１２の二次記憶部に記憶されている。また、後述するデマンド値データも二次記憶部に記憶されている。「記憶部１２」が、本発明の「デマンド記憶手段」に相当する。
【００２３】
操作部１３は、操作者からの操作入力を受け付けるものであり、各種操作ボタンおよびタッチパネルを備えている。操作部１３は、操作者によって操作ボタンが押下された場合に、対応する操作信号を制御部１１に入力する。また、操作部１３は、タッチパネルから入力されるタッチ情報（タッチパネルのパネル面に格子状に配置された微小コンデンサまたは微小抵抗の変化情報）に基づいてパネル面における接触位置を算出し、その接触位置の情報を操作信号として制御部１１に入力する。タッチパネルは、後述する表示装置の表示画面上に配置されている。
【００２４】
表示部１４は、例えば液晶表示装置などの表示装置を備えている。表示部１４は、制御部１１から入力される画像を表示装置に表示させる。
【００２５】
通信部１５は、通信回線２を介して、外部の装置との間で通信を行うものであり、例えば無線ＬＡＮモジュールなどの通信手段を備えている。なお、通信部１５は、無線通信を行うものに限定されず、有線通信を行うものであってもよい。本実施形態では、通信部１５は、サーバ３から蓄電池容量演算プログラムを受信している。また、デマンド値データを、他のコンピュータなどから受信している。
【００２６】
制御部１１は、蓄電池容量演算装置１が備える各部の動作を統括制御するものであり、ＣＰＵ（Central Processing Unit）によって実現されている。制御部１１は、機能ブロックとして、少なくとも、デマンド値取得部１１１、目標値設定部１１２、期間設定部１１３、積算値算出部１１４、最大値検出部１１５、容量演算部１１６、収支演算部１１７、および、表示制御部１１８を備えている。機能ブロックである各部１１１〜１１８は、制御部１１が記憶部１２に記憶された蓄電池容量演算プログラムを実行することで実現される。
【００２７】
デマンド値取得部１１１は、記憶部１２に記憶されているデマンド値データを取得する。一般的に、３０分間の平均使用電力が「デマンド値」（単位は［ｋＷ］）と呼ばれている。デマンド値データは、０：００〜０：３０、０：３０〜１：００、…、２３：３０〜２４：００（０：００）のように、それぞれ３０分間の各デマンド時限のデマンド値からなるデータである。デマンド値データは、例えば、電力会社のコンピュータからあらかじめ取得されて、記憶部１２に記憶されている。なお、デマンド値データは、通信回線２を介して読み込んでもいいし、操作者に直接入力させるようにしてもよい。また、需要家の所持するコンピュータにデマンド値が記憶されているのであれば、当該コンピュータから取得するようにすればよい。
【００２８】
図２は、各デマンド時限のデマンド値に基づいて、最大放電量を検出する方法を説明するための図である。図２（ａ）においては、デマンド値データを棒グラフで表している。図２（ａ）において、横軸は各デマンド時限を示しており、縦軸はデマンド値［ｋＷ］を示している。例えば０：００〜０：３０のデマンド時限においては、デマンド値が約１４０［ｋＷ］であることを示している。すなわち、当該デマンド時限の３０分間の平均使用電力（デマンド）が約１４０［ｋＷ］であることを示している。
【００２９】
目標値設定部１１２は、ピークカットの目標値を設定する。目標値設定部１１２は、表示部１４に目標値の入力を促す表示を行い、操作者に入力操作を促す。そして、操作者の操作によって操作部１３より入力されれる操作信号に基づいて、目標値を設定し、記憶部１２に記憶する。図２（ａ）においては、目標値として１５０［ｋＷ］が入力されたとして、目標値を示す直線Ｒｅｆを示している。なお、後述する充電率の上限値、下限値、蓄電池単価、電気料金の基本料金、および検討年数（収支を計算するための蓄電池の使用年数）なども、同様にして、操作者によって入力されて記憶部１２に記憶されている。なお、目標値設定部１１２は、複数の目標値を設定することもできる。また、目標値の上限値、下限値および刻み幅を入力させることで、下限値から刻み幅ずつ増加させた値を上限値になるまで目標値として設定するようにしてもよい。例えば、上限値を１５０［ｋＷ］、下限値を１００［ｋＷ］、刻み幅を１０［ｋＷ］とすることで、目標値として、１００［ｋＷ］、１１０［ｋＷ］、１２０［ｋＷ］、１３０［ｋＷ］、１４０［ｋＷ］、１５０［ｋＷ］を設定するようにしてもよい。
【００３０】
期間設定部１１３は、デマンド値取得部１１１が取得したデマンド値データと、目標値設定部１１２が設定した目標値とから、放電が必要な期間である放電期間と、充電が可能な期間である充電期間とを設定する。デマンド時限のデマンド値が目標値以上となる場合、当該デマンド時限において、デマンド値を目標値に抑制しようとすると放電が必要になる。また、デマンド時限のデマンド値が目標値未満となる場合、当該デマンド時限において、デマンド値を目標値まで大きくすれば、充電が可能になる。期間設定部１１３は、放電が必要になるデマンド時限が継続する期間（デマンド時限が１つだけの期間も含む）を放電期間として設定し、充電が可能になるデマンド時限が継続する期間（デマンド時限が１つだけの期間も含む）を充電期間として設定する。各充電期間および各放電期間は時系列の順に番号が付される。図２（ａ）においては、例えば４：００〜１０：００の期間において、各デマンド時限のデマンド値が目標値未満となるので、当該期間は充電期間として設定されている。また、当該期間は２番目の充電期間であると認識されていることが、「充電（２）（図においては丸の中に数字で記載している。以下同じ）」として示されている。また、期間設定部１１３は、デマンド時限の最初と最後がともに放電期間に含まれる場合、最初の放電期間と最後の放電期間とを合わせて１つの放電期間とする。また、デマンド時限の最初と最後がともに充電期間に含まれる場合、最初の充電期間と最後の充電期間とを合わせて１つの充電期間とする。本実施形態では、最後のデマンド時限の次は最初のデマンド時限に戻ると考えるので、ともに放電期間（充電期間）であれば、同じ放電期間（充電期間）内において連続していると考える。図２（ａ）においては、０：００〜１：００が最初の充電期間（充電（１））であり、２３：００〜２４：００（０：００）も充電期間なので、２３：００〜１：００を最初の充電期間（充電（１））としている。図２（ａ）においては、４つの充電期間（充電（１）〜充電（４））と、４つの放電期間（放電（１）〜放電（４））とが設定されている。
【００３１】
積算値算出部１１４は、各放電期間の放電積算値、および、各充電期間の充電積算値を算出する。放電期間に含まれるデマンド時限のデマンド値から目標値を減算した電力値は、デマンド値を目標値に抑制するために必要な電力であり、これを放電電力としている。また、充電期間に含まれるデマンド時限のデマンド値を目標値から減算した電力値は、デマンド値を目標値まで大きくした場合に充電可能な電力である。充電期間に含まれるデマンド時限のデマンド値から目標値を減算した負の値の電力値を、充電電力としている。「放電電力」および「充電電力」が、本発明の「差分値」に相当する。積算値算出部１１４は、放電期間ごとに、当該放電期間に含まれるデマンド時限の放電電力を積算した値である放電積算値を算出する。また、積算値算出部１１４は、充電期間ごとに、当該充電期間に含まれるデマンド時限の充電電力を積算した値である充電積算値を算出する。図２（ｂ）の下の段（図２（ｃ）の下の段も同じ）は、各放電期間の放電積算値、および、各充電期間の充電積算値を示している。例えば最初の放電期間（放電（１））の放電積算値は「３２０」であり、２番目の充電期間（充電（２））の充電積算値は［−３００」であることが示されている。
【００３２】
最大値検出部１１５は、時系列をさかのぼりながら、各放電期間の放電積算値、および、各充電期間の充電積算値を加算してゆき、演算過程における加算値の最大値を検出する。
【００３３】
図２（ｂ）の上の段は、４番目の放電期間（放電（４））を開始点として、時系列をさかのぼりながら、各放電期間の放電積算値および各充電期間の充電積算値を加算してゆく演算過程を示している。まず、加算値の初期値「０」に放電（４）の放電積算値「３４０」が加算されて加算値が「３４０」になっている。次に、充電（４）の充電積算値「−３２０」が加算されて加算値が「２０」になっている。次に、放電（３）の放電積算値「１６０」が加算されて加算値が「１８０」になり、充電（３）の充電積算値「−４０」が加算されて加算値が「１４０」になっている。次に、放電（２）の放電積算値「１６０」が加算されて加算値が「３００」になり、充電（２）の充電積算値「−３００」が加算されて加算値が「０」になっている。次に、放電（１）の放電積算値「３２０」が加算されて加算値が「３２０」になり、充電（１）の充電積算値「−１６０」が加算されて加算値が「１６０」になっている。この場合、演算過程における加算値の最大値は「３４０」である。
【００３４】
最大値検出部１１５は、開始点を各放電期間で変更しながらこの最大値の検出を行い、最大値の中から最も大きい値を検出する。最大値検出部１１５は、時系列をさかのぼるとき、最初の期間（放電期間または充電期間）の次は、最後の期間（充電期間または放電期間）に戻る。また、最大値検出部１１５は、演算過程において加算値が負の値になった場合は当該加算値を「０」にする。
【００３５】
図２（ｃ）の上の段は、３番目の放電期間（放電（３））を開始点として、時系列をさかのぼりながら、各放電期間の放電積算値および各充電期間の充電積算値を加算してゆく演算過程を示している。まず、加算値の初期値「０」に放電（３）の放電積算値「１６０」が加算されて加算値が「１６０」になっている。次に、充電（３）の充電積算値「−４０」が加算されて加算値が「１２０」になっている。次に、放電（２）の放電積算値「１６０」が加算されて加算値が「２８０」になり、充電（２）の充電積算値「−３００」が加算されて加算値が「−２０」になっている。このとき加算値が負の値になっているので、加算値は「０」にされている。次に、放電（１）の放電積算値「３２０」が加算されて加算値が「３２０」になり、充電（１）の充電積算値「−１６０」が加算されて加算値が「１６０」になっている。次に、放電（４）の放電積算値「３４０」が加算されて加算値が「５００」になり、充電（４）の充電積算値「−３２０」が加算されて加算値が「１８０」になっている。この場合、演算過程における加算値の最大値は「５００」である。
【００３６】
同様にして、２番目の放電期間（放電（２））を開始点とした場合の最大値は「５００」となり、１番目の放電期間（放電（１））を開始点とした場合の最大値は「５００」となる。したがって、図２（ａ）の例の場合、最大値検出部１１５は、各最大値の中から最も大きい値「５００」を検出する。この値は３０分単位の放電電力（充電電力）を積算した値なので、この値の半分の値が電力量に相当する。つまり、最大値検出部１１５が検出した値の半分の値を最大放電量とする蓄電池であれば、各放電期間において、充電量が不足することがない。「最大値検出部１１５」が、本発明の「最大値検出手段」および「繰り返し手段」に相当する。
【００３７】
容量演算部１１６は、最大値検出部１１５が検出した最も大きい値に基づいて、必要な蓄電池容量を演算する。蓄電池は、充電率（State Of Charge：ＳＯＣ）の上限値および下限値が決められており、充電率が当該上限値と下限値と間の値となる範囲でのみ、充電および放電をすることができる。蓄電池容量は、当該上限値と下限値とを考慮して決定される。蓄電池の充電率の上限値および下限値は、操作者によってあらかじめ入力されている。容量演算部１１６は、最大値検出部１１５が検出した最も大きい値の半分の値を最大放電量とする蓄電池の容量を演算する。具体的には、最大放電量を、充電率上限値と充電率下限値との差で除算した結果を、必要な蓄電池容量として算出する。例えば、最大値検出部１１５が検出した最も大きい値が「５００」で、最大放電量が２５０［ｋＷｈ］であり、充電率上限値が８０％、充電率下限値が２０％の場合、容量演算部１１６は、必要な蓄電池容量を４１６．６（＝２５０÷（０．８−０．２））［ｋＷｈ］として算出する。
【００３８】
収支演算部１１７は、容量演算部１１６で演算された蓄電池容量に基づいて、当該蓄電池容量の蓄電池を導入した場合の収支を演算する。収支演算部１１７は、演算された蓄電池容量と、あらかじめ設定されている蓄電池単価とから、当該蓄電池容量の蓄電池の購入金額を算出する。また、収支演算部１１７は、ピークカットにより削減される年間の電気料金（年間削減金額）を算出する。年間削減金額は、現在のデマンドピーク値で決定されている電気料金の基本料金と、デマンドピーク値が設定された目標値（本実施形態では目標値を電力量で設定しているので、この目標値を半分にしたデマンドにする必要がある）となった場合の電気料金の基本料金との差額に「１２」を乗算することで算出される。電気料金の基本料金はあらかじめ設定されている。電気料金の基本料金がデマンドピーク値に比例している場合は、現在のデマンドピーク値と目標値との差であるピークカット量［ｋＷ］に基本料金［円／ｋＷ］と「１２」を乗算することでも、年間削減金額を算出できる。収支演算部１１７は、年間削減金額に、あらかじめ設定されている検討年数を乗算することで、蓄電池を導入したことで削減できる電気料金（削減金額）を算出する。そして、削減金額から蓄電池の購入金額を減算することで、蓄電池を導入したことによる収支（正の値の場合は利益、負の値の場合は損失）を算出する。また、収支演算部１１７は、蓄電池の購入金額を年間削減金額で除算することで、投資回収年数を算出する。
【００３９】
目標値設定部１１２でピークカットの目標値が複数設定された場合は、目標値ごとに、期間設定部１１３による放電期間および充電期間の設定、積算値算出部１１４による放電積算値および充電積算値の算出、最大値検出部１１５による最大値の検出、容量演算部１１６による蓄電池容量の演算、および、収支演算部１１７による収支と投資回収年数の演算が行われる。これにより、目標値設定部１１２で設定された目標値ごとの蓄電池容量、収支および投資回収年数が算出される。
【００４０】
表示制御部１１８は、表示部１４の表示装置に表示させる表示画像を生成するものである。表示制御部１１８は、容量演算部１１６が算出した蓄電池容量、および、収支演算部１１７が算出した収支および投資回収年数に基づいて表示画像を生成して、表示部１４の表示装置に表示させる。また、目標値設定部１１２でピークカットの目標値が複数設定された場合は、表示制御部１１８は、目標値ごとに算出された蓄電池容量、収支および投資回収年数に基づいて、一覧表およびグラフを作成して、表示部１４の表示装置に表示させる。一覧表およびグラフは、１つの画面で表示するようにしてもよいし、操作者の操作により、一覧表を表示する画面とグラフを表示する画面とを切り替えるようにしてもよい。
【００４１】
図３（ａ）は、一覧表を表示する表示画像の一例を示す図である。図３（ａ）においては、ピークカットの目標値の代わりに、ピークカット量を用いている。図３（ａ）は、ピークカット量を０［ｋＷ］、１０［ｋＷ］、２０［ｋＷ］、３０［ｋＷ］、４０［ｋＷ］、５０［ｋＷ］とした場合に算出された各蓄電池容量に基づいて、蓄電池容量、蓄電池の購入金額（蓄電池料金）、削減金額、蓄電池を導入したことによる収支（利益）、および、投資回収年数を一覧表として表示している。なお、この例では、検討年数を２０年としている。図３（ａ）に示す一覧表によると、ピークカット量が大きくなるにつれて、蓄電池容量および蓄電池料金が大きくなっている。また、ピークカット量が大きくなるにつれて、削減金額も大きくなっている。しかし、蓄電池料金の増加傾向と削減金額の増加傾向とは異なっており、利益は、ピークカット量が大きくなるにつれて一旦は増加するが、その後減少している。図３（ａ）の場合、ピークカット量を１０［ｋＷ］（蓄電池容量を３０［ｋＷｈ］）とした場合、または、ピークカット量を２０［ｋＷ］（蓄電池容量を１１３［ｋＷｈ］）とした場合に、利益が出ることが判る。また、例えばピークカット量を１０［ｋＷ］（蓄電池容量を３０［ｋＷｈ］）とする場合は、８．３年以上使用すれば、蓄電池購入の投資を回収できることが判る。
【００４２】
図３（ｂ）は、グラフを表示する表示画像の一例を示す図である。図３（ｂ）は、図３（ａ）に示す一覧表の情報をグラフで表したものである。算出されたデータの間のデータは、例えばスプライン補完によって補完されている。なお、データの補完方法は限定されない。当該グラフにおいては、グラフａが蓄電池容量に応じた利益を示しており、グラフｂが蓄電池容量に応じたピークカット量を示しており、グラフｃが蓄電池容量に応じた投資回収年数を示している。横軸は蓄電池容量を表しており、左側の縦軸は利益を表しており、右側の縦軸はピークカット量および投資回収年数を表している。図３（ｂ）に示すグラフによると、蓄電池容量を約１５［ｋＷｈ］から約１８０［ｋＷｈ］とした場合に利益が出ること、約４０［ｋＷｈ］とした場合に利益が最大になることが判る（グラフａ参照）。また、例えば蓄電池容量を３００［ｋＷｈ］とする場合は、約２５年以上使用すれば、蓄電池購入の投資を回収できることが判る（グラフｃ参照）。
【００４３】
なお、収支演算部１１７が最も利益の高くなる蓄電池容量を判断して、表示制御部１１８が表示画像にその蓄電池容量を推薦する記載を追加するようにしてもよい。例えば、図３（ａ）の場合、蓄電池容量を３０［ｋＷｈ］とした場合に利益が最大になるので、３０［ｋＷｈ］の欄にマーカを付して表示するようにしてもよい。また、図３（ｂ）の場合、蓄電池容量を約４０［ｋＷｈ］とした場合に利益が最大になるので、該当する蓄電池容量の位置に線を追加するようにしてもよい。また、推薦する蓄電池容量を文章で記載するようにしてもよい。「収支演算部１１７」および「表示制御部１１８」が、本発明の「判断情報生成手段」に相当する。
【００４４】
次に、蓄電池容量演算処理の処理手順について、図４〜図６に示すフローチャートを参照して説明する。
【００４５】
図４は、制御部１１が行う蓄電池容量演算処理を説明するためのフローチャートの一例を示す図である。当該蓄電池容量演算処理は、例えば、メニュー画面で操作者が蓄電池容量演算を選択した場合に開始される。なお、蓄電池容量演算処理を開始する前に、デマンド値データが読み込まれて、各種設定値（ピークカットの目標値、充電率の上限値、下限値、蓄電池単価、電気料金の基本料金、および検討年数など）が設定されている必要がある。デマンド値データの読み込みや、各種設定値の設定は、操作者がメニュー画面で該当するメニューを選択して、画面の表示に従って行うようにすればよい。
【００４６】
まず、初期設定が行われる（Ｓ１）。具体的には、各変数の初期化などが行われる。次に、期間設定処理が行われる（Ｓ２）。期間設定処理は、放電期間と充電期間とを設定し、各放電期間の放電積算値、および、各充電期間の充電積算値を算出する処理である。期間設定処理の詳細については後述する。
【００４７】
次に、期間設定処理によって設定された放電期間があるか否かが判別される（Ｓ３）。放電期間がある場合（Ｓ３：ＹＥＳ）、１日の放電電力量が充電電力量より小さいか否かが判別される（Ｓ４）。当該判別は、後述する期間設定処理のステップＳ３２（図５参照）での演算結果に基づいて行われる。１日の放電電力量が充電電力量より小さい場合（Ｓ４：ＹＥＳ）、ステップＳ６に進む。ステップＳ３において、放電期間がない場合（Ｓ３：ＮＯ）、つまり、常に充電期間である場合、以降の処理を行うことができないので、処理が失敗したと判断され、エラー表示が行われて（Ｓ５）、蓄電池容量演算処理が終了する。また、ステップＳ４において、１日の放電電力量が充電電力量以上である場合（Ｓ４：ＮＯ）、蓄電池が使用するにつれ蓄電率が減少してしまうので適切でないと判断され、エラー表示が行われて（Ｓ５）、蓄電池容量演算処理が終了する。エラー表示は、処理が失敗した旨を表示するだけでもよいし、エラーの原因も併せて表示するようにしてもよい。例えば、ピークカットの目標値が大きすぎたり、小さすぎたりすることがエラーの原因であれば、ピークカットの目標値の設定を見直すように促す表示を行うようにしてもよい。なお、ステップＳ３およびＳ４以外の判別も行うようにしてもよい。
【００４８】
ステップＳ６では、最大値検出処理が行われる（Ｓ６）。最大値検出処理は、最大放電量を決定するための最大値を検出する処理である。最大値検出処理の詳細については後述する。
【００４９】
次に、必要な蓄電池容量が演算される（Ｓ７）。具体的には、容量演算部１１６によって、最大値検出処理で検出された最大値により決定された最大放電量と、あらかじめ設定されている充電率上限値および充電率下限値とから、蓄電池容量が演算される。次に、演算された蓄電池容量が適切であるかどうかの確認が行われる（Ｓ８）。具体的には、演算された蓄電池容量の蓄電池が設けられた状態でシミュレーションを行い、演算された蓄電池容量が適切かどうかを検証する。適切でない場合は、蓄電池容量の微調整が行われる。
【００５０】
次に、収支演算が行われる（Ｓ９）。具体的には、収支演算部１１７によって、蓄電池容量と、あらかじめ設定されている蓄電池単価、電気料金の基本料金、および検討年数とに基づいて、収支および投資回収年数が演算される。そして、表示制御部１１８によって、表示画像が生成され、表示部１４の表示装置に表示させて（Ｓ１０）、蓄電池容量演算処理が終了する。
【００５１】
図５は、期間設定処理を説明するためのフローチャートの一例を示す図である。当該期間設定処理は、図４に示すフローチャートのステップＳ２に示すサブルーチンである。
【００５２】
まず、変数ｋがデマンド数以下であるか否かが判別される（Ｓ２１）。デマンド数は、デマンド値データのデータ数、すなわち、デマンド時限の数である。本実施形態では、一日（２４時間）が３０分間のデマンド時限で区切られているので、デマンド数は「４８」である。変数ｋは、デマンド時限を順にたどっていくための変数であり、「１」からデマンド数「４８」まで変化する。変数ｋには、初期値として「１」が入力されている。変数ｋがデマンド数以下の場合（Ｓ２１：ＹＥＳ）、以下の期間判別処理（Ｓ２２〜Ｓ３３）が行われ、変数ｋがデマンド数より大きくなった場合（Ｓ２１：ＮＯ）、ステップＳ３４に進んで、期間まとめ処理（Ｓ３４〜Ｓ３８）が行われる。
【００５３】
期間判別処理（Ｓ２２〜Ｓ３３）においては、まず、ｋ番目のデマンド時限のデマンド値から、目標値設定部１１２で設定されたピークカットの目標値を減算した差分値が変数ｔｍｐに入力される（Ｓ２２）。次に、変数ｔｍｐが「０」以上であるか否かが判別される（Ｓ２３）。変数ｔｍｐが「０」以上である場合（Ｓ２３：ＹＥＳ）、すなわち、ｋ番目のデマンド時限のデマンド値が目標値以上の場合、ｋ番目のデマンド時限が放電期間に該当すると判断されて、ステップＳ２４に進む。
【００５４】
ステップＳ２４では、ｋが「１」であるか否かが判別される（Ｓ２４）。すなわち、最初のデマンド時限の処理であるか否かが判別される。ｋが「１」でない場合（Ｓ２４：ＮＯ）、前回の変数ｔｍｐが「０」未満であるか否かが判別される（Ｓ２５）。前回の変数ｔｍｐが「０」未満である場合（Ｓ２５：ＹＥＳ）、すなわち、（ｋ−１）番目のデマンド時限が充電期間に該当する場合、ｋ番目のデマンド時限から新たな放電期間が開始されるので、放電期間番号を示す変数ｈが「１」増加され、ｈ番目の放電期間の放電積算値を示す変数ｈ#ｓｕｍ（ｈ）に、ｋ番目のデマンド時限の放電電力を示す変数ｔｍｐが入力され（Ｓ２６）、ステップＳ３２に進む。変数ｈには、初期値として「０」が入力されている。前回の変数ｔｍｐが「０」以上の場合（Ｓ２５：ＮＯ）、すなわち、（ｋ−１）番目のデマンド時限が放電期間に該当する場合、同じ放電期間の放電積算値を示す変数ｈ#ｓｕｍ（ｈ）に、ｋ番目のデマンド時限の放電電力を示す変数ｔｍｐが加算され（Ｓ２７）、ステップＳ３２に進む。ステップＳ２４において、ｋが「１」である場合（Ｓ２４：ＹＥＳ）、最初のデマンド時限の処理なので、ステップＳ２６に進み、新たな放電期間の開始として、変数ｈが「１」増加され（初期値が「０」なので「１」になる）、変数ｈ#ｓｕｍ（１）に、１番目のデマンド時限の放電電力量を示す変数ｔｍｐが入力される。
【００５５】
ステップＳ２３において、変数ｔｍｐが「０」未満である場合（Ｓ２３：ＮＯ）、すなわち、ｋ番目のデマンド時限のデマンド値が目標値未満の場合、ｋ番目のデマンド時限が充電期間に該当すると判断されて、ステップＳ２８に進む。
【００５６】
ステップＳ２８では、ｋが「１」であるか否かが判別される（Ｓ２８）。すなわち、最初のデマンド時限の処理であるか否かが判別される。ｋが「１」でない場合（Ｓ２８：ＮＯ）、前回の変数ｔｍｐが「０」以上であるか否かが判別される（Ｓ２９）。前回の変数ｔｍｐが「０」以上である場合（Ｓ２９：ＹＥＳ）、すなわち、（ｋ−１）番目のデマンド時限が放電期間に該当する場合、ｋ番目のデマンド時限から新たな充電期間が開始されるので、充電期間番号を示す変数ｊが「１」増加され、ｊ番目の充電期間の充電積算値を示す変数ｊ#ｓｕｍ（ｊ）に、ｋ番目のデマンド時限の充電電力を示す変数ｔｍｐが入力され（Ｓ３０）、ステップＳ３２に進む。変数ｊには、初期値として「０」が入力されている。前回の変数ｔｍｐが「０」未満の場合（Ｓ２９：ＮＯ）、すなわち、（ｋ−１）番目のデマンド時限が充電期間に該当する場合、同じ充電期間の充電積算値を示す変数ｊ#ｓｕｍ（ｊ）に、ｋ番目のデマンド時限の充電電力を示す変数ｔｍｐが加算され（Ｓ３１）、ステップＳ３２に進む。ステップＳ２８において、ｋが「１」である場合（Ｓ２８：ＹＥＳ）、最初のデマンド時限の処理なので、ステップＳ３０に進み、新たな充電期間の開始として、変数ｊが「１」増加され（初期値が「０」なので「１」になる）、変数ｊ#ｓｕｍ（１）に、１番目のデマンド時限の放電電力量を示す変数ｔｍｐが入力される。
【００５７】
ステップＳ３２では、全てのデマンド時限での放電電力および充電電力を積算するための変数ｓｕｍに、変数ｔｍｐが加算される（Ｓ３２）。変数ｓｕｍには、初期値として「０」が入力されている。期間設定処理が終了したときには、変数ｓｕｍは、全てのデマンド時限での放電電力および充電電力を積算した値となっている。変数ｓｕｍが「０」より小さい場合、１日の放電電力量が充電電力量より大きいと判断できる。変数ｓｕｍの値は、蓄電池容量演算処理におけるステップＳ４（図４参照）での判別に用いられる。そして、変数ｋが１増加されて、ステップＳ２１に戻る。
【００５８】
期間まとめ処理（Ｓ３４〜Ｓ３８）においては、まず、最後の変数ｔｍｐが「０」以上であるか否かが判別される（Ｓ３４）。最後の変数ｔｍｐが「０」以上の場合（Ｓ３４：ＹＥＳ）、最初の変数ｔｍｐが「０」以上であるか否かが判別される（Ｓ３５）。最初の変数ｔｍｐも「０」以上の場合（Ｓ３５：ＹＥＳ）、最初のデマンド時限および最後のデマンド時限がともに放電期間であると判断され、最初の放電期間と最後の放電期間が１つの放電期間にまとめられて、期間設定処理が終了する。具体的には、最初の放電期間の放電積算値を示す変数ｈ#ｓｕｍ（１）に、最後の放電期間の放電積算値を示す変数ｈ#ｓｕｍ（ＬＡＳＴ）が加算され、放電期間番号を示す変数ｈが「１」減少される（Ｓ３６）。ステップＳ３５において、最初の変数ｔｍｐが「０」未満の場合は（Ｓ３５：ＮＯ）、最後のデマンド時限が放電期間であり、最初のデマンド時限が充電期間なので、放電期間のまとめ処理は行われず、期間設定処理が終了する。
【００５９】
Ｓ３４において、最後の変数ｔｍｐが「０」未満の場合（Ｓ３４：ＮＯ）、最初の変数ｔｍｐが「０」未満であるか否かが判別される（Ｓ３７）。最初の変数ｔｍｐも「０」未満の場合（Ｓ３７：ＹＥＳ）、最初のデマンド時限および最後のデマンド時限がともに充電期間であると判断され、最初の充電期間と最後の充電期間が１つの充電期間にまとめられて、期間設定処理が終了する。具体的には、最初の充電期間の充電積算値を示す変数ｊ#ｓｕｍ（１）に、最後の充電期間の充電積算値を示す変数ｊ#ｓｕｍ（ＬＡＳＴ）が加算され、充電期間番号を示す変数ｊが「１」減少される（Ｓ３８）。ステップＳ３７において、最初の変数ｔｍｐが「０」以上の場合は（Ｓ３７：ＮＯ）、最後のデマンド時限が充電期間であり、最初のデマンド時限が放電期間なので、充電期間のまとめ処理は行われず、期間設定処理が終了する。
【００６０】
図６は、最大値検出処理を説明するためのフローチャートの一例を示す図である。当該最大値検出処理は、図４に示すフローチャートのステップＳ６に示すサブルーチンである。
【００６１】
まず、変数ｉがｈ#ｍａｘ以下であるか否かが判別される（Ｓ４１）。ｈ#ｍａｘは、放電期間番号を示す変数ｈの最大値であり、放電期間の数を示している。蓄電池容量演算処理（図４参照）のステップＳ２の期間設定処理（図５参照）の終了時に、変数ｈが放電期間の数になっているので、変数ｈの値がｈ#ｍａｘとして設定される。図２に示す例では、ｈ#ｍａｘ＝４になる。変数ｉは、放電期間を順にたどっていくための変数であり、「１」からｈ#ｍａｘまで変化する。変数ｉには、初期値として「１」が設定されている。変数ｉがｈ#ｍａｘ以下である場合（Ｓ４１：ＹＥＳ）、ｉ番目の放電期間を開始点として、以下の最大値探索処理（Ｓ４２〜Ｓ５３）が行われ、変数ｉがｈ#ｍａｘより大きくなった場合（Ｓ４１：ＮＯ）、最大値検出処理が終了する。つまり、最大値検出処理は、各放電期間を順に開始点に設定しながら、最大値探索処理を行うものである。
【００６２】
最大値探索処理（Ｓ４２〜Ｓ５３）においては、まず、変数ｍに変数ｉの値が入力され、変数Ｘに「０」が入力される（Ｓ４２）。変数ｍは、放電期間および充電期間を順にたどっていくための変数であり、「１」からｈ#ｍａｘの間で変化する。変数Ｘは、放電積算値および充電積算値を積算していくための変数であり、「０」に初期化される。次に、変数Ｘにｍ番目の放電期間の放電積算値を示す変数ｈ#ｓｕｍ（ｍ）が加算される（Ｓ４３）。次に、変数Ｘが最大値Ｘ#ｍａｘより大きいか否かが判別される（Ｓ４４）。最大値Ｘ#ｍａｘは、変数Ｘの最大値を示す変数であり、初期値として「０」が設定されている。変数Ｘが最大値Ｘ#ｍａｘより大きい場合（Ｓ４４：ＹＥＳ）、最大値Ｘ#ｍａｘに変数Ｘの値が入力される（Ｓ４５）。一方、変数Ｘが最大値Ｘ#ｍａｘ以下の場合（Ｓ４４：ＮＯ）、ステップＳ４６に進む。つまり、変数Ｘにｈ#ｓｕｍ（ｍ）が加算された値が最大値Ｘ#ｍａｘより大きくなった場合、最大値Ｘ#ｍａｘを更新する。
【００６３】
次に、ステップＳ４６では、変数Ｘにｍ番目の充電期間の充電積算値を示す変数ｊ#ｓｕｍ（ｍ）が加算される（Ｓ４６）。次に、変数Ｘが「０」より小さいか否かが判別される（Ｓ４７）。変数Ｘが「０」より小さい場合（Ｓ４７：ＹＥＳ）、すなわち、変数Ｘが負の値になった場合、変数Ｘに「０」が入力される（Ｓ４８）。一方、変数Ｘが「０」以上の場合（Ｓ４７：ＮＯ）、ステップＳ４９に進む。つまり、変数Ｘにｊ#ｓｕｍ（ｍ）が加算された値が負の値になった場合、変数Ｘを「０」にする。これは、当該充電期間の開始時に蓄電池の充電量が負の値になるという現実ではありえない状態を回避するためである。
【００６４】
次に、ステップＳ４９では、変数ｍが「１」であるか否かが判別される（Ｓ４９）。変数ｍが「１」でない場合（Ｓ４９：ＮＯ）、変数ｍから「１」が減じられ（Ｓ５０）、変数ｍが「１」である場合（Ｓ４９：ＹＥＳ）、変数ｍにｈ#ｍａｘが入力される（Ｓ５１）。つまり、変数ｍが、変数ｉの値から「１」ずつさかのぼってゆき、先頭（ｍ＝１）まで来た後は最後（ｍ＝ｈ#ｍａｘ）に戻る。
【００６５】
次に、ステップＳ５２では、変数ｍと変数ｉとが等しいか否かが判別される（Ｓ５２）。変数ｍと変数ｉとが等しくない場合（Ｓ５２：ＮＯ）、ステップＳ４３に戻って、Ｓ４３〜Ｓ５２が繰り返される。一方、変数ｍと変数ｉとが等しい場合（Ｓ５２：ＹＥＳ）、変数ｍがひとまわりしたので、Ｓ４３〜Ｓ５２のループから抜け出して、変数ｉが１増加されて（Ｓ５３）、ステップＳ４１に戻る。ステップＳ４１において、変数ｉがｈ#ｍａｘより大きくなった場合（Ｓ４１：ＮＯ）、最大値検出処理が終了する。このとき、最大値Ｘ#ｍａｘは、各放電期間を開始点としたときに探索される最大値のうちの最も大きい値になっている。
【００６６】
なお、図６に示すフローチャートは、最初のデマンド時限（０：００〜０：３０）が充電期間に該当する場合のものである。最初のデマンド時限が放電期間に該当する場合は、ステップＳ４９〜Ｓ５１がステップＳ４６の前に位置するフローチャートになる。最初のデマンド時限が充電期間に該当するか放電期間に該当するかによって、用いるフローチャートを切り替えればよい。
【００６７】
なお、図４〜図６に示すフローチャートは蓄電池容量演算処理の一例であって、制御部１１が行う蓄電池容量演算処理は、これに限定されない。
【００６８】
図７は、最大値検出処理の変形例を説明するためのフローチャートの一例を示す図である。当該変形例では、変数Ｘに放電積算値および充電積算値を積算していく代わりに、各デマンド時限のデマンド値からピークカットの目標値を減算した差分値である変数ｔｍｐを積算していく。
【００６９】
まず、変数ｋがデマンド数以下であるか否かが判別される（Ｓ６１）。変数ｋは、デマンド時限を順にたどっていくための変数であり、「１」からデマンド数（例えば「４８」）まで変化する。変数ｋには、初期値として「１」が入力されている。変数ｋがデマンド数以下の場合（Ｓ６１：ＹＥＳ）、ｋ番目のデマンド時限のデマンド値からピークカットの目標値を減算した差分値が変数ｔｍｐに入力される（Ｓ６２）。次に、変数ｔｍｐが「０」以上であるか否かが判別される（Ｓ６３）。変数ｔｍｐが「０」以上である場合（Ｓ６３：ＹＥＳ）、ｋ番目のデマンド時限が放電期間に該当すると判断され、最大値探索処理（Ｓ６４〜Ｓ７４）が行われて、変数ｋが１増加されて（Ｓ７５）、ステップＳ６１に戻る。一方、変数ｔｍｐが「０」未満である場合（Ｓ６３：ＮＯ）、ｋ番目のデマンド時限が充電期間に該当すると判断されて、最大値探索処理（Ｓ６４〜Ｓ７４）が行われずに、変数ｋが１増加されて（Ｓ７５）、ステップＳ６１に戻る。これにより、放電期間のデマンド時限のみを開始点として最大値探索処理を行う（充電期間のデマンド時限を開始点とした最大探索処理を行わない）。ステップＳ６１において、変数ｋがデマンド数より大きくなった場合（Ｓ６１：ＮＯ）、最大値検出処理が終了する。つまり、当該最大値検出処理は、放電期間のデマンド時限を順に開始点に設定しながら、最大値探索処理を行うものである。
【００７０】
最大値探索処理（Ｓ６４〜Ｓ７４）においては、まず、変数ｍに変数ｋの値が入力され、変数Ｘに「０」が入力される（Ｓ６４）。変数ｍは、デマンド時限を順にたどっていくための変数であり、「１」からデマンド数の間で変化する。変数Ｘは、各デマンド時限の変数ｔｍｐを積算していくための変数であり、「０」に初期化される。次に、ｍ番目のデマンド時限のデマンド値からピークカットの目標値を減算した差分値が変数ｔｍｐに入力され（Ｓ６５）、変数Ｘに変数ｔｍｐの値が加算される（Ｓ６６）。変数Ｘが最大値Ｘ#ｍａｘより大きい場合（Ｓ６７：ＹＥＳ）には、最大値Ｘ#ｍａｘに変数Ｘの値が入力される（Ｓ６８）。次に、変数Ｘが「０」より小さい場合（Ｓ６９：ＹＥＳ）には、変数Ｘに「０」が入力される（Ｓ７０）。次に、変数ｍが「１」であるか否かが判別される（Ｓ７１）。変数ｍが「１」でない場合（Ｓ７１：ＮＯ）、変数ｍから「１」が減じられ（Ｓ７２）、変数ｍが「１」である場合（Ｓ７１：ＹＥＳ）、変数ｍにデマンド数が入力される（Ｓ７３）。ステップＳ６７〜Ｓ７３の各処理は、図６に示すフローチャートのそれぞれステップＳ４４〜Ｓ４５，Ｓ４７〜Ｓ５１と同じ処理である。
【００７１】
次に、変数ｍと変数ｉとが等しいか否かが判別される（Ｓ７４）。変数ｍと変数ｉとが等しくない場合（Ｓ７４：ＮＯ）、ステップＳ６５に戻って、Ｓ６５〜Ｓ７４が繰り返される。一方、変数ｍと変数ｉとが等しい場合（Ｓ７４：ＹＥＳ）、変数ｍがひとまわりしたので、Ｓ６５〜Ｓ７４のループから抜け出して、変数ｋが１増加されて（Ｓ７５）、ステップＳ６１に戻る。ステップＳ６１において、変数ｉがデマンド数より大きくなった場合（Ｓ６１：ＮＯ）、最大値検出処理が終了する。このとき、最大値Ｘ#ｍａｘは、放電期間の各デマンド時限を開始点としたときに探索される最大値のうちの最も大きい値になっている。
【００７２】
なお、放電期間のすべてのデマンド時限を開始点に設定するのではなく、各放電期間の最後のデマンド時限だけを開始点に設定するようにしてもよい。
【００７３】
ピークカットの目標値が複数設定されている場合は、蓄電池容量演算処理（図４参照）において、目標値ごとにステップＳ１〜Ｓ９の処理を行って、目標値ごとの蓄電池容量、収支および投資回収年数を算出すればよい。
【００７４】
次に、本実施形態に係る蓄電池容量演算装置１の作用および効果について説明する。
【００７５】
本実施形態によると、期間設定部１１３は、デマンド値取得部１１１が取得したデマンド値データと、目標値設定部１１２が設定した目標値とから、放電期間および充電期間を設定する。積算値算出部１１４は、各放電期間の放電積算値、および、各充電期間の充電積算値を算出する。そして、最大値検出部１１５は、時系列をさかのぼりながら、各放電期間の放電積算値、および、各充電期間の充電積算値を加算してゆき、演算過程における加算値の最大値を検出する。時系列をさかのぼりながら各積算値を加算していくことで、時系列で後の放電期間で必要となる放電電力の積算値である放電積算値を、時系列で先の充電期間で可能になる充電電力の積算値である充電積算値によって打ち消すようにして加算していくことができる。また、最大値検出部１１５は、開始点を各放電期間で変更しながらこの最大値の検出を行い、最大値の中から最も大きい値を検出する。そして、容量演算部１１６は、最大値検出部１１５が検出した最も大きい値に基づいて、必要な蓄電池容量を演算する。蓄電池容量の算出において、放電期間で必要になる放電電力量（放電積算値）を直前の受電期間で可能になる充電電力量（充電積算値）によって打ち消しているので、算出された蓄電池容量が過剰になることを抑制することができ、より最適な蓄電池容量を演算することができる。
【００７６】
また、本実施形態によると、目標値設定部１１２でピークカットの目標値が複数設定された場合は、目標値ごとの蓄電池容量、収支および投資回収年数が算出される。そして、表示制御部１１８は、これらの算出結果に基づいて、一覧表およびグラフを作成して、表示部１４の表示装置に表示させる。表示装置に表示された一覧表またはグラフを見ることで、操作者は、いずれの蓄電池容量とした場合に利益が出るか、投資を回収するには何年かかるかといった情報を認識することができる。これにより、操作者は、蓄電池の導入の判断や、導入する蓄電池の蓄電池容量の判断を行い易くなる。
【００７７】
なお、本実施形態では、１日分のデマンド値データを用いる場合について説明したが、これに限られない。例えば、１週間分のデマンド値データを用いるようにしてもよい。例えば工場などでは、１日の各デマンド時限のデマンドの変化が、平日と休日とでは異なる。このような場合には、例えば、月曜日の０：００から日曜日の２４：００までの１週間分のデマンド値データを用いるようにすればよい。
【００７８】
本実施形態では、まだ蓄電池を導入していない需要家に対して蓄電池を導入する場合の当該蓄電池の蓄電池容量を演算するケースについて説明している。すでに蓄電池を導入している需要家に対して最適な蓄電池容量を提案する場合は、電力会社から取得したデマンドをそのまま用いることはできない。電力会社から取得したデマンドは、現在導入されている蓄電池による充放電が行われた後のデマンドになっているので、デマンド時限ごとの蓄電池による充放電量を用いて、蓄電池による影響を排除したデマンドに変換して用いる必要がある。太陽光発電を行っている場合、太陽光発電により供給される電力の変動の影響を排除するためには、電力会社から取得したデマンドから、デマンド時限ごとの太陽光発電の発電量を削減してから用いるのが望ましい。
【００７９】
本実施形態では、蓄電池のＣレートを考慮しない場合について説明している。Ｃレートとは、蓄電池容量に対する放電（充電）電流値の比率である。本実施形態によって演算された蓄電池容量の場合、蓄電池容量としては十分であるが、蓄電池のＣレートの制限によっては、放電が間に合わない場合がある。この場合は、蓄電池容量を演算した後に、例えば図４に示すフローチャートのステップＳ８の確認処理で、Ｃレートの制限に合わせても、各デマンド時限で放電が可能となるように、蓄電池容量に微調整すればよい。
【００８０】
災害などの緊急事態が発生したときに企業が損害を最小限に抑え、事業の継続や復旧を図るための計画である事業継続計画（Business continuity planning、BCP）に基づいて、蓄電池に常に一定の電力量を残しておく場合は、残しておく電力量を考慮した充電率下限値を設定すればよい。なお、充電率下限値は百分率で設定されるので、蓄電池容量によって電力量が変化する。したがって、蓄電池容量を演算した後に、例えば図４に示すフローチャートのステップＳ８の確認処理で、所定の電力量が残せているかを検証し、不足する場合はその不足分を追加した蓄電池容量に微調整すればよい。
【００８１】
上記第１実施形態では、期間設定部１１３が放電期間および充電期間を設定し、積算値算出部１１４が各放電期間の放電積算値、および、各充電期間の充電積算値を算出する場合について説明したが、これに限られない。放電期間および充電期間を設定せずに、最大値検出手段が、各デマンド時限のデマンド値と目標値との差を差分値として算出し、時系列をさかのぼりながら差分値を加算していくようにしてもよい。この場合について、第２実施形態として、以下に説明する。
【００８２】
第２実施形態に係る蓄電池容量演算装置１’の機能ブロック図は、図１に示す蓄電池容量演算装置１の機能ブロック図において、期間設定部１１３および積算値算出部１１４を削除したものとなる。
【００８３】
第２実施形態に係る蓄電池容量演算装置１’の最大値検出部１１５は、放電積算値および充電積算値を加算してゆく代わりに、各デマンド時限のデマンド値から目標値を減算した差分値を加算していく。
【００８４】
図８は、第２実施形態に係る蓄電池容量演算処理を説明するためのフローチャートの一例を示す図である。当該蓄電池容量演算処理は、図４に示す第１実施形態に係る蓄電池容量演算処理のフローチャートにおいて、ステップＳ２〜Ｓ５を削除し、ステップＳ６を図７に示す最大値検出処理の変形例を示すフローチャート（ステップＳ６１〜Ｓ７５）としたものである。詳細な説明は省略する。
【００８５】
本実施形態においては、最大値検出部１１５は、各デマンド時限のデマンド値と目標値との差を差分値として算出し、時系列をさかのぼりながら差分値を加算してゆき、演算過程における加算値の最大値を検出する。時系列をさかのぼりながら差分値を加算していくことで、時系列で後のデマンド時限で必要となる放電電力量を、時系列で先のデマンド時限で可能になる充電電力量によって打ち消すようにして加算していくことができる。蓄電池容量の算出において、必要になる放電電力量を直前のデマンド時限で可能になる充電電力量によって打ち消しているので、算出された蓄電池容量が過剰になることを抑制することができ、より最適な蓄電池容量を演算することができる。したがって、第１実施形態と同様の効果を奏することができる。また、放電期間および充電期間を設定したり、放電積算値および充電積算値を算出する必要がない。
【００８６】
本発明に係る蓄電池容量演算装置およびプログラムは、上述した実施形態に限定されるものではない。本発明に係る蓄電池容量演算装置およびプログラムの各部の具体的な構成は、種々に設計変更自在である。
【符号の説明】
【００８７】
１，１'              ：蓄電池容量演算装置
１１                  ：制御部
１１１                ：デマンド値取得部
１１２                ：目標値設定部
１１３                ：期間設定部
１１４                ：積算値算出部
１１５                ：最大値検出部
１１６                ：容量演算部
１１７                ：収支演算部
１１８                ：表示制御部
１２                  ：記憶部
１３                  ：操作部
１４                  ：表示部
１５                  ：通信部
１６                  ：バス
２                    ：通信回線
３                    ：サーバ
【図１】
2019017157.tif 000003
【図２】
2019017157.tif 000004
【図３】
2019017157.tif 000005
【図４】
2019017157.tif 000006
【図５】
2019017157.tif 000007
【図６】
2019017157.tif 000008
【図７】
2019017157.tif 000009
【図８】
2019017157.tif 000010