public class NACAAirfoil extends Object
Modifier and Type | Field and Description |
---|---|
protected double |
aoa
Angle of attack in degrees (works better in the equations) associated with the current velocity
|
protected double |
area
Planform area of the airfoil section
|
double |
cDrag
Coefficient of drag for the current velocity and control setting
|
protected double |
chord
Airfoil chord width
|
double |
cLift
Coefficient of lift for the current velocity and control setting
|
double |
cMoment
Coefficient of moment of inertia about the aerodynamic center for the current velocity and control setting
|
protected double |
controlSetting
Current flap or aeleron setting
|
protected int |
controlType
integer designation for the airfoil control type (fixed, stabilator, or flapped)
|
Vector3D |
dragVector
Current drag force vector being generated by the airfoil
|
static int |
FIXED
Enumeration for type of airfoil
|
static int |
FLAPPED |
Vector3D |
liftVector
Current lifting force vector being generated by the airfoil
|
static int |
N0006
Enumeration for NACA airfoils covered in ref a.
|
static int |
N0009 |
static int |
N0010_34 |
static int |
N0010_35 |
static int |
N0012 |
static int |
N0012_64 |
static int |
N1408 |
static int |
N1410 |
static int |
N1412 |
static int |
N23012 |
static int |
N23015 |
static int |
N23018 |
static int |
N23021 |
static int |
N23024 |
static int |
N2408 |
static int |
N2410 |
static int |
N2412 |
static int |
N2415 |
static int |
N2418 |
static int |
N2421 |
static int |
N2424 |
static int |
N4412 |
static int |
N4415 |
static int |
N4418 |
static int |
N4421 |
static int |
N4424 |
static int |
N63_006 |
static int |
N63_009 |
static int |
N63_012 |
static int |
N63_015 |
static int |
N63_018 |
static int |
N63_021 |
static int |
N63_206 |
static int |
N63_209 |
static int |
N63_210 |
static int |
N63_212 |
static int |
N63_215 |
static int |
N63_218 |
static int |
N63_221 |
static int |
n63_412 |
static int |
N63_415 |
static int |
N63_418 |
static int |
N63_421 |
static int |
N63_615 |
static int |
N63_618 |
static int |
N63A010 |
static int |
N63A020 |
static int |
N64_006 |
static int |
N64_009 |
static int |
N64_012 |
static int |
N64_015 |
static int |
N64_018 |
static int |
N64_021 |
static int |
N64_108 |
static int |
N64_110 |
static int |
N64_112 |
static int |
N64_206 |
static int |
N64_208 |
static int |
N64_209 |
static int |
N64_210 |
static int |
N64_212 |
static int |
N64_215 |
static int |
N64_218 |
static int |
N64_221 |
static int |
N64_412 |
static int |
N64_415 |
static int |
N64_418 |
static int |
N64_421 |
static int |
N64_618 |
static int |
N64A010 |
static int |
N64A210 |
static int |
N64A212 |
static int |
N64A215 |
static int |
N64A410 |
static int |
N65_006 |
static int |
N65_009 |
static int |
N65_012 |
static int |
N65_015 |
static int |
N65_018 |
static int |
N65_021 |
static int |
N65_206 |
static int |
N65_209 |
static int |
N65_210 |
static int |
N65_212 |
static int |
N65_215 |
static int |
N65_218 |
static int |
N65_221 |
static int |
N65_410 |
static int |
N65_412 |
static int |
N65_415 |
static int |
N65_418 |
static int |
N65_421 |
static int |
N65_618 |
static int |
N66_006 |
static int |
N66_009 |
static int |
N66_012 |
static int |
N66_015 |
static int |
N66_018 |
static int |
N66_021 |
static int |
N66_206 |
static int |
N66_209 |
static int |
N66_210 |
static int |
N66_212 |
static int |
N66_215 |
static int |
N66_218 |
static int |
N66_221 |
static int |
N66_415 |
static int |
N66_418 |
Vector3D |
normal
Airfoil normal direction (unit vector in body fixed coordinates)
|
protected Vector3D |
position
Position of the airfoil center of lift in body coordinates of the vehicle to which it is attached
|
protected double |
span
Airfoil span width
|
static int |
STABILATOR |
Vector3D |
velocity
Current velocity of the airfoil in body coordinates
|
Constructor and Description |
---|
NACAAirfoil(String id,
int designation,
double chord,
double span,
Vector3D position,
Vector3D normal,
int controlType)
Creates a new NACAAirfoil object
|
Modifier and Type | Method and Description |
---|---|
Vector3D |
dragVector(double altitude)
Calculates the drag force applied to the airfoil given its current velocity and altitude
NOTE: Since this method depends on cDrag, if the velocity changes, setCoefficients
should be called prior to this method to ensure accuracy
|
double |
dynamicPressure(double altitude)
Computes the dynamic pressure of the airfoil given a velocity vector
|
double |
dynamicPressure(Vector3D velocity,
double altitude)
Computes the dynamic pressure of the airfoil given a scalar velocity
|
Vector3D |
foilVelocity(Vector3D linearVelocity,
Vector3D angularVelocity)
Computes the velocity of the center of lift given the rigid body's linear and angular velocities
|
Vector3D |
liftVector(double altitude)
Calculates the lifting force applied to the airfoil given its current velocity and altitude
NOTE: Since this method depends on cLift, if the velocity changes, setCoefficients
should be called prior to this method to ensure accuracy
|
double |
maxNonStallAOA()
Computes the maximum non-stall angle of attack for the current control setting
|
double |
minNonStallAOA()
Computes the minimum non-stall angle of attack for the current control setting
|
double |
reynoldsNumber(double velocity,
double altitude)
Computes the Reynolds number of the airfoil given an altitude and scalar velocity
|
double |
reynoldsNumber(Vector3D velocity,
double altitude)
Computes the Reynolds number of the airfoil given an altitude and vector velocity
|
double |
setAOA(Vector3D velocity)
Computes the angle of attack given the velocity of the airfoil
The angle of attack is computed as the angle between the normal and the lift vector
|
void |
setCoefficients(Vector3D velocity)
Sets the airfoil's current lift, drag, and moment of inertia coefficients, and angle of attack
|
void |
setControl(double setting)
Sets the flap or stabilator orientation of the airfoil
|
double |
setDragCoefficient()
Computes the airfoil's current drag coefficient
Since the C_Drag and C_Moment depend on C_Lift, if AOA (velocity) changes, setLiftCoefficient
should be called prior to setDragCoefficient and setMomentCoefficient for correct results
Control setting is not relevant here because it is already factored into C_Lift
|
double |
setLiftCoefficient()
Computes the airfoil's current lift coefficient
Since the C_Drag and C_Moment depend on C_Lift, if AOA (velocity) changes, this method
should be called prior to setDragCoefficient and setMomentCoefficient for correct results
|
Vector3D |
torqueVector()
Calculates the total moment about the rigid body center of gravity due to
aerodynamic forces acting on this airfoil.
|
Vector3D |
unitDrag(Vector3D velocity)
Computes the unit vector direction of airfoil drag given the velocity
Drag direction is directly opposite velocity
|
Vector3D |
unitLift(Vector3D velocity)
Computes the unit vector direction of airfoil lift given the velocity
Lift direction is perpendicular to drag and in the plane formed by the
drag and normal vectors computed as D x N x D
|
public static final int FIXED
public static final int STABILATOR
public static final int FLAPPED
protected int controlType
protected double chord
protected double span
protected double area
protected Vector3D position
public Vector3D normal
protected double aoa
public Vector3D velocity
public double cLift
public double cDrag
public double cMoment
public Vector3D liftVector
public Vector3D dragVector
protected double controlSetting
public static final int N0006
public static final int N0009
public static final int N0010_34
public static final int N0010_35
public static final int N0012
public static final int N0012_64
public static final int N1408
public static final int N1410
public static final int N1412
public static final int N2408
public static final int N2410
public static final int N2412
public static final int N2415
public static final int N2418
public static final int N2421
public static final int N2424
public static final int N4412
public static final int N4415
public static final int N4418
public static final int N4421
public static final int N4424
public static final int N23012
public static final int N23015
public static final int N23018
public static final int N23021
public static final int N23024
public static final int N63_006
public static final int N63_009
public static final int N63_206
public static final int N63_209
public static final int N63_210
public static final int N63_012
public static final int N63_212
public static final int n63_412
public static final int N63_015
public static final int N63_215
public static final int N63_415
public static final int N63_615
public static final int N63_018
public static final int N63_218
public static final int N63_418
public static final int N63_618
public static final int N63_021
public static final int N63_221
public static final int N63_421
public static final int N63A010
public static final int N63A020
public static final int N64_006
public static final int N64_009
public static final int N64_108
public static final int N64_110
public static final int N64_206
public static final int N64_208
public static final int N64_209
public static final int N64_210
public static final int N64_012
public static final int N64_112
public static final int N64_212
public static final int N64_412
public static final int N64_015
public static final int N64_215
public static final int N64_415
public static final int N64_018
public static final int N64_218
public static final int N64_418
public static final int N64_618
public static final int N64_021
public static final int N64_221
public static final int N64_421
public static final int N64A010
public static final int N64A210
public static final int N64A410
public static final int N64A212
public static final int N64A215
public static final int N65_006
public static final int N65_009
public static final int N65_206
public static final int N65_209
public static final int N65_210
public static final int N65_410
public static final int N65_012
public static final int N65_212
public static final int N65_412
public static final int N65_015
public static final int N65_215
public static final int N65_415
public static final int N65_018
public static final int N65_218
public static final int N65_418
public static final int N65_618
public static final int N65_021
public static final int N65_221
public static final int N65_421
public static final int N66_006
public static final int N66_009
public static final int N66_206
public static final int N66_209
public static final int N66_210
public static final int N66_012
public static final int N66_212
public static final int N66_015
public static final int N66_215
public static final int N66_415
public static final int N66_018
public static final int N66_218
public static final int N66_418
public static final int N66_021
public static final int N66_221
public NACAAirfoil(String id, int designation, double chord, double span, Vector3D position, Vector3D normal, int controlType)
id
- a string identifying this airfoil (i.e. "port inboard")designation
- the 4, 5 or 6-digit NACA designation being modeledchord
- fore-aft length of the airfoilspan
- width of airfoil sectionposition
- of the wing center of lift in aircraft body coordinatesnormal
- vector defining the up direction of the spancontrolType
- can be FIXED, STABILATOR, or FLAPPEDpublic void setControl(double setting)
setting
- control settingpublic void setCoefficients(Vector3D velocity)
velocity
- of the airfoil in body coordinates (u, v, w)public double maxNonStallAOA()
public double minNonStallAOA()
public double setLiftCoefficient()
public double setDragCoefficient()
public Vector3D foilVelocity(Vector3D linearVelocity, Vector3D angularVelocity)
linearVelocity
- of the airfoil in body coordinates (u, v, w)angularVelocity
- of the airfoil in body coordinates (p, q, r)public double setAOA(Vector3D velocity)
velocity
- velocity of the wing in body coordinates (u, v, w)public Vector3D unitLift(Vector3D velocity)
velocity
- of the airfoil in body coordinates (u, v, w)public Vector3D unitDrag(Vector3D velocity)
velocity
- of the airfoil in body coordinates (u, v, w)public Vector3D liftVector(double altitude)
altitude
- in meters above mean sea levelpublic Vector3D dragVector(double altitude)
altitude
- in meters above mean sea levelpublic Vector3D torqueVector()
public double dynamicPressure(double altitude)
altitude
- public double dynamicPressure(Vector3D velocity, double altitude)
velocity
- vector in body coordinates (u, v, w)altitude
- in meters above mean sea levelpublic double reynoldsNumber(double velocity, double altitude)
velocity
- meters per secondaltitude
- in meters above mean sea levelpublic double reynoldsNumber(Vector3D velocity, double altitude)
velocity
- meters per secondaltitude
- in meters above mean sea level