Class ProductionImpactAnalyzer
java.lang.Object
neqsim.process.util.optimizer.ProductionImpactAnalyzer
- All Implemented Interfaces:
Serializable
Analyzer for assessing production impact of equipment failures.
This class provides comprehensive analysis of how equipment failures affect production rates and helps determine optimal operating strategies during degraded conditions.
Key Capabilities
- Analyze impact of single equipment failure
- Compare degraded operation vs. full plant shutdown
- Find optimized operating point with failed equipment
- Rank equipment by criticality
- Identify bottleneck shifts
Example Usage
// Create analyzer
ProductionImpactAnalyzer analyzer = new ProductionImpactAnalyzer(processSystem);
analyzer.setFeedStreamName("Well Feed");
analyzer.setProductStreamName("Export Gas");
// Analyze compressor failure
ProductionImpactResult result = analyzer.analyzeFailureImpact("HP Compressor");
System.out.println("Production loss: " + result.getPercentLoss() + "%");
System.out.println("Recommendation: " + result.getRecommendedAction());
// Get criticality ranking
List<ProductionImpactResult> ranking = analyzer.rankEquipmentByCriticality();
- Version:
- 1.0
- Author:
- NeqSim Development Team
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Stringprivate Doubleprivate Doubleprivate DoubleCache for baseline values.private StringName of the feed stream for flow rate calculations.private static final org.apache.logging.log4j.LoggerLogger.private intMaximum iterations for optimization.private doubleTolerance for flow rate optimization.private booleanWhether to include optimization of degraded operation.private ProcessSystemThe process system to analyze.private doubleProduct price for economic calculations ($/kg).private StringName of the product/outlet stream for production measurement.private static final long -
Constructor Summary
ConstructorsConstructorDescriptionProductionImpactAnalyzer(ProcessSystem processSystem) Creates a production impact analyzer for the given process system.ProductionImpactAnalyzer(ProcessSystem processSystem, String feedStreamName, String productStreamName) Creates a production impact analyzer with specified streams. -
Method Summary
Modifier and TypeMethodDescriptionanalyzeFailureImpact(String equipmentName) Analyzes the production impact of failing a specific equipment.analyzeFailureImpact(String equipmentName, EquipmentFailureMode failureMode) Analyzes the production impact of a specific failure mode.analyzeMultipleFailures(List<String> equipmentNames) Analyzes multiple simultaneous equipment failures.private voidapplyFailure(ProcessSystem process, String equipmentName, EquipmentFailureMode failureMode, ProductionImpactResult result) Applies a failure mode to equipment in the process.private voidAuto-detects feed and product streams from the process system.private voidCalculates baseline (normal operation) values.voidClears the baseline cache, forcing recalculation.compareFailureScenarios(List<String> equipmentNames) Gets what-if analysis comparing different failure scenarios.compareToPlantStop(String equipmentName) Compares running with failed equipment vs. full plant shutdown.private BottleneckResultfindBottleneck(ProcessSystem process) Finds the current bottleneck in the process.Gets the process system.private doublegetProductionRate(ProcessSystem process) Gets the production rate from a process system.private doublegetTotalPower(ProcessSystem process) Gets the total power consumption from a process system.private voididentifyAffectedEquipment(ProcessSystem process, String failedEquipment, ProductionImpactResult result) Identifies equipment affected by the failure.private voidoptimizeDegradedOperation(ProcessSystem failedProcess, String failedEquipment, ProductionImpactResult result) Optimizes operation with failed equipment.Ranks all equipment by criticality (production impact of failure).setFeedStreamName(String name) Sets the feed stream name.setOptimizeDegradedOperation(boolean optimize) Sets whether to optimize degraded operation.voidsetProcessSystem(ProcessSystem processSystem) Sets a new process system.setProductPricePerKg(double pricePerKg) Sets the product price for economic calculations.setProductStreamName(String name) Sets the product stream name.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
logger
private static final org.apache.logging.log4j.Logger loggerLogger. -
processSystem
The process system to analyze. -
feedStreamName
Name of the feed stream for flow rate calculations. -
productStreamName
Name of the product/outlet stream for production measurement. -
productPricePerKg
private double productPricePerKgProduct price for economic calculations ($/kg). -
optimizeDegradedOperation
private boolean optimizeDegradedOperationWhether to include optimization of degraded operation. -
optimizationTolerance
private double optimizationToleranceTolerance for flow rate optimization. -
maxOptimizationIterations
private int maxOptimizationIterationsMaximum iterations for optimization. -
cachedBaselineProduction
Cache for baseline values. -
cachedBaselinePower
-
cachedBaselineBottleneck
-
cachedBaselineBottleneckUtil
-
-
Constructor Details
-
ProductionImpactAnalyzer
Creates a production impact analyzer for the given process system.- Parameters:
processSystem- the process system to analyze
-
ProductionImpactAnalyzer
public ProductionImpactAnalyzer(ProcessSystem processSystem, String feedStreamName, String productStreamName) Creates a production impact analyzer with specified streams.- Parameters:
processSystem- the process systemfeedStreamName- name of the feed streamproductStreamName- name of the product stream
-
-
Method Details
-
autoDetectStreams
private void autoDetectStreams()Auto-detects feed and product streams from the process system. -
setFeedStreamName
Sets the feed stream name.- Parameters:
name- the feed stream name- Returns:
- this analyzer for chaining
-
setProductStreamName
Sets the product stream name.- Parameters:
name- the product stream name- Returns:
- this analyzer for chaining
-
setProductPricePerKg
Sets the product price for economic calculations.- Parameters:
pricePerKg- price per kg of product- Returns:
- this analyzer for chaining
-
setOptimizeDegradedOperation
Sets whether to optimize degraded operation.- Parameters:
optimize- true to optimize- Returns:
- this analyzer for chaining
-
clearCache
public void clearCache()Clears the baseline cache, forcing recalculation. -
analyzeFailureImpact
Analyzes the production impact of failing a specific equipment.- Parameters:
equipmentName- name of the equipment to fail- Returns:
- production impact result
-
analyzeFailureImpact
public ProductionImpactResult analyzeFailureImpact(String equipmentName, EquipmentFailureMode failureMode) Analyzes the production impact of a specific failure mode.- Parameters:
equipmentName- name of the equipmentfailureMode- the failure mode to simulate- Returns:
- production impact result
-
calculateBaseline
Calculates baseline (normal operation) values. -
applyFailure
private void applyFailure(ProcessSystem process, String equipmentName, EquipmentFailureMode failureMode, ProductionImpactResult result) Applies a failure mode to equipment in the process. -
identifyAffectedEquipment
private void identifyAffectedEquipment(ProcessSystem process, String failedEquipment, ProductionImpactResult result) Identifies equipment affected by the failure. -
optimizeDegradedOperation
private void optimizeDegradedOperation(ProcessSystem failedProcess, String failedEquipment, ProductionImpactResult result) Optimizes operation with failed equipment. -
getProductionRate
Gets the production rate from a process system. -
getTotalPower
Gets the total power consumption from a process system. -
findBottleneck
Finds the current bottleneck in the process. -
compareToPlantStop
Compares running with failed equipment vs. full plant shutdown.- Parameters:
equipmentName- name of the failed equipment- Returns:
- comparison result with recommendation
-
rankEquipmentByCriticality
Ranks all equipment by criticality (production impact of failure).- Returns:
- list of results sorted by production impact (highest first)
-
analyzeMultipleFailures
Analyzes multiple simultaneous equipment failures.- Parameters:
equipmentNames- list of equipment names to fail- Returns:
- combined production impact result
-
compareFailureScenarios
Gets what-if analysis comparing different failure scenarios.- Parameters:
equipmentNames- list of equipment to compare- Returns:
- list of results for each scenario
-
getProcessSystem
-
setProcessSystem
Sets a new process system.- Parameters:
processSystem- the new process system
-