From GridLAB-D Wiki
Jump to: navigation, search

 Approval item:  --Dchassin 23:46, 16 October 2011 (UTC)

 New in 3.0! 

Optimization is a general class of problem in which a property of an object of either minimized, maximized, or brought as close as possible to a given value, given a set of variable that can be altered, and a set of constraints that must not be violated.

Application Concept

A user implements a model that is intended to minimize/maximize a property that is calculated from the behavior of the system by altering one or more other properties during the simulation.

Design philosophy

The design approach of the optimizer is based on the idea that making optimization is a component of GridLAB-D as opposed to the idea that one uses GridLAB-D to do optimization. The optimizer should provide functionality that modelers can use rather than requiring modelers to provide models that optimization experts can use.

The optimizer is designed to meet the expectations of GridLAB-D modelers, rather than those of traditional optimization experts. For example, the terminology of "target property" (instead of objective) and "changing property" (instead of decision variable) to facility accessibility and understanding for GridLAB-D modelers who are not necessarily well-versed in the language of optimization.

Because of the structure of GridLAB-D models, it is easy to create discontinuous functions or even non-numeric values. The models usually cannot be solved with classical optimization methods. For this reason, it is not expected that the optimizer can always determine the global optimal.

Use case

USE CASE

U1

Simple optimization 
The user implements a thermostat control strategy that minimizes the energy cost given a 24 hour price forecast by adjusting the temperature setpoint for the next hour.

U2

Complex optimization 
The user implements a thermostat control strategy that minimizes the energy cost given a 24 hour price forecast by adjusting the temperature setpoint for the next hour and adjusting the bid price for in a retail market.

General requirements

REQUIREMENT

R1

Module scope

R1.1

Name 
GridLAB-D shall implement optimization in the module optimization.

R1.2

Core scope 
that operates using the main solver engine in the core.

R1.3

Class scope 
Optimizer objectives shall be implemented as individual objects of the class objective.

R2

The objective object shall allow the following properties to be specified by the user

R2.1

Target property 
The target property shall specify the optimization objective in the form of a minimization, maximization, or equality.

R2.2

Changing properties 
The properties that may be changed to achieve the objective shall be specified in a form compliant with the GridLAB-D object reference standard.

R2.3

Constraints 
The constraints that are applied shall be specified in the form of relations between object properties and/or expressions that are compliant with GLM syntax.

R2.4

Maximum trials 
The minimum number of trials before the optimizer fails shall be specified by the user.

R2.5

Precision 
The precision with which the objective must be determined shall be specified by the user.

R2.6

Models 
The user shall specify the modeling assumptions to use.

R2.7

Methods 
The user shall specify the method used to solve the optima.

See also