CollisionMonAlg:

Path: FormationFlying/Collision

% Collision monitoring algorithm for maneuvering spacecraft. 
 Discretizes orbit according to input time and anomaly vectors. Handles 
 high eccentricity and maneuvers input through acceleration vector.

--------------------------------------------------------------------------
  Form:
  [prob, dMin, Shat, xhat] = CollisionMonAlg( y, t, M, nu, accel, aDiff, d )
--------------------------------------------------------------------------

   Inputs
   ------
   y      (6,m)   Relative state(s)
   t      (1,n)   Time vector [s]
   M      (1,n)   Mean anomaly vector
   nu     (1,n)   True anomaly vector
   accel   {m}    Accelerations due to maneuvers
   aDiff  (3,m)   Differential accelerations
   d       (.)    Algorithm data structure
                  .el0           Initial elements
                  .eRef          Eccentricity
                  .MRef          Mean anomaly
                  .initBounds    Error in measurement (6,1) [km, km/s]
                  .scalev        Sigma for measurement noise
                  .lenSC         Spacecraft length [m]
                  .Pmin          Probability of scalev
                  .Ssc           Spacecraft hard-body sphere
                  .S0            Initial ellipsoid

   Outputs
   --------
   prob   {n}(1,:)     probability of collision    
   d      {n}(1,:)     minimum distance between spacecraft position ellipsoids
   xhat   {n}(6,:)     xhat, ellipsoid centers
   Shat   {n}(6,6,:)   Shat, ellipsoid size matrices
 
--------------------------------------------------------------------------
     Reference:  Mark Campbell, Collision Monitoring Within Satellite
                 Clusters. IEEE Transactions on Control Systems 
                 Technology, Jan. 2005
--------------------------------------------------------------------------