I'm working on a control system toolbox for python. In particular I've modified some functions of the control system toolbox developed by Richard Murray and I added some new functions. The first problem is related to the modul ltisys.py that I modified for handling: - MIMO systems (state-space only) - Sampling Time for discrete time system I've done other modifications to different modul of Richard, who is in CC: - matlab.py - statesp.py - xferfcn.py in order to implement the following new functions in my yottalab.py modul: - c2d (zoh+bilinear) - d2c (zoh+bilinear) - dare - discrete riccati solution - care - continous riccati solution - dlqr - discrete linear quadratic regulator - ctrb - controllability matrix - acker - ackerman pole placement - minreal - minimal state space representation - dcgain steady state gain for both continous and discrete time systems - tf (casting function) - ss (casting function) The modified files can be downloaded from my homepage in the python section, but I want to see how I can contribute to put the modifications in the main Scipy distribution. Best regards Roberto -- ----------------------------------------------------------------------------- Coltivate Linux! Tanto Windows si pianta da solo... ----------------------------------------------------------------------------- University of Applied Sciences of Southern Switzerland Dept. Innovative Technologies CH-6928 Lugano-Manno http://web.dti.supsi.ch/~bucher
On Sat, Aug 21, 2010 at 2:00 PM, Roberto Bucher <roberto.bucher@supsi.ch> wrote:
I'm working on a control system toolbox for python. In particular I've modified some functions of the control system toolbox developed by Richard Murray and I added some new functions. The first problem is related to the modul ltisys.py that I modified for handling: - MIMO systems (state-space only) - Sampling Time for discrete time system
I've done other modifications to different modul of Richard, who is in CC: - matlab.py - statesp.py - xferfcn.py in order to implement the following new functions in my yottalab.py modul: - c2d (zoh+bilinear) - d2c (zoh+bilinear) - dare - discrete riccati solution - care - continous riccati solution - dlqr - discrete linear quadratic regulator - ctrb - controllability matrix - acker - ackerman pole placement - minreal - minimal state space representation - dcgain steady state gain for both continous and discrete time systems - tf (casting function) - ss (casting function)
The modified files can be downloaded from my homepage in the python section, but I want to see how I can contribute to put the modifications in the main Scipy distribution.
I would find it very good if such enhancements go into scipy ltisys. It was often requested, and I think we will be able to use them also for time series analysis. I stopped looking at it after I figured out ltisys only handled single input, mainly continuous time processes. And I hope someone finds the time soon to review this (but unfortunately I don't have any time at all right now). A few questions: Do you have your changes under version control? It would make it easier to produce a diff and look at the changes. Do you have examples that could be converted into tests? Licensing: scipy and python-control are BSD your yottalab.py doesn't have a license statement, but it has to be GPL by infection, because of "from slycot import sb02od, tb03ad" since slycot is GPL Would it be useful to license your parts of yottalab that don't rely on slycot as BSD? e.g. if a replacement for slycot could be found. or maybe python control also moves to GPL with slycot integration ? http://sourceforge.net/apps/mediawiki/python-control/index.php?title=Develop... Thanks, Josef
Best regards
Roberto
-- ----------------------------------------------------------------------------- Coltivate Linux! Tanto Windows si pianta da solo... ----------------------------------------------------------------------------- University of Applied Sciences of Southern Switzerland Dept. Innovative Technologies CH-6928 Lugano-Manno http://web.dti.supsi.ch/~bucher _______________________________________________ SciPy-Dev mailing list SciPy-Dev@scipy.org http://mail.scipy.org/mailman/listinfo/scipy-dev
Thanks Josef for your quick answer. It's not a problem for me to work under version control. I'm already one of the developper of Linux RTAI and in particular I've modified the Scicoslab code generator in order to create code for RT systems (RTAI+dsPIC). I'm used to work with CVS, GIT and SVN tools. Of course my code will be released completely under the BSD licence. It is still in development, because I'm still looking for Matlab FOSS replacements. Till now, I've worked with Scicoslab, but Python seems to be a good alternative too. At present, the main problem with the control system toolbox under Python is that it is not ready for practical applications: in particular it is not able to handle with discrete time systems... I'll put ASAP two examples on my homepage: - DC motor with state feedback controller, integrator + reduced order observer - Inverted pendulum, with LQR state feedback + reduced order observer My first goal was to demonstrate the possibility to reproduce all my Scicoslab systems under Python, and I reached it. Best regards Roberto On Saturday 21 August 2010 21:09:36 josef.pktd@gmail.com wrote:
On Sat, Aug 21, 2010 at 2:00 PM, Roberto Bucher <roberto.bucher@supsi.ch> wrote:
I'm working on a control system toolbox for python. In particular I've modified some functions of the control system toolbox developed by Richard Murray and I added some new functions. The first problem is related to the modul ltisys.py that I modified for handling: - MIMO systems (state-space only) - Sampling Time for discrete time system
I've done other modifications to different modul of Richard, who is in CC: - matlab.py - statesp.py - xferfcn.py in order to implement the following new functions in my yottalab.py modul: - c2d (zoh+bilinear) - d2c (zoh+bilinear) - dare - discrete riccati solution - care - continous riccati solution - dlqr - discrete linear quadratic regulator - ctrb - controllability matrix - acker - ackerman pole placement - minreal - minimal state space representation - dcgain steady state gain for both continous and discrete time systems - tf (casting function) - ss (casting function)
The modified files can be downloaded from my homepage in the python section, but I want to see how I can contribute to put the modifications in the main Scipy distribution.
I would find it very good if such enhancements go into scipy ltisys. It was often requested, and I think we will be able to use them also for time series analysis. I stopped looking at it after I figured out ltisys only handled single input, mainly continuous time processes. And I hope someone finds the time soon to review this (but unfortunately I don't have any time at all right now).
A few questions:
Do you have your changes under version control? It would make it easier to produce a diff and look at the changes.
Do you have examples that could be converted into tests?
Licensing: scipy and python-control are BSD your yottalab.py doesn't have a license statement, but it has to be GPL by infection, because of "from slycot import sb02od, tb03ad" since slycot is GPL
Would it be useful to license your parts of yottalab that don't rely on slycot as BSD? e.g. if a replacement for slycot could be found.
or maybe python control also moves to GPL with slycot integration ? http://sourceforge.net/apps/mediawiki/python-control/index.php?title=Develo per_assignments
Thanks,
Josef
Best regards
Roberto
-- ------------------------------------------------------------------------- ---- Coltivate Linux! Tanto Windows si pianta da solo... ------------------------------------------------------------------------- ---- University of Applied Sciences of Southern Switzerland Dept. Innovative Technologies CH-6928 Lugano-Manno http://web.dti.supsi.ch/~bucher _______________________________________________ SciPy-Dev mailing list SciPy-Dev@scipy.org http://mail.scipy.org/mailman/listinfo/scipy-dev
-- ----------------------------------------------------------------------------- Coltivate Linux! Tanto Windows si pianta da solo... ----------------------------------------------------------------------------- University of Applied Sciences of Southern Switzerland Dept. Innovative Technologies CH-6928 Lugano-Manno http://web.dti.supsi.ch/~bucher
josef.pktd@gmail.com wrote:
Licensing: scipy and python-control are BSD your yottalab.py doesn't have a license statement, but it has to be GPL by infection, because of "from slycot import sb02od, tb03ad" since slycot is GPL
Would it be useful to license your parts of yottalab that don't rely on slycot as BSD? e.g. if a replacement for slycot could be found.
or maybe python control also moves to GPL with slycot integration ? http://sourceforge.net/apps/mediawiki/python-control/index.php?title=Develop...
Alternatively, one could ask the slycot/SLICOT authors if they would relicense their work as BSD so that it can be included in scipy. Historically, several authors have agreed to change GPL code to BSD when asked nicely with this given as the reason. -Andrew
On Aug 21, 2010, at 1:00 PM, Roberto Bucher wrote:
I'm working on a control system toolbox for python. In particular I've modified some functions of the control system toolbox developed by Richard Murray and I added some new functions. The first problem is related to the modul ltisys.py that I modified for handling: - MIMO systems (state-space only) - Sampling Time for discrete time system
I've done other modifications to different modul of Richard, who is in CC: - matlab.py - statesp.py - xferfcn.py in order to implement the following new functions in my yottalab.py modul: - c2d (zoh+bilinear) - d2c (zoh+bilinear) - dare - discrete riccati solution - care - continous riccati solution - dlqr - discrete linear quadratic regulator - ctrb - controllability matrix - acker - ackerman pole placement - minreal - minimal state space representation - dcgain steady state gain for both continous and discrete time systems - tf (casting function) - ss (casting function)
The modified files can be downloaded from my homepage in the python section, but I want to see how I can contribute to put the modifications in the main Scipy distribution.
These would make great additions to SciPy. We are moving to a more distributed development model which should help you be able to make version-controlled changes to these files as part of SciPy. As soon as we make progress in that direction, I can review your changes and get them into SciPy. -Travis
participants (4)
-
Andrew Straw -
josef.pktd@gmail.com -
Roberto Bucher -
Travis Oliphant