From: Steve B. <sbr...@Pr...> - 2010-12-08 18:14:41
|
Hi Richard, We wanted to give you an update on our work with python-control. 1. MIMO - The most important item is a new LTI base class to support MIMO (and StateSpace and TransferFunction derived classes). This is discussed in the document lti_overhaul.pdf, and we have a skeleton of the python code, skeleton.py. 2. Documentation - Python, NumPy, and SciPy use Sphinx to generate the documentation found at their respective websites. For purposes of consistency, we will use the same. An example is provided in html.zip 3. New Functions and Unit Tests - We have implemented the gram, rss, and hsvd functions. We have also implemented unit tests for these functions as well as ctrb and obsv using the Python unittest framework. Next we are planning on wrapping SLICOT routines to add balred and modred functions. 4. SVN Merge - After getting your feedback, we would like to implement the new MIMO Lti2 class. Once we have all of the wrinkles ironed out, we intend to make a merge back into the SVN repository. Until then, we are doing internal version control using Mercurial. Thanks, and we look forward to getting your feedback. Steve, Kevin, and Lauren |
From: Richard M. <mu...@cd...> - 2010-12-17 12:35:45
|
Steve, Kevin and Lauren sent me this update a while back, but it looks like my forward to the list didn't go through. Sending again, so that I (and others) can respond to it. -richard Begin forwarded message: > From: Steve Brunton <sbr...@Pr...> > Date: 8 December 2010 8:08:41 PST > To: Richard Murray <mu...@cd...> > Cc: Kevin Chen <kk...@Pr...>, Lauren Padilla <lpa...@Pr...>, Steve Brunton <sbr...@Pr...>, Brandt Belson <bb...@Pr...> > Subject: python-control update > > Hi Richard, > > We wanted to give you an update on our work with python-control. > > 1. MIMO - The most important item is a new LTI base class to support MIMO (and StateSpace and TransferFunction derived classes). This is discussed in the document lti_overhaul.pdf, and we have a skeleton of the python code, skeleton.py. > > 2. Documentation - Python, NumPy, and SciPy use Sphinx to generate the documentation found at their respective websites. For purposes of consistency, we will use the same. An example is provided in html.zip > > 3. New Functions and Unit Tests - We have implemented the gram, rss, and hsvd functions. We have also implemented unit tests for these functions as well as ctrb and obsv using the Python unittest framework. Next we are planning on wrapping SLICOT routines to add balred and modred functions. > > 4. SVN Merge - After getting your feedback, we would like to implement the new MIMO Lti2 class. Once we have all of the wrinkles ironed out, we intend to make a merge back into the SVN repository. Until then, we are doing internal version control using Mercurial. > > Thanks, and we look forward to getting your feedback. > > Steve, Kevin, and Lauren > |
From: Richard M. <mu...@cd...> - 2010-12-18 03:33:41
|
A couple of comments on your suggested changes (hopefully others will chime in as well): >> 1. MIMO - The most important item is a new LTI base class to support MIMO (and StateSpace and TransferFunction derived classes). This is discussed in the document lti_overhaul.pdf, and we have a skeleton of the python code, skeleton.py. The basic approach sounds fine, but I would suggest having the class named control.lti since I don't think python is going to get confused between that class and signal.lti. To some extent all of this is hidden from the end user, so probably doesn't matter much (just aesthetically I never like new classes that use '2' as the modifier). Other possibilities would be MIMO, LtiMIMO, etc. To Roberto's point, I think we should also think through how we want to do discrete time systems. Comments (and alternatives) on the class structure I outline would be great. I would eventually like to allow for time delayed systems as well (similar to MATLAB). >> 2. Documentation - Python, NumPy, and SciPy use Sphinx to generate the documentation found at their respective websites. For purposes of consistency, we will use the same. An example is provided in html.zip Sounds right to me. >> 3. New Functions and Unit Tests - We have implemented the gram, rss, and hsvd functions. We have also implemented unit tests for these functions as well as ctrb and obsv using the Python unittest framework. Next we are planning on wrapping SLICOT routines to add balred and modred functions. Good. We need to go through and start implementing unit tests for all of the other basic functions, so we can make sure that we have fairly comprehensive testing built into the package. >> 4. SVN Merge - After getting your feedback, we would like to implement the new MIMO Lti2 class. Once we have all of the wrinkles ironed out, we intend to make a merge back into the SVN repository. Until then, we are doing internal version control using Mercurial. Let me know what you think about the class name, but I think it is OK to commit when you are ready. If you are going to break some functions due to your changes, we should create a branch and update things there, so that trunk is always a working copy. -richard |
From: Roberto B. <rob...@su...> - 2010-12-17 14:58:53
|
Please don't forget to implement a field to handle the sampling time for managing continous time and discrete time systems (for example Tsamp=0-> continous time system, Tsamp > 0 =Ts -> discrete time system) Regards Roberto On Friday 17 December 2010 13:35:33 Richard Murray wrote: > Steve, Kevin and Lauren sent me this update a while back, but it looks like > my forward to the list didn't go through. Sending again, so that I (and > others) can respond to it. > > -richard > > Begin forwarded message: > > From: Steve Brunton <sbr...@Pr...> > > Date: 8 December 2010 8:08:41 PST > > To: Richard Murray <mu...@cd...> > > Cc: Kevin Chen <kk...@Pr...>, Lauren Padilla > > <lpa...@Pr...>, Steve Brunton <sbr...@Pr...>, Brandt > > Belson <bb...@Pr...> Subject: python-control update > > > > Hi Richard, > > > > We wanted to give you an update on our work with python-control. > > > > 1. MIMO - The most important item is a new LTI base class to support > > MIMO (and StateSpace and TransferFunction derived classes). This is > > discussed in the document lti_overhaul.pdf, and we have a skeleton of > > the python code, skeleton.py. > > > > 2. Documentation - Python, NumPy, and SciPy use Sphinx to generate the > > documentation found at their respective websites. For purposes of > > consistency, we will use the same. An example is provided in html.zip > > > > 3. New Functions and Unit Tests - We have implemented the gram, rss, > > and hsvd functions. We have also implemented unit tests for these > > functions as well as ctrb and obsv using the Python unittest framework. > > Next we are planning on wrapping SLICOT routines to add balred and > > modred functions. > > > > 4. SVN Merge - After getting your feedback, we would like to implement > > the new MIMO Lti2 class. Once we have all of the wrinkles ironed out, > > we intend to make a merge back into the SVN repository. Until then, we > > are doing internal version control using Mercurial. > > > > Thanks, and we look forward to getting your feedback. > > > > Steve, Kevin, and Lauren -- ----------------------------------------------------------------------------- Great spirits have always encountered violent opposition from mediocre minds (A. Einstein) ---------------------------------------------------------------------------- University of Applied Sciences of Southern Switzerland Dept. Innovative Technologies CH-6928 Lugano-Manno http://web.dti.supsi.ch/~bucher |
From: Richard M. <mu...@cd...> - 2010-12-17 19:32:49
|
What I discussed with the Princeton group when they visited me in Pasadena was actually defining a separate class for discrete time systems, rather than having a field that indicated the type of system. This seems cleaner and with the late binding features in python should let existing functions that make sense in discrete time work without change. So we might have a class structure that looks like * Lti2 * StateSpace * DTStateSpace * CTStateSpace * TDStateSpace (time-delayed systems) * TransferFunction * DTTransferFunction * CTTransferFunction Of course, many functions would just work on the StateSpace and TransferFunction classes directly (or even LTI2, for things that are really generic). More comments on the original proposals later in the day. -richard On 17 Dec 2010, at 6:58 , Roberto Bucher wrote: > Please don't forget to implement a field to handle the sampling time for > managing continous time and discrete time systems (for example Tsamp=0-> > continous time system, Tsamp > 0 =Ts -> discrete time system) > > Regards > > Roberto > > > On Friday 17 December 2010 13:35:33 Richard Murray wrote: >> Steve, Kevin and Lauren sent me this update a while back, but it looks like >> my forward to the list didn't go through. Sending again, so that I (and >> others) can respond to it. >> >> -richard >> >> Begin forwarded message: >>> From: Steve Brunton <sbr...@Pr...> >>> Date: 8 December 2010 8:08:41 PST >>> To: Richard Murray <mu...@cd...> >>> Cc: Kevin Chen <kk...@Pr...>, Lauren Padilla >>> <lpa...@Pr...>, Steve Brunton <sbr...@Pr...>, Brandt >>> Belson <bb...@Pr...> Subject: python-control update >>> >>> Hi Richard, >>> >>> We wanted to give you an update on our work with python-control. >>> >>> 1. MIMO - The most important item is a new LTI base class to support >>> MIMO (and StateSpace and TransferFunction derived classes). This is >>> discussed in the document lti_overhaul.pdf, and we have a skeleton of >>> the python code, skeleton.py. >>> >>> 2. Documentation - Python, NumPy, and SciPy use Sphinx to generate the >>> documentation found at their respective websites. For purposes of >>> consistency, we will use the same. An example is provided in html.zip >>> >>> 3. New Functions and Unit Tests - We have implemented the gram, rss, >>> and hsvd functions. We have also implemented unit tests for these >>> functions as well as ctrb and obsv using the Python unittest framework. >>> Next we are planning on wrapping SLICOT routines to add balred and >>> modred functions. >>> >>> 4. SVN Merge - After getting your feedback, we would like to implement >>> the new MIMO Lti2 class. Once we have all of the wrinkles ironed out, >>> we intend to make a merge back into the SVN repository. Until then, we >>> are doing internal version control using Mercurial. >>> >>> Thanks, and we look forward to getting your feedback. >>> >>> Steve, Kevin, and Lauren > > -- > ----------------------------------------------------------------------------- > Great spirits have always encountered violent opposition > from mediocre minds (A. Einstein) > ---------------------------------------------------------------------------- > University of Applied Sciences of Southern Switzerland > Dept. Innovative Technologies > CH-6928 Lugano-Manno > http://web.dti.supsi.ch/~bucher |