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 , Unknown }
 
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, const TowerInput &towerInput, const WaterCooledSystemInput &waterCooledSystemInput)
 
 ProcessCooling (const vector< int > &systemOperationAnnualHours, const vector< double > &weatherDryBulbHourlyTemp, const vector< double > &weatherWetBulbHourlyTemp, const vector< ChillerInput > &chillerInputList, const AirCooledSystemInput &airCooledSystemInput)
 
TowerOutput calculateTowerEnergy ()
 
ChillerOutput calculateChillerEnergy ()
 
ChillerPumpingEnergyOutput calculatePumpEnergy (PumpInput pump) const
 
vector< double > getChillerEfficiencyCoeffs (int chillerIndex) const
 
vector< double > getChillerEnergyEfficiency (int chillerIndex, const vector< double > &loadAtPercent) const
 

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, const AirCooledSystemInput &airCooledSystemInput, const TowerInput &towerInput, const WaterCooledSystemInput &waterCooledSystemInput)
 
int getChillerCapacityIndex (ChillerCompressorType chillerType, double capacity) const
 
double getChillerEffAtLoad (int c, double load, bool isFullLoadEffKnown) const
 
void annualChillerLoadProfile ()
 
void annualChillerEfficiencyProfileARI ()
 
void annualChillerEfficiencyProfile ()
 
void annualChillerPowerProfile ()
 
void setTowerFanHPTonnage ()
 
double getPercentFanPower (double wetBulbTemp, double percentWaterFlow, double range, double desiredApproach, int yearHourIndex)
 
double getPercentWaterFlow (int yearHourIndex) const
 
double getRange (int yearHourIndex) const
 
double getApproach (double wetBulbTemp) const
 
double modifyPercentFanPower (double percentFanPower) const
 
double getWeightedAverageChillerLoad (int yearHourIndex) const
 
double getChillerTonnageTotal () const
 

Static Private Member Functions

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 > > chillerEfficiencyCoeffs
 
vector< vector< double > > chillerHourlyEfficiencyARI
 
vector< vector< double > > chillerHourlyEfficiency
 
vector< vector< double > > chillerHourlyPower
 

Detailed Description

Definition at line 49 of file process_cooling.h.

Member Enumeration Documentation

◆ ACSourceLocation

enum ProcessCooling::ACSourceLocation

Definition at line 53 of file process_cooling.h.

◆ CellFanType

enum ProcessCooling::CellFanType

Definition at line 57 of file process_cooling.h.

◆ ChillerCompressorType

enum ProcessCooling::ChillerCompressorType

Definition at line 61 of file process_cooling.h.

◆ CoolingSystemType

enum ProcessCooling::CoolingSystemType

Definition at line 55 of file process_cooling.h.

◆ FanMotorSpeedType

enum ProcessCooling::FanMotorSpeedType

Definition at line 63 of file process_cooling.h.

◆ RefrigerantType

enum ProcessCooling::RefrigerantType

Definition at line 51 of file process_cooling.h.

◆ TowerSizedBy

enum ProcessCooling::TowerSizedBy

Definition at line 59 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,
const TowerInput towerInput,
const 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 506 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,
const 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 523 of file process_cooling.h.

Member Function Documentation

◆ calculateChillerEnergy()

ChillerOutput ProcessCooling::calculateChillerEnergy ( )
Returns
ChillerOutput

◆ calculatePumpEnergy()

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

◆ calculateTowerEnergy()

TowerOutput ProcessCooling::calculateTowerEnergy ( )
Returns
TowerOutput

◆ getChillerEfficiencyCoeffs()

vector< double > ProcessCooling::getChillerEfficiencyCoeffs ( int  chillerIndex) const
Parameters
chillerIndexinteger, zero based index of chiller from the chillers input provided
Returns
an array of coefficients 4 for 3rd degree polynomial(for FullLoadEffKnown or custom chiller) or 7 for 5th degree polynomial

◆ getChillerEnergyEfficiency()

vector< double > ProcessCooling::getChillerEnergyEfficiency ( int  chillerIndex,
const vector< double > &  loadAtPercent 
) const
Parameters
chillerIndexinteger, zero based index of chiller from the chillers input provided
loadAtPercentdouble array, % loading, between 0 and 100, can be either ascending or descending or in any order
Returns
an array of energy efficiency values for % loads, corresponding to the same order of input loadAtPercent array

◆ 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 592 of file process_cooling.h.

◆ chillerEfficiencyCoeffs

vector<vector<double> > ProcessCooling::chillerEfficiencyCoeffs
private

Definition at line 602 of file process_cooling.h.

◆ chillerHourlyEfficiency

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

Definition at line 604 of file process_cooling.h.

◆ chillerHourlyEfficiencyARI

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

Definition at line 603 of file process_cooling.h.

◆ chillerHourlyLoad

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

Definition at line 600 of file process_cooling.h.

◆ chillerHourlyLoadOperational

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

Definition at line 601 of file process_cooling.h.

◆ chillerHourlyPower

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

Definition at line 605 of file process_cooling.h.

◆ chillers

vector<ChillerInput> ProcessCooling::chillers
private

Definition at line 599 of file process_cooling.h.

◆ coolingType

CoolingSystemType ProcessCooling::coolingType
private

Definition at line 593 of file process_cooling.h.

◆ CWTHourly

vector<double> ProcessCooling::CWTHourly
private

Definition at line 596 of file process_cooling.h.

◆ dryBulbHourlyTemp

vector<double> ProcessCooling::dryBulbHourlyTemp
private

Definition at line 587 of file process_cooling.h.

◆ FCTemp

double ProcessCooling::FCTemp = 0
private

Definition at line 595 of file process_cooling.h.

◆ numChillers

int ProcessCooling::numChillers
private

Definition at line 598 of file process_cooling.h.

◆ systemOperationAnnual

vector<int> ProcessCooling::systemOperationAnnual
private

Definition at line 586 of file process_cooling.h.

◆ tower

TowerInput ProcessCooling::tower {}
private

Definition at line 590 of file process_cooling.h.

◆ waterCooledSystem

WaterCooledSystemInput ProcessCooling::waterCooledSystem
private

Definition at line 591 of file process_cooling.h.

◆ wetBulbHourlyTemp

vector<double> ProcessCooling::wetBulbHourlyTemp
private

Definition at line 588 of file process_cooling.h.


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