Orbiter A Free Spacecraft Simulation Tool Martin Schweiger
Orbiter: A Free Spacecraft Simulation Tool Martin Schweiger Department of of Computer Science University College London www. orbitersim. com nd ESA Workshop on Astrodynamics 2 nd Tools and Techniques ESTEC, Noordwijk 13 -15 September 2004
Contents q q q Overview Scope and limitations Some Orbiter features: q Time propagation q Gravity calculation q Rigid-body model and superstructures q Orbiter Application Programming Interface: q Concept q Orbiter instrumentation q The VESSEL interface class q New features: q Air-breathing engines: scramjet design q Virtual cockpits q New visual effects q q q Connectivity and data exchange Summary and future plans Demonstration Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -2 -
Overview Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -3 - q Orbiter is a real-time space flight simulation for Windows PC platforms. q Modelling of atmospheric flight (launch and re-entry), sub-orbital, orbital and interplanetary missions (rendezvous, docking, transfer, swing-by etc. ) q Newtonian mechanics, rigid body model of rotation, basic (static) atmospheric flight model. q Planet positions from public perturbation solutions. Time integration of state vectors or osculating elements. q Developed since 2000 as an educational and recreational application for orbital mechanics simulation. q Written in C++, using Direct. X for 3 -D rendering. Public programming interface for development of external module plugins. q With an increasingly versatile API, development focus is beginning to shift from the Orbiter core to 3 rd party addons.
Scope Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -4 - q Launch sequence from surface to orbital insertion (including atmospheric effects: drag, pressure-dependent engine ISP. . . ) q Orbital manoeuvres (alignment of orbital plane, orbit-to-orbit transfers, rendezvous) q Simultaneous simulation of multiple spacecraft. q Vessel-to-vessel approach and docking. Building of superstructures from vessel modules (including simple rules for updating the rigid-body model). q Release and re-capture of satellites. q Re-entry. q Interplanetary transfers (including Hohmann orbits, slingshot manoeuvres) q Atmospheric flight (aerodynamic flight model, airfoil definition, runway takeoff/landing, air-breathing engines) q Simulation and testing of historical, present and hypothetical spaceflight concepts.
Limitations Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -5 - q Stability of time propagation: numerical accuracy limited by frame refresh rate (physics engine and graphics subsystem competing for clock cycles) q Flight model: no native support yet for radiation pressure, microdrag at high altitude. Simple rigid-body model (no native support for tethers, internal mass distribution changes. . . ) q Simple atmospheric flight model q No collision detection q No damage modelling q No native multi-user support
Time propagation Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -6 - Real-time simulation with time acceleration up to 104 and variable step length determined by processor speed, graphics load, simulation complexity etc. Method 1: Semi-analytic perturbation solutions for celestial bodies (VSOP 87, ELP 2000. . . ) Method 2: Propagation of state vectors r(ti) r(ti+1), v(ti) v(ti+1) with 4 th order Runge-Kutta. Method 3: Updating elements of osculating orbit from perturbations of the primary gravitational field.
Gravity calculation Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -7 - Orbiter accommodates perturbations of the radial symmetry of gravitational potential sources in a single (polar) dimension using a harmonic series: with Legendre polynomial Pn of order n, and perturbation coefficients Jn. Number of terms N is adjusted automatically as a function of distance r. Earth Mercury Venus Mars Jupiter Saturn Uranus Neptune J 2 = 1082. 63 J 3 = -2. 51 J 4 = -1. 6 J 5 = 0. 13 J 2 = 60 J 2 = 27 J 2 = 1964 J 2 = 14750 J 2 = 16450 J 2 = 12000 J 2 = 4000 x 10 -6 A full spherical harmonics expansion of the field perturbations in both polar (f) and azimuth direction (l) is planned for a future version.
Rigid-body model, composite structures Orbiter uses a simplified model of rigid body motion to construct superstructures by connecting vessels. Given Euler's equation for angular motion, assuming diagonalised inertia tensors with PMI Jx, Jy, Jz: we represent each vessel by 6 samples p 1, 2 = ( x, 0, 0), p 3, 4 = (0, y, 0), p 5, 6 = (0, 0, z) with Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -8 - The samples pi for each vessel are transformed into a common reference frame pi', given by the superstructure connectivity, and transformed PMI are constructed: The PMI J(S) of the superstructure are then given by collecting all vessel contributions: No off-diagonal elements are considered in J(S).
Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -9 - Orbiter module design and API Textures Planet definition file Planet module Instrument plugin parser API callback API request API Orbiter core Meshes parser API callback API request Vessel definition file Vessel module API: VESSEL class Ephemeris libraries (VSOP, ELP 2000) Remote Orbiter API Plugin module External links (files, libraries, applications derived class vessel instance API Script wrapper Script
Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -10 - Orbiter instrumentation Multifunctional display (MFD) concept: seamless extension of instrumentation functionality via plugin MFD modes. Generic instruments (selection): Surface-relative and at- Align orbital plane with mospheric parameters. a target orbit at a node. Rendezvous with target object. Line up docking approach path. Drop-in instruments from plugin modules: MFD plugin Orbiter core Update() Redraw () User input () Trans. X MFD mode: interplanetary transfer calculation with patched cone approach. (courtesy Duncan Sharpe)
Orbiter API: The VESSEL interface Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -11 - The VESSEL class is a generic interface between Orbiter and a vessel implementation. callback functions API get/set class VESSEL clbk. Timestep() clbk. Save. State(). . . Get. Altitude() Set. Thruster. Level() Add. Force(). . . Using Orbiter's built-in flight model: Setup: Define_thruster (r, d, f 0, isp, . . . ) Define_airfoil (r, c. L(. . . ), c. D(. . . ), . . . ) class my. Vessel: public VESSEL clbk. Timestep() clbk. Save. State(). . . local_Functions () overloaded callback functions Local calculation, bypassing Orbiter's flight model: Time step: Get_Positions () Get_Atmospheric_data () (F, r) = local_Calculate_forces () Add. Force (F, r) The vessel designer has a choice of using built-in flight models, or implementing a local model (using Orbiter as a visualisation framework only).
Air-breathing engines: scramjet (1) Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -12 - Scramjet design is an example for implementing a feature entirely externally without native support in the Orbiter core. Ideal scramjet: temperature and pressure relationships Diffuser: isentropic compression Combustion chamber: isobaric expansion Exhaust nozzle: isentropic expansion Jet engine propulsion thrust balance equation: where and are the air and fuel mass rates, respectively, and are the exhaust and freestream velocities, and is the exhaust cross section.
Air-breathing engines: scramjet (2) Specific thrust is given by where Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -13 - Thrust vs. Mach number: is the fuel-to-air ratio. The amount of fuel burned in the combustion chamber must be adjusted so that the burner temperature limit is not exceeded. This leads to the following expression for D: TSFC vs. Mach number: where Q is a fuel-specific heating value and cp is the specific heat at constant pressure, given by cp = g. R/(g-1). The exhaust velocity the energy balance can be obtained from
Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -14 - Virtual 3 -D Cockpit q Support for 3 -D virtual cockpit view q Head rotation improves situational awareness q “Eye-neck” offset generates movement parallax q Camera reference point and rotation ranges defined by API calls q Dynamic display updates q Mouse-operated instruments q Viewpoint-corrected HUD display 3 -D artwork courtesy Roger Long
Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -15 - New visual effects (1) q Improved rendering of atmospheric haze from high altitude q Additional configuration parameters for colour distribution q Rendering of objects through atmosphere layers is now additive.
Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -16 - New visual effects (2) q Surface labels (launch sites, radio transmitters, user-defined) q Surface shadow support for structures and vessels
Integration and data exchange Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -17 - Data logging: flight data can be extracted for analysis by: q Using built-in flight data logging facilities q Writing custom data extraction modules using the API interface q New: Using DDE (dynamic data exchange) protocol Flight. Data DDE support: module exporting logging flight atmospheric data to MATLAB data Exported to a file for offline analysis
Orbiter as a teaching tool Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -18 - q New html-based help system (context-sensitive: scenario- and vessel-specific). Can be extended by 3 rd party plugins. q New "kiosk mode" for unsupervised use in public environments (limited simulation run time, automatic scenario selection). Help system: scenario instructions Help system: instrument Help system: orbital mechanics primer layout and documentation
Summary Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -19 - q Orbiter is an accessible tool for atmospheric, orbital and interplanetary space flight simulation. q Combining a (moderately) accurate physics engine with 3 -D rendering, its main application is as an educational or recreational tool. q Diverse educational applications: maths, physics, astronomy, geography training, mission design/planning. q The programming interface (API) is a versatile way to extend the core Orbiter functionality. Features not natively supported by the core can be added by external plugins. q C++ API interface consists of more than 500 functions, methods, classes and callback hooks, including: q state vector updates for celestial bodies q spacecraft implementations q instrumentation q Development of the core module is ongoing, and a growing set of 3 rd party contributions is available.
Future developments Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -20 - Some of the features planned for future releases include: q Improvements of the flight model (stability of time integration, micro-drag, radiation pressure, atmospheric flight model). q Use of Orbiter as a testbed for mission planning / trajectory optimisation. q Damage and collision modelling. q Multi-user support (simulation running on server continuously, clients connect temporarily). q Planetary elevation modelling.
Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -21 - Acknowledgements Trajectory code Duncan Sharpe (Trans. X transfer trajectory plugin) Vessel code Radu Poenaru, Robert Conley 3 -D Modelling Roger Long, Andrew Farnaby, Don Gallagher, Damir Gulesich, David Sundstrom, Jason Benson, Valerio Oss Planet textures James Hastings-Trew, Björn Jonsson, Dean Scott, Philip Stooke, Constantine Thomas, Robert Stettner, James Williams, Seth Hollingsead The beta test team The addon developer base Web space sponsored by M 6. net, avsim. com, and others
Resources Orbiter main site (includes download links and related sites): www. medphys. ucl. ac. uk/~martins/orbit. html www. orbitersim. com Contact: martins@medphys. ucl. ac. uk Orbiter is an un-funded, volunteerbased project. Critique, suggestions and collaborations are very welcome! Workshop on Astrodynamics Tools ESTEC, Sep. 2004 -22 -
- Slides: 22