%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Project Name: Optimization of Wind Turbine Disturbance Using Design of %
% Experiments Methodology %
% Author: Rajitha Meka, Syed Hasib Akhter Faruqui %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Hypothetical Case Study:
A company ABC Inc. wants to install a few new wind turbines at their client’s wind farm. The wind farm is located at an offshore location. The wind turbines work using rotors with fitted turbine blades that turn the shaft, which in turn produces power through generator. The turbines can have variable pitch angles to control the loads for the wide range of velocity of winds. If the wind turbine is not controlled to work only for some range of speeds, there is a possibility that it can break for adverse wind conditions. So, the engineer plans to perform some simulation tests before installing the wind turbines (without considering external PID controllers to control for disturbances). The variables he wants to test for are the Damping and Elastic co-efficient of the propeller shaft (propeller material property and Spring damping system), Radius of the rotor, and pitch angle of the blades. The average wind speed of the wind farm area is around 18m/s. The wind turbine has to be optimized considering system open loop response, the settling time. The Overshoot problem of response can be later adjusted using PID controller system.

Clear Previous Data

clc;
clear;

Main Code

count=1; % Storage Count
% Change "Pitch_Angle" value over the loop
for Pitch_Angle=19:1:20
% Change "Damping Coefficient" value over the loop
for Cd=60000:10000:80000
% Change "Elastic coefficient" value over the loop
for E=60000:10000:80000
% Change "Radius of Rotor " value over the loop
for R= 10:1:12
% Calculate necessary Information
% Custome Function to Calculate the System Responses
[ sys ] = systemResponse( Pitch_Angle,Cd,E,R );
StepInfo=stepinfo(sys);
% Store the information in Data Storage
Data(count,1)=Pitch_Angle;
Data(count,2)=Cd;
Data(count,3)=E;
Data(count,4)=R;
Data(count,5)=StepInfo.Overshoot;
Data(count,6)=StepInfo.SettlingTime;
% Change the count for storage
count=count+1;
end
end
end
end

Convert Data to Table

DataTable=array2table(Data);
DataTable.Properties.VariableNames = {'Pitch_Angle','Damping_Coefficient'...
,'Elastic_coefficient','Rotor_Radius','Overshoot'...
,'Settling_Time'};