Class ElectricMotorDriver

java.lang.Object
neqsim.process.equipment.compressor.driver.DriverCurveBase
neqsim.process.equipment.compressor.driver.ElectricMotorDriver
All Implemented Interfaces:
Serializable, DriverCurve

public class ElectricMotorDriver extends DriverCurveBase
Electric motor driver model with VFD support.

Models electric motor performance including:

  • Fixed speed or variable frequency drive (VFD) operation
  • Constant torque or constant power speed ranges
  • Part-load efficiency characteristics
  • Motor temperature limits

VFD Operation Modes

  • Constant Torque: Torque is constant up to base speed, power proportional to speed
  • Constant Power: Above base speed, power is constant, torque decreases

Efficiency Characteristics

Electric motors have high efficiency at rated load (typically 90-97% for large motors) with efficiency dropping at part load due to fixed losses (core losses, friction).

Example Usage

ElectricMotorDriver motor = new ElectricMotorDriver(5000, 3600, 0.95);
motor.setHasVFD(true);
motor.setMinSpeedRatio(0.3); // 30% minimum speed with VFD

double availablePower = motor.getAvailablePower(2500); // At 2500 RPM
double efficiency = motor.getEfficiency(3000, 0.8); // At 80% load
Version:
1.0
Author:
NeqSim Development Team
See Also:
  • Field Details

    • serialVersionUID

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

      private boolean hasVFD
      Whether motor has a variable frequency drive.
    • minSpeedRatio

      private double minSpeedRatio
      Minimum speed ratio with VFD (fraction of rated speed).
    • baseSpeedRatio

      private double baseSpeedRatio
      Base speed for field weakening region (fraction of rated speed).
    • maxSpeedRatio

      private double maxSpeedRatio
      Maximum speed ratio (typically 1.2-1.5 with field weakening).
    • efficiencyClass

      private String efficiencyClass
      Motor efficiency class (IE1, IE2, IE3, IE4).
    • serviceFactor

      private double serviceFactor
      Service factor (continuous overload capability).
    • insulationTempLimit

      private double insulationTempLimit
      Insulation class temperature limit in Celsius.
    • efficiency75

      private double efficiency75
      Part-load efficiency at 75% load (fraction of full load efficiency).
    • efficiency50

      private double efficiency50
      Part-load efficiency at 50% load (fraction of full load efficiency).
    • efficiency25

      private double efficiency25
      Part-load efficiency at 25% load (fraction of full load efficiency).
  • Constructor Details

    • ElectricMotorDriver

      public ElectricMotorDriver()
      Default constructor.
    • ElectricMotorDriver

      public ElectricMotorDriver(double ratedPowerKW, double designEfficiency)
      Constructor with rated power and efficiency.
      Parameters:
      ratedPowerKW - rated mechanical output power in kW
      designEfficiency - design efficiency at rated conditions (0-1)
    • ElectricMotorDriver

      public ElectricMotorDriver(double ratedPowerKW, double ratedSpeedRPM, double designEfficiency)
      Constructor with full parameters.
      Parameters:
      ratedPowerKW - rated mechanical output power in kW
      ratedSpeedRPM - rated speed in RPM
      designEfficiency - design efficiency at rated conditions (0-1)
  • Method Details

    • getDriverType

      public String getDriverType()
      Gets the type of driver.
      Returns:
      driver type string
    • getAvailablePower

      public double getAvailablePower(double speed)
      Gets the available power at the specified speed.

      For gas turbines, this accounts for ambient temperature derating. For electric motors with VFD, this may be constant torque (power proportional to speed) or constant power.

      Parameters:
      speed - operating speed in RPM
      Returns:
      available power in kW
    • getAvailableTorque

      public double getAvailableTorque(double speed)
      Gets the available torque at the specified speed.
      Specified by:
      getAvailableTorque in interface DriverCurve
      Overrides:
      getAvailableTorque in class DriverCurveBase
      Parameters:
      speed - operating speed in RPM
      Returns:
      available torque in Nm
    • getEfficiency

      public double getEfficiency(double speed, double loadFraction)
      Gets the driver efficiency at the specified speed and load.
      Parameters:
      speed - operating speed in RPM
      loadFraction - load as fraction of available power (0-1)
      Returns:
      efficiency as fraction (0-1)
    • getPartLoadEfficiency

      private double getPartLoadEfficiency(double loadFraction)
      Gets the part-load efficiency.
      Parameters:
      loadFraction - load as fraction of rated power (0-1)
      Returns:
      efficiency (0-1)
    • interpolate

      private double interpolate(double x, double x1, double x2, double y1, double y2)
      Linear interpolation helper.
      Parameters:
      x - the value to interpolate at
      x1 - first x coordinate
      x2 - second x coordinate
      y1 - first y coordinate
      y2 - second y coordinate
      Returns:
      the interpolated y value at x
    • getAmbientDeratingFactor

      public double getAmbientDeratingFactor()
      Gets the power derating factor due to ambient conditions.

      Returns a factor between 0 and 1 that is applied to the rated power to get the available power at current ambient conditions.

      Returns:
      derating factor (0-1)
    • getFuelConsumption

      public double getFuelConsumption(double powerOutput, double speed)
      Gets the fuel or energy consumption for the given power output.

      For gas turbines, returns fuel gas consumption in kg/hr or kW. For electric motors, returns electrical power input in kW.

      Parameters:
      powerOutput - power output in kW
      speed - operating speed in RPM
      Returns:
      fuel or energy consumption
    • getElectricalInput

      public double getElectricalInput(double mechanicalPowerKW, double speed)
      Gets the electrical power input for given mechanical output.
      Parameters:
      mechanicalPowerKW - mechanical output power in kW
      speed - operating speed in RPM
      Returns:
      electrical input power in kW
    • hasVFD

      public boolean hasVFD()
      Checks if motor has VFD.
      Returns:
      true if motor has VFD
    • setHasVFD

      public void setHasVFD(boolean hasVFD)
      Sets whether motor has VFD.
      Parameters:
      hasVFD - true to enable VFD operation
    • getMinSpeedRatio

      public double getMinSpeedRatio()
      Gets the minimum speed ratio.
      Returns:
      minimum speed as fraction of rated speed
    • setMinSpeedRatio

      public void setMinSpeedRatio(double ratio)
      Sets the minimum speed ratio for VFD operation.
      Parameters:
      ratio - minimum speed as fraction of rated speed (0-1)
    • getBaseSpeedRatio

      public double getBaseSpeedRatio()
      Gets the base speed ratio (transition to field weakening).
      Returns:
      base speed as fraction of rated speed
    • setBaseSpeedRatio

      public void setBaseSpeedRatio(double ratio)
      Sets the base speed ratio.
      Parameters:
      ratio - base speed as fraction of rated speed
    • getMaxSpeedRatio

      public double getMaxSpeedRatio()
      Gets the maximum speed ratio.
      Returns:
      maximum speed as fraction of rated speed
    • setMaxSpeedRatio

      public void setMaxSpeedRatio(double ratio)
      Sets the maximum speed ratio.
      Parameters:
      ratio - maximum speed as fraction of rated speed
    • getServiceFactor

      public double getServiceFactor()
      Gets the service factor.
      Returns:
      service factor
    • setServiceFactor

      public void setServiceFactor(double serviceFactor)
      Sets the service factor.
      Parameters:
      serviceFactor - service factor (typically 1.0-1.25)
    • getEfficiencyClass

      public String getEfficiencyClass()
      Gets the efficiency class.
      Returns:
      efficiency class string (IE1, IE2, IE3, IE4)
    • setEfficiencyClass

      public void setEfficiencyClass(String efficiencyClass)
      Sets the efficiency class and updates efficiency characteristics.
      Parameters:
      efficiencyClass - efficiency class (IE1, IE2, IE3, IE4)