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 voidevaluateTariffs(List<Tariff> tariffs)Called to evaluate tariffs.doublegetBrokerSwitchFactor(boolean isSuperseding)Returns a [0,1] value representing the inconvenience of switching brokers.CapacityProfilegetCapacityProfile(Tariff tariff)Returns a capacity profile for the given tariff.doublegetCop()doublegetCurrentTemp()CustomerInfogetCustomerInfo()Returns the CustomerInfo instance for this customer model.doublegetEvalEnvTemp()doublegetFloorRValue()doublegetHysteresis()doublegetInertiaSample()Returns a [0,1] random value used to choose whether individual customers evaluate tariffs or not.doublegetInfiltrationRatio()doublegetMaxTemp()doublegetMinTemp()doublegetNewStockTemp()doublegetNominalTemp()doublegetNonCoolingUsage()doublegetRoofArea()doublegetRoofRValue()doublegetShiftingInconvenienceFactor(Tariff tariff)Returns a [0,1] value representing the inconvenience of dealing with curtailment in exchange for a lower price.doublegetShiftSag()doublegetStockCapacity()doublegetTariffChoiceSample()Returns a [0,1] random value used to make choices using the logit choice model.doublegetTurnoverRatio()doublegetUnitSize()doublegetWallArea()doublegetWallRValue()voidinitialize()Initializes the instance.voidsetCurrentTemp(double temp)voidsetEvalEnvTemp(double temp)voidsetShiftSag(double deltaT)voidstep()Called to run the model forward one step.ColdStoragewithCop(double value)ColdStoragewithFloorRValue(double value)ColdStoragewithHysteresis(double value)ColdStoragewithInfiltrationRatio(double value)ColdStoragewithMaxTemp(double temp)ColdStoragewithMinTemp(double temp)ColdStoragewithNewStockTemp(double temp)ColdStoragewithNominalTemp(double temp)ColdStoragewithNonCoolingUsage(double value)ColdStoragewithRoofArea(double area)ColdStoragewithRoofRValue(double value)ColdStoragewithStockCapacity(double value)ColdStoragewithTurnoverRatio(double ratio)ColdStoragewithUnitSize(double cap)ColdStoragewithWallArea(double area)ColdStoragewithWallRValue(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:AbstractCustomerInitializes the instance. Called after configuration, and after a call to setServices(). TODO -- do we really want this here?- Overrides:
initializein classAbstractCustomer
-
getCustomerInfo
public CustomerInfo getCustomerInfo()
Description copied from interface:CustomerModelAccessorReturns the CustomerInfo instance for this customer model.- Specified by:
getCustomerInfoin interfaceCustomerModelAccessor
-
step
public void step()
Description copied from class:AbstractCustomerCalled to run the model forward one step.- Specified by:
stepin classAbstractCustomer
-
evaluateTariffs
public void evaluateTariffs(List<Tariff> tariffs)
Description copied from class:AbstractCustomerCalled to evaluate tariffs.- Specified by:
evaluateTariffsin classAbstractCustomer
-
getCapacityProfile
public CapacityProfile getCapacityProfile(Tariff tariff)
Description copied from interface:CustomerModelAccessorReturns 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:
getCapacityProfilein interfaceCustomerModelAccessor
-
getBrokerSwitchFactor
public double getBrokerSwitchFactor(boolean isSuperseding)
Description copied from interface:CustomerModelAccessorReturns 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:
getBrokerSwitchFactorin interfaceCustomerModelAccessor
-
getTariffChoiceSample
public double getTariffChoiceSample()
Description copied from interface:CustomerModelAccessorReturns a [0,1] random value used to make choices using the logit choice model.- Specified by:
getTariffChoiceSamplein interfaceCustomerModelAccessor
-
getInertiaSample
public double getInertiaSample()
Description copied from interface:CustomerModelAccessorReturns a [0,1] random value used to choose whether individual customers evaluate tariffs or not.- Specified by:
getInertiaSamplein 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:CustomerModelAccessorReturns a [0,1] value representing the inconvenience of dealing with curtailment in exchange for a lower price.- Specified by:
getShiftingInconvenienceFactorin interfaceCustomerModelAccessor
-
-