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
ElectricityReduction.h
1#ifndef TOOLS_SUITE_ELECTRICITYREDUCTION_H
2#define TOOLS_SUITE_ELECTRICITYREDUCTION_H
3
4#include <exception>
5#include <stdexcept>
6#include <vector>
7
9 public:
10 MultimeterData(const int numberOfPhases, const double supplyVoltage, const double averageCurrent,
11 const double powerFactor)
12 : numberOfPhases(numberOfPhases), supplyVoltage(supplyVoltage), averageCurrent(averageCurrent),
13 powerFactor(powerFactor) {}
14
15 int getNumberOfPhases() const { return numberOfPhases; }
16
17 double getSupplyVoltage() const { return supplyVoltage; }
18
19 double getAverageCurrent() const { return averageCurrent; }
20
21 double getPowerFactor() const { return powerFactor; }
22
23 void setNumberOfPhases(int numberOfPhases);
24
25 void setSupplyVoltage(double supplyVoltage);
26
27 void setAverageCurrent(double averageCurrent);
28
29 void setPowerFactor(double powerFactor);
30
31 private:
32 int numberOfPhases;
33 double supplyVoltage, averageCurrent, powerFactor;
34};
35
37 public:
38 NameplateData(const double ratedMotorPower, const bool variableSpeedMotor, const double operationalFrequency,
39 const double lineFrequency, const double motorAndDriveEfficiency, const double loadFactor)
40 : ratedMotorPower(ratedMotorPower), variableSpeedMotor(variableSpeedMotor),
41 operationalFrequency(operationalFrequency), lineFrequency(lineFrequency),
42 motorAndDriveEfficiency(motorAndDriveEfficiency), loadFactor(loadFactor) {}
43
44 double getRatedMotorPower() const { return ratedMotorPower; }
45
46 bool getVariableSpeedMotor() const { return variableSpeedMotor; }
47
48 double getOperationalFrequency() const { return operationalFrequency; }
49
50 double getLineFrequency() const { return lineFrequency; }
51
52 double getMotorAndDriveEfficiency() const { return motorAndDriveEfficiency; }
53
54 double getLoadFactor() const { return loadFactor; }
55
56 void setRatedMotorPower(double ratedMotorPower);
57
58 void setVariableSpeedMotor(bool variableSpeedMotor);
59
60 void setOperationalFrequency(double operationalFrequency);
61
62 void setLineFrequency(double lineFrequency);
63
64 void setMotorAndDriveEfficiency(double motorAndDriveEfficiency);
65
66 void setLoadFactor(double loadFactor);
67
68 private:
69 double ratedMotorPower;
70 bool variableSpeedMotor;
71 double operationalFrequency, lineFrequency, motorAndDriveEfficiency, loadFactor;
72};
73
75 public:
76 PowerMeterData(const double power) : power(power) {}
77
78 double getPower() const { return power; }
79
80 void setPower(double power);
81
82 private:
83 double power;
84};
85
87 public:
88 OtherMethodData(const double energy) : energy(energy) {}
89
90 double getEnergy() const { return energy; }
91
92 void setEnergy(double energy);
93
94 private:
95 double energy;
96};
97
99 public:
100 ElectricityReductionInput(const int operatingHours, const double electricityCost, const int measurementMethod,
101 const MultimeterData multimeterData, const NameplateData nameplateData,
102 const PowerMeterData powerMeterData, const OtherMethodData otherMethodData,
103 const int units)
104 : operatingHours(operatingHours), electricityCost(electricityCost), measurementMethod(measurementMethod),
105 multimeterData(multimeterData), nameplateData(nameplateData), powerMeterData(powerMeterData),
106 otherMethodData(otherMethodData), units(units) {}
107
108 int getOperatingHours() const { return operatingHours; }
109
110 double getElectricityCost() const { return electricityCost; }
111
112 int getMeasurementMethod() const { return measurementMethod; }
113
114 int getUnits() const { return units; }
115
116 MultimeterData getMultimeterData() const { return multimeterData; }
117
118 NameplateData getNameplateData() const { return nameplateData; }
119
120 PowerMeterData getPowerMeterData() const { return powerMeterData; }
121
122 OtherMethodData getOtherMethodData() const { return otherMethodData; }
123
124 private:
125 int operatingHours;
126 double electricityCost;
127 int measurementMethod;
128 MultimeterData multimeterData;
129 NameplateData nameplateData;
130 PowerMeterData powerMeterData;
131 OtherMethodData otherMethodData;
132 int units;
133};
134
136 public:
137 struct Output {
138 Output(double energyUse, double energyCost, double power)
139 : energyUse(energyUse), energyCost(energyCost), power(power) {}
140
141 Output() = default;
142
143 double energyUse = 0, energyCost = 0, power = 0;
144 };
145
146 ElectricityReduction(std::vector<ElectricityReductionInput> electricityReductionInputVec)
147 : electricityReductionInputVec(electricityReductionInputVec) {}
148
150
151 ElectricityReduction::Output getOutput() { return output; }
152
153 std::vector<ElectricityReductionInput> const& getElectricityReductionInputVec() const {
154 return electricityReductionInputVec;
155 }
156
157 void setElectricityReductionInputVec(std::vector<ElectricityReductionInput>& electricityReductionInputVec);
158
159 private:
160 std::vector<ElectricityReductionInput> electricityReductionInputVec;
162};
163
164#endif // TOOLS_SUITE_ELECTRICITYREDUCTION_H