Title: I/O system enhancements by murrayrm · Pull Request #1082 · python-control/python-control · GitHub
Open Graph Title: I/O system enhancements by murrayrm · Pull Request #1082 · python-control/python-control
X Title: I/O system enhancements by murrayrm · Pull Request #1082 · python-control/python-control
Description: This PR provides a number of enhancements to I/O systems classes, most of which are internal but a few of which are visible to the user: Updated factory functions to provide consistent functionality in terms of copying signal/system names, overriding system/signal names, and converting between classes. Updated docstrings for all I/O classes and factory functions to provide consistent information and added unit tests to ensure consistency. The main changes were to make sure that all factory function parameters are documented while having the class docstrings focus on the primary parameters + attributes (with a reference to the factory function for more detailed documentation). Updated the tf() factory function to allow a 2D list of SISO transfer functions to be given as a means of creating a MIMO transfer function (use the new combine_tf function). This is redundant with combine_tf, but seemed useful to include in the factory function for the special case of creating a MIMO transfer function via a set of SISO expressions. E.g.: s = ct.tf('s') sys = ct.tf([[1/s, 0], [(s+1)/(s**2 + 2s + 1), 1/(s+1)]]) [8f3615b, 22 Dec '24] Added processing of the params keyword to create_statefbk_iosystem. [e4d373c, 22 Dec '24] Updated interconnect() to combine parameter lists of subsystems if params is not specified. Changed some methods and attributes to be hidden so that they don't get flagged in docstring testing. These are functions that are not needed by the user (eg, FrequencyResponseData._ifunc, which is the internally generated interpolation function if the smooth keyword is used). Changed the internal representation of transfer function numerators and denominators to a 2D array of arrays instead of a 2D nested list of arrays. This allows user of NumPy routines when accessing input/output pairs (eg, sys.num_array[i, j] instead of sys.num_list[i][j]). The nested list representation is still available via the {num,den}_list properties and the num and den attributes retrieve the nested list structure for backward compatibility. (We may want to change that in the future, but it could break user code where someone is accessing the numerator and denominator polynomials directly.) Add the ability for nlsys to create a NonlinearIOSystem representation of a StateSpace system. It's not clear that this is so useful for a user (since StateSpace is a subclass of NonlinearIOSystem), but it is handy for testing since you can quickly create a nonlinear I/O system from a linear system but have it treated as a "pure" NonlinearIOSystem instead of a StateSpace system. Got rid of redundant licensing information at the top of files that were modified (the information is contained in the LICENSE file in the main directory). Note: this PR is likely to conflict with #1081, so the plan is to review/merge #1081 first, then rebase this PR on top of that one.
Open Graph Description: This PR provides a number of enhancements to I/O systems classes, most of which are internal but a few of which are visible to the user: Updated factory functions to provide consistent functionali...
X Description: This PR provides a number of enhancements to I/O systems classes, most of which are internal but a few of which are visible to the user: Updated factory functions to provide consistent functionali...
Opengraph URL: https://github.com/python-control/python-control/pull/1082
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/checks(.:format) |
| route-controller | pull_requests |
| route-action | checks |
| fetch-nonce | v2:37de2d8a-fb45-6c1d-58e5-20eafdcbc06f |
| current-catalog-service-hash | 87dc3bc62d9b466312751bfd5f889726f4f1337bdff4e8be7da7c93d6c00a25a |
| request-id | C578:36C84C:1143C1D:117CB9E:697A898E |
| html-safe-nonce | fc087c777cad8600e7248c6049b0104cf714d79ece07c71a014adb3a7e1857d1 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDNTc4OjM2Qzg0QzoxMTQzQzFEOjExN0NCOUU6Njk3QTg5OEUiLCJ2aXNpdG9yX2lkIjoiNjQ0NDQ1ODc2NTY3MTEwNjk1OCIsInJlZ2lvbl9lZGdlIjoic2VhIiwicmVnaW9uX3JlbmRlciI6InNlYSJ9 |
| visitor-hmac | 94e407a8469f6c067cc08b7ef28cc9a6189412d88d852dc7236bacf7e06517f1 |
| hovercard-subject-tag | pull_request:2247379441 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,checks,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/python-control/python-control/pull/1082/checks |
| twitter:image | https://avatars.githubusercontent.com/u/293362?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/293362?s=400&v=4 |
| og:image:alt | This PR provides a number of enhancements to I/O systems classes, most of which are internal but a few of which are visible to the user: Updated factory functions to provide consistent functionali... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 8bc3ff3881e539acc2eac7cfa104664bc0f8d972a0dfc38dd3cbffce0d16af91 |
| turbo-cache-control | no-cache |
| go-import | github.com/python-control/python-control git https://github.com/python-control/python-control.git |
| octolytics-dimension-user_id | 2285872 |
| octolytics-dimension-user_login | python-control |
| octolytics-dimension-repository_id | 22791752 |
| octolytics-dimension-repository_nwo | python-control/python-control |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 22791752 |
| octolytics-dimension-repository_network_root_nwo | python-control/python-control |
| turbo-body-classes | logged-out env-production page-responsive full-width full-width-p-0 |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | d1026e9b6076007917cf27102f0d94ead41f7c24 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width