Complex state matrices #371
Description
Activity
Most SLICOT routines expect real matrices. Support for complex state matrices in python-control would need to deal with them without Slycot.
Moved to a new Pull request
- linked a pull request that will close this issueallow complex statespace matrices #484
on Dec 30, 2020 Perhaps this is well-known, but in case not: complex-coefficient transfer functions do have applications; see, e.g., this paper by Troeng, Bernhardsson, & Rivetta, . The authors note that the Matlab of the time (2016) did not correctly handle complex coefficients in some cases; I guess, by implication, that it works in many other cases.
Handling this properly would be quite difficult: besides figuring out what to do with Slycot, we'd need to be sure to show responses for both negative and positive frequencies. We'd also want to naturally combine real and complex systems without being over-eager to produce complex results. I'm sure there are other complications I haven't thought of.
This is for the record, and for interest; I don't, alas, have time to work on it.
Root locus rules for polynomials with complex coefficients, published 2013, and available from one of the author's websites, gives root locus rules for complex-coefficient TFs.
Reacted by Ben Greiner
Creating a system with complex state matrices is sometimes needed (for example when you are working in a diagonal basis), but unfortunately python-control is missing this functionality right now.
Since that change would likely have a lot of code modified, I suggest to create a new branch, rewrite the tests with complex matrices and see where there fail.
Maybe also it would be better to focus first on python functions and then later modify SLICOT.