# The following line turns off unit checking. Make sure things are working before it is turned off # 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.Reg2014Aircraft_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)))
#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.Reg2014Aircraft_AeroCats.MonoWing.Aircraft import Aircraft Execute = True Vs = npy.linspace(Aircraft.GetV_LO()/(FT/SEC), Aircraft.Vmax()/(FT/SEC), 9)*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) Aileron_ArmRatio = 0.75 Elevator_ArmRatio = 0.95 Rudder_ArmRatio = 0.65 #Aircraft.Wing.Aileron.PlotHingeMoment(fig=1, RunDir='XFoil/Aileron/', alpha2d=alpha2d, Ht=1, ArmRatio=Aileron_ArmRatio, des=des, Vs=Vs, Execute=Execute)
from __future__ import division # let 5/2 = 2.5 rather than 2 # # The following line turns off unit checking. Make sure things are working before it is turned off # 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, ARCDEG from Aircraft_Models.Reg2014Aircraft_AeroCats.MonoWing.Aircraft import Aircraft #from Aircraft_Models.Reg2014Aircraft_AeroCats.TradeStudies.WeightTrade.Aircraft_40 import Aircraft #from Aircraft_Models.Reg2014Aircraft_AeroCats.TradeStudies.WeightTrade.Aircraft_106_2050 import Aircraft # from Aircraft_Models.Reg2014Aircraft_AeroCats.TradeStudies.WeightTrade.Aircraft_NickSchwartz import Aircraft Aircraft.Draw(fig=2) pyl.figure(1) # # Get the design point # dsgnGR = Aircraft.Groundroll() / (FT) dsgnCR = Aircraft.Rate_of_Climb() / (FT / MIN) pyl.plot([dsgnCR], [dsgnGR], 'ro', markersize=8) # # Set up ranges # S = npy.linspace(1500, 1900, 5) * IN**2 Span = npy.linspace(92, 102, 6) * IN
from Aircraft_Models.Reg2014Aircraft_AeroCats.MonoWing.Aircraft import Aircraft from scalar.units import AsUnit, IN import pylab as pyl Aircraft.Refresh() Aircraft.Draw() def PrintLiftSurf(surf): print 80 * '=' print surf.name print print 'X : ', AsUnit(surf.X, 'in') y = [] y.append(0 * IN) print 'Span : ', AsUnit(y[0], 'in') fac = 2 if surf.FullWing else 1 for Fb in surf.Fb: y.append(surf.b / fac * Fb) print 'Span : ', AsUnit(y[-1], 'in') for i in xrange(1, len(y)): print print 'Section : ', AsUnit(y[i] - y[i - 1], 'in') print 'Chord Root : ', AsUnit(surf.Chord(y[i - 1]), 'in') print 'Chord Tip : ', AsUnit(surf.Chord(y[i]), 'in')
import numpy as npy import pylab as pyl from scalar.units import FT, SEC, LBF, MIN, IN, ARCDEG from Aircraft_Models.Reg2014Aircraft_AeroCats.MonoWing.Aircraft import Aircraft #from Aircraft_Models.Reg2012Aircraft_AeroCats.MonoWing.Aircraft import Aircraft #from Aircraft_Models.Reg2012Aircraft_AeroCats.TradeStudies.WeightTrade.Aircraft_40 import Aircraft #from Aircraft_Models.Reg2012Aircraft_AeroCats.TradeStudies.WeightTrade.Aircraft_42 import Aircraft #from Aircraft_Models.Reg2012Aircraft_AeroCats.TradeStudies.WeightTrade.Aircraft_44 import Aircraft #from Aircraft_Models.Reg2012Aircraft_AeroCats.TradeStudies.WeightTrade.Aircraft_46 import Aircraft #from Aircraft_Models.Reg2012Aircraft_AeroCats.TradeStudies.WeightTrade.Aircraft_48 import Aircraft #from Aircraft_Models.Reg2012Aircraft_AeroCats.TradeStudies.WeightTrade.Aircraft_50 import Aircraft #from Aircraft_Models.Reg2012Aircraft_AeroCats.TradeStudies.WeightTrade.Aircraft_52 import Aircraft #from Aircraft_Models.Reg2012Aircraft_AeroCats.TradeStudies.WeightTrade.Aircraft_55 import Aircraft #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
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 scalar.units import AsUnit from Aircraft_Models.Reg2014Aircraft_AeroCats.MonoWing.Aircraft import Aircraft # from Aircraft_Models.Reg2014Aircraft_AeroCats.TradeStudies.WeightTrade.Aircraft_NickSchwartz 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) dsgnCR = Aircraft.Rate_of_Climb() / (FT/MIN) pyl.plot([dsgnCR],[dsgnGR],'ro', markersize = 8) # # Set up ranges # MinCumpRate = 150 S = npy.linspace(1500,1900,5)*IN**2 WT = npy.linspace(32,35,4)*LBF lgnd = ['Design'] arealist = [] # Initialize data arrays
#VTail.Rudder.Fc = 0.5 #VTail.Rudder.Weight = 0.05*LBF * 2 # * 2 For symmetric vertical tail #VTail.Rudder.SgnDup = -1.0 #VTail.Rudder.Servo.Fc = 0.3 #VTail.Rudder.Servo.Fbc = 0.1 #VTail.Rudder.Servo.Weight = 5*GRAM*gacc #VTail.Rudder.Servo.Weight = 0.58 * OZF #VTail.Rudder.Servo.Torque = 42*IN*OZM #Set the sweep about the rudder hinge #VTail.SweepFc = 1.0 - VTail.Rudder.Fc if __name__ == '__main__': # print 'Aircraft V_LO : ', AsUnit( Aircraft.GetV_LO(), 'ft/s') # print 'Wing V_LO : ', AsUnit( Aircraft.Wing.GetV_LO(), 'ft/s') # print 'Wing Area : ', AsUnit( Aircraft.Wing.S, 'in**2') print 'Ground Roll Distance: ', AsUnit(Aircraft.Groundroll(), 'ft') # print 'HTail Area : ', AsUnit( Aircraft.HTail.S, 'in**2') # print 'HTail VC : ', AsUnit( Aircraft.HTail.VC) # print 'HTail Span : ', AsUnit( Aircraft.HTail.b, 'in') # Aircraft.WriteAVLAircraft('AVL\AVLAircraft144.avl') # Aircraft.Draw() # # Aircraft.PlotPolarsSlopes(fig=2) # Aircraft.PlotCMPolars(3, (-10*ARCDEG, -5*ARCDEG, 0*ARCDEG, +5*ARCDEG, +10 * ARCDEG), XcgOffsets=(+0.02, -0.02)) # HTail.Draw2DAirfoilPolars(fig=4) # Aircraft.PlotCLCMComponents(fig = 5, del_es = (-10*ARCDEG, -5*ARCDEG, 0*ARCDEG, +5*ARCDEG, +10 * ARCDEG)) # pyl.show()
import numpy as npy import pylab as pyl from scalar.units import ARCDEG, FT, SEC, LBF, IN from scalar.units import AsUnit from Aircraft_Models.Reg2014Aircraft_AeroCats.MonoWing.Aircraft import Aircraft #from Aircraft_Models.Reg2012Aircraft_AeroCats.TradeStudies.Performance.WeightTrade.Aircraft_48 import Aircraft #from Aircraft_Models.Reg2014Aircraft_AeroCats.TradeStudies.WeightTrade.Aircraft_48 import Aircraft #from Aircraft_Models.Reg2013Aircraft_AeroCats.TradeStudies.Performance.WeightTrade.Aircraft_45 import Aircraft #print 'Aircraft V_LO : ', AsUnit( Aircraft.GetV_LO(), 'ft/s') #print 'Wing V_LO : ', AsUnit( Aircraft.Wing.GetV_LO(), 'ft/s') #print 'Ground Roll Distance: ', AsUnit( Aircraft.Groundroll(), 'ft' ) Spans = npy.linspace(92, 106, 8) * IN #Spans = (105)*IN legend = [] for span in Spans: Aircraft.Wing.b = span #legend += [AsUnit(span, 'in')] Aircraft.PlotPropulsionPerformance(1, Vmax=70 * FT / SEC) pyl.subplot(131) #pyl.legend(legend + ['Thrust']) pyl.subplot(132) #pyl.legend() pyl.subplot(133) #pyl.legend(legend) #Aircraft.Draw(ii+1) pyl.show()
from __future__ import division # let 5/2 = 2.5 rather than 2 #from os import environ as _environ; _environ["scalar_off"] = "off" import numpy as npy import pylab as pyl from scalar.units import LBF from Aircraft_Models.Reg2014Aircraft_AeroCats.MonoWing.Aircraft import Aircraft WeightRange = npy.linspace(40, 48, 5) * LBF Aircraft.PlotVNDiagram(2, WeightRange) #nlimit = 5) #,WeightRange) Aircraft.Draw(1) pyl.show()
# NoseGear.WheelDiam = 4 * IN # # NoseGear.Strut.Weight = .3*LBF #math.pi*(0.125/2*IN)**2*8*IN*Steel.ForceDensity #1/8 inch diameter steel, l=8in # NoseGear.Strut.WeightGroup = "LandingGear" # NoseGear.Wheel.Weight = .16*LBF # NoseGear.Wheel.WeightGroup = "LandingGear" # # NoseGear.Strut.Weight = 0.2*LBF #math.pi*(0.125/2*IN)**2*8*IN*Steel.ForceDensity #1/8 inch diameter steel, l=8in # NoseGear.Strut.WeightGroup = "LandingGear" # NoseGear.Wheel.Weight = 0.1*LBF # NoseGear.Wheel.WeightGroup = "LandingGear" if __name__ == '__main__': print print 'Aircraft V_LO :', AsUnit(Aircraft.GetV_LO(), 'ft/s') print 'Wing V_LO :', AsUnit(Aircraft.Wing.GetV_LO(), 'ft/s') print H = max(Aircraft.Wing.Upper(0 * IN), Aircraft.VTail.Tip()[2]) W = Aircraft.Wing.b L = Aircraft.TotalLengths - W - H print 'V max climb : ', AsUnit(Aircraft.V_max_climb(), 'ft/s') print 'V max : ', AsUnit(Aircraft.Vmax(), 'ft/s') print 'Ground Roll : ', AsUnit(Aircraft.Groundroll(), 'ft') print 'Total Weight : ', AsUnit(Aircraft.TotalWeight, 'lbf') print 'Payload Weight : ', AsUnit(Aircraft.PayloadWeight(), 'lbf') print 'Wing Height : ', AsUnit(Aircraft.Wing.Upper(0 * IN), 'in') print 'Vertical Tail H : ', AsUnit(Aircraft.VTail.Tip()[2], 'in') print 'Width : ', AsUnit(W, 'in') print 'Length : ', AsUnit(L, 'in')