Class PSDValve
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, TwoPortInterface, ValveInterface, SimulationInterface, NamedInterface
A PSD valve is a fast-acting isolation valve that provides emergency shutdown protection. It monitors a pressure transmitter and closes rapidly when a High-High (HIHI) alarm is triggered, preventing overpressure conditions from propagating through the process.
Key features:
- Automatic closure on HIHI alarm from linked pressure transmitter
- Configurable fast closure time (default 2 seconds)
- Manual reset capability after alarm clears
- Trip state tracking for safety interlock logic
Typical usage:
// Create pressure transmitter with alarm configuration
PressureTransmitter PT = new PressureTransmitter("PT-101", separatorInlet);
PT.setAlarmConfig(
AlarmConfig.builder().highHighLimit(55.0).deadband(1.0).delay(0.5).unit("bara").build());
// Create PSD valve linked to transmitter
PSDValve psdValve = new PSDValve("PSD-101", feedStream);
psdValve.linkToPressureTransmitter(PT);
psdValve.setClosureTime(2.0); // 2 seconds fast closure
// In dynamic simulation loop
system.runTransient(dt, UUID.randomUUID());
// Valve automatically closes if PT-101 goes into HIHI alarm
- Version:
- $Id: $Id
- Author:
- ESOL
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleTime required for valve to close (seconds).private booleanIndicates if valve has tripped due to HIHI alarm.private MeasurementDeviceInterfacePressure transmitter monitored for HIHI alarm.private static final longSerialization version UID.private booleanFlag to enable/disable automatic trip on HIHI.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
ConstructorsConstructorDescriptionConstructor for PSDValve.PSDValve(String name, StreamInterface inletStream) Constructor for PSDValve. -
Method Summary
Modifier and TypeMethodDescriptiondoubleGets the configured closure time.Gets the linked pressure transmitter.booleanChecks if valve has tripped.booleanChecks if trip is enabled.voidlinkToPressureTransmitter(MeasurementDeviceInterface transmitter) Links this PSD valve to a pressure transmitter for alarm monitoring.voidreset()Resets the trip state, allowing valve to be reopened.voidrunTransient(double dt, UUID id) Performs dynamic simulation step with automatic trip logic.voidsetClosureTime(double closureTime) Sets the valve closure time.voidsetPercentValveOpening(double opening) Overrides setPercentValveOpening to prevent opening when tripped.voidsetTripEnabled(boolean enabled) Enables or disables automatic trip on HIHI alarm.toString()Gets a string representation of the PSD 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, 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:
-
pressureTransmitter
Pressure transmitter monitored for HIHI alarm. -
hasTripped
private boolean hasTrippedIndicates if valve has tripped due to HIHI alarm. -
closureTime
private double closureTimeTime required for valve to close (seconds). -
tripEnabled
private boolean tripEnabledFlag to enable/disable automatic trip on HIHI.
-
-
Constructor Details
-
PSDValve
-
PSDValve
Constructor for PSDValve.- Parameters:
name- name of PSD valveinletStream- inlet stream to valve
-
-
Method Details
-
linkToPressureTransmitter
Links this PSD valve to a pressure transmitter for alarm monitoring.- Parameters:
transmitter- pressure transmitter to monitor for HIHI alarm
-
setClosureTime
public void setClosureTime(double closureTime) Sets the valve closure time.- Parameters:
closureTime- time in seconds for valve to close completely
-
getClosureTime
public double getClosureTime()Gets the configured closure time.- Returns:
- closure time in seconds
-
hasTripped
public boolean hasTripped()Checks if valve has tripped.- Returns:
- true if valve has tripped on HIHI alarm
-
reset
public void reset()Resets the trip state, allowing valve to be reopened.In real operations, this would require operator action and verification that the alarm condition has cleared. The valve will not automatically reopen after reset - it must be manually opened via setPercentValveOpening().
-
setTripEnabled
public void setTripEnabled(boolean enabled) Enables or disables automatic trip on HIHI alarm.- Parameters:
enabled- true to enable trip on HIHI, false to disable
-
isTripEnabled
public boolean isTripEnabled()Checks if trip is enabled.- Returns:
- true if trip on HIHI is enabled
-
runTransient
Performs dynamic simulation step with automatic trip logic.This method overrides the base class to add HIHI alarm monitoring. If the linked pressure transmitter reports a HIHI alarm and trip is enabled, the valve will automatically command closure.
- Specified by:
runTransientin interfaceSimulationInterface- Overrides:
runTransientin classThrottlingValve- Parameters:
dt- time step in secondsid- unique identifier for this calculation
-
getPressureTransmitter
Gets the linked pressure transmitter.- Returns:
- pressure transmitter being monitored, or null if not linked
-
setPercentValveOpening
public void setPercentValveOpening(double opening) Overrides setPercentValveOpening to prevent opening when tripped.If the valve has tripped, it cannot be opened until reset() is called. This prevents inadvertent reopening during an alarm condition.
- Specified by:
setPercentValveOpeningin interfaceValveInterface- Overrides:
setPercentValveOpeningin classThrottlingValve- Parameters:
opening- desired valve opening percentage (0-100)
-
toString
-