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

Slides:



Advertisements
Similar presentations
Chapter 10: Motion 10.1 An object in motion changes position
Advertisements

Composition CMSC 202. Code Reuse Effective software development relies on reusing existing code. Code reuse must be more than just copying code and changing.
© 2010 Bennett, McRobb and Farmer1 Use Case Description Supplementary material to support Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
Orbital Operations – 2 Rendezvous & Proximity Operations
Motion Planning CS 6160, Spring 2010 By Gene Peterson 5/4/2010.
Rocket Trajectories By Jan-Erik Rønningen Norwegian Rocket Technology [ [ ]
1 Lucifer’s Hammer Derek Mehlhorn William Pearl Adrienne Upah A Computer Simulation of Asteroid Trajectories Team 34 Albuquerque Academy.
AAE 450 Spring 2008 Adam Waite January 24, 2008 Dynamics and Control Thrust Vector Control Analysis for an Air Launched Rocket.
Lecture-5 Though SQL is the natural language of the DBA, it suffers from various inherent disadvantages, when used as a conventional programming language.
Understand the football simulation source code. Understand the football simulation source code. Learn all the technical specifications of the system components.
Chapter 6: Maneuvering in Space By: Antonio Batiste.
Exceptions in Java Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Tracking Migratory Birds Around Large Structures Presented by: Arik Brooks and Nicholas Patrick Advisors: Dr. Huggins, Dr. Schertz, and Dr. Stewart Senior.
ASEN 5050 SPACEFLIGHT DYNAMICS Orbit Transfers Prof. Jeffrey S. Parker University of Colorado – Boulder Lecture 10: Orbit Transfers 1.
Introduction Videos  Projectile Motion 1 Projectile Motion 1  Useful Applications of Projectile Motion Useful Applications of Projectile Motion.
Final (Part A) Presentation 31/10/04 Virtual Traffic Signal Presented by: Ron Herman Ofir Shentzer Instructor: Mr. Mony Orbach Technion – Israel Institute.
C++ fundamentals.
November 2011 At A Glance GREAT is a flexible & highly portable set of mission operations analysis tools that increases the operational value of ground.
 A data processing system is a combination of machines and people that for a set of inputs produces a defined set of outputs. The inputs and outputs.
Differences between C# and C++ Dr. Catherine Stringfellow Dr. Stewart Carpenter.
TrendReader Standard 2 This generation of TrendReader Standard software utilizes the more familiar Windows format (“tree”) views of functions and file.
Launch System Launch Vehicle Launch Complex Orbit Insertion Orbit Maneuvers.
Two Interesting (to me!) Topics Neither topic is in Goldstein. Taken from the undergraduate text by Marion & Thornton. Topic 1: Orbital or Space Dynamics.
Programming with Microsoft Visual Basic 2012 Chapter 12: Web Applications.
Forces of Flight and Stability
Chapter 1 Computing Tools Analytic and Algorithmic Solutions Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
COMT 3911 Satellite Basics COMT 391 Wireless. COMT 3912 Satellite Components Satellite Subsystems –Telemetry, Tracking, and Control –Electrical Power.
An Introduction to Programming and Algorithms. Course Objectives A basic understanding of engineering problem solving process. A basic understanding of.
Incline Plane MSC.ADAMS 2005 r2 Estimated time required: 15 min
2.1 Kinematics in One Dimension Mechanics – motion and the forces that cause that motion Kinematics – describes motion without regard to the forces that.
GEONS Ground Support System Java 7, JavaFX and the NetBeans Platform supporting NASA Missions Operations.
1 Arrays An array is a collection of data values, all of which have the same type. The size of the array is fixed at creation. To refer to specific values.
Boundary Assertion in Behavior-Based Robotics Stephen Cohorn - Dept. of Math, Physics & Engineering, Tarleton State University Mentor: Dr. Mircea Agapie.
Linear Impulse & Linear Momentum Lecture VIII. Introduction From Newton ’ s 2 nd Law:  F = m a = m v. = d/dt (m v) The term m v is known as the linear.
Developing An Educational Rigid Body Dynamics Physics Engine By Neal Milstein.
1 Projectile Estimated time required: 20 min GUI familiarity level required: Higher MSC.ADAMS 2005 r2.
ADAMS Assignment 1 ME451:Kinematics and Dynamics of Machine Systems (Fall 2013) Assigned: September 18, 2013 Due: September 25, 2013.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
ICTCM Using Satellite Orbits and Space Travel with Game-Quality Simulations in Math and Physics Classes from High School through College Frank Wattenberg.
Verification Data (Spatial and Weight) Unguided MK66 Weight = 23.4 lbs. (7.14 lbs fuel) Length = 55 in. x (c.g.) = 30 in. y (c.g.) = 0.0 in. z (c.g.) =.002.
MAE 4262: ROCKETS AND MISSION ANALYSIS
1 Extending FPGA Verification Through The PLI Charles Howard Senior Research Engineer Southwest Research Institute San Antonio, Texas (210)
March 2004 At A Glance autoProducts is an automated flight dynamics product generation system. It provides a mission flight operations team with the capability.
Writing Equations for Rocket Paths: Math Lesson Example
CS 147 Virtual Memory Prof. Sin Min Lee Anthony Palladino.
Agenda 1) Warm-Up 5 min 2) Vocab. Words 10 min 3) Projectile Motion fill-in- blank Notes. 15 min 4) New Formulas 5 min 5) Example Problems 15 min 6) Blue.
Mission Development: Putting It All Together ASEN 6008 Interplanetary Mission Design.
Rotational Kinematics
March 2004 At A Glance ITPS is a flexible and complete trending and plotting solution which provides user access to an entire mission full-resolution spacecraft.
Refined Online Citation Matching and Adaptive Canonical Metadata Construction CSE 598B Course Project Report Huajing Li.
1 The PISCES Project Don J. Pearson JSC/DM Flight Design & Dynamics Division May 2002
ADAMS Assignment 1 ME451:Kinematics and Dynamics of Machine Systems (Spring 09)
ENG004 ALGORITHMS & INT. TO PROGRAMMING Week 4 “Arrays and Matrix Operations III” Ahmet Anıl Dindar
Processing Images and Video for An Impressionist Effect Automatic production of “painterly” animations from video clips. Extending existing algorithms.
SACE Stage 2 Physics Circular Motion.
Curriculum Extension Guides
Key Areas covered Projectiles and satellites.
Forces on an Aircraft Four forces on an aircraft in flight:
Development and Principles of Rocketry
Analysis of Rocket Propulsion
Vector Problems.ppt Vector Problems.ppt.
Dynamics and Control Attitude dynamics Communications Pointing
int [] scores = new int [10];
CIS 16 Application Development Programming with Visual Basic
Direct Manipulation.
Rocketry Trajectory Basics
CSE 1020:Software Development
CMSC 202 Exceptions 2nd Lecture.
Stefan Oßwald, Philipp Karkowski, Maren Bennewitz
Presentation transcript:

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. ORBITAL accurately simulates space flight of one spacecraft around a single planet. Displays a 2D view port of space which can be centered on different objects or be freely moved. Displays a 2D view port of space which can be centered on different objects or be freely moved. Collects telemetry data which can be displayed as graphs in real time or post-simulation. Collects telemetry data which can be displayed as graphs in real time or post-simulation.

