# Heat pump models

class `PythonModel.heatpumps.``SingleStageHeatPump`(com, con, eva, ref, fluCon, fluEva, Q_nominal, P_nominal, CoolingMode=False)

  Bases: `object`

  Object for heat pump model based on Jin (2002):
    H. Jin. Parameter estimation based models of water source heat pumps. PhD Thesis. Oklahoma State University. Stillwater, Oklahoma, USA. 2012.

  Parameters: | eva – Evaporator model. con – Condenser model. ref – Refrigerant model. fluCon – Fluid model for fluid on the condenser side. fluEva – Fluid model for fluid on the evaporator side. Q_nominal – Nominal heat pump capacity (W). P_nominal – Nominal heat pump power input (W). CoolingMode – Boolean, True if heat pump is in cooling mode.

  `get_Capacity`(EWT_Source, EWT_Load, flowSource, flowLoad)

    Return heat pump capacity.

    Parameters: | EWT_Source – Entering water temperature on the source side (K). EWT_Load – Entering water temperature on the load side (K). flowSource – Fluid mass flow rate on the source side (kg/s). flowLoad – Fluid mass flow rate on the load side (kg/s).
    Returns: | Heat pump capacity (W).

    Usage: Type

          >>> import compressors
          >>> import heatexchangers
          >>> import fluids
          >>> import refrigerants
          >>> com = compressors.ScrollCompressor([2.362, 0.00287, 0.0041, 0.922, 398.7, 6.49])
          >>> eva = heatexchangers.EvaporatorCondenser([21523])
          >>> con = heatexchangers.EvaporatorCondenser([2840.4])
          >>> flu = fluids.ConstantPropertyWater()
          >>> ref = refrigerants.R410A()
          >>> heaPum = SingleStageHeatPump(com, con, eva, ref, flu, flu, 19300.0, 4289.0)
          >>> '%.2f' % heaPum.get_Capacity(298.8, 311.0, 0.71, 0.71)
          '24124.81'

  `get_CondenserHeatTransferRate`(EWT_Source, EWT_Load, flowSource, flowLoad)

    Evaluate condenser heat transfer rate.

    Parameters: | EWT_Source – Entering water temperature on the source side (K). EWT_Load – Entering water temperature on the load side (K). flowSource – Fluid mass flow rate on the source side (kg/s). flowLoad – Fluid mass flow rate on the load side (kg/s).
    Returns: | condenser heat transfer rate (W).

    Usage: Type

          >>> import compressors
          >>> import heatexchangers
          >>> import fluids
          >>> import refrigerants
          >>> com = compressors.ScrollCompressor([2.362, 0.00287, 0.0041, 0.922, 398.7, 6.49])
          >>> eva = heatexchangers.EvaporatorCondenser([21523])
          >>> con = heatexchangers.EvaporatorCondenser([2840.4])
          >>> flu = fluids.ConstantPropertyWater()
          >>> ref = refrigerants.R410A()
          >>> heaPum = SingleStageHeatPump(com, con, eva, ref, flu, flu, 19300.0, 4289.0)
          >>> '%.2f' % heaPum.get_CondenserHeatTransferRate(298.8, 311.0, 0.71, 0.71)
          '24124.81'

  `get_EvaporatorHeatTransferRate`(EWT_Source, EWT_Load, flowSource, flowLoad)

    Evaluate evaporator heat transfer rate.

    Parameters: | EWT_Source – Entering water temperature on the source side (K). EWT_Load – Entering water temperature on the load side (K). flowSource – Fluid mass flow rate on the source side (kg/s). flowLoad – Fluid mass flow rate on the load side (kg/s).
    Returns: | Evaporator heat transfer rate (W).

    Usage: Type

          >>> import compressors
          >>> import heatexchangers
          >>> import fluids
          >>> import refrigerants
          >>> com = compressors.ScrollCompressor([2.362, 0.00287, 0.0041, 0.922, 398.7, 6.49])
          >>> eva = heatexchangers.EvaporatorCondenser([21523])
          >>> con = heatexchangers.EvaporatorCondenser([2840.4])
          >>> flu = fluids.ConstantPropertyWater()
          >>> ref = refrigerants.R410A()
          >>> heaPum = SingleStageHeatPump(com, con, eva, ref, flu, flu, 19300.0, 4289.0)
          >>> '%.2f' % heaPum.get_EvaporatorHeatTransferRate(298.8, 311.0, 0.71, 0.71)
          '-19413.08'

  `get_Power`(EWT_Source, EWT_Load, flowSource, flowLoad)

    Evaluate heat pump power input.

    Parameters: | EWT_Source – Entering water temperature on the source side (K). EWT_Load – Entering water temperature on the load side (K). flowSource – Fluid mass flow rate on the source side (kg/s). flowLoad – Fluid mass flow rate on the load side (kg/s).
    Returns: | Heat pump power input (W).

    Usage: Type

          >>> import compressors
          >>> import heatexchangers
          >>> import fluids
          >>> import refrigerants
          >>> com = compressors.ScrollCompressor([2.362, 0.00287, 0.0041, 0.922, 398.7, 6.49])
          >>> eva = heatexchangers.EvaporatorCondenser([21523])
          >>> con = heatexchangers.EvaporatorCondenser([2840.4])
          >>> flu = fluids.ConstantPropertyWater()
          >>> ref = refrigerants.R410A()
          >>> heaPum = SingleStageHeatPump(com, con, eva, ref, flu, flu, 19300.0, 4289.0)
          >>> '%.2f' % heaPum.get_Power(298.8, 311.0, 0.71, 0.71)
          '4711.73'

  `get_SourceSideTransferRate`(EWT_Source, EWT_Load, flowSource, flowLoad)

    Return heat pump source side heat transfer rate.

    Parameters: | EWT_Source – Entering water temperature on the source side (K). EWT_Load – Entering water temperature on the load side (K). flowSource – Fluid mass flow rate on the source side (kg/s). flowLoad – Fluid mass flow rate on the load side (kg/s).
    Returns: | Heat pump source side heat transfer rate (W).

    Usage: Type

          >>> import compressors
          >>> import heatexchangers
          >>> import fluids
          >>> import refrigerants
          >>> com = compressors.ScrollCompressor([2.362, 0.00287, 0.0041, 0.922, 398.7, 6.49])
          >>> eva = heatexchangers.EvaporatorCondenser([21523])
          >>> con = heatexchangers.EvaporatorCondenser([2840.4])
          >>> flu = fluids.ConstantPropertyWater()
          >>> ref = refrigerants.R410A()
          >>> heaPum = SingleStageHeatPump(com, con, eva, ref, flu, flu, 19300.0, 4289.0)
          >>> '%.2f' % heaPum.get_SourceSideTransferRate(298.8, 311.0, 0.71, 0.71)
          '19413.08'

  `initialGuessParameters`(data)

    Initialize guess parameters for calibration of the heat pump model.

    Parameters: | data – Heat pump performance data.
    Returns: | A list of parameters to the compressor model, a list of tuples of the bounds of the parameters (min, max) for the calibration routine.

  `modelicaCalibrationModelPath`()
    Returns the full path to the heat pump model for calibration in the
      AixLib library.

    Returns: | Full path to the compressor model in the AixLib library.

    Usage: Type

          >>> import compressors
          >>> import heatexchangers
          >>> import fluids
          >>> import refrigerants
          >>> com = compressors.ScrollCompressor([2.362, 0.00287, 0.0041, 0.922, 398.7, 6.49])
          >>> eva = heatexchangers.EvaporatorCondenser([21523])
          >>> con = heatexchangers.EvaporatorCondenser([2840.4])
          >>> flu = fluids.ConstantPropertyWater()
          >>> ref = refrigerants.R410A()
          >>> heaPum = SingleStageHeatPump(com, con, eva, ref, flu, flu, 19300.0, 4289.0)
          >>> heaPum.modelicaCalibrationModelPath()
          'AixLib.Fluid.HeatPumps.Calibration.ScrollWaterToWater'

  `modelicaModelName`()
    Returns the name of the heat pump model for calibration in the
      AixLib library.

    Returns: | Full path to the compressor model in the AixLib library.

    Usage: Type

          >>> import compressors
          >>> import heatexchangers
          >>> import fluids
          >>> import refrigerants
          >>> com = compressors.ScrollCompressor([2.362, 0.00287, 0.0041, 0.922, 398.7, 6.49])
          >>> eva = heatexchangers.EvaporatorCondenser([21523])
          >>> con = heatexchangers.EvaporatorCondenser([2840.4])
          >>> flu = fluids.ConstantPropertyWater()
          >>> ref = refrigerants.R410A()
          >>> heaPum = SingleStageHeatPump(com, con, eva, ref, flu, flu, 19300.0, 4289.0)
          >>> heaPum.modelicaModelName()
          'ScrollWaterToWater'

  `modelicaModelPath`()

    Returns the full path to the heat pump model in the Buildings library.

    Returns: | Full path to the compressor model in the AixLib library.

    Usage: Type

          >>> import compressors
          >>> import heatexchangers
          >>> import fluids
          >>> import refrigerants
          >>> com = compressors.ScrollCompressor([2.362, 0.00287, 0.0041, 0.922, 398.7, 6.49])
          >>> eva = heatexchangers.EvaporatorCondenser([21523])
          >>> con = heatexchangers.EvaporatorCondenser([2840.4])
          >>> flu = fluids.ConstantPropertyWater()
          >>> ref = refrigerants.R410A()
          >>> heaPum = SingleStageHeatPump(com, con, eva, ref, flu, flu, 19300.0, 4289.0)
          >>> heaPum.modelicaModelPath()
          'AixLib.Fluid.HeatPumps.ScrollWaterToWater'

  `printParameters`()

    Prints the value of the model parameters.

  `reinitializeParameters`(parameters)

    Reinitializes the heat pump using new parameters.

    Parameters: | parameters – Heat pump parameters.

  `set_ModelicaParameters`(simulator)

    Set parameter values for simulation in dymola.

    Parameters: | simulator – Simulator object (BuildingsPy)
    Returns: | Simulator object (BuildingsPy)

  `set_State`(EWT_Source, EWT_Load, flowSource, flowLoad, tol=1e-06, relax=0.7)

    Evaluates the current state of the heat pump.

    Parameters: | EWT_Source – Entering water temperature on the source side (K). EWT_Load – Entering water temperature on the load side (K). flowSource – Fluid mass flow rate on the source side (kg/s). flowLoad – Fluid mass flow rate on the load side (kg/s). tol – Relative tolerance on the evaluation of the capacity and heat pump power input (-). relax – Relaxation factor for the iteration procedure (-).