Class ColdStorage
- java.lang.Object
-
- org.powertac.customer.AbstractCustomer
-
- org.powertac.customer.coldstorage.ColdStorage
-
- All Implemented Interfaces:
CustomerModelAccessor
@Domain @ConfigurableInstance public class ColdStorage extends AbstractCustomer implements CustomerModelAccessor
*** Description is incorrect *** Model of a cold-storage warehouse with multiple refrigeration units. The size of the refrigeration units is specified as stockCapacity. The number is indeterminate - as many as needed will be used, depending on heat loss and current internal temperature. If currentTemp < nominalTemp and falling or steady, then a unit will be de-energized. If currentTemp >= nominalTemp and rising or steady, then another unit will be activated.- Author:
- John Collins
-
-
Field Summary
-
Fields inherited from class org.powertac.customer.AbstractCustomer
allCustomerInfos, customerInfos, name, rs1, service
-
-
Constructor Summary
Constructors Constructor Description ColdStorage()
Default constructor, requires manual setting of nameColdStorage(String name)
Constructor with name
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
evaluateTariffs(List<Tariff> tariffs)
Called to evaluate tariffs.double
getBrokerSwitchFactor(boolean isSuperseding)
Returns a [0,1] value representing the inconvenience of switching brokers.CapacityProfile
getCapacityProfile(Tariff tariff)
Returns a capacity profile for the given tariff.double
getCop()
double
getCurrentTemp()
CustomerInfo
getCustomerInfo()
Returns the CustomerInfo instance for this customer model.double
getEvalEnvTemp()
double
getFloorRValue()
double
getHysteresis()
double
getInertiaSample()
Returns a [0,1] random value used to choose whether individual customers evaluate tariffs or not.double
getInfiltrationRatio()
double
getMaxTemp()
double
getMinTemp()
double
getNewStockTemp()
double
getNominalTemp()
double
getNonCoolingUsage()
double
getRoofArea()
double
getRoofRValue()
double
getShiftingInconvenienceFactor(Tariff tariff)
Returns a [0,1] value representing the inconvenience of dealing with curtailment in exchange for a lower price.double
getShiftSag()
double
getStockCapacity()
double
getTariffChoiceSample()
Returns a [0,1] random value used to make choices using the logit choice model.double
getTurnoverRatio()
double
getUnitSize()
double
getWallArea()
double
getWallRValue()
void
initialize()
Initializes the instance.void
setCurrentTemp(double temp)
void
setEvalEnvTemp(double temp)
void
setShiftSag(double deltaT)
void
step()
Called to run the model forward one step.ColdStorage
withCop(double value)
ColdStorage
withFloorRValue(double value)
ColdStorage
withHysteresis(double value)
ColdStorage
withInfiltrationRatio(double value)
ColdStorage
withMaxTemp(double temp)
ColdStorage
withMinTemp(double temp)
ColdStorage
withNewStockTemp(double temp)
ColdStorage
withNominalTemp(double temp)
ColdStorage
withNonCoolingUsage(double value)
ColdStorage
withRoofArea(double area)
ColdStorage
withRoofRValue(double value)
ColdStorage
withStockCapacity(double value)
ColdStorage
withTurnoverRatio(double ratio)
ColdStorage
withUnitSize(double cap)
ColdStorage
withWallArea(double area)
ColdStorage
withWallRValue(double value)
-
Methods inherited from class org.powertac.customer.AbstractCustomer
addCustomerInfo, changeSubscription, createTariffEvaluator, getCurrentSubscriptions, getCurrentSubscriptions, getCustId, getCustomerInfo, getCustomerInfoList, getCustomerInfos, getId, getName, getPopulation, lastSunday, nextStartOfDay, saveBootstrapState, setName, setServiceAccessor, setTariffMarket, startOfDay, toString
-
-
-
-
Constructor Detail
-
ColdStorage
public ColdStorage()
Default constructor, requires manual setting of name
-
ColdStorage
public ColdStorage(String name)
Constructor with name
-
-
Method Detail
-
initialize
public void initialize()
Description copied from class:AbstractCustomer
Initializes the instance. Called after configuration, and after a call to setServices(). TODO -- do we really want this here?- Overrides:
initialize
in classAbstractCustomer
-
getCustomerInfo
public CustomerInfo getCustomerInfo()
Description copied from interface:CustomerModelAccessor
Returns the CustomerInfo instance for this customer model.- Specified by:
getCustomerInfo
in interfaceCustomerModelAccessor
-
step
public void step()
Description copied from class:AbstractCustomer
Called to run the model forward one step.- Specified by:
step
in classAbstractCustomer
-
evaluateTariffs
public void evaluateTariffs(List<Tariff> tariffs)
Description copied from class:AbstractCustomer
Called to evaluate tariffs.- Specified by:
evaluateTariffs
in classAbstractCustomer
-
getCapacityProfile
public CapacityProfile getCapacityProfile(Tariff tariff)
Description copied from interface:CustomerModelAccessor
Returns a capacity profile for the given tariff. This must represent the usage of a single individual in a population model over some model-specific time period.- Specified by:
getCapacityProfile
in interfaceCustomerModelAccessor
-
getBrokerSwitchFactor
public double getBrokerSwitchFactor(boolean isSuperseding)
Description copied from interface:CustomerModelAccessor
Returns a [0,1] value representing the inconvenience of switching brokers. The value may depend on whether the current subscription is being switched to a superseding tariff as a result of revocation.- Specified by:
getBrokerSwitchFactor
in interfaceCustomerModelAccessor
-
getTariffChoiceSample
public double getTariffChoiceSample()
Description copied from interface:CustomerModelAccessor
Returns a [0,1] random value used to make choices using the logit choice model.- Specified by:
getTariffChoiceSample
in interfaceCustomerModelAccessor
-
getInertiaSample
public double getInertiaSample()
Description copied from interface:CustomerModelAccessor
Returns a [0,1] random value used to choose whether individual customers evaluate tariffs or not.- Specified by:
getInertiaSample
in interfaceCustomerModelAccessor
-
getCurrentTemp
public double getCurrentTemp()
-
setCurrentTemp
@StateChange public void setCurrentTemp(double temp)
-
getMinTemp
public double getMinTemp()
-
withMinTemp
@ConfigurableValue(valueType="Double", dump=false, description="minimum allowable temperature") @StateChange public ColdStorage withMinTemp(double temp)
-
getMaxTemp
public double getMaxTemp()
-
withMaxTemp
@ConfigurableValue(valueType="Double", dump=false, description="maximum allowable temperature") @StateChange public ColdStorage withMaxTemp(double temp)
-
getNominalTemp
public double getNominalTemp()
-
setShiftSag
@ConfigurableValue(valueType="Double", description="allowable temperature change to save money on TOU tariffs") @StateChange public void setShiftSag(double deltaT)
-
getShiftSag
public double getShiftSag()
-
setEvalEnvTemp
@ConfigurableValue(valueType="Double", dump=false, description="assumed outdoor temp for tariff evaluation") @StateChange public void setEvalEnvTemp(double temp)
-
getEvalEnvTemp
public double getEvalEnvTemp()
-
withNominalTemp
@ConfigurableValue(valueType="Double", dump=false, description="nominal internal temperature") @StateChange public ColdStorage withNominalTemp(double temp)
-
getNewStockTemp
public double getNewStockTemp()
-
withNewStockTemp
@ConfigurableValue(valueType="Double", dump=false, description="Temperature of incoming stock") @StateChange public ColdStorage withNewStockTemp(double temp)
-
getStockCapacity
public double getStockCapacity()
-
withStockCapacity
@ConfigurableValue(valueType="Double", dump=false, description="Typical inventory in tonnes of H2O") @StateChange public ColdStorage withStockCapacity(double value)
-
getTurnoverRatio
public double getTurnoverRatio()
-
withTurnoverRatio
@ConfigurableValue(valueType="Double", description="Ratio of stock that gets replaced daily") @StateChange public ColdStorage withTurnoverRatio(double ratio)
-
getRoofArea
public double getRoofArea()
-
withRoofArea
@ConfigurableValue(valueType="Double", dump=false, description="Area of roof") @StateChange public ColdStorage withRoofArea(double area)
-
getRoofRValue
public double getRoofRValue()
-
withRoofRValue
@ConfigurableValue(valueType="Double", description="R-value of roof insulation") @StateChange public ColdStorage withRoofRValue(double value)
-
getWallArea
public double getWallArea()
-
withWallArea
@ConfigurableValue(valueType="Double", dump=false, description="Total area of outside walls") @StateChange public ColdStorage withWallArea(double area)
-
getWallRValue
public double getWallRValue()
-
withWallRValue
@ConfigurableValue(valueType="Double", description="R-value of wall insulation") @StateChange public ColdStorage withWallRValue(double value)
-
getFloorRValue
public double getFloorRValue()
-
withFloorRValue
@ConfigurableValue(valueType="Double", description="R-value of floor insulation") @StateChange public ColdStorage withFloorRValue(double value)
-
getInfiltrationRatio
public double getInfiltrationRatio()
-
withInfiltrationRatio
@ConfigurableValue(valueType="Double", dump=false, description="Infiltration loss as proportion of wall + roof loss") @StateChange public ColdStorage withInfiltrationRatio(double value)
-
getUnitSize
public double getUnitSize()
-
withUnitSize
@ConfigurableValue(valueType="Double", dump=false, description="Thermal capacity in tons of cooling plant") @StateChange public ColdStorage withUnitSize(double cap)
-
getCop
public double getCop()
-
withCop
@ConfigurableValue(valueType="Double", dump=false, description="Coefficient of Performance of refrigeration unit") @StateChange public ColdStorage withCop(double value)
-
getHysteresis
public double getHysteresis()
-
withHysteresis
@ConfigurableValue(valueType="Double", dump=false, description="Control range for refrigeration unit") @StateChange public ColdStorage withHysteresis(double value)
-
getNonCoolingUsage
public double getNonCoolingUsage()
-
withNonCoolingUsage
@ConfigurableValue(valueType="Double", dump=false, description="Mean hourly energy usage for non-cooling purposes") @StateChange public ColdStorage withNonCoolingUsage(double value)
-
getShiftingInconvenienceFactor
public double getShiftingInconvenienceFactor(Tariff tariff)
Description copied from interface:CustomerModelAccessor
Returns a [0,1] value representing the inconvenience of dealing with curtailment in exchange for a lower price.- Specified by:
getShiftingInconvenienceFactor
in interfaceCustomerModelAccessor
-
-