APRIL 30, 2015
TERM PROJECT NACA 23012
HIMANSHU MODI FLORIDA INSTITUTE OF TECHNOLOGY
1.1 DESIGN PROBLEM STATEMENT – NACA NACA 23012 airfoil
Using the vortex panel method design a NACA 23012 airfoil for Reynolds numbers 3.106 and 6.106 for a chord length of 1.5 m.
Find the boundary layer parameters assuming the equivalent flat plate relations. Use the source panel distribution to include the effect of boundary layer displacement thickness on the potential airfoil shape.
Use a simple turbulence diffusion model in the wake to predict the post stall aerodynamics aerodynamics characteristics. Plot and analyze the Cl, Cm,1/4C, and Cd vs AOA (-200 to +200) distributions.
Compare your results with the experimental data published in text books (e.g. Theory of Wing Sections by Abbot and von Doenhoff) and comment. Describe, how you can increase the maximum L/D ratio of the section.
1.2 Introduction: We have several ways to get a lift and pressure estimates for the airfoil. A simple thin airfoil theory can give us overall idea about it, this method has more general and its accuracy decreases with increase in the airfoil thickness.
What are panel methods? Panel method helps us to divide the airfoil into several panels to obtain lift and pressure. The Fig.1 shows the basic concept used in this method.
Figure 1. Representation of an airplane flowfield by panel methods
To each panel there is attached one or more types of singularity distributions, like sources, vortices, and doublets. In 2-D, the airfoil surface is divided into piecewise straight line segments or panels or “boundary elements” and vortex sheets of strength are placed on each panel.
We use this vortex sheets of strength ds, where ds is the length of the panel because vortices gives rise to circulation and then the lift, these vortex sheets impersonates the boundar y layer around the airfoil. 2D Panel methods refers to numerical methods for calculating the flow around any wing section. It is done by replacing the wing geometry by singularity panel distributions, like sources, vortices, and doublets. The typical boundary conditions applied are: Kutta Condition Impermeability
Here we are being provided with the type of the airfoil and the coordinates and the number of the panels on the airfoil. For the airfoil NACA 23012
1st digit * (3/2) gives design lift coefficient in tenths of chord (0.3), for most of the parts its always 2. (Next two digits)/2 gives: location of maximum camber from the leading edge along the chord in hundredths of chord (0.15c or 15%). Last two digits: maximum thickness in hundredths of chord (0.12c or 12%).
For the given coordinates from the Theory of Wing Sections by Abbot and v on Doenhoff as shown in Figure 2 we can obtain the set of the X-Y locations for generating the airfoil. In the airfoil the upper surface boundary layer contains clockwise rotating vorticity and the lower surface boundary contains counter clockwise vorticity. As there is more clockwise vorticity than the counter clockwise vorticity, the overall net vorticity around the airfoil is in clockwise circulation as shown in Figure 3. The airfoil generated for this project is done by using the Matlab software. Now as seen in figure we have 19 panels on each upper surface as well as the lower surface of the airfoil, which may not provide us the accurate shape of the airfoil because more the panels on the surface boundary layer the more accurate airfoil we can generate and also the more effectively we can use the boundary layer conditions on it.
Figure 2. Coordinates of the airfoil from ‘Theory of Wing Sections by Abbot and von Doenhoff ’
1.3The source Panel method: The panel methods model the potential flow around a body by distributing sources over the body surface. In this way, the potential flow around a body of any shape can b e calculated to a very high degree of precision. The method was developed by Hess and Smith at Douglas Aircraft.
For the airfoil NACA 23012
1st digit * (3/2) gives design lift coefficient in tenths of chord (0.3), for most of the parts its always 2. (Next two digits)/2 gives: location of maximum camber from the leading edge along the chord in hundredths of chord (0.15c or 15%). Last two digits: maximum thickness in hundredths of chord (0.12c or 12%).
. To calculate the thickness of the airfoil at a given x-coordinate measured along the chord line, the following equation is used:
Where tmax is the maximum thickness, x is the distance along the chord line, and c is the chord length. The mean camber line is given by:
Where mmax is the maximum camber, and mx is the x-coordinate along the chord line of the maximum camber
The points along the airfoil can be calculated as
For Upper surface,
and
For Lower surface, Where,
So with these equations we can plot our required airfoil and all the points will be connected as straight lines to form panels, a 19 panels NACA 2 3012 airfoil as we already know the coordinates of the airfoil shown below in Table 1.
X
Y
0
0
0.001875
0.004005
0.00375
0.005415
0.0075
0.007365
0.01125
0.0087
0.015
0.009645
0.0225
0.010785
0.03
0.01125
0.0375
0.0114
0.045
0.011325
0.06
0.01071
0.075
0.009615
0.09
0.008205
0.105
0.00654
0.12
0.00462
0.135
0.00252
0.1425
0.00138
0.15
0.000195
0.15
0
Table 1. X-Y coordinates for the Leading edge
The Figure 4 shows the airfoil generated for the given specifications of NACA 23012 for this problem with 19 panels and chord length of 1.5m.
Figure 4. NACA 23012 airfoil
To create the simulation of flow around the airfoil, each panel is treated along a uniform source panel, and each panel is emitting a constant source of fluid along its length parallel to the normal vector of each panel.
Figure 5. The source panel
The velocity of the flow in the radial direction is given by
Where m is the source strength and r is the radial distance from the source. Since the airfoil is made up of multiple panels, the flow from each panel affects the flow at each other panel. Panels on the bottom of the airfoil induce a flow upwards on the top panels, and the top panels induce a flow downwards on the bottom panels. Now to solve this we place the point source at the control point of each panel, which is located at the center point. Finding the location of the control point is simple.
The coefficient of pressure at each panel’s control point can be calculated:
Where
Or in vector form it can be written as
The matlab code for all the above description is in appendix A.
1.4 THE VORTEX PANEL METHOD: The source panel method is for non-lifting bodies, whereas the vortex panel method is for lifting bodies. The specific approach used approximates the airfoil by using a series of infinite, discrete bound vortices (as in figure 6) to approximate a continuous distribution of vorticity. In the unsteady case, the airfoil wake is similarly approximated. As well, since all motions considered are planar, a 2-dimensional approximation was employed
Figure 6. Discrete Vortex filaments (point Vortices in 2D) Reprinted from Ref. 13
Vortex Flow, as depicted in figure 7, is a potential flow. We may express the potential due to any such point vortex (in a cylindrical reference frame centered at the vortex source) as: j
j 2
Figure 7. Vortex Flow Reprinted from Ref. 13
As such, the velocity induced by the vortex at any point in the flow field can be found by taking the gradient of the potential:
V j j
k ˆ
2 r j
j
where rj is the distance from the centre of the vortex and γj is the vortex strength. This type of source has proved particularly useful for approximating the flow over airfoils since it automatically satisfies the far-field boundary condition of Laplace’s equation which allows us to decompose the potential into two components: the potential due to the interaction of all the bound vortices and the potential at infinity:
V V j j
However, it is necessary to remember that the vortex possesses a singularity at the source and artificially high velocities can result if several vortices are brought too close together . In the steady state case all vortices are motionless whether on an infinitely thin plate or in a wrapped configuration. As well, the airfoil surface is considered to be impermeable – that is all flows are purely tangential to the surface. A brief note on conventions is required. While Zdunich uses the subscript i to denote panels and control points, it was decided to instead retain i for use with the control points while j is used for the panels since they are associated with the bound vortices.
Flow Tangency Condition Since the airfoil is solid it is required that, at the surface, the flow be tangential. Thus it is convenient to formally define this:
n j (V strea m ) n j 0 ˆ
ˆ
As the gradient of the potential is related to the vortex strengths through equation 2.2, it turns out that this constraint will allow us to solve for the vortex strengths according to:
(V ) n j ˆ
V j
n j j
k r jp ˆ
ˆ
j
2 r jp
2
n j 0 ˆ
Thus, we can find the velocity potential at any point p along the airfoil.
1.4Kutta Condition While flow tangency provides us with n equations in n unknowns, namely the vortex strengths, we have not yet constrained the way in which the flow comes off the airfoil. We accomplish this by applying a kutta-type constraint - that is we require the flow to smoothly come off the trailing edge of the airfoil. However, this causes the system to become overdetermined, since we now have n+1 equations in n unknowns. Therefore, it is necessary to ignore the flow tangency condition at one of the control points.
In the case of the flat panel, this is enforced by requiring that the flow to be orthogonal to the unit normal of the final panel at the trailing edge. Thus, the constraint is of the following form
V nTE ˆ
k r jTE ˆ
j
j
2 r jTE
2
nTE 0 ˆ
As for the finite thickness airfoil, Anderson specifies that unless we have a cusped trailing edge from which the flow may proceed smoothly, the velocity potential must go to zero at the TE. This is the only way to reconcile the opposing potentials at this point. As such, the kutta condition for a finite thickness airfoil becomes:
TEu TEl Where TEu is the vortex strength on the upper panel at the trailing edge and TEl is the vortex strength on the lower panel at the trailing edge. It is critical that both singularities be equal distances from the trailing edge in order to cancel each other perfectly. As well - as in the case of the flat plate airfoil - we must ignore one of the flow tangency equations at a particular control point in order to apply this condition.
In order to calculate the forces and moments acting on the airfoil, it is necessary to find an expression for the pressure distribution over the airfoil by relating it to the velocity field obtained from the interaction of the vortices. It can be shown from Bernouli’s equation that the pressure difference across a panel is given by:
V l 2 V u2 p j pu pl (V l V u )(V l V u ) 2 2 2
For a single flat sheet, the sum of velocity is also required. From Zdunich, this is given as twice the velocity found at the chord line. Thus:
j p j t j (V ) j l j ˆ
From above equation we can derive the force on each individual panel:
f j b(l j p j k ) ˆ
This can then be summed up over the panels to give the totals for forces and moments acting on the airfoil according to: L j f j
ˆ
j
D j f j i
ˆ
M j (r j r ea ) f
j
The geometry of the flat panel case is provided in Figure 4. It is important to note that the numbering begins at the leading edge.
Figure 8: Coordinate System used for Steady State Flat Panel Code Reprinted from Ref. 10 with modifications to the model shown in grey
It is apparent that we can rewrite the terms involving the vortex strength to produce: V ni ˆ
A ij
j
0
j
k r ji ˆ
Aij
Where
2 r ji
2
n j ˆ
Aij is referred to as an influence coefficient and depends uniquely upon the geometry of the airfoil. As such, since we have n-1 flow tangency conditions at n-1 control points and one kutta condition at the TE, we produce the following linear system:
A11 Ai1 ATE 1
A1 j
Aij
ˆ
ˆ
ATEj
V n1 0 j V ni 0 ATEn n V nTE 0 A1n 1
ˆ
This system was solved using the Matlab ‘\’ operator. Note that the final row of the ‘A’ matrix is the set of equations corresponding to the kutta condition and as such are denoted by TE. One interesting point is the consistency of the observed total circulation (i.e. the sum of all the bound vortex strengths). This is surprising since the theoretical distribution of vorticity is (theoretically) infinite at the leading edge. As it turns out, the vortices appear to compensate for one another, as such, the circulation estimate is essentially perfect with only a few panels. However, the greater the number of panels the better the estimate of the chord-wise circulation distribution and hence the distribution of lift and moment. Additionally, the precise form of the kutta condition requires some ex planation. It was mentioned that once the kutta constraint was added, an over-determined system resulted. The solution necessitated ignoring the flow tangency condition at one control point. But which control point to ignore?
As it turns out this is not an altogether arbitrary decision. From symmetry, it is desirable to neglect either the LE or TE control point, however, only one of these points is correct: the LE point. If instead we neglect the Trailing Edge point, we find that the vorticity distribution is the reverse and negative of the expected trend with the vorticity tending towards negative infinity at the TE. While
of minor importance to the steady state case, reversing the control point ordering for the timestepping case will result in erroneous results through interaction with the na scent wake vortex.
References [ 1 ] Strickland, J.H. (1975) The Darrius Turbine: A Performance Prediction Model using
Multiple Stream Tubes. United States Department of Energy, Sandria Laboratories. [available online] http://www.prod.sandia.gov/cgi-bin/techlib/accesscontrol.pl/1975/750431.pdf
[ 2 ] Jeffery, J.R. (1977) Oscillating Aerofoil Project . Report from the Pocklington School Design Centre, West Green, Pocklington, York, England.
[ 3 ] Payne, P.R. (1978) The Aeolian Windmill and other oscillating energy extractors . Annual Meeting of the American Chemical Society.
[ 4 ] Farthing S. (1979) private communication to Willi am McKinney. As reported in Reference 6. [ 5 ] Wilson, R.E. and Lissaman, P.B.S. (1974) Applied Aerodynamics of Windmills. NTIS PB238, 595.
[ 6 ] McKinney, W and DeLaurier, JD (1981) “ The Wingmill: An Oscillating-Wing Windmill .” Journal of Energy vol 5, n°2, pp109-115.
[ 7 ] Adamko, D.A. and DeLaurier, J.D. (1978) “An experimental study of an O scillating Wing Windmill.” Proceedings of the Second Canadian Workshop on Wind Engineering pp 64-66.
[ 8 ] Teng, N.H. (1987) The development of a computer code for the numerical solution of
unsteady, inviscid and incompressible flow over and airfoil . Master’s Thesis, Naval Postgraduate School.
[ 9 ] Winfield, J.F. (1990) A Three-Dimensional Unsteady Aerodynamic Model With
Applications to Flapping-Wing Propulsion. Master’s Thesis. University of Toronto Institute for Aerospace Studies. Toronto, Ontario, Canada.
[ 10 ] Zdunich, P. (2002) A Discrete Vortex Model of Unsteady Separated Flow About a Thin
Airfoil for Application to Hovering Flapping Wing Flight. Master’s Thesis. University of Toronto Institute for Aerospace Studies. Toronto, Ontario, Canada.
[ 11 ] Jones K.D. , Davids, S. and Platzer, M.F. (1999) “Oscillating Wing Power Generation” ASME Paper 99-7050 in Proceedings of the third ASME/JSME Joint Fluids
Engineering Conference.
[ 12 ] Brakez, A, Zrikem, Z, and Mir, A (2002) “Modélisation de l’Extraction de l’Energie Eolienne par une Aile Oscillante.” In Procédé de la Forum Internationale sur les Energies Renouvelables (FIER) 2002. [ 13 ] Anderson, J.D. (2001) Fundamentals of Aerodynamics . 3rd Edition. Published by McGraw Hill Publishing.
[ 14 ] Jones, K.D. (2003) Online Continuous Vortex Panel Solver [online] http://www.aa.nps.navy.mil/~jones/
[ 15 ] Garrick, I. E. (1938) On some reciprocal relations in the theory of nonstationary
flows. NACA Technical Report n°629.
[ 16 ] Chow, C.Y. (1979) Introduction to Computational Fluid Mechanics . Published by John Wiley and Sons Publishing.
Appendix A
clear all; clc; close all; %Get start time t_0 = cputime; %General variables c = 1.500; %chord length N = 19; %Positive integer number of points to use on one side u_inf = 1; %Strenght of the free stream velocity aoa = 0*pi/180; %Angle between u inf and +x?axis in radians %NACA inputs: naca_1 = 2; naca_2_3 = 30; naca_4_5 = 12;
%Converting to useful airfoil measurements m_max = naca_1/100; %Maximum camber, in percent of chord m_x = naca_2_3/10; %Position of max camber, in tenths of chord t_max = c*naca_4_5/100; %Maximum thickness %% % x x
Find the panel end points Define a vector of x coordinates = linspace(0, c, N); %Varied distances from 0 to chord along the airfoil = transpose(x);
%Calculate the height above mean chord line y_t = (t_max/.2)*c*(.2969*sqrt(x/c) - .126*(x/c) - .3516*(x/c).^2 + ... .2843*(x/c).^3 - .1036*(x/c).^4); %Calculate the mean camber line y_c = zeros(length(x), 1); y_cPrime = zeros(length(x), 1); %the derivative of the y c line with ... %respect to x theta = zeros(length(x), 1); for i = 1:length(x) if(x(i) < m_x*c) y_c(i) = m_max*(x(i)/m_x^2)*(2*m_x - x(i)/c); y_cPrime(i) = (2*m_max*(c*m_x - x(i)))/(c*m_x^2); theta(i) = atan2(2*m_max*(c*m_x - x(i)), c*m_x^2); else y_c(i) = m_max*((c - x(i))/(1 - m_x)^2)*(1 + x(i)/c - 2*m_x); y_cPrime(i) = 2*m_max*(c*m_x - x(i))/(c*(1 - m_x)^2); theta(i) = atan2(2*m_max*(c*m_x - x(i)), c*(1 - m_x)^2); end end
lowerPts = [x + y_t.*sin(theta), y_c - y_t.*cos(theta)]; upperPts = [x - y_t.*sin(theta), y_c + y_t.*cos(theta)]; %Make sure there is only one TE point and only one LE point upperPts = upperPts(1:end-1, :); %delete the TE point lowerPts = lowerPts(2:end, :); %delete the LE point %Create a combination of all points in order moving CW around the airfoil %starting at the LE allPts = vertcat(upperPts, flipud(lowerPts)); %% Calculate various lenghts, angles, and vectors %Find the length of each panel sideLen = zeros(length(allPts(:,1)),1); for i = 1:length(allPts(:,1)); if(i + 1 > length(allPts)) sideLen(i) = sqrt((allPts(i, 1) - allPts(1, 1))^2 + ... (allPts(i, 2) - allPts(1, 2))^2 ); else sideLen(i) = sqrt((allPts(i, 1) - allPts(i + 1, 1))^2 + ... (allPts(i, 2) - allPts(i + 1, 2))^2 ); end end %Find all control point locations and alpha values CP = zeros(length(allPts(:,1)), 2); alpha = zeros(length(allPts(:,1)), 1); for i = 1:length(allPts(:,1)) if(i + 1 > length(allPts)) %connect the last point to the first point alpha(i) = pi/2 + atan2(allPts(1, 2) - allPts(i, 2),... allPts(1, 1) - allPts(i, 1)); CP(i,:) = allPts(i, :) + (allPts(1, :) - allPts(i, :))/2; else alpha(i) = pi/2 + atan2(allPts(i + 1, 2) - allPts(i, 2),... allPts(i + 1, 1) - allPts(i, 1)); CP(i,:) = allPts(i, :) + (allPts(i + 1, :) - allPts(i, :))/2; end end %Find the normal and tangent vectors for each panel nVec = [cos(alpha), sin(alpha)]; tVec = [cos(alpha - pi/2), sin(alpha - pi/2)]; % Find distance between control points and the angle between each ray and % the free stream velocity. L = zeros(length(CP(:,1)), length(CP(:,1))); beta = zeros(length(CP(:,1)), length(CP(:,1))); for i = 1:length(CP(:,1))
for j = 1:length(CP(:,1)) if(i == j) L(i,j) = 0; beta(i,j) = alpha(i); else L(i, j) = sqrt((CP(j, 1) - CP(i, 1))^2 + (CP(j, 2) - CP(i, 2))^2); beta(i, j) = atan2(CP(j, 2) - CP(i, 2), CP(j, 1) - CP(i, 1)); end end end %convert u inf to a vector u_inf_vector = zeros(length(allPts(:,1)),2); u_inf_vector(:,1) = cos(aoa); u_inf_vector(:,2) = sin(aoa); % Find the normal and tangential components of u inf wrt each panel b_n = zeros(size(nVec(:,1))); b_t = zeros(size(tVec(:,1))); for i = 1:length(allPts(:,1)) b_n(i) = -1*dot(u_inf_vector(i,:), nVec(i,:)); b_t(i) = dot(u_inf_vector(i,:), tVec(i,:)); end % Find the normal influence components and the tangential influence ... %coefficients% normCoeff = zeros(length(CP(:,1)), length(CP(:,1))); tanCoeff = zeros(length(CP(:,1)), length(CP(:,1)));
for i = 1:length(CP(:,1)); for j = 1:length(CP(:,1)); if(i == j) normCoeff(i, j) = 1/(2*sideLen(i)); tanCoeff(i, j) = 0; else normCoeff(i, j) = cos(beta(j,i) - alpha(i))/(2*pi*L(j,i)); tanCoeff(i, j) = cos(beta(j,i) - alpha(i) + pi/2)/(2*pi*L(j,i)); end end end % Use linear algebra to solve for the source strength of each panel m = normCoeff\b_n; %Use the tangential influence coefficients to find the tangential %velocities at each panel v_Si = tanCoeff*m + b_t; %Compute the coefficient of pressure CPressure = 1 - (v_Si/u_inf).^2; %Compute time to do the calculations t_elapsed = cputime - t_0; fprintf('Time needed to do calculations: %6.4f', t_elapsed);
%% Plotting %Create title string strTitle = sprintf('NACA_%i%i%i', naca_1, naca_2_3, naca_4_5); % Plot control points and normal vectors figure(); hold on; quiver(CP(:, 1), CP(:, 2), nVec(:,1), nVec(:,2), 0.5, 'g'); quiver(CP(:, 1), CP(:, 2), tVec(:,1), tVec(:,2), 0.5, 'm'); plot(CP(:, 1), CP(:, 2), 'r*'); %Plot the points plot(allPts(:, 1), allPts(:,2), '-*'); %connect the last point to the first point plot([allPts(end,1), allPts(1,1)], [allPts(end,2), allPts(1,2)], '-*'); axis([-0.1, 2.0, -.6, .6]); %Set the xMin, xMax, yMin, yMax respectively set(gca,'DataAspectRatio', [1 1 1]); grid on; legend('Normal_Vectors', 'Tangent_Vectors', 'Control_Points'); xlabel('x'); ylabel('y'); title(strTitle); % Plot the airfoil and the coefficient of pressure % Plot control points and normal vectors figure(); hold on; plot(allPts(1:N, 1), CPressure(1:N), 'g'); plot(allPts(N+1:end, 1), CPressure(N+1:end), 'r'); plot(allPts(:, 1), -1*allPts(:,2)); %connect the last point to the first point plot([allPts(end,1), allPts(1,1)], -1*[allPts(end,2), allPts(1,2)]); axis([-0.25, 2.0, -1, 1]); %Set the xMin, xMax, yMin, yMax respectively set(gca,'DataAspectRatio', [1 1 1]); legend('C_P ? Top', 'C_P ? Bottom', 'Location', 'SE'); xlabel('x'); ylabel('C_P'); title(strTitle); set(gca, 'YDir', 'reverse'); grid on; % Plot the velocities figure(); hold on; quiver(-0.2, 0, u_inf_vector(1,1), u_inf_vector(1,2), 'r'); quiver(CP(:, 1), CP(:, 2), v_Si.*tVec(:,1), v_Si.*tVec(:,2), 'g'); plot(allPts(:, 1), -1*allPts(:,2)); %connect the last point to the first point plot([allPts(end,1), allPts(1,1)], -1*[allPts(end,2), allPts(1,2)]); axis([-0.25, 2.0, -0.5, 0.5]); set(gca,'DataAspectRatio', [1 1 1]); grid on; legend('U_i_n_f', 'V_s'); title(strTitle);
%Verification of L and beta measurements for i = 1:length(L(:,1)) figure(i + 3); polar(beta(i,:), L(i, :), '*'); end