Physics
Solar & Earth radiation pressure
Attitude-dependent radiation force and moment on the same panel table the aerodynamics uses. It covers direct sunlight, Earth albedo and Earth infrared.
Source: cpp/src/srp/panel_srp.cpp; presets in python/arlamx_v2/sail_optics.py; switches under srp: in the physics YAML.
Solar pressure and geometry
- d comes from the Sun ephemeris: the Astronomical Almanac low-precision series (measured direction error ≤ 0.008° against astropy over one year), or CSPICE when linked. The Sun is re-evaluated every substep.
- Eclipse is cylindrical and binary: lit if r·ŝ ≥ 0 or the perpendicular distance is ≥ R_E. There is no penumbra.
- For each panel, \(\cos\theta=\hat n\cdot\hat s\) (ŝ points toward the Sun in body axes). Only faces with cos θ > 1e-12 contribute, so a two-sided membrane needs both faces in the panel table (the
.geommodels have them).
Optical plate law (default since v2.7)
c_a is the absorbed fraction, c_s the specularly reflected fraction and c_d the diffusely (Lambertian) reflected fraction (Montenbruck & Gill §3.4). The code renormalises the three to sum to 1. The normal component is what an SRP sail uses to raise or hold its orbit.
Presets (srp.optics)
| Name | c_a | c_s | c_d | Cannonball-equivalent C_r |
|---|---|---|---|---|
absorber | 1.00 | 0 | 0 | 1.0 |
specular | 0 | 1.00 | 0 | 2.0 |
lambert | 0 | 0 | 1.00 | 1.0 |
al_mylar (default) | 0.08 | 0.88 | 0.04 | 1.8 |
al_kapton | 0.12 | 0.80 | 0.08 | 1.7 |
black_kapton | 0.92 | 0 | 0.08 | 1.1 |
white_paint | 0.20 | 0.04 | 0.76 | 1.4 |
aged_sail | 0.35 | 0.40 | 0.25 | 1.5 |
cannonball_cr18 | (cannonball law) | 1.8 | ||
Cannonball law (srp.optical: false)
This is the V1.7 law. The force is along −ŝ only, with no lift component. It is kept for C_r = 1 classroom checks and for comparison with old campaigns (every pre-v2.7 campaign flew cannonball with no moment and no 1/d²).
Earth radiation (srp.earth: true)
- Both use the plate law with the source direction at nadir. IR uses the thermal partition
srp.ir(default c_a 0.85, c_s 0, c_d 0.15 [ASSUME]). Albedo uses the solar partition. - IR is on day and night; albedo only on the day side. Constants are zonal means (Knocke, Ries & Tapley 1988).
- (R_E/r)² is the view factor of a plate facing the Earth's centre. Tilted plates use the same point-source direction, which is an approximation for plates near edge-on to nadir.
SRP “flashes” (training stressor, not physics)
In variants v5+, the env draws 1–3 events per episode that multiply srp_scale by 2–6 for 3 steps, only above 450 km. They are there to make policies robust and are not a physical SRP model (real solar irradiance varies by about 0.1 %). Turn them off for physics studies by using a variant below v5 or by running the plant directly.
Configuration
| YAML | SimParams | Default (standard) |
|---|---|---|
srp.enabled | use_panel_srp | true (required key) |
srp.optical | srp_optical | true |
srp.optics | srp_ca, srp_cs, srp_cd | al_mylar |
srp.Cr | Cr | 1.8 (cannonball only) |
srp.earth | earth_rad | true |
srp.ir: {ca, cs, cd} | ir_ca, ir_cs, ir_cd | 0.85 / 0 / 0.15 |
| — | srp_scale / set_srp_scale | 1.0 (0–20) |
What is not modelled
- Thermal re-emission force. Absorbed power re-radiated from front and back faces with different emissivities produces a normal force \(\propto c_a\frac{\varepsilon_fB_f-\varepsilon_bB_b}{\varepsilon_f+\varepsilon_b}\) (McInnes 1999). For aluminised sail films (ε_f ≈ 0.03, ε_b ≈ 0.6) this is a few percent of the normal force, and it is included in the plan.
- Penumbra (≈ 8–10 s per LEO shadow crossing). A conical shadow model (Montenbruck & Gill §3.4.2) would remove the step discontinuity.
- Self-shadowing between panels, multiple reflections, wavelength-dependent optics, and ageing (UV/AO degradation of c_s).
- Per-panel materials. Each panel should carry its own (c_a, c_s, c_d), front and back, in both the solar and the IR band.
Validation
tests/srp/test_srp.py,test_srp_optical.py: 1 m² face-on C_r = 1 gives |F| = P_SR; a 90° plate gives 0; box symmetry.tests/physics/test_disturbances.py: moment = r × F (1 cm offset → 0.01 P), face-on hex mylar 5.692 µN, 1/d² series, IR pushes a nadir plate outward in eclipse, albedo day-side only.
References
- Montenbruck, O. & Gill, E. (2000). Satellite Orbits. Springer, §3.4.
- Vallado, D. A. (2013). Fundamentals of Astrodynamics and Applications, 4th ed., §8.6.4, Alg. 29.
- McInnes, C. R. (1999). Solar Sailing. Springer.
- Knocke, P. C., Ries, J. C. & Tapley, B. D. (1988). Earth radiation pressure effects on satellites. AIAA 88-4292.