Class OffshoreEnergySystem

All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, ProcessElementInterface, SimulationInterface, NamedInterface

public class OffshoreEnergySystem extends ProcessEquipmentBaseClass
Offshore energy system integrating multiple power sources with dispatch logic.

Models the energy balance of an offshore installation combining:

  • Wind farm power generation (variable)
  • Gas turbine backup power (dispatchable)
  • Battery energy storage (time-shifting)
  • Solar panels (supplementary)
  • Process power demand (compressors, pumps, etc.)

Dispatch Strategy

The dispatch logic follows a priority order:

  1. Use wind power first (zero marginal cost)
  2. Discharge battery if wind insufficient
  3. Start gas turbine for remaining deficit
  4. Charge battery with excess wind power
  5. Curtail excess wind if battery full

CO2 Emissions Tracking

Tracks CO2 emissions from gas turbine usage vs. wind power, enabling comparison of power supply scenarios for offshore platforms.

Usage Example

OffshoreEnergySystem energy = new OffshoreEnergySystem("Platform Power");

// Configure wind farm
WindFarm wind = new WindFarm("Offshore Wind", 20);
wind.setRatedPowerPerTurbine(15.0e6);
energy.setWindFarm(wind);

// Configure gas turbine backup
energy.setGasTurbineCapacity(50.0e6);    // 50 MW
energy.setGasTurbineEfficiency(0.35);

// Configure battery storage
BatteryStorage battery = new BatteryStorage("BESS", 100.0e6 * 3600);
energy.setBatteryStorage(battery);

// Set power demand
energy.setTotalPowerDemand(200.0e6);     // 200 MW

