# from os import environ as _environ; _environ["scalar_off"] = "off" import numpy as npy import pylab as pyl from scalar.units import FT, SEC, LBF, MIN, IN from Aircraft_Models.Adv2014Aircraft_AeroCats.MonoWing.Aircraft import Aircraft pyl.figure(1) # # Get the design point # dsgnGR = Aircraft.Groundroll() / (FT) dsgnCR = Aircraft.Rate_of_Climb(1.07*Aircraft.GetV_LO()) / (FT/MIN) pyl.plot([dsgnCR],[dsgnGR],'ro', markersize = 8) # # Set up ranges # Vstl = npy.linspace(31,35,5)*FT/SEC WT = npy.linspace(30,34,5)*LBF Vplt = Vstl / (FT/SEC) lgnd = ['Design'] arealist = [] # Initialize data arrays grndroll = npy.zeros((len(WT),len(Vstl))) clmbrate = npy.zeros((len(WT),len(Vstl)))
import numpy as npy import pylab as pyl from scalar.units import FT, SEC, LBF, MIN, IN from Aircraft_Models.Adv2014Aircraft_AeroCats.MonoWing.Aircraft import Aircraft #///////////////////////////////////////// # Wing area and span sizing for W = 32 lb. #///////////////////////////////////////// Aircraft.TotalWeight = 27 * LBF pyl.figure(1) # # Get the design point # dsgnGR = Aircraft.Groundroll() / (FT) dsgnCR = Aircraft.Rate_of_Climb(1.07 * Aircraft.GetV_LO()) / (FT / MIN) pyl.plot([dsgnCR], [dsgnGR], 'ro', markersize=8) # # Set up ranges # Vstl = npy.linspace(32, 34, 2) * FT / SEC Span = npy.linspace(66, 100, 5) * IN Vplt = Vstl / (FT / SEC) lgnd = ['Design'] arealist = [] # Initialize data arrays grndroll = npy.zeros((len(Span), len(Vstl))) clmbrate = npy.zeros((len(Span), len(Vstl)))
#from os import environ as _environ; _environ["scalar_off"] = "off" from Aerothon.ACControls import ACControls from Aerothon.ACXFoil import ACXFoil from Aerothon import AeroUtil from scalar.units import SEC, ARCDEG, LBF, IN, FT, OZF from scalar.units import AsUnit import pylab as pyl import numpy as npy from Aircraft_Models.Adv2014Aircraft_AeroCats.MonoWing.Aircraft import Aircraft Execute = True Vs = npy.linspace(Aircraft.GetV_LO() / (FT / SEC), Aircraft.Vmax() / (FT / SEC), 11) * FT / SEC des = npy.linspace(5, 20, 3) * ARCDEG alpha2d = 3 * ARCDEG # Use the following to investigate the effects of changing geometry #Aircraft.Wing.Aileron.Fc = 0.15 #Aircraft.Wing.Aileron.Fb = 0.334 #Need adjusted to make aileron 3% from tip #Aircraft.Wing.Aileron.Ft = 0.1337 #This are the ratios of the servo arm to the control horn arm. The control arm length is the distance to the hinge. # ArmRatio = (Servo Arm)/(Control Arm) # Servo Arm Lengths: Aile: 0.8" , Elev: 0.4" , Rudder: 0.4" # Control Arm Lengths: Aile: 1.5", Elev: 1.4", Rudder: 1.5" Aileron_ArmRatio = 0.53 Elevator_ArmRatio = 0.29 Rudder_ArmRatio = 0.27
#from Aircraft_Models.Reg2012Aircraft_AeroCats.TradeStudies.LowMoment.Aircraft import Aircraft Aircraft.Draw(fig=4) fig_wing = 1 fig_htail = 2 fig_vtail = 3 CD = [0, 0, 0] Aircraft.Wing.o_eff = None # # Get the design point # dsgnGR = Aircraft.Groundroll() / (FT) V = Aircraft.GetV_LO() + 0.1 * FT / SEC a2dw = Aircraft.AlphaTrim(V) a2dw = 0 * ARCDEG Re = Aircraft.Wing.Re() del_e = Aircraft.del_e_trim(a2dw) CD, junk = Aircraft._CDComponents(a2dw, del_e, V) #CD[0], CD[1], CD[2] = Aircraft.Wing.af.Cd(a2dw, Re), Aircraft.Wing.CDi(a2dw), Aircraft.Wing.o_eff pyl.figure(fig_wing) pyl.plot([CD[fig_wing - 1]], [dsgnGR], 'ro', markersize=8) pyl.figure(fig_htail) pyl.plot([CD[fig_htail - 1]], [dsgnGR], 'ro', markersize=8) pyl.figure(fig_vtail) pyl.plot([CD[fig_vtail - 1]], [dsgnGR], 'ro', markersize=8) #
# # This file demonstrates how to plot wing loading and bending stress of the main spar. # Most numbers are fictitious and are for demonstrative purposes only (i.e they are made up). # from __future__ import division # let 5/2 = 2.5 rather than 2 from scalar.units import IN, FT, PSI, LBF, MPa, KG, M, gacc from scalar.units import AsUnit from Aircraft_Models.Adv2014Aircraft_AeroCats.MonoWing.Aircraft import Aircraft import pylab as pyl import numpy as npy # # The velocity which loads will be computed # Vmax = Aircraft.GetV_LO() * .85 global fignum fignum = 1 def PlotLiftSurfLoad(Surface, GLoad=1.0): # # Plots loads and bending stresses on a lifting surface # # Inputs: # Surface - A lifting surface with a wing weight calculation # SparFc - Spar chordwise location in fraction of the chord # SparT - The thickness of the main spar # MaxBendStress - Optional maximum allowed bending stress of the spar # GLoad - Generic GLoad multiplier
Aircraft.Draw(fig=2) pyl.figure(1) # Climb Rate (x) and Groundroll (y) # Get the design point # dsgnGR = Aircraft.Groundroll() / (FT) dsgnCR = Aircraft.Rate_of_Climb() / (FT / MIN) pyl.plot([dsgnCR], [dsgnGR], 'ro', markersize=8) pyl.figure(3) # Lift-Off Speed (x) and Aircraft Weight # Plot the current design point # dsgnVLO = Aircraft.GetV_LO() / (FT / SEC) dsgnWE = Aircraft.EmptyWeight / (LBF) pyl.plot([dsgnVLO], [dsgnWE], 'ro', markersize=8) # pyl.figure(4) # Climb Rate (x) and Lift-Off Speed (y) # Plot the current design point # pyl.plot([dsgnCR], [dsgnVLO], 'ro', markersize=8) # # Set up ranges # S = npy.linspace(1150, 1400, 5) * IN**2 Span = npy.linspace(74, 85, 5) * IN lgnd = ['Design W = %2.0f (lbf)' % (Aircraft.TotalWeight / LBF)]