Aerodynamic coefficients for a flat plate (free molecular flow)
[res1, res2, ...] = CL_mod_aeroPanelCoef(v_wind, theta, temp, temp_p, m_mol_mass, ratio_spec, alpha, nsides, res)
Computes various aerodynamic coefficients for a flat plate.
Only one side or the two sides of the flat plate can be taken into account. In either case, one of the two sides is considered as the reference one, and the results depend on which one it is.
The reference side is implicitly defined by a normal vector (pointing outwards). The normal vector is defined with respect to the wind direction vector through the "theta" angle:
theta = pi/2 - angle(normal vector, -wind velocity vector)
where theta is in radians and angle() is between 0 and pi.
This means that |theta| is the (acute) angle between the wind velocity vector and the plate. If theta is positive, the reference side faces the wind. If theta is negative, the side at the back (of the reference side) faces the wind. And if theta is 0, the reference side is undefined, and some of the results are ambiguous.
The aerodynamic coefficients ct (tangential) and cn (normal) are defined such that:
F = 1/2 * rho * area * v_wind^2 * (ct * ut + cn * un)
where:
- F is the force vector exerted by the wind on the flat plate
- rho is the atmospheric density
- area is the area of the plate
- v_wind is the wind speed (> 0)
- ut and un are 2 unit vectors as shown in the following figure.
ut is parallel to the plate and un is perpendicular to the plate such that the wind velocity vector can be written:
vel_wind = ||vel_wind|| * (cos(theta) * ut + sin(theta) * un).
Thus, un and the normal vector point to opposite directions.
The force can also be given in a "ux, uz" frame, where ux and uz are the respective images of ut and un by the rotation of angle theta around the axis -vel_wind ^ normal:
ux = ut * cos(theta) + un * sin(theta)
uz = -ut * sin(theta) + un * cos(theta)
The force vector F is then :
F = 1/2 * rho * area * v_wind^2 * (cx * ux + cz * uz)
The computed quantities (described by the res argument) are:
- cx: Drag coefficient.
- cx_abs: Drag coefficient due to absortion.
- cx_spec: Drag coefficient due to specular re-emission.
- cx_diff: Drag coefficient due to diffuse re-emission.
- cz: Lift coefficient.
- cz_abs: Lift coefficient due to absortion.
- cz_spec: Lift coefficient due to specular re-emission.
- cz_diff: Lift coefficient due to diffuse re-emission.
- ct: Aerodynamic coefficient in the tangential direction.
- ct_abs: Aerodynamic coefficient in the tangential direction due to absortion.
- ct_spec: Aerodynamic coefficient in the tangential direction due to specular re-emision.
- ct_diff: Aerodynamic coefficient in the tangential direction due to diffuse re-emision.
- cn: Aerodynamic coefficient in the normal direction.
- cn_abs: Aerodynamic coefficient in the normal direction due to absortion.
- cn_spec: Aerodynamic coefficient in the normal direction due to specular re-emision.
- cn_diff: Aerodynamic coefficient in the normal direction due to diffuse re-emision.
Other possible values for res are:
- all: a structure containing all the coefficients is returned.
- all-tot: a structure containing all the "total" coefficients (cx, cz, ct, cn) is returned.
nsides specifies if only one side of the plate is considered or if both sides are. The frame relative to which the results are given is the same in the 2 cases: it is the one indirectly defined by the normal vector.
ratio_spec specifies the ratio of the number of molecules in the incident flow that are re-emitted by specular reflexion (as opposed to diffuse). It must be between 0 and 1: 0 => 0% specular re-emission (or 100% diffuse re-emission), 1 => 100% specular re-emission (or 0% diffuse re-emission). If ratio_spec is 0, the computation is consistent with COOK theory. Otherwise it also includes BIRD theory aspects.
Hypotheses:
- Free molecular flow: Kn = lambda / L >> 1 with lambda: mean free path in the free stream and L: typical linear dimension of the flat plate. That occurs for altitudes greater than 130km.
- Maxwellian distribution of molecular velocities in the incident flow relative to the plat plate.
- The incident molecules that are absorbed by the plate remain inside it for a long time compared to the time for the mean free path in the free stream before they are re-emitted. This thin layer of trapped molecules called wall gas is considered as a perfect gas in Maxwellian equilibrium.
- COOK theory for the accommodation coefficient: see CL_mod_aeroPanelAlpha.
Note:
- There is a slight discontinuity in cn_diff for theta = 0 (around 1.E-3). Same for cn, cz_diff and cz.
Speed of the air flow relative to the plate (positive) [m/s]. (1x1 or 1xN)
Signed acute angle (in [-pi/2, pi/2]) between the wind velocity vector and the plate [rad]. (1x1 or 1xN)
Atmospheric temperature [K]. (1x1 or 1xN)
Temperature of the flat plate (wall) [K]. (1x1 or 1xN)
Mean molar mass of incident flow molecules [kg/mol]. (1x1 or 1xN)
Ratio of number of molecules re-emitted specularly (between 0 and 1). (1x1 or 1xN)
Accommodation coefficient (between 0 and 1). (1x1 or 1xN)
(integer) Number of sides to be considered: 1 or 2. (1x1 or 1xN)
Names of computed quantities or "all" or "all-tot". (1xP)
Computed quantities. (1xN)
CNES - DCT/SB
1) Satellite drag coefficients, Cook G.E., 1965, Planet Space Sci. 13, 929-946.
2) Molecular gas dynamics and the direct simulation of gas flows, G.A. Bird, 1994, Oxford Science Publications
// --- Parameters v_wind = 7000; // m/s temp = 1100; // K temp_p = 300; // K m_mol_mass = 0.015; // kg ratio_spec = 0.1; alpha_k = 4; m_mol_mass_p = 0.016; // kg alpha = CL_mod_aeroPanelAlpha(alpha_k, m_mol_mass, m_mol_mass_p); // --- Example 1: flat plate (one side) theta = linspace(-%pi/2, %pi/2, 361); res = CL_mod_aeroPanelCoef(v_wind, theta, temp, temp_p, m_mol_mass, ratio_spec, alpha, 1, "all"); scf(); plot(CL_rad2deg(theta), res.cx_abs, "r"); plot(CL_rad2deg(theta), res.cx_spec, "g"); plot(CL_rad2deg(theta), res.cx_diff, "b"); plot(CL_rad2deg(theta), res.cx, "k"); xtitle("Drag Coefficient (1 side)", "theta = oriented angle between wind velocity vector and flat plate (deg)"); CL_g_legend(gca(), ["Absorption", "Specular reemiss.", "Diffuse reemiss.", "Total"]); CL_g_stdaxes(); scf(); plot(CL_rad2deg(theta), res.cz_abs, "r"); plot(CL_rad2deg(theta), res.cz_spec, "g"); plot(CL_rad2deg(theta), res.cz_diff, "b"); plot(CL_rad2deg(theta), res.cz, "k"); xtitle("Lift Coefficient (1 side)", "theta = oriented angle between wind velocity vector and flat plate (deg)"); CL_g_legend(gca(), ["Absorption", "Specular reemiss.", "Diffuse reemiss.", "Total"]); CL_g_stdaxes(); // --- Example 2: computation for a sphere // Integration over rings with velocity vector as axis of revolution // => cx_sphere = integral from 0 -> pi of: // [2 * pi * R * sin(phi)] * [R * d(phi)] * cx_plate(phi) / (pi * R^2) // phi = angle between normal and -vel_wind = pi/2 - theta // NB: Only cx matters (symmetry around velocity vector) theta = linspace(-%pi/2, %pi/2, 51); cx = CL_mod_aeroPanelCoef(v_wind, theta, temp, temp_p, m_mol_mass, ratio_spec, alpha, 1, "cx"); cx_sphere = intsplin(theta, 2 * cx .* cos(theta)) | ![]() | ![]() |