What is the idea behind mpcobject.Weight.ECR?
10 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Sarthak
2024-5-29
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Refinement 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!