State transition matrix and mass

yes initially I copied the new class in orekit 13 and subsequently, to leave no doubts, I also compiled the snapshot; i will continue to investigate

ah ok well with the snasphot, try the 7x7STM.

For this you need to explictly pass the 7-D identity matrix, like so:
final MatricesHarvester harvester = propagator.setupMatricesComputation(stmName, MatrixUtils.createRealIdentityMatrix(7), null);

Hello Romain;
thank you
now i have two compatible gradient:

SQP grandient J{-1,3175340035; -32,3972968776; -417,9098184085; 159,9688799066; -0,7523898769; -17,022298429; -257,6371155363; 177,2382317648; 19,0313430394; -4,6182860496; -31,2179492646; 118,8786002469; 2,5951381631; -0,8087769012; -1,8506320355; 37,0179865405}
SQP grandient J{-1,3176810998; -32,4026619132; -417,910906095; 159,9708619196; -0,7523438962; -17,0223195069; -257,6372475412; 177,2367223411; 19,0313272539; -4,6186735617; -31,2184796592; 118,8819373892; 2,5951184104; -0,809264837; -3,1269649093; 11,5069766561}

Except for the last two components (median and duration of the last maneuver);
maybe I made a mistake adding another line to the Jacobian to consider the time variation in the final state effect the satellite longitude .
I added the last line considering the time = median + duration/2.0 of the last maneuver
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.5,1.0]
Alternatively how can I create a control parameters dependency on the part of my cost function that depends on longitude?


Hi Romain,

After improving the SQP solver (there’s a pull request on Hipparrchus), I returned to this topic and finally figured out the problem. It wasn’t a coincidence that the Jacobian calculated with the STM cost function matrix differed from the one calculated with finite differences only for the last maneuver. This was due to the fact that, when the final time changes, the drift component of the orbital parameters must be added, so the gradient becomes J=ds/dp(calculate with STM) + ds/dt*dtfinal/dp.

1 Like