From: Richard M. <mu...@cd...> - 2010-06-17 20:43:16
|
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 |