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

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

description

User Interface

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

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

ORBITALORBITALOrbital Simulation and Orbital Simulation and

Telemetric Data Collection Telemetric Data Collection SoftwareSoftwareDeveloped By: Aaron M. Rosenfeld

Page 2: ORBITAL Orbital Simulation and Telemetric Data Collection Software Developed 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.

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

User InterfaceUser Interface

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

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.

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

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 set User can manually ignite the engine or set

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

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

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.

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

Firing System (Setup)Firing System (Setup)

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

Firing System (Burn)Firing System (Burn)

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

Firing System Firing System (Completion)(Completion)

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

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 spacecraft retrograde orientation (the spacecraft is facing the opposite direction of is facing the opposite direction of travel) which slows the spacecraft, travel) which slows the spacecraft, allowing it to descend.allowing it to descend.

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

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

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

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

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

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

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

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%).

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

Geosynchronous Orbit Geosynchronous Orbit StabilizationStabilization

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

Geosynchronous Orbit Geosynchronous Orbit StabilizationStabilization

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

Geosynchronous Orbit Geosynchronous Orbit StabilizationStabilization

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

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 the Make orbital maneuvers (LEO, GEO) buttons configure burn(s) to get the

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

the software's computational methodology so it may not be soon.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.

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

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 soon.Proof will be available on the ORBITAL website very soon.

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

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 between Extensive use of delegates to pass data between forms without needing pointers and unsafe forms without needing pointers and unsafe code.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.

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

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).

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

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

All All foreachforeach loops were changed to loops were changed to forfor loops which loops which resulted in a 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 instead class instead of of ++ contamination, decreasing runtime by a factor contamination, decreasing runtime by a factor of 14.of 14.

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

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

ContactContact Aaron RosenfeldAaron Rosenfeld

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