The UFZ services GitLab and Mattermost will be unavailable on Monday, July 4 from 06:00 AM to 08:00 AM due to maintenance work.

Commit 9f402a3b authored by Markus Millinger's avatar Markus Millinger
Browse files

Added input of biomass residues separated in initial and end values and...

Added input of biomass residues separated in initial and end values and calculated scenarios for FORMIND-coupling
parent 23659205
No preview for this file type
This diff is collapsed.
No preview for this file type
......@@ -27,9 +27,9 @@ close all;
%% Data Import
% Conversion options, biomass crops and residues and other data
% techData = ...
% importdata('../data/BENOPT_inputData_200409.xls'); %Save to variable - comment out if the .mat-file is up to date
% save('../data/techData.mat','techData'); %Save to .mat-file - comment out if the .mat-file is up to date
techData = ...
importdata('../data/BENOPT_inputData_200409.xls'); %Save to variable - comment out if the .mat-file is up to date
save('../data/techData.mat','techData'); %Save to .mat-file - comment out if the .mat-file is up to date
techData = ...
importdata('../data/techData.mat'); %reads data from .mat file
......@@ -39,7 +39,7 @@ techData.data.feedstockInputData(isnan(techData.data.feedstockInputData)) =
%% Scenario parameter calculation and optimisation in GAMS
noScenarios = 2;
noScenarios = 6;
for scenario = 1:noScenarios
%Clear variables for each scenario loop
......@@ -104,11 +104,24 @@ for scenario = 1:noScenarios
%% Scenario loop
switch scenario
case 1 %Base scenario
case 1 %Base scenario 312 PJ wood 2050
case 2 %No arable land for energy crops
f.resPotEnd = (218/312)*f.resPotEnd;
g.landMax = 10^6.*linspace(0,0,s.runTime); %ha
case 3
f.resPotEnd = (1051/312)*f.resPotEnd;
case 4
f.resPotEnd = (93/312)*f.resPotEnd;
case 5
f.resPotEnd = (65/312)*f.resPotEnd;
case 6
f.resPotEnd = (315/312)*f.resPotEnd;
end
[f,g,s] = setData(techData,f,g,s);
g.landMax = 10^6.*linspace(0,0,s.runTime); %ha
%Calculation of hourly residual load and other power metrics
[residualLoad,powerYear,s.RENshare,s.RENshare100] = ...
vrePower(s.onShore,...
......@@ -143,7 +156,7 @@ for scenario = 1:noScenarios
gamsRun(s,f,g,scenario,noScenarios,gamsTemp,'ghgMax');
%% Iterate pareto
noPareto = 2;
noPareto = 1;
% Set the GHG target vector (as share of max. achievable GHG abatement
% from GHG optimization)
......
......@@ -94,7 +94,7 @@ g.TSconvTH=transpose(unique(row));
% end
%% Fuel deployment across sectors
for scenario=1:3
for scenario=1%:3
figure (1+scenario)
k=1;
for j=1:s.numSectors%[6 8 9 7 10 11] %1:s.numSectors
......@@ -157,7 +157,12 @@ figure(126789546)
for scenario=1:noScenarios
col = setCol;
paretoIter=1;
subplot(1,noScenarios+1,scenario)
if scenario<=3
subplot(2,4,scenario)
else
subplot(2,4,scenario+1)
end
h1=area(paretoVar(scenario,paretoIter).prd2(:,g.TSall));
hold on
for i = 1:length(g.TSall)
......@@ -168,11 +173,12 @@ for scenario=1:noScenarios
% plot(Dsum,'color','black','LineStyle',':')
set(h1,'LineStyle','none');
xlim([1 s.runTime])
ylim([0 1600])
% biomass={'412 PJ Wood','207 PJ Wood','715 PJ Wood'};
ylim([0 1000])
% title([biomass(scenario) '=>' num2str(gamsOut(scenario).ghgTarget*10^-6) ' GtCO_2eq']);
title([num2str(gamsOut(scenario).ghgTarget*10^-6) ' GtCO_2eq']);
biomass={'312 PJ Wood','218 PJ Wood','1051 PJ Wood','93 PJ Wood','65 PJ Wood','315 PJ Wood'};
title([biomass(scenario) '=>' num2str(gamsOut(scenario).ghgTarget*10^-6) ' GtCO_2eq']);
% title([num2str(gamsOut(scenario).ghgTarget*10^-6) ' GtCO_2eq']);
set(gca,'XTickLabel',{'2020','','2030','','2040','','2050'},'XTick',[1,6,11,16,21,26,31])
if scenario==1
% set(gca,'YTickLabel',{'100','200','300','400','500','600','700'},'YTick',[100,200,300,400,500,600,700])
......
......@@ -75,17 +75,18 @@ f.cropYieldFMhigh = techData.data.feedstockInputData(70+indexCountry
f.cropLandUseInit = techData.data.feedstockInputData(100+indexCountry,1:end); % [ha]
% Residue potential data [PJ_feed]
f.resPot = techData.data.countryData(120:120+f.numResidue-1,indexCountry).*ones(1,s.runTime); %PJ_feed
f.resPotInit = techData.data.countryData(120:120+f.numResidue-1,indexCountry); %PJ_feed
f.resPotEnd = techData.data.countryData(140:140+f.numResidue-1,indexCountry); %PJ_feed
f.resPotImport = ...
techData.data.countryData(140:140+f.numResidue+f.numCrop-1,indexCountry).*ones(1,s.runTime);
techData.data.countryData(160:160+f.numResidue+f.numCrop-1,indexCountry).*ones(1,s.runTime);
% Residue price start [/GJ]
f.resPriceIniMin = techData.data.countryData(170:170+f.numResidue-1,indexCountry);
f.resPriceIniMax = techData.data.countryData(190:190+f.numResidue-1,indexCountry);
f.resPriceIniMin = techData.data.countryData(190:190+f.numResidue-1,indexCountry);
f.resPriceIniMax = techData.data.countryData(210:210+f.numResidue-1,indexCountry);
g.resImportMax = techData.data.countryData(202,indexCountry).*ones(1,s.runTime);
g.resImportMax = techData.data.countryData(222,indexCountry).*ones(1,s.runTime);
s.ghgEFPowerData = techData.data.countryData(210:213,indexCountry)'; %kgCO2eq/kWh
s.ghgEFPowerData = techData.data.countryData(230:233,indexCountry)'; %kgCO2eq/kWh
s.powerLoad = powerDataCountry{:,contains(powerDataCountry.Properties.VariableNames,join([countryID,'_load_actual_entsoe_power_statistics']))};
s.PVcap = powerDataCountry{:,contains(powerDataCountry.Properties.VariableNames,join([countryID,'_solar_cap']))};
......
......@@ -168,7 +168,9 @@ end
s.plantCapacityFactor = s.plantFullLoadHours./8760;
%% Definition of Biomass/ Feedstock data
for i=1:f.numResidue
f.resPot(i,:) = linspace(f.resPotInit(i),f.resPotEnd(i),s.runTime);
end
%%%%%%%% GHG Feedstock
%Emissions
f.ghgSeeds = techData.data.feedstockInputData(19,1:end); %kg/ha/a
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment