cst2DType

complexType · extension complexBaseType · all

Profile defined by the class-shape transformation (CST)

The class-shape transformation (CST) describes a profile by two analytical functions, one for the upper and one for the lower side. Instead of a list of points, a few parameters per side define a smooth profile with a well-defined leading and trailing edge. This makes the parameterization compact and well suited for design and optimization.

Coordinates

The profile is defined in coordinates normalized by the chord length c. ψ = x/c runs along the chord from the leading edge (ψ = 0) to the trailing edge (ψ = 1). ζ is the normalized coordinate normal to the chord (z/c for wing and rotor airfoils, y/c for nacelle profiles). The leading edge therefore lies at (0, 0) and the trailing edge at (1, 0). Size, position and orientation of the profile are defined where it is referenced, e.g. by the transformation of a wing element.

CST profile in normalized coordinates with upper and lower side, sampling positions and trailing edge thickness

Upper and lower side

Each side is the product of a class function C and a shape function S, plus a linear term for the trailing edge thickness:

Upper side: \zeta_{upper} = C_{upper} S_{upper} + \psi \Delta\zeta_{TE}/2; lower side: \zeta_{lower} = -C_{lower} S_{lower} - \psi \Delta\zeta_{TE}/2

Both sides are parameterized independently: the upper side by upperN1, upperN2 and upperB, the lower side by lowerN1, lowerN2 and lowerB. Due to the minus sign in the equation of the lower side, positive lowerB coefficients place the lower side below the chord. A symmetric profile therefore has identical parameters for both sides. Note that this differs from the original notation by Kulfan, in which the coefficients of the lower side are usually negative.

Class function

C(\psi) = \psi^{N_1} (1-\psi)^{N_2}

The class function defines the basic type of the profile. It is zero at the leading and at the trailing edge; the exponent N1 shapes the leading edge and N2 the trailing edge. Typical combinations are:

N1 N2 Profile type
0.5 1.0 conventional airfoil with round leading edge and sharp trailing edge
0.5 0.5 elliptic profile, round at both ends
1.0 1.0 biconvex profile, pointed at both ends

Shape function

S(\psi) = \sum_{i=0}^{n} B_i \frac{n!}{i!(n-i)!} \psi^i (1-\psi)^{n-i}

The shape function scales the class function along the chord. It is a weighted sum of Bernstein polynomials whose weights Bi are the entries of upperB or lowerB, ordered from the leading to the trailing edge. The number of coefficients determines the polynomial degree n = (number of coefficients − 1); more coefficients allow more detailed shapes. Each coefficient acts mainly on one part of the chord:

The following figure shows how class function and shape function combine to the upper side of the example below:

Class function times shape function yields the upper side of a CST profile

Trailing edge thickness

The optional trailingEdgeThickness (ΔζTE in the equations above) is the total thickness at the trailing edge relative to the chord. Half of it is added to each side, growing linearly from zero at the leading edge. If it is omitted, the trailing edge is sharp.

Sampling positions

The psi vector lists the positions at which a tool that needs discrete coordinates, e.g. for exporting a point list, evaluates the profile. It does not change the shape, which is defined for all ψ between 0 and 1. The values are given in ascending order from 0 to 1 and are typically denser near the leading edge, where the curvature is highest.

Example

The following wing airfoil approximates the NACA 2412 airfoil, including its finite trailing edge thickness. It is the profile shown in the figures above.

<wingAirfoil uID="NACA2412_CST">
    <name>NACA 2412 (CST)</name>
    <cst2D>
        <psi>0;0.005;0.02;0.05;0.1;0.2;0.3;0.4;0.5;0.6;0.7;0.8;0.9;1</psi>
        <upperN1>0.5</upperN1>
        <upperN2>1.0</upperN2>
        <upperB>0.1939;0.1974;0.231;0.1723;0.2176;0.2044</upperB>
        <lowerN1>0.5</lowerN1>
        <lowerN2>1.0</lowerN2>
        <lowerB>0.1516;0.1062;0.0926;0.0931;0.0704;0.0758</lowerB>
        <trailingEdgeThickness>0.0025</trailingEdgeThickness>
    </cst2D>
</wingAirfoil>
CST parameterization of a NACA 2412 airfoil

Reference: B. M. Kulfan, "Universal Parametric Geometry Representation Method", Journal of Aircraft, Vol. 45, No. 1, pp. 142–158, 2008, doi:10.2514/1.29958.

Attributes

NameTypeConstraintsUseDefaultDescription
@externalDataDirectoryxsd:stringoptionalDirectory of the external data file
@externalDataNodePathxsd:stringoptionalPath of the node inside the external data file
@externalFileNamexsd:stringoptionalName of the external data file

Child elements

NameTypeConstraintsOccurrenceHow often the element may appear at this place. The schema writes it as minOccurs and maxOccurs on the declaration.DefaultDescription
allThe children below may appear in any order. Each may appear at most once.
psistringVectorBaseType[1..1] requiredPositions ψ = x/c at which the profile is evaluated when discrete coordinates are needed, in ascending order from 0 (leading edge) to 1 (trailing edge)
upperN1doubleBaseType[1..1] requiredClass function exponent N1 of the upper side, shaping the leading edge (e.g. 0.5 for a round leading edge)
upperN2doubleBaseType[1..1] requiredClass function exponent N2 of the upper side, shaping the trailing edge (e.g. 1.0 for a finite trailing edge angle)
upperBstringVectorBaseType[1..1] requiredShape function coefficients of the upper side, ordered from leading to trailing edge
lowerN1doubleBaseType[1..1] requiredClass function exponent N1 of the lower side, shaping the leading edge (e.g. 0.5 for a round leading edge)
lowerN2doubleBaseType[1..1] requiredClass function exponent N2 of the lower side, shaping the trailing edge (e.g. 1.0 for a finite trailing edge angle)
lowerBstringVectorBaseType[1..1] requiredShape function coefficients of the lower side, ordered from leading to trailing edge; positive values place the lower side below the chord
trailingEdgeThicknessdoubleBaseType[0..1] optionalTotal trailing edge thickness relative to the chord, split equally between upper and lower side (if omitted: sharp trailing edge)

Used by

In a dataset · 5 paths

In the schema · 2 declarations

TypeName
profileGeometry2DTypecst2D
profileGeometryTypecst2D