icare function doesn't return the value for X_lqr, K_lqr.

조회 수: 10 (최근 30일)
규연
규연 2024년 3월 28일
댓글: 규연 2024년 3월 28일
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);
Unrecognized function or variable 'liftFtn'.
[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
  댓글 수: 1
규연
규연 2024년 3월 28일
I don't know why, but L_lqr(9x1) matrix's components are all complex number.

댓글을 달려면 로그인하십시오.

채택된 답변

Sam Chak
Sam Chak 2024년 3월 28일
OP: I don't know why, but L_lqr(9x1) matrix's components are all complex number.
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
Sam Chak
Sam Chak 2024년 3월 28일
%% 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)
K = 1×2
1.0000 2.0000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
X = 2×2
2.0000 1.0000 1.0000 2.0000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
L = 2×1
-1.0000 -1.0000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
%% Tuning by solving Continuous-time Algebraic Riccati Equations
[X, K, L] = icare(A, B, Q, R)
X = 2×2
2.0000 1.0000 1.0000 2.0000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
K = 1×2
1.0000 2.0000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
L = 2×1
-1.0000 -1.0000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
규연
규연 2024년 3월 28일
i think the system has the problem.
i'll try lqr controller for another system.
thank you!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrix Computations에 대해 자세히 알아보기

제품


릴리스

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by