giant.ufo.dynamics¶
This module defines dynamics models to be used in an EKF for propagating the state and covariance of an estimated target.
Description¶
The dynamics specify how the target is expected to move in space given initial conditions. They are usually specified
as an ODE initial value problem and integrated numerically, although for simple cases a few closed for analytic
solutions exist. These models are generally used by the extended_kalman_filter
module in order to link
observations together and to propagate the state from one time to the next.
Use¶
This module defines 3 classes for defining Dynamics models. The first, Dynamics
is an abstract base class
that provides a template for creating a new dynamics model in GIANT.ufo. If you want to create your own custom model,
you should subclass this and implement/update the Dynamics.State
class describing the state vector for your
model, and the abstract methods defined by the abstract class. If you do this then you will be able to use your
dynamics model in the EKF (presuming your dynamics model works and describes what it going on).
Alternatively, the there are 2 basic dynamics models provided in this module which you can use directly or subclass and
extend with more features. The first SpiceGravityDynamics
implements a simple n-body problem dynamics model
assuming point mass gravity, using NAIF spice to query the n-body positions at each integration step. The second,
SolRadAndGravityDynamics
adds cannonball model solar radiation pressure to the simple n-body gravity model.
These 2 simple dynamics models are generally sufficient for most things you’ll be tracking in UFO and thus can be used
directly. They also serve as examples for implementing/extending your own dynamics models.
Classes
Dynamics classes are used to propagate state and covariance through time. |
|
This class adds spherical solar radiation pressure dynamics to the |
|
This class implements a simple N-Body gravity dynamics model using Spice as the source of the planet locations. |
Function
This simple function returns a length 3 numpy array of zeros. |