Dear @bcazabonne,
thank you for your reply. I chose some feasible values for the covariance matrix and I don’t get the same error anymore. Of course I knew that an idendity matrix wasn’t physically “acceptable”, but I really didn’t think this would have caused a singular problem…
However, today I noticed another thing that I am still not able to understand. Starting from the result of the SequentialBatchLSEstimator.estimate() method I tried to check the Jacobian with SequentialBatchLSEstimator.getOptimum().getJacobian() and I found something I didn’t expect to find. The derivatives of my measurements with respect to the satellite state, satellite clock drift and satellite clock offset are of the form
dM/dy = [n_1, n_2, n_3, 0, 0, 0, c*t, c ]
where n_1, n_2 and n_3 are constant for all of the measurements, c is the speed of light and t is the time passed from the initial date to the actual measurement date. More precisely, in my case
dM/dy = [0.33, -0.84 , 0.43, 0, 0, 0, c*t, c ]
and this is what I give to EstimatedMeasurement.setEstimatedValue() and EstimatedMeasurement.setParameterDerivatives() in my measurement class, which is a simple extension of Orekit’s AbstractMeasurement (actually it is
very similar to Range). Considering 10 measurements collected every 4044 s, the method SequentialBatchLSEstimator.getOptimum().getJacobian() returns the following
{0.4755015197,-1.2009672502,0.6102395393,0.0,-0.0,0.0,0.0,418.2372460938}
{0.6885141067,-1.2741452065,1.4968398907,0.0,-0.0,0.0,1691351.423203125,418.2372460938}
{1.4482117258,-1.3651391222,3.0698064736,0.0,-0.0,0.0,3382702.84640625,418.2372460938}
{2.2355194583,-1.4036030628,4.5605973138,0.0,-0.0,0.0,5074054.269609375,418.2372460938}
{2.9323087851,-1.3929640368,5.8700864932,0.0,-0.0,0.0,6765405.6928125,418.2372460938}
{3.5424232447,-1.3384796292,7.0031671399,0.0,-0.0,0.0,8456757.116015624,418.2372460938}
{4.0823846724,-1.2438025861,7.9767102184,0.0,-0.0,0.0,10148108.53921875,418.2372460938}
{4.5663647276,-1.111608235,8.8066231628,0.0,-0.0,0.0,11839459.962421875,418.2372460938}
{5.0050786337,-0.9439763353,9.5061888554,0.0,-0.0,0.0,13530811.385625,418.2372460938}
{5.4065255275,-0.7425892402,10.0862897392,0.0,-0.0,0.0,15222162.808828125,418.2372460938}
and it is evident that the first three components increase as the number of measurements increases. I read on the documentation that this is a weighted Jacobian, but should I really expect something like this? Notice that the “sigma” I associated to the measurements is always the same.
Am I missing something obvious maybe? Or can it be a sort of normalization performed internally since the elements of my derivatives array are very different? I have both c and number lower than 1…
Thank you so much!!!
Samuele