Title: Implementing Generic Input Output Functions · Issue #1149 · python-control/python-control · GitHub
Open Graph Title: Implementing Generic Input Output Functions · Issue #1149 · python-control/python-control
X Title: Implementing Generic Input Output Functions · Issue #1149 · python-control/python-control
Description: Hello, I am trying to use this library to model alternative implementations of various algorithms for current control of a 3 phase motor. The basic outline is as follows: Current-Target -> PI -> Inverse Park/Clarke -> SVM -> Motor Model ...
Open Graph Description: Hello, I am trying to use this library to model alternative implementations of various algorithms for current control of a 3 phase motor. The basic outline is as follows: Current-Target -> PI -> In...
X Description: Hello, I am trying to use this library to model alternative implementations of various algorithms for current control of a 3 phase motor. The basic outline is as follows: Current-Target -> PI -&...
Opengraph URL: https://github.com/python-control/python-control/issues/1149
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Implementing Generic Input Output Functions","articleBody":"Hello,\n\nI am trying to use this library to model alternative implementations of various algorithms for current control of a 3 phase motor.\n\nThe basic outline is as follows:\n\nCurrent-Target -\u003e PI -\u003e Inverse Park/Clarke -\u003e SVM -\u003e Motor Model -\u003e Current Sense Model -\u003e Park/Clarke -\u003e Current Measured (feedback)\n\nSpecifically my question is it possible to have essentially generic function blocks that given a set of inputs return a set of outputs independent of time. My hope is to be able to have a few versions of these and drop them into the model for comparison. A trivial example I tried was attempting to get the park transform working. I tried the following of trying to hack a non-linear system to do this but it doesn't work (which I believe is expected):\n\n``` python\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport control as ct\n\ndef inverse_park_transformation_out(t, x, u, params):\n return [x[0],x[1]]\n\ndef inverse_park_transformation(t, x, u, params):\n q = u[0]\n d = u[1]\n angle = u[2]\n\n alpha = d * np.cos(angle) - q * np.sin(angle)\n beta = d * np.sin(angle) + q * np.cos(angle)\n\n return [alpha, beta]\n\ninv_park = ct.nlsys(updfcn=inverse_park_transformation, outfcn=inverse_park_transformation_out, inputs=[\n \"q\", \"d\", \"angle\"], outputs=[\"alpha\", \"beta\"], states = [\"alpha\", \"beta\"],name=\"inv_park\")\n\ndt = 50e-6\nf = 100\nt = np.arange(0.0, 0.02, dt)\nq = np.ones_like(t)\nd = np.zeros_like(t)\nangle = np.sin(2 * np.pi * f * t) * np.pi\n\nt, y, s = ct.input_output_response(sys=inv_park, T=t, U=[q, d, angle], return_x=True)\nplt.plot(t, q, label=\"V_q\")\nplt.plot(t, d, label=\"V_d\")\nplt.plot(t, angle, label=\"$\\\\theta$\")\nplt.plot(t, y[0], label=\"v_alpha\")\nplt.plot(t, y[1], label=\"v_beta\")\nplt.legend()\nplt.show()\n```\n","author":{"url":"https://github.com/natecheadle","@type":"Person","name":"natecheadle"},"datePublished":"2025-05-29T15:06:28.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/1149/python-control/issues/1149"}
| 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:8b001a1a-3c90-6d8c-9549-d1b04a1119eb |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 9394:1B65E3:E2F8C7:E5E9AF:697A7CD9 |
| html-safe-nonce | 195fc38a8883de9d9d294207ff601478de7126a79dff1b894308166666cde514 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5Mzk0OjFCNjVFMzpFMkY4Qzc6RTVFOUFGOjY5N0E3Q0Q5IiwidmlzaXRvcl9pZCI6IjMxNzEyMjM5NDEyNTA5NzI4ODkiLCJyZWdpb25fZWRnZSI6InNlYSIsInJlZ2lvbl9yZW5kZXIiOiJzZWEifQ== |
| visitor-hmac | 131065584f341e65e09554b6c249ffa2c87f08cf85094785dc6a49c9a60fb05b |
| hovercard-subject-tag | issue:3100631534 |
| 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/1149/issue_layout |
| twitter:image | https://opengraph.githubassets.com/f03d00ef021bcf4569605198ebddc636bec5e74ccb4bba7443e5cf7950a23580/python-control/python-control/issues/1149 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/f03d00ef021bcf4569605198ebddc636bec5e74ccb4bba7443e5cf7950a23580/python-control/python-control/issues/1149 |
| og:image:alt | Hello, I am trying to use this library to model alternative implementations of various algorithms for current control of a 3 phase motor. The basic outline is as follows: Current-Target -> PI -> In... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | natecheadle |
| hostname | github.com |
| expected-hostname | github.com |
| None | a9d1eabfb8cf0cb510bcf598032681675ad29b7ee4cb3bfb9a0a088a12803628 |
| 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 | 31bacebc3305d80609c1b175449c3d314bd1a855 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width