0% found this document useful (0 votes)
359 views

Wedge Code

Uploaded by

api-519547161
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
359 views

Wedge Code

Uploaded by

api-519547161
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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