Closed tsmbland closed 5 days ago
I've been digging into the code to try and work out what the Level
parameter (fixed vs flexible) is doing.
For input commodities, it's used in the consumption
function in quantities.py
, where it's chosing amongst the different flexible inputs based on the price. So, for example, a boiler would get to choose between two different types of fuel based on which one was cheapest at the time. I don't think the calculation is necessarily correct (for example, what if fuel A is cheaper per unit than fuel B, but less efficient so you have to use more of it?), but does that sound about right as the intended meaning of this parameter? @ahawkes @dalonsoa
(As a side note, I think the calculation of fuel costs in LCOE needs to change as it's adding all the flexible inputs together when it should be selecting just one of them, or normalising in some way)
For output commodities, this parameter doesn't appear to be used at all (outputs with Level="flexible" end up being ignored in all the calculations). In this case, it's probably best to remove this column from the CommOut
file.
Yes that sounds like the intention (and yes the investor should be choosing based on cost of outputs, which are in turn a function of cost on inputs). Also yes LCOE calculation could be off - but if this is the LCOE calculation to determine investment then it might be OK (i.e. it would be hard to justify singling out one commodity output if there are several). Note that flexible processes are mainly used for refineries (that have flexible output), and a bit in transport (e.g. flexible fuel like % ethanol), and as you've noted some heat techs.
Ok thanks. So a flexible output would mean that a technology could choose between multiple outputs (with the same inputs?), based on which output commodity has the highest market value at the time?
(At least is that the intention? - it's not actually doing that...)
Along those lines yes - assuming there will be demand for the output commodities - the technology can adjust the amount of output of each to match demand. Also - yes - if there are other technologies that can produce these commodities it will (should!) prefer the cheaper one. Similar logic applies when the flexible commodities are on the input side - it will (should!) use the cheaper ones.
From: Tom Bland @.> Sent: Wednesday, June 26, 2024 1:00:31 PM To: EnergySystemsModellingLab/MUSE_OS @.> Cc: Hawkes, Adam D @.>; Mention @.> Subject: Re: [EnergySystemsModellingLab/MUSE_OS] Meaning of "fixed" vs "flexible" level is unclear (Issue #263)
This email from @.*** originates from outside Imperial. Do not click on links and attachments unless you recognise the sender. If you trust the sender, add them to your safe senders listhttps://spam.ic.ac.uk/SpamConsole/Senders.aspx to disable email stamping for this address.
Ok thanks. So a flexible output would mean that a technology could choose between multiple outputs (with the same inputs?), based on which output has the highest market value at the time?
(At least is that the intention? - it's not actually doing that...)
— Reply to this email directly, view it on GitHubhttps://github.com/EnergySystemsModellingLab/MUSE_OS/issues/263#issuecomment-2191513732, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AC37JLPSFGE3OVFGJ7ELQG3ZJKUN7AVCNFSM6AAAAABGLMDXSKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJRGUYTGNZTGI. You are receiving this because you were mentioned.Message ID: @.***>
Nope, the LCOE used in investments is this other one defined in objectives.py
.
Again, like with the discussion on the supply we have in #335, I have the suspicion that the LCOE linked by @tsmbland above is not really used with the scipy
solver, but only with the adhoc
solver, as the scipy
solver does the investment and the dispatch in one go by solving the matrix.
The documentation mentions that the "Level" parameter in the technodata and commodities files can be "fixed" or "flexible", but the meaning of these two options isn't adequately explained.
Sections to look at: 9.3.3 Techno-data (
docs/inputs/technodata.rst
) 9.3.5 Commodities (docs/inputs/commodities_io.rst
)Update: #374 has changed the technodata files (and documentation) to no longer include the Level parameter as it wasn't being used