orbital

23
ORBITAL ORBITAL Orbital Simulation and Orbital Simulation and Telemetric Data Telemetric Data Collection Software Collection Software Developed By: Aaron M. Rosenfeld

Upload: joan-mcdonald

Post on 02-Jan-2016

53 views

Category:

Documents


0 download

DESCRIPTION

ORBITAL. Orbital Simulation and Telemetric Data Collection Software. Developed By: Aaron M. Rosenfeld. Specifications. ORBITAL accurately simulates space flight of one spacecraft around a single planet. - PowerPoint PPT Presentation

TRANSCRIPT

ORBITALORBITAL

Orbital Simulation and Orbital Simulation and Telemetric Data Collection Telemetric Data Collection

SoftwareSoftwareDeveloped By: Aaron M. Rosenfeld

SpecificationsSpecifications

ORBITAL accurately simulates space ORBITAL accurately simulates space flight of one spacecraft around a flight of one spacecraft around a single planet.single planet.

Displays a 2D view port of space Displays a 2D view port of space which can be centered on different which can be centered on different objects or be freely moved.objects or be freely moved.

Collects telemetry data which can be Collects telemetry data which can be displayed as graphs in real time or displayed as graphs in real time or post-simulation. post-simulation.

User InterfaceUser Interface

Autonomous GuidanceAutonomous Guidance

ORBITAL currently supports only orbit-ORBITAL currently supports only orbit-stabilization guidance. It can stabilization guidance. It can autonomously maintain LEO (Low Earth autonomously maintain LEO (Low Earth Orbit) and GEO (Geosynchronous Earth Orbit) and GEO (Geosynchronous Earth Orbit).Orbit).

In the future, ORBITAL will be able to In the future, ORBITAL will be able to complete more advanced orbital complete more advanced orbital maneuvers such as Hohmann transfer maneuvers such as Hohmann transfer orbits, direct transfer orbits, and “sling-orbits, direct transfer orbits, and “sling-shot” orbits around a planet.shot” orbits around a planet.

Firing SystemFiring System

To accurately portray real-world To accurately portray real-world manual guidance systems, a simple manual guidance systems, a simple firing system was used.firing system was used. User selects a length of time to fire the User selects a length of time to fire the

engine (currently only max thrust).engine (currently only max thrust). User can manually ignite the engine or User can manually ignite the engine or

set a pre-defined position to do so. set a pre-defined position to do so. These positions can be an angle with These positions can be an angle with respect to the planet, a distance respect to the planet, a distance threshold, or at an apogee or perigee.threshold, or at an apogee or perigee.

Firing System ExampleFiring System Example

The following demonstrates a very The following demonstrates a very basic course correction to take a basic course correction to take a spacecraft from LEO to an orbit of spacecraft from LEO to an orbit of just under 8,000 km.just under 8,000 km.

The firing system was set to fire at The firing system was set to fire at full thrust for 100 seconds at the full thrust for 100 seconds at the next occurring apogee.next occurring apogee.

Firing System (Setup)Firing System (Setup)

Firing System (Burn)Firing System (Burn)

Firing System Firing System (Completion)(Completion)

Firing System Example 2Firing System Example 2

This example shows how one can use This example shows how one can use ORBITAL’s firing system to cause a ORBITAL’s firing system to cause a spacecraft to re-enter the Earth’s spacecraft to re-enter the Earth’s atmosphere.atmosphere.

Only one burn was used here in a Only one burn was used here in a retrograde orientation (the retrograde orientation (the spacecraft is facing the opposite spacecraft is facing the opposite direction of travel) which slows the direction of travel) which slows the spacecraft, allowing it to descend.spacecraft, allowing it to descend.

Firing System 2 (Setup)Firing System 2 (Setup)

Firing System 2 (Burn)Firing System 2 (Burn)

Firing System 2 Firing System 2 (Completion)(Completion)

Geosynchronous Orbit Geosynchronous Orbit StabilizationStabilization

The following is a demonstration of The following is a demonstration of the Geosynchronous Orbit the Geosynchronous Orbit Stabilization system (GeoSync) Stabilization system (GeoSync) included with ORBITAL.included with ORBITAL.

No manual course corrections were No manual course corrections were made and time acceleration error made and time acceleration error was negligible (under .4%).was negligible (under .4%).

Geosynchronous Orbit Geosynchronous Orbit StabilizationStabilization

Geosynchronous Orbit Geosynchronous Orbit StabilizationStabilization

Geosynchronous Orbit Geosynchronous Orbit StabilizationStabilization

To DoTo Do For UsersFor Users

Add UI for intitial settings.Add UI for intitial settings. User-defined spacecraft setting such as weight, fuel, etc.User-defined spacecraft setting such as weight, fuel, etc. User-defined planet specifics such as radius, mass, etc.User-defined planet specifics such as radius, mass, etc. Make orbital maneuvers (LEO, GEO) buttons configure burn(s) to get Make orbital maneuvers (LEO, GEO) buttons configure burn(s) to get

