Aviumtechnologies Blog
  • Introduction
  • Topics
    • Initial sizing
    • Definition of axes and angles
    • Stability
      • Obtaining stability derivatives from forced oscillations
    • Equations of motion
    • PX4 Autopilot
      • Building and running PX4 Autopilot on BeagleBone® Blue
      • PX4 BeagleBone® Blue-based quadcopter
Powered by GitBook
On this page
  • P/W for a level, constant-velocity turn
  • P/W for a desired rate of climb
  • P/W for a desired cruise airspeed
  • P/W for a desired takeoff distance
  • P/W for a best range
  • P/W for best endurance
  • CLmax for desired stall speed
  • Example

Was this helpful?

  1. Topics

Initial sizing

The aim of the initial sizing is to come up with a design which is light, performs well, and is inexpensive to manufacture and operate.

PreviousIntroductionNextDefinition of axes and angles

Last updated 3 years ago

Was this helpful?

A popular method for initial sizing is the so called constraint analysis method. The method can be used to asses the required wing area and power for an aircraft such that the aircraft meets all performance requirements.

The performance requirements are defined by mathematical expressions of the following form:

TW=f(WS)\frac{T}{W}=f\left(\frac{W}{S}\right)WT​=f(SW​).

In the above equation TW\frac{T}{W}WT​is referred to as the thrust to weight ratio and the WS\frac{W}{S}SW​is referred to as the wing loading. The expressions relating the wing loading to the thrust to weight ratio are dependent on the performance requirements. Below are commonly used performance requirements equations. They can be found in any aircraft performance textbook.

The performance equations below are rewritten as a function of the power loading PW\frac{P}{W}WP​expressed in W/kgW/kgW/kg. This is more convenient when designing propeller-powered aircraft.

P/W for a level, constant-velocity turn

PW=qcruise(CD0WSg+k(ng)2WSg)Vcruiseηg\frac{P}{W}=q_{cruise}\left(\frac{C_{D0}}{\frac{W}{S}g}+k\left(\frac{n}{g}\right)^2\frac{W}{S}g\right)\frac{V_{cruise}}{\eta}gWP​=qcruise​(SW​gCD0​​+k(gn​)2SW​g)ηVcruise​​g

P/W for a desired rate of climb

PW=(ROCVclimb+qrefWSgCD0+kqrefWSg)Vclimbηg\frac{P}{W}=\left(\frac{ROC}{V_{climb}}+\frac{q_{ref}}{\frac{W}{S}g}C_{D0}+\frac{k}{q_{ref}}\frac{W}{S}g\right)\frac{V_{climb}}{\eta}gWP​=(Vclimb​ROC​+SW​gqref​​CD0​+qref​k​SW​g)ηVclimb​​g

P/W for a desired cruise airspeed

PW=(qcruiseCD0WSg+kqcruiseWSg)Vcruiseηg\frac{P}{W}=\left(\frac{q_{cruise}C_{D0}}{\frac{W}{S}g}+\frac{k}{q_{cruise}}\frac{W}{S}g\right)\frac{V_{cruise}}{\eta}gWP​=(SW​gqcruise​CD0​​+qcruise​k​SW​g)ηVcruise​​g

P/W for a desired takeoff distance

PW=[Vtakeoff22gStakeoff+qtakeoffCD,takeoffWSg+Cf,takeoff(1−qtakeoffCL,takeoffWSg)]Vclimbηg,Vtakeoff=1.1Vstall\frac{P}{W}=\left[\frac{V_{takeoff}^2}{2gS_{takeoff}}+\frac{q_{takeoff}C_{D,takeoff}}{\frac{W}{S}g}+C_{f,takeoff}\left(1-\frac{q_{takeoff}C_{L,takeoff}}{\frac{W}{S}g}\right)\right]\frac{V{climb}}{\eta}g,\\ V_{takeoff}=1.1V_{stall}WP​=[2gStakeoff​Vtakeoff2​​+SW​gqtakeoff​CD,takeoff​​+Cf,takeoff​(1−SW​gqtakeoff​CL,takeoff​​)]ηVclimb​g,Vtakeoff​=1.1Vstall​

