Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
332 views

Wedge Code

Uploaded by

api-519547161
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
332 views

Wedge Code

Uploaded by

api-519547161
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

8/29/20 5:31 PM C:\Users\bradf\OneDrive...\double_wedge.

m 1 of 4

%This script receives the input parameters of upstream Mach number and
%static pressure, flow angle of attack, and forward and rear wedge half
%angles and finds the forces in the x and y direction, lift and grag,
%and coefficients of lift and drag.

%Written on October 7th, 2019 by Daniel Wolfe Bradford for ME425 at Boston
%University under Professor Cheryl Grace

%Prompt user for inputs


M1 = input('Enter the upstream Mach Number: ');
p1 = input('Enter the upstream pressure in kPa: ');
alpha_flow = input('Enter the flow angle of attack in degrees: ');
alpha_front = input('Enter the front wedge half angle in degrees: ');
alpha_rear =input('Enter the rear wedge half angle in degrees: ');

%Manual Input Method


%{
M1 = 1.9;
p1 = 70;
alpha_front = 3.5;
alpha_rear = 5.0;
alpha_flow = 5.0;
%}

%Convert alpha's to radians


alpha_flow = (alpha_flow * pi)/180;
alpha_front = (alpha_front * pi)/180;
alpha_rear = (alpha_rear * pi)/180;

%Establish Chord Length and Gamma


c = 1;
gamma = 1.4;

%Calculate Side Lengths


l_2 = c/(sin(alpha_front)*cot(alpha_rear) + cos(alpha_front));
l_3 = l_2;
l_4 = c/(sin(alpha_rear)*cot(alpha_front) + cos(alpha_rear));
l_5 = l_4;

%Calculate locations of leading, trailing, top, and bottom points


x_leading = 0;
y_leading = 0;
x_trailing = 1;
y_trailing = 0;
x_top = l_2*cos(alpha_front);
y_top = l_2*sin(alpha_front);
x_bottom = l_2*cos(alpha_front);
y_bottom = -l_2*sin(alpha_front);
x = [x_leading x_top x_trailing x_bottom x_leading];
y = [y_leading y_top y_trailing y_bottom y_leading];
plot(x,y,'LineWidth',2)
8/29/20 5:31 PM C:\Users\bradf\OneDrive...\double_wedge.m 2 of 4

axis([-.1 1.1 -0.3 0.3])


title('Aerodynamic Values for Flow Over Double Wedge Airfoil')
xlabel('Length Along Chord (m)')
ylabel('Thickness (m)')

%Calculate p2 and M2
%This calculation is dependent on angle of attack
if alpha_flow > alpha_front %Expansion case
theta_2 = alpha_flow - alpha_front;
%Find M2
pm_1 = pmang(M1,gamma);
pm_2 = theta_2 + pm_1;
M2 = findm2_new(pm_2,gamma);
%Find p2
p2_p1 = presratpm(M1,M2,gamma);
p2 = p2_p1 * p1;
else
if alpha_flow < alpha_front %Compression case
theta_2 = alpha_front - alpha_flow;
%Find M2 through Beta2
beta2 = abs(findbet(M1,theta_2,gamma));
Mn1 = M1*sin(beta2);
Mn2 = oblique(Mn1,gamma);
M2 = Mn2/sin(beta2 - theta_2);
%Find p2
p2_p1 = presratoblique(Mn1,gamma);
p2 = p2_p1 * p1;
else %Nuetral case (alpha_flow = alpha_front)
M2 = M1;
p2 = p1;
end
end

%Calculate p3 and M3
%This calculation will always be a compression calculation
theta_3 = alpha_flow + alpha_front;
%Find M3 through Beta3
beta3 = abs(findbet(M1,theta_3,gamma));
Mn1 = M1*sin(beta3);
Mn3 = oblique(Mn1,gamma);
M3 = Mn3/sin(beta3 - theta_3);
%Find p2
p3_p1 = presratoblique(Mn1,gamma);
p3 = p3_p1 * p1;

%Calculate p4 using p2 and M2


%This is an expansion calculation
theta_4 = alpha_front + alpha_rear;
%Find M4
pm_2 = pmang(M2,gamma);
8/29/20 5:31 PM C:\Users\bradf\OneDrive...\double_wedge.m 3 of 4

pm_4 = theta_4 + pm_2;


M4 = findm2_new(pm_4,gamma);
%Find p4
p4_p2 = presratpm(M2,M4,gamma);
p4 = p4_p2 * p2;

%Calculate p5 using p3 and M3


%This is an expansion calculation
theta_5 = alpha_front + alpha_rear;
%Find M5
pm_3 = pmang(M3,gamma);
pm_5 = theta_5 + pm_3;
M5 = findm2_new(pm_5,gamma);
%Find p5
p5_p3 = presratpm(M3,M5,gamma);
p5 = p5_p3 * p3;

%Calculate force in x and y directions


F_y = ((p3-p2)*l_2*cos(alpha_front) + (p5-p4)*l_4*cos(alpha_rear))*1000;
F_x = ((p3+p2)*l_2*sin(alpha_front) - (p5+p4)*l_4*sin(alpha_rear))*1000;

%Calculate lift and drag


L = F_y*cos(alpha_flow) - F_x*sin(alpha_flow);
D = F_y*sin(alpha_flow) + F_x*cos(alpha_flow);

%Calculate coefficients of lift and drag


c_L = L/((gamma/2)*p1*1000*(M1^2)*c);
c_D = D/((gamma/2)*p1*1000*(M1^2)*c);

%Print results to command window


fprintf('F_y (N/m) = %d\n',F_y);
fprintf('F_x (N/m)= %d\n',F_x);
fprintf('Lift (N/m)= %d\n',L);
fprintf('Drag (N/m)= %d\n',D);
fprintf('c_L = %.4f\n',c_L);
fprintf('c_D = %.4f\n',c_D);

%Save Results as strings


M_up = sprintf('Mach Upstream = %.2f',M1);
P_up = sprintf('Pressure Upstream (kPa) = %.2f',p1);
alpha_fr = sprintf(['Front Half Angle (' char(176) ') = %.1f'],(alpha_front/pi)*180);
alpha_r = sprintf(['Rear Half Angle (' char(176) ') = %.1f'],(alpha_rear/pi)*180);
alpha = sprintf(['Angle of Attack (' char(176) ') = %.1f'],(alpha_flow/pi)*180);
Fy = sprintf('F_y (N/m) = %d\n',F_y);
Fx = sprintf('F_x (N/m)= %d\n',F_x);
L_val = sprintf('Lift (N/m)= %d\n',L);
D_val = sprintf('Drag (N/m)= %d\n',D);
8/29/20 5:31 PM C:\Users\bradf\OneDrive...\double_wedge.m 4 of 4

cL = sprintf('c_L = %.4f\n',c_L);
cD = sprintf('c_D = %.4f\n',c_D);

%Place Results on plot of airfoil


text(0,0.235,M_up);
text(0,0.185,P_up);
text(0.65,0.235,alpha_fr);
text(0.65,0.185,alpha_r);
text(0,0.135,alpha)
text(0,-0.15,Fy);
text(0,-0.20,Fx);
text(0.38,-0.145,L_val);
text(0.38,-0.195,D_val);
text(0.80,-0.15,cL);
text(0.80,-0.20,cD);

You might also like