Class 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
    • Constructor Detail

      • ColdStorage

        public ColdStorage()
        Default constructor, requires manual setting of name
      • ColdStorage

        public ColdStorage​(String name)
        Constructor with name
    • Method Detail

      • 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)