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