- 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?
how to design LQR controller with time-variable parameters ?
6 views (last 30 days)
Show older comments
shayan taherian
on 8 Feb 2016
Commented: Thinh Do
on 4 Jun 2020
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 Comment
Michael Hubatka
on 10 Feb 2016
Please state your question more precisely.
Accepted Answer
Sebastian Castro
on 11 Feb 2016
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 Comment
Thinh Do
on 4 Jun 2020
No it does not, when I use the block, it appears that the function lqr() is not supported in the MATLAB Function block.
More Answers (0)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!