(57)【要約】指定された物理ターゲットシステムの動作を制御するための自動化制御システムを実装するための技法が説明される。説明される技法は、いくつかの状況では、ターゲットシステムの動作に影響するパラメータの将来値を予測することと、ターゲットシステムに対して行う現在の自動化制御アクションを決定することの一部として、予測された将来値を使用することとを含む。このようにして、現在の自動化制御アクションは、そのような予測された将来値を反映しない他の可能なアクションに比べて改善されることができる。様々な自動化された動作が、たとえば、複数の異なるタイプの予測モデルと、モデルをトレーニングするために使用する複数の異なるグループの過去データとの使用を組み合わせることによって、ならびに／またはモデルの少なくとも一部に反映される推定された内部の観測不能な状態情報を改善することによって、少なくともいくつかの状況で予測を改善するために行われてもよい。
2019519871.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のコンピューティングシステムによって、センサと１つまたは複数の制御部と１つまたは複数の出力とを有するターゲット物理システムの動作をモデル化するルールを受け取ることであって、前記センサは、前記ターゲット物理システムの要素の状態に関する情報を測定し、少なくとも１つの制御部は、前記ターゲット物理システムの少なくとも１つの出力を修正するように操作可能であり、前記ルールは、前記１つまたは複数の制御部を操作するために行う結果の制御アクションに対する値に達するように評価されることになる状態情報を含む条件を指定する、ことと、
前記１つまたは複数のコンピューティングシステムによって、少なくとも前記ルールと前記ターゲット物理システムに対して指定された目標と前記ターゲット物理システムについての状態情報とから、結合された微分方程式を含む前記ターゲット物理システムの状態を記述するターゲットシステムモデルを作成することと、
前記１つまたは複数のコンピューティングシステムによって、前記ターゲット物理システムの動作に影響するパラメータの将来値を予測するのに使用するための１つまたは複数の予測モデルを作成することであって、前記ターゲット物理システムの前記動作からのデータを使用して前記１つまたは複数の予測モデルをトレーニングすることを含む、ことと、
前記１つまたは複数のコンピューティングシステムによって、指示された時間において前記ターゲット物理システムの前記動作を制御することと
を含み、前記制御することは、
前記ターゲット物理システムの少なくとも１つのセンサについて、前記指示された時間における状態情報を識別するセンサ情報を取得することと、
前記１つまたは複数の予測モデルから、前記指示された時間の前のより早い時間に生成された前記指示された時間についての１つまたは複数の予測パラメータ値を取得することであって、前記取得された１つまたは複数の予測パラメータ値は、前記ターゲット物理システムの動作に影響する１つまたは複数のパラメータに対するものである、ことと、
前記ターゲットシステムモデルを使用して、前記取得されたセンサ情報および前記取得された１つまたは複数の予測パラメータ値に少なくとも部分的に基づいて、前記指示された時間における少なくとも１つの制御アクションであって、前記ターゲット物理システムの少なくとも１つの制御部を操作し、前記目標に対する解を提供する、少なくとも１つの制御アクションを決定することと、
前記ターゲット物理システムにおいて前記指示された時間における前記少なくとも１つの制御アクションの実施を開始して、前記少なくとも１つの制御部を操作し、前記ターゲット物理システムの少なくとも１つの出力の結果の変化を引き起こすことと
を含む、コンピュータ実施方法。
【請求項２】
前記１つまたは複数のコンピューティングシステムは、協働分散判断システムを実行する１つまたは複数の第１のコンピューティングシステムを含み、前記ターゲットシステムモデルの前記作成は、前記１つまたは複数の第１のコンピューティングシステムによって行われ、前記少なくとも１つの制御アクションの前記決定ことは、前記１つまたは複数の第１のコンピューティングシステムによって行われ、前記結合された微分方程式の区分線形解析を行って前記少なくとも１つの制御アクションを識別することを含む請求項１に記載のコンピュータ実施方法。
【請求項３】
前記ターゲット物理システムは、少なくとも電気負荷および少なくとも１つの電源を有するバッテリを含み、前記制御部は、前記バッテリからエネルギーの指定された量を供給することを引き起こす、または前記バッテリによりエネルギーの指定された量を受け取らせるように命令を提供することを含み、前記出力は、前記バッテリへまたは前記バッテリから提供される前記エネルギーを含み、前記ターゲット物理システムに対して前記指定された目標は、指示された基準に従って前記バッテリからエネルギーを供給しながら前記バッテリの寿命を最大限にすることである請求項２に記載のコンピュータ実施方法。
【請求項４】
前記ターゲット物理システムは、建物を含み、前記建物は、複数の部屋と、前記建物の前記部屋の暖房および冷房のうちの少なくとも一方を行うための１つまたは複数の温度制御ユニットとを有し、前記制御部は、前記温度制御ユニットから暖房および冷房のうちの前記少なくとも一方の指定された量を供給することを引き起こすように命令を提供することを含み、前記出力は、前記温度制御ユニットから供給される暖房および冷房のうちの前記少なくとも一方を含み、前記ターゲット物理システムに対して前記指定された目標は、指示された基準に従って前記建物の前記部屋に対する暖房または冷房のうちの前記少なくとも一方を行いながら前記温度制御ユニットにより使用されるエネルギーの量を最小限にすることである請求項２に記載のコンピュータ実施方法。
【請求項５】
前記ターゲット物理システムは、ネットワークトラフィックが通過する１つまたは複数のコンピュータネットワークであって、前記ネットワークトラフィックを規制するための１つまたは複数のネットワークデバイスを有する１つまたは複数のコンピュータネットワークを含み、前記制御部は、前記ネットワークトラフィックの規制に影響する前記１つまたは複数のネットワークデバイスの設定を修正することを含み、前記出力は、前記規制されたネットワークトラフィックを含み、前記ターゲット物理システムに対して前記指定された目標は、前記１つまたは複数のネットワークデバイスによって許可され、１つまたは複数の指示された基準を満たさないネットワークトラフィックを、前記１つまたは複数の指示された基準を満たす他のネットワークトラフィックを許可しながら、最小限にすることである請求項２に記載のコンピュータ実施方法。
【請求項６】
前記ターゲット物理システムの動作をモデル化する前記ルールは、前記ターゲット物理システムの前記動作に関する修正不可能な要件を指定し、各々が真値または偽値に達するように評価可能である、１つまたは複数の絶対的ルールと、指定された状況で修正されることができる前記ターゲット物理システムの前記動作に関する制約を指定し、各々が真値または偽値に達するように評価可能である、１つまたは複数のハードルールと、関連付けられた可能性を有する真値または偽値以外のあり得る値に達するように評価されることになる１つまたは複数の追加の条件を指定する１つまたは複数のソフトルールとを含む請求項２に記載のコンピュータ実施方法。
【請求項７】
前記ターゲットシステムモデルの前記作成は、前記ルールに少なくとも部分的に基づいて、前記作成されたターゲットシステムモデルを表現するルールベースのハミルトン関数を生成することを含む請求項６に記載のコンピュータ実施方法。
【請求項８】
前記ターゲットシステムモデルの前記作成は、前記ルールに少なくとも部分的に基づいて、前記作成されたターゲットシステムモデルを表現するルールベースのハミルトン関数を生成することを含む請求項２に記載のコンピュータ実施方法。
【請求項９】
前記１つまたは複数のコンピューティングシステムは、１つまたは複数のパラメータ値予測コンポーネントを実行する１つまたは複数の第２のコンピューティングシステムをさらに含み、前記１つまたは複数の予測モデルの前記作成は、前記１つまたは複数の第２のコンピューティングシステムによって行われる請求項２に記載のコンピュータ実施方法。
【請求項１０】
前記１つまたは複数の第２のコンピューティングシステムによって、前記ターゲット物理システムの前記動作の前記制御ことの前に、複数の将来の時間の各々についての前記１つまたは複数のパラメータの将来値を予測することをさらに含み、前記指示された時間についての前記１つまたは複数の予測パラメータ値の前記取得は、前記複数の将来の時間についての前記１つまたは複数の予測将来値から、前記指示された時間に対応する前記複数の将来の時間のうちの１つについて予測将来値のうちの少なくとも１つを選択することを含む請求項９に記載のコンピュータ実施方法。
【請求項１１】
前記１つまたは複数の予測モデルの前記作成は、通常の回帰、通常の自己回帰、動的回帰、動的自己回帰、割り引かれた動的回帰、割り引かれた動的自己回帰、固定された係数を有するカルマンフィルタ、更新可能な係数を有する動的カルマンフィルタ、ニューラルネットワーク、決定木、および以前のデータの維持を含む群のうちの１つまたは複数の予測技法を使用して、複数の予測モデルのプールを作成することを含む請求項１に記載のコンピュータ実施方法。
【請求項１２】
複数の予測モデルの前記プールの前記作成の後、前記ターゲット物理システムの動作からの追加の動作データを使用して前記複数の予測モデルの性能を査定することと、前記査定された性能に少なくとも部分的に基づいて、前記プールから前記複数の予測モデルのうちの少なくとも１つを除去することとをさらに含み、前記１つまたは複数の予測パラメータ値の前記取得は、前記除去の後に前記プール内に残っている１つまたは複数の予測モデルから取得をする請求項１１に記載のコンピュータ実施方法。
【請求項１３】
複数の予測モデルの前記プールの前記作成の後、前記ターゲット物理システムの動作から追加の動作データを取得することと、前記追加の動作データに少なくとも部分的に基づく前記プールに対する少なくとも１つの追加の予測モデルを追加することとをさらに含み、前記１つまたは複数の予測パラメータ値の前記取得は、前記少なくとも１つの追加の予測モデルから取得をする請求項１１に記載のコンピュータ実施方法。
【請求項１４】
複数の予測モデルの前記プールの前記作成は、前記群のうちの複数の予測技法を使用し、前記複数の予測モデルを、同じセットのトレーニングデータを使用してトレーニングすることを含む請求項１１に記載のコンピュータ実施方法。
【請求項１５】
複数の予測モデルの前記プールの前記作成は、前記群のうちの１つの予測技法について、２つ以上の予測モデルを、異なるセットのトレーニングデータを使用して前記２つ以上の予測モデルをトレーニングすることによって前記１つの予測技法を使用して作成することを含む請求項１１に記載のコンピュータ実施方法。
【請求項１６】
前記指示された時間における前記ターゲット物理システムの前記動作の前記制御ことの後、
前記指示された時間における前記少なくとも１つの制御アクションの前記実施から前記ターゲット物理システムの動作データを取得することと、
前記取得された動作データに少なくとも部分的に基づいて、前記プールにおける前記複数の予測モデルのうちの１つまたは複数を再トレーニングすることと、
前記再トレーニングされた１つまたは複数の予測モデルを使用して生成された追加の予測パラメータ値を使用することに部分的に基づいて、複数の追加の指示された時間において前記ターゲット物理システムの前記動作を制御することと
をさらに含む請求項１１に記載のコンピュータ実施方法。
【請求項１７】
前記指示された時間における前記ターゲット物理システムの前記動作の前記制御ことの後、
前記指示された時間における前記少なくとも１つの制御アクションの前記実施から前記ターゲット物理システムの動作データを取得することと、
前記取得された動作データに少なくとも部分的に基づいて、前記プールにおける前記複数の予測モデルのうちの１つまたは複数についての内部状態情報を更新することと、
前記更新された内部状態を有する前記１つまたは複数の予測モデルを使用して生成された追加の予測パラメータ値を使用することに部分的に基づいて、複数の追加の指示された時間において前記ターゲット物理システムの前記動作を制御することと
をさらに含む請求項１１に記載のコンピュータ実施方法。
【請求項１８】
前記指示された時間における前記少なくとも１つの制御アクションの前記実施から前記ターゲット物理システムの動作データを取得することと、前記より早い時間に前記１つまたは複数の予測モデルにより生成された前記１つまたは複数のパラメータの追加の予測パラメータ値を使用することに部分的に基づいて、１つまたは複数の追加の指示された時間において前記ターゲット物理システムの前記動作を制御することとをさらに含む請求項１に記載のコンピュータ実施方法。
【請求項１９】
前記１つまたは複数の予測モデルの前記作成は、少なくとも１つの第１の予測モデルに対して回帰技法を使用することと、少なくとも１つの第２の予測モデルに対してカルマンフィルタ技法を使用することとを含む請求項１に記載のコンピュータ実施方法。
【請求項２０】
１つまたは複数のコンピューティングシステムに方法を行わせるコンテンツを記憶した非一時的コンピュータ可読媒体であって、前記方法は、
前記１つまたは複数のコンピューティングシステムによって、センサと１つまたは複数の制御部と１つまたは複数の出力とを有するターゲットシステムについて、第１の時間における前記ターゲットシステムの状態を記述するターゲットシステムモデルを取得することであって、前記センサは、前記ターゲットシステムの要素の物理的状態に関する情報を測定し、少なくとも１つの制御部は、前記ターゲットシステムの少なくとも１つの出力を修正するように操作可能であり、前記ターゲットシステムモデルは、前記ターゲットシステムに対して指定された目標、および前記第１の時間における前記ターゲットシステムの状態情報、および前記ターゲットシステムの動作をモデル化するルールに基づき、前記ルールは、前記１つまたは複数の制御部を操作するために行う結果の制御アクションに対する値に達するように評価されることになる状態情報を含む条件を指定する、取得することと、
前記１つまたは複数のコンピューティングシステムによって、１つまたは複数の予測モデルを使用して、前記ターゲットシステムの動作に関係付けられた１つまたは複数のパラメータの予測将来値を取得することと、
前記１つまたは複数のコンピューティングシステムによって、前記１つまたは複数のパラメータの前記予測将来値の生成の後に、前記第１の時間の後の指示された時間において前記ターゲットシステムの前記動作を制御することと
を含み、前記制御することは、
前記ターゲットシステムの少なくとも１つのセンサについて、前記指示された時間における状態情報を識別するセンサ情報を取得することと、
前記取得された予測将来値から、１つまたは複数のパラメータに対する前記指示された時間についての１つまたは複数の予測値を選択することと、
前記ターゲットシステムモデルを使用して、前記取得されたセンサ情報および前記選択された１つまたは複数の予測値に少なくとも部分的に基づいて、前記指示された時間における少なくとも１つの制御アクションであって、前記ターゲットシステムの少なくとも１つの制御部を操作し、前記目標に対する解を提供する、少なくとも１つの制御アクションを決定することと、
前記指示された時間における前記少なくとも１つの制御アクションに関する情報を提供して、前記ターゲットシステムにおいて前記少なくとも１つの制御アクションの実施を開始して、前記少なくとも１つの制御部を操作し、前記ターゲットシステムの少なくとも１つの出力の結果の変化を引き起こすことと
を含む、非一時的コンピュータ可読媒体。
【請求項２１】
前記記憶されたコンテンツは、ソフトウェア命令を含み、前記ソフトウェア命令は、実行されたとき、前記第１の時間における前記ターゲットシステムの前記状態を記述する前記ターゲットシステムモデルについての結合された微分方程式を生成することを含めて、少なくとも前記ルールと前記指定された目標と前記第１の時間における前記ターゲットシステムの状態情報とから、前記ターゲットシステムモデルを作成することを、前記１つまたは複数のコンピューティングシステムにさらに行わせ、前記少なくとも１つの制御アクションの前記決定は、前記結合された微分方程式の区分線形解析を行って前記少なくとも１つの制御アクションを識別することを含む請求項２０に記載の非一時的コンピュータ可読媒体。
【請求項２２】
前記記憶されたコンテンツは、ソフトウェア命令を含み、前記ソフトウェア命令は、実行されたとき、１つまたは複数の指示された予測技法を使用して前記１つまたは複数の予測モデルを作成することと、前記ターゲットシステムの前記動作からのデータを使用して前記１つまたは複数の予測モデルをトレーニングすることと、前記トレーニングされた１つまたは複数の予測モデルを使用して前記１つまたは複数のパラメータの前記将来値を予測することとを、前記１つまたは複数のコンピューティングシステムにさらに行わせる請求項２０に記載の非一時的コンピュータ可読媒体。
【請求項２３】
前記トレーニングされた１つまたは複数の予測モデルの前記使用をして前記１つまたは複数のパラメータの前記将来値を予測することは、前記指示された時間における前記ターゲット物理システムの前記動作の前記制御の前に、複数の将来の時間の各々についての前記１つまたは複数のパラメータの将来値を予測することを含み、前記指示された時間についての前記１つまたは複数の予測値の前記選択は、前記指示された時間に対応する前記複数の将来の時間のうちの１つについての前記予測将来値を使用することを含む請求項２２に記載の非一時的コンピュータ可読媒体。
【請求項２４】
前記１つまたは複数の予測モデルの前記作成は、通常の回帰、通常の自己回帰、動的回帰、動的自己回帰、割り引かれた動的回帰、割り引かれた動的自己回帰、固定された係数を有するカルマンフィルタ、更新可能な係数を有する動的カルマンフィルタ、ニューラルネットワーク、決定木、および以前のデータの維持を含む群のうちの１つまたは複数の予測技法を使用して、複数の予測モデルのプールを作成することを含む請求項２２に記載の非一時的コンピュータ可読媒体。
【請求項２５】
前記１つまたは複数の予測モデルの前記作成は、少なくとも１つの第１の予測モデルに対して回帰技法を使用することと、少なくとも１つの第２の予測モデルに対してカルマンフィルタ技法を使用することとを含み、前記記憶されたコンテンツは、前記指示された時間における前記少なくとも１つの制御アクションの前記実施から前記ターゲットシステムの動作データを取得することと、前記指示された時間における前記ターゲットシステムの前記動作の前記制御の前のより早い時間に前記１つまたは複数の予測モデルにより生成された前記１つまたは複数のパラメータの追加の予測値を使用することに部分的に基づいて、１つまたは複数の追加の指示された時間において前記ターゲットシステムの前記動作を制御することとを、前記１つまたは複数のコンピューティングシステムにさらに行わせる請求項２２に記載の非一時的コンピュータ可読媒体。
【請求項２６】
システムであって、
１つまたは複数のコンピューティングシステムの１つまたは複数のハードウェアプロセッサと、
命令を記憶する１つまたは複数のメモリと
を備え、前記命令は、前記１つまたは複数のハードウェアプロセッサのうちの少なくとも１つによって実行されたとき、前記システムに、センサと１つまたは複数の制御部と１つまたは複数の出力とを有するターゲットシステムのための自動化制御システムを実装させ、前記命令は、
第１の時間における前記ターゲットシステムの状態を記述するターゲットシステムモデルを取得することであって、前記センサは、前記ターゲットシステムの要素の物理的状態に関する情報を測定し、少なくとも１つの制御部は、前記ターゲットシステムの少なくとも１つの出力を修正するように操作可能であり、前記ターゲットシステムモデルは、前記ターゲットシステムに対して指定された目標、および前記第１の時間における前記ターゲットシステムの状態情報、および前記ターゲットシステムの動作をモデル化するルールに基づき、前記ルールは、前記１つまたは複数の制御部を操作するために行う結果の制御アクションに対する値に達するように評価されることになる状態情報を含む条件を指定する、取得することと、
前記ターゲットシステムの動作に関係付けられた１つまたは複数のパラメータについて１つまたは複数の予測モデルから予測将来値を取得することと、
前記１つまたは複数のパラメータの前記予測将来値の生成の後に、前記第１の時間の後の指示された時間において前記ターゲットシステムの前記動作を制御することであって、
前記ターゲットシステムの少なくとも１つのセンサについて、前記指示された時間における状態情報を識別するセンサ情報を取得すること、
前記ターゲットシステムモデルを使用して、前記取得されたセンサ情報と、１つまたは複数のパラメータについて、および前記指示された時間についての前記取得された予測将来値のうちの１つまたは複数とに少なくとも部分的に基づいて、前記指示された時間における少なくとも１つの制御アクションであって、前記ターゲットシステムの少なくとも１つの制御部を操作し、前記目標に対する解を提供する、少なくとも１つの制御アクションを決定すること、および
前記指示された時間における前記少なくとも１つの制御アクションに関する情報を提供して、前記ターゲットシステムにおいて前記少なくとも１つの制御アクションの実施を開始して、前記少なくとも１つの制御部を操作し、前記ターゲットシステムの少なくとも１つの出力の結果の変化を引き起こすこと
を含む制御することと
によって、前記システムに前記自動化制御システムを実装させる、システム。
【請求項２７】
前記記憶された命令は、ソフトウェア命令を含み、前記ソフトウェア命令は、実行されたとき、前記第１の時間における前記ターゲットシステムの前記状態を記述する前記ターゲットシステムモデルについての結合された微分方程式を生成することを含めて、少なくとも前記ルールと前記指定された目標と前記第１の時間における前記ターゲットシステムの状態情報とから、前記ターゲットシステムモデルを作成することを、前記システムにさらに行わせ、前記少なくとも１つの制御アクションの前記決定は、前記結合された微分方程式の区分線形解析を行って前記少なくとも１つの制御アクションを識別することを含む請求項２６に記載のシステム。
【請求項２８】
前記記憶された命令は、ソフトウェア命令を含み、前記ソフトウェア命令は、実行されたとき、前記１つまたは複数の予測モデルを作成することと、前記ターゲットシステムの前記動作からのデータを使用して前記１つまたは複数の予測モデルをトレーニングすることと、前記トレーニングされた１つまたは複数の予測モデルを使用して前記１つまたは複数のパラメータの前記将来値を予測することとを、前記システムにさらに行わせる請求項２６に記載のシステム。
【請求項２９】
前記トレーニングされた１つまたは複数の予測モデルの前記使用をして前記１つまたは複数のパラメータの前記将来値を予測することは、前記指示された時間における前記ターゲット物理システムの前記動作の前記制御の前に、複数の将来の時間の各々についての前記１つまたは複数のパラメータの将来値を予測することを含み、前記記憶された命令は、前記指示された時間に対応する前記複数の将来の時間のうちの１つについての前記予測将来値を使用することによって、前記決定のために使用する前記１つまたは複数の予測値を選択することを、前記システムにさらに行わせる請求項２８に記載のシステム。
【請求項３０】
前記１つまたは複数の予測モデルの前記作成は、少なくとも１つの第１の予測モデルに対して回帰技法を使用することと、少なくとも１つの第２の予測モデルに対してカルマンフィルタ技法を使用することとを含み、前記記憶された命令は、前記指示された時間における前記少なくとも１つの制御アクションの前記実施から前記ターゲットシステムの動作データを取得することと、前記指示された時間における前記ターゲットシステムの前記動作の前記制御の前のより早い時間に前記１つまたは複数の予測モデルにより生成された前記１つまたは複数のパラメータの追加の予測値を使用することに部分的に基づいて、１つまたは複数の追加の指示された時間において前記ターゲットシステムの前記動作を制御することとを、前記システムにさらに行わせる請求項２８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、予測を使用してターゲットシステムを制御することに関する。
【背景技術】
【０００２】
関連出願の相互参照
本出願は、参照によりその全体が本明細書に組み込まれている、２０１６年４月２８日に出願された「Ｕｓｉｎｇ  Ｆｏｒｅｃａｓｔｉｎｇ  Ｔｏ  Ｃｏｎｔｒｏｌ  Ｔａｒｇｅｔ  Ｓｙｓｔｅｍｓ」という名称の米国特許仮出願第６２／３２９，０９６号明細書の利益を主張するものである。
【０００３】
入力または他の制御要素を有する様々なタイプの物理システムのための自動化制御システムであって、その制御されている物理システムの所望の出力または他の挙動を提供しようとするために入力または他の制御要素を操作することができる自動化制御システムを実装するための様々な試みがなされている。そのような自動化制御システムは、制御されている物理システムの状態の不確実性に関係付けられた課題、ならびに非常に短い量の時間および部分的情報のみで制御判断を行う必要に対処しようとすることを含めて、そのような機能性を実装しようとするために、様々なタイプのアーキテクチャおよび基礎となるコンピューティング技術を使用している。そのような自動化制御システムの一例は、負荷をサポートするために電力を放電し、および／または電源からの電力を使用して充電するバッテリの動作を制御するためのシステムを含み、場合によっては負荷、電源、および／またはバッテリ内部状態の継続的変化を伴う。
【０００４】
しかしながら、自動化制御システムの動作に影響し得るパラメータの将来値の不確実性の管理に関することを含めて、既存の自動化制御システムならびにそれらの基礎となるアーキテクチャおよびコンピューティング技術には様々な困難が存在する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願第１５／０９６，０９１号明細書
【特許文献２】米国特許出願第１４／７４６，７３８号明細書
【特許文献３】米国特許出願第６２／１８２，９６８号明細書
【特許文献４】米国特許出願第６２／１８２，７９６号明細書
【特許文献５】国際公開第２０１６／０２５０８０号
【特許文献６】米国特許出願第１５／４１０，６４７号明細書
【図面の簡単な説明】
【０００６】
【図１Ａ】ターゲットシステムの協調分散制御を行うためのシステムが構成され始動されることができる例示的環境を示すネットワーク図である。
【図１Ｂ】ターゲットシステムの協調分散制御を行うためのシステムが実装されることができる例示的環境を示すネットワーク図である。
【図２Ａ】電力に関係付けられた自動化された予測に部分的に基づいて、バッテリからのＤＣ電力の自動化制御を行うためのシステムの実施形態の例示的コンポーネントを示すブロック図である。
【図２Ｂ】情報を予測するために使用されるモデルを再トレーニングおよび更新してモデルの性能を改善する例を示すブロック図である。
【図２Ｃ】電力に関係付けられた自動化された予測に部分的に基づいて、バッテリからのＤＣ電力の自動化制御を行う例を示すブロック図である。
【図２Ｄ】センサデータを使用してモデル化されたバッテリの状態に部分的に基づいてバッテリからのＤＣ電力の自動化制御を行うためのシステムの実施形態の例示的コンポーネントを示すブロック図である。
【図３】ターゲットシステムの協調分散制御を構成された様式で行うためにシステムの実施形態を実行するのに適した例示的コンピューティングシステムを示すブロック図である。
【図４】協働分散判断（Collaborative Distributed Decision：ＣＤＤ）システムルーチンの例示的実施形態のフロー図である。
【図５Ａ】ＣＤＤ判断モジュール構築（CDD Decision Module Construction）ルーチンの例示的実施形態のフロー図である。
【図５Ｂ】ＣＤＤ判断モジュール構築ルーチンの例示的実施形態のフロー図である。
【図５Ｃ】ＣＤＤ判断モジュール構築ルーチンの例示的実施形態のフロー図である。
【図６Ａ】判断モジュールルーチンの例示的実施形態のフロー図である。
【図６Ｂ】判断モジュールルーチンの例示的実施形態のフロー図である。
【図７Ａ】ＣＤＤ制御アクション決定（CDD Control Action Determination）ルーチンの例示的実施形態のフロー図である。
【図７Ｂ】ＣＤＤ制御アクション決定ルーチンの例示的実施形態のフロー図である。
【図８Ａ】ＣＤＤ調整制御管理（CDD Coordinated Control Management）ルーチンの例示的実施形態のフロー図である。
【図８Ｂ】ＣＤＤ調整制御管理ルーチンの例示的実施形態のフロー図である。
【図９】制御されているターゲットシステムのためのルーチンの例示的実施形態のフロー図である。
【図１０Ａ】パラメータ値予測器（Parameter Value Forecaster）ルーチンの例示的実施形態のフロー図である。
【図１０Ｂ】パラメータ値予測器ルーチンの例示的実施形態のフロー図である。
【図１１】調整された様式で複数のバッテリからのＤＣ電力の自動化制御を行うシステムの実施形態の例示的コンポーネントを示すブロック図である。
【図１２】家庭の発電および電力使用が外部エンティティによって監視および同期されている、ソーラー電力が生成されている家庭電力システムの一部である、バッテリからのＤＣ電力の自動化制御を行うためのシステムの実施形態の例示的コンポーネントを示すブロック図である。
【図１３】ネットワークトラフィックに関係付けられた自動化された予測に部分的に基づいて、コンピュータネットワークの動作の自動化制御を行うためのシステムの実施形態の例示的コンポーネントを示すブロック図である。
【発明を実施するための形態】
【０００７】
指定された物理システムまたは他のターゲットシステムの少なくともいくつかの動作を制御または他の形で操作するように自動化制御システムを実装するための技法が説明される。少なくともいくつかの実施形態では、説明されている技法は、ターゲットシステムの動作に影響するパラメータの将来値を予測することと、ターゲットシステムに対して行う現在の自動化制御アクションを決定することの一部として、予測された将来値を使用することとを含む。このようにして、現在の自動化制御アクションは、そのような予測された将来値を反映しない他の可能なアクションに比べて最適化または他の形で改善されることができる。加えて、様々な自動化された動作が、少なくともいくつかの実施形態において、たとえば、複数の異なるタイプの予測モデルと、それらのモデルをトレーニングするために使用する複数の異なるグループの過去データとの使用を組み合わせることによって、ならびに／またはそれらのモデルの少なくとも一部に反映される推定された内部の観測不能な状態情報を改善することによって、予測を改善するために行われてよい。一般に、予測は、モデルにおいて表現されることが可能な任意の選択された変数に対して行われることができ、予測されない「制御」変数は、予測に影響する他の変数であり得る。そのような予測を行うことおよび改善すること、ならびにそのような予測された将来値を特定の様式で使用することに関係付けられた追加の詳細が、以下に説明され、説明されている技法の一部または全部は、少なくともいくつかの実施形態では、１つまたは複数のパラメータ値予測器（「ＰＶＦ」）コンポーネントの自動化された動作によって、任意選択で、特定のタイプのターゲットシステムを制御する１つまたは複数のＣＤＤ（協働分散判断）システムの一部としてまたはそのようなＣＤＤシステムと関連して、行われる。
【０００８】
パラメータの将来値を予測するため、および行う現在の自動化制御アクションを決定することの一部として、予測された将来値を使用するための説明されている技法は、様々な実施形態において様々なタイプのターゲットシステムに対して行われることができる。１つの非限定的例として、物理ターゲットシステムは、（たとえば、局部負荷のため、様々な位置における様々な負荷をサポートする電気グリッドのためなどに）電力を貯蔵および提供するために使用される１つまたは複数のバッテリを含むことができ、ターゲットシステムを制御するための自動化された動作は、各バッテリの状態の特性を使用して、バッテリから提供されおよび／またはバッテリにより貯蔵されたＤＣ（直流）電力の自動化制御を行うことを含むことができ、ターゲットシステムの動作を制御する指定された目標は、指示された基準に従ってバッテリからエネルギーを供給しながら、バッテリの寿命を最大限にすることを含む。そのような実施形態では、ＰＶＦシステムの自動化された動作は、１つもしくは複数のバッテリから供給されるように要求される電力の将来需要を予測すること、１つもしくは複数のバッテリへ提供されるのに利用可能な電力の将来供給を予測すること、ならびに／またはバッテリからおよび／もしくはバッテリへ供給されるそのような電力の将来価格を予測することを含むことができる。１つまたは複数のそのような予測された将来値が与えられると、１つまたは複数のバッテリを制御するＣＤＤシステムは、そのような情報を使用して、そのような予想された将来シナリオをそれらが発生したときにより良くサポートする現在の制御アクション（たとえば、近い将来たとえば次の数分または数時間で電力の需要が著しく増大することが予測された場合に、現在の電力出力を最小限にし、および／または現在の電力貯蔵アクティビティを増大する）を決定することができる。
【０００９】
別の非限定的例として、物理ターゲットシステムは、ネットワークトラフィックが通過する１つまたは複数のコンピュータネットワーク、たとえば、ネットワークトラフィックの一部または全部を規制する（regulate）ことができるファイアウォールデバイスおよび／または他のネットワークデバイスを含むネットワークを含むことができ、ターゲットシステムを制御するための自動化された動作は、ネットワークトラフィックの特性を使用して、（たとえば、侵入の試みもしくは他のサイバーアタックなどの不正なネットワークトラフィックをブロックもしくは他の形で処理するために；または、ネットワークトラフィックにおける異常を検出しそれに対処して、たとえば、１つもしくは複数のネットワークリンクおよび／もしくはノードが故障しているもしくは他の形で利用不可能であることを識別するために、）ファイアウォールデバイスまたは他の規制デバイスの自動化制御を行うことを含むことができ、ターゲットシステムの動作を制御する指定された目標は、１つまたは複数のネットワークデバイスによって許可され、１つまたは複数の指示された基準を満たさないネットワークトラフィックを、１つまたは複数の指示された基準を満たす他のネットワークトラフィックを許可しながら、最小限にすることを含む。そのような実施形態では、ＰＶＦシステムの自動化された動作は、発生することが期待される将来のネットワークトラフィック（たとえば、量／ボリューム、タイミング、タイプなどのうちの１つまたは複数などに関する、コンピュータネットワークへの着信トラフィック、および／またはコンピュータネットワークからの発信トラフィック、および／またはコンピュータネットワーク上のノード間の内部トラフィック）を予測することを含むことができる。１つまたは複数のそのような予測された将来値が与えられると、ファイアウォールデバイスまたは他の規制デバイスを制御するＣＤＤシステムは、実際のネットワークトラフィックと予測されたネットワークトラフィックとの間の有意な差異を識別し、任意の対応する問題に対処するために現在の制御アクションを決定することができる。
【００１０】
別の非限定的例として、物理ターゲットシステムは、暖房および／または冷房能力（たとえば、１つまたは複数のＨＶＡＣ、すなわち暖房、換気および空調ユニット）を含むマルチルーム建物を含むことができ、ターゲットシステムを制御するための自動化された動作は、部屋のサブセットの特性（たとえば、温度センサを有する部屋のサブセットにおいて測定された温度）を使用して、暖房および／または冷房能力から部屋のすべてに対して提供される暖房および／または冷房の自動化制御を行うことを含むことができ、ターゲットシステムの動作を制御する指定された目標は、指示された基準に従って建物の部屋に対する暖房および冷房のうちの少なくとも一方を行いながら温度制御ユニットにより使用されるエネルギーの量を最小限にすることを含む。そのような実施形態では、ＰＶＦシステムの自動化された動作は、暖房および／または冷房能力ならびに建物の少なくともいくつかの部屋に対する将来の入力、それらからの将来の出力、それらに対して提供される将来の制御信号命令、ならびにそれらの他の将来の状態のうちの１つまたは複数（たとえば、内部温度示度、暖房および／または冷房能力の時間および／またはエネルギー使用の量、建物の周囲環境の一部としての建物の外部の温度示度など）を予測することを含むことができる。１つまたは複数のそのような予測された将来値が与えられると、暖房および／または冷房を制御するＣＤＤシステムは、実際の条件と予測された条件との間の有意な差異を識別し、任意の対応する問題に対処するために現在の制御アクションを決定することができる。
【００１１】
そのような予測および予測されたパラメータ値の使用に関係付けられた追加の詳細が以下に含まれ、将来パラメータ値を予測し、そのような予測された将来値を使用するための説明されている技法は、それらの一部が以下にさらに説明される他の実施形態において様々な他のタイプのターゲットシステムと共に使用されてよいことは理解されよう。
【００１２】
上記されたように、様々な自動化された動作が、少なくともいくつかの実施形態において、たとえば、複数の異なるタイプの予測モデルと、それらのモデルをトレーニングするために使用する複数の異なる期間の過去データとの使用を組み合わせることによって、予測を改善するために行われてよい。たとえば、少なくともいくつかの実施形態は、複数の異なるそのようなモデルを維持し、様々なモデルの現在の性能を繰り返し評価して、たとえば、複数のモデルから選ばれ所与の時間に使用される（１つまたは複数の定義された評価基準に関して）「最良」のモデルを可能にし、（やはり、１つまたは複数の定義された（最良のモデルを評価するために使用される基準と同じまたは異なる）評価基準に関して）１つまたは複数の「最悪」のモデルを使用中の複数のモデルのグループから任意選択で除去する。少なくともいくつかのそのような実施形態では、モデルの一部または全部が（たとえば、最新のデータを使用して）繰り返し再トレーニングされてもよく、たとえば、最も新しいＸのデータ（ここで、Ｘは、時間の定義された量またはデータの他の定義された量、および任意選択で異なるモデルに対して異なる量）を使用し、そうすることは、異なるモデルに対して異なるデータ量を使用することを含む（たとえば、Ｘ量の過去データ上でトレーニングされた所与の初期モデルが、最良および最悪のモデルの評価および選択の目的で、別のＹ量の過去データ上でトレーニングされた同じ初期モデルと異なる、結果の（resulting）モデルとして扱われる；または、異なるタイプのモデルが異なるデータ量を使用するなど）。以下に、複数の異なるタイプの予測モデルとそれらのモデルをトレーニングするために使用する複数の異なる期間もしくは他の量の過去データとの使用のそのような組み合わせに関係付けられた追加の詳細が含まれる。
【００１３】
予測技法のタイプおよび結果のモデルの非限定的例は、通常の回帰、通常の自己回帰、動的回帰および／または動的自己回帰（新しいデータが利用可能になると係数が更新される）、割り引かれた動的回帰（discounted dynamic regression）および／または割り引かれた動的自己回帰（新しいデータが利用可能になると新しいデータで係数が更新され、また、より新しいデータには、より古いデータよりも大きな重みおよび／または重要性が与えられる）、以前のデータの維持（たとえば、データが予想できない場合に有用であり得る）、固定された係数を有するカルマンフィルタ、動的カルマンフィルタ（（たとえば、パラメータ適合エンジン（parameter adaptation engine）すなわち「ＰＡＥ」の一部として、）新しいデータが利用可能になると係数（たとえば、Ａ、Ｂ、およびＣ）が更新される）、ニューラルネットワーク、決定木、カルマンフィルタおよび回帰モデルの他の変形などを含む。トレーニングのために使用するデータの量の非限定的例は、（たとえば、時間メタデータを一部または全部のデータ値と関連付けた）経時的に変化する時系列データまたは他の時間ベースのデータなどに関し、最後の５つのデータ値または最後の５つの時間期間（たとえば、最後の５秒、最後の５分、最後の５時間、最後の５日、最後の５週間、最後の５カ月、最後の５年など）、最後の１０または２０または５０または１００または５００または１０００または５０００または１００００または５００００または１０００００または５０００００または１００００００個のデータ値または時間期間、最後に利用可能でない（たとえば、指定された時間期間中に最初に利用可能な）指定されたＮ量のデータ値または時間期間などを含む。加えて、モデルをトレーニングするとき、様々な実施形態において、二乗誤差、平均絶対誤差、パーセント誤差（正の値の場合のみ）などの非限定的例を含む様々な誤差関数が、最適化中に使用されることができる。モデルのタイプ、予測技法、トレーニングのためのデータの使用、および誤差関数に関係付けられた追加の詳細が以下に含まれる。
【００１４】
上記されたように、様々な自動化された動作が、少なくともいくつか実施形態において、たとえば、使用中のモデルの少なくとも一部に反映される推定された内部の観測不能な状態情報を改善することによって、予測を改善するために行われてよい。そのような改善動作に関して、いくつかのタイプのモデルおよび予測技法（たとえば、上記で「動的」と呼ばれるもの、いくつかのタイプのニューラルネットワークおよび決定木など）は、特定のターゲットシステムに固有の係数、パラメータ、または他の値の表現を、たとえば、そのターゲットシステムの内部状態またはそのターゲットシステムに関する他の情報を反映するように有することができる。少なくともいくつかの実施形態では、説明されている技法は、そのようなモデルのパラメータをそれらの使用中に経時的に更新して、たとえば、それらのモデルを特定のターゲットシステムにさらに適合させる（たとえば、ターゲットシステムの変化しない内部状態をより良く反映する、および／またはターゲットシステムの変化する内部状態を捕捉する）。いくつかのそのような実施形態では、そのようなモデル適合は、モデル内のパラメータ値に対してカルマンフィルタに基づいてパラメータ適合エンジンを使用することを含む。加えて、いくつかのそのような実施形態では、そのようなモデル適合は、自動化されたモデル再トレーニングを含み、そこで、モデル内のパラメータ値に対してカルマンフィルタに基づいてパラメータ適合エンジンを使用することに加えてまたは代えて、モデルは、既存のデータのサブセットを使用して定期的に最初から再トレーニングされる（たとえば、それらの性能は別個のサブセット上で評価される）。他の実施形態では、モデルのパラメータは、一部もしくは全部の状況および／または一部もしくは全部の時間において使用中に更新されない。使用中のモデルの少なくとも一部に反映される推定された内部の観測不能な状態情報のそのような改善に関係付けられた追加の詳細が以下に含まれる。
【００１５】
例示のため、以下に含まれるいくつかの実施形態に関するいくつかの追加の詳細では、特定のタイプのターゲットシステム、および特定の様式で決定された特定のタイプの制御アクティビティに関することを含めて、特定の様式で特定のタイプの動作が行われる。これらの例は、例示のため提供され簡潔にするために単純化されるが、本発明の技法は、他の環境内および他のタイプの自動化制御アクション決定技法を含む様々な他の状況で使用されてよく、それらの一部が以下に論じられる。
【００１６】
しかしながら、予測技法およびそれらの使用のさらなる議論の前に、ターゲットシステムの制御のより一般的な説明がそのような表現および他のモデルを使用して提供される。具体的には、図１Ａは、１つまたは複数のターゲットシステムの協調分散制御を行うためのシステムが構成され始動されることができる例示的環境を示すネットワーク図である。具体的には、ＣＤＤシステム１４０の実施形態は、１つまたは複数のコンピューティングシステム１９０上で実行されており、示された実施形態において、オンライン様式で動作しグラフィカルユーザインターフェース（ＧＵＩ）（図示せず）および／または他のインターフェース１１９を提供し、クライアントコンピューティングシステム１１０の１つまたは複数のリモートユーザを可能にし、１つまたは複数の介在コンピュータネットワーク１１０を介してＣＤＤシステム１４０と相互作用し、１つまたは複数の判断モジュールを構成および作成し、自動化制御システムの一部として含み、制御される１つまたは複数のターゲットシステムの各々と使用することを含む。
【００１７】
具体的には、ターゲットシステム１  １６０およびターゲットシステム２  １７０は、この例で示された例示的ターゲットシステムであるが、特定の実施形態および状況では、１つのみのターゲットシステムまたは多数のターゲットシステムが利用可能であることができ、各そのようなターゲットシステムは、ターゲットシステムに固有の様式でターゲットシステムの動作を実装するために、様々な機械的、電子的、化学的、生物学的、および／または他のタイプのコンポーネントを含むことができることは理解されよう。この例では、クライアントコンピューティングデバイスの１つまたは複数のユーザ（図示せず）は、ＣＤＤシステム１４０と相互作用して、ターゲットシステム１のための例示的自動化制御システム１２２を生成することができ、自動化制御システムは、この例では、後で展開および実装されたときにターゲットシステム１  １６０の部分を制御するように協調的に相互作用する複数の判断モジュール１２４を含む。自動化制御システム１２２を作成するためにユーザがＣＤＤシステム１４０と相互作用するプロセスは、他の箇所でより詳細に論じられるように、場合によってはユーザの異なるグループの独立したアクションを含む、時間経過に伴う様々な相互作用を含むことができる。加えて、自動化制御システム１２２を作成および／またはトレーニングまたはテストするプロセスの一部として、それは、たとえば部分的初期状態情報を取得するために、示されたようにターゲットシステム１と１つまたは複数の相互作用を行うことができるが、一部または全部のトレーニングアクティビティは、少なくともいくつかの実施形態では、ターゲットシステム１における制御アクションの効果を、それらの制御アクションを実際にその時に実装することなくシミュレートすることを含むことができる。いくつかの実施形態および状況では、そのような初期ユーザ相互作用は、図２Ａの例示的ＣＤＩエージェント２５０に反映されるように、バイナリルールに基づくターゲットシステムの初期ルールベースのシステムモデルを生成するために使用されることができる。その場合、１つまたは複数の予測モデルの実施形態および対応するＰＶＦコンポーネントは、図２Ａの例示的な電力需要予測器（Power Demand Forecaster）コンポーネント２７０ｃ、電力供給予測器（Power Supply Forecaster）コンポーネント２７０ｂ、および／または電力価格予測器（Power Price Forecaster）コンポーネント２７０ａなどに関して、様々なタイプのデータを予測してターゲットシステムの制御を改善するために使用されることができる。
【００１８】
自動化制御システム１２２が作成された後、自動化制御システムは、ＣＤＤシステム１４０の１つまたは複数のコンピューティングシステム１９０において自動化制御システム１２２を任意選択で実行することなどによって、ターゲットシステム１  １６０の制御を含む動作を行うのを始めるように展開され実装されて、コンピュータネットワーク１００を介してターゲットシステム１と相互作用することができる。他の実施形態および状況では、自動化制御システム１２２は、そうではなく、ターゲットシステム１の一部である１つまたは複数のコンピューティングシステム（図示せず）などにおいて、自動化制御システム１の一部または全部の展開されたコピー１２１に関して示されるように、ターゲットシステム１に対してローカルな様式で、自動化制御システム１２２の一部または全部（たとえば、複数の判断モジュール１２４のうちの１つまたは複数）のローカルコピーを実行することによって、展開されることができる。加えて、バイナリルールに基づくターゲットシステムの初期ルールベースシステムモデルを生成するために初期ユーザ相互作用が使用される実施形態および状況では、初期に展開された自動化制御システム１２２が、そのような初期ルールベースシステムモデルに基づくことができ、その初期に展開された自動化制御システム１２２の制御下のターゲットシステムの動作からのデータが収集され、１つまたは複数の予測モデルおよび／または対応するＰＶＦコンポーネントのための後続の自動化された改善のために使用されることができ、それにより、たとえば、そのような予測モデルを再トレーニングし、および／または予測モデルに反映される推定された内部の観測不能な状態情報を改善し、１つまたは複数のそのような予測モデルの改訂されたバージョンが続いて展開され、自動化制御システム１２２と共に使用されてそれらの機能性を改善する。
【００１９】
自動化制御システム１２２に関して論じられたのと同様に、（同じユーザ、重複するユーザ、または自動化制御システム１２２を作成するのに関わったユーザと完全に無関係なユーザであるかに関わらず）１つまたは複数のユーザが、通信ネットワーク１００を介してＣＤＤシステム１４０と同様に相互作用して、ターゲットシステム２  １７０の一部または全部を制御するのに使用するための別個の自動化制御システム１２６を作成することができる。この例では、ターゲットシステム２のための自動化制御システム１２６は、自動化制御システム１２６のための制御アクションのすべてを行う単一の判断モジュール１２８を含む。自動化制御システム１２６は、たとえば、１つもしくは複数のコンピューティングシステム１９０において、および／またはターゲットシステム２の一部である１つもしくは複数のコンピューティングシステム（図示せず）においてローカルに実行されるように、自動化制御システム１２２に関して論じられたのと同様の様式でターゲットシステム２について同様に展開および実装されることができるが、自動化制御システム２の展開されたコピーは、この例では示されない。自動化制御システム１２２および／または１２６は、それぞれ特定の判断モジュール１２４および１２８とは別の他のコンポーネントおよび／または機能性をさらに含むことができるが、そのような他のコンポーネントおよび／または機能性は図１Ａに示されていないことは理解されよう。
【００２０】
ネットワーク１００は、たとえば、おそらく様々な別々の当事者によって運用されるリンクされたネットワークからなるインターネットなどの公的にアクセス可能なネットワークとすることができ、ＣＤＤシステム１４０は、ネットワーク１００を介して任意のユーザにまたは特定のユーザのみに利用可能である。他の実施形態では、ネットワーク１００は、プライベートネットワーク、たとえば、特権を与えられていないユーザに全体的または部分的にアクセス可能でない会社または大学のネットワークでとすることができる。さらに他の実施形態では、ネットワーク１００は、インターネットへおよび／またはインターネットからのアクセスを有する１つまたは複数のプライベートネットワークを含むことができる。したがって、示された実施形態におけるＣＤＤシステム１４０は、１つまたは複数のコンピュータネットワーク１００を介して様々なユーザをサポートするようにオンライン様式で実装されるが、他の実施形態では、代わりに、ＣＤＤシステム１４０のコピーは、たとえば、１つまたは複数のコンピュータネットワーク１００は代わりに会社または他の組織の内部コンピュータネットワークである場合に、単一のユーザまたは関係付けられたユーザのグループ（たとえば、会社または他の組織）をサポートすることを含めて、他の様式で実装されることができ、ＣＤＤシステムのそのようなコピーは、任意選択で、会社または他の組織の外部の他のユーザに利用可能でない。ＣＤＤシステム１４０のオンラインバージョン、および／またはＣＤＤシステム１４０のローカルコピーバージョンは、いくつかの実施形態および状況では、たとえば、相互作用を行って判断モジュールおよび対応する自動化制御システムを生成し、ならびに／または様々な様式でそのような判断モジュールおよび対応する自動化制御システムを展開および実装するために、１つまたは複数のユーザがＣＤＤシステムの様々な動作を利用するための様々な利用料を提供するような、利用料ベースの様式で動作することができる。加えて、ＣＤＤシステム１４０、そのコンポーネントの各々（１つもしくは複数のＣＤＤ制御アクション決定コンポーネントおよび／または１つもしくは複数のＣＤＤ調整制御管理コンポーネントなど、コンポーネント１４２および任意選択の他のコンポーネント１１７を含む）、判断モジュールの各々、ならびに／または自動化制御システムの各々は、ソフトウェア命令を含むことができ、ソフトウェア命令は、１つまたは複数のコンピューティングシステム（図示せず）上で１つまたは複数のプロセッサ（図示せず）によって実行されて、たとえば、それらのプロセッサおよびコンピューティングシステムを、それらのプログラムされた機能性を行うことに関して特化されたマシンとして動作するように構成する。
【００２１】
図１Ｂは、ターゲットシステムの協調分散制御を行うためのシステムが実装されることができる例示的環境を示すネットワーク図であり、具体的には図１Ａに関して論じられた例を継続する。図１Ｂの例示的環境では、ターゲットシステム１  １６０がやはり示されており、（初期バージョンであるか改訂されたバージョンであるかに関わらず）自動化制御システム１２２が、ここで、ターゲットシステム１  １６０を能動的に制御するのに使用するために展開および実装されている。図１Ｂの例では、判断モジュール１２４は、個別判断モジュール１２４ａ、１２４ｂなどから１２４ｎまでとして表され、ターゲットシステム１  １６０に対してローカルで、および／または１つもしくは複数の介在コンピュータネットワーク（図示せず）を介してリモート様式で実行していることができる。示された例では、判断モジュール１２４の各々は、ＣＤＤ制御アクション決定コンポーネント１４４のローカルコピーを含み、たとえば、コンポーネント１４４ａがそのローカル判断モジュール１２４ａをサポートし、コンポーネント１４４ｂがそのローカル判断モジュール１２４ｂをサポートし、コンポーネント１４４ｎがそのローカル判断モジュール１２４ｎをサポートする。同様に、様々な判断モジュール１２４のアクションが、示された実施形態においてピアツーピア様式で調整および同期され、判断モジュール１２４の各々は、そのような同期を行うためのＣＤＤ調整制御管理コンポーネント１４６のコピーを含み、コンポーネント１４６ａはそのローカル判断モジュール１２４ａをサポートし、コンポーネント１４６ｂはそのローカル判断モジュール１２４ｂをサポートし、コンポーネント１４６ｎはそのローカル判断モジュール１２４ｎをサポートする。
【００２２】
判断モジュール１２４および自動化制御システム１２２が実行されると、判断モジュール１２４間の様々な相互作用１７５が行われ、そうすることは、判断モジュールの現在のモデルおよび他の状態に関する情報を共有して様々な判断モジュール間の協調および調整を可能にすることを含み、それにより、たとえば、特定の判断モジュールが、１つまたは複数の他の判断モジュールに対して部分的に同期されたコンセンサス様式で（いくつかの状況では、すべての判断モジュール１２４のコンセンサスアクションが収束する完全に同期された様式で）動作する。判断モジュール１２４および自動化制御システム１２２の動作中に、様々な状態情報１４３が、ターゲットシステム１６０から自動化制御システム１２２によって取得されることができ、様々な状態情報１４３は、初期状態情報および経時的に変化する状態情報などであり、判断モジュール１２４により行われた制御アクションからのターゲットシステム１における出力または他の結果を含む。そのような状態情報は、たとえば、収集され、使用されている１つまたは複数の予測モデルに対する後続の自動化された改善のために使用されることができるが、そのような動作は図１Ｂには示されない。
【００２３】
この例におけるターゲットシステム１は、自動化制御システム１２２が操作することができる様々な制御要素１６１を含み、この例では、各判断モジュール１２４は、それが操作する１つまたは複数の制御要素１６１からなる別個のグループを有することができる（したがって、判断モジュールＡ１２４ａは、相互作用１６９ａを行って制御要素Ａ１６１ａに対して制御アクションＡ１４７ａを行い、判断モジュールＢ１２４ｂは、相互作用１６９ｂを行って制御要素Ｂ１６１ｂに対して制御アクションＢ１４７ｂを行い、判断モジュールＮ１２４ｎは、相互作用１６９ｎを行って制御要素Ｎ１６１ｎに対して制御アクションＮ１４７ｎを行う）。そのような制御アクションは、ターゲットシステム１の他の要素の内部状態１６３に影響し、任意選択で、１つもしくは複数の出力１６２を引き起こすまたは１つもしくは複数の出力１６２に影響を与えることを含む。ターゲットシステム１の動作が進行中に、内部状態情報１６３の少なくとも一部が、判断モジュールの一部または全部に提供されて、それらの進行中の制御アクションに影響を与え、判断モジュール１２４ａ〜１２４ｎの各々は、この例では、場合によっては、状態情報１４３ａ〜１４３ｎの別個のセットをそれぞれ有する。
【００２４】
他の箇所でより詳細に論じられるように、各判断モジュール１２４は、そのような状態情報１４３、およびターゲットシステムに関する判断モジュールのローカルモデル１４５を使用して、たとえば複数の時間期間の各々について、次に行う特定の制御アクション１４７を決定することができるが、他の実施形態および状況では、特定の自動化制御システムは、１つの時間期間のみ、またはいくつかの時間期間のみに、特定のターゲットシステムと相互作用を行うことができる。たとえば、判断モジュール１２４のためのローカルＣＤＤ制御アクション決定コンポーネント１４４は、その判断モジュールのローカルモデル１４５についての最適に近いローカル解を決定することができ、ローカルＣＤＤ調整制御管理コンポーネント１４６は、そのような決定されたローカルおよび／または同期解に基づいて判断モジュールのローカルモデル１４５を更新することを含めて、他の判断モジュール１２４を反映するように同期されたコンセンサス解を決定する。したがって、自動化制御システム１２２の実行中、自動化制御システムは、状態情報を要求し、ターゲットシステム１６０の制御要素１６１の値を修正しまたは他の形で制御要素１６１を操作する命令を提供することを含めて、ターゲットシステム１６０との様々な相互作用を行う。たとえば、複数の時間期間の各々において、判断モジュール１２４ａは、ターゲットシステムの１つまたは複数の制御要素１６１ａと１つまたは複数の相互作用１６９ａを行うことができ、同様に、判断モジュール１２４ｂは、１つまたは複数の別の制御要素Ｂ１６１ｂと１つまたは複数の相互作用１６９ｂを行うことができ、判断モジュール１２４ｎは、ターゲットシステム１６０の１つまたは複数の制御要素Ｎ１６１ｎと１つまたは複数の相互作用１６９ｎを行うことができる。他の実施形態および状況では、少なくともいくつかの制御要素は、各時間期間中に制御アクションを行わなくてよい。
【００２５】
例示的ターゲットシステム２  １７０は図１Ｂに示されずに、参照目的で自動化制御システム１２６の判断モジュール１２８についてさらなる詳細が示されるが、そのような判断モジュール１２８は、典型的には、ターゲットシステム１を制御する判断モジュール１２４と一緒に実装されない。具体的には、自動化制御システム１２６の展開されたコピーは、この例では単一の実行中の判断モジュール１２８を含むが、他の実施形態では、自動化制御システム１２６は、他のコンポーネントおよび機能性を含むことができる。加えて、自動化制御システム１２６に対して単一の判断モジュール１２８が実装されるので、判断モジュール１２８は、ローカルＣＤＤ制御アクション決定コンポーネント１８４を含むが、示された実施形態では、同期および相互作用する他の判断モジュールが存在しないので、ローカルＣＤＤ調整制御管理コンポーネントをまったく含まない。
【００２６】
図１Ａおよび図１Ｂには示されていないが、たとえば１２２の自動化制御システムの動作の分散された性質は、自動化制御システム１２２が使用されている間に、判断モジュール１２４のグループに対する修正が時間経過につれて修正されるのを可能にすることを含めて、様々な判断モジュールの部分的に分離された動作を可能にして、たとえば、新しい判断モジュール１２４を追加し、および／または既存の判断モジュール１２４を除去する。同様に、特定の判断モジュール１２４および／または１２８に対する変更が行われることができ、たとえば、時間経過につれて、特定の判断モジュールに固有のルールもしくは他の制約を変更し、および／または特定の判断モジュールに固有の目標を変更し、新しい対応するモデルが、そのような判断モジュール内で生成および展開され、いくつかの実施形態および状況では、対応する自動化制御システムが対応するターゲットシステムの制御動作を継続しながら、そのようにされる。一例として、少なくともいくつかのそのような修正が、１つまたは複数のＰＶＦコンポーネントの動作を反映して、１つまたは複数の時間において１つまたは複数の予測モデルを改善することができ、そうすることは、そのような予測モデルに利用可能になる新しい制御および状態情報を使用すること、ならびに／または予測モデルに反映される推定された内部の観測不能な状態情報を改善することを含み、１つまたは複数のそのような予測モデルの改訂されたバージョンが続いて展開され使用される。また、図１Ａおよび図１Ｂの例では、各自動化制御システムは単一のターゲットシステムを制御するものとして説明されているが、他の実施形態および状況では、他の構成が使用されることができ、たとえば、単一の自動化制御システムが複数のターゲットシステム（たとえば、複数の相互に関係付けられたターゲットシステム、同じタイプの複数のターゲットシステムなど）を制御し、および／または、たとえば、各々がそのターゲット制御システムの異なる部分を制御するように独立して動作することによって、複数の自動化制御システムが単一のターゲットシステムを制御するように動作することができる。同様に、他の実施形態および状況において他の構成が使用されることができることは理解されよう。
【００２７】
上記されたように、少なくともいくつかの実施形態では、物理ターゲットシステムは、電力を貯蔵および提供するために使用される１つまたは複数のバッテリを含み、ターゲットシステムを制御するための自動化された動作は、各バッテリの状態の特性を使用して、バッテリから提供されるＤＣ（直流）電力の自動化制御を行うことを含み、たとえば、バッテリに接続されたＤＣ−ＤＣコンバータ（たとえば、ＦＥＴ、または電界効果トランジスタ、スイッチングコンバータ）を使用して、バッテリから出力される電流および／または電圧の量を、リアルタイム様式でバッテリの長期動作を最適化するように制御することによって、自動化制御を行う。ＤＣ−ＤＣアンプは、たとえば、その入力（供給）からその出力（負荷）への電流を逓増しながら電圧を逓減する降圧コンバータ（またはステップダウンコンバータ）の一部、および／またはその入力（供給）からその出力（負荷）への電流を逓減しながら電圧を逓増する昇圧コンバータ（またはステップアップコンバータ）の一部とすることができ、これらは、本明細書では一般に「昇圧／降圧コントローラ」または「降圧／昇圧コントローラ」と呼ばれることがある。加えて、いくつかの実施形態および状況では、複数のバッテリが、複数の制御システムを使用することによって制御されることができ、各制御システムはバッテリのうちの１つに関連付けられ、複数のバッテリに対する複数の関連付けられた制御システムの間の相互作用に基づくなどして分散された様式で複数のバッテリの全体的制御が調整される。制御される１つまたは複数のバッテリを含むシステムは、いくつかの実施形態および状況において、１つもしくは複数の電源および／または１つもしくは複数の電気負荷のような追加のコンポーネントをさらに含むことができ、そのようなタイプのシステムの非限定的例は、発電源（たとえば、ソーラーパネル、風力タービンなど）および住宅または企業からの電気負荷を任意選択で含むことができる、１つまたは複数の家庭またはビジネス電力システムである。
【００２８】
図２Ａは、バッテリの状態の特性を他の関係付けられた情報と共に使用してバッテリからのＤＣ電力の自動化制御を行うためのシステムの実施形態の例示的コンポーネントを示すブロック図２００を含み、具体的には、さらに後述されるように、例示的システム２００の様々なコンポーネントが、定義された制約条件、ルール、および他の基準に照らして１つまたは複数の定義された目標に従ってバッテリの動作を制御するように相互作用する。いくつかの実施形態では、バッテリを制御するための自動化されたアクティビティが、電力を求める外部要求（たとえば、バッテリが電力を供給できる先のユーティリティからの要求）のできる限り多く（たとえば、そのような要求のうちの少なくとも定義されたパーセンテージまたは量）を満たしながら、電力需要および／または電力供給および／または電力価格の予測された将来値に部分的に基づいて、リアルタイム様式で、および／またはバッテリの長期動作（たとえば、バッテリの寿命）を最適化するように行われることができる。
【００２９】
図２Ａの示された例では、バッテリ２１０が示されており、バッテリ２１０は、バッテリコントローラコンポーネント２４０（本明細書では、「追跡コントローラ」および／または「バッテリ追跡コントローラ」と呼ばれることもある）から対応する制御信号を受け取るアクチュエータ２３０を介して制御され、たとえば、バッテリコントローラがバッテリのＤＣ出力として生成されるべき電力の量を指定することによって制御される。生成されるべき指定された電力量は、たとえば、出力される電力を指定された量だけ増加もしくは減少すること、または電力出力を変更しないことを示す情報を含むことができる。ここでは示されていないが、バッテリの出力は、電力を１つまたは複数の負荷（図示せず）に提供する働きをすることができ、少なくともいくつかの実施形態では、バッテリの電力出力をＡＣ電力に変換して対応する負荷をサポートするためにインバータ／整流器コンポーネントに接続されることができ、そのようなインバータは、たとえば、ＡＣ電力の電圧および／または周波数を調節することによってバッテリから提供される電力を制御することができる。同様に、ここではやはり示されていないがバッテリの入力は、１つまたは複数の電源（図示せず）から電力を受け取る働きをすることができ、少なくともいくつかの実施形態では、電源からのＡＣ電力入力をバッテリ用にＤＣ電力に変換するためにインバータ／整流器コンポーネントに接続されることができ、そのような整流器は、たとえば、ＡＣ電力の電圧および／または周波数を調節することによってバッテリに提供される電力を制御することができる。
【００３０】
加えて、図２Ａの追加のデータソース要素２５５および２６０は、システム２００の１つまたは複数の予測器コンポーネント２７０（各々が、図示されない複数の予測モデルを潜在的に含む）が、過去および／または現在の気象データ、過去および／または現在の価格データ、電力供給および／または需要に関する過去および／または現在のデータなどに基づくなどして、１つまたは複数のタイプの電力に関係付けられた情報を予測するために情報を取得し使用することを可能にする。この例では、予測器コンポーネントは、ユーティリティへおよび／またはユーティリティから供給される電力の価格を予測する電力価格予測器コンポーネント２７０ａと、バッテリから供給される電力の需要を予測する電力需要予測器コンポーネント２７０ｃと、バッテリから供給される電力の利用可能な供給を予測する電力供給予測器コンポーネント２７０ｂとを含むが、他の実施形態では、１つまたは複数のそのようなコンポーネントが存在しなくてもよく、および／または組み合わされてもよい（たとえば、コンポーネント２７０ｂおよび２７０ｃが、正および負の需要を予測する単一の電力需要／供給予測器に置き換えられ、負の需要は利用可能な供給を示す）。次いで、ＣＤＩエージェント２５０は、そのような予測されたデータを受け取り、それを後述される他のタイプのデータと一緒に使用してバッテリの制御を管理して、たとえば、バッテリ寿命および／または他の性能特性に関係付けられた他の制約条件と組み合わせて、１つまたは複数の経済的制約条件および／または電力利用可能性制約条件を最適化または他の形で改善することができる。
【００３１】
どのようにバッテリを制御するかを決定することの一部として、バッテリコントローラコンポーネントは、バッテリの内部状態（図示せず）、たとえば、電圧、電流、温度などの現在の値に関して、センサモジュール２２０から入力を受け取り、対応する情報をＣＤＩエージェント２５０に供給する。本明細書ではＣＤＤ（協働分散判断）判断モジュールまたはシステムと呼ばれることもあるＣＤＩエージェントは、バッテリの状態に関係付けられたバッテリコントローラからの情報を受け取り、また、ユーティリティにより制御される電気グリッド（図示せず）に対してバッテリが電力を時々または常に供給する状況などにおいて、ユーティリティコンポーネント２６０からの電力供給要求を受け取り、また、１つまたは複数のタイプの上記された予測されたデータを受け取る。具体的には、ＣＤＩエージェントは、ユーティリティから特定の要求を受け取り、バッテリの状態に関する情報、および１つまたは複数のタイプの予測されたデータに関する情報を受け取って分析し、バッテリについて現在の時間に行う対応する動作（たとえば、バッテリから供給される出力電力の量、および／またはバッテリにより受け取られ貯蔵される入力電力の量）を決定し、少なくともいくつかの状況では、（たとえば、バッテリの推定された内部温度および／またはバッテリの推定された内部の化学的性質に関して）所望の非飽和範囲またはレベルでバッテリが動作することを可能にすること、ならびに予測されたデータに反映される見込まれる将来の動作をサポートすることなどのために、バッテリの現在の状態および定義された目標を所与としてバッテリ性能に対する他の制約条件も満たすように要求が満足できる場合、リアルタイム様式で電力に関するユーティリティからの要求を完全または部分的に満たすように試みることを伴う。バッテリについて現在の時間に行う対応する動作を決定した後、ＣＤＩエージェントは、対応する追跡制御信号をバッテリコントローラに提供し、バッテリコントローラは、追跡制御信号の対応する動作をもたらすためにアクチュエータを現在どのように修正または操作するか（たとえば、バッテリから出力される電力の量について行う正または負の変更の量）を決定し、上述されたように対応する制御信号をアクチュエータに送る。図２Ａには示されていないが、バッテリについての対応する動作に関する情報（たとえば、追跡制御信号および対応するバッテリ状態情報、結果の制御信号ならびに結果のバッテリ状態動作および状態情報など）が、コンポーネント２７０のうちの１つもしくは複数のおよび／または１つもしくは複数の他のＰＶＦコンポーネント（図示せず）にさらに提供されて、コンポーネント２７０によって使用中の１つまたはいくつかまたは全部の予測モデルを改善するのに使用することができ、そうすることは、バッテリ動作に関するそのような情報を使用して、そのような予測モデルを再トレーニングすること、および／または予測モデルに反映される推定された内部の観測不能な状態情報を改善することを含み、１つまたは複数のそのような予測モデルの改訂されたバージョンが続いて展開および使用される。
【００３２】
やはり図２Ａには示されていないが、ＣＤＩエージェントおよび／またはバッテリコントローラは、いくつかの実施形態では、バッテリの内部状態を推定し、その内部状態に少なくとも部分的に基づいて行う特定の動作を選択するために使用される、バッテリの記憶されたモデルを含む。たとえば、いくつかの実施形態では、任意のタイプのバッテリに適用可能な汎用バッテリモデルが使用されることができ、他の実施形態では、バッテリのタイプ（たとえば、リチウムイオンまたはニッケルカドミウムなど、電気を貯蔵および／または生成するために使用される化学反応のタイプ）に固有のバッテリモデルが使用されることができ、さらに他の実施形態では、使用中の特定のバッテリ専用に設計および／または構成されたバッテリモデルが使用されることができる。加えて、少なくともいくつかの実施形態では、特定のバッテリを有する特定のシステムで当初採用されたバッテリモデルが、時間経過につれて更新されて、（たとえば、観測可能なバッテリ状態の変化が、対応する外部バッテリ電気負荷および／または電源にどのように相関するかを監視することによって、）モデルの基礎となる構造に改善を反映すること、ならびに／またはモデルをトレーニングして使用中の特定のバッテリおよび／もしくはシステムに固有の動作特性を反映することなどができ、特定のバッテリおよび／またはシステムに対してモデルをトレーニングしまたは他の形で適合させるとき、トレーニング／適合動作は、いくつかの実施形態では、自動化制御システムを使用してバッテリを制御する前に初期にトレーニング段階で行われることができ、および／または、いくつかの実施形態では、（たとえば、バッテリのインピーダンスプロファイルの経時的変化を反映するために、）自動化制御システムがバッテリを制御している間に継続的または定期的に行われることができる。そのようなモデルの構築および使用を含むモデルに関する追加の詳細は、本明細書の他の箇所に含まれる。加えて、いくつかの実施形態では、バッテリコントローラおよびＣＤＩエージェントは、別個のコンポーネントとして実装されることができ（たとえば、バッテリコントローラは、バッテリに取り付けられまたは他の形式でバッテリの位置にあるハードウェアおよび／またはファームウェアに全体としてまたは部分的に実装され、ＣＤＩエージェントは、バッテリ位置から遠隔の１つまたは複数のコンピューティングシステム上で実行され任意選択で１つまたは複数の介在コンピュータネットワークを介してバッテリコントローラと通信するソフトウェア命令によって、部分的に実装される）、他の実施形態では、ＣＤＩエージェントおよびバッテリコントローラは、（バッテリの位置にあるかそれから離れているかに関わらず）単一のコンポーネントとして実装されることができる。バッテリについて行う動作を決定するためのＣＤＩエージェントの動作に関するさらなる詳細は、以下により詳細に論じられる。
【００３３】
加えて、図２Ａに関連して示されていないが、いくつかの実施形態では、複数のバッテリ（たとえば、数十、数百、数千、数百万など）の各々が、同様にそのバッテリのアクションを制御する関連付けられたＣＤＩエージェントを有することができ、様々なバッテリが、ユーティリティまたは他のエンティティに集合的電力を供給するために調整された様式で一緒に動作する。そのような実施形態では、ユーティリティまたは他の外部エンティティは、バッテリを含む様々なシステムにより使用するための同期および監視信号を送ることができ、様々なバッテリに関連付けられた複数のＣＤＩエージェントが、相互作用して情報を交換し、バッテリの動作間の少なくとも部分的調整を維持することができる。自動化された動作を行って、１つもしくは複数のバッテリを有するそのようなターゲットシステムおよび／または他のタイプのターゲットシステムを制御するいくつかのさらなる態様は、２０１６年４月１１日に出願された特許文献１、名称「Ｕｓｉｎｇ  Ｂａｔｔｅｒｙ  ＤＣ  Ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ  Ｔｏ  Ｃｏｎｔｒｏｌ  Ｐｏｗｅｒ  Ｏｕｔｐｕｔ」、２０１５年６月２２日に出願された特許文献２、名称「Ｃｏｏｐｅｒａｔｉｖｅ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｎｔｒｏｌ  Ｏｆ  Ｔａｒｇｅｔ  Ｓｙｓｔｅｍｓ」、２０１５年６月２２日に出願された特許文献３、名称「Ａｐｐｌｉｃａｔｉｏｎｓ  Ｏｆ  Ｃｏｏｐｅｒａｔｉｖｅ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｎｔｒｏｌ  Ｏｆ  Ｔａｒｇｅｔ  Ｓｙｓｔｅｍｓ」、２０１５年６月２２日に出願された特許文献４、名称「Ｇａｕｇｅ  Ｓｙｓｔｅｍｓ」、および２０１５年６月２２日に出願された特許文献５、名称「Ｃｏｏｐｅｒａｔｉｖｅ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｎｔｒｏｌ  Ｏｆ  Ｔａｒｇｅｔ  Ｓｙｓｔｅｍｓ」に含まれており、それらの各々は、参照によりその全体が本明細書に組み込まれている。
【００３４】
図２Ｄは、１つまたは複数のＰＶＦ予測モデル２７８からの予測情報などに部分的に基づいてＣＤＩ制御エージェント２７９により自動的に制御されている別のターゲットシステムの実施形態の例示的コンポーネントを示すブロック図２９５を含む。この例では、制御エージェント２７９は、自動化された動作を行って、１つまたは複数のＨＶＡＣユニット２７２を介して建物２７１の暖房および／または冷房を制御して、たとえば、制御エージェントにおいて表現された定義された制約条件、ルール、および他の基準に照らして１つまたは複数の定義された目標を満たす。いくつかの実施形態では、ＨＶＡＣユニットを制御するための自動化されたアクティビティは、（たとえば、温度範囲内で、利用者に供給された動的要求に応じて特定の時間に特定の部屋の温度を上昇または低下させるように）１つまたは複数の定義された基準に従って建物の一部または全部の部屋の暖房および／または冷房を維持しながら、リアルタイム様式でならびに／または暖房および／もしくは冷房アクティビティのコストを最適化するように行われることができる。
【００３５】
図２Ｄの示された例では、建物は複数の階２７４を有し、各階は複数の部屋２７５を有する。いくつかの部屋は、その部屋の温度を提供するための温度センサ２７６を有し、（同じ部屋か異なる部屋かに関わらず）いくつかの部屋は、利用者に選択可能な命令ボックス２７７であって、それらの命令ボックス２７７に関連付けられた１つまたは複数の部屋の暖房および／または冷房を要求するための命令ボックス２７７を有することができる。制御エージェント２７９は、ターゲットシステムのためのセンサ（たとえば、室内温度センサ２７６、１つまたは複数の外部温度センサ、ＨＶＡＣユニット２７２および／または建物用の電力供給２７３の動作に関連付けられたセンサなど）からの情報、制御ユニット２７９からＨＶＡＣユニット２７２および／または電力供給２７３に供給される制御信号情報、ターゲットシステム動作の出力または結果に関する他の情報、ならびに１つまたは複数のＰＦＦ予測モデル２７８からの１つまたは複数のタイプの（たとえば、制御エージェント２７９に提供される他のタイプの入力データの１つまたはいくつかまたは全部についての）予測パラメータ値などを受け取り、他方で、制御エージェントは、この例では、ＨＶＡＣユニットおよび／または電力供給に命令を直接提供するように示されているが、他の実施形態では、制御エージェントは、そうではなく、１つまたは複数の中間システム（たとえばスマート建物管理システム）に制御命令を提供することができる。１つまたは複数のＰＶＦ予測モデル２７８は、同様に、ターゲットシステムのためのセンサからの情報、制御エージェント２７９からＨＶＡＣユニット２７２および／もしくは電力供給２７３に供給される制御信号情報、ならびに／またはターゲットシステム動作の出力もしくは結果に関する他の情報を受け取り、本明細書の他の箇所でより詳細に論じられるように、そのような情報を使用して予測モデル２７８の動作を改善することができる。図２Ａ〜図２Ｃに関して説明されたのと同様のアクティビティが、ターゲットシステム２９５について同様に行われることができるが、そのような詳細は簡潔にするために示されていないことは理解されよう。自動化された動作を行ってそのようなターゲットシステムを制御するいくつかのさらなる態様は、参照によりその全体が本明細書に組み込まれている、２０１７年１月１９日に出願された特許文献６、名称「Ｕｓｉｎｇ  Ｓｅｎｓｏｒ  Ｄａｔａ  Ｔｏ  Ａｓｓｉｓｔ  Ｉｎ  Ｃｏｎｔｒｏｌｌｉｎｇ  Ａ  Ｔａｒｇｅｔ  Ｓｙｓｔｅｍ  Ｂｙ  Ｍｏｄｅｌｉｎｇ  Ｔｈｅ  Ｆｕｎｃｔｉｏｎａｌｉｔｙ  Ｏｆ  Ｔｈｅ  Ｔａｒｇｅｔ  Ｓｙｓｔｅｍ」に含まれている。
【００３６】
少なくともいくつかの実施形態では、時系列予測に関するパラメータ適合および自動再トレーニングが、（本明細書では「予測器」と呼ばれることもある）予測コンポーネントで使用される予測モデルに対して行われる。１つの非限定的例として、予測器は、以下の方程式によってモデル化される線形系の予想を行うことができる。 
ｘn＝Ａｘn-1＋Ｂｕn-1＋ｗn-1      （０．１）
ｙn＝Ｃｘn＋ｖn      （０．２）
上式において、
●  ｘnは、系の状態である（これは、直接観測されなくてよいことに留意されたい）
●  ｕnは、制御（すなわち、ある種の予想されない入力変数）である
●  ｗnは、プロセスにおけるノイズである
●  ｙnは、測定されたデータである
●  ｖnは、測定ノイズである
●  Ａは、以前の状態が新しい状態にどのように影響するかを決定する状態遷移行列である
●  Ｂは、以前の制御が新しい状態にどのように影響するかを決定する入力行列である
●  Ｃは、測定値が状態にどのように関係付けられるかを決定する出力行列である
この一般的フレームワークは、本明細書の他の箇所で論じられるように、複数の異なるタイプのモデルを可能にする。Ａが０の場合、これは、自動回帰モデルでなく単純回帰（plain regression）となる。Ｃが単位行列であり、ｖnが０である場合、観測と状態の間に差異がない。
【００３７】
加えて、ｘをより大きなベクトル内にスタックすることによって一度に複数の点が予想されることができ、たとえば、丸一日の毎時の価格を予想するために、状態は、単一の価格でなく、２４個、すなわち日の各時（each hour）に１つの価格からなる。行列Ａの構造は、時間の各々の間の関係を決定し、典型的な選択は、完全行列（full matrix）、三重対角行列、対角行列、または単位元（identity）の定数倍であり得る。ｘをさらに大きなベクトル内に（さらに）スタックし、ＡおよびＢに関するより大きなブロック行列を作ることによって、より高次のモデルが取り扱われることができる。たとえば、３次モデル
ｘn＝Ａ1ｘn-1＋Ａ2ｘn-2＋Ａ3ｘn-3      （０．３）
は、以下のように１次モデルとして記述されることができる。
【００３８】
【数１】
2019519871.tif 000003
【００３９】
状態および制御に関して異なる次数のモデルが可能であることに留意されたい。最後に、各ブロックの構造が指定されることができる（たとえば、Ａ1は完全とすることができ、Ａ2は対角行列とすることができる）。加えて、データは、上記のモデルの使用の前に前処理されることができる。例は以下を含む。 
●  ｘの各座標を、値が平均０、分散１を有するように正規化する
●  （正のデータについて）対数スケールを取る
●  （外れ値に対するロバスト性のために）中央絶対偏差を使用して正規化する
●  既知の時間期間を有するデータについて時間に基づいて正規化する。たとえば、データが毎日到着している場合、平日とは別に週末を正規化する。または、データが毎時到着している場合、日を通した周期的傾向を説明するために日の各時を別個に正規化する
【００４０】
予測器を指定するときに、上記のすべてが考慮に入れられることができる。すべてを指定するサンプルＪＳＯＮ構成ファイルが以下に示される。
【００４１】
【表１】
2019519871.tif 000004
【００４２】
「ｓａｍｐｌｅｓＰｅｒＳｔｅｐ」は、１度に予想される２４個の値を示す。正規化器（normalizer）部分は、各入力状態および制御変数に対してどんな正規化器を使用するかを記述する。行列Ａは、「ｍｏｄｅｌ」部分で決定され、コードで完全行列に構築されたブロック構造を有する。パラメータ「ｓｔａｔｅＯｒｄｅｒ」および「ｃｏｎｔｒｏｌＯｒｄｅｒ」は、各変数について使用するモデルの次数を定義し、「ｍｏｄｅｌＴｙｐｅ」は、各ブロックの構造のタイプを指定し、「ｓｔａｔｅＴｅｒｍｓ」および「ｃｏｎｔｒｏｌＴｅｒｍｓ」はブロックパターンを示す。最後に、使用する予測器のタイプ、およびどんな誤差をトレーニング中に使用するかを指定するためのパラメータがある。
【００４３】
１つまたは複数のバッテリから供給される電力の将来需要の予測、およびバッテリからまたはバッテリへ供給されるそのような電力の将来価格の予測の一例として、いくつかの実施形態では、電気価格および電力需要は、過去の価格、需要、および予測された温度を所与として、日の各時について予測されることができる。そのような予想は、たとえば、ｐｎが日ｎの各時についての価格の１×２４ベクトルであり、ｄｎが日ｎの各時についての需要の１×２４ベクトルであり、ｄｎが日ｎの各時についての温度の１×２４ベクトルであるモデルを使用することができる。以下の２次プロセスモデルが使用されることができる。 
ｐn＝ｃ1ｐn-1＋ｃ2ｐn-2＋ｃ3ｄn-1＋ｃ4ｔn      （０．５）
ｄn＝ｃ5ｐn-1＋ｃ6ｄn-1＋ｃ7ｄn-2＋ｃ8ｔn      （０．６）
これらは以下のように記述されることもできる。
【００４４】
【数２】
2019519871.tif 000005
【００４５】
上式において、Ｉは２４×２４単位行列であり、０は２４ｘ２４零行列である。このモデルでは、内部状態（ｐn，ｄn）と測定値との間に差がなく、したがって、測定方程式は以下のようになる。
【００４６】
【数３】
2019519871.tif 000006
【００４７】
この例では、予想された気象予測は、予想をするために使用されるが、観測された気象は、モデルをトレーニングするために使用される。 
この例では、需要および温度は、中央値を差し引き、平均絶対偏差で割ることによって正規化され、データは、日毎の時間（hour）および週毎の日の異なる２４＊７の組み合わせについて別個にグループ化される。同様に、価格は、まず対数を取り、次いで中央値を差し引き、平均絶対偏差で割ることによって正規化され、各時および曜日の組み合わせによってグループ化される。この機能性を実装するための動作は、以下のような非同期ジョブのセットとして、すなわち、データ抽出（たとえば、これは、履歴価格、履歴需要、履歴温度、および様々なウェブサイトからの予想された温度の抽出を毎日実行する４つのジョブを有し、結果を共有ストレージに保存する）、モデルトレーニング（たとえば、これは、新しいモデルを１週間に３回トレーニングするジョブを有し、最良のモデルを選択し、最悪のモデルを除去する）、および予測／予想（たとえば、これは、毎日実行され、最新の最良のモデルを採用し、次週の予想を行う「ドライバ」プログラミングを有し、結果を、ユーザにそれらを供給することや加入者にそれらを公開することなどによって提供する）として実装されることができる。図２Ｃの図２９０に、異なるジョブ間のデータフローが示されている。予測は１週間まで先立って行われるので、システムは、何かが故障した場合にロバストであり、たとえば、データソースが一時的に利用不可担った場合、問題が修復されている間、ユーザは依然として数日間結果を得ることができる。
【００４８】
１つまたは複数のバッテリから供給される電力の将来需要の予測、およびバッテリからまたはバッテリへ供給されるそのような電力の将来価格の予測の他の例は、過去の価格、需要、および予測された温度を所与として、次の１時間について５分間隔でそれを行うことを含むことができる。そのような予想は、たとえば、ｐn、ｄn、およびｔnが日ｎの各５分間隔についての価格、需要、および温度の１×１２ベクトルであるモデルを使用することができる。温度がこの頻度で利用可能でない場合、５分の温度値が、より長い時間フレーム（たとえば１時間）の温度から内挿されることができる。１次プロセスモデルが以下のように使用されることができ、
【００４９】
【数４】
2019519871.tif 000007
【００５０】
測定モデルは次のようになる。
【００５１】
【数５】
2019519871.tif 000008
【００５２】
やはり、予想された気象は、予想をするために使用され、過去の観測された気象は、モデルをトレーニングするために使用される。温度および需要を正規化するために、平均が差し引かれ、平均絶対偏差で割られることができ、価格については、対数が取られ、次いで平均を差し引き、平均絶対偏差で割ることができる。これの実装は、上述された時−日予想に類似するが、価格／需要に関するデータソースは、たとえばウェブページをスクレイピングするのではなく、たとえば直接フィードとすることができる。
【００５３】
予測モデルは、様々な実施形態において様々な様式でトレーニングおよび／または更新されることができる。１つの非限定的例として、履歴データが、モデルを初期にトレーニングするために利用可能であってよく、その後、新しいデータが来るとモデルは「オンライン」で実行できる。たとえば、１００個の履歴値が利用可能であると想定する。それらの最初の５０個は、たとえば、パラメータＡ、Ｂ、Ｃの初期値を推定するために予約されることができる。次いで、残りの５０個の点は、トレーニングされたモデルが生成する予想と比較されて、モデルがその将来データに関してどの程度うまく働くかを測定することができる。この例において、モデルは時間５０から時間１００へ順方向に実行されるので、パラメータＡ、Ｂ、Ｃは、上記の動的モデルのいずれかを使用しているとき、変化することができることに留意されたい。最終モデルは、将来時点を予想するために使用されることができ、新しい測定が行われるたびに、モデルはそれ自身で更新することができる。これは、典型的には計算的に安価であり、少なくともいくつかの実施形態ではリアルタイムで行われることができる。
【００５４】
特定の予測モデルが時間経過につれて使用される場合、特に、新しい測定されたデータを用いて自身を更新しない非動的（または「静的」）モデルに関して、その性能は、時間経過につれてデータが変化すると低下する可能性がある。しかしながら、それは動的モデルの場合も発生することがあり、たとえば、いくつかの状況では、少数の非常に不良なデータポイントがカルマンフィルタモデルを永続的に歪めることがあり、またはモデルの予想電力を低下させる数値誤差が蓄積することがある。少なくともいくつかの実施形態では、以下は、手動の介入なしに、その時間で予測に使用されるのに利用可能な任意の所与の時間における最良の可能なモデルを有する機会を増大するために使用され得る、システムの１つの非限定的例である。 
●  候補予測モデルのプールから開始する。一部は、より単純なことがあり（たとえば、単純回帰、またはより低次のモデルの使用）、これらは、より少ないトレーニングデータを用いて、またはより複雑なモデルを破損し得る余分なノイズがある場合により良く働く傾向がある。一部は、より複雑なことがあり（たとえば、ＰＡＥカルマンフィルタ）、多くのデータが利用可能なときに他より性能が優れることが可能である。 
●  最後のＴ個の点の履歴データでこれらのモデルをトレーニングし、最後のＮ個の点は測定をするために予約する。測定の前にこれらのモデルを保存し、測定のプロセスと同様に、モデルがそれら自体をデータの最後まで更新する。 
●  最も高い性能を有するモデルを選び、これを将来の予想のために使用する。 
●  新しい測定値が来るたびに、１つの点を用いて各モデルを更新して、測定され得る履歴データのＮ個の点を用いて各モデルが常に保存されるようにする。 
●  定期的に、新しい最良のモデルを見つけようと試みる。（より古いデータ上でトレーニングされるが、新しいデータで更新される）モデルの既存のプールに加えて、新しいセットのモデルが、最後のＴ個の点だけでトレーニングされるステップ１および２として作成され、それにより、異なる量のデータ上でトレーニングされた異なるモデルを作成する。 
●  最後のＮ個の点のデータ上でモデルをスコアリングする。作成スコアリングに関する最良の性能のモデルを選び、任意選択で（たとえば、考慮するモデル数が一定に留まることが好まれる場合）、最悪の性能のモデルを除去する。新しい測定値が来ると各モデルを更新することを含む、上記の第４のステップに戻る。 
上記のプロセスは、図２Ｂのアーキテクチャ２８０に示されている。この例示的な手順の１つの利点は、任意の所与の時間に使用されているモデルが、その予想の精度に関して最近のデータ上での他のモデルに勝り、したがってそれはロバストであることである。さらに、単純なモデルと複雑なモデルの両方が考慮されるので、データのノイズが増え、またはデータの予想可能性が低くなった場合、最良とみなられるモデルが自動的に調整される。最後に、モデルは異なる時間期間においてトレーニングされているので、初期パラメータをトレーニングするための最良のセットのデータがモデルの１つまたは複数において使用される機会が増加される。
【００５５】
ＰＡＥ（パラメータ適合エンジン）に関する追加の詳細を含む１つの例示的実施形態として、以下の力学系が考えられる。 
ｘn＝Ａｘn-1＋Ｂｕn＋ｗn      （０．１１）
ｙn＝ｘn＋ｖn      （０．１２）
上式において、
ｘnは、系の状態である（これは、直接観測されなくてよいことに留意されたい）
ｕnは、制御（すなわち、ある種の予想されない入力変数）である
ｗnは、プロセスにおけるノイズであり、それは、ゼロ平均であると仮定され、共分散Ｑnを有する
ｙnは、測定されたデータである
ｖnは、測定ノイズであり、それは、ゼロ平均および共分散Ｒnを有すると仮定される
Ａは、以前の状態が新しい状態にどのように影響するかを決定する状態遷移行列である
Ｂは、以前の制御が新しい状態にどのように影響するかを決定する入力行列である
方程式（０．１１）はシステムのプロセスモデルとして知られ、（０．１２）は測定モデルとして知られている。測定値を与えられた状態推定の一般的方法は、カルマンフィルタである。カルマンフィルタは既知とされるが、一般に、行列ＡおよびＢが一定であるという仮定を有する。実世界のシステムでは、行列ＡおよびＢは時間経過につれて変化する可能性がある。加えて、行列が、「真」の基礎となるシステムダイナミクスと一致しない場合、カルマンフィルタは最適に働かず、したがって、真の基礎となるダイナミクスにより良くフィットするようにＡおよびＢを適合させる方法を有することが、説明されている技法の使用の利点を提供する。具体的には、行列ＡおよびＢは、時間経過につれて変化することを可能にされ、第２のカルマンフィルタが、観測値を所与として行列を更新するために使用される。ＡまたはＢの任意のサブセットを、どの部分が固定されたままであることが望ましく、どの部分が変更を可能にされることが望ましいかに応じて推定することが可能である。これを行うために、まず、ＡおよびＢの（非ゼロ）エントリがベクトルΨnとして符号化される。このベクトルは、パラメータ状態である。次いで、パラメータ系のプロセスモデルが、
Ψn＝Ψn-1＋Θn      （０．１３）
として定義され、ここで、Θnは、パラメータのプロセスノイズである。これのために、複数の単位元が使用され得る。パラメータ系の観測モデルを作るために、測定値はパラメータの関数として書かれ、観測ノイズが加えられ、次のようになる。 
ｘn＝ＦnΨn＋ｌn      （０．１４）
上式において、ｌnは、すべての時間について平均０および共分散Λを有して正規分布されると仮定される。ここで、これらの２つの方程式は、カルマンフィルタが適用されることができる力学系を構成する。好ましくは、パラメータは、少なくともいくつかの実施形態において（ロバスト性のために）状態に対する更新よりも遅いスケールで更新されることに留意されたい。加えて、パラメータプロセスノイズおよび測定ノイズについて行われた選択は、パラメータ適合がどのように挙動するかに影響を与えることができる。
【００５６】
パラメータ更新のために動的方程式を構築するやり方に関する１つの具体例として、以下の系を想定する。
【００５７】
【数６】
2019519871.tif 000009
【００５８】
【数７】
2019519871.tif 000010
【００５９】
そして、これらのパラメータａ11、ａ12、ａ21、ａ22、ｂ1、ｂ2は適合されることになる。ここで、パラメータ状態は、下記のように各時間ｎにおけるパラメータのベクトルである。
【００６０】
【数８】
2019519871.tif 000011
【００６１】
観測系の方程式を得るために、プロセス方程式を
【００６２】
【数９】
2019519871.tif 000012
【００６３】
【数１０】
2019519871.tif 000013
【００６４】
として展開し、次いで、以下のようにｘn＝ＦnΨnとなるように行列Ｆを記述し、
【００６５】
【数１１】
2019519871.tif 000014
【００６６】
結果として、
【００６７】
【数１２】
2019519871.tif 000015
【００６８】
となる。ＰＡＥカルマンフィルタの方程式を完成するために、Θおよびｌの共分散に対するいくつかの合理的な行列を選択する。あり得る選択肢は、
ｃｏｖ（Θ）＝０．０１ｌ6      （０．２２）
ｃｏｖ（ｌ）＝０．０１ｌ2      （０．２３）
であり得る。
【００６９】
履歴データを用いて、価格、需要、および気象に関する５分毎のデータを用いて価格および需要予想を行うことに関する追加の詳細を含む１つの例示的実施形態として、カルマンフィルタが、５分の時間スケールで増分価格および増分需要に対して使用される。また、別のカルマンフィルタがパラメータを推定するために使用される。価格Ｐt、需要Ｄt、および気象Ｗtは、スカラーであり、それらの履歴データが存在する。モデルは、増分価格ΔＰtおよび増分需要ΔＤtに基づき、
【００７０】
【数１３】
2019519871.tif 000016
【００７１】
【数１４】
2019519871.tif 000017
【００７２】
であり、ここで、最後のＮ個の時間期間にわたって平均価格および平均需要が以下のように求められる。
【００７３】
【数１５】
2019519871.tif 000018
【００７４】
【数１６】
2019519871.tif 000019
【００７５】
また、以下のような更新方程式がある。
【００７６】
【数１７】
2019519871.tif 000020
【００７７】
同様に，
【００７８】
【数１８】
2019519871.tif 000021
【００７９】
である。平均を更新する別の方法は、Ｎ個の時間期間のスライド窓を使用することである。 
増分モデルのための動的方程式は、
【００８０】
【数１９】
2019519871.tif 000022
【００８１】
として与えられ、ここで、ノイズベクトルは、ガウシアン、ηt〜（０，Ｑ）および
【００８２】
【数２０】
2019519871.tif 000023
【００８３】
である。
観測方程式を展開し、
【００８４】
【数２１】
2019519871.tif 000024
【００８５】
であり、これにより、
【００８６】
【数２２】
2019519871.tif 000025
【００８７】
が得られ、同様に、需要については，
【００８８】
【数２３】
2019519871.tif 000026
【００８９】
であり、これにより、
【００９０】
【数２４】
2019519871.tif 000027
【００９１】
が得られ、ここで、観測ノイズは、ガウシアン、γt〜（０，Ｒ）および
【００９２】
【数２５】
2019519871.tif 000028
【００９３】
であり、ｗ、価格および需要に関する観測ノイズは、無相関であると仮定される。要約すると、カルマンフィルタに関する増分価格および需要モデルは、
【００９４】
【数２６】
2019519871.tif 000029
【００９５】
ΔＹt＝ΔＸt＋γt      （０．３４）
であり、上式において、
【００９６】
【数２７】
2019519871.tif 000030
【００９７】
および
【００９８】
【数２８】
2019519871.tif 000031
【００９９】
は、第２のカルマンフィルタからのパラメータの推定値である。  
カルマンフィルタ方程式が続く。予測方程式は、
【０１００】
【数２９】
2019519871.tif 000032
【０１０１】
であり、補正方程式は、
【０１０２】
【数３０】
2019519871.tif 000033
【０１０３】
であり、上式において、
【０１０４】
【数３１】
2019519871.tif 000034
【０１０５】
は、利得行列である。カルマンフィルタの共分散行列は、Σとして示され、予測方程式，
【０１０６】
【数３２】
2019519871.tif 000035
【０１０７】
および補正方程式
【０１０８】
【数３３】
2019519871.tif 000036
【０１０９】
によって計算される。 
利得は、
【０１１０】
【数３４】
2019519871.tif 000037
【０１１１】
である。初期条件は、
Σ0|0＝Σ0      （０．４０）
である。 
利得行列は、逆行列を含むが、この逆を直接取る代わりに伝播する方法がある。モデルの６個のパラメータのベクトルｖｅｃｔ（ａ11，ａ12，ａ21，ａ22，ｂ1，ｂ2）は、価格および需要状態よりも遅く変化するように仮定され、したがって、履歴価格および需要データがカルマンフィルタにおいてパラメータに使用される。パラメータは、プロセスダイナミクス更新よりも実質的に遅い速度で更新される。 
Ψt＝ｖｅｃｔ（ａ11，ａ12，ａ21，ａ22，ｂ1，ｂ2）t      （０．４１）
として、パラメータのダイナミクスは、
Ψt+1＝Ψt＋Θt      （０．４２）
であり、ここで、ΘtはＮ（０，λ）である。 
パラメータ観測方程式は、（０．２８）から導かれ、以下のようになる。
【０１１２】
【数３５】
2019519871.tif 000038
【０１１３】
のようになり、ノイズプロセスは、すべてのｔについてＮ（０，λ）である。ここで、カルマンフィルタはパラメータを推定するために使用される。
【０１１４】
説明されている技法は、様々な利益および利点を提供することができる。そのような利益および利点の非排他的は、たとえば、複数の異なるタイプの予測モデルと、それらのモデルをトレーニングするために使用する複数の異なるグループの過去データとの使用を組み合わせることによって、ならびに／またはそれらのモデルの少なくとも一部に反映される推定された内部の観測不能な状態情報を改善することによって、将来パラメータの予測が行われるやり方を改善することを含む。加えて、ターゲットシステムの動作に影響するパラメータの将来値を予測すること、およびターゲットシステムに対して行う現在の自動化制御アクションを決定することの一部として、予測された将来値を使用することによって、現在の自動化制御アクションは、そのような予測された将来値を反映しない他の可能なアクションに比べて最適化または他の形で改善されることができる。
【０１１５】
加えて、（たとえば、バッテリのＤＣ電流および電圧を変えることによって）ＤＣ側でバッテリの電力出力が制御される実施形態に関連して、さらにそのような非排他的利益は、バッテリに接続されたインバータにより提供されるＡＣ（交流）電圧および／または電流を単一の指定されたレベルに固定するのではなく、（たとえば、化学量論的範囲などの１つまたは複数の化学量論的限界内でバッテリの内部の化学的性質を維持することによって）内部温度および／または他のバッテリパラメータに関してバッテリがその最適なまたは最適に近い物理的状態で動作することを可能にすることと、不可逆的バッテリ損傷の可能性という代償を支払うが最大電力を提供する飽和レベルでバッテリを動作させることとを含む。このようにして、電力に関係付けられた１つまたは複数のタイプの予測された将来データに照らして、バッテリの化学的性質の変化が可逆的であって短絡および他の不可逆的損傷が低減または除去される好ましい範囲で、バッテリが動作することを可能にすることによって、バッテリ寿命および他の動作性能が上述された技法により最適化または他の形で向上されることができる。加えて、少なくともいくつかの実施形態では、バッテリの自動化制御は、他のコンポーネント（たとえば、負荷および／または外部電力グリッド）との電力出力量共鳴を向上および維持するためのバッテリの能動制御をさらに含むことができ、したがって、提供される電力の量は、電力出力要求または負荷量の少なくとも定義されたパーセンテージまたは他の量（たとえば、５０％、６５％、１００％、または任意の他の定義されたパーセンテージもしくは他の量）を満たしながらも、必要とされる量を超えない。 
このようにして、そのような実施形態は、バッテリ損傷または他の問題（たとえば過剰加熱）を生じてもバッテリの出力電圧または電流を固定しすべての電力要求を満たす既存のシステムではなく、可能な場合に電力出力要求を満たし、予測された将来電力に関係付けられたデータを管理しながら、制御されるバッテリの内部状態および（寿命を含む）動作性能を管理する自動化制御システムとして概念化されることができる。上記および本明細書のいくつかの他の箇所で論じられる利益および動作は、バッテリから出力される電力を制御することに関するが、同じ技法が、１つまたは複数の電源からバッテリ内に貯蔵される電力を制御するために使用されることができ、そうすることで、電力を貯蔵しながら、バッテリが、熱および他のバッテリパラメータに関してその最適なまたは最適に近い物理的状態で動作するようにし、また、予測された将来電力に関係付けられたデータを管理しながら、電力が１つまたは複数の電源により提供されるための電力入力要求の少なくとも定義されたパーセンテージまたは他の量（たとえば、５０％、６５％、１００％、または任意の他の定義されたパーセンテージもしくは他の量）を満たしながら、バッテリの化学的性質の変化が可逆的である好ましい範囲で、バッテリが動作することを可能にすることによって、バッテリ寿命および他の動作性能を最適化または他の形で向上するようにすることは理解されよう。追加の利益および利点は、以下を含み、特に指示されない限り、本明細書で使用される特徴または結果を「最適化する」という用語は、一般にその特徴または結果を（たとえば、部分的または完全な最適化によって）改善することを意味し、本明細書で使用される「リアルタイム」という用語は、制御されている結果のコンポーネントまたはシステムに固有の時間フレーム（たとえば、秒の分数、秒、分など）に関して意味を有する。 
●  Ｉ（電流）、Ｖ（電圧）、およびＲ（出力されている電力の量）のようなＤＣ制御変数を最適化することによって、バッテリ寿命を改善することができる
●  バッテリの化学的性質の事前の特徴付けと関連してＤＣ制御変数（Ｉ，Ｖ，Ｒ）を最適化することによってバッテリ寿命を改善することができ、また、性能および寿命を改善するようにＤＣレベルで最適化することができる
●  ＡＣ相において目的を解決するためにＤＣ領域でリアルタイムに変数を最適化することができる
●  他のグリッドコンポーネントなしでバッテリ出力のみの制御によるなどして、共鳴動作をもたらすグリッド周波数に一致するようにリアルタイムでＡＣ出力を最適化することができる
●  充電／放電サイクルを改善して長期バッテリ利用可能性を改善することができる
●  ＡＣ負荷応答を改善することができる
●  長期バッテリ利用可能性を改善することと組み合わせてＡＣ負荷応答を改善することができる
●  バッテリコントローラが、プロセッサ上で組み込まれたソフトウェアとして自己充足的に動作することができる
●  バッテリコントローラが、外部位置（たとえば、クラウドまたは他のネットワークアクセス可能位置）から継続的に監視および更新されることができる
●  バッテリコントローラが、バッテリ特性を送信して性能を改善することができる
●  静止型無効電力補償装置ハードウェアに関する出費を回避することができる
以下により詳細に一部が論じられるように、様々な他の利益および利点が少なくともいくつかの実施形態でさらに実現されることができる。
【０１１６】
図３は、本明細書の他の箇所でより詳細に論じられるように、予測されたデータに少なくとも部分的に基づいて、構成された様式で指定された物理システムまたは他のターゲットシステムの少なくともいくつかの動作を制御または他の形で操作する（たとえば、リアルタイム様式でバッテリの長期動作を最適化などするように、各バッテリの状態の特性を使用して、バッテリから提供されるＤＣ電力の自動化制御を行うことによって、１つまたは複数のバッテリを有する物理ターゲットシステムを制御する）ために自動化制御システムを実装するための技法を実施するのに適した例示的コンピューティングシステムを示すブロック図である。
【０１１７】
具体的には、図３は、ＣＤＤシステムおよび／または１つまたは複数のＰＶＦコンポーネントの少なくとも一部の機能を提供するのに適したサーバコンピューティングシステム３００を示すが、他の実施形態では、複数のコンピューティングシステムが実行のために使用されることができる（たとえば、実行時制御が発生する前の初期構成およびセットアップのためのＣＤＤ判断モジュール構築コンポーネント、ならびに実際の実行時制御のための１つもしくは複数のコピーのＣＤＤ制御アクション決定コンポーネント３４４および／またはＣＤＤ調整制御管理コンポーネント３４６を、別個のコンピューティングシステムに実行させる；１つまたは複数のコンピューティングシステムにＰＶＦコンポーネントを実行させ、ＰＶＦコンポーネントが相互作用するＣＤＤシステムの一部または全部を実行する１つまたは複数の他のコンピューティングシステムとＰＶＦコンポーネントは分離している；異なるコンピューティングシステムに異なるＰＶＦコンポーネントを実行させるなど）。図３はまた、ＣＤＤシステム３４０のカスタマまたは他のユーザによって使用できる様々なクライアントコンピュータシステム３５０、ならびに制御される１つまたは複数のターゲットシステム（この例では、１つまたは複数のコンピュータネットワーク３９０を介してＣＤＤシステム３４０および／またはＰＶＦコンポーネント３４５にアクセス可能なターゲットシステム１  ３６０およびターゲットシステム２  ３７０）を示す。
【０１１８】
示された実施形態では、１つまたは複数のＰＶＦコンポーネント３４５は、メモリ３３０において実行されており、いくつかの実施形態では、コンポーネントは各々が様々なソフトウェア命令を含み、これらのソフトウェア命令は、実行されたとき、本明細書の他の箇所に説明されているようにＰＶＦコンポーネントの実施形態を提供するようにＣＰＵプロセッサ３０５のうちの１つまたは複数をプログラムする。動作中、各ＰＶＦコンポーネントは、本明細書の他の箇所でより詳細に論じられるように、１つまたは複数の予測モデル（たとえば、ストレージ３２０に記憶されたＰＶＦモデル３２２のメモリ内コピー）を使用し、様々な予測された値３２６を作成する。この例示的実施形態では、予測された値３２６の少なくともいくつかは、次いで、たとえば、行うべき自動化制御アクションについての決定を行う際に使用するために、ＣＤＤシステム３４０に利用可能にされる。
【０１１９】
サーバコンピューティングシステム３００は、示された実施形態では、１つまたは複数のハードウェアＣＰＵ（「中央処理装置」）コンピュータプロセッサ３０５、様々なＩ／Ｏ（「入力／出力」）ハードウェアコンポーネント３１０、ストレージ３２０、およびメモリ３３０を含むコンポーネントを有する。示されたＩ／Ｏコンポーネントは、ディスプレイ３１１、ネットワーク接続３１２、コンピュータ可読メディアドライブ３１３、および他のＩ／Ｏデバイス３１５（たとえば、キーボード、マウス、スピーカなど）を含む。加えて、示されたクライアントコンピュータシステム３５０は各々が、サーバコンピューティングシステム３００のコンポーネントに類似するコンポーネントを有することができ、それらのコンポーネントは、１つまたは複数のＣＰＵ３５１、Ｉ／Ｏコンポーネント３５２、ストレージ３５４、およびメモリ３５７を含むが、簡潔にするためにコンピューティングシステム３５０について一部の詳細は示されていない。ターゲットシステム３６０および３７０も各々が、サーバコンピューティングシステム３００に関して示されたコンポーネントの一部または全部に類似するコンポーネントを有する１つまたは複数のコンピューティングシステム（図示せず）を含むことができるが、簡潔にするため、この例にはそのようなコンピューティングシステムおよびコンポーネントは示されていない。
【０１２０】
ＣＤＤシステム３４０は、メモリ３３０において実行されており、コンポーネント３４２〜３４６を含み、いくつかの実施形態では、これらのシステムおよび／またはコンポーネントは各々が、様々なソフトウェア命令を含み、これらのソフトウェア命令は、実行されたとき、本明細書の他の箇所に説明されているようにＣＤＤシステムの実施形態を提供するようにＣＰＵプロセッサ３０５のうちの１つまたは複数をプログラムする。ＣＤＤシステム３４０は、ネットワーク３９０を介して（たとえば、インターネットおよび／またはワールドワイドウェブを介して、プライベートセルラーネットワークを介してなど）コンピューティングシステム３５０と、また、この例ではターゲットシステム３６０および３７０と相互作用することができる。この例示的実施形態では、ＣＤＤシステムは、本明細書の他の箇所でより詳細に論じられるように、カスタマまたは他のユーザのために構成された様式で判断モジュールを生成および展開することに関係付けられた機能性を含む。他のコンピューティングシステム３５０も、ＣＤＤシステム３４０および／またはそのコンポーネントとの相互作用の一部として、様々なソフトウェアを実行していることができる。たとえば、クライアントコンピューティングシステム３５０は、（たとえば、ウェブブラウザの一部、専用クライアント側アプリケーションプログラムなどとして）ＣＤＤシステム３４０と相互作用するためにメモリ３５７におけるソフトウェアを実行していることができ、それにより、たとえば、ＣＤＤシステム３４０の１つまたは複数のインターフェース（図示せず）と相互作用して、自動化制御システム（たとえば、バッテリを有する１つまたは複数の物理ターゲットシステムを制御する際に使用するためにＣＤＤシステム３４０によって以前に作成されている記憶された自動化制御システム３２５）または他の判断モジュール３２９を構成および展開し、また、他の箇所でより詳細に論じられるように様々な他のタイプのアクションを行う。ＣＤＤシステム３４０の機能性に関係付けられた様々な情報、たとえば、ＣＤＤシステムのユーザに関係付けられた情報３２１（たとえば、アカウント情報）、および制御されるバッテリを有する１つまたは複数のターゲットシステムに関係付けられた情報３２３が、ストレージ３２０に記憶されることができる。
【０１２１】
したがって、ＣＤＤシステムの生成された判断モジュール、および生成されたＰＶＦ予測モデル（それらのモデルを適用する対応するＰＶＦコンポーネントを含む）が、ターゲットシステム３６０および３７０の一方または両方のような１つまたは複数のターゲットシステムの自動化された動作を制御するように展開されることができる図３には示されていないが、１つまたは複数のターゲットシステムとの生成された判断モジュールおよび／または生成されたＰＶＦ予測モデルのそのような使用からの情報が、さらにＣＤＤシステム３４０および／またはＰＶＦコンポーネント３４５に戻るように提供されることができ、それにより、たとえば、生成された判断モジュール（およびそれらの内部モデル）の改善、ならびに／またはそれぞれのターゲットシステムを制御するための進行中の動作に組み込まれる生成されたＰＶＦ予測モデル（およびそれらのモデルを適用する任意の対応するＰＶＦコンポーネント）の改善を可能にする。たとえば、生成されたＰＶＦ予測モデル（およびそれらのモデルを適用する任意の対応するＰＶＦコンポーネント）に関して、そのような進行中の動作からの情報（たとえば、状態情報、制御信号、他の入力など）が、そのような予測モデルを再トレーニングするために、および／または予測モデルに反映される推定された内部の観測不能な状態情報を改善するために使用されることができ、１つまたは複数のそのような予測モデルの改訂されたバージョンが続いて展開および使用される。
【０１２２】
特定のターゲットシステムのための自動化制御システムを実装することの一部として、協働分散判断（ＣＤＤ）システムの実施形態は、説明されている技法を使用して、特定のターゲットシステムを制御するのに使用するための１つまたは複数のＣＤＩエージェント（ＣＤＤ判断モジュールもしくはシステム、またはそのようなモジュールもしくはシステムの部分とも呼ばれる）を含む、自動化制御システムを構築および実装するのに関与する様々な自動化されたアクティビティを行うことができる。
【０１２３】
具体的には、ＣＤＤシステムは、いくつかの実施形態では、１つまたは複数のユーザと相互作用してターゲットシステムの記述を取得する判断モジュール構築コンポーネントを実装することができ、ターゲットシステムの記述は、ターゲットシステムの様々な要素に関係付けられた制約、およびターゲットシステムの制御中に達成されるべき１つまたは複数の目標を含む。次いで、判断モジュール構築コンポーネントは、様々な自動化されたアクションを行って、ターゲットシステムの制御を行う際に使用するための１つまたは複数の実行可能判断モジュール（「判断要素」および／または「エージェント」と呼ばれることもある）を生成、テスト、および展開する。１つまたは複数の実行可能判断モジュールが展開および実行されると、ＣＤＤシステムは、各判断モジュールが生成する制御アクションを最適化もしくは他の形で向上するための各判断モジュールの制御アクション決定コンポーネント、および／またはターゲットシステムの制御を共同で行っている複数の判断モジュールの制御アクションを調整するための１つもしくは複数の調整制御管理コンポーネントなど、判断モジュールによるターゲットシステムの制御を管理するために実行されている判断モジュールの内部または外部の様々なコンポーネントをさらに提供することができる。
【０１２４】
上記されたように、協働分散判断（ＣＤＤ）システムは、いくつかの実施形態では、指定されたターゲットシステムのための自動化制御システムを構築および実装して、たとえば、ターゲットシステムの動作に影響する（たとえば、ターゲットシステムの１つまたは複数の出力に影響する）ターゲットシステムの入力または他の制御要素を修正または他の形で操作することに関与する、様々な自動化されたアクティビティを行うために、説明されている技法の少なくともいくつかを使用することができる。そのようなターゲットシステムのための自動化制御システムは、いくつかの状況では、ターゲットシステムの協調分散制御を提供する分散されたアーキテクチャを有し、これは、たとえば、ターゲットシステムの部分を各々が制御し互いに対して部分的に分離された様式で動作する複数の判断モジュールを有する。その場合、自動化制御システムのための様々な判断モジュールの動作は、常にすべての判断モジュールの完全に同期された収束が保証または達成されなくても、各々が１つまたは複数の時間において１つまたは複数の他の判断モジュールとのコンセンサスに達することなどによって、少なくとも部分的に同期されることができる。
【０１２５】
ＣＤＤシステムは、いくつかの実施形態では、１つまたは複数のユーザと相互作用してターゲットシステムの記述を取得する判断モジュール構築コンポーネントを実装することができ、ターゲットシステムの記述は、ターゲットシステムの様々な要素に関係付けられた制約、およびターゲットシステムの制御中に達成されるべき１つまたは複数の目標を含む。次いで、判断モジュール構築コンポーネントは、様々な自動化されたアクションを行って、ターゲットシステムの制御を行う際に使用するための１つまたは複数の実行可能判断モジュールを生成、テスト、および展開する。したがって、判断モジュール構築コンポーネントは、生成された判断モジュールがターゲットシステムの制御を行うように実行される、後の実行時段階よりも前に生じる、構成またはセットアップ段階の一部として動作することができ、いくつかの実施形態および状況では、判断モジュール構築コンポーネントは、自動化制御システムのための判断モジュールの追加、除去、または修正などをするために、１つまたは複数の判断モジュールを有する自動化制御システムを改善、拡張、または他の形で修正するために初期展開の後に（たとえば、自動化制御システムが、ターゲットシステムを制御するために使用され続ける間に）さらに使用されることができる。
【０１２６】
いくつかの実施形態では、生成され展開された一部または全部の自動化制御システムは、自動化制御システムの実行時動作中の実行のためにそれらの中に様々なコンポーネントをさらに提供することができ、いくつかの実施形態および状況では、そのようなコンポーネントを判断モジュール内に含めることなどによって提供することができる。そのようなコンポーネントは、たとえば、各判断モジュール（または一部の判断モジュール）の制御アクション決定コンポーネントを含むことができ、これにより、その判断モジュールが生成する制御アクションを最適化または他の形で決定し改善する。たとえば、判断モジュール内のそのような制御アクション決定コンポーネントは、いくつかの実施形態では、１つまたは複数の目標に関して、複数の相互に関係付けられた制約条件を有するターゲットシステムのための判断モジュールのモデルに照らして、最適に近い解を反映するために、特定の時間における判断モジュールの制御アクションを自動的に決定することを試みることができ、その場合、そのような最適に近い解は、完全に最適化された解の閾値量内の部分的に最適化された解に少なくとも部分的に基づくことができる。実行する１つまたは複数の制御アクションのそのような決定は、特定の時間に、１つまたは複数の判断モジュールの各々について発生することができ、また、いくつかの状況において少なくともいくつかの判断モジュールによって進行中の制御に関して複数回にわたって繰り返されることができる。いくつかの実施形態では、判断モジュールのためのモデルは、ターゲットシステムの少なくとも部分を表す制約条件に部分的に基づいて結合された微分方程式のセットを反映するハミルトン関数として実装されて、たとえば、モデルおよびそのハミルトン関数実装が、発展するハミルトン関数内に追加の式を加えることによって複数時間期間にわたって更新されることを可能にする。
【０１２７】
いくつかの実施形態では、自動化制御システムの実行時動作中の実行のために生成および展開された自動化制御システム内に含まれたコンポーネントは、自動化制御システムのためのターゲットシステムの制御を共同で行っている複数の判断モジュールの制御アクションを調整するための調整制御管理コンポーネントをさらに含むことができる。たとえば、いくつかの実施形態では、一部または全部の判断モジュールの各々が、そのような制御アクション決定コンポーネントを含むことにより、その判断モジュールのローカル解および提案された制御アクションを自動化制御システム内の１つまたは複数の他の判断モジュールのそれらと同期しようと試みることができ、たとえば、判断モジュールのローカルモデルおよび１つまたは複数の他の判断モジュールのモデルから同時に解を提供するそれら他の判断モジュールとのコンセンサス共有モデルを決定することによって同期を試みる。そのようなモジュール間同期は、繰り返し発生して、特定の時間において各判断モジュールについての１つまたは複数の制御アクションを決定し、また進行中の制御に関して複数回にわたって繰り返されることができる。加えて、各判断モジュールのモデルは、いくつかの実施形態では、ターゲットシステムの少なくとも部分を表す制約条件に部分的に基づいて結合された微分方程式のセットを反映するハミルトン関数として実装されて、たとえば、各判断モジュールのモデルおよびそのハミルトン関数実装が、判断モジュールのローカルモデルに関する初期ハミルトン関数内に１つまたは複数の他の判断モジュールのモデルに関する追加の式を加えることによって、それらの他の判断モジュールのモデルと組み合わされることを可能にする。
【０１２８】
コンピューティングシステム３００および３５０ならびにターゲットシステム３６０および３７０は例示にすぎず、本発明の範囲を限定することは意図されていないことは理解されよう。むしろ、コンピューティングシステムは各々が、複数の相互作用しているコンピューティングシステムまたはデバイスを含むことができ、コンピューティングシステム／ノードは、インターネットなどの１つもしくは複数のネットワーク、ウェブ、またはプライベートネットワーク（たとえば移動通信ネットワークなど）を介することを含めて、示されていない他のデバイスに接続されることができる。より一般的には、コンピューティングノードまたは他のコンピューティングシステムもしくはデバイスは、相互作用しまた説明されたタイプの機能性を実行することができるハードウェアの任意の組み合わせを含むことができ、そのようなハードウェアは、限定としてではなく、デスクトップまたは他のコンピュータ、データベースサーバ、ネットワークストレージデバイスおよび他のネットワークデバイス、ＰＤＡ、携帯電話、無線電話、ポケットベル、電子手帳、インターネット機器、テレビベースのシステム（たとえば、セットトップボックスおよび／またはパーソナル／デジタルビデオレコーダを使用するもの）、ならびに適切な通信能力を含む様々な他の消費者製品を含む。加えて、示されたＣＤＤシステム３４０およびそのコンポーネントにより提供される機能性は、いくつかの実施形態では、追加のコンポーネントに分散されることができる。同様に、いくつかの実施形態では、ＣＤＤシステム３４０および／もしくはＣＤＤコンポーネント３４２〜３４６の機能性の一部は提供されなくてよく、ならびに／または他の追加の機能が利用可能であってよい。
【０１２９】
また、様々な要素が使用されているときにメモリまたはストレージに記憶されているように示されているが、これらの要素およびその部分は、メモリ管理およびデータ整合性のためにメモリおよび他のストレージデバイスの間で転送されることができる。あるいは、他の実施形態では、ソフトウェアモジュール、コンポーネント、および／またはシステムの一部または全部が、別のデバイス上のメモリにおいて実行され、コンピュータ間通信を介して、示されたコンピューティングシステムと通信することができる。したがって、いくつかの実施形態では、説明されている技法の一部または全部は、１つもしくは複数のソフトウェアプログラム（たとえば、ＰＶＦコンポーネント３４５、ＣＤＤシステム３４０、および／もしくはＣＤＤコンポーネント３４２〜３４６）および／またはデータ構造（たとえば予測モデル３２２）によって、たとえば、１つもしくは複数のソフトウェアプログラムのソフトウェア命令の実行ならびに／またはそのようなソフトウェア命令および／もしくはデータ構造の記憶によって構成されたとき、１つもしくは複数のプロセッサおよび／またはメモリおよび／またはストレージを含むハードウェア手段によって実行されることができる。さらに、いくつかの実施形態では、システム、モジュール、および／またはコンポーネントの一部または全部が、他の様式で、たとえば、ファームウェアおよび／またはハードウェアに少なくとも部分的にまたは完全に実装された手段を使用することによって、実装または提供されることができ、そうしたファームウェアおよび／またはハードウェアは、以下に限定されないが、１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）、標準集積回路、コントローラ（たとえば、適切な命令を実行することによるコントローラ、マイクロコントローラおよび／または組み込みコントローラを含む）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）などを含む。また、コンポーネント、モジュール、システム、およびデータ構造の一部または全部は、非一時的コンピュータ可読記憶媒体、たとえば、ハードディスクもしくはフラッシュドライブもしくは他の不揮発性ストレージデバイス、揮発性もしくは不揮発性メモリ（たとえばＲＡＭ）、ネットワークストレージデバイス、または適切なドライブ（たとえば、ＤＶＤディスク、ＣＤディスク、光ディスクなど）によってもしくは適切な接続を介して読み取られる携帯媒体物品に、（たとえば、ソフトウェア命令または構造化されたデータとして）記憶されることもできる。また、システム、コンポーネント、モジュールおよびデータ構造は、いくつかの実施形態では、無線ベースおよび有線／ケーブルベースの媒体を含む様々なコンピュータ可読伝送媒体上で、生成されたデータ信号として（たとえば、搬送波の一部、または他のアナログもしくはデジタル伝播信号として）送信されることもでき、（たとえば、単一のもしくは多重化されたアナログ信号の一部として、または複数の離散デジタルパケットもしくはフレームとして）様々な形態をとることができる。そのようなコンピュータプログラム製品は、他の実施形態では他の形態をとることもできる。したがって、本発明は他のコンピュータシステム構成で実施されることができる。
【０１３０】
図４は、協働分散判断（ＣＤＤ）システムルーチン４００の例示的実施形態のフロー図である。このルーチンは、たとえば、図３のＣＤＤシステム３４０および／または図１ＡのＣＤＤシステム１４０の実行によって提供されて、たとえば、指定されたターゲットシステムのために自動化制御システムを構築および実装するための機能性を提供することができる。
【０１３１】
ルーチンの示された実施形態はブロック４１０で始まり、ここでは、情報または命令が受け取られる。ブロック４２０において、ブロック４１０の情報または命令が、特定のターゲットシステムのための自動化制御システムの一部として使用するための１つまたは複数の判断モジュールを作成または改訂する標識を含むと決定された場合、ルーチンはブロック４２５へと続き、判断モジュール構築コンポーネントの実行を開始し、ブロック４３０で、ブロック４２５で作成されたターゲットシステムのための１つまたは複数の結果の判断モジュールを取得および記憶する。そのような判断モジュール構築コンポーネントの一例は、図５Ａ〜図５Ｃに関連してより詳細に論じられる。
【０１３２】
ブロック４３０の後、またはそうではなく、ブロック４１０で受け取られた情報もしくは命令が１つもしくは複数の判断モジュールを作成もしくは改訂するものではないとブロック４２０で決定された場合、ルーチンはブロック４４０へと続き、ブロック４１０で受け取られた情報または命令が、指定されたターゲットシステムを制御するために１つまたは複数の作成された判断モジュール、たとえば、そのターゲットシステムのための自動化制御システムの一部である１つまたは複数の判断モジュールを展開することを指示するかどうかを決定する。展開する１つまたは複数の判断モジュールは、展開が実質的に作成と同時に行われるように、ブロック４２５に対して直前に作成されていることが可能であり、または他の状況では、以前に作成され後で使用するために記憶された１つまたは複数の判断モジュールを含むことができる。そのようなターゲットシステムのための１つまたは複数のそのような判断モジュールを展開することが決定された場合、ルーチンはブロック４５０へと続き、たとえば、ターゲットシステムの環境に対してローカルの１つもしくは複数のコンピューティングシステム上で、またはそうではなく、１つもしくは複数の介在コンピューティングネットワークを介してターゲットシステムと通信する１つもしくは複数のリモートコンピューティングシステム（たとえば、ＣＤＤシステムのプロバイダの制御下の１つもしくは複数のコンピューティングシステム）上で、そのターゲットシステムのためのそれら１つまたは複数の判断モジュールの実行を開始する。
【０１３３】
ブロック４５０の後、ルーチンはブロック４６０へと続き、１つまたは複数の集中化された調整制御管理コンポーネントなどを介して、複数の判断モジュールの外部の様式で展開されているそれらの判断モジュールの分散された管理を行うかどうかを決定する。そうする場合、ルーチンはブロック４６５へと続き、それらの判断モジュールと使用するための１つまたは複数のそのような集中化されたＣＤＤ調整制御管理コンポーネントの実行を開始する。ブロック４６５の後、またはそうではなく、外部の様式でそのような分散された管理を行わないとブロック４６０で決定された場合（たとえば、１つだけの判断モジュールが実行される場合、複数の判断モジュールが実行されるが、分散されたピアツーピア様式でそれらの動作を調整する場合など）に、ルーチンはブロック４７０へと続き、任意選択で、１つもしくは複数の判断モジュールの動作および／またはターゲットシステムで発生する結果のアクティビティに関する情報を、後の分析および／または報告などのために、取得および記憶する。
【０１３４】
そうではなく、ブロック４１０で受け取られた情報または命令が１つまたは複数の判断モジュールを展開するものではないとブロック４４０で決定された場合、ルーチンは代わりにブロック４８５に続き、必要に応じて１つまたは複数の他の指示された動作を行う。たとえば、そのような他の許可される動作は、他の様式で（たとえば、ターゲットシステムに関する出力または他の状態情報を監視することによって）ターゲットシステムの動作に関する結果情報を取得すること、判断モジュールの動作の結果および／または対応するターゲットシステムのアクティビティを分析すること、そのような動作および／またはアクティビティに関してユーザに対して報告を生成するまたは他の形で情報を提供することを含むことができる。加えて、いくつかの実施形態では、経時的な特定のターゲットシステムのアクティビティの分析は、ターゲットシステムの動作においてパターンが識別されるのを可能にすることができ、たとえば、それらのパターンを反映しそれらに基づいて応答するために、そのターゲットシステムのモデルが（手動または自動化された学習様式で）相応に修正されることを可能にする。加えて、他の箇所でより詳細に論じられるように、部分的に分離された様式での自動化制御システムのための複数の判断モジュールの分散された動作は、自動化制御システムが動作中に様々な変更が行われることを可能にし、たとえば、１つまたは複数の新しい判断モジュールを追加すること、１つまたは複数の既存の判断モジュールを除去すること、（判断モジュールのモデルの一部であるターゲットシステムを記述するルールまたは他の情報を変更することによって）特定の判断モジュールの動作を修正することなどを可能にする。加えて、自動化制御システムにおける複数のそのような判断モジュールの部分的に分離された性質は、たとえば、ネットワーク通信問題または他の問題が、そうでなければ判断モジュールの個別化された制御アクションが調整されることを可能にする複数の判断モジュール間の通信を防止する場合に、１つまたは複数のそのような判断モジュールが折に触れて独立して動作することを可能にし、そのような状況では、一部または全部のそのような判断モジュールが個別化された様式で動作を続けて、たとえば、最適または最適に近い解が、ターゲットシステムのための自動化制御システムを共同で提供するグループの複数の判断モジュールの間の調整および同期から識別できない場合でも、ターゲットシステムのための有用な続行する制御動作を提供することができる。
【０１３５】
ブロック４７０または４８５の後、ルーチンはブロック４９５へと続き、継続するかどうかを決定し、たとえば停止する明示的標識が受け取られるまで継続する。継続すると決定された場合、ルーチンはブロック４１０に戻り、そうでない場合はブロック４９９に進んで終了する。
【０１３６】
図５Ａ〜図５Ｃは、ＣＤＤ判断モジュール構築ルーチン５００の例示的実施形態のフロー図を示す。ルーチンは、たとえば、図３のコンポーネント３４２および／または図１Ａのコンポーネント１４２に実行によって提供されることができ、たとえば、関心のあるターゲットシステムを記述する情報をユーザが提供することを可能にする機能性を提供し、対応する自動化された動作を行って、指定された様式でターゲットシステムを制御するのに使用するための１つまたは複数の判断モジュールを構築する。ルーチンの示された実施形態は、表示されたＧＵＩ（グラフィカルユーザインターフェース）などを介して特定の様式でユーザと相互作用するが、ルーチンの他の実施形態は、他の様式で、たとえば、ユーザの代わりに実行プログラムが呼び出す定義されたＡＰＩ（アプリケーションプログラミングインターフェース）を介して、ユーザと相互作用することができることは理解されよう。いくつかの実施形態では、ルーチンはさらに、統合された開発環境の一部として、または、たとえば、インターネットなどの公衆ネットワークを介して様々なリモートユーザに利用可能なオンラインインターフェースを実装することによって、１つもしくは複数のユーザが使用できる他のソフトウェアツールとして実装されることもでき、他の実施形態では、ＣＤＤシステムおよび／または特定のＣＤＤコンポーネントのコピーが、たとえば、組織またはグループの制御下でコンピューティングシステム上で実行されることによって、単一の組織または１つもしくは複数のユーザからなる他のグループをサポートするために使用されることができる。加えて、ＣＤＤ判断モジュール構築コンポーネントは、いくつかの実施形態および状況では、ターゲットシステムに関するルールおよび他の記述情報を指定するためにユーザが相互作用するルールエディタコンポーネント、ならびに、ユーザ指定されたルールおよび他の情報を処理して１つまたは複数の対応する判断モジュールを作成するルールコンパイラエンジンなど、複数のサブコンポーネントに分割されることができる。
【０１３７】
ルーチン５００の示された実施形態はブロック５０５で始まり、ここでは、ルーチンは、たとえば、定期的に、図６Ｂのブロック６８４により呼び出されることに基づいて、または１つもしくは複数のトリガー条件が満たされることに応答して、ターゲットシステムのモデルに対するあり得る追加のために新しいソフトルールを学習するためにデータトモグラフ（data tomograph）コンポーネントを現在使用するかどうかを決定する。使用する場合、ルーチンは、図５Ｃのブロック５６３へと続き、そうでない場合はブロック５１０へと続き、ルーチンは、１つまたは複数のユーザへの表示されたユーザインターフェースを、たとえば、ルーチンを実装しているコンポーネントのオンラインバージョンで受け取られた要求を介して、またはそうではなく、１つもしくは複数のそのようなユーザによってそれらが制御するコンピューティングシステム上でルーチンが実行されていることに基づいて、提供または更新する。ルーチンの示された実施形態では、例示の目的で、様々な動作が連続した様式で発生するように示されているが、そのようなユーザインターフェースとのユーザ相互作用は、反復する様式で、ならびに／または複数の時間期間および／もしくはユーザセッションにわたって行うことができ、さらに以下に論じられるように、様々な様式でユーザに以前に表示されたユーザインターフェースを更新すること（たとえば、ユーザアクションを反映する、ルーチンの動作によってもしくは別のコンポーネントから生成されたユーザフィードバックを反映するなど）を含むことは理解されよう。
【０１３８】
ブロック５１０の後、ルーチンはブロック５２０へと続き、制御されるターゲットシステムを記述する１つまたは複数のそのようなユーザからの情報を受け取り、この情報は、１つまたは複数の操作可能な制御要素および任意選択で制御要素が影響する１つまたは複数の出力を含む、ターゲットシステムの複数の要素に関する情報と、要素に関わる制約を指定するルールに関する情報と、システムの制御中に利用可能となる状態情報に関する情報（たとえば、特定の要素の値または他の状態変数）と、ターゲットシステムの制御中に達成すべき１つまたは複数の目標とを含む。そのような情報は、１つまたは複数のユーザから時間の期間にわたって取得されることができ、そうすることは、いくつかの実施形態では、たとえば、異なるユーザの異なる領域の専門知識および／またはターゲットシステムの異なる部分を反映するために、第１のグループの１つまたは複数のユーザが、ターゲットシステムに関係付けられたある種の情報を提供し、１つまたは複数の他の第２のグループのユーザが、ターゲットシステムに関する他の情報を独立して提供することを含むことは理解されよう。
【０１３９】
ブロック５２０の後、ルーチンはブロック５２５へと続き、ユーザ入力で受け取られた任意のエラーを識別し、たとえばブロック５１０に関連して論じられた対応する様式で表示を更新することによって、ユーザにそれらのエラーを訂正するように促す。そのようなエラーの識別はブロック５２０での情報の受け取り後に発生するように示されているが、そうではなく、一部または全部のそのようなエラーは、たとえば、ユーザが指定するルールまたは他の情報における構文エラーを識別するために、ユーザがユーザインターフェースに情報を入力しているときに識別されることができることは理解されよう。ブロック５２５の後、ルーチンの示された実施形態はブロック５３０へと続き、任意選択で、ターゲットシステムに関する情報を、各々がターゲットシステムの部分に対応する複数のサブセットへ分解し、たとえば、各サブセットは、ルーチンによって作成されている自動化制御システムにより操作可能な１つまたは複数の異なる制御要素を有し、任意選択で、ターゲットシステムの各部分を記述するルールおよび他の情報の重複するまたは完全に異なる目標および／またはセットを有する。他の箇所でより詳細に論じられるように、そのような分解は、行われる場合、いくつかの状況において、ユーザが入力する情報の異なるサブグループをユーザが指示することによって手動で、および／または指定されている情報の分析に基づいて（たとえば、ターゲットシステムに関して供給されるルールのサイズおよび他の記述情報に基づく、異なるルールまたは目標または他の情報の間の相互関係に基づくなどして）ルーチンによって自動化された様式で、行われることができる。他の実施形態では、そのような分解は行われなくてよい。
【０１４０】
ブロック５３０の後、ルーチンはブロック５３５へと続き、ターゲットシステム記述情報の各サブセットについて（または、そのようなサブセットが識別されない場合にすべての受け取られた情報について）、そのサブセット（またはすべての情報）を、そのサブセット（またはすべての情報）についての制約、目標、および他の指定された情報を封入する制約条件のセットへ変換する。ブロック５４０では、ルーチンは、次いで、変換プロセスから発生する任意のエラーを識別し、何らかのエラーが識別された場合、ブロック５２５および５１０に関連して説明されたのと同様の様式などで、ユーザにそれらのエラーを訂正するように促すことができる。この例では示されていないが、ルーチンは、いくつかの状況では、ブロック５２５および／または５４０でそのようなエラーが識別された場合にブロック５１０に戻って、対応するフィードバックをユーザへ表示し、ユーザが訂正を行ってブロック５２０〜５４０などの後続の動作を再実行することを可能にすることができる。ブロック５４０において変換プロセスで識別されたエラーは、たとえば、グループとして制約を満たすことが不可能である場合などに、不整合な制約に関連付けられたエラーを含むことができる。
【０１４１】
ブロック５４０の後、ルーチンはブロック５４５へと続き、制約条件の各セット（またはブロック５３０でサブセットが識別されなかった場合は単一の制約条件）について、１つまたは複数の検証ルールを制約条件のセットに適用して、制約条件が表す対応する情報の全体的効果をテストし、ブロック５２５、５４０、および５１０に関する様式と同様の様式で、識別された任意のエラーを訂正するように１つまたは複数のユーザに促す。そのような検証は、他の箇所でより詳細に論じられるように、可制御性、可観測性、安定性、および目標完全性、ならびにユーザにより追加された任意の検証ルールのうちの１つまたは複数をテストすることができる。ブロック５５０では、ルーチンは次いで、制約条件の各検証されたセットを、基礎となる情報が対応するターゲットシステム少なくとも部分をモデル化する結合された微分方程式のセットに変換する。
【０１４２】
ブロック５５０の後、ルーチンはブロック５５３へと続き、結合された微分方程式の各セットについてモデルをトレーニングすることに関係付けられたアクティビティを行い、そうすることは、使用するトレーニング時間窓のサイズ、時間窓内の複数のトレーニング時間スライスのサイズ、および／または時間窓内のトレーニング時間スライスのタイプのうちの１つまたは複数を決定することを含む。いくつかの実施形態および状況では、１つまたは複数のそのようなサイズまたはタイプの情報の決定は、デフォルトまたは予め指定された情報によって行われるが、他の実施形態および状況では、ユーザがそのような情報を指定することができ、または、そのような情報の自動化された決定が、１つもしくは複数の様式で（たとえば、異なるサイズをテストし、結果を評価して最良の性能を伴うサイズを見つけることによって）行われることができる。異なるタイプの時間スライスは、たとえば、重複するまたは重複しない時間スライスの連続を含むことができ、そうすることで、第２の時間スライスに関するトレーニングは、第１の時間スライスの結果のみに（それらが重複しない場合に）依存することができ、またはそうではなく（それらが部分的または全体として重複する場合に）第１の時間スライスの少なくとも部分について既に決定された情報の更新に少なくとも部分的に基づくことができる。ブロック５５３の後、ルーチンはブロック５５５へと続き、モデルを表す結合された微分方程式の各セットについて、ターゲットシステムの部分的初期状態情報を使用してそのセットの結合された微分方程式のモデルをトレーニングし、そうすることは、時間窓にわたって、たとえば時間窓を通して連続する時間スライスにおいて制御アクションを行う効果をシミュレートすることによって、ターゲットシステムについて知られていないおよび／または直接観測可能でない変数の値を推定し、トレーニングされたモデルのシミュレートされた性能をテストすることを含む。トレーニングおよびテストに関係付けられた追加の詳細は、本明細書の他の箇所に含まれる。
【０１４３】
ブロック５５５の後、ルーチンはブロック５６０へと続き、トレーニングおよびテストが成功したかどうかを決定し、成功しない場合はブロック５１０に戻り、対応するフィードバック情報をユーザへ表示し、成功を欠如させたエラーをユーザが訂正することを可能にする。しかしながら、ブロック５６０で、そうではなくテストおよびトレーニングが成功したと決定された場合、またはモデルが１つまたは複数の学習されたソフトルールで更新された図５Ｃのブロック５８１の後、ルーチンは代わりにブロック５８５へと続き、各トレーニングおよびテストされたモデルについて実行可能判断モジュールを生成し、このモジュールは、そのモデル、およびローカルＣＣＤ制御アクション決定コンポーネントを含み、ローカルＣＣＤ制御アクション決定コンポーネントは、実行されたときに、判断モジュールが使用し、モデルに含まれる情報に基づいて、またその判断モジュールについての１つまたは複数の目標に照らして、ターゲットシステムについて行う最適または最適に近い制御アクションを決定する。生成された実行可能判断モジュールは、いくつかの実施形態および状況では、時間経過と共に様々な判断モジュールの各モデルを同期させることなどによって、ターゲットシステムのための自動化制御システムを共同で提供する複数の判断モジュールの制御アクションを調整するためのローカルＣＣＤ調整制御管理コンポーネントをさらに含むことができる。ブロック５８５の後、ルーチンはブロック５９０へと続き、使用のために生成された実行可能判断モジュールを提供し、そうすることは、任意選択で、後での実行および／または展開のためにそれらを記憶することを含む。
【０１４４】
ブロック５０５で、ターゲットシステムのモデルに対するあり得る追加のために新しいソフトルールを学習するためにデータトモグラフコンポーネントを使用すると決定された場合、ルーチンは図５Ｃのブロック５６３へと続き、ターゲットシステムについての１つまたは複数の既存の生成されたモデル（たとえば、バイナリルールに基づく初期モデル）が取得される。ブロック５６５では、ルーチンは次いで、時間経過と共に（たとえば、１つまたは複数の既存の生成されたモデルによって制御される）ターゲットシステムの動作から実際の動作データを収集し、たとえば、以前に生成され記憶されたデータをストレージから取り出すこと、指定された量のデータが利用可能になるまで続くデータ収集段階に入ることなどを行う。ブロックの後５６５、ルーチンはブロック５６７へと続き、データトモグラフコンポーネントを使用して、収集されたデータからのデータモデルを繰り返し問い合わせて、達成すべき指定された目標に対応するターゲットシステムの１つまたは複数の出力などに関して、１つまたは複数のセンサおよび／または制御部に対する変化する状況および値のもとでターゲットシステムの性能に関する回答を取得する。５６９ブロックでは、ルーチンは次いで、たとえば全体的ハミルトン関数を構築するために、問い合わせ／回答ペアに基づいてシステムに関する全体的データモデルを作成する。ブロックでは５７１、ルーチンは次いで、システムについてのルールベースのモデル（たとえば、ルールベースのハミルトン関数）を取得し、差異を識別するために全体的モデルとルールベースのモデルを比較し、これらを使用して、問い合わせに関係付けられたゼロ以上のあり得るソフトルールを作成する。
【０１４５】
ブロックでは５７３、ルーチンは次いで、たとえば、ブロック５６５から５７１の実行が、あり得るソフトルールに関して新しい情報を作成することを続けるかどうかに基づいて、各そのようなあり得るソフトルールに対する関連付けられた完全性値（completeness value）を決定する。そのようなあり得るソフトルールが十分に完全でない（たとえば、関連付けられた閾値を下回る完全性値を有する）場合、ルーチンはブロック５６７に戻り、追加の問い合わせを行いそうでない場合は、ブロック５７７へと続き、ターゲットシステムの改善された更新されたモデルで使用するために候補として十分に完全なあり得るソフトルールのいずれかを選択する。ブロック５７９では、ルーチンは次いで、既存モデルを自動的に更新するかどうかを決定し、更新する場合、ブロック８５１へと続き、学習された候補ソフトルールを使用し、既存のルールベースのモデルを更新し、その後にブロック５８５へと続く。そうでない場合は、ルーチンはブロック５８３へと続き、既存のモデルおよび／またはターゲットシステムに関連付けられた１つまたは複数のユーザに対して、学習された候補ソフトルールに関する情報を提供して、たとえば、ユーザがそれらを使用して既存のルールベースのモデルを更新するかどうかを可能にし、その後、ブロック５０５へと進む（たとえば、ブロック５２０に関連してそのような更新についてユーザからさらなる命令を受け取る）。
【０１４６】
ブロック５９０の後、ルーチンはブロック５９５へと続き、継続するかどうかを決定し、たとえば停止する明示的標識が受け取られるまで継続する。継続すると決定された場合、ルーチンはブロック５１０に戻り、そうでない場合はブロック５９９に進んで終了する。
【０１４７】
図６Ａ〜図６Ｂは、実行されている判断モジュールの一般的表現に対応するルーチン６００の例示的実施形態のフロー図を示す。ルーチンは、たとえば、判断モジュール３２９の実行によって、または図３の自動化制御システム３２５および／もしくは図１Ａもしくは図１Ｂの判断モジュール１２４もしくは１２８の一部として提供されることができ、たとえば、判断モジュールについて符号化された情報またはモデルに固有の様式でターゲットシステムの少なくとも部分を制御するための機能性を提供し、そうすることは、判断モジュールによってその制御アクティビティ中に達成されるべき１つまたは複数の目標を反映することを含む。他の箇所でより詳細に論じられるように、いくつかの実施形態および状況では、複数の判断モジュールは、特定のターゲットシステムを制御するために共同で協調的に動作することができ、たとえば、各判断モジュールは、ターゲットシステムのための１つまたは複数の異なる制御要素を制御し、または他の形式でターゲットシステムの部分を表しもしくはそれと相互作用し、他の実施形態および状況では、単一の判断モジュールがターゲットシステムを制御するように単独で動作することができる。ルーチン６００はさらに、特定の例示的判断モジュールによって実行されるアクションを、ターゲットシステムの部分を制御する際にそれが展開されたときに反映するが、判断モジュールの少なくとも部分の実行は、他の時間に行うことができ、図５Ａ〜図５ＣのＣＤＤ判断モジュール構築ルーチン５００に関連してより詳細に論じられるように、たとえば、判断モジュールが展開される前に判断モジュールに関するモデルを初めにトレーニングする。
【０１４８】
ルーチン６００の示された実施形態はブロック６１０で始まり、ここでは、判断モジュールに関する初期モデルが決定され、初期モデルは、制御されるターゲットシステムの少なくとも部分、ターゲットシステムの制御に関係付けられた達成を試みる判断モジュールの１つまたは複数の目標、および任意選択でターゲットシステムの初期状態情報を記述する。ルーチンはブロック６１５へと続き、図５Ａ〜図５Ｃのブロック５５３および５５５に関連してより詳細に論じられるように、必要に応じて初期モデルをトレーニングするための１つまたは複数のアクションを行うが、いくつかの実施形態および状況では、ブロック６１５のそのようなトレーニングは、図５Ａ〜図５Ｃのルーチン５００によって初期トレーニングがされない場合のみに行われ、他の実施形態および状況では、ブロック６１５のトレーニングは、判断モジュールが実行を開始したときに（たとえば、初期作成およびトレーニングの後に直ちに展開されない場合に）ターゲットシステムの現在の状態に関する情報を捕捉し、および／またはブロック６３０で開始される図７Ａ〜図７Ｂのルーチン７００に関連してより詳細に論じられるように折に触れてモデルを再トレーニングするために行われる。
【０１４９】
ブロックの後６１５、ルーチンはブロック６１７へと続き、判断モジュールの各制御アクション判断を行うために使用する時間期間を決定し、たとえば、ターゲットシステムにおける制御要素修正が必要とされる率を反映し、および／または制御要素の将来の操作を変更できる新しく来る状態情報が受け取られる率を反映する。次いで、ルーチンはブロック６２０へと続き、次の時間期間を開始し、これは、判断モジュールの実行の始動から前進する第１の時間期間から始まる。次いで、ブロック６２０〜６８０が、判断モジュールの実行が中断または終了されるまで、そのような各時間期間が進むループで実行されるが、他の実施形態では、特定の判断モジュールが、その各実行の際には単一の時間期間のみで実行されることができる。
【０１５０】
ブロック６２５では、ルーチンは、任意選択で、時間期間における状態情報を取得し、状態情報は、たとえば、最終の時間期間が始まってからターゲットシステムまたは１つもしくは複数の関係付けられた外部ソースに関して受け取られた、および／または必要に応じてターゲットシステムの１つもしくは複数の要素の現在の値または対応する変数を能動的に取り出すことによって受け取られた現在の状態情報である。ブロック６２７では、ルーチンは次いで、任意選択で、ターゲットシステムの１つまたは複数のパラメータに関する時間期間についての予測情報を取得し、たとえば、１つもしくは複数の予測モデルがそのような予測情報を動的に提供するために利用可能である場合、または時間期間についてそのような情報を以前に予測している場合に、そのような情報を取得する。ブロック６３０では、ルーチンは次いで、判断モジュールのローカルＣＣＤ制御アクション決定コンポーネントの実行を開始し、そのようなルーチンの一例は、図７Ａ〜図７Ｂのルーチン７００に関連してより詳細に論じられ、ブロック６２５および／または６２７で取得された情報を（もしあれば）提供することを含む。ブロックでは６３５、ブロック６３０におけるコンポーネントの実行の結果が受け取られ、そうすることは、現在の時間期間について判断モジュールが行うことができる１つまたは複数の提案された制御アクション決定を含む現在の時間期間および判断モジュールについてのローカル解を有する判断モジュールの更新されたモデルを取得するか、または、ブロック６３０におけるコンポーネントの実行の許容された時間において判断モジュールについてローカル解が見つけられなかったという標識を受け取ることを含む。次いでブロック６４０で、解が見つけられたかどうかが決定され、見つけられた場合、ブロック６４２へと続いて、判断モジュールの更新されたモデルを記憶し、そうでない場合、ブロック６４３へと続き、判断モジュールの先行モデルを使用して、図７Ａ〜図７Ｂのルーチン７００に関連してより詳細に論じられるように、以前のモデル（たとえば、状態情報の最近の変化および／または他の判断モジュールのアクティビティの最近の変化をあったとしても反映していない）に基づいて、現在の時間期間について提案された１つまたは複数の制御アクション決定を決定する。
【０１５１】
ブロック６４２または６４３の後、ルーチンはブロック６４４へと続き、ローカル判断モジュールと同じ自動化制御システムの一部のような現在のターゲットシステムの部分を他の判断モジュールが共同で制御しているかどうかを決定し、そうしている場合はブロック６４５へと続く。そうでない場合は、ルーチンは、実行する最終の決定された制御アクションとして判断モジュールのローカルの提案された制御アクションを選択し、ブロック６７５へと続いて、現在の時間期間にそれらの制御アクションを実装する。
【０１５２】
他の動作している判断モジュールがある場合、ブロック６４５においてルーチンは、判断モジュールのローカル解の提案された制御アクション決定を、同じターゲットシステムを共同で制御している他の判断モジュールのアクティビティと同期する際に使用するための、ＣＤＤ調整制御管理（ＣＣＭ）コンポーネントのローカルコピーを、ローカル判断モジュールが含むかどうかを決定する。含む場合、ルーチンはブロック６４７へと続き、判断モジュールの１つまたは複数の提案された制御アクション決定と、判断モジュールの対応する現在のローカルモデルとを、ローカルＣＤＤ  ＣＣＭコンポーネントに提供し、そうでない場合、ブロック６４９へと続いて、判断モジュールの１つまたは複数の提案された制御アクション決定と、判断モジュールの対応するローカルモデルとを、１つまたは複数の集中化されたＣＤＤ  ＣＣＭコンポーネントに提供する。
【０１５３】
ブロック６４７または６４９の後、ルーチンはブロック６５５へと続き、ブロック６４７または６４９におけるＣＤＤ  ＣＣＭコンポーネントのアクションの結果を取得し、そうすることは、さらに更新されたモデルが現在の判断モジュールに関する時間期間に行う１つまたは複数の最終制御アクション決定を示すように、現在の判断モジュールのローカルモデルと１つまたは複数の他の判断モジュールからの情報との同期によりもたらされる、さらに更新されたモデルを取得すること、または、そのような同期が許容された時間内に完成されなかったという標識を取得することのいずれかを含む。ルーチンはブロック６６０へと続き、同期が完成されたかどうかを決定し、完成された場合、ブロック６６５へと続いて、同期によるさらに更新されたモデルを記憶し、そうでない場合、ブロック６７０へと続き、時間期間についての最終制御アクション決定として、判断モジュールに対してローカルに先行の提案された制御アクション決定を使用する。
【０１５４】
ブロック６６５または６７０の後、ルーチンはブロック６７５へと続き、たとえば、値を修正するもしく他の形でターゲットシステムの１つもしくは複数の制御要素を操作するターゲットにおける１つもしくは複数のイフェクチュエータ（effectuator）と相互作用することによって、または他の形でそのような修正もしくは他の操作を生じさせるようにターゲットシステムに入力を提供することによって、ターゲットシステムに判断モジュールの１つまたは複数の最終の決定された制御アクションを実装する。ブロック６８０では、ルーチンは任意選択で、行われた制御アクションのターゲットシステムにおける結果に関する情報を取得し、そのような取得された結果に関する、および／または現在の時間期間の判断モジュールのアクティビティに関する情報を、ＣＤＤシステムに記憶および／または提供する。ルーチンはさらに任意選択で、そのような情報、およびブロック６２５で取得された対応する状態情報を、予測モデルのさらなる動作を改善するのに使用するために、（もしあれば）判断モジュールと共に使用される１つまたは複数の予測モデル、たとえば、ブロック６２７で予測情報を提供する１つまたは複数の予測モデルに提供することができ、他の実施形態では、任意のそのような予測モデルおよび／または関連付けられたＰＶＦモジュールが、代わりに、ＣＤＤシステムにより記憶された情報を取り出すことなどによって他の様式でそのような情報を取得することができる。ブロック６８０の後、ルーチンはブロック６８２へと続き、学習されたソフトルールに基づいて可能な構造モデル適合更新を行うかどうかを決定し、これは、たとえば、定期的に、ブロック６４０に関連して解が見つけられたかどうかに基づいて、ブロック６６０に関連して同期が行われたかどうかに基づいて、または他に基づいて決定する。行う場合、ルーチンはブロック６８４へと続き、ブロック５６３〜５８３におけるデータトモグラフコンポーネントに関連するＣＤＤ判断モジュール構築コンポーネントの動作を開始して、たとえば、モデルの更新されたバージョンおよび／または対応する判断モジュールを伴って戻る。
【０１５５】
ブロックの後６８４、または学習されたソフトルールに基づいて可能な構造モデル適合更新を行わないとブロック６８２で決定された場合、ルーチンはブロック６９５へと続き、（たとえば、ターゲットシステムの現在の動作の終了、またはターゲットシステムの少なくとも部分を制御するための判断モジュールの使用の終了を反映するために）継続するかどうかを決定し、たとえば停止または中断する標識が受け取られるまで継続する。継続すると決定された場合、ルーチンはブロック６２０に戻り、次の時間期間を開始し、そうでない場合はブロック６９９に進んで終了する。
【０１５６】
図７Ａ〜図７Ｂは、ＣＤＤ制御アクション決定ルーチン７００の例示的実施形態のフロー図である。ルーチンは、たとえば、図３のコンポーネント３４４および／または図２のコンポーネント１４４ａ〜ｎもしくは１８４の実行によって提供されて、たとえば、特定の時間期間中にターゲットシステムに関して提案および／または実装する判断モジュールについての制御アクションを決定することができ、いくつかの実施形態では、そうすることは、可能な場合に１つまたは複数の目標に関して行う最適に近い（たとえば、最適解の閾値内の）アクションを決定するために最適化を行うことを含む。ルーチンの示された実施形態は、特定の判断モジュールにローカルな様式で実行され、したがって、一部または全部の判断モジュールは各々がそのようなルーチンのローカルバージョンを実装することができるが、他の実施形態では、ルーチンは、１つまたは複数の判断モジュールが１つまたは複数のネットワークを介して相互作用する１つまたは複数のコンポーネントによって、集中化された様式で実装されてよく、たとえば、特定の判断モジュールが、ローカル判断モジュールの代わりに動作するのではなく、特定の時間に使用されるように指示される。
【０１５７】
ルーチンの示された実施形態７００はブロック７０３で始まり、ここでは、情報または要求が受け取られる。ルーチンはブロック７０５へと続き、情報または要求のタイプを決定し、それに応じて進行する。具体的には、ローカル判断モジュールの現在のモデルが与えられたとして現在の時間期間についての解を決定することを試みる要求が、ブロック７０３で受け取られた場合、ルーチンはブロック７１０へと続き、ブロック７１０〜７９０に関連してより詳細に論じられるようなアクティビティの実行を始める。そうではなく、ブロック７６０および７６５に関連してより詳細に論じられるように、ローカル判断モジュールの現在のモデルについて１つまたは複数のルールまたは他の制約を緩和する要求が受け取られたと、ブロック７０５で決定された場合、ルーチンはブロック７６５へと続く。ブロック７７５および７８０に関連してより詳細に論じられるように、ローカル判断モジュールの現在のモデルに対する１つまたは複数のルールまたは他の制約を修復する要求が受け取られたと、ブロック７０５で決定された場合、ルーチンはブロック７８０へと続き、（たとえば、ＣＤＤ判断モジュール構築コンポーネントと相互作用するため、またはそうではなく別の様式で１つもしくは複数のユーザと相互作用するために）ルール修復プロセス中に使用するユーザ入力を取得して、たとえば、ローカル判断モジュールの現在のモデルが、さらに結果のユーザアクションに基づいて後で更新および置換されることを可能にし、または任意選択で、ターゲットシステムの動作が中断できる場合に、そのような更新されたモデルが受け取られるまでルーチン７００をさらに実行するのを待つ。そうではなく、情報または要求が別のタイプであるとブロック７０５で決定された場合、ルーチンは代わりにブロック７０８へと続き、適宜に１つまたは複数の他の指示された動作を行い、次いでブロック７９９に進む。そのような他の指示された動作は、たとえば、ローカル判断モジュールと共にターゲットシステムを共同で制御している１つまたは複数の他の判断モジュールによって提案または実行される現在のモデルおよび／または制御アクションに関する情報（たとえば、図８Ａ〜図８Ｂのルーチン８００に関連してより詳細に論じられるように、コンセンサスまたは収束された共有モデルを生成することによって、そのような他の判断モジュールとローカル判断モジュールのモデルを同期する際に使用する）を受け取ること、ルーチン７００の進行中の動作に使用するためのモデルまたはモデルの基礎となる情報に対する更新を（たとえば、ＣＤＤ判断モジュール構築コンポーネントから、たとえば、ブロック７８０で行われた相互作用の結果を）受け取ること、図６Ａ〜図６Ｂのルーチン６００で論じられたように使用するためなどに、ターゲットシステムの現在の状態情報を受け取ることなどを含むことができる。
【０１５８】
現在の時間期間についてローカル判断モジュールの現在のモデルに基づいて解の要求がブロック７０３で受け取られたとブロック７０５で決定された場合、ルーチンはブロック７１０へと続き、ターゲットシステムの少なくとも部分のローカル判断モジュールの現在のモデルを表す結合された微分方程式の現在のセットを、任意選択で現在の時間についてのターゲットシステムの追加の状態情報および／または現在の時間についてのターゲットシステムの予測パラメータ情報と共に、受け取る。ルーチンは次いで、ブロック７１５へと続き、ブロック７５５、７７０、および７３０に関連してより詳細に論じられるように、たとえば、対応する判断モジュールの初期実行の際に初めて呼び出される場合、または進行中の動作からのエラー測定が再トレーニングの必要を指示する場合に、モデルをトレーニングまたは再トレーニングするかどうかを決定する。トレーニングまたは再トレーニングすると決定された場合、ルーチンはブロック７２０へと続き、たとえば図５Ａ〜図５Ｃのルーチン５００のブロック５５３に関連して先に論じられたのと同様の様式で、トレーニング時間窓のサイズ、時間窓内のトレーニング時間スライスのサイズ、および／またはトレーニング時間窓内のトレーニング時間スライスのタイプのうちの１つまたは複数を決定する。ブロック７２０の後、ルーチンはブロック７２５へと続き、ターゲットシステムの部分的初期状態情報を使用してモデルをトレーニングし、そうすることは、図５Ａ〜図５Ｃのルーチン５００のブロック５５５に関連してより詳細に論じられるように、時間スライスの各々について時間窓にわたって制御アクションを行う効果をシミュレートすることによって、知られていないおよび／または直接観測可能でないターゲットシステムについての状態変数の値を推定することを含む。
【０１５９】
ブロック７２５の後、またはそうではなくモデルをトレーニングもしくは再トレーニングしないとブロック７１５で決定された場合、ルーチンはブロック７３０へと続き、区分線形解析を行って、ブロック７１０で取得された現在のモデルおよび任意の追加の状態情報の解を決定するように試み、解は（決定された場合、）現在の時間期間に行うべきローカル判断モジュールについての１つまたは複数の提案された制御アクション決定を含み、また、いくつかの実施形態では、他の箇所でより詳細に論じられるように、１つまたは複数のモデルエラーゲージを使用して、現在のモードに関して１つまたは複数のエラー測定を行う。ルーチンは次いでブロック７３５へと続き、ブロック７３０の動作に許容された量の時間（たとえば、現在の時間期間の定義されたサブセットまたは割合）内でブロック７３０の動作が解を決定したかどうかを決定し、解を決定した場合、ブロック７４０へと続き、解を反映するように、結合された微分方程式の現在のセット、およびローカル判断モジュールの結果の現在のモデルを更新し、結果の更新された情報はルーチン７００の出力として提供される。
【０１６０】
そうではなく、ブロック７３０の動作が解を決定しなかったとブロック７３５で決定された場合、ルーチンはブロック７４５へと続き、解を決定するさらなる試みのために追加の時間が現在の時間期間内で利用可能であるかどうかを決定し、利用可能でない場合、ブロック７９０へと続いて、現在の時間期間について解が決定されなかったことを指示するルーチン７００の出力を提供する。
【０１６１】
他方、現在の時間期間内で追加の時間が利用可能である場合、ルーチンは続いてブロック７５５〜７８０を実行して、解を識別するための１つまたは複数のさらなる試みを行う。さらなる解決定の試みを続けるために充分な時間が利用可能である場合、ブロック７５５〜７８０の動作のうちの１つまたは複数が、与えられた時間期間において複数回繰り返し実行されることができることは理解されよう。具体的には、ルーチンは、追加の時間が利用可能であるとブロック７４５で決定された場合にブロック７５５へと続き、ここでは、それは、ブロック７３０に関連して論じられたゲージからのモデルエラー測定値などに基づいて、モデルに対する修正が必要とされることを指示する１つまたは複数の閾値を超えるモデルエラー測定値を、１つまたは複数のゲージからの測定値が指示するかどうかを決定する。指示した場合、ルーチンはブロック７６０へと続き、（これが、現在の時間期間においてルートのこの部分の最初の通過ではない場合、時間期間中に以前に緩和されることが試みられていない）現在の時間期間について緩和されるべく利用可能な現在のモデルにおける１つまたは複数のルールまたは他の制約が存在するかどうかを決定し、存在する場合、ブロック７６５へと続き、１つまたは複数のそのようなルールまたは他の制約を緩和し、ブロック７３０に戻って、それらの緩和されたルールまたは他の制約に基づいて、改訂されたモデルを用いて区分線形解析を再試行する。
【０１６２】
そうではなく、ゲージの１つまたは複数からのモデルエラー測定値が１つまたは複数の対応する閾値を満たすのに充分であるとブロック７５５で決定された場合、ルーチンは代わりにブロック７７０へと続き、そうするのに充分なエラーを指示するゲージの１つまたは複数に基づいて、たとえばモデルに対する更新の１つまたは複数の時間期間にわたる蓄積されたエラーに基づいて、モデルを再トレーニングするかどうかを決定する。再トレーニングする場合、ルーチンはブロック７２０に戻って、ブロック７２０および７２５でそのような再トレーニングを行い、次いでブロック７３９へと続いて、結果の再トレーニングされたモデルを用いて区間線形解析を再試行する。
【０１６３】
そうではなく、モデルを再トレーニングしないとブロック７７０で決定された場合（または、モデルが、現在の時間期間において既に再トレーニングされてブロック７３０の結果の再試行が解を見つけるのに再び失敗した場合）、ルーチンはブロック７７５へと続き、ゲージの１つまたは複数からのモデルエラー測定値が、修復される必要があるエラーを潜在的に有するモデルにおける１つまたは複数のルールまたは他の制約のサブセットを指示するかどうかを決定する。指示した場合、ルーチンはブロック７８０へと続き、ＣＤＤ判断モジュール構築コンポーネントを介して１つまたは複数のユーザへ情報を提供して、ユーザが適宜にルールまたは他の制約を改訂することを可能にするが、他の実施形態では、そうではなく、一部または全部のそのようなルール修復アクティビティが、自動化された様式で試みられまたは行われる。ブロック７８０の後、またはそうではなく、どのルールも修復しないとブロック７７５で決定された場合、ルーチンはブロック７９０へと続き、現在の時間期間において解が決定されなかったという標識を提供する。ブロック７４０、７０８、または７９０の後、ルーチンはブロック７９９に進んで終了する。そうではなく、ルーチン７００が、ルーチンのための実行コンポーネントに対してリモートの１つまたは複数の判断モジュールをサポートする集中化されたルーチンとして実装された場合、ルーチン７００は代わりにブロック７０３に戻って、さらなる情報または要求を待つことは理解されよう。
【０１６４】
図８Ａ〜図８Ｂは、ＣＤＤ調整制御管理ルーチン８００の例示的実施形態のフロー図である。ルーチンは、たとえば、図３のコンポーネント３４６および／または図１Ｂのコンポーネント１４６ａ〜ｎの実行によって提供されて、たとえば、ターゲットシステムを共同で制御している複数の判断モジュールの間で現在のモデルおよびそれらの提案された制御アクションを同期しようと試みることができる。ルーチンの示された実施形態では、同期は、可能な場合にコンセンサス共有モデルで表されるパレート均衡を決定するパレートゲーム技法を使用して、１つまたは複数の他の判断モジュールの現在の状態に関する情報に基づく、特定のローカル判断モジュールに関する中間共有モデルと、その特定のローカル判断モジュールのローカルの現在のモデルとの間の対の様式で行われるが、他の実施形態では、他のタイプの同期方法が使用されることができる。加えて、示された実施形態では、ルーチン８００は、特定のローカル判断モジュールについてローカルな様式で行われ、たとえば、そのローカル判断モジュール内に含まれることによって行われるが、他の実施形態では、ルーチン８００は、１つまたは複数の判断モジュールであって、そのルーチンのためのコンポーネントを実装するコンピューティングシステムからリモートであり、１つまたは複数のネットワークを介してそれらの判断モジュールと通信する、１つまたは複数の判断モジュールをサポートするように集中化された様式で実装されることができ、たとえば、特定の判断モジュールが、ローカル判断モジュールの代わりに動作するのではなく、特定の時間に使用されるように指示される。
【０１６５】
ルーチン８００の示された実施形態は、ブロック８０５で始まり、ここでは、それが情報または別の標識を受け取るのを待つ。ルーチンはブロック８１０へと続き、別の判断モジュールに関するコンセンサスモデルまたは他の更新された情報が受け取られたかどうかを、たとえばこの別の判断モジュールのために実行されるルーチン８００のコピーから、決定し、受け取られた場合、ブロック８１５へと続き、ブロック８３０に関連してより詳細に論じられるように、ルーチン８００の現在のコピーが代わりに実行されているローカル判断モジュールと共に使用するためのローカル中間共有モデル情報を、改訂された情報を使用して更新する。そうではなく、ブロック８０５で受け取られた情報または要求が１つもしくは複数の他の判断モジュールに関係付けられた情報でないとブロック８１０で決定された場合、またはブロック８１５の後で、ルーチンはブロック８２０へと続き、１つまたは複数の他の判断モジュールについての情報を含むローカル判断モジュールの中間共有モデルに関する情報を使用することによって、ローカル判断モジュールの現在のローカルモデルについての同期を現在行うかどうかを決定し、たとえば、ブロック８０５で（たとえば、その判断モジュールに対してローカルなＣＤＤ制御アクション決定コンポーネントのコピーについてのルーチン７００の動作に基づいて）ローカル判断モジュールのモデルに対する更新が受け取られるたびに、および／または、ローカル判断モジュールの中間共有モデルを更新する情報がブロック８０５で受け取られブロック８１５で使用され、もしくは代わりにブロック８０５で明示的に指示されるたびに、そのような同期を行う。同期が現在実行されるべき場合、ルーチンはブロック８２５へと続き、そのような同期アクティビティに関係付けられたブロック８２０〜８８０の実行を始める。そうでない場合は、ルーチンはブロック８８５へと続き、適宜に１つまたは複数の他の指示された動作を行って、たとえば、ルーチン８００の動作に関する現在の情報を求めるＣＤＤシステムもしくは他の要求元からの要求を受け取り、および／または（たとえば、先行の要求を反映するために）対応する情報を１つまたは複数のエンティティに提供する。
【０１６６】
ブロック８０５で受け取られた更新されたモデルに関係付けられた情報などに基づいて、同期が現在行われるべきとブロック８２０で決定された場合、ルーチンはブロック８２５へと続き、同期の際に使用するローカル判断モジュールについての現在のローカルモデルを取得し、このモデルは、ローカル判断モジュールに関するローカル解に基づく現在の時間期間において行う１つまたは複数の提案された制御アクションを含む。ルーチンは次いで、ブロック８３０へと続き、ターゲットシステムの制御に共同して参加している１つまたは複数の他の判断モジュール（たとえば、すべての他の判断モジュール）についての情報を表すローカル判断モジュールの中間共有モデルについての情報を取り出し、その中間共有モデルは、それらの１つまたは複数の他の判断モジュールのローカル解によりもたらされる１つまたは複数の他の提案された制御アクションを同様に表し、任意選択で、部分的または完全な同期がそれらの１つまたは複数の他の判断モジュールについてそれら自体の間で行われた後に取り出しをする。
【０１６７】
ルーチンは次いで、ブロック８３５へと続き、ローカル判断モジュールの現在のモデルと中間共有モデルとの両方に解を同時に提供することによって、ローカル判断モジュールの現在のモデルと中間共有モデルとを同期するコンセンサス共有モデルを決定しようと試みる。いくつかの実施形態では、ブロック８３５の動作は、ローカルモデルと中間共有モデルが組み合わされて、１つまたは複数の解が識別されるべき組み合わせモデルを作成する場合などに、図７Ａ〜図７Ｂのルーチン７００のブロック７１０〜７３０に関連して論じられたのと同様の様式で行われる。他の箇所でより詳細に論じられるように、いくつかの実施形態では、ローカルな現在のモデルおよび中間共有モデルは各々が、ハミルトン関数によって表され、それぞれのハミルトン関数について加法様式でそのような組み合わされたモデルの簡単な作成を可能にし、図６Ａ〜図６Ｂおよび図７Ａ〜図７Ｂのルーチン６００および／または７００の動作はそれぞれ、そのようなハミルトン関数を使用してそれらが更新および他の形で操作するモデルを同様に表す。
【０１６８】
ブロック８３５の後、ルーチンはブロック８４０へと続き、同期が行われるように試みられる現在の時間期間の断片または他の部分などの許容される時間の量においてブロック８３５の動作が成功したかどうかを決定し、成功した場合、ルーチンはブロック８４５へと続き、コンセンサス共有モデルを反映するようにローカル判断モジュールのローカルモデルおよび中間共有モデルの両方を更新する。前述されたように、集合的グループの１つまたは複数の他の判断モジュールを表す中間共有モデルを変更すると共に、各判断モジュールがコンセンサス共有モデルを繰り返し決定するために充分な時間が許容される場合、集合的グループの判断モジュールは、最終的に単一の収束された共有モデルに収束することができるが、他の実施形態および状況では、そのような収束が生じるのに充分な時間が存在しないことがあり、または他の問題がそのような収束を妨げることがある。ブロック８４５の後、ルーチンはブロック８５０へと続き、任意選択で、ローカル判断モジュールについて決定されたコンセンサス共有モデル（および／または、８３５の動作が収束された共有モデルを作成する最後のステップであった場合のそのような収束された共有モデル）を他の判断モジュールに通知し、たとえば、通知される判断モジュールがルーチン８００のそれ自体のローカルバージョンを実装しており、提供される情報は、現在のローカル判断モジュールの新しく構築されたコンセンサス共有モデルからの情報を含むそれら他の判断モジュールの中間共有モデルの一部として使用される場合に、そのように通知する。
【０１６９】
そうではなく、許容された時間内で同期が発生しなかったとブロック８４０で決定された場合、ルーチンは続いてブロック８６０〜８７５を実行して、図７Ａ〜図７Ｂのルーチン７００のブロック７４５〜７８０に関連して論じられたのと同様の様式で、１つまたは複数の修正との同期を再試行し、充分な時間が利用可能である場合は繰り返し再試行することがある。示された例では、ルーチンは、同期の１つまたは複数のそのような再試行に追加の時間が利用可能であるかどうかをブロック８６０で決定し、利用可能でない場合、ルーチンはブロック８８０へと続き、許容された時間内で同期が行われなかったという標識を提供する。さもなければ、ルーチンはブロック８７０へと続き、ローカル判断モジュールの現在のモデルおよび／またはローカル判断モジュールの中間共有モデルでその情報が表される１つもしくは複数の他のモジュールの一方または両方に関して、ルールもしくは他の制約を緩和すること、ルールもしくは他の制約を修復すること、および／またはモデルを再トレーニングすることのうちの１つまたは複数を実行するために１つまたは複数のアクションを行う。このように進行するとブロック８７０で決定された場合、ルーチンはブロック８７５へと続き、往々にしてルーチン７００に関連して論じられたのと同様の様式で１つずつ、対応するアクションを行い、そうすることは、ローカル判断モジュールの現在のモデルおよび／またはローカル判断モジュールのローカル中間共有モデルに対して結果の更新を生じることを含み、その後、ルーチンはブロック８３５に戻って、ローカル判断モジュールのローカルモデルと中間共有モデルの同期を再試行する。
【０１７０】
そうではなく、緩和、修復、および／または再トレーニングに関してさらなるアクションが行われないとブロック８７０で決定された場合、ルーチンは代わりにブロック８８０へと続く。ブロック８５０、８８０、または８８５の後、ルーチンはブロック８９５へと続き、継続するかどうかを決定し、たとえばルーチン８００の動作を停止または中断する明示的標識が受け取られるまで継続し、たとえば、ターゲットシステムの動作の終了、ならびに／またはターゲットシステムを制御するためのローカル判断モジュールおよび／もしくは複数の判断モジュールの集合的グループの使用の終了を反映するようにする。継続すると決定された場合、ルーチンは８０５に戻り、そうでない場合はブロック８９９に進んで終了する。
【０１７１】
図９は、ターゲットシステムとターゲットシステムの少なくとも部分を制御している１つまたは複数の判断モジュールとの間の相互作用に関して、代表的な一般的ターゲットシステムについて実行されるルーチン９００の例示的実施形態のフロー図を示す。ルーチンは、たとえば、図３のターゲットシステム３６０および／もしくは３７０ならびに／または図１Ａおよび図１Ｂのターゲットシステム１６０および／もしくは１７０の実行によって提供されて、たとえば、ターゲットシステムに固有の動作を実装することができる。ルーチンの示された実施形態は、１つまたは複数の判断モジュールとターゲットシステムの相互作用に焦点を当てていること、ならびに、多くまたはすべてのそのようなターゲットシステムが、簡潔にするためにここでは示されていないそれらのターゲットシステムに固有の様式で多くの他の動作を行うことは理解されよう。
【０１７２】
ルーチンはブロック９１０で始まり、ここでは、それが、任意選択で、ターゲットシステムについてのＣＤＤシステムの自動化制御システムにおいて使用するためのターゲットシステムの初期状態情報をＣＤＤシステムに提供し、たとえば、ＣＤＤシステムもしくはターゲットシステムのためのその自動化制御システムからの要求に応答して、またはそうではなく（たとえば、ターゲットシステムの始動時に実行されるように）ターゲットシステムに固有の構成に基づいて提供する。ブロック９１０の後、ルーチンはブロック９２０へと続き、ターゲットシステムのための自動化制御システムを実装する１つまたは複数の判断モジュールの集合的グループからの１つまたは複数の入力を受け取り、そのような入力は、自動化制御システムの１つまたは複数のそのような判断モジュールによって実行されるターゲットシステムの複数の要素の１つまたは複数の制御要素についての１つまたは複数の修正された値または他の操作を含む。他の箇所でより詳細に論じられるように、ブロック９２０、９３０、９４０は、複数の時間期間の各々について繰り返し実行されることができ、それは、ターゲットシステムに応じて時間が大きく異なることがある（たとえば、マイクロ秒、ミリ秒、秒の１００分の１、秒の１０分の１、１秒、２秒、５秒、１０秒、１５秒、３０秒、１分、５分、１０分、１５分、３０分、１時間など）。
【０１７３】
ブロック９２０の後、ルーチンはブロック９３０へと続き、受け取られた入力に基づいてターゲットシステムにおいて１つまたは複数のアクションを行い、そうすることは、任意選択で、制御要素の操作に基づいてターゲットシステム内で１つまたは複数の結果の出力または他の結果を生成することを含む。ブロック９４０では、ルーチンは次いで、任意選択で、ターゲットシステム内の出力もしくは他の結果に関する情報、および／またはターゲットシステムに関する他の現在の状態情報を、ＣＤＤシステムの自動化制御システム、および／または自動化制御システムの特定の判断モジュールに提供する。ルーチンは次いで、ブロック９９５へと続き、継続するかどうかを決定し、たとえばターゲットシステムの動作を停止または中断する明示的標識が受け取られるまで継続する。継続すると決定された場合、ルーチンはブロック９２０に戻って、次の時間期間についての次のセットの制御アクションを始め、そうでない場合はブロック９９９に進んで終了する。他の箇所でより詳細に論じられるように、特定の判断モジュールに提供される状態情報は、外部システムからターゲットシステムへの要求を含むことができ、自動化制御システムおよびその判断モジュールは、その要求にどのように応答するかを１つまたは複数の様式で決定することができる。
【０１７４】
図１０Ａ〜図１０Ｂは、パラメータ値予測器ルーチン１０００の例示的実施形態のフロー図を示す。ルーチンは、たとえば、図１Ａ〜図２Ｄに関して論じられたように、図３の１つもしくは複数のＰＶＦコンポーネント３４５および／または機能性をサポートするＰＶＦコンポーネントの実行によって提供されることができ、たとえば、１つまたは複数の指定されたターゲットシステムの将来の動作に関する情報を予測する予測モデルを生成、トレーニング、使用、および更新するための機能性を提供する。少なくともいくつかの実施形態および状況では、ルーチンは、１つもしくは複数のターゲットシステムおよび／または１つもしくは複数のＣＤＤシステムの一部であるまたはそれらと関連して動作する、１つまたは複数のＰＶＦコンポーネントの一部であることができ、たとえば、図４〜図９に関連して論じられたルーチンで使用するための予測パラメータ情報を提供する。
【０１７５】
ルーチンの示された実施形態はブロック１００３で始まり、ここでは、情報または命令が受け取られる。ブロック１００３の情報または命令が、特定のターゲットシステムをサポートする（たとえば、ターゲットシステムの自動化制御を支援する）ためのプールの一部として使用される１つまたは複数の予測モデルを作成または改訂する標識を含むと、ブロック１００５で決定された場合、ルーチンは続いてブロック１０１０〜１０２５を実行して、その後に使用するためにそのような予測モデルを作成およびトレーニングする。具体的には、ルーチンは、記憶された情報を取り出すことなどによって、ターゲットシステムの先行の性能に対応する動作データをブロック１０１０で取得するが、他の実施形態および状況では、取得された動作データの一部または全部は、代わりに異なるターゲットシステム（たとえば、同じタイプの別のターゲットシステム）らのものであってよく、または他の形で作成されてよい（たとえば、シミュレートされた動作データ）。ルーチンさらに示された実施形態では、ブロック１０１０で、ターゲットシステムに使用するために生成される予測モデルに対応する情報を取得し、そのような情報は、たとえば、予測モデルの１つまたは複数のタイプ、トレーニングに使用する動作データの１つまたは複数の量／タイプ（たとえば、最後のＮ個のデータサンプル、ここで、Ｎは指定された数であり、異なる予測モデルでは異なることがある）、および、各予測モデルに関して値が予測されるべき１つまたは複数のパラメータ（たとえば、異なる予測モデルに対して異なるパラメータ）である。そのような情報は、様々な様式で取得されることができ、たとえば、１つまたは複数のユーザによって動的に指定され、および／または（たとえば、１つまたは複数の指定されたタイプの予測モデルを常に使用するために）再構成される。少なくともいくつかの実施形態では、指示されたパラメータは、指示されたパラメータの追加の将来値を予測するように予測モデルをトレーニングするのに使用するために、他のパラメータの関連付けられた値と共に、取得された動作データにおける１つまたは複数の過去の時間についての対応する値を有する。ブロック１０１０の後、ルーチンはブロック１０１５へと続き、ブロック１０１０から取得された情報を使用して、ターゲットシステムと共に使用するための１つまたは複数の予測モデルのプールを作成する。
【０１７６】
ルーチンは次いで、ブロック１０２０および１０２５へと続き、取得された動作データのサブセットを使用することなどによって、プールの予測モデルをトレーニングする。具体的には、ルーチンは、ブロック１０２０で、取得された動作データの１つまたは複数のグループを選択し、また任意選択で、たとえば図５Ａ〜図５Ｃのブロック５５３および５５５に関連して先に論じられたのと同様の様式で、必要に応じて使用するための１つまたは複数の追加のトレーニングファクタを決定する。次いで、ルーチンは進行して、ブロック１０２５で、ブロック１０２０からの選択および決定された情報を使用してプールの予測モデルをトレーニングし、そうすることは、任意選択で、初期トレーニングのために選択されなかった動作データの追加のサブセットを使用して、トレーニングされたモデルの性能をテストすることを含む。図１０Ａには示されていないが、ブロック１０２５の動作は、たとえば、１つまたは複数の指定された基準をテストが満たさない予測モデルの使用を（一時的または永続的に）再トレーニングまたは中断するために、追加のアクティビティを含むことができる。トレーニングされた予測モデルは次いで、ブロック１０５０〜１０７５に関連してより詳細に論じられるように、たとえば１つまたは複数の将来の時間についての指示されたパラメータの将来値を予測するために、記憶されまたは他の形で使用可能にされる。
【０１７７】
そうではなく、ブロック１００３の情報または命令が、１つまたは複数の将来の時間についての予測パラメータ値を生成するためにターゲットシステムのためのプールの１つまたは複数の既存の予測モデルを使用することであると、ブロック１００５で決定された場合、ルーチンは代わりにブロック１０５０へと続く。ルーチンの示された実施形態は、１つまたは複数の将来の時間について、たとえば後でそれらの将来の時間で使用するために、予測パラメータ値を生成するが、他の実施形態は、（将来の時間に加えてまたは代えて）他の時間、たとえば、過去、現在、および／または近い将来の時間について、予測パラメータ値を生成することができることは理解されよう。ブロック１０５０では、ルーチンは、たとえばブロック１０１０〜１０２５に関連して以前に生成およびトレーニングされたモデルである、指示されたターゲットシステムのためのプールからの１つまたは複数の予測モデルを取り出す。ブロック１０５５では、ルーチンは次いで、任意選択で、予測モデルのうちの１つまたは複数についての係数または他の内部状態を更新して、たとえば、ターゲットシステムに関する最近の動作データを反映する、および／または、不良なトレーニングデータが予測モデルの先行の性能を望ましくないものにしている場合に、予測モデルをリセットする。
【０１７８】
ブロック１０５５の後、ルーチンは、本明細書の他の箇所でより詳細に論じられるように、予測モデルのタイプに固有の様式で、１つまたは複数の将来の時間の各々について、予測モデルの各々について、予測された将来パラメータ値を生成する。ブロック１０６５では、ルーチンは次いで、任意選択で、プール内の１つまたはいくつかまたは全部の予測モデルの先行および／または現在の性能に関するデータを分析して、たとえば、それらの予測モデルの精度または他の有効性を（たとえば、指示された時間についての予測パラメータ値が、その時間についてのパラメータの実際値にどれほど正確に一致するかに関して）査定する。いくつかの実施形態および状況では、査定は、精度などの１つまたは複数の基準に関して予測モデルをランク付けすることを含むことができる。さらに、少なくともいくつかの実施形態および状況では、査定からの結果の情報を使用して、１つまたは複数の将来の時間の各々について使用する単一の「最良」予測モデルを選択することができ、そうすることは、たとえば、複数の異なる予測モデルがそのパラメータの値を予測していても、対応するＣＤＤシステムが、単一の予測モデルからの予測パラメータ値のみを使用する、または特定のパラメータに対し１つのみの予測値を使用する場合に、異なる時間にプールからの「最良」の予測モデルを潜在的に変更することを含む。ルーチンは次いで、ブロック１０７５へと続き、後で使用するための１つまたは複数の将来の時間についての生成された予測された将来パラメータ値を記憶し、任意選択でさらに、（たとえば、図６Ａのブロック６２７に関連して論じられるように）ＣＤＤシステムおよび／または１つもしくは複数の他の要求側に対して生成された値の一部または全部を提供する。
【０１７９】
そうではなく、ブロック１００３の情報または命令が、追加の動作データ（たとえば、１つまたは複数の予測モデルの現在または先行のバージョンからの予測パラメータ値を部分的に使用してターゲットシステムを制御することから生成された動作データ）を使用してターゲットシステムのためのプールの１つまたは複数の予測モデルを再トレーニングすることであると、ブロック１００５で決定された場合、ルーチンは代わりにブロック１０８０へと続き、追加の動作データを取得し（たとえば、それをストレージから取り出す、ターゲットシステムのさらなる動作によりデータが生成されるまで待つなど）、次いでブロック１０２０へと続く。
【０１８０】
そうではなく、ブロック１００３の情報または命令が、プールでの１つまたは複数の予測モデルの追加および／または除去など、ターゲットシステムのための１つまたは複数の予測モデルのプールを更新することであると、ブロック１００５で決定された場合、ルーチンは代わりにブロック１０３５へと続き、プール内の１つまたはいくつかまたは全部の予測モデルの先行の性能に関するデータを取得し（たとえば、それをストレージから取り出す、ターゲットシステムのさらなる動作によりデータが生成されるまで待つなど）、次いで、データを分析して、それらの予測モデルの精度または他の有効性を（たとえば、指示された時間についての予測パラメータ値が、その時間についてのパラメータの実際値にどれほど正確に一致するかに関して）査定する。いくつかの実施形態および状況では、査定は、精度などの１つまたは複数の基準に関して予測モデルをランク付けすることを含むことができる。ルーチンは次いで、ブロック１０４０へと続き、任意選択で、プールの一部である予測モデルを修正して、たとえば、それらの過去の性能の分析に基づいてプールから１つもしくは複数の既存のモデルを除去し（たとえば、最も低くランク付けされたＭ個の予測モデルを除去し）、ならびに／または、ブロック１０１０〜１０２５に関連して論じられたのと同様の様式で１つまたは複数の新しい予測モデルを生成、トレーニング、テスト、および保存することによって、それらをプールに追加する。たとえば、少なくともいくつかの実施形態および状況では、プール内の１つまたは複数の以前から存在する予測モデルと同じタイプの１つまたは複数の新しい予測モデルが追加されてよく、異なる量および／またはタイプの動作データが（より多いまたはより少ない、重複するまたは完全に分離するなどに関わらず）以前から存在する予測モデルと比べて新しい予測モデルをトレーニングするために使用される。ターゲットシステムと共に使用される予測モデルを使用、再トレーニング、および更新することに関する追加の詳細は、本明細書の他の箇所に含まれる。
【０１８１】
そうではなく、ブロック１００３の情報または命令が、１つまたは複数の他の指示されたタイプの動作を行うことであると、ブロック１００５で決定された場合、ルーチンは代わりにブロック１０９０へと続き、そのような他の動作を適宜に行う。そのような他の動作は、たとえば、以前に生成された記憶された情報を取り出し提供することおよび／または一部もしくは全部のそのような情報を動的に生成および提供することなどによって（たとえば、ターゲットシステムを制御するＣＤＤシステムからの）予測パラメータ値の要求を受け取りそれに応答すること、後で使用するための構成情報（たとえば、予測モデルのタイプ、トレーニングファクタのタイプなどに関する情報など）を受け取り記憶すること、以前に生成された予測パラメータ値の使用に対応する動作からであるかどうかに関わらず１つまたは複数のターゲットシステムに関する動作データ（たとえば、図６Ｂのブロック６８０および／または図９のブロック９４０などで生成されたデータなど）を受け取り記憶すること、１つまたは複数の生成およびトレーニングされた予測モデル（たとえば、プールの予測モデル）の要求を受け取りそれに応答することのうちの１つまたは複数を含むことができる。
【０１８２】
ブロック１０２５、１０４０、１０７５または１０９０の後、ルーチンはブロック１０９５へと続き、継続するかどうかを決定し、たとえば停止する明示的標識が受け取られるまで継続する。継続すると決定された場合、ルーチンはブロック１００３に戻り、そうでない場合はブロック１０９９に進んで終了する。
【０１８３】
いくつかの実施形態では、上記に論じられたルーチンによって提供される機能性は、より多くのルーチンに分割されるまたはより少ないルーチンに統合されるなど、代替的方法で提供されてよいことは理解されよう。同様に、いくつかの実施形態では、示されたルーチンは、他の示されたルーチンがそれぞれそのような機能性を欠くもしくは含むとき、または提供される機能性の量が変更されたときなどに、説明されたものより多いまたは少ない機能を提供することができる。加えて、様々な動作が、特定の様式（たとえば、直列、並列、同期、または非同期など）および／または特定の順序で行われるように示されることがあるが、他の実施形態において他の順序および他の様式で動作が実行されてよいことは当業者には理解されよう。また、上記に論じられたデータ構造は、異なる様式で、たとえば、単一のデータ構造を複数のデータ構造に分割させることによって、または複数のデータ構造を単一のデータ構造に統合させることによって構造化されてよいことは、当業者には理解されよう。同様に、いくつかの実施形態では、示されたデータ構造は、説明されたものより多いまたは少ない情報を他の示されたデータ構造がそれぞれそのような情報を欠いたときもしくは含むとき、または記憶される情報の量もしくはタイプが変更されたときなどに、記憶することができる。
【０１８４】
図１２は、より大きなターゲットシステムの一部としてバッテリを制御する実施形態を示し、この例では、そのターゲットシステムは、ソーラーパネルを含む家庭電力システムを含むシステム１２００であり、したがって、図２Ａおよび／または本明細書の他の箇所に関連して先に論じられた例示的実施形態が、いくつかの状況では、例示的システム１２００のような、より大きなシステムの一部として使用されることができる。具体的には、図１２のブロック図は、ソーラー電力が生成されている家庭電力システムの一部であるバッテリからのＤＣ電力の自動化制御を行うためのシステム１２００の実施形態の例示的コンポーネントを示し、自動化制御は、たとえば、リアルタイム様式で、および／またはバッテリの長期動作を最適化するように行われ、家庭の発電および電力使用が、外部エンティティによって、たとえば、システム１２００のバッテリを制御するために１つまたは複数のＣＤＩエージェントを提供または管理するエンティティによって監視および同期される。図１２の例では、例示的な家庭の電力システムが、外部電気グリッドにも接続され、それは、様々な時間に外部電気グリッドから電力を受け取り、また電力を提供し、バッテリは、ソーラー電力システムにより生成された電力を貯蔵し、電力を適宜に住宅および／または電気グリッドに供給する役割をする。
【０１８５】
図１２の示された例では、バッテリ２１０、センサモジュール２２０、バッテリ用アクチュエータ２３０、オンサイトバッテリ追跡コントローラ２４０などを含む、図２Ａのコンポーネントと同様のコンポーネントが引き続き示されている。しかしながら、図１２の例では、図２ＡのＣＤＩエージェント２５０は、例示的住宅の物理的位置に存在するコンポーネントの一部として示されておらず、これは、たとえば、図１２に関して使用されているＣＤＩエージェント２５０は、代わりに遠隔位置（たとえば、クラウドまたは他のコンピュータネットワーク位置）で実行され、図２Ａに関して示されたのと同様の様式で追跡および／または同期信号を図１２のバッテリ追跡コントローラ２４０に提供する場合である。そのような追跡および／または同期信号は、たとえば、現在の時間または直後の時間のバッテリの所望の電力出力および／または所望のバッテリパラメータ（たとえば、内部温度、電圧、電流など）を含むことができる。加えて、本明細書の他の箇所でより詳細に論じられるように、ＣＤＩエージェントは、バッテリ２１０（および制御されている任意の他のバッテリ）に関する監視された情報、外部電気グリッドを管理するユーティリティからの電力要求、使用される定義された制約条件または他のルール、予測された電力に関係付けられた値などに基づいて、そのような追跡および／または同期信号を生成することができる。この例示的実施形態では別個のＰＶＦコンポーネントが示されていないが、それらは、たとえば、コンポーネント２４０、１２６０、および／または１２７０などの１つまたは複数の他のコンポーネントの一部として動作することができる。
【０１８６】
加えて、いくつかの追加のコンポーネントが図１２に示されており、これらのコンポーネントはバッテリからの出力電力を受け取り、および／または貯蔵のためにバッテリへ電力を供給するインバータ／整流器モジュール１２１０、電力を生成し、自身の関連付けられたセンサおよびインバータを有するソーラーパネル１２２０、外部電気グリッドに対する電力の受け取りおよび／または供給をし、住宅用の負荷１２４０への配電を制御する配電箱１２３０などを含む。加えて、図１２のバッテリ追跡コントローラ１０４の動作を制御するのを支援するための２つのローカル制御エージェント１２６０および１２７０が示されており、エージェント１  １２６０は、バッテリ追跡コントローラと直接的に相互作用し、エージェント２  １２７０は、バッテリのための電力のＡＣ相を住宅電力システムおよび／またはグリッドのそれと同期するためのアクティビティを行って、たとえば、受け取られおよび／または提供されている電力の共鳴を提供する。バッテリ追跡コントローラ２４０ならびにエージェント１２６０および１２７０（ユーティリティセンサプロセッサ以外）は、この例では一緒に「制御プロセッサ」と呼ばれ、バッテリ追跡コントローラは、システムステータス更新を提供し、エージェント間の通信は、そのようなマルチエージェントアーキテクチャをサポートするように管理される。エージェント２のトモグラフィが、非破壊Ｘ線を使用してバッテリ状態の動的変化を追跡する。加えて、外部エンティティ１２８０（たとえば、外部電気グリッドを提供または管理するユーティリティ）が、この例では監視および同期信号をバッテリ追跡コントローラ２４０に提供し、たとえば、多数のそのような家庭電力システムおよび／または他のカスタマを介して使用および／または提供されている電力を調整する。
【０１８７】
図１２の例ではソーラーパネルシステムにおけるバッテリ２１０の使用を伴うが、バッテリは様々なタイプの環境およびシステムで充電および／または放電されることができ、対応するＣＤＩエージェントの同様のアクティビティが、本明細書に説明されている様式でそのようなアクティビティを制御するために使用できることは理解されよう。
【０１８８】
物理ターゲットシステムは、１つまたは複数のバッテリを有するターゲット制御システムを制御するよりむしろ、いくつかの実施形態では、上記されたように、ネットワークトラフィックが通過する１つまたは複数のコンピュータネットワークであって、ネットワークトラフィックの一部または全部を規制することができるファイアウォールデバイスおよび／または他のデバイスを含むコンピュータネットワークを含むことができ、ターゲットシステムを制御するための動化された動作は、ネットワークトラフィックの特性を使用して、ファイアウォールデバイスまたは他の規制デバイスの自動化制御を行うことを含むことができ、ＰＶＦシステムの動作は、発生することが期待される将来のネットワークトラフィックを予測すること、および、予測されたデータを使用してファイアウォールデバイスもしくは他の規制デバイスを制御すること（または、問題に対処するための他のアクションを行い、実際のネットワークトラフィックと予測されたネットワークトラフィックとの間の有意な差異を識別すること）を含む。そのような実施形態の例は、リアルタイムまたはリアルタイムに近い様式で（たとえば、分析されるネットワークトラックの到着に対して、１秒未満の範囲内、または小さな定義された秒数または分数の範囲内で）ネットワークアクティビティを予想することを含む。予想モデルは、たとえば、各分に受け取られたパケットの数、各分に送られたパケットの数、各分に受け取られたパケットの合計サイズ、各分に送られたパケットの合計サイズ、定義されたセットの１つまたは複数の宛先（たとえば、知られているブラックリストに載せられたＩＰアドレス、指定されたオクテット、特定のポートを介するデータ、送信／受信されたＩＰアドレス／ポートの組み合わせなど）に対して各分に送信／受信されたパケットの数またはサイズなどのいずれかに基づくことができる。定義された期間の時間（たとえば１分）が経過した後、観測されたデータは予想されたデータと比較され、十分に大きな（たとえば、定義された閾値より大きな）相違は、調査または他の形で処理されるべき異常を示す。たとえば、ｘnは、分ｎに受け取られたパケットの数である場合、プロセスモデル
【０１８９】
【数３６】
2019519871.tif 000039
【０１９０】
および観測モデル
【０１９１】
【数３７】
2019519871.tif 000040
【０１９２】
が、予測の一部として使用されることができ、たとえば、パケットの数の正規化はしないが、送られたパケットの合計サイズの対数正規化は使用する。発生することが期待される将来のネットワークトラフィックを予測すること、および／またはそのような予測されたデータを使用することは、他の実施形態において他の様式で行われ得ることは理解されよう。図１３は、ネットワークトラフィックに関係付けられた自動化された予測に部分的に基づいて、コンピュータネットワークの動作の自動化制御を行うためのシステムの実施形態の例示的コンポーネントを示すシステム１３００を示す。システム１３００は、１つまたは複数のコンポーネント１３５５からの入力データ（たとえば、過去のネットワークトラフィックに関する情報）を取得し、将来のネットワークトラフィックに関する予測されたデータを生成および提供する、ネットワークトラフィック予測器コンポーネント１３７０を含む。ＣＤＩエージェント１３５０は、予測されたデータ、ならびに他のネットワークトラフィックポリシ情報および現在のネットワークトラフィックに関する情報を使用し、出力信号を生成して、１つもしくは複数のトラフィック規制デバイス１３１０の動作を制御し、および／または識別された異常もしくは他の問題に関する情報を１つもしくは複数の受信者１３９５に提供する。コンピュータネットワークは、簡潔にするためにここでは示されない様々な追加のノード、リンク、および他のコンポーネントを含むことができることは理解されよう。
【０１９３】
図１１は、たとえばリアルタイム様式でバッテリの長期動作を最適化するように、調整された様式で複数のバッテリからのＤＣ電力の自動化制御を行うシステム１１００の実施形態の例示的コンポーネントを示すブロック図である。具体的には、図１１のシステム１１００は、図１２のそれといくつかの類似点を有するが、多数のバッテリおよび関連付けられたシステム（たとえば、この例では、たとえば１つまたは複数の地域、州、国などに対応する、百万個を超えるそのようなバッテリおよび関連付けられたシステム）の調整された制御をサポートするためのシステムの例示的アーキテクチャを示す。具体的には、示された例では、オンサイトバッテリ追跡コントローラを有する様々なバッテリおよび関連付けられたシステム１１０５（たとえば、ソーラーパネルを有する家庭電力システム）が、バッテリおよび関連付けられたシステム１１０５についての電力要求を提供する１つまたは複数のユーティリティ１１８５、ならびにバッテリおよび関連付けられたシステム１１０５についての分散制御システム１１７５を管理するためのシステム管理の役割をする１つまたは複数のエンティティ１１９０と共に示される。この例示的実施形態では別個のＰＶＦコンポーネントは示されていないが、それらは、たとえば、クラスタ内のＣＤＩエージェントのような１つまたは複数の他のコンポーネントの一部として動作することができる。
【０１９４】
この例では、分散制御システム１１７５は、オンラインコンピューティング環境（たとえば、Ｍｉｃｒｏｓｏｆｔ  Ａｚｕｒｅ）を介するなどして、ネットワークアクセス可能な位置に集中化された様式で実装されるが、それは他の実施形態では他の様式で実装されることもできる。分散制御システム１１７５は、ユーティリティ１１８５とインターフェースをとって相互作用する１つまたは複数のコンポーネント、バッテリおよび関連付けられたシステム１１０５とインターフェースをとって相互作用する１つまたは複数のコンポーネント、ならびに、分散制御システム１１７５を監視および／または制御するためにシステム管理エンティティ１１９０が相互作用することができる１つまたは複数の監視および／または構成コンポーネントを含む。加えて、バッテリおよび関連付けられたシステム１１０５をサポートする様々なＣＤＩエージェント（たとえば、バッテリパックおよび関連付けられたシステム当たり１つのＣＤＩエージェント）が、ネットワークアクセス可能位置で実行され、一緒にクラスタ化され、様々なクラスタ間通信機構（たとえば、様々なトピックを有するパブリッシュ／サブスクライブシステム、少なくともいくつかのＣＤＩエージェントおよび／またはクラスタの間の通信サービスバスなど）が使用される。クラスタは、様々な実施形態において様々な様式で形成され、たとえば、地理的位置（たとえば、システム電気グリッド変電所領域の一部である）および／または動作特性のような１つまたは複数の特性を共有する関連付けられたバッテリおよびシステムを有することに基づいて、ＣＤＩエージェントをグループ化することができる。加えて、クラスタは、段階的および／または階層的にＣＤＩエージェントを調整するために使用され、たとえば、まずクラスタ内でＣＤＩエージェントを調整し、次いで、２つ以上のクラスタ間などで、また任意選択で（たとえば、階層的に構造化された）複数の層のクラスタを用いて調整することができる。様々な追加のコンポーネントが、分散制御システム１１７５の一部として提供され使用され、たとえば、サイト管理システムが、ＣＤＩエージェントならびに／またはバッテリおよび関連付けられたシステムの変化を管理し（たとえば、新しいバッテリシステムのための新しいＣＤＩエージェントを追加し、および／またはシステム１１７５管理から除去されている既存のバッテリシステムのための既存のＣＤＩエージェントを除去する；新しいＣＤＩエージェントを特定のクラスタに追加し、および／またはクラスタから既存のＣＤＩエージェントを除去する；クラスタを作成、除去、および修正するなど）、ネットワークアクセス可能位置から利用可能な記憶サービスが、使用される状態情報および他の情報を記憶し、ネットワークアクセス可能位置から利用可能なリソース管理サービスが、ネットワークアクセス可能位置により提供されるコンピューティングリソースを管理することなどができる。
【０１９５】
上記から、例示のために特定の実施形態が本明細書で説明されているが、本発明の趣旨および範囲から逸脱することなく様々な修正が行われてよいことは理解されよう。したがって、本発明は、添付の特許請求の範囲およびそれに記載された要素による場合を除いて限定されない。加えて、本発明の特定の態様が特定の請求形式で提案されるが、本発明者らは、任意の利用可能な請求形式で本発明の様々な態様を企図する。たとえば、本発明の一部の態様のみがコンピュータ可読媒体で実施されるものとして現在記載されているが、同様に他の態様もそのように実施されてよい。
【図１Ａ】
2019519871.tif 000041
【図１Ｂ】
2019519871.tif 000042
【図２Ａ】
2019519871.tif 000043
【図２Ｂ】
2019519871.tif 000044
【図２Ｃ】
2019519871.tif 000045
【図２Ｄ】
2019519871.tif 000046
【図３】
2019519871.tif 000047
【図４】
2019519871.tif 000048
【図５Ａ】
2019519871.tif 000049
【図５Ｂ】
2019519871.tif 000050
【図５Ｃ】
2019519871.tif 000051
【図６Ａ】
2019519871.tif 000052
【図６Ｂ】
2019519871.tif 000053
【図７Ａ】
2019519871.tif 000054
【図７Ｂ】
2019519871.tif 000055
【図８Ａ】
2019519871.tif 000056
【図８Ｂ】
2019519871.tif 000057
【図９】
2019519871.tif 000058
【図１０Ａ】
2019519871.tif 000059
【図１０Ｂ】
2019519871.tif 000060
【図１１】
2019519871.tif 000061
【図１２】
2019519871.tif 000062
【図１３】
2019519871.tif 000063
【手続補正書】
【提出日】平成30年12月21日(2018.12.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つまたは複数のコンピューティングシステムによって、センサと１つまたは複数の制御部と１つまたは複数の出力とを有するターゲット物理システムの動作をモデル化するルールを受け取ることであって、前記センサは、前記ターゲット物理システムの要素の状態に関する情報を測定し、少なくとも１つの制御部は、前記ターゲット物理システムの少なくとも１つの出力を修正するように操作可能であり、前記ルールは、前記１つまたは複数の制御部を操作するために行う結果の制御アクションに対する値に達するように評価されることになる状態情報を含む条件を指定する、ことと、
前記１つまたは複数のコンピューティングシステムによって、少なくとも前記ルールと前記ターゲット物理システムに対して指定された目標と前記ターゲット物理システムについての状態情報とから、結合された微分方程式を含む前記ターゲット物理システムの状態を記述するターゲットシステムモデルを作成することと、
前記１つまたは複数のコンピューティングシステムによって、前記ターゲット物理システムの動作に影響するパラメータの将来値を予測するために、１つまたは複数の予測技法を使用して、複数の予測モデルのプールを作成することであって、前記ターゲット物理システムの前記動作からのデータを使用して前記複数の予測モデルをトレーニングすることを含む、ことと、
前記１つまたは複数のコンピューティングシステムによって、指示された時間において前記ターゲット物理システムの前記動作を制御することと
を含み、前記制御することは、
前記ターゲット物理システムの少なくとも１つのセンサについて、前記指示された時間における状態情報を識別するセンサ情報を取得することと、
前記指示された時間に使用するために、前記複数の予測モデルのうちの１つを選択することであって、前記複数の予測モデルのうちの他のものに対する前記選択された１つの予測モデルの過去の性能に関する情報に少なくとも部分的に基づく、ことと、
前記選択された１つの予測モデルから、前記指示された時間の前のより早い時間に生成された前記指示された時間についての１つまたは複数の予測パラメータ値を取得することであって、前記取得された１つまたは複数の予測パラメータ値は、前記ターゲット物理システムの動作に影響する１つまたは複数のパラメータに対するものである、ことと、
前記ターゲットシステムモデルを使用して、前記取得されたセンサ情報および前記取得された１つまたは複数の予測パラメータ値に少なくとも部分的に基づいて、前記指示された時間における少なくとも１つの制御アクションであって、前記ターゲット物理システムの少なくとも１つの制御部を操作し、前記目標に対する解を提供する、少なくとも１つの制御アクションを決定することと、
前記ターゲット物理システムにおいて前記指示された時間における前記少なくとも１つの制御アクションの実施を開始して、前記少なくとも１つの制御部を操作し、前記ターゲット物理システムの少なくとも１つの出力の結果の変化を引き起こすことと
を含む、コンピュータ実施方法。
【請求項２】
前記１つまたは複数のコンピューティングシステムは、協働分散判断システムを実行する１つまたは複数の第１のコンピューティングシステムを含み、前記ターゲットシステムモデルの前記作成は、前記１つまたは複数の第１のコンピューティングシステムによって行われ、前記少なくとも１つの制御アクションの前記決定は、前記１つまたは複数の第１のコンピューティングシステムによって行われ、前記結合された微分方程式の区分線形解析を行って前記少なくとも１つの制御アクションを識別することを含む請求項１に記載のコンピュータ実施方法。
【請求項３】
前記ターゲット物理システムは、
少なくとも電気負荷および少なくとも１つの電源を有するバッテリであって、前記制御部は、前記バッテリからエネルギーの指定された量を供給することを引き起こす、または前記バッテリによりエネルギーの指定された量を受け取らせるように命令を提供することを含み、前記出力は、前記バッテリへまたは前記バッテリから提供される前記エネルギーを含み、前記ターゲット物理システムに対して前記指定された目標は、指示された基準に従って前記バッテリからエネルギーを供給しながら前記バッテリの寿命を最大限にする、前記バッテリ、または
建物であって、前記建物は、複数の部屋と、前記建物の前記部屋の暖房および冷房のうちの少なくとも一方を行うための１つまたは複数の温度制御ユニットとを有し、前記制御部は、前記温度制御ユニットから暖房および冷房のうちの前記少なくとも一方の指定された量を供給することを引き起こすように命令を提供することを含み、前記出力は、前記温度制御ユニットから供給される暖房および冷房のうちの前記少なくとも一方を含み、前記ターゲット物理システムに対して前記指定された目標は、指示された基準に従って前記建物の前記部屋に対する暖房または冷房のうちの前記少なくとも一方を行いながら前記温度制御ユニットにより使用されるエネルギーの量を最小限にする、前記建物、または
ネットワークトラフィックが通過し、前記ネットワークトラフィックを規制するための１つまたは複数のネットワークデバイスを有する１つまたは複数のコンピュータネットワークであって、前記制御部は、前記ネットワークトラフィックの規制に影響する前記１つまたは複数のネットワークデバイスの設定を修正することを含み、前記出力は、前記規制されたネットワークトラフィックを含み、前記ターゲット物理システムに対して前記指定された目標は、前記１つまたは複数のネットワークデバイスによって許可され、１つまたは複数の指示された基準を満たさないネットワークトラフィックを、前記１つまたは複数の指示された基準を満たす他のネットワークトラフィックを許可しながら、最小限にする、１つまたは複数のコンピュータネットワーク
のうちの１つを含む、請求項２に記載のコンピュータ実施方法。
【請求項４】
前記ターゲット物理システムの動作をモデル化する前記ルールは、前記ターゲット物理システムの前記動作に関する修正不可能な要件を指定し、各々が真値または偽値に達するように評価可能である、１つまたは複数の絶対的ルールと、指定された状況で修正されることができる前記ターゲット物理システムの前記動作に関する制約を指定し、各々が真値または偽値に達するように評価可能である、１つまたは複数のハードルールと、関連付けられた可能性を有する真値または偽値以外のあり得る値に達するように評価されることになる１つまたは複数の追加の条件を指定する１つまたは複数のソフトルールとを含む請求項２に記載のコンピュータ実施方法。
【請求項５】
前記ターゲットシステムモデルの前記作成は、前記ルールに少なくとも部分的に基づいて、前記作成されたターゲットシステムモデルを表現するルールベースのハミルトン関数を生成することを含む請求項２に記載のコンピュータ実施方法。
【請求項６】
前記１つまたは複数のコンピューティングシステムは、１つまたは複数のパラメータ値予測コンポーネントを実行する１つまたは複数の第２のコンピューティングシステムをさらに含み、前記１つまたは複数の予測モデルの前記作成は、前記１つまたは複数の第２のコンピューティングシステムによって行われる請求項２に記載のコンピュータ実施方法。
【請求項７】
通常の回帰、通常の自己回帰、動的回帰、動的自己回帰、割り引かれた動的回帰、割り引かれた動的自己回帰、固定された係数を有するカルマンフィルタ、更新可能な係数を有する動的カルマンフィルタ、ニューラルネットワーク、決定木、および以前のデータの維持を含む群から前記１つまたは複数の予測技法を選択することをさらに含む請求項１に記載のコンピュータ実施方法。
【請求項８】
複数の予測モデルの前記プールの前記作成の後、
前記ターゲット物理システムの動作からの追加の動作データを使用して前記複数の予測モデルの性能を査定すること、および前記査定された性能に少なくとも部分的に基づいて、前記プールから前記複数の予測モデルのうちの少なくとも１つを除去することであって、前記１つまたは複数の予測パラメータ値の前記取得は、前記除去の後に前記プール内に残っている１つまたは複数の予測モデルから取得をする、こと、または
前記ターゲット物理システムの動作から追加の動作データを取得すること、および前記追加の動作データに少なくとも部分的に基づく前記プールに対する少なくとも１つの追加の予測モデルを追加することであって、前記１つまたは複数の予測パラメータ値の前記取得は、前記少なくとも１つの追加の予測モデルから取得をする、こと
のうちの１つまたは複数を実行することをさらに含む請求項１に記載のコンピュータ実施方法。
【請求項９】
前記指示された時間における前記少なくとも１つの制御アクションの前記実施から前記ターゲット物理システムの動作データを取得することと、前記より早い時間に前記１つまたは複数の予測モデルにより生成された前記１つまたは複数のパラメータの追加の予測パラメータ値を使用することに部分的に基づいて、１つまたは複数の追加の指示された時間において前記ターゲット物理システムの前記動作を制御することとをさらに含む請求項１に記載のコンピュータ実施方法。
【請求項１０】
前記１つまたは複数の予測モデルの前記作成は、少なくとも１つの第１の予測モデルに対して回帰技法を使用することと、少なくとも１つの第２の予測モデルに対してカルマンフィルタ技法を使用することとを含む請求項１に記載のコンピュータ実施方法。
【請求項１１】
１つまたは複数のコンピューティングシステムに方法を行わせるコンテンツを記憶した非一時的コンピュータ可読媒体であって、前記方法は、
前記１つまたは複数のコンピューティングシステムによって、センサと１つまたは複数の制御部と１つまたは複数の出力とを有するターゲットシステムについて、第１の時間における前記ターゲットシステムの状態を記述するターゲットシステムモデルを取得することであって、前記センサは、前記ターゲットシステムの要素の物理的状態に関する情報を測定し、少なくとも１つの制御部は、前記ターゲットシステムの少なくとも１つの出力を修正するように操作可能であり、前記ターゲットシステムモデルは、前記ターゲットシステムに対して指定された目標、および前記第１の時間における前記ターゲットシステムの状態情報、および前記ターゲットシステムの動作をモデル化するルールに基づき、前記ルールは、前記１つまたは複数の制御部を操作するために行う結果の制御アクションに対する値に達するように評価されることになる状態情報を含む条件を指定する、取得することと、
前記１つまたは複数のコンピューティングシステムによって、１つまたは複数の予測技法を使用して作成された複数の予測モデルのプールから、前記ターゲットシステムの動作に関係付けられた１つまたは複数のパラメータの予測将来値を取得することと、
前記１つまたは複数のコンピューティングシステムによって、前記１つまたは複数のパラメータの前記予測将来値の生成の後に、前記第１の時間の後の指示された時間において前記ターゲットシステムの前記動作を制御することと
を含み、前記制御することは、
前記ターゲットシステムの少なくとも１つのセンサについて、前記指示された時間における状態情報を識別するセンサ情報を取得することと、
前記取得された予測将来値から、前記ターゲットシステムの動作に関係付けられた前記１つまたは複数のパラメータに対する前記指示された時間であって、選択された１つの予測モデルの過去の性能に関する情報に少なくとも部分的に基づく前記プールから選択された少なくとも１つの予測モデルによって生成される、前記指示された時間についての１つまたは複数の予測値を選択することと、
前記ターゲットシステムモデルを使用して、前記取得されたセンサ情報および前記選択された１つまたは複数の予測値に少なくとも部分的に基づいて、前記指示された時間における少なくとも１つの制御アクションであって、前記ターゲットシステムの少なくとも１つの制御部を操作し、前記目標に対する解を提供する、少なくとも１つの制御アクションを決定することと、
前記指示された時間における前記少なくとも１つの制御アクションに関する情報を提供して、前記ターゲットシステムにおいて前記少なくとも１つの制御アクションの実施を開始して、前記少なくとも１つの制御部を操作し、前記ターゲットシステムの少なくとも１つの出力の結果の変化を引き起こすことと
を含む、非一時的コンピュータ可読媒体。
【請求項１２】
前記記憶されたコンテンツは、ソフトウェア命令を含み、前記ソフトウェア命令は、実行されたとき、前記第１の時間における前記ターゲットシステムの前記状態を記述する前記ターゲットシステムモデルについての結合された微分方程式を生成することを含めて、少なくとも前記ルールと前記指定された目標と前記第１の時間における前記ターゲットシステムの状態情報とから、前記ターゲットシステムモデルを作成することを、前記１つまたは複数のコンピューティングシステムにさらに行わせ、前記少なくとも１つの制御アクションの前記決定は、前記結合された微分方程式の区分線形解析を行って前記少なくとも１つの制御アクションを識別することを含む請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１３】
前記記憶されたコンテンツは、ソフトウェア命令を含み、前記ソフトウェア命令は、実行されたとき、１つまたは複数の指示された予測技法を使用して前記複数の予測モデルを作成することと、前記ターゲットシステムの前記動作からのデータを使用して前記複数の予測モデルをトレーニングすることと、前記指示された時間において前記ターゲットシステムの前記動作の前記制御の前に、前記トレーニングされた複数の予測モデルを使用して前記１つまたは複数のパラメータの複数の将来値を予測することとを、前記１つまたは複数のコンピューティングシステムにさらに行わせる請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１４】
システムであって、
１つまたは複数のコンピューティングシステムの１つまたは複数のハードウェアプロセッサと、
命令を記憶する１つまたは複数のメモリと
を備え、前記命令は、前記１つまたは複数のハードウェアプロセッサのうちの少なくとも１つによって実行されたとき、前記システムに、センサと１つまたは複数の制御部と１つまたは複数の出力とを有するターゲットシステムのための自動化制御システムを実装させ、前記命令は、
第１の時間における前記ターゲットシステムの状態を記述するターゲットシステムモデルを取得することであって、前記センサは、前記ターゲットシステムの要素の物理的状態に関する情報を測定し、少なくとも１つの制御部は、前記ターゲットシステムの少なくとも１つの出力を修正するように操作可能であり、前記ターゲットシステムモデルは、前記ターゲットシステムに対して指定された目標、および前記第１の時間における前記ターゲットシステムの状態情報、および前記ターゲットシステムの動作をモデル化するルールに基づき、前記ルールは、前記１つまたは複数の制御部を操作するために行う結果の制御アクションに対する値に達するように評価されることになる状態情報を含む条件を指定する、取得することと、
前記１つまたは複数のコンピューティングシステムによって、前記ターゲットシステムの動作に関係付けられた１つまたは複数のパラメータの将来値の予測に使用するために、１つまたは複数の予測技法を使用して複数の予測モデルを作成することと、
前記１つまたは複数のパラメータの前記予測の将来値の生成の後に、前記第１の時間の後の指示された時間において前記ターゲットシステムの前記動作を制御することであって、
前記ターゲットシステムの少なくとも１つのセンサについて、前記指示された時間における状態情報を識別するセンサ情報を取得すること、
前記指示された時間に使用するために、前記複数の予測モデルのうちの１つを選択することであって、前記複数の予測モデルのうちの他のものに対する前記選択された１つの予測モデルの過去の性能に関する情報に少なくとも部分的に基づく、こと、
前記ターゲットシステムモデルを使用して、前記取得されたセンサ情報と、１つまたは複数のパラメータについての前記予測の将来値の１つまたは複数と、および前記選択された１つの予測モデルによって生成された前記指示された時間とに少なくとも部分的に基づいて、前記指示された時間における少なくとも１つの制御アクションであって、前記ターゲットシステムの少なくとも１つの制御部を操作し、前記目標に対する解を提供する、少なくとも１つの制御アクションを決定すること、および
前記指示された時間における前記少なくとも１つの制御アクションに関する情報を提供して、前記ターゲットシステムにおいて前記少なくとも１つの制御アクションの実施を開始して、前記少なくとも１つの制御部を操作し、前記ターゲットシステムの少なくとも１つの出力の結果の変化を引き起こすこと
を含む制御することと
によって、前記システムに前記自動化制御システムを実装させる、システム。
【請求項１５】
前記記憶された命令は、ソフトウェア命令を含み、前記ソフトウェア命令は、実行されたとき、前記第１の時間における前記ターゲットシステムの前記状態を記述する前記ターゲットシステムモデルについての結合された微分方程式を生成することを含めて、少なくとも前記ルールと前記指定された目標と前記第１の時間における前記ターゲットシステムの状態情報とから、前記ターゲットシステムモデルを作成することを、前記システムにさらに行わせ、前記少なくとも１つの制御アクションの前記決定は、前記結合された微分方程式の区分線形解析を行って前記少なくとも１つの制御アクションを識別することを含む請求項１４に記載のシステム。
【請求項１６】
前記記憶された命令は、ソフトウェア命令を含み、前記ソフトウェア命令は、実行されたとき、前記ターゲットシステムの前記動作からのデータを使用して前記複数の予測モデルをトレーニングすることと、前記指示された時間において前記ターゲットシステムの前記動作の前記制御の前に前記トレーニングされた予測モデルを使用して前記１つまたは複数のパラメータの複数の将来値を予測することと、前記予測の複数の将来値から、前記指示された時間の前記１つまたは複数の予測将来値を選択することによって、前記指示された時間の前記１つまたは複数の予測将来値を取得することとを前記システムにさらに行わせる請求項１４に記載のシステム。
【国際調査報告】
2019519871.tif 000064
2019519871.tif 000065