4

GenOpt/EnergyPlus-Best Algorithm for peak load reduction (load-shift)

I am actually trying to develop an algorithm to shift the load demand during on-peak hours using GenOpt. I have had a quick trial testing the example file HookJeeves Algorithm, however I have some doubts in order to achieve my target.

I would like to start with something very simple such as:

$\min_{J} : C(t) dt$

Where,

$C(t) = [P_{HP} + P_{DHW} +...] * TimeOfUse (t) $

  • $C(t)$ : Cost function

  • $TimeOf Use(t)$ : on-peak hour tariff prices and off-peak hour tariff prices

  • $P_{HP}$: Power associated to a Heat Pump

  • $P_{DHW}$ : Power associated to the Domestic Hot Water

and,

  • 18C <= Temperature indoor<= 21C

  • 45C <= Temperature Domestic Hot Water<= 55C

Therefore, I am not too sure if HookJeeves is the best algorithm to use for this case, and if it is, how can I set the time of use parameter and constraint the temperatures.

samks123's avatar
245
samks123
asked 2015-12-07 04:17:50 -0500, updated 2015-12-07 12:32:34 -0500
edit flag offensive 0 remove flag close merge delete

Comments

I'm pretty sure your question isn't actually about which algorithm to use (we don't care here...) but how to define your own cost function.

Julien Marrec's avatar Julien Marrec (2015-12-07 04:52:05 -0500) edit

@Julien. Yes indeed. Thanks again

samks123's avatar samks123 (2015-12-07 05:43:37 -0500) edit

Could you rephrase the question and the title. Like "GenOpt/EnergyPlus-How to write your own cost function" or something

Julien Marrec's avatar Julien Marrec (2015-12-07 06:14:53 -0500) edit
add a comment see more comments

1 Answer

3

You need to define your own cost function. I've personally done it in Python when needed, because that's my language of choice and because there exists some examples of how to do this.

Specifically, here are my recommendations:

  • Download and play with ExcalibBEM, which is a Graphical User Interface (GUI) for GenOpt developed by Hydro Quebec. It simplifies the setup quite a lot and comes with an example or two where a custom cost function is defined in Python. It's pretty easy to write your own function.

  • For the constraints, one simple way is to set the value of the cost function to infinite (= a very large value) when the constraints aren't satisfied (penalization).

Julien Marrec's avatar
29.7k
Julien Marrec
answered 2015-12-07 06:20:19 -0500, updated 2015-12-07 06:20:50 -0500
edit flag offensive 0 remove flag delete link

Comments

1

Adding a penalty or Barrier function is the only way to handle constraints in GenOpt

GilbertLM's avatar GilbertLM (2015-12-07 07:52:24 -0500) edit

@Julien, and @GilbertLM thanks very much.Will give a try to ExcalibBEM

samks123's avatar samks123 (2015-12-08 03:29:11 -0500) edit
add a comment see more comments