You are on page 1of 16

% Name : SHUBHAM

% Roll No. : 150696


% Course : AE686 - Helicopter Theory
% Assignment : 2

rho = 1.225; % Density of Air


Nb = 4; % Number of blades
R = 6; % Radius of the rotor
c = 0.4; % Chord of the rotor
Cdo = 0.01; % Profile Drag Coefficient
Cl_dash = 5.73; % Slope of Cl vs alpha curve of the given airfoil
omega = 10*pi; % Angular velocity of the rotor
Ro = 0.15*R; % Root cut of radius
C_T_hover = 0.006; % Coefficient of Thrust for hovering condition

sigma = Nb*c/(pi*R); % Solidity of the rotor

% values of nodes for 6 point Gaussian Quadrature


x = [-0.932469514 ; -0.661209386 ; -0.002386191860 ; 0.002386191860 ;
0.661209386 ; 0.932469514];

% values of weights for 6 point Gaussian Quadrature


w = [0.171324492 ; 0.360761573 ; 0.467913935 ; 0.467913935 ;
0.360761573 ; 0.171324492];

N = 10; % Number of Blade elements


r = linspace(0.15, 1, N+1);
r_loc = linspace(0.15, 1, 100);

for cases = 1:4

%Defining blade pitch angle as a function of Theta_75


if cases==1
%Ideal or hyperbolic twist
theta = @(theta_75, r) theta_75.*0.75./r;

elseif cases==2
%Constant pitch or zero twist
theta = @(theta_75, r) theta_75;

elseif cases==3
% Linear twist with -10 degrees of twist rate
theta = @(theta_75, r) theta_75 - 10*(pi/180).*(r-0.75);

else
% Linear twist with -20 degrees of twist rate
theta = @(theta_75, r) theta_75 - 20*(pi/180).*(r-0.75);
end

%Defining dCT as a function of Theta_75


dCT = @(theta_75) C_T_hover;

for i = 1:N

1
%Lower Limit of the integral
a = r(i);

%Upper Limit of the integral


b = r(i+1);

for j = 1:6
%Point at which the integral is evaluated using
%6-point Gaussian Quadrature
x_j = ((a+b)/2) + x(j)*(b-a)/2;

%Defining induced inflow as a function of Theta_75


lambda = @(theta_75)
(sigma*Cl_dash/16)*(sqrt(1+(32*theta(theta_75, x_j)*x_j/
(sigma*Cl_dash)))-1);

%Updating the dCT function


dCT = @(theta_75) dCT(theta_75) - 0.5*(b-
a)*w(j)*(0.5*sigma*Cl_dash*(theta(theta_75, x_j)*x_j*x_j -
lambda(theta_75)*x_j));

end
end

% Calculation of reference pitch angle by finding the root of the


%dCT function
Theta_75(cases) = fzero(dCT, 0.2);

if cases==1
%Array of Blade Pitch Angle for Hyperbolic Twist
Theta_1 = radtodeg(theta(Theta_75(1), r_loc));

elseif cases==2
%Array of Blade Pitch Angle for Zero Twist
Theta_2 = radtodeg(theta(Theta_75(2), r_loc)).*ones(1,100);

elseif cases==3
%Array of Blade Pitch Angle for -10 degree Linear Twist
Theta_3 = radtodeg(theta(Theta_75(3), r_loc));

else
%Array of Blade Pitch Angle for -20 degree Linear Twist
Theta_4 = radtodeg(theta(Theta_75(4), r_loc));
end

end

