Class CompressorDriver

java.lang.Object
neqsim.process.equipment.compressor.CompressorDriver
All Implemented Interfaces:
Serializable

public class CompressorDriver extends Object implements Serializable
Models the driver (motor, turbine, engine) for a compressor.

The driver model includes power limits, efficiency curves, and dynamic response characteristics that affect compressor operation during transient simulations.

Version:
1.0
Author:
esol
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • driverType

      private DriverType driverType
    • ratedPower

      private double ratedPower
    • maxPower

      private double maxPower
    • minPower

      private double minPower
    • driverEfficiency

      private double driverEfficiency
    • responseTime

      private double responseTime
    • inertia

      private double inertia
    • maxAcceleration

      private double maxAcceleration
    • maxDeceleration

      private double maxDeceleration
    • ambientTemperature

      private double ambientTemperature
    • ambientPressure

      private double ambientPressure
    • overloadProtectionEnabled

      private boolean overloadProtectionEnabled
    • overloadTripDelay

      private double overloadTripDelay
    • currentOverloadTime

      private double currentOverloadTime
    • minSpeed

      private double minSpeed
    • maxSpeed

      private double maxSpeed
    • ratedSpeed

      private double ratedSpeed
    • vfdEfficiencyCoeffs

      private double[] vfdEfficiencyCoeffs
    • isoTemperature

      private double isoTemperature
    • temperatureDerateFactor

      private double temperatureDerateFactor
  • Constructor Details

    • CompressorDriver

      public CompressorDriver()
      Default constructor.
    • CompressorDriver

      public CompressorDriver(DriverType type)
      Constructor with driver type.
      Parameters:
      type - the driver type
    • CompressorDriver

      public CompressorDriver(DriverType type, double ratedPower)
      Constructor with driver type and rated power.
      Parameters:
      type - the driver type
      ratedPower - rated power in kW
  • Method Details

    • getAvailablePower

      public double getAvailablePower()
      Get the available power at current conditions.

      For gas turbines, this accounts for ambient temperature derating. For electric motors, this returns rated power.

      Returns:
      available power in kW
    • getMaxAvailablePower

      public double getMaxAvailablePower()
      Get the maximum available power at current conditions.
      Returns:
      maximum power in kW
    • getEfficiencyAtSpeed

      public double getEfficiencyAtSpeed(double speed)
      Calculate driver efficiency at given speed.
      Parameters:
      speed - current speed in RPM
      Returns:
      efficiency as ratio (0-1)
    • getRequiredDriverPower

      public double getRequiredDriverPower(double shaftPower, double speed)
      Calculate required driver power for given compressor shaft power.
      Parameters:
      shaftPower - compressor shaft power in kW
      speed - current speed in RPM
      Returns:
      required driver power in kW
    • canDeliverPower

      public boolean canDeliverPower(double requiredPower)
      Check if the driver can deliver the required power.
      Parameters:
      requiredPower - required power in kW
      Returns:
      true if power can be delivered
    • getPowerMargin

      public double getPowerMargin(double currentPower)
      Get the power margin (remaining power capacity).
      Parameters:
      currentPower - current power demand in kW
      Returns:
      power margin in kW
    • getPowerMarginRatio

      public double getPowerMarginRatio(double currentPower)
      Get the power margin as a ratio.
      Parameters:
      currentPower - current power demand in kW
      Returns:
      power margin ratio (available/max)
    • getMaxAccelerationAtConditions

      public double getMaxAccelerationAtConditions(double currentSpeed, double currentPower)
      Calculate the maximum acceleration at current speed considering torque limits.
      Parameters:
      currentSpeed - current speed in RPM
      currentPower - current power in kW
      Returns:
      maximum acceleration in RPM/s
    • calculateSpeedChange

      public double calculateSpeedChange(double currentSpeed, double targetSpeed, double currentPower, double timeStep)
      Calculate speed change over a time step.
      Parameters:
      currentSpeed - current speed in RPM
      targetSpeed - target speed in RPM
      currentPower - current power demand in kW
      timeStep - time step in seconds
      Returns:
      new speed in RPM
    • checkOverloadTrip

      public boolean checkOverloadTrip(double currentPower, double timeStep)
      Update overload tracking and check for trip.
      Parameters:
      currentPower - current power in kW
      timeStep - time step in seconds
      Returns:
      true if driver should trip due to overload
    • resetOverloadTimer

      public void resetOverloadTimer()
      Reset the overload timer.
    • getDriverType

      public DriverType getDriverType()
      Get the driver type.
      Returns:
      driver type
    • setDriverType

      public void setDriverType(DriverType driverType)
      Set the driver type.
      Parameters:
      driverType - the driver type
    • getRatedPower

      public double getRatedPower()
      Get the rated power.
      Returns:
      rated power in kW
    • setRatedPower

      public void setRatedPower(double ratedPower)
      Set the rated power.
      Parameters:
      ratedPower - rated power in kW
    • getMaxPower

      public double getMaxPower()
      Get the maximum power.
      Returns:
      maximum power in kW
    • setMaxPower

      public void setMaxPower(double maxPower)
      Set the maximum power.
      Parameters:
      maxPower - maximum power in kW
    • getMinPower

      public double getMinPower()
      Get the minimum power.
      Returns:
      minimum power in kW
    • setMinPower

      public void setMinPower(double minPower)
      Set the minimum power.
      Parameters:
      minPower - minimum power in kW
    • getDriverEfficiency

      public double getDriverEfficiency()
      Get the driver efficiency.
      Returns:
      efficiency as ratio (0-1)
    • setDriverEfficiency

      public void setDriverEfficiency(double driverEfficiency)
      Set the driver efficiency.
      Parameters:
      driverEfficiency - efficiency as ratio (0-1)
    • getResponseTime

      public double getResponseTime()
      Get the response time.
      Returns:
      response time in seconds
    • setResponseTime

      public void setResponseTime(double responseTime)
      Set the response time.
      Parameters:
      responseTime - response time in seconds
    • getInertia

      public double getInertia()
      Get the combined inertia.
      Returns:
      inertia in kg⋅m²
    • setInertia

      public void setInertia(double inertia)
      Set the combined inertia.
      Parameters:
      inertia - inertia in kg⋅m²
    • getMaxAcceleration

      public double getMaxAcceleration()
      Get the maximum acceleration.
      Returns:
      max acceleration in RPM/s
    • setMaxAcceleration

      public void setMaxAcceleration(double maxAcceleration)
      Set the maximum acceleration.
      Parameters:
      maxAcceleration - max acceleration in RPM/s
    • getMaxDeceleration

      public double getMaxDeceleration()
      Get the maximum deceleration.
      Returns:
      max deceleration in RPM/s
    • setMaxDeceleration

      public void setMaxDeceleration(double maxDeceleration)
      Set the maximum deceleration.
      Parameters:
      maxDeceleration - max deceleration in RPM/s
    • getAmbientTemperature

      public double getAmbientTemperature()
      Get the ambient temperature.
      Returns:
      temperature in K
    • setAmbientTemperature

      public void setAmbientTemperature(double ambientTemperature)
      Set the ambient temperature.
      Parameters:
      ambientTemperature - temperature in K
    • getAmbientPressure

      public double getAmbientPressure()
      Get the ambient pressure.
      Returns:
      pressure in bara
    • setAmbientPressure

      public void setAmbientPressure(double ambientPressure)
      Set the ambient pressure.
      Parameters:
      ambientPressure - pressure in bara
    • isOverloadProtectionEnabled

      public boolean isOverloadProtectionEnabled()
      Check if overload protection is enabled.
      Returns:
      true if enabled
    • setOverloadProtectionEnabled

      public void setOverloadProtectionEnabled(boolean enabled)
      Set overload protection enabled.
      Parameters:
      enabled - true to enable
    • getOverloadTripDelay

      public double getOverloadTripDelay()
      Get the overload trip delay.
      Returns:
      delay in seconds
    • setOverloadTripDelay

      public void setOverloadTripDelay(double delay)
      Set the overload trip delay.
      Parameters:
      delay - delay in seconds
    • getMinSpeed

      public double getMinSpeed()
      Get the minimum speed.
      Returns:
      minimum speed in RPM
    • setMinSpeed

      public void setMinSpeed(double minSpeed)
      Set the minimum speed.
      Parameters:
      minSpeed - minimum speed in RPM
    • getMaxSpeed

      public double getMaxSpeed()
      Get the maximum speed.
      Returns:
      maximum speed in RPM
    • setMaxSpeed

      public void setMaxSpeed(double maxSpeed)
      Set the maximum speed.
      Parameters:
      maxSpeed - maximum speed in RPM
    • getRatedSpeed

      public double getRatedSpeed()
      Get the rated speed.
      Returns:
      rated speed in RPM
    • setRatedSpeed

      public void setRatedSpeed(double ratedSpeed)
      Set the rated speed.
      Parameters:
      ratedSpeed - rated speed in RPM
    • setVfdEfficiencyCoefficients

      public void setVfdEfficiencyCoefficients(double a, double b, double c)
      Set VFD efficiency curve coefficients.
      Parameters:
      a - constant term
      b - linear term coefficient
      c - quadratic term coefficient
    • setTemperatureDerateFactor

      public void setTemperatureDerateFactor(double factor)
      Set gas turbine temperature derate factor.
      Parameters:
      factor - power reduction per K above ISO (typically 0.003-0.007)
    • toString

      public String toString()
      Overrides:
      toString in class Object