以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.本開示の一実施形態
1.1.概要
1.2.システム構成例
1.3.動作例
2.まとめ
<1.本開示の一実施形態>
[1.1.概要]
本開示の一実施形態について説明する前に、本開示の一実施形態の概要について説明する。
各需要家に蓄電池を有するバッテリサーバを備え、商用電源や、太陽光、風力、地熱等の自然エネルギーにより発生した電力を用いて蓄電池に電力を蓄えておき、その蓄電池に蓄えた電力を使って電気製品を動作させる仕組みが、今後ますます普及していくことが想定される。そのような仕組みの普及を踏まえ、上述したように、ある需要家のバッテリサーバにおいて電力が不足した場合に、電力に余裕のある需要家のバッテリサーバから、その電力が不足している需要家のバッテリサーバに電力を融通するシステムが考案されている。電力を需要家同士で供給しあう際は、蓄電池からの電力供給を考慮すると、直流電力による供給が行われることが、効率面を考えると望ましい。
しかし、各需要家が好き勝手にバッテリサーバから直流電力を送電すると、目的の相手に正しく送電できなくなる。従ってバッテリサーバからの直流電力の送電やバッテリサーバへの受電を制御する制御権を管理することが望ましい。制御権の管理という観点から、需要家から直流電力を送電する直流のグリッドに接続される全てのバッテリサーバの動作を制御するマスタと、マスタの指示に従って動作するスレーブとにバッテリサーバの役割を分担することで、需要家間で直流電力を融通しあう方法が考えられる。
マスタとなるバッテリサーバは、直流のグリッドの電圧を設定し、マスタから直流の電力を送電したり、スレーブに対して直流の電力の送電を依頼したりすることで、目的の相手に直流電力を送電することができる。このようにマスタとスレーブとに役割を分担する場合、例えばマスタとなるバッテリサーバを常に固定したり、電力が不足している需要家からの要求に最初に応答したバッテリサーバをマスタにしたりする方法が考えられる。
しかし、マスタとなるバッテリサーバを常に固定してしまうと、そのバッテリサーバに負担が集中して不公平となる。また、そのマスタとなったバッテリサーバが何らかの理由で停止してしまった場合に、需要家間で直流電力の送受信が出来なくなってしまう。またマスタとなるバッテリサーバが、スレーブとなるバッテリサーバからマスタとなるバッテリサーバへ電力の送電を依頼した後に、そのスレーブが送電することを約束したにもかかわらず、そのスレーブの需要家におけるユーザの心変わり等の理由で、そのスレーブが送電をやめて、逆に受電を開始してしまうと、マスタとなるバッテリサーバから蓄えていた電力がその受電を開始してしまったスレーブに取られてしまったり、直流グリッドの電圧が大きく変動してしまったりする現象が想定され得る。
またマスタとなるバッテリサーバから、スレーブとなるバッテリサーバ間での電力の送受電を依頼した場合も、同様にユーザの心変わり等の理由で、スレーブとなるバッテリサーバにおいて、送電量や受電量の変更が発生したり、送電から受電へ切り替わったりすると、その偏差を全てマスタとなるバッテリサーバが引き受けることになり、マスタとなるバッテリサーバの負担が著しく重くなるという現象が想定され得る。
またスレーブとなるバッテリサーバが故障等の理由で停止した場合に、その停止をマスタとなるバッテリサーバが認識しなかった場合、スレーブに対する指示が不可能になって直流グリッドを制御できなくなったり、またマスタとなるバッテリサーバから蓄えていた電力が取られてしまったりする現象が想定され得る。
また、グリッドに接続が許可されていない、または接続されることが想定されていない機器が接続された場合、その機器はマスタからの制御対象外となるので、その機器が勝手に電力をグリッドに送電したり、グリッドから受電したり、また制御のためのコマンドを他のバッテリサーバに勝手に送信することでグリッドを混乱させたりする現象が想定され得る。
また、各バッテリサーバのユーザが、グリッドに接続された全ての装置の状態を知りたい場合、各バッテリサーバからそれぞれ情報の要求を個別にネットワークに送出してしまうと、ネットワークが混雑し、システムの適切な可動に支障をきたす現象が想定され得る。
そこで本件開示者は、上述したような現象の発生を回避しつつ、直流電力の送受電を制御する制御権を効率よく管理することが可能な技術について鋭意検討を行なった。その結果、本件開示者は、上述したような現象の発生を回避しつつ、他の需要家によって直流電力の送受電が行われていないかを確認した上で、直流電力の送受電を制御する制御権を効率よく管理することが可能な技術を考案するに至った。
以上、本開示の一実施形態の概要について説明した。続いて、本開示の一実施形態に係る送受電制御システムの機能構成例について説明する。
[1.2.システム構成例]
図1は、本開示の一実施形態に係る送受電制御システムの全体構成例を示す説明図である。図1に示したのは、蓄電池を有するバッテリサーバ間で直流電力を融通しあう送受電制御システムの全体構成例である。以下、図1を用いて本開示の一実施形態に係る送受電制御システムの全体構成例について説明する。
図1に示した送受電制御システム1は、各需要家(図1では4つ)に設けられるバッテリサーバ同士で、必要に応じて直流電力をDCグリッド(HVDC)で供給しあうことを目的として構築されたシステムである。需要家10aにはバッテリサーバ100aが設けられる。同様に需要家10bにはバッテリサーバ100bが、需要家10cにはバッテリサーバ100cが、需要家10dにはバッテリサーバ100dが、それぞれ設けられる。バッテリサーバ100a〜100dは、いずれも内部に、または外付けで、充放電可能なバッテリを備えている。
またバッテリサーバ100a〜100dは、直流バスライン20に接続されて、必要に応じて直流電力を供給しあう。バッテリサーバ100a〜100dは、バッテリの電圧と直流バスライン20の電圧とを変換する双方向DC−DCコンバータを備えている。またバッテリサーバ100a〜100dは、通信線30に接続されて、直流バスライン20を通じて直流電力を供給しあう際に、通信線30を通じて情報の送受信を行なう。なお図1では通信線30は有線であるとして示しているが、通信線30は無線であっても良い。
各需要家10a〜10dは、それぞれ太陽光パネル200a〜200dを備えていても良い。太陽光パネル200a〜200dは、いずれも太陽光の照射を受けて発電するパネルであり、発電した電力を、それぞれバッテリサーバ100a〜100dに備えられるバッテリに蓄えることが出来るよう構成されている。なおバッテリサーバ100a〜100dに蓄えられる電力は、太陽光の他に、風力や地熱その他の自然エネルギーにより発生した電力であってもよい。
そして本実施形態に係る送受電制御システム1は、直流バスライン20に接続されているバッテリサーバ100a〜100dの中の1つだけが、直流バスライン20を通じた直流電力の送受電を制御する制御権を有するように、バッテリサーバ100a〜100d間で調停する仕組みを備えたことを特徴としている。すなわち本実施形態に係る送受電制御システム1は、バッテリサーバ100a〜100dの中で制御権を有しているバッテリサーバだけが、他のバッテリサーバに対して、バッテリに蓄えた電力の送電や、バッテリへ充電するための電力の受電を指示し、制御権を有していないバッテリサーバは、勝手に電力の送受電を行なうことが出来ないようにする仕組みを備えている。
このように、直流バスライン20に接続されているバッテリサーバ100a〜100dの中の1つだけが制御権を有して、他のバッテリサーバに対して直流バスライン20を通じた直流電力の送受電を制御することで、本実施形態に係る送受電制御システム1は、上述したような単にマスタとスレーブとに役割を分担する場合に生じ得る現象を回避し、直流電力の送受電を制御する制御権を効率よく管理することが可能になる。そして本実施形態に係る送受電制御システム1は、直流電力の送受電を制御する制御権を効率よく管理することで、バッテリサーバ間での制御の秩序を保つことが可能になる。
なお、直流バスライン20に接続されている全てのバッテリサーバが図1で示したように通信線30で接続されていれば、直流電力の送受電を制御する制御権を効率よく管理することは出来る。しかし、例えば直流バスライン20に接続されてはいるが、他のバッテリサーバと通信線30で接続されていないバッテリサーバが存在しているような場合、そのバッテリサーバが勝手に直流バスライン20に電圧を設定したり、直流バスライン20から受電したり、直流バスライン20へ送電したりすると、他のバッテリサーバは動作に混乱を来すおそれがある。
そこで、本開示の一実施形態に係る送受電制御システムを構成するバッテリサーバは、以下で説明するように、制御権を得て直流バスライン20を通じた送受電を制御する際に、他に直流バスライン20に対して電圧を設定したり送受電したりしている装置が存在していないかどうかを確認する。他に直流バスライン20に対して電圧を設定したり送受電したりしている装置が無ければ、そのバッテリサーバは正式に制御権を得て直流バスライン20を通じた送受電を制御する。一方、他に直流バスライン20に対して電圧を設定したり送受電したりしている装置があれば、その装置は別途制御権を得て制御しようとしているのかもしれないので、そのバッテリサーバは所定の時間待機した後に再度確認を行って、他に直流バスライン20に対して電圧を設定したり送受電したりしている装置があることが所定回数確認できた場合は制御権獲得エラーとする。
本開示の一実施形態に係る送受電制御システムを構成するバッテリサーバは、このような動作を行うことで、直流バスライン20に接続されているバッテリサーバの内の1台のみが確実に制御権を得て、直流バスライン20を通じた送受電の制御を可能にする。
以上、図1を用いて本開示の一実施形態に係る送受電制御システムの全体構成例について説明した。続いて本開示の一実施形態に係る送受電制御システムの機能構成例について説明する。
図2は、本開示の一実施形態に係る送受電制御システムの機能構成例を示す説明図である。以下、図2を用いて本開示の一実施形態に係る送受電制御システムの機能構成例について説明する。
図2に示したように、バッテリサーバ100aは、U−CPU110aと、M−CPU120aと、GM−CPU130aと、C−CPU140aと、DC−DCコンバータ150aと、バッテリ160aと、乱数生成器(RND)190aと、を含んで構成される。バッテリサーバ100b、100c、100dについても、バッテリサーバ100aと同等の構成を有する。以下では、バッテリサーバ100aを構成する各要素についての説明を行う。
図2に示したように、通信線30は通信線30a、30bの2つの経路(チャネル)に分かれている。通信線30a、30bは、物理的に異なる有線の通信線であってもよく、物理的には同一の有線または無線の通信線であって、認証や暗号化等によって論理的に分かれていてもよい。そして図2に示したように、U−CPU110a及びM−CPU120aは通信線30aで他のU−CPU110b〜110d及びM−CPU120b〜120dと通信し、GM−CPU130a及びC−CPU140aは通信線30bで他のGM−CPU130b〜130d及びC−CPU140b〜140dと通信する。
本実施形態に係る送受電制御システム1は、このようにU−CPU110a及びM−CPU120aと、GM−CPU130a及びC−CPU140aとで通信経路を分けることで、U−CPU110a及びM−CPU120aがGM−CPU130a及びC−CPU140aへ直接指示を送出することを防ぎ、またGM−CPU130a及びC−CPU140aがU−CPU110a及びM−CPU120aへ直接指示を送出することも防いでいる。
U−CPU110aは、本開示の送受電要求部の一例である。U−CPU110aは、バッテリ160aの充電状態(SOC;State of Charge)を定期的に確認する。そしてU−CPU110aは、バッテリ160aの充電状態が所定の条件を満たした場合に、M−CPU120aへ受電を依頼する。U−CPU110aがM−CPU120aへ送出する依頼の内容は、受電の際の電圧値や電流値、受電する時間(例えば、開始時刻、終了時刻、継続時間等)、受電を停止するバッテリ160aの充電状態、などが含まれ得る。
U−CPU110aは、バッテリ160aの充電状態が所定の条件を満たしたかどうかの判断に、シナリオ170aを参照する。シナリオ170aには、U−CPU110aがM−CPU120aへ受電を依頼するためのバッテリ160aの充電状態の条件が記述されている。シナリオ170aに記述される条件としては、例えば、バッテリ160aの充電状態が20%以下になるとU−CPU110aがM−CPU120aへ受電を依頼する、という内容があり得る。
U−CPU110aは、ユーザからの要求に基づき、シナリオ170aの内容を編集する機能を有していても良い。シナリオ170aの内容は例えばテキストで記述されてもよく、XML(Extensible Markup Language)等のマークアップ言語で記述されてもよく、Lisp、Perl、PHP等のスクリプト言語として記述されていてもよい。シナリオ170aの内容がスクリプト言語で記述されている場合は、シナリオ170aの内容は、例えば関数の塊として記述され得る。
またシナリオ170aの編集には、例えばテキストエディタが用いられてもよく、専用のエディタが用いられてもよく、Webブラウザが用いられてもよい。U−CPU110aは、これらのシナリオ170aの内容を編集することが可能なツールが動作可能に構成され得る。
またシナリオ170aには、他のバッテリサーバから電力の要求があった場合に、どのような条件を満たしていればその要求に応えて送電を許可するか、についても記述され得る。シナリオ170aに記述される条件としては、例えば、他のバッテリサーバから電力の要求があった場合に、バッテリ160aの充電状態が80%以上であればその要求に応えて送電を許可する、という内容があり得る。またシナリオ170aに記述される条件としては、例えば、他のバッテリサーバから電力の要求があった場合に、バッテリ160aの充電状態が80%以上であり、かつ、電力の1時間あたりの使用率が10%以下であればその要求に応えて送電を許可する、という内容があり得る。すなわち、バッテリ160aの充電状態だけでなく、バッテリ160aに蓄えられた電力の使用状態も、シナリオ170aに記述される条件に含まれ得る。
シナリオの内容は、各バッテリサーバで独自に定められることが出来る。従って、上述の受電を依頼するための条件や、他のバッテリサーバから電力の要求があった場合にその要求に応えて送電を許可するための条件は、各バッテリサーバでそれぞれ異なり得る。また各バッテリサーバで定められるシナリオは、1つだけに限定されず、状況に応じてU−CPU110aが参照するシナリオが切り替えられても良い。
M−CPU120aは、本開示の送受電調停部の一例である。M−CPU120aは、U−CPU110aから受電の依頼が発生した場合に、他のバッテリサーバのM−CPU120b、120c、120dとの間で通信線30aを通じて通信を行なって、送電可能かどうかを問い合わせる。またM−CPU120aは、他のバッテリサーバのM−CPU120b、120c、120dから送電可能かどうかの問い合わせがあった場合に、送電可能、または送電不可能の回答を返答する。
またM−CPU120aは、他のバッテリサーバのM−CPU120b、120c、120dから送電可能かどうかの問い合わせがあった場合に、送電可能であると回答する時は、GM−CPU130aが起動されていなければ、他のバッテリサーバのM−CPU120b、120c、120dへ、GM−CPU130b、130c、130dが起動中かどうか、通信線30aを通じて問い合わせる。詳細は後述するが、GM−CPU130aは、M−CPU120aからの起動指示に基づいて起動して、各バッテリサーバのDC−DCコンバータ150a〜150dの動作を制御する。
本実施形態に係る送受電制御システム1では、GM−CPU130a〜130dの中のいずれか1つだけが起動を許可される。従ってM−CPU120aは、GM−CPU130aが起動されていなければ、バッテリサーバ100aは送受電の制御権を有していないと判断して、他のバッテリサーバのM−CPU120b、120c、120dへ、送受電の制御権を有しているか、すなわち、GM−CPU130b、130c、130dが起動中かどうかを通信線30aを通じて問い合わせる。起動中のGM−CPUがあれば、M−CPU120aは、その起動中のGM−CPUに、そのGM−CPUを起動させているM−CPUを介して送受電を依頼する。例えばGM−CPU130bが起動中であれば、M−CPU120aは、M−CPU120bを介して、GM−CPU130bへ電力の送受電を依頼する。
一方、他のバッテリサーバのM−CPU120b、120c、120dから送電可能かどうかの問い合わせがあった場合に、送電可能であると回答する時は、GM−CPU130aが起動されていれば、GM−CPU130aが起動中である旨を併せて回答する。
M−CPU120aは、制御権を有しているバッテリサーバのGM−CPUのみからの指示に従うようにC−CPU140aに通知する。例えばM−CPU120aは、制御権を有しているバッテリサーバのGM−CPUを識別する識別情報をC−CPU140aに通知する。C−CPU140aは、制御権を有しているバッテリサーバのGM−CPUを識別する識別情報の通知を受けることで、その識別情報以外の識別情報を有するGM−CPUからの指示を無視することが出来る。
M−CPU120aは、他のバッテリサーバが同じタイミングで制御権を獲得しようとしていたことが分かった場合、乱数生成器190aが発生させる乱数を用いて待機時間を設定し、その待機時間後に再度制御権の獲得処理を開始する。
GM−CPU130aは、本開示の送受電管理部の一例である。GM−CPU130aは、M−CPU120aからの起動指示によって起動されて活性化され、M−CPU120aからの停止指示によって停止されて不活性化される。活性化されたGM−CPU130aは、M−CPU120a〜120dからの電力の送受電の依頼に基づき、C−CPU140a〜140dを介してDC−DCコンバータ150a〜150dによる電力の送受電を、通信線30bを通じて制御する。そしてGM−CPU130aは、依頼された全ての電力の送受電が終了すると、制御権を開放する手続きを実行する。制御権を開放すると、GM−CPU130aはM−CPU120aからの停止指示によって停止されて不活性化される。
GM−CPU130aは、M−CPU120a〜120dから電力の送受電の依頼があると、各バッテリサーバ100a〜100dの送電能力及び受電能力をC−CPU140a〜140dから通信線30bを通じて取得する。またGM−CPU130aは、加えて直流バスライン20の総送電電流量から、送電可能な電流量を算出する。GM−CPU130aは、送電開始後に、累積送電量が要求された送電量に達すると、その送電を停止するようC−CPU140a〜140dに通信線30bを通じて指示する。
C−CPU140aは、本開示の送受電制御部の一例である。C−CPU140aは、GM−CPU130a〜130dの中の、活性化された(すなわち、制御権を有する)GM−CPUからの指示に基づいてDC−DCコンバータ150aを制御する。C−CPU140aは、制御権を有しているバッテリサーバのGM−CPUのみからの指示に従うようにM−CPU120aから通知を受けているので、制御権を有しているバッテリサーバのGM−CPUからの指示のみに従ってDC−DCコンバータ150aを制御する。C−CPU140aは、DC−DCコンバータ150aを制御することで、DC−DCコンバータ150aを通じたバッテリ160aの充放電を制御することが出来る。
C−CPU140aは、定期的にDC−DCコンバータ150aのパラメータをチェックする。DC−DCコンバータ150aのパラメータに異常が生じると、送電または受電相手に警告を通知する。
DC−DCコンバータ150aは、バッテリ160aや太陽光パネル200aとローカルバスライン21aで接続されるとともに、他のバッテリサーバ100b〜100dのDC−DCコンバータ150b〜150dと直流バスライン20で接続されている。DC−DCコンバータ150aは、C−CPU140aの制御に基づき、直流バスライン20とローカルバスライン21aとの間の直流電力の変換を行なう。
U−CPU110aは、各バッテリサーバ100a〜100dで独立のシナリオ170aに従って動作する。M−CPU120a、GM−CPU130a及びC−CPU140aは、全てのバッテリサーバ100a〜100dで共通のポリシ180に従って動作する。従って、M−CPU120a、GM−CPU130a及びC−CPU140aは、他のバッテリサーバ100b〜100dと異なるルールで動作することは許されない。
ポリシ180の内容は例えばテキストで記述されてもよく、XML(Extensible Markup Language)等のマークアップ言語で記述されてもよく、Lisp、Perl、PHP等のスクリプト言語として記述されていてもよい。ポリシ180の内容がスクリプト言語で記述されている場合は、ポリシ180の内容は、例えば関数の塊として記述され得る。
またポリシ180の編集には、例えばテキストエディタが用いられてもよく、専用のエディタが用いられてもよく、Webブラウザが用いられてもよい。上述したように、ポリシ180は全てのバッテリサーバ100a〜100dで共通のものが参照されるので、ユーザが簡単に編集できないようにされていることが望ましいが、必要に応じて編集されることも有り得る。M−CPU120a、GM−CPU130aまたはC−CPU140aは、ポリシ180に定められたルールに基づいて、ポリシ180の編集を実行し得る。
シナリオ170aに記述される内容としては、例えば以下の様なものが考えられ得る。
・電力供給を依頼するSOCレベル
・電力提供可能と判断するSOCレベル
・1日の消費サイクルによるバッテリ残存量予測計算手法
・気象情報取得に依る一週間の発電量予測計算手法
・電力融通に依るAC電力利用削減計算
ポリシ180に記述される内容としては、例えば、ドキュメントのバージョン、変更日時、記述内容を変更する際のルール、M−CPU120a〜120d、GM−CPU130a〜130d、C−CPU140a〜140dのそれぞれに対して定められるルールが含まれ得る。
M−CPU120a〜120dに対して定められるルールとしては、例えば以下の様なものが考えられ得る。
・制御権獲得のための判断条件や判定手順
・他の装置からの異議申立てに対する判定手順
・送受電制御システム1に参加するバッテリサーバの生存確認手順
・送受電制御システム1に参加していたバッテリサーバの登録削除手順
・送受電制御システム1に参加するメンバーのリスト及びメンバーの認証情報
制御権獲得のための判断条件の例としては、賛成したM−CPUが1つでもあれば制御権を獲得できる、過半数が賛成すれば制御権を獲得できる、等が考えられる。制御権獲得のための判定手順の例としては、制御権獲得のために他のM−CPUにコマンドをブロードキャスト送信し、所定時間内に返答を返した他のM−CPUからの返答に基づいて制御権の獲得の是非を判定する、などが考えられる。同様に、他の装置からの異議申立てに対する判定手順の例としては、制御権獲得のために他のM−CPUにコマンドを送信し、所定時間内に返答を返した他のM−CPUからの異議申立ての内容に基づいて制御権の獲得の是非を判定する、などが考えられる。
送受電制御システム1に参加するバッテリサーバの生存確認手順の例としては、最後に制御権を獲得したバッテリサーバのM−CPUが他のバッテリサーバの生存確認を確認する、等が考えられる。
送受電制御システム1に参加していたバッテリサーバの登録削除手順の例としては、例えば削除を要求するコマンドに基づき、ポリシ180に記述されている登録情報を削除する、等が考えられる。
またポリシ180に送受電制御システム1に参加するメンバーのリスト及びメンバーの認証情報が記述されていることで、M−CPUは、そのメンバーに対してのみ各種コマンドを送信したり、コマンドの送信の際に認証情報を付加したりすることが出来る。メンバーの認証情報としては、例えば各バッテリサーバのアドレス情報や、共通の認証鍵等が考えられる。
GM−CPU130a〜130dに対して定められるルールとしては、例えば以下の様なものが考えられ得る。
・自分の位置から見た各バッテリサーバの接続状態の情報
・各バッテリサーバの接続状態の情報に基づく電流容量の計算手法
・DC−DCコンバータの制御手順及び制限事項
・各バッテリサーバに対する電力送電、受電に関する開始から終了までの手順
・電力供給が停止したことによる制御権の放棄または委譲手順
・異常が通知された場合の処理手順
直流バスライン20には直流の電力が流れるので、GM−CPU130a〜130dは、バッテリサーバ100a〜100dの直流バスライン20への接続状態を把握しておき、そのバッテリサーバ100a〜100dの位置情報に基づき、どのように電力を供給するかを決定することが求められる。ポリシ180には、バッテリサーバ100a〜100dの直流バスライン20への接続状態を記述しておくことで、GM−CPU130a〜130dは、その接続状態を参照し、DC−DCコンバータ150a〜150dを制御する。
DC−DCコンバータの制御手順の例としては、例えば直流電圧を変換する際にDC−DCコンバータに送出する指示の内容等が考えられる。またDC−DCコンバータの制限事項としては、例えば電圧の変換可能範囲等が考えられる。
各バッテリサーバに対する電力送電、受電に関する開始から終了までの手順の例としては、電力送電や受電の開始時の電流の上げ方の手順、電力送電や受電の終了時の電流の下げ方の手順等が考えられる。
電力供給が停止したことによる制御権の放棄または委譲手順としては、例えば、他に電力を供給しているバッテリサーバがあれば、そのバッテリサーバに制御権を委譲する等の手順が考えられる。
異常が通知された場合の処理手順としては、例えば、あるバッテリサーバが故障したら、そのバッテリサーバは無視して処理を進める等の手順が考えられる。
C−CPU140a〜140dに対して定められるルールとしては、例えば以下の様なものが考えられる。
・制御権を有しているバッテリサーバのGM−CPUからの制御が続いているか確認する手順及び異常処理手順
・複数のGM−CPUから同時に制御されていないかどうかを確認する手順
・複数のGM−CPUから同時に制御されていた場合の処理手順
・DC−DCコンバータの動作を確認し制御権を有しているバッテリサーバのGM−CPUに適宜通知するモニタリング手順
制御権を有しているバッテリサーバのGM−CPUからの制御が続いているか確認する手順としては、例えば所定間隔毎にGM−CPUからの制御が発生したかどうかを確認する等が考えられる。また異常処理手順としては、GM−CPUからの制御が所定の時間以上途絶えたら制御権を有しているバッテリサーバのGM−CPUにその旨を通知する等が考えられる。
複数のGM−CPUから同時に制御されていないかどうかを確認する手順としては、M−CPUから通知された識別情報とは異なる識別情報を有するGM−CPUからの制御が発生しているかどうかを確認するなどが考えられる。そして複数のGM−CPUから同時に制御されていた場合の処理手順としては、例えばM−CPUから通知された識別情報とは異なる識別情報を有するGM−CPUからの制御は無視する、全てのGM−CPUからの制御をエラーとして扱って、制御権を有しているバッテリサーバのGM−CPUに複数のGM−CPUから同時に制御されている旨を通知する、等が考えられる。
DC−DCコンバータの動作を確認し制御権を有しているバッテリサーバのGM−CPUに適宜通知するモニタリング手順の例としては、所定間隔毎にDC−DCコンバータのパラメータを確認し、制御権を有しているバッテリサーバのGM−CPUにDC−DCコンバータのパラメータを通知する、等が考えられる。
ポリシ180が上述のように規定されていることで、C−CPU140a〜140dは、GM−CPUからの指示がポリシ180の内容に違反していれば、即座にDC−DCコンバータ150a〜150dに送受電の停止指示を送出することが可能になる。
もちろん、上述したシナリオ170aやポリシ180の記述内容及びシナリオ170aやポリシ180の記述内容の例は、上述したものに限定されるものではない。シナリオ170aやポリシ180の記述内容は、送受電制御システム1の構成や各バッテリサーバ100a〜100dの構成に応じて適宜変更され得る。
ところで、バッテリサーバ間の調停により制御権を得たとしても、その調停に参加していない装置が、直流バスライン20に対して別途電圧を設定したり送受電したりしていると、制御権を得たバッテリサーバは直流バスライン20に対する制御を適切に行うことが出来ない。例えば、直流バスライン20に電圧を設定し、バッテリサーバを指定して送受電させようとしても、他に直流バスライン20に対して別途電圧を設定したり送受電したりしている装置があると、制御権を得たバッテリサーバは意図通りの送受電の制御が出来なくなる。
そこで、C−CPU140aは、制御権の獲得についてGM−CPU130aから指示されると、DC−DCコンバータ150aを制御して直流バスライン20の電圧を設定する。この際、C−CPU140aは、乱数生成器190aが発生させた乱数を用いて、直流バスライン20に設定する電圧値を決定する。そしてC−CPU140aは、決定した値通りに直流バスライン20の電圧を設定することが出来ていれば、他に直流バスライン20に対して別途電圧を設定したり送受電したりしている装置はないと判断し、GM−CPU130aに対してその旨を通知する。
GM−CPU130aは、C−CPU140aが決定した値通りに直流バスライン20の電圧を所定の回数設定することが出来れば、バッテリサーバ100aが問題なく制御権を獲得出来たと判断する。GM−CPU130aは、バッテリサーバ100aが問題なく制御権を獲得出来たと判断すると、バッテリサーバ100aが問題なく制御権を獲得出来たことをM−CPU120aに通知する。M−CPU120は、問題なく制御権を獲得出来たことを他のバッテリサーバに通知する。
バッテリ160aは、充放電可能な二次電池で構成される。バッテリ160aは、太陽光パネル200aが発電した電力や、商用電源(図示せず)から供給される電力によって充電され得る。またバッテリ160aは、必要に応じて他のバッテリサーバ100b〜100dから供給される電力によって充電され得る。またバッテリ160aに蓄えられた電力は、需要家10aにおいて設けられるエアーコンディショナー、冷蔵庫、洗濯機、テレビ受像機、電子レンジその他の電化製品に供給され得る。さらにバッテリ160aに蓄えられた電力は、他のバッテリサーバ100b〜100dからの求めに応じて、DC−DCコンバータ150aから他のバッテリサーバ100b〜100dへ供給され得る。
乱数生成器190aは、乱数を生成する。乱数生成器190aは、完全にランダムな値を生成することができる真正乱数生成器であってもよく、各バッテリサーバに固有の情報に基づいてランダムな値を生成することができる生成器であってもよい。乱数生成器190aが発生させた乱数は、M−CPU120aやC−CPU140aで使用される。
乱数生成器190aが生成する乱数は、他に直流バスライン20に対して電圧を設定したり送受電したりしている装置が存在していないかどうかを確認するために用いられる。詳細については後述するが、乱数生成器190aが生成する乱数は、他に直流バスライン20に対して電圧を設定したり送受電したりしている装置が存在していないかどうかを確認する際に、直流バスライン20に設定する電圧値の生成のために用いられる。また乱数生成器190aが生成する乱数は、他に直流バスライン20に対して電圧を設定したり送受電したりしている装置が確認された際に、所定の待ち時間の生成のために用いられる。
本開示の一実施形態に係るバッテリサーバ100a〜100dは、図2に示したような構成を有することで、1つのバッテリサーバだけが制御権を有して、他のバッテリサーバに対して直流バスライン20を通じた直流電力の送受電を制御することができる。本開示の一実施形態に係るバッテリサーバ100a〜100dは、図2に示したような構成を有することで、上述したような単にマスタとスレーブとに役割を分担する場合に生じ得る現象を回避し、直流電力の送受電を制御する制御権を効率よく管理することが可能になる。そして本開示の一実施形態に係るバッテリサーバ100a〜100dは、図2に示したような構成を有することで、直流電力の送受電を制御する制御権を効率よく管理することで、バッテリサーバ間での制御の秩序を保つことが可能になる。
また本開示の一実施形態に係る送受電制御システムを構成するバッテリサーバ100a〜100dは、図2に示したような構成を有することで、直流バスライン20に接続されているバッテリサーバの内の1台のみが確実に制御権を得て、直流バスライン20を通じた送受電の制御を可能にする。
また本開示の一実施形態に係る送受電制御システムを構成するバッテリサーバ100a〜100dは、図2に示したような構成を有することで、他に直流バスライン20に対して電圧を設定したり送受電したりしている装置が存在していないかどうかを確認することができる。バッテリサーバ100a〜100dは、図2に示したような構成を有することで、制御権を得た後に他に直流バスライン20をコントロールしているバッテリサーバが本当に存在しないかを確認することで、DCグリッドを安全に機能させることが可能となる。
なお、直流バスライン20やローカルバスライン21a〜21dの形態は特定の構成に限定されるものではない。例えば直流バスライン20やローカルバスライン21a〜21dは、2つのラインで正電圧及び負電圧を供給し、もう1つのラインでグランドに接続される直流単相3線式のバスラインとして構成されていても良い。
以上、図2を用いて本開示の一実施形態に係る送受電制御システムの機能構成例について説明した。続いて、本開示の一実施形態に係る送受電制御システムの動作例について説明する。
[1.3.動作例]
まず、本開示の一実施形態に係るバッテリサーバ100aが有する、U−CPU110a、M−CPU120a、GM−CPU130a、及びC−CPU140aのタスクについて整理して説明する。
図3は、本開示の一実施形態に係るバッテリサーバ100aが有する、U−CPU110a、M−CPU120a、GM−CPU130a、及びC−CPU140aのタスクを示す説明図である。
U−CPU110aは、タイマによって周期的にシナリオ170aを参照し、バッテリサーバ100aの状態(例えばバッテリ160aのSOC)がシナリオ170aで規定されている条件を満たしているかどうかを判断する。U−CPU110aは、バッテリサーバ100aの状態(例えばバッテリ160aのSOC)がシナリオ170aで規定されている条件を満たしていれば、M−CPU120aに電力の受電を依頼する。
M−CPU120aは、U−CPU110aから電力の受電の依頼を受けると、直流電力の送受電を制御する制御権に関する調停を他のM−CPU120b〜120dとの間で行なう。またM−CPU120aは、他のバッテリサーバ100b〜100dで受電の依頼が発生した場合も、同じく直流電力の送受電を制御する制御権に関する調停を他のM−CPU120b〜120dとの間で行なう。
調停の結果、例えばバッテリサーバ100aが制御権を得られたとする。M−CPU120aは、GM−CPU130aを起動して、GM−CPU130aを活性化させる。またM−CPU120aは、GM−CPU130aを識別する識別情報をC−CPU140aに通知する。活性化されたGM−CPU130aは、ポリシ180を参照して、タイマによって周期的に、電力を送受電するための情報をC−CPU140a〜140dに通知する。
C−CPU140aは、M−CPU120aから通知された識別情報を有するGM−CPU(ここで示した例ではGM−CPU130a)からの通知に基づいてDC−DCコンバータ150aを制御して、直流バスライン20を通じた電力の送受電を行なう。C−CPU140aはタイマによって周期的にDC−DCコンバータ150aのパラメータを参照し、異常が発生していないかどうかを確認する。
もしDC−DCコンバータ150aに異常が発生していれば、C−CPU140aは、DC−DCコンバータ150aに異常が発生したことをGM−CPU130aに通知する。またC−CPU140aは、GM−CPU130aからの通知の発生の有無をタイマによって周期的に確認する。GM−CPU130aからの通知が所定時間以上発生しなかった場合は、C−CPU140aは、GM−CPU130aからの通知が所定時間以上発生しなかったことをGM−CPU130aに通知する。C−CPU140aは、GM−CPU130aからの通知が所定時間以上発生しなかったことをGM−CPU130aに通知した後で、DC−DCコンバータ150aによる直流電力の送受電を停止してもよい。
本開示の一実施形態に係るバッテリサーバ100aが有する、U−CPU110a、M−CPU120a、GM−CPU130a、及びC−CPU140aは、図3に示したようなタスクをそれぞれ実行することで、バッテリサーバ間での制御の秩序を保つことが可能になる。
続いて、本開示の一実施形態に係るバッテリサーバ100aの動作例について説明する。図4及び図5は、本開示の一実施形態に係るバッテリサーバ100aの動作例を示す流れ図である。図4及び図5に示したのは、M−CPU120aによる調停によって制御権を得ようとする場合、または既に制御権を得ている場合に、直流バスライン20の電圧設定を行うことで他に制御権を得ようとしているバッテリサーバが存在していないかどうかを確認する際の、バッテリサーバ100aの動作例である。以下、図4及び図5を用いて、本開示の一実施形態に係るバッテリサーバ100aの動作例を説明する。
直流バスライン20に接続が許可されていない、または接続されることが想定されていない機器が接続された場合、その機器は制御権を得たバッテリサーバからの制御対象外となるので、その機器が勝手に電力を直流バスライン20に送電したり、直流バスライン20から受電したり、また制御のためのコマンドを他のバッテリサーバに勝手に送信することで、DCグリッドを混乱させたりする現象が想定され得る。
そこで、本実施形態に係るバッテリサーバは、他のバッテリサーバとの間で制御権を得るための調停を行って、その調停により制御権を得ることが許された場合に、直流バスライン20に対して電圧を設定することで本当に制御権を得ることが出来ているのかどうか判断する。直流バスライン20への設定する電圧と、実際の直流バスライン20の電圧とが矛盾する、すなわち一致していなければ、バッテリサーバは、他のバッテリサーバによって直流バスライン20への電圧制御が行われていると判断する。
バッテリサーバ100aは、M−CPU120aによる調停によって直流バスライン20の制御権を得ようとする場合に、まずM−CPU120aからGM−CPU130aに対して制御権の獲得を指示する(ステップS101)。GM−CPU130aは、制御権の獲得の指示をM−CPU120aから受けると、カウンタCNT1を1に設定する(ステップS102)。このカウンタCNT1は、一連の確認処理の実行回数をカウントするためのカウンタである。
GM−CPU130aは、カウンタCNT1を1に設定すると、続いてC−CPU140aに、DC−DCコンバータ150aを通じて直流バスライン20の電圧値の読み取りを指示する(ステップS104)。GM−CPU130aは、直流バスライン20の電圧値を読み取った結果、直流バスライン20の電圧値が所定の最低電圧以上であるかどうかを判断する(ステップS105)。
直流バスライン20の電圧値が所定の最低電圧以上であれば(ステップS105、Yes)、他に直流バスライン20の制御権を得ているバッテリサーバが存在すると判断し、GM−CPU130aはM−CPU120aに対して他に直流バスライン20の制御権を得ているバッテリサーバが存在する旨を通知する。M−CPU120aは、GM−CPU130aからの通知に基づいて、制御権を得ているバッテリサーバを検索する(ステップS106)。
一方、直流バスライン20の電圧値が所定の最低電圧未満であれば(ステップS105、No)、GM−CPU130aは、所定の目標電圧と目標電流値を、C−CPU140aを通じてDC−DCコンバータ150aに設定して、DC−DCコンバータ150aの制御を開始する(ステップS107)。具体的には、GM−CPU130aは、直流バスライン20の電圧値を目標電圧まで徐々に上昇させるランプアップを、C−CPU140aを通じてDC−DCコンバータ150aに実行させる。
GM−CPU130aは、DC−DCコンバータ150aによるランプアップが終了するまで待機し(ステップS108)、ランプアップが終了すると、C−CPU140aを通じてDC−DCコンバータ150aに直流バスライン20の電圧値を読み取らせる(ステップS109)。
そして、GM−CPU130aは、ランプアップ終了後の直流バスライン20の電圧値が目標電圧になっているかどうかを判断する(ステップS110)。ランプアップ終了後の直流バスライン20の電圧値が目標電圧となっていれば(ステップS110、Yes)、GM−CPU130aは、カウンタCNT2を1に設定する(ステップS111)。このカウンタCNT2は、直流バスライン20の電圧が目標電圧となった後の再度の電圧設定処理の実行回数をカウントするためのカウンタである。
GM−CPU130aは、カウンタCNT2を1に設定すると、続いて乱数生成器190aが発生させた乱数をC−CPU140aに読み取らせる。C−CPU140aは、乱数生成器190aが発生させた乱数を用いて、直流バスライン20に設定する新たな目標電圧値を生成する(ステップS112)。
C−CPU140aは、直流バスライン20に設定する新たな目標電圧値を生成すると、DC−DCコンバータ150aにその目標電圧を設定する(ステップS113)。DC−DCコンバータ150aが目標電圧に基づいて直流バスライン20へ電圧を設定すると、C−CPU140aは、DC−DCコンバータ150aに直流バスライン20の電圧値を読み取らせる(ステップS114)。そしてC−CPU140aは、直流バスライン20の電圧値が上記ステップS113で設定した目標電圧になっているかどうかを判断する(ステップS115)。
直流バスライン20の電圧値が上記ステップS113で設定した目標電圧となっていれば(ステップS115、Yes)、C−CPU140aはGM−CPU130aに対して、直流バスライン20の電圧値が上記ステップS113で設定した目標電圧となっていることを通知する。そして通知を受けたGM−CPU130aは、カウンタCNT2の値が指定された回数になっているか判断する(ステップS116)。
カウンタCNT2の値が指定された回数になっていれば(ステップS116、Yes)、GM−CPU130aは、バッテリサーバ100aが問題なく制御権を獲得出来たと判断する(ステップS117)。すなわち、ランダムに設定した目標電圧通りの電圧値を、直流バスライン20に指定回数設定出来た場合は、GM−CPU130aは、バッテリサーバ100aが問題なく制御権を獲得出来たと判断する。GM−CPU130aは、バッテリサーバ100aが問題なく制御権を獲得出来たと判断すると、バッテリサーバ100aが問題なく制御権を獲得出来たことをM−CPU120aに通知する。M−CPU120は、問題なく制御権を獲得出来たことを他のバッテリサーバに通知する。
一方、カウンタCNT2の値が指定された回数になっていなければ(ステップS116、No)、GM−CPU130aはカウンタCNT2を1つインクリメントする(ステップS118)。GM−CPU130aは、カウンタCNT2を1つインクリメントすると、上記ステップS112の処理に戻る。
続いて、直流バスライン20の電圧値が上記ステップS113で設定した目標電圧となっていない場合について説明する。直流バスライン20の電圧値が上記ステップS113で設定した目標電圧となっていなければ(ステップS115、No)、C−CPU140aは、直流バスライン20の電圧値が上記ステップS113で設定した目標電圧になっていないことをGM−CPU130aに通知する。通知を受けたGM−CPU130aは、カウンタCNT1の値が指定された回数になっているかを判断する(ステップS119)。カウンタCNT1の値が指定された回数になっていなければ(ステップS119、No)、GM−CPU130aは、C−CPU140aに対してDC−DCコンバータ150aをスタンバイ状態にするよう指示する。
指示を受けたC−CPU140aは、DC−DCコンバータ150aをスタンバイ状態にする(ステップS120)。DC−DCコンバータ150aをスタンバイ状態にすると、続いてC−CPU140aは、乱数生成器190aが発生させた乱数を読み取り、その乱数に基づいて待ち時間Twを生成する(ステップS121)。
C−CPU140aは、上記ステップS121で待ち時間Twを生成すると、生成した待ち時間Twを例えばGM−CPU130aに通知する。GM−CPU130aは、待ち時間Tw待機して(ステップS122)、カウンタCNT1の値を1つインクリメントする(ステップS123)。カウンタCNT1の値を1つインクリメントすると、GM−CPU130aは上記ステップS104の処理に戻る。
一方、カウンタCNT1の値が指定された回数になっていれば(ステップS119、Yes)、GM−CPU130aは、C−CPU140aに対して直流バスライン20を制御最低電圧に設定するよう指示して(ステップS124)、バッテリサーバ100aの制御権の獲得がエラーにより出来なかったと判断する(ステップS125)。すなわち、一連の確認処理を指定回数失敗した場合、GM−CPU130aは、バッテリサーバ100aが制御権を獲得出来なかったと判断する。
なおGM−CPU130aは、ステップS110において、ランプアップ終了後の直流バスライン20の電圧値が目標電圧になっていない場合にも(ステップS110、No)、C−CPU140aに対して直流バスライン20を制御最低電圧に設定するよう指示して(ステップS124)、バッテリサーバ100aの制御権の獲得がエラーにより出来なかったと判断する(ステップS125)。
なお、バッテリサーバ100aが既に制御権を獲得済みであるが、直流バスライン20に電圧を設定していないという状態が考えられる。その場合は、バッテリサーバ100aは、カウンタCNT1を無限大に設定する(ステップS103)。バッテリサーバ100aは、カウンタCNT1を無限大に設定することで、図4及び図5に示した一連の処理を継続することが出来る。バッテリサーバ100aは、図4及び図5に示した一連の処理を継続することで、他のバッテリサーバによる直流バスライン20の制御権獲得を阻止することができる。他のバッテリサーバは、いつまで経っても直流バスライン20の制御権を獲得出来ないために、いつかは諦めざるを得ないからである。
バッテリサーバ100aは、制御権の獲得がエラーにより出来なかったと判断した場合、その旨を他のバッテリサーバへ通知しても良い。またバッテリサーバ100aは、制御権の獲得がエラーにより出来なかったと判断した場合、その旨を文字、画像、音声などで出力しても良い。
なお、上述の各カウンタの指定回数の情報は、全てのバッテリサーバ100a〜100dで共通のポリシ180に記述されていてもよい。各カウンタの指定回数の情報がポリシ180に記述されることで、いずれのバッテリサーバも制御権の獲得の確認について共通した動作を実行することが出来る。
なおバッテリサーバ100aは、制御権の獲得がエラーにより出来なかったと判断した場合、上述した一連の処理を再度実行しても良い。一度エラーになったとしても、再度実行することで、制御権の獲得が正常に行える場合もあり得るからである。
以上、図4及び図5を用いて本開示の一実施形態に係るバッテリサーバ100aの動作例を説明した。続いて、本開示の一実施形態に係るバッテリサーバ100aの具体的な動作の一例を説明する。
図6は、本開示の一実施形態に係るバッテリサーバ100aの具体的な動作の一例を説明する説明図である。図6に示したのは、図4及び図5に示した流れ図に基づいて動作するバッテリサーバ100aの具体的な動作を、電圧の時系列変化のグラフで現したものである。
図6の時刻t0は図4のステップS107で、GM−CPU130aが、所定の目標電圧と目標電流値を、C−CPU140aを通じてDC−DCコンバータ150aに設定して、DC−DCコンバータ150aの制御を開始した時点である。図6の時刻t1までの期間がランプアップ期間であり、このときカウンタCNT1は1となっている。図6は、目標電圧を350Vとした場合の例である。
時刻t1でランプアップ期間が終了し、目標電圧となっていれば、その後は時刻t2までが制御権確認期間となる。すなわち、時刻t1からt2までは、C−CPU140aが、乱数生成器190aから読み取った乱数を用いて直流バスライン20に設定する新たな目標電圧値を生成し、DC−DCコンバータ150aにその目標電圧を設定し、直流バスライン20の電圧値を読み取ることで、制御権が取得できているかを確認する期間である。また、図6は、電圧制御範囲を300Vから400Vの間とした場合の例である。すなわち、乱数を用いた目標電圧は300Vから400Vの間の値をとる。
図6に示した例では、乱数を用いて生成した目標電圧値と直流バスライン20の電圧値とが4回一致すれば、制御権が取得できていると判定している。すなわち、カウンタCNT2が4になるまで目標電圧値と直流バスライン20の電圧値とが一致しているかを確認する処理を繰り返す。
しかし図6の例では、C−CPU140aは、時刻t1からt2の間において、3回目の処理で異常を検出した、すなわち目標電圧値と直流バスライン20の電圧値とが一致しなくなったので、C−CPU140aは、乱数生成器190aが発生させた乱数を読み取り、その乱数に基づいて待ち時間Twを生成する。図6の例では、時刻t2からt3までが待ち時間となっている。その間、直流バスライン20の電圧は自然放電によって徐々に低下する。
待ち時間が終了すると、GM−CPU130aは再び目標電圧までランプアップさせた後に制御権確認期間に移行する。図6では、乱数を用いて生成した目標電圧値と直流バスライン20の電圧値とが4回一致したので、GM−CPU130aは、時刻t4の時点で制御権確認期間を終了させて、DC−DCコンバータ150aに対する定電圧制御を開始する。
本開示の一実施形態に係るバッテリサーバ100aは、上述したような一連の動作を実行することで、他のバッテリサーバとの間の調停で制御権を得た後に、他に直流バスライン20をコントロールしているバッテリサーバが本当に存在しないかを確認する。バッテリサーバ100aは、制御権を得た後に他に直流バスライン20をコントロールしているバッテリサーバが本当に存在しないかを確認することで、DCグリッドを安全に機能させることが可能となる。
<2.まとめ>
以上説明したように、本開示の一実施形態によれば、複数のバッテリサーバが直流バスラインに接続されて、直流バスラインを通じてバッテリサーバ間で直流の電力の送受電を行なう送受電制御システム1が提供される。また本開示の一実施形態によれば、1つのバッテリサーバだけが制御権を有して、他のバッテリサーバに対して直流バスライン20を通じた直流電力の送受電を制御することができる、バッテリサーバ100a〜100dが提供される。
本開示の一実施形態に係るバッテリサーバ100a〜100dは、機能を4つのタスクに分けて、下位のタスク(受電を依頼するタスク)から上位のタスク(DC−DCコンバータを制御するタスク)へ直接指示が送れないような構成としている。
本開示の一実施形態に係るバッテリサーバ100a〜100dは、上述したような単にマスタとスレーブとに役割を分担する場合に生じ得る現象を回避し、直流電力の送受電を制御する制御権を効率よく管理することが可能になる。そして本開示の一実施形態に係るバッテリサーバ100a〜100dは、直流電力の送受電を制御する制御権を効率よく管理することで、バッテリサーバ間での制御の秩序を保つことが可能になる。
また本開示の一実施形態に係るバッテリサーバ100aは、他のバッテリサーバとの間の調停で制御権を得た後に、他に直流バスライン20をコントロールしている、調停に参加しなかったバッテリサーバが本当に存在しないかを確認する。バッテリサーバ100aは、制御権を得た後に他に直流バスライン20をコントロールしているバッテリサーバが本当に存在しないかを確認することで、DCグリッドを安全に機能させることが可能となる。
本明細書の各装置が実行する処理における各ステップは、必ずしもシーケンス図またはフローチャートとして記載された順序に沿って時系列に処理する必要はない。例えば、各装置が実行する処理における各ステップは、フローチャートとして記載した順序と異なる順序で処理されても、並列的に処理されてもよい。
また、各装置に内蔵されるCPU、ROMおよびRAMなどのハードウェアに、上述した各装置の構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、該コンピュータプログラムを記憶させた記憶媒体も提供されることが可能である。また、機能ブロック図で示したそれぞれの機能ブロックをハードウェアで構成することで、一連の処理をハードウェアで実現することもできる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
例えば、上記実施形態ではバッテリサーバ100が直流バスライン20の制御権を獲得出来るかどうかを、直流バスライン20に対して電圧を設定してその電圧を確認することで行っていた。上記実施形態を応用することで、他にも、例えばガスや水道水その他の流体の圧力と流量、電波の強度と周波数、光の強度と色、などの確認に適用しうる。
流体の圧力と流量の確認は、例えば、上記実施形態のバッテリサーバ100に対応する拠点間をパイプやホース等の流体を搬送する管でつなぎ、ある拠点から乱数を用いて圧力を制御して所定回数変えた上で、それぞれの圧力で出力時から流量が変化していないことを確認することで行われうる。このようにある拠点から圧力を制御し、その時の流量が変化しないことを確認することで、ある拠点が制御権を得て流体の融通を制御することができる。
電波の強度と周波数の確認は、例えば、上記実施形態のバッテリサーバ100に対応する拠点間で電波が発信されていないことを確認し、ある拠点から電波を発信して、乱数を用いてその電波の周波数を所定回数変えた上で、それぞれの周波数で電波の強度が発信時から変化していないことを確認することで行われうる。このようにある拠点から電波を発信して、その電波の周波数を変えた上で、電波の強度が変化していないことを確認することで、例えば見通しのきかない場所での遠隔によるロポット警備などに適用することが可能になる。
光の強度と色の確認は、例えば、上記実施形態のバッテリサーバ100に対応する拠点間で光が出ていないことを確認し、ある拠点から光を照射した上で乱数を用いてその光の色を所定回数変え、それぞれの色で光の強度が照射時から変化していないことを確認することで行われうる。このように、ある拠点から光を照射した上でその光の色を変え、光の強度が変化しないことを確認することで、例えば撮像装置を持った移動体を用いた監視などの共同作業に適用することが可能になる。
図7は、本開示の一実施形態に係る入出力制御システムの機能構成例を示す説明図である。図7に示した入出力制御システムは、図2に示した送受電制御システムの構成を、電力以外のもの、例えばガスや水道水その他の流体、電波、光などの入出力に適用したものである。以下、図7を用いて本開示の一実施形態に係る入出力制御システム1000の機能構成例について説明する。
図7に示したように、入出力制御システム1000は、4つの入出力制御装置1100a〜1100dで構成されうる。もちろん入出力制御装置の数は図7に示した例に限定されるものでは無い。入出力制御装置1100aは、U−CPU1110aと、M−CPU1120aと、GM−CPU1130aと、C−CPU1140aと、インタフェース(I/F)1150aと、媒体1020を通じて入出力されるソース1160aと、乱数生成器(RND)1190aと、を含んで構成される。媒体1020を通じて入出力されるソース1160aは、例えば直流電力、ガスや水道水その他の流体、電波の発信源、光の発信源などであり得る。
入出力制御装置1100a〜1100dは、通信線1030で接続されている。通信線1030は、通信線1030a、1030bの2つの経路(チャネル)に分かれている。通信線1030a、1030bは、物理的に異なる有線の通信線であってもよく、物理的には同一の有線または無線の通信線であって、認証や暗号化等によって論理的に分かれていてもよい。そして図7に示したように、U−CPU1110a及びM−CPU1120aは通信線1030aで他のU−CPU1110b〜1110d及びM−CPU1120b〜1120dと通信し、GM−CPU1130a及びC−CPU1140aは通信線1030bで他のGM−CPU1130b〜1130d及びC−CPU1140b〜1140dと通信する。
U−CPU1110aは、入出力制御装置1100aで固有のシナリオ170aに従って動作する。M−CPU1120a、GM−CPU1130a及びC−CPU1140aは、全ての入出力制御装置1100a〜1100dで共通のポリシ1180に従って動作する。これらはいずれも上述したバッテリサーバ100a〜100dの動作と同様である。
C−CPU1140aは、本開示の入出力制御部の一例で有り、他の入出力制御装置1100b〜1100dとの間の共通の媒体1020を通じたソース1160aの入出力を制御する。GM−CPU1130aは、本開示の入出力管理部の一例で有り、媒体1020を通じたソース1160aの入出力の制御をC−CPU1140aに依頼する。M−CPU1120aは、本開示の入出力調停部の一例で有り、C−CPU1140aによるソース1160aの入出力の制御をGM−CPU1130aに依頼する。
C−CPU1140aは、乱数生成器1190aが発生させた乱数を用いて、媒体1020に設定するソースに関する値(圧力、電波強度、光の強度など)を決定する。そしてC−CPU1140aは、決定した値通りに媒体1020へソースに関する値を設定することが出来ていれば、他に媒体1020に対して別途値を設定したりソースを入出力したりしている装置はないと判断し、GM−CPU1130aに対してその旨を通知する。また、M−CPU1120aは、他の入出力制御装置が同じタイミングで制御権を獲得しようとしていたことが分かった場合、乱数生成器1190aが発生させる乱数を用いて待機時間を設定し、その待機時間後に再度制御権の獲得処理を開始する。
本開示の一実施形態に係る入出力制御システム1000は、図7に示したような構成を有することで、共通の媒体1020に接続されている入出力制御装置の内の1台のみが確実に制御権を得て、共通の媒体1020を通じたソースの入出力の制御を可能にする。
また本開示の一実施形態に係る入出力制御システムを構成する入出力制御装置1100a〜1100dは、図7に示したような構成を有することで、他に媒体1020に対してソースの入出力の設定を行ったり、実際にソースを入出力したりしている装置が存在していないかどうかを確認することができる。入出力制御装置1100a〜1100dは、図7に示したような構成を有することで、制御権を得た後に他に媒体1020へのソースの入出力をコントロールしている入出力制御装置が本当に存在しないかを確認することで、媒体1020を通じたソースの入出力を安全に機能させることが可能となる。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
直流電力線に接続されたDC−DCコンバータによる前記直流電力線を通じた直流電力の送受電を制御する送受電制御部と、
前記送受電制御部に前記DC−DCコンバータの制御を依頼する送受電管理部と、
前記送受電管理部に前記DC−DCコンバータによる送受電を依頼する送受電調停部と、
を備え、
前記送受電管理部は、前記直流電力線への電圧の設定を前記送受電調停部から指示されると、乱数を用いて前記送受電制御部に対して前記直流電力線へ電圧を所定回数設定させ、前記直流電力線の電圧及び電流が所定の範囲であれば前記直流電力線の制御権の獲得を前記送受電調停部に指示する、送受電制御装置。
(2)
前記送受電管理部は、前記直流電力線の電圧及び電流が所定の範囲で無かった場合に乱数を用いて所定の待機時間を設定し、該待機時間の経過後に前記送受電制御部に対して前記直流電力線へ電圧を設定させる、前記(1)に記載の送受電制御装置。
(3)
前記送受電管理部は、真正乱数生成器が発生させた乱数を用いる、前記(1)または(2)に記載の送受電制御装置。
(4)
前記送受電管理部は、前記送受電制御装置に固有の情報に基づいて発生させた乱数を用いる、前記(1)〜(3)のいずれかに記載の送受電制御装置。
(5)
前記送受電調停部は、前記制御権の獲得に失敗した旨を前記送受電管理部から通知されると、前記直流電力線への電圧の設定を前記送受電管理部に再度指示する、前記(1)〜(4)のいずれかに記載の送受電制御装置。
(6)
前記送受電制御部及び前記送受電管理部は、第1の通信チャネルを通じて他の送受電制御装置と通信する、前記(1)〜(5)のいずれかに記載の送受電制御装置。
(7)
前記送受電調停部は、前記第1の通信チャネルと異なる第2の通信チャネルを通じて他の送受電制御装置と通信し、前記制御権の取得について、他の送受電制御装置との間で前記第2の通信チャネルを通じて予め調停する、前記(6)に記載の送受電制御装置。
(8)
前記送受電制御部は、前記DC−DCコンバータに接続された二次電池の充放電を前記DC−DCコンバータを通じて制御する、前記(1)〜(7)のいずれかに記載の送受電制御装置。
(9)
前記送受電制御部、前記送受電管理部、及び前記送受電調停部は、他の全ての送受電制御装置との間で共通のポリシ情報に基づいて動作する、前記(1)〜(7)のいずれかに記載の送受電制御装置。
(10)
直流電力線への電圧の設定を指示することと、
前記指示に応じて、乱数を用いて前記直流電力線に接続されたDC−DCコンバータに対して前記直流電力線へ電圧を所定回数設定させることと、
前記直流電力線の電圧及び電流が所定の範囲であれば前記直流電力線の制御権の獲得を指示することと、
を含む、送受電制御方法。
(11)
コンピュータに、
直流電力線への電圧の設定を指示することと、
指示に応じて、乱数を用いて前記直流電力線に接続されたDC−DCコンバータに対して前記直流電力線へ電圧を所定回数設定させることと、
前記直流電力線の電圧及び電流が所定の範囲であれば前記直流電力線の制御権の獲得を指示することと、
を実行させる、コンピュータプログラム。
(12)
他の拠点との間の共通の媒体を通じた所定の対象の入出力を制御する入出力制御部と、
前記共通の媒体に対する前記所定の対象の入出力の制御を前記入出力制御部に依頼する入出力管理部と、
前記入出力制御部による入出力を前記入出力管理部に依頼する入出力調停部と、
を備え、
前記入出力管理部は、前記共通の媒体への前記所定の対象の出力の設定を前記入出力調停部から指示されると、乱数を用いて前記入出力制御部に対して前記共通の媒体へ前記所定の対象を所定回数出力させ、前記共通の媒体へ出力した前記所定の対象が該出力時の設定値であれば、前記共通の媒体への前記所定の対象の入出力の制御権の獲得を前記入出力調停部に指示する、入出力制御装置。
(13)
前記共通の媒体は、直流電力線であり、前記所定の対象は直流電力である、前記(12)に記載の入出力制御装置。
(14)
前記共通の媒体は、流体を搬送する管であり、前記所定の対象は前記液体または気体である、前記(12)に記載の入出力制御装置。
(15)
前記共通の媒体は、空気であり、前記所定の対象は電磁波である、前記(12)に記載の入出力制御装置。
(16)
前記所定の対象は電波または光である、前記(15)に記載の入出力制御装置。