Should stuff be time-shifted on tiny_solve entry? #10
Replies: 1 comment 1 reply
-
Hello, In our current implementation, we warm-start with the original solution from the previous MPC step. While theoretically shifting it one step ahead seems promising, in our specific cases, we didn't observe significant computational gains. Notice that the control rate is often fixed, which may depend on the worst-case scenario. In some cases (e.g., problem data changes rapidly, the previous solution is suboptimal), we even need to reset the multiplier/dual variables to avoid cumulative errors instead of warm-starting them. If possible, could you provide us with your quantitative testing results, preferably conducted on microcontrollers? We are open to considering the addition of this feature if it demonstrates a substantial impact. Thank you. |
Beta Was this translation helpful? Give feedback.
-
With$k \leftarrow k + 1$ , and the contents of the workspace struct being carried over, shouldn't some of this content be shifted in time?
tiny_solve
being called at every time stepI am specifically looking at the first forward pass, where the column vectors of the
d
-matrix are unique for every time step, and carry the previously optimized information. In my mind, it should be shifted prior to doing any iterations to get the best starting point for optimizing further. Likewise for the vectors iny
andg
which are reused before they are overwritten. I am thinking of something likeat the start of
tiny_solve
.In my quick testing this can give some more 'gradual' or 'incremental' convergence, allowing for a lower number of max iterations. I am curious if there are any downsides to this approach that I am missing.
Beta Was this translation helpful? Give feedback.
All reactions