diff --git a/_alp/Agents/UI_company/Code/Functions.java b/_alp/Agents/UI_company/Code/Functions.java index 66c4e7e..21fa498 100644 --- a/_alp/Agents/UI_company/Code/Functions.java +++ b/_alp/Agents/UI_company/Code/Functions.java @@ -687,9 +687,7 @@ } //Create EV and connect to GC and selected trip tracker - J_EAEV electricVehicle = new J_EAEV(parentGC, capacityElectricity_kW, storageCapacity_kWh, stateOfCharge_fr, timestep_h, energyConsumption_kWhpkm, vehicleScaling, vehicleType, tripTracker); - electricVehicle.available = available; - + J_EAEV electricVehicle = new J_EAEV(parentGC, capacityElectricity_kW, storageCapacity_kWh, stateOfCharge_fr, timestep_h, energyConsumption_kWhpkm, vehicleScaling, vehicleType, tripTracker, available); if (isAdditionalVehicle){ @@ -717,8 +715,7 @@ else if (vehicleType == OL_EnergyAssetType.DIESEL_VEHICLE || vehicleType == OL_E } //Create Diesel vehicle and connect to GC and selected trip tracker - J_EADieselVehicle dieselVehicle = new J_EADieselVehicle(parentGC, energyConsumption_kWhpkm, timestep_h, vehicleScaling, vehicleType, tripTracker); - dieselVehicle.available = available; + J_EADieselVehicle dieselVehicle = new J_EADieselVehicle(parentGC, energyConsumption_kWhpkm, timestep_h, vehicleScaling, vehicleType, tripTracker, available); @@ -745,8 +742,7 @@ else if (vehicleType == OL_EnergyAssetType.DIESEL_VEHICLE || vehicleType == OL_E } //Create Hydrogen vehicle and connect to GC and selected trip tracker - J_EAHydrogenVehicle hydrogenVehicle = new J_EAHydrogenVehicle(parentGC, energyConsumption_kWhpkm, timestep_h, vehicleScaling, vehicleType, tripTracker); - hydrogenVehicle.available = available; + J_EAHydrogenVehicle hydrogenVehicle = new J_EAHydrogenVehicle(parentGC, energyConsumption_kWhpkm, timestep_h, vehicleScaling, vehicleType, tripTracker, available); diff --git a/_alp/Agents/Zero_Interface/Code/Functions.java b/_alp/Agents/Zero_Interface/Code/Functions.java index 32bf3ef..f49b2a8 100644 --- a/_alp/Agents/Zero_Interface/Code/Functions.java +++ b/_alp/Agents/Zero_Interface/Code/Functions.java @@ -2011,55 +2011,49 @@ Pair f_getPresentationPositionIteration( double f_initialChargerOrder() {/*ALCODESTART::1750247111856*/ -c_orderedV1GChargers = new ArrayList(); -c_orderedV2GChargers = new ArrayList(); -c_orderedPublicChargers = new ArrayList(); +c_orderedV1GChargers = new ArrayList<>(); +c_orderedV2GChargers = new ArrayList<>(); +c_orderedPublicChargers = new ArrayList<>(); -List c_inactiveV1GChargers = new ArrayList(); -List c_inactiveV2GChargers = new ArrayList(); +List c_inactiveV1GChargers = new ArrayList<>(); +List c_inactiveV2GChargers = new ArrayList<>(); -for (GridConnection gc : energyModel.f_getActiveGridConnections()) { - for (J_EAChargePoint charger : gc.c_chargers) { - if (charger.getV1GCapable()) { - c_orderedV1GChargers.add(0, charger); - } - else { - c_orderedV1GChargers.add(charger); - } - if (charger.getV2GCapable()) { - c_orderedV2GChargers.add(0, charger); - } - else { - c_orderedV2GChargers.add(charger); - } +for (GCPublicCharger gc : energyModel.PublicChargers) { + if(gc.f_getChargingManagement() == null){ + throw new RuntimeException("Public charger found without chargingmanagement!"); } -} - -for (GridConnection gc : energyModel.f_getPausedGridConnections()) { - for (J_EAChargePoint charger : gc.c_chargers) { - if (charger.getV1GCapable()) { - c_inactiveV1GChargers.add(0, charger); - } - else { - c_inactiveV1GChargers.add(charger); - } - if (charger.getV2GCapable()) { - c_inactiveV2GChargers.add(0, charger); - } - else { - c_inactiveV2GChargers.add(charger); - } + J_ChargePoint chargePoint = gc.f_getChargePoint(); + + //Get the correct list the public charger should be added to + List collectionPointerV1GChargers = c_orderedV1GChargers; + List collectionPointerV2GChargers = c_orderedV2GChargers; + if(!gc.v_isActive){ + collectionPointerV1GChargers = c_inactiveV1GChargers; + collectionPointerV2GChargers = c_inactiveV2GChargers; + } + + //Assign the gc to a certain location in the ordered list based on the capabilities + if (chargePoint.getV1GCapable()) { + collectionPointerV1GChargers.add(0, gc); + } + else { + collectionPointerV1GChargers.add(gc); + } + if (chargePoint.getV2GCapable()) { + collectionPointerV2GChargers.add(0, gc); + } + else { + collectionPointerV2GChargers.add(gc); + } + + if ( !gc.p_isChargingCentre ) { //Should maybe be a check for charger capabilities as well? + c_orderedPublicChargers.add(gc); } } c_orderedV1GChargers.addAll( c_inactiveV1GChargers ); c_orderedV2GChargers.addAll( c_inactiveV2GChargers ); -for (GCPublicCharger gc : energyModel.PublicChargers) { - if ( !gc.p_isChargingCentre ) { - c_orderedPublicChargers.add(gc); - } -} //Collections.shuffle(c_orderedPublicChargers); /*ALCODEEND*/} diff --git a/_alp/Agents/Zero_Interface/Variables.xml b/_alp/Agents/Zero_Interface/Variables.xml index eef922f..c7c9aea 100644 --- a/_alp/Agents/Zero_Interface/Variables.xml +++ b/_alp/Agents/Zero_Interface/Variables.xml @@ -3355,7 +3355,7 @@ OL_FilterOptionsGC.MANUAL_SELECTION, "Handmatige selectie" true ArrayList - J_EAChargePoint + GCPublicCharger String @@ -3391,7 +3391,7 @@ OL_FilterOptionsGC.MANUAL_SELECTION, "Handmatige selectie" true ArrayList - J_EAChargePoint + GCPublicCharger String diff --git a/_alp/Agents/Zero_Loader/Code/Functions.java b/_alp/Agents/Zero_Loader/Code/Functions.java index b870436..12d186f 100644 --- a/_alp/Agents/Zero_Loader/Code/Functions.java +++ b/_alp/Agents/Zero_Loader/Code/Functions.java @@ -1661,15 +1661,11 @@ GISRegion f_createGISRegionChargingStation(double lat,double lon) chargingStation.v_liveConnectionMetaData.contractedDeliveryCapacityKnown = true; } - //chargingStation.set_p_heatingType( OL_GridConnectionHeatingType.NONE ); - //Set parent node chargingStation.p_parentNodeElectricID = dataChargingStation.gridnode_id(); //Is active at start? chargingStation.v_isActive = dataChargingStation.initially_active(); - - //chargingStation.set_p_chargingAttitudeVehicles(OL_ChargingAttitude.SIMPLE); //Create and connect owner ConnectionOwner owner = energyModel.add_pop_connectionOwners(); @@ -1705,10 +1701,13 @@ GISRegion f_createGISRegionChargingStation(double lat,double lon) //Create vehicles that charge at the charging centre if(chargingStation.p_chargingVehicleType == OL_EnergyAssetType.CHARGER){ - List chargerProfile = f_getChargerProfile(); + List chargerProfile = f_getChargerProfile(); boolean V1GCapable = randomTrue(avgc_data.p_v1gProbability); boolean V2GCapable = randomTrue(avgc_data.p_v2gProbability); - new J_EAChargePoint(chargingStation, chargingStation.p_maxChargingPower_kW, energyModel.p_timeStep_h, chargerProfile, V1GCapable, V2GCapable, 2); + chargingStation.f_setChargePoint( new J_ChargePoint(V1GCapable, V2GCapable)); + chargingStation.f_setChargingManagement(new J_ChargingManagementSimple(chargingStation)); + new J_EAChargingSession(chargingStation, chargerProfile, 0); + new J_EAChargingSession(chargingStation, chargerProfile, 1); } else{ for(int k = 0; k < chargingStation.p_nbOfChargers*avgc_data.p_avgVehiclesPerChargePoint; k++ ){ @@ -1753,10 +1752,13 @@ GISRegion f_createGISRegionChargingStation(double lat,double lon) //Create vehicles that charge at the charging station if(chargingStation.p_chargingVehicleType == OL_EnergyAssetType.CHARGER){ - List chargerProfile = f_getChargerProfile(); + List chargerProfile = f_getChargerProfile(); boolean V1GCapable = true; //randomTrue(avgc_data.p_v1gProbability); boolean V2GCapable = true; //randomTrue(avgc_data.p_v2gProbability); - new J_EAChargePoint(chargingStation, chargingStation.p_maxChargingPower_kW, energyModel.p_timeStep_h, chargerProfile, V1GCapable, V2GCapable, 2); + chargingStation.f_setChargePoint(new J_ChargePoint(V1GCapable, V2GCapable)); + chargingStation.f_setChargingManagement(new J_ChargingManagementSimple(chargingStation)); + new J_EAChargingSession(chargingStation, chargerProfile, 0); + new J_EAChargingSession(chargingStation, chargerProfile, 1); } else{ for(int k = 0; k < avgc_data.p_avgVehiclesPerChargePoint; k++ ){ @@ -3208,7 +3210,7 @@ else if(project_data.gridnode_profile_timestep_hr() < energyModel.p_timeStep_h){ c_gridNodeIDsWithProfiles.add(gridnode.p_gridNodeID); /*ALCODEEND*/} -J_ChargingSession f_createChargingSession(String chargingSessionData) +J_ChargingSessionData f_createChargingSession(String chargingSessionData) {/*ALCODESTART::1749648772203*/ String[] chargingSessionInfo = chargingSessionData.split("/"); @@ -3218,18 +3220,20 @@ J_ChargingSession f_createChargingSession(String chargingSessionData) double batteryCap_kWh = Double.parseDouble(chargingSessionInfo[3]); double chargingPower_kW = Double.parseDouble(chargingSessionInfo[5]); int socket = Integer.parseInt(chargingSessionInfo[6]); +boolean isV2GCapable = randomTrue(avgc_data.p_v2gProbability); +double timeStep_h = 0.25; //Cap charging demand to what is actual possible according to chargetime interval * charge power chargingDemand_kWh = min(chargingPower_kW * (endIndex - startIndex) * 0.25, chargingDemand_kWh); -return new J_ChargingSession(startIndex, endIndex, chargingDemand_kWh, batteryCap_kWh, chargingPower_kW, socket, 0.25); +return new J_ChargingSessionData(startIndex, endIndex, chargingDemand_kWh, batteryCap_kWh, chargingPower_kW, socket, isV2GCapable, timeStep_h); /*ALCODEEND*/} -List f_createNewChargerProfile(ChargerProfile_data chargerProfileData) +List f_createNewChargerProfile(ChargerProfile_data chargerProfileData) {/*ALCODESTART::1749649169603*/ // example: 2/54/50.3/72.1/21.8/10.8/2 List chargerProfileDataValues = chargerProfileData.valuesList(); -List chargerProfile = new ArrayList(); +List chargerProfile = new ArrayList(); for(int i = 0; i < chargerProfileDataValues.size(); i++){ chargerProfile.add(f_createChargingSession(chargerProfileDataValues.get(i))); @@ -3238,9 +3242,9 @@ List f_createNewChargerProfile(ChargerProfile_data chargerPr return chargerProfile; /*ALCODEEND*/} -List f_getChargerProfile() +List f_getChargerProfile() {/*ALCODESTART::1749649390125*/ -List chargerProfile; +List chargerProfile; int randomIndex; if(c_chargerProfiles_data.size()>0){ diff --git a/_alp/Agents/Zero_Loader/Code/Functions.xml b/_alp/Agents/Zero_Loader/Code/Functions.xml index 2ac53c7..259fca9 100644 --- a/_alp/Agents/Zero_Loader/Code/Functions.xml +++ b/_alp/Agents/Zero_Loader/Code/Functions.xml @@ -1312,7 +1312,7 @@ verbruik = levering + productie - teruglevering]]> RETURNS_VALUE - J_ChargingSession + J_ChargingSessionData 1749648772203 490 @@ -1332,7 +1332,7 @@ verbruik = levering + productie - teruglevering]]> RETURNS_VALUE - List<J_ChargingSession> + List<J_ChargingSessionData> 1749649169603 470 @@ -1352,7 +1352,7 @@ verbruik = levering + productie - teruglevering]]> RETURNS_VALUE - List<J_ChargingSession> + List<J_ChargingSessionData> 1749649390125 450 diff --git a/_alp/Agents/Zero_Loader/EmbeddedObjects.xml b/_alp/Agents/Zero_Loader/EmbeddedObjects.xml index 85945a9..e58d26f 100644 --- a/_alp/Agents/Zero_Loader/EmbeddedObjects.xml +++ b/_alp/Agents/Zero_Loader/EmbeddedObjects.xml @@ -78,6 +78,12 @@ + + + + + + false diff --git a/_alp/Agents/tabMobility/Code/Functions.java b/_alp/Agents/tabMobility/Code/Functions.java index b549ba5..d83c669 100644 --- a/_alp/Agents/tabMobility/Code/Functions.java +++ b/_alp/Agents/tabMobility/Code/Functions.java @@ -323,8 +323,7 @@ boolean f_dieselToElectricTruck(List gcList) double initialStateOfCharge_fr = 1.0; double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgEVEnergyConsumptionTruck_kWhpkm; double vehicleScalingElectric = 1.0; - J_EAEV electricTruck = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeStep_h, energyConsumption_kWhpkm, vehicleScalingElectric, OL_EnergyAssetType.ELECTRIC_TRUCK, tripTracker); - electricTruck.available = available; + J_EAEV electricTruck = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeStep_h, energyConsumption_kWhpkm, vehicleScalingElectric, OL_EnergyAssetType.ELECTRIC_TRUCK, tripTracker, available); zero_Interface.c_orderedVehicles.add(0, electricTruck); @@ -378,9 +377,8 @@ boolean f_hydrogenToElectricTruck(List gcList) double initialStateOfCharge_fr = 1.0; double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgEVEnergyConsumptionTruck_kWhpkm; double vehicleScalingElectric = 1.0; - J_EAEV electricTruck = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeStep_h, energyConsumption_kWhpkm, vehicleScalingElectric, OL_EnergyAssetType.ELECTRIC_TRUCK, tripTracker); - electricTruck.available = available; - + J_EAEV electricTruck = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeStep_h, energyConsumption_kWhpkm, vehicleScalingElectric, OL_EnergyAssetType.ELECTRIC_TRUCK, tripTracker, available); + zero_Interface.c_orderedVehicles.add(0, electricTruck); //check if was additional vehicle in companyUI, if so: add to collection @@ -428,8 +426,7 @@ boolean f_electricToHydrogenTruck(List gcList) // Re-add hydrogen vehicle double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgHydrogenConsumptionTruck_kWhpkm; double vehicleScaling = 1.0; - J_EAHydrogenVehicle hydrogenVehicle = new J_EAHydrogenVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeStep_h, vehicleScaling, OL_EnergyAssetType.HYDROGEN_TRUCK, tripTracker); - hydrogenVehicle.available = available; + J_EAHydrogenVehicle hydrogenVehicle = new J_EAHydrogenVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeStep_h, vehicleScaling, OL_EnergyAssetType.HYDROGEN_TRUCK, tripTracker, available); zero_Interface.c_orderedVehicles.add(0, hydrogenVehicle); @@ -478,8 +475,7 @@ boolean f_dieselToHydrogenTruck(List gcList) // Re-add hydrogen vehicle double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgHydrogenConsumptionTruck_kWhpkm; double vehicleScaling = 1.0; - J_EAHydrogenVehicle hydrogenVehicle = new J_EAHydrogenVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeStep_h, vehicleScaling, OL_EnergyAssetType.HYDROGEN_TRUCK, tripTracker); - hydrogenVehicle.available = available; + J_EAHydrogenVehicle hydrogenVehicle = new J_EAHydrogenVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeStep_h, vehicleScaling, OL_EnergyAssetType.HYDROGEN_TRUCK, tripTracker, available); zero_Interface.c_orderedVehicles.add(0, hydrogenVehicle); @@ -528,8 +524,7 @@ boolean f_electricToDieselTruck(List gcList) // Re-add diesel vehicle double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgDieselConsumptionTruck_kWhpkm; double vehicleScaling = 1.0; - J_EADieselVehicle dieselVehicle = new J_EADieselVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeStep_h, vehicleScaling, OL_EnergyAssetType.DIESEL_TRUCK, tripTracker); - dieselVehicle.available = available; + J_EADieselVehicle dieselVehicle = new J_EADieselVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeStep_h, vehicleScaling, OL_EnergyAssetType.DIESEL_TRUCK, tripTracker, available); zero_Interface.c_orderedVehicles.add(0, dieselVehicle); @@ -578,8 +573,7 @@ boolean f_hydrogenToDieselTruck(List gcList) // Re-add diesel vehicle double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgDieselConsumptionTruck_kWhpkm; double vehicleScaling = 1.0; - J_EADieselVehicle dieselVehicle = new J_EADieselVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeStep_h, vehicleScaling, OL_EnergyAssetType.DIESEL_TRUCK, tripTracker); - dieselVehicle.available = available; + J_EADieselVehicle dieselVehicle = new J_EADieselVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeStep_h, vehicleScaling, OL_EnergyAssetType.DIESEL_TRUCK, tripTracker, available); zero_Interface.c_orderedVehicles.add(0, dieselVehicle); @@ -687,8 +681,7 @@ boolean f_dieselToElectricVan(List gcList) double initialStateOfCharge_fr = 1.0; double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgEVEnergyConsumptionVan_kWhpkm; double vehicleScalingElectric = 1.0; - J_EAEV electricVan = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeStep_h, energyConsumption_kWhpkm, vehicleScalingElectric, OL_EnergyAssetType.ELECTRIC_VAN, tripTracker); - electricVan.available = available; + J_EAEV electricVan = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeStep_h, energyConsumption_kWhpkm, vehicleScalingElectric, OL_EnergyAssetType.ELECTRIC_VAN, tripTracker, available); zero_Interface.c_orderedVehicles.add(0, electricVan); @@ -738,8 +731,7 @@ boolean f_electricToDieselVan(List gcList) // Re-add diesel vehicle double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgDieselConsumptionTruck_kWhpkm; double vehicleScaling = 1.0; - J_EADieselVehicle dieselVehicle = new J_EADieselVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeStep_h, vehicleScaling, OL_EnergyAssetType.DIESEL_VAN, tripTracker); - dieselVehicle.available = available; + J_EADieselVehicle dieselVehicle = new J_EADieselVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeStep_h, vehicleScaling, OL_EnergyAssetType.DIESEL_VAN, tripTracker, available); zero_Interface.c_orderedVehicles.add(0, dieselVehicle); @@ -790,8 +782,7 @@ boolean f_dieselToElectricCar(List gcList) double initialStateOfCharge_fr = 1.0; double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgEVEnergyConsumptionCar_kWhpkm; double vehicleScalingElectric = 1.0; - J_EAEV electricCar = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeStep_h, energyConsumption_kWhpkm, vehicleScalingElectric, OL_EnergyAssetType.ELECTRIC_VEHICLE, tripTracker); - electricCar.available = available; + J_EAEV electricCar = new J_EAEV(gc, capacityElectric_kW, storageCapacity_kWh, initialStateOfCharge_fr, zero_Interface.energyModel.p_timeStep_h, energyConsumption_kWhpkm, vehicleScalingElectric, OL_EnergyAssetType.ELECTRIC_VEHICLE, tripTracker, available); zero_Interface.c_orderedVehicles.add(0, electricCar); @@ -841,8 +832,7 @@ boolean f_electricToDieselCar(List gcList) // Re-add diesel vehicle double energyConsumption_kWhpkm = zero_Interface.energyModel.avgc_data.p_avgDieselConsumptionTruck_kWhpkm; double vehicleScaling = 1.0; - J_EADieselVehicle dieselVehicle = new J_EADieselVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeStep_h, vehicleScaling, OL_EnergyAssetType.DIESEL_VEHICLE, tripTracker); - dieselVehicle.available = available; + J_EADieselVehicle dieselVehicle = new J_EADieselVehicle(gc, energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeStep_h, vehicleScaling, OL_EnergyAssetType.DIESEL_VEHICLE, tripTracker, available); zero_Interface.c_orderedVehicles.add(0, dieselVehicle); @@ -1442,8 +1432,6 @@ else if (vehicle instanceof J_EAHydrogenVehicle){ List activeChargerGridConnections = uI_Tabs.f_getSliderGridConnections_chargers(); List pausedChargerGridConnections = uI_Tabs.f_getPausedSliderGridConnections_chargers(); -List activeChargersEA = new ArrayList(); -activeChargerGridConnections.forEach(gc -> activeChargersEA.addAll(gc.c_chargers)); int nbPublicChargerGC = activeChargerGridConnections.size() + pausedChargerGridConnections.size(); @@ -1453,9 +1441,9 @@ else if (vehicle instanceof J_EAHydrogenVehicle){ double activePublicChargers_pct = 100.0 * nbActivePublicChargersGC / nbPublicChargerGC; sl_publicChargersResidentialArea_pct.setValue(roundToInt(activePublicChargers_pct), false); - int nbV1GChargers = count(activeChargersEA, x -> x.getV1GCapable()); - int nbV2GChargers =count(activeChargersEA, x -> x.getV2GCapable()); - int nbPublicChargers = activeChargersEA.size(); + int nbV1GChargers = count(activeChargerGridConnections, x -> x.f_getChargePoint().getV1GCapable()); + int nbV2GChargers =count(activeChargerGridConnections, x -> x.f_getChargePoint().getV2GCapable()); + int nbPublicChargers = activeChargerGridConnections.size(); double V1G_pct = 100.0 * nbV1GChargers / nbPublicChargers; double V2G_pct = 100.0 * nbV2GChargers / nbPublicChargers; @@ -1463,13 +1451,13 @@ else if (vehicle instanceof J_EAHydrogenVehicle){ sl_chargersThatSupportV2G_pct.setValue(roundToInt(V2G_pct), false); //Selected charging mode - OL_ChargingAttitude currentChargingAttitude = activeChargersEA.size() > 0 ? activeChargersEA.get(0).getChargingAttitude(): OL_ChargingAttitude.SIMPLE; - boolean V2GActive = activeChargersEA.size() > 0 ? activeChargersEA.get(0).getV2GActive(): false; - for(J_EAChargePoint charger : activeChargersEA){ - if(currentChargingAttitude != OL_ChargingAttitude.CUSTOM && charger.getChargingAttitude() != currentChargingAttitude){ + OL_ChargingAttitude currentChargingAttitude = activeChargerGridConnections.size() > 0 ? activeChargerGridConnections.get(0).f_getCurrentChargingType(): OL_ChargingAttitude.SIMPLE; + boolean V2GActive = activeChargerGridConnections.size() > 0 ? activeChargerGridConnections.get(0).f_getChargingManagement().getV2GActive(): false; + for(GCPublicCharger charger : activeChargerGridConnections){ + if(currentChargingAttitude != OL_ChargingAttitude.CUSTOM && charger.f_getCurrentChargingType() != currentChargingAttitude){ currentChargingAttitude = OL_ChargingAttitude.CUSTOM; // Here used as varied: in other words: custom setting } - if(V2GActive && !charger.getV2GActive()){ + if(V2GActive && !charger.f_getChargingManagement().getV2GActive()){ V2GActive = false; } @@ -1558,16 +1546,13 @@ else if (vehicle instanceof J_EAHydrogenVehicle){ for(GCPublicCharger GC : gcListChargers){ if(GC.v_isActive){ - for(J_EAChargePoint charger : GC.c_chargers){ - totalActiveChargers++; - if(charger.getV1GCapable()){ - totalCapableV1GChargers++; - } - if(charger.getV2GCapable()){ - totalCapableV2GChargers++; - } + totalActiveChargers++; + if(GC.f_getChargePoint().getV1GCapable()){ + totalCapableV1GChargers++; + } + if(GC.f_getChargePoint().getV2GCapable()){ + totalCapableV2GChargers++; } - } } V1GCapableChargerSlider.setValue(roundToInt(100.0 * totalCapableV1GChargers/totalActiveChargers)); @@ -1585,27 +1570,24 @@ else if (vehicle instanceof J_EAHydrogenVehicle){ double f_setV1GChargerCapabilities(List gcListChargers,double goal_pct) {/*ALCODESTART::1758183975221*/ -List activeChargersEA = new ArrayList(); -gcListChargers.forEach(gc -> activeChargersEA.addAll(gc.c_chargers)); - -int totalNbChargers = activeChargersEA.size(); -int currentNbChargers = count(activeChargersEA, x -> x.getV1GCapable()); +int totalNbChargers = gcListChargers.size(); +int currentNbChargers = count(gcListChargers, x -> x.f_getChargePoint().getV1GCapable()); int nbChargersGoal = roundToInt(goal_pct / 100.0 * totalNbChargers); while (currentNbChargers < nbChargersGoal) { - J_EAChargePoint j_ea = findFirst(zero_Interface.c_orderedV1GChargers, x -> activeChargersEA.contains(x) && !x.getV1GCapable()); - j_ea.setV1GCapability(true); + GCPublicCharger charger = findFirst(zero_Interface.c_orderedV1GChargers, x -> gcListChargers.contains(x) && !x.f_getChargePoint().getV1GCapable()); + charger.f_getChargePoint().setV1GCapability(true); currentNbChargers++; - zero_Interface.c_orderedV1GChargers.remove(j_ea); - zero_Interface.c_orderedV1GChargers.add(0, j_ea); + zero_Interface.c_orderedV1GChargers.remove(charger); + zero_Interface.c_orderedV1GChargers.add(0, charger); } while (currentNbChargers > nbChargersGoal) { - J_EAChargePoint j_ea = findFirst(zero_Interface.c_orderedV1GChargers, x -> activeChargersEA.contains(x) && x.getV1GCapable()); - j_ea.setV1GCapability(false); + GCPublicCharger charger = findFirst(zero_Interface.c_orderedV1GChargers, x -> gcListChargers.contains(x) && x.f_getChargePoint().getV1GCapable()); + charger.f_getChargePoint().setV1GCapability(false); currentNbChargers--; - zero_Interface.c_orderedV1GChargers.remove(j_ea); - zero_Interface.c_orderedV1GChargers.add(0, j_ea); + zero_Interface.c_orderedV1GChargers.remove(charger); + zero_Interface.c_orderedV1GChargers.add(0, charger); } // Update variable to change to custom scenario @@ -1618,27 +1600,24 @@ else if (vehicle instanceof J_EAHydrogenVehicle){ double f_setV2GChargerCapabilities(List gcListChargers,double goal_pct) {/*ALCODESTART::1758183975227*/ -List activeChargersEA = new ArrayList(); -gcListChargers.forEach(gc -> activeChargersEA.addAll(gc.c_chargers)); - -int totalNbChargers = activeChargersEA.size(); -int currentNbChargers = count(activeChargersEA, x -> x.getV2GCapable()); +int totalNbChargers = gcListChargers.size(); +int currentNbChargers = count(gcListChargers, x -> x.f_getChargePoint().getV2GCapable()); int nbChargersGoal = roundToInt(goal_pct / 100.0 * totalNbChargers); while (currentNbChargers < nbChargersGoal) { - J_EAChargePoint j_ea = findFirst(zero_Interface.c_orderedV2GChargers, x -> activeChargersEA.contains(x) && !x.getV2GCapable()); - j_ea.setV2GCapability(true); + GCPublicCharger charger = findFirst(zero_Interface.c_orderedV2GChargers, x -> gcListChargers.contains(x) && !x.f_getChargePoint().getV2GCapable()); + charger.f_getChargePoint().setV2GCapability(true); currentNbChargers++; - zero_Interface.c_orderedV2GChargers.remove(j_ea); - zero_Interface.c_orderedV2GChargers.add(0, j_ea); + zero_Interface.c_orderedV2GChargers.remove(charger); + zero_Interface.c_orderedV2GChargers.add(0, charger); } while (currentNbChargers > nbChargersGoal) { - J_EAChargePoint j_ea = findFirst(zero_Interface.c_orderedV2GChargers, x -> activeChargersEA.contains(x) && x.getV2GCapable()); - j_ea.setV2GCapability(false); + GCPublicCharger charger = findFirst(zero_Interface.c_orderedV2GChargers, x -> gcListChargers.contains(x) && x.f_getChargePoint().getV2GCapable()); + charger.f_getChargePoint().setV2GCapability(false); currentNbChargers--; - zero_Interface.c_orderedV2GChargers.remove(j_ea); - zero_Interface.c_orderedV2GChargers.add(0, j_ea); + zero_Interface.c_orderedV2GChargers.remove(charger); + zero_Interface.c_orderedV2GChargers.add(0, charger); } // Update variable to change to custom scenario @@ -1663,32 +1642,34 @@ else if (vehicle instanceof J_EAHydrogenVehicle){ while ( nbOfPrivateParkedEV > desiredNbOfPrivateParkedEV){ J_EAVehicle j_ea = findFirst( gcListOrderedVehiclesPrivateParking, h -> h instanceof J_EAEV); - if (j_ea.vehicleScaling != 1) { + if (j_ea.getVehicleScaling_fr() != 1) { throw new RuntimeException("f_setVehiclesPrivateParking does not work with vehicles that have a vehicleScaling other than 1"); } J_ActivityTrackerTrips triptracker = j_ea.tripTracker; + boolean availability = j_ea.getAvailability(); double energyConsumption_kWhpkm = j_ea.getEnergyConsumption_kWhpkm() / ratioEVToDieselConsumption; j_ea.removeEnergyAsset(); gcListOrderedVehiclesPrivateParking.remove(j_ea); zero_Interface.c_orderedVehiclesPrivateParking.remove(j_ea); - J_EADieselVehicle dieselCar = new J_EADieselVehicle(j_ea.getParentAgent(), energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeStep_h, 1, OL_EnergyAssetType.DIESEL_VEHICLE, triptracker); + J_EADieselVehicle dieselCar = new J_EADieselVehicle(j_ea.getParentAgent(), energyConsumption_kWhpkm, zero_Interface.energyModel.p_timeStep_h, 1, OL_EnergyAssetType.DIESEL_VEHICLE, triptracker, availability); gcListOrderedVehiclesPrivateParking.add(dieselCar); zero_Interface.c_orderedVehiclesPrivateParking.add(dieselCar); nbOfPrivateParkedEV --; } while ( nbOfPrivateParkedEV < desiredNbOfPrivateParkedEV){ J_EAVehicle j_ea = findFirst( gcListOrderedVehiclesPrivateParking, h -> h instanceof J_EADieselVehicle); - if (j_ea.vehicleScaling != 1) { + if (j_ea.getVehicleScaling_fr() != 1) { throw new RuntimeException("f_setVehiclesPrivateParking does not work with vehicles that have a vehicleScaling other than 1"); } J_ActivityTrackerTrips triptracker = j_ea.tripTracker; + boolean availability = j_ea.getAvailability(); double energyConsumption_kWhpkm = j_ea.getEnergyConsumption_kWhpkm() * ratioEVToDieselConsumption; j_ea.removeEnergyAsset(); gcListOrderedVehiclesPrivateParking.remove(j_ea); zero_Interface.c_orderedVehiclesPrivateParking.remove(j_ea); double capacityElectricity_kW = randomTrue(0.6) ? randomTrue(0.4) ? 3.2 : 5.6 : 11.0; double storageCapacity_kWh = uniform_discr(65,90); - J_EAEV ev = new J_EAEV(j_ea.getParentAgent(), capacityElectricity_kW, storageCapacity_kWh, 1, zero_Interface.energyModel.p_timeStep_h, energyConsumption_kWhpkm, 1, OL_EnergyAssetType.ELECTRIC_VEHICLE, triptracker); + J_EAEV ev = new J_EAEV(j_ea.getParentAgent(), capacityElectricity_kW, storageCapacity_kWh, 1, zero_Interface.energyModel.p_timeStep_h, energyConsumption_kWhpkm, 1, OL_EnergyAssetType.ELECTRIC_VEHICLE, triptracker, availability); gcListOrderedVehiclesPrivateParking.add(ev); zero_Interface.c_orderedVehiclesPrivateParking.add(ev); nbOfPrivateParkedEV++; diff --git a/_alp/Classes/Class.J_ModelSave.java b/_alp/Classes/Class.J_ModelSave.java index 6cd8687..4bcb181 100644 --- a/_alp/Classes/Class.J_ModelSave.java +++ b/_alp/Classes/Class.J_ModelSave.java @@ -17,8 +17,8 @@ public class J_ModelSave implements Serializable { public ArrayList c_orderedVehiclesPrivateParking; public ArrayList c_orderedParkingSpaces; - public ArrayList c_orderedV1GChargers; - public ArrayList c_orderedV2GChargers; + public ArrayList c_orderedV1GChargers; + public ArrayList c_orderedV2GChargers; public ArrayList c_orderedPublicChargers; public LinkedHashMap> c_mappingOfVehiclesPerCharger;