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
InputData.h
1 
9 #ifndef AMO_TOOLS_SUITE_INPUT_DATA_H
10 #define AMO_TOOLS_SUITE_INPUT_DATA_H
11 
12 #include <cmath>
13 #include "calculator/util/Conversion.h"
14 
15 struct Motor {
16  enum class EfficiencyClass {
17  STANDARD,
18  ENERGY_EFFICIENT,
19  PREMIUM,
20  SPECIFIED,
21  };
22 
23  enum class LineFrequency {
24  FREQ60,
25  FREQ50
26  };
27 
28  enum class Drive {
29  DIRECT_DRIVE,
30  V_BELT_DRIVE,
31  N_V_BELT_DRIVE,
32  S_BELT_DRIVE,
33  SPECIFIED
34  };
35 
36  enum class LoadEstimationMethod {
37  POWER,
38  CURRENT
39  };
40 
52  Motor(const LineFrequency lineFrequency, const double motorRatedPower, const double motorRpm,
53  const EfficiencyClass efficiencyClass, const double specifiedEfficiency, const double motorRatedVoltage,
54  const double fullLoadAmps, const double sizeMargin = 1)
55  : lineFrequency(lineFrequency), motorRatedPower(motorRatedPower), motorRpm(motorRpm),
56  efficiencyClass(efficiencyClass), specifiedEfficiency(specifiedEfficiency),
57  motorRatedVoltage(motorRatedVoltage), fullLoadAmps(fullLoadAmps), sizeMargin(sizeMargin)
58  {};
59 
60  const LineFrequency lineFrequency;
61  const double motorRatedPower, motorRpm;
62  const Motor::EfficiencyClass efficiencyClass;
63  const double specifiedEfficiency, motorRatedVoltage, fullLoadAmps, sizeMargin;
64 };
65 
66 namespace Fan {
67  struct Input {
68  Input(const double fanSpeed, const double airDensity, const Motor::Drive drive, double specifiedEfficiency)
69  : fanSpeed(fanSpeed), airDensity(airDensity), drive(drive), specifiedEfficiency(specifiedEfficiency)
70  {}
71 
72  double fanSpeed, airDensity;
73  Motor::Drive drive;
74  double specifiedEfficiency;
75  };
76 
77  struct FieldDataModified {
87  FieldDataModified(const double measuredVoltage, const double measuredAmps, const double flowRate, const double inletPressure,
88  const double outletPressure, const double compressibilityFactor)
89  : measuredVoltage(measuredVoltage), measuredAmps(measuredAmps), flowRate(flowRate),
90  inletPressure(inletPressure), outletPressure(outletPressure), compressibilityFactor(compressibilityFactor)
91  {}
92 
93  double measuredVoltage, measuredAmps, flowRate, inletPressure, outletPressure, compressibilityFactor;
94  };
95 
96  struct FieldDataBaseline: public FieldDataModified {
108  FieldDataBaseline(const double measuredPower, const double measuredVoltage, const double measuredAmps,
109  const double flowRate, const double inletPressure, const double outletPressure,
110  const double compressibilityFactor, Motor::LoadEstimationMethod loadEstimationMethod)
111  : FieldDataModified(measuredVoltage, measuredAmps, flowRate, inletPressure, outletPressure, compressibilityFactor),
112  measuredPower(measuredPower), loadEstimationMethod(loadEstimationMethod)
113  {}
114 
115  double measuredPower;
116  Motor::LoadEstimationMethod loadEstimationMethod;
117  };
118 }
119 
120 namespace Pump {
121  enum class SpecificSpeed {
122  FIXED_SPEED,
123  NOT_FIXED_SPEED
124  };
125 
126  enum class Style {
127  END_SUCTION_SLURRY,
128  END_SUCTION_SEWAGE,
129  END_SUCTION_STOCK,
130  END_SUCTION_SUBMERSIBLE_SEWAGE,
131  API_DOUBLE_SUCTION,
132  MULTISTAGE_BOILER_FEED,
133  END_SUCTION_ANSI_API,
134  AXIAL_FLOW,
135  DOUBLE_SUCTION,
136  VERTICAL_TURBINE,
137  LARGE_END_SUCTION,
138  SPECIFIED_OPTIMAL_EFFICIENCY
139  };
140 
141  struct FieldData {
151  FieldData(const double flowRate, const double head, const Motor::LoadEstimationMethod loadEstimationMethod, const double motorPower,
152  const double motorAmps, const double voltage)
153  : flowRate(flowRate), head(head), loadEstimationMethod(loadEstimationMethod), motorPower(motorPower),
154  motorAmps(motorAmps), voltage(voltage)
155  {}
156 
157  const double flowRate, head;
158  const Motor::LoadEstimationMethod loadEstimationMethod;
159  const double motorPower, motorAmps, voltage;
160  };
161 
162  struct Input {
174  Input(const Style style, double pumpEfficiency, const double rpm, const Motor::Drive drive,
175  const double kviscosity,
176  const double specificGravity, const int stageCount, const SpecificSpeed speed, double specifiedEfficiency)
177  : style(style), pumpEfficiency(pumpEfficiency), rpm(rpm), drive(drive),
178  kviscosity(kviscosity),
179  specificGravity(specificGravity), stageCount(stageCount), speed(speed), specifiedEfficiency(specifiedEfficiency) {
183  // this->specifiedEfficiency = Conversion(specifiedEfficiency).percentToFraction();
184  // this->pumpEfficiency = Conversion(pumpEfficiency).percentToFraction();
185  // this->specifiedEfficiency = specifiedEfficiency / 100.0;
186  // this->pumpEfficiency = pumpEfficiency / 100.0;
187  };
188 
189  const Style style;
190  double pumpEfficiency, rpm;
191  const Motor::Drive drive;
192  const double kviscosity, specificGravity;
193  const int stageCount;
194  const SpecificSpeed speed;
195  double specifiedEfficiency;
196 
197  };
198 }
199 
200 #endif //AMO_TOOLS_SUITE_INPUT_DATA_H
Input(const Style style, double pumpEfficiency, const double rpm, const Motor::Drive drive, const double kviscosity, const double specificGravity, const int stageCount, const SpecificSpeed speed, double specifiedEfficiency)
Definition: InputData.h:174
Motor(const LineFrequency lineFrequency, const double motorRatedPower, const double motorRpm, const EfficiencyClass efficiencyClass, const double specifiedEfficiency, const double motorRatedVoltage, const double fullLoadAmps, const double sizeMargin=1)
Definition: InputData.h:52
FieldDataModified(const double measuredVoltage, const double measuredAmps, const double flowRate, const double inletPressure, const double outletPressure, const double compressibilityFactor)
Definition: InputData.h:87
FieldData(const double flowRate, const double head, const Motor::LoadEstimationMethod loadEstimationMethod, const double motorPower, const double motorAmps, const double voltage)
Definition: InputData.h:151
Contains InputData for both PSAT and Fan results.
Definition: InputData.h:15
FieldDataBaseline(const double measuredPower, const double measuredVoltage, const double measuredAmps, const double flowRate, const double inletPressure, const double outletPressure, const double compressibilityFactor, Motor::LoadEstimationMethod loadEstimationMethod)
Definition: InputData.h:108
Definition: InputData.h:66