JP2017084343A - システムのモデル予測制御の方法およびモデル予測コントローラー - Google Patents

システムのモデル予測制御の方法およびモデル予測コントローラー Download PDF

Info

Publication number
JP2017084343A
JP2017084343A JP2016174332A JP2016174332A JP2017084343A JP 2017084343 A JP2017084343 A JP 2017084343A JP 2016174332 A JP2016174332 A JP 2016174332A JP 2016174332 A JP2016174332 A JP 2016174332A JP 2017084343 A JP2017084343 A JP 2017084343A
Authority
JP
Japan
Prior art keywords
matrix
preconditioner
coefficient
approximate
coefficient matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016174332A
Other languages
English (en)
Other versions
JP2017084343A5 (ja
Inventor
アンドレイ・ニアゼフ
Kniazev Andrei
アレクサンドル・マリシェフ
Malyshev Aleksandr
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JP2017084343A publication Critical patent/JP2017084343A/ja
Publication of JP2017084343A5 publication Critical patent/JP2017084343A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/048Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators using a predictor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/12Simultaneous equations, e.g. systems of linear equations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • General Engineering & Computer Science (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Automation & Control Theory (AREA)
  • Operations Research (AREA)
  • Feedback Control In General (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】システムのモデル予測制御(MPC)の方法が、ロケーションのマップにおいて有意であると識別されたロケーションにおいてのみ近似的な係数行列のエントリーを求める。【解決手段】ロケーションのマップは、近似的な係数行列内のエントリーの各ロケーションを有意であるかまたは有意でないと識別する。エントリーは、近似的な係数関数および正確な係数関数のうちの一方またはそれらの組み合わせを用いて求められる。次に、本方法は、近似的な係数行列を用いてプリコンディショナーを求め、このプリコンディショナーを有する反復方法を用いて、制御の現在の時間ステップにおける正確な係数関数によって定義された係数行列を有するMPCの行列方程式を解くことによって、解ベクトルを求める。本方法は、解ベクトルを用いてシステムを制御する制御信号を生成する。【選択図】図1

Description

本発明は、包括的には、モデル予測制御に関し、より詳細には、動的システムの前処理付きモデル予測制御のための方法および装置に関する。
モデル予測制御(MPC)は、多くの用途において複合動的システムを制御するのに用いられる。そのようなシステムの例には、生産ライン、車両エンジン、ロボット、他の数値制御された機械加工、および発電機が含まれる。
MPCは、システムのモデルのリアルタイムな有限計画対象期間最適化に基づいている。MPCは、将来の事象を予期し、適切な制御動作を取る能力を有する。これは、制約を条件として将来の有限計画対象期間にわたってシステムの動作を最適化し、現在の時間ステップにわたる制御のみを実施することによって達成される。
MPCは、独立変数の変化によって引き起こされるモデル化されたシステムの従属変数の変化を予測することができる。化学プロセスでは、例えば、コントローラーが調整することができる独立変数は、多くの場合、圧力、流量、温度、弁の開度、およびダンパーの剛性である。コントローラーが調整することができない独立変数は、擾乱として扱われる。これらのプロセスにおける従属変数は、制御目標またはプロセス制約のいずれかを表す他の測定値である。
MPCは、システムのモデル、現在のシステム測定値、プロセスの現在の動的状態、並びにプロセス変数の目標および制限を用いて、従属変数の将来の変化を計算する。これらの変化は、独立変数および従属変数の双方に対する制約を条件として従属変数を目標の近くに保持するように計算される。
MPC数値方法は、所与のシステム向けに特別に設計されることが多い様々な計算装置上で実施される。計算装置は、安価な固定小数点精度の組み込みコントローラーから高性能のマルチコアコンピュータープロセッサユニット(CPU)、グラフィックス処理ユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、または専用並列コンピュータークラスターにまで及ぶことができる。
モデル予測コントローラーは、プロセスの動的モデルに依拠し、最も多くは、線形経験モデルに依拠しており、この場合、MPCは、線形である。非線形モデルまたは非線形制約を用いてシステムを記述する非線形MPC(NMPC)が、多くの場合、線形MPCと比較してより現実的であるが、計算がより難しくなる。線形MPCと同様に、NMPCは、一般に凸ではない、有限予測計画対象期間に関する最適制御問題を解くことを要し、これは、数値解をリアルタイムで取得するための難題を提起する。NMPC最適制御問題の数値解は、多くの場合、ニュートン型最適化方式に基づいている。
正確なニュートン型最適化方式は、対応するヤコビ行列の解析表式を必要とし、この解析表式は、実際には稀にしか利用可能でなく、一般的には、前進差分(FD)近似に置き換えられる。そのような近似的なニュートン型最適化方式は、制御のあらゆる時間ステップの間、元の非線形方程式のFD近似を利用する。
NMPCへの適用において、そのような近似的なニュートン型最適化は、非特許文献1に記載されている継続NMPC(CNMPC)数値方法によって実行することができる。CNMPCを用いたオンライン計算における重要で反復的な最も計算集約的ステップのうちの1つが行列方程式Ax=bの数値解法である。ここで、Aは、係数行列であり、xは、解ベクトルであり、bは、ベクトルである。この解法は、制御の時間ステップごとに変化し、係数行列Aおよびベクトルbも同様である。
解ベクトルxのエントリーは、MPC方法の出力を決定し、この出力は、システムをリアルタイムで制御するシステムの入力制御パラメーターとして用いられる。したがって、例えば、安価な処理ユニットと、これらの処理ユニットに接続された、多くの場合に低速な限られた量のメモリとを用いた組み込み式ハードウェアコントローラー上の様々なMPCの実施態様に現われる行列方程式Ax=bの高速かつ正確な解法を提供する方法が必要とされている。
CNMPCにおける係数行列Aは、明示的には与えられず、行列ベクトル積を介してのみ利用可能である。具体的には、積A*Xを計算するのに、コンピューターコードが利用可能である。ここで、Aは、係数行列であり、*は、行列と行列との積であり、Xは、単一の列ベクトル、または行列に組み立てられるいくつかの列ベクトルである。この開示において、このコンピューターコードの動作は、「係数関数」の適用と呼ばれる。ベクトルに適用された係数関数は、係数行列とそのベクトルとの積を返す。内部的には、係数関数は、非特許文献1に記載されているように、例えば、複数の微分方程式を解くことによる状態方程式および共状態方程式の評価を必要とする。
係数行列Aは、行列フォーマットではなく係数関数を介してのみ利用可能であるので、行列エントリーへのアクセスを必要とする直接的な行列ソルバーは、CNMPCでは用いられない。その代わり、係数行列Aを有さず係数関数のみを有して動作することができるいわゆる「行列なし」反復方法が用いられる。CNMPCの行列方程式Ax=bを解くための1つの従来の行列なし反復方法は、一般化最小残差(GMRES)方法である。あらゆる時間ステップの間に非線形方程式のFD近似にGMRESを用いることは、一般に、FDGMRESと呼ばれ、不正確なニュートンの方法と解釈することができる。CNMPCに関して、FDGMRESは、継続GMRES(C/GMRES)という名称が付けられている。
FDGMRESには、係数関数を伴う行列ベクトル乗算が必要とされる。計算の全体的なコストは、FDGMRESステップの最大数に比例する。FDGMRESの収束が遅い結果、制御のオンライン計算が低速化し、コントローラーにおけるリアルタイム計算において取得される制御品質が低下する。
Ohtsuka, T.「A Continuation/GMRES Method for Fast Computation of Nonlinear Receding Horizon Control」(Automatica, Vol. 40, No. 4, pp. 563-574, Apr. 2004)
例えば、内点近似に基づくCNMPC方法および他の多くのMPC方法では、連立線形方程式のオンライン数値解法が、状態の数、制約、計画対象期間、および他の重要なMPC変数を制限する主要なボトルネックとなる可能性があり、このため、困難かつ高速な実用的システムに向けたMPCの適用可能性が低減される。したがって、コントローラーにリアルタイムで必要とされる線形システムの反復解を得るためのプリコンディショナーを構築するシステムのモデル予測制御の効率性およびオンライン性能を高めることが望まれている。
モデル予測制御(MPC)は、多くの用途において用いられる。継続MPC(CMPC)等のいくつかのMPC方法は、変化する係数行列Aおよび右辺のベクトルbを有する行列方程式Ax=bを繰り返し解くことによって制御の解ベクトルxを求める。制御の時間ステップごとに、MPCは、この解ベクトルxから、システムを制御する制御動作を生成する。他の同様の例には、例えば、内点近似またはアクティブセット方法に基づくMPC方法が含まれる。
コントローラーの計算リソースに対して行列Aのサイズが潜在的に大きいことおよび係数行列Aの個々のエントリーが容易に利用可能でないことに起因して、行列方程式Ax=bの直接的な行列因数分解に基づくソルバーは、実用的でない。このため、行列方程式は、例えば、プリコンディショナー行列を有する反復方法を用いて反復的に解かれる。
前処理付き反復方法は、係数行列Aを伴う行列ベクトル乗算を必要とし、全体的な計算コストは、最大反復数に比例する。係数行列Aの計算の複雑さ、その変化する性質、および行列ベクトル乗算のみが必要であることに起因して、この反復方法は、係数行列をエントリー単位で用いる必要はなく、エントリー単位で明示的に求める必要さえもない。
その代わり、この反復方法は、ベクトルyに適用されたときに係数行列Aとベクトルyとの積、すなわちa(y)=A*yを返す係数関数a( )に依拠することができる。この係数関数は、オンラインの実施態様において制御の時間ステップごとにリアルタイムで生成されて用いられる。内部的には、係数関数の式の生成には、例えば、CMPCにおいて、複数の微分方程式を解くことが必要とされる場合がある。
本発明の様々な実施の形態は、係数行列の計算の複雑さおよび係数関数の存在にもかかわらず、係数行列の必ずしも全てではなく一部のエントリーの近似的な値を明示的に求めることが有益である可能性があるという認識に基づいている。これは、前処理付き反復方法において係数行列を用いてプリコンディショナーを求め、反復数を削減することができるからである。MPCの計算の複雑さは、最大反復数に比例するので、いくつかの実施の形態によるプリコンディショナー行列は、MPCの複雑さを低減する。
本発明の様々な実施の形態は、前処理のために、係数行列のエントリーを求める必要はあるが、この求めることは、正確である必要はなく、近似的な係数行列を用いて近似することができるという別の認識に基づいている。いくつかのMPC方法、例えばCMPCでは、前処理のために、係数行列は、係数関数を用いて暗黙的に求められるが、この係数関数は、正確である必要はなく、近似的な係数関数によって近似することができる。近似的な形態であっても係数行列の各エントリーを求めることに係数関数を用いることによって、係数行列全体の枠組みは、保存され、プリコンディショナー行列を求めて適用するオンラインリアルタイム性能は改善される。
加えて、いくつかの実施の形態は、係数行列が既知であるかまたは正確な係数関数若しくは近似的な係数関数を用いて構成されるとき、行列内の特定のロケーション上のいくつかのエントリーが、他のロケーション上のエントリーよりも大きく、時にかなり大きいことがあるという認識に基づいている。その上、そのようなパターンは、制御システムの計算、インターラクションおよびタイプが異なっても繰り返すことができる。したがって、効率的なプリコンディショナー行列を構成するために、近似的な係数行列内のエントリーの各ロケーションを有意であるかまたは有意でないと識別するロケーションのマップをオフラインで求めることが可能である。
有意でない値は、ゼロおよび非ゼロの値を含むことができる。いくつかの実施の形態は、解ベクトルを求めるためには、非ゼロの有意でない値が重要であるという認識に基づいている。しかし、意外にも、複数の異なる試験および実験の後、プリコンディショナー行列を求めるために、それらの非ゼロの有意でない値の存在または不在は、前処理付き反復ソルバーの収束速度に対して最小限の影響しか与えないことが分かった。
したがって、本発明のいくつかの実施の形態は、ロケーションのマップにおいて有意であると識別されたロケーションにおいてのみ近似的な係数行列のエントリーを求めるかまたは更新し、マップによって求められたスパース性パターンを有するこの近似的な係数行列を用いてプリコンディショナー行列を求める。本発明のいくつかの実施の形態は、特に、有意なエントリーのロケーションの提案されたマップ用にオフラインで設計された行列並べ替えパターンもプリコンディショナー行列の列および行の順序付け並びに因数分解方法に用いて、その結果、MPCのオンラインのリアルタイムの実施態様における前処理を構成して適用する計算の複雑さが低下する。
したがって、本発明の1つの実施の形態は、システムのモデル予測制御(MPC)の方法を開示する。本方法は、
ロケーションのマップにおいて有意であると識別されたロケーションにおいてのみ近似的な係数行列のエントリーをオンラインで求めることであって、前記エントリーは、前記MPCの正確な係数行列を近似するように求められ、前記ロケーションのマップは、前記近似的な係数行列内のエントリーの各ロケーションを有意であるかまたは有意でないと識別することと、
前記近似的な係数行列を用いて、プリコンディショナー行列の少なくとも一部分をオンラインで求めることであって、前記プリコンディショナー行列は、スパースであり、ブロック対角行列と異なるとともにブロック三角対角行列と異なることと、
前記プリコンディショナー行列を有する反復方法を用いて、前記正確な係数行列を有する前記MPCの行列方程式を解くことによって解ベクトルをオンラインで求めることと、
前記解ベクトルを用いて前記システムをリアルタイムで制御する制御信号をオンラインで生成することと、
を含む。本方法のステップは、少なくとも1つのプロセッサによって実行される
本発明の別の実施の形態は、各時間ステップにおいて生成された制御信号に従ってシステムを制御するモデル予測コントローラーであって、
前記システムのモデルと、近似的な係数行列および正確な係数行列と、前記近似的な係数行列内のエントリーの各ロケーションを有意であるかまたは有意でないと識別するロケーションのマップとを記憶するメモリと、
プリコンディショナー行列を求める少なくとも1つのプロセッサであって、前記プリコンディショナー行列は、ブロック(三角)対角行列ではなく、該プロセッサは、前記ロケーションのマップにおいて有意であると識別された前記プリコンディショナー行列のロケーションにおいてのみ前記近似的な係数行列のエントリーを求め、該プロセッサは、前記プリコンディショナー行列の因数分解を有する反復方法を用いて前記正確な係数行列を有する行列方程式を解いて、前記正確な係数行列を有する連立方程式の解ベクトルを生成する、少なくとも1つのプロセッサと、
前記解ベクトルを用いて前記システムを制御する前記制御信号を生成するコントローラーと、
を備える、モデル予測コントローラーを開示する。
本発明の実施の形態によるコントローラーおよびシステムのブロック図である。 本発明の実施の形態によるコントローラーのブロック図である。 本発明の実施の形態によるコントローラー上で実施されるモデル予測制御(MPC)方法のブロック図である。 本発明の1つの実施の形態によるシステムの継続MPC(CMPC)の方法のブロック図である。 本発明のいくつかの実施の形態によるMPCの行列方程式を解くプリコンディショナー行列を求めて用いる方法のブロック図である。 本発明のいくつかの実施の形態によるMPCの行列方程式を解くプリコンディショナー関数を求めて用いる方法のブロック図である。 本発明のいくつかの実施の形態による行列方程式用の前処理付き反復ソルバーの一例を示す図である。 本発明のいくつかの実施の形態による非同期並行プリコンディショナーのセットアップのブロック図である。 本発明の1つの実施の形態に従って係数関数をベクトルに並行して適用することによって係数行列を求める本発明の1つの実施の形態の図である。 ベクトルのブロックに係数関数を適用する別の実施の形態の図である。 既に記憶されたベクトルのセットを完全な状態に完成させ、この完成したものに対して係数関数を評価する1つの実施の形態のブロック図である。 本発明の1つの実施の形態によるプリコンディショナーを求めるための上下(LU)三角分解/因数分解の図である。 係数行列Aの固有値分解を用いてプリコンディショナーを求める別の実施の形態の図である。 固有値分解を用いてプリコンディショナー関数を変更する別の実施の形態の図である。 本発明のいくつかの実施の形態によるシステムの継続モデル予測制御(CMPC)の方法のフローチャートである。 行列ブロックの形態のCMPCの行列方程式の係数行列の概略図である。 いくつかの無視できるほど小さなエントリーを有するCMPCの行列方程式の係数行列の行列ブロックと、これらの小さなエントリーの代わりにゼロエントリーを有する係数行列の対応する行列ブロックとの概略図である。 本発明のいくつかの実施の形態による近似的な係数行列の要素を求める方法のフローチャートである。 本発明の1つの実施の形態によるプリコンディショナーを求める係数行列の操作の概略図である。 本発明の1つの実施の形態によるプリコンディショナーを求める係数行列の操作の概略図である。 本発明の1つの実施の形態によるプリコンディショナーを求める係数行列の操作の概略図である。 本発明の1つの実施の形態によるプリコンディショナーを求める係数行列の操作の概略図である。 本発明の1つの実施の形態によるプリコンディショナーを求める係数行列の操作の概略図である。
本発明のいくつかの実施の形態は、モデル予測制御(MPC)を用いた、システムの動作を制御するためのシステムおよび方法またはシステムのモデルに従ったシステムを提供する。
図1は、MPCコントローラー110に接続された一例示のシステム120を示している。コントローラー110は、このシステムのモデル102に従ってプログラムされる。このモデルは、システム120の状態121および出力103の経時的な変化を、現在および以前の入力111並びに以前の出力103の関数として表す一組の方程式とすることができる。このモデルは、システムの物理的限界および動作限界を表す制約104を含むことができる。動作中、コントローラーは、システムの所望の挙動を示すコマンド101を受信する。このコマンドは、例えば動きコマンドとすることができる。コマンド101の受信に応答して、コントローラーは、システムの入力としての役割を果たす制御信号111を生成する。この入力に応答して、システムは、システムの出力103および状態121を更新する。
本明細書において言及するようなシステムは、場合によっては、電圧、圧力、力等の物理量に関連付けられることがある或る特定の操作入力信号(入力)によって制御され、場合によっては、電流、流量、速度、位置等の物理量に関連付けられることがあるいくつかの制御された出力信号(出力)を返す任意の機械またはデバイスとすることができる。出力値は、一部分はシステムの以前の出力値に関係し、一部分は以前の入力値および現在の入力値に関係している。以前の入力と以前の出力との依存関係は、システムの状態に符号化される。システムの動作、例えば、システムのコンポーネントの動きは、或る特定の入力値の適用に続いてシステムによって生成される一連の出力値を含むことができる。
システムのモデルは、システム出力が現在の入力および以前の入力、並びに以前の出力の関数として経時的にどのように変化するのかを記述する一組の数学方程式を含むことができる。システムの状態は、システムのモデルおよび将来の入力とともに、システムの将来の動きを一意に規定することができる、一般に時変の任意の情報セット、例えば、現在のおよび以前の入力および出力の適切なサブセットである。
システムは、出力、入力、および場合によってはシステムの状態の操作が認められる範囲を制限する物理制約および仕様制約を受けることがある。
コントローラーは、固定または可変の制御周期サンプリング間隔で、システム出力およびシステムの動きの所望の動作を受信し、これらの情報を用いて、システムを動作させるための入力、例えば制御信号111を決定するハードウェア、またはプロセッサ、例えばマイクロプロセッサにおいて実行されるソフトウェアプログラムで実施することができる。
図2は、システムの状態121および出力103がコマンド101に従うようにシステムを作動させる本発明の実施の形態によるコントローラー110のブロック図を示している。コントローラー110は、モデル102およびシステムの動作に対する制約104を記憶するためのメモリ202に接続された単一のコンピュータープロセッサユニット(CPU)または複数のCPU201を備える。コントローラーは、システム出力および状態がコマンド101に従うようにシステムを作動させる。
いくつかの実施の形態は、システムの計画対象期間にわたるモデル予測制御(MPC)、具体的には、変化する係数行列Aおよびベクトルbを有する行列方程式Ax=bを繰り返し解くことによって制御における変化を含む解ベクトルxを求めるタイプのMPCのシステムおよび方法を提供する。各時間ステップにおいて、MPCは、解ベクトルxからシステムを制御する制御動作を生成する。いくつかの実施の形態は、非線形モデルを用いてシステムを記述する非線形MPC(NMPC)を用いる。それらの実施の形態では、CMPCは、実際にはCNMPCである。
図3Aは、本発明のいくつかの実施の形態によるシステムのMPCの方法のブロック図を示している。本方法は、コントローラー110のコンピュータープロセッサ201によっておよび/またはコントローラーのプロセッサと同時に動作する追加のプロセッサを用いて実行することができる。この例では、制御の現在の時間ステップにおけるコントローラーは、測定された状態121によってアクティブ化される。システムのモデル102および制約104は、コントローラーのメモリ202に記憶される。
図3Aにおける方法は、現在の状態103の測定された値と、制御の以前の時間ステップの計画対象期間にわたって求められた状態および制御の値310とに基づいて、システムを制御する制御信号111を生成するオンライン制御ステップを実行する。本方法は、システムモデル102、制約104、コマンド101、現在の状態103、並びに利用可能である場合には、以前の時間ステップからの状態および制御を用いて、係数行列345を生成する(340)。本方法は、係数行列345を用いて、計画対象期間にわたる制御信号の変化を含むベクトルxの行列方程式Ax=bを解き(350)、制御信号111の解ベクトル355を生成する。解く(350)ために、係数行列A345が、モデルおよび制約、並びに現在の状態103を用いて求められる(340)。解ベクトルが求められた後、本方法は、制御信号111を生成し(360)、計画対象期間にわたる状態および制御の値を更新する。これらの更新された値は、その後、制御の次の時間ステップにおいて本方法によって用いられる。いくつかの実施の形態では、本方法は、計画対象期間にわたる時間間隔全体の制御を求める(360)が、MPCによって規定されるように最も近い時間ステップの制御信号111のみを出力する。
いくつかの実施の形態は、システムの継続モデル予測制御(CMPC)のシステムおよび方法を提供する。CMPCは、変化する係数行列Aおよびベクトルbを有するCMPCの行列方程式Ax=bを繰り返し解くことによって制御の解ベクトルxを求めるタイプのMPCの特定の例である。各時間ステップにおいて、CMPCは、解ベクトルxから、システムを制御する制御動作を生成する。いくつかの実施の形態は、非線形モデルを用いてシステムを記述する非線形MPC(NMPC)を用いる。それらの実施の形態では、CMPCは、実際にはCNMPCである。
図3Bは、本発明のいくつかの実施の形態によるシステムの継続モデル予測制御(CMPC)のための方法のブロック図を示している。本方法は、コントローラー110のコンピュータープロセッサ201によっておよび/またはコントローラーのプロセッサと並行して動作する追加のプロセッサを用いて実行することができる。この例では、制御の現在の時間ステップtにおけるコントローラーは、測定された状態121によってアクティブ化される。システムのモデル102および制約104は、コントローラーのメモリ202に記憶される。
図3Bの方法は、現在の状態103の測定された値と、制御の以前の時間ステップの計画対象期間にわたって求められた状態、制御、ラグランジュ乗数の値310とに基づいてシステムを制御するための制御信号111を生成するオンライン制御ステップを実行する。
例えば、本方法は、値103および310を用いて微分方程式を解くことによってシステムのモデルに従って計画対象期間における予測された状態325を求め(320)、この予測された状態325から、カルーシュ−キューン−タッカー(KKT)最適性必要条件に従って計画対象期間における予測された共状態335を求める(330)。
本方法は、モデル、ラグランジュ乗数、状態325および共状態335、並びに値310を用いて係数関数3451を生成する(340)。本方法は、係数関数3451を用いて、計画対象期間にわたる制御信号およびラグランジュ乗数の変化を含むベクトルxの、係数行列A345を有する行列方程式Ax=bを解いて(350)、制御信号111の解ベクトル355を生成する。解350について、係数行列A345は、係数関数3451によって暗黙的に与えられる。解ベクトル355が求められた後、本方法は、制御信号111を生成し(360)、計画対象期間にわたる状態、制御、およびラグランジュ乗数の値を更新する(360)。更新された値は、制御の次の時間ステップにおいて本方法によって用いられる。
いくつかの実施の形態では、本方法は、計画対象期間にわたる全時間間隔の制御を決定する(360)が、MPCによって規定されるような最も近い時間ステップの制御信号111しか出力しない。
係数行列Aの計算の複雑さ、その変化する性質、および行列ベクトル乗算が必要であることに起因して、MPCは、通常、係数行列A345をエントリー単位で用いず、エントリー単位で明示的に求めることさえもない場合がある。その代わり、MPCは、係数関数3451に依拠する。ベクトルyに適用された係数関数a(x)3451は、係数行列A345とベクトルyとの積、すなわちa(y)=A*yを返す。内部的には、係数関数345の式の生成340には、例えば、CMPCにおいて、状態325について微分方程式を解き(320)、次いで、共状態335について微分方程式を解く(330)ことが必要とされる場合がある。
本発明の様々な実施の形態は、行列方程式Ax=bを解く。ここで、係数行列A345は、係数関数3451によって定義される。コントローラーの計算リソースに対して行列サイズが潜在的に大きいこと、および係数行列A345の個々のエントリーが容易に利用可能でない場合があることに起因して、行列方程式Ax=bの従来の直接的な行列因数分解に基づくソルバーは、実用的でないと考えられる。このため、MPCは、例えば、前処理付き一般化最小残差(GMRES)方法等の前処理付き反復方法を用いて、係数行列A345を有する行列方程式Ax=bを反復的に解くことを伴う。したがって、本発明のいくつかの実施の形態は、プリコンディショナー行列を有する反復方法を用いて行列方程式を解く。
行列AのプリコンディショナーをTとする。線形連立方程式Ax=bは、前処理付き定常反復方法xn+1=x+T(b−Ax)によって解くことができる。この定常反復は、x=x+yの形態の解の最良の近似を探索する前処理付き最小残差方法、前処理付き一般化最小残差方法および前処理付き勾配方法等のクリロフ部分空間方法によって高速化することができる。ここで、ベクトルyは、ベクトルA(b−Ax)、k=0,1,...,n−1が張るクリロフ部分空間に属する。他の高速化反復には、特殊な多項式表現x=x+p(A)(b−Ax)によって解を近似するチェビシェフ方法およびネステロフ方法が含まれる。ここで、p(A)は、次数nのチェビシェフ多項式またはネステロフ多項式のいずれかである。
本発明のいくつかの実施の形態は、係数行列A345の計算の複雑さおよび係数関数の存在にもかかわらず、係数行列A345自体の少なくともいくつかのエントリーを明示的に求めることが有益である可能性があるという認識に基づいている。これは、係数行列A345を用いて前処理付き反復方法においてプリコンディショナーを求めて、反復回数を削減することができるからである。CMPCの計算コストは、最大反復回数に比例するので、係数関数に基づいて求められたプリコンディショナーの使用によって、CMPCのコストを削減することができる。
本発明のいくつかの実施の形態は、前処理のために、係数関数を用いて係数行列の各エントリーを求めることができるが、係数関数は、正確である必要はなく、近似的な係数関数とすることができるという別の認識に基づいている。近似的な形式であっても、係数行列の各エントリーを求めるのに係数関数を用いることによって、係数行列全体にわたるCMPCの枠組みは、保存され、プリコンディショナーを求めるのに用いられる係数行列の品質は、是認される。加えてまたは代替的に、近似的な係数関数は、係数行列のエントリーを明示的に求めることがなくても、プリコンディショナーを求めるのに用いることができる。
図4Aは、本発明の1つの実施の形態によるシステムのモデル予測制御(MPC)の方法のブロック図を示している。この実施の形態は、正確な係数行列345および近似的な係数行列490のうちの一方またはそれらの組み合わせを用いて、プリコンディショナー400の少なくとも一部分を求め(401)、次いで、プリコンディショナー行列を用いた制御の現在の時間ステップにおいて正確な係数行列3451を有するCMPCの行列方程式を解くことによって解ベクトル355を求める(402)。ここで、プリコンディショナー行列は、スパースであり、ブロック(三角)対角と異なる。この実施の形態は、解ベクトル355を用いてシステムを制御するための制御信号111を生成する(403)。
正確な係数行列410とは、本明細書において用いられるとき、制御の現在の時間ステップにおける制御の解ベクトル355を求める(350)のにコントローラーによって用いられる係数行列345である。それ以外のどの係数行列も近似的である。例えば、近似的な係数行列490は、制御の異なる時間ステップについて求められた異なる正確な係数関数410、または正確な係数行列を求めるための算術計算の精度よりも低い精度を有する算術計算を用いて求められた係数行列として求めることができる。近似的な係数行列490のエントリーは、正確な係数行列410のエントリーを近似したものである。
図4Bは、本発明の1つの実施の形態によるシステムの継続モデル予測制御(CMPC)の方法のブロック図を示し、正確な係数関数4101および近似的な係数関数4901は、正確な係数行列410および近似的な係数行列490を求める。この実施の形態は、正確な係数行列410および近似的な係数行列490のうちの一方またはそれらの組み合わせを用いてプリコンディショナー400の少なくとも一部分を求め(401)、次いで、プリコンディショナー行列400を有する反復方法を用いた制御の現在の時間ステップにおいて正確な係数関数4101によって定義された正確な係数行列410を有するCMPCの行列方程式を解くことによって、解ベクトル355を求める(402)。この実施の形態は、解ベクトル355を用いてシステムを制御するための制御信号111を生成する(403)。
正確な係数関数4101とは、本明細書において用いられるとき、制御の現在の時間ステップにおける制御の解ベクトルを求めるのにコントローラーによって用いられる係数関数である。それ以外のどの係数関数も近似的である。例えば、近似的な係数関数4901は、制御の異なる時間ステップについて求められた異なる正確な係数関数、または正確な係数関数を求めるための算術計算の精度よりも低い精度を有する算術計算を用いて求められた係数関数、または微分方程式の単純化されたソルバーを用いて求められた係数関数である。
特に、ベクトルに適用された近似的な係数関数4901は、そのベクトルへの正確な係数関数4101の適用の結果を近似する。具体的には、ベクトルに適用された近似的な係数関数4901は、近似的な係数行列490とそのベクトルとの積を返し、そのベクトルに適用された正確な係数関数4101は、制御の現在の時間ステップの正確な係数行列410とそのベクトルとの積を返す。
近似的な係数関数を用いてプリコンディショナー400の少なくとも一部分を求めることは、係数行列345の個々のエントリーおよび/またはプリコンディショナー400を求める際の柔軟性を提供し、空間、時間、および/または品質においてプリコンディショナーの種々の部分を求めることの分割を可能にする。これは、近似的な係数関数4901および正確な係数関数4101のうちの一方またはそれらの組み合わせの使用が、異なるプロセッサ上で、制御の異なる時間ステップにおいて、異なる正確さで、同じ係数行列345の異なるエントリーを求めることを可能にするとともに、プリコンディショナー400を求めるためのCMPCの枠組みを依然として保存しているからである。
図4Cは、本発明の1つの実施の形態による正確な係数行列A410として定義された係数行列345と、正確な係数関数4101とを用いてMPCの行列方程式Ax=bを解くための前処理付き反復方法の一例を示している。この反復方法の一例は、前処理付き一般化最小残差(GMRES)方法である。
正確な係数関数4101は、制御の現在の時間ステップごとに求められる。代替的にまたは加えて、正確な係数行列410は、現在の時間ステップごとに求められる。また、解ベクトルxの初期近似491が求められる。例えば、ゼロベクトルまたは制御の以前の時間ステップにおいて求められた解ベクトルは、いくつかの可能な選択肢である。
MPCの反復方法は、あらゆる反復において、正確な係数行列Aを用いるかまたは正確な係数関数a(y)を伴う行列ベクトル乗算420 A*yを必要とする。ここで、ベクトルyは、解Ax=bの現在の近似xとすることができる。計算の全体的なコストは、最大反復回数に比例する。停止判定基準430は、現在の近似値xが所与の許容範囲を満たすか否か、または反復ステップの最大数kmaxに達したか否かを調べる。停止判定基準が満たされている場合(435)、反復は、停止し、ベクトルxの現在の近似値が、行列方程式Ax=bの近似解480として出力される。停止判定基準が満たされていない場合(436)、解の更新された近似値440が計算され、反復は、ステップ420へのサイクルを続け、反復インデックスkが1だけ増加される(470)。
いくつかの実施の形態は、近似的な係数行列490を用いて、プリコンディショナー行列400の少なくとも一部分を求めるかまたは更新する(450)。プリコンディショナーは、最初に生成することができ、その後、例えば、メイン反復サイクルのあらゆるステップに対して適用することができる。いくつかの実施の形態では、プリコンディショナー行列は、メイン反復サイクルの外部で生成された(450)前処理関数t()に関係しており、ベクトルに適用されたこの前処理関数t(x)=T*xは、ベクトルxに対するプリコンディショナー行列の逆行列Tの積T*xを返す。
プリコンディショナーは、例えば、メイン反復サイクルのあらゆるステップの間に適用することができる(460)。プリコンディショナーの適用460は、例えば、プリコンディショナー関数t( )が残差b−Axに作用する、すなわち、t(b−Ax)を求めることを意味することができる。前処理の適用によって、反復あたりの計算コストを大幅に増加させることなく、反復方法の収束が加速され、したがって、コントローラーの全体的な性能改善がもたらされる。
近似的な係数行列Aの近似的な逆行列が、プリコンディショナーの行列形式T450に用いられる場合、すなわち、T≒A−1である場合、前処理付き反復方法における反復回数は、根本的に削減される。所与の時間ステップにおけるプリコンディショナーTが、正確な係数行列410の逆行列と一致する正確な場合、すなわち、T=A−1である場合、前処理付き方法における反復回数は、1に削減される。しかしながら、この正確な場合は、計算的に高価である可能性があり、したがって、本発明のいくつかの実施の形態は、前処理更新またはセットアップ450および適用460を行う目的のために、近似的な係数行列(および/または近似的な係数関数)490が、それらの正確な対応するものと比較して、生成および適用がより容易で高速である可能性があるとともに、依然として高品質の前処理をもたらすことができるという認識に基づいている。
例えば、1つの実施の形態は、正確な係数関数を求めるための算術計算の精度よりも低い精度を有する算術計算を用いて近似的な係数関数を求める。この実施の形態は、プリコンディショナーTを求める目的で係数行列Aを作成および更新することは、完全な正確さを必要とせず、コンピューターベースのコントローラー上で削減された算術計算ビット数を用いて行うことができるという認識に基づいている。加えてまたは代替的に、別の実施の形態は、既に計算された近似的な係数行列関数または近似的な係数行列から低い精度の算術計算でプリコンディショナーTを求めるものである。
例えば、2倍の算術計算精度を有する従来のコンピューター処理ユニット(CPU)と、単一の算術計算精度を有するGPUとを有する混合タイプの計算環境では、制御の計算は、倍精度のCPU上で実行することができる一方、プリコンディショナーの更新またはセットアップ450は、近似的な係数行列Aの並列計算を含めて、単一精度のGPU上で実行することができる。
加えてまたは代替的に、別の実施の形態は、微分方程式用の単純化されたソルバーを用いて近似的な係数関数を求める。ここで、この単純化されたソルバーは、正確な係数関数を求めるためのソルバーよりも高速であるが、このソルバーよりも正確でない。例えば、ステップ320および330において微分方程式を解くためのソルバーは、近似的な係数関数を求めるためのソルバーの時間領域および/または空間領域において場合によっては、不均一な初期のグリッドと比較して、より大きなサイズを用いることができる。これは、オンライン計算の速度を増加させることができる一方、その結果削減された正確さは、プリコンディショナーの更新またはセットアップ450にのみ影響し、実際に計算される解480および制御信号111の正確さには影響しない。
加えてまたは代替的に、別の実施の形態は、システムの単純化された近似的なモデル102を用いて、プリコンディショナーの更新またはセットアップ450用の近似的な係数行列490または係数関数4901を求める。この実施の形態は、正確な係数関数を求めるのに用いられるシステムのモデルを近似し、このシステムの近似的なモデルを用いて近似的な係数関数を求める。そのようなモデルの近似および/または単純化の例には、NMPCの線形化、元の計画対象期間よりも短い期間の使用、および制約の単純化のうちの1つまたはそれらの組み合わせが含まれるが、これらに限定されるものではない。
いくつかの実施の形態は、係数関数4101a( )、したがって、係数行列410Aが、時間ステップごとに変化する可能性があるが、例えばNMPCにおける連続最適制御問題は、互いに類似している可能性があるので、この変化は、多くの場合、穏やかなものであるという別の認識に基づいている。
図5は、本発明のいくつかの実施の形態による、事前に求められたプリコンディショナーを更新するための方法のブロック図を示している。例えば、行列方程式を解く(530)のに用いられる係数関数は、正確な係数関数4101である。しかしながら、制御の次の時間ステップでは、この正確な係数関数は、近似的な係数関数4901となり、プリコンディショナーを更新する(520)のに用いることができる。いくつかの実施の形態では、更新520は、解く(530)こととは非同期に、例えば並列に行われる。例えば、解くことが、プロセッサ510によって実行される場合、更新520は、1つのまたは複数の異なるプロセッサ515によって実行される。他の実施の形態は、非同期的に、かつ、例えば追加のCPUまたはGPU上でのAx=bの反復ソルバーの実行と同時(すなわち、並列)にプリコンディショナーを求めることができるかまたは更新することができるという認識に基づいている。
いくつかの実施の形態では、近似的な係数関数4901は、プリコンディショナーの一部分のみを更新する(520)。この更新は、制御の異なる時間ステップにおいて繰り返し実行される。このため、この実施の形態は、複数の近似的な係数関数および/または正確な係数関数、並びに複数のプリコンディショナーを用いてプリコンディショナーを求める。そのような更新は、プリコンディショナーを求めることを、異なる時点において求められた異なる係数関数を用いることによって時間において分割することと、追加のプロセッサを用いてプリコンディショナーの同じ部分または異なる部分を更新することによって空間において分割することとを可能にする。
いくつかの実施の形態は、近似的な係数関数および正確な係数関数のうちの一方またはそれらの組み合わせを用いて求められた係数行列に基づいてプリコンディショナーを求める。例えば、係数行列が、プリコンディショナーをセットアップする時間ステップごとに正確に求められる場合、前処理付き反復方法における反復回数を1に削減することができる。係数行列が、プリコンディショナーのセットアップのためにのみ近似的であるとき、反復回数は、1よりも多くなる可能性があるが、それでも、前処理のない従来の場合と比較して少なくすることができる。したがって、いくつかの実施の形態は、プリコンディショナーを求める目的で係数関数の正確なものの計算のコストと、前処理付き反復方法における反復回数の削減との間のトレードオフを提供する。
例えば、1つの実施の形態は、以前の時間ステップの正確な係数行列Aから求められたプリコンディショナーをいくつかの後続の時間ステップに再利用する。これらの後続の時間ステップにおいて、正確な係数行列Aは、変化する場合があり、そのため、プリコンディショナーは、現在の正確な係数行列Aの近似値から求められる。この実施の形態は、プリコンディショナーの品質を監視し、その品質が低下したとき、プリコンディショナーを再計算することができる。例えば、この実施の形態は、前処理付き反復方法の収束速度が閾値未満であるとき、プリコンディショナーを再計算することができる。
代替的に、1つの実施の形態は、現在の時間よりも前のいくつかの時間ステップにおいて、予測された将来の状態について計算された係数行列から求められたプリコンディショナーをいくつかの後続の時間ステップに再利用する。この実施の形態は、MPCプロセスが、制御および予測される将来の状態を計画対象期間内に計算するという認識に基づいている。MPCは、次の時間ステップの制御のみをシステムに出力し、他の全ての計算された量を破棄するが、それらの量は、プリコンディショナーを求めるのに用いることができる。別の実施の形態では、プリコンディショナーは、制御の異なる時間ステップからプリコンディショナーを用いて、例えば外挿を用いて求められる。
いくつかの実施の形態は、反復方法を停止して、プリコンディショナーを更新する。例えば、反復方法は、或る反復ステップにおいて停止することができ、その後、新しく再計算または更新されたプリコンディショナーとともに、解の現在の反復近似値を再開される方法の初期近似値として用いて再開することができる。この場合、再開と再開との間の反復のプロセス中、プリコンディショナーは、固定される。
代替的な実施の形態は、再開することなく、再計算または更新されたプリコンディショナーを反復ソルバーにおいて用い、これによって、可変のプリコンディショナー、すなわち、あらゆる反復において変化することができるプリコンディショナーが得られる。したがって、実施の形態は、柔軟な一般化最小残差(PGMRES)方法、前処理付き最小残差(PMINRES)方法、または前処理付き共役勾配(PCG)方法等の可変の前処理を可能にする柔軟な反復方法を用いるように変更される。
加えてまたは代替的に、1つの実施の形態は、通常、所与の時間ステップにおいて開始する反復方法は、以前の時間ステップからの、おそらくは解の初期近似値から離れている情報を用いないという認識に基づいている。この情報は、収束を加速するのに利用価値がある場合があるので、この実施の形態は、時間ステップ間で反復方法を再開するのではなく、更新された係数行列A(更新された係数関数によって与えられる)および更新されたベクトルbを用いて反復の実行を維持する。この実施の形態は、可変の前処理に対してだけでなく、更新された係数行列Aおよびベクトルbに対しても柔軟な反復方法を用いる。
本発明のいくつかの実施の形態は、コントローラーメモリに記憶された正確な係数行列Aのエントリーのうちの少なくともいくつかを近似するプリコンディショナーを求める。係数行列Aのエントリーが例えばCMPCにおいて当初明示的に利用可能でないときの適用では、いくつかの実施の形態は、近似的な係数行列または正確な係数行列の各エントリーを求める。例えば、1つの実施の形態は、近似的な係数関数および正確な係数関数のうちの一方またはそれらの組み合わせを用いて近似的な係数行列の各エントリーを求め、この近似的な係数行列を用いてプリコンディショナーを求める。
1つの実施の形態は、ロケーションのマップにおいて有意であると識別されたロケーションにおいてのみ近似的な係数行列のオンラインエントリーを求め、このロケーションのマップは、近似的な係数行列内のエントリーの各ロケーションを有意であるかまたは有意でないと識別する。
さらに、別の実施の形態は、有意なロケーションのマップをオフラインで求め、有意でないとしてマッピングされたロケーションは、プリコンディショナー行列内のロケーションにおける近似的な係数行列のエントリーを無効にすることがプリコンディショナー行列を有する反復方法の収束速度を所定の第1の閾値よりも大きく維持するか否かを調べることによる解析的導出および数値シミュレーションのうちの一方またはそれらの組み合わせによって求められる。プリコンディショナー行列内のロケーションにおける近似的な係数行列のエントリーを無効にすることが反復方法の収束速度を維持するか否かを調べる解析的導出および数値シミュレーションには、オンライン制御のための正確な係数行列410全体をオフラインで求めることが必要となる場合がある。
代替的にまたは加えて、異なる実施の形態は、有意なロケーションのマップをオフラインで求める。これらの有意なロケーションは、近似的な係数行列の絶対値エントリーによる最大のもののロケーションとして求められ、ロケーションのマップによって有意であると識別された非ゼロのエントリーの数は、近似的な係数行列のエントリーの総数の所定の割合および近似的な係数行列の有意なエントリーの絶対値未満の境界を定める所定の第2の閾値のうちの一方またはそれらの組み合わせによって求められる。近似的な係数行列の絶対値エントリーによる最大のもののロケーションを求めることは、オンライン制御のための正確な係数行列410全体をオフラインで求めることによって数値的に行うことができる。
図6は、係数関数a( )601を座標ベクトルe、すなわち係数行列Aのサイズの単位行列Iの列または任意のフルランク行列Zの列zに適用することによって係数行列を求める(600)、本発明の1つの実施の形態のフローチャートを示している。係数関数601は、正確な係数関数または近似的な係数関数である。
例えば、いくつかの実施の形態は、係数関数601をベクトルzのそれぞれに並行して(610)適用して(620)、行列AZ630を取得する。これらの実施の形態は、行列AZに行列Zの逆行列を右側から乗算することによって、係数行列Aを正確または近似的に求める(640)。いくつかの変形形態では、行列Zは、単位行列Z=Iである。それらの変形形態では、乗算640は必要ではない。
係数行列Aが適切に定式化された場合、この係数行列は、対称形である。したがって、いくつかの実施の形態は、この係数行列Aの上三角部分または下三角部分のみを求める。それにもかかわらず、実施の形態のうちのいくつかでは、便宜上または速度のために、完全な係数行列Aが計算される。
コントローラーのいくつかの実施態様では、計算された完全な係数行列Aは、正確には対称形でない場合があり、これは、前処理および反復方法において数値の誤りをもたらす可能性がある。したがって、1つの実施の形態は、係数行列をその対称平均(A+A)/2に置き換える(650)ことによって係数行列を正確に対称形にする。ループ610内の計算620は、互いに完全に独立しているので、この実施の形態は、複数のプロセッサ、例えばGPUまたはFPGAを用いたマルチスレッド(並列)計算を利用することができる。したがって、この実施の形態は、係数行列の要素を並列に求めることができ、これによって、計算効率が高められる。
図7は、同じプロセッサ上で、単一のベクトルa(z)ではなくベクトルのブロックZに係数関数a(Z)を適用することによって係数行列を求める(700)本発明の1つの実施の形態のフローチャートを示している。係数関数601から係数行列Aを生成するためにここで用いられる行列Zは、その列Zのブロックに事前に分割されている(701)必要がある。あらゆるブロックが、単一の列しか含まない場合、図7の実施の形態は、図6の実施の形態と同様である。そうでない場合、ステップ710、720、および730は、ステップ610、620、および630を一般化したものである。いくつかの変形形態では、行列Zは、単位行列Z=Iである。それらの変形形態では、乗算640は、必要ではない。
同じプロセッサ上で係数関数をベクトルのブロックに適用することによって、1つの実施の形態は、高レベル基本線形代数サブプログラム(BLAS)、またはそれらの類似の代替のものを利用することが可能になる。BLASは、ベクトルおよび行列を用いた共通の線形代数演算を実行する低レベルカーネルサブルーチンのセットである。高レベルBLAS、すなわち、BLASレベル2およびBLASレベル3は、特に、データおよび命令のパイプライン化、いくつかの機能ユニットを用いた内部マルチスレッド化、およびマルチレベル内部キャッシュメモリを有するベクトルプロセッサ上でBLASを用いてプログラムの性能を改善するように意図されている。いくつかの実施の形態では、所与のコントローラーコンピューターハードウェアが、一方では、複数のプロセッサを用いたマルチスレッド計算の機会と、他方では、ベクトルプロセッサが複数のデータおよび命令を取り扱う能力とをバランスさせるように、行列Zのブロックへの分割を最適化することができる。
いくつかの実施の形態は、近似的な係数行列の選択されたエントリーの所定のオフラインマップを用いてプリコンディショナー行列のエントリーをオンラインで求める。近似的な係数行列の選択されたエントリーは、以下のように近似的な係数関数を用いてオンラインで効率的に求めることができる。
図6のように、係数関数a( )601を座標ベクトルeに適用することによって、係数行列の第i列全体を求めることができる。図7のように、係数関数a( )601を座標ベクトルの関係するブロックに適用することによって、係数行列の列のブロック全体を求めることができる。係数行列の対応する行は、係数行列の対称性を用いて、転置演算を既に求められている列に用いることによって求めることができる。
係数行列の個々のエントリーは、例えば、システムモデル102および制約104を用いてオフラインで導出された解析公式を適用することによってオンラインで求めることができる。例えば、係数関数601が前進差分を解析的に導出された1次導関数に適用して取得されるCMPCでは、係数行列の個々のエントリーを記述する解析公式の個々のエントリーは、2次導関数を得ることによって取得することができる。
係数行列Aのエントリーを入手することができることによって、行列係数関数a( )の逆関数を近似する前処理関数t( )を求めることが可能になる。図8、図9および図10は、プリコンディショナー行列の様々な行列因数分解および固有値分解または特異値分解に基づくプリコンディショナーの作成および更新を具体的に説明する例示の実施の形態の図を示している。
図8は、プリコンディショナー行列800の上下(LU)三角因数分解(または分解)の一例を示している。近似的な係数行列A800は、事前に求められ、メモリに記憶される。プリコンディショナーセットアップ810が、三角因数分解A=LUを求める。ここで、行列Lは、下三角行列であり、行列Uは、上三角行列である。プリコンディショナー関数t(b)の適用820は、次のステップを含む。行列方程式Ly=bが、行列Lが下三角行列であることを用いて、後退代入によって解かれる(830)。行列方程式Uz=yが、行列Uが上三角行列であることを用いて、後退代入によって解かれる(840)。最後に、プリコンディショナーが、t(b)=zとして求められる(850)。
近似的な係数行列Aが対称行列であるとき、下対角転置下側因数分解A=LDLが、LU因数分解よりも効率的である。Aが対称正定値行列である場合、本発明の1つの実施の形態では、コレスキー因数分解A=LLが前処理に用いられる。
いくつかの状況では、直交上側因数分解A=QRまたはシュ−ル因数分解A=QRQが前処理に役立つ場合がある。ここで、Qは、直交行列であり、Rは、三角行列である。
図9は、直交変換Qを用いるとともに、対称反三角行列Kを選択することによって行列Aの対称性を利用する反三角因数分解(または分解)A=QKQの図を示している。ここで、Tは、転置行列演算である。近似的な係数行列A900は、事前に求められ、メモリに記憶されている。プリコンディショナーのセットアップ910は、反三角因数分解A=QKQを求める。ここで、行列Qは、直交性を有し、行列Kは、対称反三角形である。プリコンディショナー関数の適用t(b)920は、次のステップを含む。行列Qの逆行列は、行列方程式の右辺bにy=Qbとして適用される(930)。行列方程式Kz=yは、行列Kが反三角形であることを用いて後退代入によって解かれる(940)。最後に、プリコンディショナーは、t(b)=Qzとして求められる(950)。
この反三角形分解に基づく前処理の結果、行列Aが正定値でない場合には、正定値でない対称プリコンディショナーT=A−1が得られる。これは、適切な反復ソルバー、例えば前処理付きGMRESを選択する際に考慮に入れられる。
図10は、図9の実施の形態に加えてまたはこれに代えて用いることができる別の実施の形態のブロック図を示している。この実施の形態では、プリコンディショナーのセットアップ1010は、行列A=VΣVの固有値分解を求める。ここで、Vは、列固有ベクトルの直交行列であり、Σは、固有値から作成された対角行列であり、演算は、行列転置を表す。固有値分解は、ステップ1030、1040、および1050に示すように、T=V|Σ|−1によって与えられる対称正定値絶対値プリコンディショナー(AVP)を作成するのに用いられる(1020)。直接的なソルバー1040では、この実施の形態は、対角行列Σの対角エントリーの絶対値を反転する。Aが対称行列でないとき、AVPプリコンディショナーは、Aの極分解またはAの特異値分解によって構成される。
対称正定値AVP Tの利点は、前処理付きMINRES反復方法の使用が、行列方程式Ax=bを解くことを可能にするということである。MINRESは、前処理付きGMRESと比較して、より確実かつより高速に収束することでき、したがって、高速に変化するシステムを制御することが可能な高クロックレートを有する信頼できるコントローラーをもたらす。
図11は、行列Aの固有値分解または特異値分解を用いることによって前処理関数t( )を変更する(1120)別の実施の形態を示している。この実施の形態は、プリコンディショナーがいくつかの時間ステップについて更新されていない場合、その品質が低下し、その結果、Ax=bを解くための前処理付き反復方法の収束が遅くなるという認識に基づいている。数学的には、そのような低速化は、行列Aの条件数の増加に関係しており、プリコンディショナーを変更して、遅い収束の原因である行列Aのいくつかの(閾値を用いる)特異ベクトルまたは固有ベクトルY1100をデフレートまたは強化することによって取り除くことができる。
例えば、プリコンディショナーをAVP等の対称正定値とし、Yを、t(A)の絶対値固有値によるいくつかの最小値およびいくつかの最大値に対応する固有ベクトルである列を有する行列1100を表すものとする。これらの固有ベクトルは、例えば、以前の時間ステップにおいて計算することができる。1つの実施の形態は、Yに含まれる固有ベクトルを検討から除外し、したがって、前処理付き反復ソルバーの収束を加速するデフレーションを用いて、前処理関数t( )を新たな前処理関数t( )に変更する(1120)。例えば、この実施の形態は、t( )をt()=Pt()として数学的に定義する(1130)ことができる。ここで、Pは、補空間における行列Yの範囲へのプロジェクター1110である。
加えてまたは代替的に、いくつかの実施の形態は、行列方程式Ax=bの反復ソルバーの遅い収束が、小次元部分空間に由来する場合があるという認識に基づいている。プリコンディショナー関数においてこの部分空間を検出し、これをデフレートすることによって、反復ソルバーの収束を加速させることができる。この部分空間は、誤差伝播演算子の固有ベクトルに関係し、以前の時間ステップにおいてまたは反復の過程において計算することができる。正確な係数関数は、あらゆる時間ステップにおいて変化するので、1つの実施の形態は、CMPC行列方程式Ax=bを解くための反復ソルバーの実行中およびこの実行と並行して、すなわち並列に、デフレートした部分空間の少なくとも一部分を更新する。
係数行列のスパース再構成
本発明のいくつかの実施の形態は、係数行列が正確な係数関数または近似的な係数関数を用いて構成されるとき、行列内の特定のロケーション上のいくつかのエントリーは、他のロケーション上のエントリーよりも大きく、時にかなり大きいこともあるという認識に基づいている。そのようなパターンは、制御システムの計算、インターラクションおよびタイプが異なっても繰り返すことができる。したがって、近似的な係数行列内のエントリーの各ロケーションを有意であるかまたは有意でないと識別するロケーションのマップをオフラインで求めることが可能である。
本発明のいくつかの実施の形態は、解ベクトルを求めるためには、非ゼロの有意でない値が重要であるという認識に基づいている。しかし、意外にも、複数の異なる試験および実験の後、プリコンディショナーを求めるために、それらの非ゼロの有意でない値の存在または不在は、反復ソルバーの収束に対して最小限の影響しか与えないことが分かった。
したがって、本発明のいくつかの実施の形態は、ロケーションのマップにおいて有意であると識別されたロケーションにおいてのみ近似的な係数行列のエントリーを更新し、この近似的な係数行列を用いてプリコンディショナーを求める。
図12は、上述した認識を利用した本発明の1つの実施の形態によるシステムの継続モデル予測制御の方法のブロック図を示している。この実施の形態は、ロケーションのマップ1205において有意であると識別されたロケーションにおいてのみ近似的な係数行列のエントリーを更新する(1210)。例えば、エントリーは、近似的な係数関数および正確な係数関数のうちの一方またはそれらの組み合わせを用いて、近似的な係数行列内のエントリーの各ロケーションを有意であるかまたは有意でないと識別するロケーションのマップに従って更新される。ロケーションのマップは、オフラインで求めて、プロセッサに作動接続されたメモリ、例えばメモリ202に記憶することができる。
本方法は、近似的な係数行列を用いてプリコンディショナーを求め(1220)、このプリコンディショナーを有する反復方法を用いた制御の現在の時間ステップにおいて、正確な係数関数によって定義された係数行列を有するCMPCの行列方程式を解くことによって解ベクトルを求める(1230)。上記で説明したように、ベクトルに適用される近似的な係数関数は、正確な係数関数をベクトルに適用した結果を近似する。次に、本方法は、解ベクトルを用いてシステムを制御する制御信号を生成する。
図13は、ブロック形態1300の係数行列の各ブロックエントリーを有意であるかまたは有意でないと識別するロケーションのマップの一例を示している。この例では、例えば、ロケーションのマップは、インデックス22、23、および32を有するブロックを有意であると識別する一方、他の全てのブロックは、有意でない。この例におけるロケーションのマップは、有意でないブロックのロケーションを示す0のエントリーと、有意なブロックのロケーションのエントリー1とを有する3×3バイナリー行列1310とすることができる。対称係数行列の場合、有意性のインジケーター(0または1)のバイナリー行列も対称行列であり、このため、インジケーターのバイナリー行列の上三角部分のみを記憶する必要がある。ロケーションのマップは、異なる形態を有することができ、係数行列の各エントリーを個別に識別することもできるし、エントリーのグループまたはブロックの一部として、例えば行列ブロックの形態で識別することもできる。いくつかの実施の形態では、ロケーションのマップは、行列Aをオンラインで実際に構成することなく、解析的または数値的にオフラインで求められる。
例えば、いくつかの実施の形態では、係数行列は、ラグランジュ関数のヘッセ行列またはヘッセ行列のシュ−ル補行列である。ヘッセ行列は、スパースである。すなわち、そのエントリーのほとんどは0である。非ゼロのエントリーが、ロケーションのマップを規定し、いくつかのブロック対角若しくはブロック行およびブロック列、または双方の組み合わせを形成する。ブロックサイズは、通常、小さく、これによって、ロケーションのマップを解析的に求めることが可能になる。例えば、非ゼロのエントリーは、解析公式および/または係数関数によって定義することができる。
同様に、ヘッセ行列のシュ−ル補行列は、非ゼロのエントリーのより複雑な構造を有し、この構造において、いくつかの非ゼロのエントリーは、有意でない。例えば、いくつかの変数の変動が、隣接した継続ステップ間でラグランジュ関数の閾値未満の変化を引き起こす場合、そのような変動は、破棄することができ、その結果、効率的な前処理に適した有意なエントリーの単純なスパース構造が得られる。この挙動は、状態変数および共状態変数について観測されることが多い。なぜならば、それらの変数は、ラグランジュ関数において時間ステップを乗算されるからである。
図14は、ロケーションのマップに従って求められたいくつかの無視できるほど小さなエントリー1410、1420、1430および1440を有するCMPCの行列方程式の係数行列Aの行列ブロックと、それらの小さなエントリーの代わりにデフォルト値、例えば、ゼロエントリー1415、1425、1435、および1445を有する近似的な係数行列Mの対応する行列ブロックとを示している。そのようにして、ロケーションのマップは、近似的な係数行列Bのスパース性パターンを要素ごとまたはブロックごとに定義する。
図15は、正確な係数行列Aを最初にオンラインで求めることなく、近似的な係数行列Bの行列ブロックを直接求める1つの実施の形態による方法のフローチャートを示している。この実施の形態は、ブロックスパース形態の近似的な係数関数を求め(1510)、近似的な係数行列Bの有意なエントリーのみを更新して(1520)、プリコンディショナー1515を求める。図15の方法の結果、計算的に安価な高品質のプリコンディショナー1515が得られ、継続モデル予測制御に基づくコントローラーのより高速でより効率的なオンライン性能がもたらされる。
1つの実施の形態では、前処理セットアップは、図8のように、近似的な係数行列M=Aの上下(LU)因数分解を含む。因数分解コストは、Mの非ゼロのエントリーの構造に依存する。非ゼロのエントリーが、例えば、矢印表示構造のような少数のブロック対角および/またはブロック行およびブロック列を含む場合、コストは少ない。その上、プリコンディショナーの適用のコストは、因数LおよびU内の非ゼロの要素の数に比例する。
図16Aは、本発明の1つの実施の形態による継続モデル予測制御の最小時間問題について求められた係数行列A1610の概略図を示している。係数行列A1610は、スパースであるが、複数の非ゼロのエントリー1620を含む。これらのエントリー1620は、単一の要素または要素のブロックとすることができる。係数行列Aの列は、係数関数a( )によって求められる。Aのいくつかの非ゼロのエントリーは、小さな値、すなわち前処理にとって有意でない値であり、0に置き換えることができる。いくつかの実施の形態では、非有意性についての判定は、計算を伴うことなく解析的に行われる。
図16Bは、本発明の1つの実施の形態による係数行列1610の有意でないエントリーを0に置き換えた結果得られる近似的な係数行列M1630の概略図を示している。結果として得られた近似的な係数行列Mは、有利なスパース構造を有し、前処理行列として用いることができる。行列Mのエントリーのほとんどは、前処理のために近似的に求められる。いくつかの実施の形態は、状態変数および共状態変数の「フローズン」タイプの削除に基づいてエントリーを求める高速な公式を用いる。その結果、行列Mの全ての非ゼロのエントリーは、O(N)の算術演算によって計算することができる。ここで、Nは、後退ホライズン上のグリッド点の数である。
図16Cは、本発明の1つの実施の形態によって求められる並べ替えられた前処理行列
Figure 2017084343
1640の概略図を示している。この実施の形態は、並べ替えられた前処理行列
Figure 2017084343
1640の非ゼロの値を対角位置に向けて移動させるように行列M1630の列および行を並べ替える。例えば、この実施の形態は、並べ替えられた前処理行列
Figure 2017084343
1640の対角が狭い帯を有する行列1645に収集されるように、行列Mの行および列の同時並べ替えPを実行する。PP=Iであるので、方程式Mx=rは、方程式
Figure 2017084343
と等価である。ここで、
Figure 2017084343
である。そのような並べ替えによって、近似的な係数行列MのLU因数分解は、単純化される。
図16Dおよび図16Eは、本発明の1つの実施の形態による近似的な係数行列MのLU因数分解の下三角因数Lの行列1650および上三角因数Uの行列1660の概略図を示している。この実施の形態では、行列
Figure 2017084343
のLU因数分解は、三角因数LおよびUを有する。
Figure 2017084343
であるので、前処理方程式Mx=rの解は、単純化することができ、以下の式に従ってO(N)の算術演算でその値を求めることができる。
Figure 2017084343
本発明の上記の実施の形態は、数多くの方法のいずれかにおいて実現することができる。例えば、それらの実施の形態は、ハードウェア、ソフトウェアまたはその組合せを用いて実現することができる。ソフトウェアにおいて実現されるとき、そのソフトウェアコードは、単一のコンピューター内に設けられるにしても、複数のコンピューター間に分散されるにしても、任意の適切なプロセッサ、またはプロセッサの集合体において実行することができる。そのようなプロセッサは、集積回路として実現することができ、集積回路コンポーネント内に1つまたは複数のプロセッサが含まれる。しかしながら、プロセッサは、任意の適切な構成の回路を用いて実現することができる。
また、本明細書において概説される種々の方法またはプロセスは、種々のオペレーティングシステムまたはプラットフォームのいずれか1つを利用する1つまたは複数のプロセッサ上で実行可能であるソフトウェアとしてコード化することができる。さらに、そのようなソフトウェアは、いくつかの適切なプログラミング言語および/またはプログラミングツール若しくはスクリプト記述ツールのいずれかを用いて書くことができ、フレームワークまたは仮想機械上で実行される実行可能機械語コードまたは中間コードとしてコンパイルすることもできる。通常、プログラムモジュールの機能は、種々の実施の形態において望ましいように、組合せることもできるし、分散させることもできる。
また、本発明の実施の形態は、方法として具現することができ、その一例が提供されてきた。その方法の一部として実行される動作は、任意の適切な方法において順序化することができる。したがって、例示的な実施の形態において順次の動作として示される場合であっても、例示されるのとは異なる順序において動作が実行される実施の形態を構成することもでき、異なる順序は、いくつかの動作を同時に実行することを含むことができる。

Claims (20)

  1. システムのモデル予測制御(MPC)の方法であって、
    ロケーションのマップにおいて有意であると識別されたロケーションにおいてのみ近似的な係数行列のエントリーをオンラインで求めるステップであって、前記エントリーは、前記MPCの正確な係数行列を近似するように求められ、前記ロケーションのマップは、前記近似的な係数行列内のエントリーの各ロケーションを有意であるかまたは有意でないと識別する、エントリーをオンラインで求めるステップと、
    前記近似的な係数行列を用いて、エントリーをオンラインでプリコンディショナー行列の少なくとも一部分をオンラインで求めるステップであって、前記プリコンディショナー行列は、スパースであり、ブロック対角行列と異なるとともにブロック三角対角行列と異なる、プリコンディショナー行列を求めるステップと、
    前記プリコンディショナー行列を有する反復方法を用いて、前記正確な係数行列を有する前記MPCの行列方程式を解くことによってオンラインで解ベクトルを求めるステップと、
    前記解ベクトルを用いて前記システムをリアルタイムで制御する制御信号をオンラインで生成するステップと
    を含み、該方法のステップは、少なくとも1つのプロセッサによって実行される、方法。
  2. 前記有意なロケーションのマップをオフラインで求めるステップであって、該ロケーションのマップを、前記プロセッサに作動接続されたメモリに記憶する、マップをオフラインで求めるステップをさらに含み、
    有意でないとしてマッピングされたロケーションは、前記プリコンディショナー行列内の前記ロケーションにおける前記近似的な係数行列のエントリーを無効にすることが、前記プリコンディショナー行列を有する前記反復方法の収束速度を所定の第1の閾値よりも大きく維持するか否かを調べることによる解析的導出および数値シミュレーションのうちの一方またはそれらの組み合わせによって求められる、請求項1に記載の方法。
  3. 前記有意なロケーションのマップをオフラインで求めるステップであって、該ロケーションのマップを、前記プロセッサに作動接続されたメモリに記憶する、マップをオフラインで求めるステップをさらに含み、
    前記有意なロケーションは、前記近似的な係数行列の絶対値エントリーによる最も大きなもののロケーションとして求められ、前記ロケーションのマップによって有意であると識別された非ゼロのエントリーの数は、前記近似的な係数行列のエントリーの総数の所定の割合および前記近似的な係数行列の前記有意なエントリーの絶対値未満の境界を定める所定の第2の閾値のうちの一方またはそれらの組み合わせによって求められる、請求項1に記載の方法。
  4. 前記プリコンディショナー行列は、ブロック行列として求められ、各ブロックは、ブロック対角行列と低ランク行列との和として求められ、前記ブロックの前記ロケーションおよびサイズは、オフラインで求められる、請求項1に記載の方法。
  5. 近似的な係数関数および正確な係数関数を求めるステップであって、ベクトルに適用される前記近似的な係数関数は、前記正確な係数関数を前記ベクトルに適用した結果を近似するものであり、前記ベクトルに適用される前記近似的な係数関数は、前記近似的な係数行列と前記ベクトルとの積を返し、前記ベクトルに適用される前記正確な係数関数は、前記正確な係数行列と前記ベクトルとの積を返す、近似的な係数関数および正確な係数関数を求めるステップと、
    前記近似的な係数関数および前記正確な係数関数のうちの一方またはそれらの組み合わせを用いて、前記近似的な係数行列の前記エントリーをオンラインで更新するステップと
    をさらに含む、請求項1に記載の方法。
  6. 前記正確な係数行列を求める算術の精度よりも低い精度を有する算術を用いて、前記近似的な係数行列を求めるステップ
    をさらに含む、請求項1に記載の方法。
  7. 前記正確な係数行列内のエントリーの少なくとも1つのブロックの近似的な削除を用いて前記近似的な係数行列を求めるステップ
    をさらに含む、請求項1に記載の方法。
  8. 前記システムのモデルを用いて前記正確な係数行列を求めるステップと、
    前記システムの前記モデルを近似するステップと、
    前記システムの前記近似的なモデルを用いて前記近似的な係数行列を求めるステップと
    をさらに含む、請求項1に記載の方法。
  9. 前記近似的な係数行列は、前記制御の異なる時間ステップについて求められた前記正確な係数行列である、請求項1に記載の方法。
  10. 前記解くことは、メイン制御ルーチンの間にコントローラープロセッサによって実行され、前記方法は、
    少なくとも1つの追加のプロセッサを用いて前記メイン制御ルーチンと並列に、前記近似的な係数行列、前記プリコンディショナー行列、および前記プリコンディショナー行列の因数分解のうちの1つまたはそれらの組み合わせを求めるステップ
    をさらに含む、請求項1に記載の方法。
  11. 前記MPCは、前進差分ニュートン−クリロフ前処理付き反復方法によって前記MPCの必要な最適性条件を近似的に解く継続MPCである、請求項1に記載の方法。
  12. 前記プリコンディショナー行列を求めるステップは、
    前記近似的な係数行列の行および列を並べ替えて、前記プリコンディショナー行列を生成することを含み、前記並べ替えのパターンは、前記プリコンディショナー行列の因数分解のメモリ使用量およびコストを最小にする前記行および前記列の順序付けを行うようにオフラインで求められる、請求項1に記載の方法。
  13. 因数分解方法を用いて前記プリコンディショナー行列をオンラインで因数分解するステップをさらに含み、前記因数分解は、
    上下因数分解、下対角下転置因数分解、シュ−ル因数分解、コレスキー因数分解、直交上側因数分解、および反三角因数分解、極分解、固有値分解および特異値分解、並びにそれらのブロックバージョンのうちの1つまたはそれらの組み合わせを含む、請求項1に記載の方法。
  14. 前記反復方法は、
    前処理付き定常方法、前処理付きクリロフ部分空間方法、前処理付き最小残差方法、前処理付き一般化最小残差方法、前処理付き勾配方法、前処理付きチェビシェフ方法、および前処理付きネステロフ方法のうちの1つまたはそれらの組み合わせを含む、請求項1に記載の方法。
  15. 前記プリコンディショナー行列を求めるステップは、
    前記プリコンディショナー行列を対称正定値行列として求めることを含み、前記反復方法は前処理付き最小残差方法である、請求項1に記載の方法。
  16. 前記反復方法の収束の速度を求めるステップと、
    前記収束の速度が閾値未満である場合、前記プリコンディショナー行列を更新するステップと
    をさらに含む、請求項1に記載の方法。
  17. プリコンディショナー関数を用いて前記反復方法を求めるステップをさらに含み、ベクトルに適用される前記プリコンディショナー関数は、前記プリコンディショナー行列の逆行列と前記ベクトルとの積を近似するものである、請求項1に記載の方法。
  18. 現在の時間ステップの前記反復方法の実行の間に前記プリコンディショナー行列を少なくとも部分的に更新するステップをさらに含み、前記反復方法は、前記プリコンディショナー行列が可変のプリコンディショナー行列であるように、前記プリコンディショナー行列の更新と同期して再開されるかまたは柔軟な反復方法である、請求項1に記載の方法。
  19. 前記解ベクトルを求めるステップは、
    前記制御の以前の時間ステップから前記反復方法の反復を再開することなく、前記制御の現在の時間ステップにおいて、前記反復方法における前記行列方程式を更新することを含み、前記反復方法は、前記行列方程式が可変の行列方程式であるように柔軟な反復方法である、請求項1に記載の方法。
  20. 各時間ステップにおいて生成された制御信号に従ってシステムを制御するモデル予測コントローラーであって、
    前記システムのモデルと、近似的な係数行列および正確な係数行列と、前記近似的な係数行列内のエントリーの各ロケーションを有意であるかまたは有意でないと識別するロケーションのマップとを記憶するメモリと、
    プリコンディショナー行列を求める少なくとも1つのプロセッサであって、前記プリコンディショナー行列は、ブロック三角対角行列ではなく、該プロセッサは、前記ロケーションのマップにおいて有意であると識別された前記プリコンディショナー行列のロケーションにおいてのみ前記近似的な係数行列のエントリーを求め、該プロセッサは、前記プリコンディショナー行列の因数分解を有する反復方法を用いて前記正確な係数行列を有する行列方程式を解いて、前記正確な係数行列を有する連立方程式の解ベクトルを生成する、少なくとも1つのプロセッサと、
    前記解ベクトルを用いて前記システムを制御する前記制御信号を生成するコントローラーと
    を備える、モデル予測コントローラー。
JP2016174332A 2015-10-29 2016-09-07 システムのモデル予測制御の方法およびモデル予測コントローラー Pending JP2017084343A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/926,650 2015-10-29
US14/926,650 US10209685B2 (en) 2015-10-29 2015-10-29 Method and apparatus for preconditioned model predictive control

Publications (2)

Publication Number Publication Date
JP2017084343A true JP2017084343A (ja) 2017-05-18
JP2017084343A5 JP2017084343A5 (ja) 2019-07-18

Family

ID=58635561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016174332A Pending JP2017084343A (ja) 2015-10-29 2016-09-07 システムのモデル予測制御の方法およびモデル予測コントローラー

Country Status (2)

Country Link
US (1) US10209685B2 (ja)
JP (1) JP2017084343A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019113926A (ja) * 2017-12-21 2019-07-11 株式会社Ihi モデル予測制御装置
CN110239362A (zh) * 2019-06-19 2019-09-17 北京理工大学 一种分布式电驱动车辆多性能优化力矩分配方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6601222B2 (ja) * 2016-01-04 2019-11-06 富士通株式会社 行列演算プログラム、行列分割方法、及び並列処理装置
US11461514B2 (en) * 2018-09-24 2022-10-04 Saudi Arabian Oil Company Reservoir simulation with pressure solver for non-diagonally dominant indefinite coefficient matrices
EP4110668A4 (en) * 2020-02-24 2024-06-12 Ground Transportation Systems Canada Inc. CONTROL DEVICE, CONTROL SYSTEM AND CONTROL METHOD FOR VEHICLE CONTROL
JP7673412B2 (ja) * 2021-01-15 2025-05-09 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム
US11907715B2 (en) 2021-12-20 2024-02-20 International Business Machines Corporation Hardware acceleration with preconditioners
CN115408653B (zh) * 2022-11-01 2023-03-21 泰山学院 一种IDRstab算法高可扩展并行处理方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5107452A (en) * 1987-09-04 1992-04-21 At&T Bell Laboratories Computation optimizer
US7317953B2 (en) * 2003-12-03 2008-01-08 Fisher-Rosemount Systems, Inc. Adaptive multivariable process controller using model switching and attribute interpolation
US20070055392A1 (en) * 2005-09-06 2007-03-08 D Amato Fernando J Method and system for model predictive control of a power plant
US8204925B2 (en) * 2008-05-22 2012-06-19 National Instruments Corporation Controlling or analyzing a process by solving a system of linear equations in real-time
JP5570038B2 (ja) * 2009-03-24 2014-08-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 連立1次方程式を処理するための装置およびコンピュータ・プログラム
JP5834759B2 (ja) * 2011-02-28 2015-12-24 富士通株式会社 行列生成プログラム、方法及び装置、並びにプラント制御プログラム、方法及び装置
US20130085730A1 (en) * 2011-10-04 2013-04-04 Gareth J. Shaw Preconditioner for reservoir simulation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019113926A (ja) * 2017-12-21 2019-07-11 株式会社Ihi モデル予測制御装置
CN110239362A (zh) * 2019-06-19 2019-09-17 北京理工大学 一种分布式电驱动车辆多性能优化力矩分配方法

Also Published As

Publication number Publication date
US10209685B2 (en) 2019-02-19
US20170123388A1 (en) 2017-05-04

Similar Documents

Publication Publication Date Title
JP6265931B2 (ja) システムの連続モデル予測制御のための方法およびシステムを制御するための連続モデル予測コントローラー
JP2017084343A (ja) システムのモデル予測制御の方法およびモデル予測コントローラー
CN107016154B (zh) 用于对结构动力学系统的机械特征进行建模的方法和系统
EP3504666B1 (en) Asychronous training of machine learning model
US20090292511A1 (en) Controlling or Analyzing a Process by Solving A System of Linear Equations in Real-Time
JP2017084343A5 (ja)
EP2680157B1 (en) Co-simulation procedures using full derivatives of output variables
CN116306786B (zh) 一种基于深度学习的电磁作动器非线性补偿方法
Glamsch et al. Methods for increased efficiency of FEM-based topology optimization
KR102257530B1 (ko) 데이터 기반 함수 모델의 그래디언트를 결정하기 위한 방법 및 장치
EP3338148B1 (en) Providing real-time feedback to a user from states of a model physical system via a surrogate function
Jones et al. Performance Analysis of kriging and neural network modelling of hypersonic vehicle properties
Younes et al. High-order uncertainty propagation using state transition tensor series
CN114781207A (zh) 基于不确定性和半监督学习的热源布局温度场预测方法
Jadoui et al. Recycling krylov subspaces for efficient partitioned solution of aerostructural coupled adjoint systems
Steiger et al. Using automatic differentiation to compute derivatives for a quantum-chemical computer program
Amorim et al. Node-to-node realization of meshless local Petrov Galerkin (MLPG) fully in GPU
Sapetina Supercomputer-aided comparison of the efficiency of using different mathematical statements of the 3D geophysical problem
Wang Interactive virtual prototyping of a mechanical system considering the environment effect. Part 2: Simulation quality
EP4402608B1 (en) System and method for training of neural network model for control of high dimensional physical systems
Rao et al. Parallel solution of DDDAS variational inference problems
Niu et al. Spatio-temporal gaussian processes modeling of dynamical systems in systems biology
Babu et al. FPGA implementation of multi-dimensional Kalman filter for object tracking and motion detection
Idris et al. Accelerating the Convergence of Poorly-Scaled Optimization Problems
Bui Hardware and software acceleration for Hamilton-jacobi reachability analysis

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190614

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190614

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190614

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191029

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200212