GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||
GeezerVison is showing github.com — Discrete to continuous by kletze · Pull Request #888 · python-control/python-control Conversation
|
|
I'm not sure this function is really needed. What's the use case where one wants to convert from continuous time to a (zero-order hold) continuous time model? If we do include this, it needs to use python-control coding conventions and include unit tests (in the |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
thanks for the contribution! I have not run into a need for this function but it has been suggested before in #294 , and it is available in Matlab https://www.mathworks.com/help/control/ref/dynamicsystem.d2c.html (but not, as far as I can tell, in scipy). In addition to adding unit tests, I suggest moving this to being a method of the LTI class in lti.py because it applies equally to both ss and tf systems. and adding a function that calls that method. Please also see the example of lti.sample_system to see how to properly pass other system parameters like signal and system names. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
I just found that Harold has a cont2discrete method — see might have some good ideas. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
Possibly my most useless spent week on a nerdy subject 😃 It is certainly possible but like Richard, I don't know what value it adds to anything. I just generalized this paper. Not that it makes it more useful but I was neck deep in IQCs so seemed simple enough. Didn't publish it but put it in The trick is to know how you ended up with that particular discrete model. Otherwise if you go --> zoh this way and tustin <-- this way, things get complicated very quickly. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Hi folks, I actually ended up here precisely because I just started using the controls system toolbox and was looking for an equivalent of the MATLAB |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Seems like a valid use case (which is what I was asking about). A simple implementation is in this PR, but it needs to follow coding conventions, include unit tests, and be documented (in the user manual). @kletze Are you available to update? If not, perhaps @tobin can take over this PR? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Note that, there is no such unique mapping, so you have to make some decision on how to map it back from z to s domain, hence the discussion above. If you have experimental data it is better to get the rest of the models to z domain. But I guess fighting this point forever is not useful in particular for the academic use, so probably there is a need for it. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
I have an (old) implementation that I use, but also in this case it is important to modify the code to follow your conventions. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
The function discrete_to_continuous is important because of the design of discrete controllers, but it is important to have other methods as only zoh (in particular in education). Usually we proposed to our students the following method in order to design a discrete controller:
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
If someone takes a crack at updating this PR to include more methods, in addition to utilizing @robertobucher's code, you might take a look at @ilayn's implementation of |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
I'm happy to take a crack at it next week.
…On Wed, Nov 27, 2024, 08:11 Richard Murray ***@***.***> wrote:
If someone takes a crack at updating this PR to include more methods, in
addition to utilizing @robertobucher <https://github.com/robertobucher>'s
code, you might take a look at @ilayn <https://github.com/ilayn>'s
implementation of undiscretize
<https://github.com/ilayn/harold/blob/2b06ccce1dd64f5d7171fe9e4c914a83c0ecd3d1/harold/_discrete_funcs.py#L220>
in harald <https://github.com/ilayn/harold>.
—
Reply to this email directly, view it on GitHub
<#888 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AABJN2QZ6NV3GM3AN4DCBWD2CXVKLAVCNFSM6AAAAABSPGB4EKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMBUGI3DOMBXGE>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
My original use case for this PR was to change the sampling time of models estimated in the discrete-time domain from measured values. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
The bilinear transformation ('tustin') is implemented in slicot, it is part of slycot 0.6.
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
This PR is more than 3 years old. Unless there are plans to rebase and revise it, I suggest we close it out. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.