Powered by OpenAIRE graph
Found an issue? Give us feedback
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/ ZENODOarrow_drop_down
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/
ZENODO
Dataset . 2018
License: CC BY NC
Data sources: Datacite
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/
ZENODO
Dataset . 2018
License: CC BY NC
Data sources: Datacite
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/
ZENODO
Dataset . 2018
License: CC BY NC
Data sources: ZENODO
versions View all 2 versions
addClaim

Wind Tunnel Experiment Of A Micro Wind Farm Model

Authors: Bossuyt Juliaan; Meneveau Charles; Meyers Johan;

Wind Tunnel Experiment Of A Micro Wind Farm Model

Abstract

Simultaneous strain gage measurements of sixty porous disk models, in a scaled wind farm with one hundred models, and for fifty-six different layouts. For detailed information about the experimental setup and wind farm layouts see: Bossuyt, J., Meneveau, C., & Meyers, J. (2018). Effect of layout on asymptotic boundary layer regime in deep wind farms. Physical Review Fluids. See also: https://arxiv.org/abs/1808.09579 . For more information about the experimental design of the porous disk models, see also: Bossuyt, J., Howland, M. F., Meneveau, C., & Meyers, J. (2017). Measurement of unsteady loading and power output variability in a micro wind farm model in a wind tunnel. Experiments in Fluids, 58(1), 1. http://doi.org/10.1007/s00348-016-2278-6 Bossuyt, J., Meneveau, C., & Meyers, J. (2017). Wind farm power fluctuations and spatial sampling of turbulent boundary layers. Journal of Fluid Mechanics, 823, 329-344. http://doi.org/10.1017/jfm.2017.328 The data contains matrices 'WF_U', 'x', and 'y', and variable 'fs' for each layout. The matrix 'WF_U' contains the reconstructed velocity signal in m/s measured by each porous disk, and has size ( 20 , 3 , number of time samples), with 20 the number of porous disk rows, and 3 the number of streamwise aligned porous disk columns in the wind farm. Matrices 'x', and 'y' have size (20,3) and contain the locations of each instrumented porous disk in units of disk diameter D = 0.03m. It is important to note that the wind farm has one extra column of non-instrumented porous disk models on each side, for a total of 20x5=100 porous disk models.The variable 'fs' contains the sampling frequency in Hz, at which all 60 porous disks are simultaneously sampled. -------------------------------------------------------- Example code to load data in Matlab : -------------------------------------------------------- filename = 'U_C1_1.h5'; fileID = H5F.open(filename,'H5F_ACC_RDONLY','H5P_DEFAULT'); datasetID = H5D.open(fileID,'WF_U'); WF_U = H5D.read(datasetID,'H5ML_DEFAULT','H5S_ALL','H5S_ALL','H5P_DEFAULT'); H5D.close(datasetID); datasetID = H5D.open(fileID,'fs'); fs = H5D.read(datasetID,'H5ML_DEFAULT','H5S_ALL','H5S_ALL','H5P_DEFAULT'); H5D.close(datasetID); datasetID = H5D.open(fileID,'x'); x = H5D.read(datasetID,'H5ML_DEFAULT','H5S_ALL','H5S_ALL','H5P_DEFAULT'); H5D.close(datasetID); datasetID = H5D.open(fileID,'y'); y = H5D.read(datasetID,'H5ML_DEFAULT','H5S_ALL','H5S_ALL','H5P_DEFAULT'); H5D.close(datasetID); H5F.close(fileID); -------------------------------------------------------- Example code to load data in Python: -------------------------------------------------------- import h5py filename = 'U_C1_1.h5' f = h5py.File(filename, 'r') U = f['WF_U'][()] x = f['x'][()] y = f['y'][()] fs = f['fs'][0][0] f.close() -------------------------------------------------------- Example code to generate figures 15 and 16 of Bossuyt et al. (2018). Effect of layout on asymptotic boundary layer regime in deep wind farms. Physical Review Fluids, in Matlab -------------------------------------------------------- WF_cases_selected = 1:7; folder = '/';% folder with files WF_cases_l = {'U_C1';'U_C2';'NU1_C1';'NU1_C2';'NU2_C1';'NU2_C2';'NU2_C3'};% name of layout variations WF_cases_n = [6, 7, 11, 8, 11, 7, 6]; % 'number of layout variations for each case WF_data.x = cell( length(WF_cases_selected) , 1);% x - coordinates of porous disk locations WF_data.y = cell( length(WF_cases_selected) , 1);% y - coordinates of porous disk locations WF_data.shift = cell( length(WF_cases_selected) , 1);% spanwise shift of layout series WF_data.fs = cell( length(WF_cases_selected) , 1); WF_data.WF_Pm = cell( length(WF_cases_selected) , 1); WF_data.WF_Um = cell( length(WF_cases_selected) , 1); WF_data.WF_U_rms = cell( length(WF_cases_selected) , 1); for i = 1 : length(WF_cases_selected) WF_data_case = struct; WF_data_case.x = cell( WF_cases_n(i) , 1); WF_data_case.y = cell( WF_cases_n(i) , 1); WF_data_case.shift = cell( WF_cases_n(i) , 1); WF_data_case.fs = cell( WF_cases_n(i) , 1); WF_data_case.WF_Pm = cell( WF_cases_n(i) , 1); WF_data_case.WF_Um = cell( WF_cases_n(i) , 1); WF_data_case.WF_U_rms = cell( WF_cases_n(i) , 1); for j = 1:WF_cases_n(i) clc i j WF_data_var = struct; %read the file filename = [folder WF_cases_l{i} '_' num2str(j) '.h5']; fileID = H5F.open(filename,'H5F_ACC_RDONLY','H5P_DEFAULT'); datasetID = H5D.open(fileID,'WF_U'); WF_data_var.WF_U = H5D.read(datasetID,'H5ML_DEFAULT','H5S_ALL','H5S_ALL','H5P_DEFAULT'); H5D.close(datasetID); datasetID = H5D.open(fileID,'fs'); WF_data_case.fs{j} = H5D.read(datasetID,'H5ML_DEFAULT','H5S_ALL','H5S_ALL','H5P_DEFAULT'); H5D.close(datasetID); datasetID = H5D.open(fileID,'x'); WF_data_case.x{j} = H5D.read(datasetID,'H5ML_DEFAULT','H5S_ALL','H5S_ALL','H5P_DEFAULT'); H5D.close(datasetID); datasetID = H5D.open(fileID,'y'); WF_data_case.y{j} = H5D.read(datasetID,'H5ML_DEFAULT','H5S_ALL','H5S_ALL','H5P_DEFAULT'); H5D.close(datasetID); H5F.close(fileID); WF_data_var.WF_P = WF_data_var.WF_U.^3; % Time averaged power WF_data_case.WF_Pm{j} = mean(WF_data_var.WF_P,3); % normalize by power in first row: Pi/P1 WF_data_case.WF_Pm{j} = WF_data_case.WF_Pm{j}./mean(WF_data_case.WF_Pm{j}(1,:)); % Time averaged velocity WF_data_case.WF_Um{j} = mean(WF_data_var.WF_U,3); % u_rms --> TI WF_data_case.WF_U_rms{j} = std(WF_data_var.WF_U,[],3); end WF_data.x{i} = WF_data_case.x; WF_data.y{i} = WF_data_case.y; WF_data.fs{i} = WF_data_case.fs; WF_data.WF_Pm{i} = WF_data_case.WF_Pm; WF_data.WF_Um{i} = WF_data_case.WF_Um; WF_data.WF_U_rms{i} = WF_data_case.WF_U_rms; %determine spanwise shift for plot legends tmp1 = WF_data.y{i}{j-1}; tmp2 = WF_data.y{i}{j}; dy = diff( [tmp1(:,1) tmp2(:,1)] ,1,2); dy = max(dy(abs(dy)>0)); WF_data.shift{i} = 0:dy:(WF_cases_n(i)-1)*dy; end %% line_tick = {'o-','*-','+-','d-','s-','^-','v-','<-','>-','p-','h-'}; line_color = [51,160,44; 141,211,199; 31,120,180; 106,61,154; 227,26,28; 177,89,40; 255,127,0; 166,206,227]./255; legend_items = cell(size(WF_cases_selected)); for i = 1:length(legend_items) legend_items{i} = strrep(WF_cases_l{i},'_','-'); end %% average power entire farm row_start = 1; row_end = 19; f1 = figure; set(gcf,'paperposition',[0,0,8.4,4.9]) hold on for i = 1 : length(WF_cases_selected) tmp_P = zeros(size(WF_data.shift{i})); for j = 1:WF_cases_n(i) tmp_P(j) = mean(mean( WF_data.WF_Pm{i}{j}(row_start:row_end,:))); end plot( WF_data.shift{i} , tmp_P, line_tick{i} ,'Color', line_color(i,:) ,'MarkerFaceColor', line_color(i,:) ) end % manualy plot errorbars for i = 1:length(WF_cases_selected) tmp_P = zeros(size(WF_data.shift{i})); for j = 1:WF_cases_n(i) tmp_P(j) = mean(mean( WF_data.WF_Pm{i}{j}(row_start:row_end,:))); end px = WF_data.shift{i} ; py = tmp_P; pw = 0.05; pe = zeros(size(px))+0.01;%for uncertainty value see Bossuyt et al. (2018) Physical Review Fluids. for j = 1:WF_cases_n(i) plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)+pe(j) py(j)+pe(j)],'-', 'Color', line_color(i,:),'LineWidth',0.5) plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)-pe(j) py(j)-pe(j)],'-', 'Color', line_color(i,:),'LineWidth',0.5) plot( [px(j) px(j)],[py(j)-pe(j) py(j)+pe(j)],':', 'Color', line_color(i,:),'LineWidth',0.5) end end xlabel('\Delta_y [D]') ylabel('$\langle P_i /P_1\rangle_{1}^{19}$','Interpreter','Latex') box('on') ylim([0.35 0.66]) xlim([-0.1 2.6]) legend1 = legend(legend_items'); set(legend1,'Location','southeast'); print(f1, 'WF_Pm_all','-dpng','-r300') %% average power end of farm row_start = 16; row_end = 19; f2 = figure; set(gcf,'paperposition',[0,0,8.4,4.9]) hold on for i = 1 : length(WF_cases_selected) tmp_P = zeros(size(WF_data.shift{i})); for j = 1:WF_cases_n(i) tmp_P(j) = mean(mean( WF_data.WF_Pm{i}{j}(row_start:row_end,:))); end plot( WF_data.shift{i} , tmp_P, line_tick{i} ,'Color', line_color(i,:) ,'MarkerFaceColor', line_color(i,:) ) end % manualy plot errorbars for i = 1:length(WF_cases_selected) tmp_P = zeros(size(WF_data.shift{i})); for j = 1:WF_cases_n(i) tmp_P(j) = mean(mean( WF_data.WF_Pm{i}{j}(row_start:row_end,:))); end px = WF_data.shift{i} ; py = tmp_P; pw = 0.05; pe = zeros(size(px))+0.02; %for uncertainty value see Bossuyt et al. (2018) Physical Review Fluids. for j = 1:WF_cases_n(i) plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)+pe(j) py(j)+pe(j)],'-', 'Color', line_color(i,:),'LineWidth',0.5) plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)-pe(j) py(j)-pe(j)],'-', 'Color', line_color(i,:),'LineWidth',0.5) plot( [px(j) px(j)],[py(j)-pe(j) py(j)+pe(j)],':', 'Color', line_color(i,:),'LineWidth',0.5) end end xlabel('\Delta_y [D]') ylabel('$\langle P_i /P_1\rangle_{16}^{19}$','Interpreter','Latex') box('on') ylim([0.27 0.52]) xlim([-0.1 2.6]) legend1 = legend(legend_items'); set(legend1,'Location','southeast'); print(f2, 'WF_Pm_end', '-dpng','-r300') %% plot average unsteady loading total farm row_start = 1; row_end = 19; f3 = figure; set(gcf,'paperposition',[0,0,8.4,4.9]) hold on for i = 1 : length(WF_cases_selected) tmp_TI = zeros(size(WF_data.shift{i})); for j = 1:WF_cases_n(i) tmp_TI(j) = mean(mean(WF_data.WF_U_rms{i}{j}(row_start:row_end,:)./WF_data.WF_Um{i}{j}(row_start:row_end,:)))*100; end plot( WF_data.shift{i} , tmp_TI , line_tick{i} ,'Color', line_color(i,:) ,'MarkerFaceColor', line_color(i,:)) end % manualy plot errorbars for i = 1:length(WF_cases_selected) tmp_TI = zeros(size(WF_data.shift{i})); for j = 1:WF_cases_n(i) tmp_TI(j) = mean(mean(WF_data.WF_U_rms{i}{j}(row_start:row_end,:)./WF_data.WF_Um{i}{j}(row_start:row_end,:)))*100; end px = WF_data.shift{i} ; py = tmp_TI; pw = 0.05; pe = zeros(size(px))+ 0.004*tmp_TI;%for uncertainty value see Bossuyt et al. (2018) Physical Review Fluids. for j = 1:WF_cases_n(i) plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)+pe(j) py(j)+pe(j)],'-', 'Color', line_color(i,:),'LineWidth',0.5) plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)-pe(j) py(j)-pe(j)],'-', 'Color', line_color(i,:),'LineWidth',0.5) plot( [px(j) px(j)],[py(j)-pe(j) py(j)+pe(j)],':', 'Color', line_color(i,:),'LineWidth',0.5) end end xlabel('\Delta_y [D]') ylabel('$ \langle TI \rangle_{1}^{19} [\%]$','Interpreter','Latex') box('on') xlim([-0.1 2.6]) legend1 = legend(legend_items'); set(legend1,'Location','northeast'); print(f3, 'WF_TI_all','-dpng','-r300') %% plot average unsteady loading end of farm row_start = 16; row_end = 19; f4 = figure; set(gcf,'paperposition',[0,0,8.4,4.9]) hold on for i = 1 : length(WF_cases_selected) tmp_TI = zeros(size(WF_data.shift{i})); for j = 1:WF_cases_n(i) tmp_TI(j) = mean(mean(WF_data.WF_U_rms{i}{j}(row_start:row_end,:)./WF_data.WF_Um{i}{j}(row_start:row_end,:)))*100; end plot( WF_data.shift{i} , tmp_TI , line_tick{i} ,'Color', line_color(i,:) ,'MarkerFaceColor', line_color(i,:)) end % manualy plot errorbars for i = 1:length(WF_cases_selected) tmp_TI = zeros(size(WF_data.shift{i})); for j = 1:WF_cases_n(i) tmp_TI(j) = mean(mean(WF_data.WF_U_rms{i}{j}(row_start:row_end,:)./WF_data.WF_Um{i}{j}(row_start:row_end,:)))*100; end px = WF_data.shift{i} ; py = tmp_TI; pw = 0.05; pe = zeros(size(px))+ 0.01*tmp_TI;%for uncertainty value see Bossuyt et al. (2018) Physical Review Fluids. for j = 1:WF_cases_n(i) plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)+pe(j) py(j)+pe(j)],'-', 'Color', line_color(i,:),'LineWidth',0.5) plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)-pe(j) py(j)-pe(j)],'-', 'Color', line_color(i,:),'LineWidth',0.5) plot( [px(j) px(j)],[py(j)-pe(j) py(j)+pe(j)],':', 'Color', line_color(i,:),'LineWidth',0.5) end end xlabel('\Delta_y [D]') ylabel('$ \langle TI \rangle_{16}^{19} [\%]$','Interpreter','Latex') box('on') xlim([-0.1 2.6]) legend1 = legend(legend_items'); set(legend1,'Location','northeast'); print(f4, 'WF_TI_end','-dpng','-r300')

