how to design LQR controller with time-variable parameters ?

hi, i am trying to design LQR controller for a system but one variable for matrix A is changing with time (it is a vector of 10001x1)so the error in matlab is matrix dimension and i heard that interpreted matlab function could be useful but still i have doubts. can anyone help me with this problem?thanks

1 件のコメント

Michael Hubatka
Michael Hubatka 2016 年 2 月 10 日
Please state your question more precisely.
  • Are you looking for a single controller that stabilizes all your plants?
  • Are you familiar with lqr from the control systems toolbox?
  • Are you trying to solve an optimal control problem?

サインインしてコメントする。

 採用された回答

Sebastian Castro
Sebastian Castro 2016 年 2 月 11 日

0 投票

Yes, a MATLAB Function block would indeed do the trick. Suppose you make a function:
function output = myLQR(error,param)
Where param is the the value of that one element of A (let's say, A(5,5)) passed in as a time-varying signal to the MATLAB function. So, in the function, you can say something like:
A(5,5) = param;
Then, the command to design an LQR contoller given A and B matrices, and Q/R/N noise covariance matrices, is as follows (or look at the lqr documentation for other ways to call it).
K = lqr(A,B,Q,R,N)
Finally, you want to multiply the resulting K matrix with your error signal, and that's your control law!
output = K*error;
- Sebastian

1 件のコメント

Thinh Do
Thinh Do 2020 年 6 月 4 日
No it does not, when I use the block, it appears that the function lqr() is not supported in the MATLAB Function block.

サインインしてコメントする。

その他の回答 (0 件)

製品

Community Treasure Hunt

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

Start Hunting!

Translated by