Untitled
unknown
matlab
a year ago
2.7 kB
12
Indexable
function [E_out, P_elec, unmetDemand] = bioyearlyrequired(m_biomass, hourlyDemand, params, plotGraph)
% Input Parameters
% m_biomass: Initial biomass available (kg)
% hourlyDemand: Array of hourly demand data (kW)
% params: Structure containing biomass system parameters
% plotGraph: Boolean to indicate whether to plot results
% Extract parameters
CV = params.CV; % Calorific value of biomass (MJ/kg)
eta = params.eta; % Efficiency of the system (0 to 1)
system_capacity = params.capacity; % Maximum system capacity (kg/hour)
conversion_rate = params.conversion_rate; % Energy-to-power conversion rate (kW/MJ)
% Initialize variables
numHours = length(hourlyDemand);
biomassUsed = zeros(numHours, 1); %zero matrix , will be filled in the loop
energyOutput = zeros(numHours, 1);
powerOutput = zeros(numHours, 1);
unmetDemand = zeros(numHours, 1);
% Biomass stockpile
remainingBiomass = m_biomass; %set remaining biomass as initial biomass before entering loop
% Hourly calculations
for hour = 1:numHours
% Calculate required energy and biomass
requiredEnergy = hourlyDemand(hour) / conversion_rate; % MJ
requiredBiomass = requiredEnergy / (CV * eta); % kg
% Check if biomass is sufficient
if requiredBiomass > remainingBiomass
% Biomass is insufficient
biomassUsed(hour) = remainingBiomass;
remainingBiomass = 0;
unmetDemand(hour) = hourlyDemand(hour) - (biomassUsed(hour) * CV * eta * conversion_rate);
else
% Biomass is sufficient
biomassUsed(hour) = requiredBiomass;
remainingBiomass = remainingBiomass - requiredBiomass;
unmetDemand(hour) = 0;
end
% Calculate energy and power output
E_out_temp = biomassUsed(hour) * CV * eta; % MJ
P_elec_temp = E_out_temp * conversion_rate; % kW
% Store results
energyOutput(hour) = E_out_temp;
powerOutput(hour) = P_elec_temp;
end
% Total outputs
E_out = sum(energyOutput); % Total energy output (MJ)
P_elec = sum(powerOutput); % Total power output (kW)
% Plot results if requested
if plotGraph
% Plot biomass usage
figure;
plot(1:numHours, biomassUsed, 'b-', 'LineWidth', 1.5);
xlabel('Hour');
ylabel('Biomass Used (kg)');
title('Hourly Biomass Usage');
grid on;
% Plot unmet demand
figure;
plot(1:numHours, unmetDemand, 'r-', 'LineWidth', 1.5);
xlabel('Hour');
ylabel('Unmet Demand (kW)');
title('Hourly Unmet Demand');
grid on;
end
endEditor is loading...
Leave a Comment