1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package classes.holonControlUnit;
- import java.util.ArrayList;
- public class OptimizationManager {
- public enum OptimizationScheme {
- COMFORT, STABILITY, RECOVERY
- }
- public static final float POWER_THRESHOLD_COMFORT = 0.99f;
- public static final float POWER_THRESHOLD_STABILITY = 0.9f;
- public static final float POWER_THRESHOLD_RECOVERY = 0f;
-
- private HolonControlUnit hcu;
- private OptimizationScheme optimizationScheme;
-
- public OptimizationManager(HolonControlUnit hcu) {
- this.hcu = hcu;
- this.optimizationScheme = OptimizationScheme.COMFORT;
- }
-
- public void evaluateOptimizationScheme(int timeStep) {
- float power = this.hcu.getStateEstimator().getPowerUsage();
- float des = this.hcu.getStateAssembler().getDesiredPowerUsage(timeStep);
- ArrayList<Float> prePower = this.hcu.getStateEstimator().getPredictedPowerUsage();
- if(this.hcu.matchPowerRange(power, des, prePower, POWER_THRESHOLD_COMFORT)) {
- this.optimizationScheme = OptimizationScheme.COMFORT;
- } else if(this.hcu.matchPowerRange(power, des, prePower, POWER_THRESHOLD_STABILITY)) {
- this.optimizationScheme = OptimizationScheme.STABILITY;
- } else {
- this.optimizationScheme = OptimizationScheme.RECOVERY;
- }
- }
- public OptimizationScheme getOptimizationScheme() {
- return optimizationScheme;
- }
- public void setOptimizationScheme(OptimizationScheme optimizationScheme) {
- this.optimizationScheme = optimizationScheme;
- }
-
- public float getCurrentPowerThreshold() {
- switch(this.optimizationScheme) {
- case COMFORT:
- return POWER_THRESHOLD_COMFORT;
- case STABILITY:
- return POWER_THRESHOLD_STABILITY;
- case RECOVERY:
- return POWER_THRESHOLD_RECOVERY;
- default:
- System.err.println("Unknown optimizaion scheme "+this.optimizationScheme);
- }
- return 0f;
- }
- }
|