You can subscribe to this list here.
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(19) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(11) |
Dec
(5) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
|
Feb
(113) |
Mar
(12) |
Apr
(27) |
May
(2) |
Jun
(16) |
Jul
(6) |
Aug
(6) |
Sep
|
Oct
(3) |
Nov
(9) |
Dec
(2) |
2012 |
Jan
(5) |
Feb
(11) |
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
(7) |
Oct
(18) |
Nov
(18) |
Dec
|
2013 |
Jan
(4) |
Feb
(1) |
Mar
(3) |
Apr
(1) |
May
|
Jun
(33) |
Jul
(2) |
Aug
(5) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2014 |
Jan
(1) |
Feb
|
Mar
(8) |
Apr
|
May
(3) |
Jun
(3) |
Jul
(9) |
Aug
(5) |
Sep
(6) |
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(5) |
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(6) |
Sep
|
Oct
|
Nov
(2) |
Dec
|
2020 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(4) |
Oct
|
Nov
|
Dec
|
From: Alan Z. <a.z...@sh...> - 2012-04-02 18:31:26
|
To install control-Python Ryan Krauss advised me to type: sudo python setup.py install in Terminal on my Mac. I obtain: Python2012 alanzinober$ sudo python setup.py install Password: running install running bdist_egg running egg_info writing control.egg-info/PKG-INFO writing top-level names to control.egg-info/top_level.txt writing dependency_links to control.egg-info/dependency_links.txt error: package directory 'src' does not exist unknown-78-ca-39-b1-18-cf:Python2012 alanzinober$ src does not exist ? Perhaps from a different Python installation package. I am using Python2.7 on a Mac. I installed Pythons using fonnesbeck-ScipySuperpack-fb2fc07 . I believe that I have installed scipy, numpy and matplotlib, and other items in the package. Perhaps more detailed instruction for control-Python might assist me. Alan -- Sent from my MacBook Pro |
From: Richard M. <mu...@cd...> - 2012-02-28 16:27:45
|
I haven't see anything like this, but if you write something up, send it to me and we can include in the next release. Probably the best way to do this is to set up an optional argument to bode_plot whose value is a list with the required values. Eg: bode_plot(..., phase_matching = (freq, val)) -richard On 27 Feb 2012, at 13:53 , Jason Moore wrote: > Hi, > > I was curious if anyone has any code showing or could explain how to match phase curves for multiple systems on a Bode plot. Matlab implements this with their bodeplot and bodeoptions commands. I've tried coding something up a couple times now, but I'm confusing myself and haven't gotten the solution yet. > > Jason > > -- > http://mae.ucdavis.edu/~biosport/jkm/ > Sports Biomechanics Lab, UC Davis > Davis Bike Collective Minister, Davis, CA > BikeDavis.info > Office: +01 530-752-2163 > Lab: +01 530-752-2235 > Home: +01 530-753-0794 > > ------------------------------------------------------------------------------ > Try before you buy = See our experts in action! > The most comprehensive online learning library for Microsoft developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, > Metro Style Apps, more. Free future releases when you subscribe now! > http://p.sf.net/sfu/learndevnow-dev2_______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss |
From: Jason M. <moo...@gm...> - 2012-02-27 21:54:21
|
Hi, I was curious if anyone has any code showing or could explain how to match phase curves for multiple systems on a Bode plot. Matlab implements this with their bodeplot and bodeoptions commands. I've tried coding something up a couple times now, but I'm confusing myself and haven't gotten the solution yet. Jason -- http://mae.ucdavis.edu/~biosport/jkm/ Sports Biomechanics Lab <http://biosport.ucdavis.edu>, UC Davis Davis Bike Collective <http://www.davisbikecollective.org> Minister, Davis, CA BikeDavis.info Office: +01 530-752-2163 Lab: +01 530-752-2235 Home: +01 530-753-0794 |
From: Richard M. <mu...@cd...> - 2012-02-20 02:36:57
|
These are "expected" in these sense that I also see them and haven't gone through the code and inserted the checks required to get rid of them. -richard On 19 Feb 2012, at 12:44 , Hamid Mokhtarzadeh wrote: > Hi Richard, > > First off thank you for your efforts in developing the Control toolbox for python. I've installed the latest version (0.5b), but when running the test_all.py script I get some warning messages that I wanted to run by you. Attached is the response I receive. Would you be able to give any insight on the source of these messages? Is something missing on my part or are these to be expected. > > Many thanks in advance, > -Hamid > (note, I had a similar issue using version 0.5a too) > <Hamid Test Messages.txt> |
From: Ryan K. <rk...@si...> - 2012-02-15 06:39:54
|
FYI, I just booted into Windows 7 to test an installer I made. It seems to have worked and I think this is all I did: python setup.py bdist_wininst -- Ryan Krauss, Ph.D. Assistant Professor Mechanical Engineering Southern Illinois University Edwardsville On Wed, Feb 15, 2012 at 12:37 AM, Ryan Krauss <rk...@si...> wrote: > Thanks. > > -- > Ryan Krauss, Ph.D. > Assistant Professor > Mechanical Engineering > Southern Illinois University Edwardsville > > > > On Wed, Feb 15, 2012 at 12:24 AM, Richard Murray <mu...@cd...> wrote: >> OK, control-0.5b.tar.gz is up on the SourceForge site. >> >> -richard >> >> On 14 Feb 2012, at 22:06 , Richard Murray wrote: >> >>> I'll try to generate a 0.5b snapshot tonight and put it up on source forge. I haven't done a windows installer before, so not sure about that part. >>> >>> -richard >>> >>> On 14 Feb 2012, at 21:32 , Ryan Krauss wrote: >>> >>>> I am going to demonstrate using python-control in my class tomorrow. >>>> We are finally at a point where my students need it for homework. Is >>>> there a snapshot of v. 0.5b that can be downloaded somewhere? My >>>> students will need things to work without slycot. >>>> >>>> They will need an easy way to download and install 0.5b. Some of them >>>> are reluctant Python users who won't know how to download and install >>>> the latest source from svn (we may lose them to another control design >>>> software if we don't help them - you know which one I speak of - the >>>> horror!). >>>> >>>> I can use distutils to make tarballs, zip files, and windows >>>> installers from whatever is on my harddrive, but I don't know if that >>>> is best or necessary. >>>> >>>> Further, some of my students will be working on university computers >>>> where they won't have the ability to install the module on the C >>>> drive. I think the best solution for them will be to basically create >>>> a folder in the directory where they are working on their homework >>>> called "control" and copying everything in the "src" folder into that >>>> directory. Is there a way to make distutils create a windows >>>> installer for this situation? >>>> >>>> Thanks, >>>> >>>> Ryan >>>> >>>> >>>> -- >>>> Ryan Krauss, Ph.D. >>>> Assistant Professor >>>> Mechanical Engineering >>>> Southern Illinois University Edwardsville >>>> >>>> ------------------------------------------------------------------------------ >>>> Virtualization & Cloud Management Using Capacity Planning >>>> Cloud computing makes use of virtualization - but cloud computing >>>> also focuses on allowing computing to be delivered as a service. >>>> http://www.accelacomm.com/jaw/sfnl/114/51521223/ >>>> _______________________________________________ >>>> python-control-discuss mailing list >>>> pyt...@li... >>>> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >>> >>> >>> ------------------------------------------------------------------------------ >>> Virtualization & Cloud Management Using Capacity Planning >>> Cloud computing makes use of virtualization - but cloud computing >>> also focuses on allowing computing to be delivered as a service. >>> http://www.accelacomm.com/jaw/sfnl/114/51521223/ >>> _______________________________________________ >>> python-control-discuss mailing list >>> pyt...@li... >>> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >> >> >> ------------------------------------------------------------------------------ >> Virtualization & Cloud Management Using Capacity Planning >> Cloud computing makes use of virtualization - but cloud computing >> also focuses on allowing computing to be delivered as a service. >> http://www.accelacomm.com/jaw/sfnl/114/51521223/ >> _______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss |
From: Ryan K. <rk...@si...> - 2012-02-15 06:37:25
|
Thanks. -- Ryan Krauss, Ph.D. Assistant Professor Mechanical Engineering Southern Illinois University Edwardsville On Wed, Feb 15, 2012 at 12:24 AM, Richard Murray <mu...@cd...> wrote: > OK, control-0.5b.tar.gz is up on the SourceForge site. > > -richard > > On 14 Feb 2012, at 22:06 , Richard Murray wrote: > >> I'll try to generate a 0.5b snapshot tonight and put it up on source forge. I haven't done a windows installer before, so not sure about that part. >> >> -richard >> >> On 14 Feb 2012, at 21:32 , Ryan Krauss wrote: >> >>> I am going to demonstrate using python-control in my class tomorrow. >>> We are finally at a point where my students need it for homework. Is >>> there a snapshot of v. 0.5b that can be downloaded somewhere? My >>> students will need things to work without slycot. >>> >>> They will need an easy way to download and install 0.5b. Some of them >>> are reluctant Python users who won't know how to download and install >>> the latest source from svn (we may lose them to another control design >>> software if we don't help them - you know which one I speak of - the >>> horror!). >>> >>> I can use distutils to make tarballs, zip files, and windows >>> installers from whatever is on my harddrive, but I don't know if that >>> is best or necessary. >>> >>> Further, some of my students will be working on university computers >>> where they won't have the ability to install the module on the C >>> drive. I think the best solution for them will be to basically create >>> a folder in the directory where they are working on their homework >>> called "control" and copying everything in the "src" folder into that >>> directory. Is there a way to make distutils create a windows >>> installer for this situation? >>> >>> Thanks, >>> >>> Ryan >>> >>> >>> -- >>> Ryan Krauss, Ph.D. >>> Assistant Professor >>> Mechanical Engineering >>> Southern Illinois University Edwardsville >>> >>> ------------------------------------------------------------------------------ >>> Virtualization & Cloud Management Using Capacity Planning >>> Cloud computing makes use of virtualization - but cloud computing >>> also focuses on allowing computing to be delivered as a service. >>> http://www.accelacomm.com/jaw/sfnl/114/51521223/ >>> _______________________________________________ >>> python-control-discuss mailing list >>> pyt...@li... >>> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >> >> >> ------------------------------------------------------------------------------ >> Virtualization & Cloud Management Using Capacity Planning >> Cloud computing makes use of virtualization - but cloud computing >> also focuses on allowing computing to be delivered as a service. >> http://www.accelacomm.com/jaw/sfnl/114/51521223/ >> _______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss > > > ------------------------------------------------------------------------------ > Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing > also focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss |
From: <mur...@us...> - 2012-02-15 06:25:22
|
Revision: 182 http://python-control.svn.sourceforge.net/python-control/?rev=182&view=rev Author: murrayrm Date: 2012-02-15 06:25:15 +0000 (Wed, 15 Feb 2012) Log Message: ----------- updating revision number Modified Paths: -------------- trunk/setup.py Modified: trunk/setup.py =================================================================== --- trunk/setup.py 2012-01-08 03:33:41 UTC (rev 181) +++ trunk/setup.py 2012-02-15 06:25:15 UTC (rev 182) @@ -4,7 +4,7 @@ from setuptools import setup setup(name = 'control', - version = '0.5b', + version = '0.5c', description = 'Python Control Systems Library', author = 'Richard Murray', author_email = 'mu...@cd...', This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Richard M. <mu...@cd...> - 2012-02-15 06:24:57
|
OK, control-0.5b.tar.gz is up on the SourceForge site. -richard On 14 Feb 2012, at 22:06 , Richard Murray wrote: > I'll try to generate a 0.5b snapshot tonight and put it up on source forge. I haven't done a windows installer before, so not sure about that part. > > -richard > > On 14 Feb 2012, at 21:32 , Ryan Krauss wrote: > >> I am going to demonstrate using python-control in my class tomorrow. >> We are finally at a point where my students need it for homework. Is >> there a snapshot of v. 0.5b that can be downloaded somewhere? My >> students will need things to work without slycot. >> >> They will need an easy way to download and install 0.5b. Some of them >> are reluctant Python users who won't know how to download and install >> the latest source from svn (we may lose them to another control design >> software if we don't help them - you know which one I speak of - the >> horror!). >> >> I can use distutils to make tarballs, zip files, and windows >> installers from whatever is on my harddrive, but I don't know if that >> is best or necessary. >> >> Further, some of my students will be working on university computers >> where they won't have the ability to install the module on the C >> drive. I think the best solution for them will be to basically create >> a folder in the directory where they are working on their homework >> called "control" and copying everything in the "src" folder into that >> directory. Is there a way to make distutils create a windows >> installer for this situation? >> >> Thanks, >> >> Ryan >> >> >> -- >> Ryan Krauss, Ph.D. >> Assistant Professor >> Mechanical Engineering >> Southern Illinois University Edwardsville >> >> ------------------------------------------------------------------------------ >> Virtualization & Cloud Management Using Capacity Planning >> Cloud computing makes use of virtualization - but cloud computing >> also focuses on allowing computing to be delivered as a service. >> http://www.accelacomm.com/jaw/sfnl/114/51521223/ >> _______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss > > > ------------------------------------------------------------------------------ > Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing > also focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss |
From: Richard M. <mu...@cd...> - 2012-02-15 06:24:02
|
I'll try to generate a 0.5b snapshot tonight and put it up on source forge. I haven't done a windows installer before, so not sure about that part. -richard On 14 Feb 2012, at 21:32 , Ryan Krauss wrote: > I am going to demonstrate using python-control in my class tomorrow. > We are finally at a point where my students need it for homework. Is > there a snapshot of v. 0.5b that can be downloaded somewhere? My > students will need things to work without slycot. > > They will need an easy way to download and install 0.5b. Some of them > are reluctant Python users who won't know how to download and install > the latest source from svn (we may lose them to another control design > software if we don't help them - you know which one I speak of - the > horror!). > > I can use distutils to make tarballs, zip files, and windows > installers from whatever is on my harddrive, but I don't know if that > is best or necessary. > > Further, some of my students will be working on university computers > where they won't have the ability to install the module on the C > drive. I think the best solution for them will be to basically create > a folder in the directory where they are working on their homework > called "control" and copying everything in the "src" folder into that > directory. Is there a way to make distutils create a windows > installer for this situation? > > Thanks, > > Ryan > > > -- > Ryan Krauss, Ph.D. > Assistant Professor > Mechanical Engineering > Southern Illinois University Edwardsville > > ------------------------------------------------------------------------------ > Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing > also focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss |
From: Jason M. <moo...@gm...> - 2012-02-15 06:22:08
|
Ryan, One method we've used for classes is to provide a virtual machine with all needed software installed. So the students simply download and install virtualbox, then download the image you've prepared with all the software properly working. This lets the student get straight to coding instead of worrying about the somewhat painful install process. Jason On Tue, Feb 14, 2012 at 9:32 PM, Ryan Krauss <rk...@si...> wrote: > I am going to demonstrate using python-control in my class tomorrow. > We are finally at a point where my students need it for homework. Is > there a snapshot of v. 0.5b that can be downloaded somewhere? My > students will need things to work without slycot. > > They will need an easy way to download and install 0.5b. Some of them > are reluctant Python users who won't know how to download and install > the latest source from svn (we may lose them to another control design > software if we don't help them - you know which one I speak of - the > horror!). > > I can use distutils to make tarballs, zip files, and windows > installers from whatever is on my harddrive, but I don't know if that > is best or necessary. > > Further, some of my students will be working on university computers > where they won't have the ability to install the module on the C > drive. I think the best solution for them will be to basically create > a folder in the directory where they are working on their homework > called "control" and copying everything in the "src" folder into that > directory. Is there a way to make distutils create a windows > installer for this situation? > > Thanks, > > Ryan > > > -- > Ryan Krauss, Ph.D. > Assistant Professor > Mechanical Engineering > Southern Illinois University Edwardsville > > > ------------------------------------------------------------------------------ > Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing > also focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss > -- http://mae.ucdavis.edu/~biosport/jkm/ Sports Biomechanics Lab <http://biosport.ucdavis.edu>, UC Davis Davis Bike Collective <http://www.davisbikecollective.org> Minister, Davis, CA BikeDavis.info Office: +01 530-752-2163 Lab: +01 530-752-2235 Home: +01 530-753-0794 |
From: Ryan K. <rk...@si...> - 2012-02-15 05:32:29
|
I am going to demonstrate using python-control in my class tomorrow. We are finally at a point where my students need it for homework. Is there a snapshot of v. 0.5b that can be downloaded somewhere? My students will need things to work without slycot. They will need an easy way to download and install 0.5b. Some of them are reluctant Python users who won't know how to download and install the latest source from svn (we may lose them to another control design software if we don't help them - you know which one I speak of - the horror!). I can use distutils to make tarballs, zip files, and windows installers from whatever is on my harddrive, but I don't know if that is best or necessary. Further, some of my students will be working on university computers where they won't have the ability to install the module on the C drive. I think the best solution for them will be to basically create a folder in the directory where they are working on their homework called "control" and copying everything in the "src" folder into that directory. Is there a way to make distutils create a windows installer for this situation? Thanks, Ryan -- Ryan Krauss, Ph.D. Assistant Professor Mechanical Engineering Southern Illinois University Edwardsville |
From: Ryan K. <rk...@si...> - 2012-02-15 05:25:38
|
FWIW, I recently debugged an issue with the zoh c2d for my controls module. It should be fairly straightforward to clean this up and switch it over to python-control. My stuff is slightly clunky, but I think I basically have c2d working for transfer functions. -- Ryan Krauss, Ph.D. Assistant Professor Mechanical Engineering Southern Illinois University Edwardsville On Tue, Dec 27, 2011 at 3:42 PM, Richard Murray <mu...@cd...> wrote: > My suggestion would be to have DStateSpace derive from Lti. To handle situations were the operations are the same, we could split out the add, multiple, etc routines from StateSpace and instead make them utility functions (not part of any class). Then statesp._add() could be called by both StateSpace.__add__ and DStateSpace.__add__ after whatever checks are required. > > -richard > > On 27 Dec 2011, at 8:37 , Gustavo Goretkin wrote: > >> So both TransferFunction and StateSpace inherit from Lti, which is a very simple class containing only two fields. >> >> Should I then make a DLti class with an additional field with the sample time? Or should DStateSpace inherit from StateSpace? Some of the DStatesSpace methods will closely mirror StateSpace methods. Namely, for the different binary operations, like multiplication, feedback, adding, the code needs to check that the sample time of both systems is the same, but other than that the matrix manipulation is the same. >> >> Is there another class hierarchy I should consider too? >> >> Thanks, >> Gustavo >> >> On Fri, Nov 25, 2011 at 9:52 PM, Richard Murray <mu...@cd...> wrote: >> There's been some discussion on how to handle discrete time systems in the past. It would be great to get the discrete time routines into python-control as part of the next release. If I remember correctly, the approach that Roberto (or someone) originally took was to put in the field Tsamp into the StateSpace class and if this was nonzero then assume it was a discrete-time system (as you described). I think it would be a bit cleaner to define a separate class for discrete-time systems, perhaps something like this: >> >> Lti - general object for linear time invariant systems >> StateSpace - continuous time, state space representation >> TransferFunction - continuous time, frequency domain representation >> DStateSpace - discrete time, state space representation >> DTransferFunction - discrete time, state space representation >> >> The 'D' versions would have to have all of the methods for manipulating discrete time systems and eventually we would have to update various time and frequency domain routines to support them (bode, nyquist, lsim, etc). >> >> Of course, the person who does the work gets to make at least the initial choice of how to implement. So perhaps Gustavo should take a first cut based on what makes sense to him, then we can see how things look and modify if there is a strong feel that we should implement it differently. Note that many things are likely to break/behave oddly when discrete time first gets added since a lot of functions don't check to see what type of system they are passed. >> >> In terms of repositories: SourceForge is the "official" home of python-control, but of course others are welcome to generate versions of their own, which eventually should make their way back here. Eike Welk is on this list and I've been incorporating his changes as I see them. >> >> -richard >> >> On Nov 25, 2011, at 12:21 PM, Gustavo Goretkin wrote: >> >> > Hey list, >> > >> > I'd like to try use some discrete-time in python-control. >> > Specifically, I want MATLAB's c2d and dlqr. >> > >> > I'm aware of the discussion here [1] and code here [2]. yottalab.py >> > has a all the functionality I want (thanks!) but I'm not sure which >> > branch of python-control it is assuming. Specifically in c2d, line >> > line 173, there is a call to construct a statespace object which takes >> > 5 arguments A,B,C,D,Ts, but no such constructor seems to exist in >> > python-control. From the rest of the code (i.e. d2c), I infer that all >> > it seems to do is add a field called "Tsamp" to the statespace object. >> > >> > If the statespace object can represent both continuous and >> > discrete-time systems, what then should the semantics be? It looks >> > like Tsamp=0 for continuous time systems. >> > >> > It also looks like there is a repository here [3]. Is it going to be >> > merged with the sourceforge repository eventually, or other way >> > around? >> > >> > Thanks! >> > Gustavo >> > >> > [1] http://mail.scipy.org/pipermail/scipy-dev/2010-August/015468.html and >> > [2] www.dti.supsi.ch/~bucher/wp-content/uploads/2011/03/yottalab.py >> > [3] https://bitbucket.org/eike_welk/python-control >> > >> > ------------------------------------------------------------------------------ >> > All the data continuously generated in your IT infrastructure >> > contains a definitive record of customers, application performance, >> > security threats, fraudulent activity, and more. Splunk takes this >> > data and makes sense of it. IT sense. And common sense. >> > http://p.sf.net/sfu/splunk-novd2d >> > _______________________________________________ >> > python-control-discuss mailing list >> > pyt...@li... >> > https://lists.sourceforge.net/lists/listinfo/python-control-discuss >> >> >> ------------------------------------------------------------------------------ >> All the data continuously generated in your IT infrastructure >> contains a definitive record of customers, application performance, >> security threats, fraudulent activity, and more. Splunk takes this >> data and makes sense of it. IT sense. And common sense. >> http://p.sf.net/sfu/splunk-novd2d >> _______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >> >> ------------------------------------------------------------------------------ >> Write once. Port to many. >> Get the SDK and tools to simplify cross-platform app development. Create >> new or port existing apps to sell to consumers worldwide. Explore the >> Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join >> http://p.sf.net/sfu/intel-appdev_______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss > > > ------------------------------------------------------------------------------ > Write once. Port to many. > Get the SDK and tools to simplify cross-platform app development. Create > new or port existing apps to sell to consumers worldwide. Explore the > Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join > http://p.sf.net/sfu/intel-appdev > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss |
From: <mur...@us...> - 2012-01-08 03:33:48
|
Revision: 181 http://python-control.svn.sourceforge.net/python-control/?rev=181&view=rev Author: murrayrm Date: 2012-01-08 03:33:41 +0000 (Sun, 08 Jan 2012) Log Message: ----------- * Restructured documentation (not completed) * Added in code from Ryan Krauss for operation when slycot is missing * Updated version number to 0.5b * See ChangeLog for a more detailed list of changes Modified Paths: -------------- trunk/ChangeLog trunk/doc/bdalg_strings.rst trunk/doc/class_strings.rst trunk/doc/conf.py trunk/doc/index.rst trunk/doc/intro.rst trunk/doc/matlab_strings.rst trunk/doc/modsimp_strings.rst trunk/examples/rss-balred.py trunk/setup.py trunk/src/statesp.py trunk/src/xferfcn.py trunk/tests/slycot_convert_test.py Added Paths: ----------- trunk/doc/analysis.rst trunk/doc/examples.rst trunk/doc/freqplot.rst trunk/doc/modules.rst trunk/doc/synthesis.rst trunk/doc/timeresp.rst Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2012-01-08 02:57:46 UTC (rev 180) +++ trunk/ChangeLog 2012-01-08 03:33:41 UTC (rev 181) @@ -1,5 +1,59 @@ +2012-01-07 Richard Murray <murray@malabar.local> + + * doc/modules.rst: added new sections for analysis, synthesis, + frequency plots and time response. + + * doc/index.rst (Contents): added modules and examples. + + * src/xferfcn.py (_convertToTransferFunction): added check for + slycot import error. If not present, use signal.lti to perform the + conversion. Only works for SISO. + + * src/statesp.py (_convertToStateSpace): added check for slycot + import error, to allow basic functionality without the presence of + slycot (contributed by Ryan Krauss). + + * tests/slycot_convert_test.py (TestSlycot.testTF): moved slycot + import into test function, so that test script still works even if + time response is not present. + +2011-08-09 Richard Murray <murray@malabar.local> + + * src/timeresp.py: fixed doc reference to time-series-convention + +2011-08-08 Richard Murray <murray@malabar.local> + + * doc/index.rst, doc/modules.rst: Moved MATLAB section into + python-control modules file + 2011-08-07 Richard Murray <murray@malabar.local> + * doc/conf.py: added autosummary extension + + * doc/timeresp.rst: New file containing listing of functions for + time responses (step, initial, etc) + + * doc/freqplot.rst: New file listing functions for frequency + plots (bode, nyquist, etc) + + * doc/modules.rst: New file that contains a listing of the major + modules in the toolbox + + * doc/index.rst (Contents): Rearranged contents to put modules + documentation in a separate section. Also added examples section + (not quite ready yet). + +2011-08-07 Richard Murray <murray@malabar.local> + + * examples/rss-balred.py: reordered outputs from call to matlab.step + (missed this the first time around) + + * doc/matlab_strings.rst: Matlab -> MATLAB (proper spelling) + + * setup.py, doc/conf.py: updated version to 0.5b + +2011-08-07 Richard Murray <murray@malabar.local> + * doc/conf.py: Updated version numbers to 0.5a, regenerated documentation and reposted on web (note that 0.5a tag and source distribution have this wrong) Added: trunk/doc/analysis.rst =================================================================== --- trunk/doc/analysis.rst (rev 0) +++ trunk/doc/analysis.rst 2012-01-08 03:33:41 UTC (rev 181) @@ -0,0 +1,2 @@ +Control System Analysis +*********************** \ No newline at end of file Modified: trunk/doc/bdalg_strings.rst =================================================================== --- trunk/doc/bdalg_strings.rst 2012-01-08 02:57:46 UTC (rev 180) +++ trunk/doc/bdalg_strings.rst 2012-01-08 03:33:41 UTC (rev 181) @@ -1,7 +1,7 @@ -Block Diagram Algebra Routines -****************************** +Block Diagram Algebra +********************* -The Block Diagram Algebra Module -================================ +.. toctree:: + .. automodule:: bdalg :members: Modified: trunk/doc/class_strings.rst =================================================================== --- trunk/doc/class_strings.rst 2012-01-08 02:57:46 UTC (rev 180) +++ trunk/doc/class_strings.rst 2012-01-08 03:33:41 UTC (rev 181) @@ -1,12 +1,12 @@ Python-Control Classes ********************** -The State Space Module -====================== +State Space Class +================= .. automodule:: statesp :members: -The Transfer Function Module -============================ +Transfer Function Class +======================= .. automodule:: xferfcn - :members: \ No newline at end of file + :members: Modified: trunk/doc/conf.py =================================================================== --- trunk/doc/conf.py 2012-01-08 02:57:46 UTC (rev 180) +++ trunk/doc/conf.py 2012-01-08 03:33:41 UTC (rev 181) @@ -34,7 +34,8 @@ # ``sphinx.ext.viewcode`` : Include highlighted source code in the # documentation extensions = ['sphinx.ext.autodoc', 'numpydoc', 'sphinx.ext.pngmath', - 'sphinx.ext.intersphinx', 'sphinx.ext.todo'] + 'sphinx.ext.intersphinx', 'sphinx.ext.todo', + 'sphinx.ext.autosummary'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -49,7 +50,7 @@ master_doc = 'index' # General information about the project. -project = u'Python Control' +project = u'Python Control Systems Library' copyright = u'2011, Richard M. Murray et al.' # The version info for the project you're documenting, acts as replacement for @@ -57,9 +58,9 @@ # built documents. # # The short X.Y version. -version = '0.5a' +version = '0.5b' # The full version, including alpha/beta/rc tags. -release = '0.5a' +release = '0.5b' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -99,7 +100,7 @@ #should be linked to in this documentation. intersphinx_mapping = \ {'scipy':('http://docs.scipy.org/doc/scipy/reference/', None), - 'numpy':('http://docs.scipy.org/doc/numpy/reference/', None)} + 'numpy':('http://docs.scipy.org/doc/numpy', None)} #If this is True, todo and todolist produce output, else they produce nothing. #The default is False. Added: trunk/doc/examples.rst =================================================================== --- trunk/doc/examples.rst (rev 0) +++ trunk/doc/examples.rst 2012-01-08 03:33:41 UTC (rev 181) @@ -0,0 +1,2 @@ +Examples +******** Added: trunk/doc/freqplot.rst =================================================================== --- trunk/doc/freqplot.rst (rev 0) +++ trunk/doc/freqplot.rst 2012-01-08 03:33:41 UTC (rev 181) @@ -0,0 +1,15 @@ +Frequency Domain Plotting +************************* + +.. toctree:: + +Plotting routines +================= +.. autofunction:: freqplot.bode_plot +.. autofunction:: freqplot.nyquist_plot +.. autofunction:: freqplot.gangof4_plot +.. autofunction:: nichols.nichols_plot + +Utility functions +================= +.. autofunction:: freqplot.default_frequency_range Modified: trunk/doc/index.rst =================================================================== --- trunk/doc/index.rst 2012-01-08 02:57:46 UTC (rev 180) +++ trunk/doc/index.rst 2012-01-08 03:33:41 UTC (rev 181) @@ -3,18 +3,23 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -Welcome to Python-Control's documentation! -========================================== +Python Control User's Manual +============================ +Welcome to the Python Control Systems Library (python-control) User's +Manual. This manual describes the python-control package, including +all of the functions defined in the package and examples showing how +to use the package. + Contents: .. toctree:: + :maxdepth: 2 intro class_strings - modsimp_strings - matlab_strings - bdalg_strings + modules + examples Indices and tables ================== Modified: trunk/doc/intro.rst =================================================================== --- trunk/doc/intro.rst 2012-01-08 02:57:46 UTC (rev 180) +++ trunk/doc/intro.rst 2012-01-08 03:33:41 UTC (rev 181) @@ -2,8 +2,14 @@ Introduction ============ -Welcome to the Python-Control project. +Welcome to the Python Control Systems Toolbox (python-control) User's +Manual. This manual contains information on using the python-control +package, including documentation for all functions in the package and +examples illustrating their use. +Overview of the Toolbox +----------------------- + The python-control package is a set of python classes and functions that implement common operations for the analysis and design of feedback control systems. The initial goal is to implement all of the @@ -39,15 +45,22 @@ Getting Started --------------- 1. Download latest release from http://sf.net/projects/python-control/files. + 2. Untar the source code in a temporary directory and run 'python setup.py install' to build and install the code -3. To see if things are working correctly, run ipython -pylab and run the - script 'examples/secord-matlab.py'. This should generate a set response, - Bode plot and Nyquist plot for a simple second order system. + +3. To see if things are working correctly, run ipython -pylab and run + the script 'examples/secord-matlab.py'. This should generate a + step response, Bode plot and Nyquist plot for a simple second order + system. + 4. To see the commands that are available, run the following commands in ipython:: + >>> import control >>> ?control.matlab + 5. If you want to have a MATLAB-like environment for running the control toolbox, use:: + >>> from control.matlab import * Modified: trunk/doc/matlab_strings.rst =================================================================== --- trunk/doc/matlab_strings.rst 2012-01-08 02:57:46 UTC (rev 180) +++ trunk/doc/matlab_strings.rst 2012-01-08 03:33:41 UTC (rev 181) @@ -1,8 +1,6 @@ -Matlab-like Routines -******************** +MATLAB Compatibility Module +*************************** -The Matlab Module -================= .. automodule:: matlab :members: Modified: trunk/doc/modsimp_strings.rst =================================================================== --- trunk/doc/modsimp_strings.rst 2012-01-08 02:57:46 UTC (rev 180) +++ trunk/doc/modsimp_strings.rst 2012-01-08 03:33:41 UTC (rev 181) @@ -1,7 +1,5 @@ Model Simplification Tools ************************** -The modelsimp Module -==================== .. automodule:: modelsimp :members: Added: trunk/doc/modules.rst =================================================================== --- trunk/doc/modules.rst (rev 0) +++ trunk/doc/modules.rst 2012-01-08 03:33:41 UTC (rev 181) @@ -0,0 +1,12 @@ +Python-Control Modules +********************** + +.. toctree:: + + bdalg_strings + analysis + freqplot + timeresp + synthesis + modsimp_strings + matlab_strings Added: trunk/doc/synthesis.rst =================================================================== --- trunk/doc/synthesis.rst (rev 0) +++ trunk/doc/synthesis.rst 2012-01-08 03:33:41 UTC (rev 181) @@ -0,0 +1,2 @@ +Control System Synthesis +************************ \ No newline at end of file Added: trunk/doc/timeresp.rst =================================================================== --- trunk/doc/timeresp.rst (rev 0) +++ trunk/doc/timeresp.rst 2012-01-08 03:33:41 UTC (rev 181) @@ -0,0 +1,8 @@ +Time Domain Simulation +********************** + +.. automodule:: timeresp + :members: + +.. autofunction:: phaseplot.phase_plot +.. autofunction:: phaseplot.box_grid Modified: trunk/examples/rss-balred.py =================================================================== --- trunk/examples/rss-balred.py 2012-01-08 02:57:46 UTC (rev 180) +++ trunk/examples/rss-balred.py 2012-01-08 03:33:41 UTC (rev 181) @@ -26,8 +26,8 @@ # Comparison of the step responses of the full and reduced systems plt.figure(1) -t, y = mt.step(fsys) -tr, yr = mt.step(rsys) +y, t = mt.step(fsys) +yr, tr = mt.step(rsys) plt.plot(t.T, y.T) plt.hold(True) plt.plot(tr.T, yr.T) Modified: trunk/setup.py =================================================================== --- trunk/setup.py 2012-01-08 02:57:46 UTC (rev 180) +++ trunk/setup.py 2012-01-08 03:33:41 UTC (rev 181) @@ -4,7 +4,7 @@ from setuptools import setup setup(name = 'control', - version = '0.5a', + version = '0.5b', description = 'Python Control Systems Library', author = 'Richard Murray', author_email = 'mu...@cd...', Modified: trunk/src/statesp.py =================================================================== --- trunk/src/statesp.py 2012-01-08 02:57:46 UTC (rev 180) +++ trunk/src/statesp.py 2012-01-08 03:33:41 UTC (rev 181) @@ -75,7 +75,7 @@ from numpy import all, angle, any, array, asarray, concatenate, cos, delete, \ dot, empty, exp, eye, matrix, ones, pi, poly, poly1d, roots, shape, sin, \ - zeros + zeros, squeeze from numpy.random import rand, randn from numpy.linalg import inv, det, solve from numpy.linalg.linalg import LinAlgError @@ -459,28 +459,37 @@ # Already a state space system; just return it return sys elif isinstance(sys, xferfcn.TransferFunction): - from slycot import td04ad - if len(kw): - raise TypeError("If sys is a TransferFunction, _convertToStateSpace \ -cannot take keywords.") + try: + from slycot import td04ad + if len(kw): + raise TypeError("If sys is a TransferFunction, _convertToStateSpace \ + cannot take keywords.") - # Change the numerator and denominator arrays so that the transfer - # function matrix has a common denominator. - num, den = sys._common_den() - # Make a list of the orders of the denominator polynomials. - index = [len(den) - 1 for i in range(sys.outputs)] - # Repeat the common denominator along the rows. - den = array([den for i in range(sys.outputs)]) - # TODO: transfer function to state space conversion is still buggy! - #print num - #print shape(num) - ssout = td04ad('R',sys.inputs, sys.outputs, index, den, num,tol=0.0) - - states = ssout[0] - return StateSpace(ssout[1][:states, :states], - ssout[2][:states, :sys.inputs], - ssout[3][:sys.outputs, :states], - ssout[4]) + # Change the numerator and denominator arrays so that the transfer + # function matrix has a common denominator. + num, den = sys._common_den() + # Make a list of the orders of the denominator polynomials. + index = [len(den) - 1 for i in range(sys.outputs)] + # Repeat the common denominator along the rows. + den = array([den for i in range(sys.outputs)]) + # TODO: transfer function to state space conversion is still buggy! + #print num + #print shape(num) + ssout = td04ad('R',sys.inputs, sys.outputs, index, den, num,tol=0.0) + + states = ssout[0] + return StateSpace(ssout[1][:states, :states], + ssout[2][:states, :sys.inputs], + ssout[3][:sys.outputs, :states], + ssout[4]) + except ImportError: + lti_sys = lti(squeeze(sys.num), squeeze(sys.den))#<-- do we want to squeeze first + # and check dimenations? I think + # this will fail if num and den aren't 1-D + # after the squeeze + return StateSpace(lti_sys.A, lti_sys.B, lti_sys.C, lti_sys.D) + + elif isinstance(sys, (int, long, float, complex)): if "inputs" in kw: inputs = kw["inputs"] @@ -627,8 +636,8 @@ If ``sys`` is already a SISO system, it will be returned unaltered. - Parameters: - + Parameters + ---------- sys: StateSpace Linear (MIMO) system that should be converted. input: int Modified: trunk/src/xferfcn.py =================================================================== --- trunk/src/xferfcn.py 2012-01-08 02:57:46 UTC (rev 180) +++ trunk/src/xferfcn.py 2012-01-08 03:33:41 UTC (rev 181) @@ -76,7 +76,7 @@ # External function declarations from numpy import angle, any, array, empty, finfo, insert, ndarray, ones, \ - polyadd, polymul, polyval, roots, sort, sqrt, zeros + polyadd, polymul, polyval, roots, sort, sqrt, zeros, squeeze from scipy.signal import lti from copy import deepcopy from lti import Lti @@ -767,27 +767,39 @@ return sys elif isinstance(sys, statesp.StateSpace): - from slycot import tb04ad - if len(kw): - raise TypeError("If sys is a StateSpace, _convertToTransferFunction \ -cannot take keywords.") + try: + from slycot import tb04ad + if len(kw): + raise TypeError("If sys is a StateSpace, \ + _convertToTransferFunction cannot take keywords.") - # Use Slycot to make the transformation - # Make sure to convert system matrices to numpy arrays - tfout = tb04ad(sys.states, sys.inputs, sys.outputs, array(sys.A), - array(sys.B), array(sys.C), array(sys.D), tol1=0.0) + # Use Slycot to make the transformation + # Make sure to convert system matrices to numpy arrays + tfout = tb04ad(sys.states, sys.inputs, sys.outputs, array(sys.A), + array(sys.B), array(sys.C), array(sys.D), tol1=0.0) - # Preallocate outputs. - num = [[[] for j in range(sys.inputs)] for i in range(sys.outputs)] - den = [[[] for j in range(sys.inputs)] for i in range(sys.outputs)] + # Preallocate outputs. + num = [[[] for j in range(sys.inputs)] for i in range(sys.outputs)] + den = [[[] for j in range(sys.inputs)] for i in range(sys.outputs)] - for i in range(sys.outputs): - for j in range(sys.inputs): - num[i][j] = list(tfout[6][i, j, :]) - # Each transfer function matrix row has a common denominator. - den[i][j] = list(tfout[5][i, :]) - # print num - # print den + for i in range(sys.outputs): + for j in range(sys.inputs): + num[i][j] = list(tfout[6][i, j, :]) + # Each transfer function matrix row has a common denominator. + den[i][j] = list(tfout[5][i, :]) + # print num + # print den + except ImportError: + # If slycot is not available, use signal.lti (SISO only) + if (sys.inputs != 1 or sys.outputs != 1): + raise TypeError("No support for MIMO without slycot") + + lti_sys = lti(sys.A, sys.B, sys.C, sys.D) + num = squeeze(lti_sys.num) + den = squeeze(lti_sys.den) + print num + print den + return TransferFunction(num, den) elif isinstance(sys, (int, long, float, complex)): if "inputs" in kw: Modified: trunk/tests/slycot_convert_test.py =================================================================== --- trunk/tests/slycot_convert_test.py 2012-01-08 02:57:46 UTC (rev 180) +++ trunk/tests/slycot_convert_test.py 2012-01-08 03:33:41 UTC (rev 181) @@ -5,7 +5,6 @@ import unittest import numpy as np -from slycot import tb04ad, td04ad import control.matlab as matlab class TestSlycot(unittest.TestCase): @@ -30,6 +29,7 @@ """ Directly tests the functions tb04ad and td04ad through direct comparison of transfer function coefficients. Similar to convert_test, but tests at a lower level. """ + from slycot import tb04ad, td04ad for states in range(1, self.maxStates): for inputs in range(1, self.maxI+1): for outputs in range(1, self.maxO+1): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mur...@us...> - 2012-01-08 02:57:52
|
Revision: 180 http://python-control.svn.sourceforge.net/python-control/?rev=180&view=rev Author: murrayrm Date: 2012-01-08 02:57:46 +0000 (Sun, 08 Jan 2012) Log Message: ----------- small updates to documetnation + keywords property Modified Paths: -------------- trunk/src/bdalg.py trunk/src/margins.py Property Changed: ---------------- trunk/src/margins.py Modified: trunk/src/bdalg.py =================================================================== --- trunk/src/bdalg.py 2012-01-08 02:56:24 UTC (rev 179) +++ trunk/src/bdalg.py 2012-01-08 02:57:46 UTC (rev 180) @@ -59,7 +59,7 @@ """Return the series connection sys2 * sys1 for --> sys1 --> sys2 -->. Parameters - --------- + ---------- sys1: scalar, StateSpace, or TransferFunction sys2: scalar, StateSpace, or TransferFunction @@ -96,7 +96,7 @@ Return the parallel connection sys1 + sys2. Parameters - --------- + ---------- sys1: scalar, StateSpace, or TransferFunction sys2: scalar, StateSpace, or TransferFunction @@ -121,7 +121,7 @@ `sys1` is a scalar, then the output type is the type of `sys2`. Examples - ------- + -------- >>> sys3 = parallel(sys1, sys2) # Same as sys3 = sys1 + sys2. """ Modified: trunk/src/margins.py =================================================================== --- trunk/src/margins.py 2012-01-08 02:56:24 UTC (rev 179) +++ trunk/src/margins.py 2012-01-08 02:57:46 UTC (rev 180) @@ -43,7 +43,7 @@ Author: Richard M. Murray Date: 14 July 2011 -$Id: xferfcn.py 165 2011-06-26 02:44:09Z murrayrm $ +$Id$ """ @@ -58,8 +58,8 @@ """Calculate gain, phase and stability margins and associated crossover frequencies. - Usage: - + Usage + ----- gm, pm, sm, wg, wp, ws = stability_margins(sysdata, deg=True) Parameters Property changes on: trunk/src/margins.py ___________________________________________________________________ Added: svn:keywords + Id This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mur...@us...> - 2012-01-08 02:56:30
|
Revision: 179 http://python-control.svn.sourceforge.net/python-control/?rev=179&view=rev Author: murrayrm Date: 2012-01-08 02:56:24 +0000 (Sun, 08 Jan 2012) Log Message: ----------- small doc fix Modified Paths: -------------- trunk/src/freqplot.py Modified: trunk/src/freqplot.py =================================================================== --- trunk/src/freqplot.py 2012-01-08 02:55:55 UTC (rev 178) +++ trunk/src/freqplot.py 2012-01-08 02:56:24 UTC (rev 179) @@ -319,8 +319,8 @@ syslist : list of Lti List of linear input/output systems (single system is OK) - Return - ------ + Returns + ------- omega : array Range of frequencies in rad/sec This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mur...@us...> - 2012-01-08 02:56:02
|
Revision: 178 http://python-control.svn.sourceforge.net/python-control/?rev=178&view=rev Author: murrayrm Date: 2012-01-08 02:55:55 +0000 (Sun, 08 Jan 2012) Log Message: ----------- set keywords property Modified Paths: -------------- trunk/src/timeresp.py Property Changed: ---------------- trunk/src/timeresp.py Modified: trunk/src/timeresp.py =================================================================== --- trunk/src/timeresp.py 2012-01-08 02:54:47 UTC (rev 177) +++ trunk/src/timeresp.py 2012-01-08 02:55:55 UTC (rev 178) @@ -111,7 +111,7 @@ Author: Eike Welk Date: 12 May 2011 -$Id: matlab.py 157 2011-06-17 23:51:46Z murrayrm $ +$Id$ """ # Libraries that we make use of Property changes on: trunk/src/timeresp.py ___________________________________________________________________ Added: svn:keywords + Id This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mur...@us...> - 2012-01-08 02:54:54
|
Revision: 177 http://python-control.svn.sourceforge.net/python-control/?rev=177&view=rev Author: murrayrm Date: 2012-01-08 02:54:47 +0000 (Sun, 08 Jan 2012) Log Message: ----------- added copyright info + small doc fix Modified Paths: -------------- trunk/src/timeresp.py Modified: trunk/src/timeresp.py =================================================================== --- trunk/src/timeresp.py 2011-08-07 15:37:37 UTC (rev 176) +++ trunk/src/timeresp.py 2012-01-08 02:54:47 UTC (rev 177) @@ -1,50 +1,9 @@ -# timesim.py - time-domain simulation routes -"""timesim.py - +# timeresp.py - time-domain simulation routes +""" Time domain simulation. This file contains a collection of functions that calculate time responses for linear systems. -""" -"""Copyright (c) 2011 by California Institute of Technology -All rights reserved. - -Copyright (c) 2011 by Eike Welk -Copyright (c) 2010 by SciPy Developers - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -3. Neither the name of the California Institute of Technology nor - the names of its contributors may be used to endorse or promote - products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CALTECH -OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. - -Author: Eike Welk -Date: 12 May 2011 -$Id: matlab.py 157 2011-06-17 23:51:46Z murrayrm $ - .. _time-series-convention: Convention for Time Series @@ -113,7 +72,46 @@ ft = D * U ---------------------------------------------------------------- +""" +"""Copyright (c) 2011 by California Institute of Technology +All rights reserved. + +Copyright (c) 2011 by Eike Welk +Copyright (c) 2010 by SciPy Developers + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the California Institute of Technology nor + the names of its contributors may be used to endorse or promote + products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CALTECH +OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +Author: Eike Welk +Date: 12 May 2011 +$Id: matlab.py 157 2011-06-17 23:51:46Z murrayrm $ """ # Libraries that we make use of @@ -142,8 +140,8 @@ The function raises an exception when it detects an error. - Parameters: - + Parameters + ---------- in_obj: array like object The array or matrix which is checked. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Richard M. <mu...@cd...> - 2011-12-27 23:44:48
|
My suggestion would be to have DStateSpace derive from Lti. To handle situations were the operations are the same, we could split out the add, multiple, etc routines from StateSpace and instead make them utility functions (not part of any class). Then statesp._add() could be called by both StateSpace.__add__ and DStateSpace.__add__ after whatever checks are required. -richard On 27 Dec 2011, at 8:37 , Gustavo Goretkin wrote: > So both TransferFunction and StateSpace inherit from Lti, which is a very simple class containing only two fields. > > Should I then make a DLti class with an additional field with the sample time? Or should DStateSpace inherit from StateSpace? Some of the DStatesSpace methods will closely mirror StateSpace methods. Namely, for the different binary operations, like multiplication, feedback, adding, the code needs to check that the sample time of both systems is the same, but other than that the matrix manipulation is the same. > > Is there another class hierarchy I should consider too? > > Thanks, > Gustavo > > On Fri, Nov 25, 2011 at 9:52 PM, Richard Murray <mu...@cd...> wrote: > There's been some discussion on how to handle discrete time systems in the past. It would be great to get the discrete time routines into python-control as part of the next release. If I remember correctly, the approach that Roberto (or someone) originally took was to put in the field Tsamp into the StateSpace class and if this was nonzero then assume it was a discrete-time system (as you described). I think it would be a bit cleaner to define a separate class for discrete-time systems, perhaps something like this: > > Lti - general object for linear time invariant systems > StateSpace - continuous time, state space representation > TransferFunction - continuous time, frequency domain representation > DStateSpace - discrete time, state space representation > DTransferFunction - discrete time, state space representation > > The 'D' versions would have to have all of the methods for manipulating discrete time systems and eventually we would have to update various time and frequency domain routines to support them (bode, nyquist, lsim, etc). > > Of course, the person who does the work gets to make at least the initial choice of how to implement. So perhaps Gustavo should take a first cut based on what makes sense to him, then we can see how things look and modify if there is a strong feel that we should implement it differently. Note that many things are likely to break/behave oddly when discrete time first gets added since a lot of functions don't check to see what type of system they are passed. > > In terms of repositories: SourceForge is the "official" home of python-control, but of course others are welcome to generate versions of their own, which eventually should make their way back here. Eike Welk is on this list and I've been incorporating his changes as I see them. > > -richard > > On Nov 25, 2011, at 12:21 PM, Gustavo Goretkin wrote: > > > Hey list, > > > > I'd like to try use some discrete-time in python-control. > > Specifically, I want MATLAB's c2d and dlqr. > > > > I'm aware of the discussion here [1] and code here [2]. yottalab.py > > has a all the functionality I want (thanks!) but I'm not sure which > > branch of python-control it is assuming. Specifically in c2d, line > > line 173, there is a call to construct a statespace object which takes > > 5 arguments A,B,C,D,Ts, but no such constructor seems to exist in > > python-control. From the rest of the code (i.e. d2c), I infer that all > > it seems to do is add a field called "Tsamp" to the statespace object. > > > > If the statespace object can represent both continuous and > > discrete-time systems, what then should the semantics be? It looks > > like Tsamp=0 for continuous time systems. > > > > It also looks like there is a repository here [3]. Is it going to be > > merged with the sourceforge repository eventually, or other way > > around? > > > > Thanks! > > Gustavo > > > > [1] http://mail.scipy.org/pipermail/scipy-dev/2010-August/015468.html and > > [2] www.dti.supsi.ch/~bucher/wp-content/uploads/2011/03/yottalab.py > > [3] https://bitbucket.org/eike_welk/python-control > > > > ------------------------------------------------------------------------------ > > All the data continuously generated in your IT infrastructure > > contains a definitive record of customers, application performance, > > security threats, fraudulent activity, and more. Splunk takes this > > data and makes sense of it. IT sense. And common sense. > > http://p.sf.net/sfu/splunk-novd2d > > _______________________________________________ > > python-control-discuss mailing list > > pyt...@li... > > https://lists.sourceforge.net/lists/listinfo/python-control-discuss > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a definitive record of customers, application performance, > security threats, fraudulent activity, and more. Splunk takes this > data and makes sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-novd2d > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss > > ------------------------------------------------------------------------------ > Write once. Port to many. > Get the SDK and tools to simplify cross-platform app development. Create > new or port existing apps to sell to consumers worldwide. Explore the > Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join > http://p.sf.net/sfu/intel-appdev_______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss |
From: Gustavo G. <gor...@mi...> - 2011-12-27 16:37:50
|
So both TransferFunction and StateSpace inherit from Lti, which is a very simple class containing only two fields. Should I then make a DLti class with an additional field with the sample time? Or should DStateSpace inherit from StateSpace? Some of the DStatesSpace methods will closely mirror StateSpace methods. Namely, for the different binary operations, like multiplication, feedback, adding, the code needs to check that the sample time of both systems is the same, but other than that the matrix manipulation is the same. Is there another class hierarchy I should consider too? Thanks, Gustavo On Fri, Nov 25, 2011 at 9:52 PM, Richard Murray <mu...@cd...>wrote: > There's been some discussion on how to handle discrete time systems in the > past. It would be great to get the discrete time routines into > python-control as part of the next release. If I remember correctly, the > approach that Roberto (or someone) originally took was to put in the field > Tsamp into the StateSpace class and if this was nonzero then assume it was > a discrete-time system (as you described). I think it would be a bit > cleaner to define a separate class for discrete-time systems, perhaps > something like this: > > Lti - general object for linear time invariant systems > StateSpace - continuous time, state space representation > TransferFunction - continuous time, frequency domain representation > DStateSpace - discrete time, state space representation > DTransferFunction - discrete time, state space representation > > The 'D' versions would have to have all of the methods for manipulating > discrete time systems and eventually we would have to update various time > and frequency domain routines to support them (bode, nyquist, lsim, etc). > > Of course, the person who does the work gets to make at least the initial > choice of how to implement. So perhaps Gustavo should take a first cut > based on what makes sense to him, then we can see how things look and > modify if there is a strong feel that we should implement it differently. > Note that many things are likely to break/behave oddly when discrete time > first gets added since a lot of functions don't check to see what type of > system they are passed. > > In terms of repositories: SourceForge is the "official" home of > python-control, but of course others are welcome to generate versions of > their own, which eventually should make their way back here. Eike Welk is > on this list and I've been incorporating his changes as I see them. > > -richard > > On Nov 25, 2011, at 12:21 PM, Gustavo Goretkin wrote: > > > Hey list, > > > > I'd like to try use some discrete-time in python-control. > > Specifically, I want MATLAB's c2d and dlqr. > > > > I'm aware of the discussion here [1] and code here [2]. yottalab.py > > has a all the functionality I want (thanks!) but I'm not sure which > > branch of python-control it is assuming. Specifically in c2d, line > > line 173, there is a call to construct a statespace object which takes > > 5 arguments A,B,C,D,Ts, but no such constructor seems to exist in > > python-control. From the rest of the code (i.e. d2c), I infer that all > > it seems to do is add a field called "Tsamp" to the statespace object. > > > > If the statespace object can represent both continuous and > > discrete-time systems, what then should the semantics be? It looks > > like Tsamp=0 for continuous time systems. > > > > It also looks like there is a repository here [3]. Is it going to be > > merged with the sourceforge repository eventually, or other way > > around? > > > > Thanks! > > Gustavo > > > > [1] http://mail.scipy.org/pipermail/scipy-dev/2010-August/015468.htmland > > [2] www.dti.supsi.ch/~bucher/wp-content/uploads/2011/03/yottalab.py<http://www.dti.supsi.ch/%7Ebucher/wp-content/uploads/2011/03/yottalab.py> > > [3] https://bitbucket.org/eike_welk/python-control > > > > > ------------------------------------------------------------------------------ > > All the data continuously generated in your IT infrastructure > > contains a definitive record of customers, application performance, > > security threats, fraudulent activity, and more. Splunk takes this > > data and makes sense of it. IT sense. And common sense. > > http://p.sf.net/sfu/splunk-novd2d > > _______________________________________________ > > python-control-discuss mailing list > > pyt...@li... > > https://lists.sourceforge.net/lists/listinfo/python-control-discuss > > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a definitive record of customers, application performance, > security threats, fraudulent activity, and more. Splunk takes this > data and makes sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-novd2d > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss > |
From: Roberto B. <rob...@su...> - 2011-11-27 07:53:34
|
You're probably right I'll check today. Ciao Roberto On 11/27/2011 08:09 AM, Gustavo Goretkin wrote: > I think I've figured it out. > > within the yottalab dare function: > rcond,X,w,S,T = \ > sb02od(nstates, ninputs, A, B, Q, R, 'D'); > > should be > > X,rcond,w,S,T = \ > sb02od(nstates, ninputs, A, B, Q, R, 'D'); > > (a similar change applies to the yottalab care function) > > > On Sat, Nov 26, 2011 at 2:23 PM, Roberto Bucher<rob...@su...> wrote: >> You're right >> >> something is not correct in the solution of "dare" with your matrices. I >> have to check if the problem is in my "dare" function or in the sb02od >> function of the avventi slycot library. >> >> I'll check ASAP >> >> Best regards >> >> Roberto >> >> On 11/26/2011 06:48 PM, Gustavo Goretkin wrote: >> >> Hi Roberto, >> >> Thanks for the files. >> >> I do think I'm getting different behavior between MATLAB's dlqr and >> Yottalab's. I'm attaching two files for the different environment >> showing my results. >> >> Gustavo >> >> >> >> On Sat, Nov 26, 2011 at 12:05 AM, Roberto Bucher >> <rob...@su...> wrote: >> >> Hi Gustavo >> >> here you are the modified files: >> >> matlab.py >> xferfcn.py >> statesp.py >> >> and the last yottalab.py file. >> >> Simply substitute them in the control-0.5a src folder and reinstall the >> control package. >> >> then copy directly yottalab.py at the right place (e.g. >> /usr/local/lib/python2.7/dist-packages/) >> >> Basically I've compared the result of my functions with Matlab and >> Scicoslab, and in my examples I didn't find differences. >> >> Best regards >> >> Roberto >> >> On 11/25/2011 09:48 PM, Gustavo Goretkin wrote: >> >> Hi Roberto, >> >> Thanks for the quick reply! >> >> Regarding the dlqr function in yottalab.py -- it doesn't seem to >> depend on the sampling time of the discrete time system and this >> appears to produce incorrect result, or perhaps maybe I am misusing >> the function. >> >> Thank you, >> Gustavo >> >> On Fri, Nov 25, 2011 at 3:38 PM, Roberto Bucher<rob...@su...> >> wrote: >> >> Hi Gustavo >> >> yottalab.py requires some changes in some python control files. I'll >> check ASAP my last modifications and I send you the required files. >> >> Best regards >> >> Roberto >> >> On 11/25/2011 09:21 PM, Gustavo Goretkin wrote: >> >> Hey list, >> >> I'd like to try use some discrete-time in python-control. >> Specifically, I want MATLAB's c2d and dlqr. >> >> I'm aware of the discussion here [1] and code here [2]. yottalab.py >> has a all the functionality I want (thanks!) but I'm not sure which >> branch of python-control it is assuming. Specifically in c2d, line >> line 173, there is a call to construct a statespace object which takes >> 5 arguments A,B,C,D,Ts, but no such constructor seems to exist in >> python-control. From the rest of the code (i.e. d2c), I infer that all >> it seems to do is add a field called "Tsamp" to the statespace object. >> >> If the statespace object can represent both continuous and >> discrete-time systems, what then should the semantics be? It looks >> like Tsamp=0 for continuous time systems. >> >> It also looks like there is a repository here [3]. Is it going to be >> merged with the sourceforge repository eventually, or other way >> around? >> >> Thanks! >> Gustavo >> >> [1] http://mail.scipy.org/pipermail/scipy-dev/2010-August/015468.html >> and >> [2] www.dti.supsi.ch/~bucher/wp-content/uploads/2011/03/yottalab.py >> [3] https://bitbucket.org/eike_welk/python-control >> >> >> ------------------------------------------------------------------------------ >> All the data continuously generated in your IT infrastructure >> contains a definitive record of customers, application performance, >> security threats, fraudulent activity, and more. Splunk takes this >> data and makes sense of it. IT sense. And common sense. >> http://p.sf.net/sfu/splunk-novd2d >> _______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >> >> ------------------------------------------------------------------------------ >> All the data continuously generated in your IT infrastructure >> contains a definitive record of customers, application performance, >> security threats, fraudulent activity, and more. Splunk takes this >> data and makes sense of it. IT sense. And common sense. >> http://p.sf.net/sfu/splunk-novd2d >> _______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >> >> ------------------------------------------------------------------------------ >> All the data continuously generated in your IT infrastructure >> contains a definitive record of customers, application performance, >> security threats, fraudulent activity, and more. Splunk takes this >> data and makes sense of it. IT sense. And common sense. >> http://p.sf.net/sfu/splunk-novd2d >> _______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >> >> ------------------------------------------------------------------------------ >> All the data continuously generated in your IT infrastructure >> contains a definitive record of customers, application performance, >> security threats, fraudulent activity, and more. Splunk takes this >> data and makes sense of it. IT sense. And common sense. >> http://p.sf.net/sfu/splunk-novd2d >> _______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >> >> >> >> ------------------------------------------------------------------------------ >> All the data continuously generated in your IT infrastructure >> contains a definitive record of customers, application performance, >> security threats, fraudulent activity, and more. Splunk takes this >> data and makes sense of it. IT sense. And common sense. >> http://p.sf.net/sfu/splunk-novd2d >> >> _______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >> >> >> ------------------------------------------------------------------------------ >> All the data continuously generated in your IT infrastructure >> contains a definitive record of customers, application performance, >> security threats, fraudulent activity, and more. Splunk takes this >> data and makes sense of it. IT sense. And common sense. >> http://p.sf.net/sfu/splunk-novd2d >> _______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >> >> > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a definitive record of customers, application performance, > security threats, fraudulent activity, and more. Splunk takes this > data and makes sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-novd2d > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss |
From: Gustavo G. <gor...@mi...> - 2011-11-27 07:10:24
|
I think I've figured it out. within the yottalab dare function: rcond,X,w,S,T = \ sb02od(nstates, ninputs, A, B, Q, R, 'D'); should be X,rcond,w,S,T = \ sb02od(nstates, ninputs, A, B, Q, R, 'D'); (a similar change applies to the yottalab care function) On Sat, Nov 26, 2011 at 2:23 PM, Roberto Bucher <rob...@su...> wrote: > You're right > > something is not correct in the solution of "dare" with your matrices. I > have to check if the problem is in my "dare" function or in the sb02od > function of the avventi slycot library. > > I'll check ASAP > > Best regards > > Roberto > > On 11/26/2011 06:48 PM, Gustavo Goretkin wrote: > > Hi Roberto, > > Thanks for the files. > > I do think I'm getting different behavior between MATLAB's dlqr and > Yottalab's. I'm attaching two files for the different environment > showing my results. > > Gustavo > > > > On Sat, Nov 26, 2011 at 12:05 AM, Roberto Bucher > <rob...@su...> wrote: > > Hi Gustavo > > here you are the modified files: > > matlab.py > xferfcn.py > statesp.py > > and the last yottalab.py file. > > Simply substitute them in the control-0.5a src folder and reinstall the > control package. > > then copy directly yottalab.py at the right place (e.g. > /usr/local/lib/python2.7/dist-packages/) > > Basically I've compared the result of my functions with Matlab and > Scicoslab, and in my examples I didn't find differences. > > Best regards > > Roberto > > On 11/25/2011 09:48 PM, Gustavo Goretkin wrote: > > Hi Roberto, > > Thanks for the quick reply! > > Regarding the dlqr function in yottalab.py -- it doesn't seem to > depend on the sampling time of the discrete time system and this > appears to produce incorrect result, or perhaps maybe I am misusing > the function. > > Thank you, > Gustavo > > On Fri, Nov 25, 2011 at 3:38 PM, Roberto Bucher<rob...@su...> > wrote: > > Hi Gustavo > > yottalab.py requires some changes in some python control files. I'll > check ASAP my last modifications and I send you the required files. > > Best regards > > Roberto > > On 11/25/2011 09:21 PM, Gustavo Goretkin wrote: > > Hey list, > > I'd like to try use some discrete-time in python-control. > Specifically, I want MATLAB's c2d and dlqr. > > I'm aware of the discussion here [1] and code here [2]. yottalab.py > has a all the functionality I want (thanks!) but I'm not sure which > branch of python-control it is assuming. Specifically in c2d, line > line 173, there is a call to construct a statespace object which takes > 5 arguments A,B,C,D,Ts, but no such constructor seems to exist in > python-control. From the rest of the code (i.e. d2c), I infer that all > it seems to do is add a field called "Tsamp" to the statespace object. > > If the statespace object can represent both continuous and > discrete-time systems, what then should the semantics be? It looks > like Tsamp=0 for continuous time systems. > > It also looks like there is a repository here [3]. Is it going to be > merged with the sourceforge repository eventually, or other way > around? > > Thanks! > Gustavo > > [1] http://mail.scipy.org/pipermail/scipy-dev/2010-August/015468.html > and > [2] www.dti.supsi.ch/~bucher/wp-content/uploads/2011/03/yottalab.py > [3] https://bitbucket.org/eike_welk/python-control > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a definitive record of customers, application performance, > security threats, fraudulent activity, and more. Splunk takes this > data and makes sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-novd2d > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a definitive record of customers, application performance, > security threats, fraudulent activity, and more. Splunk takes this > data and makes sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-novd2d > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a definitive record of customers, application performance, > security threats, fraudulent activity, and more. Splunk takes this > data and makes sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-novd2d > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a definitive record of customers, application performance, > security threats, fraudulent activity, and more. Splunk takes this > data and makes sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-novd2d > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss > > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a definitive record of customers, application performance, > security threats, fraudulent activity, and more. Splunk takes this > data and makes sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-novd2d > > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a definitive record of customers, application performance, > security threats, fraudulent activity, and more. Splunk takes this > data and makes sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-novd2d > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss > > |
From: Roberto B. <rob...@su...> - 2011-11-26 19:23:12
|
You're right something is not correct in the solution of "dare" with your matrices. I have to check if the problem is in my "dare" function or in the sb02od function of the avventi slycot library. I'll check ASAP Best regards Roberto On 11/26/2011 06:48 PM, Gustavo Goretkin wrote: > Hi Roberto, > > Thanks for the files. > > I do think I'm getting different behavior between MATLAB's dlqr and > Yottalab's. I'm attaching two files for the different environment > showing my results. > > Gustavo > > > > On Sat, Nov 26, 2011 at 12:05 AM, Roberto Bucher > <rob...@su...> wrote: >> Hi Gustavo >> >> here you are the modified files: >> >> matlab.py >> xferfcn.py >> statesp.py >> >> and the last yottalab.py file. >> >> Simply substitute them in the control-0.5a src folder and reinstall the >> control package. >> >> then copy directly yottalab.py at the right place (e.g. >> /usr/local/lib/python2.7/dist-packages/) >> >> Basically I've compared the result of my functions with Matlab and >> Scicoslab, and in my examples I didn't find differences. >> >> Best regards >> >> Roberto >> >> On 11/25/2011 09:48 PM, Gustavo Goretkin wrote: >>> Hi Roberto, >>> >>> Thanks for the quick reply! >>> >>> Regarding the dlqr function in yottalab.py -- it doesn't seem to >>> depend on the sampling time of the discrete time system and this >>> appears to produce incorrect result, or perhaps maybe I am misusing >>> the function. >>> >>> Thank you, >>> Gustavo >>> >>> On Fri, Nov 25, 2011 at 3:38 PM, Roberto Bucher<rob...@su...> >>> wrote: >>>> Hi Gustavo >>>> >>>> yottalab.py requires some changes in some python control files. I'll >>>> check ASAP my last modifications and I send you the required files. >>>> >>>> Best regards >>>> >>>> Roberto >>>> >>>> On 11/25/2011 09:21 PM, Gustavo Goretkin wrote: >>>>> Hey list, >>>>> >>>>> I'd like to try use some discrete-time in python-control. >>>>> Specifically, I want MATLAB's c2d and dlqr. >>>>> >>>>> I'm aware of the discussion here [1] and code here [2]. yottalab.py >>>>> has a all the functionality I want (thanks!) but I'm not sure which >>>>> branch of python-control it is assuming. Specifically in c2d, line >>>>> line 173, there is a call to construct a statespace object which takes >>>>> 5 arguments A,B,C,D,Ts, but no such constructor seems to exist in >>>>> python-control. From the rest of the code (i.e. d2c), I infer that all >>>>> it seems to do is add a field called "Tsamp" to the statespace object. >>>>> >>>>> If the statespace object can represent both continuous and >>>>> discrete-time systems, what then should the semantics be? It looks >>>>> like Tsamp=0 for continuous time systems. >>>>> >>>>> It also looks like there is a repository here [3]. Is it going to be >>>>> merged with the sourceforge repository eventually, or other way >>>>> around? >>>>> >>>>> Thanks! >>>>> Gustavo >>>>> >>>>> [1] http://mail.scipy.org/pipermail/scipy-dev/2010-August/015468.html >>>>> and >>>>> [2] www.dti.supsi.ch/~bucher/wp-content/uploads/2011/03/yottalab.py >>>>> [3] https://bitbucket.org/eike_welk/python-control >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> All the data continuously generated in your IT infrastructure >>>>> contains a definitive record of customers, application performance, >>>>> security threats, fraudulent activity, and more. Splunk takes this >>>>> data and makes sense of it. IT sense. And common sense. >>>>> http://p.sf.net/sfu/splunk-novd2d >>>>> _______________________________________________ >>>>> python-control-discuss mailing list >>>>> pyt...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >>>> >>>> ------------------------------------------------------------------------------ >>>> All the data continuously generated in your IT infrastructure >>>> contains a definitive record of customers, application performance, >>>> security threats, fraudulent activity, and more. Splunk takes this >>>> data and makes sense of it. IT sense. And common sense. >>>> http://p.sf.net/sfu/splunk-novd2d >>>> _______________________________________________ >>>> python-control-discuss mailing list >>>> pyt...@li... >>>> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >>>> >>> ------------------------------------------------------------------------------ >>> All the data continuously generated in your IT infrastructure >>> contains a definitive record of customers, application performance, >>> security threats, fraudulent activity, and more. Splunk takes this >>> data and makes sense of it. IT sense. And common sense. >>> http://p.sf.net/sfu/splunk-novd2d >>> _______________________________________________ >>> python-control-discuss mailing list >>> pyt...@li... >>> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >> >> ------------------------------------------------------------------------------ >> All the data continuously generated in your IT infrastructure >> contains a definitive record of customers, application performance, >> security threats, fraudulent activity, and more. Splunk takes this >> data and makes sense of it. IT sense. And common sense. >> http://p.sf.net/sfu/splunk-novd2d >> _______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >> >> >> >> >> ------------------------------------------------------------------------------ >> All the data continuously generated in your IT infrastructure >> contains a definitive record of customers, application performance, >> security threats, fraudulent activity, and more. Splunk takes this >> data and makes sense of it. IT sense. And common sense. >> http://p.sf.net/sfu/splunk-novd2d >> >> >> _______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss |
From: Gustavo G. <gor...@mi...> - 2011-11-26 17:49:04
|
Hi Roberto, Thanks for the files. I do think I'm getting different behavior between MATLAB's dlqr and Yottalab's. I'm attaching two files for the different environment showing my results. Gustavo On Sat, Nov 26, 2011 at 12:05 AM, Roberto Bucher <rob...@su...> wrote: > Hi Gustavo > > here you are the modified files: > > matlab.py > xferfcn.py > statesp.py > > and the last yottalab.py file. > > Simply substitute them in the control-0.5a src folder and reinstall the > control package. > > then copy directly yottalab.py at the right place (e.g. > /usr/local/lib/python2.7/dist-packages/) > > Basically I've compared the result of my functions with Matlab and > Scicoslab, and in my examples I didn't find differences. > > Best regards > > Roberto > > On 11/25/2011 09:48 PM, Gustavo Goretkin wrote: >> >> Hi Roberto, >> >> Thanks for the quick reply! >> >> Regarding the dlqr function in yottalab.py -- it doesn't seem to >> depend on the sampling time of the discrete time system and this >> appears to produce incorrect result, or perhaps maybe I am misusing >> the function. >> >> Thank you, >> Gustavo >> >> On Fri, Nov 25, 2011 at 3:38 PM, Roberto Bucher<rob...@su...> >> wrote: >>> >>> Hi Gustavo >>> >>> yottalab.py requires some changes in some python control files. I'll >>> check ASAP my last modifications and I send you the required files. >>> >>> Best regards >>> >>> Roberto >>> >>> On 11/25/2011 09:21 PM, Gustavo Goretkin wrote: >>>> >>>> Hey list, >>>> >>>> I'd like to try use some discrete-time in python-control. >>>> Specifically, I want MATLAB's c2d and dlqr. >>>> >>>> I'm aware of the discussion here [1] and code here [2]. yottalab.py >>>> has a all the functionality I want (thanks!) but I'm not sure which >>>> branch of python-control it is assuming. Specifically in c2d, line >>>> line 173, there is a call to construct a statespace object which takes >>>> 5 arguments A,B,C,D,Ts, but no such constructor seems to exist in >>>> python-control. From the rest of the code (i.e. d2c), I infer that all >>>> it seems to do is add a field called "Tsamp" to the statespace object. >>>> >>>> If the statespace object can represent both continuous and >>>> discrete-time systems, what then should the semantics be? It looks >>>> like Tsamp=0 for continuous time systems. >>>> >>>> It also looks like there is a repository here [3]. Is it going to be >>>> merged with the sourceforge repository eventually, or other way >>>> around? >>>> >>>> Thanks! >>>> Gustavo >>>> >>>> [1] http://mail.scipy.org/pipermail/scipy-dev/2010-August/015468.html >>>> and >>>> [2] www.dti.supsi.ch/~bucher/wp-content/uploads/2011/03/yottalab.py >>>> [3] https://bitbucket.org/eike_welk/python-control >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> All the data continuously generated in your IT infrastructure >>>> contains a definitive record of customers, application performance, >>>> security threats, fraudulent activity, and more. Splunk takes this >>>> data and makes sense of it. IT sense. And common sense. >>>> http://p.sf.net/sfu/splunk-novd2d >>>> _______________________________________________ >>>> python-control-discuss mailing list >>>> pyt...@li... >>>> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >>> >>> >>> ------------------------------------------------------------------------------ >>> All the data continuously generated in your IT infrastructure >>> contains a definitive record of customers, application performance, >>> security threats, fraudulent activity, and more. Splunk takes this >>> data and makes sense of it. IT sense. And common sense. >>> http://p.sf.net/sfu/splunk-novd2d >>> _______________________________________________ >>> python-control-discuss mailing list >>> pyt...@li... >>> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >>> >> >> ------------------------------------------------------------------------------ >> All the data continuously generated in your IT infrastructure >> contains a definitive record of customers, application performance, >> security threats, fraudulent activity, and more. Splunk takes this >> data and makes sense of it. IT sense. And common sense. >> http://p.sf.net/sfu/splunk-novd2d >> _______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a definitive record of customers, application performance, > security threats, fraudulent activity, and more. Splunk takes this > data and makes sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-novd2d > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss > > |
From: Roberto B. <rob...@su...> - 2011-11-26 05:05:39
|
Hi Gustavo here you are the modified files: matlab.py xferfcn.py statesp.py and the last yottalab.py file. Simply substitute them in the control-0.5a src folder and reinstall the control package. then copy directly yottalab.py at the right place (e.g. /usr/local/lib/python2.7/dist-packages/) Basically I've compared the result of my functions with Matlab and Scicoslab, and in my examples I didn't find differences. Best regards Roberto On 11/25/2011 09:48 PM, Gustavo Goretkin wrote: > Hi Roberto, > > Thanks for the quick reply! > > Regarding the dlqr function in yottalab.py -- it doesn't seem to > depend on the sampling time of the discrete time system and this > appears to produce incorrect result, or perhaps maybe I am misusing > the function. > > Thank you, > Gustavo > > On Fri, Nov 25, 2011 at 3:38 PM, Roberto Bucher<rob...@su...> wrote: >> Hi Gustavo >> >> yottalab.py requires some changes in some python control files. I'll >> check ASAP my last modifications and I send you the required files. >> >> Best regards >> >> Roberto >> >> On 11/25/2011 09:21 PM, Gustavo Goretkin wrote: >>> Hey list, >>> >>> I'd like to try use some discrete-time in python-control. >>> Specifically, I want MATLAB's c2d and dlqr. >>> >>> I'm aware of the discussion here [1] and code here [2]. yottalab.py >>> has a all the functionality I want (thanks!) but I'm not sure which >>> branch of python-control it is assuming. Specifically in c2d, line >>> line 173, there is a call to construct a statespace object which takes >>> 5 arguments A,B,C,D,Ts, but no such constructor seems to exist in >>> python-control. From the rest of the code (i.e. d2c), I infer that all >>> it seems to do is add a field called "Tsamp" to the statespace object. >>> >>> If the statespace object can represent both continuous and >>> discrete-time systems, what then should the semantics be? It looks >>> like Tsamp=0 for continuous time systems. >>> >>> It also looks like there is a repository here [3]. Is it going to be >>> merged with the sourceforge repository eventually, or other way >>> around? >>> >>> Thanks! >>> Gustavo >>> >>> [1] http://mail.scipy.org/pipermail/scipy-dev/2010-August/015468.html and >>> [2] www.dti.supsi.ch/~bucher/wp-content/uploads/2011/03/yottalab.py >>> [3] https://bitbucket.org/eike_welk/python-control >>> >>> ------------------------------------------------------------------------------ >>> All the data continuously generated in your IT infrastructure >>> contains a definitive record of customers, application performance, >>> security threats, fraudulent activity, and more. Splunk takes this >>> data and makes sense of it. IT sense. And common sense. >>> http://p.sf.net/sfu/splunk-novd2d >>> _______________________________________________ >>> python-control-discuss mailing list >>> pyt...@li... >>> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >> >> ------------------------------------------------------------------------------ >> All the data continuously generated in your IT infrastructure >> contains a definitive record of customers, application performance, >> security threats, fraudulent activity, and more. Splunk takes this >> data and makes sense of it. IT sense. And common sense. >> http://p.sf.net/sfu/splunk-novd2d >> _______________________________________________ >> python-control-discuss mailing list >> pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-control-discuss >> > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a definitive record of customers, application performance, > security threats, fraudulent activity, and more. Splunk takes this > data and makes sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-novd2d > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss |
From: Richard M. <mu...@cd...> - 2011-11-26 02:52:44
|
There's been some discussion on how to handle discrete time systems in the past. It would be great to get the discrete time routines into python-control as part of the next release. If I remember correctly, the approach that Roberto (or someone) originally took was to put in the field Tsamp into the StateSpace class and if this was nonzero then assume it was a discrete-time system (as you described). I think it would be a bit cleaner to define a separate class for discrete-time systems, perhaps something like this: Lti - general object for linear time invariant systems StateSpace - continuous time, state space representation TransferFunction - continuous time, frequency domain representation DStateSpace - discrete time, state space representation DTransferFunction - discrete time, state space representation The 'D' versions would have to have all of the methods for manipulating discrete time systems and eventually we would have to update various time and frequency domain routines to support them (bode, nyquist, lsim, etc). Of course, the person who does the work gets to make at least the initial choice of how to implement. So perhaps Gustavo should take a first cut based on what makes sense to him, then we can see how things look and modify if there is a strong feel that we should implement it differently. Note that many things are likely to break/behave oddly when discrete time first gets added since a lot of functions don't check to see what type of system they are passed. In terms of repositories: SourceForge is the "official" home of python-control, but of course others are welcome to generate versions of their own, which eventually should make their way back here. Eike Welk is on this list and I've been incorporating his changes as I see them. -richard On Nov 25, 2011, at 12:21 PM, Gustavo Goretkin wrote: > Hey list, > > I'd like to try use some discrete-time in python-control. > Specifically, I want MATLAB's c2d and dlqr. > > I'm aware of the discussion here [1] and code here [2]. yottalab.py > has a all the functionality I want (thanks!) but I'm not sure which > branch of python-control it is assuming. Specifically in c2d, line > line 173, there is a call to construct a statespace object which takes > 5 arguments A,B,C,D,Ts, but no such constructor seems to exist in > python-control. From the rest of the code (i.e. d2c), I infer that all > it seems to do is add a field called "Tsamp" to the statespace object. > > If the statespace object can represent both continuous and > discrete-time systems, what then should the semantics be? It looks > like Tsamp=0 for continuous time systems. > > It also looks like there is a repository here [3]. Is it going to be > merged with the sourceforge repository eventually, or other way > around? > > Thanks! > Gustavo > > [1] http://mail.scipy.org/pipermail/scipy-dev/2010-August/015468.html and > [2] www.dti.supsi.ch/~bucher/wp-content/uploads/2011/03/yottalab.py > [3] https://bitbucket.org/eike_welk/python-control > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a definitive record of customers, application performance, > security threats, fraudulent activity, and more. Splunk takes this > data and makes sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-novd2d > _______________________________________________ > python-control-discuss mailing list > pyt...@li... > https://lists.sourceforge.net/lists/listinfo/python-control-discuss |