Control

Latest version: v0.9.4

Safety actively analyzes 613482 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.6c

* src/__init__.py: moved timebase functions from dtime to lti

* src/lti.py: moved isdtime, isctime, timebase, and timebaseEqual
from dtime.py to lti.py. Moved initialization of dt to
Lti.__init__().

* src/statesp.py (StateSpace.__init__): Moved dt
initialization to Lti object initialization

* src/xferfcn.py (TransferFunction.__init__): Moved dt
initialization to Lti object initialization

2012-10-06 Richard Murray <murrayaltura.local>

* tests/discrete_test.py: added additional tests for dt = True cases

* src/statesp.py (StateSpace.__str__): show sampling time as
'unspecified' if dt is a boolean and equal to True

* src/xferfcn.py (TransferFunction.__str__): don't print sampling
time (dt) if dt = True (discrete time with unspecified time base)

* src/dtime.py: added code to support dt = True for unspecified
sampling time for a discrete time system

* src/bdalg.py: much -> must in docstrings

2012-10-06 Richard Murray <murrayaltura.local>

* src/dtime.py: new module with functions for operating on discrete
time systems

* src/modelsimp.py: added NotImplementedError for discrete time
* src/freqplot.py: added NotImplementedError for discrete time

* src/bdalg.py: added documentation about timebases (discrete versus
continuous)

* src/statesp.py (_mimo2siso): include sampling time

* src/xferfcn.py (TransferFunction.__str__): added optional var
keyword to allow any symbol to be used

* src/matlab.py (tf2ss): added code required to keep track of dt

* src/xferfcn.py (TransferFunction.__str__): added additional string for
discrete time system, plus use 'z' for polynomial variable
(TransferFunction.__neg__): set sampling time for negation
(TransferFunction.__add__): added test for same sampling time
(TransferFunction.__mul__): added test for same sampling time
(TransferFunction.__div__): added test for same sampling time
(TransferFunction.feedback): added test for same sampling time

* src/statesp.py (StateSpace.__str__): added additional string for
discrete time system
(StateSpace.__add__): added test for same sampling time
(StateSpace.__mul__): added test for same sampling time
(StateSpace.__rmul__): set sampling time for product
(StateSpace.__neg__): set sampling time for negation
(StateSpace.feedback): added test for same sampling time

* tests/discrete_test.py (TestDiscrete): unit tests for discrete
time systems

* src/xferfcn.py (TransferFunction.__init__): added dt class
variable for discrete time systems

* src/statesp.py (StateSpace.__init__): added dt class variable for
discrete time systems

0.6b

2012-11-02 Richard Murray <murrayaltura.local>

* src/xferfcn.py, src/statesp.py, src/lti.py, src/bdalg.py:
constants must now be of type 'int' rather than 'long' (for python 3
compatibility)

* tests/statefbk_test.py, tests/slycot_convert_test.py,
tests/convert_test.py: added import __future__ calls for python 3
compatibility; updated print calls

* src/modelsimp.py, src/xferfcn.py, src/delay.py, src/phaseplot.py,
src/margins.py, src/statesp.py, src/mateqn.py: added import
__future__ calls for python 3 compatibility

2012-11-02 Richard Murray <murrayaltura.local>

* src/xferfcn.py, src/timeresp.py, src/statesp.py, src/statefbk.py,
src/robust.py, src/rlocus.py, src/pzmap.py, src/phaseplot.py,
src/nichols.py, src/modelsimp.py, src/matlab.py, src/margins.py,
src/freqplot.py, src/ctrlutil.py, src/bdalg.py: globally referenced
import commands for python 3.x

* src/__init__.py: changed import commands to be global instead of
local ('from control.bdalg ...' instead of 'from bdalg ...')

2012-10-31 Richard Murray <murrayaltura.local>

* src/xferfcn.py (TransferFunction._common_den): converted print
statements to python 3 compatible form and included
__future__.print_function

* src/phaseplot.py: converted print statements to python 3
compatible form and included __future__.print_function

* src/mateqn.py (lyap, dlyap): converted except T, E to except T(E)

* src/margins.py: converted print statements to python 3
compatible form and included __future__.print_function

* src/xferfcn.py (TransferFunction.__add__, __mul__, __div__,
feedback): converted raise T, E to raise T(E) for python 3

* src/xferfcn.py (TransferFunction.returnScipySignalLti): fixed
raise(T(E)) bug

