how to design LQR controller with time-variable parameters ?

Illustration
shayan taherian - 2022-03-14T13:06:44+00:00
Question: 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?

Expert Answer

Profile picture of Kshitij Singh Kshitij Singh answered . 2025-11-20

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;

 


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!