Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page

# Demand response in BEopt

Where can I find the algorithm used in BEopt for Demand Response? I would like to know how it uses the average or max temperature to control the appliances/HVAC system.

edit retag close merge delete

Sort by ยป oldest newest most voted

Have you seen the description in the BEopt help file? See the section Input > Site Input Screen > Other > Demand Response Signals. If that doesn't address your question, please provide more detail if possible on exactly what you want to know.

more

Yes, I have reviewed that page but I'm still confused about it. Let's say, I'm using a weather file for a climate zone other than California, which doesn't have the TDV information and I pick 10 events.

So, does BEopt pick the 10 days with the highest temperature and send the control signals? There is no utility rate involved in the calculations?

Also, weather files have hourly data but the signal type is based on daily avg./max temperature. How does that work?

My assumption was that there is an algorithm that considers the temperature, demand, and utility rates simultaneously.

( 2019-07-03 14:42:42 -0500 )edit

Correct, BEopt would pick the 10 days with the highest (avg or max) temperature independent of utility rates. The reason for this is because the actual demand response event is implemented as a day schedule swap. For example, note that the DR options in the Clothes Dryer Schedule category are defined by a regular schedule and a DR schedule. For the 10 DR event days, the DR schedule will be used; for all other days, the regular schedule is used.

( 2019-07-03 14:49:16 -0500 )edit

I see. Thanks for the clarification. Is there a method by which I can implement more complicated algorithms? Because the peak demand is not necessarily corresponding to the highest temperature. Any suggestions?

( 2019-07-03 14:58:34 -0500 )edit

There is no way to implement more complicated algorithms using the interface.

However, you can make modifications to the underlying algorithm if you know python. If you look at the _processDemandResponse method in the Modeling/sim.py file, you'll see that this method essentially constructs a list of days (dr.event_days) for which to apply the dr events. You could hardcode values in the list based on pre-processed logic (or add the logic into the file). If you go this route, I'd encourage you to look at BEopt's hourly output to make sure it's working as you expect.

( 2019-07-03 16:13:54 -0500 )edit

Interesting! Thanks!

( 2019-07-03 16:41:50 -0500 )edit