Clear Filters
Clear Filters

Integral MPC in Simulink

11 views (last 30 days)
Ale_798
Ale_798 on 14 Sep 2023
Hello, is anybody able to provide a working Simulink scheme implementing an integral action on a MPC controller? On internet I'm not able to find anything. I'm interested in particular in the increment velocity form technique.
  2 Comments
Sam Chak
Sam Chak on 14 Sep 2023
Can you provide a picture of what integral action in an MPC controller looks like? The MPC produces an optimal control action for the system over a finite time horizon. If you want to incorporate integral control into this MPC output signal, the integral control action may no longer remain optimal over a finite time horizon. Are you suggesting adding an integral action to the MPC like ''?
Ale_798
Ale_798 on 14 Sep 2023
The logic of the integral action in a MPC is that you use a cost function of the type:
in order to penalize the variation of delta_u(k) = u(k)-u(k-1). Then you need to integrate the output of the MPC in order to obtain the value of u(k), which is what you want to apply to your controlled system.
My problem is the following: I already have a working scheme of a MPC controller, implementing the classical cost function:
(where the calligraphic letters represent the sequences of each signal), and I want to add the integral action.
What I am trying to do is: since I notice that the first J is the same as the second one but with u(k-1) in place of u_0, then I just need to modify the scheme so that the cost function reads u(k-1) as the reference u_0.
However this solution does not work, and I am not able to figure out the reason.

Sign in to comment.

Answers (2)

Sam Chak
Sam Chak on 14 Sep 2023
Thank you for clarifying the problem. I'm not an expert in MPC, but after reviewing your comment, I believe you can try creating a custom cost function for the Integral MPC. You can find more information on specifying a custom cost function like yours
at this link:
and an example at this link:
However, I'm uncertain if this approach will work in Simulink, but you can at least try it in the MATLAB environment. Once you confirm its functionality, we can explore ways to implement it in Simulink.

Emmanouil Tzorakoleftherakis
Why don't you use the MVRate constraint instead of adding the term in the cost function?

Community Treasure Hunt

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

Start Hunting!