From: Richard M. <mu...@cd...> - 2010-06-17 21:31:12
|
Sounds good. I added a copy of your module into the subversion tree so that everyone can access a common copy. Let me know if you prefer it not live here (it won't be part of the official python-control distributions in its current location, but is accessible to people via a subversion checkout from SourceForce). -richard On 17 Jun 2010, at 14:18 , Ryan Krauss wrote: > That sounds great. It is good to know other people are working on > this. I have had a few masters students ticker with it, but have been > more or less been working on my own. > > I would be glad to be on both lists, but please use my list email: > rya...@gm.... > > My TransferFunction class is basically a signal.ltisys with num and > den as poly1d's (also from scipy). I mainly use the RootLocus and > FreqResp methods along with the feedback function in my courses. > >> * You have implemented a couple of functions that I would love to pull into the python-control >> library, including root locus plots and c2d support. Pulling those in would be a good way to see >> how much synergy there is (based on how much rewrite is required). If this is OK by you, I >> could give it a shot and let you know how it goes. > > The zoh c2d stuff took some work and I am happy with how it turned out > (but I am not a digital control expert). So, this seems like a great > first step. > >> * Going the other way, I've been trying to write the python-control code so that any object that >> has the right attributes and/or member functions can be used. So, for example, the nyquist() >> function should (eventually) work on any object for which there is a freqresp() member function >> or a num and den attribute. > > I have tried to follow a similar approach where anything that has a > num and den can be used in various parts of the code. > > For SISO systems, I think the code pretty much does what I would like > it to. It could definitely use some well defined tests and better > documentation and the scrutiny of more eyes on it, but I am more or > less happy with it. > > The biggest need from my point of view is state-space stuff and > especially MIMO. Actually, I don't even know if my code can elegantly > handle SIMO. I need some SIMO tools for a project I am working on > this summer at it is a little painful. > > I am certainly open to helping add new features. My rlocfind is > slightly clumsy because I don't know who to click on a point on a plot > and have IPython get the coordinates (without creating a wxPython gui > just for the controls analysis or something). > > I will download your code in the next couple of days and give you my > thoughts on how difficult it would be to combine the two code bases. > > -- > Ryan Krauss, Ph.D. > Assistant Professor > Mechanical Engineering > Southern Illinois University Edwardsville > > > > On Thu, Jun 17, 2010 at 3:43 PM, Richard Murray <mu...@cd...> wrote: >> Hi Ryan. Good timing! I had just been trolling the web looking for others who are implementing control packages using python. Your name had already come up when I did a check a year or so back, but I was thinking that I would contact you to find out how things are going. And before I did, your message arrived! >> >> It would be great to find a way to combine efforts. I've got a couple of people who have expressed interest in adding to the functionality of the python-control package, so one possibility would be for us to take some of the functions that you have written and incorporate them into what we have so far. That would give us a sense of where the remaining gaps are and would allow us to look for some ways to continue to combine efforts. >> >> There are a couple of possible next steps: >> >> * You have implemented a couple of functions that I would love to pull into the python-control library, including root locus plots and c2d support. Pulling those in would be a good way to see how much synergy there is (based on how much rewrite is required). If this is OK by you, I could give it a shot and let you know how it goes. >> >> * Going the other way, I've been trying to write the python-control code so that any object that has the right attributes and/or member functions can be used. So, for example, the nyquist() function should (eventually) work on any object for which there is a freqresp() member function or a num and den attribute. It would be interesting to try this out and see whether we I can modify the python-control functions so that one of your TransferFunction objects could be passed to python-control functions. >> >> * Along these lines, if there are particular functions that you have been thinking about implementing next, please let us know so that we can either put them higher on the list or put them lower (if you will be working on them). We haven't yet done a prioritization, but my rough goal is to be able to run all of the examples in the controls book I wrote with Astrom (so that we can start using python in our classes as well), followed by some of the more advanced tools we use in a second quarter controls course (includes optimal control, trajectory generation, Kalman filter + extensions, etc). >> >> * Getting more active, if you would like to be signed up for either the python-control-announce list (low volume, summaries of when things are added) or the python-control-discuss (higher volume, used by people working on the project), just let me know. I'm cc'ing the latter list so that others know about the conversation. >> >> * Finally, if you actually have time to participate in the integration effort yourself, this would be wonderful. The "obvious" thing to do is to take the union of your TransferFunction class and the python-control TransferFunction class, then start working on generalizing various things to work for state space. For SISO this is trivial (signal.ltisys already keeps both num/den and ABCD representations for all objects), but gets tricker for things that might be MIMO. >> >> OK, that's probably enough for now -:). Let me know what you think about any and all of this. It would be great to collaborate! >> >> -richard >> >> On 17 Jun 2010, at 13:08 , Ryan Krauss wrote: >> >>> Richard, >>> >>> It looks like you are still actively developing a controls module for >>> Python. I have used mine for teaching a first undergraduate controls >>> course twice now and am relatively happy with it. It is poorly >>> documented and doesn't really support state-space stuff yet, but it >>> basically works for me. Let me know if you think it makes sense to >>> combined our efforts somehow (I don't have a ton of time to spend on >>> this, but would love to see other professors use Python for controls). >>> >>> Thanks, >>> >>> Ryan >>> >>> p.s. The version on my school webpage is slightly old. I need to fix >>> that. Here are links to the temporary home of the latest versions >>> from the course webpage: >>> http://www.cs.siue.edu/~rkrauss/450/2010/controls_dist/controls-1.1.3.tar.gz >>> http://www.cs.siue.edu/~rkrauss/450/2010/controls_dist/controls-1.1.3.win32.exe >>> >>> -- >>> Ryan Krauss, Ph.D. >>> Assistant Professor >>> Mechanical Engineering >>> Southern Illinois University Edwardsville >> >> |