I'm using GMAT to analyze the orbits. There is a Spherical model for Solar Radiation Pressure. Which equation does GMAT use to calculate it?

I've already searched in the documentation, however, there is no information/equations.

I wrote a program to calculate the solar pressure, accordingly to Vallado and taking the same values for the variables as in GMAT (area, reflectivity, mass). Due to the slightly different result, I suppose, GMAT uses a different algorithm.

$$ \huge\overset{\rightharpoonup}{F}_{srp}=-p_{srp}c_R A_\bigodot \frac{\overset{\rightharpoonup}{r}_{\bigoplus\bigodot}}{\left|\overset{\rightharpoonup}{r}_{\bigoplus\bigodot}\right|} $$

The code to calculate the acceleration (Julia language):

function solar_pressure(y,date)
  st_bar_sun = state(spk, 0, 10, date) 
  st_bar_moon_earth = state(spk, 0, 3, date) 
  st_bar_me_earth = state(spk, 3, 399, date)
  sun_cord  = (st_bar_sun - (st_bar_moon_earth + st_bar_me_earth))*1000
  r_sat_sun = [sun_cord[1] - y[1], sun_cord[2] - y[2], sun_cord[3] - y[3]]
  r_sat_sun_scalar = sqrt(r_sat_sun[1]^2 + r_sat_sun[2]^2 + r_sat_sun[3]^2)

  return -(r_sat_sun/r_sat_sun_scalar)*p_srp*C_r*A_sr/sat_mass
end
up vote 3 down vote accepted

You can find a ton of information by looking in the "General Mission Analysis Tool (GMAT) Mathematical Specifications" (located at <GMAT installation directory>\<version>\docs\GMATMathSpec.pdf, or find the latest version here)

You can look at section "4.2.4 Solar Radiation Pressure", here is the R2018a version:

4.2.4 Solar Radiation Pressure

$$\mathbf{a}_s = -P_{SR}\displaystyle\frac{C_R > A}{m_s}\hat{\mathbf{s}}$$

where $\hat{\mathbf{s}}$ is a unitized vector pointing from the spacecraft to the sun

$$\mathbf{s} = \mathbf{r}_s - \mathbf{r}$$

where $\mathbf{r}_s$ is the Sun's position vector and $\mathbf{r}$ is the spacecrafts position vector.

$$\mathbf{A}_{s} = \mathbf{D}_{s} = \mathbf{0}_{3\times3}$$

$$\mathbf{B}_{s} = \mathbf{I}_{3\times3}$$

$$\mathbf{C}_{s} = P_{SR}\displaystyle\frac{ C_R A > }{m_s}\left( \frac{1}{s^3}\mathbf{I}_3 - 3 \frac{ \mathbf{s}\mathbf{s}^T}{s^5}\right)$$

where

$$s = \| \mathbf{s} \|$$

Additionally in "Table 4.1: Force Models Available in GMAT" they note the following equation for Solar Radiation Pressure:

$$ \frac{ P_{SR}C_R A_{\odot} }{m_s}\hat{\mathbf{r}}_{s\odot} $$

In order to find $P_{SR}$ we need to look at src/base/forcemodel/SolarRadiationPressure.cpp

157:   flux                (1367.0),                  // W/m^2, IERS 1996
158:   fluxPressure        (flux / GmatPhysicalConstants::c),   // converted to N/m^2

and TAT-C/cpp/GMATsrc/util/GmatConstants.hpp

114:   const Real c                                = 299792458.0;  // m/s

We can then caculate $P_{SR}$ as:

$$ \frac{1367.0 \frac{W}{m^2}}{299792458.0 \frac{m}{s}} = 4.5598*10^-6 \frac{N}{m^2}$$

  • Thank you! That's the same equation as I used, from Vallado. However, can't obtain the same result. For reflectivity, area and mass I got the same values, but for Psr I got the value from Vallado. What value does GMAT use for Psr? – Leeloo Oct 10 at 21:49
  • 1
    @Leeloo I updated my answer to include GMATs formula for $P_{SR}$ – Mark Omo Oct 10 at 22:44
  • What are As, Bs and Cs? Do I need them to calculate the acceleration? – Leeloo Oct 11 at 8:38
  • I added the code to the question. I can't get similar result, but use the same equation and values.. However, for Newtonian gravity (sun and moon) the result is OK! – Leeloo Oct 11 at 9:42
  • @Leeloo your equation looks fine debugging your specific implementation would really be a different question, I don't have much experience with Julia. Your new question should at a minimum show your code, your actual output and your expected output (and how you came to expect that output) – Mark Omo Oct 12 at 21:13

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.