# Compressor models

class PythonModel.compressors.ReciprocatingCompressor(parameters)

  Bases: `object`

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

  Parameters:

    - pisDis – Piston displacement (m3/s).

    - cleFac – Clearance factor (-).

    - etaEle – Electro-mechanical efficiency (-).

    - PLos – Constant part of the power losses (W).

    - pDro – Pressure drop at compressor suction and discharge (Pa).

    - dTSup – Degree of superheating (K).

  get_DischargePressure(pCon)

    Evaluate the discharge pressure (Pa).

    Parameters:

      pCon – Condensing pressure (Pa).

    Returns:

      Discharge pressure (Pa).

    Usage: Type

          >>> com = ReciprocatingCompressor([0.00162, 0.069, 0.696, 100.0, 99.29e3, 9.82])
          >>> '%.1f' % com.get_DischargePressure(1.879e6)
          '1978290.0'

  get_Power(vSuc, ref, pDis, pSuc, TSuc, **kargs)

    Evaluate the power input to the compressor.

    Parameters:

      - vSuv – Suction specific volume (m3/kg).

      - ref – Refrigerant model.

      - pDis – Discharge pressure (Pa).

      - pSuc – Suction pressure (Pa).

      - TSuc – Suction temperature (K).

    Returns:

      Power input to the compressor (W).

    Usage: Type

          >>> import refrigerants
          >>> ref = refrigerants.R410A()
          >>> com = ReciprocatingCompressor([0.00162, 0.069, 0.696, 100.0, 99.29e3, 9.82])
          >>> '%.2f' % com.get_Power(0.0288, ref, 1978290.0, 983710.0, 292.97)
          '1765.63'

  get_RefrigerantMassFlowRate(vSuc, ref, pDis, pSuc, TSuc, **kargs)

    Evaluate the refrigerant mass flow rate.

    Parameters:

      - vSuv – Suction specific volume (m3/kg).

      - ref – Refrigerant model.

      - pDis – Discharge pressure (Pa).

      - pSuc – Suction pressure (Pa).

      - TSuc – Suction temperature (K).

    Returns:

      Refrigerant mass flow rate (kg/s).

    Usage: Type

          >>> import refrigerants
          >>> ref = refrigerants.R410A()
          >>> com = ReciprocatingCompressor([0.00162, 0.069, 0.696, 100.0, 99.29e3, 9.82])
          >>> '%.8f' % com.get_RefrigerantMassFlowRate(0.0288, ref, 1978290.0, 983710.0, 292.97)
          '0.05358166'

  get_SuctionPressure(pEva)

    Evaluate the suction pressure.

    Parameters:

      pEva – Evaporating pressure (Pa).

    Returns:

      Suction pressure (Pa).

    Usage: Type

          >>> com = ReciprocatingCompressor([0.00162, 0.069, 0.696, 100.0, 99.29e3, 9.82])
          >>> '%.1f' % com.get_SuctionPressure(1.083e6)
          '983710.0'

  get_SuctionTemperature(TEva)

    Evaluate the suction temperature.

    Parameters:

      TEva – Evaporating temperature (K).

    Returns:

      Suction temperature (K).

    Usage: Type

          >>> com = ReciprocatingCompressor([0.00162, 0.069, 0.696, 100.0, 99.29e3, 9.82])
          >>> '%.2f' % com.get_SuctionTemperature(283.15)
          '292.97'

  initialGuessParameters(Q_nominal, P_nominal, TSou_nominal, TLoa_nominal, ref, CoolingMode)

    Initialize guess parameters for calibration of the heat pump model.

    Parameters:

      - Q_nominal – Nominal heat pump capacity (W).

      - P_nominal – Nominal power input (W).

      - TSou_nominal – Source-side water temperature at nominal conditions (K).

      - TLoa_nominal – Load-side water temperature at nominal conditions (K).

      - ref – Refrigerant model.

      - CoolingMode – Boolean, True if heat pump is in cooling mode.

    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.

  modelicaModelPath()
    Returns the full path to the compressor model in the Buildings

      library.

    Returns:

      Full path to the compressor model in the IBPSA library.

    Usage: Type

          >>> com = ReciprocatingCompressor([0.00162, 0.069, 0.696, 100.0, 99.29e3, 9.82])
          >>> com.modelicaModelPath()
          'IBPSA.Fluid.HeatPumps.Compressors.ReciprocatingCompressor'

  printParameters()

    Prints the value of the model parameters.

  reinitializeParameters(parameters)

    Reinitializes the compressor using new parameters.

    Parameters:

      - pisDis – Piston displacement (m3/s).

      - cleFac – Clearance factor (-).

      - etaEle – Electro-mechanical efficiency (-).

      - PLos – Constant part of the power losses (W).

      - pDro – Pressure drop at compressor suction and discharge (Pa).

      - dTSup – Degree of superheating (K).

