icare function doesn't return the value for X_lqr, K_lqr.
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I using icare function for the lqr controller.
Alift is 9x9 matrix, Blift is 9x1 matrix, Q is 9x9 identity matrix, and R is 1.
Alift, Blift matrix is work well.
But it only return the L_lqr(9x1) matrix.
What is the problem?
Below is my code.
x_ref = [5 5]';
x_ref_lift = liftFtn(x_ref);
[X_lqr, K_lqr, L_lqr] = icare(Alift, Blift, Q, R);
for m = 1 : Nsim - 1
u = -K_lqr * (xlift2(:, end) - x_ref_lift);
xlift2 = [xlift2, Alift * xlift2(:, end) + Blift * u]; % Lifted dynamics
end
Akzeptierte Antwort
Sam Chak
am 28 Mär. 2024
The description in icare() documentation says that the syntax "[X,K,L] = icare(A,B,Q,R,S,E,G)" computes the unique stabilizing solution X, state-feedback gain K, and the closed-loop eigenvalues L of the following continuous-time algebraic Riccati equation.
2 Kommentare
Sam Chak
am 28 Mär. 2024
%% Double Integrator system, x" = u
A = [0 1;
0 0];
B = [0;
1];
%% Settings to force the Controller for a critically-damped response, u = – 2·x' – x
Q = diag([1 2]);
R = 1;
%% Tuning by LQR method
[K, X, L] = lqr(A, B, Q, R)
%% Tuning by solving Continuous-time Algebraic Riccati Equations
[X, K, L] = icare(A, B, Q, R)
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Matrix Computations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!