6 enum class EfficiencyClass {
13 enum class LineFrequency { FREQ60, FREQ50 };
15 enum class Drive { DIRECT_DRIVE, V_BELT_DRIVE, N_V_BELT_DRIVE, S_BELT_DRIVE, SPECIFIED };
17 enum class LoadEstimationMethod { POWER, CURRENT };
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) {};
37 const LineFrequency lineFrequency;
38 const double motorRatedPower, motorRpm;
39 const Motor::EfficiencyClass efficiencyClass;
40 const double specifiedEfficiency, motorRatedVoltage, fullLoadAmps, sizeMargin;
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)) {}
64 Motor::EfficiencyClass getEfficiencyClass()
const {
return efficiencyClass; }
66 std::string getNemaTable()
const {
return nemaTable; }
68 std::string getEnclosureType()
const {
return enclosureType; }
70 std::string getCatalog()
const {
return catalog; }
72 int getSynchronousSpeed()
const {
return synchronousSpeed; }
74 int getPoles()
const {
return poles; }
76 Motor::LineFrequency getLineFrequency()
const {
return lineFrequency; }
78 int getVoltageLimit()
const {
return voltageLimit; }
80 double getHp()
const {
return hp; }
82 double getNominalEfficiency()
const {
return nominalEfficiency; }
84 void setEfficiencyClass(
const Motor::EfficiencyClass& efficiencyClass) { this->efficiencyClass = efficiencyClass; }
86 void setNemaTable(
const std::string& nemaTable) { this->nemaTable = nemaTable; }
88 void setEnclosureType(
const std::string& enclosureType) { this->enclosureType = enclosureType; }
90 void setCatalog(
const std::string& catalog) { this->catalog = catalog; }
92 void setSynchronousSpeed(
int synchronousSpeed) { this->synchronousSpeed = synchronousSpeed; }
94 void setPoles(
int poles) { this->poles = poles; }
96 void setLineFrequency(
const Motor::LineFrequency lineFrequency) { this->lineFrequency = lineFrequency; }
98 void setVoltageLimit(
int voltageLimit) { this->voltageLimit = voltageLimit; }
100 void setHp(
double hp) { this->hp = hp; }
102 void setNominalEfficiency(
double nominalEfficiency) { this->nominalEfficiency = nominalEfficiency; }
104 int getId()
const {
return id; }
106 void setId(
int id) { this->
id = id; }
110 int synchronousSpeed, poles;
111 double nominalEfficiency;
112 Motor::EfficiencyClass efficiencyClass;
113 std::string nemaTable, enclosureType;
114 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)