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

I/O system improvements: linearize, interconnect, docstrings#497

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

Merged

Conversation

murrayrm
Copy link
Member

@murrayrmmurrayrm commentedJan 2, 2021
edited
Loading

This PR implements a couple of enhancements for the I/O systems package, mainly related to linear systems:

  • Thelinearize command now preserves signal names for the linearized system, so that you can use signal names when forming andInterconnectedSystem.

  • Interconnections ofLinearIOSystems are now treated asLinearICSystems (a subclass ofInterconnectedSystem andLinearIOSystem) so thatStateSpace functions will still work on them and they still keep track of the underlying interconnection structure.

  • There is now aninterconnect function that allows the construction of anLinearICSystems or aInterconnectedSystem depending on whether the subsystems are all linear or not. This basically serves as a replacement for theconnect function for LTI systems and allows named interconnection of linear or nonlinear systems.

In addition, I cleaned up the description for how to specify interconnections so that tuples are only used for the lowest level signal descriptions; everything else is a list. (Tuples will still work, but there are some ambiguities when you use tuples sinceoutlist=(3, 2, 1) could be interpreted as a signal description for a single signal (subsystem 3, signal 2, with gain 1) or as a list of signals for SISO systems (the single outputs from subsystems 3, 2, and 1).

Additional small changes:

  • Therss anddrss functions now allow thestrictly_proper keyword, which sets the D matrix to zero. (I needed this to avoid occasional errors in unit tests for theinterconnect function.

  • Added some configuration variables that allow you to change the way that states in interconnected systems are named (default wassys.state but issys_state for 0.9+) and the way that duplicate systems are named (default wascopy of sys but issys$copy for 0.9+).

  • Added unit tests for all of the above.

  • Updated examples to match the newly documented conventions for signal list specification.

@coveralls
Copy link

coveralls commentedJan 2, 2021
edited
Loading

Coverage Status

Coverage decreased (-0.02%) to 87.51% when pulling5ed0f96 on murrayrm:linearize_named_signals into8f5d8e5 on python-control:master.

@coveralls
Copy link

Coverage Status

Coverage decreased (-0.2%) to 87.37% when pullingff4a351 on murrayrm:linearize_named_signals into383e7a4 on python-control:master.

@murrayrmmurrayrmforce-pushed thelinearize_named_signals branch from18ffe2e to488edf5CompareJanuary 5, 2021 03:32
@bnavigator
Copy link
Contributor

https://travis-ci.org/github/python-control/python-control/jobs/752920076#L2029

_______________ TestIOSys.test_linearize_named_signals[arrayout] _______________....E       PendingDeprecationWarning: the matrix subclass is not the recommended way to represent matrices or deal with linear algebra (see https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please adjust your code to use regular ndarray....FAILED control/tests/iosys_test.py::TestIOSys::test_linearize_named_signals[arrayout]FAILED control/tests/iosys_test.py::TestIOSys::test_sys_naming_convention[arrayout]FAILED control/tests/iosys_test.py::TestIOSys::test_signals_naming_convention_0_8_4[arrayout]FAILED control/tests/iosys_test.py::TestIOSys::test_duplicates[arrayout] - Pe...

Autouse fixturematarrayout definesmatrixerrorfilter, which is not overridden bymatrixfilter. You need to locally overridematarrayout.

@murrayrmmurrayrm merged commit4103688 intopython-control:masterJan 5, 2021
@murrayrmmurrayrm deleted the linearize_named_signals branchJanuary 14, 2021 07:05
@murrayrmmurrayrm added this to the0.9.0 milestoneMar 20, 2021
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@bnavigatorbnavigatorbnavigator left review comments

Assignees
No one assigned
Labels
None yet
Projects
None yet
Milestone
0.9.0
Development

Successfully merging this pull request may close these issues.

3 participants
@murrayrm@coveralls@bnavigator

[8]ページ先頭

©2009-2025 Movatter.jp