Oemof fixed relation

Hello,
I want to fix the relation between multiple inputs in oemof over multiple timesteps. The aim is to have one Bus with one output and multiple inputs. All of the inputs are Transformers. Although the relation between the inputs should be fixed it should also be an optimisation variable. Therefore it is not possible to hard code it.

If someone could help me I would be very thankful :smiley:
Best, Philipp

If I get you right you could just use a Transformer. A Transformer object can have n inputs and m outputs. The relation is defined with the conversion_factor. If you use an Investment object you do not have to define the nominal_value but let the solver decide.

Hi @Philipp I did not fully understand your question after careful reading, but two thoughts:

  • use of constraint satsifaction to restrict the solution space to certain combinations of variables might be appropriate — this does not scale well but nonetheless remains linear
  • it is relatively “easy” to wish to multiply two decision variables together and thereby depart from LP optimization

Thanks for your answer.
I am not quite sure if I understand your advice right. If I am not completely wrong this approach would not keep a fixed relation between multiple inputs in every timestep or do I miss something?

Thanks I will look into the constraint satisfication problems. If this helps me making it LP I would be glad, because currently the problem is a non convex quadratic one. Therefore I am only able to solve it with gurobi 9.0.

Although the relation between the inputs should be fixed it should also be an optimisation variable.

It was not clear to me whether “it” referred to those various coefficients as quantities to be optimized. Or whether those coefficients would be fixed in advance by the modeler and be present as an additional linear constraint — in which case no new decision variable is strictly necessary. The latter case is straightforward of course. If you do elect to introduce an additional dependent variable in this latter case, the presolver should remove it before the solver tackles the problem. I guess @uwe.krien was indicating the latter case in his reply too. HTH R.

With a Transformer you can define a fixed relation between multiple inputs. You can define one relation for all time steps or a relation for each time step.

If you want a more detailed answer you have to describe your problem in detail.

Sorry for my short problem description and thanks for the help. I want that the fixed relation between multiple inputs is calculated by the solver and not set by me. Therefore I can not set a fixed relation form the beginning.

1 Like

If c_1 and O are decision variables, then c_1O_t = I_{1,t} would no longer be a linear constraint.

It can be useful to try and write down the structural matrix. You should be able to do so in all cases. Variables can be additionally marked integer‑valued or binary, given your solver supports MILP. As an example using this case — which was as far as I could get. HTH, R.

Thanks you!
I was not quite sure if there is a way to rewritte the problem to solve it with LP. Therefore my question is answered. Thanks a lot!
Best, Philipp

1 Like