NACA 0012.m
NACA 0012.m
% Airfoil parameters
name = '0012';
N = 200; % Number of boundary points
spacing = 2; % Cosine spacing
% Initialize
XC = zeros(1, max(size(XB)-1));
YC = XC;
S = XC;
phi = XC;
delta = phi+90;
% Set up A matrix
A_MATRIX_N = zeros(size(CN1,1)+1, size(CN1,1)+1);
A_MATRIX_T = zeros(size(CT1,1), size(CT1,1)+1);
for k = 1:size(CN1,1)
A_MATRIX_N(k,1) = CN1(k,1);
A_MATRIX_N(k,size(CN1,1)+1) = CN2(k,size(CN1,1));
A_MATRIX_T(k,1) = CT1(k,1);
A_MATRIX_T(k,size(CT1,1)+1) = CT2(k,size(CT1,1));
for l = 2:size(CN1,1)
A_MATRIX_N(k,l) = CN1(k,l) + CN2(k,l-1);
A_MATRIX_T(k,l) = CT1(k,l) + CT2(k,l-1);
end
end
A_MATRIX_N(size(CN1,1)+1,:) = [1 zeros(1,size(CN1,1)-1) 1];
for k = 1:size(CN1,1)
vt{i}(k) = U_inf * sind(beta{i}(k));
for l = 1:size(CN1,1)+1
vt{i}(k) = vt{i}(k) + GAMMA{i}(l) * A_MATRIX_T(k,l);
end
Cp{i}(k) = 1 - (vt{i}(k)/U_inf)^2;
end
end
% Plot Cp distribution
for i = 1:length(AOA)
figure;
hold on;
plot(XC, Cp{i});
plot(XC((end/2+1):end)', Cp{i}((end/2+1):end), 'ro-','LineWidth', 1.5,
'MarkerSize', 4, 'DisplayName', 'Upper Surface');
plot(XC(1:(end/2))', Cp{i}(1:(end/2)), 'bo-','LineWidth', 1.5,
'MarkerSize', 4, 'DisplayName', 'Lower Surface');
xlabel('x/c');
ylabel('C_p');
set(gca, 'YDir', 'reverse');
title(['C_p Distribution for NACA ', name, ' at \alpha = ',
num2str(AOA(i)), '°']);
legend('Location', 'best');
grid on;
hold off;
end
% Plot CL vs AOA
figure;
plot(AOA, CL_values, '-o', 'LineWidth', 1.5);
grid on;
xlabel('Angle of Attack (AOA) [°]');
ylabel('Lift Coefficient (C_L)');
title(['Lift Coefficient (C_L) vs. Angle of Attack for NACA ', name]);
legend(['NACA ', name], 'Location', 'best');
for i = 1:max(size(XC))
for j = 1:max(size(XC))
if j ~= i
C1 = -cos(phi(i)-phi(j));
C2 = (XC(i)-XB(j))*cos(phi(i))+(YC(i)-YB(j))*sin(phi(i));
C3 = -cos(phi(j))*(XC(i)-XB(j)) - sin(phi(j))*(YC(i)-YB(j));
C4 = (XC(i)-XB(j))^2 + (YC(i)-YB(j))^2;
C5 = sqrt(C4-(C3^2));
C6 = sin(phi(j)-phi(i));
C7 = (XC(i)-XB(j))*sin(phi(i))-(YC(i)-YB(j))*cos(phi(i));
A = 0.5*(C2-2*C1*C3);
B = log((S(j)^2+2*C3*S(j)+C4)/C4);
C = (C1*(C4-2*C3^2)+C2*C3)/C5;
D = atan2((C3+S(j)),C5)-atan2(C3,C5);
E = 0.5*(C7-2*C6*C3);
F = (C6*(C4-2*C3^2)+C7*C3)/C5;
CN2(i,j) = -C1 - A*B/S(j) + C*D/S(j);
CN1(i,j) = -0.5*C1*B - ((C2-C1*C3)/C5)*D-CN2(i,j);
CT2(i,j) = -C6 - E*B/S(j) + F*D/S(j);
CT1(i,j) = -0.5*C6*B - ((C7-C6*C3)/C5)*D-CT2(i,j);
else
CN2(i,j) = 1;
CN1(i,j) = -1;
CT2(i,j) = 0.5*pi;
CT1(i,j) = 0.5*pi;
end
end
end
end
hold off;