* src/statesp.py (_rss_generate): fixed raise(T(E)) bug

* src/statefbk.py (acker, gram): converted raise T, E to raise T(E) for
python 3

* src/modelsimp.py (hsvd, modred, balred): fixed raise(T(E)) bug and
converted raise T, E to raise T(E) for python 3

* src/margins.py (stability_margins): fixed raise(T(E)) bug

* src/statesp.py: converted raise T, E to raise T(E) for python 3

* tests/test_all.py: converted print statements to python 3
compatible form and included __future__.print_function

* tests/statefbk_test.py (TestStatefbk.setUp): turned off debugging
flag (accidently left on)

0.6a

2012-10-27 Richard Murray <murrayaltura.local>

* src/statefbk.py (acker): small updates to docstring

* src/bdalg.py (feedback): fixed up docstring formatting (for sphinx)

* tests/statefbk_test.py (TestStatefbk.testAcker): skip
ill-conditioned systems and loosened tolerances on acker() testing

* src/lti.py (timebaseEqual): replaced "type(sys.dt) == NoneType"
with "sys.dt is None", based on feedback from Luke Peterson that
NoneType is deprecated in python 3.

2012-10-22 Richard Murray <murrayaltura.local>

* examples/genswitch.py (genswitch): updated calls to legend, fixing
problem pointed out by Scott Livingston

2012-10-19 Richard Murray <murraydn0a1594a2.sunet>

* src/matlab.py (rlocus): reverted change in default argument
processing for klist. This has some negative consequences:
http://www.deadlybloodyserious.com/2008/05/default-argument-blunders/

2012-10-18 Richard Murray <murraydn0a1594a2.sunet>

* src/freqplot.py (gangof4_plot, nyquist_plot): discrete time
systems supported (through fresp)

* src/statesp.py (StateSpace.evalfr): added warning if discrete time
evaluation is above Nyquist frequency

* src/xferfcn.py (TransferFunction.evalfr, freqresp): : added
warning if discrete time evaluation is above Nyquist frequency

* tests/discrete_test.py (TestDiscrete.test_discrete_bode):
rudimentary unit test for discrete bode plot

* src/freqplot.py (bode_plot): fixed bug where input frequency list
was being overwritten by default frequency range

* src/xferfcn.py (TransferFunction.evalfr, freqresp): handles dtime

* src/statesp.py (StateSpace.evalfr): handles dtime

* src/lti.py (timebaseEqual): converted function to take systems as
inputs instead of dt as input (also affected functions in statesp.py
and xferfcn.py)

* src/lti.py (timebase): timebase now returns dt instead of
'ctime'/'dtime'

2012-10-13 Richard Murray <murraydn0a1594a2.sunet>

* src/lti.py (timebase): new function to return timebase. Doesn't
yet handle the case where dt == None.

2012-10-07 Richard Murray <murrayaltura.local>

* src/matlab.py (c2d): MATLAB compatible function (just calls
sample_system)

* tests/discrete_test.py (TestDiscrete.test_sample_system): unit
test for sampling

* src/dtime.py (sample_system, _c2dmatched): new functions, based on
contributiosn from Benjamin White

* src/dtime.py: added back this file, this time with sampling routes
to convert from continuous to discrete time

* src/timeresp.py (forced_response): added discrete time simulator,
using dlsim from scipy.signal

2012-10-07 Richard Murray <murrayaltura.local>

0.5c

2012-10-03 Richard Murray <murrayaltura.local>

* tests/matlab_test.py (TestMatlab.testSsdata): unit test

* src/matlab.py (ssdata, tfdata): new functions to return state
space and transfer function object data. For transfer functions,
currenly requires SISO system

* src/freqplot.py (bode_plot): Adding np.atleast_1d to the
np.squeeze calculations makes it possible to use a single value
frequency list (contributed by Benjamin White)

2012-09-09 Richard Murray <murrayaltura.local>

* tests/statefbk_test.py (TestStatefbk.testAcker): unit test

* src/statefbk.py (acker): added acker() from Roberto Bucher.

2012-08-29 Richard Murray <murrayaltura.local>

* src/xferfcn.py (TransferFunction._common_den): fixed up code for
case where poles have multiplicity > 1. Set end limits of check to
avoid overruning the list + combine complex conjugate pole pairs
from the outside in to prevent small errors from growing.

