MPC/MIQP in Simulink, quadprog solver?

6 views (last 30 days)
HowardLaw
HowardLaw on 26 Sep 2023
Answered: SANKALP DEV on 4 Oct 2023
I want to implement in a simulink custom fonction block a script describing a model predictive control formulation for optimizing microgrid operations while satisfying a set of constraints. Considering the microgrid is a hybrid system (characterized by the interactions between continuous and discrete dynamics), my idea is to describe it by a mixed logical dynamical (MLD) model, and find optimal solutions using mixed-integer linear (or quadratic) programming.
In an example I found which implements in a level-1 s-Funtion supposedly a MPC/MIQP formulation, they use quadprog to find optimal solutions. Does the use of a QP solver to solve a MIQP problem make any sense to you? I mean, does the correct description of the MLD cover for the mixed-integer part so that a QP solver suffice? Thanks in advance!

Answers (1)

SANKALP DEV
SANKALP DEV on 4 Oct 2023
Hi HowardLaw,
I understand that you are inquiring about the feasibility of employing a QP solver, specifically 'quadprog,' to address a MIQP (Mixed-Integer Quadratic Programming) problem within the context of implementing a Model Predictive Control (MPC) framework for optimizing microgrid operations described by a Mixed Logical Dynamical (MLD) model.
It is important to clarify that utilizing a standard Quadratic Programming (QP) solver, like 'quadprog,' is not equipped to handle the mixed-integer aspect of an MIQP problem. Such a solver is designed primarily for continuous decision variables and is inadequate when discrete decision variables are involved in the optimization problem.
In the context of mixed-integer linear/quadratic programming problems, the optimization objective and constraints encompass both continuous and discrete decision variables. The presence of discrete decision variables introduces combinatorial complexities, rendering the problem more intricate to solve.
However, if your MPC controller formulation does not entail mixed-integer quadratic programming (MIQP), you can indeed implement it with a custom Quadratic Programming (QP) solver in Simulink.
In summary, the use of a QP solver, like 'quadprog' is appropriate when your problem formulation exclusively involves continuous decision variables and does not require handling mixed-integer variables. If your MLD model exclusively pertains to continuous dynamics, the QP solver can effectively find optimal solutions for your given problem.
However, given that your specific problem incorporates both continuous and discrete decision variables, necessitating mixed-integer optimization, relying solely on a QP solver would be unsuitable.
For more details, please refer to the following MATLAB documentations.
Hope this helps.

Categories

Find more on Quadratic Programming and Cone Programming in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!