# Constraints

With the basic numbers of the current conceptual design iteration in place, we now draw up the boundaries of the wing loading *W/S* versus thrust to weight ratio *T/W* design domain. These boundaries are representations of the basic constraints that enforce the adherence of the design to the numbers specified in the design brief.

## Constraint 1: Level, Constant Velocity Turn

First, we compute the thrust to weight ratio required to maintain a specific load factor *n* in a level turn at the cruise altitude:

... or, in Python:

In [53]: WSlistCVT_Pa = np.linspace(Start_Pa,8500,Resolution)

TWlistCVT = [] i=0

for WS in WSlistCVT_Pa:

TW = q_cruise_Pa*(CDmin/WSlistCVT_Pa[i] + WSlistCVT_Pa[i] *k*(n_cvt_/q_cruise_Pa)**2)

TWlistCVT.append(TW) i=i+1

WSlistCVT_kgm2 = [x*0.101971621 for x in WSlistCVT_Pa]

The load factor *n* is the inverse of the cosine of the bank angle (denoted here by в) so the latter can be calculated as: *в =* cos^{-1} ^ so в, in degrees, equals:

In [54]: theta_deg = math.acos(1/n_cvt_)*180/math.pi print '{:.0f}'u' format(theta_deg)

4 5°

We can now generate the constraint boundary over the wing loading range define above. The feasible range is above the curve, so we color in the region below this to begin carving into the feasible white space on the design domain chart.

figCVT = plt.figure()

PlotSetUp(0, WSmax_kgm2, 0, TWmax, '$W/S,[,kg/m*2]$' , '$T/W,[,,]$')

axCVT = figCVT.add_subplot(111) axCVT.add_patch(ConstVeloTurnPoly)

Out[55]: