Title: Unexpected and unwanted behaviour of control.ctrb · Issue #1097 · python-control/python-control · GitHub
Open Graph Title: Unexpected and unwanted behaviour of control.ctrb · Issue #1097 · python-control/python-control
X Title: Unexpected and unwanted behaviour of control.ctrb · Issue #1097 · python-control/python-control
Description: I have found some unexplainable and unwanted behavior of the control.ctrb functions, which returns a 'controllability matrix' with incorrect dimensions rather than returning an error/warning that the $B$ matrix is not dimensioned properl...
Open Graph Description: I have found some unexplainable and unwanted behavior of the control.ctrb functions, which returns a 'controllability matrix' with incorrect dimensions rather than returning an error/warning that t...
X Description: I have found some unexplainable and unwanted behavior of the control.ctrb functions, which returns a 'controllability matrix' with incorrect dimensions rather than returning an error/warnin...
Opengraph URL: https://github.com/python-control/python-control/issues/1097
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Unexpected and unwanted behaviour of control.ctrb","articleBody":"I have found some unexplainable and unwanted behavior of the `control.ctrb` functions, which returns a 'controllability matrix' with incorrect dimensions rather than returning an error/warning that the $B$ matrix is not dimensioned properly.\n\n**MWE:**\n\n```\nimport numpy as np\nimport control as ct\n\nA = np.array([[1, 1], [0, 1]])\nb = np.array([1, 1])\nC = ct.ctrb(A, b) # Rather then 1) returning an error that b is not properly dimensioned, or 2) assuming that b is a columns vector, it instead returns a matrix with shape 2 x 4, which makes no sense for a controllability matrix\n\nC_T = ct.ctrb(A, np.atleast_2d(b).T) # Explicitly specifying that b is a column vector fixes this and C_T is now a 2 x 2 matrix\n```\n\nI believe the behavior is incorrect, and it took me quite some time to understand what was going wrong; any (dis)agreement would be appreciated, thanks.","author":{"url":"https://github.com/bwolleswinkel","@type":"Person","name":"bwolleswinkel"},"datePublished":"2025-01-16T19:59:37.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/1097/python-control/issues/1097"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:817ab505-dcf6-dcd5-0dc5-1e29ac2b5a59 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | DC36:2970E9:466B21:5DC42C:697C1F58 |
| html-safe-nonce | c44fad335b5e3901d40155762fb93596be497dfa8381b3940dc67c339ecb3f41 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEQzM2OjI5NzBFOTo0NjZCMjE6NURDNDJDOjY5N0MxRjU4IiwidmlzaXRvcl9pZCI6IjYyMDgxOTY0MTE0NjkzNDA1MDQiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 550d509fe761da48fc7eea73183f7f8dc44d63e1f103a72696c0696cd7259917 |
| hovercard-subject-tag | issue:2793664222 |
| github-keyboard-shortcuts | repository,issues,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/_view_fragments/issues/show/python-control/python-control/1097/issue_layout |
| twitter:image | https://opengraph.githubassets.com/09849b94247b891f280ff0d3bc758e46a00657a01c74758b9206325e0ddc5b22/python-control/python-control/issues/1097 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/09849b94247b891f280ff0d3bc758e46a00657a01c74758b9206325e0ddc5b22/python-control/python-control/issues/1097 |
| og:image:alt | I have found some unexplainable and unwanted behavior of the control.ctrb functions, which returns a 'controllability matrix' with incorrect dimensions rather than returning an error/warning that t... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | bwolleswinkel |
| hostname | github.com |
| expected-hostname | github.com |
| None | da4f0ee56809799586f8ee546b27f94fe9b5893edfbf87732e82be45be013b52 |
| turbo-cache-control | no-preview |
| 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 |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 787d8d274e314f52ce6d846c7581f9476d8dc736 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width