NASA SBIR Phase III: Low Energy Mission Planning

Hello PSS fans! This is Charles Swanson, recently minted doctor of plasma physics and PSS’s newest employee. It’s my distinct pleasure to discuss our most recent NASA contract: A Phase III SBIR to integrate our Low Energy Mission Planning Toolbox (LEMPT) into NASA’s open source Orbit Determination Toolbox (ODTBX).

Have you read about the kinds of maneuvers conducted by Hiten and AsiaSat 3 that allowed them to reach orbits that would seemingly be outside their Delta-V budgets? Have you always wondered how one goes about planning such maneuvers?

What about the Lunar Gateway from which NASA plans to stage missions to the surface of the Moon in the coming decades? What kinds of clever orbital tricks can we use to get to, from, and about the Moon with the minimum possible fuel?

That’s what LEMPT is for. LEMPT is a suite of tools written in MATLAB for the planning of low energy missions, the kinds of missions that loop way outside the target orbit of the Moon and deep into chaotic regions of the gravitational landscape. Here’s an example:

This LEO to Lunar Orbit mission takes just one impulsive burn of 2.8 km/s. It loops way outside the Moon and back in for a ballistic capture.

To go from LEO to a low lunar orbit usually takes almost 4 km/s of Delta-V. The maneuver depicted takes only 2.8 km/s. This is the kind of planning capability that NASA would like for their ODTBX. From now until December, we’ll be integrating the LEMPT into ODTBX, where it will help NASA mission planners evaluate all of their options along the trade-off of mission time and Delta-V.

The orbit above doesn’t look anything like the Keplerian ellipse that we know and love. That’s because this is a four-body system, with the Sun, Earth, Moon, and spacecraft all interacting gravitationally. Even the three-body system is famously chaotic: here are two examples of the kind of distinctly weird-looking orbits you can get:

This is a periodic orbit in the Sun-Earth-Spacecraft system. Periodic orbits are rare in such systems.

This orbit starts with only 0.01% more velocity than the periodic orbit but escapes the Earth entirely. This is an example of chaos.

It’s this chaos that the LEMPT leverages to plan exotic and efficient maneuvers.

Lunar Landing Control System

The first soft moon landings were accomplished in the 1960’s by the Soviet Luna 9 and the U.S. Surveyor Spacecraft. These were followed by the U.S. Lunar Module landings during the Apollo program. The Soviets had their own LK Lander lunar lander for landing humans on the moon but it never flew. China’s Chang’e-3 landed on the moon on December 13, 2013. India plans to land the Chandrayaan-2 on the moon in 2018.  South Korea intends to land a spacecraft on the moon in 2020.

The U.S. Lunar Module was flown by a crew but had a digital computer that performed guidance, navigation and control. A great new book by Don Eyles, Sunburst and Luminary an Apollo Memoir explains how that was accomplished with a computer less powerful than those in toaster ovens today. Don played a key role in saving the Apollo 14 mission when an abort light appeared on the crew’s console prior to descent. Read the book for for the whole story.

NASA intended follow-ons to the Lunar Module that would have been fully automated for delivering materials to the moon in preparation for a permanent human presence. Unfortunately, those plans never materialized.

As we are always looking for new missions for testing our Precision Attitude Control System, we added guidance, navigation and control for lunar landings. We use a really simple guidance algorithm called 2nd order guidance. It is nothing more than a Proportional Derivative (PD) controller with the landing spot as a target. You can adjust the damping ratio and undamped natural frequency of the controller to mimic more sophisticated, “optimal” guidance algorithms. The 2nd order guidance works until the lander gets near the surface and then it switches to landing algorithm that hovers, nulling any remaining translational velocities and then descends to the surface. Lidar would be used as guidance. Once it is hovering it would need to search for a flat spot for landing. NASA has developed Hazard Detection Software for Lunar Landing that uses lidar. It is available for licensing from Caltech.

