Solar Radiation Pressure

Top  Previous  Next

In space, there is another very small force that we don't really think about but definitely can make a difference. This perturbation is called "Solar Radiation Pressure" or "SRP" for short. SRP revolves around the idea that electromagnetic waves are massless, but exhibit mass-like properties. The photons in light emitted from the Sun move at the speed of light and have momentum. Because they have momentum, when they hit other objects, they transfer momentum to the that object, giving it a boost in velocity.


However, the momentum these photons carry is extremely small. Thus, the perturbing force isn't really observed in LEO spacecraft. The best time to observe this perturbation is when a spacecraft is big, light, and moving relatively slow. A basic formula for calculating the force due to SRP is:


SRP Formula



Observing SRP Perturbation



We have a lightweight spacecraft orbiting in a highly elliptical orbit (HEO). Propagate the spacecraft over 30 days with the effects of SRP, along with a "control" spacecraft that is identical to the first spacecraft, but does not have SRP modeled in its propagation.


Open a new Mission Plan and save it as "SRPPerturbation.MissionPlan"


Adding in Spacecraft


Create a new Spacecraft with the following Keplerian elements:

oA: 42,110 km

oE: 0.829

oI: 0 deg

oRAAN: 0 deg

oW: 180 deg

oTA: 0 deg

Go into "Physical Properties" on the left-hand side

Change the SRP Area to 10 m^2

Change the mass to 100 kg



Physical Properties Settings in the Spacecraft Editor


Go into "Propagator" on the left-hand side

Change the step mode to "Variable Step Size"

Go into "Force Model" on the left-hand side

Uncheck the box that says "Moon" under "Available Bodies" (this ensures we don't encounter unwanted perturbations)

Check the box that says "Solar Radiation Pressure"



Solar Radiation Pressure Checkbox


Click "Ok" to close the editor


Right-click "Spacecraft1" and click "Clone"

Double-click the clone to open the editor

Rename the Spacecraft to "Spacecraft2"

Go into "Visualization" on the left-hand side

Change the tail color to green

Go into "Force Model" on the left-hand side

Uncheck the "Solar Radiation Pressure" box

Click "Ok" to close the editor


Adding the ViewWindow


Create a ViewWindow through the Object Browser

Double Click "ViewWindow1"

Check "Spacecraft1" and "Spacecraft2" in the Available Objects list

Change the history mode to "Unlimited" for each Spacecraft

Go to the "Viewpoints" section on the left-hand side

On the default view, change the Reference Frame to "Inertial"

Press "Ok" to close the ViewWindow editor


Building the Mission Sequence


Drag and drop a "While...End" loop onto the Mission Sequence

Change the while loop argument to "(Spacecraft1.ElapsedTime < TIMESPAN(30 days))"

Drag and drop a FreeForm script editor inside the while loop

Rename this FreeForm to "Step, Plot, and Update"


In this FreeForm, we will step each Spacecraft with an epoch sync, plot the distance between the Spacecraft, and update the view window. To do this, we write:


// Steps each spacecraft with an epoch sync

Step Spacecraft1;

Step Spacecraft2 to (Spacecraft2.Epoch == Spacecraft1.Epoch);


// Plots the distance between each spacecraft

Plot Spacecraft1.ElapsedTime, Spacecraft1.RadialSeparation(Spacecraft2);


// Updates the ViewWindow

Update ViewWindow1;


Your Mission Sequence should look something like this:



Mission Sequence Example


Save and run your Mission Plan and try to answer the following questions:


How far did the SRP satellite get away from the "control" satellite?


Go back into the Mission Sequence. To check to see if SRP was the main perturbing factor, uncheck the SRP box for Spacecraft1 in the force model. Run the mission again. What is the distance between Spacecraft now?



See Also

Real World Modeling

Previous Topic: Atmospheric Modeling