0

I am trying to solve the following optimization problem in Matlab: MPC problem

k is the time with N being the amount of timesteps.

linprog(c_k,F_uk,f_k) solves elements 7.1a and 7.1e of the above problem description. However, the output of the model/problem, x, needs to be constrained within bounds. In the image, x is first converted to y and then y is constrained, but directly constraining x would also work.

For context, u is the (decision variable) input to various radiators in a building and x the resulting temperatures of rooms and wall, which need to be constrained between eg 20 and 25 degrees. v are external factors such as outside temperature.

Is there a way to incorporate the constraint on x in the linprog function? Or should I use another optimization method altogether?

What I tried: what linprog solves

I've thought a lot about how to rewrite x/u and/or how to use one of the three constraint methods as seen in the image to constrain x. Note that vector u in my problem description is the x to be solved in matlab, while x in my problem is a different variable.

I've thought about adding the states x to the decision variable u, but the problem is also that x depends on x in the previous timestep. u is currently a long vector with input variables for each timestep.

Perhaps I should use a heuristic algorithm, but a low computation time is important for my research.

  • Is `x` indexed by radiator number, or time, or both? (It's `k` in your image, and you haven't explained `k`. Try to provide an explanation of every single variable, even ones that are obvious to you because you've been thinking about the problem for so long.) – Ben Voigt Jan 27 '23 at 15:29

0 Answers0