Vstall=2ρCL,maxWSgV_{stall}=\sqrt{\frac{2}{\rho C_{L,max}}\frac{W}{S}g}Vstall​=ρCL,max​2​SW​g​

P/W for a best range

P/W for best endurance

CLmax for desired stall speed

The expressions above depend on the following parameters:

Parameter

Description

Load factor

Maximum lift coefficient

Minimum drag coefficient

Induced drag coefficient

Propulsive efficiency

Cruise airspeed and dynamic pressure

Climb airspeed, dynamic pressure and rate of climb

Takeoff airspeed, dynamic pressure, distance

Stall airspeed

Density

Acceleration due to gravity

Ground friction coefficient

When performing initial sizing it is difficult to determine the values for the above parameters. After all we haven't even started designing the aircraft! You have probably guessed already - aircraft design is an iterative process.

Example

Please refer to the Python code below which plots the constraint analysis for specific combination of parameters.

import math
import matplotlib.pyplot as plt
import numpy as np


k=0.0593
CD0=0.0181
eta=0.6
m=20
S=3.2200
V_turn=25
V_cruise=25
V_climb=20
ROC=10
ROC_ceiling=0.5
CL_CD0=0.2784
CL_max=1.7
rho=1.1116
rho_takeoff=1.225
rho_ceiling=0.8191
g=9.80665
phi=math.radians(30)
n=1/math.cos(phi)
S_takeoff=50
Cf_takeoff=0.025

N=100
wss = np.linspace(1,30,N)
pw_turn = np.zeros(N)
pw_climb = np.zeros(N)
pw_cruise = np.zeros(N)
pw_takeoff = np.zeros(N)
pw_ceiling = np.zeros(N)
pw_endurance = np.zeros(N)
pw_range = np.zeros(N)

i=0
for ws in wss:

    #Turn
    q=1/2*rho*V_turn**2
    pw_turn[i]=q*(CD0/(ws*g)+k*(n/q)**2*ws*g)*V_turn/eta*g
    P_turn = pw_turn[i] * m

    #Climb
    q=1/2*rho*V_climb**2
    pw_climb[i]=(ROC/V_climb+q/(ws*g)*CD0+k/q*ws*g)*V_climb/eta*g
    P_climb = pw_climb[i] * m

    #Cruise
    q=1/2*rho*V_cruise**2
    pw_cruise[i]=(q*CD0*(1/(ws*g))+k*(1/q)*ws*g)*V_cruise/eta*g
    P_cruise = pw_cruise[i] * m

    #Takeoff
    V_stall=math.sqrt(2/(rho_takeoff*CL_max)*ws*g)
    V_takeoff=1.1*V_stall

    CL_takeoff = 0.8*CL_max
    CD_takeoff = CD0 + k*(CL_takeoff-CL_CD0)**2

    q=1/2*rho_takeoff*(0.7*V_takeoff)**2
    pw_takeoff[i]=(V_takeoff**2/(2*g*S_takeoff)+q*CD_takeoff/(ws*g)+Cf_takeoff*(1-(q*CL_takeoff)/(ws*g)))*V_takeoff/eta*g
    P_takeoff=pw_takeoff[i] * m

    #Ceiling
    pw_ceiling[i]=(ROC_ceiling/math.sqrt(2/rho_ceiling*ws*g*math.sqrt(k/(3*CD0)))+4*math.sqrt((k*CD0)/3))*V_climb/eta*g
    P_cng=pw_ceiling[i]*m

    #Best endurance
    V_endurance = math.sqrt(2 * g * ws * math.sqrt(k / (3*CD0)) / rho)
    q = 1/2 * rho * V_endurance**2
    pw_endurance[i] = (q*CD0/(ws*g)+k/q*ws*g)*V_endurance/eta*g
    P_endurance = pw_endurance[i] * m

    #Best range
    V_range = math.sqrt(2 * g * ws * math.sqrt(k / CD0) / rho)
    q = 1/2 * rho * V_range**2
    pw_range[i] = (q*CD0/(ws*g)+k/q*ws*g)*V_range/eta*g
    P_range = pw_range[i] * m

    i=i+1

