Open smartie2076 opened 4 years ago
We have now two possibilities on the table, both discussed in the openmod forum (linked above).
Other options might consider a transformer and a sink that always consumes 5% of the power capacity (without constraint, and therefore overestimating the consumption) or an off-set transformer, which cannot be optimized.
We should discuss this further in the openmod forum, as there are new answers.
I have closed the PR #118 now, as I want the electrolyzer to be implemented differently: Not based on checking the asset´s name only, but rather by defining a new parameter in ´energyConversion.csv´ or by adding a csv that gathers all additional constraints. Also, I am not sure of the introduced constraint:
def standby_rule(model, t):
minimum = 0.05 * model.InvestmentFlow.invest[electrolyser, bus_H2] / efficiency
expr = -minimum
expr += model.flow[bus_electricity, standby_sink, t]
expr += model.flow[bus_electricity, electrolyser, t] / 10
return expr >= 0
model.stanby_consumption_constraint = po.Constraint(
model.TIMESTEPS, rule=standby_rule
)
return model
As /10 is an experimental and somewhat volatile number that had "the best resulting dispatch". Let us remember this solution, but we need further discussion on this. Especially in the discussion in the openmod forum, where two people are already ready to help us with the issue.
Is @marc-juanpera still in charge of this or should assign somebody else?
No, he is not in charge anymore. We will for now go with a simple transformer, to which two inputs have to be added (water, electricity). Due to issue #186 this has to be simplified currently to only electricity intake.
The electrolzer model is very simplified right now, and the question stays how we can improve this. One way, for now, would be to optimize with the simplified model, but allow a more complex electrolyzer (and, for that matter, any transformer) representation with a designated capacity. Process:
1) Optimize capacity and preliminary dispatch with simplified model (efficiency, potentially multiple in/outputs, marginal costs) 2) Optimize dispatch with capacity from (1). This may not result in the real optimal solution, but a realistic dispatch scenario for the capacity identified in (1).
The idea would be to integrate:
This does not solve the issue on how to integrate standby consumption nor of an efficiency curve.
I see following todos for implementing this in the MVS:
energyConversion.csv
files, or by defining an additional csv
file that has to be defined within that file, in the case that the asset_type
is not transformer
(3 hrs)asset_type
should be defined, eg. advanced_transformer
(2 hrs)optimize_cap==False
(2 hrs)D1
(4 hrs)energyConversion
assets, if new KPI need to be added or if a whole new evaluation is necessary (1 hrs)Overall, I would expect that to do this properly, one should plan with 53 hrs of work. This can go faster with more MVS experience (30 hrs), but also take 70 hrs if that knowledge is not really there or if another person has to discuss repeatedly with them.
The electrolyzer is currently only modelled through a transformer with a fix efficiency. However, it in reality has a minimal operation level (~5% CAP), and below this standby consumption.
How to model the standy mode specifically (while being able to optimize the capacity) is being discussen in the openmod forum: LINK