def optimizeFullyTest(): import planeDesigner, jets, lift # use the same plane as above but with a turbojet because that shows more interesting behaviour p = plane(planeDesigner.part(jets.turbojet), planeDesigner.part(jets.radialIntake, 2), planeDesigner.part(lift.avr8, 2), planeDesigner.part(lift.deltaDeluxe, 2), planeDesigner.part(lift.deltaDeluxe, 2, AoAdegrees = 10), planeDesigner.part(None, n = 2, Cd = 0.2, extraMass = 0.15 + 150 * 0.005), # two fuel tanks ) p.optimizeFuelConsumption(verbose = True, altitudeStep = 1000)
def speedTest(): import planeDesigner, jets, lift p = plane(planeDesigner.part(jets.basicjet), planeDesigner.part(jets.radialIntake, 2), planeDesigner.part(lift.avr8, 2), planeDesigner.part(lift.deltaDeluxe, 2), planeDesigner.part(lift.deltaDeluxe, 2, AoAdegrees = 10), planeDesigner.part(None, n = 2, Cd = 0.2, extraMass = 0.15 + 150 * 0.005), # two fuel tanks ) speed = p.equilibriumHorizontalSpeed(2.5, altitude = 10000, throttle = 0.5) print ("equilibrium speed: %g m/s" % speed) p.forces(0, 2.5, speed, altitude = 10000, throttle = 0.5)
def optimizePitchTest(): import planeDesigner, jets, lift p = plane(planeDesigner.part(jets.basicjet), planeDesigner.part(jets.radialIntake, 2), planeDesigner.part(lift.avr8, 2), planeDesigner.part(lift.deltaDeluxe, 2), planeDesigner.part(lift.deltaDeluxe, 2, AoAdegrees = 10), planeDesigner.part(None, n = 2, Cd = 0.2, extraMass = 0.15 + 150 * 0.005), # two fuel tanks ) opt = p.optimizeFuelConsumptionAtAltitude(altitude = 10000, verbose = True) if opt is None: print ("Level flight is impossible with any pitch and throttle at this altitude") else: (pitch, throttle, speed, fuelKgPerM) = opt fuelUnitsPerKm = fuelKgPerM * 1000 / 5 print ("Fly at %d degrees, throttle %.3f, to achieve %.2f m/s using %g U/km" % (pitch, throttle, speed, fuelUnitsPerKm))
def throttleTest(): import planeDesigner, jets, lift p = plane(planeDesigner.part(jets.basicjet), planeDesigner.part(jets.radialIntake, 2), planeDesigner.part(lift.avr8, 2), planeDesigner.part(lift.deltaDeluxe, 2), planeDesigner.part(lift.deltaDeluxe, 2, AoAdegrees = 10), planeDesigner.part(None, n = 2, Cd = 0.2, extraMass = 0.15 + 150 * 0.005), # two fuel tanks ) throttle = p.levelThrottle(10, altitude = 10000) if throttle is None: print ("level flight is impossible") else: speed = p.equilibriumHorizontalSpeed(2.5, altitude = 10000, throttle = throttle) print ("equilibrium speed: %g m/s" % speed) p.forces(0, 2.5, speed, altitude = 10000, throttle = throttle)
def forcesTest(): """ The plane has a basic jet and two radial intakes. It's got 2 AV-R8 for its elevator, two deltaDeluxe for ailerons, and two deltaDeluxe for wings, which are tilted 10 degrees. There's also two fuel tanks, full. We're climbing at a 5 degree angle, with pitch 7.5 degrees (so angle of attack 2.5 degrees). We're going Mach 0.85, at 10km altitude. This plane is not at equilibrium: we've got horizontal speed to gain, and vertical speed is going down. Specifically, we should see: net: ( 25.72, -15.09) kN """ import planeDesigner, jets, lift p = plane(planeDesigner.part(jets.basicjet), planeDesigner.part(jets.radialIntake, 2), planeDesigner.part(lift.avr8, 2), planeDesigner.part(lift.deltaDeluxe, 2), planeDesigner.part(lift.deltaDeluxe, 2, AoAdegrees = 10), planeDesigner.part(None, n = 2, Cd = 0.2, extraMass = 0.15 + 150 * 0.005), # two fuel tanks ) p.forces(5, 2.5, 0.85 * 342, altitude = 10000, throttle = 0.5)