energy.run();
double windFraction = energy.getWindPowerFraction();
double co2Saved = energy.getCO2Avoided();
Version:
1.0
Author:
esol
See Also:
  • Field Details

    • serialVersionUID

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

      private WindFarm windFarm
      Wind farm for renewable power generation.
    • gasTurbineCapacity

      private double gasTurbineCapacity
      Gas turbine rated capacity [W].
    • gasTurbineEfficiency

      private double gasTurbineEfficiency
      Gas turbine electrical efficiency.
    • gasTurbineMinLoad

      private double gasTurbineMinLoad
      Gas turbine minimum load fraction [0-1].
    • batteryStorage

      private BatteryStorage batteryStorage
      Battery storage system.
    • solarPanel

      private SolarPanel solarPanel
      Solar panel system.
    • totalPowerDemand

      private double totalPowerDemand
      Total power demand [W].
    • co2EmissionFactor

      private double co2EmissionFactor
      CO2 emission factor for gas turbine [kg CO2 / kWh].
    • gasLHV

      private double gasLHV
      Natural gas LHV [MJ/kg].
    • windPowerDelivered

      private double windPowerDelivered
      Wind power delivered to load [W].
    • gasTurbinePowerDelivered

      private double gasTurbinePowerDelivered
      Gas turbine power delivered [W].
    • batteryPowerDelivered

      private double batteryPowerDelivered
      Battery power delivered [W].
    • solarPowerDelivered

      private double solarPowerDelivered
      Solar power delivered [W].
    • windPowerCurtailed

      private double windPowerCurtailed
      Wind power curtailed [W].
    • windPowerToCharge

      private double windPowerToCharge
      Wind power used to charge battery [W].
    • powerDeficit

      private double powerDeficit
      Total power deficit (unmet demand) [W].
    • co2Emissions

      private double co2Emissions
      CO2 emissions from gas turbine [kg/hr].
    • co2Avoided

      private double co2Avoided
      CO2 avoided by using wind instead of gas [kg/hr].
    • fuelConsumption

      private double fuelConsumption
      Gas fuel consumption rate [kg/hr].
    • timeStepHours

      private double timeStepHours
      Time step for battery charge/discharge [hours].
    • dispatchHistory

      private List<Map<String,Double>> dispatchHistory
      History of hourly dispatch for time-series analysis.
  • Constructor Details

    • OffshoreEnergySystem

      public OffshoreEnergySystem()
      Default constructor.
    • OffshoreEnergySystem

      public OffshoreEnergySystem(String name)
      Construct with name.
      Parameters:
      name - equipment name
  • Method Details

    • run

      public void run(UUID id)

      In this method all thermodynamic and unit operations will be calculated in a steady state calculation.

      Parameters:
      id - UUID
    • runHourlyDispatch

      public void runHourlyDispatch(double[] windSpeeds)
      Run hourly dispatch simulation over wind speed time series.
      Parameters:
      windSpeeds - array of hourly wind speeds [m/s]
    • getWindPowerFraction

      public double getWindPowerFraction()
      Get fraction of total power from wind.
      Returns:
      wind power fraction [0-1]
    • getCO2Emissions

      public double getCO2Emissions()
      Get CO2 emissions [kg/hr].
      Returns:
      CO2 emissions from gas turbine [kg/hr]
    • getCO2Avoided

      public double getCO2Avoided()
      Get CO2 avoided by using renewables [kg/hr].
      Returns:
      CO2 avoided [kg/hr]
    • getAnnualCO2Avoided

      public double getAnnualCO2Avoided()
      Get annual CO2 avoided if system runs continuously [tonnes/year].
      Returns:
      annual CO2 avoided [tonnes/year]
    • getFuelConsumption

      public double getFuelConsumption()
      Get gas fuel consumption [kg/hr].
      Returns:
      fuel consumption [kg/hr]
    • getTotalPowerDelivered

      public double getTotalPowerDelivered()
      Get total power delivered [W].
      Returns:
      total power delivered
    • getWindPowerDelivered

      public double getWindPowerDelivered()
      Get wind power delivered [W].
      Returns:
      wind power [W]
    • getGasTurbinePowerDelivered

      public double getGasTurbinePowerDelivered()
      Get gas turbine power delivered [W].
      Returns:
      gas turbine power [W]
    • getBatteryPowerDelivered

      public double getBatteryPowerDelivered()
      Get battery power delivered [W].
      Returns:
      battery power [W]
    • getSolarPowerDelivered

      public double getSolarPowerDelivered()
      Get solar power delivered [W].
      Returns:
      solar power [W]
    • getWindPowerCurtailed

      public double getWindPowerCurtailed()
      Get wind power curtailed [W].
      Returns:
      curtailed wind power [W]
    • getPowerDeficit

      public double getPowerDeficit()
      Get unmet power demand [W].
      Returns:
      power deficit [W]
    • getDispatchHistory

      public List<Map<String,Double>> getDispatchHistory()
      Get dispatch history for time-series analysis.
      Returns:
      list of dispatch snapshots
    • clearDispatchHistory

      public void clearDispatchHistory()
      Clear dispatch history.
    • setWindFarm

      public void setWindFarm(WindFarm windFarm)
      Set wind farm.
      Parameters:
      windFarm - wind farm object
    • getWindFarm

      public WindFarm getWindFarm()
      Get wind farm.
      Returns:
      wind farm object
    • setBatteryStorage

      public void setBatteryStorage(BatteryStorage battery)
      Set battery storage system.
      Parameters:
      battery - battery storage object
    • getBatteryStorage

      public BatteryStorage getBatteryStorage()
      Get battery storage.
      Returns:
      battery storage
    • setSolarPanel

      public void setSolarPanel(SolarPanel solar)
      Set solar panel system.
      Parameters:
      solar - solar panel object
    • setGasTurbineCapacity

      public void setGasTurbineCapacity(double capacity)
      Set gas turbine rated capacity [W].
      Parameters:
      capacity - gas turbine capacity [W]
    • getGasTurbineCapacity

      public double getGasTurbineCapacity()
      Get gas turbine capacity [W].
      Returns:
      gas turbine capacity [W]
    • setGasTurbineEfficiency

      public void setGasTurbineEfficiency(double efficiency)
      Set gas turbine efficiency [0-1].
      Parameters:
      efficiency - gas turbine efficiency
    • setGasTurbineMinLoad

      public void setGasTurbineMinLoad(double minLoad)
      Set gas turbine minimum load fraction [0-1].
      Parameters:
      minLoad - minimum load fraction
    • setTotalPowerDemand

      public void setTotalPowerDemand(double demand)
      Set total power demand [W].
      Parameters:
      demand - total power demand [W]
    • getTotalPowerDemand

      public double getTotalPowerDemand()
      Get total power demand [W].
      Returns:
      total power demand [W]
    • setCO2EmissionFactor

      public void setCO2EmissionFactor(double factor)
      Set CO2 emission factor [kg CO2 / kWh].
      Parameters:
      factor - emission factor
    • setTimeStepHours

      public void setTimeStepHours(double hours)
      Set time step for dispatch [hours].
      Parameters:
      hours - time step size