tasMetersPerSecond = atmosphere.cas2tas(casMetersPerSecond, 950.0, speed_units='m/s', altitude_units='m') elapsedTimeSeconds = 0.0 aircraft.initStateVector( elapsedTimeSeconds=elapsedTimeSeconds, trueAirSpeedMetersSecond=tasMetersPerSecond, altitudeMeanSeaLevelMeters=firstGlideSlopeWayPoint. getAltitudeMeanSeaLevelMeters(), deltaDistanceFlownMeters=0.0) aircraft.setApproachConfiguration(0.0) aircraftMassKilograms = 49000.0 aircraft.setAircraftMassKilograms(aircraftMassKilograms) print( '===================== final 3 degrees descending glide slope ================' ) descentGlideSlope = DescentGlideSlope(runway=arrivalRunway, aircraft=aircraft, arrivalAirport=arrivalAirport, descentGlideSlopeDegrees=3.0) descentGlideSlope.buildGlideSlope(elapsedTimeSeconds=0.0, initialWayPoint=firstGlideSlopeWayPoint, flownDistanceMeters=300000.0, distanceStillToFlyMeters=10000.0) print('================= create output files =========================')
aircraftIcaoCode, acBd.getAircraftPerformanceFile(aircraftIcaoCode), atmosphere, earth) aircraft.dump() assert not (aircraft is None) elapsedTimeSeconds = 0.0 deltaTimeSeconds = 1.0 aircraft.initStateVector(elapsedTimeSeconds=0.0, trueAirSpeedMetersSecond=0.0, altitudeMeanSeaLevelMeters=0.0) aircraft.setTargetCruiseFlightLevel(RequestedFlightLevel=310.0, departureAirportAltitudeMSLmeters=0.0) aircraft.setAircraftMassKilograms(aircraftMassKilograms=64000.0) aircraft.setTargetCruiseMach(cruiseMach=0.8) tas = aircraft.getCurrentTrueAirSpeedMetersSecond() previousAltitudeMSLmeters = 0.0 t0 = time.clock() print('simulation start= {0} seconds'.format(t0)) print('=========== simulation start ==================') endOfSimulation = False currentPosition = departureAirport arrivalGroundRun = GroundRunLeg(runway=arrivalRunway, aircraft=aircraft, airport=arrivalAirport) touchDownWayPoint = arrivalGroundRun.computeTouchDownWayPoint() print(touchDownWayPoint)
def test_One(self): print('=========== main start ==================') aircraftICAOcode = 'A320' atmosphere = Atmosphere() assert (not (atmosphere is None)) earth = Earth() assert (not (earth is None)) acBd = BadaAircraftDatabase() assert acBd.read() if (acBd.aircraftExists(aircraftICAOcode) and acBd.aircraftPerformanceFileExists(aircraftICAOcode)): aircraft = BadaAircraft( ICAOcode=aircraftICAOcode, aircraftFullName=acBd.getAircraftFullName(aircraftICAOcode), badaPerformanceFilePath=acBd.getAircraftPerformanceFile( aircraftICAOcode), atmosphere=atmosphere, earth=earth) aircraft.dump() else: raise ValueError(': aircraft not found= ' + aircraftICAOcode) assert not (aircraft is None) print('================ load airports =================') airportsDB = AirportsDatabase() assert (airportsDB.read()) adepIcaoCode = 'LFML' departureAirport = airportsDB.getAirportFromICAOCode(adepIcaoCode) print(': departure airport= ' + str(departureAirport)) assert not (departureAirport is None) print('================ load runways =================') runWaysDatabase = RunWayDataBase() assert (runWaysDatabase.read()) print('==================== take off run-way ==================== ') departureRunway = runWaysDatabase.getFilteredRunWays(adepIcaoCode) print( '=========== minimum and maximum aircraft mass ==================') minMassKg = aircraft.getMinimumMassKilograms() print('aircraft minimum mass: ' + str(minMassKg) + ' kilograms') maxMassKg = aircraft.getMaximumMassKilograms() print('aircraft maximum mass: ' + str(maxMassKg) + ' kilograms') deltaMass = maxMassKg - minMassKg massKg = 39000.0 while (massKg < maxMassKg): massKg += 1000.0 print( '==================== set aircraft reference mass ==================== ' ) aircraft = BadaAircraft( ICAOcode=aircraftICAOcode, aircraftFullName=acBd.getAircraftFullName(aircraftICAOcode), badaPerformanceFilePath=acBd.getAircraftPerformanceFile( aircraftICAOcode), atmosphere=atmosphere, earth=earth) aircraft.setTargetCruiseFlightLevel( 310, departureAirport.getFieldElevationAboveSeaLevelMeters()) print( '==================== aircraft reference mass ==================== ' ) print('aircraft reference mass= ' + str(massKg) + ' Kilograms') aircraft.setAircraftMassKilograms(massKg) print( '==================== begin of ground run ==================== ' ) groundRunLeg = GroundRunLeg(runway=departureRunway, aircraft=aircraft, airport=departureAirport) groundRunLeg.buildDepartureGroundRun( deltaTimeSeconds=0.1, elapsedTimeSeconds=0.0, distanceStillToFlyMeters=500000.0, distanceToLastFixMeters=500000.0) groundRunLeg.computeLengthMeters() #groundRunLeg.createXlsxOutputFile() print( '==================== end of ground run ==================== ') initialWayPoint = groundRunLeg.getLastVertex().getWeight() print( '==================== dump aircraft speed profile ==================== ' ) aircraft.createStateVectorOutputFile(aircraftICAOcode + "-Mass-" + str(massKg)) print('=========== main end ==================')
aircraftIcaoCode, acBd.getAircraftPerformanceFile(aircraftIcaoCode), atmosphere, earth) aircraft.dump() assert not (aircraft is None) elapsedTimeSeconds = 0.0 deltaTimeSeconds = 1.0 aircraft.initStateVector(elapsedTimeSeconds=0.0, trueAirSpeedMetersSecond=0.0, airportFieldElevationAboveSeaLevelMeters=0.0) aircraft.setTargetCruiseFlightLevel(RequestedFlightLevel=310.0, departureAirportAltitudeMSLmeters=0.0) aircraft.setAircraftMassKilograms(aircraftMassKilograms=285700.0) aircraft.setTargetCruiseMach(cruiseMachNumber=0.8) tas = aircraft.getCurrentTrueAirSpeedMetersSecond() previousAltitudeMSLmeters = 0.0 t0 = time.clock() print('simulation start= {0} seconds'.format(t0)) print('=========== simulation start ==================') endOfSimulation = False currentPosition = departureAirport arrivalGroundRun = GroundRunLeg(runway=arrivalRunway, aircraft=aircraft, airport=arrivalAirport) touchDownWayPoint = arrivalGroundRun.computeTouchDownWayPoint()
acBd = BadaAircraftDatabase() assert acBd.read() aircraftIcaoCode = 'A320' if ( acBd.aircraftExists(aircraftIcaoCode) and acBd.aircraftPerformanceFileExists(acBd.getAircraftPerformanceFile(aircraftIcaoCode))): tasKnots = 480.0 print ( '--------------- tas= {0:.2f} knots ----------------------'.format(tasKnots) ) aircraft = BadaAircraft(aircraftIcaoCode, acBd.getAircraftPerformanceFile(aircraftIcaoCode), atmosphere, earth) aircraft.dump() takeOffMassKilograms = 64000.0 aircraft.setAircraftMassKilograms(takeOffMassKilograms) RequestedFlightLevel = 310.0 fieldElevationAboveSeaLevelMeters = 150.0 aircraft.setTargetCruiseFlightLevel(RequestedFlightLevel, fieldElevationAboveSeaLevelMeters) tasMetersPerSecond = tasKnots * Knots2MetersPerSecond aircraft.initStateVector(elapsedTimeSeconds = 0.0, trueAirSpeedMetersSecond = tasMetersPerSecond, altitudeMeanSeaLevelMeters = 3000.0 * Meter2Feet, deltaDistanceFlownMeters = 0.0) aircraft.setCruiseConfiguration(elapsedTimeSeconds = 0.0) turnLeg = TurnLeg( initialWayPoint = departureAirport, finalWayPoint = arrivalAirport, initialHeadingDegrees = 215.0, finalHeadingDegrees = 180.0,