Class BlowdownValve
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, TwoPortInterface, ValveInterface, SimulationInterface, NamedInterface
A blowdown valve is a normally closed isolation valve that opens during emergency shutdown (ESD) events to rapidly depressurize process equipment. The flow through the valve is controlled by a downstream orifice to ensure safe and controlled depressurization rates.
Key features:
- Normally closed valve for emergency depressurization
- Opens on ESD activation signal
- Configurable opening time
- Manual activation and reset capability
- Typically used with downstream orifice for flow control
Typical usage in ESD system:
// Create separator with gas outlet
Separator separator = new Separator("HP Separator", feedStream);
separator.run();
// Split gas outlet - one to normal process, one to blowdown
Splitter splitter = new Splitter("Gas Splitter", separator.getGasOutStream());
splitter.setSplitFactors(new double[] {1.0, 0.0}); // Initially all to process
// Create blowdown valve (normally closed)
BlowdownValve bdValve = new BlowdownValve("BD-101", splitter.getSplitStream(1));
bdValve.setOpeningTime(5.0); // 5 seconds to fully open
// Create orifice to control blowdown flow rate
ThrottlingValve orifice = new ThrottlingValve("BD Orifice", bdValve.getOutletStream());
orifice.setCv(150.0); // Size for controlled depressurization
orifice.setOutletPressure(1.5); // Flare header pressure
// In emergency situation
bdValve.activate(); // Open blowdown valve
splitter.setSplitFactors(new double[] {0.0, 1.0}); // Redirect flow to blowdown
// In dynamic simulation loop
system.runTransient(dt, UUID.randomUUID());
// Valve gradually opens and gas flows to flare through orifice
- Version:
- $Id: $Id
- Author:
- ESOL
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanIndicates if blowdown valve has been activated (ESD triggered).private booleanTrack if valve opening is in progress.private doubleTime required for valve to fully open (seconds).private static final longSerialization version UID.private doubleTime elapsed since activation started (seconds).Fields inherited from class ThrottlingValve
isCalcPressure, logger, molarFlow, pressure, thermoSystem, valveMechanicalDesignFields inherited from class TwoPortEquipment
inStream, outStreamFields inherited from class ProcessEquipmentBaseClass
conditionAnalysisMessage, energyStream, hasController, isSolved, properties, reportFields inherited from class SimulationBaseClass
calcIdentifier, calculateSteadyState, timeFields inherited from class NamedBaseClass
name -
Constructor Summary
ConstructorsConstructorDescriptionBlowdownValve(String name) Constructor for BlowdownValve.BlowdownValve(String name, StreamInterface inletStream) Constructor for BlowdownValve. -
Method Summary
Modifier and TypeMethodDescriptionvoidactivate()Activates the blowdown valve (simulates ESD trigger).voidclose()Manually closes the blowdown valve.doubleGets the configured opening time.doubleGets the current time elapsed since activation.booleanChecks if blowdown valve is activated.booleanChecks if valve is currently in the process of opening.voidreset()Resets the blowdown valve to its initial closed state.voidrunTransient(double dt, UUID id) Performs dynamic simulation step with automatic opening logic.voidsetOpeningTime(double openingTime) Sets the valve opening time.toString()Gets a string representation of the blowdown valve state.Methods inherited from class ThrottlingValve
calcKv, calculateMolarFlow, calculateOutletPressure, displayResult, getCapacityDuty, getCapacityMax, getCg, getClosingTravelTime, getCv, getCv, getDeltaPressure, getDeltaPressure, getEntropyProduction, getExergyChange, getFp, getInletPressure, getKv, getMechanicalDesign, getOpeningTravelTime, getOutletPressure, getPercentValveOpening, getResultTable, getTargetPercentValveOpening, getThermoSystem, getTravelModel, getTravelTime, getTravelTimeConstant, initMechanicalDesign, isAcceptNegativeDP, isAllowChoked, isAllowLaminar, isGasValve, isIsoThermal, isValveKvSet, needRecalculation, run, runController, setAcceptNegativeDP, setAllowChoked, setAllowLaminar, setClosingTravelTime, setCv, setCv, setDeltaPressure, setFp, setGasValve, setIsCalcOutPressure, setIsoThermal, setKv, setMaximumValveOpening, setMinimumValveOpening, setOpeningTravelTime, setOutletPressure, setOutletPressure, setPercentValveOpening, setPressure, setPressure, setTargetPercentValveOpening, setTravelModel, setTravelTime, setTravelTimeConstant, setValveKvSet, toJson, toJsonMethods inherited from class TwoPortEquipment
getInletStream, getInletTemperature, getMassBalance, getOutletStream, getOutletTemperature, setInletPressure, setInletStream, setInletTemperature, setOutletStream, setOutletTemperature, validateSetupMethods inherited from class ProcessEquipmentBaseClass
copy, equals, getConditionAnalysisMessage, getController, getEnergyStream, getMassBalance, getMinimumFlow, getPressure, getPressure, getProperty, getReport_json, getSpecification, getTemperature, getTemperature, hashCode, isActive, isActive, isSetEnergyStream, reportResults, run_step, runConditionAnalysis, setController, setEnergyStream, setEnergyStream, setFlowValveController, setMinimumFlow, setRegulatorOutSignal, setSpecification, setTemperature, solvedMethods inherited from class SimulationBaseClass
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTimeMethods inherited from class NamedBaseClass
getName, getTagName, setName, setTagNameMethods inherited from interface NamedInterface
getName, getTagName, setName, setTagNameMethods inherited from interface ProcessEquipmentInterface
equals, getConditionAnalysisMessage, getController, getExergyChange, getFluid, getMassBalance, getMassBalance, getPressure, getPressure, getReport_json, getRestCapacity, getSpecification, getTemperature, getTemperature, hashCode, reportResults, runConditionAnalysis, setController, setRegulatorOutSignal, setSpecification, setTemperature, validateSetupMethods inherited from interface SimulationInterface
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, run, run_step, run_step, runTransient, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTime, solvedMethods inherited from interface TwoPortInterface
getInletStream, getInletTemperature, getInStream, getOutletStream, getOutletTemperature, getOutStream, setInletPressure, setInletStream, setInletTemperature, setOutletStream, setOutletTemperature
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
isActivated
private boolean isActivatedIndicates if blowdown valve has been activated (ESD triggered). -
openingTime
private double openingTimeTime required for valve to fully open (seconds). -
isOpening
private boolean isOpeningTrack if valve opening is in progress. -
timeElapsed
private double timeElapsedTime elapsed since activation started (seconds).
-
-
Constructor Details
-
BlowdownValve
Constructor for BlowdownValve.- Parameters:
name- name of blowdown valve
-
BlowdownValve
Constructor for BlowdownValve.- Parameters:
name- name of blowdown valveinletStream- inlet stream to valve
-
-
Method Details
-
setOpeningTime
public void setOpeningTime(double openingTime) Sets the valve opening time.- Parameters:
openingTime- time in seconds for valve to open completely
-
getOpeningTime
public double getOpeningTime()Gets the configured opening time.- Returns:
- opening time in seconds
-
isActivated
public boolean isActivated()Checks if blowdown valve is activated.- Returns:
- true if valve has been activated (ESD triggered)
-
activate
public void activate()Activates the blowdown valve (simulates ESD trigger).When activated, the valve will begin opening according to the configured opening time. This simulates the emergency shutdown system triggering the blowdown valve to depressurize the equipment.
-
reset
public void reset()Resets the blowdown valve to its initial closed state.This simulates the process of resetting the ESD system after an emergency event. In real operations, this would require operator action and verification that the system is safe to restart.
-
close
public void close()Manually closes the blowdown valve.This allows manual closure of the valve after depressurization is complete.
-
getTimeElapsed
public double getTimeElapsed()Gets the current time elapsed since activation.- Returns:
- time elapsed in seconds
-
runTransient
Performs dynamic simulation step with automatic opening logic.If the valve has been activated, it will gradually open according to the configured opening time until fully open (100%).
- Specified by:
runTransientin interfaceSimulationInterface- Overrides:
runTransientin classThrottlingValve- Parameters:
dt- time step in secondsid- unique identifier for this calculation
-
isOpening
public boolean isOpening()Checks if valve is currently in the process of opening.- Returns:
- true if valve is opening
-
toString
-