a first implementation of the singular value plot as discussed in #592 by forgi86 · Pull Request #593 · python-control/python-control

@forgi86

- added singular values plot (function singular_values_plot in freqplot.py)
- added a test of the new function (test_singular_values_plot  in freqresp_test.py)
- added an example jupyter notebook (singular-values-plot.ipynb)

bnavigator

@forgi86 @bnavigator

Co-authored-by: Ben Greiner <code@bnavigator.de>
Co-authored-by: Ben Greiner <code@bnavigator.de>
- removed deprecated handling 'Plot'
- fixed docstring for argument plot the singular value plot

@forgi86

@forgi86

- added default settings for singular_values_plot
- added np.atleast_1d(omega) to handle scalar omega parameter
- reshape output of frequency response to handle MIMO/SISO systems in the same way
- if plot condition added to set gridlines and axes labels

bnavigator

@forgi86

…ency response in freqplot.py

bnavigator

- in singular_values_plot: the complex argument to be evaluated for the frequency response is now computed in the if branch
- fixed typos in freqresp_test.py: the siso system is now also tested
- added documentation for parameters Hz and dB of singular_values_plot
- result of singular_values_plot transposed to be in line with the "channel first" format
- tests also updated consequently

bnavigator

@forgi86

- use omega_sys to compute omega_complex!
- added discrete-time example
- added tests with more than one frequency point
- added a test that generates a plot
…tion used by bode_plot and singular_values_plot

bnavigator

murrayrm

- changed line plot = config._get_param('bode', 'grid', plot, True) to config._get_param('bode', 'grid', plot, True)
- changed logic in _determine_omega_vector: if Hz = True, omega_in is interpreted in Hz units (as it is with omega_limits)
- jupyter notebook singular-values-plot.ipynb output fixed
DEV: improved color cycling logic for superimposed singular_values_plot on the same axes: do not repeat the same color
TST: tests in config_test modified to interpret omega in Hz if the option Hz is set to True

@forgi86

@forgi86

bnavigator

@forgi86

@forgi86

Co-authored-by: Ben Greiner <code@bnavigator.de>
…y affects the plot (input/outputs are always in rad/sec)

@forgi86

@forgi86

@forgi86

sawyerbfuller

bnavigator

… make it doctest compliant
… make it doctest compliant
… make it doctest compliant

bnavigator

@forgi86

@bnavigator