Quellcode durchsuchen

minor resistance calculation fixes

David Heck vor 4 Jahren
Ursprung
Commit
3bb9427bba
2 geänderte Dateien mit 19 neuen und 18 gelöschten Zeilen
  1. 19 17
      src/classes/StorageElement.java
  2. 0 1
      src/ui/controller/StorageProductionController.java

+ 19 - 17
src/classes/StorageElement.java

@@ -31,8 +31,7 @@ public class StorageElement extends HolonElement implements Comparable<StorageEl
 		this.stateOfCharge = 0;
 		this.maxInRatio = maxInRatio;
 		this.maxOutRatio = maxOutRatio;
-		this.capacity = capacity * 60;// for example tesla power wall 10kwh, 10kw per hour thus * 60 if iteration =
-									// minutes//TODO:!
+		this.capacity = capacity * 60;// we save in watts per minute for ease of use
 		this.status = Mode.STANDBY;
 		this.chargingRatio = 0;
 		this.resistanceCalculator = new resistanceCalculator(230, 20000, 30, 0.017);//TODO
@@ -74,6 +73,9 @@ 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:
@@ -81,24 +83,21 @@ public class StorageElement extends HolonElement implements Comparable<StorageEl
 			chargingRatio = 0;
 			return 0;
 		case EMIT:
-			if (energyWanted >= maxOutRatio) { // more energy wanted than can be giving
+			if (energyNeed >= maxOutRatio) { // more energy wanted than can be giving
 				if (stateOfCharge >= maxOutRatio) { // more energy wanted than can be given
-					this.setEnergyPerElement(energyAfterResistance(maxOutRatio, energyRequiredForPowerplantBlackstart));
-					chargingRatio = maxOutRatio;
-					return energyAfterResistance(maxOutRatio, energyRequiredForPowerplantBlackstart);
-				} else { // less energy stored that can be given
-					return notEnoughChargedToEmitWantedEnergy(energyRequiredForPowerplantBlackstart);
+					return emitWantedEnergy(maxOutRatio, energyRequiredForPowerplantBlackstart);
 				}
 			} else {// less wanted than what can be max be given
 				if(stateOfCharge >= energyNeed){
-					this.setEnergyPerElement(energyAfterResistance(energyNeed, energyRequiredForPowerplantBlackstart));
+//					return emitWantedEnergy(energyNeed, energyRequiredForPowerplantBlackstart);//TODO: zurueckrechnungs problem!
+					this.setEnergyPerElement(energyWanted);
 					chargingRatio = energyNeed;
-					return energyAfterResistance(energyNeed, energyRequiredForPowerplantBlackstart);
-				}else{
-					return notEnoughChargedToEmitWantedEnergy(energyRequiredForPowerplantBlackstart);
+					return energyWanted;
 				}
 			}
-			case COLLECT://TODO: more testing
+			return notEnoughChargedToEmitWantedEnergy(energyRequiredForPowerplantBlackstart);
+
+			case COLLECT://TODO: more testing IGNORES resistanceses!
 			if (energyWanted >= maxInRatio) { // more engery given than can be collected
 				if (stateOfCharge + maxInRatio > capacity) { // Storage nearly full only load rest to get full
 					this.setEnergyPerElement(-(capacity - stateOfCharge));
@@ -168,13 +167,16 @@ public class StorageElement extends HolonElement implements Comparable<StorageEl
 			this.setEnergyPerElement(0);
 			return 0;
 		}else{
-			this.setEnergyPerElement(energyAfterResistance(stateOfCharge, energyRequiredForPowerplantBlackstart));
-			chargingRatio = stateOfCharge;
-			return energyAfterResistance(stateOfCharge, energyRequiredForPowerplantBlackstart);
+			return emitWantedEnergy(stateOfCharge, energyRequiredForPowerplantBlackstart);
 		}
 	}
 
-
+	private float emitWantedEnergy(float maxEnergy, float energyRequiredForPowerplantBlackstart){
+		float energyAfterResistance = energyAfterResistance(maxEnergy, energyRequiredForPowerplantBlackstart);
+		this.setEnergyPerElement(energyAfterResistance);
+		chargingRatio = maxEnergy;
+		return energyAfterResistance;
+	}
 
 	public float getStateOfCharge() {
 		return stateOfCharge;

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

@@ -51,7 +51,6 @@ public class StorageProductionController {
 //				|| (se.getStatus().equals(StorageElement.Mode.EMIT)
 //						&& se.getEnergyPerElement() < se.getMaxOutRatio()
 //						&& se.getEnergyPerElement() < se.getStateOfCharge())) {
-                    // TODO: eventuell nach entfernung sortieren
 				if(!se.chargeDepleted()){
 					energyLeftToEnabled = energyLeftToEnabled - se.setStatusAndSetEnergy(StorageElement.Mode.EMIT, energyLeftToEnabled, energyRequiredForPowerplantBlackstart);
 				}