sunnuntai 30. elokuuta 2015

Tuulivoimalan tuotannon arviointi Octave-matematiikkaohjelmistolla

Tässä Octave-lähdekoodi:

%Tuotto.m
A_w = 5.0; %Weibull-jakauman "keskikohta", m/s
k_w = 2.41; %hajontaa kuvaava kerroin
%Weibull-funktio
w = inline('k./A.*(v./A).^(k-1).*exp(-(v./A).^k)');
v = 0:0.01:22; % Simuloidaan tuulen nopeuksilla 0-22m/s
r = 2.5; % Siiven pituus (metriä)
nu = 0.22; % Tuulivoimalan hyötysuhde
A = pi*r^2; % Siiven pyyhkäisypinta-ala (m^2)
rho = 1.29; % Ilman tiheys kg/(m^3)
% Asennuspaikan olosuhteet
wb = w(A_w, k_w, v);
wb = wb./sum(wb);
if (yes_or_no('Haluatko nähdä Weibull-jakauman?') == 1)
   plot(v,wb)
endif
P_k2 = (1/2)*rho*A.*v.^3.*nu;

% Voimalan tuotto asennuspaikan olosuhteissa (Wattia)
P_k = (1/2)*rho*A*sum(v.^3.*wb)*nu;
% Voimalan tuotto vuodessa (Wh)
P_k_vuosi = P_k*(365*24)
teksti_vuosi = 'Voimalan tuotto vuodessa: ';
jako = 1;
yksikko = ' W';
if (P_k_vuosi > 1e3)
  yksikko = ' kWh';
  jako = 1e3;
endif
if (P_k_vuosi > 1e6)
  yksikko = ' MWh';
  jako = 1e6;
endif
if (P_k_vuosi > 1e9)
  yksikko = ' GWh';
  jako = 1e9;
endif
if (P_k_vuosi > 1e12)
  yksikko = ' TWh';
  jako = 1e12;
endif
tehotxt = num2str(P_k_vuosi/jako);
disp([teksti_vuosi, tehotxt, yksikko, ' (muuttujassa P_k_vuosi)']);

teksti_keski = 'Voimalan keskimaarainen tuotto: ';
jako = 1;
yksikko = ' W';
if (P_k > 1e3)
  yksikko = ' kW';
  jako = 1e3;
endif
if (P_k > 1e6)
  yksikko = ' MW';
  jako = 1e6;
endif
if (P_k > 1e9)
  yksikko = ' GW';
  jako = 1e9;
endif
if (P_k > 1e12)
  yksikko = ' TW';
  jako = 1e12;
endif
tehotxt = num2str(P_k/jako);
disp([teksti_keski, tehotxt, yksikko, ' (muuttujassa P_k)']);
% clear A A_w ans jako k_w nu r rho tehotxt
% clear teksti_keski teksti_vuosi v w wb yksikko


Tallenna koodi tiedostoon tuotto.m ja aja se komennolla source('tuotto.m') ja seuraa ohjeita. Tuloksiin täytyy suhtautua tietyllä varauksella. Varmista, että Weibull jakauma vastaa todellista tuulennopeusjakaumaa alueellasi. Ilman tiheys +20C vrt -20C lisää tuottoa talvella n. 16 %.

Ei kommentteja:

Lähetä kommentti