aerospaceresearch / orbitdeterminator

determination of satellite orbits and more
MIT License
181 stars 113 forks source link

Is there a feature to estimate forces ? #161

Closed zeryabmoussaoui closed 5 years ago

zeryabmoussaoui commented 5 years ago

Hello

I just discovered orbit-determination and it's awesome !

I'm wondering if there is a feature to estimate forces on a given satellite , i looked in the docs with no success.

Thanks a lot.

krishna-birla commented 5 years ago

The current version of OrbitDeterminator does not deal with orbital maneuvers, in fact in a way, it tries to ignore it. Let me explain why I say so. The input for the tool is a set of Cartesian/spherical coordinates which need not be contiguous in time but you may expect it to be chronological. These are observational inputs, so they have various errors. Hence we apply curve fitting on the data before orbit determination. Think of it as local regression. Here is the catch: to detect orbital maneuvers, we need to find sudden changes in the slope of the curve, or abrupt changes in curvature. In other words, find out the points where the curve is non differentiable. But the curve fitting regression algorithm, by definition, tries to make the input data into an everywhere continuous and differentiable curve, hence losing the orbital maneuver information (maybe not completely). What you end up with, is a set of Keplerian elements that is, without the loss of generality, somewhat an average of the ellipses before and after the maneuver. This last statement is a mathematical over approximation the actual result will depend on how the Kalman filter behaves. Things become more complex if multiple maneuvers are present in the input data. This will be a nice topic to research on.

vidhanarya commented 5 years ago

As @krishna-birla mentioned we don't have a feature to measure force. If you want to measure the force, what you can do is calculate the acceleration (force per unit mass) with 2 body approximation i.e only earth and satellite and use gravitational acceleration at that point on the ellipse and multiply this acceleration with the mass of the satellite (If known). In short what you'll need to calculate the force or acceleration is:

  1. Point where acceleration is needed
  2. Mass of satellite to convert acceleration to force You can define a function for the same in main.py of your copy of the code.
zeryabmoussaoui commented 5 years ago

Thanks for your explantions, i take more time to read the code and i understand that you assume only gravitational force from earth (as a consequence the Ellipsoid fitting). I will consider you proposal , thanks again.