Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions Zero_engine.alpx
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,10 @@
<Id>1739979321556</Id>
<Name><![CDATA[COOP]]></Name>
</Option>
<Option>
<Id>1749729312023</Id>
<Name><![CDATA[PARKING]]></Name>
</Option>
</OptionList>
<OptionList>
<Id>1659118426374</Id>
Expand Down Expand Up @@ -349,6 +353,10 @@
<Id>1717159864803</Id>
<Name><![CDATA[FUEL_CELL]]></Name>
</Option>
<Option>
<Id>1749651086661</Id>
<Name><![CDATA[CHARGER]]></Name>
</Option>
</OptionList>
<OptionList>
<Id>1659525715752</Id>
Expand Down Expand Up @@ -937,6 +945,10 @@
<Id>1671011596610</Id>
<Name><![CDATA[CHEAP]]></Name>
</Option>
<Option>
<Id>1750246095668</Id>
<Name><![CDATA[V1G]]></Name>
</Option>
<Option>
<Id>1695825443639</Id>
<Name><![CDATA[V2G]]></Name>
Expand Down Expand Up @@ -1069,6 +1081,10 @@
<Id>1707990736908</Id>
<Name><![CDATA[OTHER]]></Name>
</Option>
<Option>
<Id>1750078140891</Id>
<Name><![CDATA[PARKINGSPACE_OP]]></Name>
</Option>
</OptionList>
<OptionList>
<Id>1718560423698</Id>
Expand Down Expand Up @@ -1207,6 +1223,30 @@
<Name><![CDATA[GRIDNODE]]></Name>
</Option>
</OptionList>
<OptionList>
<Id>1749738812988</Id>
<Name><![CDATA[OL_ParkingSpaceType]]></Name>
<Option>
<Id>1749738813678</Id>
<Name><![CDATA[DISABLED]]></Name>
</Option>
<Option>
<Id>1749738839937</Id>
<Name><![CDATA[PUBLIC]]></Name>
</Option>
<Option>
<Id>1749738872124</Id>
<Name><![CDATA[PRIVATE]]></Name>
</Option>
<Option>
<Id>1749738876030</Id>
<Name><![CDATA[ELECTRIC]]></Name>
</Option>
<Option>
<Id>1749738897847</Id>
<Name><![CDATA[KISS_AND_RIDE]]></Name>
</Option>
</OptionList>
</OptionLists>
<Folders/>
<ActiveObjectClasses/>
Expand Down Expand Up @@ -1522,6 +1562,18 @@
<Id>1746606645736</Id>
<Name><![CDATA[J_BatteryAlgorithmBas]]></Name>
</JavaClass>
<JavaClass>
<Id>1749648342034</Id>
<Name><![CDATA[J_EAAirco]]></Name>
</JavaClass>
<JavaClass>
<Id>1749649002419</Id>
<Name><![CDATA[J_ChargingSession]]></Name>
</JavaClass>
<JavaClass>
<Id>1749651263461</Id>
<Name><![CDATA[J_EACharger]]></Name>
</JavaClass>
</JavaClasses>
<RequiredLibraryReference>
<LibraryName>com.anylogic.libraries.modules.markup_descriptors</LibraryName>
Expand Down
11 changes: 7 additions & 4 deletions _alp/Agents/EnergyModel/Code/Functions.java
Original file line number Diff line number Diff line change
Expand Up @@ -751,9 +751,12 @@

/*ALCODEEND*/}

ArrayList<GridConnection> f_getGridConnections()
ArrayList<GridConnection> f_getActiveGridConnections()
{/*ALCODESTART::1716890117265*/
return c_gridConnections;
ArrayList<GridConnection> copyOfGridConnectionList = new ArrayList<>(c_gridConnections);
copyOfGridConnectionList.removeAll(Arrays.asList(pop_gridConnections)); // Remove all default gridconnections (no flex control, only used for gridnode profile)
return copyOfGridConnectionList;

/*ALCODEEND*/}