figure(1);
plot(r_loc, Theta_1,'-o', r_loc, Theta_2, '-s', r_loc, Theta_3, '-*',
r_loc, Theta_4, '-.');
ylabel('Blade Pitch Angle, \theta in degrees', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);
title('Blade Pitch Angle as a function of Non-dimensional radial
locations', 'FontSize', 20);

2
legend('Ideal or Hyperbolic Twist', 'Constant Pitch or Zero
Twist', 'Linear Twist with -10^o twist rate', 'Linear Twist with
-20^o twist rate');
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

%Ideal Theta_tip from analytical solution


Theta_tip_ideal = (4*C_T_hover/(sigma*Cl_dash)) + sqrt(C_T_hover/2);

%Array of Blade Pitch Angle from analytical solution


Theta_5 = radtodeg(Theta_tip_ideal./r_loc);

figure(2);
plot(r_loc, Theta_1, '-o', r_loc, Theta_5, '-*');
ylabel('Blade Pitch Angle, \theta in degrees', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);
title('Blade Pitch Angle as a function of Non-dimensional radial
locations for Ideal Twist', 'FontSize', 20);
legend('Using 6-Point Gaussian Quadrature', 'Closed Form Exact
Solution');
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

3
%Array of Induced Inflow for different cases
Lambda_1 = ((sigma*Cl_dash/16)*(sqrt(1+(32*degtorad(Theta_1).*r_loc/
(sigma*Cl_dash)))-1));
Lambda_2 = ((sigma*Cl_dash/16)*(sqrt(1+(32*degtorad(Theta_2).*r_loc/
(sigma*Cl_dash)))-1));
Lambda_3 = ((sigma*Cl_dash/16)*(sqrt(1+(32*degtorad(Theta_3).*r_loc/
(sigma*Cl_dash)))-1));
Lambda_4 = ((sigma*Cl_dash/16)*(sqrt(1+(32*degtorad(Theta_4).*r_loc/
(sigma*Cl_dash)))-1));

%Array of Angle of Attacks for different cases


Alpha_1 = Theta_1 - radtodeg(Lambda_1./r_loc);
Alpha_2 = Theta_2 - radtodeg(Lambda_2./r_loc);
Alpha_3 = Theta_3 - radtodeg(Lambda_3./r_loc);
Alpha_4 = Theta_4 - radtodeg(Lambda_4./r_loc);

figure(3);
plot(r_loc, Alpha_1, '-o', r_loc, Alpha_2, '-s', r_loc, Alpha_3, '-*',
r_loc, Alpha_4, '-.');
ylabel('Angle of Attack, \alpha in degrees', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);
title('Angle of Attack as a function of Non-dimensional radial
locations', 'FontSize', 20);
legend('Ideal or Hyperbolic Twist', 'Constant Pitch or Zero
Twist', 'Linear Twist with -10^o twist rate', 'Linear Twist with
-20^o twist rate');
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

figure(4);
plot(r_loc, Lambda_1, '-o', r_loc, Lambda_2, '-s', r_loc, Lambda_3, '-
*', r_loc, Lambda_4, '-.');
ylabel('Induced Inflow, \lambda_i', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);

4
title('Induced Inflow as a function of Non-dimensional radial
locations', 'FontSize', 20);
legend('Ideal or Hyperbolic Twist', 'Constant Pitch or Zero
Twist', 'Linear Twist with -10^o twist rate', 'Linear Twist with
-20^o twist rate', 'location', 'northwest');
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

%Thrust distribution Array for different cases


dCt_dr_1 = (0.5*sigma*Cl_dash).*degtorad(Alpha_1).*r_loc.*r_loc;
dCt_dr_2 = (0.5*sigma*Cl_dash).*degtorad(Alpha_2).*r_loc.*r_loc;
dCt_dr_3 = (0.5*sigma*Cl_dash).*degtorad(Alpha_3).*r_loc.*r_loc;
dCt_dr_4 = (0.5*sigma*Cl_dash).*degtorad(Alpha_4).*r_loc.*r_loc;

5
figure(5);
plot(r_loc, dCt_dr_1, '-o', r_loc, dCt_dr_2, '-s', r_loc, dCt_dr_3, '-
*', r_loc, dCt_dr_4, '-.');
ylabel('dC_T/dr', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);
title('Variation of Thrust Distribution', 'FontSize', 20);
legend('Ideal or Hyperbolic Twist', 'Constant Pitch or Zero
Twist', 'Linear Twist with -10^o twist rate', 'Linear Twist with
-20^o twist rate', 'location', 'northwest');
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

%Induced Power distribution Array for different cases


dQ_i_1 = 0.5*sigma*(Cl_dash*Alpha_1.*Lambda_1./
r_loc).*r_loc.*r_loc.*r_loc;
dQ_i_2 = 0.5*sigma*(Cl_dash*Alpha_2.*Lambda_2./
r_loc).*r_loc.*r_loc.*r_loc;
dQ_i_3 = 0.5*sigma*(Cl_dash*Alpha_3.*Lambda_3./
r_loc).*r_loc.*r_loc.*r_loc;
dQ_i_4 = 0.5*sigma*(Cl_dash*Alpha_4.*Lambda_4./
r_loc).*r_loc.*r_loc.*r_loc;

%Profile power distribution (same for all cases)


dQ_p = 0.5*sigma*Cdo*r_loc.*r_loc.*r_loc;

%Total Power distribution for different cases


dQ_1 = dQ_i_1 + dQ_p;
dQ_2 = dQ_i_2 + dQ_p;
dQ_3 = dQ_i_3 + dQ_p;
dQ_4 = dQ_i_4 + dQ_p;

figure(6);
plot(r_loc, dQ_i_1, '-o', r_loc, dQ_i_2, '-s', r_loc, dQ_i_3, '-*',
r_loc, dQ_i_4, '-.');

6
ylabel('Induced Power Coefficient, dC_Q_i/dr', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);
title('Variation of Induced Power Coefficient', 'FontSize', 20);
legend('Ideal or Hyperbolic Twist', 'Constant Pitch or Zero
Twist', 'Linear Twist with -10^o twist rate', 'Linear Twist with
-20^o twist rate', 'location', 'northwest');
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

figure(7);
plot(r_loc, dQ_p);
ylabel('Profile Power Coefficient, dC_Q_p/dr', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);
title('Variation of Profile Power Coefficient', 'FontSize', 20);
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

figure(8);
plot(r_loc, dQ_1, '-o', r_loc, dQ_2, '-s', r_loc, dQ_3, '-*', r_loc,
dQ_4, '-.');
ylabel('Total Power Coefficient, dC_Q/dr', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);
title('Variation of Total Power Coefficient', 'FontSize', 20);
legend('Ideal or Hyperbolic Twist', 'Constant Pitch or Zero
Twist', 'Linear Twist with -10^o twist rate', 'Linear Twist with
-20^o twist rate', 'location', 'northwest');
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

7
%Array of Gaussian points or nodes
rloc = [];
for i = 1:N
a = r(i);
b = r(i+1);
for j = 1:6
x_j = ((a+b)/2) + x(j)*(b-a)/2;
rloc = [rloc, x_j];
end
end

%Tolerance value for convergence criteria


tolerance = 1e-6;

8
for cases = 1:4

if cases==1
% Ideal or hyperbolic twist
theta = @(theta_75, r) theta_75.*0.75./r;

elseif cases==2
% Constant pitch or zero twist
theta = @(theta_75, r) theta_75;

elseif cases==3
% Linear twist with -10 degrees of twist rate
theta = @(theta_75, r) theta_75 - 10*(pi/180).*(r-0.75);

else
%Linear twist with -20 degrees of twist rate
theta = @(theta_75, r) theta_75 - 20*(pi/180).*(r-0.75);
end

Theta = (theta(Theta_75(cases), rloc));


error2 = 1;

%Iteration loop for the convergence of blade pitch angle after


applying
%Prandtl's Tip Loss Factor
while(error2>1e-6)
Lambda = (sigma*Cl_dash/16)*(sqrt(1+(32.*Theta.*rloc/
(sigma*Cl_dash)))-1);
f = (0.5*Nb)*(1-rloc)./Lambda;
F = (2/pi)*acos(exp(-f));
Lambda_new = (sigma*Cl_dash./
(16.*F)).*(sqrt(1+(32*F.*Theta.*rloc/(sigma*Cl_dash)))-1);
error = norm(Lambda_new - Lambda);

%Iteration loop for the calculation of Induced Inflow from


%Prandtl's Tip Loss Factor
while(error>tolerance)
Lambda = Lambda_new;
f = (0.5*Nb)*(1-rloc)./Lambda;
F = (2/pi)*acos(exp(-f));
Lambda_new = (sigma*Cl_dash./
(16.*F)).*(sqrt(1+(32*F.*Theta.*rloc/(sigma*Cl_dash)))-1);
error = norm(Lambda_new - Lambda);
end

dCT = @(theta_75) C_T_hover;


for i = 1:N

a = r(i);
b = r(i+1);

for j = 1:6
x_j = ((a+b)/2) + x(j)*(b-a)/2;

9
dCT = @(theta_75) dCT(theta_75) - 0.5*(b-
a)*w(j)*(0.5*sigma*Cl_dash*(theta(theta_75, x_j)*x_j*x_j -
Lambda_new(6*(i-1)+j)*x_j));
end
end

Theta_75_tlf_ = fzero(dCT,0.5);
Theta_new = theta(Theta_75_tlf_, rloc);
error2 = norm(Theta_new - Theta);
Theta = Theta_new;
end

%Theta_75 values for difference cases


Theta_75_tlf(cases) = Theta_75_tlf_;

%Calculation of values considering Tip Loss


if cases==1
%Blade Pitch Angle for Hyperbolic Twist
Theta_1_tlf = radtodeg(Theta);

%Induced Inflow for Hyperbolic Twist


Lambda_1_tlf = Lambda_new;

elseif cases==2
%Blade pitch Angle for Zero Twist
Theta_2_tlf = radtodeg(Theta).*ones(1,60);

%Induced Inflow for Zero Twist


Lambda_2_tlf = Lambda_new;

elseif cases==3
%Blade Pitch Angle for -10 degree Linear Twist
Theta_3_tlf = radtodeg(Theta);

%Induced Inflow for -10 degree Linear Twist


Lambda_3_tlf = Lambda_new;

else
%Blade Pitch Angle for -20 degree Linear Twist
Theta_4_tlf = radtodeg(Theta);

%Induced Inflow for -20 degree Linear Twist


Lambda_4_tlf = Lambda_new;
end
end

figure(9);
plot(rloc, Theta_1_tlf, '-o', rloc, Theta_2_tlf, '-s', rloc,
Theta_3_tlf, '-*', rloc, Theta_4_tlf, '-.');
ylabel('Blade Pitch Angle, \theta in degrees', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);

10
title('Blade Pitch Angle as a function of Non-dimensional radial
locations', 'FontSize', 20);
legend('Ideal or Hyperbolic Twist', 'Constant Pitch or Zero
Twist', 'Linear Twist with -10^o twist rate', 'Linear Twist with
-20^o twist rate');
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

figure(10);
plot(rloc, Theta_1_tlf, '-o', r_loc, Theta_5, '-*');
ylabel('Blade Pitch Angle, \theta in degrees', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);
title('Blade Pitch Angle as a function of Non-dimensional radial
locations for Ideal Twist', 'FontSize', 20);
legend('Using 6-Point Gaussian Quadrature', 'Closed Form Exact
Solution');
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

11
%Induced Inflow for different cases considering Tip Loss
Alpha_1_tlf = Theta_1_tlf - radtodeg(Lambda_1_tlf./rloc);
Alpha_2_tlf = Theta_2_tlf - radtodeg(Lambda_2_tlf./rloc);
Alpha_3_tlf = Theta_3_tlf - radtodeg(Lambda_3_tlf./rloc);
Alpha_4_tlf = Theta_4_tlf - radtodeg(Lambda_4_tlf./rloc);

figure(11);
plot(rloc, Alpha_1_tlf, '-o', rloc, Alpha_2_tlf, '-s', rloc,
Alpha_3_tlf, '-*', rloc, Alpha_4_tlf, '-.');
ylabel('Angle of Attack, \alpha in degrees', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);
title('Angle of Attack as a function of Non-dimensional radial
locations', 'FontSize', 20);
legend('Ideal or Hyperbolic Twist', 'Constant Pitch or Zero
Twist', 'Linear Twist with -10^o twist rate', 'Linear Twist with
-20^o twist rate');
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

figure(12);
plot(rloc, Lambda_1_tlf, '-o', rloc, Lambda_2_tlf, '-s', rloc,
Lambda_3_tlf, '-*', rloc, Lambda_4_tlf, '-.');
ylabel('Induced Inflow, \lambda_i', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);
title('Induced Inflow as a function of Non-dimensional radial
locations', 'FontSize', 20);
legend('Ideal or Hyperbolic Twist', 'Constant Pitch or Zero
Twist', 'Linear Twist with -10^o twist rate', 'Linear Twist with
-20^o twist rate', 'location', 'northwest');
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

12
%Thrust distribution for different cases considering Tip Loss
dCt_dr_1_tlf = (0.5*sigma*Cl_dash).*degtorad(Alpha_1_tlf).*rloc.*rloc;
dCt_dr_2_tlf = (0.5*sigma*Cl_dash).*degtorad(Alpha_2_tlf).*rloc.*rloc;
dCt_dr_3_tlf = (0.5*sigma*Cl_dash).*degtorad(Alpha_3_tlf).*rloc.*rloc;
dCt_dr_4_tlf = (0.5*sigma*Cl_dash).*degtorad(Alpha_4_tlf).*rloc.*rloc;

figure(13);
plot(rloc, dCt_dr_1_tlf, '-o', rloc, dCt_dr_2_tlf, '-s', rloc,
dCt_dr_3_tlf, '-*', rloc, dCt_dr_4_tlf, '-.');
ylabel('dC_T/dr', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);
title('Variation of Thrust Distribution', 'FontSize', 20);

13
legend('Ideal or Hyperbolic Twist', 'Constant Pitch or Zero
Twist', 'Linear Twist with -10^o twist rate', 'Linear Twist with
-20^o twist rate', 'location', 'northwest');
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

%Induced Power distribution for different cases considering Tip Loss


dQ_i_1_tlf = 0.5*sigma*(Cl_dash*Alpha_1_tlf.*Lambda_1_tlf./
rloc).*rloc.*rloc.*rloc;
dQ_i_2_tlf = 0.5*sigma*(Cl_dash*Alpha_2_tlf.*Lambda_2_tlf./
rloc).*rloc.*rloc.*rloc;
dQ_i_3_tlf = 0.5*sigma*(Cl_dash*Alpha_3_tlf.*Lambda_3_tlf./
rloc).*rloc.*rloc.*rloc;
dQ_i_4_tlf = 0.5*sigma*(Cl_dash*Alpha_4_tlf.*Lambda_4_tlf./
rloc).*rloc.*rloc.*rloc;

%Profile power distribution (same for all cases)


dQ_p = 0.5*sigma*Cdo*rloc.*rloc.*rloc;

%Total Power distribution for different cases considering Tip Loss


dQ_1_tlf = dQ_i_1_tlf + dQ_p;
dQ_2_tlf = dQ_i_2_tlf + dQ_p;
dQ_3_tlf = dQ_i_3_tlf + dQ_p;
dQ_4_tlf = dQ_i_4_tlf + dQ_p;

figure(14);
plot(rloc, dQ_i_1_tlf, '-o', rloc, dQ_i_2_tlf, '-s', rloc,
dQ_i_3_tlf, '-*', rloc, dQ_i_4_tlf, '-.');
ylabel('Induced Power Coefficient, dC_Q_i/dr', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);
title('Variation of Induced Power Coefficient', 'FontSize', 20);
legend('Ideal or Hyperbolic Twist', 'Constant Pitch or Zero
Twist', 'Linear Twist with -10^o twist rate', 'Linear Twist with
-20^o twist rate', 'location', 'northwest');

14
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

figure(15);
plot(rloc, dQ_p);
ylabel('Profile Power Coefficient, dC_Q_p/dr', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);
title('Variation of Profile Power Coefficient', 'FontSize', 20);
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

figure(16);
plot(rloc, dQ_1_tlf, '-o', rloc, dQ_2_tlf, '-s', rloc, dQ_3_tlf, '-*',
rloc, dQ_4_tlf, '-.');
ylabel('Total Power Coefficient, dC_Q/dr', 'FontSize', 20);
xlabel('Non-dimensional radial location', 'FontSize' , 20);
title('Variation of Total Power Coefficient', 'FontSize', 20);
legend('Ideal or Hyperbolic Twist', 'Constant Pitch or Zero
Twist', 'Linear Twist with -10^o twist rate', 'Linear Twist with
-20^o twist rate', 'location', 'northwest');
set(gca,'fontsize',20);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);

15
Published with MATLAB® R2016a

16

You might also like