1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package ui.controller;
- import classes.StorageElement;
- import java.util.ArrayList;
- import java.util.Collections;
- public class StorageProductionController {
- private ArrayList<StorageElement> storages;
- private float energyRequiredForPowerplantBlackstart;
- public StorageProductionController(ArrayList<StorageElement> storages, float energyRequiredForPowerplantBlackstart) {
- this.storages = storages;
- this.energyRequiredForPowerplantBlackstart = energyRequiredForPowerplantBlackstart;
- }
- public float currentPossibleStorageProduction() {
- float possibleEnergy = 0;
- for (StorageElement so : storages) {
- possibleEnergy += so.getPossibleProduction(energyRequiredForPowerplantBlackstart);
- }
- return possibleEnergy;
- }
- // public float currentStorageProduction() {
- // float producedEnergy = 0;
- // for (StorageElement ele : storages) {
- // if (ele.getStatus().equals(StorageElement.Mode.EMIT)) {
- // // needed to no emit more than what is available
- // if(ele.getStateOfCharge() - ele.getEnergyPerElement() < 0){
- // ele.setEnergyPerElement(ele.getStateOfCharge());
- // }
- // producedEnergy += ele.getEnergyPerElement();
- // }
- // }
- // return producedEnergy;
- // }
- public void enableStorageDischarging(final float energyNeeded) {
- Collections.sort(storages, Collections.reverseOrder());
- System.out.println("energy needed from storage" + energyNeeded);
- int storagesLeft = storages.size();
- float energyLeftToEnabled = energyNeeded;
- for (StorageElement se: storages) {
- if(!se.chargeDepleted()){
- energyLeftToEnabled = energyLeftToEnabled - se.setStatusAndSetEnergy(StorageElement.Mode.EMIT, energyLeftToEnabled / storagesLeft, energyRequiredForPowerplantBlackstart);
- }
- storagesLeft = storagesLeft - 1;
- if(energyLeftToEnabled <= 0){
- System.out.println("enabled energy from storage");
- return;
- }
- }
- }
- public void setAllStorageToStandy() {
- for (StorageElement se : storages) {
- se.setStatusAndSetEnergy(StorageElement.Mode.STANDBY, 0, energyRequiredForPowerplantBlackstart);
- }
- }
- //TODO: selbe probleme wie discharging
- void enableStorageCharging(float energyAvailable){
- Collections.sort(storages);
- System.out.println("energy available to storage" + energyAvailable);
- float availableEnergyLeft = energyAvailable;
- for (StorageElement se: storages) {
- if(!se.fullyCharged()){
- availableEnergyLeft = availableEnergyLeft - se.setStatusAndSetEnergy(StorageElement.Mode.COLLECT, availableEnergyLeft, energyRequiredForPowerplantBlackstart);
- }
- if(availableEnergyLeft <= 0){
- System.out.println("storage charging");
- return;
- }
- }
- }
- }
|