CHP load-following and absorption-chiller-only dispatch strategies#577
CHP load-following and absorption-chiller-only dispatch strategies#577
Conversation
|
@Bill-Becker this is ready for your review! I'm still crafting a test case for the false CHP DomesticHotWater load requirement in #576 but playtesting showed it worked... not sure if the specific instance requiring your workaround is available but I can try that if you have it. The failing tests in the most recent push are currently the PVWatts tests on actions and not related to this PR. Only other note is that the storage doesn't have a variable sending to the absorption chiller at the moment - I think that may make this incomplete as a result. I'm working on that right now. (API dev will be done on this shortly, too.) |
…_absorption_chiller_only is true
…nths_serving_absorption_chiller_onlyby
Added new optional attributes for CHP object and fixed a bug related to DomesticHotWater load.
…/REopt.jl into chp-load-following
…hs_serving_absorption_chiller_only
…ller_only_constraints and update description
| sum(sum(m[Symbol("dvHeatingProduction"*_n)][t,q,ts] for q in p.heating_loads) + m[Symbol("dvSupplementaryThermalProduction"*_n)][t,ts] | ||
| for t in p.techs.chp) - CHPToHotTES[ts] - CHPToSteamTurbineKW[ts] - CHPThermalToWasteKW[ts]) | ||
| r["thermal_to_load_series_mmbtu_per_hour"] = round.(value.(CHPThermalToLoadKW ./ KWH_PER_MMBTU), digits=5) | ||
|
|
There was a problem hiding this comment.
@zolanaj I deleted these lines of code as CHPtoLoadKW seems like an older version of CHPThermalToLoadKW and r["thermal_to_load_series_mmbtu_per_hour"] is a duplicate of above. Please double check!
There was a problem hiding this comment.
looks like the duplicate was removed correctly, thank you!
…ristic, plus new test
…zing heuristic, plus new test" This reverts commit 224b20c.
|
@Bill-Becker while getting the CHP sizing heuristic updated to include the cooling load (optionally), I added some tests and found a somewhat peculiar result - if the sizing heuristic includes both an average+max electric load and an average thermal load, the electric load is not considered at all and only the thermal load is used to size the system. was this intentional? I would think the max sizing of the two would be used (unless the CHP is electric_only, in which case only the electric load is used) but that's not the case - I'm guessing maybe the heating load is perhaps more important in CHP sizing when the heuristic is used? I added a new test to verify this here and, if we want to include electric load, an update to this is straightforward (I implemented, then reverted it). |
My understanding was that only if the is_electric_only argument is true, then it would use the electric load params for sizing. Otherwise, it should use the avg heating load. Is that not what you're seeing? |
That's my understanding. I think the question is this: the heuristic currently sizes according to (1) only the electric load, or (2) only the thermal load. Is there a case in which you would want to look at both the electric and thermal loads for heuristic sizing, whether it's the lower or higher of the two that informs it? If the answer is "no" then no further adjustments are required and this is ready for your re-review. |
I'm sure there's a way to smartly consider both, but for now let's just leave it as one or the other. Thanks! |
Please check if the PR fulfills these requirements
Added
falsefor both attributes.Fixed