oemof-thermal icon indicating copy to clipboard operation
oemof-thermal copied to clipboard

quality grade sould not be a fixed value

Open ttjaden opened this issue 3 years ago • 4 comments

Because of my switch from matlab to python I wanted to start to use oemof thermal for time series calculations with heat pumps. For the last years i used the open source toolbox Carnot 7.1 and its models. There, it is well documented that the quality grade is not a fixed value.

  • Therefore it should be considered to change your heat pump model to accept pandas.dataframes or lists or arrays as input for quality grade
  • And next: A small function would be great to calculate the quality grade from datasheet input as a lookup-table or function of t_low and t_high

Here an example how much the quality grade relies on the different temperatures

Calculating the quality factor for "Stiebel Eltron WPL 13" with matlab With data from Datasheet and parameter identification (Schwarmberger), see Carnot 7.1 https://fh-aachen.sciebo.de/index.php/s/0hxub0iIJrui3ED?path=%2FCARNOT_documentation_7.1 see heat_pump.html Parameter of th heat pump

load('Stiebel_WPL_13.mat')
K1=K_h(1);K2=K_h(2);K3=K_h(3);   % K1..K3 for thermal
K4=K_h(4);K5=K_h(5);K6=K_h(6);   % K4..K6 for electric

loop for calculating heat and electric power over different temperatures

T_low = [-20:1:30]; %°C
T_high = [20:1:70]; %°C
for i=1:length(T_low)
    for j=1:length(T_high)
P_th_WP(j,i)  = K1*T_low(i) + K2*T_high(j) + K3;
P_el_WP(j,i)  = K4*T_low(i) + K5*T_high(j) + K6;
    end
end

Heating power in W

contourf(T_low,T_high,P_th_WP);
xlabel('Source temperature in °C')
ylabel('outlet temperature in °C')
title('heating power in W')
colorbar

image

electric power in W

contourf(T_low,T_high,P_el_WP);
xlabel('Source temperature in °C')
ylabel('outlet temperature in °C')
title('eletric power in W')
colorbar

image

COP

cop=P_th_WP./P_el_WP;
contourf(T_low,T_high,cop);
xlabel('Source temperature in °C')
ylabel('outlet temperature in °C')
title('COP')
colorbar

image

Quality factor

for i=1:length(T_low)
    for j=1:length(T_high)
carnot(j,i) = (T_high(j)+273.15)/((T_high(j)+273.15)-(T_low(i)+273.15));
    end
end
eta = cop ./ carnot;
contourf(T_low,T_high,eta);
xlabel('Source temperature in °C')
ylabel('outlet temperature in °C')
title('Quality grade')
colorbar

image

Plot quality grade over temperature difference

for i=1:length(T_low)
    for j=1:length(T_high)
t_diff(j,i) = T_high(j)-T_low(i);
    end
end
for i=1:length(T_low)
scatter(t_diff(:,i),eta(:,i))
hold on
end
xlabel('temperature difference (high - low) in K')
ylabel('quality grade')
title('Quality grade')
grid on
xlim([0,100])
ylim([0,0.5])

image

The last image shows that it is note recommended to find a fit-function with x=temperature difference. It has to be a fit with x1=temp_low and x2=temp_high

ttjaden avatar Feb 11 '21 10:02 ttjaden