IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機株式会社の特許一覧

<>
  • 特許-確率的勾配推定による極値シーク制御 図1
  • 特許-確率的勾配推定による極値シーク制御 図2
  • 特許-確率的勾配推定による極値シーク制御 図3A
  • 特許-確率的勾配推定による極値シーク制御 図3B
  • 特許-確率的勾配推定による極値シーク制御 図4A
  • 特許-確率的勾配推定による極値シーク制御 図4B
  • 特許-確率的勾配推定による極値シーク制御 図5
  • 特許-確率的勾配推定による極値シーク制御 図6
  • 特許-確率的勾配推定による極値シーク制御 図7
  • 特許-確率的勾配推定による極値シーク制御 図8
  • 特許-確率的勾配推定による極値シーク制御 図9
  • 特許-確率的勾配推定による極値シーク制御 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-26
(45)【発行日】2024-10-04
(54)【発明の名称】確率的勾配推定による極値シーク制御
(51)【国際特許分類】
   G05B 13/02 20060101AFI20240927BHJP
【FI】
G05B13/02 A
【請求項の数】 18
【外国語出願】
(21)【出願番号】P 2021202618
(22)【出願日】2021-12-14
(65)【公開番号】P2022151563
(43)【公開日】2022-10-07
【審査請求日】2024-05-23
(31)【優先権主張番号】17/214,812
(32)【優先日】2021-03-27
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】チャクラバルティ・アンクシュ
(72)【発明者】
【氏名】ダニエルソン・クラウス
(72)【発明者】
【氏名】ボルトフ・スコット
(72)【発明者】
【氏名】ラフマン・クリストファー
【審査官】牧 初
(56)【参考文献】
【文献】特開2019-148988(JP,A)
【文献】特開2004-164431(JP,A)
【文献】米国特許出願公開第2016/0132027(US,A1)
【文献】米国特許出願公開第2017/0212482(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 11/00-13/04
(57)【特許請求の範囲】
【請求項1】
システムのアクチュエータセットを制御するための制御システムであって、
前記制御システムは、
少なくとも1つのプロセッサと、
前記制御システムのモジュールを形成するための命令を格納するメモリとを備え、
前記少なくとも1つのプロセッサは、前記制御システムの前記モジュールを形成するための前記命令を実行するように構成され、
前記モジュールは、スイッチャを含み、
前記スイッチャは、
1つの設定値セットから複数の設定値サブセットを作成するように構成され、前記設定値セットは、前記アクチュエータセットをそれぞれ制御し、および
前記複数の設定値サブセットから1つの設定値サブセットを選択するように構成され、前記設定値サブセットは、アクチュエータサブセットをそれぞれ制御し、
前記モジュールは、極値シークコントローラ(ESC)をさらに含み、
前記ESCは、現在のESC反復および過去のESC反復で生成された、前記設定値サブセットの設定値を前記システムの動作コストに関連するコスト関数の部分勾配の確率分布の1次モーメントおよび2次モーメントに基づいて、前記選択された設定値サブセットの1つ以上の設定値を各反復で摂動させるように構成され、
前記モジュールは、確率的勾配エスティメータをさらに含み、
前記確率的勾配エスティメータは、
各サブセットの設定値の増分変化に対して前記コスト関数の全体勾配を推定し、
各ESC反復で生成された前記部分勾配の前記確率分布に基づいて、前記全体勾配の推定値を更新するように構成され、
前記モジュールは、フィードバックコントローラをさらに含み、
前記フィードバックコントローラは、前記システムの前記アクチュエータサブセットの状態を、前記摂動させられた設定値サブセットに向かってそれぞれ駆動するように構成されている、制御システム。
【請求項2】
前記全体勾配を推定するために、前記確率的勾配エスティメータは、前記設定値セットの各設定値に対して前記コスト関数の勾配を計算するようにさらに構成され、
前記設定値セットの各設定値は、少なくともいくつかの時点で摂動させられる、請求項1に記載の制御システム。
【請求項3】
前記部分勾配を推定するために、前記確率的勾配エスティメータは、前記選択された設定値サブセットに対して前記コスト関数の勾配を計算するようにさらに構成され、
前記選択された設定値サブセットの1つ以上の設定値は、摂動させられる、請求項1に記載の制御システム。
【請求項4】
前記1つ以上の設定値を摂動させるために、前記ESCは、前記1つ以上の設定値におけるディザ信号を使用するように構成され、
前記ディザ信号は、正弦波信号に対応する、請求項1に記載の制御システム。
【請求項5】
前記ESCは、
前記1次モーメントに基づいて、前記1つ以上の設定値を増加または減少させるか否かを判断し、
前記1次モーメントと前記2次モーメントの平方根との比に基づいて、前記1つ以上の設定値の増加または減少に関連する歩幅を決定するように構成される、請求項1に記載の制御システム。
【請求項6】
前記確率的勾配エスティメータは、適応運動量推定(Adam)アルゴリズム、適応勾配(Adagrad)アルゴリズム、および二乗平均平方根伝播(RMSprop)アルゴリズムのうち、少なくとも1つを実行する、請求項1に記載の制御システム。
【請求項7】
前記スイッチャは、1つ以上の制約に基づいて、前記設定値サブセットを作成するように構成され、
前記1つ以上の制約は、前記システムの物理制約、法的制約、およびビジネス制約のうち、少なくとも1つを含む、請求項1に記載の制御システム。
【請求項8】
前記コスト関数は、前記システムのエネルギ消費量に関連し、
前記少なくとも1つのプロセッサは、前記コスト関数を最小化するようにさらに構成される、請求項1に記載の制御システム。
【請求項9】
前記設定値サブセットを選択するために、前記スイッチャは、ランダム的な方法、決定論的な方法、および半ランダム的な方法のうち、少なくとも1つに基づいて、アクチュエータサブセットを選択するようにさらに構成される、請求項1に記載の制御システム。
【請求項10】
前記アクチュエータセットの各アクチュエータは、前記アクチュエータサブセットに選択されるように加重され、
各アクチュエータの加重値は、前記アクチュエータのエネルギ消費量の関数である、請求項9記載の制御システム。
【請求項11】
システムのアクチュエータセットを制御するための方法であって、前記方法は、
1つの設定値セットから複数の設定値サブセットを作成することを含み、前記設定値セットは、前記アクチュエータセットをそれぞれ制御し、
前記複数の設定値サブセットから1つの設定値サブセットを選択することを含み、前記設定値サブセットは、アクチュエータサブセットをそれぞれ制御し、
現在のESC反復および過去のESC反復で生成された、前記設定値サブセットの設定値を前記システムの動作コストに関連するコスト関数の部分勾配の確率分布の1次モーメントおよび2次モーメントに基づいて、前記選択された設定値サブセットの1つ以上の設定値を各反復で摂動させることと、
各サブセットの設定値の増分変化に対して前記コスト関数の全体勾配を推定することと、
各ESC反復で生成された前記部分勾配の前記確率分布に基づいて、前記全体勾配の推定値を更新するすることと、
前記システムの前記アクチュエータサブセットの状態を、前記摂動させられた設定値サブセットに向かってそれぞれ駆動することとを含む、方法。
【請求項12】
前記全体勾配を推定するために、前記方法は、前記設定値セットの各設定値に対して前記コスト関数の勾配を計算することをさらに含み、
前記設定値セットの各設定値は、摂動させられる、請求項11に記載の方法。
【請求項13】
前記部分勾配を推定するために、前記方法は、前記選択された設定値サブセットに対して前記コスト関数の勾配を計算することをさらに含み、
前記選択された設定値サブセットの1つ以上の設定値は、摂動させられる、請求項11に記載の方法。
【請求項14】
前記1つ以上の設定値を摂動させるために、前記方法は、前記1つ以上の設定値におけるディザ信号を使用するように構成され、
前記ディザ信号は、正弦波信号に対応する、請求項11に記載の方法。
【請求項15】
前記選択された設定値サブセットの1つ以上の設定値を各反復で摂動させるために、前記方法は、
前記1次モーメントに基づいて、前記1つ以上の設定値を増加または減少させるか否かを判断することと、
前記1次モーメントと前記2次モーメントの平方根との比に基づいて、前記1つ以上の設定値の増加または減少に関連する歩幅を決定することとをさらに含む、請求項11に記載の方法。
【請求項16】
前記方法は、適応運動量推定(Adam)アルゴリズム、適応勾配(Adagrad)アルゴリズム、および二乗平均平方根伝播(RMSprop)アルゴリズムのうち、少なくとも1つを実行することをさらに含む、請求項11に記載の方法。
【請求項17】
前記設定値サブセットは、1つ以上の制約に基づいて作成され、
1つ以上の制約は、前記システムの物理制約、法的制約、およびビジネス制約のうち、少なくとも1つを含む、請求項11に記載の方法。
【請求項18】
前記コスト関数は、前記システムのエネルギ消費量に関連する、請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に制御システムに関し、より詳しくは、極値シーク制御システムおよびシステムを制御するための方法に関する。
【背景技術】
【0002】
極値シークコントローラ(ESC)は、モデルなしで動的システムのリアルタイム最適化を行うために使用される。極値シーク制御は、動的システムのリアルタイム最適化を行うためのモデルフリー型適応制御である。ESCは、周波数領域手法を使用する。この手法は、正弦波励起信号および平均化フィルタを用いてコスト関数の勾配を推定し、最適点に達するまで勾配の推定値を積分する。コスト関数は、被制御システムの動作の性能メトリックを表す。性能メトリックの一例として、被制御システムの電力消費量が挙げられる。
【0003】
コスト関数の分析形式が利用できる場合、当該コスト関数の勾配を推定することは簡単である。しかしながら、殆どのデータ駆動ESC方法において、コスト関数は、未知である。したがって、ESCの1つの主な課題は、システムが動作している間に収集されたデータから未知のコスト関数の勾配を推定しなければならないことである。
【0004】
ESCを用いてシステムを制御するための典型的な装置は、2つのコントローラを含む。第1のコントローラは、被制御システムのアクチュエータの設定値を生成するように構成された設定値オプティマイザである。第2のコントローラは、被制御システムの状態を、設定値オプティマイザによって生成された設定値に向かって駆動するように構成されたフィードバックコントローラである。フィードバックコントローラの例として、例えば、PI(比例積分)コントローラ、PID(比例積分偏差)コントローラ、MPC(モデル予測制御)コントローラが挙げられる。極値シークの場合、ESCは、最適化対象の設定値の周期励起を使用するように、設定値オプティマイザを構成する。
【0005】
コスト関数の分析形式が利用できない場合、ESCおよびフィードバックコントローラは、共に動作して、設定値の増分によって生じたコスト関数の増分を含む動作データから、未知コスト関数の勾配を推定する。このような計算は、システムの制御中にリアルタイムで再帰的に実行される。しかしながら、多くの実用的な用途において、各制御ステップにおいてESCによって制御される被制御システムの異なるアクチュエータの設定値の数は、リアルタイム推定にとって計算上の負担になるほど十分に大きい。
【0006】
したがって、制御されているシステムの性能のコスト関数が未知である場合に、データ駆動ESCの計算効率を高める必要がある。
【発明の概要】
【0007】
いくつかの実施形態の目的は、複数のアクチュエータを含むシステムのデータ駆動制御を行うためのシステムおよび方法を提供することである。いくつかの実施形態の別の目的は、制御システムの複数のアクチュエータの設定値を推定することによって、その性能を最適化することができる極値シークコントローラ(ESC)を提供することである。以下、「被制御システム」、「制御されているシステム」および「システム」という用語は、互換的に使用される。「設定値」という用語は、本明細書に使用された場合、システムの変数の目標値を指す。「設定値」は、特定のセットの制御信号、熱力学パラメータおよび動作パラメータの任意の特定の値に適用される。例えば、被制御システムがHVACシステムである場合、設定値は、室内ファンの速度、室外ファンの速度、膨張バルブの位置、および圧縮機の速度などのうち、1つ以上を含んでもよい。いくつかの実施形態の別の目的は、データ駆動でありながら計算的に効率的な方法で未知コスト関数の勾配を推定するためのESCを提供することである。したがって、本明細書において、システムの設定値は、設定値ベクトルとも称される。各制御ステップにおいて、各ベクトルは、制御中のシステムの異なるアクチュエータの異なる設定値を含む。
【0008】
いくつかの実施形態は、ESCが、被制御システムの性能を最適化するために、最適な設定値の組み合わせを生成することを目的とするという認識に基づいている。したがって、ESCは、システムの特定のアクチュエータの性能を最適化するのではなく、複数のアクチュエータの性能を共に最適化する。したがって、ESCは、複数のアクチュエータの全ての設定値のコスト関数の全体勾配を推定する必要がある。コスト関数の分析形式が未知であるため、コスト関数は、全ての設定値を動作コストに関連付ける。その目的のために、ESCは、設定値ベクトルの全ての値を摂動させるまたは励起することによって、最適化を実行する。
【0009】
設定値ベクトル内の全ての設定値の励起によって、被制御システムの性能が最適な性能に達することができるため、有利である。しかしながら、いくつかの実施形態は、様々な状況において、このような励起が最適にならず、計算上高価であり、場合によって不可能であるという認識に基づいている。
【0010】
例えば、状況によって、被制御システムのいくつかの設定値は、例えばユーザによって固定されているか、または制約に違反する正弦波摂動を防止するための制約レベルで動作する。このような状況において、これらのアクチュエータの設定値の励起は、不可能であるまたは少なくとも非実用的である。別の状況において、各制御ステップにおいて考慮する必要のある設定値が多すぎるため、全ての設定値の励起およびその後の計算は、計算上の負担になる。しかしながら、各制御ステップについて、ESCの原理に従って、全ての設定値の勾配を全て推定する必要がある。
【0011】
いくつかの実施形態は、異なるサブセットの要素の設定値ベクトルのコスト関数の部分勾配に基づいて、設定値ベクトル全体のコスト関数の全体勾配を確率的に決定することができるという認識に基づいている。具体的には、設定値サブセットの部分勾配は、設定値サブセットに対応するアクチュエータサブセットを動作させることに関するコスト関数の増分変化を表す。部分勾配は、ESCの全体の動作を制御するには不十分であるが、全体勾配の推定には十分である。その理由は、全体勾配は、少なくとも統計的に、全ての異なる部分勾配と一致すべきであるからである。
【0012】
さらに、本開示の目的は、任意のシステム(例えば、加熱、換気および空調システム(HVACシステム)、音響システム、車両など)に設けられ、当該システムによって消費されるエネルギを最小化するための制御システムモデルを設計することである。いくつかの実施形態は、システムの異なる制御入力を最適化することによって省エネルギを達成することができるという認識に基づいている。追加的または代替的に、本開示の目的は、最小のエネルギ消費量を達成するように、制御システムの自己最適化を達成することである。
【0013】
その目的のために、いくつかの実施形態は、自己最適化制御戦略の範疇である極値シーク制御が、特定の性能指標を最適化するために、被制御システムの未知の入力および/または経時的に変化する入力を動的にシークすることができるという認識に基づいている。極値シーク制御は、ディザリング信号を用いて勾配を動的に探索するものとして見なすことができる。システム入力に対するシステム出力の勾配は、典型的には、システム動作を僅かに摂動させ、復調尺度を適用することによって得られる。システム性能の最適化は、閉ループシステムに設けられた積分器を用いて、勾配をゼロに向かって駆動することによって達成することができる。
【0014】
いくつかの実施形態において、最小のエネルギ消費量でシステムを動作させたい最適な設定値は、ユーザによってリアルタイムで提供されてもよい。例えば、システムは、会議室の温度を制御するための複数の空調装置(AC)を含む。ユーザが会議室の温度を20℃に保ち、最小のエネルギ消費量でシステムを動作させたいと仮定する。ユーザは、所望の温度(20℃)を入力としてシステムに提供することができる。ユーザによって提供された所望の設定値は、システムを動作させるための最適な設定値と呼ばれる。制御システムは、最適な設定値に基づいて、システムによって消費されるエネルギを最小化にしながら、会議室の温度を最適な設定値に調整するように、システムのアクチュエータセットを制御する。アクチュエータセットは、複数のACに対応する。アクチュエータセットの各アクチュエータを制御することによって、複数のACの各ACを制御することができる。
【0015】
いくつかの実施形態は、システムの複数のアクチュエータのうち、少なくとも1つのアクチュエータが制御できないときに、残りのアクチュエータを制御して、指定された設定値でシステムのエネルギ消費量を最適化することが困難であるという認識に基づいている。いくつかの実施形態において、ユーザがリアルタイム動作中のアクチュエータへの制御入力を指定するときに、複数のアクチュエータのうち、少なくとも1つのアクチュエータは、制御できなくなる。
【0016】
例えば、ユーザがACのファン速度を10rpmに指定した場合、1つの制御入力であるファン速度の固定値(10rpm)に対して22℃の温度を提供するようにACのアクチュエータを制御するための最適な制御入力値を決定し、指定された設定値で最小のエネルギ消費量を達成することは、困難である。別の実施形態において、アクチュエータへの接続が大きなエネルギ消費量をさらにもたらし得る任意の予期せぬ理由によって失われたときに、少なくとも1つのアクチュエータは、制御できなくなる。したがって、最小のエネルギ消費量を達成することは、困難である。
【0017】
その目的のために、いくつかの実施形態は、確率的勾配下降アルゴリズムによる極値シーク制御が、ランダムに変化する入力の動的性質に従って最適化解をリアルタイムに提供するという認識に基づいている。確率的勾配下降(SGD)アルゴリズムは、広範な分野に使用され、十分に研究された反復勾配に基づいた最適化アルゴリズム、例えば適応制御およびニューラルネットワークに属する。直接な勾配情報を利用する最急勾配下降法またはニュートン法などの標準的な最適化アルゴリズムとは対照的に、SGDアルゴリズムは、目標またはコスト関数の雑音測定値から構築された勾配の近似に基づいて動作する。標準的な最適化アルゴリズムの場合、例えば連鎖規則を用いて勾配を計算するために、システムの入出力関係の基礎知識をしばしば必要とする。SGDアルゴリズムは、これを必要としないため、非モデルベースの極値シーク制御により適切である。
【0018】
一部の実施形態において、アクチュエータは、被制御システムのリアルタイム動作中に監視される。アクチュエータを監視することによって、被制御システム上で実行される各動作インスタンスにおいて各アクチュエータの状態を決定することができる。アクチュエータの状態は、1つ以上のアクチュエータの非作動状態、1つ以上のアクチュエータの入力の突然変化などを含む。被制御システムのリアルタイム動作中のランダムイベントに関する情報は、エネルギ消費量の最適化に非常に重要である。
【0019】
したがって、制御システムがアクチュエータの変動を観察したとき、制御システムは、SGDアルゴリズムを含む極値シークコントローラを実行して、アクチュエータの組み合わせを決定することによって、所定の動作(例えば、ユーザの必要に応じて空調を提供すること)を実行すると共に、最適なエネルギ消費量を提供することができる。したがって、制御システムは、自給自足なものになり、制御システムへの任意の外部介入を必要せず、1つ以上のアクチュエータに生じるランダムイベントを自動的に対処することができる。
【0020】
したがって、一実施形態は、システムのアクチュエータセットを制御するための制御システムを開示する。制御システムは、少なくとも1つのプロセッサと、制御システムのモジュールを形成するための命令を格納するメモリとを備え、少なくとも1つのプロセッサは、制御システムのモジュールの命令を実行するように構成される。モジュールは、スイッチャ(switcher)を含み、スイッチャは、1つの設定値セットから複数の設定値サブセットを作成するように構成され、設定値セットは、アクチュエータセットをそれぞれ制御し、複数の設定値サブセットから1つの設定値サブセットを選択するように構成され、設定値サブセットは、アクチュエータサブセットをそれぞれ制御する。モジュールは、極値シークコントローラ(extremum-seeking controller:ESC)をさらに含み、ESCは、現在のESC反復および過去のESC反復で生成された、設定値サブセットの設定値をシステムの動作コストに関連するコスト関数の部分勾配の確率分布の1次モーメントおよび2次モーメントに基づいて、選択された設定値サブセットの1つ以上の設定値を各反復で摂動させるように構成される。モジュールは、確率的勾配エスティメータ(stochastic gradient estimator)をさらに含み、確率的勾配エスティメータは、各サブセットの設定値の増分変化に対してコスト関数の全体勾配を推定し、各ESC反復で生成された部分勾配の確率分布に基づいて、全体勾配の推定値を更新するように構成される。モジュールは、フィードバックコントローラ(feedback controller)をさらに含み、フィードバックコントローラは、システムのアクチュエータサブセットの状態を、摂動させられた設定値サブセットに向かってそれぞれ駆動するように構成されている。
【0021】
したがって、一実施形態は、システムのアクチュエータセットを制御するための方法を開示する。この方法は、1つの設定値セットから複数の設定値サブセットを作成することを含み、設定値セットは、アクチュエータセットをそれぞれ制御し、複数の設定値サブセットから1つの設定値サブセットを選択することを含み、設定値サブセットは、アクチュエータサブセットをそれぞれ制御し、現在のESC反復および過去のESC反復で生成された、設定値サブセットの設定値をシステムの動作コストに関連するコスト関数の部分勾配の確率分布の1次モーメントおよび2次モーメントに基づいて、選択された設定値サブセットの1つ以上の設定値を各反復で摂動させることと、各サブセットの設定値の増分変化に対してコスト関数の全体勾配を推定することと、各ESC反復で生成された部分勾配の確率分布に基づいて、全体勾配の推定値を更新するすることと、システムのアクチュエータサブセットの状態を、摂動させられた設定値サブセットに向かってそれぞれ駆動することとを含む。
【図面の簡単な説明】
【0022】
図1】例示的な実施形態に従って、システムのエネルギ消費量を最小化するように、システムのアクチュエータセットを制御するための制御システムを示すブロック図である。
図2】例示的な実施形態に従って、システムのエネルギ消費量を最小化するように、システムと共に実装された制御システムのワークフローを示す図である。
図3A】例示的実施形態に従って、特定の設定値におけるエネルギ消費量を最小化するように、制御システムによって制御されたシステムの複数のアクチュエータを示す図である。
図3B】例示的実施形態に従って、アクチュエータの状態フラグのバイナリシーケンスを示す図である。
図4A】例示的実施形態に従って、システムの動作制約に基づく、スイッチャによって選択されたシステムのアクチュエータのサブセットを示す図である。
図4B】例示的な実施形態に従って、制御システムによって制御された太陽集光ミラーを含む太陽熱発電所を示す図である。
図5】一実施形態例に従って、確率的勾配エスティメータによって実行される異なるアルゴリズムを示す図である。
図6】例示的な実施形態に従って、制御システムのゲインを適応する原理を示す図である。
図7】例示的な実施形態に従って、システムのエネルギ消費量を最小化するように、システムのアクチュエータセットを制御するために実行される方法のステップを示す図である。
図8】例示的実施形態に従って、蒸気圧縮機システムのエネルギ消費量を最小化するように、制御システムと共に実装された蒸気圧縮機システムを示す図である。
図9】例示的実施形態に従って、制御システムを用いた加熱、換気、および空調(HVAC)システムの制御を示す図である。
図10】例示的な実施形態に従って、コンピュータベースの制御システムを示すブロック図である。
【発明を実施するための形態】
【0023】
以下の記載において、説明の目的のために、本開示に対する完全な理解を提供するために、多くの具体的な詳細が記載される。これらの具体的な詳細なくても、1つ以上の実施形態を実施することができることは、当業者にとって明白である。また、本開示を不明瞭にしないように、装置および方法をブロック図として示す。
【0024】
本明細書および特許請求の範囲で使用される場合、用語「例えば」、「例示として」、「・・・のような」ならびに動詞「備える」、「有する」、「含む」およびそれらの他の動詞形は、1つ以上の構成要素または他の項目のリストと共に使用される場合、このリストから他の追加の構成要素または項目を排除しないことを意味するオープンエンドとして解釈すべきである。用語「・・・に基づく」は、少なくとも部分的に基づくことを意味する。さらに、理解すべきことは、本明細書に使用された表現および用語は、説明の目的のためのものであり、限定的なものとして見なすべきではないことである。本明細書に使用されたいずれかの見出しは、便宜のためのものであり、法的または限定的な効果を有しない。
【0025】
被制御システムを所望の最適な設定値で動作させるために、アクチュエータセットに対応する設定値セットを調整する必要がある。これによって、最小のエネルギ消費量で被制御システムを所望の最適な設定値で動作させるように、アクチュエータセットを調整することができる。その目的のために、極値シーク制御アルゴリズムを使用することができる。極値シーク制御アルゴリズムのタスクは、被制御システムの目標関数を最大化または最小化するための動作設定値を発見することである。例えば、ユーザが被制御システムによって消費されるエネルギー(この場合、コスト関数)を最小化するように被制御システムを動作させたい最適な設定値を定義した場合、極値シーク制御アルゴリズムは、システム115のアクチュエータセット117を動作させる最適な設定値の組み合わせを発見する。これによって、最小のエネルギ消費量でシステムを所望の最適値で動作させることができる。
【0026】
アクチュエータセットを動作させるための設定値を発見/決定するために、極値シーク制御アルゴリズムは、被制御システムが所望の設定値で動作させられるまで、アクチュエータセットに対応する設定値セットを反復的に摂動/励起させる。各反復において、設定値セットは、被制御システムの所望の最適設定値に基づいて増減するように更新される。
【0027】
したがって、ESCは、被制御システムの特定のアクチュエータの性能を最適化するのではなく、アクチュエータセットのうち、複数のアクチュエータの性能を共に最適化する。したがって、ESCは、複数のアクチュエータの全ての設定値のコスト関数の全体勾配を推定する必要がある。コスト関数は、設定値サブセットの設定値をシステムの動作コストに関連付ける。例えば、コスト関数は、システムのエネルギ消費量に対応し得る。したがって、ESCは、まず、設定値セットの全ての設定値を摂動または励起させることによってコスト関数の全体勾配を決定し、その後、被制御システムのコスト関数の最適化を実行する必要がある。
【0028】
しかしながら、設定値セット内の設定値の数が非常に大きい場合、ESCを用いて被制御システムのコスト関数を最適化すること(例えば、被制御システムのエネルギ消費量を最適化すること)は、非常に長い時間をかかる可能性がある。また、様々な実際の理由、例えば、状態空間のサイズ、調整されるユニットの数、いくつかの設定値を摂動させると制約違反または分散された被制御システムのネットワーク障害を引き起こす危険性がある安全配慮によって、各設定値を全て摂動させることは非現実的である。したがって、多くの状況において、ESCを用いてコスト関数(例えば、エネルギー)を最小化することによって被制御システムを最適化することは、最適にならず、計算上高価であり、場合によって不可能である。
【0029】
例えば、被制御システムは、1000基の空調機(AC)を備える。したがって、アクチュエータセットは、1000基のアクチュエータを含み、設定値セットは、1000個の設定値を含む。1000基のACの温度を調整するために、1000個の温度設定値を調整しなければならない。ESCは、各ESC反復において、1000個の設定値を全て調整し、結果として得られたコスト値を計算することができる。このコスト値を用いて、変更された設定値に対してコスト値の勾配を計算する。全ての設定値を摂動させたため、コスト関数の勾配は、全ての設定値に対して計算される。しかしながら、各ESC反復で全ての設定値を摂動させることは、実際には実現できない場合がある。その目的のために、いくつかの実施形態は、各ESC反復でACユニットの一部(例えば、1000基のうち、200基)のみを摂動させるという認識に基づいている。部分摂動の場合、設定値サブセットの変化に基づいてコスト値を計算し、その後、部分勾配を計算する。
【0030】
例えば、セットAは、最初の200基のACユニットであり、セットBは、次の200基のACユニットである。以下も同様である。1つのESC反復でセットAのACユニットのみを摂動させた場合、次の反復でセットBのACユニットを摂動させる。以下も同様である。コスト関数の全体勾配は、任意のESC反復で計算されてもよい。ESCは、全体勾配に基づいて設定値を更新することによって、ユーザによって提供された所望の最適設定値で動作するようにアクチュエータを駆動する。したがって、ESCは、全体勾配を計算しない場合、各設定値の摂動に対してコスト変化の勾配を計算する。しかしながら、各ESC反復で設定値サブセットのみが摂動させられるため、場合によって勾配の値が無限大であり得る。特に、ESCは、全体勾配に基づいて設定値を更新する。ESCは、全体勾配を受信していない場合、勾配(すなわち、コスト変化/各設定値の摂動)を計算しようとするが、(摂動させられたユニットが、200基であり、1万基ではないため)一部のコンポーネントに対して分母がゼロである。このような状況において、以下の2つのシナリオのうち、1つが可能である。すなわち、(a)ESCは、勾配を計算することができず、したがって、被制御システムを所望の最適設定値で動作させることができないか、または(b)ESCは、有用な情報が設定値のサブセットのみから収集されたとしても、全ての設定値を摂動させる勾配を計算する。シナリオ(b)は、遥かにより高い可能性であり、いくつかの設定値(例えば、セットB、セットCなどに含まれた設定値)を無意味に更新してしまう結果になる。この場合、セットAの摂動から収集された情報で、セットAの設定値のみを更新する必要がある。各ESC反復で全ての設定値を更新するため、ESCの全体的な減速をもたらす結果になる。
【0031】
被制御システムをより効率的に最適化するために、本開示は、設定値セットから作成された異なるサブセットの設定値のコスト関数の部分勾配に基づいて、設定値セットのうち、全ての設定値のコスト関数の全体勾配を確率的に決定するための制御システムを提案している。提案された制御システムは、確率的勾配アルゴリズムによる極値シーク制御を使用する。以下、図1を参照して、提案された制御システムを詳細に説明する。
【0032】
図1は、例示的な実施形態に従って、システム115のエネルギ消費量を最小化するように、システム115のアクチュエータセット117を制御するための制御システム100を示すブロック図である。制御システム100は、格納された命令を実行するように構成されたプロセッサ101と、プロセッサ101によって実行可能な命令を格納するメモリ103とを含む。プロセッサ101は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、または任意の数の他の構成を含んでもよい。メモリ103は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、または任意の他の適切なメモリシステムを含んでもよい。プロセッサ101は、バス105を介して、制御システム100の他の構成要素に接続されてもよい。
【0033】
システム115は、ユーザがシステム115を動作させたい特定の設定値(「最適な設定値」とも称される)などの1つ以上の入力を受信することができる。いくつかの実施形態において、ユーザは、入力インターフェイスを介してシステム115に入力を提供することができ、システム115の入力インターフェイスは、最適な設定値を選択するために使用される遠隔制御装置に連接されてもよい。別の実施形態において、入力インターフェイスは、最適な設定値を選択するためにユーザによって使用されるダッシュボードを含んでもよい。システム115は、最適な設定値に基づいてシステム115の1つ以上のパラメータを制御するように構成されたアクチュエータセット117を含む。アクチュエータセット117は、ソレノイド、電気モータ、油圧シリンダ、空気圧シリンダ、モータなどを含むことができる。システム115は、アクチュエータセット117に対応する設定値セット119をさらに含む。アクチュエータセット117の各アクチュエータは、設定値セット119の各設定値を用いて制御される。したがって、システム115のアクチュエータセット117を制御するために、制御システム100は、最小のエネルギ消費量でシステム115を所望の最適設定値で動作させるように、設定値セット119を制御する。
【0034】
まず、制御システム100は、設定値セットから複数の設定値サブセットを作成する。制御システム100は、複数の設定値サブセットを作成するためのスイッチャ(またはスイッチャモジュール)107を含む。スイッチャ107は、設定値セット119から複数の設定値サブセットを作成するように構成される。設定値サブセットは、1つ以上の制約に基づいて作成されてもよい。1つ以上の制約は、システム115の物理制約、例えばシステム115の動作可能な上限、法的制約、例えばシステム115の法的許容動作速度、およびビジネス制約、例えば最小の総エネルギ消費量のうち、少なくとも1つを含む。いくつかの実施形態において、複数の設定値サブセットは、ランダムにまたは決定論的に作成されてもよい。サブセットの少なくともいくつかの組み合わせは、交差してもよい。すなわち、少なくともいくつかの組み合わせは、共通の設定値を有する。別の実施形態において、サブセットの組み合わせは、互いに離されてもよい。すなわち、任意の2つ以上のサブセットは、共通の設定値を有しない。
【0035】
スイッチャ107は、複数の設定値サブセットから1つの設定値サブセットを選択するようにさらに構成される。1つの設定値サブセットは、アクチュエータセット117から選択されたアクチュエータサブセットをそれぞれ制御する。1つの設定値サブセットを選択するために、スイッチャ107は、アクチュエータセット117からアクチュエータサブセットを選択するように構成される。アクチュエータサブセットは、ランダムに選択されてもよい。別の実施形態において、アクチュエータサブセットは、1つ以上の制約に基づいて決定論的に選択されてもよい。いくつかの実施形態において、アクチュエータサブセットは、半ランダムに選択されてもよい。例えば、アクチュエータセット117のうち、少なくとも一部のアクチュエータが、残りのアクチュエータよりも多くのエネルギを消費すると仮定する。この場合、アクチュエータセット117内のアクチュエータは、スイッチャ107によってサブセットとして選択されるように加重されてもよい。その重みは、アクチュエータセット117のアクチュエータによって消費されたエネルギの関数であってもよい。
【0036】
例示的な実施形態において、スイッチャ107は、スケジューラであってもよい。このスケジューラは、次のESC反復で摂動させられる設定値サブセットまたはアクチュエータサブセットをスケジュールする。このスケジューラは、設定値サブセットまたはアクチュエータサブセットを、ランダムにまたは1つ以上の制約に基づいて決定論的にまたは半ランダムにスケジュールすることができる。このスケジューラは、有限の時間において全ての設定値の摂動をスケジュールする。
【0037】
また、設定値サブセット内の1つ以上の設定値は、システム115の状態を、最適な設定値に対応する状態に向かって駆動するように摂動させられる。これによって、システムは、最小のエネルギ消費量で動作させられる。
【0038】
その目的のために、制御システム100は、極値シーク制御アルゴリズムを実行するための極値シークコントローラ(ESC)109を使用する。ESC109は、ESC109の各反復(ESC反復とも呼ばれる)において、選択された設定値サブセットの1つ以上の設定値を摂動させるように構成される。1つ以上の設定値を摂動させるために、ESC109は、1つ以上の設定値におけるディザ信号を使用する。いくつかの例示的な実施形態において、ディザ信号は、正弦波信号に対応する。また、選択された設定値サブセットの1つ以上の設定値の摂動は、確率的勾配エスティメータ111によって生成されたコスト関数の部分勾配の確率分布の1次モーメントおよび2次モーメントに基づいて行われる。コスト関数は、設定値サブセットの設定値とシステムの動作コストとの間の関係を提供する。例示的な実施形態において、コスト関数は、ユーザが最小化または最大化しようとするユーザ定義エンティティまたは関数に対応し得る。例えば、コスト関数は、室内空調、すなわち、加熱/冷却サイクルの定常出力パワーに対応し得る。コスト関数の入力は、最適化すべき設定値、例えば、膨張バルブの位置、ファンの速度、圧縮機の周波数、および吐出温度などである。これらは、内部制御則が追跡することができる閉ループ制御システムの測定可能な出力である。
【0039】
また、部分勾配の確率分布は、現在のESC反復で生成された部分勾配および過去のESC反復で生成された部分勾配から生成されてもよい。
【0040】
その目的のために、制御システム100は、確率的勾配エスティメータ111を含む。確率的勾配エスティメータ111は、まず、選択された設定値サブセットに関連する部分勾配を決定する。部分勾配は、選択された設定値サブセットに対するコスト関数の勾配に対応する。選択された設定値サブセットの1つ以上の設定値は、摂動させられる。また、確率的勾配エスティメータ111は、各ESC反復で得られ、選択された(または現在の)設定値サブセットおよび過去に選択された設定値サブセットに関連する部分勾配の確率分布を生成する。さらに、確率的勾配エスティメータ111は、部分勾配の確率分布の1次モーメント、すなわち平均モーメント、および部分勾配の確率分布の2次モーメント、すなわち平方偏差を計算することによって、全体勾配の統計的推定値を決定する。より具体的には、確率的勾配エスティメータ111が設定値サブセットの部分勾配を取得する度に、全ての過去の部分勾配および現在の部分勾配の分布が計算され、分布の平均値および平方偏差が計算される。確率的勾配エスティメータ111は、平均値および平方偏差に基づいて、コスト関数の全体勾配の推定値を決定する。
【0041】
コスト関数の実際の全体勾配を決定するように最終的に全ての設定値を摂動させる限り、推定された全体勾配は、全体勾配の代理として機能する。したがって、ESC109は、全体勾配を計算するまで待つことなく、推定された全体勾配に基づいて、次の設定値サブセットの次の1つ以上の設定値を摂動させることができる。制御システム100は、実際の全体勾配を待つことなく、推定された全体勾配を用いて、システム115の状態を最適な設定値に対応する最適状態に向かって継続的に駆動する。
【0042】
部分勾配の分布の平均値は、全体勾配の推定値を提供するため、全ての設定値のうち、最も可能性の高い次の最適な設定値を得るように、設定値を移動させる(すなわち、摂動を増加または減少させる)方向を提供する。また、部分勾配の分布の平方偏差も、全体勾配の推定値に関連する情報を提供する。例えば、平方偏差に基づいて、設定値を増加または減少させる歩幅を決定することができる。確率的勾配エスティメータ111によって、制御システム100は、ESCの各反復(またはESC反復)で得られた全体勾配の推定値に基づいて、システム115に関連するコスト関数を最適化することができる。確率的勾配エスティメータ111は、各ESC反復で生成された部分勾配の確率分布に基づいて、全体勾配の推定値を更新する。
【0043】
確率的勾配エスティメータ111は、少なくとも1つの確率的勾配下降アルゴリズムを実行する。確率的勾配下降アルゴリズムは、適応運動量推定(Adam)アルゴリズム、適応勾配(Adagrad)アルゴリズム、および二乗平均平方根伝播(RMSprop)アルゴリズムを含むが、これらに限定されない。
【0044】
確率的勾配エスティメータ111およびESC109は、共同で、確率的極値シーク(SES)制御アルゴリズムを実行して、設定値をそれぞれ摂動させ、推定全体勾配を決定することによって、1つ以上のアクチュエータを制御する。SESアルゴリズムは、確率的勾配エスティメータ111によって実行される確率的勾配下降アルゴリズムと、ESC109によって実行される極値シーク制御アルゴリズムとを含む。
【0045】
また、制御システム100は、フィードバックコントローラ113を使用する。フィードバックコントローラ113は、各ESC反復で摂動させられた設定値サブセットに基づいて、システム115の状態を、ユーザによって入力された最適な設定値に対応する状態(すなわち、最適状態)に達するまで駆動するように構成される。したがって、フィードバックコントローラ113は、システム115の現在の状態をESC109に継続的にフィードバックすることによって、システム115が最適状態で動作するまで、他のサブセットの設定値をさらに摂動させる。
【0046】
図2は、例示的な実施形態に従って、システム201のエネルギ消費量を最小化するように、システム201と共に実装された制御システム200のワークフローを示す。制御システム200は、図1に示す制御システム100と同様である。システム201は、制御システム200によって制御される。制御システム200によって制御されるシステム201は、エネルギ消費量を最適化することが望まれる任意のシステム、例えば、蒸気圧縮システム、空調システム、およびHVACシステムであってもよい。
【0047】
制御システム200は、システム201を動作させたい入力設定値203(θ)を受信することができる。制御システム200は、入力設定値203を取得するスイッチャ107を含む。スイッチャ107には、アクチュエータの総数と、対応するシステム201の設定値の総数とを供給することができる。スイッチャ107は、システム201の設定値から複数の設定値サブセットを作成し、1つの時間インスタンスまたは1つのESC反復のために少なくとも1つの設定値サブセットを選択することができる。選択された設定値サブセットは、ESC109に供給され、ESC109は、選択された設定値サブセットの1つ以上の設定値を摂動させる。また、選択された設定値サブセットの摂動または更新された1つ以上の設定値は、確率的勾配エスティメータ111に供給され、確率的勾配エスティメータ111は、更新された1つ以上の設定値に基づいてコスト関数の部分勾配を決定し、部分勾配の確率分布に基づいてコスト関数の全体勾配を推定する。確率的勾配エスティメータ111の出力は、フィードバックコントローラ113に供給され、システム201を制御する。
【0048】
フィードバックコントローラ113は、状態エスティメータ205と共に、システム201の実行を最適化するためのフィードバックループを形成する。これによって、最小のエネルギ消費量で入力された設定値203における性能出力207を達成することができる。また、状態エスティメータ205は、システム201の状態を監視するための1つ以上のセンサを含むことができる。フィードバックコントローラ113は、状態エスティメータ205からシステム201の現在の状態を取得し、入力設定値203に対応する所望の状態に達したか否かを追跡することができる。システム201が所望の状態が達していないと判断した場合、フィードバックコントローラ113は、確率的勾配法に従って、設定値の極値シーク制御を開始することができる。設定値203は、システム201を動作させたい所定値であってもよい。
【0049】
【数1】
【0050】
【数2】
【0051】
制御システム200は、システム201の1つ以上の要素を制御するために使用され得る(図1に記載された)複数のアクチュエータを含むことができる。1つ以上の要素は、システム201の1つ以上の機能を制御する。例えば、制御システム200の第1のアクチュエータを用いて、システム201のファン(要素1)の速度を制御することができ、第2のアクチュエータを用いて、システム201の圧縮機(要素2)を制御することができる。以下同様である。
【0052】
例示的な実施形態において、制御入力を用いてシステム201の少なくとも1つの要素が制御できないという判断に基づいて、エネルギ消費量を最適化するように制御システム200をトリガすることができる。制御システム200は、状態エスティメータ205を用いて、システム201の全ての要素を監視すると共に、各要素の状態213を取得することができる。状態エスティメータ205は、取得した各要素の状態213に基づいて、少なくとも1つの要素が制御できないと判断する。ユーザがリアルタイムで要素を制御するためのアクチュエータへの制御入力の値を予め決定または固定すると、この要素は、制御できなくなる。別の実施形態において、要素を制御するためのアクチュエータへの接続は、何らかの予期せぬ理由、例えば偶発的な理由によって失われる可能性がある。
【0053】
トリガ時に、制御システム200は、確率的極値シークアルゴリズム(すなわち、確率的勾配アルゴリズムを用いた極値シーク制御)を使用して、システム201を入力された設定値203で動作させるようにシステム201の各要素の動作点を決定する。また、制御システム200は、決定された各要素の動作点を用いて、システム201の各要素の動作を最適化する。これによって、最小の電力消費量でシステム201を入力された設定値203に動作させることができる。
【0054】
制御システム200は、動作中に得られたデータ、例えば、動作点の履歴および測定された性能出力(例えば、動力)207を用いて、データ履歴から得られた勾配推定値に基づいて、動作点(設定値)最適化アルゴリズム、例えば、確率的極値シークアルゴリズムの歩幅を変更する。動作点は、各反復によりリアルタイムで更新される。動作点を更新するための反復の間に、フィードバックコントローラ113によって制御されるシステム201は、定常動力状態に達することができる。従来の極値シーク制御(ESC)方法とは異なり、全ての動作点は、全ての所定の時点で作動に利用可能でない場合がある。すなわち、全ての動作点のサブセットは、所定の時点で制御可能である。所定の時点で利用可能なサブセットは、設計時に分からない可能性がある。したがって、全体勾配は、特定のコンポーネントまたはチャネルが全ての時点で変化していない動作点データに基づいて推定される。これは、確率的勾配としてモデル化することができ、機械学習アルゴリズムを訓練するときに一般に使用される確率的勾配最適化方法の使用を促進する。
【0055】
また、状態エスティメータ205は、システム201の各要素の状態をリアルタイムで監視し、監視データ215をフィードバックコントローラ113に提供する。これによって、制御システム200は、必要な場合に、システム201の要素の動作点をさらに最適化することができる。
【0056】
いくつかの実施形態は、確率的勾配最適化を極値シーク制御に使用して、局所近傍の関数の平滑度に基づいて、制御システム200のゲインを自動的に調整することができるという認識に基づいている。
【0057】
【数3】
【0058】
図3Aは、例示的実施形態に従って、特定の設定値303におけるエネルギ消費量を最小化するように、制御システム301によって制御されるシステム300の複数のアクチュエータを示す。制御システム301は、図1に示す制御システム100に対応する。以下、図1を併用して図3Aを説明する。
【0059】
システム300は、複数のアクチュエータ、例えば、アクチュエータ1、アクチュエータ2、およびアクチュエータn(以下、複数のアクチュエータ305a、305b、...、305nまたは複数のアクチュエータ305a~305nとも称される)を含む。複数のアクチュエータ305a~305nの各アクチュエータは、複数のスイッチ307a、307b、...、307n(307a~307nとも呼ばれる)の各スイッチにそれぞれ接続される。スイッチ307a~307nは、制御入力に関連付けられ、複数のアクチュエータ305a~305nをそれぞれ制御する。
【0060】
システム300は、特定の設定値303を入力として受信することができる。いくつかの実施形態において、設定値303は、予め定義されてもよい。別の実施形態において、設定値303は、ユーザによってリアルタイムで提供される。設定値303は、システム300を動作させたいパラメータである。例えば、空気調和機(AC)に接続されたシステムにおいて、設定値300は、ACシステムを動作させたい温度の値(例えば、22℃)であってもよい。
【0061】
例示的な実施形態において、制御システム301は、受信したシステム300の特定の設定値に基づいて、特定の動作点で複数のアクチュエータ305a~305nを制御することができる。設定値303を受信すると、制御システム301は、複数のアクチュエータ305a~305nを制御することによって、所望の設定値303でシステム300を動作させる。システム300は、複数のアクチュエータ305a~305nの各アクチュエータの状態を検出することができる複数のセンサ(図3Aには図示せず)を含むことができる。アクチュエータの状態は、対応する制御入力を使用したか否かによるアクチュエータを制御できるか否かなどの情報を提供することができる。
【0062】
ユーザがリアルタイム動作中にアクチュエータへの制御入力を指定したとき、当該アクチュエータは、制御できない。別の実施形態において、アクチュエータへの接続が大きなエネルギ消費量をもたらした任意の予期せぬ理由によって失われたときに、当該アクチュエータは、制御できない。
【0063】
制御システム301は、複数のアクチュエータ305a~305nと複数のスイッチ307a~307nをそれぞれ制御するためのスイッチとの接続を判断することによって、複数のアクチュエータ305a~305nのいずれかのアクチュエータを制御できるか否かを判断する。その目的のために、複数のアクチュエータ305a~305nは、連続的に監視される。複数のアクチュエータ305a~305nのうちの1つ以上のアクチュエータと、複数のスイッチ307a~307nのうちの対応するスイッチとの接続が失われた場合、複数のアクチュエータ305a~305nのうちの1つ以上のアクチュエータは、制御できないと判断される。
【0064】
制御システム301は、複数のアクチュエータ305a~305nのうちの1つ以上のアクチュエータが制御できないという判断に基づいて、極値シークコントローラ109および確率的勾配エスティメータ111を用いて、確率的極値シーク(SES)アルゴリズムを実行する。SESアルゴリズムを実行することによって、複数のアクチュエータ305a~305nのうち、残りの制御可能なアクチュエータは、最小のエネルギ消費量でシステム300を指定された設定値303で動作させるように制御される。
【0065】
その目的のために、制御システム301は、複数のアクチュエータ305a~305nに対応する設定値セットから、複数の設定値サブセットを作成する。設定値セットを用いて、複数のアクチュエータ305a~305nを制御することができる。一実施形態において、アクチュエータ305a~305nの設定値セットは、スイッチ307a~307nを用いて調整されてもよい。また、1つの設定値サブセットを選択し、制御可能なアクチュエータに対応する設定値サブセットの1つ以上の設定値を摂動させることができる。摂動させられた1つ以上の設定値を用いて、選択された設定値サブセットの部分勾配を決定する。また、選択されたサブセットに対応する部分勾配および過去に選択されたサブセットに対応する過去の部分勾配に基づいて、部分勾配の確率分布を決定する。さらに、確率分布の平均および平方偏差などの統計パラメータを決定する。統計パラメータに基づいて、全体勾配を推定し、各設定値の摂動を増加または減少させるか否かを判断する。さらに、統計パラメータを用いて、設定値の摂動を増加または減少させる歩幅を決定する。システム300の状態を、摂動させられた設定値に対応する状態に駆動する。入力された設定値303に対応するシステム300の最適状態に達したか否かを判断するために、状態を監視する。システム300の状態に基づいて、制御システム301は、システム300が最適状態に達するまで、制御可能なアクチュエータに対応する1つ以上の設定値を継続的に摂動させることができる。
【0066】
図3Bは、例示的実施形態に従って、アクチュエータの状態フラグのバイナリシーケンス309を示す。以下、図3Aを併用して図3Bを説明する。アクチュエータの状態フラグのバイナリシーケンス309は、各々の制御スイッチ307a~307nを介して複数のアクチュエータ305a~305nを制御した結果である。各アクチュエータの状態プロットは、X軸上の時間およびY軸上の状態(1の場合にON、0の場合にOFF)を含む。
【0067】
図4Aは、例示的実施形態に従って、システム401の動作制約に基づいて、スイッチャによって選択されたシステム401のアクチュエータサブセットを示す。システム401は、例えば、蒸気圧縮機システムに対応する。蒸気圧縮機システムは、異なるアクチュエータ、圧縮機の温度、圧縮機の速度、膨張バルブの位置、流れ反転バルブの位置を含むことができる。蒸気圧縮機システムは、制御システム405に接続される。制御システム405は、蒸気圧縮機システムのエネルギ消費量を最小化するために、蒸気圧縮機システムのアクチュエータを制御するように構成される。その目的のために、制御システム405は、反復的に(すなわち、各ESC反復で)確率的極値シーク(SES)アルゴリズムを使用する。SESアルゴリズムは、極値シークコントローラ405cおよび確率的勾配エスティメータ405bによって実行される。制御システム405は、図1に示した制御システム100に対応する。また、スイッチャ405a、確率的勾配エスティメータ405bおよびESC405cは、図1に示したスイッチャ107、確率的勾配エスティメータ111およびESC109にそれぞれ対応する。蒸気圧縮機システムは、制約チェッカ403を介して制御システム405に接続される。
【0068】
また、動作制約は、蒸気圧縮機システムの入力401aに対する入力制約および蒸気圧縮機システムの出力401bに対する出力制約のうち、少なくとも1つを含む。蒸気圧縮機システムの出力制約について、過去のESC反復で蒸気圧縮機システムの1つ以上のアクチュエータの過去の設定値を選択した後、アクチュエータの1つの重要な性能変数(例えば、圧縮機の温度)は、指定された最大制約に近くなるまたはそれを超える可能性がある。この場合、スイッチャ405aは、圧縮機の温度制約に違反しない勾配を得るように、次のESC反復の入力サブセット(すなわち、アクチュエータ)を選択する。したがって、制御システム405は、次のESC反復で圧縮機温度を変更しなくてもよい。しかしながら、制御システム405は、膨張バルブの位置および流れ反転バルブの位置を含むアクチュエータサブセットを選択することができ、次のESC反復で膨張バルブおよび/または流れ反転バルブの位置を開放(または変更)することができる。
【0069】
入力制約は、蒸気圧縮機システムに対して同様の効果を有する。例えば、圧縮機速度の増加および膨張バルブ開度の減少の両方は、蒸気圧縮機システム全体の圧力差の大きさを増加させる効果を有する。ユーザは、大きな圧力差および機器(または蒸気圧縮機システム)の潜在的な損傷を避けるために、これらの変更の両方をアクチュエータに同時に適用しないことがある。この制限により、スイッチャ405aは、蒸気圧縮機システムを損傷しないように、次のESC反復で設定値が摂動させられ得るアクチュエータサブセットをさらに選択する。
【0070】
また、入力制約と出力制約とは、相互作用することができる。例えば、圧縮機速度の増加および膨張バルブ開度の減少の適用は、経験的には問題ない可能性があるが、蒸気圧縮機システムが所定の時点で適用されたアクチュエータの設定値に応答するため、圧縮機の最大温度に対する制約に違反する(制約違反409)可能性がある。したがって、制御システム405は、制約違反409を回避するように、勾配を推定する前の所定の時点で、蒸気圧縮機システムのアクチュエータの入力設定値を変更する必要がある。これによって、全てのアクチュエータを移動するのではなく、所定の時点でアクチュエータサブセットを効果的に選択することができる。
【0071】
別の実施形態において、システム401が一組のシステムを含み、各システムが加熱、換気および空調(HVAC)システムであると仮定する。システム401または一組のシステムは、全てのアクチュエータを同時に使用しない。建物の換気および空調を調整するために10基のHVACシステムが使用されていると仮定する。建物の総電力容量が指定されると、例えば、各HVACシステム内の圧縮機の速度が上限値に達すときに、全てのシステムが同時に最大電力を利用しないことが予想される。HVACシステムの最大の電力消費量は、定格電力消費量の2倍以上である。協調されたESC方法が全ての圧縮機を最大速度で運転するように命令した場合、最大の電力消費量が建物の総電力消費量を超えてしまい、建物の回路遮断器の遮断またはさらに悪い事故を引き起こす可能性がある。これを解決するために、外部信号407を入力としてスイッチャ405aに提供することができる。外部信号407は、建物の現在の電力消費量を含むことができる。スイッチャ405aは、外部信号407を用いて、電力消費量の上限または制約を超えないように、スイッチャ405aが作動できるアクチュエータ、例えば圧縮機の数を決定することができる。
【0072】
図4Bは、例示的な実施形態に従って、制御システム415によって制御される太陽集光ミラー413を含む太陽熱発電所411を示す。制御システム415は、図1に示した制御システム100に対応する。太陽集光ミラー413は、セクタ1、2、3、...、16を含み、各セクタは、一セットのミラーを含む。ミラーセットは、対応する空間セクタに配置されている。いくつかの実施形態は、全ての空間セクタ内のミラー位置の変化が、発電所の全体的な性能に有意且つ顕著な効果を有するという認識に基づいている。この場合、太陽熱発電所411に対する望ましくない影響を回避するように、ミラーの位置を別々に制御または駆動する必要があるため、各セクタ内のミラーの位置が必要である。各セクタ内のミラーの位置を調整するために、太陽熱発電所411は、制御システム415に接続される。制御システム415は、セクタスイッチャ415aと、確率的勾配エスティメータ415bと、ESC415cとを含む。セクタスイッチャ415a、確率的勾配エスティメータ415bおよびESC415cは、図1に示したスイッチャ107、確率的勾配エスティメータ111およびESC109にそれぞれ対応する。
【0073】
発電所の全体的な性能に対する強い影響を与える可能性を回避するために、制御システム415は、一度に1つの空間セクタ内の太陽集光ミラー413の位置を修正(または変更)する。その目的のために、制御システム415は、ESC415cおよび確率的勾配エスティメータ415bによって実装されたSESアルゴリズムを用いて、各ESC反復で部分勾配を取得する。部分勾配を用いて、全体勾配を推定する。従って、全ての空間セクタの修正を必要とする実際の全体勾配の計算を待たずに、推定された全体勾配を用いて、1つの空間セクタ内の太陽集光ミラーの位置をより迅速に修正することができる。
【0074】
図5は、例示的な実施形態に従って、確率的勾配エスティメータ111によって実行された異なるアルゴリズムを示す。これらのアルゴリズムは、確率的勾配下降に基づくものである。これらのアルゴリズムは、勾配および勾配の統計を活用して、全体勾配のロバスト推定を行う。また、これらのアルゴリズムは、収束速度を改善するように、歩幅を迅速に特定する運動量ベースのメカニズムを含む。例示として、これらのアルゴリズムは、Adam501、適応勾配(Adagrad)503、および二乗平均平方根伝播(RMSprop)505を含むが、これらに限定されない。例示的な実施形態において、確率的勾配エスティメータ111は、以下に説明する1つ以上の確率的勾配アルゴリズムを実行するために使用されるニューラルネットワークモデルを用いて実装されてもよい。
【0075】
Adagrad
Adagrad(適応勾配アルゴリズム)は、パラメータごとの学習率を有する修正された確率的勾配下降アルゴリズムである。Adagradは、より低い密度パラメータの学習率を増加させ、より高い密度のパラメータの学習率を減少させる。したがって、Adagradは、データが低密度のものであり且つ低密度のパラメータがより多い情報量を有する場合に、標準の確率的勾配下降法よりも収束性能を改善する。Adagradは、基本の学習率ηを有するが、この学習率は、外積行列の対角線であるベクトル{Gj,j}の要素によって乗算される。この対角線は、以下の式によって与えられる。
【0076】
【数4】
【0077】
【数5】
【0078】
【数6】
【0079】
RMSprop
RMSpropは、学習率を各パラメータに適合させるための方法である。RMSpropは、ある重みの学習率をその重みの最近の勾配の大きさの移動平均値で割る。したがって、移動平均値は、まず、平均二乗で計算される。
【0080】
【数7】
【0081】
式中、γは、忘却因子である。
パラメータは、以下のように更新される。
【0082】
【数8】
【0083】
RMSpropは、フルバッチのみとは対照的に、ミニバッチでも機能することができる。
Adam
【0084】
【数9】
【0085】
【数10】
【0086】
電力グリッドまたは建物群の動作条件などの動作点の数が多い場合に、または全ての動作点の更新が各反復で行われることを防止する動作制約が存在する場合に、ゲインの適用は、良好に機能する。このような場合、動作点の全てのベクトルを常に変更することまたは全ての電力出力を同時に測定することができない。したがって、一部の動作点のみを変更することができ、一部の勾配のみを推定することができる。Adamアルゴリズム501のように勾配の履歴の統計を評価することによって、全体勾配ベクトルの推定値を得ることができる。したがって、Adamアルゴリズム501のような適応勾配法は、主に勾配のランダムサブセットを用いて局所最適値をもたらすサーチ方向を見つけるための深層ニューラルネットワークを訓練するためのミニバッチ勾配ベースの更新に使用されるため、これらの大規模な問題によく適している。
【0087】
図7は、例示的な実施形態に従って、システムのエネルギ消費量を最小化するように、システムのアクチュエータセットを制御するために実行される方法700のステップを示す。アクチュエータセットは、対応する設定値セットを用いて制御されてもよい。また、ユーザは、最小のエネルギ消費量でシステムを動作させるように、最適な設定値を提供することができる。方法700は、最小のエネルギ消費量でシステムを最適な設定値で動作させるように、対応するアクチュエータを制御するための1つ以上の設定値を制御するステップを含む。方法700は、ステップ701から開始する。
【0088】
ステップ701において、1つの設定値セットから複数の設定値サブセットを作成することができる。設定値サブセット内の各設定値を利用して、対応するアクチュエータセット内の各アクチュエータを制御することができる。設定値サブセットは、1つ以上の制約に基づいて作成することができ、1つ以上の制約は、システムの物理制約、例えばシステムの動作可能な上限、法的制約、例えばシステムの法的許容動作速度、およびビジネス制約、例えば最小の総エネルギ消費量のうち、少なくとも1つを含む。
【0089】
ステップ703において、複数の設定値サブセットから1つの設定値サブセットを選択することができる。この設定値サブセットは、ランダムにまたは決定論的に選択されてもよい。
【0090】
ステップ705において、選択された設定値サブセットの1つ以上の設定値を各反復で摂動させることができる。1つ以上の設定値を摂動させるために、1つ以上の設定値におけるディザ信号を使用することができる。いくつかの実施形態において、ディザ信号は、正弦波信号に対応する。また、選択された設定値サブセットの1つ以上の設定値の摂動は、コスト関数の部分勾配の確率分布の1次モーメントおよび2次モーメントに基づいて行われる。コスト関数は、設定値サブセットの設定値とシステムの動作コストとの間の関係を提供する。
【0091】
ステップ707において、各サブセットの設定値の増分変化に対してコスト関数の全体勾配を推定することができる。推定された全体勾配は、実際の全体勾配の代理として機能する。したがって、制御システムは、各反復で実際の全体勾配を有しない1つ以上の設定値を摂動させることによって、システムを最適化することができる。また、部分勾配の分布は、過去の設定値のサブセットに関連する部分勾配の履歴に基づいて生成される。
【0092】
ステップ709において、各ESC反復で生成された部分勾配の確率分布に基づいて、全体勾配の推定値を更新することができる。実際の全体勾配が計算されるまで、各反復で推定された全体勾配を更新することができる。
【0093】
ステップ711において、システムのアクチュエータサブセットの状態を、摂動させられたサブセットの設定値に向かってそれぞれ駆動することができる。また、システムの最適な状態に達するまで、システムの状態を監視することができ、システムの状態を制御システム100にフィードバックすることができる。
【0094】
例示的な実装形態
図8は、例示的実施形態に従って、蒸気圧縮機システム800のエネルギ消費量を最小化するように、制御システム100と共に実装された蒸気圧縮機システム800を示す。蒸気圧縮機システム800は、異なるアクチュエータ、例えば、室内ユニットファン801および室外ユニットファン803などの可変速ファン、可変速圧縮機805、膨張バルブ807および流れ反転バルブ809などの電子作動バルブを含む。また、蒸気圧縮機システム800は、蒸気圧縮機システム800の状態と蒸気圧縮機システム800の各アクチュエータの状態とを監視するためのセンサ811を含む。
【0095】
制御システム100は、蒸気圧縮サイクルの定常エネルギ消費量813を最小化することと等価である、蒸気圧縮サイクルのエネルギ使用量を最小化することを目的とする。
【0096】
また、蒸気圧縮機システム800の異なる構成要素は、最小のエネルギ消費量813で蒸気圧縮機システム800を動作させるように相関される。しかしながら、主な課題は、これらの異なる可変な構成要素を、最小の電力値に設定することである。
【0097】
蒸気圧縮機システム800は、アクチュエータを所定の値で動作させることによって、特定の設定値の冷房を建物に提供することができる。例えば、蒸気圧縮機システム800は、10基の室内ユニットファン801、6基の室外ユニットファン803、5基の圧縮機805、3つの膨張バルブ807、6つの流れ反転バルブ809を動作させる。各アクチュエータの状態は、センサ811によって監視され、制御システム100に提供されてもよい。
【0098】
蒸気圧縮機システム800の動作中、ユーザは、蒸気圧縮機システム800を、ユーザが入力した所望の最適設定値で動作させたい場合がある。この目的のために、ユーザは、5基の室内ユニットファン801の速度を固定して、蒸気圧縮機システム800の他のアクチュエータまたは残りのアクチュエータを所定の値で動作させる。最小のエネルギ消費量で蒸気圧縮機システム800を所望の設定値で動作させることは課題である。したがって、最小のエネルギ消費量を達成するために、5基の室内ユニットファン801の速度の固定値に応じて、残りのアクチュエータを動作させる値を最適化する必要がある。
【0099】
その目的のために、制御システム100は、確率的勾配アルゴリズムによる極値シーク制御を使用する。制御システム100は、確率的勾配アルゴリズムによる極値シーク制御を実行することによって、最小のエネルギ消費量を達成するように、残りのアクチュエータ(すなわち、設定値が固定されていないアクチュエータ、例えば室外ユニットファン803、圧縮機805、膨張バルブ807、および流れ反転バルブ809)の動作点(または設定値)を制御または調整する。
【0100】
確率的勾配アルゴリズムによる極値シーク制御の実行に基づいて、制御システム100は、設定値の異なる組み合わせを決定する。動作点の最良の組み合わせ(すなわち、グローバル最適値)は、最小のエネルギ消費量を提供する。その目的のために、制御システム100は、蒸気圧縮機システム800と共に閉ループで動作する。これによって、摂動させられた現在の設定値に対応する蒸気圧縮機システム800の現在の状態は、制御システム100にフィードバックされる。制御システム100は、蒸気圧縮機システム800の現在の状態に基づいて、入力された設定値に対応する最適状態に達したか否かを判断する。蒸気圧縮機システム800の現在の状態が蒸気圧縮機システム800の最適状態に達していない場合、制御システム100は、最適状態に達するまで、確率的勾配アルゴリズムによる極値シーク制御の反復を繰り返す。
【0101】
例えば、室内ユニットファン801の数を5基に固定しながら、最小のエネルギ消費量を達成するように、動作点の最適な組み合わせを得ることは、室外ユニットファン803を8基に、圧縮機805を6基に、膨張バルブ807を2つに、流れ反転バルブ809を5つに調整することを含むことができる。したがって、少なくとも1つのアクチュエータの値がユーザによって固定されるため、当該アクチュエータが制御できないという判断に基づいて、確率的勾配アルゴリズムによる極値シーク制御を実行することによって、リアルタイムで残りのアクチュエータの動作点を共に制御する。これによって、蒸気圧縮機システム800は、中断することなく、最小のエネルギ消費量で所望の設定値821で動作することができる。
【0102】
図9は、例示的実施形態に従って、制御システム100を用いた加熱、換気、および空調(HVAC)システム901の制御を示す。「HVAC」システムは、蒸気圧縮サイクルを実施する任意の加熱、換気、および空調(HVAC)システムを指す。HVACシステム901は、屋外の空気のみを建物の居住者に供給するためのシステムから、建物の温度のみを制御するためのシステムまたは建物の温度および湿度を制御するためのシステムに及ぶ非常に広範囲のシステムを含む。
【0103】
HVACシステム901は、室内900をコンディショニングするように構成される。室内900は、占有者903、905、907および909によって占有される。矢印911は、室内900をコンディショニングするように、HVACシステム901によって供給された空気を表す。占有者903、905、907および909のうちの一人は、入力(すなわち、特定の設定値および制御入力)をHVACシステム901に提供することによって、室内900の温度を変更することができる。したがって、HVACシステム901の1つ以上のアクチュエータを制御することができる。また、HVACシステム901の動作中に、各アクチュエータの状態を判断することができる。1つ以上のアクチュエータが制御できないと判断された場合、制御システム100は、確率的勾配アルゴリズムによる極値シーク制御を実行することができる。
【0104】
制御システム100は、確率的勾配アルゴリズムによる極値シーク制御の実行に基づいて、HVACシステム901の電力消費量を最小化するように、複数の制御入力を制御する。制御入力は、HVACシステム901の膨張バルブの位置、圧縮機HVACシステム901の速度、HVACシステム901の室内ファンの速度、室外ファンHVACシステム901の速度などを含むことができる。これによって、HAVCシステム901は、最小のエネルギ消費量で動作する。
【0105】
例示的な実装
図10は、例示的な実施形態に従って、コンピュータベースの制御システム1000を示すブロック図である。コンピュータベースの制御システム1000を用いて、被制御システム(図10には図示せず)を制御することができる。被制御システムは、HVACシステム、圧縮機、空調システム、音響システムなどのうちの1つを含む。制御システムはまた、最小のエネルギ消費量で被制御システムを所望の最適設定値で動作させるように、コンピュータベースの制御システム1000によって制御されるアクチュエータセットを含むことができる。
【0106】
コンピュータベースの制御システム1000は、制御システム1000を他のシステムおよび装置に接続するためのいくつかのインターフェイスを含む。制御システム1000は、最小のエネルギ消費量で被制御システムを動作させることが望ましい最適な設定値1009を受け入れるように構成された入力インターフェイス1001を含む。いくつかの実施形態において、システム1000は、入力装置1003から最適な設定値1009(すなわち、音響フレームのストリーム)を取得するように構成された入力インターフェイスを含み、入力装置1003は、被制御システムを制御するための遠隔制御装置に対応する。
【0107】
いくつかの実施形態において、入力インターフェイス1001は、ネットワーク1007を介して最適な設定値1009を取得するように構成されたネットワークインターフェイスコントローラ(NIC)1005を含み、ネットワーク1007は、有線ネットワークおよび無線ネットワークのうちの1つまたは組み合わせであってもよい。
【0108】
ネットワークインターフェイスコントローラ(NIC)1005は、バス1023を介して、コンピュータベースの制御システム1000をネットワーク1007に接続するように構成される。ネットワーク1007は、コンピュータベースの制御システム1000を感知装置、例えば、入力装置1003に接続する。追加的または代替的に、コンピュータベースの制御システム1000は、ヒューマンマシンインターフェイス(HMI)1011を含むことができる。コンピュータベースの制御システム1000内のヒューマンマシンインターフェイス1011は、コンピュータベースの制御システム1000をキーボード1013およびポインティング装置1015に接続する。ポインティング装置1015は、とりわけ、マウス、トラックボール、タッチパッド、ジョイスティック、ポインティングスティック、スタイラス、またはタッチスクリーンを含むことができる。
【0109】
コンピュータベースの制御システム1000は、格納された命令1017を実行するように構成されたプロセッサ1021と、プロセッサ1021によって実行可能な命令を格納するメモリ1019とを含む。プロセッサ1021は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、または任意の数の他の構成であってもよい。メモリ1019は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、または任意の他の適切なメモリシステムを含んでもよい。プロセッサ1021は、バス1023を介して1つ以上の入力装置および出力装置に接続されてもよい。
【0110】
いくつかの実施形態に従って、命令1017は、被制御システムのエネルギ消費量を最小化するように、被制御システムのアクチュエータセットを制御するための方法を実施することができる。その目的のために、コンピュータメモリ1019は、スイッチャ107、極値シークコントローラ(ESC)109、確率的勾配エスティメータ111、およびフィードバックコントローラを格納する。スイッチャ107は、アクチュエータセットに対応する1つの設定値セットから複数の設定値サブセットを作成するように構成される。設定値サブセットは、被制御システムの物理制約、被制御システムの法的制約、および被制御システムのビジネス制約などの1つ以上の制約に基づいて作成される。また、スイッチャ107は、複数の設定値サブセットから、少なくとも1つの設定値サブセットを選択するように構成される。その目的のために、スイッチャ107は、アクチュエータのセットから、アクチュエータのサブセットを選択するように構成され、アクチュエータのサブセットは、少なくともランダムにまたは半ランダムにまたは決定論的に選択されてもよい。
【0111】
ESC109は、極値シーク制御アルゴリズムを用いて、選択された設定値サブセットの1つ以上の設定値をESC109の各反復で摂動させる。1つ以上の設定値を摂動させるために、ESC109は、1つ以上の設定値におけるディザ信号を使用する。ディザ信号は、正弦波信号に対応する。さらに、選択された設定値サブセットの1つ以上の設定値は、確率的勾配エスティメータ111によって生成されたコスト関数の部分勾配の確率分布の1次モーメントおよび2次モーメントに基づいて摂動させられる。
【0112】
確率的勾配エスティメータ111は、選択された設定値サブセットに関連する部分勾配を決定する。部分勾配は、選択された設定値サブセットに対してコスト関数の勾配に対応する。選択された設定値サブセットの1つ以上の設定値は、摂動させられる。また、確率的勾配エスティメータ111は、各ESC反復で得られた、選択された(または現在の)設定値サブセットおよび過去に選択された設定値サブセットに関連する部分勾配の確率分布を生成する。さらに、確率的勾配エスティメータ111は、全体勾配を統計的に推定するために、部分勾配の確率分布の1次モーメント、すなわち平均モーメント、および部分勾配の確率分布の2次モーメント、すなわち平方偏差を計算し、全体勾配の統計的推定値を決定する。確率的勾配エスティメータ111は、各ESC反復で生成された部分勾配の確率分布に基づいて、全体勾配の推定値を更新する。
【0113】
さらに、フィードバックコントローラ113は、ESC反復で摂動させられた設定値サブセットに基づいて、ユーザによって入力された最適な設定値に対応する被制御システムの状態(すなわち、最適状態)に達するまで、被制御システムの状態を駆動する。したがって、フィードバックコントローラ113は、被制御システムの現在の状態をESC109に継続的にフィードバックすることによって、被制御システムが最適状態で動作するまで、他のサブセットの設定値をさらに摂動させる。
【0114】
例示的な実施形態において、コンピュータベースの制御システム1000は、被制御システムが最適状態で動作しており、最小のエネルギ量を消費していることを、ディスプレイ装置1029上でユーザに通知するように構成された出力インターフェイス1031を含んでもよい。ディスプレイ装置1029の例は、とりわけ、コンピュータモニタ、テレビ、プロジェクタ、またはモバイル装置を含む。また、コンピュータベースの制御システム1000は、アプリケーションインターフェイス1025に接続されてもよい。アプリケーションインターフェイス1025は、コンピュータベースの制御システム1000を外部装置1027に接続するように構成される。
【0115】
実施形態
上記の説明は、例示的な実施形態のみを提供するものであり、本開示の範囲、適用または構成を制限することを意図していない。むしろ、以下の例示的な実施形態の説明は、1つ以上の例示的な実施形態の実施を可能にするための説明を当業者に与える。添付の特許請求の範囲に記載された主題の精神および範囲から逸脱することなく、要素の機能および配置に対する様々な変更が考えられる。
【0116】
上記の説明において、実施形態に対する完全な理解を提供するために、具体的な詳細が記載される。しかしながら、当業者は、これらの具体的な詳細がなくても、実施形態を実施できることを理解することができる。例えば、不必要な詳細で実施形態を不明瞭にしないように、開示された主題におけるシステム、プロセス、および他の要素は、ブロック図の構成要素として示されてもよい。また、実施形態を不明瞭にしないように、周知のプロセス、構造、および技術は、不必要な詳細なしで示されてもよい。さらに、様々な図面において、同様の参照番号および名称は、同様の要素を示す。
【0117】
また、各々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明されることがある。フローチャートが動作を順次のプロセスとして説明しても、多くの動作は、並列にまたは同時に実行されてもよい。また、動作の順序は、変更されてもよい。プロセスの動作が完了したときに、プロセスを終了することができるが、このプロセスは、討論されていないまたは図示されていない追加のステップを含むことができる。さらに、具体的に記載されたプロセス内の全ての動作は、全ての実施形態に含まれる必要がない。
【0118】
プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどであってもよい。プロセスが関数である場合、関数の終了は、当該関数を呼び出し関数または主関数に復帰させることに対応する。
【0119】
さらに、開示された主題の実施形態は、手動でまたは自動で、少なくとも部分的に実装されてもよい。手動または自動の実装は、マシン、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせで実装されてもよく、または少なくとも支援されてもよい。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装される場合、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、機械可読媒体に記憶されてもよい。プロセッサは、必要なタスクを実行することができる。
【0120】
本明細書において概説した様々な方法または工程は、様々なオペレーティングシステムまたはプラットフォームのいずれか1つを採用する1つ以上のプロセッサ上で実行可能なソフトウェアとしてコーディングされてもよい。さらに、このようなソフトウェアは、いくつかの適切なプログラミング言語および/またはプログラミングツールもしくはスクリプトツールのいずれかを用いて書かれてもよく、フレームワークまたは仮想マシン上で実行される実行可能な機械言語コードもしくは中間コードとしてコンパイルされてもよい。通常、プログラムモジュールの機能は、所望に応じて様々な実施形態に組み合わせられてもよく、分散させられてもよい。
【0121】
本開示の実施形態は、一例として提供された方法として具現化されてもよい。本方法の一部として実行される動作は、任意の適切な方法で順序付けられてもよい。したがって、例示的な実施形態において順次に実行される動作とは異なる順序で動作を実行すること、いくつかの動作を同時に実行することを含み得る実施形態を構築することができる。いくつかの好ましい実施形態を参照して本開示を説明したが、理解すべきことは、本開示の精神および範囲内で、様々な他の改造および修正を行うことができることである。したがって、添付の特許請求の範囲は、本開示の真の精神および範囲内にある全ての変形および修正を網羅する。
図1
図2
図3A
図3B
図4A
図4B
図5
図6
図7
図8
図9
図10