David Heck 4 éve
szülő
commit
6479187813

+ 13 - 11
src/blackstart/controlAlgorithm.java

@@ -292,6 +292,7 @@ public class controlAlgorithm implements AddOn {
 	 *         this iteration
 	 */
 	private boolean blackstartAlgo() {
+		printCurrentEnergyState();
 		if (currentRenewableProduction() < getEnergyRequiredForPowerplantBlackstart()) {
 			// renewable energy production is not sufficient for the blackstart
 			if (SPC.currentPossibleStorageProduction() >= getEnergyRequiredForPowerplantBlackstart()
@@ -317,7 +318,6 @@ public class controlAlgorithm implements AddOn {
 		}
 	}
 
-	//TODO: das ist ja eigentlich doppelt
 	private ArrayList<StorageElement> getStorageElements() {
 		ArrayList<StorageElement> storageElements = new ArrayList<>();
 		for (HolonObject holonObject : control.getModel().getAllHolonObjectsOnCanvas()) {
@@ -344,15 +344,8 @@ public class controlAlgorithm implements AddOn {
 	}
 
 	private void enableConsumers(float energyAvailable) {
-		println("currenctrenewable: " + currentRenewableProduction());
-		for (StorageElement ele :
-				getStorageElements()) {
-			println("Storage ID: " + ele.getId() + " at distance " + ele.getLowDistance() + " at charge " + (ele.getStateOfCharge()/60)/1000 + "kWh");
-		}
-		println("currenctpossiblestorage: " + SPC.currentPossibleStorageProduction());
-		println("blackstart resi: " + getEnergyRequiredForPowerplantBlackstart());
-		println("current pp production: " + getPowerplantProduction());
-		println("energy available for consumers" + energyAvailable);
+//		println("current pp production: " + getPowerplantProduction());
+//		println("energy available for consumers" + energyAvailable);
 
 //		Damit wir immer die gleiche ausgangslage haben //TODO: wirklich?
 		disableConsumers();
@@ -368,7 +361,6 @@ public class controlAlgorithm implements AddOn {
 																													// since
 																													// its
 																													// negative
-//						System.out.println("Element " + ele.getId() + " was enabled Energy left: "+ energyAvailable);
 					}
 				} else {
 					return;
@@ -487,6 +479,16 @@ public class controlAlgorithm implements AddOn {
 		return list;
 	}
 
+	private void printCurrentEnergyState(){
+		println("blackstart resi: " + getEnergyRequiredForPowerplantBlackstart());
+		println("currenctrenewable: " + currentRenewableProduction());
+		println("currenctpossiblestorage: " + SPC.currentPossibleStorageProduction());
+		for (StorageElement ele :
+				getStorageElements()) {
+			println("Storage " + ele.getId() + " charge: " + (ele.getStateOfCharge()/60)/1000 + "kWh"  + " at distance " + (ele.getLowDistance()+ele.getHighDistance()));
+		}
+	}
+
 	/**
 	 * To let the User See the current state without touching the Canvas.
 	 */

+ 2 - 9
src/classes/StorageElement.java

@@ -73,9 +73,6 @@ public class StorageElement extends HolonElement implements Comparable<StorageEl
 	public float setStatusAndSetEnergy(Mode status, float energyWanted, float energyRequiredForPowerplantBlackstart) {
 		//TODO: stellen fuer energyNeed nochmal ueberdenken
 		float energyNeed = resistanceCalculator.calcEnergyNeededForCertainEnergyAfterResistance(energyWanted, getLowDistance(), getHighDistance(), energyRequiredForPowerplantBlackstart);
-
-		float wantVSneed = energyAfterResistance(energyNeed, energyRequiredForPowerplantBlackstart);
-
 		this.status = status;
 		switch (status) {
 		case STANDBY:
@@ -89,7 +86,7 @@ public class StorageElement extends HolonElement implements Comparable<StorageEl
 				}
 			} else {// less wanted than what can be max be given
 				if(stateOfCharge >= energyNeed){
-//					return emitWantedEnergy(energyNeed, energyRequiredForPowerplantBlackstart);//TODO: zurueckrechnungs problem!
+//					return emitWantedEnergy(energyNeed, energyRequiredForPowerplantBlackstart);//zurueckrechnungs problem! float nicht genau genug
 					this.setEnergyPerElement(energyWanted);
 					chargingRatio = energyNeed;
 					return energyWanted;
@@ -182,10 +179,6 @@ public class StorageElement extends HolonElement implements Comparable<StorageEl
 		return stateOfCharge;
 	}
 
-	public float getMaxOutRatio() {
-		return maxOutRatio;
-	}
-
 	public boolean chargeDepleted(){
 		return stateOfCharge <= 0;
 	}
@@ -201,7 +194,7 @@ public class StorageElement extends HolonElement implements Comparable<StorageEl
 		}else if(this.stateOfCharge > storageElement.getStateOfCharge()){
 			return 1;
 		}else{
-			return Double.compare(storageElement.getLowDistance(), this.getLowDistance());
+			return Double.compare(storageElement.getLowDistance()+storageElement.getHighDistance(), this.getLowDistance()+this.getHighDistance());
 		}
 	}
 

+ 2 - 2
src/classes/resistanceCalculator.java

@@ -71,7 +71,7 @@ public class resistanceCalculator {
         return Math.sqrt(Math.pow(xDiff, 2) + Math.pow(yDiff, 2));
     }
 
-    public float calcEnergyAfterResistance(float currentEnergy, double lowDistance, double highDistance, float energyRequiredForPowerplantBlackstart){
+    float calcEnergyAfterResistance(float currentEnergy, double lowDistance, double highDistance, float energyRequiredForPowerplantBlackstart){
         double energyAfterLowVoltage = calcEnergyAfterPartOfGrid(currentEnergy, lowVoltage, lowDistance, energyRequiredForPowerplantBlackstart);
         energyAfterLowVoltage = (0.98 * energyAfterLowVoltage); //transfomer loses
         return (float) calcEnergyAfterPartOfGrid(energyAfterLowVoltage, highVoltage, highDistance, energyRequiredForPowerplantBlackstart);
@@ -91,7 +91,7 @@ public class resistanceCalculator {
         return specificMaterialResistance * (distance / (0.25 * Math.PI * Math.pow(diameter, 2)));
     }
 
-    public float calcEnergyNeededForCertainEnergyAfterResistance(float energyWanted, double lowDistance, double highDistance, float energyRequiredForPowerplantBlackstart){
+    float calcEnergyNeededForCertainEnergyAfterResistance(float energyWanted, double lowDistance, double highDistance, float energyRequiredForPowerplantBlackstart){
         double energyBeforeHighVoltage = calcEnergyNeededBeforePartOfGrid(energyWanted, highVoltage, highDistance,energyRequiredForPowerplantBlackstart);
         energyBeforeHighVoltage = 1.02 * energyBeforeHighVoltage;
         return (float) calcEnergyNeededBeforePartOfGrid(energyBeforeHighVoltage, lowVoltage, lowDistance, energyRequiredForPowerplantBlackstart);

+ 0 - 14
src/ui/controller/StorageProductionController.java

@@ -40,30 +40,16 @@ public class StorageProductionController {
 		Collections.sort(storages, Collections.reverseOrder());
 		System.out.println("energy needed from storage" + energyNeeded);
         float energyLeftToEnabled = energyNeeded;
-
-
-//        if(currentStorageProduction() < energyNeeded){//TODO: das if muss ich nochmal ueberdenken
-//        	energyLeftToEnabled = energyNeeded - currentStorageProduction();
-            //DONE?: Problem: es wird abgezogen weil ja schon emitter aber wir wolle das ja erhoehen...
         	for (StorageElement se: storages) {
-//                if (se.getStatus().equals(StorageElement.Mode.STANDBY)
-//                || se.getStatus().equals(StorageElement.Mode.COLLECT)
-//				|| (se.getStatus().equals(StorageElement.Mode.EMIT)
-//						&& se.getEnergyPerElement() < se.getMaxOutRatio()
-//						&& se.getEnergyPerElement() < se.getStateOfCharge())) {
 				if(!se.chargeDepleted()){
 					energyLeftToEnabled = energyLeftToEnabled - se.setStatusAndSetEnergy(StorageElement.Mode.EMIT, energyLeftToEnabled, energyRequiredForPowerplantBlackstart);
 				}
-//                }
 
                 if(energyLeftToEnabled <= 0){
                 	System.out.println("enabled energy from storage");
                     return;
                 }
             }
-//        }else{
-//            disableStorageProduction(energyNeeded - currentStorageProduction());
-//        }
 	}
 
 	//TODO: redo algorithm to actually us it right...

+ 0 - 25
src/ui/model/Model.java

@@ -1103,29 +1103,4 @@ public class Model {
 			else if(aCps instanceof HolonSwitch)switchsOnCanvas.add((HolonSwitch) aCps);
 		}
 	}
-
-
-//	//TODO: will ich das hier wirklich haben?
-//
-//    public StorageProductionController getStorageProductionController() {
-//        return storageProductionController;
-//    }
-//
-//    public void setStorageProductionController() {
-//        this.storageProductionController.setStorages(getStorageElements());
-//    }
-//
-//
-//    //TODO: DAS GEHOERT NICHT IN MODEL
-//    public ArrayList<StorageElement> getStorageElements() {
-//        ArrayList<StorageElement> storageElements = new ArrayList<StorageElement>();
-//        for (HolonObject holonObject : getAllHolonObjectsOnCanvas()) {
-//            for (HolonElement ele : holonObject.getElements()) {
-//                if(ele instanceof StorageElement){
-//                    storageElements.add((StorageElement) ele);
-//                }
-//            }
-//        }
-//        return storageElements;
-//    }
 }