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
3 changes: 0 additions & 3 deletions _alp/Agents/ConnectionOwner/AOC.ConnectionOwner.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@
<Parameter>
<Name><![CDATA[p_actorGroup]]></Name>
</Parameter>
<Parameter>
<Name><![CDATA[b_dataSharingAgreed]]></Name>
</Parameter>
</Parameters>
<StartupCode><![CDATA[energyModel.c_actors.add(this);
energyModel.c_connectionOwners.add(this);]]></StartupCode>
Expand Down
27 changes: 21 additions & 6 deletions _alp/Agents/EnergyCoop/Code/Functions.java
Original file line number Diff line number Diff line change
Expand Up @@ -1514,18 +1514,28 @@ HashSet<GridConnection> f_getAllChildCustomerGridConnections_recursion(HashSet<G
double currentExport_kW = 0.0;
for (OL_EnergyCarriers EC : v_activeEnergyCarriers) {
double currentBalance_kW = fm_currentBalanceFlows_kW.get(EC);
currentImport_kW += max( 0, currentBalance_kW );
currentExport_kW += max( 0, -currentBalance_kW );
v_rapidRunData.am_totalBalanceAccumulators_kW.get(EC).addStep( currentBalance_kW );

if(v_activeConsumptionEnergyCarriers.contains(EC)){
currentImport_kW += max( 0, currentBalance_kW );
}
if(v_activeProductionEnergyCarriers.contains(EC)){
currentExport_kW += max( 0, -currentBalance_kW );
}
}

// Daytime totals. Use overal-total minus daytime total to get nighttime totals.
if(energyModel.b_isDaytime) {

for (OL_EnergyCarriers EC : v_activeEnergyCarriers) {
double currentBalance_kW = fm_currentBalanceFlows_kW.get(EC);
v_rapidRunData.am_daytimeImports_kW.get(EC).addStep(max( 0, currentBalance_kW ));
v_rapidRunData.am_daytimeExports_kW.get(EC).addStep(max( 0, -currentBalance_kW ));

if(v_activeConsumptionEnergyCarriers.contains(EC)){
v_rapidRunData.am_daytimeImports_kW.get(EC).addStep(max( 0, currentBalance_kW ));
}
if(v_activeProductionEnergyCarriers.contains(EC)){
v_rapidRunData.am_daytimeExports_kW.get(EC).addStep(max( 0, -currentBalance_kW ));
}
}

v_rapidRunData.acc_daytimeElectricityProduction_kW.addStep(fm_currentProductionFlows_kW.get(OL_EnergyCarriers.ELECTRICITY) );
Expand All @@ -1539,8 +1549,13 @@ HashSet<GridConnection> f_getAllChildCustomerGridConnections_recursion(HashSet<G
if (!energyModel.b_isWeekday) { //
for (OL_EnergyCarriers EC : v_activeEnergyCarriers) {
double currentBalance_kW = fm_currentBalanceFlows_kW.get(EC);
v_rapidRunData.am_weekendImports_kW.get(EC).addStep(max( 0, currentBalance_kW ));
v_rapidRunData.am_weekendExports_kW.get(EC).addStep(max( 0, -currentBalance_kW ));

if(v_activeConsumptionEnergyCarriers.contains(EC)){
v_rapidRunData.am_weekendImports_kW.get(EC).addStep(max( 0, currentBalance_kW ));
}
if(v_activeProductionEnergyCarriers.contains(EC)){
v_rapidRunData.am_weekendExports_kW.get(EC).addStep(max( 0, -currentBalance_kW ));
}
}

v_rapidRunData.acc_weekendElectricityProduction_kW.addStep(fm_currentProductionFlows_kW.get(OL_EnergyCarriers.ELECTRICITY) );
Expand Down
47 changes: 30 additions & 17 deletions _alp/Agents/EnergyModel/Code/Functions.java
Original file line number Diff line number Diff line change
Expand Up @@ -1531,7 +1531,6 @@ ArrayList<GridConnection> f_getGridConnections()

f_initializeLiveDataSets();

//v_rapidRunData.initializeAccumulators(p_runEndTime_h - p_runStartTime_h, p_timeStep_h, v_activeEnergyCarriers, v_activeConsumptionEnergyCarriers, v_activeProductionEnergyCarriers); //f_initializeAccumulators();
//f_initializeAccumulators();

// Use parallelisation?
Expand Down Expand Up @@ -1794,28 +1793,19 @@ EnergyCoop f_removeEnergyCoop(EnergyCoop energyCoop)

/*ALCODEEND*/}

EnergyCoop f_addEnergyCarrier(OL_EnergyCarriers EC)
EnergyCoop f_addConsumptionEnergyCarrier(OL_EnergyCarriers EC)
{/*ALCODESTART::1740056275008*/
v_activeEnergyCarriers.add(EC);
v_activeConsumptionEnergyCarriers.add(EC);

DataSet dsDemand = new DataSet( (int)(168 / p_timeStep_h) );
DataSet dsSupply = new DataSet( (int)(168 / p_timeStep_h) );

double startTime = v_liveData.dsm_liveDemand_kW.get(OL_EnergyCarriers.ELECTRICITY).getXMin();
double endTime = v_liveData.dsm_liveDemand_kW.get(OL_EnergyCarriers.ELECTRICITY).getXMax();
for (double t = startTime; t <= endTime; t += p_timeStep_h) {
dsDemand.add( t, 0);
dsSupply.add( t, 0);
}
v_liveData.dsm_liveDemand_kW.put( EC, dsDemand);
v_liveData.dsm_liveSupply_kW.put( EC, dsSupply);
/*
dsm_dailyAverageDemandDataSets_kW.put( EC, new DataSet(365));
dsm_dailyAverageSupplyDataSets_kW.put( EC, new DataSet(365));
dsm_summerWeekDemandDataSets_kW.put( EC, new DataSet( (int)(168 / p_timeStep_h)));
dsm_summerWeekSupplyDataSets_kW.put( EC, new DataSet( (int)(168 / p_timeStep_h)));
dsm_winterWeekDemandDataSets_kW.put( EC, new DataSet( (int)(168 / p_timeStep_h)));
dsm_winterWeekSupplyDataSets_kW.put( EC, new DataSet( (int)(168 / p_timeStep_h)));
*/
/*ALCODEEND*/}

double f_rapidRunDataLogging()
Expand Down Expand Up @@ -1853,8 +1843,13 @@ EnergyCoop f_addEnergyCarrier(OL_EnergyCarriers EC)

for (OL_EnergyCarriers EC : v_activeEnergyCarriers) {
double currentBalance_kW = fm_currentBalanceFlows_kW.get(EC);
v_rapidRunData.am_daytimeImports_kW.get(EC).addStep(max( 0, currentBalance_kW ));
v_rapidRunData.am_daytimeExports_kW.get(EC).addStep(max( 0, -currentBalance_kW ));

if(v_activeConsumptionEnergyCarriers.contains(EC)){
v_rapidRunData.am_daytimeImports_kW.get(EC).addStep(max( 0, currentBalance_kW ));
}
if(v_activeProductionEnergyCarriers.contains(EC)){
v_rapidRunData.am_daytimeExports_kW.get(EC).addStep(max( 0, -currentBalance_kW ));
}
}

v_rapidRunData.acc_daytimeElectricityProduction_kW.addStep(fm_currentProductionFlows_kW.get(OL_EnergyCarriers.ELECTRICITY) );
Expand All @@ -1869,8 +1864,12 @@ EnergyCoop f_addEnergyCarrier(OL_EnergyCarriers EC)
if (!b_isWeekday) { //
for (OL_EnergyCarriers EC : v_activeEnergyCarriers) {
double currentBalance_kW = fm_currentBalanceFlows_kW.get(EC);
v_rapidRunData.am_weekendImports_kW.get(EC).addStep(max( 0, currentBalance_kW ));
v_rapidRunData.am_weekendExports_kW.get(EC).addStep(max( 0, -currentBalance_kW ));
if(v_activeConsumptionEnergyCarriers.contains(EC)){
v_rapidRunData.am_weekendImports_kW.get(EC).addStep(max( 0, currentBalance_kW ));
}
if(v_activeProductionEnergyCarriers.contains(EC)){
v_rapidRunData.am_weekendExports_kW.get(EC).addStep(max( 0, -currentBalance_kW ));
}
}

v_rapidRunData.acc_weekendElectricityProduction_kW.addStep(fm_currentProductionFlows_kW.get(OL_EnergyCarriers.ELECTRICITY) );
Expand Down Expand Up @@ -2026,3 +2025,17 @@ EnergyCoop f_addEnergyCarrier(OL_EnergyCarriers EC)

/*ALCODEEND*/}

EnergyCoop f_addProductionEnergyCarrier(OL_EnergyCarriers EC)
{/*ALCODESTART::1746021439807*/
v_activeEnergyCarriers.add(EC);
v_activeProductionEnergyCarriers.add(EC);

DataSet dsSupply = new DataSet( (int)(168 / p_timeStep_h) );
double startTime = v_liveData.dsm_liveDemand_kW.get(OL_EnergyCarriers.ELECTRICITY).getXMin();
double endTime = v_liveData.dsm_liveDemand_kW.get(OL_EnergyCarriers.ELECTRICITY).getXMax();
for (double t = startTime; t <= endTime; t += p_timeStep_h) {
dsSupply.add( t, 0);
}
v_liveData.dsm_liveSupply_kW.put( EC, dsSupply);
/*ALCODEEND*/}

22 changes: 21 additions & 1 deletion _alp/Agents/EnergyModel/Code/Functions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -634,7 +634,7 @@
<ReturnModificator>VOID</ReturnModificator>
<ReturnType>EnergyCoop</ReturnType>
<Id>1740056275008</Id>
<Name><![CDATA[f_addEnergyCarrier]]></Name>
<Name><![CDATA[f_addConsumptionEnergyCarrier]]></Name>
<X>1680</X>
<Y>580</Y>
<Label>
Expand Down Expand Up @@ -682,4 +682,24 @@
<ShowLabel>true</ShowLabel>
<Body xmlns:al="http://anylogic.com"/>
</Function>
<Function AccessType="public" StaticFunction="false">
<ReturnModificator>VOID</ReturnModificator>
<ReturnType>EnergyCoop</ReturnType>
<Id>1746021439807</Id>
<Name><![CDATA[f_addProductionEnergyCarrier]]></Name>
<X>1680</X>
<Y>600</Y>
<Label>
<X>10</X>
<Y>0</Y>
</Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
<ShowLabel>true</ShowLabel>
<Parameter>
<Name><![CDATA[EC]]></Name>
<Type><![CDATA[OL_EnergyCarriers]]></Type>
</Parameter>
<Body xmlns:al="http://anylogic.com"/>
</Function>
</Functions>
42 changes: 27 additions & 15 deletions _alp/Agents/GCNeighborhood/Code/Functions.java
Original file line number Diff line number Diff line change
Expand Up @@ -288,34 +288,46 @@ else if (j_ea.energyAssetType == OL_EnergyAssetType.WINDMILL) {

double f_connectToJ_EA_default_overwrite(J_EA j_ea)
{/*ALCODESTART::1730370456790*/
for (OL_EnergyCarriers EC : j_ea.getActiveEnergyCarriers()) {
if (!v_activeEnergyCarriers.contains(EC)) {
for (OL_EnergyCarriers EC : j_ea.getActiveConsumptionEnergyCarriers()) {
if (!v_activeConsumptionEnergyCarriers.contains(EC)) {
v_activeEnergyCarriers.add(EC);

v_activeConsumptionEnergyCarriers.add(EC);

if (energyModel.b_isInitialized) {
energyModel.f_addEnergyCarrier(EC);
//Add EC to energyModel
energyModel.f_addConsumptionEnergyCarrier(EC);

//Initialize dataset
DataSet dsDemand = new DataSet( (int)(168 / energyModel.p_timeStep_h) );
DataSet dsSupply = new DataSet( (int)(168 / energyModel.p_timeStep_h) );
double startTime = v_liveData.dsm_liveDemand_kW.get(OL_EnergyCarriers.ELECTRICITY).getXMin();
double endTime = v_liveData.dsm_liveDemand_kW.get(OL_EnergyCarriers.ELECTRICITY).getXMax();
for (double t = startTime; t <= endTime; t += energyModel.p_timeStep_h) {
dsDemand.add( t, 0);
dsSupply.add( t, 0);
}
v_liveData.dsm_liveDemand_kW.put( EC, dsDemand);
v_liveData.dsm_liveSupply_kW.put( EC, dsSupply);
}
}
}

//Production EC
for(OL_EnergyCarriers EC_production : j_ea.getActiveProductionEnergyCarriers()){
v_activeProductionEnergyCarriers.add(EC_production);
}

//Consumption EC
for(OL_EnergyCarriers EC_consumption : j_ea.getActiveConsumptionEnergyCarriers()){
v_activeConsumptionEnergyCarriers.add(EC_consumption);
for (OL_EnergyCarriers EC : j_ea.getActiveProductionEnergyCarriers()) {
if (!v_activeProductionEnergyCarriers.contains(EC)) {
v_activeEnergyCarriers.add(EC);
v_activeProductionEnergyCarriers.add(EC);
if (energyModel.b_isInitialized) {

//Add EC to energyModel
energyModel.f_addProductionEnergyCarrier(EC);

//Initialize datasets
DataSet dsSupply = new DataSet( (int)(168 / energyModel.p_timeStep_h) );
double startTime = v_liveData.dsm_liveDemand_kW.get(OL_EnergyCarriers.ELECTRICITY).getXMin();
double endTime = v_liveData.dsm_liveDemand_kW.get(OL_EnergyCarriers.ELECTRICITY).getXMax();
for (double t = startTime; t <= endTime; t += energyModel.p_timeStep_h) {
dsSupply.add( t, 0);
}
v_liveData.dsm_liveSupply_kW.put( EC, dsSupply);
}
}
}


Expand Down
73 changes: 47 additions & 26 deletions _alp/Agents/GridConnection/Code/Functions.java
Original file line number Diff line number Diff line change
Expand Up @@ -1079,38 +1079,48 @@ else if (p_primaryHeatingAsset== null && p_secondaryHeatingAsset != null && v_ha

double f_connectToJ_EA_default(J_EA j_ea)
{/*ALCODESTART::1692799608559*/
for (OL_EnergyCarriers EC : j_ea.getActiveEnergyCarriers()) {
if (!v_activeEnergyCarriers.contains(EC)) {
for (OL_EnergyCarriers EC : j_ea.getActiveConsumptionEnergyCarriers()) {
if (!v_activeConsumptionEnergyCarriers.contains(EC)) {
v_activeEnergyCarriers.add(EC);

v_activeConsumptionEnergyCarriers.add(EC);

if (energyModel.b_isInitialized) {
energyModel.f_addEnergyCarrier(EC);
//Add EC to energyModel
energyModel.f_addConsumptionEnergyCarrier(EC);

//Initialize dataset
DataSet dsDemand = new DataSet( (int)(168 / energyModel.p_timeStep_h) );
DataSet dsSupply = new DataSet( (int)(168 / energyModel.p_timeStep_h) );
double startTime = v_liveData.dsm_liveDemand_kW.get(OL_EnergyCarriers.ELECTRICITY).getXMin();
double endTime = v_liveData.dsm_liveDemand_kW.get(OL_EnergyCarriers.ELECTRICITY).getXMax();
for (double t = startTime; t <= endTime; t += energyModel.p_timeStep_h) {
dsDemand.add( t, 0);
dsSupply.add( t, 0);
}
v_liveData.dsm_liveDemand_kW.put( EC, dsDemand);
v_liveData.dsm_liveSupply_kW.put( EC, dsSupply);
}
}
}

//Production EC
for(OL_EnergyCarriers EC_production : j_ea.getActiveProductionEnergyCarriers()){
v_activeProductionEnergyCarriers.add(EC_production);
}

//Consumption EC
for(OL_EnergyCarriers EC_consumption : j_ea.getActiveConsumptionEnergyCarriers()){
v_activeConsumptionEnergyCarriers.add(EC_consumption);
for (OL_EnergyCarriers EC : j_ea.getActiveProductionEnergyCarriers()) {
if (!v_activeProductionEnergyCarriers.contains(EC)) {
v_activeEnergyCarriers.add(EC);
v_activeProductionEnergyCarriers.add(EC);
if (energyModel.b_isInitialized) {

//Add EC to energyModel
energyModel.f_addProductionEnergyCarrier(EC);

//Initialize datasets
DataSet dsSupply = new DataSet( (int)(168 / energyModel.p_timeStep_h) );
double startTime = v_liveData.dsm_liveDemand_kW.get(OL_EnergyCarriers.ELECTRICITY).getXMin();
double endTime = v_liveData.dsm_liveDemand_kW.get(OL_EnergyCarriers.ELECTRICITY).getXMax();
for (double t = startTime; t <= endTime; t += energyModel.p_timeStep_h) {
dsSupply.add( t, 0);
}
v_liveData.dsm_liveSupply_kW.put( EC, dsSupply);
}
}
}



energyModel.c_energyAssets.add(j_ea);
c_energyAssets.add(j_ea);

Expand Down Expand Up @@ -1439,7 +1449,6 @@ else if (j_ea.getEAType() == OL_EnergyAssetType.WINDMILL) {

f_initializeDataSets();

//v_rapidRunData.initializeAccumulators(energyModel.p_runEndTime_h - energyModel.p_runStartTime_h, energyModel.p_timeStep_h, v_activeEnergyCarriers, v_activeConsumptionEnergyCarriers, v_activeProductionEnergyCarriers); //f_initializeAccumulators();
for (OL_EnergyCarriers EC : v_activeEnergyCarriers){
energyModel.v_activeEnergyCarriers.add(EC);
}
Expand Down Expand Up @@ -2235,18 +2244,27 @@ else if (flowsMap.get(EC) > 0){
double currentExport_kW = 0.0;
for (OL_EnergyCarriers EC : v_activeEnergyCarriers) {
double currentBalance_kW = fm_currentBalanceFlows_kW.get(EC);
currentImport_kW += max( 0, currentBalance_kW );
currentExport_kW += max( 0, -currentBalance_kW );
v_rapidRunData.am_totalBalanceAccumulators_kW.get(EC).addStep( currentBalance_kW );

if(v_activeConsumptionEnergyCarriers.contains(EC)){
currentImport_kW += max( 0, currentBalance_kW );
}
if(v_activeProductionEnergyCarriers.contains(EC)){
currentExport_kW += max( 0, -currentBalance_kW );
}
}

// Daytime totals. Use overal-total minus daytime total to get nighttime totals.
if(energyModel.b_isDaytime) {

for (OL_EnergyCarriers EC : v_activeEnergyCarriers) {
double currentBalance_kW = fm_currentBalanceFlows_kW.get(EC);
v_rapidRunData.am_daytimeImports_kW.get(EC).addStep(max( 0, currentBalance_kW ));
v_rapidRunData.am_daytimeExports_kW.get(EC).addStep(max( 0, -currentBalance_kW ));
if(v_activeConsumptionEnergyCarriers.contains(EC)){
v_rapidRunData.am_daytimeImports_kW.get(EC).addStep(max( 0, currentBalance_kW ));
}
if(v_activeProductionEnergyCarriers.contains(EC)){
v_rapidRunData.am_daytimeExports_kW.get(EC).addStep(max( 0, -currentBalance_kW ));
}
}

v_rapidRunData.acc_daytimeElectricityProduction_kW.addStep(fm_currentProductionFlows_kW.get(OL_EnergyCarriers.ELECTRICITY) );
Expand All @@ -2260,10 +2278,13 @@ else if (flowsMap.get(EC) > 0){
if (!energyModel.b_isWeekday) { //
for (OL_EnergyCarriers EC : v_activeEnergyCarriers) {
double currentBalance_kW = fm_currentBalanceFlows_kW.get(EC);
v_rapidRunData.am_weekendImports_kW.get(EC).addStep(max( 0, currentBalance_kW ));
v_rapidRunData.am_weekendExports_kW.get(EC).addStep(max( 0, -currentBalance_kW ));
}

if(v_activeConsumptionEnergyCarriers.contains(EC)){
v_rapidRunData.am_weekendImports_kW.get(EC).addStep(max( 0, currentBalance_kW ));
}
if(v_activeProductionEnergyCarriers.contains(EC)){
v_rapidRunData.am_weekendExports_kW.get(EC).addStep(max( 0, -currentBalance_kW ));
}
}
v_rapidRunData.acc_weekendElectricityProduction_kW.addStep(fm_currentProductionFlows_kW.get(OL_EnergyCarriers.ELECTRICITY) );
v_rapidRunData.acc_weekendElectricityConsumption_kW.addStep(fm_currentConsumptionFlows_kW.get(OL_EnergyCarriers.ELECTRICITY) );
v_rapidRunData.acc_weekendEnergyProduction_kW.addStep(v_currentPrimaryEnergyProduction_kW);
Expand Down
Loading