AMO-Tools-Suite  v.0.9.0
Set of tools for calculating energy efficiency in industrial equipment
All Classes Namespaces Files Functions Variables Enumerations Friends Macros Pages
CompressedAirReduction.h
1 #ifndef AMO_LIBRARY_COMPRESSEDAIRREDUCTION_H
2 #define AMO_LIBRARY_COMPRESSEDAIRREDUCTION_H
3 
4 #include <exception>
5 #include <stdexcept>
6 #include <vector>
7 
9 {
10  public:
11  CompressedAirFlowMeterMethodData(const double meterReading)
12  : meterReading(meterReading) {}
13 
14  double getMeterReading() const { return meterReading; }
15  void setMeterReading(double meterReading);
16 
17  private:
18  double meterReading;
19 };
20 
21 class BagMethodData
22 {
23  public:
24  BagMethodData(const double height, const double diameter, const double fillTime)
25  : height(height), diameter(diameter), fillTime(fillTime) {}
26 
27  double getHeight() const { return height; }
28  double getDiameter() const { return diameter; }
29  double getFillTime() const { return fillTime; }
30  void setHeight(double height);
31  void setDiameter(double diameter);
32  void setFillTime(double fillTime);
33 
34  private:
35  double height, diameter, fillTime;
36 };
37 
39 {
40  public:
41  PressureMethodData(const int nozzleType, const int numberOfNozzles, const double supplyPressure)
42  : nozzleType(nozzleType), numberOfNozzles(numberOfNozzles), supplyPressure(supplyPressure) {}
43 
44  int getNozzleType() const { return nozzleType; }
45  int getNumberOfNozzles() const { return numberOfNozzles; }
46  double getSupplyPressure() const { return supplyPressure; }
47  void setNozzleType(int nozzleType);
48  void setNumberOfNozzles(int numberOfNozzles);
49  void setSupplyPressure(double supplyPressure);
50 
51  double calculate();
52 
53  private:
54  int nozzleType, numberOfNozzles;
55  double supplyPressure;
56 };
57 
59 {
60  public:
61  CompressedAirOtherMethodData(const double consumption)
62  : consumption(consumption) {}
63 
64  double getConsumption() const { return consumption; }
65  void setConsumption(double consumption);
66 
67  private:
68  double consumption;
69 };
70 
71 //calculates electricity use for a compressor if utilityType == electricity
73 {
74  public:
75  CompressorElectricityData(const double compressorControlAdjustment, const double compressorSpecificPower)
76  : compressorControlAdjustment(compressorControlAdjustment), compressorSpecificPower(compressorSpecificPower) {}
77 
78  double calculate();
79 
80  private:
81  double compressorControlAdjustment, compressorSpecificPower;
82 };
83 
85 {
86  public:
87  CompressedAirReductionInput(const int hoursPerYear, const int utilityType, const double utilityCost, const int measurementMethod,
88  const CompressedAirFlowMeterMethodData flowMeterMethodData, const BagMethodData bagMethodData,
89  const PressureMethodData pressureMethodData, const CompressedAirOtherMethodData otherMethodData,
90  const CompressorElectricityData compressorElectricityData, const int units)
91  : hoursPerYear(hoursPerYear), utilityType(utilityType), utilityCost(utilityCost), measurementMethod(measurementMethod),
92  flowMeterMethodData(flowMeterMethodData), bagMethodData(bagMethodData),
93  pressureMethodData(pressureMethodData), otherMethodData(otherMethodData),
94  compressorElectricityData(compressorElectricityData), units(units) {}
95 
96  int getHoursPerYear() const { return hoursPerYear; }
97  int getUtilityType() const { return utilityType; }
98  int getMeasurementMethod() const { return measurementMethod; }
99  int getUnits() const { return units; }
100  double getUtilityCost() const { return utilityCost; }
101  CompressedAirFlowMeterMethodData getFlowMeterMethodData() const { return flowMeterMethodData; }
102  BagMethodData getBagMethodData() const { return bagMethodData; }
103  PressureMethodData getPressureMethodData() const { return pressureMethodData; }
104  CompressedAirOtherMethodData getOtherMethodData() const { return otherMethodData; }
105  CompressorElectricityData getCompressorElectricityData() const { return compressorElectricityData; }
106 
107  private:
108  int hoursPerYear, utilityType;
109  double utilityCost;
110  int measurementMethod;
111  CompressedAirFlowMeterMethodData flowMeterMethodData;
112  BagMethodData bagMethodData;
113  PressureMethodData pressureMethodData;
114  CompressedAirOtherMethodData otherMethodData;
115  CompressorElectricityData compressorElectricityData;
116  int units;
117 };
118 
120 {
121  public:
122  struct Output
123  {
124  Output(double energyUse, double energyCost, double flowRate, double singleNozzleFlowRate, double consumption)
125  : energyUse(energyUse), energyCost(energyCost), flowRate(flowRate), singleNozzleFlowRate(singleNozzleFlowRate), consumption(consumption) {}
126 
127  Output() = default;
128  double energyUse = 0, energyCost = 0, flowRate = 0, singleNozzleFlowRate, consumption = 0;
129  };
130 
131  CompressedAirReduction(std::vector<CompressedAirReductionInput> &compressedAirReductionInputVec) : compressedAirReductionInputVec(compressedAirReductionInputVec)
132  {
133  }
134 
135  CompressedAirReduction::Output calculate();
136  std::vector<CompressedAirReductionInput> const &getCompressedAirReductionInputVec() const
137  {
138  return compressedAirReductionInputVec;
139  }
140  void setCompressedAirReductionInputVec(std::vector<CompressedAirReductionInput> &compressedAirReductionInputVec);
141 
142  private:
143  std::vector<CompressedAirReductionInput> compressedAirReductionInputVec;
145 };
146 
147 #endif // AMO_LIBRARY_COMPRESSEDAIRREDUCTION_H