|
@@ -29,6 +29,7 @@ public class controlAlgorithm implements AddOn {
|
|
private TextField blackstartStartTimeTextfield;
|
|
private TextField blackstartStartTimeTextfield;
|
|
private TextField simulationDurationTextfield;
|
|
private TextField simulationDurationTextfield;
|
|
private TextField storageStartCharge;
|
|
private TextField storageStartCharge;
|
|
|
|
+ private TextField carStartCharge;
|
|
private TextField waitBetweenIterations;
|
|
private TextField waitBetweenIterations;
|
|
private TextField lowVolatageTextfield;
|
|
private TextField lowVolatageTextfield;
|
|
private TextField highVolatageTextfield;
|
|
private TextField highVolatageTextfield;
|
|
@@ -116,14 +117,22 @@ public class controlAlgorithm implements AddOn {
|
|
powerplantMaxOutputLabel.setBounds(110, 110, 300, 20);
|
|
powerplantMaxOutputLabel.setBounds(110, 110, 300, 20);
|
|
parameterPanel.add(powerplantMaxOutputLabel);
|
|
parameterPanel.add(powerplantMaxOutputLabel);
|
|
|
|
|
|
- storageStartCharge = new TextField("0.16666666");
|
|
|
|
|
|
+ storageStartCharge = new TextField("25");
|
|
storageStartCharge.setBounds(10, 135, 95, 20);
|
|
storageStartCharge.setBounds(10, 135, 95, 20);
|
|
parameterPanel.add(storageStartCharge);
|
|
parameterPanel.add(storageStartCharge);
|
|
|
|
|
|
- JLabel storageStartChargeLabel = new JLabel("Storage charge at start in kWh");
|
|
|
|
|
|
+ JLabel storageStartChargeLabel = new JLabel("Storage soc at start in %");
|
|
storageStartChargeLabel.setBounds(110, 135, 300, 20);
|
|
storageStartChargeLabel.setBounds(110, 135, 300, 20);
|
|
parameterPanel.add(storageStartChargeLabel);
|
|
parameterPanel.add(storageStartChargeLabel);
|
|
|
|
|
|
|
|
+ carStartCharge = new TextField("50");
|
|
|
|
+ carStartCharge.setBounds(10, 160, 95, 20);
|
|
|
|
+ parameterPanel.add(carStartCharge);
|
|
|
|
+
|
|
|
|
+ JLabel carStartChargeLabel = new JLabel("Car soc at start in %");
|
|
|
|
+ carStartChargeLabel.setBounds(110, 160, 300, 20);
|
|
|
|
+ parameterPanel.add(carStartChargeLabel);
|
|
|
|
+
|
|
waitBetweenIterations = new TextField("0");
|
|
waitBetweenIterations = new TextField("0");
|
|
waitBetweenIterations.setBounds(10, 205, 95, 20);
|
|
waitBetweenIterations.setBounds(10, 205, 95, 20);
|
|
parameterPanel.add(waitBetweenIterations);
|
|
parameterPanel.add(waitBetweenIterations);
|
|
@@ -231,7 +240,7 @@ public class controlAlgorithm implements AddOn {
|
|
control.getModel().setResistanceCalculator(new resistanceCalculator(
|
|
control.getModel().setResistanceCalculator(new resistanceCalculator(
|
|
Integer.parseInt(lowVolatageTextfield.getText()),
|
|
Integer.parseInt(lowVolatageTextfield.getText()),
|
|
Integer.parseInt(highVolatageTextfield.getText()),
|
|
Integer.parseInt(highVolatageTextfield.getText()),
|
|
- 30, 30,0.017, 0.017));
|
|
|
|
|
|
+ 10, 25,0.017, 0.017));
|
|
control.getModel().getResistanceCalculator().setDistancesToCalcResistance(powerplant);
|
|
control.getModel().getResistanceCalculator().setDistancesToCalcResistance(powerplant);
|
|
|
|
|
|
blackstartRunningCounter = 0;
|
|
blackstartRunningCounter = 0;
|
|
@@ -255,9 +264,15 @@ public class controlAlgorithm implements AddOn {
|
|
control.getModel().setIterations(Integer.parseInt(simulationDurationTextfield.getText()));
|
|
control.getModel().setIterations(Integer.parseInt(simulationDurationTextfield.getText()));
|
|
for (StorageElement se :
|
|
for (StorageElement se :
|
|
getStorageElements()) {
|
|
getStorageElements()) {
|
|
- se.setStateOfCharge(Float.parseFloat(storageStartCharge.getText())*1000*60);
|
|
|
|
|
|
+ switch (se.getEleName()){
|
|
|
|
+ case "Storage":
|
|
|
|
+ se.setStateOfCharge(Float.parseFloat(storageStartCharge.getText()));
|
|
|
|
+ break;
|
|
|
|
+ case "Car":
|
|
|
|
+ se.setStateOfCharge(Float.parseFloat(carStartCharge.getText()));
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-
|
|
|
|
updateVisual();
|
|
updateVisual();
|
|
if (blackstartStartTime + blackstartSuccessTime > control.getModel().getIterations() - 1) {
|
|
if (blackstartStartTime + blackstartSuccessTime > control.getModel().getIterations() - 1) {
|
|
println("No Time for the blackstart, use working numbers");
|
|
println("No Time for the blackstart, use working numbers");
|
|
@@ -313,8 +328,9 @@ public class controlAlgorithm implements AddOn {
|
|
|
|
|
|
/**
|
|
/**
|
|
* TODO: HOLEG UNTERVERSORGUNG CHECKEN
|
|
* TODO: HOLEG UNTERVERSORGUNG CHECKEN
|
|
- * TODO: renewables mit verlust
|
|
|
|
- * TODO: cable diameter/specificresistance
|
|
|
|
|
|
+ * TODO: global resistance calculator?
|
|
|
|
+ * TODO: entladen besser verteilen
|
|
|
|
+ *
|
|
*
|
|
*
|
|
* maybes:
|
|
* maybes:
|
|
* * TODO: prios fuer elemente anschalten
|
|
* * TODO: prios fuer elemente anschalten
|
|
@@ -533,7 +549,7 @@ public class controlAlgorithm implements AddOn {
|
|
println("currenctpossiblestorage: " + SPC.currentPossibleStorageProduction());
|
|
println("currenctpossiblestorage: " + SPC.currentPossibleStorageProduction());
|
|
for (StorageElement ele :
|
|
for (StorageElement ele :
|
|
getStorageElements()) {
|
|
getStorageElements()) {
|
|
- println("Storage " + ele.getId() + ", soc: " + (ele.getStateOfCharge()/60)/1000 + "kWh," + " maxpower: " + ele.getMaxOutRatio() + " W, distance: " + (ele.getLowDistance()+ele.getHighDistance()));
|
|
|
|
|
|
+ println(ele.getEleName() + " " + ele.getId() + ", soc: " + (ele.getStateOfCharge()/60)/1000 + "kWh," + " maxpower: " + ele.getMaxOutRatio() + " W, distance: " + (ele.getLowDistance()+ele.getHighDistance()));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|