plt.figure()
plt.plot(wss,pw_cruise,label='Cruise')
plt.plot(wss,pw_climb,label='Climb')
plt.plot(wss,pw_turn,label='Turn')
plt.plot(wss,pw_endurance,label='Endurance')
plt.plot(wss,pw_range,label='Range')
plt.plot(wss,pw_ceiling,label='Ceiling')
plt.plot(wss,pw_takeoff,label='Takeoff')
plt.title('Constraints')
plt.legend()
plt.xlabel('Wing loading (kg/m^2)')
plt.ylabel('Power loading (W/kg)')
plt.show()

PW=(qrangeCD0WSg+kqrangeWSg)Vrangeηg,Vrange=2gρWSkCD0\frac{P}{W}=\left(\frac{q_{range}C_{D0}}{\frac{W}{S}g}+\frac{k}{q_{range}}\frac{W}{S}g\right)\frac{V_{range}}{\eta}g,\quad V_{range}=\sqrt{\frac{2g}{\rho}\frac{W}{S}\sqrt{\frac{k}{C_{D0}}}}WP​=(SW​gqrange​CD0​​+qrange​k​SW​g)ηVrange​​g,Vrange​=ρ2g​SW​CD0​k​​​

PW=(qenduranceCD0WSg+kqenduranceWSg)Venduranceηg,Vendurance=2gρWSk3CD0\frac{P}{W}=\left(\frac{q_{endurance}C_{D0}}{\frac{W}{S}g}+\frac{k}{q_{endurance}}\frac{W}{S}g\right)\frac{V_{endurance}}{\eta}g,\quad V_{endurance}=\sqrt{\frac{2g}{\rho}\frac{W}{S}\sqrt{\frac{k}{3C_{D0}}}}WP​=(SW​gqendurance​CD0​​+qendurance​k​SW​g)ηVendurance​​g,Vendurance​=ρ2g​SW​3CD0​k​​​

CL,max=1qstallWSgC_{L,max}=\frac{1}{q_{stall}}\frac{W}{S}gCL,max​=qstall​1​SW​g

The image below shows all the performance requirements equations. The required CL,maxC_{L,max}CL,max​for a desired stall speed is also shown.

In order to meet all performance requirements, the design point should be above all performance requirement equations. In the above image for a design having a wing loading of 25 kg/m225\text{ }kg/m^225 kg/m2the power loading should be approximately 200 W/kg200\text{ }W/kg200 W/kg. In addition for a design having a wing loading of 25 kg/m225\text{ }kg/m^225 kg/m2and a desired stall speed of 15 m/s15\text{ }m/s15 m/sthe maximum lift coefficient CL,maxC_{L,max}CL,max​of the design should be approximately 1.81.81.8. Consider you would like your design to have a mass of 20kg20 kg20kg. For a wing loading of 25 kg/m225\text{ }kg/m^225 kg/m2and power loading of 200 W/kg200\text{ }W/kg200 W/kgyou will need a reference area of approximately Sref=0.8 m2S_{ref}=0.8\text{ }m^2Sref​=0.8 m2and power system of approximately 4000 W4000\text{ }W4000 W.

nnn
CL,maxC_{L,max}CL,max​
CD0C_{D0}CD0​
kkk
η\etaη
Vcruise,qcruiseV_{cruise}, q_{cruise}Vcruise​,qcruise​
Vclimb,qclimb,ROCV_{climb}, q_{climb}, ROCVclimb​,qclimb​,ROC
Vtakeoff,qtakeoff,StakeoffV_{takeoff}, q_{takeoff}, S_{takeoff}Vtakeoff​,qtakeoff​,Stakeoff​
VstallV_{stall}Vstall​
ρ\rhoρ
ggg
CfC_{f}Cf​
Wing vs power loading graph