double f_initializeEngine()
Expand Down Expand Up @@ -1307,15 +1310,15 @@ EnergyCoop f_addConsumptionEnergyCarrier(OL_EnergyCarriers EC)
{/*ALCODESTART::1741710906926*/

//Update main area
v_liveAssetsMetaData.updateActiveAssetData(f_getGridConnections());
v_liveAssetsMetaData.updateActiveAssetData(f_getActiveGridConnections());

//Update coop
if(pop_energyCoops.size()>0){
pop_energyCoops.get(pop_energyCoops.size()-1).v_liveAssetsMetaData.updateActiveAssetData(pop_energyCoops.get(pop_energyCoops.size()-1).f_getAllChildMemberGridConnections());
}

//Update grid connection active asset data
for(GridConnection GC : f_getGridConnections()){
for(GridConnection GC : f_getActiveGridConnections()){
GC.v_liveAssetsMetaData.updateActiveAssetData(new ArrayList<>(List.of(GC)));
}

Expand Down
2 changes: 1 addition & 1 deletion _alp/Agents/EnergyModel/Code/Functions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@
<ReturnModificator>RETURNS_VALUE</ReturnModificator>
<ReturnType>ArrayList&lt;GridConnection&gt;</ReturnType>
<Id>1716890117265</Id>
<Name><![CDATA[f_getGridConnections]]></Name>
<Name><![CDATA[f_getActiveGridConnections]]></Name>
<X>1360</X>
<Y>520</Y>
<Label>
Expand Down
24 changes: 24 additions & 0 deletions _alp/Agents/EnergyModel/EmbeddedObjects.xml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,9 @@
<Parameter>
<Name><![CDATA[p_originalCapacity_kW]]></Name>
</Parameter>
<Parameter>
<Name><![CDATA[p_hasProfileData]]></Name>
</Parameter>
</Parameters>
<ReplicationFlag>true</ReplicationFlag>
<Replication Class="CodeValue">
Expand Down Expand Up @@ -1141,6 +1144,9 @@
<Parameter>
<Name><![CDATA[p_parentNodeElectric]]></Name>
</Parameter>
<Parameter>
<Name><![CDATA[p_airco]]></Name>
</Parameter>
</Parameters>
<ReplicationFlag>true</ReplicationFlag>
<Replication Class="CodeValue">
Expand Down Expand Up @@ -2610,6 +2616,24 @@
<Parameter>
<Name><![CDATA[p_parentNodeElectric]]></Name>
</Parameter>
<Parameter>
<Name><![CDATA[p_isInitialCharger1]]></Name>
</Parameter>
<Parameter>
<Name><![CDATA[p_chargingProfileName1]]></Name>
</Parameter>
<Parameter>
<Name><![CDATA[chargingSessionSocket1]]></Name>
</Parameter>
<Parameter>
<Name><![CDATA[chargingSessionSocket2]]></Name>
</Parameter>
<Parameter>
<Name><![CDATA[p_chargerAsset]]></Name>
</Parameter>
<Parameter>
<Name><![CDATA[p_isChargingCentre]]></Name>
</Parameter>
</Parameters>
<ReplicationFlag>true</ReplicationFlag>
<Replication Class="CodeValue">
Expand Down
18 changes: 18 additions & 0 deletions _alp/Agents/EnergyModel/Variables.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2765,4 +2765,22 @@
<ValueElementClass>String</ValueElementClass>
</Properties>
</Variable>
<Variable Class="CollectionVariable">
<Id>1749650197321</Id>
<Name><![CDATA[c_chargerProfiles]]></Name>
<X>-580</X>
<Y>220</Y>
<Label>
<X>10</X>
<Y>0</Y>
</Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
<ShowLabel>true</ShowLabel>
<Properties SaveInSnapshot="true" AccessType="public" StaticVariable="false">
<CollectionClass>ArrayList</CollectionClass>
<ElementClass>List&lt;J_ChargingSession&gt;</ElementClass>
<ValueElementClass>String</ValueElementClass>
</Properties>
</Variable>
</Variables>
6 changes: 6 additions & 0 deletions _alp/Agents/GCHouse/Code/AdditionalClassCode.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ public void f_connectToJ_EA(J_EA j_ea){
f_connectTo_J_EA_House(j_ea);
}

@Override
public void f_removeTheJ_EA(J_EA j_ea){
f_removeTheJ_EA_default(j_ea);
f_removeTheJ_EA_house(j_ea);
}

/*@Override
public void f_operateFixedConsumptionAssets(){
f_operateFixedConsumptionAssets_overwrite();
Expand Down
66 changes: 63 additions & 3 deletions _alp/Agents/GCHouse/Code/Functions.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
}

f_manageCookingTracker();
f_manageAirco();

if (p_BuildingThermalAsset != null && p_primaryHeatingAsset != null) {
p_primaryHeatingAsset.f_updateAllFlows(p_primaryHeatingAsset.v_powerFraction_fr);
Expand Down Expand Up @@ -76,6 +77,8 @@
v_batterySOC_fr = p_batteryAsset.getCurrentStateOfCharge();
}
*/
f_manageChargers();


v_currentLoadLowPassed_kW += v_lowPassFactorLoad_fr * ( fm_currentBalanceFlows_kW.get(OL_EnergyCarriers.ELECTRICITY) - v_currentLoadLowPassed_kW );

Expand Down Expand Up @@ -826,7 +829,10 @@ else if ( v_batterySOC_fr < 0.6 && v_currentPowerElectricity_kW < 1 && v_current
}
p_householdEV = (J_EAEV)j_ea;
}

if (j_ea instanceof J_EAAirco) {
p_airco = (J_EAAirco)j_ea;
c_electricHeatpumpAssets.add(j_ea);
}
/*ALCODEEND*/}

