MEASUR-Tools-Suite v1.0.11
The MEASUR Tools Suite is a collection of industrial efficiency calculations written in C++ and with bindings for compilation to WebAssembly.
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
ProcessCooling Class Reference

Calculator estimates energy consumption of operating Chillers, Pumps and Towers in a cooling system (both air & water). Allows: Input multiple & varying capacity and types of Chillers that are operating together. Flexible input for operating schedule for each Chiller. Apply changes ( improvements / measures) and compare & examine, quantifying energy and cost savings. Changes: Increasing the chilled water temperature Decreasing the condenser water temperature Replacing the chillers Applying variable speed control to circulation pump motors Upgrade Tower Cell Fan Motor controls Upgrades: Replace chiller refrigerant Install Variable Speed Drive (VSD) on Centrifugal compressors Use Free Cooling. More...

#include <process_cooling.h>

Classes

struct  AirCooledSystemInput
 
struct  ChillerInput
 
struct  ChillerOutput
 
struct  ChillerPumpingEnergyOutput
 
struct  PumpInput
 
struct  TowerInput
 
struct  TowerOutput
 
struct  WaterCooledSystemInput
 

Public Types

enum  RefrigerantType {
  R_11 , R_123 , R_12 , R_134a ,
  R_22 , R_717
}
 
enum  ACSourceLocation { Inside , Outside }
 
enum  CoolingSystemType { Water , Air }
 
enum  CellFanType { AxialFan , CentrifugalFan }
 
enum  TowerSizedBy { Tonnage , Fan_HP }
 
enum  ChillerCompressorType { Centrifugal , Screw , Reciprocating }
 
enum  FanMotorSpeedType { One , Two , Variable }
 

Public Member Functions

 ProcessCooling (const vector< int > &systemOperationAnnualHours, const vector< double > &weatherDryBulbHourlyTemp, const vector< double > &weatherWetBulbHourlyTemp, const vector< ChillerInput > &chillerInputList, TowerInput towerInput, WaterCooledSystemInput waterCooledSystemInput)
 
 ProcessCooling (const vector< int > &systemOperationAnnualHours, const vector< double > &weatherDryBulbHourlyTemp, const vector< double > &weatherWetBulbHourlyTemp, const vector< ChillerInput > &chillerInputList, AirCooledSystemInput airCooledSystemInput)
 
TowerOutput calculateTowerEnergy ()
 
ChillerOutput calculateChillerEnergy ()
 
ChillerPumpingEnergyOutput calculatePumpEnergy (PumpInput pump)
 

Static Public Member Functions

static vector< int > getSysOpAnnualHours (const vector< int > &weeklyOpStartHour, const vector< int > &weeklyOpStopHour, const vector< int > &monthlyOpMaxHour)
 

Private Member Functions

 ProcessCooling (const vector< int > &systemOperationAnnualHours, const vector< double > &weatherDryBulbHourlyTemp, const vector< double > &weatherWetBulbHourlyTemp, const vector< ChillerInput > &chillerInputList, AirCooledSystemInput airCooledSystemInput, TowerInput towerInput, WaterCooledSystemInput waterCooledSystemInput)
 
void annualChillerLoadProfile ()
 
void annualChillerEfficiencyProfileARI ()
 
void annualChillerEfficiencyProfile ()
 
void annualChillerPowerProfile ()
 
double getPercentFanPower (double wetBulbTemp, double percentWaterFlow, double range, double desiredApproach, int yearHourIndex)
 
double getPercentWaterFlow (int yearHourIndex)
 
double getRange (int yearHourIndex)
 
double getApproach (double wetBulbTemp, double minToChillersTemp) const
 
double modifyPercentFanPower (double percentFanPower) const
 
double getWeightedAverageChillerLoad (int yearHourIndex)
 
double getChillerTonnageTotal ()
 

Static Private Member Functions

static double getFanHP (double tonnage, TowerSizedBy towerSizing, int fanNum, CellFanType fanType, double fanHP)
 
static double getCubeRoot (double number)
 
static double getPumpHP (double power)
 

Private Attributes

vector< int > systemOperationAnnual
 
vector< double > dryBulbHourlyTemp
 
vector< double > wetBulbHourlyTemp
 
TowerInput tower {}
 
WaterCooledSystemInput waterCooledSystem
 
AirCooledSystemInput airCooledSystem
 
CoolingSystemType coolingType
 
double FCTemp = 0
 
vector< double > CWTHourly
 
int numChillers
 
vector< ChillerInputchillers
 
vector< vector< double > > chillerHourlyLoad
 
vector< vector< double > > chillerHourlyLoadOperational
 
vector< vector< double > > chillerHourlyEfficiencyARI
 
vector< vector< double > > chillerHourlyEfficiency
 
vector< vector< double > > chillerHourlyPower
 

Detailed Description

Definition at line 48 of file process_cooling.h.

Member Enumeration Documentation

◆ ACSourceLocation

enum ProcessCooling::ACSourceLocation

Definition at line 52 of file process_cooling.h.

◆ CellFanType

enum ProcessCooling::CellFanType

Definition at line 56 of file process_cooling.h.

◆ ChillerCompressorType

enum ProcessCooling::ChillerCompressorType

Definition at line 60 of file process_cooling.h.

◆ CoolingSystemType

enum ProcessCooling::CoolingSystemType

Definition at line 54 of file process_cooling.h.

◆ FanMotorSpeedType

enum ProcessCooling::FanMotorSpeedType

Definition at line 62 of file process_cooling.h.

◆ RefrigerantType

enum ProcessCooling::RefrigerantType

Definition at line 50 of file process_cooling.h.

◆ TowerSizedBy

enum ProcessCooling::TowerSizedBy

Definition at line 58 of file process_cooling.h.

