TestData = [(7000 * RPM, 107.35 * IN * OZF, 0.75 * HP), (8500 * RPM, 104.24 * IN * OZF, 0.88 * HP), (9500 * RPM, 101.13 * IN * OZF, 0.95 * HP), (9700 * RPM, 98.02 * IN * OZF, 0.94 * HP), (10600 * RPM, 102.69 * IN * OZF, 1.08 * HP), (10800 * RPM, 98.02 * IN * OZF, 1.05 * HP), (11000 * RPM, 101.13 * IN * OZF, 1.1 * HP), (11200 * RPM, 99.57 * IN * OZF, 1.11 * HP), (11600 * RPM, 98.02 * IN * OZF, 1.13 * HP), (12900 * RPM, 93.35 * IN * OZF, 1.19 * HP), (13300 * RPM, 91.79 * IN * OZF, 1.21 * HP), (13600 * RPM, 91.79 * IN * OZF, 1.24 * HP), (14600 * RPM, 88.68 * IN * OZF, 1.28 * HP), (15600 * RPM, 79.35 * IN * OZF, 1.23 * HP), (16300 * RPM, 77.76 * IN * OZF, 1.26 * HP)] Engine.TestData = TestData Engine.PlotTestData() print "Static Thrust :", AsUnit(Propulsion.T(0 * FT / SEC), 'lbf') V = npy.linspace(0, 100, 30) * FT / SEC N = npy.linspace(1000, 20000, 30) * RPM #Propulsion.PlotMatched(V, fig = 2) V2 = npy.linspace(0, 100, 5) * FT / SEC Propulsion.PlotTPvsN(N, V2, fig=3) Propulsion.Draw(fig=4) pyl.show()
BoxWing.UpperWing.WingWeight.MainSpar.SparMat = CarbonBar.copy() BoxWing.UpperWing.WingWeight.SkinMat = Monokote.copy() BoxWing.UpperWing.WingWeight.WingMat = PinkFoam.copy() BoxWing.UpperWing.WingWeight.WingMat.ForceDensity *= 0.5 BoxWing.EndPlate.SetWeightCalc(ACSolidWing) BoxWing.EndPlate.WingWeight.AddSpar("MainSpar", 0.25 * IN, 0.125 * IN) BoxWing.EndPlate.WingWeight.MainSpar.SparMat = CarbonBar.copy() BoxWing.EndPlate.WingWeight.SkinMat = Monokote.copy() BoxWing.EndPlate.WingWeight.WingMat = PinkFoam.copy() BoxWing.EndPlate.WingWeight.WingMat.ForceDensity *= 0.4 if __name__ == '__main__': import pylab as pyl print "V lift of : ", AsUnit(BoxWing.GetV_LO(), 'ft/s') print "V stall : ", AsUnit(BoxWing.V_Stall, 'ft/s') print "Wing Area : ", AsUnit(BoxWing.S, 'in**2') print "Wing Span : ", AsUnit(BoxWing.b, 'ft') print "Wing AR : ", BoxWing.AR print "Wing MAC : ", AsUnit(BoxWing.MAC(), 'in') print "Wing Xac : ", BoxWing.Xac() print "Wing dCM_da : ", BoxWing.dCM_da() print "Wing dCL_da : ", BoxWing.dCL_da() print "Lift of Load: ", AsUnit(BoxWing.Lift_LO, 'lbf') print "Wing BWFC : ", BoxWing.BWCF() print print "Wing Thickness: ", BoxWing.LowerWing.Thickness(0 * FT) print "Wing Chord : ", BoxWing.LowerWing.Chord(0 * FT) print "LowerWing Area: ", BoxWing.LowerWing.S print "UpperWing Area: ", BoxWing.UpperWing.S
MainGear.Wheel.Weight = 0.1 * LBF NoseGear = Aircraft.NoseGear NoseGear.StrutW = 0.1 * IN NoseGear.StrutH = 0.1 * IN NoseGear.WheelDiam = 2.5 * IN NoseGear.Strut.Weight = 0.1 * LBF NoseGear.Wheel.Weight = 0.1 * LBF if __name__ == '__main__': #TCG = Aircraft.CG() ACG = Aircraft.Fuselage.AircraftCG() #dCG = TCG - ACG print 'Aircraft Xnp :', AsUnit(Aircraft.Xnp(), 'in') print 'Aircraft Xcg :', AsUnit(Aircraft.Xcg(), 'in') print 'Aircraft CM :', Aircraft.CM(15 * ARCDEG, del_e=10 * ARCDEG) print 'Aircraft dCM_da:', AsUnit(Aircraft.dCM_da(), '1/rad') print print 'Wing Area :', AsUnit(Aircraft.Wing.S, 'in**2') print 'Wing MAC :', AsUnit(Aircraft.Wing.MAC(), 'in') print 'Wing dCl_da :', AsUnit(Aircraft.Wing.dCL_da(), '1/rad') print 'Wing Xac :', AsUnit(Aircraft.Wing.Xac(), 'in') print print 'Horiz Area :', AsUnit(Aircraft.HTail.S, 'in**2') print 'Horiz Length :', AsUnit(Aircraft.HTail.L, 'in') print 'Horiz iht :', AsUnit(Aircraft.HTail.i, 'deg') print 'Horiz dCl_da :', AsUnit(Aircraft.HTail.dCL_da(), '1/rad') print 'Horiz Design CL:', Aircraft.GetHT_Design_CL() print
(5000 *RPM, (8.2*Arm*OZF)), (4560 *RPM, (6.5*Arm*OZF)), (4000 *RPM, (4.7*Arm*OZF)), (3525 *RPM, (3.4*Arm*OZF)), # begin 2nd taking of torque data in closet (5690 *RPM, (9.5*Arm2*OZF)), (5018 *RPM, (7.1*Arm2*OZF)), (4525 *RPM, (5.7*Arm2*OZF)), (4118 *RPM, (4.8*Arm2*OZF))] #==============================================================================# # VISUALIZATION & RESULTS #==============================================================================# if __name__ == '__main__': print " D : ", AsUnit( Prop.D, 'in') print " Pitch : ", AsUnit( Prop.Pitch, 'in') Vmax = 50 h=0*FT N=npy.linspace(1000, 6800, 5)*RPM Alpha = npy.linspace(-25,25,41)*ARCDEG V = npy.linspace(0,Vmax,30)*FT/SEC Prop.CoefPlot(Alpha,fig = 1) Prop.PTPlot(N,V,h,'V', fig = 2) # N = npy.linspace(0, 13000,31)*RPM # V = npy.linspace(0,Vmax,5)*FT/SEC
Motor.SpeedController.WeightGroup = 'Electronics' Motor.WeightGroup = 'Propulsion' # # This data has been corrected for standard day STD = STDCorrection(30.2 * inHg, (16.1 + 273.15) * K) Arm = 19.5 * IN # RPM, Torque Current Voltage TestData = [(6030 * RPM, (7.3 * Arm * OZF) * STD, 32.0 * A, 22.8 * V), (5670 * RPM, (8.3 * Arm * OZF) * STD, 36.0 * A, 22.2 * V), (5430 * RPM, (9.3 * Arm * OZF) * STD, 39.5 * A, 21.5 * V), (5340 * RPM, (9.0 * Arm * OZF) * STD, 38.7 * A, 21.1 * V), (5370 * RPM, (8.3 * Arm * OZF) * STD, 35.3 * A, 20.9 * V) ] #this is actual test data from a test stand Motor.TestData = TestData if __name__ == '__main__': import pylab as pyl print "V to Motor : ", AsUnit(Motor.Vmotor(Ib=3.75 * A), 'V') print "Efficiency : ", Motor.Efficiency(Ib=3.75 * A) print "Max efficiency : ", Motor.Effmax() print "Max efficiency current : ", AsUnit(Motor.I_Effmax(), 'A') print "Max efficiency RPM : ", AsUnit(Motor.N_Effmax(), 'rpm') Motor.PlotTestData() pyl.show()
Motor.xRm = 100000 Motor.Pz = 0.0 # This data has been corrected for standard day #SPH: confirm the methodology behind these calculations 151113 STD = STDCorrection(29.9 * inHg, (23.9 + 273.15) * K) Arm = 19.5 * IN # Test data from the test stand # RPM, Torque Current Voltage TestData = [(6200 * RPM, (7.5 * Arm * OZF) * STD, 34.8 * A, 23.0 * V), (5900 * RPM, (8.7 * Arm * OZF) * STD, 39.0 * A, 21.9 * V), (5600 * RPM, (9.9 * Arm * OZF) * STD, 44.2 * A, 21.5 * V), (6000 * RPM, (8.9 * Arm * OZF) * STD, 35.8 * A, 22.06 * V), (5800 * RPM, (11.1 * Arm * OZF) * STD, 45.2 * A, 21.9 * V)] Motor.TestData = TestData #==============================================================================# # VISUALIZATION & RESULTS #==============================================================================# if __name__ == '__main__': print 'V to Motor : ', AsUnit(Motor.Vmotor(Ib=45 * A), 'V') print 'Efficiency : ', Motor.Efficiency(Ib=45 * A) print 'Max efficiency : ', Motor.Effmax() print 'Max eff. current : ', AsUnit(Motor.I_Effmax(), 'A') print 'Max eff. RPM : ', AsUnit(Motor.N_Effmax(), 'rpm') Motor.PlotTestData() pyl.show()