Hot answers tagged

7

There are several ways to do this. The easiest and most straightforward is to break it into two sets by including velocity as a variable, and solve together. Instead of a single second order differential equation $$\ddot{\mathbf{r}} = -\frac{\mu}{r^3}\mathbf{r}$$ We can solve the following pair of first order differential equations in parallel $$\dot{\mathbf{...


6

First, you appear to have the following misunderstanding of the solar sail force vectors: Tilt it at 45 degrees to make the thrust tangential Thrust is not tangential at 45 degrees. In fact, a solar sail always has thrust perpendicular to the sail, and can thus not achieve thrust perfectly tangential to the Sun, since the cross section would then be zero. ...


6

For Python and TLE propagation using SGP4 one very handy option is https://rhodesmill.org/skyfield/ As you probably already know a TLE is a strange animal. It does not really contain proper orbital elements, but instead is engineered with one purpose; to be fed into SGP4 so that that will generate reasonable position information for at least a few days ...


5

As $\Delta v$ is just change in velocity, we can just integrate the norm of the acceleration function over time: $$\Delta v = \int|\mathbf{a}(t)| dt$$ You're out of luck getting a closed form of that integral though. As far as analytical solutions goes, we can note that at $t = \frac{\pi}{2}$, all of $a_x$, $a_y$ and $a_z$ are maxed out, and hence $\Delta v &...


5

Looks like this was an issue that was fixed and closed recently so try updating your copy of Skyfield to at least version 1.31.


4

I am not familiar with GMAT, but there is another route to solve this challenge using an extensively validated open-source solution. You can use the Orekit Astrodynamics library to build one Moon-centered and one Earth-centered orbit. Orekit has the ability to compute what is known as "Intersatellite visibility" (in STK as Access Times), which is ...


4

So after help from @uhoh, digging into this post and the discussion here, I managed to produce this minimal working example. Comments appreciated. from skyfield.api import Loader, EarthSatellite from skyfield.api import Topos, load from skyfield.timelib import Time import skyfield.functions as sf from sklearn import preprocessing import numpy as np import ...


4

Here's a partial answer until you add more information as requested in comments thanks to the numerical imprecision of Python I don't think you are anywhere near the limit of Python's floats. Instead let's remember that Keplerian orbits are theoretical approximations only. The biggest deviations come from Earth's equatorial oblateness as expressed by $J_2$ ...


4

For an instantaneous delta V, you definitely want to have the integrator stop exactly at the point in time where the change in velocity is to be applied. Dynamic step sized integrators stop where they want to stop. You'll need to force the issue and make the integrator stop at the desired point in time. You can specify a step size that makes a multistep ...


4

This answer doesn't talk about how to do it Python at all: rather how to deal with the rotation. I think once you can do that then turning the maths into Python is simple. Initially I'll assume that you are computing positions in terms of three orthogonal axes, and the positions look like $(x, y, z)$, and you're just projecting these down onto the $(x, y)$ ...


4

Start with answers to How can I plot a satellite's orbit in 3D from a TLE using Python and Skyfield? Plotting in 3D makes my head hurt too, but for some reason I like it when my head hurts. If you like you can paste python into your question; blocks of text that are indented by 4 spaces appear as a "code block". You can have a look at the 3d plotting in ...


3

Here's an example using a "soft" normalized Gaussian bump for the impulse. $$ \frac{1}{\sigma_1 \sqrt{2 \pi}} \exp\left(-\frac{1}{2}\left(\frac{t-t_0}{\sigma_1} \right)^2 \right) \mathbf{a_{bump}} $$ You can make it quite short, but even a short ramp up and down gives the integrator a chance to notice that things are changing and to reduce its internal ...


3

The required equations and much more are contained in the GPS Interface Control Document (IS-GPS-200L Table 20-IV. Broadcast Navigation User Equations), available on the GPS Website: https://www.gps.gov/technical/icwg/ This is the source of the equations given above by cy8berpunk


2

The basic approach is to make a long list of times, compute positions and observing angles at each one, and check whether line of sight (LOS) is obscured by anything. Do it at, say, 5 minute intervals, and then for any interval during which the LOS changed state, repeat the procedure using 5 second intervals. This won't catch an outage shorter that happens ...


2

I originally posted this answer here. This is a figure that I have from a class assignment from a few years back. While definitely not a practical trajectory, it shows the characteristics of how to transfer from an elliptical to a circular orbit. This solution was computed using indirect optimization. This problem assumed constant thrust magnitude (so the ...


1

Not sure exactly what you want as the origin and what corrections for aberrations are wanted and whether you want Mercury itself or its barycenter but there didn't appear to be much/any difference in this case (no Mercurian moons...) but the following code defines a mapping for both and also for Parker Solar Probe (PSP) to the correct HORIZONS id. You can ...


Only top voted, non community-wiki answers of a minimum length are eligible