double f_setAnnualEnergyDemand()
Expand Down Expand Up @@ -884,7 +890,7 @@ boolean f_calcCheapestHeatingPrice()
if (p_BuildingThermalAsset.getCurrentTemperature() < v_tempSetpoint_degC - p_heatingKickinTreshold_degC) {
double powerDemand_kW = v_hotwaterDemand_kW + (v_tempSetpoint_degC - p_BuildingThermalAsset.getCurrentTemperature()) * p_BuildingThermalAsset.getHeatCapacity_JpK() / 3.6e6;
p_primaryHeatingAsset.v_powerFraction_fr = min(1, powerDemand_kW / p_primaryHeatingAsset.getOutputCapacity_kW() );
p_BuildingThermalAsset.v_powerFraction_fr = ( p_primaryHeatingAsset.v_powerFraction_fr * p_primaryHeatingAsset.getOutputCapacity_kW() - v_hotwaterDemand_kW ) / p_BuildingThermalAsset.getCapacityHeat_kW();
p_BuildingThermalAsset.v_powerFraction_fr = max(0, (p_primaryHeatingAsset.v_powerFraction_fr * p_primaryHeatingAsset.getOutputCapacity_kW() - v_hotwaterDemand_kW) / p_BuildingThermalAsset.getCapacityHeat_kW() );
}
else { // Just supply DHW
p_primaryHeatingAsset.v_powerFraction_fr = v_hotwaterDemand_kW / p_primaryHeatingAsset.getOutputCapacity_kW();
Expand All @@ -906,7 +912,7 @@ else if (p_primaryHeatingAsset instanceof J_EAConversionGasBurner && p_BuildingT
if (p_BuildingThermalAsset.getCurrentTemperature() < v_tempSetpoint_degC - p_heatingKickinTreshold_degC) {
double powerDemand_kW = v_hotwaterDemand_kW + (v_tempSetpoint_degC - p_BuildingThermalAsset.getCurrentTemperature()) * p_BuildingThermalAsset.getHeatCapacity_JpK() / 3.6e6;
p_primaryHeatingAsset.v_powerFraction_fr = min(1, powerDemand_kW / p_primaryHeatingAsset.getOutputCapacity_kW() );
p_BuildingThermalAsset.v_powerFraction_fr = ( p_primaryHeatingAsset.v_powerFraction_fr * p_primaryHeatingAsset.getOutputCapacity_kW() - v_hotwaterDemand_kW ) / p_BuildingThermalAsset.getCapacityHeat_kW();
p_BuildingThermalAsset.v_powerFraction_fr = max(0, ( p_primaryHeatingAsset.v_powerFraction_fr * p_primaryHeatingAsset.getOutputCapacity_kW() - v_hotwaterDemand_kW ) / p_BuildingThermalAsset.getCapacityHeat_kW());
}
else {
p_primaryHeatingAsset.v_powerFraction_fr = v_hotwaterDemand_kW / p_primaryHeatingAsset.getOutputCapacity_kW();
Expand All @@ -933,3 +939,57 @@ else if (p_primaryHeatingAsset instanceof J_EAConversionGasBurner && p_BuildingT
}
/*ALCODEEND*/}

double f_manageAirco()
{/*ALCODESTART::1749648447119*/
if( p_airco != null ) {
if (p_airco.remainingONtimesteps == 0){
double switchOnProbability = 0;
switch (roundToInt(energyModel.v_currentAmbientTemperature_degC)) {
case 23:
switchOnProbability = 0.0025;
break;
case 24:
switchOnProbability = 0.005;
break;
case 25:
switchOnProbability = 0.008;
break;
case 26:
switchOnProbability = 0.01;
break;
case 27:
switchOnProbability = 0.012;
break;
case 28:
switchOnProbability = 0.014;
break;
case 29:
switchOnProbability = 0.016;
break;
case 30:
switchOnProbability = 0.018;
break;
case 31:
switchOnProbability = 0.02;
break;
}
if( randomTrue(switchOnProbability)){
int nbTimestepsOn = uniform_discr(4, 12);
p_airco.turnOnAirco( nbTimestepsOn );
}
}
p_airco.f_updateAllFlows( 1.0 );
}
/*ALCODEEND*/}

double f_removeTheJ_EA_house(J_EA j_ea)
{/*ALCODESTART::1749722407831*/
if (j_ea instanceof J_EAEV) {
p_householdEV = null;
}
if (j_ea instanceof J_EAAirco) {
p_airco = null;
c_electricHeatpumpAssets.remove(j_ea);
}
/*ALCODEEND*/}

40 changes: 38 additions & 2 deletions _alp/Agents/GCHouse/Code/Functions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -240,8 +240,8 @@
<ReturnType>double</ReturnType>
<Id>1693300820997</Id>
<Name><![CDATA[f_connectTo_J_EA_House]]></Name>
<X>1070</X>
<Y>130</Y>
<X>1140</X>
<Y>90</Y>
<Label>
<X>10</X>
<Y>0</Y>
Expand Down Expand Up @@ -383,4 +383,40 @@
<ShowLabel>true</ShowLabel>
<Body xmlns:al="http://anylogic.com"/>
</Function>
<Function AccessType="default" StaticFunction="false">
<ReturnModificator>VOID</ReturnModificator>
<ReturnType>double</ReturnType>
<Id>1749648447119</Id>
<Name><![CDATA[f_manageAirco]]></Name>
<X>1500</X>
<Y>850</Y>
<Label>
<X>10</X>
<Y>0</Y>
</Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
<ShowLabel>true</ShowLabel>
<Body xmlns:al="http://anylogic.com"/>
</Function>
<Function AccessType="default" StaticFunction="false">
<ReturnModificator>VOID</ReturnModificator>
<ReturnType>double</ReturnType>
<Id>1749722407831</Id>
<Name><![CDATA[f_removeTheJ_EA_house]]></Name>
<X>1140</X>
<Y>110</Y>
<Label>
<X>10</X>
<Y>0</Y>
</Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
<ShowLabel>true</ShowLabel>
<Parameter>
<Name><![CDATA[j_ea]]></Name>
<Type><![CDATA[J_EA]]></Type>
</Parameter>
<Body xmlns:al="http://anylogic.com"/>
</Function>
</Functions>
Loading