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