MATLAB Examples

Neutral and unstable spectra

The wind spectra for a neutral and unstable atmospheric stratification are computed following the model proposed by Højstrup [1]. The model of Højstrup aims to describe the wind spectra in the surface layer for both neutral and unstable air. For a stable stratification, the model is therefore not applicable.

This model reslies on the Monin-Obukhov Similarity theory (MOST) and the Kaimal spectral model [2]. The Høystrup model proposes a spectra made of the summation of two terms, the first one being stability-dependant, and the second one being the Kaimal spectrum. The scaling length for the first term is the inversion height, whereas the scaling length for the seond one is the measurement height. The model proposed by Højstrup does not applies for the temperature spectrum nor the cross-spectrum Suw.

This example illustrates the Højstrup model for the along-wind component and the vertical one, for 5 different Obukhov length L.

[1] Højstrup, J. (1981). A simple model for the adjustment of velocity spectra in unstable conditions downstream of an abrupt change in roughness and heat flux. Boundary-Layer Meteorology, 21(3), 341-356.

[2] Kaimal, J. C., Wyngaard, J., Izumi, Y., & Coté, O. R. (1972). Spectral characteristics of surface?layer turbulence. Quarterly Journal of the Royal Meteorological Society, 98(417), 563-589.

clearvars;close all;clc;

% Definition of the parameters
L = [-1e4,-500,-250,-50,-25]; % obukhov length (m)
f = logspace(-5,1,100); % frequency vector
z = 5; % measurement height (m) -> arbitrary chosen
zi = 1500; % inversion height (m) -> arbitrary chosen
zL = z./L; % Stability parameter defined w.r.t z
ziL = zi./L; % Stability parameter defined w.r.t zi

U = 10; % mean wind speed at altitude z -> arbitrary chosen
u_star = 0.4; % Friction velocity
fr = f*z/U; % reduced frequency with scaling by z
fi = f*zi/U; %  reduced frequency with scaling by zi

clear leg
M = numel(L);
Su = zeros(M,numel(f));
Sw = zeros(M,numel(f));
for ii=1:M,
    Su(ii,:) = longitudinalSpectrum_Hojstrup(u_star,L(ii),f,fr,fi,zi);
    Sw(ii,:) = verticalSpectrum_Hojstrup(u_star,z,L(ii),f,fr);
    leg{ii} = ['z/L = ',num2str(zL(ii),2)];
end

figure
loglog(f,bsxfun(@times,Su,1./u_star.^2.*f))
legend(leg{:},'location','South');
grid on
grid minor
axis tight
xlabel('f (Hz)')
ylabel('$nS_u/u^2_*$','interpreter','latex')
set(gcf,'color','w')


figure
loglog(f,bsxfun(@times,Sw,1./u_star.^2.*f))
legend(leg{:},'location','South');
grid on
grid minor
axis tight
xlabel('f (Hz)')
ylabel('$nS_w/u^2_*$','interpreter','latex')
set(gcf,'color','w')