|
@@ -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;
|