私の質問の本質は次のとおりです。2つのODEのシステムがあります。1つには初期値制約があり、もう1つには最終値制約があります。これは、いくつかの変数に初期値制約があり、他の変数に最終値制約がある単一のシステムと考えることができます。
詳細は次のとおりです。
私は、線形動的システムを駆動するために、連続時間の有限水平LQRコントローラーを使用しようとしています。Pythonエコシステムを引き続き使用したいと思います。
システムは、形態であるに、被写体X (0 )= X 0
LQRソリューションは、x (t )で線形の最適な制御入力u(t)がu (t )= K (t )x (t )であるような行列生成します。
ここで、
そして連続時間リカッチ微分方程式(このことに留意することが解決策である行列です)
P(TとF)=Q対象
B x 0 Q Q f R t f、、、、、、がすべて与えられます。
英語:状態で始まる動的システムがあります。LQRコントローラーは、時間と間で使用するフィードバックマトリックスを生成します(は一般に問題の時間と呼ばれます) 0 t f t f
2つのODEは一方向でのみ結合されることに注意してください解は依存しません。したがって、問題を解決する1つの方法は、リカッチ方程式を逆にして、最終値の問題を初期値の問題に変え、標準のODE積分器を使用して時間と間の数値解を見つけることです。次に、この数値解を使用してを見つけることができます。これは、x(t)の数値ODEソルバーが必ずしも$ P(t)の数値解法の時間と同じ時間にODEをサンプリングするとは限らないためです。たぶんこれを強制するための賢い方法があるでしょう。x (t )0 t f x (t )
問題を解決するために私が予見するもう1つの方法は、システムを一緒に解決することですが、初期値制約と最終値制約の混在に対処する方法がわかりません。これらの問題を解決するには計算量が多いですか?SciPy / Pythonでできますか?