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
MotorData.h
1#ifndef TOOLS_SUITE_MOTORDATA_H
2#define TOOLS_SUITE_MOTORDATA_H
3
4#include <string>
5
6struct Motor {
7 enum class EfficiencyClass {
8 STANDARD,
9 ENERGY_EFFICIENT,
10 PREMIUM,
11 SPECIFIED,
12 };
13
14 enum class LineFrequency { FREQ60, FREQ50 };
15
16 enum class Drive { DIRECT_DRIVE, V_BELT_DRIVE, N_V_BELT_DRIVE, S_BELT_DRIVE, SPECIFIED };
17
18 enum class LoadEstimationMethod { POWER, CURRENT };
19
31 Motor(const LineFrequency lineFrequency, const double motorRatedPower, const double motorRpm,
32 const EfficiencyClass efficiencyClass, const double specifiedEfficiency, const double motorRatedVoltage,
33 const double fullLoadAmps, const double sizeMargin = 1)
34 : lineFrequency(lineFrequency), motorRatedPower(motorRatedPower), motorRpm(motorRpm),
35 efficiencyClass(efficiencyClass), specifiedEfficiency(specifiedEfficiency),
36 motorRatedVoltage(motorRatedVoltage), fullLoadAmps(fullLoadAmps), sizeMargin(sizeMargin) {};
37
38 const LineFrequency lineFrequency;
39 const double motorRatedPower, motorRpm;
40 const Motor::EfficiencyClass efficiencyClass;
41 const double specifiedEfficiency, motorRatedVoltage, fullLoadAmps, sizeMargin;
42};
43
44/*
45TODO: Merge these columns with the current columns (Ask Alex/Kristine for help)
46NOTE: Storing all this data in MEASUR
47MotorData(std::string manufacturer, std::string model, std::string catalog, std::string motorType, int hp, int speed,
48int fullLoadSpeed, std::string enclosureType, std::string frameNumber, int voltageRating, std::string purpose, int
49uFrame, int cFace, int verticalShaft, int dFlange, double serviceFactor, std::string insulationClass, double weight,
50double listPrice, double windingResistance, double warranty, int rotorBars, int statorSlots, double efficiency100,
51double efficiency75, double efficiency50, double efficiency25, double powerFactor100, double powerFactor75, double
52powerFactor50, double powerFactor25, double torqueFullLoad, double torqueBreakDown, double torqueLockedRotor, double
53ampsFullLoad, double ampsIdle, double ampsLockedRotor, double stalledRotorTimeHot, double stalledRotorTimeCold, double
54peakVoltage0ms, double peakVoltage5ms);
55*/
56class MotorData {
57 public:
58 MotorData(double hp, int synchronousSpeed, int poles, double nominalEfficiency,
59 Motor::EfficiencyClass efficiencyClass, std::string nemaTable, std::string enclosureType,
60 Motor::LineFrequency lineFrequency, int voltageLimit, std::string catalog)
61 : hp(hp), synchronousSpeed(synchronousSpeed), poles(poles), nominalEfficiency(nominalEfficiency),
62 efficiencyClass(efficiencyClass), nemaTable(std::move(nemaTable)), enclosureType(std::move(enclosureType)),
63 lineFrequency(lineFrequency), voltageLimit(voltageLimit), catalog(std::move(catalog)) {}
64
65 Motor::EfficiencyClass getEfficiencyClass() const { return efficiencyClass; }
66
67 std::string getNemaTable() const { return nemaTable; }
68
69 std::string getEnclosureType() const { return enclosureType; }
70
71 std::string getCatalog() const { return catalog; }
72
73 int getSynchronousSpeed() const { return synchronousSpeed; }
74
75 int getPoles() const { return poles; }
76
77 Motor::LineFrequency getLineFrequency() const { return lineFrequency; }
78
79 int getVoltageLimit() const { return voltageLimit; }
80
81 double getHp() const { return hp; }
82
83 double getNominalEfficiency() const { return nominalEfficiency; }
84
85 void setEfficiencyClass(const Motor::EfficiencyClass& efficiencyClass) { this->efficiencyClass = efficiencyClass; }
86
87 void setNemaTable(const std::string& nemaTable) { this->nemaTable = nemaTable; }
88
89 void setEnclosureType(const std::string& enclosureType) { this->enclosureType = enclosureType; }
90
91 void setCatalog(const std::string& catalog) { this->catalog = catalog; }
92
93 void setSynchronousSpeed(int synchronousSpeed) { this->synchronousSpeed = synchronousSpeed; }
94
95 void setPoles(int poles) { this->poles = poles; }
96
97 void setLineFrequency(const Motor::LineFrequency lineFrequency) { this->lineFrequency = lineFrequency; }
98
99 void setVoltageLimit(int voltageLimit) { this->voltageLimit = voltageLimit; }
100
101 void setHp(double hp) { this->hp = hp; }
102
103 void setNominalEfficiency(double nominalEfficiency) { this->nominalEfficiency = nominalEfficiency; }
104
105 int getId() const { return id; }
106
107 void setId(int id) { this->id = id; }
108
109 private:
110 double hp;
111 int synchronousSpeed, poles;
112 double nominalEfficiency;
113 Motor::EfficiencyClass efficiencyClass;
114 std::string nemaTable, enclosureType;
115 Motor::LineFrequency lineFrequency;
116 int voltageLimit;
117 std::string catalog;
118 int id; // used for the database
119
120 friend class DefaultData;
121};
122
123#endif // TOOLS_SUITE_MOTORDATA_H
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 MotorData.h:31