(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-07
(45)【発行日】2024-06-17
(54)【発明の名称】制御装置、制御方法、プログラムおよび通信システム
(51)【国際特許分類】
H02J 3/46 20060101AFI20240610BHJP
H02J 3/38 20060101ALI20240610BHJP
H02J 13/00 20060101ALI20240610BHJP
H04L 47/28 20220101ALI20240610BHJP
H04L 67/00 20220101ALI20240610BHJP
H04L 69/00 20220101ALI20240610BHJP
H04Q 9/00 20060101ALI20240610BHJP
【FI】
H02J3/46
H02J3/38 110
H02J13/00 311R
H04L47/28
H04L67/00
H04L69/00
H04Q9/00 311E
(21)【出願番号】P 2020184167
(22)【出願日】2020-11-04
【審査請求日】2023-02-03
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】寺本 圭一
【審査官】早川 卓哉
(56)【参考文献】
【文献】特開平07-231486(JP,A)
【文献】国際公開第2013/042475(WO,A1)
【文献】特開2015-162778(JP,A)
【文献】特開2009-219315(JP,A)
【文献】特開2019-115047(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H02J13/00
H02J3/00-5/00
H02J7/00-7/12
H02J7/34-7/36
H04L12/00-12/22
H04L12/50-12/66
H04L13/00-13/18
H04L45/00-49/9057
H04L51/00-51/58
H04L67/00-67/75
H04L61/00-65/80
H04L69/00-69/40
H04Q9/00-9/16
(57)【特許請求の範囲】
【請求項1】
制御対象の機器の動作を制御するコマンドを生成する機器制御部と、
前記コマンドの種別、または、前記コマンドに従って動作したときの前記機器の状態遷移の種別の少なくとも一方を示す種別情報に応じて、前記機器が前記コマンドを受信してから、前記コマンドに従って動作後の状態への遷移が完了するまでの動作遅延時間の予測値を算出する算出部と、
前記予測値に応じて調整された時刻に前記コマンドに従って動作後の状態への遷移が完了するように、前記コマンドを送信する通信制御部と、
を備え、
前記算出部は、前記種別情報ごとに定められた、前記予測値、または、前記予測値を算出するための算出式である算出情報を用いて、前記予測値を算出する、
制御装置。
【請求項2】
前記種別情報ごと
に前記算出情報を対応づけて記憶する記憶部をさらに備え、
前記算出部は
、前記種別情報に対応づけ
て前記記憶部に記憶された前記算出情報を用いて、前記予測値を算出する、
請求項1に記載の制御装置。
【請求項3】
前記動作遅延時間の実績値を用いて前記算出情報を更新し、更新した前記算出情報を前記記憶部に記憶する更新部をさらに備える、
請求項2に記載の制御装置。
【請求項4】
前記更新部は、前記機器から送信された前記コマンドに対する応答に含まれる時間情報に基づいて、前記動作遅延時間の実績値を求める、
請求項3に記載の制御装置。
【請求項5】
前記更新部は、前記コマンドに従って動作後の状態に遷移した後に前記機器から送信される通知メッセージを受信した時刻に基づいて、前記動作遅延時間の実績値を求める、
請求項3に記載の制御装置。
【請求項6】
前記通信制御部は、前記コマンドを送信してから前記機器が前記コマンドを受信するまでの通信遅延時間と、前記予測値と、に応じて調整した時刻に前記コマンドを送信する、
請求項1に記載の制御装置。
【請求項7】
前記算出部は、前記機器または前記機器の種類を識別する識別情報、および、前記種別情報に応じて前記予測値を算出する、
請求項1に記載の制御装置。
【請求項8】
制御装置が実行する制御方法であって、
制御対象の機器の動作を制御するコマンドを生成する機器制御ステップと、
前記コマンドの種別、または、前記コマンドに従って動作したときの前記機器の状態遷移の種別の少なくとも一方を示す種別情報に応じて、前記機器が前記コマンドを受信してから、前記コマンドに従って動作後の状態への遷移が完了するまでの動作遅延時間の予測値を算出する算出ステップと、
前記予測値に応じて調整された時刻に前記コマンドに従って動作後の状態への遷移が完了するように、前記コマンドを送信する通信制御ステップと、
を含み、
前記算出ステップは、前記種別情報ごとに定められた、前記予測値、または、前記予測値を算出するための算出式である算出情報を用いて、前記予測値を算出する、
制御方法。
【請求項9】
コンピュータに、
制御対象の機器の動作を制御するコマンドを生成する機器制御ステップと、
前記コマンドの種別、または、前記コマンドに従って動作したときの前記機器の状態遷移の種別の少なくとも一方を示す種別情報に応じて、前記機器が前記コマンドを受信してから、前記コマンドに従って動作後の状態への遷移が完了するまでの動作遅延時間の予測値を算出する算出ステップと、
前記予測値に応じて調整された時刻に前記コマンドに従って動作後の状態への遷移が完了するように、前記コマンドを送信する通信制御ステップと、
を実行させ、
前記算出ステップは、前記種別情報ごとに定められた、前記予測値、または、前記予測値を算出するための算出式である算出情報を用いて、前記予測値を算出する、
プログラム。
【請求項10】
制御対象の機器に接続される仲介装置と、前記仲介装置に接続される制御装置と、を備える通信システムであって、
前記制御装置は、
前記機器の動作を制御するコマンドを生成する機器制御部と、
前記コマンドの種別、または、前記コマンドに従って動作したときの前記機器の状態遷移の種別の少なくとも一方を示す種別情報に応じて、前記機器が前記コマンドを受信してから、前記コマンドに従って動作後の状態への遷移が完了するまでの動作遅延時間の予測値を算出する算出部と、
前記予測値に応じて調整された時刻に前記コマンドに従って動作後の状態への遷移が完了するように、前記コマンドを前記仲介装置に送信する通信制御部と、を備え、
前記仲介装置は、前記制御装置から受信した前記コマンドを、前記機器に送信
し、
前記算出部は、前記種別情報ごとに定められた、前記予測値、または、前記予測値を算出するための算出式である算出情報を用いて、前記予測値を算出する、
通信システム。
【請求項11】
前記制御装置は、
前記種別情報ごとに、前記予測値、または、前記予測値を算出するための算出式である算出情報を対応づけて記憶する記憶部と、
前記動作遅延時間の実績値を用いて前記算出情報を更新し、更新した前記算出情報を前記記憶部に記憶する更新部と、をさらに備え、
前記算出部は、生成された前記コマンドの種別、または、生成された前記コマンドに従って動作したときの前記機器の状態遷移の種別の少なくとも一方を示す前記種別情報に対応づけられた前記算出情報を用いて、前記予測値を算出し、
前記仲介装置は、前記コマンドを送信した後、前記機器の状態を確認する状態確認コマンドを前記機器に送信し、
前記更新部は、前記状態確認コマンドに対する応答として、前記コマンドに従って動作後の状態に遷移したことを示す通知メッセージを受信した時刻に基づいて、前記動作遅延時間の実績値を求める、
請求項10に記載の通信システム。
【請求項12】
制御対象の機器に接続される仲介装置と、前記仲介装置に接続される制御装置と、を備える通信システムであって、
前記制御装置は、
前記機器の動作を制御するコマンドを生成する機器制御部と、
前記コマンドの種別、または、前記コマンドに従って動作したときの前記機器の状態遷移の種別の少なくとも一方を示す種別情報に応じて、前記機器が前記コマンドを受信してから、前記コマンドに従って動作後の状態への遷移が完了するまでの動作遅延時間の予測値を算出する算出部と、
前記予測値に応じて調整された時刻に前記コマンドに従って動作後の状態への遷移が完了するように、前記コマンドを前記仲介装置に送信する通信制御部と、
前記種別情報ごとに、前記予測値、または、前記予測値を算出するための算出式である算出情報を対応づけて記憶する記憶部と、
前記動作遅延時間の実績値を用いて前記算出情報を更新し、更新した前記算出情報を前記記憶部に記憶する更新部と、を備え、
前記仲介装置は、前記制御装置から受信した前記コマンドを、前記機器に送信し、
前記算出部は、生成された前記コマンドの種別、または、生成された前記コマンドに従って動作したときの前記機器の状態遷移の種別の少なくとも一方を示す前記種別情報に対応づけられた前記算出情報を用いて、前記予測値を算出し、
前記仲介装置は、前記コマンドを送信した後、前記機器の状態を確認する状態確認コマンドを前記機器に送信し、
前記更新部は、前記状態確認コマンドに対する応答として、前記コマンドに従って動作後の状態に遷移したことを示す通知メッセージを受信した時刻に基づいて、前記動作遅延時間の実績値を求める、
通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、制御装置、制御方法、プログラムおよび通信システムに関する。
【背景技術】
【0002】
サーバなどの制御装置が、遠隔地に設置された制御対象となる複数の機器を制御するシステムが知られている。複数の機器を同じ時刻に動作開始させるなど、機器の動作のタイミングをより正確に制御することが望ましい場合がある。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2020-036072号公報
【文献】特開2020-096242号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、制御対象の機器の動作のタイミングをより高精度に制御可能とする制御装置、制御方法、プログラムおよび通信システムを提供することを目的とする。
【課題を解決するための手段】
【0005】
実施形態の制御装置は、機器制御部と、算出部と、通信制御部と、を備える。機器制御部は、制御対象の機器の動作を制御するコマンドを生成する。算出部は、コマンドの種別、または、コマンドに従って動作したときの機器の状態遷移の種別の少なくとも一方を示す種別情報に応じて、機器がコマンドを受信してから、コマンドに従って動作後の状態への遷移が完了するまでの動作遅延時間の予測値を算出する。通信制御部は、予測値に応じて調整された時刻にコマンドに従って動作後の状態への遷移が完了するように、コマンドを送信する。
【図面の簡単な説明】
【0006】
【
図1】実施形態にかかる制御装置を含む通信システムの全体構成図。
【
図2】実施形態にかかる制御装置を含む通信システムの全体構成図。
【
図3】第1の実施形態にかかる各装置のブロック図。
【
図4】制御コマンドの通信遅延および動作遅延を説明するための図。
【
図5】予測値の算出に用いる算出情報の例を示す図。
【
図6】第1の実施形態における制御処理のフローチャート。
【
図7】第2の実施形態にかかる各装置のブロック図。
【
図8】第2の実施形態における制御処理のシーケンス図。
【
図9】実施形態にかかる装置のハードウェア構成図。
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、この発明にかかる制御装置の好適な実施形態を詳細に説明する。
【0008】
太陽光発電(PV:Photovoltaics)、蓄電池、および、電気自動車(EV:Electric vehicle)などの分散電源が、再生エネルギーの活用、エネルギー効率化、および、エネルギー運用の視点で重要視され、普及が進められている。また、開設が予定される需給調整市場では、これらの分散電源が取引結果に基づいて制御される可能性がある。このような需給調整市場では、大規模な分散電源だけでなく、より小規模な電源についても取引される予定である。すなわち、小規模な分散電源(需要家が保有する電源を含む)に対しても、高速な分散電源制御の必要性が高まっている。このような状況下で、分散電源を指定時刻に正確に動作させる要件についても注目が集まっている。
【0009】
一方、第5世代移動通信システム(5G:5th Generation)およびローカル5Gが開始され、従来よりも低遅延な通信インフラが整備されつつある。また、マルチアクセスエッジコンピューティング(MEC:Multi-access Edge Computing)と呼ばれるアプリケーション実行環境が、5Gの基地局の近くに設置される構成が検討されている。このように、クラウド環境を中心とする集中制御だけでなく、MECを使った分散環境での制御も重要性が増す見込みとなっている。
【0010】
分散電源のように広域に分散配置された機器群のうち指定されたサブセットとなる機器群に対して、クラウド環境から、ある時刻に一斉に遠隔制御を行う構成を考える。一般的には通信遅延の差異によって各機器に制御コマンド(制御コマンドを送信するためのパケット)が到着する時刻が異なる。従って、単純な一斉同報による制御コマンドの送信では、各機器の動作開始時刻が同一とならない可能性がある。
【0011】
通信遅延を考慮して、制御コマンドの送信タイミングを機器ごとに調整して送信することで、各機器に制御コマンドが到着するタイミングをほぼ同一にすることは可能である。しかし、機器によっては、制御コマンドを受信してから指定された動作状態への遷移が完了するまで(所望の動作に切り替わるまで)に時間(動作遅延時間)を要する場合がある。
【0012】
この動作遅延時間は、機器の種類または型式の違い、制御コマンドの内容、および、直前までの動作状態によっても変化する可能性がある。
【0013】
例えば、制御対象となる機器が蓄電池であり、放電電力をX(W)へ変更する場合、変更のための制御コマンドを受理してから放電電力をX(W)の値に推移させる(動作状態の切り替えを完了する)には動作遅延時間を必要とする場合が一般的である。
【0014】
また、同じ制御コマンド(例えば放電電力を変更する制御コマンド)であっても、制御コマンドを受信する前の動作状態に応じて、所望の動作状態への遷移が完了するまでの動作遅延時間に違いが生じうる。
【0015】
動作状態は、例えば、放電状態、充電状態、および、停止状態である。蓄電池に蓄電されている電力量を含めて動作状態が区別される場合もある。例えば、直前の動作状態がいずれも放電状態であったとしても、電力量がX1(W)からX(W)に遷移するまでの動作遅延時間と、電力量がX2(W)からX(W)に遷移するまでの動作遅延時間とが異なる値となる場合がある。
【0016】
また、同一の型式の蓄電池であれば、特性は一定すると考えられるが、機器の周辺の環境(気温、天候、寒冷地、屋内、屋外など)および機器の使用状況(使用期間など)によっても動作遅延時間に違いが生じうる。
【0017】
このような動作遅延時間の変化が、クラウド環境から機器に対して所望の時刻に所望の動作状態へ移行させる動作指示の実現を困難にしている。
【0018】
自社製品のように制御コマンドや状態の違いによって生じる動作遅延時間を仕様書や試験結果より事前に得ることができれば、動作遅延時間に従い制御コマンドの送信タイミングを調整することは可能である。しかし、例えば他社が製造した機器である場合などのように、動作遅延時間に関する情報を事前に得ることができない場合がある。また、自社製品であっても前述の通り、設置される環境などが動作遅延時間に影響して、実際の結果と異なる時間的差異を生じさせる場合もある。
【0019】
以上のように、分散配置された機器(分散電源など)に対して、通信遅延および動作遅延を考慮して指定時刻により正確に機器の動作を遷移(切り替え)できるように、機器ごとの遅延時間を管理し予測可能な監視制御を実現するシステムの確立が望まれている。
【0020】
以下の実施形態にかかる制御装置は、制御対象となる機器の動作遅延時間を個別かつ動的に予測(推定)し、遅延時間を考慮して機器を制御する。これにより、指定時刻に機器の動作状態を遷移(切り替え)する制御をより正確に実行可能とする。
【0021】
(第1の実施形態)
図1は、第1の実施形態にかかる制御装置を含む通信システムの全体構成の一例を示す図である。
図1に示すように、本実施形態の通信システムは、制御装置100と、制御対象となる機器300a~300dとが、仲介装置200a、200bを介してネットワークにより接続される構成である。ネットワークは、例えばインターネットであるが、その他のどのような形態のネットワークであってもよい。ネットワークは、有線ネットワークでもよいし、無線ネットワークでもよいし、両者が混在したネットワークでもよい。
【0022】
制御装置100は、例えばクラウド環境上に構築されるサーバなどの装置である。仲介装置200a、200bは、例えば5Gの基地局の付近に設置されるMECである。仲介装置200a、200bは、区別する必要がない場合は単に仲介装置200という。仲介装置200の個数は2個に限られず、1個または3個以上であってもよい。
【0023】
機器300a~300dは、制御装置100の制御対象となる機器である。
図1では、分散電源を機器300a~300dとする例が示されている。機器300aは、太陽電池である。機器300b、300dは、蓄電池である。機器300cは、電気自動車に対する充放電を行う充放電機である。機器300a~300dを区別する必要がない場合は単に機器300という。機器300の個数は4個に限られず、2個、3個または5個以上であってもよい。
【0024】
図2は、本実施形態にかかる制御装置100を含む通信システムの全体構成の他の例を示す図である。
図2は、ビル構内または宅内に置かれるゲートウェイ(GW)を仲介装置200(200c、200d)とする構成の例である。
【0025】
図1および
図2のいずれも、仲介装置200が制御装置100からの制御コマンドを一旦受信し、機器300へ転送する通信システムである。制御装置100と仲介装置200との間の通信プロトコルと、仲介装置200と機器300との間の通信プロトコルは、同一であっても異なってもよい。
【0026】
通信プロトコルは、バーチャルプライベートネットワーク(VPN:Virtual Private Network)のプロトコルであってもよい。
図2の通信システムであれば、ゲートウェイ(仲介装置200)と機器300との間の通信プロトコルは、EMS(Energy Management System)の制御規格として標準となっているECHONET Lite(登録商標)などのプロトコルを使用してもよい。
【0027】
図1および
図2の構成は一例であり、通信システムの構成はこれらに限られない。例えば、
図2の制御装置100の機能をMECで実現する構成であってもよい。
図1および
図2の通信システムは、機器300が制御装置100と直接セキュア通信できる機能を搭載していないことを前提としている。機器300が制御装置100とセキュア通信可能な機能を搭載し、仲介装置200を介さずに制御装置100と通信するように構成してもよい。この場合、仲介装置200での処理時間が省略されることが相違点となる。以下では、仲介装置200を含む通信システムの例を主に説明する。
【0028】
図3は、本実施形態にかかる各装置の構成の一例を示すブロック図である。
図3に示すように、制御装置100は、記憶部121と、機器制御部101と、算出部102と、通信制御部103と、更新部104と、を備えている。
【0029】
記憶部121は、制御装置100で実行される各種処理で用いられる各種情報を記憶する。例えば記憶部121は、種別情報ごとに算出情報を対応づけて記憶する。種別情報は、機器制御部101が生成する制御コマンドの種別、または、制御コマンドに従って動作したときの機器300の状態遷移の種別の少なくとも一方を示す。算出情報は、動作遅延時間の予測値、または、予測値を算出するための算出式である。記憶部121に記憶される情報の詳細は後述する。
【0030】
記憶部121は、フラッシュメモリ、メモリカード、RAM(Random Access Memory)、HDD(Hard Disk Drive)、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0031】
機器制御部101は、機器300の動作を制御する。例えば機器制御部101は、機器300の動作を制御する制御コマンドを生成する。制御コマンドは、機器300の動作の制御に用いられるコマンドであれば、どのようなコマンドであってもよい。機器300が分散電源の場合、機器制御部101は、例えば以下のような制御コマンドを生成してもよい。
・機器300の電源をオンまたはオフにするコマンド
・電力(充電電力または放電電力)の指定値を変更するコマンド
・機器300の状態(放電状態、充電状態、および、停止状態など)を変更するコマンド
【0032】
算出部102は、機器300ごとの動作遅延時間の予測値を算出する。例えば算出部102は、機器制御部101により生成された制御コマンドに対応する種別情報に応じて動作遅延時間の予測値を算出する。具体的には、算出部102は、記憶部121に記憶された算出情報のうち、生成された制御コマンドの種別情報に対応づけられた算出情報を用いて、動作遅延時間の予測値を算出する。
【0033】
通信制御部103は、仲介装置200などの外部装置との間の通信を制御する。例えば通信制御部103は、制御コマンドによる動作後の状態への遷移が完了する時刻が所望の時刻になるように、仲介装置200を介して制御コマンドを機器300に送信する。通信制御部103は、例えば、遷移が完了する時刻が所望の時刻になるように遅延時間を考慮して調整された送信時刻に、機器300を宛先として制御コマンドを送信する。
【0034】
機器制御部101が送信時刻を調整し、調整した送信時刻に制御コマンドを送信するように通信制御部103を制御してもよい。制御装置100(通信制御部103または機器制御部101)が、調整した送信時刻に制御コマンドを送信するように仲介装置200に指示し、仲介装置200が、指示された送信時刻に制御コマンドを送信するように構成してもよい。
【0035】
遅延時間は、通信遅延時間と、動作遅延時間とを含む。機器300ごとの通信遅延時間はどのような方法で求めてもよい。例えば、以下のような方法で通信遅延時間を求めることができる。
(M1)機器300との間の通信を実行して得られる通信遅延時間の実績値(履歴)から、平均値などにより通信遅延時間を算出する。
(M2)機器300との間のネットワークの構成(通信速度など)に基づいて通信遅延時間を算出する。
【0036】
更新部104は、記憶部121に記憶された算出情報を更新する。例えば更新部104は、動作遅延時間の実績値を用いて算出情報を更新し、更新した算出情報を記憶部121に記憶する。
【0037】
上記各部(機器制御部101、算出部102、通信制御部103、および、更新部104)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
【0038】
仲介装置200は、通信制御部201を備えている。通信制御部201は、制御装置100および機器300などの外部装置との間の通信を制御する。例えば通信制御部201は、制御装置100から送信された制御コマンドを機器300に転送する。
【0039】
機器300は、通信制御部301と、動作制御部302と、を備えている。通信制御部301は、仲介装置200などの外部装置との間の通信を制御する。例えば通信制御部301は、仲介装置200からの制御コマンドの受信、および、制御コマンドに対する応答(応答パケット)の仲介装置200を介した送信を制御する。動作制御部302は、制御コマンドに従い機器300の動作を制御する。例えば機器300が分散電源の場合、動作制御部302は、制御コマンドに従い、機器300の電源のオンまたはオフ、電力の指定値の変更、および、機器300の状態の変更などを制御する。
【0040】
仲介装置200および機器300内の各部は、制御装置100の各部と同様に、例えば、1または複数のプロセッサにより実現することができる。
【0041】
次に、制御コマンドを送信するときの遅延時間について説明する。
図4は、制御装置100から仲介装置200を介して機器300に至る制御コマンドの通信遅延および動作遅延を説明するための図である。
【0042】
説明を簡単にするため、機器制御部101が制御コマンドを生成し、制御コマンドの送信を通信制御部103に指示し、仲介装置200との間のネットワーク上に制御コマンドが出力されるまでの時間は省略する(図の点線の矢印)。同様に、制御コマンドに対する応答を仲介装置200との間のネットワークから受信した後の制御装置100内の処理の時間は省略する。
【0043】
制御装置100が制御コマンドを送信する時刻をT1とし、仲介装置200が制御コマンドを受信した時刻をT2とする。この間の通信遅延時間はΔt1(=T2-T1)となる。
【0044】
仲介装置200が制御コマンドを変換し、制御対象となる機器300へ制御コマンドを転送するための処理時間をΔt2とする。
【0045】
仲介装置200が制御コマンドを送信する時刻をT3とし、機器300が制御コマンドを受信した時刻をT4とする。この間の通信遅延時間はΔt3(=T4-T3)となる。
【0046】
機器300が制御コマンドを受信してから、制御コマンドにより指示された動作状態への遷移(切り替え)を完了するまでの動作遅延時間をΔt4とする。
【0047】
図4に示すように、例えば機器300(通信制御部301)は、遷移完了直後である時刻T5に応答パケットを返信する。応答パケットは、通信遅延時間であるΔt5を経過後に仲介装置200に受信される。
【0048】
仲介装置200が応答パケットを受信する時刻をT6とし、内部処理の処理時間をΔt6とし、応答パケットを制御装置100へ返信する時刻をT7とする。応答パケットは、通信遅延時間であるΔt7を経過後に制御装置100に受信される。
【0049】
制御装置100が応答パケットを受信する時刻をT8とする。通信遅延時間Δt7はT8-T7となる。
【0050】
制御装置100から機器300へ制御コマンドを送信したときに生じる通信遅延時間はΔt1+Δt2+Δt3となり、動作遅延時間はΔt4となる。上記のように、通信遅延時間は、例えば(M1)、(M2)などの方法で求めることができる。説明を簡単にするため、以下では、通信遅延時間は、制御コマンドの種別によらず一定とする。
【0051】
本実施形態では、T1、T2、T3、T4、T5のうち、少なくともT4、T5(またはΔt4)が制御コマンドに対する応答パケットに付加され、制御装置100にて入手可能なプロトコルを使用していると仮定する。例えば通信制御部301は、制御コマンドに対する応答として、少なくともT4、T5(またはΔt4)を含む応答パケットを、仲介装置200を介して制御装置100に返信する。
【0052】
従って、動作遅延時間の実績値は、応答パケットに付加された時間情報から求めることができる。例えばT4、T5が時間情報として応答パケットに付加されている場合は、更新部104は、Δt4=T5-T4により動作遅延時間の実績値を算出する。Δt4が時間情報として応答パケットに付加されている場合は、付加された値をそのまま動作遅延時間の実績値として用いることができる。
【0053】
なおT4、T5(またはΔt4)が直接入手できない場合に、間接的にΔt4を求める方式については、第2の実施形態にて説明する。
【0054】
本実施形態の制御装置100は、機器300の種類または型式、制御コマンドの種別、様々なコマンド実行前の動作状態、機器300の特性、設置された環境、および、機器300の使用状況などが異なる場合にも異なる値が算出できるように、機器300の動作遅延時間であるΔt4を個別かつ動的に予測(推定)する。そして制御装置100は、動作遅延時間の予測値を用いて、指定時刻に動作状態の遷移(切り替え)を完了できるように、制御対象の機器300を制御する。
【0055】
次に、動作遅延時間の予測値を算出する方法について説明する。
図5は、予測値の算出に用いる算出情報の例を示す図である。
図5に示すように、算出情報は、コマンド種別と、複数の状態遷移(ST1、ST2)と、各状態遷移に対する動作遅延時間(Δt4)の予測値または算出式と、履歴データと、を含む。なお状態遷移の個数は2個に限られず、1個または3個以上であってもよい。
【0056】
また、
図5の算出情報は、例えば機器300を識別する識別情報(機器IDなど)ごとに記憶される。これにより、例えば同一の型式の機器300であっても、機器300の周辺の環境および機器300の使用状況などに応じて異なる動作遅延時間を算出可能となる。
【0057】
なお、算出情報の管理単位はこれに限られるものではない。機器300の種類または型式を識別する識別情報ごとに算出情報が管理されてもよい。また、例えば機器300の種類または型式、および、周辺の環境などが限定される場合は、複数の機器300に共通して
図5のような算出情報が管理されてもよい。
【0058】
制御装置100(算出部102)は、
図5に示すような算出情報を参照することにより、Δt4を動的に予測(推定)する。また制御装置100(更新部104)は、履歴データを用いて、予測値または算出式を更新する。
【0059】
履歴データは、対応する制御コマンドを送信したときに算出されたΔt4の実績値を表す。制御コマンドの送信ごとに、上記のように求められるΔt4の実績値が、履歴データとして記憶部121に記憶される。
【0060】
更新部104は、履歴データ(履歴データの集合)を用いて、平均および線形回帰などを用いて、制御コマンドの種別、および、その制御コマンドによる動作状態の遷移の種別ごとに、動作遅延時間Δt4の予測値および算出式を算出し、記憶部121に記憶する。
【0061】
例えば、制御コマンドAは、機器300の電源状態をONからOFF、または、OFFからONに遷移させるためのコマンドである。状態遷移ST1は、電源状態をONからOFFに遷移させることを示す。xa1(ms)は、この場合の履歴データから算出されるΔt4の予測値を示す。状態遷移ST2は、電源状態をOFFからONに遷移させることを示す。xa2(ms)は、この場合の履歴データから算出されるΔt4の予測値を示す。
【0062】
履歴データが(ON→OFF:1650ms)、(OFF→ON:1956ms)、(ON→OFF:1672ms)、(OFF→ON:1932ms)であった場合、更新部104は、例えば履歴データの平均値を以下のように算出することにより、各予測値を算出することができる。
xa1=(1650+1672)/2
xa2=(1956+1932)/2
【0063】
なお制御コマンドAは、例えば電源状態をONからOFFに遷移させる制御コマンドA1と、電源状態をOFFからONに遷移させる制御コマンドA2と、に分けて管理されてもよい。この場合は、例えば制御コマンドA1およびA2に対して、それぞれ1つの状態遷移ST1に対する予測値または算出式のみが記憶される。すべての制御コマンドが1つの状態遷移と1対1に対応する場合は、コマンド種別欄または状態遷移欄は省略することができる。これは、制御コマンドの種別と、状態遷移の種別とが実質的に同一であると解釈しうることを意味する。
【0064】
制御コマンドBは、機器300に対して、予め定められた増減単位(増加単位、減少単位)で、機器300の動作に関する制御値を増加または減少させるためのコマンドである。制御コマンドBに対する状態遷移ST1は、指定値に従い制御値を増加させることを示す。状態遷移ST2は、指定値に従い制御値を減少させることを示す。
【0065】
更新部104は、指定値に対してΔt4の値が線形に増減すると仮定して、予測値の算出式を求める。
図5の例では、以下のようにΔt4を算出する算出式の例が示されている。
状態遷移ST1:Δt4=(xb1/増加単位)×(指定値の増加分)+b1
状態遷移ST2:Δt4=(xb2/減少単位)×(指定値の減少分)+b2
【0066】
xb1(ms)は、増加単位あたりの制御値の増加にかかる時間を示す。b1は、増加時の初期値を示す。xb2(ms)は、減少単位あたりの制御値の減少にかかる時間を示す。b2は、減少時の初期値を示す。
【0067】
増加単位および減少単位がそれぞれ1であり、履歴データが、(5→8:453ms)、(8→3:212ms)、(3→10:1002ms)、(10→5:222ms)であったとする。例えば「5→8」は、指定値が5から8に増加されたことを示す。従って、増加時については、(指定値の増加分,Δt4)として(3,453)および(7,1002)が得られる。減少時については、(指定値の減少分,Δt4)として(-5,212)および(-5、222)が得られる。更新部104は、これらの情報を用いて線形回帰を行うことにより、xb1およびb1、または、xb2およびb2を導出することができる。
【0068】
制御コマンドCは、機器300についての予め定められた複数の状態間の遷移を行うためのコマンドである。
図5では、機器300が、α、β、および、γの3つの状態を取る例が示されている。従って、α→β、β→α、β→γ、γ→β、α→γ、γ→αの6つの状態遷移が実行されうる。n個の状態を取りうる場合は、状態遷移の個数は、最大で
nP
2個となる。
図5では、6つの状態遷移のうち2つのみを示しているが、他の状態遷移も発生する場合は、その状態遷移についても予測値または算出式が記憶される。
【0069】
更新部104は、状態遷移ごとに、履歴データから予測値または算出式を算出する。履歴データが(α→β:242ms)、(β→γ:321ms)、(γ→α:294ms)、(α→β:232ms)、(β→γ:319ms)であった場合、更新部104は、例えば以下のような履歴データの平均値として各予測値を算出することができる。
xc1=(242+232)/2
xc2=(321+319)/2
【0070】
xc1(ms)は、状態をαからβに遷移させた場合の履歴データから算出されるΔt4の予測値を示す。xc2(ms)は、状態をβからγに遷移させた場合の履歴データから算出されるΔt4の予測値を示す。
【0071】
制御コマンドDは、機器300の動作に関する制御値を指定するコマンドである。制御コマンドDに対する状態遷移ST1は、指定値に従い制御値を増加させることを示す。状態遷移ST2は、指定値に従い制御値を減少させることを示す。制御コマンドDにより、制御値がx_currentである現在の状態から、制御値がx_newである新しい状態に遷移する。
【0072】
更新部104は、指定値に対してΔt4の値が近似関数に従い増減すると仮定して、予測値の算出式を求める。
図5の例では、以下のようにΔt4を算出する算出式の例が示されている。
状態遷移ST1:Δt4=f(x_current,x_new)
状態遷移ST2:Δt4=g(x_current,x_new)
【0073】
更新部104は、例えば、機械学習などで使用される学習曲線により近似関数をモデル化し、履歴データを訓練データとしてサンプリングに用いて近似関数を求める。f()は、制御値を増加させるときの近似関数である。g()は、制御値を減少させるときの近似関数である。
【0074】
このように近似関数でモデル化する手法は、平均値および線形回帰などでは履歴データからΔt4を予測できない場合に適用可能である。例えばこのような手法は、制御値が1から2に遷移する間の動作遅延時間の増加率と、制御値が2から4に遷移する間の動作遅延時間の増加率と、が異なる状況のモデル化に適用できる。
【0075】
制御コマンドEは、機器300の状態を遷移させるためのコマンドである。制御コマンドEでは、状態を遷移させる要素とは異なる要素の状態も区別して、予測値または算出式が算出される。
【0076】
制御コマンドEに対する状態遷移ST1は、電源状態がONのときに、動作状態s(例えば充電状態)から動作状態t(例えば放電状態)に遷移させることを示す。xe1(ms)は、この場合の履歴データから算出されるΔt4の予測値を示す。状態遷移ST2は、電源状態がOFFのときに、動作状態s(例えば充電状態)から動作状態t(例えば放電状態)に遷移させることを示す。xe2(ms)は、この場合の履歴データから算出されるΔt4の予測値を示す。
【0077】
同じ動作状態sから動作状態tへの遷移であっても、他の要素である電源状態によって動作遅延時間が異なる状況が生じうる。制御コマンドEについての算出情報は、このような状況を考慮し、複数の要素を含む状態間の状態遷移ごとに算出される。他の要素である電源状態の個数は2であるため、遷移しうる動作状態の個数がm個の場合は、状態遷移の個数は、最大で2×
mP
2個となる。
図5では、2つの状態遷移のみを示しているが、他の状態遷移も発生する場合は、その状態遷移についても予測値または算出式が記憶される。
【0078】
履歴データが(ON,s→t:234ms)、(OFF,t→s:242ms)、(OFF,s→t:442ms)、(ON,s→t:242ms)、(OFF,s→t:452ms)であった場合、更新部104は、例えば以下のような履歴データの平均値として各予測値を算出することができる。
xe1=(234+242)/2
xe2=(442+452)/2
【0079】
なお、例えば(ON,s→t:234ms)の「ON」は、遷移された状態(s→t)とは異なる要素の状態である電源状態を示す。
【0080】
更新部104は、例えば履歴データが追加されるごとに、対応する状態遷移の予測値または算出式を更新する。平均値で予測値を算出する場合は、更新部104は、追加された履歴データの値を、これまでの履歴データの合計値に加算し、加算値を、これまでの履歴データの総数に1を加算した値で割ることにより、新たな予測値を算出する。線形回帰で予測値の算出式を求める場合は、更新部104は、追加された履歴データを加えて、回帰係数を再度計算する。近似関数である算出式を求める場合は、更新部104は、追加された履歴データをサンプリング値に追加して、再度近似関数を学習する。このようにして、予測値および算出式の精度を向上させることができる。
【0081】
このように、制御装置100(更新部104)は、各制御コマンドの状態遷移ごとの動作遅延時間について、予測値および算出式の精度を高める更新処理を継続して実行する。更新処理の繰り返しにより、予測値および算出式が安定した場合に、更新処理を停止するように構成してもよい。更新処理が停止された場合、記憶部121に記憶された予測値または算出式は、固定の値または式として扱われる。このような構成により、動作遅延時間の予測処理を高速化することが可能となる。
【0082】
また、動作遅延時間の実績値(履歴データ)として、他の値と大きく異なる外れ値が検知された場合、記憶部121に記憶する前に外れ値を除外するように前処理(フィルタリング)を実行することも可能である。
【0083】
なお、機器300の制御を開始した直後など、各種制御コマンドに対応する履歴データが存在しない場合は、動作遅延時間の予測値として、予め定めたデフォルト値が使用されてもよい。ある制御コマンド(状態遷移)に該当する履歴データが存在しない場合に、他の既存の状態遷移の履歴データを参考にして予測値または算出式を求めてもよい。このような場合、正しい時刻に指定した動作が開始されることが期待できない可能性がある。このため、制御を開始する前の準備動作として、各種制御コマンドの送信を予め複数回試行して履歴データを蓄積し、初期の予測値または算出式を導出しておくことが望ましい。
【0084】
算出部102は、このようにして導出された予測値または算出式を参照し、Δt4の予測値を算出する。例えば算出部102は、送信する制御コマンドの種別および状態遷移の種別に対応する予測値または算出式を、記憶部121に記憶された算出情報から得る。算出式が得られた場合は、算出部102は、得られた算出式を用いてΔt4の予測値を算出する。
【0085】
次に、このように構成された本実施形態にかかる制御装置100による制御処理について説明する。
図6は、本実施形態における制御処理の一例を示すフローチャートである。
【0086】
機器制御部101は、機器300を制御するための制御コマンドを生成する(ステップS101)。算出部102は、生成された制御コマンドの種別、および、この制御コマンドによる状態遷移に対応する動作遅延時間の予測値を算出する(ステップS102)。
【0087】
通信制御部103は、動作遅延時間および通信遅延時間を考慮し、制御コマンドによる状態遷移が指定された時刻に完了するように、制御コマンドを送信する(ステップS103)。
【0088】
更新部104は、制御コマンドを送信した機器300からの応答に応じて動作遅延時間の実績値(履歴データ)を求め、求めた実績値を用いて、記憶部121に記憶された予測値または算出式を更新する(ステップS104)。
【0089】
なお、通信制御部103は、通信遅延時間の実績値の揺らぎ(変動)を考慮して制御コマンドの送信を制御してもよい。例えば、算出部102は、予測値または算出式を算出するとともに、履歴データの揺らぎ(分散など)を算出する。通信制御部103は、揺らぎの分を調整した送信タイミングとなるように、制御コマンドの送信を制御する。例えば通信制御部103は、揺らぎが大きい場合は、揺らぎが小さい場合より早く制御コマンドを送信する。また、動作遅延時間の実績値の揺らぎ(変動)についても同様に考慮した上で制御コマンドの送信を制御してもよい。この場合、
図5の各「予測値または算出式」に揺らぎ幅の時間を項目に加え、同値や式に加算した上で制御コマンドの送信タイミングを調整してもよい。
【0090】
このように、第1の実施形態では、制御コマンドまたは状態遷移の種別に応じて機器の動作遅延時間を個別かつ動的に予測し、動作遅延時間を考慮して機器を制御する。これにより、制御対象の機器の動作のタイミングをより高精度に制御可能となる。
【0091】
(第2の実施形態)
第1の実施形態は、状態遷移が完了した後に、T4、T5(またはΔt4)を含む応答が返信される通信プロトコルを使用することを前提とした。通信プロトコルによっては、そもそも応答を返さない場合、および、制御コマンドの受信した後に即座に受理応答のみを返信し、状態遷移後に状態遷移が完了したことを示す応答を返信しない場合がありうる。
【0092】
第2の実施形態では、T4、T5(またはΔt4)が応答から得られない場合の動作遅延時間の予測について説明する。
【0093】
図7は、第2の実施形態にかかる通信システムに含まれる各装置の構成の一例を示すブロック図である。第2の実施形態にかかる通信システムは、制御装置100-2と、仲介装置200-2と、機器300-2と、を含む。
【0094】
制御装置100-2は、記憶部121と、機器制御部101と、算出部102と、通信制御部103と、更新部104-2と、を備えている。仲介装置200-2は、通信制御部201-2を備えている。機器300-2は、通信制御部301-2と、動作制御部302と、を備えている。
【0095】
第2の実施形態では、制御装置100-2の更新部104-2、仲介装置200-2の通信制御部201-2、および、機器300-2の通信制御部301-2の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる制御装置100のブロック図である
図3と同様であるので、同一符号を付し、ここでの説明は省略する。
【0096】
通信制御部301-2は、制御コマンドに対する応答として、T4、T5(またはΔt4)を含まない応答パケット送信する点が、第1の実施形態の通信制御部301と異なっている。
【0097】
通信制御部201-2は、機器300-2に対して、機器300-2の状態を確認するための状態確認コマンドを送信する機能を有する点が、第1の実施形態の通信制御部201と異なっている。
【0098】
更新部104-2は、T4およびT5を代替する情報を用いて動作遅延時間Δt4を算出する点が、第1の実施形態の更新部104と異なっている。
【0099】
T4、T5(またはΔt4)が応答から得られない場合には、以下の2つの対策により動作遅延時間の実績値を算出することができる。
【0100】
(対策1)機器300-2が、制御コマンドに対する動作とは独立に、機器300-2の状態が変化したことを通知する通知メッセージを送信する機能を有する場合は、更新部104-2は、仲介装置200-2(通信制御部201-2)がこの通知メッセージを受信した時刻T6’を、T5の代わりに用いる。また、更新部104-2は、仲介装置200-2が制御コマンドを送信した時刻T3を、T4の代わりに用いる。すなわち、更新部104-2は、Δt4=T6’-T3により動作遅延時間を算出する。
【0101】
なお、通知メッセージを送信する機能は、例えば通信制御部301-2が備えるように構成することができる。対策1は、仲介装置200-2と機器300-2との距離が近いケース、言い換えると、通信遅延が小さく、かつ、通信遅延の揺らぎも小さいケースで有効な代替手段といえる。
【0102】
(対策2)機器300-2が、状態遷移後に何も返信しない通信プロトコルが使用される場合は、仲介装置200-2(通信制御部201-2)が、一定間隔で機器300-2の状態を確認する状態確認コマンドを送信する。更新部104-2は、状態確認コマンドに対する応答(通知メッセージの一例)から、機器300-2が制御コマンドで指定した動作に対応する状態へ遷移の完了したことを確認できた時刻T6’’を、T5の代わりに用いる。また、更新部104-2は、仲介装置200-2が制御コマンドを送信した時刻T3を、T4の代わりに用いる。すなわち、更新部104-2は、Δt4=T6’’-T3により動作遅延時間を算出する。
【0103】
状態確認コマンドの送信間隔は短いほど精度は高まるが、過度な通信によって機器300-2の挙動に影響を与える場合がある。そこで、仲介装置200-2(通信制御部201-2)は、過去のΔt4を考慮して(制御コマンドの種別および内容に合わせて)、状態確認コマンドの送信間隔を調整してもよい。
【0104】
図8は、対策2の場合の制御処理の一例を示すシーケンス図である。
【0105】
制御装置100-2の通信制御部103は、制御コマンドを仲介装置200-2に送信する(ステップS201)。仲介装置200-2の通信制御部201-2は、受信した制御コマンドを機器300-2に送信する(ステップS202)。
【0106】
機器300-2の通信制御部301-2は、制御コマンドを受信したことを示す受理応答を仲介装置200-2に送信する(ステップS203)。機器300-2の動作制御部302は、制御コマンドに応じた状態遷移を開始する(ステップS204)。なお、ステップS203とステップS204の実行順序はこれに限られず、逆でもよいし、並列に実行されてもよい。
【0107】
仲介装置200-2の通信制御部201-2は、状態確認コマンドを機器300-2に送信する(ステップS205)。機器300-2の通信制御部301-2は、状態確認コマンドに対して、現在の機器300-2の状態を示す応答を返信する(ステップS206)。
図8の例では、制御コマンドに応じた状態遷移が完了していないため、例えば、状態遷移の完了前であることを示す応答が返信される。
【0108】
その後、動作制御部302は、制御コマンドに応じた状態遷移を完了したとする(ステップS207)。
【0109】
仲介装置200-2の通信制御部201-2は、状態確認コマンドを機器300-2に再度送信する(ステップS208)。機器300-2の通信制御部301-2は、状態確認コマンドに対して、現在の機器300-2の状態を示す応答を返信する(ステップS209)。
図8の例では、状態遷移が完了したことを示す応答が返信される。
【0110】
仲介装置200-2の通信制御部201-2は、所望の状態遷移の完了を示す応答が受信できたか否かを確認する(ステップS210)。例えば、一定期間内に状態遷移が完了したことを示す応答が受信できた場合は、通信制御部201-2は、応答の受信を確認できた時刻T6’’を含む応答を制御装置100-2に送信する(ステップS211)。一定期間内に状態遷移が完了したことを示す応答が受信されなかった場合は、通信制御部201-2は、応答が受信できなかった(タイムアウト)と判定し、受信できなかったことを示すメッセージを制御装置100-2に送信する。
【0111】
このように、第2の実施形態では、使用される通信プロトコルに応じて、第1の実施形態と異なる手法で動作遅延時間の実績値を算出することができる。
【0112】
以上説明したとおり、第1から第2の実施形態によれば、制御対象の機器の動作のタイミングをより高精度に制御可能となる。
【0113】
次に、第1および第2の実施形態にかかる各装置(制御装置、仲介装置、機器)のハードウェア構成について
図9を用いて説明する。
図9は、実施形態にかかる装置のハードウェア構成例を示す説明図である。
【0114】
実施形態にかかる装置は、CPU51などの制御装置と、ROM(Read Only Memory)52およびRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
【0115】
実施形態にかかる装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
【0116】
実施形態にかかる装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0117】
さらに、実施形態にかかる装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施形態にかかる装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0118】
実施形態にかかる装置で実行されるプログラムは、コンピュータを上述した装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【0119】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0120】
100、100-2 制御装置
101 機器制御部
102 算出部
103 通信制御部
104、104-2 更新部
121 記憶部
200、200-2 仲介装置
201、201-2 通信制御部
300、300-2 機器
301、301-2 通信制御部
302 動作制御部