|
@@ -36,7 +36,7 @@ public class StorageElement extends HolonElement implements Comparable<StorageEl
|
|
// minutes//TODO:!
|
|
// minutes//TODO:!
|
|
this.status = Mode.STANDBY;
|
|
this.status = Mode.STANDBY;
|
|
this.chargingRatio = 0;
|
|
this.chargingRatio = 0;
|
|
- this.resistanceCalculator = new resistanceCalculator(model);
|
|
|
|
|
|
+ this.resistanceCalculator = new resistanceCalculator(230, 30, 0.017);//TODO
|
|
}
|
|
}
|
|
|
|
|
|
public float getEnergyPerElement() {
|
|
public float getEnergyPerElement() {
|
|
@@ -73,6 +73,7 @@ public class StorageElement extends HolonElement implements Comparable<StorageEl
|
|
//TODO: das beachtet nicht wie viel durch widerstand verloren geht
|
|
//TODO: das beachtet nicht wie viel durch widerstand verloren geht
|
|
|
|
|
|
public float setStatusAndSetEnergy(Mode status, float energyWanted, float energyRequiredForPowerplantBlackstart) {
|
|
public float setStatusAndSetEnergy(Mode status, float energyWanted, float energyRequiredForPowerplantBlackstart) {
|
|
|
|
+ float energyNeed = resistanceCalculator.calcEnergyNeededForCertainEnergyAfterResistance(energyWanted, getDistance(), energyRequiredForPowerplantBlackstart);
|
|
this.status = status;
|
|
this.status = status;
|
|
switch (status) {
|
|
switch (status) {
|
|
case STANDBY:
|
|
case STANDBY:
|
|
@@ -86,16 +87,23 @@ public class StorageElement extends HolonElement implements Comparable<StorageEl
|
|
chargingRatio = maxOutRatio;
|
|
chargingRatio = maxOutRatio;
|
|
return energyAfterResistance(maxOutRatio, energyRequiredForPowerplantBlackstart);
|
|
return energyAfterResistance(maxOutRatio, energyRequiredForPowerplantBlackstart);
|
|
} else { // less energy stored that can be given
|
|
} else { // less energy stored that can be given
|
|
- return notEnoughChargedToEmitWantedEnergy();
|
|
|
|
|
|
+ return notEnoughChargedToEmitWantedEnergy(energyRequiredForPowerplantBlackstart);
|
|
}
|
|
}
|
|
- } else {// less wanted than what can be given
|
|
|
|
- if (stateOfCharge >= energyWanted) { // more energy stored than wanted
|
|
|
|
- this.setEnergyPerElement(energyAfterResistance(energyWanted, energyRequiredForPowerplantBlackstart));
|
|
|
|
- chargingRatio = energyWanted;
|
|
|
|
- return energyAfterResistance(energyWanted, energyRequiredForPowerplantBlackstart);
|
|
|
|
- } else { // less energy stored than wanted
|
|
|
|
- return notEnoughChargedToEmitWantedEnergy();
|
|
|
|
|
|
+ } else {// less wanted than what can be max be given
|
|
|
|
+ if(stateOfCharge >= energyNeed){
|
|
|
|
+ this.setEnergyPerElement(energyAfterResistance(energyNeed, energyRequiredForPowerplantBlackstart));
|
|
|
|
+ chargingRatio = energyNeed;
|
|
|
|
+ return energyAfterResistance(energyNeed, energyRequiredForPowerplantBlackstart);
|
|
|
|
+ }else{
|
|
|
|
+ return notEnoughChargedToEmitWantedEnergy(energyRequiredForPowerplantBlackstart);
|
|
}
|
|
}
|
|
|
|
+// if (stateOfCharge >= energyWanted) { // more energy stored than wanted
|
|
|
|
+// this.setEnergyPerElement(energyAfterResistance(energyWanted, energyRequiredForPowerplantBlackstart));
|
|
|
|
+// chargingRatio = energyWanted;
|
|
|
|
+// return energyAfterResistance(energyWanted, energyRequiredForPowerplantBlackstart);
|
|
|
|
+// } else { // less energy stored than wanted
|
|
|
|
+// return notEnoughChargedToEmitWantedEnergy();
|
|
|
|
+// }
|
|
}
|
|
}
|
|
case COLLECT://TODO: more testing
|
|
case COLLECT://TODO: more testing
|
|
if (energyWanted >= maxInRatio) { // more engery given than can be collected
|
|
if (energyWanted >= maxInRatio) { // more engery given than can be collected
|
|
@@ -161,17 +169,20 @@ public class StorageElement extends HolonElement implements Comparable<StorageEl
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private float notEnoughChargedToEmitWantedEnergy(){
|
|
|
|
|
|
+ private float notEnoughChargedToEmitWantedEnergy(float energyRequiredForPowerplantBlackstart){
|
|
if(stateOfCharge <= 0){
|
|
if(stateOfCharge <= 0){
|
|
this.status = Mode.STANDBY;
|
|
this.status = Mode.STANDBY;
|
|
this.setEnergyPerElement(0);
|
|
this.setEnergyPerElement(0);
|
|
return 0;
|
|
return 0;
|
|
}else{
|
|
}else{
|
|
- this.setEnergyPerElement(stateOfCharge);
|
|
|
|
- return stateOfCharge;
|
|
|
|
|
|
+ this.setEnergyPerElement(energyAfterResistance(stateOfCharge, energyRequiredForPowerplantBlackstart));
|
|
|
|
+ chargingRatio = stateOfCharge;
|
|
|
|
+ return energyAfterResistance(stateOfCharge, energyRequiredForPowerplantBlackstart);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
public float getStateOfCharge() {
|
|
public float getStateOfCharge() {
|
|
return stateOfCharge;
|
|
return stateOfCharge;
|
|
}
|
|
}
|