Define additional (partial) optimization targets or set component priorities?

Hello openmod-community,

i have a short question. I created a simple energy model with oemof (sources, sinks, components as transformers).

I know, that the optimization result are the minimized variable costs (operational costs).

However, i would like to prefer one component so that it is preferred for output production.

How can i realize this?
Is it possible to set a additional constraint, e.g. that (only?) an output flow (from one transformer component) will be maximized?

Or is it possible to set priorities to the output flow, that this component will be more priorized during the optimization?

Any help appreciated. :slight_smile: Thanks.

I cannot speak for oemof but it is quite possible to mix rule‑based flow control with minimum cost optimization. Here is an example using a long abandoned framework written in C++:

I can provide the GPL‑3.0‑or‑later codebase on request but I doubt if it would be of much use. Suffice to say that each object added its own criteria to the constraint matrix and one such object could be of asset operator class AsopAdminStated.

You might be able to fake this by making the chosen transformer zero-cost during optimization and then adding back the exposed costs following the run for analysis purposes. Not that I am recommending that kind of hack.

Furthermore, it is possible within xeona to cluster and additionally restrict sets of assets using dedicated constraints and to specify merit order dispatch. If useful, I can check further. There are lots of interesting results from operations research that can be applied to energy system operations.

I am quite new in oemof.solph but I think you can leverage the preferred component with variable costs, meaning giving the other components higher variable costs so it is picked by the system for production. This is alluding to the hack that Robbie did not give.