Суть мого питання полягає в наступному: у мене є система з двох ОДЕ. Один має обмеження початкового значення, а інший - обмеження кінцевого значення. Це можна розглядати як єдину систему з обмеженням початкового значення для деяких змінних і обмеженням кінцевого значення для інших.
Ось деталі:
Я намагаюся використовувати контролер LQR безперервного часу з обмеженим часом, щоб керувати лінійною динамічною системою. Я хотів би продовжувати використовувати екосистему Python.
Система має форму , за умовиx(0)=x0
Рішення LQR генерує матрицю такою, що оптимальним входом керування u (t), лінійним у x (t) , є u (t) = K (t) x (t) .x ( t ) u ( t ) = K ( t ) x ( t )
де
і - рішення диференціального рівняння Ріккаті безперервного часу (зауважимо, що цей є матрицею)
умови
, , , , , , - всі наведені.
Англійською мовою: у вас є динамічна система, яка запускається у стані . Контролер LQR генерує матрицю зворотного зв'язку для використання між часом і ( зазвичай називають часовим горизонтом проблеми) 0 t f t f
Зауважте, що два ODE з'єднані лише в одному напрямку - рішення не залежить від . Тому один із способів вирішити задачу - це повернути рівняння Ріккаті, щоб перетворити задачу остаточного значення в задачу початкового значення і знайти числове рішення між часом і за допомогою стандартного інтегратора ODE. Тоді я можу використовувати це числове рішення, щоб знайти . Це стосується мене, тому що числовий вирішувач ODE для x (t) не обов'язково буде вибіркою ODE одночасно з часом у числовому рішенні до $ P (t). Можливо, є якийсь розумний спосіб це застосувати.
Інший спосіб, який я передбачаю вирішити проблему, - це вирішити систему разом, але я не знаю, як боротися з поєднанням обмежень початкового значення та кінцевого значення. Ці проблеми обчислювально важко вирішити? Чи можу я це зробити в SciPy / Python?