# 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.

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:

$\frac{T}{W}=f\left(\frac{W}{S}\right)$.

In the above equation $\frac{T}{W}$is referred to as the thrust to weight ratio and the $\frac{W}{S}$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 $\frac{P}{W}$expressed in $W/kg$. This is more convenient when designing propeller-powered aircraft.

### P/W for a level, constant-velocity turn

$\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}g$

### P/W for a desired rate of climb

$\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}g$

### P/W for a desired cruise airspeed

$\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}g$

### P/W for a desired takeoff distance

$\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}$

$V_{stall}=\sqrt{\frac{2}{\rho C_{L,max}}\frac{W}{S}g}$

### P/W for a best range

$\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}}}}$

### P/W for best endurance

$\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}}}}$

### CLmax for desired stall speed

$C_{L,max}=\frac{1}{q_{stall}}\frac{W}{S}g$

The expressions above depend on the following parameters:

 Parameter Description $n$ Load factor $C_{L,max}$ Maximum lift coefficient $C_{D0}$ Minimum drag coefficient $k$ Induced drag coefficient $\eta$ Propulsive efficiency $V_{cruise}, q_{cruise}$ Cruise airspeed and dynamic pressure $V_{climb}, q_{climb}, ROC$ Climb airspeed, dynamic pressure and rate of climb $V_{takeoff}, q_{takeoff}, S_{takeoff}$ Takeoff airspeed, dynamic pressure, distance $V_{stall}$ Stall airspeed $\rho$ Density $g$ Acceleration due to gravity $C_{f}$ 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.

The image below shows all the performance requirements equations. The required $C_{L,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\text{ }kg/m^2$the power loading should be approximately $200\text{ }W/kg$. In addition for a design having a wing loading of $25\text{ }kg/m^2$and a desired stall speed of $15\text{ }m/s$the maximum lift coefficient $C_{L,max}$of the design should be approximately $1.8$. Consider you would like your design to have a mass of $20 kg$. For a wing loading of $25\text{ }kg/m^2$and power loading of $200\text{ }W/kg$you will need a reference area of approximately $S_{ref}=0.8\text{ }m^2$and power system of approximately $4000\text{ }W$.

### 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
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.show()