7 enum class EfficiencyClass {
14 enum class LineFrequency { FREQ60, FREQ50 };
16 enum class Drive { DIRECT_DRIVE, V_BELT_DRIVE, N_V_BELT_DRIVE, S_BELT_DRIVE, SPECIFIED };
18 enum class LoadEstimationMethod { POWER, CURRENT };
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) {};
38 const LineFrequency lineFrequency;
39 const double motorRatedPower, motorRpm;
40 const Motor::EfficiencyClass efficiencyClass;
41 const double specifiedEfficiency, motorRatedVoltage, fullLoadAmps, sizeMargin;
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)) {}
65 Motor::EfficiencyClass getEfficiencyClass()
const {
return efficiencyClass; }
67 std::string getNemaTable()
const {
return nemaTable; }
69 std::string getEnclosureType()
const {
return enclosureType; }
71 std::string getCatalog()
const {
return catalog; }
73 int getSynchronousSpeed()
const {
return synchronousSpeed; }
75 int getPoles()
const {
return poles; }
77 Motor::LineFrequency getLineFrequency()
const {
return lineFrequency; }
79 int getVoltageLimit()
const {
return voltageLimit; }
81 double getHp()
const {
return hp; }
83 double getNominalEfficiency()
const {
return nominalEfficiency; }
85 void setEfficiencyClass(
const Motor::EfficiencyClass& efficiencyClass) { this->efficiencyClass = efficiencyClass; }
87 void setNemaTable(
const std::string& nemaTable) { this->nemaTable = nemaTable; }
89 void setEnclosureType(
const std::string& enclosureType) { this->enclosureType = enclosureType; }
91 void setCatalog(
const std::string& catalog) { this->catalog = catalog; }
93 void setSynchronousSpeed(
int synchronousSpeed) { this->synchronousSpeed = synchronousSpeed; }
95 void setPoles(
int poles) { this->poles = poles; }
97 void setLineFrequency(
const Motor::LineFrequency lineFrequency) { this->lineFrequency = lineFrequency; }
99 void setVoltageLimit(
int voltageLimit) { this->voltageLimit = voltageLimit; }
101 void setHp(
double hp) { this->hp = hp; }
103 void setNominalEfficiency(
double nominalEfficiency) { this->nominalEfficiency = nominalEfficiency; }
105 int getId()
const {
return id; }
107 void setId(
int id) { this->
id = id; }
111 int synchronousSpeed, poles;
112 double nominalEfficiency;
113 Motor::EfficiencyClass efficiencyClass;
114 std::string nemaTable, enclosureType;
115 Motor::LineFrequency lineFrequency;
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)