Here is one simulation in our Simulation Framework. Once the descent is initiated, the spacecraft reorients so that the main engine thrust vector is in the desired direction. The display on the left shows the attitude errors (the two boxes) and the throttle setting (which is zero during the attitude maneuver.)

A close up of the attitude display. Pitch and yaw are offsets of the green rectangle. Roll is rotation of the rectangle. This is quite primitive but it is easy to add your own displays if you know a little OpenGL!

Descent starts and the throttle is about 50% at this point. The two plots are of altitude and velocity. The maneuver starts at 15 km and the target is 600 km along track. The lander has solar panels on a two-axis gimbal and a high gain antenna, also on a two-axis gimbal.

The propulsion page shows two attitude thrusters firing and the main engine.

The spacecraft has landed! You can see the terminal descent phase on the altitude and velocity plots. The lunar surface is featureless because we have not added close up maps of the landing zone to the planet display.

The descent page shows the throttle settings. You can monitor the guidance force demand and simulated force.

This is the propulsion page. The attitude thrusters get very busy during the terminal descent phase. Note that we have a lot of fuel left! We could have hovered for quite some time.

The graphics are from our VisualCommander product that runs on Mac OS X.

This GN&C system is capable of autonomous flight from LEO all the way to the moon. It uses our Optical Navigation System, developed under a NASA Phase II SBIR for trajectory determination on the flight to the moon and lunar orbit entry.

For more information contact us directly!

The 2017 Edition of Princeton Satellite Systems’ MATLAB Toolboxes is Now Available!

Version 2017.1 of Princeton Satellite Systems MATLAB toolbox suite is now available! Over 60 new functions were added and updates to dozens of existing functions were made to improve their performance and expand their applications.

In the Aircraft Control Toolbox we added an inlet loss function to compute losses due to shockwaves. Our Unscented Kalman Filter algorithm was updated.

We expanded our support for heliocentric missions. This includes functions to compute solar eclipses in heliocentric orbits, heliocentric sphere of influence, heliocentric trajectory plotting and thermal models for heliocentric spacecraft.

Several new component models were added for use with the CAD modeling functions. These included a liquid apogee Engine, curved tubes and triangular trusses.

We have added all new star identification functions. These are based on a pyramid star identification algorithm using four stars for a definitive match during lost-in-sky conditions. The algorithm provides reliable star identification with almost any star catalog and in any orientation. We have updated image processing algorithms for star centroid determination.

New attitude determination demos and algorithms were added for mixtures of different sensors, such as sun measurements, earth chords and magnetic field measurements. You can compare the performance of extended and Unscented Kalman Filters. A new second order guidance law was added for planetary and lunar landing that provides a simple and effective algorithm for landers.

Contact Princeton Satellite Systems or your distributor for more information!

NEA Scout Toolbox

Near-Earth Asteroid Scout, or NEA Scout is a exciting new NASA mission to map an asteroid and achieve several technological firsts, including being the first CubeSat to reach an asteroid and demonstrate CubeSat technologies in deep space. http://www.nasa.gov/content/nea-scout

NEAScoutCAD

NEA Scout will perform a survey of an asteroid using a CubeSat and solar sail propulsion and gather a wide range of scientific data. NEA Scout will be launched on the first Space Launch System (SLS) launch.

NASA asked Princeton Satellite Systems to develop custom MATLAB software based on the Princeton Satellite Systems Spacecraft Control Toolbox and Solar Sail Module to assist with this mission. We just delivered our first software release to NASA!

The NEA Scout module provides MATLAB scripts that simulate the spacecraft. One, TrajectorySimulation, simulates just the trajectory. It includes a solar sail force model and uses the JPL Ephemerides to compute the gravitational forces on the sail. In addition it can use a 150 x 150 Lunar Gravity model during lunar flybys. It also simulates the orbit dynamics of the target asteroid.

