how to choose LQR

조회 수: 143 (최근 30일)
cmcm
cmcm 2013년 2월 8일
댓글: manohar sahu 2022년 11월 8일
hello everyone i am trying to use LQR controller i simulate my system and have my A and B matrix ,, used theme in m-file and use the lqr function to control this system,,, is there any way to know what is the right value for Q and R ?? i try a lot of values for them but the results give me 2 positive values and that is wrong, all values must be negative depending on the choice of the Q and R. so is there any way make me know what is the right values for them instead of try and error ? please help
  댓글 수: 4
raja m
raja m 2014년 7월 31일
There are some techniques to select value of Q and R in literature.please see to that............
Jose Almeida
Jose Almeida 2015년 6월 20일
Can you reference some literature? Thank you

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

채택된 답변

Shashank Prasanna
Shashank Prasanna 2013년 2월 9일
LQR always returns a stabilizing feedback gain.
Are there 1 or 2 eigen values that are always show up positive?
You most likely have an uncontrollable mode in your system. As Azzi mentioned you have to just try different weights, choosing Q and R is part art, part science.
If you can provide the state space (A,B,C,D) for your plant, it would be useful.
  댓글 수: 8
Shashank Prasanna
Shashank Prasanna 2013년 2월 9일
yes,
You have a negative feedback and this is not LQR Servo. You have to be careful with convention. LQR 'ALWAYS' returns a stabilizing gain matrix, as long as all modes are controllable. This is by construction. LQR does not care about your outputs i.e. C and D and it stabilizes the closed loop plant with the feedback gain K that gives you good properties at the plant input u
cmcm
cmcm 2013년 2월 9일
thank you soooo much for your notes ... that was a mistake from me that i did not notice the sign ... all my problem was about sign :) thanx again

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

추가 답변 (3개)

Azzi Abdelmalek
Azzi Abdelmalek 2013년 2월 8일
편집: Azzi Abdelmalek 2013년 2월 8일
There is no systematic method to choose Q and R. You can start with
Q=eye(n) % n: number of states
R=eye(m) % m: number of inputs
Simulate your system in closed loop, then try to adjust your weighting coefficient Q and R. You have just to know, that more the weighting parameter is great, more the weighted signal is minimized.
You have to know, also, that you will need to insert integrators, if you want to correctly control your system
  댓글 수: 5
Shashank Prasanna
Shashank Prasanna 2013년 2월 9일
shahad, you are trusting one or the other. I recon the model with no background is not of much value to anyone.
cmcm
cmcm 2013년 2월 9일
ok am sorry i will post it

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


Fatma Yörük
Fatma Yörük 2020년 11월 21일
There are some optimization methods to find the best Q and R so that you achieve your desired performance. Most literature uses GA or PSO algorithms for it. However, some comparisons with the descent algorithm takes also part in. So, rather than the trial and error, trying to develop some optimisation-based algorithms might be more proper way.
  댓글 수: 2
Victory Friday
Victory Friday 2022년 1월 31일
Please can you help me with one of the pso for A and RN matrix
manohar sahu
manohar sahu 2022년 11월 8일
Can you please let me know how to implement pso for lqr controller

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


cmcm
cmcm 2013년 2월 9일
편집: Azzi Abdelmalek 2013년 2월 9일
clear all;
gi=1;
% initial condition
a=2.9975;
b1=0.034025;
b2=0.034025;
b3=0.5606;
b4=-b3;
Am =[ 0 1.0 0 0 0 0;
0 0 -a 0 0.0000 0;
0 0 0 1.0 0 0;
0 0 0 0 0 0;
0 0 0 0 0 1.0;
0 0 0 0 0 0];
Bm =[ 0 0;
0 0;
0 0;
b3 b4;
0 0;
b1 b2];
Cm=[1 0 0 0 0 0;0 0 1 0 0 0;0 0 0 0 1 0];
Dm=[0 0;0 0;0 0];
Ai = Am;
Ai(7,5) = 1;
Ai(8,1) = 1;
Ai(8,8) = 0;
Bi = Bm;
Bi(8,2) = 0;
co=ctrb(Ai,Bi);
rank(co)
unc=length(Ai)-rank(co)
Q = diag([0 0.05 0 0 2 1 1 0.001]);
R = 50*diag([1 1]);
K = lqr( Ai, Bi, Q, R );
disp( ' ' )
disp( 'Calculated LQR controller gain elements: ' )
K
eig(Ai+Bi*K)
CMD_RATE_LIMIT = 45.0 * pi / 180;
  댓글 수: 4
cmcm
cmcm 2013년 2월 9일
why ???
Azzi Abdelmalek
Azzi Abdelmalek 2013년 2월 9일
Shahad, explain what you want to control. What are your references? And you can't control 3 output with 2 inputs, unless you want them to tend towards zero.

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

Community Treasure Hunt

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

Start Hunting!

Translated by