(57)【特許請求の範囲】
【請求項１】
所定の期間を複数の時間帯に分割し、各時間帯において利用可能な電力を、時間帯を特定する時間帯情報と、各時間帯における各電力の評価値とともに時間帯別利用電力リストとして記憶する電力情報記憶手段と、
電力を利用して動作する１または複数の電気製品に関して、動作に要する時間及び消費電力を含む商品情報を記憶する商品情報記憶手段とを含むエネルギ管理システムにおけるエネルギ管理方法であって、
前記１または複数の電気製品は、複数の動作モードで動作可能な電気製品を含み、
前記商品情報は、前記電気製品の前記動作モードに関する情報を要素としてリストした動作リストを含み、
前記動作リストの要素の各々は、
当該要素に対応する動作モードの優先度と、
当該要素に対応する動作モードにおいて当該商品が動作するステップを時間帯毎に定義する動作ステップ時間情報とを含み、
前記動作ステップ時間情報は、
当該動作ステップ時間情報に対応する動作時間を特定する動作時間情報と、
当該動作ステップ時間情報の前記動作時間情報における動作により当該商品が消費する消費電力に関する情報とを含み、
目標優先度を最も高い優先度に設定するステップと、
時間帯ごとに、電気製品に対し、対応する前記動作リストの要素のうち、前記目標優先度と一致する優先度以上の優先度であって、当該動作リストの要素の中で最も低い優先度を持つ要素の消費電力に関する情報を用いて消費電力を算出し、時間帯ごとにその合計を計算する第１計算ステップと、
前記第１計算ステップによって、各時間帯について計算された前記消費電力の合計と、前記電力情報記憶手段に記憶された前記時間帯別利用電力リストの前記時間帯情報、前記評価値、及び前記利用可能な電力に基づいて、前記所定の期間における前記評価値の合計を計算する第２計算ステップと、
前記第２計算ステップにおいて計算された前記評価値の合計と所与の目標とを比較するステップと、
前記比較するステップにおいて、前記目標が達成されていればそのときの前記評価値の合計の計算に用いられた前記動作リストの要素にしたがって前記複数の電気製品の動作スケジュールを決定し、前記目標が達成されていなければ前記目標優先度をより低い優先度値に設定して前記第１計算ステップ以後の処理を再び実行するステップとを含む、エネルギ管理方法。
【請求項２】
前記動作リストの要素はさらに、当該要素に対応する動作モードの動作の種類を含み、当該動作モードの動作の種類は、動作する時間が固定されている固定時間、及び、動作する時間が所定の時間幅でシフト可能なシフト可能時間とを含み、
前記動作リストの要素はさらに、前記動作モードの動作の種類が前記シフト可能時間であるときには、１または複数の、対応する電気製品の動作が許容される動作可能時間情報を含み、
前記第１計算ステップは、
時間帯ごとに、電気製品に対し、対応する前記動作リストの前記動作の種類が固定時間であるものについて、当該動作リストの要素のうち、前記目標優先度と一致する優先度以上の優先度であって、当該動作リストの要素の中で最も低い優先度を持つ要素の消費電力に関する情報を用いて消費電力を算出し、時間帯ごとにその合計を計算する固定時間計算ステップと、
時間帯ごとに、電気製品に対し、対応する前記動作リストの前記動作の種類がシフト可能時間であるものについて、当該動作リストの要素のうち、前記目標優先度と一致する優先度以上の優先度であって、当該動作リストの要素の中で最も低い優先度を持つ要素の消費電力に関する情報を用いて、前記動作可能時間情報により特定される時間内で最も低い消費電力となる動作時間を決定し、時間帯ごとに消費電力の合計を計算するシフト可能時間計算ステップと、
前記時間帯ごとに、前記固定時間計算ステップで計算された前記消費電力の前記合計と、前記シフト可能時間計算ステップで計算された前記消費電力の前記合計とを合計する合計ステップとを含む、請求項１に記載のエネルギ管理方法。
【請求項３】
前記時間帯別利用電力リストは、各電力についての発電機種類をさらに含み、
前記発電機種類により表される種類は、電力の購入及び電力の販売に分類可能であり、
前記第２計算ステップでは、前記発電機種類が電力の購入を示すものか電力の販売を示すものかに応じて前記評価値を費用又は利益として扱うことを特徴とする、請求項１または請求項２に記載のエネルギ管理方法。
【請求項４】
前記発電機種類により表される発電機の種類は、蓄電池をさらに含み、
前記蓄電池の運営期間は蓄電期間と給電期間に分けられ、
前記第２計算ステップでは、前記給電期間の前記消費電力の合計の範囲内で、前記蓄電池の充電量を優先的に消費電力への給電に割当てることを特徴とする請求項３に記載のエネルギ管理方法。
【請求項５】
前記第２計算ステップでは、前記給電期間の前記消費電力の前記合計の範囲内で、前記利益が最大となるように、前記蓄電池の充電量を消費電力への給電に割当てることを特徴とする請求項４記載のエネルギ管理方法。
【請求項６】
所定の期間を複数の時間帯に分割し、各時間帯において利用可能な電力を、時間帯を特定する時間帯情報と、各時間帯における各電力の評価値とともに時間帯別利用電力リストとして記憶する電力情報記憶手段と、
電力を利用して動作する１または複数の電気製品に関して、動作に要する時間及び消費電力を含む商品情報を記憶する商品情報記憶手段とを含むエネルギ管理システムであって、
前記１または複数の電気製品は、複数の動作モードで動作可能な電気製品を含み、
前記商品情報は、前記電気製品の前記動作モードに関する情報を要素としてリストした動作リストを含み、
前記動作リストの要素の各々は、
当該要素に対応する動作モードの優先度と、
当該要素に対応する動作モードにおいて当該商品が動作するステップを時間帯毎に定義する動作ステップ時間情報とを含み、
前記動作ステップ時間情報は、
当該動作ステップ時間情報に対応する動作時間を特定する動作時間情報と、
当該動作ステップ時間情報の前記動作時間情報における動作により当該商品が消費する消費電力に関する情報とを含み、
前記エネルギ管理システムは、
目標優先度を最も高い優先度に設定する目標優先度設定手段と、
時間帯ごとに、電気製品に対し、対応する前記動作リストの要素のうち、前記目標優先度と一致する優先度以上の優先度であって、当該動作リストの要素の中で最も低い優先度を持つ要素の消費電力に関する情報を用いて消費電力を算出し、時間帯ごとにその合計を計算する第１計算手段と、
前記第１計算手段によって、各時間帯について計算された前記消費電力の合計と、前記電力情報記憶手段に記憶された前記時間帯別利用電力リストの前記時間帯情報、前記評価値、及び前記利用可能な電力に基づいて、前記所定の期間における前記評価値の合計を計算する第２計算手段と、
前記第２計算手段により計算された前記評価値の合計と所与の目標とを比較する比較手段と、
前記比較手段の比較の結果、前記目標が達成されていれば、そのときの前記評価値の合計の計算に用いられた前記動作リストの要素にしたがって前記複数の電気製品の動作スケジュールを決定する動作スケジュール決定手段と、
前記比較手段による比較において、前記目標が達成されていなければ、前記目標優先度をより低い優先度値に設定し、前記第１計算手段、前記第２計算手段、及び前記比較手段による処理を再び実行する繰返制御手段とを含む、エネルギ管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は家庭内エネルギ管理（ＨＥＭＳシステム）に関し、特に、発電装置を備えた家庭において、エネルギを効率よく利用するためのエネルギ管理技術に関する。
【背景技術】
【０００２】
低電力を達成する環境への貢献の一環として、家庭内の電気製品（いわゆる家電製品）の動作方法を改善することが考えられる。このような改善を実現するのがＨＥＭＳ（Ｈｏｍｅ  Ｅｎｅｒｇｙ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）であり、複数のアルゴリズムが提案されてきた。
【０００３】
例えば特許文献１は、電力代が高い時間に動作している機器を探して、電気代が安い時間での使用を提案する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２６１１５９
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１の技術は、機器の複数の動作設定（複数の消費電力）に対応してない。例えばエアコンの場合、温度設定を変更することにより、消費電力が変わり、電気代も変わる。機器の複数の動作設定に対応している場合、動作させる時間を変更できない機器にも対応できる。しかし、従来はそのように複数の機器について、それぞれ複数の動作設定を想定し、それら機器を連携させて効果的にエネルギを管理する技術は存在していない。
【０００６】
特許文献１は、家庭内に発電設備（例えば太陽光発電機）があった場合に対応していない。家庭内に太陽光発電機がある場合、太陽光発電機が発電した電力を家庭内で使うことだけではなく、その電力を売る（売電する）こともできる。電気を購入する際の電気代と、電気を販売する際の単価（売電単価）とは互いに異なる。そのため、機器をどのように動作させるのかにより、収入（売電＞電気代）又は支出額（売電＜電気代）も考慮することになる。従来はそのような発電設備が存在している場合を想定したエネルギ管理の技術は存在していない。
【０００７】
また、特許文献１は蓄電池に対応していない。蓄電池はエネルギを溜めることができる。したがって、例えば電気代が安い時間帯に蓄電池を充電して、電気代が高い時間に蓄電池から電気製品に給電できる。その結果、実質的に電気製品を安い費用で動作させることができる。従来はこのような蓄電池を含むシステムでのエネルギの効率的な管理技術は存在していない。したがって、蓄電池を有効に利用できるように、電気製品の動作スケジュールを設定できるようにすることが望ましい。
【０００８】
したがって本発明の目的は、複数の機器について、それぞれ複数の動作設定を想定し、それら機器を連携させて効果的にエネルギを管理するエネルギ管理方法及びシステムを提供することである。
【０００９】
本発明の他の目的は、発電設備を含む複数の機器について、それぞれ複数の動作設定を想定し、それら機器を連携させて効果的にエネルギを管理するエネルギ管理方法及びシステムを提供することである。
【００１０】
本発明のさらに他の目的は、蓄電池を含む複数の機器について、それぞれ複数の動作設定を想定し、それら機器を連携させて効果的にエネルギを管理するエネルギ管理方法及びシステムを提供することである。
【課題を解決するための手段】
【００１１】
本願の第１の局面に係るエネルギ管理方法は、所定の期間を複数の時間帯に分割し、各時間帯において利用可能な電力を、利用すべき順番と、時間帯を特定する時間帯情報と、各時間帯における各電力の評価値とともに時間帯別利用電力リストとして記憶する発電情報記憶手段と、電力を利用して動作する１又は複数の電気製品の各々に関して、動作に要する時間及び消費電力を含む商品情報を記憶する商品情報記憶手段とを含むエネルギ管理システムにおけるエネルギ管理方法である。１又は複数の電気製品の各々は、１又は複数の動作モードで動作可能である。１又は複数の電気製品の各々に関する商品情報は、１又は複数の動作モードに関する情報を要素としてリストした動作リストを含む。動作リストの要素の各々は、当該要素に対応する動作モードの優先度と、当該要素に対応する動作モードにおいて当該商品が動作するステップを時間帯毎に定義する動作ステップ時間情報とを含む。動作ステップ時間情報は、当該動作ステップ時間情報に対応する動作時間を特定する動作時間情報と、当該動作ステップ時間情報の動作時間情報における動作により当該商品が消費する電力の評価値とを含む。このエネルギ管理方法は、目標優先度を最も高い優先度に設定するステップと、時間帯ごとに、各電気製品に対し、対応する動作リストの要素のうち、目標優先度と一致する優先度以上の優先度であって、当該動作リストの要素の中で最も低い優先度を持つ要素の情報を用いて消費電力を算出し、時間帯ごとにその合計を計算する第１計算ステップと、第１計算ステップによって、各時間帯について計算された消費電力の合計と、発電情報の時間帯別利用電力リストの時間帯情報、評価値、及び利用可能な容量に基づいて、所定の期間における評価値の合計を計算する第２計算ステップと、第２計算ステップにおいて計算された評価値の合計と所与の目標とを比較するステップと、比較するステップにおいて、目標が達成されていれば、そのときの評価値の合計の計算に用いられた動作リストの要素にしたがって１又は複数の電気製品の動作スケジュールを決定するステップと、比較するステップにおいて、目標が達成されていなければ、目標優先度をより低い優先度値に設定し、第１計算ステップ以後の処理を再び実行するステップとを含む。
【００１２】
この方法によれば、１つの商品に対して複数の動作設定を動作リストの要素として定義できる。動作設定毎に、その時間帯別の消費電力と優先度とを設定できる。よって、商品の動作に関する複数の選択肢から、優先度にしたがって目標にあった動作設定を選択できる。
【００１３】
１つの商品に複数の設定がある場合、高い優先度は消費電力が高いものとする。上記のように、優先度の高い動作設定から選択して、全体の利用合計消費電力と利用合計評価値を計算する。評価値は例えば電気代の単価、又はＣＯ２排出量の単価であってもよいがこの二つに制限する必要はない。利用合計評価値が目標値を達成したら、目標に合った動作設定を出力する。なお、優先度がユーザの好みであった場合、目標とユーザの好みを考慮した動作設定が結果となる。
【００１４】
好ましくは、動作リストの要素の各々はさらに、当該要素に対応する動作モードの動作の種類を含む。当該動作モードの動作の種類は、動作する時間が固定されている固定時間、及び、動作する時間が所定の時間幅でシフト可能なシフト可能時間とを含む。動作リストの要素の各々はさらに、動作モードの動作の種類がシフト可能時間であるときには、１又は複数の、対応する電気製品の動作が許容される動作可能時間情報を含む。第１計算ステップは、時間帯ごとに、各電気製品のうち、対応する動作リストの動作の種類が固定時間であるものについて、当該動作リストの要素のうち、目標優先度と一致する優先度以上の優先度であって、当該動作リストの要素の中で最も低い優先度を持つ要素の情報を用いて消費電力を算出し、時間帯ごとにその合計を計算する固定時間計算ステップと、時間帯ごとに、各電気製品のうち、対応する動作リストの動作の種類がシフト可能時間であるものについて、当該動作リストの要素のうち、目標優先度と一致する優先度以上の優先度であって、当該動作リストの要素の中で最も低い優先度を持つ要素の情報を用いて、動作可能時間情報により特定される時間内で最も低い消費電力となる動作時間を決定し、時間帯ごとに消費電力の合計を計算するシフト可能時間計算ステップと、時間帯ごとに、固定時間計算ステップで計算された消費電力の合計と、シフト可能時間計算ステップで計算された消費電力の合計とを合計する合計ステップとを含む。
【００１５】
例えば評価値が電気代の場合、優先度と電気代とを組合わせた動作設定を出力できる。
【００１６】
より好ましくは、時間帯別利用電力リストは、各電力についての利用可能な容量をさらに含む。エネルギ管理方法は、第１計算ステップでは、時間帯別利用電力リストの、各電力についての利用可能な容量の範囲内に各電力の利用量を制限して各電気製品の消費電力を計算し、その合計を求める。
【００１７】
１つの時間帯で、電力範囲により複数の評価値に対応できる。これは例えば、ある電力以上使った場合、電気代（評価値）をより高く設定した場合等である。この一例として、米国で用いられるＤｅｍａｎｄ  Ｒｅｓｐｏｎｓｅがある。
【００１８】
さらに好ましくは、時間帯別利用電力リストは、各電力についての発電機種類をさらに含む。発電機種類により表される種類は、電力の購入及び電力の販売に分類可能である。エネルギ管理方法は、第２計算ステップでは、発電機種類が電力の購入を示すものか電力の販売を示すものかに応じて評価値を費用又は利益として扱うことを特徴とする。
【００１９】
この構成により、家庭内の発電機にも対応できる。費用は電気代としてもよい。利益は、太陽光発電の場合、売電としてもよい。ガスで発電した電力を売ることができる場合、利益は、売電  ―  使ったガスの単価としても良い。評価値はＣＯ２排出の単価であってもよい。評価値が電気の価格の場合、例えば正の場合に電気代を表し、負の場合は利益を表すものとしても良い。
【００２０】
発電機種類により表される発電機の種類は、蓄電池をさらに含んでもよい。蓄電池の運営期間は蓄電期間と給電期間に分けられる。エネルギ管理方法は、第１計算ステップでは、給電期間の消費電力の合計の範囲内で、蓄電池の充電量を優先的に消費電力への給電に割当てることを特徴とする。
【００２１】
この構成により、評価値と消費電力量に応じて蓄電池に充電された電力を給電できる。評価値が電気代の場合、電気代が安い期間を蓄電期間とし、電気代が高い期間を給電期間とすることができる。同様に評価値がＣＯ２の排出量の場合、排出量が少ない期間を蓄電期間とし、排出量が高い期間を給電期間とすることができる。
【００２２】
さらに好ましくは、エネルギ管理方法は、第２計算ステップでは、給電期間の消費電力の合計の範囲内で、利益が最大となるように、蓄電池の充電量を消費電力への給電に割当てることを特徴とする。
【００２３】
例えば太陽光パネルの電力を売電している場合、売電の利益に応じて蓄電池に充電された電力を給電できる。例えば太陽光パネルが発電していない時間は、蓄電池からは給電しないようにすることができ、太陽光パネルが発電している時間は、蓄電池から電力を利用するようにすることにより、太陽光パネルが発電した電力をより多く売電できる。特に太陽光パネルなど、システム内で発電した電力を売る場合の単価が電力の購入単価より高い場合に有効である。
【００２４】
本発明の他の局面に係るエネルギ管理システムは、所定の期間を複数の時間帯に分割し、各時間帯において利用可能な電力を、利用すべき順番と、時間帯を特定する時間帯情報と、各時間帯における各電力の評価値とともに時間帯別利用電力リストとして記憶する発電情報記憶手段と、電力を利用して動作する１又は複数の電気製品の各々に関して、動作に要する時間及び消費電力を含む商品情報を記憶する商品情報記憶手段とを含むエネルギ管理システムである。１又は複数の電気製品の各々は、１又は複数の動作モードで動作可能である。１又は複数の電気製品の各々に関する商品情報は、１又は複数の動作モードに関する情報を要素としてリストした動作リストを含む。動作リストの要素の各々は、当該要素に対応する動作モードの優先度と、当該要素に対応する動作モードにおいて当該商品が動作するステップを時間帯毎に定義する動作ステップ時間情報とを含む。動作ステップ時間情報は、当該動作ステップ時間情報に対応する動作時間を特定する動作時間情報と、当該動作ステップ時間情報の動作時間情報における動作により当該商品が消費する電力の評価値とを含む。エネルギ管理システムはさらに、目標優先度を最も高い優先度に設定する目標優先度設定手段と、時間帯ごとに、各電気製品に対し、対応する動作リストの要素のうち、目標優先度と一致する優先度以上の優先度であって、当該動作リストの要素の中で最も低い優先度を持つ要素の情報を用いて消費電力を算出し、時間帯ごとにその合計を計算する第１計算手段と、第１計算手段によって、各時間帯について計算された消費電力の合計と、発電情報の時間帯別利用電力リストの時間帯情報、評価値、及び利用可能な容量に基づいて、所定の期間における評価値の合計を計算する第２計算手段と、第２計算手段により計算された評価値の合計と所与の目標とを比較する比較手段と、比較手段の比較の結果、目標が達成されていれば、そのときの評価値の合計の計算に用いられた動作リストの要素にしたがって１又は複数の電気製品の動作スケジュールを決定する動作スケジュール決定手段と、比較手段による比較において、目標が達成されていなければ、目標優先度をより低い優先度値に設定し、第１計算ステップ以後の処理を再び実行する繰返制御手段とを含む。
【発明の効果】
【００２５】
以上のように本発明によれば、１つの商品に対して複数の動作設定を動作リストの要素として定義できる。動作設定毎に、その時間帯別の消費電力と優先度とを設定できる。よって、商品の動作に関する複数の選択肢から、優先度にしたがって目標にあった動作設定を選択できる。例えば評価値が電気代の場合、優先度と電気代とを組合わせた動作設定を出力でき、さらに、１つの時間帯で、電力範囲により複数の評価値に対応できる。その結果、複数の機器について、それぞれ複数の動作設定を想定し、それら機器を連携させて効果的にエネルギを管理するエネルギ管理方法及びシステムを提供できる。
【００２６】
家庭内の発電機にも対応できる。システムに蓄電池を含む場合、電力の評価値と消費電力量に応じて蓄電池に充電された電力を給電できる。太陽光パネルの電力を売電している場合、売電の利益に応じて蓄電池に充電された電力を給電でき、太陽光パネルの電力を有効に活かし、システム全体の電力費用をおさえたり、利益を大きくしたりすることができる。その結果、本発明によれば、発電設備を含む複数の機器について、それぞれ複数の動作設定を想定し、それら機器を連携させて効果的にエネルギを管理するエネルギ管理方法及びシステムを提供することができる。
【００２７】
蓄電池を含むシステムでは、上記した構成により、評価値と消費電力量に応じて蓄電池に充電された電力を給電できる。評価値が電気代の場合、電気代が安い期間を蓄電期間とし、電気代が高い期間を給電期間とすることができる。同様に評価値がＣＯ２の排出量の場合、排出量が少ない期間を蓄電期間とし、排出量が高い期間を給電期間とすることができる。その結果、蓄電池を含む複数の機器について、それぞれ複数の動作設定を想定し、それら機器を連携させて効果的にエネルギを管理するエネルギ管理方法及びシステムを提供することができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の１実施の形態に係るエネルギ管理環境を模式的に示す図である。
【図２】図１に示すＨＥＭＳのブロック図である。
【図３】図２に示すスケジューラ部のブロック図である。
【図４】時間軸リストを模式的に示す図である。
【図５】電力軸リストを模式的に示すずである。
【図６】時間軸リストと電力軸リストとの組合せにより時間による電力消費設定の２次元グラフを展開した図である。
【図７】商品整理情報のリストの構成を示す図である。
【図８】スマートメータリストの構成を示す図である。
【図９】分電盤スイッチリストの構成を示す図である。
【図１０】商品リストの構成を示す図である。
【図１１】動作リストの構成を示す図である。
【図１２】動作ステップリストの構成を示す図である。
【図１３】動作可能時間リストの構成を示す図である。
【図１４】商品整理情報のリストを時間軸上に展開した図である。
【図１５】商品整理情報のうち、固定時間によるリストの詳細を示す図である。
【図１６】商品整理情報のうち、シフト可能時間によるリストの詳細を示す図である。
【図１７】商品整理情報を優先度順に整理して表形式で示す図である。
【図１８】消費電力リストの構成を示す図である。
【図１９】消費電力リストに表される電力消費の経過例を示す図である。
【図２０】スケジュールアルゴリズム部を実現するコンピュータプログラムの制御構造を示すフローチャートである。
【図２１】優先度を順番に変更して計算を繰返した結果、スケジュールとして選択された動作リスト要素の結果を示す図である。
【図２２】図２０に示すコンピュータプログラムにより実現される処理で得られるスケジュールの事例を模式的に示す図である。
【図２３】図２０に示すコンピュータプログラムの制御構造の詳細を示すフローチャートである。
【図２４】２つの動作リスト要素に関係する消費電力の変化を示す図である。
【図２５】図２３に制御構造を示すフローチャートの一部である時間シフト計算処理のより詳細なフローチャートを示す。
【図２６】電力計算処理の詳細を示すフローチャートである。
【図２７】蓄電池の効果の事例を示す図である。
【図２８】蓄電池の効果の事例を示す図である。
【図２９】蓄電池の効果の事例を示す図である。
【図３０】蓄電池の効果の事例を示す図である。
【図３１】蓄電池の割当を決定する全検索アルゴリズムを説明するための図である。
【図３２】全検索アルゴリズムによる蓄電池の割当方法を実現するプログラムの制御構造を示すフローチャートである。
【図３３】図３２に示す蓄電池割当処理を実現するプログラムの制御構造を示すフローチャートである。
【図３４】図６に示す事例から蓄電池をのぞいたときの、時間による電力消費設定の２次元グラフを展開した図である。
【図３５】電気製品間の依存関係の例を示す図である。
【発明を実施するための形態】
【００２９】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【００３０】
図１は家庭内エネルギ管理を行なうＨＥＭＳ１１０を用いた家庭のエネルギ管理環境１００の一例である。エネルギ管理環境１００は、ＨＥＭＳ１１０と、ＨＥＭＳ１１０に接続された、家庭内で電力を発電する機器の情報をＨＥＭＳ１１０に中継するパワコン１１６と、ＨＥＭＳ１１０及び外部の電力会社１０２に接続され、通常の電気メータの機能（家庭内利用電力の測定等）に加え、電力会社１０２からの例えば電気代関連情報をＨＥＭＳ１１０と中継するスマートメータ１１８と、１又は複数の家電製品からなる商品１２２とを含む。ＨＥＭＳ１１０はインターネットゲートウェイ（ＧＷ）１２０に接続されている。なお、図１において、これらの接続は情報系の信号線の接続であり、電力系の信号線は示していない。また、本実施の形態のＨＥＭＳ１１０は１例であり、図１の構成である必要はない。
【００３１】
図１の事例では、エネルギ管理環境１００は、発電機器として太陽光パネル１１２と蓄電池１１４とを含み、これらはいずれもパワーコントローラ（以下「パワコン」と呼ぶ。）１１６に接続され、電力に関連する情報をパワコン１１６に与える。太陽光パネル１１２と蓄電池１１４の情報は、パワコン１１６を通さず直接にＨＥＭＳ１１０に入力しても良い。
【００３２】
スマートメータ１１８が電力会社１０２からＨＥＭＳ１１０に中継する情報は、例えば、米国で用いられる、電気代が一時的に高くなる通知のＤＲ（Ｄｅｍａｎｄ  Ｒｅｓｐｏｎｓｅ）信号であってもよい。なお、ＨＥＭＳ１１０にとって重要なのは電力会社からの情報であり、この情報を必ずスマートメータ１１８を経由して得る必要はない。これは例えばインターネットから入手しても良い。
【００３３】
商品１２２はいずれもＨＥＭＳ１１０に直接または間接に（図１では直接に）接続される。商品１２２の例として、窓、シャッタ、照明、空調（エアコン、扇風機等）、調理器（炊飯器、電子レンジ等）、生活（掃除機、洗濯機等）、ＡＶ機器（テレビ、オーディオ機器、レコーダ等）、パーソナルコンピュータ（以下「パソコン」と呼ぶ。）、情報端末（携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ等））等がある。ＨＥＭＳ１１０はセンサ類（温度、人感、照度等）の情報を取得することもできる。本実施の形態では各商品１２２はインターネットの通信プロトコルを用いたネットワークでＨＥＭＳ１１０及びインターネットＧＷ１２０に接続されているが、別の接続方式を用いてＨＥＭＳ１１０との情報交換をしても良い。
【００３４】
インターネットＧＷ１２０はエネルギ管理環境１００内のネットワークを外部のインターネット１０６に接続するためのものである。インターネット１０６の先には情報端末又はパソコン等を含む商品１０８が接続される。これら商品１０８は、インターネットを通して様々なサービス１０４を利用できる。
【００３５】
図２を参照して、ＨＥＭＳ１１０は、パワコン１１６、スマートメータ１１８、インターネットＧＷ１２０、商品１２２からの情報を保存するデータベース１５０と、データベース１５０に保存された情報をデータベース１５０から受取り、商品１２２の動作スケジュールを決定するスケジューラ部１５２とを含む。データベース１５０に保存される情報は例えば、電力会社情報１６０、家庭内発電情報１６２、気候１６４、商品１６６、ユーザ優先度１６８、及び目標１７０を含む。もちろんこれら全てではなく一部のみを用いるようにしてもよい。
【００３６】
電力会社情報１６０は例えばスマートメータ１１８を経由して得られた情報であり、電気代やＣＯ２排出量等の情報である。家庭内発電情報１６２は家庭内の発電機器の発電情報（発電量、ＣＯ２排出量等）であり、例えばパワコン１１６経由で得た情報である。本実施の形態では、発電機器として太陽光発電と蓄電池とが利用されているが、例えば風力発電、地熱発電、ガスを用いた発電機器等であっても良い。気候１６４は例えばインターネット１０６を介してサービス１０４から得た、日照時間等に関する情報である。商品１６６は、商品毎の消費電力及び設定方法等を含む。ユーザ優先度１６８は、ユーザがそれぞれの商品をどのような優先度で動作させたいのかの情報である。ユーザ優先度１６８は予めユーザが入力することが想定される。その詳細は後述する。目標１７０は、例えばスケジュール期間内の目標となる電気代又はＣＯ２排出量である。ユーザ優先度１６８と目標１７０とに関する情報は、本実施の形態では商品１０８の情報端末又はパソコンを用いてデータベース１５０にユーザが入力する。もちろん、他の方法でこれらを準備してもよい。
【００３７】
なお、スケジューラ部１５２に入力される情報（電力会社情報１６０、家庭内発電情報１６２、気候１６４、商品１６６、ユーザ優先度１６８、目標１７０等）の出所はデータベース１５０に限定されない。例えば、パワコン１１６、スマートメータ１１８、インターネットＧＷ１２０、商品１２２等からスケジューラ部１５２に与えられても良い。
【００３８】
スケジューラ部１５２は上記入力を用いてどの商品をどの時間でどのように動作させるのかのスケジュール１８０を定義する。スケジュール１８０は、例えばユーザにどの商品１２２をいつ、どのように動作させればよいのかを提案（アドバイス部１５４）すること、又は商品１２２を自動制御部１５６により自動制御するために用いることができる。アドバイス部１５４の場合、その情報はパソコン又は情報端末に表示させてもよい。自動制御部１５６の場合、商品１２２は必ずスケジュールの通りに動作されるとは限らないため、商品１２２の動作情報を用いて商品の自動制御を行なうことができる。
【００３９】
スケジュール期間にエネルギ管理環境１００で消費される電力、電気代及びＣＯ２排出量などの情報もスケジュール１８０の結果から求めることができる。
【００４０】
スケジューラ部１５２はＨＥＭＳ１１０以外の機器でも用いることができる。例えばパソコンのプログラムにスケジューラ部１５２と同様の機能を実現するプログラム部分を埋め込み、上記入力情報を変化させることにより、スケジュール期間の消費電力などの見積もり情報を得て参考にすることができる。スケジューラ部１５２は、ＨＥＭＳ１１０ではなく、宅外サーバ内で動作しても良い。この場合、スケジューラ部１５２の出力するスケジュール１８０が宅外サーバからＨＥＭＳ１１０に送られても良い。
【００４１】
自動制御部１５６は例えばパワコン１１６の自動制御を行っても良い。この場合、自動制御のために、自動制御部１５６に対してパワコン１１６からの観測信号を送信することと、自動制御部１５６からパワコン１１６へ制御信号を送信することとが必要となる。
【００４２】
図３を参照して、スケジューラ部１５２は、発電情報整理部２００と、商品情報整理部２０２と、スケジュールアルゴリズム部２０４とを含む。
【００４３】
発電情報整理部２００は電力会社情報１６０、家庭内発電情報１６２、及び気候１６４の情報をデータベース１５０から受けて整理し、整理された発電整理情報２１０をスケジュールアルゴリズム部２０４に出力する。発電整理情報２１０の詳細は後述する。例えば気候１６４には日照情報があり、日照により太陽光パネルが発電する電力量を予測できる。
【００４４】
商品情報整理部２０２は、データベース１５０から受ける商品１６６、ユーザ優先度１６８等の情報を整理し、整理された商品整理情報２１２をスケジュールアルゴリズム部２０４に出力する。商品整理情報２１２の詳細は後述する。
【００４５】
そして、スケジュールアルゴリズム部２０４は発電整理情報２１０、商品整理情報２１２と目標１７０元にスケジュールを行ってスケジュール１８０を出力する。
【００４６】
発電整理情報２１０は、各時間帯において利用可能な電力及び発電量の時間的変化を示す、時間軸と電力軸との二次元のリストである。リストの要素は図４に示すように、時間軸リスト（timeList）２２０を含む。時間軸リスト２２０は、単位時間毎の電力消費に関する情報を時間順にリストした複数の時間軸リスト要素２３０を含む。
【００４７】
各時間軸リスト要素２３０は、その時間軸要素が適用される時間帯の開始時刻を示す開始時間（fromTime）と、その時間帯の電力消費及び発電に関する情報のリストである電力軸リスト（generatorPowerList）２３２とを含む。このように、時間軸リストの要素の各々が、電力軸リストを持つことにより、消費電力及び発電量の時間的変化を、時間軸と、電力軸との２次元リストで表現している。
【００４８】
図５を参照して、電力軸リスト２３２は、関連する時間帯における発電機の電力量に関する情報をそれぞれ保持する、利用される発電順で並べられた複数の電力軸リスト要素２４０を含む。電力軸リスト要素２４０の各々は、発電系の種類を示す発電機種類generatorType、電力軸リスト要素２４０が利用可能な電力幅powerRange、発電量が無駄になる可能性があるか否かを示す無駄フラグwasteFlag、及び発電力ＫＷｈあたりの電気代（電力会社）又は電力を売買するときの利益（太陽光発電）である評価単価valueKWHを含む。
【００４９】
発電機種類の事例として、電力会社（ＵＴ）、太陽光発電（ＰＶ）、蓄電池（ＢＴ）、風力、ガス発電等が考えられる。
【００５０】
蓄電池の場合、利用可能な電力幅powerRangeは最大利用可能な電力とする。
【００５１】
評価単価valueKWHはＫＷｈ単位の数値である。例えば価格で評価する場合、評価単価valueKWHはＫＷｈ当たりの電気代（電力会社）、又は電力を売電した利益（太陽光発電）を表す。評価単価valueKWHが電気代か利益かは、発電機種類generatorTypeによる判定、又は評価単価の負号による判定としても良い。太陽発電の場合、利益は売電価格である。例えば評価単価をＣＯ２の排出量で評価する場合、評価単価はＫＷｈ当たりのＣＯ２排出量（例：グラム）としてもよい。例えばガスで発電した電力が売電可能の場合、利益は売電価格と利用したガスの価格との差分としても良い。
【００５２】
無駄フラグwasteFlagは、発電が無駄の可能性がある場合のフラグである。例えば太陽光発電がシステムに含まれる場合、同じ地域で利用されている電力が少ない場合には、太陽光で発電した電力を売電できなくなる。この場合、発電した電力を家庭で利用しないと、売電もできず、無駄に発電したことになる。このような状況が予測される場合、無駄フラグwasteFlagを１にする。
【００５３】
２次元リストの一部を時間軸と電力軸とに展開した例を図６に示す。本リストは、説明上のため３時から１５時までのリストであるが、実際は例えば一日の範囲であっても良い。図６において「ＵＴ」は電力会社からの電力の買入れ、「ＰＶ」は太陽光発電の電力、「ＢＴ」は蓄電池からの電力を表す。これら記号の右横に示した数字は、電力の単価を示す。なお、図６の蓄電池（ＢＴ）の高さは蓄電池の最大利用量であり、実際使っている量ではない。実際使う量はスケジュールアルゴリズム部２０４で決める（後述）。
【００５４】
図６の事例では、最初の時間軸リスト要素２３０Ａ、２３０Ｂ，２３０Ｃ，２３０Ｄ及び２３０Ｅの開始時刻fromTimeはそれぞれ、３時、６時、７時、９時及び１２時である。時間軸リスト要素には開始時刻fromTimeしか保持されていない。最後の時間軸リスト要素２３０Ｅの終了時刻がいつかが分からない。これを解決する方法として、時間軸リスト要素２３０Ｅの次に、開始時刻＝１５時の時間軸リスト要素を含むことができる。又は、例えば時間軸リスト要素に終了時刻を表す変数を備えるようにしても良い。
【００５５】
図６の事例では、最初の時間軸リスト要素２３０Ａの最初の電力軸リスト要素２４０が電力軸リスト要素２４０ＡＡとして表されている。電力軸リスト要素２４０ＡＡの発電機種類は電力会社（ＵＴ）であり、利用可能な電力幅が２０ＫＷであり、電気代が９円／ＫＷｈである。すなわち、３時から６時の時間帯では、利用電力に対する電気代が９円／ＫＷｈである。
【００５６】
時間軸リスト要素２３０Ｂは、電力軸リスト要素２４０ＢＡ，２４０ＢＢ及び２４０ＢＣを含む。これらのうち、最初のものが電力軸リスト要素２４０ＢＡである。電力軸リスト要素２４０ＢＡの発電機種類は蓄電池（ＢＴ）であり、利用可能な電力幅は３ＫＷであり、発電単価はない。電力軸リスト要素２４０ＢＡの次の電力軸リスト要素２４０ＢＢの発電機種類は太陽光発電（ＰＶ）であり、利用可能な電力幅は２ＫＷであり、電力単価（利益価格）は３９円／ＫＷｈである。次の電力軸リスト要素２４０ＢＣの発電機種類generatorTypeが電力会社（ＵＴ）であり、利用可能な電力幅が１７ＫＷであり、電力単価（電気代）が９円／ＫＷｈである。すなわち、６時から７時の時間帯では、３ＫＷまで、蓄電池に充電したエネルギが利用可能である。ここで、蓄電池３ＫＷを使った場合、利用電力が５ＫＷ以下なら、５ＫＷまでの余剰電力が３９円／ＫＷｈで売電できる。電力を５ＫＷ以上使った場合、５ＫＷを越えた電力について９円／ＫＷｈの電気代が発生する。蓄電池を使わない場合、利用電力が２ＫＷ以下なら、２ＫＷまでの余剰電力が３９円／ＫＷｈで売電できる。２ＫＷ以上使った場合、２ＫＷを越えた電力について９円／ＫＷｈの電気代が発生する。他の時間帯でも同様である。なお、図６の時間軸リスト要素２３０Ｅにより表される時間帯が、太陽光（ＰＶ）で発電した２ＫＷまでの電力が売電できない場合（無駄フラグwasteFlag＝１）である。この２ＫＷを使わない場合、太陽光発電による発電は無駄ということになる。
【００５７】
図７を参照して、商品整理情報２１２は木構造のリストである。図７は、この木構造のリストの概念を示す。最初に、図７により表される概念を簡略に説明する。
【００５８】
各家庭には、電力会社と接続する１つ又は複数のスマートメータ（電気メータ）がある。したがって、１つの家庭の商品整理情報のリストは、ルートノードから分岐する１又は複数のノード（スマートメータに対応）を含むスマートメータリスト２５０を含む。スマートメータリスト２５０の数は、この家に設けられたスマートメータの数と一致する。
【００５９】
スマートメータリスト２５０に含まれる各スマートメータには分電盤が接続され、分電盤内部には複数の分電盤スイッチが設けられる。したがって、スマートメータリスト２５０の要素である各ノードからは１又は複数の、分電盤スイッチを示すノードが分岐する。これらノードは分電盤スイッチリスト（beakerSwitchList）２７２を形成する。
【００６０】
各分電盤スイッチには１又は複数のコンセントが接続される。これらコンセントに商品が接続される。したがって、分電盤スイッチリスト２７２の要素である、分電盤スイッチを示す各ノードからは、コンセントに接続される商品に対応するノードが分岐し、商品リスト２８２を形成する。なお、１つの分電盤スイッチは、例えば１つの部屋のコンセントに対応する場合があるが、家により異なる。
【００６１】
商品リスト２８２の各ノード（すなわち各商品）には、動作可能な選択肢が複数個あり得る。したがって、商品リスト２８２の各ノードからは動作可能な選択肢をそれぞれ表す１又は複数のノードが分岐し、動作リスト２９２を形成する。
【００６２】
ある商品の動作可能な選択肢の各々に対して、その商品が動作するステップを時間毎に定義する。したがって、動作リスト２９２の各ノードからは、それら各ステップを示す１又は複数のノードが分岐し、動作ステップリスト３０２を形成する。
【００６３】
ある商品については、特定の時間でしか動作させられない場合と、動作時間をシフト可能なものとがある。これらは区別し、かつシフト可能な場合にはそれらの時間を定義しなければならない。したがって、動作リスト２９２の各ノードからは、その商品を動作させることが可能な時間を定義する１又は複数のノードが分岐し、これらは動作可能時間リスト３０４を形成する。
【００６４】
商品整理情報２１２内の各リストを構成するノードについて、詳細に説明する。図８を参照して、スマートメータリスト２５０は、１又は複数のスマートメータリスト要素２７０を含む。スマートメータリスト要素２７０の数は家庭内のスマートメータ数である。
【００６５】
スマートメータリスト要素２７０は１又は複数の分電盤スイッチリスト２７２を含む。
【００６６】
図９を参照して、分電盤スイッチリスト２７２の各々は、１又は複数の分電盤スイッチリスト要素２８０を含む。分電盤スイッチリスト要素２８０の各々は商品リスト２８２を含む。
【００６７】
図１０を参照して、商品リスト２８２の各々は、１又は複数の商品リスト要素２９０を含む。商品リスト要素２９０の各々は、商品の動作リスト２９２を含む。
【００６８】
図１１を参照して、動作リスト２９２の各々は、その動作に関する可能な選択肢を要素とする１又は複数の動作リスト要素３００を含む。動作リスト要素３００の各々は、対応する電気製品の動作モードを特定する。後述するスケジューリングの結果、ある商品について、その動作リスト要素３００の１つの動作が選択されることになる。
【００６９】
動作リスト要素３００は、優先度、動作が選択されているか否かを示す選択フラグselected、動作の種類operationType、その商品がこの動作モードで動作する動作時間をリスト形式で時間毎に定義した動作ステップリスト（operationStepList）３０２、商品を動作させることが可能な時間をリスト形式で定義する動作可能時間リスト（possibleOperationTimeList）２６０を含む。
【００７０】
優先度は動作モードの優先度を表す。この優先度は、図２及び図３ではユーザ優先度１６８として表示されているものである。
【００７１】
商品には、動作時間が決まっている商品（例えば冷蔵庫）と、動作時間を変更可能（例えば洗濯機）な商品とがある。この二つを区別するのが動作の種類operationTypeである。動作の種類operationTypeには、対応する商品が動作する時間が固定されていることを示す固定時間（fixedOperation）と、対応する商品が動作する時間が、ある時間の範囲の中でシフト可能なことを示すシフト可能時間（shiftOperation）とがある。
【００７２】
図１２を参照して、動作ステップリスト３０２は、商品が動作するステップを時間毎に定義する。動作ステップリスト３０２は１又は複数の動作ステップリスト要素３１０を含む。動作ステップリスト要素３１０の各々は、動作ステップの開始時刻（stepFromTime）及び終了時刻（stepToTime）と、消費電力（step消費電力）とを含む。すなわち、動作ステップリスト要素３１０により、この商品が動作する時間帯と、時間帯毎に、この商品の消費電力（エネルギ）とを定義できる。
【００７３】
図１３を参照して、動作可能時間リスト３０４はシフト可能時間の場合のみに用いられ、商品を動作させることが可能な時間を定義する。動作可能時間リスト３０４は、１又は複数の動作可能時間リスト要素３２０を含む。動作可能時間リスト要素３２０は、ある商品が動作可能な時間の開始時刻（possibleFromTime）と終了時刻（possibleToTime）とを定義する。なお、この開始時刻と終了時刻とを、動作可能な時間帯ではなく、動作を開始可能な時間帯で定義しても良い。なお、動作の種類（図１１を参照）が「固定時間」の場合、動作ステップリスト３０２は実時間で定義され、動作の種類が「シフト可能時間」の場合、動作ステップリスト３０２は相対時間で定義される。よって、この場合、動作ステップリスト３０２の最初の動作ステップリスト要素３１０のステップの開始時刻を０に設定してもよい。
【００７４】
なお、優先度の設定はユーザの好み（嗜好）の数値に設定する。例えば図１に示すパソコン等の商品１０８を用い、図２に示すデータベース１５０に書き込み、ユーザ優先度１６８として図３の商品情報整理部２０２により商品整理情報２１２に優先度として設定することが考えられる。もちろん、他の方法を用いてもよい。
【００７５】
なお、図７〜図１３に示した発電整理情報２１０と商品整理情報２１２のリストの構成は１例である。これらについては、他のデータ形式を用いても良い。例えば配列のリスト、又は連結リストであってもよい。後述のリストも同様である。
【００７６】
本実施の形態では、各動作ステップリスト要素３１０にステップの開始時刻（stepFromTime）と終了時刻（stepToTime）とを定義している。これは、同じ商品であっても、動作ステップリスト要素３１０毎に開始時刻又は終了時刻が異なることを想定しているためである。同じ商品の全ての動作ステップリスト要素３１０の開始時刻と終了時刻とに変化がない場合には、開始時刻と終了時刻とを動作リスト要素３００に入れてもよい。
【００７７】
図１４から図１６に、図７から図１３に示した要素を用いた木構造リストの事例を示す。本リストのトップのスマートメータリスト２５０は２つのスマートメータ２７０Ａ及び２７０Ｂを含む。第１のスマートメータ２７０Ａには第１の分電盤２７２Ａが接続され、第２のスマートメータ２７０Ｂには第２の分電盤２７２Ｂが接続されている。
【００７８】
第１の分電盤２７２Ａには第１の分電盤スイッチ２８０Ａ及び第２の分電盤スイッチ２８０Ｂが設けられる。第２の分電盤２７２Ｂには第３の分電盤スイッチ２８０Ｃが設けられる。
【００７９】
第１の分電盤スイッチ２８０Ａには、１つの照明２９０Ａが接続されている。第２の分電盤スイッチ２８０Ｂには、掃除機２９０Ｂ、冷蔵庫２９０Ｃ、テレビ２９０Ｄ、炊飯器２９０Ｅ及び第１の冷房２９０Ｆが接続されている。第３の分電盤スイッチ２８０Ｃには洗濯機２９０Ｇ、第２の冷房２９０Ｈ及び扇風機２９０Ｉが接続されている。
【００８０】
ここで、図１４から図１６の事例を用いて図７から図１３の木構造についての説明を追加する。
【００８１】
分電盤スイッチリスト要素２８０には商品リスト２８２が含められているが、第２の分電盤スイッチ２８０Ｂにこの事例が描かれている。すなわち、第２の分電盤スイッチ２８０Ｂの商品リスト２８２内に、掃除機２９０Ｂ、冷蔵庫２９０Ｃ、テレビ２９０Ｄ、炊飯器Ｅ、及び第１の冷房２９０Ｆの商品リスト要素が格納されている。すなわち、第２の分電盤スイッチ２８０Ｂには、掃除機２９０Ｂ、冷蔵庫２９０Ｃ、テレビ２９０Ｄ、炊飯器Ｅ、及び第１の冷房２９０Ｆが接続されている。第１の分電盤スイッチ２８０Ａ第３の分電盤スイッチ２８０Ｃとについても同様である。
【００８２】
次に、動作の種類が「固定時間」である場合の説明を、第１の冷房２９０Ｆの事例を用いて説明する。図１５を参照して、第１の冷房２９０Ｆに対応する商品リスト要素２９０Ｆ内には動作リスト２９２Ｆがある（図１０参照）。この動作リスト２９２Ｆの中に三つの動作リスト要素３００Ａ、３００Ｂ及び３００Ｃがある。例えば動作リスト要素３００Ａは、優先度３０６Ａ＝０と、動作ステップリスト３０２Ａとを含む。他の動作リスト要素３００Ｂ及び３００Ｃの優先度は、図１５に示されるようにそれぞれ１５及び４０である。
【００８３】
第１の冷房２９０Ｆの動作ステップリスト３０２Ａは、２つの動作ステップリスト要素３１０Ａ及び３１０Ｂを含む。図１４及び図１５において、動作ステップリスト要素３１０Ａ及び３１０Ｂが描かれている矩形の左端がこれらの要素の開始時刻であり、右端が終了時刻である。動作ステップリスト要素３１０の矩形の内部に描かれた数値（６００、７００等）がステップ消費電力である。動作リスト要素３００Ａの最初の動作ステップリスト要素３１０Ａの開始時刻は６時であり、終了時刻は１０時である。２番目の動作ステップリスト要素３１０Ｂの開始時刻は１０時であり、終了時刻は１５時である。以下動作リスト要素３００Ｂ及び３００Ｃの構成も同様である。
【００８４】
次に、動作の種類が「シフト可能時間」の場合を、図１４に示す洗濯機２９０Ｇの事例を用いて説明する。ここで、洗濯機２９０Ｇに対応する商品リスト要素２９０（図１０参照）に含まれる動作リスト２９２と動作リスト要素３００とについては、第１の冷房２９０Ｆと同様であるためここでは説明は繰返さない。
【００８５】
図１６を参照して、ここでは、洗濯機２９０Ｇに対応する動作リスト２９２Ｇ内の動作リスト要素３００（図１１参照）の数は２つであるものとする。１つが洗濯と乾燥の場合の動作リスト要素３００Ｄ、もう１つが洗濯のみの場合の動作リスト要素３００Ｅである。
【００８６】
動作リスト要素３００Ｄは、優先度＝０であり、動作ステップリスト３０２Ｂ及び動作可能時間リスト３０４Ａを含む。動作ステップリスト３０２Ｂは、洗濯と乾燥とをそれぞれ行なう２つの動作ステップリスト要素３１０Ｃ及び３１０Ｄを含む。動作ステップリスト要素３１０Ｃの開始時刻は０、終了時刻は１時である。動作ステップリスト要素３１０Ｄの開始時刻は１時、終了時刻は２時である。動作可能時間リスト３０４Ａは、１つの動作可能時間リスト要素３２０Ａを含む。動作可能時間リスト要素３２０Ａの開始時刻は３時、終了時刻は１８時である。
【００８７】
動作リスト要素３００Ｅは、優先度＝４６であり、動作ステップリスト３０２Ｃを含む。動作ステップリスト３０２Ｃは洗濯を行なう動作ステップリスト要素３１０Ｅを含む。
【００８８】
この場合、例えばスケジューリングにおいて優先度＝０が指定された場合、洗濯機は動作リスト要素３００Ｄにしたがって、３時から１８時の間で２時間（洗濯、乾燥）動作することになる。
【００８９】
その他商品の商品リスト２８２以下の内容、及び動作は上記第１の冷房２９０Ｆ及び洗濯機２９０Ｇと同様である。したがってここではそれらについての詳細な説明は繰返さない。
【００９０】
次に、図６（発電整理情報２１０）と図１４〜図１６（商品整理情報２１２）に示した事例とを用いて、図３に示すスケジュールアルゴリズム部２０４の構成の概要を説明する。説明を簡単にするため、図１４〜図１６に示した照明２９０Ａ，掃除機２９０Ｂ、冷蔵庫２９０Ｃ，テレビ２９０Ｄ，炊飯器２９０Ｅ，第１の冷房２９０Ｆ、洗濯機２９０Ｇ，第２の冷房２９０Ｈ，及び扇風機２９０Ｉの動作リスト要素３００から動作方法、消費電力、及び優先度を抽出し、図１７に優先度順に整列した。
【００９１】
スケジューリングアルゴリズムは優先度順に動作し、ある優先度を選択すると、その優先度に対応する商品の動作をスケジューリングし、全体の消費電力を計算する。消費電力などに関する結果が所定の条件を充足しないときには、一部の商品の優先度を下げて消費電力の再計算を行なう。こうした処理を、所定の条件が充足されるまで繰返す。このため、消費電力を計算するためのデータ構造を図１８に示す消費電力リスト２２４として定義する。
【００９２】
図１８を参照して、この消費電力リスト２２４では、消費電力を時間帯ごとに計算する。これを消費電力リスト要素３３０とする。消費電力は時間とともに変化するため、消費電力リスト要素３３０を時間順で並べて消費電力リスト２２４を形成する。消費電力リスト要素３３０では、開始時刻（powerFromTime）と、消費電力（powerConsumptionKW）とが定義される。消費電力リスト要素３３０のその他変数は蓄電池関連であり、説明は後述する。
【００９３】
消費電力リスト２２４に表される電力消費の経過例を図１９に示す。図１９に示す例では、消費電力リスト２２４は５つの消費電力リスト要素３３０Ａ〜３３０Ｅを含む。消費電力リスト要素３３０Ａの開始時刻＝０で、消費電力＝５ＫＷである。次の消費電力リスト要素３３０Ｂの開始時刻＝６で、消費電力＝１０ＫＷである。すなわち、消費電力リスト要素３３０Ａと消費電力リスト要素３３０Ｂとにより、０時から６時の電力消費は、６時から以後の消費電力と比較して５ＫＷの省電力となっていることが分かる。なお、初期状態では消費電力リスト２２４の消費電力リスト要素３３０の数は時間軸リスト２２０の時間軸リスト要素２３０の数と同じであり、かつそれぞれの消費電力リスト要素３３０の開始時刻を、対応する時間軸リスト要素２３０の開始時刻に設定する。初期状態では全ての消費電力リスト要素３３０の消費電力を０に設定する。消費電力リスト要素３３０は消費電力リスト２２４に追加又は削除されることがあるが、後述のように、初期状態の消費電力リスト要素３３０は削除されない。
【００９４】
図２０に、コンピュータハードウェアにより実行されて、図３に示すスケジュールアルゴリズム部２０４を実現するコンピュータプログラムの制御構造を示す。図２０及び以下の説明において、targetPriority変数は、設定優先度を示す変数である。
【００９５】
このプログラムはステップ３５０で開始し、targetPriorityの変数を０に設定して、消費電力リスト要素３３０をリセットする。
【００９６】
ステップ３６０で固定時間のスケジュールを行なう。ここではtargetPriorityが優先度に一致する動作リスト要素３００でかつ動作の種類が「固定時間」であるものに関して、動作ステップリスト要素３１０の時間帯毎のステップ消費電力から、消費電力リスト２２４を計算する。初期状態（targetPriority＝０）の場合、消費電力リスト要素３３０は、図１４〜図１６、図１７に示すものの内、優先度が「０」のものの消費電力の、固定時間にしたがって時間帯毎に計算した合計となる。その後、発電整理情報２１０に対してどの時間で蓄電池の充電、給電するのかを決め（これを「蓄電池調整」と呼び、その詳細は後述する。）、蓄電池の給電により、消費電力リスト２２４とそれぞれの電力軸リスト要素２４０の電力単価と、給電した電力とから、合計数値（電気代若しくは売電代金、又はＣＯ２の排出量）を計算（詳細は後述）する。
【００９７】
次にステップ３７０でシフト可能時間のスケジュールを行なう。ここでは図１７に示した商品の内、その優先度がtargetPriorityの値以上である動作リスト要素３００であって、かつ動作の種類が「シフト可能時間」であり、かつその商品の動作リスト要素３００の優先度が最も低いものに関して、動作可能時間リスト要素３２０の全時間帯に関して、最も目標１７０（図３参照）に近い時間帯の動作ステップリスト要素３１０を割当てる。最初のループでは、ここでは優先度がtargetPriorityと一致するものが選択される。次回以降のループについては後述する。動作可能時間リスト要素３２０の全時間帯に対して時間毎にループを回して動作ステップリスト要素３１０を探す。この際、ステップ３６０と同様に、蓄電池の調整を行なう。
【００９８】
ステップ３７０の後、制御はステップ３８０に進み、優先度（targetPriority更新）の値を下げる（targetPriority更新）。ステップ３８０では、電力消費などの計算結果が目標を達成したか否かが判定される。続くステップ３８０では、目標が達成されているか、全動作リストを使用して消費電力の計算が完了してしまったが判定され、判定が肯定であれば処理を終了する。ステップ３９０の判定が否定なら制御はステップ３６０に戻る。２回目以降のステップ３６０での処理については後述する。
【００９９】
図１４から図１６、３７の場合、最初にtargetPriority＝０で計算を行なっても目標が達成できないとき、ステップ３８０ではtargetPriorityの値を次の値に変更する。図１７に示す例では、優先度＝０の次に低い優先度の値は８（第２の冷房）である。したがってこの場合、targetPriorityを８に設定して、制御はステップ３６０に戻ることになる。
【０１００】
以下、ステップ３６０及びステップ３７０を、第２の冷房の優先度＝を８として計算する。すなわち、前回のループでは第２の冷房の優先度＝０（消費電力＝７００Ｗ）として計算したものを、今回は第２の冷房の優先度＝８（消費電力＝６００Ｗ）に変更して、再び消費電力リスト２２４の計算と蓄電池調整を行なって、消費電力の合計数値を計算する。このとき、第２の冷房以外については、優先度＝０のものを用いた計算が行なわれる。すなわち、２回目以降のループにおけるステップ３６０の処理では、ある商品について目標優先度と一致する優先度を持つ動作リスト要素３００があればそれが用いられるが、目標優先度と一致する優先度を持つ動作リスト要素３００がない場合には、それより大きくて最も小さな値の優先度を持つ動作リスト要素３００が用いられる。要するに、ステップ３６０の処理では、ある商品について、目標優先度以上の優先度を持つ動作リスト要素３００であって、その中で最も低い優先度を持つ動作リスト要素３００が計算に用いられる。
【０１０１】
こうした処理をステップ３９０の判定がＹＥＳとなるまで繰返す。
【０１０２】
図２１に、優先度を上のように変更して計算を繰返した結果、スケジュールとして選択された動作リスト要素３００の結果を示す。例えばtargetPriority＝０の繰返しでは、優先度＝０の動作リスト要素３００が選択される。図２１を参照して、この場合、先頭の「掃除機（シフト、１Ｋ、優先度＝０）」から８行目までの動作リスト要素３００が選択される。この様子を図２１の右半分の優先度＝０に相当する列において、ハッチングしたセルで示してある。targetPriority＝８では、第２の冷房の選択が優先度＝０から優先度＝８に切替わる。これは、図２１の右半分では、優先度＝８の列の冷房２（固定、７００、優先度＝０）に対応するセルがハッチングから白抜きに変わり、その下の冷房２（固定、６００、優先度＝８）のセルがハッチングに変わったことで示されている。
【０１０３】
なお、優先度の変更は必ず次の優先度である必要はない。例えば今回の優先度の商品の消費電力との差分が大きい優先度の消費電力を選択してもよい。図２１の事例で、優先度＝１５の場合、消費電力は優先度＝１６のときの消費電力とあまり変わらない。そのため、優先度＝１５の次を優先度＝１７としても良い。このようにすると処理はより高速になる。
【０１０４】
targetPriority＝１５ではさらに第１の冷房２９０Ｆの選択が優先度＝０から優先度＝１５に切替わる。以下同様である。なお、ここでtargetPriority＝２５では、第１の冷房２９０Ｆの電力は０、すなわち第１の冷房２９０Ｆの電源が切られる。同時に、扇風機（固定、６０、優先度＝２５）の電源が入る。ここでは評価は電気代としていて、それぞれのtargetPriorityに対する電気代を図２１の右半分の最下部に示してある。例えば目標１７０（図２、図３を参照）が１５０円に設定されている場合、一点鎖線４００で示したように、targetPriority＝４０で目標達成となる。
【０１０５】
このような処理を行った結果得られるスケジュール１８０（図２及び図３参照）の事例を図２２に示す。図２２は、図６に示す事例よりも多くの商品を扱う事例である。スケジュール結果は商品のスケジュール結果（図２２の上部）と発電系のスケジュール結果（図２２の下部）とを含む。商品のスケジュール結果には、どの商品がどの時間帯でどれだけ電力を消費しているのかが描かれている。その合計電力が、発電系のスケジュール結果に重ねて利用電力線４１０として描画されている。発電系のスケジュール結果にはさらに、各時間帯でどの発電機器からどれだけの電力が利用されているのかが示されている。例えば朝３時には、電力会社からの電力（ＵＴ）が消費され、その一部が蓄電池（ＢＴ）の充電電力（ＢＴ  Ｃ）に用いられる。１２時には、蓄電池からの給電（ＢＴ）と、太陽光発電により得られた電力（ＰＶ）の一部とが消費され（ＢＴ  Ｕ及びＰＶ  Ｕ）、太陽光発電により得られた電力のうち余剰分は売電されている（ＰＶ  Ｓ）。
【０１０６】
次に、本アルゴリズムの詳細を、プログラム変数を用いて図２３を参照しながら説明する。ここで用いられる変数は、優先度を管理するtargetPriority、動作リスト要素３００を保持するOperationとOperation１、固定時間又はシフト可能時間に対して動作時刻を指定する変数stepStartTimeである。なお、固定時間の場合、stepStartTime＝０とする。以下の説明では、変数にいわゆるオブジェクトが代入されることがある。そうした場合には、変数にオブジェクトそのものではなく、オブジェクトの記憶領域へのポインタが代入されることが多い。しかし、説明が煩雑になるため、そうした場合も含めて単に変数に値を代入する、と書く。
【０１０７】
まず、ステップ４３０でtargetPriority＝０に設定し、Operationを動作リスト２９２の最初の動作リスト要素３００に設定する。図１７の事例では、これは照明の優先度＝０である。なお、本実施の形態ではここでtargetPriority＝０としているが、０にすることが必須条件ではない。targetPriorityの初期値が優先度の設定の仕方により変化することは当然である。
【０１０８】
次にステップ４３２から固定時間の電力調整を行なう。ここでOperationを一時的に保持するため、Operation１＝Operationとする。すなわち、変数Operation1に変数Operationの値を代入する。
【０１０９】
次にステップ４３４でOperationの動作の種類＝固定時間かを確認する。判定が真の場合、ステップ４３６で電力削減を行い、ステップ４３８でstepStartTime＝０とし、ステップ４４０で電力計算（後述）を実行して制御はステップ４４２に遷移する。ステップ４３４の判定が偽の場合、制御はステップ４４２に遷移する。
【０１１０】
ステップ４３６の電力削減は次の通りに行なう。削除する電力は、今回スケジュールする動作リスト要素３００と同じ商品リスト要素２９０の、１つ前の優先度の動作リスト要素３００である。例えば図２１の洗濯機の場合、優先度＝０と優先度＝４６との２つの動作リスト要素３００がある。
【０１１１】
図２４に、これら２つに関連する消費電力の変化を描いている。優先度＝４６の動作リスト要素３００のスケジュールを行なう際、まず、事前にスケジュールされている優先度＝０の電力を削除する必要がある。すなわち、図２４の破線４８０により囲われている部分の消費電力のうち、洗濯機の優先度＝０での２つの動作ステップリストに対応する電力消費部分４９０及び４９２を削除する。この削除により、図２４に示すように、消費電力リスト２２４のうち、削除された電力消費部分４９０及び４９２に対応する箇所５００の消費電力リスト要素５０４及び５０６の消費電力量がそれぞれ０．１及び２減少し、いずれも６となる。その結果、その前後の動作リスト要素５０２及び５０８と消費電力量が等しくなる。したがってこの場合、同じ消費電力量で連続する複数の動作リスト要素を１つにまとめることができる。このため、削除した後の消費電力リスト要素の消費電力と、直前又は直後の消費電力リスト要素の消費電力とを比較し、一致すれば後の消費電力リスト要素を削除する。ただし、削除される消費電力リスト要素の開始時刻がいずれかの時間軸リスト要素２３０のfromTimeに一致した場合、この消費電力リスト要素は削除しない。上記「一致」はある範囲内で誤差があっても許容するようにしても良い。優先度＝０の動作リスト要素のスケジュールを行なう際には、本ステップ４３６の削除処理を行なう必要はない。そもそも、本ステップ４３６の削減を必ずする必要はない。
【０１１２】
各商品に対して、使っている優先度にしたがって消費電力リスト２２４を計算しなおしても良い。例えば優先度＝４６の計算を行なう際、冷蔵庫、炊飯器は優先度０、テレビは優先度＝２２、照明は３５、扇風機は３７、第１の冷房２９０Ｆは４０、洗濯機は４６を用いて消費電力リスト２２４の計算を行なう。
【０１１３】
再び図２３を参照して、ステップ４４２では、変数Operationに次の要素を代入する。すなわち、図１７の場合、掃除機（優先度＝０）が次の要素である。以下、変数Operation及び変数Operation1に代入されている要素をそれぞれ単に「Operation」及び「Operation1」と呼ぶ。
【０１１４】
ステップ４４４でOperationの優先度＝targetPriorityか否かを確認する。両者が等しい場合、制御はステップ４３４に戻って、必要であればステップ４４０で電力計算をする。ステップ４４４の判定が否定の場合、制御はステップ４４６に遷移する。
【０１１５】
ステップ４４６からはシフト可能時間の電力調整を行なう。ここでは、一時Operation１に保持されていた変数値をOperationに代入する。
【０１１６】
ステップ４４８でOperationの動作の種類＝シフト可能時間か否かを確認する。もし真なら、ステップ４５０で時間シフト計算（後述）を実行した後、制御はステップ４５２に遷移する。もし偽なら、ステップ４５０を経由せず制御はステップ４５２に遷移する。
【０１１７】
ステップ４５２では、Operationに次の要素を代入する。
【０１１８】
次に、ステップ４５４でOperationの優先度＝targetPriorityか否かを確認する。等しい場合、制御はステップ４４８に戻って、必要であればステップ４５０で時間シフト計算をし、制御はステップ４５２に戻る。等しくない場合、制御はステップ４５６に遷移する。
【０１１９】
ステップ４５６では、targetPriorityに次の優先度を割当てる。例えば図１７でtargetPriority＝０の場合、ステップ４５６でtargetPriority＝８となる。
【０１２０】
なお、ステップ４３８とステップ４５０では利用電力が計算され、ステップ４５８では、計算された利用電力に関する電気代又はＣＯ２排出量が目標１７０を達成（目標より小さい）しているか、又は全動作リスト要素３００が考慮されたかが判定される。もし真ならこのプログラムの実行は終了する。そうでない場合、制御はステップ４３２に戻り、ステップ４３２以下の処理を新しいtargetPriorityに対して繰返す。
【０１２１】
図２５を参照して、図２３のステップ４５０で行なわれる時間シフト計算ステップ４５０の詳細を説明する。
【０１２２】
まず、ここでは動作可能時間リスト３０４の時間帯で、動作ステップリスト３０２を時間帯毎に割当て、条件が最も良い選択肢を選ぶ。選択肢の開始時間は、消費電力リスト２２４の各消費電力リスト要素３３０の開始時刻と、時間軸リスト２２０の各時間軸リスト要素２３０の開始時刻とする。
【０１２３】
最初に、ステップ５６０で、消費電力リスト２２４から電力削除を行なう。この処理はステップ４３６の処理と同じである。
【０１２４】
次に、ステップ５６２で最初の時間帯へ進む。この時刻は、動作可能時間リスト３０４中の最も小さい開始時刻である。この時刻をstepStartTimeに代入する。
【０１２５】
次に、ステップ５６４で、電力計算を行なう。
【０１２６】
次に、ステップ５６６で、ステップ５６０と同様の削除処理を行なう。なお、この電力削除のような処理を必ず行なう必要があるわけではないことに注意すべきである。目的は消費電力リスト２２４をステップ５６４に入る前の状況に戻すことであり、その目的を達成できる処理であればどのようなものでもよい。
【０１２７】
次に、ステップ５６６で次の処理対象の時刻を設定する。これは、消費電力リスト２２４中の消費電力リスト要素３３０の開始時刻と、時間軸リスト２２０中の時間軸リスト要素２３０の開始時間fromTimeの中で、stepStartTimeより大きくかつ動作可能時間帯内でありかつstepStartTimeに最も近い数値を、stepStartTimeに代入する。
【０１２８】
次に、ステップ５６６において動作可能時間帯内でstepStartTimeに時刻を代入できたか否かをステップ５７０で判定する。代入できた場合、制御はステップ５６４に戻り、できなかった場合、制御はステップ５７２に遷移する。
【０１２９】
ステップ５７２では、ステップ５６４〜ステップ５６６のループ中に計算された利用電力に対する電気代又はＣＯ２排出量の中から、目標１７０に最も近い時間帯の開始時刻を、stepStartTimeに設定する。なお本実施の形態では、目標１７０より大きい選択肢と、より小さい選択肢とがあり、目標１７０との差が互いに等しい場合には、目標１７０より小さい方を選択する。
【０１３０】
ステップ５７４では、最終stepStartTimeを用いて再度電力計算を行い、最終消費電力リスト２２４が求められる。
【０１３１】
なお、最終消費電力リスト２２４を求めるために、ステップ５７２とステップ５７４との処理以外の処理を採用することもできる。例えば現在までの最も小さい電気代又はＣＯ２排出量の数値を保持する変数（minShiftValue）を準備し、ステップ５６４の結果が変数minShiftValueより目標１７０に近い場合、変数minShiftValueの値をステップ５６４の結果に設定して、かつステップ５６４の最終消費電力リスト２２４を保存しておく。ステップ５７０で終了した際、最も目標１７０に近い最終消費電力リスト２２４は保持された状態になっているため、この結果を用いればよい。
【０１３２】
次に、ステップ４３８、ステップ５６４及びステップ５７４の電力計算の処理の詳細を、説明する。図２６を参照して、ステップ６００で利用電力の計算を行なう。まず、動作ステップリスト３０２の各動作ステップリスト要素３１０の時間帯を、stepStartTime＋開始時刻からstepStartTime＋終了時刻とする。なお、対象の動作ステップリスト要素３１０の動作の種類が「固定時間」の場合、ステップ４３８でstepStartTime＝０に設定されている。各動作ステップリスト要素３１０のステップ消費電力が、消費電力リスト２２４に追加される。そのため、時間帯の開始時刻と終了時刻とを消費電力リスト２２４と比較する。動作ステップリスト３０２に開始時刻又は終了時刻が存在しない場合、存在しない時刻の消費電力リスト要素３３０を時刻に対応する箇所に挿入する。この場合の消費電力リスト要素３３０の消費電力は、時間的に直前の消費電力リスト要素３３０の消費電力に設定する。そして、消費電力リスト２２４内の開始時刻から終了時刻までの全ての消費電力リスト要素３３０の消費電力にステップ消費電力を追加する。これは、例えば図２４の削除の逆操作になる。
【０１３３】
次にステップ６０２で蓄電池調整を行なう。蓄電池処理の詳細については後述する
最後に、ステップ６０４で動作リスト要素３００の選択フラグ（selected）の更新を行なう。これは、例えば図２１でtargetPriority＝２２の処理を行った際、優先度２２はテレビであるが、targetPriority＝２２の処理を開始した際、テレビは優先度０で動作（優先度０のｓｅｌｅｃｔｅｄはＴｒｕｅに設定されている）している。よって、ステップ６０４ではまず優先度２２に対するテレビの前回の優先度を探す（すなわち、優先度０）。そして、この優先度０のｓｅｌｅｃｔｅｄをＦａｌｓｅに設定する。なお、前回の優先度の設定は、前回の優先度が存在する場合のみ行なう。例えば、優先度が０の場合、前回の優先度は存在しない。そして、最後に優先度２２のｓｅｌｅｃｔｅｄをｔｒｕｅに設定する。
【０１３４】
次に蓄電池の調整について説明する。
【０１３５】
まず、蓄電池の効果の事例を図２７と図２８〜図３０とを用いて説明する。図２７〜図３０において、横軸が時間であり、縦軸が電力である。
【０１３６】
図２７が蓄電池を使っていない場合の事例である。この事例はそれぞれが１時間である２つの期間（期間１と期間２）に別れている。点線が利用電力線６２０である。この事例では、期間１では、太陽光が発電した１ＫＷ（ＰＶ）と、電力会社からの１ＫＷ分の電力（ＵＴ）とを使っている。同様に期間２では太陽光が発電した１ＫＷ（ＰＶ）と、電力会社から購入した２ＫＷ分の電力（ＵＴ）とを使っている。太陽光で発電した電力を売電する場合、１ＫＷｈ当たり４０円で売れる。単価は、図２７〜図３０において、「ＰＵ」「ＵＴ」等の発電装置の種類を示す記号の横に数値で示す。図２７に示す「ＰＶ  ４０」は、太陽光発電の電力が１ＫＷｈ当たり４０円で売電できることを示す。電力会社から購入する電力の電気代は「ＵＴ  ２８」で示すように、図２７の期間１及び期間２のいずれでも１ＫＷｈ当たり２８円である。なお、図２７に示す本事例では、太陽光が発電した全ての電力は家庭内で利用していることを想定している。そのため、売電の収入はない。このため、電気代は下記のように計算される（売電により算出される電気代は負の数値として扱う。）。
【０１３７】
【表１】
0005723144.tif 000002
ここで、期間１の「２８＊１」の「１」は、購入電力量の１ＫＷｈを示す。期間１及び期間２における「４０＊０」の「０」は、太陽光発電の電力を売電していないため、単価は０と考えられるためである。この計算により、図２７における電気代は８４円となることが分かる。
【０１３８】
次に、図２８〜図３０に、図２７と同じ事例において蓄電池を採用した場合を示す。
【０１３９】
図２８及び図２９は３ＫＷｈの蓄電池を用いた場合の事例、図３０は、２．５ＫＷｈの蓄電池を採用した場合の事例を示す。
【０１４０】
図２８（Ａ）は、期間１から３ＫＷｈの蓄電池を入れた場合を示す。期間１の利用電力は２ＫＷｈである。３ＫＷｈの蓄電池からの２ＫＷｈを消費電力に割当てる。蓄電池の給電能力として１ＫＷｈ分が残る。ここでは、蓄電池を充電するために１ＫＷｈ当たり１０円が必要であるものとしている。すなわち、蓄電池の電力を消費する場合の電力料金は１ＫＷｈ当たり１０円である（ＢＴ  １０）。期間１では、太陽光発電が１ＫＷを生成しており、かつ必要電力は蓄電池の電力でまかなえるため、太陽光発電の電力を売電できる。
【０１４１】
一方、期間２では、蓄電池の残りの１ＫＷｈと、太陽光が生成した１ＫＷｈとを消費し、さらに必要な電力（１ＫＷｈ）を電力会社から購入する（ＵＴ  ２８）。このため、このケースでの期間１及び期間２での電気代は下記のように計算される。
【０１４２】
【表２】
0005723144.tif 000003
ここで、期間１の「１０＊２」が期間１の蓄電池費用であり、「−４０＊１」が売電できた電力の価格である。期間１の利益は２０円となる。一方、期間２では、電力会社からの「２８＊１」、太陽光発電の「−４０＊０」（売電していないため、単価は０）、及び蓄電池からの「１０＊１」である。期間２の電気代は３８円である。この結果、期間１と期間２とを通算した電気代の合計は１８円となる。
【０１４３】
図２８（Ｂ）は、期間１では蓄電池を使用せず、期間２で３ＫＷｈの蓄電池を使用している。期間１には蓄電池を用いないため、図２７の期間１と同じである。期間２では蓄電池の３ＫＷｈ分を使っているため、蓄電池に貯蔵されていた電力の全てを期間２で使うことになる。期間２では、太陽光が１ＫＷ生成しているものとし、そのためこの電力を売電できる。このため、電気代は下記のように計算される。
【０１４４】
【表３】
0005723144.tif 000004
このように、図２８（Ａ）と図２８（Ｂ）との電気代は両方とも１８円になり、どちらを選択しても同じ結果となる。
【０１４５】
図２９（Ａ）と図２９（Ｂ）とは、図２８（Ａ）と図２８（Ｂ）とに示す場合と異なり、期間２の太陽光の売電価格を５０円としたものである。電気代の計算方法は図２８（Ａ）と図２８（Ｂ）と同様である。結果として、図２９（Ａ）の電気代は１８円、図２９（Ｂ）の電気代は８円となる。したがってこの条件では図２９（Ｂ）にしたがって電力を割当てることが良いことになる。
【０１４６】
図３０（Ａ）と図３０（Ｂ）とは、図２８（Ａ）と図２８（Ｂ）とに示す場合と異なり、３ＫＷｈの蓄電池ではなく、２．５ＫＷｈの蓄電池を用いた場合を示す。電気代の計算方法は図２８（Ａ）及び図２８（Ｂ）と同様である。結果として、図３０（Ａ）の電気代が２７円、図３０（Ｂ）の電気代が３２円となる。したがってこの条件では、図２９（Ａ）にしたがって電力を割当てることが良いことになる。
【０１４７】
このように、条件を変更することにより、蓄電池からの電力をどの期間に割当てると好ましいかが変化する。
【０１４８】
図２７〜図３０の事例は電気代に関するものであったが、例えばＣＯ２排出量に基づく最適化も可能である。その場合、計算の対象となる値（評価単価）は電気代と売電価格とではなく、ＣＯ２排出量のみになる。
【０１４９】
なお、蓄電池をどの期間に割当てるかに関する方法は種々考えられる。ここでは全ての選択肢を検討する全検索アルゴリズムを採用する。
【０１５０】
図３１を参照して、この全検索アルゴリズムにより蓄電池の割当を決定するプログラムの制御構造の概要を説明する。図２７では２つの期間のみについて考えたが、ここでは５つの期間がある場合を考える。そして、蓄電池を利用した電力の供給源及び売電の組合せの、所定の条件での全ての選択肢を確認する。アルゴリズムの概要は以下のとおりである。５つの期間を順番に期間１，２，３，４及び５とする。これら期間の並べ方は順列組合せにしたがい５×４×３×２×１＝１２０通りある。それらの全てに対し、先頭の期間（順列の最初の期間）の電力の供給源として蓄電池を割当てる。蓄電池の給電能力が残れば、順列の次の順位の期間に再び蓄電池を割当てる。これを蓄電池からの給電能力の残りがなくなるまで繰返す。
【０１５１】
以下、具体的に説明する。まず、最初の選択肢が選択肢１．２．３（図３１の左上）である。ここでは、最初に蓄電池を期間１に割当て、残った給電能力を期間２に割当て、さらに残ったのを期間３に割当て、さらに給電能力が残れば順番に期間４、５に順番に割当てる。期間３に割当てた結果、残りがなくなればその時点で蓄電池の割当てを終了し、電力利用量の残りに対し、図２８から図３０に示したような計算を行なう。この例では、期間１、２、３に蓄電池を割当てているため、この割当を選択肢１．２．３と呼ぶ。次に、選択肢１．２．４．５を評価する。これは、選択肢１．２．３における期間３に代えて、次の期間４を蓄電池の割当て期間に選択したものである。期間４では全て使い切れない場合、この例では残りを期間５に割当てる。このように期間１，２，４，５の順に蓄電池を割当てる選択肢を選択肢１．２．４．５のように呼ぶ。
【０１５２】
先頭が期間１であるような選択肢による割当て方を全て計算した後、先頭が期間２であるような選択肢、先頭が期間３であるような選択肢、…、先頭が期間５であるような選択肢を全て評価し、その中で最も電気代が少ない（又は発生ＣＯ２の量が最も少ない）選択肢を採用する。
【０１５３】
図３２及び図３３にこのような蓄電池の割当方法を実現するプログラムの制御構造をフローチャート形式で示す。図３４に、図６から蓄電池を除いた事例を示す。本実施の形態では、この状態から蓄電池を割当てる（充電又は給電）ことになる。図３４にはまた、利用電力（消費電力リスト２２４）も示している。
【０１５４】
図３２を参照して、まず、ステップ６４０で充電時間の探索を行なう。基本的に、各期間（消費電力リスト要素３３０）において、電力代が安いものから順番に利用可能な電力量を積上げたグラフを想定する。このグラフ上に、図３４に示されるように利用電力線を引く。この利用電力線が、電力会社から電力を購入することを示す矩形（「ＵＴ」と記載された矩形）内にあり、その期間の電気代が、電力会社からの電気代として最も安い場合、蓄電池に充電可能とする。利用電力線が太陽光発電の売電できない部分の上にある時、その期間を充電可能とする。利用電力線が電力会社からの購入を示す矩形（ＵＴ）内にあり、最低価格よりも電気代が高い場合、その期間において、充電済の蓄電池から給電可能とする。つまりそうした期間では蓄電池からの給電を利用する。利用電力線が電力会社からの購入を示す矩形（ＵＴ）内にあり、太陽光発電の電力を売電できるときには、その期間内においては、充電済の蓄電池から給電可能とする。その他期間の場合、例えば電気代が最大の電気代の半分以下の場合は充電可能とし、半分以上の場合、充電した電力を利用可能としても良い。すなわち、図３４の事例では、３時〜７時の間と、１３：３０〜１５時の期間は充電可能な期間である。
【０１５５】
なお、本事例では電力会社と太陽光のみを用いているが、他の発電がある場合、太陽光発電と同様に扱うことができる。
【０１５６】
ここで、図１８を参照して、消費電力リスト要素３３０に組込まれる、蓄電池関係の変数について説明する。蓄電池関係の変数は、蓄電池ステータスbatteryStatus、初期充電状況batteryInitialCharge、最終充電状況batteryFinalCharge、充電可能容量batteryExtraCharge、利用可能容量batteryPossibleUse、使用容量batteryUsed、及び後述する再帰的アルゴリズム中で既にこの消費電力リスト要素３３０が既に使用済みか否かを示すフラグである使用済フラグusedByRecursiveを含む。
【０１５７】
蓄電池ステータスbatteryStatusは蓄電池が充電可能な期間と給電可能な期間とを区別するための情報である。蓄電池が充電可能な期間では蓄電池ステータスbatteryStatusはCanChargeという値をとり、給電可能な期間では蓄電池ステータスbatteryStatusはCanUseという値をとる。蓄電池ステータスbatteryStatus＝CanChargeとなる期間、すなわち蓄電池が充電可能な期間については、蓄電池の特性及び充電状況に応じて、その期間でどれだけ蓄電池に充電できるかを計算する。
【０１５８】
初期充電状況batteryInitialChargeは、消費電力リスト要素３３０の充電可能な期間の開始時刻における蓄電池の充電状況を示す情報を保持する。
【０１５９】
最終充電状況batteryFinalChargeは、充電可能な期間の終了時刻において充電された後の蓄電池の充電状況を示す情報を保持する。例えば蓄電池が既に満充電であり、充電が可能な期間でもそれ以上充電ができない場合、初期充電状況batteryInitialCharge＝最終充電状況batteryFinalChargeとなる。
【０１６０】
なお、例えば充電期間があり、次に利用期間があって、再び充電期間、利用期間が続く、という場合のように、二つ以上の非連続充電期間がある場合、その間に蓄電池の電力が使われる可能性がある。図３４の場合、最初の充電期間は３時〜７時の間である。２番目に充電が可能な期間は１３時３０分〜１５時である。しかし、３時〜７時の間に蓄電された電力が７時〜１３時３０分の間に使われる可能性がある。そして、例えば１５時以降も蓄電池の電力が使われる可能性がある場合、１３時３０分〜１５時にも充電する方がよい。しかし、７時〜１３時３０分の間、蓄電池がどのように利用されるのかは図３２のステップ６４０の時点では分からない。その結果、１３時３０分〜１５時の間にどれだけ充電できるのかも分からない。よって、充電可能な期間では、それぞれの消費電力リスト要素３３０の充電可能容量batteryExtraChargeにその期間中に充電可能な量を保持しておく。
【０１６１】
蓄電池ステータスbatteryStatus＝CanUseに設定されている消費電力リスト要素３３０の利用可能容量batteryPossibleUseと利用容量batteryUsedとを設定する。初期状態では、利用可能容量batteryPossibleUseを蓄電池ステータスbatteryStatus＝CanChargeとなっている消費電力リスト要素であって、処理中の消費電力リスト要素よりも時間的に前のものの最終充電状況batteryFinalChargeに、利用容量batteryUsedを０に、それぞれ設定する。蓄電池調整処理中、蓄電池を使った場合、利用可能容量batteryPossibleUseと利用容量batteryUsedとを利用量に応じて調整する。
【０１６２】
次に、ステップ６４２で、消費電力リスト２２４の全消費電力リスト要素３３０の使用済フラグusedByRecursiveをＦａｌｓｅにする。使用済フラグusedByRecursiveは次のステップ６４４における再帰的アルゴリズム中、この消費電力リスト要素３３０が既に利用されているか否かを示す。使用済フラグusedByRecursiveの値がＴｒｕｅであればその消費電力リスト要素３３０は既に使用済であり、Ｆａｌｓｅであればまだ使用されていない。
【０１６３】
ステップ６４４で実際の割当てを以下のように行なう。ステップ６４４の詳細を図３３図３３に示す。
【０１６４】
図３３に示すルーチンは、再帰的アルゴリズムにより蓄電池割当関数を実現するプログラムの制御構造を示す。ここで用いられる変数（電力ポインタpowerPointer）は、再帰的呼出に伴うこのルーチンの実行のたびにスタックに生成される変数である。すなわち、この再帰的関数が呼びだされると、１つの電力ポインタpowerPointerがスタックに積まれ、再び再帰的関数が呼びだされると、もう１つの電力ポインタpowerPointerがスタックに積まれる。
【０１６５】
図３３に示す再帰的関数に入ると、まずステップ６６０で電力ポインタpowerPointerを消費電力リスト２２４の最初の消費電力リスト要素３３０に設定する。
【０１６６】
ステップ６６２で、使用済フラグusedByRecursive＝Ｆａｌｓｅとなっている最初の消費電力リスト要素３３０を探す。そのような消費電力リスト要素３３０が見つかった場合、制御はステップ６６４に遷移し、見つからなかった場合、このプログラムの実行を終了する。
【０１６７】
ステップ６６４では、電力ポインタpowerPointerを、ステップ６６２で見つかった消費電力リスト要素３３０に設定する。
【０１６８】
ステップ６６６で電力ポインタpowerPointerが指す消費電力リスト要素３３０の使用済フラグusedByRecursiveをＴｒｕｅに設定する。
【０１６９】
ステップ６６８で電力ポインタpowerPointerが指す消費電力リスト要素３３０の時間帯に対して、同じ時間帯に対応している時間軸リスト要素２３０を探し、変数である時間ポインタtimePointerに代入する。前述のように、１つの消費電力リスト要素３３０の時間帯は必ず１つの時間軸リスト要素２３０の時間帯に入るようになっている。次に無駄に発電される電力を示す変数である無駄電力wastePowerを、時間ポインタtimePointer内の電力軸リスト要素２４０のうち、無駄フラグwasteFlagがＴｒｕｅのものの利用可能な電力幅PowerRangeの合計とする。そして、電力ポインタpowerPointerが指す消費電力リスト要素３３０の利用可能容量batteryPossibleUseと利用容量batteryUsedとを下記の式にしたがって更新する。
【０１７０】
利用容量batteryUsed＝消費電力＊時間帯−無駄電力wastePower＊時間帯
ここで、利用可能容量batteryPossibleUse＞利用容量batteryUsedの場合、
利用可能容量batteryPossibleUse＝利用可能容量batteryPossibleUse−利用容量batteryUsed
とする。
【０１７１】
そうでない場合（利用可能容量batteryPossibleUse≦利用容量batteryUsed）、
利用容量batteryUsed＝利用可能容量batteryPossibleUse
利用可能容量batteryPossibleUse＝０
とする。
【０１７２】
次に、ステップ６７０で変数reductionAmountに電力ポインタpowerPointerの利用容量batteryUsedを代入する。変数reductionPointerを消費電力リスト２２４（powerConsumptionList）の最初の消費電力リスト要素３３０に設定する。
【０１７３】
次にステップ６７２で、変数reductionPointerにより示される消費電力リスト要素３３０の蓄電池ステータスbatteryStatus＝CanUseであり、かつ使用済フラグusedByRecursive＝Ｆａｌｓｅか否かを判定する。判定が肯定の場合、制御はステップ６７４に遷移し、そうでない場合ステップ６７６に遷移する。
【０１７４】
ステップ６７４では下記の更新を行なう。この後、制御はステップ６７６に進む。
【０１７５】
変数reductionPointerにより示される消費電力リスト要素３３０の充電可能容量batteryExtraCharge＞変数reductionAmountの場合、以下の更新を行なう。
【０１７６】
充電可能容量batteryExtraCharge＝充電可能容量batteryExtraCharge−reductionAmount
reductionAmount＝０
そうでない場合には以下の更新を行なう。
【０１７７】
reductionAmount＝reductionAmount−充電可能容量batteryExtraCharge
充電可能容量batteryExtraCharge＝０
利用可能容量batteryPossibleUse＝利用可能容量batteryPossibleUse−reductionAmount
ステップ６７６では、変数reductionPointerをリストの次の消費電力リスト要素３３０に設定する。
【０１７８】
ステップ６７８では、ステップ６７６の処理をした結果、消費電力リスト要素３３０の最後まで処理が終了したか否かを判定する。ステップ６７８の判定が否定の場合、制御をステップ６７２に戻す。ステップ６７８の判定が肯定の場合、ステップ６８０で蓄電池の容量を使いきったか否か、又は全ての期間に蓄電池を割当てたか否かについて判定する。いずれかの判定も否定の場合、制御はステップ６８２に進み、再び蓄電池割当て再帰的関数を呼出す。この後、制御はステップ６６２に遷移する。ステップ６８０の判定のいずれかが肯定である場合、制御はステップ６８４に遷移する。
【０１７９】
ステップ６８４では、電力ポインタpowerPointerにより示される消費電力リスト要素３３０の使用済フラグusedByRecursive＝Ｆａｌｓｅに設定する。ステップ６８４の処理が終了したらこのプログラムの実行を終了する。
【０１８０】
図３３に制御構造を示すプログラムをコンピュータで実行することにより、蓄電池の割当てに関する最適解を求めることがきる。しかし、演算量が膨大になる。このため、より演算量の少ないアルゴリズムを用いても良い。
【０１８１】
演算量を少なくするために、例えば、電気代の高い順番の時間帯に蓄電池から電力を給電するようにしてもよい。他の例として、電気代の高い順番の時間帯、かつ電力使用量の少ない順に蓄電池から電力を給電するようにしてもよい。太陽光発電がある場合、さらに太陽光発電による発電がある時間帯を優先してもよい。
【０１８２】
なお、上記したプログラムの構造を、時間シフトに対応するように変更する必要はない。例えば、ユーザが時間シフトを好まないには各装置について、稼動時間を時間シフト可能にする必要はない。この場合、図２４のステップ４４６〜ステップ４５４を実行する必要がない。また、動作可能時間リスト３０４及び動作の種類operationTypeも不要となる。
【０１８３】
なお、本アルゴリズムを売電（例えば太陽光）に対応する必要はない（太陽光がない家）。この場合、評価単価は電気代又はＣＯ２排出の意味のみとなる。
【０１８４】
なお、蓄電池が備えられていない家庭では、上記コンピュータプログラム及びデータ構造において、蓄電池に関連する部分は不要となる。例えばこの場合、図２６のステップ６０２の蓄電池調整が不要となる。図１８に示す消費電力リスト要素３３０中の蓄電池関連変数も不要となる。
【０１８５】
なお、分電盤には利用できる電力の上限がある。その上限を超えると、分電盤は電力供給を遮断し、分電盤に接続されている全ての商品への電力供給が止まる。このような場合を避けるため、例えば図８に示すスマートメータリスト要素２７０に分電盤の上限を示す変数breakerLimitを設けても良い。この場合、図２３のステップ４５８と図２５のステップ５７２とでは、消費電力（消費電力リスト２２４）の合計が変数breakerLimitの値を超えているか否かを時間帯ごとに確認し、消費電力の合計が変数breakerLimitの値以下となるようにスケジューリングを制限する必要がある。最終的にどの選択肢でも超えてしまう場合、図２及び図３に示す出力であるスケジュール１８０に警告を付すようにしても良い。
【０１８６】
各分電盤スイッチにも利用できる電力の上限がある。その上限を超えると、スイッチが切断される。このような場合を避けるため、例えば図９に示す分電盤スイッチリスト要素２８０にスイッチで利用できる電力の上限を示す変数switchLimitを設けても良い。この場合、通常は、switchLimit＜breakerLimit、かつbreakerLimit＜全switchLimitの合計である。この場合には、スイッチ毎の消費電力リスト２２４（図３、図６、図１８参照）を計算する必要がある。そして、図２３のステップ４５８と図２５のステップ５７２とでは、消費電力（消費電力リスト２２４）から変数switchLimitの値を超えていないことを確認する必要がある。最終的にどの選択肢でも超えてしまう場合、図２及び図３に示す出力であるスケジュール１８０に警告を出すようにしても良い。
【０１８７】
家の構造により、どのコンセントがどのスイッチに接続されているのか分からない場合がある。このような場合、変数breakerLimitのみで対応することになる。スマートメータの全体の消費電力が変数breakerLimitの値を超えるときは、上記手順に従えばよい。スマートメータの全体の消費電力が変数breakerLimitの値以下であっても、いずれかの分電盤スイッチの変数switchLimitの値を超えるときには、スイッチが落ちる可能性があるという警告を図２及び図３に示すスケジュール１８０に付して出力すればよい。
【０１８８】
１つの商品の動作は別の商品の動作に依存する場合がある。この依存関係の１例を図３５に示す。例えばテレビを見る際、照明を明るくするほうが目に優しいという発想がある。すなわち、テレビの電源がオンのときには照明の消費電力が大きくなるという関係があり、テレビと照明の電源に依存関係がある。掃除機を使う場合、窓又はシャッタを開けることが望ましい。窓及びシャッタが電動であれば、掃除機を使うという動作と、窓又はシャッタの開閉動作との間にも依存関係がある。このような場合のため、動作リスト要素３００（図１１）の各々に、その動作リスト要素３００の商品が依存する商品を示す項目を追加しても良い。依存先の商品にも、どの時間帯でその商品に依存する商品があるかを表す変数を準備しても良い。この場合、消費電力を計算する際、この依存性を参考にして全体の消費電力を計算することになる。
【０１８９】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【０１９０】
１００  エネルギ管理環境
１０２  電力会社
１０４  サービス
１０６  インターネット
１０８  商品
１１０  ＨＥＭＳ
１１２  太陽光パネル
１１４  蓄電池
１１６  パワコン
１１８  スマートメータ
１２０  インターネットＧＷ
１２２  商品
１５０  データベース
１５２  スケジューラ部
１５４  アドバイス部
１５６  自動制御部
１６０  電力会社情報
１６２  家庭内発電情報
１６４  気候
１６６  商品
１６８  ユーザ優先度
１７０  目標
２００  発電情報整理部
２０２  商品情報整理部
２０４  スケジュールアルゴリズム部
２１０  発電整理情報
２１２  商品整理情報
２２０  時間軸リスト
２２４  消費電力リスト
２３０  時間軸リスト要素
２３２  電力軸リスト
２４０  電力軸リスト要素
２５０  スマートメータリスト
２７０  スマートメータリスト要素
２７２  分電盤スイッチリスト
２８０  分電盤スイッチリスト要素
２８２  商品リスト
２９０  商品リスト要素
２９２  動作リスト
３００  動作リスト要素
３０２  動作ステップリスト
３０４  動作可能時間リスト
３１０  動作ステップリスト要素
３２０  動作可能時間リスト要素
３３０  消費電力リスト要素
６２０  利用電力線
【図１】
0005723144.tif 000005
【図２】
0005723144.tif 000006
【図３】
0005723144.tif 000007
【図４】
0005723144.tif 000008
【図５】
0005723144.tif 000009
【図６】
0005723144.tif 000010
【図７】
0005723144.tif 000011
【図８】
0005723144.tif 000012
【図９】
0005723144.tif 000013
【図１０】
0005723144.tif 000014
【図１１】
0005723144.tif 000015
【図１２】
0005723144.tif 000016
【図１３】
0005723144.tif 000017
【図１４】
0005723144.tif 000018
【図１５】
0005723144.tif 000019
【図１６】
0005723144.tif 000020
【図１７】
0005723144.tif 000021
【図１８】
0005723144.tif 000022
【図１９】
0005723144.tif 000023
【図２０】
0005723144.tif 000024
【図２１】
0005723144.tif 000025
【図２２】
0005723144.tif 000026
【図２３】
0005723144.tif 000027
【図２４】
0005723144.tif 000028
【図２５】
0005723144.tif 000029
【図２６】
0005723144.tif 000030
【図２７】
0005723144.tif 000031
【図２８】
0005723144.tif 000032
【図２９】
0005723144.tif 000033
【図３０】
0005723144.tif 000034
【図３１】
0005723144.tif 000035
【図３２】
0005723144.tif 000036
【図３３】
0005723144.tif 000037
【図３４】
0005723144.tif 000038
【図３５】
0005723144.tif 000039