ControlSystems.jl icon indicating copy to clipboard operation
ControlSystems.jl copied to clipboard

WIP: Robust mimo place

Open albheim opened this issue 5 years ago • 4 comments

Trying to implement a robust mimo pole placement according to #384

albheim avatar Nov 27 '20 17:11 albheim

This is an automated message. Plots were compared to references. No changes were detected.

JuliaControlBot avatar Nov 27 '20 17:11 JuliaControlBot

Codecov Report

Merging #402 (e930147) into master (2fd813d) will increase coverage by 0.13%. The diff coverage is 84.21%.

Impacted file tree graph

@@            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 data Powered by Codecov. Last update 2fd813d...176bcd2. Read the comment docs.

codecov[bot] avatar Nov 27 '20 17:11 codecov[bot]

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.

albheim avatar Dec 01 '20 12:12 albheim

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.

albheim avatar Dec 09 '20 15:12 albheim