Title: add reference gain design pattern to create_statefbk_iosystem by murrayrm · Pull Request #1071 · python-control/python-control · GitHub
Open Graph Title: add reference gain design pattern to create_statefbk_iosystem by murrayrm · Pull Request #1071 · python-control/python-control
X Title: add reference gain design pattern to create_statefbk_iosystem by murrayrm · Pull Request #1071 · python-control/python-control
Description: This PR adds a second design pattern to the create_statefbk_iosystem function, allowing controllers that use a static gain on the reference input instead of the desired state and input. As described in the user documentation: The ~control.create_statefbk_iosystem function can be used to create an I/O system consisting of a state feedback gain (with optional integral action and gain scheduling) and an estimator. A basic state feedback controller of the form $u = u_d - K (x - x_\text{d})$ can be created with the command:: ctrl, clsys = ct.create_statefbk_iosystem(sys, K) where sys is the process dynamics and K is the state feedback gain (e.g., from LQR). The function returns the controller ctrl and the closed loop systems clsys, both as I/O systems. The input to the controller is the vector of desired states $x_\text{d}$, desired inputs $u_\text{d}$, and system states $x$. The above design pattern is referred to as the "trajectory generation" ('trajgen') pattern, since it assumes that the input to the controller is a feasible trajectory $(x_\text{d}, u_\text{d})$. Alternatively, a controller using the "reference gain" pattern can be created, which implements a state feedback controller of the form $u = k_\text{f}, r - K x$, where $r$ is the reference input and $k_\text{f}$ is the feedforward gain (normally chosen so that the steady state output $y_\text{ss}$ will be equal to $r$). A reference gain controller can be created with the command:: ctrl, clsys = ct.create_statefbk_iosystem(sys, K, kf, feedfwd_pattern='refgain') The reference gain design pattern is described in more detail in Section 7.2 of FBS2e (Stabilization by State Feedback) and the trajectory generation design pattern is described in Section 8.5 (State Space Controller Design). In addition, this PR includes some changes that make the error messages for setting up a state space system more informative, but giving the expected size of matrices that do not have the right dimensions. (This could go in a separate PR, but it is here because I got frustrated with the error messages while debugging some examples.)
Open Graph Description: This PR adds a second design pattern to the create_statefbk_iosystem function, allowing controllers that use a static gain on the reference input instead of the desired state and input. As describ...
X Description: This PR adds a second design pattern to the create_statefbk_iosystem function, allowing controllers that use a static gain on the reference input instead of the desired state and input. As describ...
Opengraph URL: https://github.com/python-control/python-control/pull/1071
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:f2b96257-f8eb-a577-a5b8-5f3a58ac09e4 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | CC56:37D2D5:E8F49E:130B3CB:697D3EF3 |
| html-safe-nonce | 09fc2ce5bb0ec644a488e0e2b62c3d9bc698b4c4a7f77b55e7c2c0a832f1e78d |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDQzU2OjM3RDJENTpFOEY0OUU6MTMwQjNDQjo2OTdEM0VGMyIsInZpc2l0b3JfaWQiOiI3NjQxNjkwMjU4MTY1MDIyNDUxIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | a2c25d2195763aeed5a83cb8efc2093473b4304c4113135d510f44babc3aeac5 |
| hovercard-subject-tag | pull_request:2209551942 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,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/1071/files |
| 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 adds a second design pattern to the create_statefbk_iosystem function, allowing controllers that use a static gain on the reference input instead of the desired state and input. As describ... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 60279d4097367e16897439d16d6bbe4180663db828c666eeed2656988ffe59f6 |
| turbo-cache-control | no-preview |
| diff-view | unified |
| 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 |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7c85641c598ad130c74f7bcc27f58575cac69551 |
| ui-target | canary-1 |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width