diff --git a/Zero_engine.alpx b/Zero_engine.alpx index 43084e2d..53a63dad 100644 --- a/Zero_engine.alpx +++ b/Zero_engine.alpx @@ -985,6 +985,10 @@ 1742557314771 + + 1750764233265 + + 1734001947459 diff --git a/_alp/Agents/EnergyModel/EmbeddedObjects.xml b/_alp/Agents/EnergyModel/EmbeddedObjects.xml index b7f29616..5cc307f4 100644 --- a/_alp/Agents/EnergyModel/EmbeddedObjects.xml +++ b/_alp/Agents/EnergyModel/EmbeddedObjects.xml @@ -147,9 +147,6 @@ - - - @@ -1033,9 +1030,6 @@ - - - @@ -1230,9 +1224,6 @@ - - - @@ -1391,9 +1382,6 @@ - - - @@ -1552,9 +1540,6 @@ - - - @@ -1749,9 +1734,6 @@ - - - @@ -1901,9 +1883,6 @@ - - - @@ -2056,9 +2035,6 @@ - - - @@ -2529,9 +2505,6 @@ - - - @@ -2721,9 +2694,6 @@ - - - diff --git a/_alp/Agents/GCDistrictHeating/AOC.GCDistrictHeating.xml b/_alp/Agents/GCDistrictHeating/AOC.GCDistrictHeating.xml index af287861..3c49fd91 100644 --- a/_alp/Agents/GCDistrictHeating/AOC.GCDistrictHeating.xml +++ b/_alp/Agents/GCDistrictHeating/AOC.GCDistrictHeating.xml @@ -35,9 +35,6 @@ - - - diff --git a/_alp/Agents/GCEnergyConversion/AOC.GCEnergyConversion.xml b/_alp/Agents/GCEnergyConversion/AOC.GCEnergyConversion.xml index 9d021323..d8ee7f63 100644 --- a/_alp/Agents/GCEnergyConversion/AOC.GCEnergyConversion.xml +++ b/_alp/Agents/GCEnergyConversion/AOC.GCEnergyConversion.xml @@ -39,9 +39,6 @@ - - - diff --git a/_alp/Agents/GCEnergyProduction/AOC.GCEnergyProduction.xml b/_alp/Agents/GCEnergyProduction/AOC.GCEnergyProduction.xml index 72712445..6ecd1d50 100644 --- a/_alp/Agents/GCEnergyProduction/AOC.GCEnergyProduction.xml +++ b/_alp/Agents/GCEnergyProduction/AOC.GCEnergyProduction.xml @@ -35,9 +35,6 @@ - - - diff --git a/_alp/Agents/GCGridBattery/AOC.GCGridBattery.xml b/_alp/Agents/GCGridBattery/AOC.GCGridBattery.xml index f816ed62..c1057bf9 100644 --- a/_alp/Agents/GCGridBattery/AOC.GCGridBattery.xml +++ b/_alp/Agents/GCGridBattery/AOC.GCGridBattery.xml @@ -35,9 +35,6 @@ - - - diff --git a/_alp/Agents/GCHouse/AOC.GCHouse.xml b/_alp/Agents/GCHouse/AOC.GCHouse.xml index cd91971e..166ed7ec 100644 --- a/_alp/Agents/GCHouse/AOC.GCHouse.xml +++ b/_alp/Agents/GCHouse/AOC.GCHouse.xml @@ -35,9 +35,6 @@ - - - diff --git a/_alp/Agents/GCIndustry/AOC.GCIndustry.xml b/_alp/Agents/GCIndustry/AOC.GCIndustry.xml index d321ef73..b1690abc 100644 --- a/_alp/Agents/GCIndustry/AOC.GCIndustry.xml +++ b/_alp/Agents/GCIndustry/AOC.GCIndustry.xml @@ -35,9 +35,6 @@ - - - diff --git a/_alp/Agents/GCNeighborhood/AOC.GCNeighborhood.xml b/_alp/Agents/GCNeighborhood/AOC.GCNeighborhood.xml index 66fb1ee7..f883d0fa 100644 --- a/_alp/Agents/GCNeighborhood/AOC.GCNeighborhood.xml +++ b/_alp/Agents/GCNeighborhood/AOC.GCNeighborhood.xml @@ -38,9 +38,6 @@ - - - diff --git a/_alp/Agents/GCPublicCharger/AOC.GCPublicCharger.xml b/_alp/Agents/GCPublicCharger/AOC.GCPublicCharger.xml index 914b70d7..fc369d4c 100644 --- a/_alp/Agents/GCPublicCharger/AOC.GCPublicCharger.xml +++ b/_alp/Agents/GCPublicCharger/AOC.GCPublicCharger.xml @@ -38,9 +38,6 @@ - - - diff --git a/_alp/Agents/GCUtility/AOC.GCUtility.xml b/_alp/Agents/GCUtility/AOC.GCUtility.xml index b4dfd071..dd79c930 100644 --- a/_alp/Agents/GCUtility/AOC.GCUtility.xml +++ b/_alp/Agents/GCUtility/AOC.GCUtility.xml @@ -38,9 +38,6 @@ - - - diff --git a/_alp/Agents/GCUtility/Code/Functions.java b/_alp/Agents/GCUtility/Code/Functions.java index 2d70c49e..a5adc7b0 100644 --- a/_alp/Agents/GCUtility/Code/Functions.java +++ b/_alp/Agents/GCUtility/Code/Functions.java @@ -23,6 +23,9 @@ case NODAL_PRICING: f_batteryManagementNodalPricing(p_batteryAsset.getCurrentStateOfCharge()); break; + case PEAK_SHAVING_SIMPLE: + f_batteryManagementPeakShaving(); + break; } p_batteryAsset.f_updateAllFlows(p_batteryAsset.v_powerFraction_fr); diff --git a/_alp/Agents/GridConnection/AOC.GridConnection.xml b/_alp/Agents/GridConnection/AOC.GridConnection.xml index 7bb2fb98..d12ab29e 100644 --- a/_alp/Agents/GridConnection/AOC.GridConnection.xml +++ b/_alp/Agents/GridConnection/AOC.GridConnection.xml @@ -120,7 +120,6 @@ v_liveData.assetsMetaData = v_liveAssetsMetaData; 1658499438202 1658499438198 - @@ -147,79 +146,6 @@ v_liveData.assetsMetaData = v_liveAssetsMetaData; NONE END - - 1658499472169 - - true - 40 - -90 - - 15 - 0 - - false - true - true - false - COLLECTION_OF_LINKS - false - Object - SOLID - 1 - -16777216 - UNDER_AGENTS - NONE - END - - - 1658499483833 - - true - 40 - -170 - - 15 - 0 - - false - true - true - false - COLLECTION_OF_LINKS - false - Object - SOLID - 1 - -16777216 - UNDER_AGENTS - NONE - END - - - 1704894941623 - - true - 40 - -20 - - 15 - 0 - - false - true - true - false - COLLECTION_OF_LINKS - 1676382560905 - false - Object - SOLID - 1 - -16777216 - UNDER_AGENTS - NONE - END - diff --git a/_alp/Agents/GridConnection/Code/Events.java b/_alp/Agents/GridConnection/Code/Events.java deleted file mode 100644 index 39ec2610..00000000 --- a/_alp/Agents/GridConnection/Code/Events.java +++ /dev/null @@ -1,6 +0,0 @@ -void e_initializeLowPassEprice() -{/*ALCODESTART::1675011317461*/ -v_electricityPriceLowPassed_eurpkWh = v_currentElectricityPriceConsumption_eurpkWh; -v_currentLoadLowPassed_kW = v_currentPowerElectricity_kW; -/*ALCODEEND*/} - diff --git a/_alp/Agents/GridConnection/Code/Events.xml b/_alp/Agents/GridConnection/Code/Events.xml deleted file mode 100644 index dc960048..00000000 --- a/_alp/Agents/GridConnection/Code/Events.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - 1675011317461 - - - true - 1120 - -80 - - 10 - 0 - - false - false - true - - - - HOUR - - - - PER_HOUR - - true - 1675065600000 - - - MINUTE - - - - HOUR - - false - - - - diff --git a/_alp/Agents/GridConnection/Code/Functions.java b/_alp/Agents/GridConnection/Code/Functions.java index 035a1156..9000e5b1 100644 --- a/_alp/Agents/GridConnection/Code/Functions.java +++ b/_alp/Agents/GridConnection/Code/Functions.java @@ -33,94 +33,6 @@ }*/ /*ALCODEEND*/} -double f_connectToChild(J_EA ConnectingEnergyAsset) -{/*ALCODESTART::1658752229618*/ -//assetLinks.connectTo(ConnectingChildNode); -J_EA j_ea = ConnectingEnergyAsset; - -//dont add asset to list if it is not a tangible asset (i.e. a heating model for buildings) -if( ! (j_ea instanceof J_EAStorageHeat)) { - c_energyAssets.add(j_ea); -} -if (j_ea instanceof J_EAConsumption ) { - if (j_ea instanceof J_EADieselVehicle) { - //c_vehicleAssets.add( EA ); - //c_dieselVehicles.add( EA ); - //c_vehicleAssets.get( v_vehicleIndex ).v_powerFraction_fr = 1; - /*MobilityTracker m = main.add_mobilityTrackers(); - c_mobilityTrackers.add( m ); - m.p_vehicleIndex = v_vehicleIndex; - m.p_gridConnection = this; - m.p_energyAsset = c_vehicleAssets.get( v_vehicleIndex ); - m.p_vehicleInstance = (J_EADieselVehicle)m.p_energyAsset.j_ea; - m.p_vehicleInstance = (J_EADieselVehicle)m.p_vehicleInstance; - m.p_mobilityPatternType = OL_MobilityPatternType.TRUCK; - ((J_EADieselVehicle)m.p_vehicleInstance).setMobilityTracker( m ); - m.f_getData();*/ - //v_vehicleIndex ++; - } - //c_consumptionAssets.add(EA); -} -else if (j_ea instanceof J_EAProduction ) { - c_productionAssets.add((J_EAProduction)j_ea); -} -else if (j_ea instanceof J_EAStorage ) { - if ( j_ea instanceof J_EAStorageHeat) { - if ( ((J_EAStorageHeat)j_ea).heatStorageType == OL_EAStorageTypes.HEATMODEL_BUILDING ) { - //p_BuildingThermalAsset = EA; // Obsolete - } - else if ( ((J_EAStorageHeat)j_ea).heatStorageType == OL_EAStorageTypes.HEATBUFFER ) { - //c_storageAssets.add(EA); - //p_heatBuffer = EA; - } - } - else if (j_ea instanceof J_EAStorageElectric) { - if(j_ea instanceof J_EAEV && ((J_EAEV)j_ea).getStorageCapacity_kWh() !=0) { - //c_storageAssets.add(EA); - //c_vehicleAssets.add( EA ); - //EA.v_powerFraction_fr = 1; //Waarom staat dit op 1? 29-01-23 PH - /*MobilityTracker m = main.add_mobilityTrackers(); - c_mobilityTrackers.add( m ); - m.p_vehicleIndex = v_vehicleIndex; - m.p_gridConnection = this; - m.p_energyAsset = EA; - m.p_vehicleInstance = (J_EAEV)m.p_energyAsset.j_ea; - m.p_mobilityPatternType = OL_MobilityPatternType.TRUCK; - ((J_EAEV)m.p_vehicleInstance).setMobilityTracker( m ); - m.f_getData();*/ - //v_vehicleIndex ++; - } - else if (((J_EAStorageElectric)j_ea).getStorageCapacity_kWh() != 0) { - //c_storageAssets.add(EA); - //p_batteryAsset = EA; - } - else{ - traceln(getName() + "storage asset create that cannot be identified (i.e. its not an EV and not an heatstorage"); - } - } -} -else if (j_ea instanceof J_EAConversion) { - c_conversionAssets.add((J_EAConversion)j_ea); - if (j_ea instanceof J_EAConversionGasBurner|| j_ea instanceof J_EAConversionHeatPump || j_ea instanceof J_EAConversionHeatDeliverySet ) { - if (p_primaryHeatingAsset == null) { - p_primaryHeatingAsset = (J_EAConversion)j_ea; - } else if (p_secondaryHeatingAsset == null) { - p_secondaryHeatingAsset = (J_EAConversion)j_ea; - } else { - traceln("House " + p_gridConnectionID + " already has two heating systems!"); - } - //traceln("heatingAsset class " + p_spaceHeatingAsset.getClass().toString()); - } - else if (j_ea instanceof J_EAConversionCurtailer || j_ea instanceof J_EAConversionCurtailerHeat) { - p_curtailer = (J_EAConversionCurtailer)j_ea; - } -} -else { - traceln("f_connectToChild in GC: Exception! EnergyAsset " + ConnectingEnergyAsset + " is of unknown type: " + j_ea.energyAssetType); - traceln( "TEST"); -} -/*ALCODEEND*/} - double f_connectionMetering() {/*ALCODESTART::1660212665961*/ if ( abs(fm_currentConsumptionFlows_kW.get(OL_EnergyCarriers.HEAT) - fm_currentProductionFlows_kW.get(OL_EnergyCarriers.HEAT)) > 0.1 && p_parentNodeHeat == null ) { @@ -143,216 +55,6 @@ else if (j_ea instanceof J_EAConversionCurtailer || j_ea instanceof J_EAConversi //Must be overwritten in child agent /*ALCODEEND*/} -double f_instantiateEnergyAssets() -{/*ALCODESTART::1668181559833*/ -//traceln("asset " + p_energyAssetList); -if( p_energyAssetList != null) { - for( JsonNode l : p_energyAssetList ) { - OL_EACategories assetCategory = OL_EACategories.valueOf(l.required( "category" ).textValue()); - OL_EnergyAssetType assetType = OL_EnergyAssetType.valueOf(l.required( "type" ).textValue()) ; - String assetName = l.required( "name" ).textValue(); - switch( assetCategory ) { - case CONSUMPTION: - if ( p_gridConnectionCategory == OL_GridConnectionCategory.HOUSE) { - if( assetType.equals("ELECTRICITY_DEMAND") && assetName.contains("TEMPLATE House other electricity demand") ) { - assetName = "House_other_electricity"; - } else if (assetType.equals("HOT_WATER_CONSUMPTION")) { - assetName = "House_hot_water"; - } - } - - double yearlyDemandElectricity_kWh = l.path( "yearlyDemandElectricity_kWh").doubleValue(); - double yearlyDemandHeat_kWh = l.path( "yearlyDemandHeat_kWh").doubleValue(); - double yearlyDemandHydrogen_kWh = l.path( "yearlyDemandHydrogen_kWh").doubleValue(); - double yearlyDemandMethane_kWh = l.path( "yearlyDemandMethane_kWh").doubleValue(); - double yearlyDemandDiesel_kWh = l.path( "yearlyDemandDiesel_kWh").doubleValue(); - double energyConsumption_kWhpkm = l.path( "energyConsumption_kWhpkm" ).doubleValue(); - double vehicleScaling = l.path("vehicleScaling").asDouble(1.0); - - if (assetType == OL_EnergyAssetType.DIESEL_VEHICLE) { - //traceln("Adding diesel vehicle asset without EnergyAsset agent!"); - J_EADieselVehicle dieselVehicle = new J_EADieselVehicle(this, energyConsumption_kWhpkm, energyModel.p_timeStep_h, vehicleScaling); - f_connectToJ_EA(dieselVehicle); - } else { - J_EAConsumption consumptionAsset = new J_EAConsumption(this,assetType,assetName,yearlyDemandElectricity_kWh,yearlyDemandHeat_kWh,yearlyDemandHydrogen_kWh,yearlyDemandMethane_kWh,yearlyDemandDiesel_kWh,energyModel.p_timeStep_h); - f_connectToJ_EA(consumptionAsset); - } - break; - - case PRODUCTION: - double capacityElectricity_kW = l.path( "capacityElectricity_kW").doubleValue(); - double capacityHeat_kW = l.path( "capacityHeat_kW").doubleValue(); - double yearlyProductionHydrogen_kWh = l.path( "yearlyProductionHydrogen_kWh").doubleValue(); - double yearlyProductionMethane_kWh = l.path( "yearlyProductionMethane_kWh").doubleValue(); - double outputTemperature_degC = l.path( "deliveryTemp_degC").doubleValue(); - - J_EAProduction productionAsset = new J_EAProduction ( this, assetType, assetName, capacityElectricity_kW, capacityHeat_kW, yearlyProductionMethane_kWh, yearlyProductionHydrogen_kWh, energyModel.p_timeStep_h, outputTemperature_degC ); - f_connectToJ_EA(productionAsset); - - // Determine residual heat delivery temperature from coldest connected asset - /*if(this instanceof GCResidualHeat) { - traceln("Residual heat delivery temperature = "+outputTemperature_degC); - ((GCResidualHeat)this).p_deliveryTemp_degC = outputTemperature_degC < ((GCResidualHeat)this).p_deliveryTemp_degC? outputTemperature_degC : ((GCResidualHeat)this).p_deliveryTemp_degC; - }*/ - break; - - case CONVERSION: - if ( assetType == OL_EnergyAssetType.GAS_PIT || assetType == OL_EnergyAssetType.GAS_BURNER || assetType == OL_EnergyAssetType.METHANE_FURNACE ){ - // traceln("Adding gaspit!"); - double capacityHeat_kW1 = l.required( "capacityHeat_kW").doubleValue(); - double eta_r = l.required( "eta_r").doubleValue(); - double deliveryTemp_degC1 = 0.0; - J_EAConversionGasBurner gasburner = new J_EAConversionGasBurner(this, assetType, capacityHeat_kW1, eta_r, energyModel.p_timeStep_h, deliveryTemp_degC1); - f_connectToJ_EA(gasburner); - } else if ( assetType == OL_EnergyAssetType.ELECTRIC_HOB){ - //traceln("Adding electric HOB!"); - double capacityHeat_kW1 = l.required( "capacityHeat_kW").doubleValue(); - double eta_r = l.required( "eta_r").doubleValue(); - double deliveryTemp_degC1 = 0.0; - J_EAElectricHob eHOB = new J_EAElectricHob(this, capacityHeat_kW1, eta_r, energyModel.p_timeStep_h, deliveryTemp_degC1); - f_connectToJ_EA(eHOB); - } else if ( assetType == OL_EnergyAssetType.HEAT_PUMP_AIR || assetType == OL_EnergyAssetType.HEAT_PUMP_GROUND || assetType == OL_EnergyAssetType.HEAT_PUMP_WATER){ - double capacityElectric_kW = l.path( "capacityElectricity_kW").doubleValue(); - double eta_r = l.required( "eta_r").doubleValue(); - double deliveryTemp_degC = l.path( "deliveryTemp_degC" ).doubleValue(); - String ambientTempType = l.path( "ambientTempType" ).asText(); - double belowZeroHeatpumpEtaReductionFactor = l.path( "etaReduction_r" ).asDouble(1.0); - J_EAConversionHeatPump heatpump = new J_EAConversionHeatPump( this, energyModel.p_timeStep_h, capacityElectric_kW, eta_r, main.v_currentAmbientTemperature_degC, deliveryTemp_degC, ambientTempType, 0, belowZeroHeatpumpEtaReductionFactor ); - main.c_ambientAirDependentAssets.add(heatpump); - f_connectToJ_EA(heatpump); - } else if ( assetType == OL_EnergyAssetType.ELECTRIC_HEATER){ - double capacityElectric_kW = l.path( "capacityElectricity_kW").doubleValue(); - double eta_r = l.required( "eta_r").doubleValue(); - double deliveryTemp_degC = l.path( "deliveryTemp_degC" ).doubleValue(); - J_EAConversionElectricHeater electricHeater = new J_EAConversionElectricHeater( this, capacityElectric_kW, eta_r, energyModel.p_timeStep_h, deliveryTemp_degC); - f_connectToJ_EA(electricHeater); - } else if ( assetType == OL_EnergyAssetType.HEAT_DELIVERY_SET){ - double capacityHeat_kW1 = l.required( "capacityHeat_kW").doubleValue(); - double eta_r = l.required( "eta_r").doubleValue(); - double deliveryTemp_degC = l.path( "deliveryTemp_degC" ).doubleValue(); - J_EAConversionHeatDeliverySet deliverySet = new J_EAConversionHeatDeliverySet( this, capacityHeat_kW1, eta_r, deliveryTemp_degC, energyModel.p_timeStep_h ); - f_connectToJ_EA(deliverySet); - } else if ( assetType == OL_EnergyAssetType.HYDROGEN_FURNACE){ - double capacityHeat_kW1 = l.required( "capacityHeat_kW").doubleValue(); - double eta_r = l.required( "eta_r").doubleValue(); - double deliveryTemp_degC = 0.0; - J_EAConversionHydrogenBurner hydrogenBurner = new J_EAConversionHydrogenBurner( this, capacityHeat_kW1, eta_r, energyModel.p_timeStep_h, deliveryTemp_degC ); - f_connectToJ_EA(hydrogenBurner); - } else if ( assetType == OL_EnergyAssetType.ELECTROLYSER){ - double capacityElectric_kW = l.path( "capacityElectricity_kW").doubleValue(); - double eta_r = l.required( "eta_r").doubleValue(); - J_EAConversionElektrolyser electrolyser = new J_EAConversionElektrolyser( this, capacityElectric_kW, eta_r, energyModel.p_timeStep_h ); - f_connectToJ_EA(electrolyser); - } else if ( assetType == OL_EnergyAssetType.CURTAILER){ - double capacityElectric_kW = l.path( "capacityElectricity_kW").doubleValue(); - double eta_r = l.required( "eta_r").doubleValue(); - J_EAConversionCurtailer curtailer = new J_EAConversionCurtailer( this, capacityElectric_kW, eta_r, energyModel.p_timeStep_h ); - f_connectToJ_EA(curtailer); - } else if ( assetType == OL_EnergyAssetType.CURTAILER_HEAT){ - double capacityHeat_kW1 = l.required( "capacityHeat_kW").doubleValue(); - double eta_r = l.required( "eta_r").doubleValue(); - J_EAConversionCurtailerHeat curtailerHeat = new J_EAConversionCurtailerHeat( this, capacityHeat_kW1, eta_r, energyModel.p_timeStep_h ); - f_connectToJ_EA(curtailerHeat); - } else if ( assetType == OL_EnergyAssetType.METHANE_CHP){ - double capacityHeat_kW1 = l.required( "capacityHeat_kW").doubleValue(); - double capacityElectric_kW = l.path( "capacityElectricity_kW").doubleValue(); - double eta_r = l.required( "eta_r").doubleValue(); - double deliveryTemp_degC = 0.0; - J_EAConversionGasCHP GasCHP = new J_EAConversionGasCHP(this, capacityElectric_kW, capacityHeat_kW1, eta_r, energyModel.p_timeStep_h, deliveryTemp_degC); - f_connectToJ_EA(GasCHP); - } else if ( assetType == OL_EnergyAssetType.BIOGAS_METHANE_CONVERTER){ - double capacityMethane_kW = l.required( "capacityMethane_kW").doubleValue(); - double eta_r = l.required( "eta_r").doubleValue(); - J_EAConversionBiogasMethane biogasMethaneConverter = new J_EAConversionBiogasMethane(this, capacityMethane_kW, eta_r, energyModel.p_timeStep_h); - f_connectToJ_EA(biogasMethaneConverter); - } else { - traceln("Unknown conversion energy asset! Skipping instantiation!"); - - } - break; - case STORAGE: - if ( assetType == OL_EnergyAssetType.ELECTRIC_VEHICLE){ - double capacityElectric_kW1 = l.path( "capacityElectricity_kW").doubleValue(); - double storageCapacity_kWh = l.path( "storageCapacity_kWh" ).doubleValue(); - double initialStateOfCharge_r = l.path( "stateOfCharge_r" ).doubleValue(); - double energyConsumption_kWhpkm2 = l.path( "energyConsumption_kWhpkm" ).doubleValue(); - double vehicleScalingElectric = l.path("vehicleScaling").asDouble(1.0); - //storageAsset.j_ea = new J_EAEV(storageAsset, capacityElectric_kW1, storageCapacity_kWh, initialStateOfCharge_r, energyModel.p_timeStep_h, energyConsumption_kWhpkm2, vehicleScalingElectric ); - - J_EAEV ev= new J_EAEV(this, capacityElectric_kW1, storageCapacity_kWh, initialStateOfCharge_r, energyModel.p_timeStep_h, energyConsumption_kWhpkm2, vehicleScalingElectric ); - f_connectToJ_EA(ev); - - } else if ( assetType == OL_EnergyAssetType.BUILDINGTHERMALS) { - double capacityHeat_kW3 = l.path( "capacityHeat_kW").doubleValue(); - - double lossFactor_WpK2 = l.path( "lossFactor_WpK" ).doubleValue() * uniform(0.8, 1.2); - double heatCapacity_JpK2 = l.path( "heatCapacity_JpK" ).doubleValue() * uniform(0.7, 1.3); - - double minTemperature_degC2 = l.path( "minTemp_degC" ).asDouble(1.0); - double maxTemperature_degC2 = l.path( "maxTemp_degC" ).asDouble(90.0); - double initialTemperature_degC2 = l.path( "initialTemperature_degC" ).doubleValue(); - String ambientTempType3 = l.path( "ambientTempType" ).asText("AIR"); //ALWAYS AIR! - double setTemperature_degC2 = 10.0; // this value does nothing for a heatmodel. But it is required to initialize the J_instance - double solarAbsorptionFactor_m2 = l.path("solarAbsorptionFactor_m2").asDouble(1.0); - - J_EABuilding buildingThermals = new J_EABuilding(this, OL_EAStorageTypes.HEATMODEL_BUILDING, capacityHeat_kW3, lossFactor_WpK2, energyModel.p_timeStep_h, initialTemperature_degC2, minTemperature_degC2, maxTemperature_degC2, setTemperature_degC2, heatCapacity_JpK2, ambientTempType3, solarAbsorptionFactor_m2); - f_connectToJ_EA(buildingThermals); - - } else if (assetType == OL_EnergyAssetType.STORAGE_ELECTRIC) { - double capacityElectric_kW1 = l.path( "capacityElectricity_kW").doubleValue(); - double storageCapacity_kWh = l.path( "storageCapacity_kWh" ).doubleValue(); - double initialStateOfCharge_r = l.path( "stateOfCharge_r" ).doubleValue(); - J_EAStorageElectric storageAsset = new J_EAStorageElectric(this, capacityElectric_kW1, storageCapacity_kWh, initialStateOfCharge_r, energyModel.p_timeStep_h); - f_connectToJ_EA(storageAsset); - p_batteryAsset=storageAsset; - c_storageAssets.add(storageAsset); - v_batterySOC_fr = storageAsset.getCurrentStateOfCharge(); - - } else if (assetType == OL_EnergyAssetType.STORAGE_GAS) { - double capacityGas_kW = l.path( "capacityGas_kW").doubleValue(); - double storageCapacity_kWh = l.path( "storageCapacity_kWh" ).doubleValue(); - double initialStateOfCharge_r = l.path( "stateOfCharge_r" ).doubleValue(); - J_EAStorageGas storageAsset = new J_EAStorageGas(this, capacityGas_kW, storageCapacity_kWh, initialStateOfCharge_r, energyModel.p_timeStep_h); - f_connectToJ_EA(storageAsset); - c_storageAssets.add(storageAsset); - p_gasBuffer = storageAsset; - //traceln("gasBuffer gasCapacity_kW: " + p_gasBuffer.j_ea.getGasCapacity_kW() + " kW"); - - } else if( assetType == OL_EnergyAssetType.STORAGE_HEAT) { - - double capacityHeat_kW2 = l.path( "capacityHeat_kW").doubleValue(); - double lossFactor_WpK = l.path( "lossFactor_WpK" ).doubleValue() * uniform(0.7, 1.3); - double heatCapacity_JpK = l.path( "heatCapacity_JpK" ).doubleValue(); - double minTemperature_degC = l.path( "minTemp_degC" ).asDouble(44.0); // provide default values - double maxTemperature_degC = l.path( "maxTemp_degC" ).asDouble(99.0); - double setTemperature_degC = l.path( "setTemp_degC" ).asDouble(66.0); - double initialTemperature_degC = l.path( "initialTemperature_degC" ).doubleValue(); - String ambientTempType2 = l.path( "ambientTempType" ).asText(); - - if (this instanceof GCHouse ) { - heatCapacity_JpK = heatCapacity_JpK * uniform(0.7, 1.3); - initialTemperature_degC = initialTemperature_degC * uniform(0.7, 1.3); - } - - //traceln("gridconnection heatstorage asset initialisation check! minTemp = "+minTemperature_degC+", maxTemperature_degC = "+maxTemperature_degC+", setTemp_degC = "+ setTemperature_degC+", initialTemperature_degC = "+initialTemperature_degC); - J_EAStorageHeat storageAsset = new J_EAStorageHeat(this, OL_EAStorageTypes.HEATBUFFER, capacityHeat_kW2, lossFactor_WpK, energyModel.p_timeStep_h, initialTemperature_degC, minTemperature_degC, maxTemperature_degC, setTemperature_degC, heatCapacity_JpK, ambientTempType2); - - f_connectToJ_EA(storageAsset); - c_storageAssets.add(storageAsset); - } else { - traceln("F_instantiateEnergyAssets: ERROR, storage asset type not available"); - - } - break; - default: - traceln("not a valid energy asset category." + assetCategory); - break; - } - } -//traceln("GridConnection "+this.p_gridConnectionID+" has finished initializing its energyAssets!"); -} -/*ALCODEEND*/} - double f_calculateEnergyBalance() {/*ALCODESTART::1668528273163*/ v_previousPowerElectricity_kW = fm_currentBalanceFlows_kW.get(OL_EnergyCarriers.ELECTRICITY); @@ -831,22 +533,6 @@ else if (p_primaryHeatingAsset== null && p_secondaryHeatingAsset != null && v_ha } /*ALCODEEND*/} -double f_setAllowedCapacity() -{/*ALCODESTART::1669193537955*/ -v_allowedCapacity_kW = p_connectionCapacity_kW; -//if(p_nfatoLvl_kW == 0 && p_nfatoStart_h == 0 && p_nfatoEnd_h == 0){ -if(!v_enable_nfATO_b){ - e_startNonFirmATO.reset(); - e_endNonFirmATO.reset(); -} -else { - e_startNonFirmATO.restartTo(p_nfatoStart_h, HOUR); - e_endNonFirmATO.restartTo(p_nfatoEnd_h, HOUR); - if(p_nfatoLvl_kW == 0.0) { p_nfatoLvl_kW = p_connectionCapacity_kW; } -} -//} -/*ALCODEEND*/} - double f_manageCharging() {/*ALCODESTART::1671095995172*/ double availableCapacityFromBatteries = p_batteryAsset == null ? 0 : p_batteryAsset.getCapacityAvailable_kW(); @@ -1618,118 +1304,6 @@ else if (j_ea.energyAssetType == OL_EnergyAssetType.WINDMILL) { /*ALCODEEND*/} -double f_initializeAccumulators() -{/*ALCODESTART::1716282675260*/ -//========== TOTAL ACCUMULATORS ==========// -am_totalBalanceAccumulators_kW.createEmptyAccumulators( v_activeEnergyCarriers, true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h ); -am_totalBalanceAccumulators_kW.put( OL_EnergyCarriers.ELECTRICITY, new ZeroAccumulator(true, energyModel.p_timeStep_h, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h) ); -am_dailyAverageConsumptionAccumulators_kW.createEmptyAccumulators(v_activeConsumptionEnergyCarriers, true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -am_dailyAverageProductionAccumulators_kW.createEmptyAccumulators(v_activeProductionEnergyCarriers, true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); - -acc_dailyAverageEnergyProduction_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -acc_dailyAverageEnergyConsumption_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); - -acc_totalEnergyCurtailed_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -acc_totalPrimaryEnergyProductionHeatpumps_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); - -acc_dailyAverageBaseloadElectricityConsumption_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -acc_dailyAverageHeatPumpElectricityConsumption_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -acc_dailyAverageElectricVehicleConsumption_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -acc_dailyAverageBatteriesConsumption_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -acc_dailyAverageElectricCookingConsumption_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -acc_dailyAverageElectrolyserElectricityConsumption_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -acc_dailyAverageDistrictHeatingConsumption_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); - -acc_dailyAveragePVProduction_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -acc_dailyAverageWindProduction_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -acc_dailyAverageV2GProduction_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -acc_dailyAverageBatteriesProduction_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -acc_dailyAverageCHPElectricityProduction_kW = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); - -//acc_dailyAverageBatteriesStoredEnergy_MWh = new ZeroAccumulator(true, 24.0, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); - -//========== SUMMER WEEK ACCUMULATORS ==========// -am_summerWeekBalanceAccumulators_kW.createEmptyAccumulators(v_activeEnergyCarriers, true, energyModel.p_timeStep_h, 168.0); -am_summerWeekConsumptionAccumulators_kW.createEmptyAccumulators(v_activeEnergyCarriers, true, energyModel.p_timeStep_h, 168.0); -am_summerWeekProductionAccumulators_kW.createEmptyAccumulators(v_activeEnergyCarriers, true, energyModel.p_timeStep_h, 168.0); - -acc_summerWeekEnergyProduction_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_summerWeekEnergyConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); - -acc_summerWeekEnergyCurtailed_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_summerWeekPrimaryEnergyProductionHeatpumps_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); - -acc_summerWeekFeedinCapacity_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_summerWeekDeliveryCapacity_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); - -acc_summerWeekBaseloadElectricityConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_summerWeekHeatPumpElectricityConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_summerWeekElectricVehicleConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_summerWeekBatteriesConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_summerWeekElectricCookingConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_summerWeekElectrolyserElectricityConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_summerWeekDistrictHeatingConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); - -acc_summerWeekPVProduction_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_summerWeekWindProduction_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_summerWeekV2GProduction_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_summerWeekBatteriesProduction_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_summerWeekCHPElectricityProduction_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); - -//acc_summerWeekBatteriesStoredEnergy_MWh = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); - -//========== WINTER WEEK ACCUMULATORS ==========// -am_winterWeekBalanceAccumulators_kW.createEmptyAccumulators(v_activeEnergyCarriers, true, energyModel.p_timeStep_h, 168.0); -am_winterWeekConsumptionAccumulators_kW.createEmptyAccumulators(v_activeEnergyCarriers, true, energyModel.p_timeStep_h, 168.0); -am_winterWeekProductionAccumulators_kW.createEmptyAccumulators(v_activeEnergyCarriers, true, energyModel.p_timeStep_h, 168.0); - -acc_winterWeekEnergyProduction_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_winterWeekEnergyConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); - -acc_winterWeekEnergyCurtailed_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_winterWeekPrimaryEnergyProductionHeatpumps_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); - -acc_winterWeekFeedinCapacity_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_winterWeekDeliveryCapacity_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); - -acc_winterWeekBaseloadElectricityConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_winterWeekHeatPumpElectricityConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_winterWeekElectricVehicleConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_winterWeekBatteriesConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_winterWeekElectricCookingConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_winterWeekElectrolyserElectricityConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_winterWeekDistrictHeatingConsumption_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); - -acc_winterWeekPVProduction_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_winterWeekWindProduction_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_winterWeekV2GProduction_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_winterWeekBatteriesProduction_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); -acc_winterWeekCHPElectricityProduction_kW = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); - -//acc_winterWeekBatteriesStoredEnergy_MWh = new ZeroAccumulator(true, energyModel.p_timeStep_h, 168.0); - -//========== DAYTIME ACCUMULATORS ==========// -am_daytimeImports_kW.createEmptyAccumulators( v_activeEnergyCarriers, false, energyModel.p_timeStep_h, 0.5 * (energyModel.p_runEndTime_h - energyModel.p_runStartTime_h)); -am_daytimeExports_kW.createEmptyAccumulators( v_activeEnergyCarriers, false, energyModel.p_timeStep_h, 0.5 * (energyModel.p_runEndTime_h - energyModel.p_runStartTime_h)); - -acc_daytimeEnergyProduction_kW = new ZeroAccumulator(false, energyModel.p_timeStep_h, 0.5 * (energyModel.p_runEndTime_h - energyModel.p_runStartTime_h)); -acc_daytimeEnergyConsumption_kW = new ZeroAccumulator(false, energyModel.p_timeStep_h,0.5 * (energyModel.p_runEndTime_h - energyModel.p_runStartTime_h)); -//acc_daytimeEnergyCurtailed_kW = new ZeroAccumulator(false, energyModel.p_timeStep_h, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -acc_daytimeElectricityProduction_kW = new ZeroAccumulator(false, energyModel.p_timeStep_h, 0.5 * (energyModel.p_runEndTime_h - energyModel.p_runStartTime_h)); -acc_daytimeElectricityConsumption_kW = new ZeroAccumulator(false, energyModel.p_timeStep_h, 0.5 * (energyModel.p_runEndTime_h - energyModel.p_runStartTime_h)); - -//========== WEEKEND ACCUMULATORS ==========// -am_weekendImports_kW.createEmptyAccumulators( v_activeEnergyCarriers, false, energyModel.p_timeStep_h, 2 / 7 * (energyModel.p_runEndTime_h - energyModel.p_runStartTime_h) + 48); -am_weekendExports_kW.createEmptyAccumulators( v_activeEnergyCarriers, false, energyModel.p_timeStep_h, 2 / 7 * (energyModel.p_runEndTime_h - energyModel.p_runStartTime_h) + 48); - -acc_weekendEnergyProduction_kW = new ZeroAccumulator(false, energyModel.p_timeStep_h, 2 / 7 * (energyModel.p_runEndTime_h - energyModel.p_runStartTime_h) + 48); -acc_weekendEnergyConsumption_kW = new ZeroAccumulator(false, energyModel.p_timeStep_h,2 / 7 * (energyModel.p_runEndTime_h - energyModel.p_runStartTime_h) + 48); -//acc_weekendEnergyCurtailed_kW = new ZeroAccumulator(false, energyModel.p_timeStep_h, energyModel.p_runEndTime_h - energyModel.p_runStartTime_h); -acc_weekendElectricityProduction_kW = new ZeroAccumulator(false, energyModel.p_timeStep_h, 2 / 7 * (energyModel.p_runEndTime_h - energyModel.p_runStartTime_h) + 48); -acc_weekendElectricityConsumption_kW = new ZeroAccumulator(false, energyModel.p_timeStep_h, 2 / 7 * (energyModel.p_runEndTime_h - energyModel.p_runStartTime_h) + 48); - -/*ALCODEEND*/} - double f_resetSpecificGCStates() {/*ALCODESTART::1717060111619*/ @@ -2460,3 +2034,81 @@ else if (flowsMap.get(EC) > 0){ } /*ALCODEEND*/} +double f_batteryManagementPeakShaving() +{/*ALCODESTART::1750763679197*/ +if (p_batteryAsset.getStorageCapacity_kWh() != 0){ + int index = roundToInt((energyModel.t_h % 24)/energyModel.p_timeStep_h); + if(index == 0){ + f_peakShavingForecast_simple(); + } + p_batteryAsset.v_powerFraction_fr = max(-1,min(1, v_batteryChargingForecast_kW[index] / p_batteryAsset.getCapacityElectric_kW())); +} +/*ALCODEEND*/} + +double f_peakShavingForecast_simple() +{/*ALCODESTART::1750763679201*/ +double amountOfHoursInADay = 24; +double[] nettoBalance_kW = new double[96]; + +//Get elec consumption profile +J_EAProfile elecConsumptionProfile = findFirst(c_profileAssets, profile -> profile.profileType == OL_ProfileAssetType.ELECTRICITYBASELOAD); + +J_EAConsumption elecConsumptionConsumptionAsset = findFirst(c_consumptionAssets, cons -> cons.energyAssetType == OL_EnergyAssetType.ELECTRICITY_DEMAND); + +J_EAProduction elecProductionAsset = findFirst(c_productionAssets, prod -> prod.energyAssetType == OL_EnergyAssetType.PHOTOVOLTAIC); + +//For simulation that cross the year end +double hour_of_simulation_year = energyModel.t_h - energyModel.p_runStartTime_h; +//traceln("hour_of_year: " + hour_of_simulation_year); + +int startTimeDayIndex = roundToInt(hour_of_simulation_year/energyModel.p_timeStep_h); +int endTimeDayIndex = roundToInt((hour_of_simulation_year + 24)/energyModel.p_timeStep_h); + +if(elecConsumptionProfile != null){ + nettoBalance_kW = ZeroMath.arrayMultiply(Arrays.copyOfRange(elecConsumptionProfile.a_energyProfile_kWh, startTimeDayIndex, endTimeDayIndex), 1/energyModel.p_timeStep_h); +} +if(elecConsumptionConsumptionAsset != null){ + for(double time = energyModel.t_h; time < energyModel.t_h + 24; time += energyModel.p_timeStep_h){ + nettoBalance_kW[roundToInt((time-energyModel.t_h)/energyModel.p_timeStep_h)] += elecConsumptionConsumptionAsset.profilePointer.getValue(time)*elecConsumptionConsumptionAsset.yearlyDemand_kWh*elecConsumptionConsumptionAsset.getConsumptionScaling_fr(); + } +} + +if(elecProductionAsset != null){ + for(double time = energyModel.t_h; time < energyModel.t_h + 24; time += energyModel.p_timeStep_h){ + nettoBalance_kW[roundToInt((time-energyModel.t_h)/energyModel.p_timeStep_h)] -= elecProductionAsset.profilePointer.getValue(time)*elecProductionAsset.getCapacityElectric_kW(); + } +} + + +////Fill chargesetpoint Array + +//Initialize chargepoint array +v_batteryChargingForecast_kW = new double[96]; + + +//Calculate the total export over the day that can be collected by the battery +double totalExport_kWh = 0; +for(int i = 0; i < nettoBalance_kW.length; i++){ + if(nettoBalance_kW[i] < 0){ + totalExport_kWh += min(p_batteryAsset.getCapacityElectric_kW(), -nettoBalance_kW[i])*energyModel.p_timeStep_h; + } +} + + +//Flatten the morning net balance while charging +double totalDailyImport_kWh = 0; +for(int i = 0; i < nettoBalance_kW.length; i++){ + if(i< amountOfHoursInADay/energyModel.p_timeStep_h){ + totalDailyImport_kWh += max(0,nettoBalance_kW[i]*energyModel.p_timeStep_h); + } +} +double batteryEnergyNeeded_kWh = max(0,(p_batteryAsset.getStorageCapacity_kWh()*(1-p_batteryAsset.getCurrentStateOfCharge()))-totalExport_kWh); +double averageDailyConsumption_kW = (totalDailyImport_kWh + batteryEnergyNeeded_kWh)/amountOfHoursInADay; + +//If 24 hours +for(int i = 0; i < nettoBalance_kW.length; i++){ + v_batteryChargingForecast_kW[i] += averageDailyConsumption_kW - nettoBalance_kW[i]; +} + +/*ALCODEEND*/} + diff --git a/_alp/Agents/GridConnection/Code/Functions.xml b/_alp/Agents/GridConnection/Code/Functions.xml index 38ffe642..7a8040e9 100644 --- a/_alp/Agents/GridConnection/Code/Functions.xml +++ b/_alp/Agents/GridConnection/Code/Functions.xml @@ -16,34 +16,13 @@ true - - VOID - double - 1658752229618 - - true - 750 - -80 - - 10 - 0 - - false - true - true - - - - - - VOID double 1660212665961 910 - 550 + 630 10 0 @@ -69,23 +48,6 @@ true - - VOID - double - 1668181559833 - - true - 750 - -40 - - 10 - 0 - - false - true - true - - VOID double @@ -123,7 +85,7 @@ double 1668983912731 - 1230 + 1270 530 10 @@ -180,24 +142,7 @@ 1669025846794 920 - 340 - - 10 - 0 - - false - true - true - - - - VOID - double - 1669193537955 - - true - 750 - -60 + 420 10 0 @@ -213,7 +158,7 @@ 1671095995172 920 - 360 + 440 10 0 @@ -230,7 +175,7 @@ 940 - 380 + 460 10 0 @@ -246,7 +191,7 @@ 1671095995177 940 - 400 + 480 10 0 @@ -263,7 +208,7 @@ 940 - 420 + 500 10 0 @@ -283,7 +228,7 @@ 1671095995181 940 - 460 + 540 10 0 @@ -322,7 +267,7 @@ double 1692799608559 - 1070 + 1090 90 10 @@ -363,7 +308,7 @@ 1695822607494 940 - 480 + 560 10 0 @@ -450,7 +395,7 @@ double 1714646913998 - 1070 + 1090 110 10 @@ -465,29 +410,12 @@ - - VOID - double - 1716282675260 - - true - 910 - 70 - - 10 - 0 - - false - true - true - - VOID double 1717060111619 - 1250 + 1290 550 10 @@ -502,7 +430,7 @@ double 1717068094093 - 1230 + 1270 570 10 @@ -518,7 +446,7 @@ double 1717068167776 - 1250 + 1290 590 10 @@ -535,7 +463,7 @@ 1720442672576 910 - 530 + 610 10 0 @@ -552,7 +480,7 @@ 890 - 650 + 710 10 0 @@ -569,7 +497,7 @@ 890 - 670 + 730 10 0 @@ -641,7 +569,7 @@ 1722518225504 930 - 570 + 650 10 0 @@ -657,7 +585,7 @@ 1722518905501 930 - 590 + 670 10 0 @@ -694,7 +622,7 @@ 1725455130676 960 - 440 + 520 10 0 @@ -729,7 +657,7 @@ double 1730728785333 - 1070 + 910 70 10 @@ -746,7 +674,39 @@ 1750258434630 920 - 500 + 580 + + 10 + 0 + + false + true + true + + + + VOID + double + 1750763679197 + + 920 + 340 + + 10 + 0 + + false + true + true + + + + VOID + double + 1750763679201 + + 950 + 360 10 0 diff --git a/_alp/Agents/GridConnection/Levels/Level.level.xml b/_alp/Agents/GridConnection/Levels/Level.level.xml index 8feadc15..1f9befb8 100644 --- a/_alp/Agents/GridConnection/Levels/Level.level.xml +++ b/_alp/Agents/GridConnection/Levels/Level.level.xml @@ -22,15 +22,15 @@ null SOLID 780 - 740 + 460 0.0 -983041 null 1671027904662 - - 100 + + 80 940 10 @@ -48,7 +48,7 @@ null SOLID 280 - 610 + 360 0.0 -131341 null @@ -603,7 +603,7 @@ 1671027383282 - 230 + 210 922 0 @@ -628,7 +628,7 @@ 1671027582352 - 170 + 150 1000 0 @@ -675,63 +675,10 @@ LEFT - - 1671027820068 - - 120 - 1291 - - 10 - 0 - - true - true - false - SHAPE_DRAW_2D3D - false - 0 - 10 - 1 - -4144960 - null - SOLID - 1 - 0 - 1 - 0 - 230 - 0 - 0 - - - 1671027834321 - - 230 - 1277 - - 0 - -10 - - false - true - false - SHAPE_DRAW_2D - false - 0 - 0.0 - -16777216 - - - - 10 - - - CENTER - 1671028034002 - - 410 + + 490 940 10 @@ -754,35 +701,10 @@ -134146 null - - 1671028103716 - - 200 - 1360 - - 0 - -10 - - false - true - false - SHAPE_DRAW_2D - false - 0 - 0.0 - -16777216 - - - - 10 - - - LEFT - 1671033393207 - 200 + 180 950 0 @@ -804,38 +726,10 @@ LEFT - - 1671033508415 - - 120 - 1350 - - 10 - 0 - - false - true - false - SHAPE_DRAW_2D3D - false - 0 - 10 - 2 - -4144960 - null - SOLID - 1 - 0 - 1 - 0 - 230 - 0 - 0 - 1671033654309 - 530 + 610 920 0 @@ -857,58 +751,6 @@ CENTER - - 1671033701021 - - 530 - 1230 - - 0 - -10 - - false - true - false - SHAPE_DRAW_2D - false - 0 - 0.0 - -16777216 - - - - 14 - - - CENTER - - - 1671033701024 - - 410 - 1250 - - 10 - 10 - - false - true - false - true - SHAPE_DRAW_2D3D - false - 0 - 10 - 1 - -4144960 - null - SOLID - 260 - 300 - 0.0 - -786696 - null - 1674329550133 diff --git a/_alp/Agents/GridConnection/Variables.xml b/_alp/Agents/GridConnection/Variables.xml index 7a913836..86fc7061 100644 --- a/_alp/Agents/GridConnection/Variables.xml +++ b/_alp/Agents/GridConnection/Variables.xml @@ -1,169 +1,9 @@ - - 1658499590783 - - true - 150 - 1320 - - 10 - 0 - - false - true - true - - - - - - 1659355078476 - - true - 460 - 1310 - - 10 - 0 - - false - true - true - - - - - - 1659355091165 - - true - 450 - 990 - - 10 - 0 - - false - true - true - - - - - - 1659513167233 - - true - 460 - 1350 - - 10 - 0 - - false - true - true - - - - - - 1660212770050 - - true - 450 - 1060 - - 10 - 0 - - false - true - true - - - - - - 1660212876474 - - true - 460 - 1480 - - 10 - 0 - - false - true - true - - - - - - 1660212876476 - - true - 450 - 1080 - - 10 - 0 - - false - true - true - - - - - - 1660212876478 - - true - 460 - 1520 - - 10 - 0 - - false - true - true - - - - 1666282164534 - 1230 + 1270 270 10 @@ -208,7 +48,7 @@ 1667902447354 - 150 + 110 1110 10 @@ -224,26 +64,6 @@ - - 1668359062406 - - true - 1280 - -90 - - 10 - 0 - - false - true - true - - - - 1668370002883 @@ -270,7 +90,7 @@ 1668610729237 - 150 + 110 980 10 @@ -289,7 +109,7 @@ 1668610741368 - 150 + 110 1240 10 @@ -308,7 +128,7 @@ 1668610757391 - 150 + 110 1130 10 @@ -327,7 +147,7 @@ 1668611038479 - 150 + 110 1030 10 @@ -343,50 +163,10 @@ - - 1668605322171 - - true - 460 - 1330 - - 10 - 0 - - false - true - true - - - - - - 1668605479367 - - true - 460 - 1500 - - 10 - 0 - - false - true - true - - - - 1668695288481 - 1230 + 1270 310 10 @@ -408,7 +188,7 @@ 1668695288483 - 1230 + 1270 330 10 @@ -430,7 +210,7 @@ 1668695288485 - 1230 + 1270 350 10 @@ -452,7 +232,7 @@ 1669725778092 - 1230 + 1270 160 10 @@ -471,7 +251,7 @@ 1671027786040 - 150 + 110 1260 10 @@ -487,192 +267,11 @@ - - 1671028145282 - - true - 150 - 1400 - - 10 - 0 - - false - true - true - - - - - - 1671028164395 - - true - 150 - 1420 - - 10 - 0 - - false - true - true - - - - - - 1671028183310 - - true - 150 - 1380 - - 10 - 0 - - false - true - true - - - - - - 1671028204660 - - true - 150 - 1440 - - 10 - 0 - - false - true - true - - - - - - 1671028232758 - - true - 150 - 1480 - - 10 - 0 - - false - true - true - - - - - - 1671028253782 - - true - 150 - 1500 - - 10 - 0 - - false - true - true - - - - - - 1671028416277 - - - true - 150 - 1460 - - 10 - 0 - - false - true - true - - - - - - 1671028484635 - - true - 150 - 1520 - - 10 - 0 - - false - true - true - - - - - - 1671028484651 - - true - 150 - 1540 - - 10 - 0 - - false - true - true - - - - 1673870786520 - 180 + 140 1050 10 @@ -691,8 +290,8 @@ 1673949346167 - 450 - 1100 + 530 + 1020 10 0 @@ -713,7 +312,7 @@ 1674329641809 - 1230 + 1270 370 10 @@ -732,7 +331,7 @@ 1674396166866 - 1230 + 1270 390 10 @@ -751,29 +350,8 @@ 1676468216301 - 450 - 1120 - - 10 - 0 - - false - true - true - - - - - - 1677495410857 - - - true - 150 - 1610 + 530 + 1040 10 0 @@ -792,7 +370,7 @@ 1677585426154 true - 1230 + 1270 490 10 @@ -811,7 +389,7 @@ 1678710234324 - 1230 + 1270 430 10 @@ -833,7 +411,7 @@ 1678710234329 - 1230 + 1270 450 10 @@ -852,7 +430,7 @@ 1695824940090 - 1230 + 1270 410 10 @@ -872,7 +450,7 @@ 1696837525849 - 180 + 140 1070 10 @@ -891,8 +469,8 @@ 1701700372072 - 160 - 1660 + 110 + 1280 10 0 @@ -910,8 +488,8 @@ 1705421898378 - 160 - 1680 + 530 + 1100 10 0 @@ -929,7 +507,7 @@ 1717414924763 - 180 + 140 1090 10 @@ -971,7 +549,7 @@ 1720447120435 true - 150 + 110 1150 10 @@ -1062,7 +640,7 @@ 1721833484396 - 1230 + 1270 290 10 @@ -1171,8 +749,8 @@ 1726238237441 - 470 - 1010 + 530 + 970 10 0 @@ -1190,8 +768,8 @@ 1726425994811 - 470 - 1030 + 530 + 990 10 0 @@ -1379,7 +957,7 @@ 1734088515133 - 150 + 110 1170 10 @@ -1398,7 +976,7 @@ 1737539227165 - 150 + 110 1190 10 @@ -1418,7 +996,7 @@ 1741182119260 570 - 730 + 810 10 0 @@ -1437,7 +1015,7 @@ 1741182119264 570 - 660 + 740 10 0 @@ -1456,7 +1034,7 @@ 1741277722819 570 - 750 + 830 10 0 @@ -1478,7 +1056,7 @@ 1741871129695 590 - 680 + 760 10 0 @@ -1497,7 +1075,7 @@ 1741942930553 590 - 700 + 780 10 0 @@ -1512,6 +1090,28 @@ + + 1750763679203 + + 970 + 380 + + 10 + 0 + + false + true + true + + + + + + + 1658499438204 @@ -1775,32 +1375,6 @@ - - 1668180047824 - - true - 980 - -80 - - 10 - 0 - - false - true - true - - - NONE - false - - 1668180047822 - TEXT_BOX - 0 - 100 - NO_DELIMETER - - - 1668693393498 @@ -1861,7 +1435,7 @@ 1668695364192 600 - 390 + 450 10 0 @@ -1914,7 +1488,7 @@ 1676449763319 600 - 370 + 430 10 0 @@ -1939,7 +1513,7 @@ 1684919785784 600 - 410 + 470 10 0 @@ -1963,8 +1537,8 @@ 1692878211840 - 740 - 230 + 620 + 270 10 0 @@ -2013,8 +1587,8 @@ 1692973005119 - 741 - 188 + 621 + 288 10 0 @@ -2392,7 +1966,7 @@ 1659962626907 600 - 270 + 310 10 0 @@ -2410,7 +1984,7 @@ 1659962626909 600 - 190 + 210 10 0 @@ -2428,7 +2002,7 @@ 1659962626911 600 - 210 + 230 10 0 @@ -2446,7 +2020,7 @@ 1659962626913 600 - 230 + 250 10 0 @@ -2464,7 +2038,7 @@ 1667746389220 600 - 290 + 330 10 0 @@ -2482,7 +2056,7 @@ 1668359033654 620 - 310 + 370 10 0 @@ -2500,7 +2074,7 @@ 1669115948280 620 - 330 + 390 10 0 @@ -2517,8 +2091,8 @@ 1692864624612 - 720 - 290 + 620 + 350 10 0 @@ -2535,8 +2109,8 @@ 1700044359363 - 740 - 170 + 600 + 188 10 0 @@ -2572,7 +2146,7 @@ 1711012701187 620 - 350 + 410 10 0 @@ -2607,7 +2181,7 @@ 1722516437894 - -180 + -280 980 10 @@ -2625,7 +2199,7 @@ 1722516468629 - -180 + -280 1050 10 @@ -2644,7 +2218,7 @@ 1722516515981 true - -180 + -280 1030 10 @@ -2662,7 +2236,7 @@ 1722516532968 - -180 + -280 1070 10 @@ -2680,7 +2254,7 @@ 1722516544883 - -180 + -280 1090 10 @@ -2698,7 +2272,7 @@ 1722516559744 - -180 + -280 1110 10 @@ -2716,7 +2290,7 @@ 1722516579645 - -180 + -280 1200 10 @@ -2734,7 +2308,7 @@ 1722516597938 - -180 + -280 1220 10 @@ -2752,7 +2326,7 @@ 1722517079192 - -180 + -280 1130 10 @@ -2770,7 +2344,7 @@ 1734089799023 - -180 + -280 1250 10 @@ -2807,7 +2381,7 @@ 1750258408126 600 - 431 + 491 10 0