Title: modal canonical form does not work with repeated eigenvalues · Issue #318 · python-control/python-control · GitHub
Open Graph Title: modal canonical form does not work with repeated eigenvalues · Issue #318 · python-control/python-control
X Title: modal canonical form does not work with repeated eigenvalues · Issue #318 · python-control/python-control
Description: The modal_form() function appears to assume that all eigenvalues are distinct. The following example gives strange results: import control as ct sys_repeat = ct.StateSpace([[-1, 1], [0, -1]], [[0], [1]], [[1, 0]], [[0]]) sys_modal, T = c...
Open Graph Description: The modal_form() function appears to assume that all eigenvalues are distinct. The following example gives strange results: import control as ct sys_repeat = ct.StateSpace([[-1, 1], [0, -1]], [[0],...
X Description: The modal_form() function appears to assume that all eigenvalues are distinct. The following example gives strange results: import control as ct sys_repeat = ct.StateSpace([[-1, 1], [0, -1]], [[0],...
Opengraph URL: https://github.com/python-control/python-control/issues/318
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"modal canonical form does not work with repeated eigenvalues","articleBody":"The `modal_form()` function appears to assume that all eigenvalues are distinct. The following example gives strange results:\r\n```\r\nimport control as ct\r\nsys_repeat = ct.StateSpace([[-1, 1], [0, -1]], [[0], [1]], [[1, 0]], [[0]])\r\nsys_modal, T = ct.modal_form(sys_repeat)\r\nprint(sys_modal)\r\n```\r\nwhich yields\r\n```\r\nA = [[-1.00000000e+00 0.00000000e+00]\r\n [ 2.22044605e-16 -1.00000000e+00]]\r\n\r\nB = [[4.50359963e+15]\r\n [4.50359963e+15]]\r\n\r\nC = [[-1. 1.]]\r\n\r\nD = [[0.]]\r\n```\r\nThe problem is that the transformation `T` as computed in `modal_form` is singular:\r\n```\r\n[[-1.00000000e+00 1.00000000e+00]\r\n [ 2.22044605e-16 0.00000000e+00]]\r\n```\r\n","author":{"url":"https://github.com/murrayrm","@type":"Person","name":"murrayrm"},"datePublished":"2019-06-23T23:23:45.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":3},"url":"https://github.com/318/python-control/issues/318"}
| 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:5b673934-a8d9-88ff-77ed-318ad6c1fcba |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | E7A8:328087:F810E7:15DD815:697A0591 |
| html-safe-nonce | f05c9dbb2f7b093827b97d99b8622c990d1358e88206632b9811575635bdc2c8 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFN0E4OjMyODA4NzpGODEwRTc6MTVERDgxNTo2OTdBMDU5MSIsInZpc2l0b3JfaWQiOiI4OTA1NzE5MDQwNTUxMDI4MTEzIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 04dc89a205bba8da6aca9fad237302932253df467f345a1f054af9b9eed306c2 |
| hovercard-subject-tag | issue:459629952 |
| 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/318/issue_layout |
| twitter:image | https://opengraph.githubassets.com/d8665dc4d81ea32ce4e96175801c3356e2b040c3b214d085aaa618dad593d1f6/python-control/python-control/issues/318 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/d8665dc4d81ea32ce4e96175801c3356e2b040c3b214d085aaa618dad593d1f6/python-control/python-control/issues/318 |
| og:image:alt | The modal_form() function appears to assume that all eigenvalues are distinct. The following example gives strange results: import control as ct sys_repeat = ct.StateSpace([[-1, 1], [0, -1]], [[0],... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | murrayrm |
| hostname | github.com |
| expected-hostname | github.com |
| None | 24021c77440f544078f9cbe80d78a2fb16ccff65fca92deda9da3c51d1cdc5fc |
| 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 | bd34d6cb576e14ec8da51f144ef82b621f68256d |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width