2012-08-26 Richard Murray <murrayaltura.local>

* tests/convert_test.py (TestConvert.testConvert): replaced previous
test of transfer function coefficients with a frequency response
test. This is necessary because various degenerate conditions will
generate a situation where the transfer functions are of different
forms but still equal. Eg 0/1 = 1e-17 s + 1e-16 / (s^2 + s + 1).
Still getting errors, but looks like actual problem in conversion.

* src/statesp.py (_mimo2siso): set default value for warn_conversion
to False

* tests/convert_test.py (TestConvert.testConvert): Added check to
make sure that we don't create problems with uncontrollable or
unobservable systems.

2012-08-25 Richard Murray <murrayaltura.local>

* src/xferfcn.py (TransferFunction._common_den): identified bug in
the way that common denominators are computed; see comments in code
regarding complex conjugate pairs.

* src/statefbk.py (place): repalced nd.size(placed_eigs) with
len(placed_eigs) to fix intermittent problems pointed out by Roberto
Bucher in control-0.3c.

* tests/rlocus_test.py (TestRootLocus.testRootLocus): added sort()
to test to get rid of problems in which ordering was generating an
error.

* src/freqplot.py (nyquist_plot): added code from Kevin Davies to
label frequency points in Nyquist plot

* src/__init__.py: import non-conflicting MATLAB functions by default

* src/freqplot.py (bode_plot, nyquist_plot): simplified code and
removed unneeded options. To set color, linestyle, etc use keywords
and pass to matplotlib.

2012-08-24 Richard Murray <murrayaltura.local>

* src/freqplot.py: added in plot enhancements from Kevin Davies
(bode_plot): pass optional arguments and keywords to matplotlib
(get_pow1000): new function for determinine engineering exponent
(gen_prefix): new function to get SI prefix for power of 1000

* src/freqplot.py (bode_plot): removed extraneous phase_deg calculation

2012-01-07 Richard Murray <murraymalabar.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 <murraymalabar.local>

* src/timeresp.py: fixed doc reference to time-series-convention

2011-08-08 Richard Murray <murraymalabar.local>

* doc/index.rst, doc/modules.rst: Moved MATLAB section into
python-control modules file

2011-08-07 Richard Murray <murraymalabar.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 <murraymalabar.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 <murraymalabar.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)

0.5a

2011-08-07 Richard Murray <murraymalabar.local>

* setup.py: updated version number; next release will be 0.5a since
the changes in function names and argument/return value order (for
time reponses) require small updates in code

* examples/secord-matlab.py, examples/pvtol-nested-ss.py,
examples/test-response.py, examples/pvtol-nested.py: fixed small bug
in order of output arguments for step command

2011-08-06 Richard Murray <murraymalabar.local>

* src/matlab.py (ngrid): copy documentation from nichols_grid

* src/__init__.py: changed import commands to import specific
functions rather than '*' (better modularity)

* src/freqplot.py: default function names are now bode_plot,
nyquist_plot and gangof4_plot (still with aliases to non-"_plot"
versions)

* src/nichols.py (nichols_plot): updated nichols to nichols_plot for
consistency with other python-control plotting functions. Set up
alias for original name

* src/margins.py: StabilityMargins, PhaseCrossoverFrequencies ->
stability_margins, phase_crossover_frequencies

* src/phaseplot.py: changed PhasePlot and boxgrid to phase_plot,
box_grid

* src/timeresp.py: changed ForcedReponse, InitialReponse,
ImpulseReponse and StepResponse to forced_response,
initial_response, impulse_response and step_response.

* src/rlocus.py: changed RootLocus to root_locus for better
compatibility with PEP 8. Also updated unit tests and examples.

2011-07-25 Richard Murray <murraymalabar.local>

* tests/phaseplot_test.py: updated unit tests to use new call
signatures

* examples/phaseplots.py: updated calls to PhasePlot to use new
argument structure

* src/phaseplot.py (PhasePlot): Updated call signature to be
more pythonic and fixed up documentation.

* examples/genswitch.py (genswitch): added new example showing
PhasePlot functionality

* src/phaseplot.py (boxgrid): added function to compute initial
conditions around the edges of a box

2011-07-24 Richard Murray <murraymalabar.local>

* tests/margin_test.py: added simple unit tests for margin functions
(initial versions just call functions; some comparisons missing)

