Change MPC scalefactor at runtime

Hi,
I am doing a control system with an AMPC controller with LPV. My system is strongly non-linear and its configuration changes all the time, affecting the bounds of the manupulated variables (MV) Umin and Umax. I can change the MV bounds at runtime through the MPC block inputs, however I cannot change the scalefactors, which are only set once when I compile the MPC m file. The scale factors affect the stability of my system and I am looking for a way to access the MPC object at runtime.
Thank you
Best regards
Vincent

3 commentaires

Danus
Danus le 4 Fév 2025
Hey Vincent,
Have you found a solution to your problem? I've got the same issue.
Thanks in advance and kind regards,
Danus
MULI
MULI le 13 Fév 2025
Hi @Danus,
In Model Predictive Control (MPC), "ScaleFactors" are primarily used to normalize signals of different magnitudes to improve numerical conditioning and solver performance. However, once the controller is compiled, these ScaleFactors are fixed and cannot be modified at runtime.
If your system is experiencing stability issues, you might consider tuning of weights, constraints, or the prediction model. Could you clarify why you need to change ScaleFactors at runtime?
Danus
Danus le 17 Fév 2025
Hi Muli,
First of all, thanks for the answer.
Regarding your question: I've got a system where some of the states grow over time. Depending on the simulation duration, I assume the scale difference might affect the control quality. Therefore my first idea was to change the scale factors during run time. My second thought was to change the system dynamics so that the errors of the original states become the new states but with this change other problems occur.
Kind regards,
Danus

Connectez-vous pour commenter.

Réponses (0)

Commenté :

le 17 Fév 2025

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by