User Interface

Autonomous Guidance ORBITAL currently supports only orbit- stabilization guidance. It can autonomously maintain LEO (Low Earth Orbit) and GEO (Geosynchronous Earth Orbit). ORBITAL currently supports only orbit- stabilization guidance. It can autonomously maintain LEO (Low Earth Orbit) and GEO (Geosynchronous Earth Orbit). In the future, ORBITAL will be able to complete more advanced orbital maneuvers such as Hohmann transfer orbits, direct transfer orbits, and “sling-shot” orbits around a planet. In the future, ORBITAL will be able to complete more advanced orbital maneuvers such as Hohmann transfer orbits, direct transfer orbits, and “sling-shot” orbits around a planet.

Firing System To accurately portray real-world manual guidance systems, a simple firing system was used. To accurately portray real-world manual guidance systems, a simple firing system was used. User selects a length of time to fire the engine (currently only max thrust). User selects a length of time to fire the engine (currently only max thrust). User can manually ignite the engine or set a pre- defined position to do so. These positions can be an angle with respect to the planet, a distance threshold, or at an apogee or perigee. User can manually ignite the engine or set a pre- defined position to do so. These positions can be an angle with respect to the planet, a distance threshold, or at an apogee or perigee.

Firing System Example The following demonstrates a very basic course correction to take a spacecraft from LEO to an orbit of just under 8,000 km. The following demonstrates a very basic course correction to take a spacecraft from LEO to an orbit of just under 8,000 km. The firing system was set to fire at full thrust for 100 seconds at the next occurring apogee. The firing system was set to fire at full thrust for 100 seconds at the next occurring apogee.

Firing System (Setup)

Firing System (Burn)

Firing System (Completion)

Firing System Example 2 This example shows how one can use ORBITAL’s firing system to cause a spacecraft to re-enter the Earth’s atmosphere. This example shows how one can use ORBITAL’s firing system to cause a spacecraft to re-enter the Earth’s atmosphere. Only one burn was used here in a retrograde orientation (the spacecraft is facing the opposite direction of travel) which slows the spacecraft, allowing it to descend. Only one burn was used here in a retrograde orientation (the spacecraft is facing the opposite direction of travel) which slows the spacecraft, allowing it to descend.

