Class PressureControlLogic
java.lang.Object
neqsim.process.logic.control.PressureControlLogic
- All Implemented Interfaces:
ProcessLogic
Process logic for automatic pressure control via valve throttling.
This logic automatically adjusts a control valve opening when activated, typically in response to high pressure alarms. The valve adjustment helps reduce system pressure before safety systems (HIPPS, ESD) need to activate.
Typical usage pattern:
ControlValve inletValve = (ControlValve) system.getUnit("Inlet Valve");
PressureControlLogic throttleLogic =
new PressureControlLogic("Pressure HIHI Auto-Throttle", inletValve, 50.0, system);
// Activate automatically on HIHI alarm
alarmManager
.registerActionHandler(AlarmActionHandler.activateLogicOnHIHI("PT-101", throttleLogic));
- Version:
- 1.0
- Author:
- ESOL
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final List<LogicAction> private final ControlValveprivate final Stringprivate final booleanprivate LogicStateprivate final ProcessSystemprivate final double -
Constructor Summary
ConstructorsConstructorDescriptionPressureControlLogic(String name, ControlValve controlValve, double targetOpening) Creates pressure control logic without automatic system run.PressureControlLogic(String name, ControlValve controlValve, double targetOpening, ProcessSystem system) Creates pressure control logic with system run. -
Method Summary
Modifier and TypeMethodDescriptionvoidactivate()Activates the logic sequence, starting execution.voidDeactivates the logic sequence, pausing or stopping execution.voidexecute(double timeStep) Executes one time step of the logic sequence.Gets the control valve being manipulated.getName()Gets the name of this logic sequence.getState()Gets the current state of the logic.Gets a description of the current status.Gets the list of equipment targeted by this logic.doubleGets the target valve opening percentage.booleanisActive()Checks if the logic is currently active (running).booleanChecks if the logic sequence has completed successfully.booleanreset()Resets the logic sequence to its initial state.toString()
-
Field Details
-
name
-
controlValve
-
targetOpening
private final double targetOpening -
system
-
runSystemAfterChange
private final boolean runSystemAfterChange -
state
-
actions
-
-
Constructor Details
-
PressureControlLogic
public PressureControlLogic(String name, ControlValve controlValve, double targetOpening, ProcessSystem system) Creates pressure control logic with system run.- Parameters:
name- the logic namecontrolValve- the valve to throttletargetOpening- the target valve opening percentage (0-100)system- the process system to run after valve change
-
PressureControlLogic
Creates pressure control logic without automatic system run.- Parameters:
name- the logic namecontrolValve- the valve to throttletargetOpening- the target valve opening percentage (0-100)
-
-
Method Details
-
getName
Description copied from interface:ProcessLogicGets the name of this logic sequence.- Specified by:
getNamein interfaceProcessLogic- Returns:
- logic name
-
getState
Description copied from interface:ProcessLogicGets the current state of the logic.- Specified by:
getStatein interfaceProcessLogic- Returns:
- current logic state
-
activate
public void activate()Description copied from interface:ProcessLogicActivates the logic sequence, starting execution.If the logic is already active, this may restart it or have no effect depending on implementation.
- Specified by:
activatein interfaceProcessLogic
-
deactivate
public void deactivate()Description copied from interface:ProcessLogicDeactivates the logic sequence, pausing or stopping execution.The logic remains in its current state and can be reactivated later.
- Specified by:
deactivatein interfaceProcessLogic
-
reset
public boolean reset()Description copied from interface:ProcessLogicResets the logic sequence to its initial state.This prepares the logic for a fresh execution. Reset may require certain permissive conditions to be met.
- Specified by:
resetin interfaceProcessLogic- Returns:
- true if reset was successful, false if permissives not met
-
execute
public void execute(double timeStep) Description copied from interface:ProcessLogicExecutes one time step of the logic sequence.This method should be called repeatedly in transient simulations to advance the logic through its steps.
- Specified by:
executein interfaceProcessLogic- Parameters:
timeStep- time increment in seconds
-
isActive
public boolean isActive()Description copied from interface:ProcessLogicChecks if the logic is currently active (running).- Specified by:
isActivein interfaceProcessLogic- Returns:
- true if logic is active
-
isComplete
public boolean isComplete()Description copied from interface:ProcessLogicChecks if the logic sequence has completed successfully.- Specified by:
isCompletein interfaceProcessLogic- Returns:
- true if logic has completed all steps
-
getTargetEquipment
Description copied from interface:ProcessLogicGets the list of equipment targeted by this logic.- Specified by:
getTargetEquipmentin interfaceProcessLogic- Returns:
- list of target equipment
-
getStatusDescription
Description copied from interface:ProcessLogicGets a description of the current status.- Specified by:
getStatusDescriptionin interfaceProcessLogic- Returns:
- status description
-
getControlValve
Gets the control valve being manipulated.- Returns:
- the control valve
-
getTargetOpening
public double getTargetOpening()Gets the target valve opening percentage.- Returns:
- target opening (0-100%)
-
toString
-