AttitudeSimulation expands on this script. It adds attitude, power and thermal dynamics to the model. A full Attitude Control System (ACS) is included. This ACS uses reaction wheels and optionally cold gas thrusters for control. Momentum unloading can be done with the thrusters our using NASA’s Active Mass Translation (AMT) system that moves one part of the CubeSat relative to the other to adjust the center-of-mass so that it aligns with the system center-of-pressure or adds a slight offset to unload momentum. The control system reads command lists that allows the ACS to perform attitude maneuvers, do orbit changes with thrusters and for the user to change parameters during simulations. It adds the rotational dynamics of the asteroid.

The dynamics of the AMT can be modeled either with a lag on the position or a full multi-body model. Dynamics of the reaction wheels, including a friction model, are included in the simulation. The following are a few figures from a typical simulation.

The first figure shows reaction wheel torques during attitude maneuvers. The ACS uses quaternions as its attitude reference. You can mix reaction wheels and thrusters or use either by themselves for attitude control.

RWATorque

This GUI shows the current command and allows you to control the simulation.

CommandGUI

The Figure GUI lists all figures generated by the simulation. It makes it easy to find plots when you have many, as you do in the attitude simulation.

figui

The Telemetry GUI gives you telemetry from the ACS system. You can easily add more data to the telemetry GUI which can have multiple pages.

Telemetry

This figure shows solar sail pointing during simulations.

SailPlot

The following figure shows the spacecraft with its solar sail deployed. This is built in the CAD script using the  Spacecraft Control Toolbox CAD functions. The sail is 83 meters square.

NEAScoutCADWithSail

The sail is huge but the core spacecraft would sit comfortably on your desk.

If you want more information about our products or our customization services you can email us directly by clicking  Mission Simulation Tools.

SolidWorks Interface in SCT 2015.1

Version 2015.1 will have a new DXF file format exporter to export CAD models built in the Spacecraft Control Toolbox into SolidWorks. The following figure shows the Lunar Lander model in the Spacecraft Control Toolbox CAD window.

LunarLander

Exporting requires just two lines of code:

g = BuildCADModel( 'get model' );
ExportDXF(g,'LunarLander');

Rodger Stephens of Prism Engineering provided SolidWorks models from the DXF file. The file opened in SolidWorks with 7 parts creating an assembly called LunarLander-1.

SolidWorks1

Each part contains planes, sketches, and surfaces.

SolidWorks2

The Spacecraft Control Toolbox has always had DXF import capability but now it can export in a format that is supported by most CAD packages. This will speed the process of going from conceptual designs in the Spacecraft Control Toolbox to detailed designs in SolidWorks and other CAD packages.

Heading to the Moon

We have transitioned our lunar lander work from the Spacecraft Control Toolbox to VisualCommander. Here is a simulation of the lander heading to the moon on the elliptical transfer orbit designed in our Landing on the Moon blog post.

Lunar Transfer

The model was discussed in our Moon Lander Design blog post. We exported it from the Spacecraft Control Toolbox as a Wavefront obj file. The textures were applied by Amazing3D Graphics. Amazing 3D Graphics builds very high quality models with low polygon counts that are ideal for simulation and games.

The attitude control system is our Precision ACS system. In the next few weeks we’ll be adding software to perform mid-course corrections, lunar orbit insertion and lunar landing. Say tuned!

Why Use Princeton Satellite Systems’ MATLAB Toolboxes?

Almost all aerospace organizations have extensive libraries of software for simulation, design and analysis. Why then should they use our MATLAB toolboxes?

I’ve been working in the aerospace business since 1979. My experience includes:

  1. The Space Shuttle Orbiter Dynamics Analysis
  2. The GPS IIR control system design
  3. The Inmarsat 3 control system design
  4. The GGS Polar Platform control system design
  5. The Mars Observer delta-V control system
  6. The Indostar-1 control system
  7. The ATDRS momentum management system
  8. The PRISMA formation flying safe mode guidance

Continue reading

