Title: Fixes to various optimization-based control functions by murrayrm · Pull Request #709 · python-control/python-control · GitHub
Open Graph Title: Fixes to various optimization-based control functions by murrayrm · Pull Request #709 · python-control/python-control
X Title: Fixes to various optimization-based control functions by murrayrm · Pull Request #709 · python-control/python-control
Description: I recently finished teaching an optimization-based controls course and found a but of small things in the code that needing fixing/improving: Parameters were not being passed properly to differentially flat systems. Basis functions derived from BasisFamily were not calling BasisFamily.__init__. Changed constraints keyword in optimal.solve_ocp and flatsys.point_to_point to trajectory_constraints for more consistency (legacy keyword still works). Initial conditions for simulation of discrete time systems was being passed as a list instead of an ndarray, which caused some odd behavior and wasn't consistent with continuous time system usage. Added check for constraint types in optimal control problem setup (rather than when solving the optimal control problem). Fixed small inconsistency in the way discrete time was handled in setting up an I/O system for model predictive control (should be inherited from system, not passed separately). Unused keywords in OptimalControlProblem now generate an error (mentioned here). To be consistent with the normal problem formulation, the discrete time optimal cost calculation no longer includes the endpoint (use terminal_cost instead). create_mpc_iosystem now re-computes the optimal controller when returning the output, which eliminates an unintended one-step delay in the MPC dynamics. Added unit tests.
Open Graph Description: I recently finished teaching an optimization-based controls course and found a but of small things in the code that needing fixing/improving: Parameters were not being passed properly to different...
X Description: I recently finished teaching an optimization-based controls course and found a but of small things in the code that needing fixing/improving: Parameters were not being passed properly to different...
Opengraph URL: https://github.com/python-control/python-control/pull/709
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/checks(.:format) |
| route-controller | pull_requests |
| route-action | checks |
| fetch-nonce | v2:35270a39-3fdf-7229-a441-1d3d0d717557 |
| current-catalog-service-hash | 87dc3bc62d9b466312751bfd5f889726f4f1337bdff4e8be7da7c93d6c00a25a |
| request-id | EB44:1D132B:BE32A2:10100C7:697B0C89 |
| html-safe-nonce | 7c96c308df5edb09f1afacb1f645ef09a1f4b3589eed6d1e527fdb11aace6906 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFQjQ0OjFEMTMyQjpCRTMyQTI6MTAxMDBDNzo2OTdCMEM4OSIsInZpc2l0b3JfaWQiOiI4MjUxNzIyMTU0MTg2MDUwNjk3IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | b6f3865f039d031ed18daf7e78d3fa34582df3592b435953ab3c1146f3ef7a07 |
| hovercard-subject-tag | pull_request:878290458 |
| 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/709/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 | I recently finished teaching an optimization-based controls course and found a but of small things in the code that needing fixing/improving: Parameters were not being passed properly to different... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 7ce8ed0a54c4730aeca4e6abacfc6490365fc42e25480b86883054df3f9181c8 |
| 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 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 | d7bfc78137af9a4828305e52ab993fce981d7085 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width