[SciPy-Dev] Pole placement

Irvin Probst irvin.probst at ensta-bretagne.fr
Tue Dec 2 12:10:25 EST 2014


Hi all,
please find attached what I wrote for pole placement.

I used the famous KNV algorithms (Kautsky, Nichols, Van Dooreen) method 
0 and 1 (see Robust Pole assignments in linear state feedback, 
http://la.epfl.ch/files/content/sites/la/files/users/105941/public/KautskyNicholsDooren 
)

Method 0 is what Matlab uses, in this implementation it works well if 
the poles are real, I think I can fix it to work with complex poles also 
but it's not my top priority.

Method 1 is another approach to get the same results, it works most of 
the time but on some specific cases it fails. It is related to rank(X) 
decreasing sometimes over the iteration process but I simply can't 
understand what I'm missing here. As this method yields the same results 
as method 0 but is much more difficult to implement, I'm not sure I'll 
investigate this any further.

Now knowing the Matlab licensing issue, I used their source code to stay 
as far as possible from their implementation. Especially they use SVD 
decomposition all over step A and step F (see p 1144-1145) of the 
algorithm so I used QR decomposition instead.
In step X, method 0 however there is no magic, we implemented the same 
algorithm so it looks the same !

So if the scipy maintainers think the licensing issues are cleared I 
would be very happy to work further on the code of method0 in order to 
integrate it to Scipy, or if is definitely a problem to use the same 
algorithm as Matlab then I could try to implement method 2/3 if I find 
some time but I can't promise anything.

Finally please discard the tests in the main part of the code, I used 
matlab to check if my code worked as expected.

P.S: Ralf, as I made some changes since yesterday I thought it was 
better to avoid spamming you and send this directly to the ML.







-------------- next part --------------
A non-text attachment was scrubbed...
Name: pole.py
Type: text/x-python
Size: 8564 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20141202/423bb434/attachment.py>


More information about the SciPy-Dev mailing list