| route-pattern | /_view_fragments/voltron/pull_requests/show/:user_id/:repository/:id/pull_request_layout(.:format) |
| route-controller | voltron_pull_requests_fragments |
| route-action | pull_request_layout |
| fetch-nonce | v2:22d0465f-e589-72d7-ed26-2d934c1790f1 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | CA86:183EDE:3CB77A3:513356D:697B0843 |
| html-safe-nonce | 4f5e9c2239a174a68dd19ef94bb003b6b0ed296c910d7294d01e281747ec5ddb |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDQTg2OjE4M0VERTozQ0I3N0EzOjUxMzM1NkQ6Njk3QjA4NDMiLCJ2aXNpdG9yX2lkIjoiNjk4MzYxNjQ3NzE3MzMxOTc0NyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | c929b1f027fc05f8ac62cbf4ddaff13a2066e4fb0fe298890141daf91af6f182 |
| hovercard-subject-tag | pull_request:577027033 |
| 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 | ///voltron/pull_requests_fragments/pull_request_layout |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/voltron/pull_requests/show/python-control/python-control/549/pull_request_layout |
| twitter:image | https://opengraph.githubassets.com/c28ec6ce1c3b20345f063520741d64ef1395832750c59da5c909ffd9acffc47a/python-control/python-control/pull/549 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/c28ec6ce1c3b20345f063520741d64ef1395832750c59da5c909ffd9acffc47a/python-control/python-control/pull/549 |
| og:image:alt | This PR adds a new optimal control module, control.optimal, that implements finite horizon optimal control problems with constraints, including rudimentary model predictive control (MPC). The unde... |
| 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 | 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 |
| 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 |
| Skip to content | https://github.com/python-control/python-control/pull/549#start-of-content |
|
| https://github.com/ |
|
Sign in
| https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython-control%2Fpython-control%2Fpull%2F549 |
| GitHub CopilotWrite better code with AI | https://github.com/features/copilot |
| GitHub SparkBuild and deploy intelligent apps | https://github.com/features/spark |
| GitHub ModelsManage and compare prompts | https://github.com/features/models |
| MCP RegistryNewIntegrate external tools | https://github.com/mcp |
| ActionsAutomate any workflow | https://github.com/features/actions |
| CodespacesInstant dev environments | https://github.com/features/codespaces |
| IssuesPlan and track work | https://github.com/features/issues |
| Code ReviewManage code changes | https://github.com/features/code-review |
| GitHub Advanced SecurityFind and fix vulnerabilities | https://github.com/security/advanced-security |
| Code securitySecure your code as you build | https://github.com/security/advanced-security/code-security |
| Secret protectionStop leaks before they start | https://github.com/security/advanced-security/secret-protection |
| Why GitHub | https://github.com/why-github |
| Documentation | https://docs.github.com |
| Blog | https://github.blog |
| Changelog | https://github.blog/changelog |
| Marketplace | https://github.com/marketplace |
| View all features | https://github.com/features |
| Enterprises | https://github.com/enterprise |
| Small and medium teams | https://github.com/team |
| Startups | https://github.com/enterprise/startups |
| Nonprofits | https://github.com/solutions/industry/nonprofits |
| App Modernization | https://github.com/solutions/use-case/app-modernization |
| DevSecOps | https://github.com/solutions/use-case/devsecops |
| DevOps | https://github.com/solutions/use-case/devops |
| CI/CD | https://github.com/solutions/use-case/ci-cd |
| View all use cases | https://github.com/solutions/use-case |
| Healthcare | https://github.com/solutions/industry/healthcare |
| Financial services | https://github.com/solutions/industry/financial-services |
| Manufacturing | https://github.com/solutions/industry/manufacturing |
| Government | https://github.com/solutions/industry/government |
| View all industries | https://github.com/solutions/industry |
| View all solutions | https://github.com/solutions |
| AI | https://github.com/resources/articles?topic=ai |
| Software Development | https://github.com/resources/articles?topic=software-development |
| DevOps | https://github.com/resources/articles?topic=devops |
| Security | https://github.com/resources/articles?topic=security |
| View all topics | https://github.com/resources/articles |
| Customer stories | https://github.com/customer-stories |
| Events & webinars | https://github.com/resources/events |
| Ebooks & reports | https://github.com/resources/whitepapers |
| Business insights | https://github.com/solutions/executive-insights |
| GitHub Skills | https://skills.github.com |
| Documentation | https://docs.github.com |
| Customer support | https://support.github.com |
| Community forum | https://github.com/orgs/community/discussions |
| Trust center | https://github.com/trust-center |
| Partners | https://github.com/partners |
| GitHub SponsorsFund open source developers | https://github.com/sponsors |
| Security Lab | https://securitylab.github.com |
| Maintainer Community | https://maintainers.github.com |
| Accelerator | https://github.com/accelerator |
| Archive Program | https://archiveprogram.github.com |
| Topics | https://github.com/topics |
| Trending | https://github.com/trending |
| Collections | https://github.com/collections |
| Enterprise platformAI-powered developer platform | https://github.com/enterprise |
| GitHub Advanced SecurityEnterprise-grade security features | https://github.com/security/advanced-security |
| Copilot for BusinessEnterprise-grade AI features | https://github.com/features/copilot/copilot-business |
| Premium SupportEnterprise-grade 24/7 support | https://github.com/premium-support |
| Pricing | https://github.com/pricing |
| Search syntax tips | https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax |
| documentation | https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax |
|
Sign in
| https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython-control%2Fpython-control%2Fpull%2F549 |
|
Sign up
| https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fpull_requests_fragments%2Fpull_request_layout&source=header-repo&source_repo=python-control%2Fpython-control |
| Reload | https://github.com/python-control/python-control/pull/549 |
| Reload | https://github.com/python-control/python-control/pull/549 |
| Reload | https://github.com/python-control/python-control/pull/549 |
|
python-control
| https://github.com/python-control |
| python-control | https://github.com/python-control/python-control |
|
Notifications
| https://github.com/login?return_to=%2Fpython-control%2Fpython-control |
|
Fork
447
| https://github.com/login?return_to=%2Fpython-control%2Fpython-control |
|
Star
2k
| https://github.com/login?return_to=%2Fpython-control%2Fpython-control |
|
Code
| https://github.com/python-control/python-control |
|
Issues
87
| https://github.com/python-control/python-control/issues |
|
Pull requests
8
| https://github.com/python-control/python-control/pulls |
|
Discussions
| https://github.com/python-control/python-control/discussions |
|
Actions
| https://github.com/python-control/python-control/actions |
|
Projects
0
| https://github.com/python-control/python-control/projects |
|
Wiki
| https://github.com/python-control/python-control/wiki |
|
Security
0
| https://github.com/python-control/python-control/security |
|
Insights
| https://github.com/python-control/python-control/pulse |
|
Code
| https://github.com/python-control/python-control |
|
Issues
| https://github.com/python-control/python-control/issues |
|
Pull requests
| https://github.com/python-control/python-control/pulls |
|
Discussions
| https://github.com/python-control/python-control/discussions |
|
Actions
| https://github.com/python-control/python-control/actions |
|
Projects
| https://github.com/python-control/python-control/projects |
|
Wiki
| https://github.com/python-control/python-control/wiki |
|
Security
| https://github.com/python-control/python-control/security |
|
Insights
| https://github.com/python-control/python-control/pulse |
| Sign up for GitHub
| https://github.com/signup?return_to=%2Fpython-control%2Fpython-control%2Fissues%2Fnew%2Fchoose |
| terms of service | https://docs.github.com/terms |
| privacy statement | https://docs.github.com/privacy |
| Sign in | https://github.com/login?return_to=%2Fpython-control%2Fpython-control%2Fissues%2Fnew%2Fchoose |
| Jump to bottom | https://github.com/python-control/python-control/pull/549#issue-comment-box |
| sawyerbfuller | https://github.com/sawyerbfuller |
| python-control:master | https://github.com/python-control/python-control/tree/master |
| murrayrm:obc | https://github.com/murrayrm/python-control/tree/obc |
|
Optimal control module
| https://github.com/python-control/python-control/pull/549#top |
| sawyerbfuller | https://github.com/sawyerbfuller |
| python-control:master | https://github.com/python-control/python-control/tree/master |
| murrayrm:obc | https://github.com/murrayrm/python-control/tree/obc |
|
Conversation
2
| https://github.com/python-control/python-control/pull/549 |
|
Commits
18
| https://github.com/python-control/python-control/pull/549/commits |
|
Checks
0
| https://github.com/python-control/python-control/pull/549/checks |
|
Files changed
| https://github.com/python-control/python-control/pull/549/files |
| Please reload this page | https://github.com/python-control/python-control/pull/549 |
| https://github.co/hiddenchars |
| https://github.com/python-control/python-control/pull/{{ revealButtonHref }} |
|
| https://github.com/murrayrm |
| murrayrm | https://github.com/murrayrm |
| Feb 21, 2021 | https://github.com/python-control/python-control/pull/549#issue-812738220 |
| Please reload this page | https://github.com/python-control/python-control/pull/549 |
| Optimization-Based Control | https://fbswiki.org/wiki/index.php/Supplement:_Optimization-Based_Control |
| Please reload this page | https://github.com/python-control/python-control/pull/549 |
| https://github.com/murrayrm |
| murrayrm | https://github.com/murrayrm |
| February 21, 2021 00:24 | https://github.com/python-control/python-control/pull/549#event-4355832001 |
| https://github.com/coveralls |
| coveralls | https://github.com/coveralls |
| Feb 21, 2021 | https://github.com/python-control/python-control/pull/549#issuecomment-782771235 |
| Please reload this page | https://github.com/python-control/python-control/pull/549 |
| https://coveralls.io/builds/37522584 |
| c49ee90 | https://github.com/python-control/python-control/commit/c49ee9038e2e2d94f9d1b4937dba5c901687e7ff |
| 8cba949 | https://github.com/python-control/python-control/commit/8cba9493ab1efa54577846a421fe3ed7b2893339 |
| Please reload this page | https://github.com/python-control/python-control/pull/549 |
| https://github.com/murrayrm |
| murrayrm | https://github.com/murrayrm |
|
Feb 22, 2021
| https://github.com/python-control/python-control/pull/549#ref-issue-797769331 |
|
Add code to check for unrecognized keywords associated with default settings
#528
| https://github.com/python-control/python-control/issues/528 |
| https://github.com/sawyerbfuller |
| sawyerbfuller | https://github.com/sawyerbfuller |
| Feb 23, 2021 | https://github.com/python-control/python-control/pull/549#issuecomment-784515308 |
| Please reload this page | https://github.com/python-control/python-control/pull/549 |
| https://github.com/murrayrm |
| murrayrm | https://github.com/murrayrm |
|
Feb 25, 2021
| https://github.com/python-control/python-control/pull/549#ref-issue-679764284 |
|
Release 0.8.4 and 0.9.0 sequencing
#451
| https://github.com/python-control/python-control/issues/451 |
| murrayrm | https://github.com/murrayrm |
| February 26, 2021 22:46 | https://github.com/python-control/python-control/pull/549#commits-pushed-00297d6 |
|
| https://github.com/murrayrm |
| draft unit test | https://github.com/python-control/python-control/pull/549/commits/00297d6881aa423c5dd30143e4b539691984d7c0 |
| 00297d6 | https://github.com/python-control/python-control/pull/549/commits/00297d6881aa423c5dd30143e4b539691984d7c0 |
|
| https://github.com/murrayrm |
| convert to pytest | https://github.com/python-control/python-control/pull/549/commits/23cb793909b7bcb1cd040c8d4fb0971109d7a0c9 |
| 23cb793 | https://github.com/python-control/python-control/pull/549/commits/23cb793909b7bcb1cd040c8d4fb0971109d7a0c9 |
|
| https://github.com/murrayrm |
| initial minimal implementation (working) | https://github.com/python-control/python-control/pull/549/commits/8711900e309e1c9a9f589383aa2982df52c82669 |
| 8711900 | https://github.com/python-control/python-control/pull/549/commits/8711900e309e1c9a9f589383aa2982df52c82669 |
|
| https://github.com/murrayrm |
| minor refactoring plus additional comments on method | https://github.com/python-control/python-control/pull/549/commits/6f9c092b26f0167c5f5f47ccdeb182475a835f5d |
| 6f9c092 | https://github.com/python-control/python-control/pull/549/commits/6f9c092b26f0167c5f5f47ccdeb182475a835f5d |
|
| https://github.com/murrayrm |
| remove polytope dependence; implement MPC iosys w/ notebook example | https://github.com/python-control/python-control/pull/549/commits/bd322e7befd85e67492d87f87e5291bfcf800357 |
| bd322e7 | https://github.com/python-control/python-control/pull/549/commits/bd322e7befd85e67492d87f87e5291bfcf800357 |
|
| https://github.com/murrayrm |
| add'l unit tests, cache sim results, equality constraint support | https://github.com/python-control/python-control/pull/549/commits/0d14642f22373ed22e4598d448b0482adc13060c |
| 0d14642 | https://github.com/python-control/python-control/pull/549/commits/0d14642f22373ed22e4598d448b0482adc13060c |
|
| https://github.com/murrayrm |
| slight code refactoring + docstrings + initial doc/obc.rst | https://github.com/python-control/python-control/pull/549/commits/2456f365057c96393d2ec93be7e49380b6bc9e5e |
| 2456f36 | https://github.com/python-control/python-control/pull/549/commits/2456f365057c96393d2ec93be7e49380b6bc9e5e |
|
| https://github.com/murrayrm |
| add info/debug messages + code refactor, result object | https://github.com/python-control/python-control/pull/549/commits/769eaa5ec980f7e46fc64e4182ad6af5f53e4e18 |
| 769eaa5 | https://github.com/python-control/python-control/pull/549/commits/769eaa5ec980f7e46fc64e4182ad6af5f53e4e18 |
|
| https://github.com/murrayrm |
| slight refactoring of cost functions + example tweaks | https://github.com/python-control/python-control/pull/549/commits/ea2884d0287aa56d2ea6b4693b48868c10f20f62 |
| ea2884d | https://github.com/python-control/python-control/pull/549/commits/ea2884d0287aa56d2ea6b4693b48868c10f20f62 |
|
| https://github.com/murrayrm |
| rename obc to optimal, new examples/unit tests | https://github.com/python-control/python-control/pull/549/commits/94940927221a914738e612394d168ca61ec4a3d0 |
| 9494092 | https://github.com/python-control/python-control/pull/549/commits/94940927221a914738e612394d168ca61ec4a3d0 |
|
| https://github.com/murrayrm |
| update unit tests for speed and coverage | https://github.com/python-control/python-control/pull/549/commits/acc4439075acd50680b0bef9266e918f45a05339 |
| acc4439 | https://github.com/python-control/python-control/pull/549/commits/acc4439075acd50680b0bef9266e918f45a05339 |
|
| https://github.com/murrayrm |
| updated argument checking + unit tests (and coverage) + fixes | https://github.com/python-control/python-control/pull/549/commits/5f261ccb132801f079892f19cfe4daed8b0e0d0a |
| 5f261cc | https://github.com/python-control/python-control/pull/549/commits/5f261ccb132801f079892f19cfe4daed8b0e0d0a |
|
| https://github.com/murrayrm |
| PEP8 cleanup | https://github.com/python-control/python-control/pull/549/commits/980fa5f5ab0daf9e59aca375f7b448e165b05eab |
| 980fa5f | https://github.com/python-control/python-control/pull/549/commits/980fa5f5ab0daf9e59aca375f7b448e165b05eab |
|
| https://github.com/murrayrm |
| add basis functions, solver options, examples/tests | https://github.com/python-control/python-control/pull/549/commits/7741fe9fbbd42dc99f4f6a1084d80c586dac925f |
| 7741fe9 | https://github.com/python-control/python-control/pull/549/commits/7741fe9fbbd42dc99f4f6a1084d80c586dac925f |
|
| https://github.com/murrayrm |
| set up benchmarks/profiling via asv | https://github.com/python-control/python-control/pull/549/commits/df91cac6772f626df2ca3035b9a66d347f814e6d |
| df91cac | https://github.com/python-control/python-control/pull/549/commits/df91cac6772f626df2ca3035b9a66d347f814e6d |
|
| https://github.com/murrayrm |
| add unit tests for additional coverage | https://github.com/python-control/python-control/pull/549/commits/d735f794701a1eb5bab4230073eb4ce81ff55160 |
| d735f79 | https://github.com/python-control/python-control/pull/549/commits/d735f794701a1eb5bab4230073eb4ce81ff55160 |
|
| https://github.com/murrayrm |
| clean up steering-optimal example | https://github.com/python-control/python-control/pull/549/commits/5838c2fa2da69cab46935d03a801be3ca63275d3 |
| 5838c2f | https://github.com/python-control/python-control/pull/549/commits/5838c2fa2da69cab46935d03a801be3ca63275d3 |
|
| https://github.com/murrayrm |
| updated benchmarks + performance tweaks | https://github.com/python-control/python-control/pull/549/commits/c49ee9038e2e2d94f9d1b4937dba5c901687e7ff |
| c49ee90 | https://github.com/python-control/python-control/pull/549/commits/c49ee9038e2e2d94f9d1b4937dba5c901687e7ff |
| https://github.com/murrayrm |
| murrayrm | https://github.com/murrayrm |
| force-pushed | https://github.com/python-control/python-control/compare/a39628641f95a6ee26f1f4c500e70eeb9f924ac8..c49ee9038e2e2d94f9d1b4937dba5c901687e7ff |
| a396286 | https://github.com/python-control/python-control/commit/a39628641f95a6ee26f1f4c500e70eeb9f924ac8 |
| c49ee90 | https://github.com/python-control/python-control/commit/c49ee9038e2e2d94f9d1b4937dba5c901687e7ff |
|
Compare
| https://github.com/python-control/python-control/compare/a39628641f95a6ee26f1f4c500e70eeb9f924ac8..c49ee9038e2e2d94f9d1b4937dba5c901687e7ff |
| March 1, 2021 06:13 | https://github.com/python-control/python-control/pull/549#event-4387528891 |
| https://github.com/murrayrm |
| murrayrm | https://github.com/murrayrm |
| March 1, 2021 21:39 | https://github.com/python-control/python-control/pull/549#event-4392146510 |
| https://github.com/sawyerbfuller |
| sawyerbfuller | https://github.com/sawyerbfuller |
| 66d4a53 | https://github.com/python-control/python-control/commit/66d4a53d936b5ecd7bb35e3a7a5825d2c13db0f0 |
| Mar 2, 2021 | https://github.com/python-control/python-control/pull/549#event-4397473832 |
| https://github.com/murrayrm |
| murrayrm | https://github.com/murrayrm |
| March 3, 2021 02:56 | https://github.com/python-control/python-control/pull/549#event-4399193436 |
| https://github.com/murrayrm |
| murrayrm | https://github.com/murrayrm |
|
Mar 11, 2021
| https://github.com/python-control/python-control/pull/549#ref-pullrequest-809676167 |
|
new dynamics() and output() methods in StateSpace
#546
| https://github.com/python-control/python-control/pull/546 |
| https://github.com/murrayrm |
| murrayrm | https://github.com/murrayrm |
| 0.9.0 | https://github.com/python-control/python-control/milestone/8 |
| Mar 20, 2021 | https://github.com/python-control/python-control/pull/549#event-4485758105 |
| Sign up for free | https://github.com/join?source=comment-repo |
| Sign in to comment | https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython-control%2Fpython-control%2Fpull%2F549 |
|
0.9.0
| https://github.com/python-control/python-control/milestone/8 |
| Please reload this page | https://github.com/python-control/python-control/pull/549 |
|
| https://github.com/murrayrm |
|
| https://github.com/coveralls |
|
| https://github.com/sawyerbfuller |
|
| https://github.com |
| Terms | https://docs.github.com/site-policy/github-terms/github-terms-of-service |
| Privacy | https://docs.github.com/site-policy/privacy-policies/github-privacy-statement |
| Security | https://github.com/security |
| Status | https://www.githubstatus.com/ |
| Community | https://github.community/ |
| Docs | https://docs.github.com/ |
| Contact | https://support.github.com?tags=dotcom-footer |