
最適制御理論は、目的関数が最適化されるように、一定期間にわたって動的システムの制御を見つけることを扱う制御理論の一分野です。 [ 1 ]科学、工学、オペレーションズリサーチにおいて数多くの応用例があります。たとえば、動的システムはロケットスラスタに対応する制御を備えた宇宙船であり、目的は最小限の燃料消費で月に到達することです。[ 2 ]または、動的システムは失業率を最小化することを目的とした国家経済である可能性があり、この場合の制御は財政政策と金融政策です。[ 3 ]また、オペレーションズリサーチの問題を最適制御理論の枠組みに組み込むために動的システムを導入することもできます。 [ 4 ] [ 5 ]
最適制御は変分法の拡張であり、制御方針を導出するための数学的最適化手法である。[ 6 ]この手法は、エドワード・J・マクシェーンによる変分法への貢献の後、1950年代のレフ・ポントリャーギンとリチャード・ベルマンの研究に大きく起因している。[ 7 ]最適制御は、制御理論における制御戦略と見なすことができる。[ 1 ]
最適制御は、与えられたシステムに対して、ある最適性基準を満たす制御法則を見つける問題を扱います。制御問題には、状態変数と制御変数の関数であるコスト関数が含まれます。最適制御は、コスト関数を最小化する制御変数の経路を記述する一連の微分方程式です。最適制御は、ポントリャーギンの最大原理(ポントリャーギンの最小原理または単にポントリャーギンの原理としても知られる必要条件) [ 8 ]を使用するか、ハミルトン・ヤコビ・ベルマン方程式(十分条件)を解くことによって導出できます。
まずは簡単な例から始めましょう。起伏のある道路を直線で走行する車を考えてみましょう。問題は、総走行時間を最小にするために、運転手はアクセルペダルをどのように踏むべきかということです。この例では、制御法則とは、運転手がアクセルを踏み込み、ギアを切り替える方法を具体的に指します。システムは車と道路の両方で構成され、最適性の基準は総走行時間の最小化です。制御問題には通常、付随的な制約が含まれます。例えば、使用可能な燃料の量に制限があったり、アクセルペダルを車の床まで踏み込むことができなかったり、速度制限があったりします。
適切なコスト関数とは、速度、幾何学的条件、およびシステムの初期条件の関数として移動時間を表す数式である。制約条件は、多くの場合、コスト関数と互換性がある。
関連する最適制御問題としては、ある一定時間内に所定のコースを走行しなければならないという条件の下で、燃料消費量を最小限に抑える運転方法を見つけることが挙げられる。また、時間と燃料の想定価格を考慮した上で、旅行を完了するための総費用を最小限に抑えることも、関連する制御問題と言えるだろう。
より抽象的な枠組みは以下のとおりである。[ 1 ] 連続時間コスト関数を最小化する 一次動的制約(状態方程式) に従う 代数的経路制約 終点条件 どこ状態は、コントロールは、は独立変数(一般的には時間)であり、は初期時刻であり、は終了時刻です。そしてこれらはそれぞれ終点コストと実行コストと呼ばれます。変分法では、そしてこれらはそれぞれ、マイヤー項とラグランジアンと呼ばれます。さらに、経路制約は一般に不等式制約であるため、最適解では有効(つまりゼロ)にならない場合があることに注意してください。また、上述の最適制御問題には複数の解が存在する可能性があることにも注意してください(つまり、解が一意ではない可能性があります)。したがって、多くの場合、任意の解は最適制御問題では、局所的に最小化します。
前節で述べた一般的な非線形最適制御問題の特殊なケースとして、線形二次(LQ)最適制御問題がある。LQ問題は次のように定式化される。二次連続時間コスト関数を 最小化する。
線形一次動的制約 に従う そして初期条件
多くの制御システム問題で発生する LQ 問題の特定の形式は、すべての行列 (つまり、、、、 そして)は定数であり、初期時間は任意にゼロに設定され、終了時間は極限で取得される。(この最後の仮定は、無限時間領域と呼ばれるものです。)LQR問題は次のように定式化されます。無限時間領域における二次連続時間コスト関数を最小化する。
線形時不変一次動的制約 に従う そして初期条件
有限期間の場合、行列は次のように制限されます。そしてそれぞれ半正定値行列と正定値行列である。ただし、無限時間の場合、行列はそしてこれらはそれぞれ正半定値および正定値であるだけでなく、定数でもある。 そして無限期間の場合、コスト関数が正の値を保つように制約が課せられます。さらに、コスト関数が有界であることを保証するために、ペアが次の制約を満たすという追加の制約が課せられます。は制御可能です。LQ または LQR コスト関数は、物理的には制御エネルギー(二次形式で測定)を最小化しようとするものと考えることができます。
無限時間範囲問題(すなわちLQR)は、オペレータがシステムをゼロ状態に駆動し、したがってシステムの出力をゼロに駆動することを前提としているため、過度に制約的で本質的に役に立たないように見えるかもしれません。これは確かに正しいです。しかし、出力を望ましい非ゼロレベルに駆動する問題は、出力ゼロの問題が解決された後に解決できます。実際、この二次的なLQR問題は非常に直接的な方法で解決できることが証明されています。古典的な最適制御理論では、LQ(またはLQR)最適制御はフィードバック形式を持つことが示されています。 どこは適切な次元を持つ行列であり、次のように表される。 そしては微分リッカチ方程式の解である。微分リッカチ方程式は次のように与えられる。
有限時間範囲のLQ問題では、終端境界条件を用いてリッカチ方程式を時間的に逆方向に積分する。
無限時間LQR問題の場合、微分リカッチ方程式は、次のように与えられる代数リカッチ方程式(ARE) に置き換えられます。
ARE が無限時間問題から生じることを理解すると、行列は、、、 そしてこれらはすべて定数です。一般に、代数リカッチ方程式には複数の解が存在し、正定値(または正半定値)の解がフィードバックゲインの計算に使用されることに注意してください。LQ(LQR)問題は、ルドルフ・E・カルマンによって見事に解決されました。[ 9 ]
最適制御問題は一般的に非線形であり、したがって、一般的には解析解を持ちません(例えば、線形二次最適制御問題など)。そのため、最適制御問題を解くには数値的手法を用いる必要があります。最適制御の初期(1950年代から1980年代頃)には、最適制御問題を解くための好ましいアプローチは間接法でした。間接法では、変分法を用いて一次最適性条件を取得します。これらの条件は、2点(または複雑な問題の場合は多点)境界値問題をもたらします。この境界値問題は、ハミルトニアンの微分をとることによって生じるため、実際には特別な構造を持っています。したがって、結果として得られる力学系は、 [ 1 ]の形式のハミルトニアン系です。 どこ は拡張ハミルトニアン であり、間接法では境界値問題が解かれます(適切な境界条件または横断条件を使用)。間接法を使用する利点は、状態と随伴(つまり、)が解かれ、結果として得られる解が極値軌道であることが容易に確認できる。間接法の欠点は、境界値問題が非常に解くのが難しい場合が多いことである(特に、長い時間間隔にわたる問題や、内部点制約のある問題の場合)。間接法を実装した有名なソフトウェアプログラムはBNDSCOである。[ 10 ]
1980年代以降、数値最適制御において注目を集めるようになった手法は、いわゆる直接法である。直接法では、状態または制御、あるいはその両方を、適切な関数近似(例えば、多項式近似または区分的定数パラメータ化)を用いて近似する。同時に、コスト関数もコスト関数として近似する。そして、関数近似の係数を最適化変数として扱い、問題を次の形式の非線形最適化問題に「変換」する。
最小化する 代数的制約に従う
採用する直接法の種類によって、非線形最適化問題のサイズは非常に小さい場合(例えば、直接シューティング法や準線形化法の場合)、中程度の場合(例えば、擬似スペクトル最適制御法[ 11 ])、または非常に大きい場合(例えば、直接コロケーション法[ 12 ])があります。後者の場合(つまり、コロケーション法の場合)、非線形最適化問題は文字通り数千から数万の変数と制約を持つ可能性があります。直接法から生じる多くの NLP のサイズを考えると、非線形最適化問題を解く方が境界値問題を解くよりも簡単であるというのは、やや直感に反するように思えるかもしれません。しかし、実際には、NLP は境界値問題よりも簡単に解くことができます。特に直接コロケーション法の計算が比較的容易な理由は、NLP が疎であり、大規模な疎 NLP を解くための多くの有名なソフトウェア プログラムが存在するためです(例えば、SNOPT [ 13 ])。その結果、直接法(特に最近非常に人気のある直接コロケーション法)で解決できる問題の範囲は、間接法で解決できる問題の範囲よりもかなり広くなっています。実際、直接法は最近非常に人気が高まっており、多くの人がこれらの方法を採用した精巧なソフトウェア プログラムを作成しています。特に、そのようなプログラムの多くには、DIRCOL [ 14 ]、SOCS [ 15 ]、OTIS [ 16 ] 、 GESOP/ ASTOS [ 17 ]、DITAN [ 18 ]、および PyGMO/PyKEP [ 19 ]が含まれます。近年、MATLABプログラミング言語の登場により、MATLAB での最適制御ソフトウェアがより一般的になっています。直接法を実装した学術的に開発されたMATLABソフトウェアツールの例としては、RIOTS [ 20 ] 、DIDO [ 21 ] 、DIRECT [ 22 ]、FALCON.m [ 23 ]、GPOPS [ 24 ]などがあり、業界で開発されたMATLABツールの例としてはPROPT [ 25 ]がある。これらのソフトウェアツールは、学術研究と産業問題の両方において、人々が複雑な最適制御問題を探求する機会を大幅に増加させました。[ 26 ]最後に、 TOMLABなどの汎用MATLAB最適化環境により、複雑な最適制御問題をコーディングすることが、以前のCやFORTRANなどの言語で可能だったよりもはるかに容易になったことが指摘されています。
これまでの例では、連続時間システムと制御ソリューションを示してきました。実際、最適制御ソリューションは現在デジタルで実装されることが多いため、現代の制御理論は主に離散時間システムとソリューションに関心を寄せています。一貫性近似理論[ 27 ] [ 28 ]は、精度が徐々に向上する一連の離散化最適制御問題の解が、元の連続時間問題の解に収束する条件を提供します。一見明白なものであっても、すべての離散化手法がこの特性を持つわけではありません。[ 29 ] たとえば、可変ステップサイズルーチンを使用して問題の動的方程式を積分すると、解に近づくにつれてゼロに収束しない(または正しい方向を向かない)勾配が生成される場合があります。直接法RIOTSは一貫性近似理論に基づいています。
多くの最適制御問題における一般的な解決戦略は、共状態(シャドウプライスと呼ばれることもある)を求めることである。共状態は、次のターンに状態変数を拡大または縮小した場合の限界価値を1つの数値で要約します。限界価値は、次のターンに得られる利益だけでなく、プログラムの期間にも関連しています。解析的に解くことも可能だが、通常は、直感的に解の性質を理解できる程度に十分に記述し、方程式ソルバーで数値的に値を解くのが精一杯である。
入手した制御のターンt最適値は通常、以下の知識を条件とする微分方程式として解くことができる。特に連続時間問題においては、制御値や状態値を明示的に求めることは稀である。通常、最適な制御を特徴づける閾値や領域を求め、数値解法を用いて時間軸上の実際の選択値を分離するという手法が用いられる。
鉱山所有者が、自分の鉱山から鉱石をどのくらいの速度で採掘するかを決定しなければならないという問題を考えてみましょう。彼らは、日付から鉱石に対する権利を所有しています。現在まで日付がある地中の鉱石、および時間依存の鉱石量地中に残された量は、鉱山所有者が採掘する。鉱山所有者は採掘コストを負担する。(採掘コストは採掘速度の二乗と残存鉱石量の逆数に比例して増加する)そして鉱石を一定価格で販売する地中に残っている鉱石売却できず、価値もありません(「スクラップ価値」はありません)。所有者は時間とともに変化する抽出率を選択します。時間割引を考慮しない所有期間全体にわたって利益を最大化する。
マネージャーは利益を最大化する: 状態変数の運動法則に従う
ハミルトニアンを作成し、微分します。
鉱山所有者は、その時点で残っている鉱石の価値を評価していないため、
上記の式を用いると、簡単に解くことができる。そしてシリーズ
そして、初期条件とターンT条件を使用して、級数は明示的に解くことができ、。マネージャーは利益を最大化する: 状態変数以下のように進化する。
ハミルトニアンを作成し、微分します。
鉱山所有者は、その時点で残っている鉱石の価値を評価していないため、
上記の式を用いると、以下の微分方程式を簡単に解くことができる。そして 初期条件とターンT条件を用いると、関数を解くと次の式が得られる。