{"references": ["Bossuyt, J., Meneveau, C., & Meyers, J. (2018). Effect of layout on asymptotic boundary layer regime in deep wind farms. Physical Review Fluids.", "Bossuyt, J., Howland, M. F., Meneveau, C., & Meyers, J. (2017). Measurement of unsteady loading and power output variability in a micro wind farm model in a wind tunnel.\u00a0Experiments in Fluids,\u00a058(1), 1.\u00a0http://doi.org/10.1007/s00348-016-2278-6", "Bossuyt, J., Meneveau, C., & Meyers, J. (2017). Wind farm power fluctuations and spatial sampling of turbulent boundary layers.\u00a0Journal of Fluid Mechanics,\u00a0823, 329-344.\u00a0http://doi.org/10.1017/jfm.2017.328"]}

Related Organizations
Keywords

wind tunnel experiment, wind farm, porous disk, strain gage, layout

  • BIP!
    Impact byBIP!
    selected citations
    These citations are derived from selected sources.
    This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    1
    popularity
    This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
    Average
    influence
    This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    Average
    impulse
    This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
    Average
    OpenAIRE UsageCounts
    Usage byUsageCounts
    visibility views 33
    download downloads 29
  • 33
    views
    29
    downloads
    Powered byOpenAIRE UsageCounts
Powered by OpenAIRE graph
Found an issue? Give us feedback
visibility
download
selected citations
These citations are derived from selected sources.
This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Citations provided by BIP!
popularity
This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
BIP!Popularity provided by BIP!
influence
This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Influence provided by BIP!
impulse
This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
BIP!Impulse provided by BIP!
views
OpenAIRE UsageCountsViews provided by UsageCounts
downloads
OpenAIRE UsageCountsDownloads provided by UsageCounts
1
Average
Average
Average
33
29