Firing System 2 (Setup)

Firing System 2 (Burn)

Firing System 2 (Completion)

Geosynchronous Orbit Stabilization The following is a demonstration of the Geosynchronous Orbit Stabilization system (GeoSync) included with ORBITAL. The following is a demonstration of the Geosynchronous Orbit Stabilization system (GeoSync) included with ORBITAL. No manual course corrections were made and time acceleration error was negligible (under.4%). No manual course corrections were made and time acceleration error was negligible (under.4%).

Geosynchronous Orbit Stabilization

To Do For Users For 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 spacecraft into that orbit. Make orbital maneuvers (LEO, GEO) buttons configure burn(s) to get the spacecraft into that orbit. Allow more than one planet. This will require a complete re-working of the software's computational methodology so it may not be soon. Allow more than one planet. This will require a complete re-working 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 Developers For Developers Complete re-orgazination of RenderFrame class structure. File is horribly messy. Complete re-orgazination of RenderFrame class structure. File is 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, keyboard, etc. Create 'InputController' class to handle all user input via mouse, keyboard, etc. Find a better method of UIElement.Button invocation and boolean checking (Pointers?). Find a better method of UIElement.Button invocation and boolean checking (Pointers?). Possibly create a math class of some sort to deal with all the distance, drag, and trajectory calculations. Possibly create a math class of some sort to deal with all the distance, drag, and trajectory calculations.

Time Acceleration Computations If time is accelerated, acceleration, velocity, and position cannot be computed at every single moment in time. If time is accelerated, acceleration, velocity, and position cannot be computed at every single moment in time. Cannot simply evaluate these vectors at the few moments the time acceleration allows. Error would be too great. Cannot simply evaluate these vectors at the few moments the time acceleration allows. Error would be too great. Utilized a method called “Dynamic State Vector Propagation” developed by Martin Schwieger, PhD. Utilized a method called “Dynamic State Vector Propagation” developed by Martin Schwieger, PhD. Assumes a quadratic interpolation of vectors between all known times. Assumes a quadratic interpolation of vectors between all known times. Integration of the acceleration vectors between t n and t n+1 gives us an estimated velocity which is then used to determine position. Integration of the acceleration vectors between t n and t n+1 gives us an estimated velocity which is then used to determine position. Error low enough to allow up to 1.0 x 10 3 time acceleration in LEO which is does not actually have a quadratic interpolation. Error low enough to allow up to 1.0 x 10 3 time acceleration in LEO which is does not actually have a quadratic interpolation. Proof will be available on the ORBITAL website very soon. Proof will be available on the ORBITAL website very soon.

Technical 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” code blocks (i.e. no direct memory management). Completely coded in C#.NET with no “unsafe” code blocks (i.e. no direct memory management). Extensive use of delegates to pass data between forms without needing pointers and unsafe code. Extensive use of delegates to pass data between forms without needing pointers and unsafe code. Client was originally a stand alone render screen that has just recently been added to the new full MDI system. Client was originally a stand alone render screen that has just recently been added to the new full MDI system. Full optimization benchmark completed. Full optimization benchmark completed.

Technical Data (con’t.) Telemetry Data Telemetry Data All telemetry data is stored even if it is not being used in a real-time graph. All telemetry data is stored even if it is not being 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 ( struct ShipDataPacket ) that allow for very quick extraction of data. All data stored in packets ( struct ShipDataPacket ) that allow for very quick extraction of data. Future Future Allow for statistical analysis of graphs (regression, min, max, mean, standard deviation, etc) Allow for statistical analysis of graphs (regression, min, max, mean, standard deviation, etc) Allow users to add markers to the graphs (horizontal or vertical reference lines). Allow users to add markers to the graphs (horizontal or vertical reference lines).

Optimization Findings After benchmarking the following changes were made: After benchmarking the following changes were made: All foreach loops were changed to for loops which resulted in a Log(N) decrease in runtime. All foreach loops were changed to for loops which resulted in a Log(N) decrease in runtime. All non-inherited classes were changed to sealed improving runtime by allowing all virtual methods to be treated as finally declared. All non-inherited classes were changed to sealed improving runtime by allowing all virtual methods to be treated as finally declared. String modification in frequent methods were concatenation with the StringBuilder class instead of + contamination, decreasing runtime by a factor of 14. String modification in frequent methods were concatenation with the StringBuilder class instead of + contamination, decreasing runtime by a factor of 14. The repaint method was changed from a self-invoke to a System.Threading.Timer invoked event relieving nearly 32% of processor usage. The repaint method was changed from a self-invoke to a System.Threading.Timer invoked event relieving nearly 32% of processor usage.

Contact Aaron Rosenfeld Aaron Rosenfeld