L'essence de ma question est la suivante: j'ai un système de deux ODE. L'un a une contrainte de valeur initiale et l'autre une contrainte de valeur finale. Cela peut être considéré comme un système unique avec une contrainte de valeur initiale sur certaines variables et une contrainte de valeur finale sur les autres.
Voici les détails:
J'essaie d'utiliser un contrôleur LQR à horizon fini en temps continu pour piloter un système dynamique linéaire. J'aimerais continuer à utiliser l'écosystème Python.
Le système est sous la forme , sous réserve de x ( 0 ) = x 0
La solution LQR génère une matrice telle que l'entrée de commande optimale u (t), linéaire en x ( t ) , est u ( t ) = K ( t ) x ( t ) .
où
et est la solution à une équation différentielle de Riccati à temps continu (notez que ce P ( t ) est une matrice)
sous réserve deP(tf)=Q
, B , x 0 , Q , Q f , R , t f sont tous donnés.
. Cela m'inquiète car le solveur numérique ODE pour x (t) n'échantillonnera pas nécessairement l'ODE en même temps que les temps dans la solution numérique de $ P (t). Peut-être existe-t-il un moyen intelligent de faire respecter cela.
L'autre façon que je prévois de résoudre le problème est de résoudre le système ensemble, mais je ne sais pas comment gérer le mélange de contraintes de valeur initiale et de valeur finale. Ces problèmes sont-ils lourds à résoudre sur le plan informatique? Puis-je le faire dans SciPy / Python?