123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package classes.holonControlUnit;
- import java.util.ArrayList;
- public class OptimizationManager {
- public enum OptimizationScheme {
- COMFORT, MIN_COST, ENERGY_CONSUMPTION, 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();
- 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 MIN_COST:
- return POWER_THRESHOLD_COMFORT;
- case ENERGY_CONSUMPTION:
- 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;
- }
- }
|