LQR regulator doesn't regulate the system

2 views (last 30 days)
DoctorCrow
DoctorCrow on 21 Mar 2023
Commented: Sam Chak on 22 Mar 2023
Hello,
I used the function lqr to get a regulator that helps me to regulate my system.
My function is:
r = lqr(A,B,Q,R)
With this function i get a regulator that gives me two conjugate complex poles. Thus the system is not regulated, but continues to oscillate. I don't get any errors or warnings.
How can I fix this problem? .
  2 Comments
DoctorCrow
DoctorCrow on 22 Mar 2023
Hi,
i got the followingen matrices:
A = [0 1 0 0 ; 0 0 14.72 0 ; 0 0 0 1 ; 0 0 -3.066 0]
B = [0 ; 0.001 ; 0 ; -0.000125]
Q = [1 0 0 0 ; 0 1 0 0 ; 0 0 1 0 ; 0 0 0 1]
R = [1]
I checked, that (A,B) is controllable.

Sign in to comment.

Answers (1)

Sam Chak
Sam Chak on 22 Mar 2023
Your selection of and results in the closed-loop eigenvalues having negative real parts very close to zero. Consequently, although the system states converge to steady-state, they also oscillate for a much longer period of time.
A = [0 1 0 0; 0 0 14.72 0; 0 0 0 1; 0 0 -3.066 0];
B = [0; 0.001; 0; -0.000125];
Q = [1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1];
R = 1;
[K1, P, e] = lqr(A, B, Q, R)
K1 = 1×4
1.0000 70.7226 4.6434 333.8955
P = 4×4
1.0e+06 * 0.0001 0.0025 0.0003 0.0120 0.0025 0.1769 0.0116 0.8491 0.0003 0.0116 0.1401 0.0557 0.0120 0.8491 0.0557 4.1219
e =
-0.0004 + 1.7510i -0.0004 - 1.7510i -0.0141 + 0.0141i -0.0141 - 0.0141i
sys1 = ss(A-B*K1, B, eye(4), 0);
step(sys1)
Increasing Q should improve the system response, as shown in the following plot.
Q = 1e7*eye(4);
[K2, P, e] = lqr(A, B, Q, R)
K2 = 1×4
1.0e+03 * 3.1623 4.9643 1.8176 7.6882
P = 4×4
1.0e+08 * 0.1570 0.0732 0.2431 0.3328 0.0732 0.1397 0.0489 0.7207 0.2431 0.0489 5.3231 0.2455 0.3328 0.7207 0.2455 5.1509
e =
-0.2486 + 1.1213i -0.2486 - 1.1213i -1.3865 + 0.0000i -2.1197 + 0.0000i
sys2 = ss(A-B*K2, B, eye(4), 0);
step(sys2)
  2 Comments
Sam Chak
Sam Chak on 22 Mar 2023
You are welcome, @DoctorCrow. If you find the solution helpful, please consider accepting ✔ and voting 👍 on the answer. Thanks a bunch! 🙏

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by