Interface DriverCurve

All Known Implementing Classes:
DriverCurveBase, ElectricMotorDriver, GasTurbineDriver, SteamTurbineDriver

public interface DriverCurve
Interface for compressor and pump driver performance curves.

This interface defines the contract for modeling driver characteristics including power availability, torque limits, and efficiency at various operating conditions. Driver curves are used to determine if a compressor or pump can achieve the required duty within the mechanical constraints of its driver.

Supported Driver Types

  • Gas Turbines - Power varies with ambient temperature, altitude, and speed
  • Electric Motors - Constant torque (VFD) or fixed speed characteristics
  • Steam Turbines - Power varies with steam conditions and extraction

Example Usage

DriverCurve driver = new GasTurbineDriver(10000, 0.35); // 10 MW, 35% efficiency
driver.setAmbientTemperature(35.0); // 35°C ambient

double availablePower = driver.getAvailablePower(8000); // at 8000 RPM
double efficiency = driver.getEfficiency(8000, 0.8); // at 80% load
Version:
1.0
Author:
NeqSim Development Team
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    canSupplyPower(double requiredPower, double speed)
    Checks if the driver can provide the required power at the specified speed.
    double
    Gets the altitude.
    double
    Gets the power derating factor due to ambient conditions.
    double
    Gets the ambient temperature.
    double
    getAvailablePower(double speed)
    Gets the available power at the specified speed.
    double
    getAvailableTorque(double speed)
    Gets the available torque at the specified speed.
    Gets the type of driver.
    double
    getEfficiency(double speed, double loadFraction)
    Gets the driver efficiency at the specified speed and load.
    double
    getFuelConsumption(double powerOutput, double speed)
    Gets the fuel or energy consumption for the given power output.
    double
    Gets the maximum operating speed.
    double
    Gets the minimum operating speed.
    default double
    getPowerMargin(double currentLoad, double speed)
    Gets the current power margin.
    double
    Gets the rated (nameplate) power of the driver.
    double
    Gets the rated speed of the driver.
    void
    setAltitude(double altitudeMeters)
    Sets the altitude for gas turbine derating.
    void
    setAmbientTemperature(double temperatureCelsius)
    Sets the ambient temperature for gas turbine derating.
  • Method Details

    • getDriverType

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

      double getRatedPower()
      Gets the rated (nameplate) power of the driver.
      Returns:
      rated power in kW
    • getRatedSpeed

      double getRatedSpeed()
      Gets the rated speed of the driver.
      Returns:
      rated speed in RPM
    • getAvailablePower

      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

      double getAvailableTorque(double speed)
      Gets the available torque at the specified speed.
      Parameters:
      speed - operating speed in RPM
      Returns:
      available torque in Nm
    • getEfficiency

      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)
    • getMinSpeed

      double getMinSpeed()
      Gets the minimum operating speed.
      Returns:
      minimum speed in RPM
    • getMaxSpeed

      double getMaxSpeed()
      Gets the maximum operating speed.
      Returns:
      maximum speed in RPM
    • canSupplyPower

      boolean canSupplyPower(double requiredPower, double speed)
      Checks if the driver can provide the required power at the specified speed.
      Parameters:
      requiredPower - required power in kW
      speed - operating speed in RPM
      Returns:
      true if driver can provide the power
    • getFuelConsumption

      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
    • setAmbientTemperature

      void setAmbientTemperature(double temperatureCelsius)
      Sets the ambient temperature for gas turbine derating.
      Parameters:
      temperatureCelsius - ambient temperature in Celsius
    • getAmbientTemperature

      double getAmbientTemperature()
      Gets the ambient temperature.
      Returns:
      ambient temperature in Celsius
    • setAltitude

      void setAltitude(double altitudeMeters)
      Sets the altitude for gas turbine derating.
      Parameters:
      altitudeMeters - altitude in meters above sea level
    • getAltitude

      double getAltitude()
      Gets the altitude.
      Returns:
      altitude in meters
    • getAmbientDeratingFactor

      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)
    • getPowerMargin

      default double getPowerMargin(double currentLoad, double speed)
      Gets the current power margin.

      Returns the difference between available power and current load as a fraction of available power.

      Parameters:
      currentLoad - current power load in kW
      speed - operating speed in RPM
      Returns:
      power margin as fraction (positive = headroom available)