What is the idea behind mpcobject.Weight.ECR?
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Benedikt Schmidt
il 18 Mag 2024
Commentato: Benedikt Schmidt
il 29 Mag 2024
Say you have an arbitrary mpc object from the MPC Toolbox.
It has the following property: mpcobject.Weight.ECR which is set to 1*10^5 by default. On the MATLAB documentation page (see: https://de.mathworks.com/help/mpc/ug/specifying-constraints.html#buj077i ) it says that it is an "overall constraint softening parameter of the controller (controller object property: Weights.ECR) to penalize a tolerable soft constraint violation relative to the other cost function terms".
However, I dont understand what that means. I've already specified ECR values for their respective OV/MV's.
How can a single ECR value be used to penalize a soft constraint violation relative to multiple cost function terms?
What happens when I just leave it at 1*10^5? Does this effectively change the resulting ECR value of each OV/MV's?
What happens when I set it to 0 or 1?
Thanks in advance :)
0 Commenti
Risposta accettata
Sarthak
il 29 Mag 2024
Hi Benidikt,
After going through the documentation, I think the ECR value in the MPC object serves as a global softening parameter for all constraints. Using the overall constraint softening parameter of the controller (controller object property: Weights.ECR), you can penalize a tolerable soft constraint violation relative to the other cost function terms.
If you leave `mpcobject.Weight.ECR` at its default value of 1*10^5, it means that you're allowing a certain level of constraint violation, with a relatively high penalty for this violation. This doesn't change the individual ECR values of each OV/MV, but it does affect the overall constraint softening.
If you set `mpcobject.Weight.ECR` to 0, it means that you're not allowing any constraint violation. In this case, the MPC will treat all constraints as hard constraints, and it will not allow any violation.
If you set `mpcobject.Weight.ECR` to 1, it means that you're allowing constraint violation with a relatively low penalty giving average softness. It might also result in a better overall control performance.
I think the tips section in the documentation explains all this very well:
Adjusting this value can help in finding a balance between strictly adhering to constraints and optimizing the performance criterion of the MPC controller. Remember, the choice of ECR values (both individual and overall) depends on your specific control requirements and the trade-off you're willing to make between constraint violation and control performance.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Refinement in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!