chiller.py
- class openconcept.thermal.chiller.LinearSelector(**kwargs)
Bases:
ExplicitComponent
Averages thermal parameters given bypass
- Inputs:
T_in_hot (float) – Incoming coolant temperature on the hot side (vector, K)
T_in_cold (float) – Incoming coolant temperature on the cold side (vector, K)
T_out_refrig_cold (float) – Coolant temperature in chiller outlet on the cold side (vector, K)
T_out_refrig_hot (float) – Coolant temperature in chiller outlet on the hot side (vector, K)
power_rating (float) – Rated electric power (scalar, W)
bypass (float) – Bypass parameter in range 0 - 1 (inclusive); 0 represents full refrig and no bypass, 1 all bypass no refrig (vector, None)
- Outputs:
T_out_cold (float) – Outgoing coolant temperature on the cold side (vector, K)
T_out_hot (float) – Outgoing coolant temperature on the hot side (vector, K)
elec_load (float) – Electrical load (vector, W)
- Options:
num_nodes (int) – The number of analysis points to run
- class openconcept.thermal.chiller.COPHeatPump(**kwargs)
Bases:
ExplicitComponent
Models heat transfer to coolant loop assuming zero thermal resistance.
- Inputs:
COP (float) – Coeff of performance set by optimizer (vector, dimensionless)
power_rating (float) – Shaft work in the refrigerator (scalar, W)
- Outputs:
q_in_1 (float) – Heat transfer rate INTO side 1 (vector, W)
q_in_2 (float) – Heat transfer rate INTO side 2 (vector, W)
- Options:
num_nodes (int) – Number of analysis points to run (scalar, default 1)
- class openconcept.thermal.chiller.HeatPumpWeight(**kwargs)
Bases:
ExplicitComponent
Computes weight and power metrics for the vapor cycle machine. Defaults based on limited published data and guesswork.
- Inputs:
power_rating (float) – Rated electric power (scalar, W)
specific_power (float) – Power per weight (scalar, W/kg)
- Outputs:
component_weight (float) – Component weight (including coolants + motor) (scalar, kg)
- class openconcept.thermal.chiller.HeatPumpWithIntegratedCoolantLoop(**kwargs)
Bases:
Group
Models chiller with integrated coolant inputs and outputs on the hot and cold sides. Can bypass the chiller using linearly interpolated control points control.bypass_start and control.bypass_end outputs (0 is full refrigerator, 1 is full bypass, continuous in between).
- Inputs:
T_in_hot (float) – Incoming coolant temperature on the hot side (vector, K)
T_in_cold (float) – Incoming coolant temperature on the cold side (vector, K)
mdot_coolant (float) – Coolant mass flow rate (vector, kg/s)
power_rating (float) – Rated electric power, default 1 kW (scalar, W)
specific_power (float) – Heat pump power per weight, default 200 W/kg (scalar, W/kg)
eff_factor (float) – Heat pump Carnot efficiency factor, default 0.4 (scalar, None)
control.bypass_start (float) – Bypass value (in range 0-1) at beginning used for linear interpolation, 0 is full refrigerator and 1 is full bypass; must access via control component (i.e. with “control.bypass_start”) (scalar, None)
control.bypass_end (float) – Bypass value (in range 0-1) at end used for linear interpolation, 0 is full refrigerator and 1 is full bypass; must access via control component (i.e. with “control.bypass_end”) (scalar, None)
- Outputs:
T_out_hot (float) – Outgoing coolant temperature on the hot side (vector, K)
T_out_cold (float) – Outgoing coolant temperature on the cold side (vector, K)
component_weight (float) – Component weight (including coolants + motor) (scalar, kg)
elec_load (float) – Electrical load (vector, W)
- Options:
num_nodes (int) – The number of analysis points to run
specific_heat (float) – Specific heat of the coolant (scalar, J/kg/K, default 3801 glycol/water)
- class openconcept.thermal.chiller.COPExplicit(**kwargs)
Bases:
ExplicitComponent
Computes “soft” coefficient of performance (COP) that doesn’t blow up as T_h - T_c approaches zero
- Inputs:
T_c (float) – Cold side temperature (vector, K)
T_h (float) – Hot side temperature (vector, K)
eff_factor (float) – Efficiency factor (scalar, None)
- Outputs:
COP (float) – Coefficient of performance (vector, None)
- Options:
num_nodes (int) – The number of analysis points to run