Hot answers tagged

34

In 2015, the last original Voyager engineer still on the project, retired. NASA specified that his replacement would have to know FORTRAN. The software was updated regularly after launch: The last true software overhaul was in 1990, after the 1989 Neptune encounter and at the beginning of the interstellar mission. "The flight software was basically ...


16

With the exception of model rockets made of paper, wood, or breakable plastic, that are passively stabilized, that have low thrust and low delta V, and that do not have guidance software, launch vehicles fall under ITAR regulations. The regulations are now much more relaxed once the launch vehicle has achieved its goal and placed its payload into orbit. ...


13

Full disclaimer: I'm the author and main developer of poliastro. The most important step before doing anything is somehow retrieving the positions and velocities of the planets of the Solar System. Astropy, one of the core dependencies of poliastro, ships medium-precision approximate models described in Simon et al "Numerical expressions for precession ...


13

The Voyager spacecraft are not reprogrammed anymore, so the language in which they are programmed is largely irrelevant. The uplink is only 16 bits/second, just enough to send (simple) commands. How these commands are generated is irrelevant to the spacecraft. Any language that can generate a sequence of bits theoretically suffices. This pdf document ...


11

TL; DR: Trajectory optimization for continuous thrust is difficult and this field is very active in research. 2021 clarifications: Methodology For the least amount of fuel, the best is the thrust the least amount of time as possible and only when it's extremely efficient ($\eta \geq 0.98$). But that also implies that it will take an incredibly long amount ...


10

I didn't work on Voyager, but can tell you that deep-space missions tend to retain the original ground hardware, software, language, and build environment, both for continuity/safety as well as budget reasons. There may be little or no funding to continue the mission; it may even fall to outright volunteers. It's amazing and sad to me how much we depend on ...


9

First: the main problem with your technique of subtracting the two positions is that it does not account for light-time travel. In the case of the Moon observation that you set up in your code, the error is only about 38 km, which might be well within your tolerances. The way to ask for a relative position that is properly light-time backdated is through the ...


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

I would highly recommend NASA Goddard's GMAT (General Mission Analysis Tool). It is quite user friendly, has a number of tutorials, and has been used in spacecraft operations.


6

This is a problem that has plagued groups of people very knowledgeable about orbital dynamics but who learned using different textbooks: there are two different definitions of "flight path angle"!! In addition to $\gamma$, the angle between the tangential direction and the velocity vector, there is $\beta$, the angle between the radial direction and the ...


6

One thing that may be tripping you up is that the d term in the gravitational formula is the distance between the centers of mass of the objects, not the altitude above Earth's surface. The other thing to keep an eye on is your units. The big G gravitational constant is ~6.67 x 10-11 m3 kg-1 s-2; if you're using that value, make sure you're consistently ...


6

callhorizons is depricated now and refers to the python library astroquery which now seems to be the way to go. astroquery (GitHub, readthedocs) is "an astropy affiliated package that contains a collection of tools to access online Astronomical data. Each web service has its own sub-package.", where making Horizons queries is just one of many options. It's ...


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 ...


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. ...


5

You can find a C++ method contained in the source code of Andrew Holme homemade GPS receiver project. The method is called GetXYZ and is the EPHEM (ephemeris) namespace and looks as the following: void EPHEM::GetXYZ(double *x, double *y, double *z, double t) { // Get satellite position at time t // Time from ephemeris reference epoch double t_k = ...


5

Disclaimer: I'm the author and lead developer of poliastro. Happy to see many others are recommending it, though! :) I also work for Satellogic, the company that open sourced orbit-predictor. I have personal experience with two libraries: poliastro and orbit-predictor (see disclaimers above). poliastro provides a generic framework for initial orbit ...


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 used the paper Wavelength dependency of the Solar limb darkening for solar limb darkening data. It uses the following model for the normalized brightness distribution across the disk of the Sun: $$ I(\mu)=1-u(1-\mu^\alpha) $$ Here, $\mu$ is the normalized distance from the limb; when far from the Sun, it can be expressed in terms of the normalized ...


4

The planet calculator lists a J2 of $0.001960454$ for Mars, higher than the Earth's $0.001082627$. That makes sense, as Mars has a smaller mass, but still approximately the same rotation rate. That means achieving a sun-synchronous around Mars is slightly easier than around Earth. However, MOM is not in such an orbit.


4

Change the "Table Settings". You want to select reference plane: Earth mean equator and equinox of reference epoch reference system: ICRF/J2000.0


4

Your variable root is of type IAgStkObjectRoot. If you search the Programming Interface Help, there are five save related methods for this type. These include Save() and SaveAs() So the easiest implementation would be: root.Save() which will save the scenario in the Documents\STK folder. If you want to control the specific location to save to you can try:...


4

Why is acceleration of the engines should not be defined as the current acceleration? alt_burn is not an acceleration. It is, I think, the altitude to start the suicide burn. I don't know why the other poster called it an acceleration. If part of an answer confuses you, it's usually a good idea to ask for clarification from the person who gave you the ...


4

Check out PoliAstro by Juan! It's got great visualisation tools in addition to its propagation. Plyades too, is a library for orbit propagation with visualisation. I have heard that there is a cohesive effort to merge Plyades, PoliAstro and other orbital mechanics Python software (the Python Astrodynamics Project). I have also heard of, but not used, Orekit ...


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 ...


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

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

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

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

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$ ...


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