the spacecraft into that orbit.the spacecraft into that orbit. Allow more than one planet. This will require a complete re-working Allow more than one planet. This will require a complete re-working

of the software's computational methodology so it may not be soon.of the software's computational methodology so it may not be soon. Add units for user-defined graphs.Add units for user-defined graphs.

For DevelopersFor Developers Complete re-orgazination of RenderFrame class structure. File is Complete re-orgazination of RenderFrame class structure. File is

horribly messy.horribly messy. Create 'System' class for ship/planet.Create 'System' class for ship/planet. Create 'UI' class for all UI elements and functionality.Create 'UI' class for all UI elements and functionality. Create 'InputController' class to handle all user input via mouse, Create 'InputController' class to handle all user input via mouse,

keyboard, etc.keyboard, etc. Find a better method of UIElement.Button invocation and boolean Find a better method of UIElement.Button invocation and boolean

checking (Pointers?).checking (Pointers?). Possibly create a math class of some sort to deal with all the distance, Possibly create a math class of some sort to deal with all the distance,

drag, and trajectory calculations.drag, and trajectory calculations.

Time Acceleration Time Acceleration ComputationsComputations

If time is accelerated, acceleration, velocity, and position If time is accelerated, acceleration, velocity, and position cannot be computed at every single moment in time.cannot be computed at every single moment in time.

Cannot simply evaluate these vectors at the few moments Cannot simply evaluate these vectors at the few moments the time acceleration allows. Error would be too great.the time acceleration allows. Error would be too great.

Utilized a method called “Dynamic State Vector Utilized a method called “Dynamic State Vector Propagation” developed by Martin SPropagation” developed by Martin Schwiegerchwieger, PhD., PhD.

Assumes a quadratic interpolation of vectors between all Assumes a quadratic interpolation of vectors between all known times.known times.

Integration of the acceleration vectors between tIntegration of the acceleration vectors between tnn and t and tn+1n+1 gives us an estimated velocity which is then used to gives us an estimated velocity which is then used to determine position.determine position.

Error low enough to allow up to 1.0 x 10Error low enough to allow up to 1.0 x 1033 time time acceleration in LEO which is does acceleration in LEO which is does notnot actually have a actually have a quadratic interpolation.quadratic interpolation.

Proof will be available on the ORBITAL website very Proof will be available on the ORBITAL website very soon.soon.

Technical DataTechnical Data

Full program is about 3,000 lines of code.Full program is about 3,000 lines of code. Completely coded in C# .NET with no “unsafe” Completely coded in C# .NET with no “unsafe”

code blocks (i.e. no direct memory code blocks (i.e. no direct memory management).management).

Extensive use of delegates to pass data Extensive use of delegates to pass data between forms without needing pointers and between forms without needing pointers and unsafe code.unsafe code.

Client was originally a stand alone render Client was originally a stand alone render screen that has just recently been added to the screen that has just recently been added to the new full MDI system.new full MDI system.

Full optimization benchmark completed.Full optimization benchmark completed.

Technical Data (con’t.)Technical Data (con’t.) Telemetry DataTelemetry Data

All telemetry data is stored even if it is not being All telemetry data is stored even if it is not being used in a real-time graph.used in a real-time graph.

Allows for later retrieval or mid-simulation display.Allows for later retrieval or mid-simulation display. All data stored in packets (All data stored in packets (struct struct ShipDataPacketShipDataPacket) )

that allow for very quick extraction of data.that allow for very quick extraction of data. FutureFuture

Allow for statistical analysis of graphs (regression, Allow for statistical analysis of graphs (regression, min, max, mean, standard deviation, etc)min, max, mean, standard deviation, etc)

Allow users to add markers to the graphs Allow users to add markers to the graphs (horizontal or vertical reference lines).(horizontal or vertical reference lines).

Optimization FindingsOptimization Findings After benchmarking the following changes were After benchmarking the following changes were

made:made: All All foreachforeach loops were changed to loops were changed to forfor loops loops

which resulted in a which resulted in a Log(N)Log(N) decrease in runtime. decrease in runtime. All non-inherited classes were changed to All non-inherited classes were changed to sealedsealed

improving runtime by allowing all virtual methods improving runtime by allowing all virtual methods to be treated as finally declared.to be treated as finally declared.

String modification in frequent methods were String modification in frequent methods were concatenation with the concatenation with the StringBuilderStringBuilder class class instead of instead of ++ contamination, decreasing runtime by contamination, decreasing runtime by a factor of 14.a factor of 14.

The The repaintrepaint method was changed from a self- method was changed from a self-invoke to a invoke to a System.Threading.TimerSystem.Threading.Timer invoked invoked event relieving nearly 32% of processor usage.event relieving nearly 32% of processor usage.

ContactContact

Aaron RosenfeldAaron Rosenfeld E-Mail: E-Mail: [email protected]@drexel.edu