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

Project_Example3_09.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Sean Semper                                         System Identification
%/ Sumit Tripathi
% Project Code 3                                                    MAE 566
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Created Spring 2009                                                     %
% Last Modified: 05/6/09                                                  %
% Wind speed VS Power graph for different range of speeds
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc
clear all
close all
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% time%	nobs	avg_rpm 	avg_powero	avg_powerr	avg_windspeed      
load min_avg_0309_less5.txt 
data = min_avg_0309_less5;
in_num = 5;     % Input Index
out_num = 4;    % Output Index
in_out_ind = [in_num, out_num];
u = data(:,in_num);
y1 = data(:,out_num);
t = 1:length(u);
clear data min_avg_0309_less5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
h = [ones(length(u),1), u, u.^2, u.^3 ];
kW1 = pinv(h)*y1
y_est1 = kW1(1)*h(:,1) +kW1(2)*h(:,2) + kW1(3)*h(:,3) +kW1(4)*h(:,4);
figure(1)
plot(u,y1,u,y_est1,'r.')
title('2.5 m/s < Windspeed < 5 m/s') 
u1=u;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear h u
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% time%	nobs	avg_rpm 	avg_powero	avg_powerr	avg_windspeed      
load min_avg_0309_grt5less10.txt 
data = min_avg_0309_grt5less10;
in_num = 5;     % Input Index
out_num = 4;    % Output Index
in_out_ind = [in_num, out_num];
u = data(:,in_num);
y2 = data(:,out_num);
t = 1:length(u);
clear data min_avg_0309_grt5less10
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
h = [ones(length(u),1), u, u.^2, u.^3 ];
kW2 = pinv(h)*y2
y_est2 = kW2(1)*h(:,1) +kW2(2)*h(:,2) + kW2(3)*h(:,3) +kW2(4)*h(:,4);
figure(2)
plot(u,y2,u,y_est2,'r.')
title('5 m/s < Windspeed < 10 m/s')
u2=u;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear h u
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% time%	nobs	avg_rpm 	avg_powero	avg_powerr	avg_windspeed      
load min_avg_0309_grt10.txt 
data = min_avg_0309_grt10;
in_num = 5;     % Input Index
out_num = 4;    % Output Index
in_out_ind = [in_num, out_num];
u = data(:,in_num);
y3 = data(:,out_num);
t = 1:length(u);
clear data min_avg_0309_grt10
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
h = [ones(length(u),1), u, u.^2, u.^3 ];
kW3 = pinv(h)*y3
y_est3 = kW3(1)*h(:,1) +kW3(2)*h(:,2) + kW3(3)*h(:,3) +kW3(4)*h(:,4);
figure(3)
plot(u,y3,u,y_est3,'r.')
title('Windspeed > 10 m/s')
u3=u;
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear h u
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
yy= [y_est1(:,1); y_est2(:,1); y_est3(:,1)];
y_y= [y1(:,1); y2(:,1); y3(:,1)];
figure(4)
plot([u1;u2;u3],y_y,'r',[u1;u2;u3],yy,'b')
xlabel('Wind Speed (m/s)')
ylabel('Power Output (W)')
title('Power vs. Wind Speed')
legend('Actual Power Curve','Mean Power Curve')






Contact us at files@mathworks.com