Transactive Controller

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.

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.

Behavior
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.

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

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

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

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

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

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

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

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

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

base_setpoint
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
"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.

NONE
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.

HOUSE_HEAT
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.

HOUSE_COOL
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.

HOUSE_PREHEAT
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.

HOUSE_PRECOOL
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.