Skip to content
Snippets Groups Projects
Commit c1f63afb authored by Meric Taneri's avatar Meric Taneri
Browse files

constraint analysis documentation added

parent c31bfddf
No related branches found
No related tags found
1 merge request!29constraint analysis documentation added
Pipeline #1606858 waiting for manual action
......@@ -61,7 +61,7 @@ The `constraint_analysis` module updates the performance criteria wing loading a
|Module Version|Language|License|Documentation|
|:---:|:---:|:---:|---|
|1.0.0|:simple-cplusplus: |GPLv3|-|
|1.0.0|:simple-cplusplus: |GPLv3|[Link](analysis/constraint_analysis/index.md)|
---
......
# Constraint Analysis {#mainpage}
# Aerodynamic and Performance Equations for Constraint Analysis Module
## Function
Adjust the design point based on the point performance requirements.
## Rationale
The end-of-the-loop aircraft’s aerodynamic performance is different to that of the beginning-of-the-loop aircraft. Therefore, it is necessary to size the aircraft based on the most up to date data from the design loop. This way, the design is ensured to have the best fitting characteristics to the mission and performance requirements.
## Logic
Point performance requirements are evaluated as constraints within the T_SL/W_TO – W_TO/S_Ref design space. The point is selected to have the minimum T_SL/W_TO possible value that lies in the feasible space.
## Derivation
1\. Lift Equation (getCL):
L=n\\cdot W=\\frac{1}{2}\\cdot\\rho\\cdot\\left(M\\cdot a\\right)^2\\cdot C_L\\cdot S
C_L=\\frac{n}{\\frac{1}{2}\\cdot\\rho\\cdot\\left(M\\cdot a\\right)^2}\\cdot\\left(W/S\\right)
2\. Drag Equation:
D=\\frac{1}{2}\\cdot\\rho\\cdot\\left(M\\cdot a\\right)^2\\cdot C_D\\cdot S,\\emsp\\mathrm{where\\ }C_D=f\\left(C_L\\right)
3\. Thrust-Difference Equation:
T-D=W\\cdot\\frac{d}{dt}\\left(h+\\frac{\\left(M\\cdot a\\right)^2}{2\\cdot g}\\right)
4\. Weight and Thrust Relationships:
W=\\beta\\cdot W_{TO}
T=\\alpha\\cdot T_{SL},\\emsp\\mathrm{where\\ }\\alpha=f\\left(M,h\\right)
5\. Substituted Thrust-Difference Equation:
T-\\left(\\frac{1}{2}\\cdot\\rho\\cdot\\left(M\\cdot a\\right)^2\\cdot f\\left(C_L\\right)\\cdot S\\right)=W\\cdot\\frac{d}{dt}\\left(h+\\frac{\\left(M\\cdot a\\right)^2}{2\\cdot g}\\right)
## Final Substituted Equation
\\frac{T_{SL}}{W_{TO}}=\\frac{\\beta\\cdot\\frac{d}{dt}\\left(h+\\frac{V^2}{2\\cdot g}\\right)+\\frac{1}{2}\\cdot\\rho\\cdot\\left(M\\cdot a\\right)^2\\cdot f\\left(C_L\\right)}{\\alpha\\cdot\\left(W_{TO}/S\\right)}
f\\left(C_L\\right)=C_D\\left(\\frac{\\beta\\cdot n}{\\frac{1}{2}\\cdot\\rho\\cdot\\left(M\\cdot a\\right)^2}\\cdot\\left(W_{TO}/S\\right)\\right)
## Parameter Meanings
L: Lift (N)
n: Load factor (dimensionless)
W: Weight (N)
ρ: Air density (kg/m^3)
M: Mach number (dimensionless)
a: Speed of sound (m/s)
C_L: Lift coefficient (dimensionless)
C_D: Drag coefficient (dimensionless)
S: Reference area (m^2)
T: Thrust (N)
D: Drag (N)
h: Altitude (m)
g: Gravitational acceleration (9.81 m/s^2)
β: Weight fraction (dimensionless)
W_{TO}: Takeoff weight (N)
α: Thrust fraction (dimensionless), α = f(M, h)
T_{SL}: Sea-level thrust (N)
f(C_L): Functional relationship defining drag coefficient in terms of lift coefficient
## Cases
Equation 1 (constant_altitude_speed_cruise):
\\frac{T_{SL}}{W_{TO}}=\\frac{\\beta}{\\alpha}\\cdot\\left(\\frac{0.5\\cdot\\rho\\cdot\\left(M\\cdot a\\right)^2}{\\beta}\\cdot\\frac{1.0}{W/S}\\right)\\cdot C_D
Equation 2 (constant_speed_climb):
\\frac{T_{SL}}{W_{TO}}=\\frac{\\beta}{\\alpha}\\cdot\\left(\\frac{C_D}{\\frac{\\beta}{q\\cdot W/S}}+\\frac{1}{u}\\cdot\\frac{dh}{dt}\\right),\\ \\ \\ \\ where:u=M\\cdot a,\\emsp q=0.5\\cdot\\rho\\cdot u^2
Equation 3 (constant_altitude_speed_turn):
\\frac{T_{SL}}{W_{TO}}=\\frac{\\beta}{\\alpha}\\cdot\\left(K_1\\cdot n^2\\cdot\\frac{\\beta}{0.5\\cdot\\rho\\cdot\\left(M\\cdot a\\right)^2}\\cdot W/S+\\frac{C_{D0}}{\\frac{\\beta}{0.5\\cdot\\rho\\cdot\\left(M\\cdot a\\right)^2}\\cdot W/S}\\right)
Equation 4 (horizontal_acceleration):
\\frac{T_{SL}}{W_{TO}}=\\frac{\\beta}{\\alpha}\\cdot\\frac{0.5\\cdot\\rho\\cdot\\left(M\\cdot a\\right)^2}{\\beta}\\cdot\\frac{1.0}{W/S}\\cdot C_D\\cdot\\frac{1}{g_0}\\cdot\\frac{dv}{dt}
Equation 5 (takeoff_ground_roll):
\\frac{T_{SL}}{W_{TO}}=\\frac{\\beta^2}{\\alpha}\\cdot\\frac{k_{T0}^2}{s_G\\cdot\\rho\\cdot g_0\\cdot C_{L_{\\mathrm{max,\\ TO}}}}\\cdot W/S
Equation 6 (braking_roll):
W/S=\\frac{s_G\\cdot\\rho\\cdot\\ g_0\\cdot\\mathrm{\\ }\\ \\left(C_{D_L}-\\mu_B\\cdot\\ C_{L_L}\\right)}{\\beta\\cdot\\ l\\ n\\left(1+\\frac{C_{D_L}-\\mu_B\\cdot\\ C_{L_L}}{\\frac{\\mu_B\\cdot\\ C_{L_L}}{k_{T0}^2}}\\right)}
Equation 7 (service_ceiling):
\\frac{T_{SL}}{W_{TO}}=\\frac{\\beta}{\\alpha}\\cdot\\left(K_1\\cdot\\frac{\\beta}{0.5\\cdot\\rho\\cdot\\left(M\\cdot a\\right)^2}\\cdot W/S+K_2+\\frac{C_{D0}}{\\frac{\\beta}{0.5\\cdot\\rho\\cdot\\left(M\\cdot a\\right)^2}\\cdot W/S}+\\frac{1}{M\\cdot a}\\cdot\\mathrm{SEP}\\ \\right)
Equation 8 (takeoff_climb_angle):
\\frac{T_{SL}}{W_{TO}}=\\frac{\\beta}{\\alpha}\\cdot(K_1\\cdot\\frac{C_{L_{\\mathrm{max,\\ TO}}}}{k_{T0}^2}+K_2+\\frac{C_{D0}}{\\frac{C_{L_{\\mathrm{max,\\ TO}}}}{k_{T0}^2}}+\\sin\\funcapply\\gamma)
Equation 9 (gust):
W/S=\\frac{C_{L_\\alpha}\\cdot\\rho\\cdot V_{TO_L}\\cdot w_g}{d_{n_G}\\cdot2\\cdot\\beta}
## Building the Cases for Constraint Analysis
Constraint 1: One Engine Inoperative
Inputs are:
W_over_S_data,
CD_vector (taken from the polar or calculated based on quadratic fit),
weight_fraction_TO (taken from the mission analysis results),
alpha_TO (taken from the engine library and modified to account for OEI),
M_TO,
altitude = 0.0,
load_factor = 1.0,
2.4 / 100.0 \* climb_speed;
Climb speed is taken from the aircraft XML file. The OEI climb gradient is 2.4%.
Output is the minimum Thrust to Weight ratio that the aircraft shall have as a vector.
Constraint 2: Service Ceiling (SEP)
Inputs are:
W_over_S_data,
CD_vector (taken from the polar or calculated based on quadratic fit),
weight_fraction_segment (taken from the mission analysis results),
alpha_segment (taken from the engine library),
M_max (taken from the aircraft XML file),
altitude_cruise,
load_factor = 1.0,
climb_gradient = 0.508;
The climb rate is 100 ft/min which corresponds to 0.508 m per second.
Output is the minimum Thrust to Weight ratio that the aircraft shall have as a vector.
Constraint 3: Landing Field Length
Inputs are:
CD_max_L (taken from the polar or calculated based on quadratic fit),
CL_max_L (C_LmaxLanding node of the aircraft XML),
weight_fraction_landing (taken from the mission analysis results),
alpha_landing (taken from the engine library),
M_TO (taken from the aircraft XML file),
altitude = 0.0,
my_B (breaking_coefficient node of the aircraft XML),
s_G_L (takeoff or landing field length)
Output is the maximum Wing Loading value that the aircraft shall have.
Constraint 4: Gust
Inputs are:
CL_alpha (the slope of the linear segment of the CL-AoA polar),
altitude = 0.0,
V_TO_L (taken from the aircraft XML file),
w_g (taken from the gust_speed node of the module config),
dn_G (taken from the gust_load_factor node of the module config),
weight_fraction_TO (taken from the mission analysis results),
## Updating the Design Point
min_finder.find_dominant_curve();
double sf = this->configuration_xml->at("module_configuration_file/program_settings/safety_factor/value");
min_finder.find_design_point(sf);
min_finder.update_design_point();
Steps:
1. Find the dominant curve: Takes the max T/W required at each W/S, hence gets the constraining curve
2. Read the “safety factor” which adds the desired increment to the minimum T/W for additional safety. (CAN BE VARIED EACH ITERATION FOR FASTER CONVERGENCE)
3. Find the minimum T/W from the dominant curve, get the W/S value corresponding to this T/W
1. Not an “optimization”, just a sorting algorithm
2. Does not interpolate between points
4. Update the design point
## Functional Flow
1. Initialize the Aircraft XML, Polar XML, Engine, and the Config XML
2. Initialize the wing loading vector
3. For each case:
1. Read the polar that corresponds to the desired Mach number and the flight configuration
2. Get the CL based on the Lift Equation
3. Get the CD that corresponds to the CL by either:
1. Getting the CD directly from the polar or,
2. Calculating the CD based on quadratic fit
4. Evaluate the constraint
4. Assemble the constraints
5. Find the dominant curve
6. Evaluate the feasible area
7. Find the minimum T/W from the dominant curve and get the W/S that corresponds to this T/W
8. Update the design point
9. Plot the results
10. Save the plots
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment