Spacecraft CAD Design in the Spacecraft Control Toolbox

AutoDesk Inventor and SolidWorks are powerful software packages for the computer-aided design of spacecraft. Ultimately you need to use one of those packages for the mechanical design of your satellite, but what about the preliminary design phase when you are still determining what components you even need? The CAD software in the Spacecraft Control Toolbox can provide you with a valuable tool to do your conceptual layouts and early trade studies, and the same model can be used as the basis for disturbance analysis in later design phases.

A CAD model in SCT is built in a script which allows you to build your models algorithmically. You can call design functions, use for loops and revision-control your source code. For example, within the script you can do an eclipse analysis and compute the battery capacity. This number can generate the volume of your batteries which you can then use to size your spacecraft.

The function BuildCADModel provides the model-building interface. The CreateComponent function is used to generate the individual components using parameter pairs as arguments. Components are grouped into bodies to allow for rotation and articulation. A GUI displays your finished model and allows you to visualize it in 3D. You then store your finished models as mat-files. Our disturbance model uses every triangle in your model for disturbance analysis.

The example figure shows a solar sail design, with the spacecraft bus in the middle. BuildCADModel allows you to group components into subsystems as on the left-hand side, which can then be highlighted using transparency.


The figure below shows the BuildCADModel GUI which allows you to verify the body and component properties.BuildCADModel-Vehicle

There are many examples of spacecraft models in the SCT to help you get started, and a lengthy chapter in the User’s Guide discussing the finer points of component location, orientation, and physical properties such as drag and optical coefficients. Your CAD model essentially functions as a database for your entire spacecraft model!

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

Optical Navigation for Geosynchronous Transfer Orbits

Optical navigation, using the Earth’s chord width and angles between nadir and stars, is an alternative to GPS based navigation for autonomous spacecraft. The Optical Navigation System, developed under a NASA contract, is well suited for this application.

In the Spacecraft Control Toolbox, we provide an easy-to-use demo script in the 2014.1 release that shows you how to implement optical navigation. The system uses Unscented Kalman Filters (also known as sigma point filters) with non-linear dynamics and measurement models.

This demo uses our new UKF functions shown below:

ukf.t = t;
ukf = UKFPredict( ukf );
ukf = UKFUpdate( ukf );

ukf is a data structure that includes all filter information. Measurements are passed as data structures to UKFUpdate which have pointers to the measurement functions. In this way, any type of measurement can be used in the filter and introduced at any time.

The following plots show some results from the script. The first shows the orbit and the estimated orbit which are essentially the same.


The second shows the position errors. Of course, actual errors would depend on the accuracy of the sensors, particularly the Earth sensor. Great care needs to be taken when setting up the UKF parameters. As you can see, the largest errors are at perigee and if the UKF parameters are not set properly, the filter might think a hyperbolic orbit was a valid solution!


Check out our Spacecraft Control Toolbox page for more information on the 2014.1 release! More information about optical navigation can be found on our Deep Space Navigation page.

Simulating Magnetic Hysteresis Damping

CubeSats have caused a renewed interest in magnetic control of satellites, and passive hysteresis damping in particular. Modeling actual hysteresis rods on a satellite is not trivial, and generally requires empirical data on the properties of the rods selected. Our newest CubeSat simulation demonstrates damping using rods in LEO. A permanent magnet is modeled using a constant dipole moment, and we expect the satellite to align with the magnetic field and damp. We evaluate the results by plotting the angle between the dipole and the Earth’s magnetic field and the body rates.

First, let’s verify the magnetic hysteresis model in the toolbox using the bulk material properties in orbit. We use a dipole model of the Earth’s magnetic field. The nice hysteresis curves below confirms that we are computing the derivatives of the magnetic field correctly in the body frame, which requires careful accounting of rotating coordinates. Also we stay within the saturation limits which means our magnetic flux derivatives are correct too.

Hysteresis curves from simulating magnetic hysteresis in orbit

Hysteresis curves from simulating magnetic hysteresis in orbit

We will assume the rods are 1 mm radius and 95 mm length, with rods placed perpendicular to each other and the permanent magnet. Three rods are used per axis. The apparent rod parameters are taken from the literature. The actual rods will not reach saturation while in orbit, so we will see a minor loop.

Minor loops from damping rods

Minor loops from damping rods using apparent properties

The rods produce only a small amount of damping per orbit, so we have to run for many orbits or days to see significant damping – in some passive satellites, the total time allotted for stabilization is two months! In this case we test the rods’ ability to damp the torque induced by turning on a torque rod with a dipole of 1 AM2 and allowing the CubeSat to align itself with the magnetic field, starting from LVLH pointing.

Damping in LEO using hysteresis rods

Damping in LEO using hysteresis rods

Simulating the rods is time-intensive, with a timestep of about 4 seconds required – which makes a simulation of several days on orbit take several minutes of computation. Once performance of the rods has been verified, a simple damping factor can be substituted.

This new simulation along with the functions for hysteresis rod dynamics will be in the new version of our CubeSat Toolbox, due for release in June!


  1. F. Santoni and M. Zelli, “Passive magnetic attitude stabilization of the UNISAT-4 micro satellite”, Acta Astronautica,65 (2009) pp. 792-803
  2. J. Tellinen, “A Simple Scalar Model for Magnetic Hysteresis”, IEEE Transactions on Magnetics, Vol. 34, No. 4, July 1998
  3. T. Flatley and D. Henretty, “A Magnetic Hysteresis Model”, N95-27801 (NASA Technical Repoets Server), 1995

DFD for Europa Exploration


The Galileo moons of the Jovian system are of great interest for future space exploration due to the belief that three of the four of the largest moons (Europa, Ganymede, and Callisto) contain water (in liquid and/or ice form). So far the eight spacecraft that have visited the vicinity of Jupiter are Pioneer 10 and 11, Voyager 1 and 2, Ulysses, Galileo, Cassini, and most recently New Horizons. NASA has ambitions to send another probe to further study Europa.

At Princeton Satellite Systems, in collaboration with Dr. Samuel Cohen at the Princeton Plasma Physics Laboratory, we’ve been working on the Direct Fusion Drive (DFD) engine, an advanced technology for space propulsion and power generation. Using the DFD, we have simulated two potential missions to Europa, an orbiter mission and a lander mission. The simulations were completed in MATLAB using functions contained within our Spacecraft Control Toolbox.

Continue reading

6U CubeSat to Mars

We’ve been working on Asteroid Prospector, a 6U CubeSat to explore Near Earth Objects, for the past two years. It is quite a challenge to pack all the hardware into a 6U frame. Here is our latest design:



The nadir face has both an Optical Navigation System camera and a JPL designed robot arm. The arm is used to grapple the asteroid and get samples. The camera is used both for interplanetary navigation and close maneuvering near the asteroid.

Our fuel load only allows for one way missions but could be increased for sample return missions by adding another xenon tank, making it more of a 12U CubeSat. With that in mind, we wondered if we could do a Mars orbital mission with our 6U. It turns out it is possible! We would start in a GPS orbit, carried there by one of the many GPS launches. The spacecraft would spiral out of Earth orbit and perform a Hohmann transfer to Mars. Even though we are using a low-thrust ion engine, the burn duration is a small fraction of the Hohmann ellipse time making a Hohmann transfer a good approximation. We then spiral into Mars orbit for the science mission as seen in a VisualCommander simulation.


The low cost of the 6U mission makes it possible to send several spacecraft to Mars, each with its own instrument. This has the added benefit of reducing program risk as the loss of one spacecraft would not end the mission. Many challenges remain, including making the electronics sufficiently radiation hard for the interplanetary and Mars orbit environments. The lifetime of the mechanical components, such as reaction wheels, must also be long enough to last for the duration of the mission.

We’ll keep you posted in future blogs on our progress! Stay tuned!

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.


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:


Europa Report

Europa Report is a movie about a human mission to Europa, a moon of Jupiter, to explore the moon for signs of life. Europa has an oxygen atmosphere and a surface composed of water ice that has led to the hypothesis that there is an ocean under the ice.

Europa Report does a great job of being scientifically accurate. The spacecraft shown in the movie addresses the major issues that travelers would experience on a voyage to Jupiter. The crew section of the spacecraft is spun for artificial gravity and accommodations are made to deal with the high radiation environment around Jupiter.

Our Spacecraft Control Toolbox can be used to design the spacecraft and simulate every phase from Earth Orbit to Europa landing. We have a script for a powered Europa landing. Here are the results!


For more information about how you can design your space missions visit our Spacecraft Control Toolbox page!

IR Imaging with the Spacecraft Control Toolbox

Many spacecraft are incorporating cameras, both visible and IR, to image other nearby objects. These may be other satellites or space debris. This blog entry shows how you can simulate imaging with the Spacecraft Control Toolbox.

In this simulation a target 1U CubeSat is illuminated by several sources of radiant flux and imaged by a camera located on a chase vehicle. The CubeSat panels have different optical and thermal properties. An exploded view is shown below. The surface properties are for radiators (black), solar panels (blue) and gold foil (yellow).


The target is located in a circular orbit and the chase vehicle is in a similar but slightly eccentric orbit. A camera is mounted on the chase vehicle. The chase vehicle keeps its camera pointed at the target. Solar radiation, earth radiation, and earth albedo illuminate the target. The motion of the two vehicles is simulated for one revolution. The target spacecraft remains between approximately 75 m and 150 m from the chase vehicle.


As the target and chase vehicle move in their respective orbits, the change in temperature of the target CubeSat is simulated. Each of the 6 panels are composed of two triangles. The temperatures of the panels vary based on the thermal properties of each face and the orientation of the spacecraft. The orientation affects the incoming flux for each particular face.


Solar radiation is the dominant source over the course of the simulation but earth radiation and earth albedo also effect the total flux. The solar radiation, plotted in dark blue, clearly shows the times when the earth is blocking the line of sight from the spacecraft to the sun.


A photon detector model is assumed for the IR imaging device. The following flow chart describes the imager model.


The initial output observed by the imager is shown below. It should be noted that for the particular orbit and orientation initial conditions specified, the z component of the relative position is always equal to zero. This means that only the x and y panels of the cube will be visible throughout the simulation. It is possible to specify different initial conditions that would result in a z relative position, and in this case, up to three faces of the cube can be detected.


We have created a video that displays the imager results as a sequence.


PSS MATLAB Toolbox Tutorial Videos

Over the summer we worked on developing some videos to help customers get started using our MATLAB products. Our MIT intern, James Slonaker, did a fabulous job! Come check out our Toolbox Tutorial Videos on our YouTube Channel!

If you have any feedback or suggestions for future content, please contact us at