Scale Factors and Weights in Model Predictive Control
7 views (last 30 days)
Show older comments
I have been working on Model Predictive Control (MPC), and I went through the optimization problem webpage of MATLAB documentation, which had all the equations related to the working of MPC. But I am confused at one point. Based on the equations, if (weight/scale factor) is same it should give same results but when I run the simulations, the results are not matching. I mean to say that if weight =10 and corresponding scale factor = 2, then weight/scale factor = 5 and if i change weight =5 and change the corresponding scale factor to 1, then again weight/scale factor = 5.
So, according to me in both cases the optimization problem is same, so the results should also be same. Please correct if I am wrong somewhere.
Note: To be more specific, these weight and scale factor are for a manipulated variable out of 2 manipulated variables in the system and the minECR and maxECR values for manipulated variables are set to default only (i.e. 0).
2 Comments
Moran Han
on 28 Oct 2020
I have the same question. When the MD is set constant 0, different scale factor of MD leads to different control performance, it's strange.
Matheus WV
on 30 Aug 2022
I am also having a similar problem. Actually, I am getting better results when using scale factors that are different from the recommended ones (the difference between the upper and lower limit of the variable).
My hypothesis is that the scale factor also modifies the results that the optimizer compares to it internal stopping criteria (https://www.mathworks.com/help/optim/ug/tolerances-and-stopping-criteria.html). I couldn't verify that hypothesis.
Did you make any progress on this issue?
Answers (2)
fouad koudsi
on 26 Oct 2020
Recommended practice includes specification of scale factors for each plant input and output
variable, which is especially important when certain variables have much larger or smaller
magnitudes than others.
The scale factor should equal (or approximate) the span of the variable. Span is the difference
between its maximum and minimum value in engineering units, that is, the unit of measure specified
in the plant model. Internally, MPC divides each plant input and output signal by its scale factor to
generate dimensionless signals.
Determine Scale Factors
To identify scale factors, estimate the span of each plant input and output variable in engineering
units.
• If the signal has known bounds, use the difference between the upper and lower limit.
• If you do not know the signal bounds, consider running open-loop plant model simulations. You
can vary the inputs over their likely ranges, and record output signal spans.
• If you have no idea, use the default scale factor (=1).
0 Comments
Matheus WV
on 31 Aug 2022
Scale Factors modify other features of the MPC. For instance, it may change the relative magnitude of the disturbance model gain, that is why it is recommended to set the Scale Factors before tuning the disturbance rejection (see https://www.mathworks.com/help/mpc/ug/adjusting-disturbance-and-noise-models.html).
So, yes, the optimization problem is the same, but there is more in the MPC prediction Models tham the plant (https://www.mathworks.com/help/mpc/gs/mpc-modeling.html), and when you change the scale factor of the plant, you change its relation to the other parts of the model, thus changing your simulation results.
0 Comments
See Also
Categories
Find more on Linear Plant Specification in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!