Customized Cost Function and Binary Manipulated Variable in (NL)MPC
9 views (last 30 days)
Show older comments
Hi everyone!
I am trying to implement MPC to control the compressor of a model similar to the Residential Refrigerator Model (Residential Refrigerator - MATLAB & Simulink - MathWorks Deutschland). I used simulation data (inputs: Compressor on/off and Door open/closed, output: air temperature in the compartment) to derive a data-driven linear state-space model of the plant.
Additionally to temperature setpoint tracking, I want to use information about door openings to lower the energy consumption. Therefore, I thought about using a customized cost function, where an active compressor is penalized during a door opening.
Now to my problem:
To my knowledge, defining a customized cost function is only possible in NLMPC and not in linear MPC. But NLMPC is not really an option, because (to my knowledge) defining a binary MV (0 = compressor off, 1 = compressor on) is not supported in NLMPC. Is there a workaround to consider and lower the power consumption of the compressor without using a customized cost function? Or is there a way to use a customized cost function in linear MPC that I don't know of? Or is there a possibility to use binary MV in NLMPC?
I would be really grateful if someone could help me!
0 Comments
Accepted Answer
Thomas Kuenzel
on 18 Dec 2023
Hi Sebastian, the following initial answer is not mine but from our colleague Gernot Schraberger, who is an expert on MPC:
1) I would use a constraint to limit the temperature or compressor power during door open phase. Constraints can be defined in matrix form E*u + F*y >=G (E,F,G are matrices, u and y vectors of the plant inputs and outputs). Without knowing in detail, how you want to express this penalty a formulation like -door - compressor >= -1.5 would work (door open=1, closed = 0, compressor on = 1, off =0).
2) Using a nonlinear MPC only for allowing a customized nonlinear cost function is not very efficient, especially the binary inputs cause problems here and NMPC runs typically much slower. I would not use that approach.
3) If for the first case with the constraints in linear MPC a nonlinear constraint will be needed, there are ways to formulate a piecewise linear constraint, but that has a certain complexity. If such an approach is needed, it would make sense to have a more detailed conversation.
Maybe this already helps. Please contact us if you are interested in more in-depth support!
More Answers (0)
See Also
Categories
Find more on Controller Creation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!