Skip to content
Merged
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
85 changes: 60 additions & 25 deletions Zero_engine.alp
Original file line number Diff line number Diff line change
Expand Up @@ -46301,7 +46301,7 @@ FullCapacity.]]></Description>
<Id>1709733732105</Id>
<Name><![CDATA[p_minProductionRatio]]></Name>
<Description><![CDATA[ratio of the nominal power of the electrolyser for minimum production]]></Description>
<X>1610</X><Y>150</Y>
<X>1610</X><Y>140</Y>
<Label><X>10</X><Y>0</Y></Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
Expand Down Expand Up @@ -46492,7 +46492,7 @@ if (p_curtailer != null){

@author: Gillis Hommen
@since: 28-12-2022]]></Description>
<X>1350</X><Y>100</Y>
<X>1230</X><Y>180</Y>
<Label><X>10</X><Y>0</Y></Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
Expand Down Expand Up @@ -46563,7 +46563,7 @@ if (CurtailerAsset.getElectricCapacity_kW()>0) {
<ReturnType><![CDATA[double]]></ReturnType>
<Id>1708089250229</Id>
<Name><![CDATA[f_manageElectrolyser]]></Name>
<X>1610</X><Y>70</Y>
<X>1610</X><Y>60</Y>
<Label><X>10</X><Y>0</Y></Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
Expand Down Expand Up @@ -46650,7 +46650,7 @@ if (ElectrolyserAsset.getInputCapacity_kW()>0) {
<ReturnType><![CDATA[double]]></ReturnType>
<Id>1708089644411</Id>
<Name><![CDATA[f_operateFlexAssets_override]]></Name>
<X>800</X><Y>240</Y>
<X>910</X><Y>220</Y>
<Label><X>10</X><Y>0</Y></Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
Expand Down Expand Up @@ -46697,7 +46697,7 @@ if (p_batteryAsset != null){
<ReturnType><![CDATA[double]]></ReturnType>
<Id>1708447959640</Id>
<Name><![CDATA[f_electrolyserRegime]]></Name>
<X>1620</X><Y>90</Y>
<X>1620</X><Y>80</Y>
<Label><X>10</X><Y>0</Y></Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
Expand Down Expand Up @@ -46726,15 +46726,6 @@ double previousElectrolyserConsumption_kW = max(0,flowsMap.get(OL_EnergyCarriers
double currentGridNodePowerFlow_kW = this.l_parentNodeElectric.getConnectedAgent().v_currentLoad_kW - previousElectrolyserConsumption_kW;
data_liveWeekGridNoderPowerFlow_kW.add(energyModel.t_h, this.l_parentNodeElectric.getConnectedAgent().v_currentLoad_kW);

switch (p_electrolyserOperationMode){

case PRICE:
f_electrolyserRegimeControl_Price(excessElectricPower_kW, ElectrolyserAsset);
break;
case BALANCE:
f_electrolyserRegimeControl_Balance(currentGridNodePowerFlow_kW, forecast_time_h, ElectrolyserAsset);
break;
}

switch (p_electrolyserOperationMode){

Expand All @@ -46755,24 +46746,24 @@ switch (ElectrolyserAsset.getState()){
elektrolyserSetpointElectric_kW = 0;

if(energyModel.v_isRapidRun){
v_totalDownTimeElectrolyser_hr = v_totalDownTimeElectrolyser_hr + 0.25;
v_totalDownTimeElectrolyser_hr = v_totalDownTimeElectrolyser_hr + energyModel.p_timeStep_h;
}
break;

case STANDBY:
elektrolyserSetpointElectric_kW = 0;

if(energyModel.v_isRapidRun){
v_totalDownTimeElectrolyser_hr = v_totalDownTimeElectrolyser_hr + 0.25;
v_totalDownTimeElectrolyser_hr = v_totalDownTimeElectrolyser_hr + energyModel.p_timeStep_h;
}
break;

case IDLE:
elektrolyserSetpointElectric_kW = 0.025*ElectrolyserAsset.getInputCapacity_kW(); // 1 - 5 percent of nominal load to keep it warm!

if(energyModel.v_isRapidRun){
v_totalDownTimeElectrolyser_hr = v_totalDownTimeElectrolyser_hr + 0.25;
v_totalEnergyLossIdle_kWh = v_totalEnergyLossIdle_kWh + elektrolyserSetpointElectric_kW*0.25;
v_totalDownTimeElectrolyser_hr = v_totalDownTimeElectrolyser_hr + energyModel.p_timeStep_h;
v_totalEnergyLossIdle_kWh = v_totalEnergyLossIdle_kWh + elektrolyserSetpointElectric_kW*energyModel.p_timeStep_h;
}
break;

Expand Down Expand Up @@ -46818,7 +46809,7 @@ return elektrolyserSetpointElectric_kW;]]></Body>
<Id>1708448673879</Id>
<Name><![CDATA[f_electrolyserRegimeControl_Price]]></Name>
<Description><![CDATA[Function that defines the regime of the hydrogen plant of the next timestep. ]]></Description>
<X>1630</X><Y>110</Y>
<X>1630</X><Y>100</Y>
<Label><X>10</X><Y>0</Y></Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
Expand All @@ -46832,7 +46823,7 @@ return elektrolyserSetpointElectric_kW;]]></Body>
<Type><![CDATA[J_EAConversionElectrolyser]]></Type>
</Parameter>
<Body><![CDATA[ConnectionOwner ownerActor = (ConnectionOwner)l_ownerActor.getConnectedAgent();
double currentElectricityPriceCharge_eurpkWh = ownerActor.f_getElectricityPrice(-excessElectricPower_kW); // query price at 1kW
//double currentElectricityPriceCharge_eurpkWh = ownerActor.f_getElectricityPrice(-excessElectricPower_kW); // query price at 1kW
double currentElectricityPriceEPEX_eurpkWh = energyModel.v_epexForecast_eurpkWh;

switch (ElectrolyserAsset.getState()){
Expand Down Expand Up @@ -46912,7 +46903,7 @@ switch (ElectrolyserAsset.getState()){
<ReturnType><![CDATA[double]]></ReturnType>
<Id>1715611921617</Id>
<Name><![CDATA[f_electrolyserRegimeControl_Balance]]></Name>
<X>1630</X><Y>130</Y>
<X>1630</X><Y>120</Y>
<Label><X>10</X><Y>0</Y></Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
Expand Down Expand Up @@ -47043,7 +47034,7 @@ switch (ElectrolyserAsset.getState()){
<ReturnType><![CDATA[double]]></ReturnType>
<Id>1717066943639</Id>
<Name><![CDATA[f_resetSpecificGCStates_override]]></Name>
<X>1140</X><Y>550</Y>
<X>1230</X><Y>570</Y>
<Label><X>10</X><Y>0</Y></Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
Expand All @@ -47061,7 +47052,7 @@ v_hydrogenInStorage_kWh = 0;
<ReturnType><![CDATA[double]]></ReturnType>
<Id>1717068271650</Id>
<Name><![CDATA[f_resetSpecificGCStatesAfterRapidRun_override]]></Name>
<X>1140</X><Y>590</Y>
<X>1250</X><Y>590</Y>
<Label><X>10</X><Y>0</Y></Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
Expand Down Expand Up @@ -47141,7 +47132,7 @@ v_hydrogenInStorage_kWh = 0;]]></Body>
<ReturnType><![CDATA[double]]></ReturnType>
<Id>1731589202880</Id>
<Name><![CDATA[f_fillAnnualDatasets_electrolyser]]></Name>
<X>960</X><Y>560</Y>
<X>930</X><Y>560</Y>
<Label><X>10</X><Y>0</Y></Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
Expand Down Expand Up @@ -47346,7 +47337,7 @@ if (energyModel.b_isLastTimeStepOfDay) {
<LineColor>-14774017</LineColor>
<LineMaterial>null</LineMaterial>
<LineStyle>SOLID</LineStyle>
<Width>280</Width>
<Width>350</Width>
<Height>490</Height>
<Rotation>0.0</Rotation>
<FillColor>-1</FillColor>
Expand Down Expand Up @@ -51466,6 +51457,18 @@ public void f_manageHeatingAssets(){
@Override
public void f_connectToJ_EA_default(J_EA j_ea){
f_connectToJ_EA_default_overwrite(j_ea);
}

/*
@Override
public void f_resetSpecificGCStatesAfterRapidRun(){
f_resetSpecificGCStatesAfterRapidRun_override();
}
*/

@Override
public void f_resetSpecificGCStates(){
f_resetSpecificGCStates_override();
}]]></AdditionalClassCode>
<ExtendsReference>
<PackageName><![CDATA[zero_engine]]></PackageName>
Expand Down Expand Up @@ -51945,6 +51948,21 @@ public void f_connectToJ_EA_default(J_EA j_ea){
</InitialValue>
</Properties>
</Variable>
<Variable Class="PlainVariable">
<Id>1734716021367</Id>
<Name><![CDATA[v_batteryMoneyMade_euro]]></Name>
<X>1250</X><Y>630</Y>
<Label><X>10</X><Y>0</Y></Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
<ShowLabel>true</ShowLabel>
<Properties SaveInSnapshot="true" Constant="false" AccessType="public" StaticVariable="false">
<Type><![CDATA[double]]></Type>
<InitialValue Class="CodeValue">
<Code><![CDATA[0]]></Code>
</InitialValue>
</Properties>
</Variable>
<Variable Class="Parameter">
<Id>1718725906048</Id>
<Name><![CDATA[p_gisRegion]]></Name>
Expand Down Expand Up @@ -52828,6 +52846,11 @@ if (p_batteryAsset.getStorageCapacity_kWh() != 0){
}

p_batteryAsset.v_powerFraction_fr = max(-1,min(1, chargeSetpoint_kW / p_batteryAsset.getCapacityElectric_kW())); // Convert to powerFraction and limit power

//double chargedPower_kW = max(0,p_batteryAsset.v_powerFraction_fr*p_batteryAsset.getCapacityElectric_kW());
//double dischargedPower_kW = min(0,p_batteryAsset.v_powerFraction_fr*p_batteryAsset.getCapacityElectric_kW());

v_batteryMoneyMade_euro += -p_batteryAsset.v_powerFraction_fr*p_batteryAsset.getCapacityElectric_kW()*energyModel.p_timeStep_h*energyModel.v_epexForecast_eurpkWh;
//}

}
Expand Down Expand Up @@ -52908,6 +52931,18 @@ v_amountOfDistrictHeating_agriculture_fr = pctArray[3]/100;

]]></Body>
</Function>
<Function AccessType="default" StaticFunction="false">
<ReturnModificator>VOID</ReturnModificator>
<ReturnType><![CDATA[double]]></ReturnType>
<Id>1734716016619</Id>
<Name><![CDATA[f_resetSpecificGCStates_override]]></Name>
<X>1250</X><Y>610</Y>
<Label><X>10</X><Y>0</Y></Label>
<PublicFlag>false</PublicFlag>
<PresentationFlag>true</PresentationFlag>
<ShowLabel>true</ShowLabel>
<Body><![CDATA[v_batteryMoneyMade_euro = 0;]]></Body>
</Function>
</Functions>
<AgentLinks>
<AgentLink>
Expand Down
Loading