* examples/README: added missing README file

* examples/phaseplots.py: FBS examples for phaseplot

* tests/phaseplot_test.py: unit tests for phaseplot

* src/phaseplot.py: initial cut at phase portrait function, built
from amphaseplot (Feeback Systems [FBS], Astrom and Murray, 2008)

2011-07-15 Richard Murray <murraymalabar.local>

* tests/matlab_test.py (TestMatlab): added unittest for margin()
commands (calling format only)

* src/statesp.py (StateSpace): updated comments

* tests/margin_test.py: set up unit tests for StabilityMargins() and
PhaseCrossoverFrequencies()

* src/__init__.py: added margins.py to __init__

2011-07-14 Richard Murray <murraymalabar.local>

* src/margins.py (GainPhaseMargin): moved freqplot.MarginPlot to
margin.StabilityMargins (MarginPlot didn't actually plot anything)

* src/margins.py (PhaseCrossoverFrequencies): added new function to
compute frequencies that we cross real axis. Contributed by Steffen
Waldherr <waldherrist.uni-stuttgart.de>

2011-07-11 Richard Murray <murraymalabar.local>

* src/rlocus.py: added real() and imag() to list of functions
imported from numpy

* src/freqplot.py: renamed plotting functions to BodePlot,
NyquistPlot, GangOf4Plot and MarginPlot. Set up aliases to the more
common names (bode, nyquest, gangof4, margin). Mainly playing
around with idea for the eventual interface to use.

* tests/matlab_test.py: updated timeresp outputs to match MATLAB

* src/matlab.py (impulse, initial, lsim, step): switched outputs
from step, impulse, initial, lsim to match MATLAB standard

2011-07-01 Richard Murray <murraymalabar.local>

* src/rlocus.py: modified scipy import to only import those
functions that we actually use. This fixes a problem pointed out by
Carsten Knoll (TU Dresden) where control.place could be overwritten
by numpy.place (because of an "from scipy import *" in rlocus.py

* doc/intro.rst: Added link to scipy web page talking about the
differences between numpy and MATLAB (contributed by Shuo Han).

2011-06-25 Richard Murray <murraymalabar.local>

* src/xferfcn.py (TransferFunction._common_den): changed tolerance
for detecting complex valued poles to a user-settable parameter,
with default value 1e-8. This was an attempt to fix errors in the
convert_test.py unittest script (conversion routine was
misclassifying some poles as imaginary when they weren't).

* src/xferfcn.py (_convertToTransferFunction): converted arguments
to tb04ad to numpy arrays; fixes a unit test error in convert_test.py.

* src/statefbk.py (gram): convert system matrix passed to sb03md to
numpy array; this fixes a unit test error in modelsimp_test.py.

* src/matlab.py (impulse): got rid of X0 argument for impulse
response (not implemented in MATLAB).

* doc/intro.rst: added some quick start information

* src/matlab.py: added documentation for step, impulse, initial, lsim

* src/timeresp.py: fixed some MATLAB specific function names in
function doc strings

2011-06-22 Richard Murray <murraymalabar.local>

* doc/intro.rst: fixed some small types

* doc/control.tex: removed (no longer needed)

2011-06-22 Richard Murray <murraymalabar.local>

* doc/intro.rst: Added a slightly more general introduction, with a
pointer to the python-control wiki (on sf.net)

* doc/Makefile: Changed path to sphinx-build to assume it is in the
users path (as opposed to an explicit path)

* doc/conf.py: Added release information into documentation file

2011-06-21 Richard Murray <murraymalabar.local>

* src/statesp.py (_mimo2siso): Moved function from matlab.py.

* src/timeresp.py: added file documentation + split out and updated
copyright info. Small corrections to documentation.
(InitialResponse): Added missing transpose argument in call to
ForcedResponse

* src/matlab.py: minor changes to documentation to avoid line wraps
on standard (80 col) terminal window

* src/matlab.py: removed time-series convention documentation from
matlab.py since current MATLAB version uses standard conventions.
This documentation is currently in timeresp.py.

* src/*, doc/*: added Eike Welk's documentation modifications

2011-06-18 Richard Murray <murraymalabar.local>

* src/timeresp.py, src/matlab.py: moved documentation about time
series convention from matlab.py to timeresp.py

* examples/pvtol-nested-ss.py: Fixed bug in call to step (wrong
second argument)

* tests/matlab_test.py: Updated tests to use MATLAB time response
conventions.

* tests/timeresp_test.py: Created unit tests for timeresp module,
based on matlab_test.py

2011-06-17 Richard Murray <murraymalabar.local>

* src/timeresp.py (ForcedResponse): swapped order of input and time
arguments for linear response, following Eike's comment "T must
always be supplied by the user, but U has a useful default value of
0."

* src/matlab.py: moved code for lsim, initial, step, and impulse to
timeresp.py and put in new routes that call timeresp.* versions of
the functions with transposeData set to True.

* src/timesim.py (_check_convert_array): added transpose argument
that will transpose input data before processing it.

* src/timesim.py: renamed lsim, initial, step, and impulse functions
to ForcedResponse, InitialResponse, StepResponse and
ImpulseResponse. These versions use Eike Welk's input ordering.

* examples/pvtol-nested.py: calls to step() had screwed up inputs.
Fixed.

2011-06-17 Richard Murray <murraymalabar.local>

* src/matlab.py: added MIMO extensions from Eike Welk on 12 Jun
2011: adds MIMO capabilities for ``lsim``, ``step``, ``impulse``,
``initial``

* src/matlab.py: added changes from Eike Welk on 12 May 2011:

- An implementation of the four simulation functions ``lsim``,
``step``, ``initial``, and ``impulse`` of the module ``matlab``.

- Adds a function ``dcgain`` to the ``matlab`` module, which
computes the gain of a linear system for steady state and
constant input.

- The patch contains a bug fix for class ``StateSpace``, which
enables it to work properly together with Scipy's ``signal``
module.

- The simulation functions' return values are changed (back?) to
arrays, because matrices confuse Matplotlib.

- New times series convention: see _time-series-convention section
of matlab documentation

- SISO simulation data are squeezed on output. To turn this off,
pass the option squeeze=False

0.4c

2011-06-17 Richard Murray <murraydhcp096.fhl.washington.edu>

* examples/tfvis.py: Added tfvis, Simple GUI application for
visualizing how the poles/zeros of the transfer function effects the
bode, nyquist and step response of a SISO system. Contributed by
Vanessa Romero Segovia, Ola Johnsson, Jerker Nordh.

2011-06-16 Richard Murray <murraymalabar.local>

* src/matlab.py: import mateqn functions

* src/__init__.py: import mateqn functions

* tests/test_all.py: added unit tests for matrix solvers, converting
to standard format along the way. Seems to work even if slycot
routines are not in place, but I'm not sure if this is for the right
reasons...

* src/mateqn.py: added matrix solvers from LTH (Ola Johnsson, Jerker
Nordh, Bjorn Olofsson, Vanessa Romero). Moved slycot function
checks to the portion of the code where they are used, so that
missing slycot doesn't mess up initialization if proper version of
slycot is not available.

2011-04-02 Richard Murray <murraymalabar.local>

* src/xferfcn.py (TransferFunction.__add__): fixed bug when adding a
transfer function to state space system; _convertToTransferFunction
was being called with input/output keywords. Picked up in unit test.

* tests/matlab_test.py: added calls to all of the functions that are
currently implemented in the library, to make sure there are no
hidden issues. These calls do *not* test functionality, they just
make sure that MATLAB compatibility functions accept the right types
of arguments.

* examples/secord-matlab.py: added root locus plot to list of
figures that are produced

* src/__init__.py: added rlocus to list of modules that are imported
by control module

* src/exception.py (ControlMIMONotImplemented): added exception for
functions that are not yet implemented for MIMO systems

* src/xferfcn.py (TransferFunction.__init__): convert integer
numerator and denominator objects to floats to eliminate errors when
creating common denominator (also used on pole command). This fixes
and error were tf([1], [1, 2, 1]).pole() would generate an error.

* src/freqplot.py (bode): Tweaked documentation string to remove 'h'
from mag and phase return arguments

* src/rlocus.py (RootLocus): removed commands that set figure number
inside of RootLocus command, for consistency with other frequency
plot routines. Added Plot=True argument and updated documentation.

* src/matlab.py: added rlocus() command (calls RootLocus)

* MANIFEST.in: Added MANIFEST.in file to include examples and tests
in source distribution

* README: Updated to include information on how to run unit tests.

* setup.py: updated version number to 0.4c

Page 1 of 2

Links

Releases

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.