Das Wesentliche meiner Frage ist das Folgende: Ich habe ein System von zwei ODEs. Eine hat eine Anfangswertbeschränkung und die andere hat eine Endwertbeschränkung. Dies kann als ein einzelnes System mit einer Anfangswertbeschränkung für einige Variablen und einer Endwertbeschränkung für die anderen Variablen betrachtet werden.
Hier sind die Details:
Ich versuche, einen zeitkontinuierlichen LQR-Controller mit endlichem Horizont zu verwenden, um ein lineares dynamisches System anzutreiben. Ich möchte das Python-Ökosystem weiterhin nutzen.
Das System hat die Form , vorbehaltlich x ( 0 ) = x 0
Die LQR-Lösung erzeugt eine Matrix so dass der optimale Steuereingang u (t), linear in x ( t ) , u ( t ) = K ( t ) x ( t ) ist .
wobei
und ist die Lösung einer kontinuierlichen zeitlichen Riccati-Differentialgleichung (man beachte, dass dieses P ( t ) eine Matrix ist)
. Dies betrifft mich, weil der numerische ODE-Löser für x (t) die ODE nicht unbedingt gleichzeitig mit den Zeiten in der numerischen Lösung für $ P (t) abtastet. Vielleicht gibt es eine clevere Möglichkeit, dies durchzusetzen.
Die andere Möglichkeit, das Problem zu lösen, besteht darin, das System gemeinsam zu lösen, aber ich weiß nicht, wie ich mit der Mischung aus Anfangs- und Endwertbeschränkungen umgehen soll. Sind diese Probleme rechenintensiv zu lösen? Kann ich das in SciPy / Python machen?