[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