Hello everyone, I want to use the XYZ position and speed information in 10min satellite navigation GPS data as input (WGS84 coordinate system), to correct the existing orbit, determine the orbit or forecast the orbit for ground station tracking, I am a beginner in orbit, here I have a few questions to consult you: 1. I refer to other programs, the process is to modify the position velocity input into the position velocity in the inertial frame, and then generate the chronoKepler roots, but the 10min data corresponds to a lot of chronoKepler roots, which is used for the ground station to track which point I should take. 2.Orekit how to achieve the first point above, I looked at the Orebit tutorial, there is a case SunEarthMultipleShooter feel can be achieved, but I am not sure, because he is corrected inside is a point.
Hi,
I donât know exactly what youâre going to do through your post.
If you want to âcorrect the existing orbitâ,I think maybe the examples in âorg.orekit.tutorials.estimationâ are more appropriate.
If you want to âforecast the orbit for ground station trackingâ,âorg.orekit.tutorials.propagationâ is more suitable?
thank you i have try it.
But if your orbit is not âclosedâ.I guess we can learn from the examples of âorg.orekit.tutorials.propagation.cr3bpâ.
âcr3bpâ means the âCircular Restricted 3 Body Problemâ ?(like the science fiction writer CIXIN LIUâs âThe Three-Body Problemâ.So cool ,hmm?)
What I actually aim to do is to employ the XYZ position and velocity information from the on-board navigation for orbit determination. For instance, conducting orbit determination using 10 minutes of GPS navigation data or using such data as input for orbit prediction. Nevertheless, I observe that in othersâ programs, these data are corrected. The specific approaches and correction contents remain unclear to me. However, they convert the corrected data into Keplerian elements and select one point for ground tracking. I am uncertain about the accuracy issue when choosing one point for orbit tracking. Is this the common practice for everyone? Additionally, I have little knowledge of what an unclosed orbit is. Is my 10-minute orbit considered unclosed?
An isolated kinetic system consisting of two moving point masses that exert a force on one mass
The other oneâoften referred to as the two-body problemâcan always be converted
into an equivalent monomer problem. Iâm also a beginner in orbital dynamics and my English is poor, so in my opinion that if the orbit is not a circle or ellipse centered on the Earth(like fly to the moon), it seems to be counted as an âunclosedâ orbit. I think the " Keplerian elements" you mentioned is just a way of describing an orbit, not a simple âone pointâ. The process of calculating and estimating an orbit through a series of points measured and recorded by ground stations is known as âorbit determinationâ. Calculating the time window for ground station tracking or getting prediction from a defined orbit is often referred to as âorbital propagateâ.
If you intend to use in-flight data for prediction, you should most certainly use at least some non-Keplerian modeling.
Letâs first start by recalling certain terms for better understanding. You can skip a few paragraphs down if you already know that. In space flight dynamics, we unfortunately use several confusing terms, using the same term for different concepts (for example Keplerian which has several meanings) or using the different terms for ultimately similar concepts (we call some angles anomalies, or arguments, or ascensions, and even a few angles are called times despite they are really angles). In the case of Keplerian, the confusion lies between the concept of dynamics and the concept of state vector representation.
Keplerian dynamics is what @houmingyang explained: a very simple force model restricted to central attraction depending only on the square of the distance to attraction center considered to be a single point. This simplified dynamics model leads to conical orbits (circle, ellipse, parabola, hyperbola, most certainly ellipse in your case). This is the first step in understanding motion, it has the advantage of providing a model that can be easily grasped by human mind (fixed orbital plane, fixed sized ellipse within the plane, only one time-dependent parameter: the anomaly). It has the drawback of being far from reality as soon as you use it for long term prediction. You can only approximate the real motion with Keplerian motion on very short arcs.
Keplerian representation of the state vector on the other hand is simply a change of variables, it allows to represent the state at one point in time using semi-major axis, eccentricity, etc⌠instead of Cartesian coordinates X, Y, Z, etc⌠This change of variables can be seen one way with Keplerian parameters being a 6-dimensional function of Cartesian parameters (a, e, i, \omega, \Omega, M) = f_k(X, Y, Z, \dot{X}, \dot{Y}, \dot{Z}) or the other way round (X, Y, Z, \dot{X}, \dot{Y}, \dot{Z}) = f_C(a, e, i, \omega, \Omega, M). When used alongside Keplerian dynamics, it has the property that all parameters except anomaly are constants, only anomaly is time-dependent, and even better, when you use the mean anomaly it is linear with respect to time (and you can easily convert to other anomalies by solving Keplerâs equation). But you can also use Keplerian representation with non-Keplerian dynamics, including very complex ones (3rd body, rich gravity field, radiation pressure, atmospheric drag, solid tides, ocean tides, re-diffused radiation pressure, infrared pressure, maneuvers, relativityâŚ). You just have to change your point of view and decide, by convention, that Keplerian elements are now defined by the equation (a, e, i, \omega, \Omega, M) = f_k(X, Y, Z, \dot{X}, \dot{Y}, \dot{Z}). As the underlying dynamics include forces in addition to the main central attraction (which nevertheless remains the most important force), then when you evaluate the defining function f_k, you end up with all Keplerian parameters (a, e, i, \omega, \Omega, M) becoming time-dependent: the orbit slowly changes and deforms as time passes. As the additional forces are small (but not negligible), the parameters that were constant in the Keplerian dynamics case evolve only slowly, or with small amplitudes, but they do evolve. This means that using Keplerian parameters even in non-Keplerian dynamics is only perfect at one point: the point where you computed them by applying function f_k. If you use these Keplerian parameters with a time shift (just changing the anomaly), you will still be good if the time shift is small enough, and then errors will build up as time shift increases and at the end your real satellite will be quite far from what Keplerian motion predicted. The Keplerian parameters computed this way are called osculating parameters, they correspond to the elliptical orbit that is tangential to the real trajectory. It is close enough on short terms, but can get wrong quickly.
So back to your problem, fitting GPS data and using the fit to predict orbit so a ground station can anticipate where the satellite will be later on and track it.
Depending on the prediction time (a few minutes, a few hours, a few daysâŚ) and the needed accuracy (depends on the width of the antenna pattern and signal acquisition process), you will probably need to include at least some non-Keplerian dynamics effects. The first effect is J_2 zonal term of the gravity field (errors build up in kilometers in just a few hours), but other effects may be required. As adding accurate models in Orekit is often just a matter of picking up a force model and registering it to a numerical propagator builder when doing orbit determination, we generally just end up adding a first set of models like gravity field up to some degree and order (often 120 for LEO, 20 for MEO and 12 for GEO), 3rd body, drag in LEO, radiation pressure and perhaps tides. Then you are good to sub-meter accuracy (except for drag, which is really difficult to predict as atmosphere changes constantly). So you set up an orbit determination process with the forces you selected, and you feed it with your measurement data (in your case GPS Cartesian points, but could also be GNSS inter-satellite code/phase, or any other types of measurements). The process with adjust the orbital parameters at one point of the trajectory (often the start of the fitting range, sometimes the mid-point, but can be any point you choose), and eventually will adjust some of the dynamical parameters of the force models (typically drag coefficients), until it find a set orbital parameters/force model parameters that fits the measurements the best. And here is the important part: the result of this adjustment depends on the dynamics (i.e. force models) you chose, and the prediction should use the same dynamics in order to remain consistent. What this means is that just going back and forth between Cartesian coordinates, fitting, extracting one set of Keplerian parameters, and then throwing everything away and doing the prediction based only on this single set of Keplerian parameters would not work: you would be losing a lot of information and you would use a prediction model that would be inconsistent with your fitting model.
So what I am saying here is that you should not just pick one point, convert it to Keplerian and propagate these Keplerian parameters to get tracking data that will be available in the future. You should do both your fitting and the prediction with a reasonable dynamical model.
If you use Orekit orbit determination, you will notice that the result of the orbit determination is not just a set of orbital parameters (which by the way could be arbitrarily selected among Keplerian, Cartesian, circular or equinoctial parameters); it is a complete propagator, already configured for prediction. This was done for exactly the purpose you want: use some real data that was gathered up to some time, then fit this trajectory on the recent past, then propagate it for the near future.
I donât know how your ground station is driven, but if possible, try to feed it with something that has been computed with a full dynamical model. Some stations can be fed with topocentric data ephemeris (azimuth/elevation/distance and perhaps Doppler) computed with respect to the ground station itself, some can be fed with global Cartesian coordinates ephemeris in either Earth or inertial frame and will compute the tracking data as they know their own coordinates, some will ask for things like TLE (I hate that) and that would require quite a bit of conversion.
So this was a tad long, sorry for that. Unfortunately, as you are telling us you are a beginner in orbit and as you start by asking a question about orbit determination that is already quite an advanced concept, there are a lot of things to explain. Going from beginner to expert mode in one sweep is hard. You may want to look at the orbit determination tutorial, but it is hard. If you go this route, start at the tutorials. There are several different orbit determination tutorials, and they share parts of their code. You may want to start from the numerical orbit determination top level part and dive down, but we know it is difficult. Another entry point could be @yzokras orbit determination example that is aso referenced from the main tutorials page.
Thank you very much for your patience. Iâll get to know what you said first, and if I have any questions, Iâll ask them under this post.
Thank you very much for your patience.
Hi, everyone!
Best wishes and Happy New Year!
@luc Thank you so much for your long reply! Thatâs why I often promote this forum(by telling my colleagues and my family),even though Iâm not a big influencer financially or technologically,cause this forum has really raised me up and warmed my heart ,even made me feel that there is hope for humanity.
There are so much nice and good teachers and masters, which makes us know that there are always some unique people in the world who are striving to move forward step by step for the inheritance and progress of human civilization. Itâs like an Chinese saying: the great man of chivalry is for the people. I donât know how to translate to express the emotion in that sentence. The so-called masters have far-sightedness and compassion for human civilization. Perhaps this is a better way to show my respect for these masters, you are all like Dr. Hari Seldon in the legendary Sci-fic novel who âLive less than 100 years long, often have a thousand years of worriesâ(a sentence form a Han Dynasty poem recorded as the work of an anonymous poet. The poet whose name have been lost was gone, but the sentence is older than 1800 years).
The beautiful verses and classic formulas will live on forever!
Cheers!