Interface DriverCurve
- All Known Implementing Classes:
DriverCurveBase, ElectricMotorDriver, GasTurbineDriver, SteamTurbineDriver
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 TypeMethodDescriptionbooleancanSupplyPower(double requiredPower, double speed) Checks if the driver can provide the required power at the specified speed.doubleGets the altitude.doubleGets the power derating factor due to ambient conditions.doubleGets the ambient temperature.doublegetAvailablePower(double speed) Gets the available power at the specified speed.doublegetAvailableTorque(double speed) Gets the available torque at the specified speed.Gets the type of driver.doublegetEfficiency(double speed, double loadFraction) Gets the driver efficiency at the specified speed and load.doublegetFuelConsumption(double powerOutput, double speed) Gets the fuel or energy consumption for the given power output.doubleGets the maximum operating speed.doubleGets the minimum operating speed.default doublegetPowerMargin(double currentLoad, double speed) Gets the current power margin.doubleGets the rated (nameplate) power of the driver.doubleGets the rated speed of the driver.voidsetAltitude(double altitudeMeters) Sets the altitude for gas turbine derating.voidsetAmbientTemperature(double temperatureCelsius) Sets the ambient temperature for gas turbine derating.
-
Method Details
-
getDriverType
-
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 RPMloadFraction- 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 kWspeed- 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 kWspeed- 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 kWspeed- operating speed in RPM- Returns:
- power margin as fraction (positive = headroom available)
-