WIP: Robust mimo place
Trying to implement a robust mimo pole placement according to #384
This is an automated message. Plots were compared to references. No changes were detected.
Codecov Report
Merging #402 (e930147) into master (2fd813d) will increase coverage by
0.13%. The diff coverage is84.21%.
@@ Coverage Diff @@
## master #402 +/- ##
==========================================
+ Coverage 82.40% 82.54% +0.13%
==========================================
Files 31 31
Lines 2824 2858 +34
==========================================
+ Hits 2327 2359 +32
- Misses 497 499 +2
| Impacted Files | Coverage Δ | |
|---|---|---|
| src/synthesis.jl | 80.30% <84.21%> (+14.67%) |
:arrow_up: |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact),ø = not affected,? = missing dataPowered by Codecov. Last update 2fd813d...176bcd2. Read the comment docs.
Currently it seems like placing real poles work fine, but there is some problem with complex poles which I don't understand.
Testing for random matrices and poles with 5-10 states it seems that acker performs a bit faster as expected, taking around 50-100 microseconds while placemimo takes 150-1000 microseconds. We have a slightly better accuracy for placemimo though, usually coming up one order of magnitude better, though both are around 1e-8 in the normed difference to the real poles.
Will test a bit more once I get complex poles working.
Currently it seems like placing real poles work fine, but there is some problem with complex poles which I don't understand.
Found that the theory in the paper says complex poles closed under conjugate works with this method, but then the algorithm quickly mentions that this specific version only works for real poles...
I will try to figure out how to get it to work for complex numbers also, but not sure when I will find that motivation. If we want it to work for real poles I could quickly remove the tests for complex and add an error if it's called with mimo and complex.