ibpsa / project1-boptest

Building Optimization Performance Tests
Other
107 stars 69 forks source link

Add peak demand kpi #388

Closed dhblum closed 2 years ago

dhblum commented 2 years ago

This issue is to add a peak demand kpi equal to the maximum 15-minute demand of an energy vector over the time period of the simulation. This is as discussed in IBPSA Project WP1.2.

dhblum commented 2 years ago

A question is posed if 15-minute average is a good basis to use in BOPTEST, or should we simply use the maximum instantaneous demand. Note BOPTEST saves results at 30-second intervals, so this would be the 30-second demand.

My suggestion of the 15-minute average came from my knowledge of how an electric utility in California measures peak demand for monthly billing. See for example this tariff schedule on page 8: "Basis for demand charge." I'm noticing they do have a special note that 5-minute average may be used if demand is fluctuates a lot.

I've looked around at a couple other utility companies: PECO (Philadelphia) doesn't really spell out the basis for demand calculation in detail, COMED (Chicago) says, "30-minute demand" though not anything about averaging, Duke Energy (North Carolina) mentions 15-minute average, United Power (Colorado) mentions 15-minute average, and SunPower (company that sells solar products) mentions 15-minute average is typical in U.S.

The 15-minute or other time period is more forgiving of very short spikes and has some basis in how U.S. utilities calculate demand for customer billing purposes. Instantaneous demand is maybe more straight-forward and the examples above are electric utilities, not gas or other fuels.

Anyone have other thoughts or insights?

haraldwalnum commented 2 years ago

In Norway monthly demand charge is currently on 1 hour average (both electricity and district heating). It has been discussed to change this to 15 min in the future. For grid companies, I think this would normally be sufficient, as they are mainly concerned about an aggregated level. If this later should be used in scenarios with demand charge, I think 15 min is reasonable. Anyway, changing the averaging period should be simple.

Instantaneous demand is more down to the properties of the building, like the size of the main fuse.

I would opt for the 15 min (or similar) average. If this later should be used in scenarios with demand charge, I think 15 min is reasonable. Anyway, changing the averaging period should be simple

dhblum commented 2 years ago

Thanks Harald, very good to know. I agree that if scenarios are developed that calculate demand charges as part of operational cost, they could use an averaging period that makes sense for that scenario. I would like to not have to change the averaging period for this core peak demand KPI later however if we can help it.

If it makes sense, another idea is that we could specify the averaging period in the config.json for each fuel for each test case, so it could be specified as appropriate.

javiarrobas commented 2 years ago

Thanks @dhblum and @haraldwalnum for all the references! certainly averaging over 15 minutes makes much more sense now. I'm wondering whether it's needed to specify the averaging period in the config.json. Maybe something to be discussed in our next IBPSA Project 1 expert meeting?

dhblum commented 2 years ago

I do not think adding an averaging period to config.json would be hard or prohibitive. Again, it could be good to give some flexibility to test cases if they are meant to be in locations under different utility metering rules, and similarly for different fuels. I suggest we discuss in the WP1.2 meeting so we can decide and move forward with the implementation.

dhblum commented 2 years ago

For documentation just adding the conclusion of the most recent WP1.2 monthly meeting:

Conclusion: divide time series in 15-minutes intervals and take the maximum of these intervals. Add peak demand for electricity, gas, and district heating.

dhblum commented 2 years ago

Closed by https://github.com/ibpsa/project1-boptest/pull/394.