image thumbnail
from Wind Turbine System Identification by Sumit Tripathi
Use system Identification techniques to predict power generation from wind turbine.

[omega Gamma_y1u1 Cxy]=coherence_data(window)
function [omega Gamma_y1u1 Cxy]=coherence_data(window)
load 'Turbinedata_sky.m';
%%DATA Sequence
%%time(m) time(d) time(yyyy) time(h) time(mm) time(ss)	rpm	powero	powerr	windspeed	watthrs
Tdata=Turbinedata_sky(:,:);
%%%%%%%%%%%%%%%%
N1=1030;
N2=4920;
%%%%%%%%%%%%%
count=800;
w_l=3;% Low speed limit
w_h=20;% High Speed limit
w_filter1=w_l;
w_filter2=w_h;

del_t=1;
avg=80;
for itr=1:avg
% Function to extract minute data
[kwh1 wind1]=minute_data(Tdata,count,N1,N2,w_filter1,w_filter2);
kwh=kwh1(1:150);
wind=wind1(1:150);
    t_vec=linspace(0,length(wind),length(wind));
    if window==1
        Hamm_win=0.54+0.46*cos(pi*(t_vec-max(t_vec)/2)/(max(t_vec)/2));
    else
        Hamm_win=1;
    end
%        keyboard
        u(:,itr)=(wind'.*Hamm_win)';
%    keyboard  
        y=kwh;
        size(y)
        Y_expt(:,itr)=(kwh'.*Hamm_win)';
        N1=N1+1;
        N2=N2+1;

    end
    clear t;
    for t=1:avg
        dfftu(:,t)=fft(u(:,t))/length(u(:,t));
        dffty(:,t)=fft(Y_expt(:,t))/length(Y_expt(:,t));
        Syu(:,t)=dffty(:,t).*conj(dfftu(:,t));
        Suu(:,t)=dfftu(:,t).*conj(dfftu(:,t));
        Syy(:,t)=dffty(:,t).*conj(dffty(:,t));
        Suy(:,t)=dfftu(:,t).*conj(dffty(:,t));
    end
    clear t;
    size(y)
    Syu_bar=zeros(size(y));
    Suu_bar=zeros(size(y));
    Syy_bar=zeros(size(y));
    Suy_bar=zeros(size(y));
    disp('size Suy_bar')
    size(Suy_bar)
    for t=1:avg
        Syu_bar=Syu_bar + Syu(:,t);
        Suu_bar=Suu_bar + Suu(:,t);
        Syy_bar=Syy_bar + Syy(:,t);
        Suy_bar=Suy_bar + Suy(:,t);
    end
    Syu_bar=Syu_bar/t;
    Suu_bar=Suu_bar/t;
    Syy_bar=Syy_bar/t;
    Suy_bar=Suy_bar/t;
    L=length(u(:,1));
    df=1/(L*del_t);
    fmax=1/(2*del_t);
    omega=0:df:fmax;

    G_yu_uu=Syu_bar./Suu_bar;
    G=ifft(G_yu_uu);

    Gamma_yu_sq=(Syu_bar.*(conj(Syu_bar)))./(Syy_bar.*Suu_bar);
    Gamma_y1u1=sqrt(Gamma_yu_sq);
    
    % Calculating Coherence with MATLAB MSCOHERE function
Y=zeros(size(Y_expt(:,t)));
U=zeros(size(u(:,t)));
clear t;
for t=1:avg
    Y=Y+Y_expt(:,t);
    U=U+u(:,t);
end
% Y=Y/t;
% U=U/t;
Y=kwh;
U=wind;

len=length(omega)
Cxy=mscohere(U,Y,len);

Contact us at files@mathworks.com