From GridLAB-D Wiki
(Redirected from Controller (class))
Jump to: navigation, search

A member of the Market module, the Transactive Controller provides price-responsive appliance control within GridLAB-D. By comparing the current price against the average daily price, the controller determines the current monetary demand by the appliance for power to run. The controller bids this value to an auction object, waits for the market to clear, retrieves the current price of power, and updates the appliance's setpoint using that price.

Controller Actors

Parent Appliance

The parent object of the transactive controller is the object where the setpoint, demand, and target properties will be found. Any control actions will be done to the properties pointed at in the parent object.

Associated Market

The market referenced by the 'market' property is where the price signals are taken from, for the set point calculations, and is the destination for any energy purchase bids.


The transactive controller is designed to modify a specific set point property based on a combination of ramp settings and the difference between the current and average price of (generally) energy.

When the simulation starts, the controller first identifies five properties: the set point property, the observation property, the power demand property, the load power property, and the total power property. The set point property is used as the finite output component from the controller's bid strategy, which is controlled with the T and ramp properties.

The basic strategy of the transactive controller is to allow the setpoint to be automatically increased or decreased by a specified range, in degrees Fahrenheit, based on the controller's input average market price and current market price. As the current price increases in comparison to the average price, the controller will adjust the setpoint to use less power. As the price decreases compared to the average price, the controller will adjust the setpoint to use more power. The propensity of the controller to increase or decrease the setpoint is based on the ramp values, and can be different between the rate at which the setpoint will change as the price goes above the average, and the rate at which the setpoint will change as the price goes below the average.

Under no circumstances will the setpoint stray outside the boundary ranges imposed with Tmin and Tmax. If the observation extents above or below these values, the system will either shut off or turn on, regardless of the current price of power.


ramp_low & ramp_high

The ramp value represents the number of standard deviations that the controller will vary its bids by to reach its maximum and minimum bid points, with the 'low' ramp being the limit as the thermostat pushes the setpoint below its base temperature, and the 'high' ramp as the base thermostat setpoint goes up.

Tmin & Tmax

The absolute values for the temperature variability from the base setpoint, in degrees. Tmin must be negative and Tmax must be positive.


The name of the property in the parent to observe and use with the setpoint property to determine appropriate bid prices.


The name of the property that both contains the base setpoint and should be used to update the thermostat's current, controlled set point.


The name of the property that contains the power load currently demanded by the controlled appliance.


The name of the property with the currently controllable power load within the parent.


The name of the property with the currently uncontrollable power load within the parent. Needed for bidding reasons.


The market object the controller uses for price signals and energy market bids.


Output value. The bidding price used by this controller in the last timestep.


Output value. The bidding quantity used by this controller in the last timestep.


Output value. The current result for the finite output calculation.


The base setpoint to use for the controller. Effectively overrides the use of the property pointed to with "setpoint". Players should point to this value instead of the parent's setpoint.


"Simple mode" is meant to provide a quick way to set up the transactive controller for particular applications when attached to the HVAC system of a house object.


This instructs the controller to use the values read in from the model file. This is the default value, since 'simple mode' is meant to be easily overridden.


This will point the components of the controller to the air heating properties of a house and allow the thermostat to slip up to five degrees cooler until the price reaches two standard deviations above average.


Similar to the house heating mode, this will connect the controller to the air cooling properties and allow the thermostat to slip up to five degrees warmer over two standard deviations.


The house preheat mode observes the heating system of the house, and will adjust the thermostat three degrees warmer or five degrees cooler as the price signal fluctuates across two standard deviations above or below the average price.


The house precool mode will move the thermostat setpoint to cool three degrees lower or to five degrees warmer as the current price varies from two standard deviations below average to two standard deviations above.