Brand New Free SCT Textbook Companion App for MATLAB

We are happy to announce the release of our free Textbook Companion App for MATLAB (2012b or later).  Based on four Chapter 2 walk through tutorials, the goal is to design a geostationary spacecraft, maintaining an exact orbital position, delivering a -126 dB in the Ku band, and 7 year lifetime.

app_cover

The GUI allows us to look at the results of various gravity models, summing various types of disturbances caused by the sun-angle, a basic geo-synchronous orbit simulation, and then a full simulation that incorporates the orbit, disturbances, and Control and Link parameters. app_results

The app is available on the textbook support page: http://support.psatellite.com/sct/theory_textbook.php.

 

Move it or lose it!

Space is silent. No air, no sound. This must have seemed strange on February 10, 2009, when the satellites “Kosmos-2251” and “Iridium 33” collided, shattering the spacecraft into more than 2,000 pieces of debris. Now, each of these pieces presents a new risk of collision to our satellites in low Earth orbit.

An example collision avoidance scenario between two close-orbiting satellites.

An example collision avoidance scenario between two close-orbiting satellites.

The potential to collide with other satellites or debris is a real and growing concern. As a result, collision detection and avoidance are becoming a critical aspect of satellite operations.

We have worked on new collision avoidance algorithms and strategies for several different projects, including the Prisma formation flying mission which was launched in 2010.

Some of our work in this area was just published in the Journal of Aerospace Information Systems. The paper is “Avoidance Maneuver Planning Incorporating Station-Keeping Constraints and Automatic Relaxation”. You can find it here: http://arc.aiaa.org/toc/jais/10/6

The paper discusses different ways to model the time-varying avoidance region that represents the predicted path of another satellite, and methods for computing minimum-fuel maneuvers that satisfy both the avoidance constraints and station-keeping constraints for the mission. The details may be complex, but the message is simple: “Move it or lose it!”

Installing Eclipse Communications Framework on Indigo

I was researching for an XMPP Eclipse plug-in that I can reuse from one of our RCP application. From my past experience of working with Jabber, I knew there are several XMPP libraries available. http://www.igniterealtime.org/projects/smack/ seemed like a good choice. It has good API and examples. But what I really wanted was an Eclipse plug-in that I can just drop in and reuse as is. Eclipse has plug-ins for just about anything. So there must be one for this too.

That’s when I came as Eclipse Communications Framework.

It seemed like it probably has what I needed at the moment.

Eclipse, especially RCP development, is a maze. That universe is not easy to navigate unless you know something about source bundles and are comfortable with navigating the source bundles.  ECF is no exception. The last modification date on documentation for ECF says: “UNDER CONSTRUCTION 6/17/07”. Not very encouraging.

The first thing is to install ECF onto my Indigo installation. I am sure the steps are similar for later versions too but you have to find that one by yourself and let me know…

Like most plug-ins either you can install it using a zip bundle or from Help—>Install New Software… I generally prefer the later approach.

Install ECF

Follow the usual steps on installation. It will ask you to restart your Eclipse.

Once your Eclipse comes back again. Window–>Open Perspective->Other…, you should see Communications perspective listed there.

You should see two new items on your toolbar, they look like this:

ecf_toolbar

One of them let’s you connect to various IM providers.

ECF comes with several views that you can also open from the usual, Window->Show View->Other..

ECF_views

They are pretty self-explanatory. The one that is of interest to me is the Contacts view.ECF_chatView

When you click on the “Connect to IM Provider” either on the main toolbar or the view toolbar, it will bring up the following provider selection dialog:

ECF_chat_providers

I have only tried XMPP. It will bring up this:

ECF_IMProviders

Enter your credentials and it will bring up your contacts.  The UI is self-explanatory.

Now I need to figure out how to use this plug-in from my RCP application but that should be simple. That’s for another post.

ECF also talks about this really cool feature called DocShare that I want to explore some day to see if I can use it to share our custom views across multiple users.