Class ElectricalMotor

java.lang.Object
neqsim.process.electricaldesign.components.ElectricalMotor
All Implemented Interfaces:
Serializable

public class ElectricalMotor extends Object implements Serializable
Model of an electric motor for process equipment.

Supports IEC and NEMA sizing standards, efficiency classes IE1-IE4 per IEC 60034-30-1, hazardous area Ex ratings, and part-load performance estimation.

Version:
1.0
Author:
Even Solbraa
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • IEC_STANDARD_POWERS_KW

      private static final double[] IEC_STANDARD_POWERS_KW
      Standard IEC motor rated power steps in kW. Motors are selected as the next size up from the required power.
    • ratedPowerKW

      private double ratedPowerKW
    • ratedVoltageV

      private double ratedVoltageV
    • ratedCurrentA

      private double ratedCurrentA
    • ratedSpeedRPM

      private double ratedSpeedRPM
    • poles

      private int poles
    • frequencyHz

      private double frequencyHz
    • efficiencyPercent

      private double efficiencyPercent
    • powerFactorFL

      private double powerFactorFL
    • efficiencyClass

      private String efficiencyClass
    • frameSize

      private String frameSize
    • enclosureType

      private String enclosureType
    • insulationClass

      private String insulationClass
    • dutyType

      private String dutyType
    • serviceFactor

      private double serviceFactor
    • lockedRotorCurrentMultiplier

      private double lockedRotorCurrentMultiplier
    • startingMethod

      private String startingMethod
    • startingTorquePercent

      private double startingTorquePercent
    • exProtection

      private String exProtection
    • temperatureClass

      private String temperatureClass
    • gasGroup

      private String gasGroup
    • weightKg

      private double weightKg
    • estimatedCostUSD

      private double estimatedCostUSD
  • Constructor Details

    • ElectricalMotor

      public ElectricalMotor()
  • Method Details

    • sizeMotor

      public void sizeMotor(double shaftPowerKW, double margin, String standard)
      Size the motor based on required shaft power.

      Selects the next standard IEC motor size above the required power multiplied by the sizing margin, and estimates efficiency, power factor, weight, and cost.

      Parameters:
      shaftPowerKW - required shaft power in kW
      margin - sizing margin (e.g. 1.10 for 10% margin)
      standard - motor standard ("IEC" or "NEMA")
    • selectStandardPower

      private double selectStandardPower(double requiredPowerKW)
      Select the next standard IEC motor power rating above the required power.
      Parameters:
      requiredPowerKW - required power in kW
      Returns:
      next standard motor power rating in kW
    • estimateSlip

      private double estimateSlip(double powerKW)
      Estimate motor slip based on power rating.
      Parameters:
      powerKW - motor power in kW
      Returns:
      estimated slip fraction
    • estimateEfficiency

      private double estimateEfficiency(double powerKW, int motorPoles, String iecClass)
      Estimate motor efficiency based on power, poles, and efficiency class.

      Based on IEC 60034-30-1 minimum efficiency values for 4-pole machines at 50 Hz.

      Parameters:
      powerKW - motor power in kW
      motorPoles - number of poles
      iecClass - efficiency class (IE1-IE4)
      Returns:
      estimated efficiency in percent
    • estimatePowerFactor

      private double estimatePowerFactor(double powerKW)
      Estimate power factor at full load based on motor size.
      Parameters:
      powerKW - motor power in kW
      Returns:
      estimated power factor
    • estimateFrameSize

      private String estimateFrameSize(double powerKW, int motorPoles, String standard)
      Estimate IEC frame size designation.
      Parameters:
      powerKW - motor power in kW
      motorPoles - number of poles
      standard - "IEC" or "NEMA"
      Returns:
      frame size string
    • estimateWeight

      private double estimateWeight(double powerKW)
      Estimate motor weight in kg.
      Parameters:
      powerKW - motor power in kW
      Returns:
      estimated weight in kg
    • estimateCost

      private double estimateCost(double powerKW)
      Estimate motor cost in USD.
      Parameters:
      powerKW - motor power in kW
      Returns:
      estimated cost in USD
    • getEfficiencyAtLoad

      public double getEfficiencyAtLoad(double loadFraction)
      Get efficiency at a given load fraction.

      Motors typically have peak efficiency around 75% load.

      Parameters:
      loadFraction - load fraction (0-1)
      Returns:
      efficiency in percent at the given load
    • getPowerFactorAtLoad

      public double getPowerFactorAtLoad(double loadFraction)
      Get power factor at a given load fraction.
      Parameters:
      loadFraction - load fraction (0-1)
      Returns:
      power factor at the given load
    • toJson

      public String toJson()
      Serialize motor data to JSON.
      Returns:
      JSON string
    • toMap

      public Map<String,Object> toMap()
      Convert motor data to a map.
      Returns:
      map of motor parameters
    • getRatedPowerKW

      public double getRatedPowerKW()
      Get the rated power in kW.
      Returns:
      rated power in kW
    • setRatedPowerKW

      public void setRatedPowerKW(double ratedPowerKW)
      Set the rated power in kW.
      Parameters:
      ratedPowerKW - rated power in kW
    • getRatedVoltageV

      public double getRatedVoltageV()
      Get the rated voltage in volts.
      Returns:
      rated voltage in V
    • setRatedVoltageV

      public void setRatedVoltageV(double ratedVoltageV)
      Set the rated voltage in volts.
      Parameters:
      ratedVoltageV - rated voltage in V
    • getRatedCurrentA

      public double getRatedCurrentA()
      Get rated current in amperes.
      Returns:
      rated current in A
    • setRatedCurrentA

      public void setRatedCurrentA(double ratedCurrentA)
      Set rated current in amperes.
      Parameters:
      ratedCurrentA - rated current in A
    • getRatedSpeedRPM

      public double getRatedSpeedRPM()
      Get rated speed in RPM.
      Returns:
      rated speed in RPM
    • setRatedSpeedRPM

      public void setRatedSpeedRPM(double ratedSpeedRPM)
      Set rated speed in RPM.
      Parameters:
      ratedSpeedRPM - rated speed in RPM
    • getPoles

      public int getPoles()
      Get number of poles.
      Returns:
      number of poles (2, 4, 6, 8)
    • setPoles

      public void setPoles(int poles)
      Set number of poles.
      Parameters:
      poles - number of poles (2, 4, 6, 8)
    • getFrequencyHz

      public double getFrequencyHz()
      Get the frequency in Hz.
      Returns:
      frequency in Hz
    • setFrequencyHz

      public void setFrequencyHz(double frequencyHz)
      Set the frequency in Hz.
      Parameters:
      frequencyHz - frequency in Hz
    • getEfficiencyPercent

      public double getEfficiencyPercent()
      Get full-load efficiency in percent.
      Returns:
      efficiency in percent
    • setEfficiencyPercent

      public void setEfficiencyPercent(double efficiencyPercent)
      Set full-load efficiency in percent.
      Parameters:
      efficiencyPercent - efficiency in percent
    • getPowerFactorFL

      public double getPowerFactorFL()
      Get full-load power factor.
      Returns:
      power factor at full load
    • setPowerFactorFL

      public void setPowerFactorFL(double powerFactorFL)
      Set full-load power factor.
      Parameters:
      powerFactorFL - power factor at full load
    • getEfficiencyClass

      public String getEfficiencyClass()
      Get the efficiency class per IEC 60034-30-1.
      Returns:
      efficiency class (IE1, IE2, IE3, IE4)
    • setEfficiencyClass

      public void setEfficiencyClass(String efficiencyClass)
      Set the efficiency class per IEC 60034-30-1.
      Parameters:
      efficiencyClass - efficiency class (IE1, IE2, IE3, IE4)
    • getFrameSize

      public String getFrameSize()
      Get IEC/NEMA frame size.
      Returns:
      frame size
    • setFrameSize

      public void setFrameSize(String frameSize)
      Set IEC/NEMA frame size.
      Parameters:
      frameSize - frame size
    • getEnclosureType

      public String getEnclosureType()
      Get the enclosure type.
      Returns:
      enclosure type (TEFC, TENV, ODP, etc.)
    • setEnclosureType

      public void setEnclosureType(String enclosureType)
      Set the enclosure type.
      Parameters:
      enclosureType - enclosure type
    • getInsulationClass

      public String getInsulationClass()
      Get the insulation class.
      Returns:
      insulation class (B, F, H)
    • setInsulationClass

      public void setInsulationClass(String insulationClass)
      Set the insulation class.
      Parameters:
      insulationClass - insulation class (B, F, H)
    • getDutyType

      public String getDutyType()
      Get the duty type per IEC.
      Returns:
      duty type (S1, S2, S3, etc.)
    • setDutyType

      public void setDutyType(String dutyType)
      Set the duty type per IEC.
      Parameters:
      dutyType - duty type (S1, S2, S3, etc.)
    • getServiceFactor

      public double getServiceFactor()
      Get the service factor.
      Returns:
      service factor (1.0 for IEC, 1.15 for NEMA)
    • setServiceFactor

      public void setServiceFactor(double serviceFactor)
      Set the service factor.
      Parameters:
      serviceFactor - service factor
    • getLockedRotorCurrentMultiplier

      public double getLockedRotorCurrentMultiplier()
      Get locked rotor current multiplier.
      Returns:
      multiplier relative to full-load current
    • setLockedRotorCurrentMultiplier

      public void setLockedRotorCurrentMultiplier(double lockedRotorCurrentMultiplier)
      Set locked rotor current multiplier.
      Parameters:
      lockedRotorCurrentMultiplier - multiplier relative to full-load current
    • getStartingMethod

      public String getStartingMethod()
      Get the starting method.
      Returns:
      starting method (DOL, Star-Delta, Soft-Start, VFD)
    • setStartingMethod

      public void setStartingMethod(String startingMethod)
      Set the starting method.
      Parameters:
      startingMethod - starting method
    • getStartingTorquePercent

      public double getStartingTorquePercent()
      Get starting torque as percent of full-load torque.
      Returns:
      starting torque percent
    • setStartingTorquePercent

      public void setStartingTorquePercent(double startingTorquePercent)
      Set starting torque as percent of full-load torque.
      Parameters:
      startingTorquePercent - starting torque percent
    • getExProtection

      public String getExProtection()
      Get Ex protection type.
      Returns:
      Ex protection designation
    • setExProtection

      public void setExProtection(String exProtection)
      Set Ex protection type.
      Parameters:
      exProtection - Ex protection designation (e.g. "Ex d IIB T3")
    • getTemperatureClass

      public String getTemperatureClass()
      Get temperature class.
      Returns:
      temperature class (T1-T6)
    • setTemperatureClass

      public void setTemperatureClass(String temperatureClass)
      Set temperature class.
      Parameters:
      temperatureClass - temperature class (T1-T6)
    • getGasGroup

      public String getGasGroup()
      Get gas group.
      Returns:
      gas group (IIA, IIB, IIC)
    • setGasGroup

      public void setGasGroup(String gasGroup)
      Set gas group.
      Parameters:
      gasGroup - gas group (IIA, IIB, IIC)
    • getWeightKg

      public double getWeightKg()
      Get motor weight in kg.
      Returns:
      weight in kg
    • setWeightKg

      public void setWeightKg(double weightKg)
      Set motor weight in kg.
      Parameters:
      weightKg - weight in kg
    • getEstimatedCostUSD

      public double getEstimatedCostUSD()
      Get estimated cost in USD.
      Returns:
      estimated cost in USD
    • setEstimatedCostUSD

      public void setEstimatedCostUSD(double estimatedCostUSD)
      Set estimated cost in USD.
      Parameters:
      estimatedCostUSD - estimated cost in USD