finite-horizon-lqr
Solving finite-horizon LQR via dynamic programming for MPC.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Solving finite-horizon LQR via dynamic programming for MPC.
How to use
Przygotuj parametry systemu: macierz dynamiki A (nx × nx), macierz wejścia B (nx × nu), macierz wagi stanu Q (nx × nx), macierz wagi sterowania R (nu × nu), gdzie nx to liczba zmiennych stanu, a nu to liczba wejść sterujących.
Zdefiniuj horyzont predykcji N (liczba kroków czasowych do przodu) oraz wektor stanu początkowego x0 (nx × 1).
Wywołaj funkcję finite_horizon_lqr(A, B, Q, R, N, x0). Skill wykonuje backward pass: iteracyjnie oblicza macierze wzmocnienia K_k dla każdego kroku od N-1 do 0, rozwiązując równanie Riccatiego i aktualizując macierz P_k.
Skill zwraca optymalny sygnał sterowania u_0 dla bieżącego kroku czasowego. Zastosuj ten sygnał do systemu fizycznego lub symulacji.
W następnym kroku czasowym zmierz nowy stan x (wynikający z dynamiki x_{k+1} = A @ x_k + B @ u_k) i powtórz kroki 3–4 z nowym stanem jako x0, aby uzyskać kolejny optymalny sygnał sterowania.
Kontynuuj pętlę sterowania: pomiar stanu → rozwiązanie LQR → aplikacja pierwszego sygnału → przesunięcie horyzontu w czasie, aż do osiągnięcia celu sterowania lub końca zadania.