From my internet research, it seems there's no systematic way of tuning the design parameters for the LQR controller. I have found Bryson’s rule as an initialization. However I don't know how to proceed from this point besides trial and error or grid search. Ideally I want to tune the parameters such that the settling time for specific state variables are below a threshold. Additionally I want to make constraints on the sensitivity function, such that disturbances up to a specific frequency are attenuated. Is there a recommended way to tune my parameters such that requirements can be fulfilled ?

  • 2
    $\begingroup$ Are you sure you want to use LQR? Namely, the constraints you mention are I think difficult to tune for with LQR. Instead, maybe something like H-infinity might be better suited, especially for the second constraint. $\endgroup$
    – fibonatic
    Commented Sep 5, 2021 at 8:59

1 Answer 1


There are many ways. But, all of them are either trivial or subjective. The most fair way I have found so far is to use Interactive Genetic Algorithm (IGA). IGA uses the human subjectivity to lead the GA optimization. Here is a research performing all you need for Model Predictive Control (MPC) [the same as LQR but respecting constraints too]. In your case, the constraints are offline. In this work, a multi-objective GA is used and applied constraints on the results. Then I got a huge pareto-front and applied an IGA to get the best result out of them which looks appealing to a human. You can directly apply IGA without a multi-objective GA too. But, a GA before IGA does a great filtering.

If you don't have access to IEEE, follow the chapter 4 of my thesis (sorry for the goatic font. I ran out of the symbols).

You can apply constraints either during optimization (at a GA before IGA) or in real-time (MPC instead of LQR). In my case, both of the constraints are applied.

  • $\begingroup$ I am not sure if the explanations have been clear. Please ask if not. $\endgroup$
    – Arash
    Commented Apr 19, 2019 at 3:56
  • 1
    $\begingroup$ Could you list these other methods? Advertising your own developed method is fine, but it seems maybe a little biased :p $\endgroup$ Commented Jan 14, 2020 at 17:27
  • $\begingroup$ @morbo, one way which is not a good way is to set every weight equal to one divided by the maximum allowed value. Another way is to use a fuzzy decision making. Although, using IGA is the best. $\endgroup$
    – Arash
    Commented Jan 17, 2020 at 10:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.