Constructor & Destructor Documentation

◆ ProcessCooling() [1/2]

ProcessCooling::ProcessCooling ( const vector< int > &  systemOperationAnnualHours,
const vector< double > &  weatherDryBulbHourlyTemp,
const vector< double > &  weatherWetBulbHourlyTemp,
const vector< ChillerInput > &  chillerInputList,
TowerInput  towerInput,
WaterCooledSystemInput  waterCooledSystemInput 
)
inline

Use this constructor for water cooling system

Parameters
systemOperationAnnualHoursinteger array of 8760 hours of the year with values as 0 or 1
weatherDryBulbHourlyTempdouble, @unit{\F}, array of 8760 hours of the year with dry bulb hourly recorded temperature
weatherWetBulbHourlyTempdouble, @unit{\F}, array of 8760 hours of the year with wet bulb hourly recorded temperature
chillerInputListChillerInput array
towerInputTowerInput
waterCooledSystemInputWaterCooledSystemInput

Definition at line 485 of file process_cooling.h.

◆ ProcessCooling() [2/2]

ProcessCooling::ProcessCooling ( const vector< int > &  systemOperationAnnualHours,
const vector< double > &  weatherDryBulbHourlyTemp,
const vector< double > &  weatherWetBulbHourlyTemp,
const vector< ChillerInput > &  chillerInputList,
AirCooledSystemInput  airCooledSystemInput 
)
inline

Use this constructor for air cooled system

Parameters
systemOperationAnnualHoursinteger array of 8760 hours of the year with values as 0 or 1
weatherDryBulbHourlyTempdouble array of 8760 hours of the year with dry bulb hourly recorded temperature
weatherWetBulbHourlyTempdouble array of 8760 hours of the year with wet bulb hourly recorded temperature
chillerInputListChillerInput array
airCooledSystemInputAirCooledSystemInput

Definition at line 502 of file process_cooling.h.

Member Function Documentation

◆ calculateChillerEnergy()

ChillerOutput ProcessCooling::calculateChillerEnergy ( )
Returns
ChillerOutput

◆ calculatePumpEnergy()

ChillerPumpingEnergyOutput ProcessCooling::calculatePumpEnergy ( PumpInput  pump)
Parameters
pumpPumpInput
Returns
ChillerPumpingEnergyOutput

◆ calculateTowerEnergy()

TowerOutput ProcessCooling::calculateTowerEnergy ( )
Returns
TowerOutput

◆ getSysOpAnnualHours()

static vector< int > ProcessCooling::getSysOpAnnualHours ( const vector< int > &  weeklyOpStartHour,
const vector< int > &  weeklyOpStopHour,
const vector< int > &  monthlyOpMaxHour 
)
static

Use this method to generate system operation annual hours from weekly schedules and monthly max operation hours

Parameters
weeklyOpStartHourinteger array of 7 with hours of the day of the week with start hour of operation (0-23)
weeklyOpStopHourinteger array of 7 with hours of the day of the week with stop hour of operation (0-24)
monthlyOpMaxHourinteger array of 12 with months of the year with max operation hours in that month (0-744) 0 for no operation for that month. If monthlyOpMaxHour exceeds the total hours for a month, it will be capped to the max hours in that month and ending hour for that month will be set to non operational after the max hours is reached.
Returns
integer array of 8760 hours of the year with values as 0 or 1 set based on weekly and monthly schedules

Member Data Documentation

◆ airCooledSystem

AirCooledSystemInput ProcessCooling::airCooledSystem
private

Definition at line 552 of file process_cooling.h.

◆ chillerHourlyEfficiency

vector<vector<double> > ProcessCooling::chillerHourlyEfficiency
private

Definition at line 563 of file process_cooling.h.

◆ chillerHourlyEfficiencyARI

vector<vector<double> > ProcessCooling::chillerHourlyEfficiencyARI
private

Definition at line 562 of file process_cooling.h.

◆ chillerHourlyLoad

vector<vector<double> > ProcessCooling::chillerHourlyLoad
private

Definition at line 560 of file process_cooling.h.

◆ chillerHourlyLoadOperational

vector<vector<double> > ProcessCooling::chillerHourlyLoadOperational
private

Definition at line 561 of file process_cooling.h.

◆ chillerHourlyPower

vector<vector<double> > ProcessCooling::chillerHourlyPower
private

Definition at line 564 of file process_cooling.h.

◆ chillers

vector<ChillerInput> ProcessCooling::chillers
private

Definition at line 559 of file process_cooling.h.

◆ coolingType

CoolingSystemType ProcessCooling::coolingType
private

Definition at line 553 of file process_cooling.h.

◆ CWTHourly

vector<double> ProcessCooling::CWTHourly
private

Definition at line 556 of file process_cooling.h.

◆ dryBulbHourlyTemp

vector<double> ProcessCooling::dryBulbHourlyTemp
private

Definition at line 547 of file process_cooling.h.

◆ FCTemp

double ProcessCooling::FCTemp = 0
private

Definition at line 555 of file process_cooling.h.

◆ numChillers

int ProcessCooling::numChillers
private

Definition at line 558 of file process_cooling.h.

◆ systemOperationAnnual

vector<int> ProcessCooling::systemOperationAnnual
private

Definition at line 546 of file process_cooling.h.

◆ tower

TowerInput ProcessCooling::tower {}
private

Definition at line 550 of file process_cooling.h.

◆ waterCooledSystem

WaterCooledSystemInput ProcessCooling::waterCooledSystem
private

Definition at line 551 of file process_cooling.h.

◆ wetBulbHourlyTemp

vector<double> ProcessCooling::wetBulbHourlyTemp
private

Definition at line 548 of file process_cooling.h.


The documentation for this class was generated from the following file: