Class VariableFrequencyDrive

java.lang.Object
neqsim.process.electricaldesign.components.VariableFrequencyDrive
All Implemented Interfaces:
Serializable

public class VariableFrequencyDrive extends Object implements Serializable
Model of a Variable Frequency Drive (VFD) for motor speed control.

Supports sizing based on motor ratings, efficiency estimation, harmonic distortion calculation per IEEE 519, and different topology types (2-level, 3-level, multi-level, AFE).

Version:
1.0
Author:
Even Solbraa
See Also:
  • Field Details

    • serialVersionUID

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

      private double ratedPowerKW
    • ratedCurrentA

      private double ratedCurrentA
    • inputVoltageV

      private double inputVoltageV
    • outputVoltageV

      private double outputVoltageV
    • maxOutputFrequencyHz

      private double maxOutputFrequencyHz
    • minOutputFrequencyHz

      private double minOutputFrequencyHz
    • efficiencyPercent

      private double efficiencyPercent
    • inputPowerFactor

      private double inputPowerFactor
    • topologyType

      private String topologyType
    • hasActiveRectifier

      private boolean hasActiveRectifier
    • thdCurrentPercent

      private double thdCurrentPercent
    • requiresInputFilter

      private boolean requiresInputFilter
    • pulseConfiguration

      private String pulseConfiguration
    • minSpeedPercent

      private double minSpeedPercent
    • maxSpeedPercent

      private double maxSpeedPercent
    • hasFieldWeakeningRegion

      private boolean hasFieldWeakeningRegion
    • heatDissipationKW

      private double heatDissipationKW
    • coolingMethod

      private String coolingMethod
    • weightKg

      private double weightKg
    • estimatedCostUSD

      private double estimatedCostUSD
    • enclosureRating

      private String enclosureRating
  • Constructor Details

    • VariableFrequencyDrive

      public VariableFrequencyDrive()
  • Method Details

    • sizeVFD

      public void sizeVFD(ElectricalMotor motor)
      Size the VFD based on motor parameters.

      Selects VFD ratings, topology, harmonic characteristics, and cost based on the motor's rated power and voltage.

      Parameters:
      motor - the motor this VFD drives
    • selectTopology

      private void selectTopology(double powerKW, double voltageV)
      Select VFD topology based on power and voltage.
      Parameters:
      powerKW - rated power in kW
      voltageV - rated voltage in V
    • setEfficiencyByTopology

      private void setEfficiencyByTopology()
      Set efficiency based on VFD topology.
    • getElectricalInputKW

      public double getElectricalInputKW(double motorInputKW)
      Get electrical input power including VFD losses.
      Parameters:
      motorInputKW - motor electrical input power in kW
      Returns:
      total electrical input in kW
    • getEfficiency

      public double getEfficiency(double loadFraction, double speedFraction)
      Get VFD efficiency at a given load and speed fraction.
      Parameters:
      loadFraction - load fraction (0-1)
      speedFraction - speed fraction (0-1)
      Returns:
      efficiency in percent
    • estimateWeight

      private double estimateWeight(double powerKW, double voltageV)
      Estimate VFD weight.
      Parameters:
      powerKW - rated power in kW
      voltageV - rated voltage in V
      Returns:
      weight in kg
    • estimateCost

      private double estimateCost(double powerKW, double voltageV)
      Estimate VFD cost in USD.
      Parameters:
      powerKW - rated power in kW
      voltageV - rated voltage in V
      Returns:
      estimated cost in USD
    • toJson

      public String toJson()
      Serialize VFD data to JSON.
      Returns:
      JSON string
    • toMap

      public Map<String,Object> toMap()
      Convert VFD data to a map.
      Returns:
      map of VFD parameters
    • getRatedPowerKW

      public double getRatedPowerKW()
      Get rated power in kW.
      Returns:
      rated power in kW
    • setRatedPowerKW

      public void setRatedPowerKW(double ratedPowerKW)
      Set rated power in kW.
      Parameters:
      ratedPowerKW - rated power in kW
    • getRatedCurrentA

      public double getRatedCurrentA()
      Get rated current in A.
      Returns:
      rated current in A
    • setRatedCurrentA

      public void setRatedCurrentA(double ratedCurrentA)
      Set rated current in A.
      Parameters:
      ratedCurrentA - rated current in A
    • getInputVoltageV

      public double getInputVoltageV()
      Get input voltage in V.
      Returns:
      input voltage in V
    • setInputVoltageV

      public void setInputVoltageV(double inputVoltageV)
      Set input voltage in V.
      Parameters:
      inputVoltageV - input voltage in V
    • getOutputVoltageV

      public double getOutputVoltageV()
      Get output voltage in V.
      Returns:
      output voltage in V
    • setOutputVoltageV

      public void setOutputVoltageV(double outputVoltageV)
      Set output voltage in V.
      Parameters:
      outputVoltageV - output voltage in V
    • getMaxOutputFrequencyHz

      public double getMaxOutputFrequencyHz()
      Get maximum output frequency in Hz.
      Returns:
      max output frequency in Hz
    • setMaxOutputFrequencyHz

      public void setMaxOutputFrequencyHz(double maxOutputFrequencyHz)
      Set maximum output frequency in Hz.
      Parameters:
      maxOutputFrequencyHz - max output frequency in Hz
    • getMinOutputFrequencyHz

      public double getMinOutputFrequencyHz()
      Get minimum output frequency in Hz.
      Returns:
      min output frequency in Hz
    • setMinOutputFrequencyHz

      public void setMinOutputFrequencyHz(double minOutputFrequencyHz)
      Set minimum output frequency in Hz.
      Parameters:
      minOutputFrequencyHz - min output frequency in Hz
    • getEfficiencyPercent

      public double getEfficiencyPercent()
      Get VFD efficiency in percent.
      Returns:
      efficiency percent
    • setEfficiencyPercent

      public void setEfficiencyPercent(double efficiencyPercent)
      Set VFD efficiency in percent.
      Parameters:
      efficiencyPercent - efficiency percent
    • getInputPowerFactor

      public double getInputPowerFactor()
      Get input power factor.
      Returns:
      input power factor
    • setInputPowerFactor

      public void setInputPowerFactor(double inputPowerFactor)
      Set input power factor.
      Parameters:
      inputPowerFactor - input power factor
    • getTopologyType

      public String getTopologyType()
      Get the topology type.
      Returns:
      topology type
    • setTopologyType

      public void setTopologyType(String topologyType)
      Set the topology type.
      Parameters:
      topologyType - topology type (2-level, 3-level, Multi-level)
    • isHasActiveRectifier

      public boolean isHasActiveRectifier()
      Check if VFD has active front-end rectifier.
      Returns:
      true if AFE is present
    • setHasActiveRectifier

      public void setHasActiveRectifier(boolean hasActiveRectifier)
      Set whether VFD has active front-end rectifier.
      Parameters:
      hasActiveRectifier - true for AFE
    • getThdCurrentPercent

      public double getThdCurrentPercent()
      Get total harmonic distortion of current in percent.
      Returns:
      THD-i in percent
    • setThdCurrentPercent

      public void setThdCurrentPercent(double thdCurrentPercent)
      Set total harmonic distortion of current in percent.
      Parameters:
      thdCurrentPercent - THD-i in percent
    • isRequiresInputFilter

      public boolean isRequiresInputFilter()
      Check if an input filter is required.
      Returns:
      true if input filter is required
    • setRequiresInputFilter

      public void setRequiresInputFilter(boolean requiresInputFilter)
      Set whether an input filter is required.
      Parameters:
      requiresInputFilter - true if input filter is required
    • getPulseConfiguration

      public String getPulseConfiguration()
      Get pulse configuration.
      Returns:
      pulse configuration (6-pulse, 12-pulse, 18-pulse, AFE)
    • setPulseConfiguration

      public void setPulseConfiguration(String pulseConfiguration)
      Set pulse configuration.
      Parameters:
      pulseConfiguration - pulse configuration
    • getHeatDissipationKW

      public double getHeatDissipationKW()
      Get heat dissipation in kW.
      Returns:
      heat dissipation in kW
    • getCoolingMethod

      public String getCoolingMethod()
      Get cooling method.
      Returns:
      cooling method (Air, Water, Oil)
    • setCoolingMethod

      public void setCoolingMethod(String coolingMethod)
      Set cooling method.
      Parameters:
      coolingMethod - cooling method
    • getWeightKg

      public double getWeightKg()
      Get weight in kg.
      Returns:
      weight in kg
    • getEstimatedCostUSD

      public double getEstimatedCostUSD()
      Get estimated cost in USD.
      Returns:
      estimated cost in USD
    • getEnclosureRating

      public String getEnclosureRating()
      Get enclosure rating.
      Returns:
      IP enclosure rating
    • setEnclosureRating

      public void setEnclosureRating(String enclosureRating)
      Set enclosure rating.
      Parameters:
      enclosureRating - IP enclosure rating
    • getMinSpeedPercent

      public double getMinSpeedPercent()
      Get minimum speed as percent of rated.
      Returns:
      min speed percent
    • setMinSpeedPercent

      public void setMinSpeedPercent(double minSpeedPercent)
      Set minimum speed as percent of rated.
      Parameters:
      minSpeedPercent - min speed percent
    • getMaxSpeedPercent

      public double getMaxSpeedPercent()
      Get maximum speed as percent of rated.
      Returns:
      max speed percent
    • setMaxSpeedPercent

      public void setMaxSpeedPercent(double maxSpeedPercent)
      Set maximum speed as percent of rated.
      Parameters:
      maxSpeedPercent - max speed percent