Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

allow complex statespace matrices#484

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Draft
bnavigator wants to merge1 commit intopython-control:main
base:main
Choose a base branch
Loading
frombnavigator:complex-statespace

Conversation

bnavigator
Copy link
Contributor

Outsourced from#438, because it is not directly related to the test suite.

To be combined with#376

@coveralls
Copy link

coveralls commentedDec 30, 2020
edited
Loading

Coverage Status

Coverage increased (+0.005%) to 86.624% when pulling0fda8c0 on bnavigator:complex-statespace into51c797e on python-control:master.

@bnavigatorbnavigator linked an issueDec 30, 2020 that may beclosed by this pull request
@roryyorke
Copy link
Contributor

I suspect this might be quite a lot of work to properly support (see below).

Would we change Slycot to reject complex matrices when real are expected? This might be a good idea anyway.

Would we support TFs with complex coefficients?

In [15]: import control as ctIn [16]: import control.matlab as mlIn [17]: ct.gram(ct.ss(-1-1j, 2, 3, 4), 'o')/home/rory/.miniconda3/envs/controldev/lib/python3.8/site-packages/slycot/synthesis.py:792: ComplexWarning: Casting complex values to real discards the imaginary part  out = _wrapper.sb03md(dico,n,C,A,U,job=job,fact=fact,trana=trana,ldwork=ldwork)Out[17]: matrix([[4.5]])In [18]: y, t = ml.step(ct.ss(-1-1j, 2, 3, 4)); y[1]/home/rory/src/python-control/control/timeresp.py:376: ComplexWarning: Casting complex values to real discards the imaginary part  xout[:, i] = (dot(Ad, xout[:, i-1]) + dot(Bd0, U[:, i-1]) +Out[18]: 4.26995014112991

@bnavigator
Copy link
ContributorAuthor

ComplexWarning: Casting complex values to real discards the imaginary part

Also, see discussion in#376. We could set a warning filter making this an error in Slycot.

@LSchmerber
Copy link

Hi,
First, thanks for this library.
I still have the complex values to float issue when starting matrix creation from complex eigen values and with Rev 0.9.0
image

rico500 reacted with thumbs up emoji

@rico500
Copy link

Has the development for this feature been discontinued? Is there a big road-block depending on another package (slycot?)?

@lytex
Copy link

If I remember correctly, Slycot had some functions that could be easily extended to handle complex cases
#376 (comment)
However,

tb05ad_ng and tb04ad_r are casting complex values to real, but as far as I know it seems there are no complex routine equivalents to these functions

@bnavigator
Copy link
ContributorAuthor

The main roadblock is probably developer time. I might resuming working on this not earlier than in 2 or 3 months. Contributions from others are always welcome of course.

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers
No reviews
Assignees
No one assigned
Labels
None yet
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

Complex state matrices
6 participants
@bnavigator@coveralls@roryyorke@LSchmerber@rico500@lytex

[8]ページ先頭

©2009-2025 Movatter.jp