class PythonModel.compressors.ScrollCompressor(parameters)

  Bases: `object`

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

  Parameters:

    - volRat – Volume ratio (-).

    - v_flow – Nominal Volume flow rate (m3/s).

    - leaCoe – LEakage coefficient (kg/s).

    - etaEle – Electro-mechanical efficiency (-).

    - PLos – Constant part of the power losses (W).

    - dTSup – Degree of superheating (K).

  get_DischargePressure(pCon)

    Evaluate the discharge pressure (Pa).

    Parameters:

      pCon – Condensing pressure (Pa).

    Returns:

      Discharge pressure (Pa).

    Usage: Type

          >>> com = ScrollCompressor([2.362, 0.00287, 0.0041, 0.922, 398.7, 6.49])
          >>> '%.1f' % com.get_DischargePressure(1.879e6)
          '1879000.0'

  get_Power(vSuc, ref, pDis, pSuc, TSuc)

    Evaluate the power input to the compressor.

    Parameters:

      - vSuv – Suction specific volume (m3/kg).

      - ref – Refrigerant model.

      - pDis – Discharge pressure (Pa).

      - pSuc – Suction pressure (Pa).

      - TSuc – Suction temperature (K).

    Returns:

      Power input to the compressor (W).

    Usage: Type

          >>> import refrigerants
          >>> ref = refrigerants.R410A()
          >>> com = ScrollCompressor([2.362, 0.00287, 0.0041, 0.922, 398.7, 6.49])
          >>> '%.2f' % com.get_Power(0.025, ref, 1.879e6, 1.083e6, 289.64)
          '2940.26'

  get_RefrigerantMassFlowRate(vSuc, pDis, pSuc, **kargs)

    Evaluate the refrigerant mass flow rate.

    Parameters:

      - vSuv – Suction specific volume (m3/kg).

      - pDis – Discharge pressure (Pa).

      - pSuc – Suction pressure (Pa).

      - TSuc – Suction temperature (K).

    Returns:

      Refrigerant mass flow rate (kg/s).

    Usage: Type

          >>> com = ScrollCompressor([2.362, 0.00287, 0.0041, 0.922, 398.7, 6.49])
          >>> '%.6f' % com.get_RefrigerantMassFlowRate(0.025, 1.879e6, 1.083e6)
          '0.107687'

  get_SuctionPressure(pEva)

    Evaluate the suction pressure.

    Parameters:

      pEva – Evaporating pressure (Pa).

    Returns:

      Suction pressure (Pa).

    Usage: Type

          >>> com = ScrollCompressor([2.362, 0.00287, 0.0041, 0.922, 398.7, 6.49])
          >>> '%.1f' % com.get_SuctionPressure(1.083e6)
          '1083000.0'

  get_SuctionTemperature(TEva)

    Evaluate the suction temperature.

    Parameters:

      TEva – Evaporating temperature (K).

    Returns:

      Suction temperature (K).

    Usage: Type

          >>> com = ScrollCompressor([2.362, 0.00287, 0.0041, 0.922, 398.7, 6.49])
          >>> '%.2f' % com.get_SuctionTemperature(283.15)
          '289.64'

  initialGuessParameters(Q_nominal, P_nominal, TSou_nominal, TLoa_nominal, ref, CoolingMode)

    Initialize guess parameters for calibration of the heat pump model.

    Parameters:

      - Q_nominal – Nominal heat pump capacity (W).

      - P_nominal – Nominal power input (W).

      - TSou_nominal – Source-side water temperature at nominal conditions (K).

      - TLoa_nominal – Load-side water temperature at nominal conditions (K).

      - ref – Refrigerant model.

      - CoolingMode – Boolean, True if heat pump is in cooling mode.

    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.

  modelicaModelPath()
    Returns the full path to the compressor model in the Buildings

      library.

    Returns:

      Full path to the compressor model in the IBPSA library.

    Usage: Type

          >>> com = ScrollCompressor([2.362, 0.00287, 0.0041, 0.922, 398.7, 6.49])
          >>> com.modelicaModelPath()
          'IBPSA.Fluid.HeatPumps.Compressors.ScrollCompressor'

  printParameters()

    Prints the value of the model parameters.

  reinitializeParameters(parameters)

    Reinitializes the compressor using new parameters.

    Parameters:

      - volRat – Volume ratio (-).

      - v_flow – Nominal Volume flow rate (m3/s).

      - leaCoe – LEakage coefficient (kg/s).

      - etaEle – Electro-mechanical efficiency (-).

      - PLos – Constant part of the power losses (W).

      - dTSup – Degree of superheating (K).

  set_ModelicaParameters(simulator, suffix='')

    Set parameter values for simulation in dymola.

    Parameters:

      - simulator – Simulator object (BuildinsPy)

      - suffix – String to add at the end of parameter names.

    Returns:

      Simulator object (BuildingsPy)