From cd87f2f4ce7934720e1b25be59d76b247b154c05 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Thu, 4 Jul 2024 15:55:53 +0200 Subject: [PATCH 001/448] Implement ERA, change api to TimeResponseData --- control/modelsimp.py | 108 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 87 insertions(+), 21 deletions(-) diff --git a/control/modelsimp.py b/control/modelsimp.py index 06c3d350d..11bc16240 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -368,38 +368,104 @@ def minreal(sys, tol=None, verbose=True): return sysr -def era(YY, m, n, nin, nout, r): - """Calculate an ERA model of order `r` based on the impulse-response data - `YY`. +def era(data, r, m=None, n=None, dt=True): + """Calculate an ERA model of order `r` based on the impulse-response data. - .. note:: This function is not implemented yet. + This function computes a discrete time system + + .. math:: + + x[k+1] &= A x[k] + B u[k] \\\\ + y[k] &= C x[k] + D u[k] + + for a given impulse-response data (see [1]_). Parameters ---------- - YY: array - `nout` x `nin` dimensional impulse-response data - m: integer - Number of rows in Hankel matrix - n: integer - Number of columns in Hankel matrix - nin: integer - Number of input variables - nout: integer - Number of output variables - r: integer - Order of model + data : TimeResponseData + impulse-response data from which the StateSpace model is estimated. + r : integer + Order of model. + m : integer, optional + Number of rows in Hankel matrix. + Default is 2*r. + n : integer, optional + Number of columns in Hankel matrix. + Default is 2*r. + dt : True or float, optional + True indicates discrete time with unspecified sampling time, + positive number is discrete time with specified sampling time. + It can be used to scale the StateSpace model in order to match + the impulse response of this library. + Default values is True. Returns ------- - sys: StateSpace - A reduced order model sys=ss(Ar,Br,Cr,Dr) + sys : StateSpace + A reduced order model sys=StateSpace(Ar,Br,Cr,Dr,dt) + S : array + Singular values of Hankel matrix. + Can be used to choose a good r value. + + References + ---------- + .. [1] Samet Oymak and Necmiye Ozay + Non-asymptotic Identification of LTI Systems + from a Single Trajectory. + https://arxiv.org/abs/1806.05722 Examples -------- - >>> rsys = era(YY, m, n, nin, nout, r) # doctest: +SKIP - + >>> T = np.linspace(0, 10, 100) + >>> response = ct.impulse_response(ct.tf([1], [1, 0.5], True), T) + >>> sysd, _ = ct.era(response, r=1) """ - raise NotImplementedError('This function is not implemented yet.') + def block_hankel_matrix(Y, m, n): + + q, p, _ = Y.shape + YY = Y.transpose(0,2,1) # transpose for reshape + + H = np.zeros((q*m,p*n)) + + for r in range(m): + # shift and add row to hankel matrix + new_row = YY[:,r:r+n,:] + H[q*r:q*(r+1),:] = new_row.reshape((q,p*n)) + + return H + + Y = np.array(data.outputs, ndmin=3) + if data.transpose: + Y = np.transpose(Y) + q, p, l = Y.shape + + if m is None: + m = 2*r + if n is None: + n = 2*r + + if m*q < r or n*p < r: + raise ValueError("Hankel parameters are to small") + + if (l-1) < m+n: + raise ValueError("Not enough data for requested number of parameters") + + H = block_hankel_matrix(Y[:,:,1:], m, n+1) # Hankel matrix (q*m, p*(n+1)) + Hf = H[:,:-p] # first p*n columns of H + Hl = H[:,p:] # last p*n columns of H + + U,S,Vh = np.linalg.svd(Hf, True) + Ur =U[:,0:r] + Vhr =Vh[0:r,:] + + # balanced realizations + Sigma_inv = np.diag(1./np.sqrt(S[0:r])) + Ar = Sigma_inv @ Ur.T @ Hl @ Vhr.T @ Sigma_inv + Br = Sigma_inv @ Ur.T @ Hf[:,0:p]*dt + Cr = Hf[0:q,:] @ Vhr.T @ Sigma_inv + Dr = Y[:,:,0] + + return StateSpace(Ar,Br,Cr,Dr,dt), S def markov(Y, U, m=None, transpose=False): From 8a9c4974ddb5453b51569d16039816b5824d334c Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Thu, 4 Jul 2024 19:01:31 +0200 Subject: [PATCH 002/448] Add era example --- examples/era_mkd.py | 64 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 examples/era_mkd.py diff --git a/examples/era_mkd.py b/examples/era_mkd.py new file mode 100644 index 000000000..e8486de40 --- /dev/null +++ b/examples/era_mkd.py @@ -0,0 +1,64 @@ +# mkd_era.py +# Johannes Kaisinger, 4 July 2024 +# +# Demonstrate estimation of markov parameters. +# SISO, SIMO, MISO, MIMO case + + +import numpy as np +import matplotlib.pyplot as plt +import os + + +import control as ct + + +# set up a mass spring damper system (2dof, MIMO case) +# m q_dd + c q_d + k q = u +m1, k1, c1 = 1., 1., .1 +m2, k2, c2 = 2., .5, .1 +k3, c3 = .5, .1 + +A = np.array([ + [0., 0., 1., 0.], + [0., 0., 0., 1.], + [-(k1+k2)/m1, (k2)/m1, -(c1+c2)/m1, c2/m1], + [(k2)/m2, -(k2+k3)/m2, c2/m2, -(c2+c3)/m2] +]) +B = np.array([[0.,0.],[0.,0.],[1/m1,0.],[0.,1/m2]]) +C = np.array([[1.0, 0.0, 0.0, 0.0],[0.0, 1.0, 0.0, 0.0]]) +D = np.zeros((2,2)) + +xixo_list = ["SISO","SIMO","MISO","MIMO"] +xixo = xixo_list[3] # choose a system for estimation +match xixo: + case "SISO": + sys = ct.StateSpace(A, B[:,0], C[0,:], D[0,0]) + case "SIMO": + sys = ct.StateSpace(A, B[:,:1], C, D[:,:1]) + case "MISO": + sys = ct.StateSpace(A, B, C[:1,:], D[:1,:]) + case "MIMO": + sys = ct.StateSpace(A, B, C, D) + + +dt = 0.5 +sysd = sys.sample(dt, method='zoh') +response = ct.impulse_response(sysd) +response.plot() +plt.show() + +sysd_est, _ = ct.era(response,r=4,dt=dt) + +step_true = ct.step_response(sysd) +step_est = ct.step_response(sysd_est) + +step_true.plot(title=xixo) +step_est.plot(color='orange',linestyle='dashed') + +plt.show() + + +if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: + + plt.show() \ No newline at end of file From 562824c1c87e962ea34cdd6193aeaa87ace6fc51 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Thu, 4 Jul 2024 19:05:56 +0200 Subject: [PATCH 003/448] Rename era example file name, small clean up --- examples/{era_mkd.py => era_msd.py} | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) rename examples/{era_mkd.py => era_msd.py} (94%) diff --git a/examples/era_mkd.py b/examples/era_msd.py similarity index 94% rename from examples/era_mkd.py rename to examples/era_msd.py index e8486de40..f33a27a35 100644 --- a/examples/era_mkd.py +++ b/examples/era_msd.py @@ -1,18 +1,15 @@ -# mkd_era.py +# era_msd.py # Johannes Kaisinger, 4 July 2024 # -# Demonstrate estimation of markov parameters. +# Demonstrate estimation of State Space model from impulse response. # SISO, SIMO, MISO, MIMO case - import numpy as np import matplotlib.pyplot as plt import os - import control as ct - # set up a mass spring damper system (2dof, MIMO case) # m q_dd + c q_d + k q = u m1, k1, c1 = 1., 1., .1 @@ -58,7 +55,5 @@ plt.show() - if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: - plt.show() \ No newline at end of file From 6bbad5f1e61d31d81c36ca57834cdf2acc9f5d1d Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Thu, 4 Jul 2024 19:18:36 +0200 Subject: [PATCH 004/448] Add era example to doc --- doc/era_msd.py | 1 + doc/era_msd.rst | 15 +++++++++++++++ doc/examples.rst | 1 + 3 files changed, 17 insertions(+) create mode 120000 doc/era_msd.py create mode 100644 doc/era_msd.rst diff --git a/doc/era_msd.py b/doc/era_msd.py new file mode 120000 index 000000000..0cf6a5282 --- /dev/null +++ b/doc/era_msd.py @@ -0,0 +1 @@ +../examples/era_msd.py \ No newline at end of file diff --git a/doc/era_msd.rst b/doc/era_msd.rst new file mode 100644 index 000000000..de702406e --- /dev/null +++ b/doc/era_msd.rst @@ -0,0 +1,15 @@ +ERA example, mass spring damper system +-------------------------------------- + +Code +.... +.. literalinclude:: era_msd.py + :language: python + :linenos: + + +Notes +..... + +1. The environment variable `PYCONTROL_TEST_EXAMPLES` is used for +testing to turn off plotting of the outputs.0 \ No newline at end of file diff --git a/doc/examples.rst b/doc/examples.rst index 21364157e..25e161159 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -35,6 +35,7 @@ other sources. kincar-flatsys mrac_siso_mit mrac_siso_lyapunov + era_msd Jupyter notebooks ================= From 614a0808a452c6658de58f869bb5eb1af383c35a Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Sun, 7 Jul 2024 19:09:12 +0200 Subject: [PATCH 005/448] Change API to work with TimeResponseData and ndarray as input, add pytest, fix small things --- control/modelsimp.py | 47 +++++++++++++++---- control/tests/modelsimp_test.py | 83 ++++++++++++++++++++++++++++++++- examples/era_msd.py | 14 ++++-- 3 files changed, 128 insertions(+), 16 deletions(-) diff --git a/control/modelsimp.py b/control/modelsimp.py index 11bc16240..d3d934668 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -48,6 +48,7 @@ from .iosys import isdtime, isctime from .statesp import StateSpace from .statefbk import gram +from .timeresp import TimeResponseData __all__ = ['hsvd', 'balred', 'modred', 'era', 'markov', 'minreal'] @@ -368,8 +369,10 @@ def minreal(sys, tol=None, verbose=True): return sysr -def era(data, r, m=None, n=None, dt=True): - """Calculate an ERA model of order `r` based on the impulse-response data. +def era(arg, r, m=None, n=None, dt=True, transpose=False): + r"""era(YY, r) + + Calculate an ERA model of order `r` based on the impulse-response data. This function computes a discrete time system @@ -380,8 +383,19 @@ def era(data, r, m=None, n=None, dt=True): for a given impulse-response data (see [1]_). + The function can be called with 2 arguments: + + * ``sysd, S = era(data, r)`` + * ``sysd, S = era(YY, r)`` + + where `response` is an `TimeResponseData` object, and `YY` is 1D or 3D + array and r is an integer. + Parameters ---------- + YY : array_like + impulse-response data from which the StateSpace model is estimated, + 1D or 3D array. data : TimeResponseData impulse-response data from which the StateSpace model is estimated. r : integer @@ -398,11 +412,16 @@ def era(data, r, m=None, n=None, dt=True): It can be used to scale the StateSpace model in order to match the impulse response of this library. Default values is True. + transpose : bool, optional + Assume that input data is transposed relative to the standard + :ref:`time-series-convention`. For TimeResponseData this parameter + is ignored. + Default value is False. Returns ------- sys : StateSpace - A reduced order model sys=StateSpace(Ar,Br,Cr,Dr,dt) + A reduced order model sys=StateSpace(Ar,Br,Cr,Dr,dt). S : array Singular values of Hankel matrix. Can be used to choose a good r value. @@ -416,6 +435,10 @@ def era(data, r, m=None, n=None, dt=True): Examples -------- + >>> T = np.linspace(0, 10, 100) + >>> _, YY = ct.impulse_response(ct.tf([1], [1, 0.5], True), T) + >>> sysd, _ = ct.era(YY, r=1) + >>> T = np.linspace(0, 10, 100) >>> response = ct.impulse_response(ct.tf([1], [1, 0.5], True), T) >>> sysd, _ = ct.era(response, r=1) @@ -434,10 +457,16 @@ def block_hankel_matrix(Y, m, n): return H - Y = np.array(data.outputs, ndmin=3) - if data.transpose: - Y = np.transpose(Y) - q, p, l = Y.shape + if isinstance(arg, TimeResponseData): + YY = np.array(arg.outputs, ndmin=3) + if arg.transpose: + YY = np.transpose(YY) + else: + YY = np.array(arg, ndmin=3) + if transpose: + YY = np.transpose(YY) + + q, p, l = YY.shape if m is None: m = 2*r @@ -450,7 +479,7 @@ def block_hankel_matrix(Y, m, n): if (l-1) < m+n: raise ValueError("Not enough data for requested number of parameters") - H = block_hankel_matrix(Y[:,:,1:], m, n+1) # Hankel matrix (q*m, p*(n+1)) + H = block_hankel_matrix(YY[:,:,1:], m, n+1) # Hankel matrix (q*m, p*(n+1)) Hf = H[:,:-p] # first p*n columns of H Hl = H[:,p:] # last p*n columns of H @@ -463,7 +492,7 @@ def block_hankel_matrix(Y, m, n): Ar = Sigma_inv @ Ur.T @ Hl @ Vhr.T @ Sigma_inv Br = Sigma_inv @ Ur.T @ Hf[:,0:p]*dt Cr = Hf[0:q,:] @ Vhr.T @ Sigma_inv - Dr = Y[:,:,0] + Dr = YY[:,:,0] return StateSpace(Ar,Br,Cr,Dr,dt), S diff --git a/control/tests/modelsimp_test.py b/control/tests/modelsimp_test.py index 49c2afd58..39277fb4f 100644 --- a/control/tests/modelsimp_test.py +++ b/control/tests/modelsimp_test.py @@ -7,10 +7,10 @@ import pytest -from control import StateSpace, forced_response, tf, rss, c2d +from control import StateSpace, impulse_response, step_response, forced_response, tf, rss, c2d from control.exception import ControlMIMONotImplemented from control.tests.conftest import slycotonly -from control.modelsimp import balred, hsvd, markov, modred +from control.modelsimp import balred, hsvd, markov, modred, era class TestModelsimp: @@ -111,6 +111,85 @@ def testMarkovResults(self, k, m, n): # for k=5, m=n=10: 0.015 % np.testing.assert_allclose(Mtrue, Mcomp, rtol=1e-6, atol=1e-8) + def testERASignature(self): + + # test siso + # Katayama, Subspace Methods for System Identification + # Example 6.1, Fibonacci sequence + H_true = np.array([0.,1.,1.,2.,3.,5.,8.,13.,21.,34.]) + + # A realization of fibonacci impulse response + A = np.array([[0., 1.],[1., 1.,]]) + B = np.array([[1.],[1.,]]) + C = np.array([[1., 0.,]]) + D = np.array([[0.,]]) + + T = np.arange(0,10,1) + sysd_true = StateSpace(A,B,C,D,True) + ir_true = impulse_response(sysd_true,T=T) + + # test TimeResponseData + sysd_est, _ = era(ir_true,r=2) + ir_est = impulse_response(sysd_est, T=T) + _, H_est = ir_est + + np.testing.assert_allclose(H_true, H_est, rtol=1e-6, atol=1e-8) + + # test ndarray + _, YY_true = ir_true + sysd_est, _ = era(YY_true,r=2) + ir_est = impulse_response(sysd_est, T=T) + _, H_est = ir_est + + np.testing.assert_allclose(H_true, H_est, rtol=1e-6, atol=1e-8) + + # test mimo + # Mechanical Vibrations: Theory and Application, SI Edition, 1st ed. + # Figure 6.5 / Example 6.7 + # m q_dd + c q_d + k q = f + m1, k1, c1 = 1., 4., 1. + m2, k2, c2 = 2., 2., 1. + k3, c3 = 6., 2. + + A = np.array([ + [0., 0., 1., 0.], + [0., 0., 0., 1.], + [-(k1+k2)/m1, (k2)/m1, -(c1+c2)/m1, c2/m1], + [(k2)/m2, -(k2+k3)/m2, c2/m2, -(c2+c3)/m2] + ]) + B = np.array([[0.,0.],[0.,0.],[1/m1,0.],[0.,1/m2]]) + C = np.array([[1.0, 0.0, 0.0, 0.0],[0.0, 1.0, 0.0, 0.0]]) + D = np.zeros((2,2)) + + sys = StateSpace(A, B, C, D) + + dt = 0.1 + T = np.arange(0,10,dt) + sysd_true = sys.sample(dt, method='zoh') + ir_true = impulse_response(sysd_true, T=T) + + # test TimeResponseData + sysd_est, _ = era(ir_true,r=4,dt=dt) + + step_true = step_response(sysd_true) + step_est = step_response(sysd_est) + + np.testing.assert_allclose(step_true.outputs, + step_est.outputs, + rtol=1e-6, atol=1e-8) + + # test ndarray + _, YY_true = ir_true + sysd_est, _ = era(YY_true,r=4,dt=dt) + + step_true = step_response(sysd_true, T=T) + step_est = step_response(sysd_est, T=T) + + np.testing.assert_allclose(step_true.outputs, + step_est.outputs, + rtol=1e-6, atol=1e-8) + + def testModredMatchDC(self): #balanced realization computed in matlab for the transfer function: # num = [1 11 45 32], den = [1 15 60 200 60] diff --git a/examples/era_msd.py b/examples/era_msd.py index f33a27a35..9a5fc8c4d 100644 --- a/examples/era_msd.py +++ b/examples/era_msd.py @@ -11,10 +11,12 @@ import control as ct # set up a mass spring damper system (2dof, MIMO case) -# m q_dd + c q_d + k q = u -m1, k1, c1 = 1., 1., .1 -m2, k2, c2 = 2., .5, .1 -k3, c3 = .5, .1 +# Mechanical Vibrations: Theory and Application, SI Edition, 1st ed. +# Figure 6.5 / Example 6.7 +# m q_dd + c q_d + k q = f +m1, k1, c1 = 1., 4., 1. +m2, k2, c2 = 2., 2., 1. +k3, c3 = 6., 2. A = np.array([ [0., 0., 1., 0.], @@ -39,7 +41,7 @@ sys = ct.StateSpace(A, B, C, D) -dt = 0.5 +dt = 0.1 sysd = sys.sample(dt, method='zoh') response = ct.impulse_response(sysd) response.plot() @@ -48,7 +50,9 @@ sysd_est, _ = ct.era(response,r=4,dt=dt) step_true = ct.step_response(sysd) +step_true.sysname="H_true" step_est = ct.step_response(sysd_est) +step_est.sysname="H_est" step_true.plot(title=xixo) step_est.plot(color='orange',linestyle='dashed') From 234e6ec77c29c677289f37fcccc54ce6ec4fb726 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 27 Jun 2024 15:34:49 -0700 Subject: [PATCH 006/448] move code around to new locations --- control/ctrlplot.py | 232 ++++++++++++++++++++++++++++++++- control/freqplot.py | 215 +----------------------------- control/nichols.py | 5 +- control/phaseplot.py | 2 +- control/pzmap.py | 3 +- control/tests/ctrlplot_test.py | 42 ++++++ control/tests/timeplot_test.py | 35 ----- control/timeplot.py | 17 +-- 8 files changed, 281 insertions(+), 270 deletions(-) create mode 100644 control/tests/ctrlplot_test.py diff --git a/control/ctrlplot.py b/control/ctrlplot.py index c8c30880d..e53d4917e 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -5,6 +5,7 @@ from os.path import commonprefix +import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np @@ -12,6 +13,28 @@ __all__ = ['suptitle', 'get_plot_axes'] +# +# Style parameters +# + +_ctrlplot_rcParams = mpl.rcParams.copy() +_ctrlplot_rcParams.update({ + 'axes.labelsize': 'small', + 'axes.titlesize': 'small', + 'figure.titlesize': 'medium', + 'legend.fontsize': 'x-small', + 'xtick.labelsize': 'small', + 'ytick.labelsize': 'small', +}) + + +# +# User functions +# +# The functions below can be used by users to modify ctrl plots or get +# information about them. +# + def suptitle( title, fig=None, frame='axes', **kwargs): @@ -35,7 +58,7 @@ def suptitle( Additional keywords (passed to matplotlib). """ - rcParams = config._get_param('freqplot', 'rcParams', kwargs, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) if fig is None: fig = plt.gcf() @@ -61,10 +84,10 @@ def suptitle( def get_plot_axes(line_array): """Get a list of axes from an array of lines. - This function can be used to return the set of axes corresponding to - the line array that is returned by `time_response_plot`. This is useful for - generating an axes array that can be passed to subsequent plotting - calls. + This function can be used to return the set of axes corresponding + to the line array that is returned by `time_response_plot`. This + is useful for generating an axes array that can be passed to + subsequent plotting calls. Parameters ---------- @@ -89,6 +112,125 @@ def get_plot_axes(line_array): # # Utility functions # +# These functions are used by plotting routines to provide a consistent way +# of processing and displaing information. +# + + +def _process_ax_keyword( + axs, shape=(1, 1), rcParams=None, squeeze=False, clear_text=False): + """Utility function to process ax keyword to plotting commands. + + This function processes the `ax` keyword to plotting commands. If no + ax keyword is passed, the current figure is checked to see if it has + the correct shape. If the shape matches the desired shape, then the + current figure and axes are returned. Otherwise a new figure is + created with axes of the desired shape. + + Legacy behavior: some of the older plotting commands use a axes label + to identify the proper axes for plotting. This behavior is supported + through the use of the label keyword, but will only work if shape == + (1, 1) and squeeze == True. + + """ + if axs is None: + fig = plt.gcf() # get current figure (or create new one) + axs = fig.get_axes() + + # Check to see if axes are the right shape; if not, create new figure + # Note: can't actually check the shape, just the total number of axes + if len(axs) != np.prod(shape): + with plt.rc_context(rcParams): + if len(axs) != 0: + # Create a new figure + fig, axs = plt.subplots(*shape, squeeze=False) + else: + # Create new axes on (empty) figure + axs = fig.subplots(*shape, squeeze=False) + fig.set_layout_engine('tight') + fig.align_labels() + else: + # Use the existing axes, properly reshaped + axs = np.asarray(axs).reshape(*shape) + + if clear_text: + # Clear out any old text from the current figure + for text in fig.texts: + text.set_visible(False) # turn off the text + del text # get rid of it completely + else: + try: + axs = np.asarray(axs).reshape(shape) + except ValueError: + raise ValueError( + "specified axes are not the right shape; " + f"got {axs.shape} but expecting {shape}") + fig = axs[0, 0].figure + + # Process the squeeze keyword + if squeeze and shape == (1, 1): + axs = axs[0, 0] # Just return the single axes object + elif squeeze: + axs = axs.squeeze() + + return fig, axs + + +# Turn label keyword into array indexed by trace, output, input +# TODO: move to ctrlutil.py and update parameter names to reflect general use +def _process_line_labels(label, ntraces, ninputs=0, noutputs=0): + if label is None: + return None + + if isinstance(label, str): + label = [label] * ntraces # single label for all traces + + # Convert to an ndarray, if not done aleady + try: + line_labels = np.asarray(label) + except ValueError: + raise ValueError("label must be a string or array_like") + + # Turn the data into a 3D array of appropriate shape + # TODO: allow more sophisticated broadcasting (and error checking) + try: + if ninputs > 0 and noutputs > 0: + if line_labels.ndim == 1 and line_labels.size == ntraces: + line_labels = line_labels.reshape(ntraces, 1, 1) + line_labels = np.broadcast_to( + line_labels, (ntraces, ninputs, noutputs)) + else: + line_labels = line_labels.reshape(ntraces, ninputs, noutputs) + except ValueError: + if line_labels.shape[0] != ntraces: + raise ValueError("number of labels must match number of traces") + else: + raise ValueError("labels must be given for each input/output pair") + + return line_labels + + +# Get labels for all lines in an axes +def _get_line_labels(ax, use_color=True): + labels, lines = [], [] + last_color, counter = None, 0 # label unknown systems + for i, line in enumerate(ax.get_lines()): + label = line.get_label() + if use_color and label.startswith("Unknown"): + label = f"Unknown-{counter}" + if last_color is None: + last_color = line.get_color() + elif last_color != line.get_color(): + counter += 1 + last_color = line.get_color() + elif label[0] == '_': + continue + + if label not in labels: + lines.append(line) + labels.append(label) + + return lines, labels # Utility function to make legend labels @@ -160,3 +302,83 @@ def _find_axes_center(fig, axs): ylim = [min(ll[1], ylim[0]), max(ur[1], ylim[1])] return (np.sum(xlim)/2, np.sum(ylim)/2) + + +# Internal function to add arrows to a curve +def _add_arrows_to_line2D( + axes, line, arrow_locs=[0.2, 0.4, 0.6, 0.8], + arrowstyle='-|>', arrowsize=1, dir=1): + """ + Add arrows to a matplotlib.lines.Line2D at selected locations. + + Parameters: + ----------- + axes: Axes object as returned by axes command (or gca) + line: Line2D object as returned by plot command + arrow_locs: list of locations where to insert arrows, % of total length + arrowstyle: style of the arrow + arrowsize: size of the arrow + + Returns: + -------- + arrows: list of arrows + + Based on https://stackoverflow.com/questions/26911898/ + + """ + # Get the coordinates of the line, in plot coordinates + if not isinstance(line, mpl.lines.Line2D): + raise ValueError("expected a matplotlib.lines.Line2D object") + x, y = line.get_xdata(), line.get_ydata() + + # Determine the arrow properties + arrow_kw = {"arrowstyle": arrowstyle} + + color = line.get_color() + use_multicolor_lines = isinstance(color, np.ndarray) + if use_multicolor_lines: + raise NotImplementedError("multicolor lines not supported") + else: + arrow_kw['color'] = color + + linewidth = line.get_linewidth() + if isinstance(linewidth, np.ndarray): + raise NotImplementedError("multiwidth lines not supported") + else: + arrow_kw['linewidth'] = linewidth + + # Figure out the size of the axes (length of diagonal) + xlim, ylim = axes.get_xlim(), axes.get_ylim() + ul, lr = np.array([xlim[0], ylim[0]]), np.array([xlim[1], ylim[1]]) + diag = np.linalg.norm(ul - lr) + + # Compute the arc length along the curve + s = np.cumsum(np.sqrt(np.diff(x) ** 2 + np.diff(y) ** 2)) + + # Truncate the number of arrows if the curve is short + # TODO: figure out a smarter way to do this + frac = min(s[-1] / diag, 1) + if len(arrow_locs) and frac < 0.05: + arrow_locs = [] # too short; no arrows at all + elif len(arrow_locs) and frac < 0.2: + arrow_locs = [0.5] # single arrow in the middle + + # Plot the arrows (and return list if patches) + arrows = [] + for loc in arrow_locs: + n = np.searchsorted(s, s[-1] * loc) + + if dir == 1 and n == 0: + # Move the arrow forward by one if it is at start of a segment + n = 1 + + # Place the head of the arrow at the desired location + arrow_head = [x[n], y[n]] + arrow_tail = [x[n - dir], y[n - dir]] + + p = mpl.patches.FancyArrowPatch( + arrow_tail, arrow_head, transform=axes.transData, lw=0, + **arrow_kw) + axes.add_patch(p) + arrows.append(p) + return arrows diff --git a/control/freqplot.py b/control/freqplot.py index 5ff690450..277de8a54 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -19,8 +19,9 @@ from . import config from .bdalg import feedback -from .ctrlplot import suptitle, _find_axes_center, _make_legend_labels, \ - _update_suptitle +from .ctrlplot import _add_arrows_to_line2D, _ctrlplot_rcParams, \ + _find_axes_center, _get_line_labels, _make_legend_labels, \ + _process_ax_keyword, _process_line_labels, _update_suptitle, suptitle from .ctrlutil import unwrap from .exception import ControlMIMONotImplemented from .frdata import FrequencyResponseData @@ -34,21 +35,9 @@ 'singular_values_plot', 'gangof4_plot', 'gangof4_response', 'bode', 'nyquist', 'gangof4'] -# Default font dictionary -# TODO: move common plotting params to 'ctrlplot' -_freqplot_rcParams = mpl.rcParams.copy() -_freqplot_rcParams.update({ - 'axes.labelsize': 'small', - 'axes.titlesize': 'small', - 'figure.titlesize': 'medium', - 'legend.fontsize': 'x-small', - 'xtick.labelsize': 'small', - 'ytick.labelsize': 'small', -}) - # Default values for module parameter variables _freqplot_defaults = { - 'freqplot.rcParams': _freqplot_rcParams, + 'freqplot.rcParams': _ctrlplot_rcParams, 'freqplot.feature_periphery_decades': 1, 'freqplot.number_of_samples': 1000, 'freqplot.dB': False, # Plot gain in dB @@ -1937,86 +1926,6 @@ def _parse_linestyle(style_name, allow_false=False): return out -# Internal function to add arrows to a curve -def _add_arrows_to_line2D( - axes, line, arrow_locs=[0.2, 0.4, 0.6, 0.8], - arrowstyle='-|>', arrowsize=1, dir=1): - """ - Add arrows to a matplotlib.lines.Line2D at selected locations. - - Parameters: - ----------- - axes: Axes object as returned by axes command (or gca) - line: Line2D object as returned by plot command - arrow_locs: list of locations where to insert arrows, % of total length - arrowstyle: style of the arrow - arrowsize: size of the arrow - - Returns: - -------- - arrows: list of arrows - - Based on https://stackoverflow.com/questions/26911898/ - - """ - # Get the coordinates of the line, in plot coordinates - if not isinstance(line, mpl.lines.Line2D): - raise ValueError("expected a matplotlib.lines.Line2D object") - x, y = line.get_xdata(), line.get_ydata() - - # Determine the arrow properties - arrow_kw = {"arrowstyle": arrowstyle} - - color = line.get_color() - use_multicolor_lines = isinstance(color, np.ndarray) - if use_multicolor_lines: - raise NotImplementedError("multicolor lines not supported") - else: - arrow_kw['color'] = color - - linewidth = line.get_linewidth() - if isinstance(linewidth, np.ndarray): - raise NotImplementedError("multiwidth lines not supported") - else: - arrow_kw['linewidth'] = linewidth - - # Figure out the size of the axes (length of diagonal) - xlim, ylim = axes.get_xlim(), axes.get_ylim() - ul, lr = np.array([xlim[0], ylim[0]]), np.array([xlim[1], ylim[1]]) - diag = np.linalg.norm(ul - lr) - - # Compute the arc length along the curve - s = np.cumsum(np.sqrt(np.diff(x) ** 2 + np.diff(y) ** 2)) - - # Truncate the number of arrows if the curve is short - # TODO: figure out a smarter way to do this - frac = min(s[-1] / diag, 1) - if len(arrow_locs) and frac < 0.05: - arrow_locs = [] # too short; no arrows at all - elif len(arrow_locs) and frac < 0.2: - arrow_locs = [0.5] # single arrow in the middle - - # Plot the arrows (and return list if patches) - arrows = [] - for loc in arrow_locs: - n = np.searchsorted(s, s[-1] * loc) - - if dir == 1 and n == 0: - # Move the arrow forward by one if it is at start of a segment - n = 1 - - # Place the head of the arrow at the desired location - arrow_head = [x[n], y[n]] - arrow_tail = [x[n - dir], y[n - dir]] - - p = mpl.patches.FancyArrowPatch( - arrow_tail, arrow_head, transform=axes.transData, lw=0, - **arrow_kw) - axes.add_patch(p) - arrows.append(p) - return arrows - - # # Function to compute Nyquist curve offsets # @@ -2672,122 +2581,6 @@ def _default_frequency_range(syslist, Hz=None, number_of_samples=None, return omega -# Get labels for all lines in an axes -def _get_line_labels(ax, use_color=True): - labels, lines = [], [] - last_color, counter = None, 0 # label unknown systems - for i, line in enumerate(ax.get_lines()): - label = line.get_label() - if use_color and label.startswith("Unknown"): - label = f"Unknown-{counter}" - if last_color is None: - last_color = line.get_color() - elif last_color != line.get_color(): - counter += 1 - last_color = line.get_color() - elif label[0] == '_': - continue - - if label not in labels: - lines.append(line) - labels.append(label) - - return lines, labels - - -# Turn label keyword into array indexed by trace, output, input -# TODO: move to ctrlutil.py and update parameter names to reflect general use -def _process_line_labels(label, ntraces, ninputs=0, noutputs=0): - if label is None: - return None - - if isinstance(label, str): - label = [label] * ntraces # single label for all traces - - # Convert to an ndarray, if not done aleady - try: - line_labels = np.asarray(label) - except: - raise ValueError("label must be a string or array_like") - - # Turn the data into a 3D array of appropriate shape - # TODO: allow more sophisticated broadcasting (and error checking) - try: - if ninputs > 0 and noutputs > 0: - if line_labels.ndim == 1 and line_labels.size == ntraces: - line_labels = line_labels.reshape(ntraces, 1, 1) - line_labels = np.broadcast_to( - line_labels, (ntraces, ninputs, noutputs)) - else: - line_labels = line_labels.reshape(ntraces, ninputs, noutputs) - except: - if line_labels.shape[0] != ntraces: - raise ValueError("number of labels must match number of traces") - else: - raise ValueError("labels must be given for each input/output pair") - - return line_labels - - -def _process_ax_keyword( - axs, shape=(1, 1), rcParams=None, squeeze=False, clear_text=False): - """Utility function to process ax keyword to plotting commands. - - This function processes the `ax` keyword to plotting commands. If no - ax keyword is passed, the current figure is checked to see if it has - the correct shape. If the shape matches the desired shape, then the - current figure and axes are returned. Otherwise a new figure is - created with axes of the desired shape. - - Legacy behavior: some of the older plotting commands use a axes label - to identify the proper axes for plotting. This behavior is supported - through the use of the label keyword, but will only work if shape == - (1, 1) and squeeze == True. - - """ - if axs is None: - fig = plt.gcf() # get current figure (or create new one) - axs = fig.get_axes() - - # Check to see if axes are the right shape; if not, create new figure - # Note: can't actually check the shape, just the total number of axes - if len(axs) != np.prod(shape): - with plt.rc_context(rcParams): - if len(axs) != 0: - # Create a new figure - fig, axs = plt.subplots(*shape, squeeze=False) - else: - # Create new axes on (empty) figure - axs = fig.subplots(*shape, squeeze=False) - fig.set_layout_engine('tight') - fig.align_labels() - else: - # Use the existing axes, properly reshaped - axs = np.asarray(axs).reshape(*shape) - - if clear_text: - # Clear out any old text from the current figure - for text in fig.texts: - text.set_visible(False) # turn off the text - del text # get rid of it completely - else: - try: - axs = np.asarray(axs).reshape(shape) - except ValueError: - raise ValueError( - "specified axes are not the right shape; " - f"got {axs.shape} but expecting {shape}") - fig = axs[0, 0].figure - - # Process the squeeze keyword - if squeeze and shape == (1, 1): - axs = axs[0, 0] # Just return the single axes object - elif squeeze: - axs = axs.squeeze() - - return fig, axs - - # # Utility functions to create nice looking labels (KLD 5/23/11) # diff --git a/control/nichols.py b/control/nichols.py index 5eafa594f..78b03b315 100644 --- a/control/nichols.py +++ b/control/nichols.py @@ -18,10 +18,9 @@ import numpy as np from . import config -from .ctrlplot import suptitle +from .ctrlplot import _get_line_labels, _process_ax_keyword, suptitle from .ctrlutil import unwrap -from .freqplot import _default_frequency_range, _freqplot_defaults, \ - _get_line_labels, _process_ax_keyword +from .freqplot import _default_frequency_range, _freqplot_defaults from .lti import frequency_response from .statesp import StateSpace from .xferfcn import TransferFunction diff --git a/control/phaseplot.py b/control/phaseplot.py index a885f2d5c..c7ccd1d1e 100644 --- a/control/phaseplot.py +++ b/control/phaseplot.py @@ -36,8 +36,8 @@ from scipy.integrate import odeint from . import config +from .ctrlplot import _add_arrows_to_line2D from .exception import ControlNotImplemented -from .freqplot import _add_arrows_to_line2D from .nlsys import NonlinearIOSystem, find_eqpt, input_output_response __all__ = ['phase_plane_plot', 'phase_plot', 'box_grid'] diff --git a/control/pzmap.py b/control/pzmap.py index dd3f9e42b..c7082db1d 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -18,7 +18,8 @@ from numpy import cos, exp, imag, linspace, real, sin, sqrt from . import config -from .freqplot import _freqplot_defaults, _get_line_labels +from .ctrlplot import _get_line_labels +from .freqplot import _freqplot_defaults from .grid import nogrid, sgrid, zgrid from .iosys import isctime, isdtime from .lti import LTI diff --git a/control/tests/ctrlplot_test.py b/control/tests/ctrlplot_test.py new file mode 100644 index 000000000..05970bdd1 --- /dev/null +++ b/control/tests/ctrlplot_test.py @@ -0,0 +1,42 @@ +# ctrlplot_test.py - test out control plotting utilities +# RMM, 27 Jun 2024 + +import pytest +import control as ct +import matplotlib.pyplot as plt + +@pytest.mark.usefixtures('mplcleanup') +def test_rcParams(): + sys = ct.rss(2, 2, 2) + + # Create new set of rcParams + my_rcParams = {} + for key in [ + 'axes.labelsize', 'axes.titlesize', 'figure.titlesize', + 'legend.fontsize', 'xtick.labelsize', 'ytick.labelsize']: + match plt.rcParams[key]: + case 8 | 9 | 10: + my_rcParams[key] = plt.rcParams[key] + 1 + case 'medium': + my_rcParams[key] = 11.5 + case 'large': + my_rcParams[key] = 9.5 + case _: + raise ValueError(f"unknown rcParam type for {key}") + + # Generate a figure with the new rcParams + out = ct.step_response(sys).plot(rcParams=my_rcParams) + ax = out[0, 0][0].axes + fig = ax.figure + + # Check to make sure new settings were used + assert ax.xaxis.get_label().get_fontsize() == my_rcParams['axes.labelsize'] + assert ax.yaxis.get_label().get_fontsize() == my_rcParams['axes.labelsize'] + assert ax.title.get_fontsize() == my_rcParams['axes.titlesize'] + assert ax.get_xticklabels()[0].get_fontsize() == \ + my_rcParams['xtick.labelsize'] + assert ax.get_yticklabels()[0].get_fontsize() == \ + my_rcParams['ytick.labelsize'] + assert fig._suptitle.get_fontsize() == my_rcParams['figure.titlesize'] + + diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 0fcc159be..6c124c48f 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -397,41 +397,6 @@ def test_linestyles(): assert lines[7].get_color() == 'green' and lines[7].get_linestyle() == '--' -@pytest.mark.usefixtures('mplcleanup') -def test_rcParams(): - sys = ct.rss(2, 2, 2) - - # Create new set of rcParams - my_rcParams = {} - for key in [ - 'axes.labelsize', 'axes.titlesize', 'figure.titlesize', - 'legend.fontsize', 'xtick.labelsize', 'ytick.labelsize']: - match plt.rcParams[key]: - case 8 | 9 | 10: - my_rcParams[key] = plt.rcParams[key] + 1 - case 'medium': - my_rcParams[key] = 11.5 - case 'large': - my_rcParams[key] = 9.5 - case _: - raise ValueError(f"unknown rcParam type for {key}") - - # Generate a figure with the new rcParams - out = ct.step_response(sys).plot(rcParams=my_rcParams) - ax = out[0, 0][0].axes - fig = ax.figure - - # Check to make sure new settings were used - assert ax.xaxis.get_label().get_fontsize() == my_rcParams['axes.labelsize'] - assert ax.yaxis.get_label().get_fontsize() == my_rcParams['axes.labelsize'] - assert ax.title.get_fontsize() == my_rcParams['axes.titlesize'] - assert ax.get_xticklabels()[0].get_fontsize() == \ - my_rcParams['xtick.labelsize'] - assert ax.get_yticklabels()[0].get_fontsize() == \ - my_rcParams['ytick.labelsize'] - assert fig._suptitle.get_fontsize() == my_rcParams['figure.titlesize'] - - @pytest.mark.parametrize("resp_fcn", [ ct.step_response, ct.initial_response, ct.impulse_response, ct.forced_response, ct.input_output_response]) diff --git a/control/timeplot.py b/control/timeplot.py index 2eb7aec9b..01b5c7945 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -15,24 +15,13 @@ import numpy as np from . import config -from .ctrlplot import _make_legend_labels, _update_suptitle +from .ctrlplot import _ctrlplot_rcParams, _make_legend_labels, _update_suptitle __all__ = ['time_response_plot', 'combine_time_responses'] -# Default font dictionary -_timeplot_rcParams = mpl.rcParams.copy() -_timeplot_rcParams.update({ - 'axes.labelsize': 'small', - 'axes.titlesize': 'small', - 'figure.titlesize': 'medium', - 'legend.fontsize': 'x-small', - 'xtick.labelsize': 'small', - 'ytick.labelsize': 'small', -}) - # Default values for module parameter variables _timeplot_defaults = { - 'timeplot.rcParams': _timeplot_rcParams, + 'timeplot.rcParams': _ctrlplot_rcParams, 'timeplot.trace_props': [ {'linestyle': s} for s in ['-', '--', ':', '-.']], 'timeplot.output_props': [ @@ -162,7 +151,7 @@ def time_response_plot( config.defaults[''timeplot.rcParams']. """ - from .freqplot import _process_ax_keyword, _process_line_labels + from .ctrlplot import _process_ax_keyword, _process_line_labels from .iosys import InputOutputSystem from .timeresp import TimeResponseData From 70d976110f8c687de2ea3206dbd4e00d6d6ed1de Mon Sep 17 00:00:00 2001 From: Diego Emilio Serrano <65074936+diemilio@users.noreply.github.com> Date: Wed, 10 Jul 2024 12:40:20 -0400 Subject: [PATCH 007/448] Update timeplot.py fix name of TimeResponseData object from types to trace_types --- control/timeplot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/timeplot.py b/control/timeplot.py index 2eb7aec9b..646d2c1be 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -738,7 +738,7 @@ def combine_time_responses(response_list, trace_labels=None, title=None): if generate_trace_labels: trace_labels.append(response.title) trace_types.append( - None if response.trace_types is None else response.types[0]) + None if response.trace_types is None else response.trace_types[0]) else: # Save the data From f2f0e3ed3e638a65a66a13e72085156cd384661a Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Wed, 3 Jul 2024 19:51:09 +0200 Subject: [PATCH 008/448] Improve markov function, add mimo support, change api to TimeResponseData --- control/modelsimp.py | 186 ++++++++++++++++++-------------- control/tests/modelsimp_test.py | 50 +++++---- 2 files changed, 133 insertions(+), 103 deletions(-) diff --git a/control/modelsimp.py b/control/modelsimp.py index 06c3d350d..0f9821fc6 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -48,6 +48,7 @@ from .iosys import isdtime, isctime from .statesp import StateSpace from .statefbk import gram +from .timeresp import TimeResponseData __all__ = ['hsvd', 'balred', 'modred', 'era', 'markov', 'minreal'] @@ -402,9 +403,9 @@ def era(YY, m, n, nin, nout, r): raise NotImplementedError('This function is not implemented yet.') -def markov(Y, U, m=None, transpose=False): +def markov(data, m=None, dt=True, truncate=False): """Calculate the first `m` Markov parameters [D CB CAB ...] - from input `U`, output `Y`. + from data This function computes the Markov parameters for a discrete time system @@ -420,23 +421,45 @@ def markov(Y, U, m=None, transpose=False): Parameters ---------- - Y : array_like - Output data. If the array is 1D, the system is assumed to be single - input. If the array is 2D and transpose=False, the columns of `Y` - are taken as time points, otherwise the rows of `Y` are taken as - time points. - U : array_like - Input data, arranged in the same way as `Y`. + data : TimeResponseData + Response data from which the Markov parameters where estimated. + Input and output data must be 1D or 2D array. m : int, optional Number of Markov parameters to output. Defaults to len(U). - transpose : bool, optional - Assume that input data is transposed relative to the standard - :ref:`time-series-convention`. Default value is False. + dt : (True of float, optional) + True indicates discrete time with unspecified sampling time, + positive number is discrete time with specified sampling time. + It can be used to scale the markov parameters in order to match + the impulse response of this library. + Default values is True. + truncate : bool, optional + Do not use first m equation for least least squares. + Default value is False. Returns ------- - H : ndarray - First m Markov parameters, [D CB CAB ...] + H : TimeResponseData + Markov parameters / impulse response [D CB CAB ...] represented as + a :class:`TimeResponseData` object containing the following properties: + + * time (array): Time values of the output. + + * outputs (array): Response of the system. If the system is SISO, + the array is 1D (indexed by time). If the + system is not SISO, the array is 3D (indexed + by the output, trace, and time). + + * inputs (array): Inputs of the system. If the system is SISO, + the array is 1D (indexed by time). If the + system is not SISO, the array is 3D (indexed + by the output, trace, and time). + + Notes + ----- + It works for SISO and MIMO systems. + + This function does comply with the Python Control Library + :ref:`time-series-convention` for representation of time series data. References ---------- @@ -445,95 +468,69 @@ def markov(Y, U, m=None, transpose=False): and experiments. Journal of Guidance Control and Dynamics, 16(2), 320-329, 2012. http://doi.org/10.2514/3.21006 - Notes - ----- - Currently only works for SISO systems. - - This function does not currently comply with the Python Control Library - :ref:`time-series-convention` for representation of time series data. - Use `transpose=False` to make use of the standard convention (this - will be updated in a future release). - Examples -------- >>> T = np.linspace(0, 10, 100) >>> U = np.ones((1, 100)) - >>> T, Y = ct.forced_response(ct.tf([1], [1, 0.5], True), T, U) - >>> H = ct.markov(Y, U, 3, transpose=False) + >>> response = ct.forced_response(ct.tf([1], [1, 0.5], True), T, U) + >>> H = ct.markov(response, 3) """ # Convert input parameters to 2D arrays (if they aren't already) - Umat = np.array(U, ndmin=2) - Ymat = np.array(Y, ndmin=2) + Umat = np.array(data.inputs, ndmin=2) + Ymat = np.array(data.outputs, ndmin=2) # If data is in transposed format, switch it around - if transpose: + if data.transpose and not data.issiso: Umat, Ymat = np.transpose(Umat), np.transpose(Ymat) - # Make sure the system is a SISO system - if Umat.shape[0] != 1 or Ymat.shape[0] != 1: - raise ControlMIMONotImplemented - # Make sure the number of time points match if Umat.shape[1] != Ymat.shape[1]: raise ControlDimension( "Input and output data are of differnent lengths") - n = Umat.shape[1] + l = Umat.shape[1] # If number of desired parameters was not given, set to size of input data if m is None: - m = Umat.shape[1] + m = l + + t = 0 + if truncate: + t = m + + q = Ymat.shape[0] # number of outputs + p = Umat.shape[0] # number of inputs # Make sure there is enough data to compute parameters - if m > n: + if m*p > (l-t): warnings.warn("Not enough data for requested number of parameters") + # the algorithm - Construct a matrix of control inputs to invert # - # Original algorithm (with mapping to standard order) - # - # RMM note, 24 Dec 2020: This algorithm sets the problem up correctly - # until the final column of the UU matrix is created, at which point it - # makes some modifications that I don't understand. This version of the - # algorithm does not seem to return the actual Markov parameters for a - # system. - # - # # Create the matrix of (shifted) inputs - # UU = np.transpose(Umat) - # for i in range(1, m-1): - # # Shift previous column down and add a zero at the top - # newCol = np.vstack((0, np.reshape(UU[0:n-1, i-1], (-1, 1)))) - # UU = np.hstack((UU, newCol)) - # - # # Shift previous column down and add a zero at the top - # Ulast = np.vstack((0, np.reshape(UU[0:n-1, m-2], (-1, 1)))) - # - # # Replace the elements of the last column new values (?) - # # Each row gets the sum of the rows above it (?) - # for i in range(n-1, 0, -1): - # Ulast[i] = np.sum(Ulast[0:i-1]) - # UU = np.hstack((UU, Ulast)) - # - # # Solve for the Markov parameters from Y = H @ UU - # # H = [[D], [CB], [CAB], ..., [C A^{m-3} B], [???]] - # H = np.linalg.lstsq(UU, np.transpose(Ymat))[0] - # - # # Markov parameters are in rows => transpose if needed - # return H if transpose else np.transpose(H) - - # - # New algorithm - Construct a matrix of control inputs to invert + # (q,l) = (q,p*m) @ (p*m,l) + # YY.T = H @ UU.T # # This algorithm sets up the following problem and solves it for # the Markov parameters # + # (l,q) = (l,p*m) @ (p*m,q) + # YY = UU @ H.T + # # [ y(0) ] [ u(0) 0 0 ] [ D ] # [ y(1) ] [ u(1) u(0) 0 ] [ C B ] # [ y(2) ] = [ u(2) u(1) u(0) ] [ C A B ] # [ : ] [ : : : : ] [ : ] - # [ y(n-1) ] [ u(n-1) u(n-2) u(n-3) ... u(n-m) ] [ C A^{m-2} B ] + # [ y(l-1) ] [ u(l-1) u(l-2) u(l-3) ... u(l-m) ] [ C A^{m-2} B ] # - # Note: if the number of Markov parameters (m) is less than the size of - # the input/output data (n), then this algorithm assumes C A^{j} B = 0 + # truncated version t=m, do not use first m equation + # + # [ y(t) ] [ u(t) u(t-1) u(t-2) u(t-m) ] [ D ] + # [ y(t+1) ] [ u(t+1) u(t) u(t-1) u(t-m+1)] [ C B ] + # [ y(t+2) ] = [ u(t+2) u(t+1) u(t) u(t-m+2)] [ C B ] + # [ : ] [ : : : : ] [ : ] + # [ y(l-1) ] [ u(l-1) u(l-2) u(l-3) ... u(l-m) ] [ C A^{m-2} B ] + # + # Note: This algorithm assumes C A^{j} B = 0 # for j > m-2. See equation (3) in # # J.-N. Juang, M. Phan, L. G. Horta, and R. W. Longman, Identification @@ -542,17 +539,40 @@ def markov(Y, U, m=None, transpose=False): # 320-329, 2012. http://doi.org/10.2514/3.21006 # + # Set up the full problem # Create matrix of (shifted) inputs - UU = Umat - for i in range(1, m): - # Shift previous column down and add a zero at the top - new_row = np.hstack((0, UU[i-1, 0:-1])) - UU = np.vstack((UU, new_row)) - UU = np.transpose(UU) - - # Invert and solve for Markov parameters - YY = np.transpose(Ymat) - H, _, _, _ = np.linalg.lstsq(UU, YY, rcond=None) - + UUT = np.zeros((p*m,(l))) + for i in range(m): + # Shift previous column down and keep zeros at the top + UUT[i*p:(i+1)*p,i:] = Umat[:,:l-i] + + # Truncate first t=0 or t=m time steps, transpose the problem for lsq + YY = Ymat[:,t:].T + UU = UUT[:,t:].T + + # Solve for the Markov parameters from YY = UU @ H.T + HT, _, _, _ = np.linalg.lstsq(UU, YY, rcond=None) + H = HT.T/dt # scaling + + H = H.reshape(q,m,p) # output, time*input -> output, time, input + H = H.transpose(0,2,1) # output, input, time + + # Create unit area impulse inputs + inputs = np.zeros((q,p,m)) + trace_labels, trace_types = [], [] + for i in range(p): + inputs[i,i,0] = 1/dt # unit area impulse + trace_labels.append(f"From {data.input_labels[i]}") + trace_types.append('impulse') + + # Markov parameters as TimeResponseData with unit area impulse inputs # Return the first m Markov parameters - return H if transpose else np.transpose(H) + return TimeResponseData(time=data.time[:m], + outputs=H, + output_labels=data.output_labels, + inputs=inputs, + input_labels=data.input_labels, + trace_labels=trace_labels, + trace_types=trace_types, + transpose=data.transpose, + issiso=data.issiso) diff --git a/control/tests/modelsimp_test.py b/control/tests/modelsimp_test.py index 49c2afd58..afcdacfd0 100644 --- a/control/tests/modelsimp_test.py +++ b/control/tests/modelsimp_test.py @@ -7,7 +7,7 @@ import pytest -from control import StateSpace, forced_response, tf, rss, c2d +from control import StateSpace, forced_response, tf, rss, c2d, TimeResponseData from control.exception import ControlMIMONotImplemented from control.tests.conftest import slycotonly from control.modelsimp import balred, hsvd, markov, modred @@ -33,36 +33,44 @@ def testHSVD(self): assert not isinstance(hsv, np.matrix) def testMarkovSignature(self): - U = np.array([[1., 1., 1., 1., 1.]]) + U = np.array([1., 1., 1., 1., 1.]) Y = U + response = TimeResponseData(time=np.arange(U.shape[-1]), + outputs=Y, + output_labels='y', + inputs=U, + input_labels='u', + ) m = 3 - H = markov(Y, U, m, transpose=False) - Htrue = np.array([[1., 0., 0.]]) - np.testing.assert_array_almost_equal(H, Htrue) + H = markov(response, m) + Htrue = np.array([1., 0., 0.]) + np.testing.assert_array_almost_equal(H.outputs, Htrue) # Make sure that transposed data also works - H = markov(np.transpose(Y), np.transpose(U), m, transpose=True) - np.testing.assert_array_almost_equal(H, np.transpose(Htrue)) + response.transpose=True + H = markov(response, m) + np.testing.assert_array_almost_equal(H.outputs, np.transpose(Htrue)) # Generate Markov parameters without any arguments - H = markov(Y, U, m) - np.testing.assert_array_almost_equal(H, Htrue) + response.transpose=False + H = markov(response, m) + np.testing.assert_array_almost_equal(H.outputs, Htrue) # Test example from docstring T = np.linspace(0, 10, 100) U = np.ones((1, 100)) - T, Y = forced_response(tf([1], [1, 0.5], True), T, U) - H = markov(Y, U, 3, transpose=False) + response = forced_response(tf([1], [1, 0.5], True), T, U) + H = markov(response, 3) # Test example from issue #395 - inp = np.array([1, 2]) - outp = np.array([2, 4]) - mrk = markov(outp, inp, 1, transpose=False) + #inp = np.array([1, 2]) + #outp = np.array([2, 4]) + #mrk = markov(outp, inp, 1, transpose=False) # Make sure MIMO generates an error - U = np.ones((2, 100)) # 2 inputs (Y unchanged, with 1 output) - with pytest.raises(ControlMIMONotImplemented): - markov(Y, U, m) + #U = np.ones((2, 100)) # 2 inputs (Y unchanged, with 1 output) + #with pytest.raises(ControlMIMONotImplemented): + # markov(Y, U, m) # Make sure markov() returns the right answer @pytest.mark.parametrize("k, m, n", @@ -98,18 +106,20 @@ def testMarkovResults(self, k, m, n): Mtrue = np.hstack([Hd.D] + [ Hd.C @ np.linalg.matrix_power(Hd.A, i) @ Hd.B for i in range(m-1)]) + + Mtrue = np.squeeze(Mtrue) # Generate input/output data T = np.array(range(n)) * Ts U = np.cos(T) + np.sin(T/np.pi) - _, Y = forced_response(Hd, T, U, squeeze=True) - Mcomp = markov(Y, U, m) + response = forced_response(Hd, T, U, squeeze=True) + Mcomp = markov(response, m) # Compare to results from markov() # experimentally determined probability to get non matching results # with rtot=1e-6 and atol=1e-8 due to numerical errors # for k=5, m=n=10: 0.015 % - np.testing.assert_allclose(Mtrue, Mcomp, rtol=1e-6, atol=1e-8) + np.testing.assert_allclose(Mtrue, Mcomp.outputs, rtol=1e-6, atol=1e-8) def testModredMatchDC(self): #balanced realization computed in matlab for the transfer function: From 6c95fbce4e68cf84ec0f66100993e7796f04d61b Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Thu, 4 Jul 2024 16:51:29 +0200 Subject: [PATCH 009/448] Fix inputs dimension --- control/modelsimp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/modelsimp.py b/control/modelsimp.py index 0f9821fc6..74a65ceca 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -558,7 +558,7 @@ def markov(data, m=None, dt=True, truncate=False): H = H.transpose(0,2,1) # output, input, time # Create unit area impulse inputs - inputs = np.zeros((q,p,m)) + inputs = np.zeros((p,p,m)) trace_labels, trace_types = [], [] for i in range(p): inputs[i,i,0] = 1/dt # unit area impulse From 14ce769e60b95903ffd8f40dc08a660e192bcbb0 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Thu, 4 Jul 2024 17:42:35 +0200 Subject: [PATCH 010/448] Add plot_inputs=False to TimeResponseData output --- control/modelsimp.py | 1 + 1 file changed, 1 insertion(+) diff --git a/control/modelsimp.py b/control/modelsimp.py index 74a65ceca..3fc62b7c4 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -575,4 +575,5 @@ def markov(data, m=None, dt=True, truncate=False): trace_labels=trace_labels, trace_types=trace_types, transpose=data.transpose, + plot_inputs=False, issiso=data.issiso) From efa3f39df15d29f8e572afe755ab91fed4c99277 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Thu, 4 Jul 2024 17:45:24 +0200 Subject: [PATCH 011/448] Add markov example --- examples/markov.py | 60 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 examples/markov.py diff --git a/examples/markov.py b/examples/markov.py new file mode 100644 index 000000000..f97a97853 --- /dev/null +++ b/examples/markov.py @@ -0,0 +1,60 @@ +# markov.py +# Johannes Kaisinger, 4 July 2024 +# +# Demonstrate estimation of markov parameters. +# SISO, SIMO, MISO, MIMO case + +import numpy as np +import matplotlib.pyplot as plt +import os + +import control as ct + +# set up a mass spring damper system (2dof, MIMO case) +# m q_dd + c q_d + k q = u +m1, k1, c1 = 1., 1., .1 +m2, k2, c2 = 2., .5, .1 +k3, c3 = .5, .1 + +A = np.array([ + [0., 0., 1., 0.], + [0., 0., 0., 1.], + [-(k1+k2)/m1, (k2)/m1, -(c1+c2)/m1, c2/m1], + [(k2)/m2, -(k2+k3)/m2, c2/m2, -(c2+c3)/m2] +]) +B = np.array([[0.,0.],[0.,0.],[1/m1,0.],[0.,1/m2]]) +C = np.array([[1.0, 0.0, 0.0, 0.0],[0.0, 1.0, 0.0, 0.0]]) +D = np.zeros((2,2)) + + +xixo_list = ["SISO","SIMO","MISO","MIMO"] +xixo = xixo_list[3] # choose a system for estimation +match xixo: + case "SISO": + sys = ct.StateSpace(A, B[:,0], C[0,:], D[0,0]) + case "SIMO": + sys = ct.StateSpace(A, B[:,:1], C, D[:,:1]) + case "MISO": + sys = ct.StateSpace(A, B, C[:1,:], D[:1,:]) + case "MIMO": + sys = ct.StateSpace(A, B, C, D) + +dt = 0.5 +sysd = sys.sample(dt, method='zoh') + +t = np.arange(0,5000,dt) +u = np.random.randn(sysd.B.shape[-1], len(t)) # random forcing input + +response = ct.forced_response(sysd, U=u) +response.plot() +plt.show() + +markov_true = ct.impulse_response(sysd,T=dt*100) +markov_est = ct.markov(response,m=100,dt=dt) + +markov_true.plot(title=xixo) +markov_est.plot(color='orange',linestyle='dashed') +plt.show() + +if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: + plt.show() \ No newline at end of file From a597bbce38940a79ba8b51ade75c7f7c5419a660 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Thu, 4 Jul 2024 18:20:46 +0200 Subject: [PATCH 012/448] Add markov example, add example to doc --- doc/examples.rst | 1 + doc/markov.py | 1 + doc/markov.rst | 15 +++++++++++++++ 3 files changed, 17 insertions(+) create mode 120000 doc/markov.py create mode 100644 doc/markov.rst diff --git a/doc/examples.rst b/doc/examples.rst index 21364157e..db6cbaad6 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -35,6 +35,7 @@ other sources. kincar-flatsys mrac_siso_mit mrac_siso_lyapunov + markov Jupyter notebooks ================= diff --git a/doc/markov.py b/doc/markov.py new file mode 120000 index 000000000..471188252 --- /dev/null +++ b/doc/markov.py @@ -0,0 +1 @@ +../examples/markov.py \ No newline at end of file diff --git a/doc/markov.rst b/doc/markov.rst new file mode 100644 index 000000000..36e0fd8e5 --- /dev/null +++ b/doc/markov.rst @@ -0,0 +1,15 @@ +Estimation of Makrov parameters +------------------------------- + +Code +.... +.. literalinclude:: markov.py + :language: python + :linenos: + + +Notes +..... + +1. The environment variable `PYCONTROL_TEST_EXAMPLES` is used for +testing to turn off plotting of the outputs.0 \ No newline at end of file From 60234806736889bf19adfb51fa77a153fd189120 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Sun, 7 Jul 2024 13:39:57 +0200 Subject: [PATCH 013/448] Change output to ndarray --- control/modelsimp.py | 39 ++++------------------ control/tests/modelsimp_test.py | 8 ++--- examples/markov.py | 59 +++++++++++++++++++++++++++++---- 3 files changed, 63 insertions(+), 43 deletions(-) diff --git a/control/modelsimp.py b/control/modelsimp.py index 3fc62b7c4..01068066d 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -438,21 +438,9 @@ def markov(data, m=None, dt=True, truncate=False): Returns ------- - H : TimeResponseData - Markov parameters / impulse response [D CB CAB ...] represented as - a :class:`TimeResponseData` object containing the following properties: - - * time (array): Time values of the output. - - * outputs (array): Response of the system. If the system is SISO, - the array is 1D (indexed by time). If the - system is not SISO, the array is 3D (indexed - by the output, trace, and time). - - * inputs (array): Inputs of the system. If the system is SISO, - the array is 1D (indexed by time). If the - system is not SISO, the array is 3D (indexed - by the output, trace, and time). + H : ndarray + First m Markov parameters, [D CB CAB ...] + Notes ----- @@ -557,23 +545,8 @@ def markov(data, m=None, dt=True, truncate=False): H = H.reshape(q,m,p) # output, time*input -> output, time, input H = H.transpose(0,2,1) # output, input, time - # Create unit area impulse inputs - inputs = np.zeros((p,p,m)) - trace_labels, trace_types = [], [] - for i in range(p): - inputs[i,i,0] = 1/dt # unit area impulse - trace_labels.append(f"From {data.input_labels[i]}") - trace_types.append('impulse') + if q == 1 and p == 1: + H = np.squeeze(H) - # Markov parameters as TimeResponseData with unit area impulse inputs # Return the first m Markov parameters - return TimeResponseData(time=data.time[:m], - outputs=H, - output_labels=data.output_labels, - inputs=inputs, - input_labels=data.input_labels, - trace_labels=trace_labels, - trace_types=trace_types, - transpose=data.transpose, - plot_inputs=False, - issiso=data.issiso) + return H if not data.transpose else np.transpose(H) diff --git a/control/tests/modelsimp_test.py b/control/tests/modelsimp_test.py index afcdacfd0..14e0135e5 100644 --- a/control/tests/modelsimp_test.py +++ b/control/tests/modelsimp_test.py @@ -44,17 +44,17 @@ def testMarkovSignature(self): m = 3 H = markov(response, m) Htrue = np.array([1., 0., 0.]) - np.testing.assert_array_almost_equal(H.outputs, Htrue) + np.testing.assert_array_almost_equal(H, Htrue) # Make sure that transposed data also works response.transpose=True H = markov(response, m) - np.testing.assert_array_almost_equal(H.outputs, np.transpose(Htrue)) + np.testing.assert_array_almost_equal(H, np.transpose(Htrue)) # Generate Markov parameters without any arguments response.transpose=False H = markov(response, m) - np.testing.assert_array_almost_equal(H.outputs, Htrue) + np.testing.assert_array_almost_equal(H, Htrue) # Test example from docstring T = np.linspace(0, 10, 100) @@ -119,7 +119,7 @@ def testMarkovResults(self, k, m, n): # experimentally determined probability to get non matching results # with rtot=1e-6 and atol=1e-8 due to numerical errors # for k=5, m=n=10: 0.015 % - np.testing.assert_allclose(Mtrue, Mcomp.outputs, rtol=1e-6, atol=1e-8) + np.testing.assert_allclose(Mtrue, Mcomp, rtol=1e-6, atol=1e-8) def testModredMatchDC(self): #balanced realization computed in matlab for the transfer function: diff --git a/examples/markov.py b/examples/markov.py index f97a97853..fd7c5ea70 100644 --- a/examples/markov.py +++ b/examples/markov.py @@ -10,6 +10,43 @@ import control as ct +def create_impulse_response(H, time, transpose, dt): + """Helper function to use TimeResponseData type for plotting""" + + H = np.array(H, ndmin=3) + + if transpose: + H = np.transpose(H) + + q, p, m = H.shape + inputs = np.zeros((p,p,m)) + + issiso = True if (q == 1 and p == 1) else False + + input_labels = [] + trace_labels, trace_types = [], [] + for i in range(p): + inputs[i,i,0] = 1/dt # unit area impulse + input_labels.append(f"u{[i]}") + trace_labels.append(f"From u{[i]}") + trace_types.append('impulse') + + output_labels = [] + for i in range(q): + output_labels.append(f"y{[i]}") + + return ct.TimeResponseData(time=time[:m], + outputs=H, + output_labels=output_labels, + inputs=inputs, + input_labels=input_labels, + trace_labels=trace_labels, + trace_types=trace_types, + sysname="H_est", + transpose=transpose, + plot_inputs=False, + issiso=issiso) + # set up a mass spring damper system (2dof, MIMO case) # m q_dd + c q_d + k q = u m1, k1, c1 = 1., 1., .1 @@ -41,19 +78,29 @@ dt = 0.5 sysd = sys.sample(dt, method='zoh') +sysd.name = "H_true" -t = np.arange(0,5000,dt) -u = np.random.randn(sysd.B.shape[-1], len(t)) # random forcing input + # random forcing input +t = np.arange(0,500,dt) +u = np.random.randn(sysd.B.shape[-1], len(t)) response = ct.forced_response(sysd, U=u) response.plot() plt.show() -markov_true = ct.impulse_response(sysd,T=dt*100) -markov_est = ct.markov(response,m=100,dt=dt) +m = 100 +ir_true = ct.impulse_response(sysd,T=dt*m) +ir_true.tranpose = True + +H_est = ct.markov(response,m=m,dt=dt) +# Helper function for plotting only +ir_est = create_impulse_response(H_est, + ir_true.time, + ir_true.transpose, + dt) -markov_true.plot(title=xixo) -markov_est.plot(color='orange',linestyle='dashed') +ir_true.plot(title=xixo) +ir_est.plot(color='orange',linestyle='dashed') plt.show() if 'PYCONTROL_TEST_EXAMPLES' not in os.environ: From 92307f0296c2445a5d82c682af2a25bdff9d291b Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Sun, 7 Jul 2024 14:00:17 +0200 Subject: [PATCH 014/448] Update example, values taken from a book --- examples/markov.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/examples/markov.py b/examples/markov.py index fd7c5ea70..7608e7bb1 100644 --- a/examples/markov.py +++ b/examples/markov.py @@ -48,10 +48,12 @@ def create_impulse_response(H, time, transpose, dt): issiso=issiso) # set up a mass spring damper system (2dof, MIMO case) -# m q_dd + c q_d + k q = u -m1, k1, c1 = 1., 1., .1 -m2, k2, c2 = 2., .5, .1 -k3, c3 = .5, .1 +# Mechanical Vibartions: Theory and Application, SI Edition, 1st ed. +# Figure 6.5 / Example 6.7 +# m q_dd + c q_d + k q = f +m1, k1, c1 = 1., 4., 1. +m2, k2, c2 = 2., 2., 1. +k3, c3 = 6., 2. A = np.array([ [0., 0., 1., 0.], @@ -76,19 +78,19 @@ def create_impulse_response(H, time, transpose, dt): case "MIMO": sys = ct.StateSpace(A, B, C, D) -dt = 0.5 +dt = 0.25 sysd = sys.sample(dt, method='zoh') sysd.name = "H_true" # random forcing input -t = np.arange(0,500,dt) +t = np.arange(0,100,dt) u = np.random.randn(sysd.B.shape[-1], len(t)) response = ct.forced_response(sysd, U=u) response.plot() plt.show() -m = 100 +m = 50 ir_true = ct.impulse_response(sysd,T=dt*m) ir_true.tranpose = True From a646100091695c635bdb081e431579477851bc09 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Sun, 7 Jul 2024 16:07:01 +0200 Subject: [PATCH 015/448] Change API to work with ndarray and TimeResponseData as input --- control/modelsimp.py | 68 ++++++++++++++++++++++++++------- control/tests/modelsimp_test.py | 67 ++++++++++++++++++++++++++------ examples/markov.py | 7 ++-- 3 files changed, 113 insertions(+), 29 deletions(-) diff --git a/control/modelsimp.py b/control/modelsimp.py index 01068066d..f4c70e66b 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -43,8 +43,7 @@ # External packages and modules import numpy as np import warnings -from .exception import ControlSlycot, ControlMIMONotImplemented, \ - ControlDimension +from .exception import ControlSlycot, ControlArgument, ControlDimension from .iosys import isdtime, isctime from .statesp import StateSpace from .statefbk import gram @@ -403,8 +402,10 @@ def era(YY, m, n, nin, nout, r): raise NotImplementedError('This function is not implemented yet.') -def markov(data, m=None, dt=True, truncate=False): - """Calculate the first `m` Markov parameters [D CB CAB ...] +def markov(*args, **kwargs): + """markov(Y, U, [, m]) + + Calculate the first `m` Markov parameters [D CB CAB ...] from data This function computes the Markov parameters for a discrete time system @@ -419,14 +420,31 @@ def markov(data, m=None, dt=True, truncate=False): the input data is less than the desired number of Markov parameters (a warning message is generated in this case). + The function can be called with either 1, 2, or 3 arguments: + + * ``K, S, E = lqr(response)`` + * ``K, S, E = lqr(respnose, m)`` + * ``K, S, E = lqr(Y, U)`` + * ``K, S, E = lqr(Y, U, m)`` + + where `response` is an `TimeResponseData` object, and `Y`, `U`, are 1D or 2D + array and m is an integer. + Parameters ---------- + Y : array_like + Output data. If the array is 1D, the system is assumed to be single + input. If the array is 2D and transpose=False, the columns of `Y` + are taken as time points, otherwise the rows of `Y` are taken as + time points. + U : array_like + Input data, arranged in the same way as `Y`. data : TimeResponseData Response data from which the Markov parameters where estimated. Input and output data must be 1D or 2D array. m : int, optional Number of Markov parameters to output. Defaults to len(U). - dt : (True of float, optional) + dt : True of float, optional True indicates discrete time with unspecified sampling time, positive number is discrete time with specified sampling time. It can be used to scale the markov parameters in order to match @@ -460,17 +478,41 @@ def markov(data, m=None, dt=True, truncate=False): -------- >>> T = np.linspace(0, 10, 100) >>> U = np.ones((1, 100)) - >>> response = ct.forced_response(ct.tf([1], [1, 0.5], True), T, U) - >>> H = ct.markov(response, 3) + >>> T, Y = ct.forced_response(ct.tf([1], [1, 0.5], True), T, U) + >>> H = ct.markov(Y, U, 3, transpose=False) """ # Convert input parameters to 2D arrays (if they aren't already) - Umat = np.array(data.inputs, ndmin=2) - Ymat = np.array(data.outputs, ndmin=2) - # If data is in transposed format, switch it around - if data.transpose and not data.issiso: - Umat, Ymat = np.transpose(Umat), np.transpose(Ymat) + # Get the system description + if (len(args) < 1): + raise ControlArgument("not enough input arguments") + + if isinstance(args[0], TimeResponseData): + Umat = np.array(args[0].inputs, ndmin=2) + Ymat = np.array(args[0].outputs, ndmin=2) + transpose = args[0].transpose + if args[0].transpose and not args[0].issiso: + Umat, Ymat = np.transpose(Umat), np.transpose(Ymat) + index = 1 + else: + if (len(args) < 2): + raise ControlArgument("not enough input arguments") + Umat = np.array(args[0], ndmin=2) + Ymat = np.array(args[1], ndmin=2) + transpose = kwargs.pop('transpose', False) + if transpose: + Umat, Ymat = np.transpose(Umat), np.transpose(Ymat) + index = 2 + + + if (len(args) > index): + m = args[index] + else: + m = None + + dt = kwargs.pop('dt', True) + truncate = kwargs.pop('truncate', False) # Make sure the number of time points match if Umat.shape[1] != Ymat.shape[1]: @@ -549,4 +591,4 @@ def markov(data, m=None, dt=True, truncate=False): H = np.squeeze(H) # Return the first m Markov parameters - return H if not data.transpose else np.transpose(H) + return H if not transpose else np.transpose(H) diff --git a/control/tests/modelsimp_test.py b/control/tests/modelsimp_test.py index 14e0135e5..0e94063b6 100644 --- a/control/tests/modelsimp_test.py +++ b/control/tests/modelsimp_test.py @@ -7,8 +7,7 @@ import pytest -from control import StateSpace, forced_response, tf, rss, c2d, TimeResponseData -from control.exception import ControlMIMONotImplemented +from control import StateSpace, forced_response, impulse_response, tf, rss, c2d, TimeResponseData from control.tests.conftest import slycotonly from control.modelsimp import balred, hsvd, markov, modred @@ -33,7 +32,7 @@ def testHSVD(self): assert not isinstance(hsv, np.matrix) def testMarkovSignature(self): - U = np.array([1., 1., 1., 1., 1.]) + U = np.array([[1., 1., 1., 1., 1.]]) Y = U response = TimeResponseData(time=np.arange(U.shape[-1]), outputs=Y, @@ -41,36 +40,80 @@ def testMarkovSignature(self): inputs=U, input_labels='u', ) + + # Basic usage m = 3 + H = markov(Y, U, m, transpose=False) + Htrue = np.array([1., 0., 0.]) + np.testing.assert_array_almost_equal(H, Htrue) + + response.transpose=False H = markov(response, m) Htrue = np.array([1., 0., 0.]) np.testing.assert_array_almost_equal(H, Htrue) # Make sure that transposed data also works + H = markov(Y.T, U.T, m, transpose=True) + np.testing.assert_array_almost_equal(H, np.transpose(Htrue)) + response.transpose=True H = markov(response, m) np.testing.assert_array_almost_equal(H, np.transpose(Htrue)) + response.transpose=False # Generate Markov parameters without any arguments - response.transpose=False + H = markov(Y, U, m) + np.testing.assert_array_almost_equal(H, Htrue) + H = markov(response, m) np.testing.assert_array_almost_equal(H, Htrue) # Test example from docstring + T = np.linspace(0, 10, 100) + U = np.ones((1, 100)) + _, Y = forced_response(tf([1], [1, 0.5], True), T, U) + H = markov(Y, U, 3) + T = np.linspace(0, 10, 100) U = np.ones((1, 100)) response = forced_response(tf([1], [1, 0.5], True), T, U) H = markov(response, 3) # Test example from issue #395 - #inp = np.array([1, 2]) - #outp = np.array([2, 4]) - #mrk = markov(outp, inp, 1, transpose=False) - - # Make sure MIMO generates an error - #U = np.ones((2, 100)) # 2 inputs (Y unchanged, with 1 output) - #with pytest.raises(ControlMIMONotImplemented): - # markov(Y, U, m) + inp = np.array([1, 2]) + outp = np.array([2, 4]) + mrk = markov(outp, inp, 1, transpose=False) + + # Test mimo example + # Mechanical Vibrations: Theory and Application, SI Edition, 1st ed. + # Figure 6.5 / Example 6.7 + m1, k1, c1 = 1., 4., 1. + m2, k2, c2 = 2., 2., 1. + k3, c3 = 6., 2. + + A = np.array([ + [0., 0., 1., 0.], + [0., 0., 0., 1.], + [-(k1+k2)/m1, (k2)/m1, -(c1+c2)/m1, c2/m1], + [(k2)/m2, -(k2+k3)/m2, c2/m2, -(c2+c3)/m2] + ]) + B = np.array([[0.,0.],[0.,0.],[1/m1,0.],[0.,1/m2]]) + C = np.array([[1.0, 0.0, 0.0, 0.0],[0.0, 1.0, 0.0, 0.0]]) + D = np.zeros((2,2)) + + sys = StateSpace(A, B, C, D) + dt = 0.25 + sysd = sys.sample(dt, method='zoh') + + t = np.arange(0,100,dt) + u = np.random.randn(sysd.B.shape[-1], len(t)) + response = forced_response(sysd, U=u) + + m = 100 + H = markov(response, m, dt=dt) + _, Htrue = impulse_response(sysd, T=dt*(m-1)) + + np.testing.assert_array_almost_equal(H, Htrue) # Make sure markov() returns the right answer @pytest.mark.parametrize("k, m, n", diff --git a/examples/markov.py b/examples/markov.py index 7608e7bb1..6c02499bd 100644 --- a/examples/markov.py +++ b/examples/markov.py @@ -48,7 +48,7 @@ def create_impulse_response(H, time, transpose, dt): issiso=issiso) # set up a mass spring damper system (2dof, MIMO case) -# Mechanical Vibartions: Theory and Application, SI Edition, 1st ed. +# Mechanical Vibrations: Theory and Application, SI Edition, 1st ed. # Figure 6.5 / Example 6.7 # m q_dd + c q_d + k q = f m1, k1, c1 = 1., 4., 1. @@ -91,10 +91,9 @@ def create_impulse_response(H, time, transpose, dt): plt.show() m = 50 -ir_true = ct.impulse_response(sysd,T=dt*m) -ir_true.tranpose = True +ir_true = ct.impulse_response(sysd, T=dt*m) -H_est = ct.markov(response,m=m,dt=dt) +H_est = ct.markov(response, m, dt=dt) # Helper function for plotting only ir_est = create_impulse_response(H_est, ir_true.time, From 42962f24c79d18ae846c9f804a9171e686c4ea12 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Sun, 7 Jul 2024 16:22:10 +0200 Subject: [PATCH 016/448] Update pytest --- control/tests/modelsimp_test.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/control/tests/modelsimp_test.py b/control/tests/modelsimp_test.py index 0e94063b6..286b41353 100644 --- a/control/tests/modelsimp_test.py +++ b/control/tests/modelsimp_test.py @@ -43,13 +43,13 @@ def testMarkovSignature(self): # Basic usage m = 3 - H = markov(Y, U, m, transpose=False) Htrue = np.array([1., 0., 0.]) + + H = markov(Y, U, m, transpose=False) np.testing.assert_array_almost_equal(H, Htrue) response.transpose=False H = markov(response, m) - Htrue = np.array([1., 0., 0.]) np.testing.assert_array_almost_equal(H, Htrue) # Make sure that transposed data also works @@ -69,15 +69,19 @@ def testMarkovSignature(self): np.testing.assert_array_almost_equal(H, Htrue) # Test example from docstring + # TODO: There is a problem here + # Htrue = np.array([1., 0.5, 0.]) T = np.linspace(0, 10, 100) U = np.ones((1, 100)) - _, Y = forced_response(tf([1], [1, 0.5], True), T, U) - H = markov(Y, U, 3) + T, Y = forced_response(tf([1], [1, 0.5], True), T, U) + H = markov(Y, U, 3, transpose=False) + #np.testing.assert_array_almost_equal(H, Htrue) T = np.linspace(0, 10, 100) U = np.ones((1, 100)) response = forced_response(tf([1], [1, 0.5], True), T, U) H = markov(response, 3) + #np.testing.assert_array_almost_equal(H, Htrue) # Test example from issue #395 inp = np.array([1, 2]) From a3276b72f32a0b2174f4724252e8877be1465b17 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Thu, 11 Jul 2024 15:05:12 +0200 Subject: [PATCH 017/448] Refactor api, keep old api working --- control/modelsimp.py | 58 ++++++++++++++------------------- control/tests/modelsimp_test.py | 25 ++++++++------ 2 files changed, 39 insertions(+), 44 deletions(-) diff --git a/control/modelsimp.py b/control/modelsimp.py index f4c70e66b..b57183e13 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -402,7 +402,7 @@ def era(YY, m, n, nin, nout, r): raise NotImplementedError('This function is not implemented yet.') -def markov(*args, **kwargs): +def markov(*args, m=None, transpose=False, dt=True, truncate=False): """markov(Y, U, [, m]) Calculate the first `m` Markov parameters [D CB CAB ...] @@ -420,12 +420,12 @@ def markov(*args, **kwargs): the input data is less than the desired number of Markov parameters (a warning message is generated in this case). - The function can be called with either 1, 2, or 3 arguments: + The function can be called with either 1, 2 or 3 arguments: - * ``K, S, E = lqr(response)`` - * ``K, S, E = lqr(respnose, m)`` - * ``K, S, E = lqr(Y, U)`` - * ``K, S, E = lqr(Y, U, m)`` + * ``H = markov(response)`` + * ``H = markov(respnose, m)`` + * ``H = markov(Y, U)`` + * ``H = markov(Y, U, m)`` where `response` is an `TimeResponseData` object, and `Y`, `U`, are 1D or 2D array and m is an integer. @@ -446,26 +446,20 @@ def markov(*args, **kwargs): Number of Markov parameters to output. Defaults to len(U). dt : True of float, optional True indicates discrete time with unspecified sampling time, - positive number is discrete time with specified sampling time. - It can be used to scale the markov parameters in order to match - the impulse response of this library. - Default values is True. + positive number is discrete time with specified sampling time.It + can be used to scale the markov parameters in order to match the + impulse response of this library. Default is True. truncate : bool, optional - Do not use first m equation for least least squares. - Default value is False. + Do not use first m equation for least least squares. Default is False. + transpose : bool, optional + Assume that input data is transposed relative to the standard + :ref:`time-series-convention`. For TimeResponseData this parameter + is ignored. Default is False. Returns ------- H : ndarray First m Markov parameters, [D CB CAB ...] - - - Notes - ----- - It works for SISO and MIMO systems. - - This function does comply with the Python Control Library - :ref:`time-series-convention` for representation of time series data. References ---------- @@ -494,25 +488,21 @@ def markov(*args, **kwargs): transpose = args[0].transpose if args[0].transpose and not args[0].issiso: Umat, Ymat = np.transpose(Umat), np.transpose(Ymat) - index = 1 + if (len(args) == 2): + m = args[1] + elif (len(args) > 2): + raise ControlArgument("too many positional arguments") else: if (len(args) < 2): raise ControlArgument("not enough input arguments") - Umat = np.array(args[0], ndmin=2) - Ymat = np.array(args[1], ndmin=2) - transpose = kwargs.pop('transpose', False) + Umat = np.array(args[1], ndmin=2) + Ymat = np.array(args[0], ndmin=2) if transpose: Umat, Ymat = np.transpose(Umat), np.transpose(Ymat) - index = 2 - - - if (len(args) > index): - m = args[index] - else: - m = None - - dt = kwargs.pop('dt', True) - truncate = kwargs.pop('truncate', False) + if (len(args) == 3): + m = args[2] + elif (len(args) > 3): + raise ControlArgument("too many positional arguments") # Make sure the number of time points match if Umat.shape[1] != Ymat.shape[1]: diff --git a/control/tests/modelsimp_test.py b/control/tests/modelsimp_test.py index 286b41353..ac2c1c078 100644 --- a/control/tests/modelsimp_test.py +++ b/control/tests/modelsimp_test.py @@ -45,11 +45,11 @@ def testMarkovSignature(self): m = 3 Htrue = np.array([1., 0., 0.]) - H = markov(Y, U, m, transpose=False) + H = markov(Y, U, m=m, transpose=False) np.testing.assert_array_almost_equal(H, Htrue) response.transpose=False - H = markov(response, m) + H = markov(response, m=m) np.testing.assert_array_almost_equal(H, Htrue) # Make sure that transposed data also works @@ -68,20 +68,25 @@ def testMarkovSignature(self): H = markov(response, m) np.testing.assert_array_almost_equal(H, Htrue) + H = markov(Y, U, m=m) + np.testing.assert_array_almost_equal(H, Htrue) + + H = markov(response, m=m) + np.testing.assert_array_almost_equal(H, Htrue) + # Test example from docstring - # TODO: There is a problem here - # Htrue = np.array([1., 0.5, 0.]) + # TODO: There is a problem here, last markov parameter does not fit + # the approximation error could be to big + Htrue = np.array([0, 1., -0.5]) T = np.linspace(0, 10, 100) U = np.ones((1, 100)) T, Y = forced_response(tf([1], [1, 0.5], True), T, U) - H = markov(Y, U, 3, transpose=False) - #np.testing.assert_array_almost_equal(H, Htrue) + H = markov(Y, U, 4, transpose=False) + np.testing.assert_array_almost_equal(H[:3], Htrue[:3]) - T = np.linspace(0, 10, 100) - U = np.ones((1, 100)) response = forced_response(tf([1], [1, 0.5], True), T, U) - H = markov(response, 3) - #np.testing.assert_array_almost_equal(H, Htrue) + H = markov(response, 4) + np.testing.assert_array_almost_equal(H[:3], Htrue[:3]) # Test example from issue #395 inp = np.array([1, 2]) From 250c448a3e31fac9fb035cf01f938f4f2e9225e1 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Thu, 11 Jul 2024 16:04:16 +0200 Subject: [PATCH 018/448] Fix few docstring things, change name to eigensys_realization --- control/modelsimp.py | 57 ++++++++++++++++----------------- control/tests/modelsimp_test.py | 10 +++--- doc/control.rst | 2 +- examples/era_msd.py | 2 +- 4 files changed, 35 insertions(+), 36 deletions(-) diff --git a/control/modelsimp.py b/control/modelsimp.py index d3d934668..ca2a05e5c 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -50,7 +50,7 @@ from .statefbk import gram from .timeresp import TimeResponseData -__all__ = ['hsvd', 'balred', 'modred', 'era', 'markov', 'minreal'] +__all__ = ['hsvd', 'balred', 'modred', 'eigensys_realization', 'markov', 'minreal', 'era'] # Hankel Singular Value Decomposition @@ -369,10 +369,11 @@ def minreal(sys, tol=None, verbose=True): return sysr -def era(arg, r, m=None, n=None, dt=True, transpose=False): - r"""era(YY, r) +def eigensys_realization(arg, r, m=None, n=None, dt=True, transpose=False): + r"""eigensys_realization(YY, r) - Calculate an ERA model of order `r` based on the impulse-response data. + Calculate an ERA model of order `r` based on the impulse-response data + `YY`. This function computes a discrete time system @@ -385,8 +386,8 @@ def era(arg, r, m=None, n=None, dt=True, transpose=False): The function can be called with 2 arguments: - * ``sysd, S = era(data, r)`` - * ``sysd, S = era(YY, r)`` + * ``sysd, S = eigensys_realization(data, r)`` + * ``sysd, S = eigensys_realization(YY, r)`` where `response` is an `TimeResponseData` object, and `YY` is 1D or 3D array and r is an integer. @@ -394,64 +395,59 @@ def era(arg, r, m=None, n=None, dt=True, transpose=False): Parameters ---------- YY : array_like - impulse-response data from which the StateSpace model is estimated, - 1D or 3D array. + Impulse-response from which the StateSpace model is estimated, 1D + or 3D array. data : TimeResponseData - impulse-response data from which the StateSpace model is estimated. + Impulse-response from which the StateSpace model is estimated. r : integer Order of model. m : integer, optional - Number of rows in Hankel matrix. - Default is 2*r. + Number of rows in Hankel matrix. Default is 2*r. n : integer, optional - Number of columns in Hankel matrix. - Default is 2*r. + Number of columns in Hankel matrix. Default is 2*r. dt : True or float, optional True indicates discrete time with unspecified sampling time, - positive number is discrete time with specified sampling time. - It can be used to scale the StateSpace model in order to match - the impulse response of this library. - Default values is True. + positive number is discrete time with specified sampling time. It + can be used to scale the StateSpace model in order to match the + impulse response of this library. Default is True. transpose : bool, optional Assume that input data is transposed relative to the standard :ref:`time-series-convention`. For TimeResponseData this parameter - is ignored. - Default value is False. + is ignored. Default is False. Returns ------- sys : StateSpace A reduced order model sys=StateSpace(Ar,Br,Cr,Dr,dt). S : array - Singular values of Hankel matrix. - Can be used to choose a good r value. + Singular values of Hankel matrix. Can be used to choose a good r + value. References ---------- - .. [1] Samet Oymak and Necmiye Ozay - Non-asymptotic Identification of LTI Systems - from a Single Trajectory. + .. [1] Samet Oymak and Necmiye Ozay, Non-asymptotic Identification of + LTI Systems from a Single Trajectory. https://arxiv.org/abs/1806.05722 Examples -------- >>> T = np.linspace(0, 10, 100) >>> _, YY = ct.impulse_response(ct.tf([1], [1, 0.5], True), T) - >>> sysd, _ = ct.era(YY, r=1) + >>> sysd, _ = ct.eigensys_realization(YY, r=1) >>> T = np.linspace(0, 10, 100) >>> response = ct.impulse_response(ct.tf([1], [1, 0.5], True), T) - >>> sysd, _ = ct.era(response, r=1) + >>> sysd, _ = ct.eigensys_realization(response, r=1) """ def block_hankel_matrix(Y, m, n): - + """Create a block Hankel matrix from Impulse response""" q, p, _ = Y.shape YY = Y.transpose(0,2,1) # transpose for reshape H = np.zeros((q*m,p*n)) for r in range(m): - # shift and add row to hankel matrix + # shift and add row to Hankel matrix new_row = YY[:,r:r+n,:] H[q*r:q*(r+1),:] = new_row.reshape((q,p*n)) @@ -477,7 +473,7 @@ def block_hankel_matrix(Y, m, n): raise ValueError("Hankel parameters are to small") if (l-1) < m+n: - raise ValueError("Not enough data for requested number of parameters") + raise ValueError("not enough data for requested number of parameters") H = block_hankel_matrix(YY[:,:,1:], m, n+1) # Hankel matrix (q*m, p*(n+1)) Hf = H[:,:-p] # first p*n columns of H @@ -651,3 +647,6 @@ def markov(Y, U, m=None, transpose=False): # Return the first m Markov parameters return H if transpose else np.transpose(H) + +# Function aliases +era = eigensys_realization diff --git a/control/tests/modelsimp_test.py b/control/tests/modelsimp_test.py index 39277fb4f..dc50ce963 100644 --- a/control/tests/modelsimp_test.py +++ b/control/tests/modelsimp_test.py @@ -10,7 +10,7 @@ from control import StateSpace, impulse_response, step_response, forced_response, tf, rss, c2d from control.exception import ControlMIMONotImplemented from control.tests.conftest import slycotonly -from control.modelsimp import balred, hsvd, markov, modred, era +from control.modelsimp import balred, hsvd, markov, modred, eigensys_realization class TestModelsimp: @@ -129,7 +129,7 @@ def testERASignature(self): ir_true = impulse_response(sysd_true,T=T) # test TimeResponseData - sysd_est, _ = era(ir_true,r=2) + sysd_est, _ = eigensys_realization(ir_true,r=2) ir_est = impulse_response(sysd_est, T=T) _, H_est = ir_est @@ -137,7 +137,7 @@ def testERASignature(self): # test ndarray _, YY_true = ir_true - sysd_est, _ = era(YY_true,r=2) + sysd_est, _ = eigensys_realization(YY_true,r=2) ir_est = impulse_response(sysd_est, T=T) _, H_est = ir_est @@ -169,7 +169,7 @@ def testERASignature(self): ir_true = impulse_response(sysd_true, T=T) # test TimeResponseData - sysd_est, _ = era(ir_true,r=4,dt=dt) + sysd_est, _ = eigensys_realization(ir_true,r=4,dt=dt) step_true = step_response(sysd_true) step_est = step_response(sysd_est) @@ -180,7 +180,7 @@ def testERASignature(self): # test ndarray _, YY_true = ir_true - sysd_est, _ = era(YY_true,r=4,dt=dt) + sysd_est, _ = eigensys_realization(YY_true,r=4,dt=dt) step_true = step_response(sysd_true, T=T) step_est = step_response(sysd_est, T=T) diff --git a/doc/control.rst b/doc/control.rst index efd643d8a..30ae1a03b 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -137,7 +137,7 @@ Model simplification tools balred hsvd modred - era + eigensys_realization markov Nonlinear system support diff --git a/examples/era_msd.py b/examples/era_msd.py index 9a5fc8c4d..101933435 100644 --- a/examples/era_msd.py +++ b/examples/era_msd.py @@ -47,7 +47,7 @@ response.plot() plt.show() -sysd_est, _ = ct.era(response,r=4,dt=dt) +sysd_est, _ = ct.eigensys_realization(response,r=4,dt=dt) step_true = ct.step_response(sysd) step_true.sysname="H_true" From 10fa1423dc5a79b8f29f34bdcff5e365e88abf95 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Thu, 11 Jul 2024 17:12:43 +0200 Subject: [PATCH 019/448] Change names for modelsimp, add aliases for modelsimp --- control/modelsimp.py | 21 +++++++++++++++------ doc/control.rst | 10 +++++----- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/control/modelsimp.py b/control/modelsimp.py index 06c3d350d..e12fb4fa2 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -49,7 +49,9 @@ from .statesp import StateSpace from .statefbk import gram -__all__ = ['hsvd', 'balred', 'modred', 'era', 'markov', 'minreal'] +__all__ = ['hankel_singular_values', 'balanced_reduction', 'model_reduction', + 'minimal_realization', 'eigensys_realization', 'markov', 'hsvd', + 'balred', 'modred', 'minreal', 'era'] # Hankel Singular Value Decomposition @@ -57,7 +59,7 @@ # The following returns the Hankel singular values, which are singular values # of the matrix formed by multiplying the controllability and observability # Gramians -def hsvd(sys): +def hankel_singular_values(sys): """Calculate the Hankel singular values. Parameters @@ -106,7 +108,7 @@ def hsvd(sys): return hsv[::-1] -def modred(sys, ELIM, method='matchdc'): +def model_reduction(sys, ELIM, method='matchdc'): """ Model reduction of `sys` by eliminating the states in `ELIM` using a given method. @@ -216,7 +218,7 @@ def modred(sys, ELIM, method='matchdc'): return rsys -def balred(sys, orders, method='truncate', alpha=None): +def balanced_reduction(sys, orders, method='truncate', alpha=None): """Balanced reduced order model of sys of a given order. States are eliminated based on Hankel singular value. If sys has unstable modes, they are removed, the @@ -340,7 +342,7 @@ def balred(sys, orders, method='truncate', alpha=None): return rsys -def minreal(sys, tol=None, verbose=True): +def minimal_realization(sys, tol=None, verbose=True): ''' Eliminates uncontrollable or unobservable states in state-space models or cancelling pole-zero pairs in transfer functions. The @@ -368,7 +370,7 @@ def minreal(sys, tol=None, verbose=True): return sysr -def era(YY, m, n, nin, nout, r): +def eigensys_realization(YY, m, n, nin, nout, r): """Calculate an ERA model of order `r` based on the impulse-response data `YY`. @@ -556,3 +558,10 @@ def markov(Y, U, m=None, transpose=False): # Return the first m Markov parameters return H if transpose else np.transpose(H) + +# Function aliases +hsvd = hankel_singular_values +balred = balanced_reduction +modred = model_reduction +minreal = minimal_realization +era = eigensys_realization diff --git a/doc/control.rst b/doc/control.rst index efd643d8a..366454d42 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -133,11 +133,11 @@ Model simplification tools .. autosummary:: :toctree: generated/ - minreal - balred - hsvd - modred - era + minimal_realization + balanced_reduction + hankel_singular_values + model_reduction + eigensys_realization markov Nonlinear system support From d15e21fdedfa92a2af6909d63ea2e84aab4a8c63 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 13 Jul 2024 09:05:51 -0700 Subject: [PATCH 020/448] add regression test --- control/tests/timeplot_test.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 0fcc159be..58ef062a5 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -258,7 +258,7 @@ def test_combine_time_responses(): sys_mimo = ct.rss(4, 2, 2) timepts = np.linspace(0, 10, 100) - # Combine two response with ntrace = 0 + # Combine two responses with ntrace = 0 U = np.vstack([np.sin(timepts), np.cos(2*timepts)]) resp1 = ct.input_output_response(sys_mimo, timepts, U) @@ -293,6 +293,7 @@ def test_combine_time_responses(): combresp4 = ct.combine_time_responses( [resp1, resp2, resp3], trace_labels=labels) assert combresp4.trace_labels == labels + assert combresp4.trace_types == [None, None, 'step', 'step'] # Automatically generated trace label names and types resp5 = ct.step_response(sys_mimo, timepts) @@ -302,7 +303,13 @@ def test_combine_time_responses(): combresp5 = ct.combine_time_responses([resp1, resp5]) assert combresp5.trace_labels == [resp1.title] + \ ["test, trace 0", "test, trace 1"] - assert combresp4.trace_types == [None, None, 'step', 'step'] + assert combresp5.trace_types == [None, None, None] + + # ntraces = 0 with trace_types != None + # https://github.com/python-control/python-control/issues/1025 + resp6 = ct.forced_response(sys_mimo, timepts, U) + combresp6 = ct.combine_time_responses([resp1, resp6]) + assert combresp6.trace_types == [None, 'forced'] with pytest.raises(ValueError, match="must have the same number"): resp = ct.step_response(ct.rss(4, 2, 3), timepts) From 937783a427c55e7f18b5b32035f7583a932b6aea Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 13 Jul 2024 09:06:05 -0700 Subject: [PATCH 021/448] fix line length overflow --- control/timeplot.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/control/timeplot.py b/control/timeplot.py index 646d2c1be..f257d2b3a 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -738,7 +738,8 @@ def combine_time_responses(response_list, trace_labels=None, title=None): if generate_trace_labels: trace_labels.append(response.title) trace_types.append( - None if response.trace_types is None else response.trace_types[0]) + None if response.trace_types is None + else response.trace_types[0]) else: # Save the data From 6c7306217070252898aa9fa78d1ef06e37d5bfda Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Mon, 15 Jul 2024 09:26:42 +0200 Subject: [PATCH 022/448] Change _block_hankel to top-level, update docstrings and comments --- control/modelsimp.py | 45 ++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/control/modelsimp.py b/control/modelsimp.py index ca2a05e5c..9fa3e4127 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -369,6 +369,21 @@ def minreal(sys, tol=None, verbose=True): return sysr +def _block_hankel(Y, m, n): + """Create a block Hankel matrix from impulse response""" + q, p, _ = Y.shape + YY = Y.transpose(0,2,1) # transpose for reshape + + H = np.zeros((q*m,p*n)) + + for r in range(m): + # shift and add row to Hankel matrix + new_row = YY[:,r:r+n,:] + H[q*r:q*(r+1),:] = new_row.reshape((q,p*n)) + + return H + + def eigensys_realization(arg, r, m=None, n=None, dt=True, transpose=False): r"""eigensys_realization(YY, r) @@ -389,8 +404,8 @@ def eigensys_realization(arg, r, m=None, n=None, dt=True, transpose=False): * ``sysd, S = eigensys_realization(data, r)`` * ``sysd, S = eigensys_realization(YY, r)`` - where `response` is an `TimeResponseData` object, and `YY` is 1D or 3D - array and r is an integer. + where `data` is a `TimeResponseData` object, `YY` is a 1D or 3D + array, and r is an integer. Parameters ---------- @@ -406,10 +421,10 @@ def eigensys_realization(arg, r, m=None, n=None, dt=True, transpose=False): n : integer, optional Number of columns in Hankel matrix. Default is 2*r. dt : True or float, optional - True indicates discrete time with unspecified sampling time, - positive number is discrete time with specified sampling time. It - can be used to scale the StateSpace model in order to match the - impulse response of this library. Default is True. + True indicates discrete time with unspecified sampling time and a + positive float is discrete time with the specified sampling time. + It can be used to scale the StateSpace model in order to match the + unit-area impulse response of python-control. Default is True. transpose : bool, optional Assume that input data is transposed relative to the standard :ref:`time-series-convention`. For TimeResponseData this parameter @@ -439,20 +454,6 @@ def eigensys_realization(arg, r, m=None, n=None, dt=True, transpose=False): >>> response = ct.impulse_response(ct.tf([1], [1, 0.5], True), T) >>> sysd, _ = ct.eigensys_realization(response, r=1) """ - def block_hankel_matrix(Y, m, n): - """Create a block Hankel matrix from Impulse response""" - q, p, _ = Y.shape - YY = Y.transpose(0,2,1) # transpose for reshape - - H = np.zeros((q*m,p*n)) - - for r in range(m): - # shift and add row to Hankel matrix - new_row = YY[:,r:r+n,:] - H[q*r:q*(r+1),:] = new_row.reshape((q,p*n)) - - return H - if isinstance(arg, TimeResponseData): YY = np.array(arg.outputs, ndmin=3) if arg.transpose: @@ -475,7 +476,7 @@ def block_hankel_matrix(Y, m, n): if (l-1) < m+n: raise ValueError("not enough data for requested number of parameters") - H = block_hankel_matrix(YY[:,:,1:], m, n+1) # Hankel matrix (q*m, p*(n+1)) + H = _block_hankel(YY[:,:,1:], m, n+1) # Hankel matrix (q*m, p*(n+1)) Hf = H[:,:-p] # first p*n columns of H Hl = H[:,p:] # last p*n columns of H @@ -486,7 +487,7 @@ def block_hankel_matrix(Y, m, n): # balanced realizations Sigma_inv = np.diag(1./np.sqrt(S[0:r])) Ar = Sigma_inv @ Ur.T @ Hl @ Vhr.T @ Sigma_inv - Br = Sigma_inv @ Ur.T @ Hf[:,0:p]*dt + Br = Sigma_inv @ Ur.T @ Hf[:,0:p]*dt # dt scaling for unit-area impulse Cr = Hf[0:q,:] @ Vhr.T @ Sigma_inv Dr = YY[:,:,0] From 8b9326435142eec4d07a6ec35bf0884fd3d13843 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Mon, 15 Jul 2024 09:55:04 +0200 Subject: [PATCH 023/448] Delete the hyphen from the Impuse response. --- control/modelsimp.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/modelsimp.py b/control/modelsimp.py index 9fa3e4127..4b72e2bb9 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -410,10 +410,10 @@ def eigensys_realization(arg, r, m=None, n=None, dt=True, transpose=False): Parameters ---------- YY : array_like - Impulse-response from which the StateSpace model is estimated, 1D + Impulse response from which the StateSpace model is estimated, 1D or 3D array. data : TimeResponseData - Impulse-response from which the StateSpace model is estimated. + Impulse response from which the StateSpace model is estimated. r : integer Order of model. m : integer, optional From 7ac6ee027d95659ddc6b45b348e049d9fcdf7eb5 Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Mon, 15 Jul 2024 11:20:16 +0200 Subject: [PATCH 024/448] Remove parenthesis form if, update docstrings and comments --- control/modelsimp.py | 59 ++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/control/modelsimp.py b/control/modelsimp.py index b57183e13..4cc07b733 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -405,52 +405,52 @@ def era(YY, m, n, nin, nout, r): def markov(*args, m=None, transpose=False, dt=True, truncate=False): """markov(Y, U, [, m]) - Calculate the first `m` Markov parameters [D CB CAB ...] - from data + Calculate the first `m` Markov parameters [D CB CAB ...] from data. - This function computes the Markov parameters for a discrete time system + This function computes the Markov parameters for a discrete time + system .. math:: x[k+1] &= A x[k] + B u[k] \\\\ y[k] &= C x[k] + D u[k] - given data for u and y. The algorithm assumes that that C A^k B = 0 for - k > m-2 (see [1]_). Note that the problem is ill-posed if the length of - the input data is less than the desired number of Markov parameters (a - warning message is generated in this case). + given data for u and y. The algorithm assumes that that C A^k B = 0 + for k > m-2 (see [1]_). Note that the problem is ill-posed if the + length of the input data is less than the desired number of Markov + parameters (a warning message is generated in this case). The function can be called with either 1, 2 or 3 arguments: - * ``H = markov(response)`` - * ``H = markov(respnose, m)`` + * ``H = markov(data)`` + * ``H = markov(data, m)`` * ``H = markov(Y, U)`` * ``H = markov(Y, U, m)`` - where `response` is an `TimeResponseData` object, and `Y`, `U`, are 1D or 2D - array and m is an integer. + where `data` is a `TimeResponseData` object, `YY` is a 1D or 3D + array, and r is an integer. Parameters ---------- Y : array_like - Output data. If the array is 1D, the system is assumed to be single - input. If the array is 2D and transpose=False, the columns of `Y` - are taken as time points, otherwise the rows of `Y` are taken as - time points. + Output data. If the array is 1D, the system is assumed to be + single input. If the array is 2D and transpose=False, the columns + of `Y` are taken as time points, otherwise the rows of `Y` are + taken as time points. U : array_like Input data, arranged in the same way as `Y`. data : TimeResponseData Response data from which the Markov parameters where estimated. Input and output data must be 1D or 2D array. m : int, optional - Number of Markov parameters to output. Defaults to len(U). + Number of Markov parameters to output. Defaults to len(U). dt : True of float, optional - True indicates discrete time with unspecified sampling time, - positive number is discrete time with specified sampling time.It - can be used to scale the markov parameters in order to match the - impulse response of this library. Default is True. + True indicates discrete time with unspecified sampling time and a + positive float is discrete time with the specified sampling time. + It can be used to scale the Markov parameters in order to match + the unit-area impulse response of python-control. Default is True. truncate : bool, optional - Do not use first m equation for least least squares. Default is False. + Do not use first m equation for least squares. Default is False. transpose : bool, optional Assume that input data is transposed relative to the standard :ref:`time-series-convention`. For TimeResponseData this parameter @@ -459,7 +459,7 @@ def markov(*args, m=None, transpose=False, dt=True, truncate=False): Returns ------- H : ndarray - First m Markov parameters, [D CB CAB ...] + First m Markov parameters, [D CB CAB ...]. References ---------- @@ -476,10 +476,10 @@ def markov(*args, m=None, transpose=False, dt=True, truncate=False): >>> H = ct.markov(Y, U, 3, transpose=False) """ - # Convert input parameters to 2D arrays (if they aren't already) + # Convert input parameters to 2D arrays (if they aren't already) # Get the system description - if (len(args) < 1): + if len(args) < 1: raise ControlArgument("not enough input arguments") if isinstance(args[0], TimeResponseData): @@ -488,20 +488,20 @@ def markov(*args, m=None, transpose=False, dt=True, truncate=False): transpose = args[0].transpose if args[0].transpose and not args[0].issiso: Umat, Ymat = np.transpose(Umat), np.transpose(Ymat) - if (len(args) == 2): + if len(args) == 2: m = args[1] - elif (len(args) > 2): + elif len(args) > 2: raise ControlArgument("too many positional arguments") else: - if (len(args) < 2): + if len(args) < 2: raise ControlArgument("not enough input arguments") Umat = np.array(args[1], ndmin=2) Ymat = np.array(args[0], ndmin=2) if transpose: Umat, Ymat = np.transpose(Umat), np.transpose(Ymat) - if (len(args) == 3): + if len(args) == 3: m = args[2] - elif (len(args) > 3): + elif len(args) > 3: raise ControlArgument("too many positional arguments") # Make sure the number of time points match @@ -577,6 +577,7 @@ def markov(*args, m=None, transpose=False, dt=True, truncate=False): H = H.reshape(q,m,p) # output, time*input -> output, time, input H = H.transpose(0,2,1) # output, input, time + # for siso return a 1D array instead of a 3D array if q == 1 and p == 1: H = np.squeeze(H) From 8d62775303e18fabff1cbd5927e3beaf6f2a765f Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Mon, 15 Jul 2024 12:05:02 +0200 Subject: [PATCH 025/448] Change default value of dt to None, add equally spaced check for response time data --- control/modelsimp.py | 22 ++++++++++++++++------ control/tests/modelsimp_test.py | 22 ++++++++++++++++++---- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/control/modelsimp.py b/control/modelsimp.py index 4cc07b733..685529d0f 100644 --- a/control/modelsimp.py +++ b/control/modelsimp.py @@ -402,7 +402,7 @@ def era(YY, m, n, nin, nout, r): raise NotImplementedError('This function is not implemented yet.') -def markov(*args, m=None, transpose=False, dt=True, truncate=False): +def markov(*args, m=None, transpose=False, dt=None, truncate=False): """markov(Y, U, [, m]) Calculate the first `m` Markov parameters [D CB CAB ...] from data. @@ -448,7 +448,9 @@ def markov(*args, m=None, transpose=False, dt=True, truncate=False): True indicates discrete time with unspecified sampling time and a positive float is discrete time with the specified sampling time. It can be used to scale the Markov parameters in order to match - the unit-area impulse response of python-control. Default is True. + the unit-area impulse response of python-control. Default is True + for array_like and dt=data.time[1]-data.time[0] for + TimeResponseData as input. truncate : bool, optional Do not use first m equation for least squares. Default is False. transpose : bool, optional @@ -483,10 +485,16 @@ def markov(*args, m=None, transpose=False, dt=True, truncate=False): raise ControlArgument("not enough input arguments") if isinstance(args[0], TimeResponseData): - Umat = np.array(args[0].inputs, ndmin=2) - Ymat = np.array(args[0].outputs, ndmin=2) - transpose = args[0].transpose - if args[0].transpose and not args[0].issiso: + data = args[0] + Umat = np.array(data.inputs, ndmin=2) + Ymat = np.array(data.outputs, ndmin=2) + if dt is None: + dt = data.time[1] - data.time[0] + if not np.allclose(np.diff(data.time), dt): + raise ValueError("response time values must be equally " + "spaced.") + transpose = data.transpose + if data.transpose and not data.issiso: Umat, Ymat = np.transpose(Umat), np.transpose(Ymat) if len(args) == 2: m = args[1] @@ -497,6 +505,8 @@ def markov(*args, m=None, transpose=False, dt=True, truncate=False): raise ControlArgument("not enough input arguments") Umat = np.array(args[1], ndmin=2) Ymat = np.array(args[0], ndmin=2) + if dt is None: + dt = True if transpose: Umat, Ymat = np.transpose(Umat), np.transpose(Ymat) if len(args) == 3: diff --git a/control/tests/modelsimp_test.py b/control/tests/modelsimp_test.py index ac2c1c078..d72348aea 100644 --- a/control/tests/modelsimp_test.py +++ b/control/tests/modelsimp_test.py @@ -81,11 +81,11 @@ def testMarkovSignature(self): T = np.linspace(0, 10, 100) U = np.ones((1, 100)) T, Y = forced_response(tf([1], [1, 0.5], True), T, U) - H = markov(Y, U, 4, transpose=False) + H = markov(Y, U, 4, dt=True) np.testing.assert_array_almost_equal(H[:3], Htrue[:3]) response = forced_response(tf([1], [1, 0.5], True), T, U) - H = markov(response, 4) + H = markov(response, 4, dt=True) np.testing.assert_array_almost_equal(H[:3], Htrue[:3]) # Test example from issue #395 @@ -164,14 +164,28 @@ def testMarkovResults(self, k, m, n): # Generate input/output data T = np.array(range(n)) * Ts U = np.cos(T) + np.sin(T/np.pi) - response = forced_response(Hd, T, U, squeeze=True) - Mcomp = markov(response, m) + + ir_true = impulse_response(Hd,T) + Mtrue_scaled = ir_true[1][:m] + + T, Y = forced_response(Hd, T, U, squeeze=True) + Mcomp = markov(Y, U, m, dt=True) + Mcomp_scaled = markov(Y, U, m, dt=Ts) # Compare to results from markov() # experimentally determined probability to get non matching results # with rtot=1e-6 and atol=1e-8 due to numerical errors # for k=5, m=n=10: 0.015 % np.testing.assert_allclose(Mtrue, Mcomp, rtol=1e-6, atol=1e-8) + np.testing.assert_allclose(Mtrue_scaled, Mcomp_scaled, rtol=1e-6, atol=1e-8) + + response = forced_response(Hd, T, U, squeeze=True) + Mcomp = markov(response, m, dt=True) + Mcomp_scaled = markov(response, m, dt=Ts) + + np.testing.assert_allclose(Mtrue, Mcomp, rtol=1e-6, atol=1e-8) + np.testing.assert_allclose(Mtrue_scaled, Mcomp_scaled, rtol=1e-6, atol=1e-8) + def testModredMatchDC(self): #balanced realization computed in matlab for the transfer function: From e61ac533e46946fd9bf8378f94ed38908cb0496a Mon Sep 17 00:00:00 2001 From: Johannes Kaisinger Date: Mon, 15 Jul 2024 13:28:01 +0200 Subject: [PATCH 026/448] Add unit tests to increase code coverage --- control/tests/modelsimp_test.py | 99 +++++++++++++++++++++++++-------- 1 file changed, 76 insertions(+), 23 deletions(-) diff --git a/control/tests/modelsimp_test.py b/control/tests/modelsimp_test.py index d72348aea..88cc93a75 100644 --- a/control/tests/modelsimp_test.py +++ b/control/tests/modelsimp_test.py @@ -8,6 +8,7 @@ from control import StateSpace, forced_response, impulse_response, tf, rss, c2d, TimeResponseData +from control.exception import ControlArgument, ControlDimension from control.tests.conftest import slycotonly from control.modelsimp import balred, hsvd, markov, modred @@ -32,7 +33,7 @@ def testHSVD(self): assert not isinstance(hsv, np.matrix) def testMarkovSignature(self): - U = np.array([[1., 1., 1., 1., 1.]]) + U = np.array([[1., 1., 1., 1., 1., 1., 1.]]) Y = U response = TimeResponseData(time=np.arange(U.shape[-1]), outputs=Y, @@ -41,27 +42,40 @@ def testMarkovSignature(self): input_labels='u', ) - # Basic usage + # setup m = 3 Htrue = np.array([1., 0., 0.]) + Htrue_l = np.array([1., 0., 0., 0., 0., 0., 0.]) - H = markov(Y, U, m=m, transpose=False) - np.testing.assert_array_almost_equal(H, Htrue) + # test not enough input arguments + with pytest.raises(ControlArgument): + H = markov(Y) + with pytest.raises(ControlArgument): + H = markov() - response.transpose=False - H = markov(response, m=m) - np.testing.assert_array_almost_equal(H, Htrue) + # to many positional arguments + with pytest.raises(ControlArgument): + H = markov(Y,U,m,1) + with pytest.raises(ControlArgument): + H = markov(response,m,1) - # Make sure that transposed data also works - H = markov(Y.T, U.T, m, transpose=True) - np.testing.assert_array_almost_equal(H, np.transpose(Htrue)) + # to many positional arguments + with pytest.raises(ControlDimension): + U2 = np.hstack([U,U]) + H = markov(Y,U2,m) - response.transpose=True - H = markov(response, m) - np.testing.assert_array_almost_equal(H, np.transpose(Htrue)) - response.transpose=False + # not enough data + with pytest.warns(Warning): + H = markov(Y,U,8) + + # Basic Usage, m=l + H = markov(Y, U) + np.testing.assert_array_almost_equal(H, Htrue_l) - # Generate Markov parameters without any arguments + H = markov(response) + np.testing.assert_array_almost_equal(H, Htrue_l) + + # Basic Usage, m H = markov(Y, U, m) np.testing.assert_array_almost_equal(H, Htrue) @@ -74,6 +88,20 @@ def testMarkovSignature(self): H = markov(response, m=m) np.testing.assert_array_almost_equal(H, Htrue) + response.transpose=False + H = markov(response, m=m) + np.testing.assert_array_almost_equal(H, Htrue) + + # Make sure that transposed data also works, siso + HT = markov(Y.T, U.T, m, transpose=True) + np.testing.assert_array_almost_equal(HT, np.transpose(Htrue)) + + response.transpose = True + HT = markov(response, m) + np.testing.assert_array_almost_equal(HT, np.transpose(Htrue)) + response.transpose=False + + # Test example from docstring # TODO: There is a problem here, last markov parameter does not fit # the approximation error could be to big @@ -114,16 +142,41 @@ def testMarkovSignature(self): dt = 0.25 sysd = sys.sample(dt, method='zoh') - t = np.arange(0,100,dt) - u = np.random.randn(sysd.B.shape[-1], len(t)) - response = forced_response(sysd, U=u) + T = np.arange(0,100,dt) + U = np.random.randn(sysd.B.shape[-1], len(T)) + response = forced_response(sysd, U=U) + Y = response.outputs m = 100 - H = markov(response, m, dt=dt) _, Htrue = impulse_response(sysd, T=dt*(m-1)) + + # test array_like + H = markov(Y, U, m, dt=dt) np.testing.assert_array_almost_equal(H, Htrue) + # test array_like, truncate + H = markov(Y, U, m, dt=dt, truncate=True) + np.testing.assert_array_almost_equal(H, Htrue) + + # test array_like, transpose + HT = markov(Y.T, U.T, m, dt=dt, transpose=True) + np.testing.assert_array_almost_equal(HT, np.transpose(Htrue)) + + # test response data + H = markov(response, m, dt=dt) + np.testing.assert_array_almost_equal(H, Htrue) + + # test response data + H = markov(response, m, dt=dt, truncate=True) + np.testing.assert_array_almost_equal(H, Htrue) + + # test response data, transpose + response.transpose = True + HT = markov(response, m, dt=dt) + np.testing.assert_array_almost_equal(HT, np.transpose(Htrue)) + + # Make sure markov() returns the right answer @pytest.mark.parametrize("k, m, n", [(2, 2, 2), @@ -168,14 +221,14 @@ def testMarkovResults(self, k, m, n): ir_true = impulse_response(Hd,T) Mtrue_scaled = ir_true[1][:m] - T, Y = forced_response(Hd, T, U, squeeze=True) - Mcomp = markov(Y, U, m, dt=True) - Mcomp_scaled = markov(Y, U, m, dt=Ts) - # Compare to results from markov() # experimentally determined probability to get non matching results # with rtot=1e-6 and atol=1e-8 due to numerical errors # for k=5, m=n=10: 0.015 % + T, Y = forced_response(Hd, T, U, squeeze=True) + Mcomp = markov(Y, U, m, dt=True) + Mcomp_scaled = markov(Y, U, m, dt=Ts) + np.testing.assert_allclose(Mtrue, Mcomp, rtol=1e-6, atol=1e-8) np.testing.assert_allclose(Mtrue_scaled, Mcomp_scaled, rtol=1e-6, atol=1e-8) From c67da3aa13a6f4804264e005733878348b7cfbf3 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 21 Jul 2024 08:34:28 -0700 Subject: [PATCH 027/448] move code around in grid.py --- control/grid.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/control/grid.py b/control/grid.py index ef9995947..dfe8f9a3e 100644 --- a/control/grid.py +++ b/control/grid.py @@ -141,18 +141,6 @@ def sgrid(scaling=None): return ax, fig -# Utility function used by all grid code -def _final_setup(ax, scaling=None): - ax.set_xlabel('Real') - ax.set_ylabel('Imaginary') - ax.axhline(y=0, color='black', lw=0.25) - ax.axvline(x=0, color='black', lw=0.25) - - # Set up the scaling for the axes - scaling = 'equal' if scaling is None else scaling - plt.axis(scaling) - - # If not grid is given, at least separate stable/unstable regions def nogrid(dt=None, ax=None, scaling=None): fig = plt.gcf() @@ -226,3 +214,15 @@ def zgrid(zetas=None, wns=None, ax=None, scaling=None): _final_setup(ax, scaling=scaling) return ax, fig + + +# Utility function used by all grid code +def _final_setup(ax, scaling=None): + ax.set_xlabel('Real') + ax.set_ylabel('Imaginary') + ax.axhline(y=0, color='black', lw=0.25) + ax.axvline(x=0, color='black', lw=0.25) + + # Set up the scaling for the axes + scaling = 'equal' if scaling is None else scaling + plt.axis(scaling) From 009b8212a7d44f901cfda060168c9b3ecc72145d Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 21 Jul 2024 09:43:50 -0700 Subject: [PATCH 028/448] fix small typo caught by @slivingston --- control/ctrlplot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index e53d4917e..6d31664a0 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -113,7 +113,7 @@ def get_plot_axes(line_array): # Utility functions # # These functions are used by plotting routines to provide a consistent way -# of processing and displaing information. +# of processing and displaying information. # From 7cdd86c116ee02b555b20da77b35330721ba0311 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 4 Aug 2024 10:30:19 -0700 Subject: [PATCH 029/448] add pyqt dependency for QtAgg testing --- .github/workflows/python-package-conda.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml index aac8ab054..a103985a6 100644 --- a/.github/workflows/python-package-conda.yml +++ b/.github/workflows/python-package-conda.yml @@ -56,6 +56,9 @@ jobs: if [[ '${{matrix.pandas}}' == 'conda' ]]; then mamba install pandas fi + if [[ '${{matrix.mplbackend}}' == 'QtAgg' ]]; then + mamba install pyqt + fi - name: Test with pytest shell: bash -l {0} From c2bebeaac8b0ae2dcb773e798825fb64ebf42452 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 6 Aug 2024 21:43:52 -0700 Subject: [PATCH 030/448] fixed incorrect unit test in nyquist_test (OS/BLAS test matrix failure --- control/tests/nyquist_test.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/control/tests/nyquist_test.py b/control/tests/nyquist_test.py index af9505354..d7cc94692 100644 --- a/control/tests/nyquist_test.py +++ b/control/tests/nyquist_test.py @@ -132,10 +132,17 @@ def test_nyquist_basic(): # Nyquist plot with poles on imaginary axis, omega specified # (can miss encirclements due to the imaginary poles at +/- 1j) sys = ct.tf([1], [1, 3, 2]) * ct.tf([1], [1, 0, 1]) - with pytest.warns(UserWarning, match="does not match") as records: + with warnings.catch_warnings(record=True) as records: count = ct.nyquist_response(sys, np.linspace(1e-3, 1e1, 1000)) - if len(records) == 0: - assert _Z(sys) == count + _P(sys) + if len(records) == 0: + # No warnings (it happens) => make sure count is correct + assert _Z(sys) == count + _P(sys) + elif len(records) == 1: + # Expected case: make sure warning is the right one + assert issubclass(records[0].category, UserWarning) + assert "encirclements does not match" in str(records[0].message) + else: + pytest.fails("multiple warnings in nyquist_response (?)") # Nyquist plot with poles on imaginary axis, omega specified, with contour sys = ct.tf([1], [1, 3, 2]) * ct.tf([1], [1, 0, 1]) From a377bdcff41e20df36ab26d92aff86ae659abbc9 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 6 Aug 2024 22:11:02 -0700 Subject: [PATCH 031/448] update MacOS, pip, OpenBLAS to fix path issue --- .github/workflows/os-blas-test-matrix.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/os-blas-test-matrix.yml b/.github/workflows/os-blas-test-matrix.yml index 0e5fd25fc..7330e79c2 100644 --- a/.github/workflows/os-blas-test-matrix.yml +++ b/.github/workflows/os-blas-test-matrix.yml @@ -71,8 +71,8 @@ jobs: unset | Generic | Apple ) ;; # Found in system OpenBLAS ) brew install openblas - echo "BLAS_ROOT=/usr/local/opt/openblas/" >> $GITHUB_ENV - echo "LAPACK_ROOT=/usr/local/opt/openblas/" >> $GITHUB_ENV + echo "LDFLAGS=-L/opt/homebrew/opt/openblas/lib" >> $GITHUB_ENV + echo "CPPFLAGS=-I/opt/homebrew/opt/openblas/include" >> $GITHUB_ENV ;; *) echo "bla_vendor option ${{ matrix.bla_vendor }} not supported" From 19a8d5ca6c85d9cb2e93eb6f3e64b70cc3cc48e4 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 7 Aug 2024 06:30:24 -0700 Subject: [PATCH 032/448] remove rendudant (and improperly implemented) Nyquist unit test --- control/tests/nyquist_test.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/control/tests/nyquist_test.py b/control/tests/nyquist_test.py index d7cc94692..e48615e03 100644 --- a/control/tests/nyquist_test.py +++ b/control/tests/nyquist_test.py @@ -144,14 +144,6 @@ def test_nyquist_basic(): else: pytest.fails("multiple warnings in nyquist_response (?)") - # Nyquist plot with poles on imaginary axis, omega specified, with contour - sys = ct.tf([1], [1, 3, 2]) * ct.tf([1], [1, 0, 1]) - with pytest.warns(UserWarning, match="does not match") as records: - count, contour = ct.nyquist_response( - sys, np.linspace(1e-3, 1e1, 1000), return_contour=True) - if len(records) == 0: - assert _Z(sys) == count + _P(sys) - # Nyquist plot with poles on imaginary axis, return contour sys = ct.tf([1], [1, 3, 2]) * ct.tf([1], [1, 0, 1]) count, contour = ct.nyquist_response(sys, return_contour=True) From f94b9cf52c468a763ff36102727e6606d860c34f Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 7 Aug 2024 18:30:28 -0700 Subject: [PATCH 033/448] update pip test wheel to checkout current branch, not main --- .github/workflows/os-blas-test-matrix.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/os-blas-test-matrix.yml b/.github/workflows/os-blas-test-matrix.yml index 7330e79c2..f8371e387 100644 --- a/.github/workflows/os-blas-test-matrix.yml +++ b/.github/workflows/os-blas-test-matrix.yml @@ -204,8 +204,6 @@ jobs: path: slycot-src - name: Checkout python-control uses: actions/checkout@v3 - with: - repository: 'python-control/python-control' - name: Setup Python uses: actions/setup-python@v4 with: From 25e9474187c9361fe2c156828da6bca283ae233d Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 8 Aug 2024 07:25:41 -0700 Subject: [PATCH 034/448] pytest.fails -> pytest.fail in nyquist_test.py --- control/tests/nyquist_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control/tests/nyquist_test.py b/control/tests/nyquist_test.py index e48615e03..73a4ed8b6 100644 --- a/control/tests/nyquist_test.py +++ b/control/tests/nyquist_test.py @@ -142,7 +142,7 @@ def test_nyquist_basic(): assert issubclass(records[0].category, UserWarning) assert "encirclements does not match" in str(records[0].message) else: - pytest.fails("multiple warnings in nyquist_response (?)") + pytest.fail("multiple warnings in nyquist_response (?)") # Nyquist plot with poles on imaginary axis, return contour sys = ct.tf([1], [1, 3, 2]) * ct.tf([1], [1, 0, 1]) From 5f6833f7d095bf5838c6aba81385c82b08de2f73 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 27 Jun 2024 22:27:08 -0700 Subject: [PATCH 035/448] speed up suptitle centering --- control/ctrlplot.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index 6d31664a0..a75d1e7e8 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -68,13 +68,11 @@ def suptitle( fig.suptitle(title, **kwargs) elif frame == 'axes': - # TODO: move common plotting params to 'ctrlplot' with plt.rc_context(rcParams): - plt.tight_layout() # Put the figure into proper layout + fig.suptitle(title, **kwargs) # Place title in center + plt.tight_layout() # Put everything into place xc, _ = _find_axes_center(fig, fig.get_axes()) - - fig.suptitle(title, x=xc, **kwargs) - plt.tight_layout() # Update the layout + fig.suptitle(title, x=xc, **kwargs) # Redraw title, centered else: raise ValueError(f"unknown frame '{frame}'") From ca61be3d7910ff6fc3cd416f7e17b8b94ac8fc58 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 27 Jun 2024 16:05:42 -0700 Subject: [PATCH 036/448] implement ControlPlot class for plotting return type --- control/ctrlplot.py | 68 ++++++++++++++++++++++- control/descfcn.py | 49 +++++++++++------ control/freqplot.py | 98 +++++++++++++++++++++++----------- control/nichols.py | 26 ++++++--- control/phaseplot.py | 26 ++++++--- control/pzmap.py | 29 ++++++---- control/rlocus.py | 32 +++++++---- control/tests/ctrlplot_test.py | 12 +++-- control/tests/descfcn_test.py | 16 ++++-- control/tests/freqplot_test.py | 82 +++++++++++++++------------- control/tests/kwargs_test.py | 10 ++-- control/tests/timeplot_test.py | 11 ++-- control/timeplot.py | 24 ++++++--- doc/conf.py | 2 +- doc/control.rst | 1 - doc/plotting.rst | 5 +- 16 files changed, 346 insertions(+), 145 deletions(-) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index a75d1e7e8..7e7fbaa1c 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -3,6 +3,7 @@ # # Collection of functions that are used by various plotting functions. +import warnings from os.path import commonprefix import matplotlib as mpl @@ -11,7 +12,7 @@ from . import config -__all__ = ['suptitle', 'get_plot_axes'] +__all__ = ['ControlPlot', 'suptitle', 'get_plot_axes'] # # Style parameters @@ -28,6 +29,66 @@ }) +# +# Control figure +# + +class ControlPlot(object): + """A class for returning control figures. + + This class is used as the return type for control plotting functions. + It contains the information required to access portions of the plot + that the user might want to adjust, as well as providing methods to + modify some of the properties of the plot. + + A control figure consists of a :class:`matplotlib.figure.Figure` with + an array of :class:`matplotlib.axes.Axes`. Each axes in the figure has + a number of lines that repreesnt the data for the plot. There may also + be a legend present in one or more of the axes. + + Attributes + ---------- + lines : array of list of :class:`matplotlib:Line2D` + Array of Line2D objects for each line in the plot. Generally, The + shape of the array matches the subplots shape and the value of the + array is a list of Line2D objects in that subplot. Some plotting + functions will reeturn variants of this structure, as described in + the individual documentation for the functions. + axes : 2D array of :class:`matplotlib:Axes` + Array of Axes objects for each subplot in the plot. + figure : :class:`matplotlib:Figure` + Figure on which the Axes are drawn. + legend : :class:`matplotlib:Legend` or array of :class:`matplotlib:Legend` + Legend object(s) for the plat. If more than :class:`matplotlib:Legend` + is included, this will be an array with each entry being either + None (for no legend) or a legend object. + + """ + def __init__(self, lines, axes=None, figure=None): + self.lines = lines + if axes is None: + axes = get_plot_axes(lines) + self.axes = np.atleast_2d(axes) + if figure is None: + figure = self.axes[0, 0].figure + self.figure = figure + + # Implement methods and properties to allow legacy interface (np.array) + __iter__ = lambda self: self.lines + __len__ = lambda self: len(self.lines) + def __getitem__(self, item): + warnings.warn( + "return of Line2D objects from plot function is deprecated in " + "favor of ControlPlot; use out.lines to access Line2D objects", + category=FutureWarning) + return self.lines[item] + def __setitem__(self, item, val): + self.lines[item] = val + shape = property(lambda self: self.lines.shape, None) + def reshape(self, *args): + return self.lines.reshape(*args) + + # # User functions # @@ -105,7 +166,10 @@ def get_plot_axes(line_array): """ _get_axes = np.vectorize(lambda lines: lines[0].axes) - return _get_axes(line_array) + if isinstance(line_array, ControlPlot): + return _get_axes(line_array.lines) + else: + return _get_axes(line_array) # # Utility functions diff --git a/control/descfcn.py b/control/descfcn.py index f52b43a2c..66595fad1 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -13,13 +13,15 @@ """ import math -import numpy as np +from warnings import warn + import matplotlib.pyplot as plt +import numpy as np import scipy -from warnings import warn -from .freqplot import nyquist_response from . import config +from .ctrlplot import ControlPlot +from .freqplot import nyquist_response __all__ = ['describing_function', 'describing_function_plot', 'describing_function_response', 'DescribingFunctionResponse', @@ -399,7 +401,7 @@ def describing_function_plot( Parameters ---------- - data : :class:`~control.DescribingFunctionData` + data : :class:`~control.DescribingFunctionResponse` A describing function response data object created by :func:`~control.describing_function_response`. H : LTI system @@ -424,12 +426,23 @@ def describing_function_plot( Returns ------- - lines : 1D array of Line2D - Arrray of Line2D objects for each line in the plot. The first - element of the array is a list of lines (typically only one) for - the Nyquist plot of the linear I/O styem. The second element of - the array is a list of lines (typically only one) for the - describing function curve. + cplt : :class:`ControlPlot` object + Object containing the data that were plotted: + + * cplt.lines: Array of :class:`matplotlib.lines.Line2D` objects + for each line in the plot. The first element of the array is a + list of lines (typically only one) for the Nyquist plot of the + linear I/O system. The second element of the array is a list + of lines (typically only one) for the describing function + curve. + + * cplt.axes: 2D array of :class:`matplotlib.axes.Axes` for the plot. + + * cplt.figure: :class:`matplotlib.figure.Figure` containing the plot. + + * cplt.legend: legend object(s) contained in the plot + + See :class:`ControlPlot` for more detailed information. Examples -------- @@ -443,6 +456,7 @@ def describing_function_plot( warn_nyquist = config._process_legacy_keyword( kwargs, 'warn', 'warn_nyquist', kwargs.pop('warn_nyquist', None)) + # TODO: update to be consistent with ctrlplot use of `label` if label not in (False, None) and not isinstance(label, str): raise ValueError("label must be formatting string, False, or None") @@ -454,19 +468,22 @@ def describing_function_plot( *sysdata, refine=kwargs.pop('refine', True), warn_nyquist=warn_nyquist) elif len(sysdata) == 1: - dfresp = sysdata[0] + if not isinstance(sysdata[0], DescribingFunctionResponse): + raise TypeError("data must be DescribingFunctionResponse") + else: + dfresp = sysdata[0] else: raise TypeError("1, 3, or 4 position arguments required") # Create a list of lines for the output - out = np.empty(2, dtype=object) + lines = np.empty(2, dtype=object) # Plot the Nyquist response - out[0] = dfresp.response.plot(**kwargs)[0] + cfig = dfresp.response.plot(**kwargs) + lines[0] = cfig.lines[0] # Return Nyquist lines for first system # Add the describing function curve to the plot - lines = plt.plot(dfresp.N_vals.real, dfresp.N_vals.imag) - out[1] = lines + lines[1] = plt.plot(dfresp.N_vals.real, dfresp.N_vals.imag) # Label the intersection points if label: @@ -474,7 +491,7 @@ def describing_function_plot( # Add labels to the intersection points plt.text(pos.real, pos.imag, label % (a, omega)) - return out + return ControlPlot(lines, cfig.axes, cfig.figure) # Utility function to figure out whether two line segments intersection diff --git a/control/freqplot.py b/control/freqplot.py index 277de8a54..f3dae7ef0 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -19,7 +19,7 @@ from . import config from .bdalg import feedback -from .ctrlplot import _add_arrows_to_line2D, _ctrlplot_rcParams, \ +from .ctrlplot import ControlPlot, _add_arrows_to_line2D, _ctrlplot_rcParams, \ _find_axes_center, _get_line_labels, _make_legend_labels, \ _process_ax_keyword, _process_line_labels, _update_suptitle, suptitle from .ctrlutil import unwrap @@ -33,7 +33,7 @@ __all__ = ['bode_plot', 'NyquistResponseData', 'nyquist_response', 'nyquist_plot', 'singular_values_response', 'singular_values_plot', 'gangof4_plot', 'gangof4_response', - 'bode', 'nyquist', 'gangof4'] + 'bode', 'nyquist', 'gangof4', 'FrequencyResponseList'] # Default values for module parameter variables _freqplot_defaults = { @@ -124,10 +124,21 @@ def bode_plot( Returns ------- - lines : array of Line2D - Array of Line2D objects for each line in the plot. The shape of - the array matches the subplots shape and the value of the array is a - list of Line2D objects in that subplot. + cplt : :class:`ControlPlot` object + Object containing the data that were plotted: + + * cplt.lines: Array of :class:`matplotlib.lines.Line2D` objects + for each line in the plot. The shape of the array matches the + subplots shape and the value of the array is a list of Line2D + objects in that subplot. + + * cplt.axes: 2D array of :class:`matplotlib.axes.Axes` for the plot. + + * cplt.figure: :class:`matplotlib.figure.Figure` containing the plot. + + * cplt.legend: legend object(s) contained in the plot + + See :class:`ControlPlot` for more detailed information. Other Parameters ---------------- @@ -1008,7 +1019,7 @@ def gen_zero_centered_series(val_min, val_max, period): else: return mag_data, phase_data, omega_data - return out + return ControlPlot(out, ax_array, fig) # @@ -1483,16 +1494,27 @@ def nyquist_plot( Returns ------- - lines : array of Line2D - 2D array of Line2D objects for each line in the plot. The shape of - the array is given by (nsys, 4) where nsys is the number of systems - or Nyquist responses passed to the function. The second index - specifies the segment type: + cplt : :class:`ControlPlot` object + Object containing the data that were plotted: + + * cplt.lines: 2D array of :class:`matplotlib.lines.Line2D` + objects for each line in the plot. The shape of the array is + given by (nsys, 4) where nsys is the number of systems or + Nyquist responses passed to the function. The second index + specifies the segment type: - * lines[idx, 0]: unscaled portion of the primary curve - * lines[idx, 1]: scaled portion of the primary curve - * lines[idx, 2]: unscaled portion of the mirror curve - * lines[idx, 3]: scaled portion of the mirror curve + - lines[idx, 0]: unscaled portion of the primary curve + - lines[idx, 1]: scaled portion of the primary curve + - lines[idx, 2]: unscaled portion of the mirror curve + - lines[idx, 3]: scaled portion of the mirror curve + + * cplt.axes: 2D array of :class:`matplotlib.axes.Axes` for the plot. + + * cplt.figure: :class:`matplotlib.figure.Figure` containing the plot. + + * cplt.legend: legend object(s) contained in the plot + + See :class:`ControlPlot` for more detailed information. Other Parameters ---------------- @@ -1923,7 +1945,7 @@ def _parse_linestyle(style_name, allow_false=False): # Return counts and (optionally) the contour we used return (counts, contours) if return_contour else counts - return out + return ControlPlot(out, ax, fig) # @@ -2170,19 +2192,20 @@ def singular_values_plot( Returns ------- - legend_loc : str, optional - For plots with multiple lines, a legend will be included in the - given location. Default is 'center right'. Use False to suppress. - lines : array of Line2D - 1-D array of Line2D objects. The size of the array matches - the number of systems and the value of the array is a list of - Line2D objects for that system. - mag : ndarray (or list of ndarray if len(data) > 1)) - If plot=False, magnitude of the response (deprecated). - phase : ndarray (or list of ndarray if len(data) > 1)) - If plot=False, phase in radians of the response (deprecated). - omega : ndarray (or list of ndarray if len(data) > 1)) - If plot=False, frequency in rad/sec (deprecated). + cplt : :class:`ControlPlot` object + Object containing the data that were plotted: + + * cplt.lines: 1-D array of :class:`matplotlib.lines.Line2D` objects. + The size of the array matches the number of systems and the + value of the array is a list of Line2D objects for that system. + + * cplt.axes: 2D array of :class:`matplotlib.axes.Axes` for the plot. + + * cplt.figure: :class:`matplotlib.figure.Figure` containing the plot. + + * cplt.legend: legend object(s) contained in the plot + + See :class:`ControlPlot` for more detailed information. Other Parameters ---------------- @@ -2193,6 +2216,9 @@ def singular_values_plot( If present, replace automatically generated label(s) with the given label(s). If sysdata is a list, strings should be specified for each system. + legend_loc : str, optional + For plots with multiple lines, a legend will be included in the + given location. Default is 'center right'. Use False to supress. omega_limits : array_like of two values Set limits for plotted frequency range. If Hz=True the limits are in Hz otherwise in rad/s. Specifying ``omega`` as a list of two @@ -2213,6 +2239,16 @@ def singular_values_plot( -------- singular_values_response + Notes + ----- + 1. If plot==False, the following legacy values are returned: + * mag : ndarray (or list of ndarray if len(data) > 1)) + Magnitude of the response (deprecated). + * phase : ndarray (or list of ndarray if len(data) > 1)) + Phase in radians of the response (deprecated). + * omega : ndarray (or list of ndarray if len(data) > 1)) + Frequency in rad/sec (deprecated). + """ # Keyword processing dB = config._get_param( @@ -2363,7 +2399,7 @@ def singular_values_plot( else: return sigmas, omegas - return out + return ControlPlot(out, ax_sigma, fig) # # Utility functions diff --git a/control/nichols.py b/control/nichols.py index 78b03b315..c39f46101 100644 --- a/control/nichols.py +++ b/control/nichols.py @@ -18,7 +18,8 @@ import numpy as np from . import config -from .ctrlplot import _get_line_labels, _process_ax_keyword, suptitle +from .ctrlplot import ControlPlot, _get_line_labels, _process_ax_keyword, \ + suptitle from .ctrlutil import unwrap from .freqplot import _default_frequency_range, _freqplot_defaults from .lti import frequency_response @@ -60,10 +61,23 @@ def nichols_plot( Returns ------- - lines : array of Line2D - 1-D array of Line2D objects. The size of the array matches - the number of systems and the value of the array is a list of - Line2D objects for that system. + cplt : :class:`ControlPlot` object + Object containing the data that were plotted: + + * cplt.lines: 1D array of :class:`matplotlib.lines.Line2D` objects. + The size of the array matches the number of systems and the + value of the array is a list of Line2D objects for that system. + + * cplt.axes: 2D array of :class:`matplotlib.axes.Axes` for the plot. + + * cplt.figure: :class:`matplotlib.figure.Figure` containing the plot. + + * cplt.legend: legend object(s) contained in the plot + + See :class:`ControlPlot` for more detailed information. + + lines : array of Line2D + """ # Get parameter values grid = config._get_param('nichols', 'grid', grid, True) @@ -130,7 +144,7 @@ def nichols_plot( title = "Nichols plot for " + ", ".join(labels) suptitle(title, fig=fig, rcParams=rcParams) - return out + return ControlPlot(out, ax_nichols, fig) def _inner_extents(ax): diff --git a/control/phaseplot.py b/control/phaseplot.py index c7ccd1d1e..93f69d07e 100644 --- a/control/phaseplot.py +++ b/control/phaseplot.py @@ -36,7 +36,7 @@ from scipy.integrate import odeint from . import config -from .ctrlplot import _add_arrows_to_line2D +from .ctrlplot import ControlPlot, _add_arrows_to_line2D from .exception import ControlNotImplemented from .nlsys import NonlinearIOSystem, find_eqpt, input_output_response @@ -96,10 +96,24 @@ def phase_plane_plot( Returns ------- - out : list of list of Artists - out[0] = list of Line2D objects (streamlines and separatrices) - out[1] = Quiver object (vector field arrows) - out[2] = list of Line2D objects (equilibrium points) + cplt : :class:`ControlPlot` object + Object containing the data that were plotted: + + * cplt.lines: list of list of :class:`matplotlib.artist.Artist` + objects: + + - lines[0] = list of Line2D objects (streamlines, separatrices). + - lines[1] = Quiver object (vector field arrows). + - lines[2] = list of Line2D objects (equilibrium points). + + * cplt.axes: 2D array of :class:`matplotlib.axes.Axes` for the plot. + + * cplt.figure: :class:`matplotlib.figure.Figure` containing the plot. + + * cplt.legend: legend object(s) contained in the plot + + See :class:`ControlPlot` for more detailed information. + Other parameters ---------------- @@ -205,7 +219,7 @@ def _create_kwargs(global_kwargs, local_kwargs, **other_kwargs): ax.set_xlabel(sys.state_labels[0]) ax.set_ylabel(sys.state_labels[1]) - return out + return ControlPlot(out, ax, fig) def vectorfield( diff --git a/control/pzmap.py b/control/pzmap.py index c7082db1d..b10443f04 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -18,7 +18,7 @@ from numpy import cos, exp, imag, linspace, real, sin, sqrt from . import config -from .ctrlplot import _get_line_labels +from .ctrlplot import ControlPlot, _get_line_labels from .freqplot import _freqplot_defaults from .grid import nogrid, sgrid, zgrid from .iosys import isctime, isdtime @@ -207,14 +207,25 @@ def pole_zero_plot( Returns ------- - lines : array of list of Line2D - Array of Line2D objects for each set of markers in the plot. The - shape of the array is given by (nsys, 2) where nsys is the number - of systems or responses passed to the function. The second index - specifies the pzmap object type: + cplt : :class:`ControlPlot` object + Object containing the data that were plotted: - * lines[idx, 0]: poles - * lines[idx, 1]: zeros + * cplt.lines: Array of :class:`matplotlib.lines.Line2D` objects + for each set of markers in the plot. The shape of the array is + given by (`nsys`, 2) where `nsys` is the number of systems or + responses passed to the function. The second index specifies + the pzmap object type: + + - lines[idx, 0]: poles + - lines[idx, 1]: zeros + + * cplt.axes: 2D array of :class:`matplotlib.axes.Axes` for the plot. + + * cplt.figure: :class:`matplotlib.figure.Figure` containing the plot. + + * cplt.legend: legend object(s) contained in the plot + + See :class:`ControlPlot` for more detailed information. poles, zeros: list of arrays (legacy) If the `plot` keyword is given, the system poles and zeros @@ -489,7 +500,7 @@ def _click_dispatcher(event): else: TypeError("system lists not supported with legacy return values") - return out + return ControlPlot(out, np.asarray(axs), fig) # Utility function to find gain corresponding to a click event diff --git a/control/rlocus.py b/control/rlocus.py index dab21f4ac..62ca6ac2e 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -24,6 +24,7 @@ from numpy import array, imag, poly1d, real, vstack, zeros_like from . import config +from .ctrlplot import ControlPlot from .exception import ControlMIMONotImplemented from .iosys import isdtime from .lti import LTI @@ -134,15 +135,26 @@ def root_locus_plot( Returns ------- - lines : array of list of Line2D - Array of Line2D objects for each set of markers in the plot. The - shape of the array is given by (nsys, 3) where nsys is the number - of systems or responses passed to the function. The second index - specifies the object type: + cplt : :class:`ControlPlot` object + Object containing the data that were plotted: - * lines[idx, 0]: poles - * lines[idx, 1]: zeros - * lines[idx, 2]: loci + * cplt.lines: Array of :class:`matplotlib.lines.Line2D` objects + for each set of markers in the plot. The shape of the array is + given by (nsys, 3) where nsys is the number of systems or + responses passed to the function. The second index specifies + the object type: + + - lines[idx, 0]: poles + - lines[idx, 1]: zeros + - lines[idx, 2]: loci + + * cplt.axes: 2D array of :class:`matplotlib.axes.Axes` for the plot. + + * cplt.figure: :class:`matplotlib.figure.Figure` containing the plot. + + * cplt.legend: legend object(s) contained in the plot + + See :class:`ControlPlot` for more detailed information. roots, gains : ndarray (legacy) If the `plot` keyword is given, returns the closed-loop @@ -188,13 +200,13 @@ def root_locus_plot( return responses.loci, responses.gains # Plot the root loci - out = responses.plot(grid=grid, **kwargs) + ctrlplot = responses.plot(grid=grid, **kwargs) # Legacy processing: return locations of poles and zeros as a tuple if plot is True: return responses.loci, responses.gains - return out + return ControlPlot(ctrlplot.lines, ctrlplot.axes, ctrlplot.figure) def _default_gains(num, den, xlim, ylim): diff --git a/control/tests/ctrlplot_test.py b/control/tests/ctrlplot_test.py index 05970bdd1..87d8bb2ad 100644 --- a/control/tests/ctrlplot_test.py +++ b/control/tests/ctrlplot_test.py @@ -1,9 +1,11 @@ # ctrlplot_test.py - test out control plotting utilities # RMM, 27 Jun 2024 +import matplotlib.pyplot as plt import pytest + import control as ct -import matplotlib.pyplot as plt + @pytest.mark.usefixtures('mplcleanup') def test_rcParams(): @@ -26,8 +28,7 @@ def test_rcParams(): # Generate a figure with the new rcParams out = ct.step_response(sys).plot(rcParams=my_rcParams) - ax = out[0, 0][0].axes - fig = ax.figure + ax, fig = out.axes[0, 0], out.figure # Check to make sure new settings were used assert ax.xaxis.get_label().get_fontsize() == my_rcParams['axes.labelsize'] @@ -40,3 +41,8 @@ def test_rcParams(): assert fig._suptitle.get_fontsize() == my_rcParams['figure.titlesize'] +def test_deprecation_warning(): + sys = ct.rss(2, 2, 2) + lines = ct.step_response(sys).plot(overlay_traces=True) + with pytest.warns(FutureWarning, match="deprecated"): + assert len(lines[0, 0]) == 2 diff --git a/control/tests/descfcn_test.py b/control/tests/descfcn_test.py index ceeff1123..b253b9aef 100644 --- a/control/tests/descfcn_test.py +++ b/control/tests/descfcn_test.py @@ -7,14 +7,15 @@ """ -import pytest +import math +import matplotlib.pyplot as plt import numpy as np +import pytest + import control as ct -import math -import matplotlib.pyplot as plt -from control.descfcn import saturation_nonlinearity, \ - friction_backlash_nonlinearity, relay_hysteresis_nonlinearity +from control.descfcn import friction_backlash_nonlinearity, \ + relay_hysteresis_nonlinearity, saturation_nonlinearity # Static function via a class @@ -231,3 +232,8 @@ def test_describing_function_exceptions(): with pytest.raises(AttributeError, match="no property|unexpected keyword"): response = ct.describing_function_response(H_simple, F_saturation, amp) response.plot(unknown=None) + + # Describing function plot for non-describing function object + resp = ct.frequency_response(H_simple) + with pytest.raises(TypeError, match="data must be DescribingFunction"): + cplt = ct.describing_function_plot(resp) diff --git a/control/tests/freqplot_test.py b/control/tests/freqplot_test.py index f7105cb96..cb4aa035a 100644 --- a/control/tests/freqplot_test.py +++ b/control/tests/freqplot_test.py @@ -1,13 +1,14 @@ # freqplot_test.py - test out frequency response plots # RMM, 23 Jun 2023 -import pytest -import control as ct import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np +import pytest + +import control as ct +from control.tests.conftest import editsdefaults, slycotonly -from control.tests.conftest import slycotonly, editsdefaults pytestmark = pytest.mark.usefixtures("mplcleanup") # @@ -82,21 +83,22 @@ def test_response_plots( # Plot the frequency response plt.figure() - out = response.plot(**kwargs) + cplt = response.plot(**kwargs) # Check the shape if ovlout and ovlinp: - assert out.shape == (pltmag + pltphs, 1) + assert cplt.lines.shape == (pltmag + pltphs, 1) elif ovlout: - assert out.shape == (pltmag + pltphs, sys.ninputs) + assert cplt.lines.shape == (pltmag + pltphs, sys.ninputs) elif ovlinp: - assert out.shape == (sys.noutputs * (pltmag + pltphs), 1) + assert cplt.lines.shape == (sys.noutputs * (pltmag + pltphs), 1) else: - assert out.shape == (sys.noutputs * (pltmag + pltphs), sys.ninputs) + assert cplt.lines.shape == \ + (sys.noutputs * (pltmag + pltphs), sys.ninputs) # Make sure all of the outputs are of the right type nlines_plotted = 0 - for ax_lines in np.nditer(out, flags=["refs_ok"]): + for ax_lines in np.nditer(cplt.lines, flags=["refs_ok"]): for line in ax_lines.item() or []: assert isinstance(line, mpl.lines.Line2D) nlines_plotted += 1 @@ -124,9 +126,8 @@ def test_response_plots( assert len(ax.get_lines()) > 1 # Update the title so we can see what is going on - fig = out[0, 0][0].axes.figure ct.suptitle( - fig._suptitle._text + + cplt.figure._suptitle._text + f" [{sys.noutputs}x{sys.ninputs}, pm={pltmag}, pp={pltphs}," f" sm={shrmag}, sp={shrphs}, sf={shrfrq}]", # TODO: ", " # f"oo={ovlout}, oi={ovlinp}, ss={secsys}]", # TODO: add back @@ -417,7 +418,7 @@ def test_gangof4_trace_labels(): @pytest.mark.parametrize( "plt_fcn", [ct.bode_plot, ct.singular_values_plot, ct.nyquist_plot]) @pytest.mark.usefixtures("editsdefaults") -def test_freqplot_trace_labels(plt_fcn): +def test_freqplot_line_labels(plt_fcn): sys1 = ct.rss(2, 1, 1, name='sys1') sys2 = ct.rss(3, 1, 1, name='sys2') @@ -458,33 +459,29 @@ def test_freqplot_trace_labels(plt_fcn): assert legend[1].get_text() == 'line2' plt.close() - if plt_fcn == ct.bode_plot: - # Multi-dimensional data - sys1 = ct.rss(2, 2, 2, name='sys1') - sys2 = ct.rss(3, 2, 2, name='sys2') - - # Check out some errors first - with pytest.raises(ValueError, match="number of labels must match"): - ct.bode_plot([sys1, sys2], label=['line1']) - - with pytest.xfail(reason="need better broadcast checking on labels"): - with pytest.raises( - ValueError, match="labels must be given for each"): - ct.bode_plot(sys1, overlay_inputs=True, label=['line1']) - - # Now do things that should work - out = ct.bode_plot( - [sys1, sys2], - label=[ - [['line1', 'line1'], ['line1', 'line1']], - [['line2', 'line2'], ['line2', 'line2']], - ]) - axs = ct.get_plot_axes(out) - legend = axs[0, -1].get_legend().get_texts() - assert legend[0].get_text() == 'line1' - assert legend[1].get_text() == 'line2' - plt.close() +@pytest.mark.skip(reason="line label override not yet implemented") +@pytest.mark.parametrize("kwargs, labels", [ + ({}, ['sys1', 'sys2']), + ({'overlay_outputs': True}, [ + 'x sys1 out1 y', 'x sys1 out2 y', 'x sys2 out1 y', 'x sys2 out2 y']), +]) +def test_line_labels_bode(kwargs, labels): + # Multi-dimensional data + sys1 = ct.rss(2, 2, 2) + sys2 = ct.rss(3, 2, 2) + + # Check out some errors first + with pytest.raises(ValueError, match="number of labels must match"): + ct.bode_plot([sys1, sys2], label=['line1']) + + out = ct.bode_plot([sys1, sys2], label=labels, **kwargs) + axs = ct.get_plot_axes(out) + legend_texts = axs[0, -1].get_legend().get_texts() + for i, legend in enumerate(legend_texts): + assert legend.get_text() == labels[i] + plt.close() + @pytest.mark.parametrize( "plt_fcn", [ @@ -598,6 +595,15 @@ def test_freqplot_errors(plt_fcn): with pytest.raises(ValueError, match="invalid limits"): plt_fcn(response, omega_limits=[1e2, 1e-2]) +def test_freqresplist_unknown_kw(): + sys1 = ct.rss(2, 1, 1) + sys2 = ct.rss(2, 1, 1) + resp = ct.frequency_response([sys1, sys2]) + assert isinstance(resp, ct.FrequencyResponseList) + + with pytest.raises(AttributeError, match="unexpected keyword"): + resp.plot(unknown=True) + if __name__ == "__main__": # diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 4d252ab19..91f4ea599 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -11,13 +11,14 @@ # is a unit test that checks for unrecognized keywords. import inspect -import pytest import warnings + import matplotlib.pyplot as plt +import pytest import control import control.flatsys - +import control.tests.descfcn_test as descfcn_test # List of all of the test modules where kwarg unit tests are defined import control.tests.flatsys_test as flatsys_test import control.tests.frd_test as frd_test @@ -26,9 +27,9 @@ import control.tests.optimal_test as optimal_test import control.tests.statefbk_test as statefbk_test import control.tests.stochsys_test as stochsys_test -import control.tests.trdata_test as trdata_test import control.tests.timeplot_test as timeplot_test -import control.tests.descfcn_test as descfcn_test +import control.tests.trdata_test as trdata_test + @pytest.mark.parametrize("module, prefix", [ (control, ""), (control.flatsys, "flatsys."), @@ -300,6 +301,7 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): 'FrequencyResponseData.__init__': frd_test.TestFRD.test_unrecognized_keyword, 'FrequencyResponseData.plot': test_response_plot_kwargs, + 'FrequencyResponseList.plot': freqplot_test.test_freqresplist_unknown_kw, 'DescribingFunctionResponse.plot': descfcn_test.test_describing_function_exceptions, 'InputOutputSystem.__init__': test_unrecognized_kwargs, diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index dda5eb25c..eaa78bdff 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -1,13 +1,14 @@ # timeplot_test.py - test out time response plots # RMM, 23 Jun 2023 -import pytest -import control as ct import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np +import pytest + +import control as ct +from control.tests.conftest import mplcleanup, slycotonly -from control.tests.conftest import slycotonly, mplcleanup # Detailed test of (almost) all functionality # @@ -138,7 +139,7 @@ def test_response_plots( # Make sure all of the outputs are of the right type nlines_plotted = 0 - for ax_lines in np.nditer(out, flags=["refs_ok"]): + for ax_lines in np.nditer(out.lines, flags=["refs_ok"]): for line in ax_lines.item(): assert isinstance(line, mpl.lines.Line2D) nlines_plotted += 1 @@ -381,7 +382,7 @@ def test_linestyles(): [[[1], [0.1]], [[0.2], [1]]], [[[1, 0.6, 1], [1, 1, 1]], [[1, 0.4, 1], [1, 2, 1]]], name="MIMO") out = ct.step_response(sys_mimo).plot('k--', plot_inputs=True) - for ax in np.nditer(out, flags=["refs_ok"]): + for ax in np.nditer(out.lines, flags=["refs_ok"]): for line in ax.item(): assert line.get_color() == 'k' assert line.get_linestyle() == '--' diff --git a/control/timeplot.py b/control/timeplot.py index e9e566961..c549a3439 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -15,7 +15,8 @@ import numpy as np from . import config -from .ctrlplot import _ctrlplot_rcParams, _make_legend_labels, _update_suptitle +from .ctrlplot import ControlPlot, _ctrlplot_rcParams, _make_legend_labels, \ + _update_suptitle __all__ = ['time_response_plot', 'combine_time_responses'] @@ -89,10 +90,21 @@ def time_response_plot( Returns ------- - out : array of list of Line2D - Array of Line2D objects for each line in the plot. The shape of - the array matches the subplots shape and the value of the array is a - list of Line2D objects in that subplot. + cplt : :class:`ControlPlot` object + Object containing the data that were plotted: + + * cplt.lines: Array of :class:`matplotlib.lines.Line2D` objects + for each line in the plot. The shape of the array matches the + subplots shape and the value of the array is a list of Line2D + objects in that subplot. + + * cplt.axes: 2D array of :class:`matplotlib.axes.Axes` for the plot. + + * cplt.figure: :class:`matplotlib.figure.Figure` containing the plot. + + * cplt.legend: legend object(s) contained in the plot + + See :class:`ControlPlot` for more detailed information. Other Parameters ---------------- @@ -644,7 +656,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): _update_suptitle(fig, title, rcParams=rcParams) - return out + return ControlPlot(out, ax_array, fig) def combine_time_responses(response_list, trace_labels=None, title=None): diff --git a/doc/conf.py b/doc/conf.py index 7a45ba3f9..824f57904 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -105,7 +105,7 @@ intersphinx_mapping = \ {'scipy': ('https://docs.scipy.org/doc/scipy/reference', None), 'numpy': ('https://numpy.org/doc/stable', None), - 'matplotlib': ('https://matplotlib.org/', None), + 'matplotlib': ('https://matplotlib.org/stable/', None), } # If this is True, todo and todolist produce output, else they produce nothing. diff --git a/doc/control.rst b/doc/control.rst index 366454d42..2efa23809 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -74,7 +74,6 @@ Time domain simulation input_output_response phase_plot step_response - TimeResponseData Control system analysis ======================= diff --git a/doc/plotting.rst b/doc/plotting.rst index 2450c576b..753ad2cc4 100644 --- a/doc/plotting.rst +++ b/doc/plotting.rst @@ -484,14 +484,15 @@ returned values from plotting routines. ~control.suptitle -Response classes ----------------- +Response and plotting classes +----------------------------- The following classes are used in generating response data. .. autosummary:: :toctree: generated/ + ~control.ControlPlot ~control.DescribingFunctionResponse ~control.FrequencyResponseData ~control.FrequencyResponseList From 639ffb4406f44f24690070d5b5fe9204adee6321 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 28 Jun 2024 22:13:59 -0700 Subject: [PATCH 037/448] add storage of legend objects --- control/ctrlplot.py | 21 +++++++++++---------- control/descfcn.py | 2 -- control/freqplot.py | 23 ++++++++++++++++------- control/nichols.py | 6 ++++-- control/phaseplot.py | 2 -- control/pzmap.py | 8 +++++--- control/rlocus.py | 2 -- control/timeplot.py | 6 ++++-- 8 files changed, 40 insertions(+), 30 deletions(-) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index 7e7fbaa1c..fc1fde4ec 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -43,7 +43,7 @@ class ControlPlot(object): A control figure consists of a :class:`matplotlib.figure.Figure` with an array of :class:`matplotlib.axes.Axes`. Each axes in the figure has - a number of lines that repreesnt the data for the plot. There may also + a number of lines that represent the data for the plot. There may also be a legend present in one or more of the axes. Attributes @@ -52,19 +52,19 @@ class ControlPlot(object): Array of Line2D objects for each line in the plot. Generally, The shape of the array matches the subplots shape and the value of the array is a list of Line2D objects in that subplot. Some plotting - functions will reeturn variants of this structure, as described in + functions will return variants of this structure, as described in the individual documentation for the functions. axes : 2D array of :class:`matplotlib:Axes` Array of Axes objects for each subplot in the plot. figure : :class:`matplotlib:Figure` Figure on which the Axes are drawn. - legend : :class:`matplotlib:Legend` or array of :class:`matplotlib:Legend` - Legend object(s) for the plat. If more than :class:`matplotlib:Legend` - is included, this will be an array with each entry being either - None (for no legend) or a legend object. + legend : :class:`matplotlib:.legend.Legend` (instance or ndarray) + Legend object(s) for the plat. If more than one legend is + included, this will be an array with each entry being either None + (for no legend) or a legend object. """ - def __init__(self, lines, axes=None, figure=None): + def __init__(self, lines, axes=None, figure=None, legend=None): self.lines = lines if axes is None: axes = get_plot_axes(lines) @@ -72,6 +72,7 @@ def __init__(self, lines, axes=None, figure=None): if figure is None: figure = self.axes[0, 0].figure self.figure = figure + self.legend = legend # Implement methods and properties to allow legacy interface (np.array) __iter__ = lambda self: self.lines @@ -92,7 +93,7 @@ def reshape(self, *args): # # User functions # -# The functions below can be used by users to modify ctrl plots or get +# The functions below can be used by users to modify control plots or get # information about them. # @@ -157,7 +158,7 @@ def get_plot_axes(line_array): Returns ------- axes_array : array of list of Axes - A 2D array with elements corresponding to the Axes assocated with + A 2D array with elements corresponding to the Axes associated with the lines in `line_array`. Notes @@ -247,7 +248,7 @@ def _process_line_labels(label, ntraces, ninputs=0, noutputs=0): if isinstance(label, str): label = [label] * ntraces # single label for all traces - # Convert to an ndarray, if not done aleady + # Convert to an ndarray, if not done already try: line_labels = np.asarray(label) except ValueError: diff --git a/control/descfcn.py b/control/descfcn.py index 66595fad1..b2fd88e8d 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -440,8 +440,6 @@ def describing_function_plot( * cplt.figure: :class:`matplotlib.figure.Figure` containing the plot. - * cplt.legend: legend object(s) contained in the plot - See :class:`ControlPlot` for more detailed information. Examples diff --git a/control/freqplot.py b/control/freqplot.py index f3dae7ef0..aeee18a9d 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -988,9 +988,13 @@ def gen_zero_centered_series(val_min, val_max, period): legend_map[0, -1] = legend_loc # Create axis legends + legend_array = np.full(ax_array.shape, None, dtype=object) for i in range(nrows): for j in range(ncols): + if legend_map[i, j] is None: + continue ax = ax_array[i, j] + # Get the labels to use, removing common strings lines = [line for line in ax.get_lines() if line.get_label()[0] != '_'] @@ -999,9 +1003,10 @@ def gen_zero_centered_series(val_min, val_max, period): ignore_common=line_labels is not None) # Generate the label, if needed - if len(labels) > 1 and legend_map[i, j] != None: + if len(labels) > 1: with plt.rc_context(rcParams): - ax.legend(lines, labels, loc=legend_map[i, j]) + legend_array[i, j] = ax.legend( + lines, labels, loc=legend_map[i, j]) # # Legacy return pocessing @@ -1019,7 +1024,7 @@ def gen_zero_centered_series(val_min, val_max, period): else: return mag_data, phase_data, omega_data - return ControlPlot(out, ax_array, fig) + return ControlPlot(out, ax_array, fig, legend=legend_array) # @@ -1930,7 +1935,9 @@ def _parse_linestyle(style_name, allow_false=False): # Add legend if there is more than one system plotted if len(labels) > 1: - ax.legend(lines, labels, loc=legend_loc) + legend = ax.legend(lines, labels, loc=legend_loc) + else: + legend=None # Add the title if title is None: @@ -1945,7 +1952,7 @@ def _parse_linestyle(style_name, allow_false=False): # Return counts and (optionally) the contour we used return (counts, contours) if return_contour else counts - return ControlPlot(out, ax, fig) + return ControlPlot(out, ax, fig, legend=legend) # @@ -2385,7 +2392,9 @@ def singular_values_plot( # Add legend if there is more than one system plotted if len(labels) > 1 and legend_loc is not False: with plt.rc_context(rcParams): - ax_sigma.legend(lines, labels, loc=legend_loc) + legend = ax_sigma.legend(lines, labels, loc=legend_loc) + else: + legend = None # Add the title if title is None: @@ -2399,7 +2408,7 @@ def singular_values_plot( else: return sigmas, omegas - return ControlPlot(out, ax_sigma, fig) + return ControlPlot(out, ax_sigma, fig, legend=legend) # # Utility functions diff --git a/control/nichols.py b/control/nichols.py index c39f46101..451f790b5 100644 --- a/control/nichols.py +++ b/control/nichols.py @@ -137,14 +137,16 @@ def nichols_plot( # Add legend if there is more than one system plotted if len(labels) > 1 and legend_loc is not False: with plt.rc_context(rcParams): - ax_nichols.legend(lines, labels, loc=legend_loc) + legend = ax_nichols.legend(lines, labels, loc=legend_loc) + else: + legend = None # Add the title if title is None: title = "Nichols plot for " + ", ".join(labels) suptitle(title, fig=fig, rcParams=rcParams) - return ControlPlot(out, ax_nichols, fig) + return ControlPlot(out, ax_nichols, fig, legend=legend) def _inner_extents(ax): diff --git a/control/phaseplot.py b/control/phaseplot.py index 93f69d07e..fa5cb691a 100644 --- a/control/phaseplot.py +++ b/control/phaseplot.py @@ -110,8 +110,6 @@ def phase_plane_plot( * cplt.figure: :class:`matplotlib.figure.Figure` containing the plot. - * cplt.legend: legend object(s) contained in the plot - See :class:`ControlPlot` for more detailed information. diff --git a/control/pzmap.py b/control/pzmap.py index b10443f04..23491fe8a 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -451,13 +451,15 @@ def pole_zero_plot( line_tuples.append(handle) with plt.rc_context(freqplot_rcParams): - ax.legend( + legend = ax.legend( line_tuples, labels, loc=legend_loc, handler_map={tuple: HandlerTuple(ndivide=None)}) else: # Regular legend, with lines with plt.rc_context(freqplot_rcParams): - ax.legend(lines, labels, loc=legend_loc) + legend = ax.legend(lines, labels, loc=legend_loc) + else: + legend = None # Add the title if title is None: @@ -500,7 +502,7 @@ def _click_dispatcher(event): else: TypeError("system lists not supported with legacy return values") - return ControlPlot(out, np.asarray(axs), fig) + return ControlPlot(out, np.asarray(axs), fig, legend=legend) # Utility function to find gain corresponding to a click event diff --git a/control/rlocus.py b/control/rlocus.py index 62ca6ac2e..94c768004 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -152,8 +152,6 @@ def root_locus_plot( * cplt.figure: :class:`matplotlib.figure.Figure` containing the plot. - * cplt.legend: legend object(s) contained in the plot - See :class:`ControlPlot` for more detailed information. roots, gains : ndarray diff --git a/control/timeplot.py b/control/timeplot.py index c549a3439..11bbd1d6b 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -630,6 +630,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): show_legend = True if show_legend is None else show_legend # Create axis legends + legend_array = np.full(ax_array.shape, None, dtype=object) for i in range(nrows): for j in range(ncols): ax = ax_array[i, j] @@ -642,7 +643,8 @@ def _make_line_label(signal_index, signal_labels, trace_index): (len(labels) > 1 or show_legend) and \ legend_map[i, j] != None: with plt.rc_context(rcParams): - ax.legend(labels, loc=legend_map[i, j]) + legend_array[i, j] = ax.legend( + labels, loc=legend_map[i, j]) # # Update the plot title (= figure suptitle) @@ -656,7 +658,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): _update_suptitle(fig, title, rcParams=rcParams) - return ControlPlot(out, ax_array, fig) + return ControlPlot(out, ax_array, fig, legend=legend_map) def combine_time_responses(response_list, trace_labels=None, title=None): From acfadf0034887d853f56c1dfdc6a67018d0256e9 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 3 Jul 2024 06:50:03 -0700 Subject: [PATCH 038/448] fix bugs in legend generation for pole/zero plots --- control/ctrlplot.py | 15 +++++++-------- control/pzmap.py | 9 +++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index fc1fde4ec..e1517c38c 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -275,25 +275,24 @@ def _process_line_labels(label, ntraces, ninputs=0, noutputs=0): # Get labels for all lines in an axes def _get_line_labels(ax, use_color=True): - labels, lines = [], [] + labels_colors, lines = [], [] last_color, counter = None, 0 # label unknown systems for i, line in enumerate(ax.get_lines()): label = line.get_label() + color = line.get_color() if use_color and label.startswith("Unknown"): label = f"Unknown-{counter}" - if last_color is None: - last_color = line.get_color() - elif last_color != line.get_color(): + if last_color != color: counter += 1 - last_color = line.get_color() + last_color = color elif label[0] == '_': continue - if label not in labels: + if (label, color) not in labels_colors: lines.append(line) - labels.append(label) + labels_colors.append((label, color)) - return lines, labels + return lines, [label for label, color in labels_colors] # Utility function to make legend labels diff --git a/control/pzmap.py b/control/pzmap.py index 23491fe8a..8b1484a35 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -391,12 +391,13 @@ def pole_zero_plot( real(poles), imag(poles), marker='x', linestyle='', markeredgecolor=color, markerfacecolor=color, markersize=marker_size, markeredgewidth=marker_width, - label=label) + color=color, label=label) if len(zeros) > 0: out[idx, 1] = ax.plot( real(zeros), imag(zeros), marker='o', linestyle='', markeredgecolor=color, markerfacecolor='none', - markersize=marker_size, markeredgewidth=marker_width) + markersize=marker_size, markeredgewidth=marker_width, + color=color) # Plot the loci, if present if response.loci is not None: @@ -447,8 +448,8 @@ def pole_zero_plot( markeredgecolor=pole_line.get_markerfacecolor(), markerfacecolor='none', markersize=marker_size, markeredgewidth=marker_width) - handle = (pole_line, zero_line) - line_tuples.append(handle) + handle = (pole_line, zero_line) + line_tuples.append(handle) with plt.rc_context(freqplot_rcParams): legend = ax.legend( From 8b7d3993b322e57b8c843aa06d9755bb8bb33a12 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 4 Jul 2024 08:58:30 -0700 Subject: [PATCH 039/448] improve consistency in use of cplt as return type for plots --- control/ctrlplot.py | 2 +- control/pzmap.py | 2 +- control/rlocus.py | 4 +- control/tests/descfcn_test.py | 8 +-- control/tests/freqplot_test.py | 52 +++++++------- control/tests/nyquist_test.py | 14 ++-- control/tests/pzmap_test.py | 4 +- control/tests/rlocus_test.py | 4 +- control/tests/timeplot_test.py | 123 ++++++++++++++++----------------- control/timeplot.py | 2 +- control/timeresp.py | 19 ++--- doc/plotting.rst | 11 +-- 12 files changed, 123 insertions(+), 122 deletions(-) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index e1517c38c..6487e87c9 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -49,7 +49,7 @@ class ControlPlot(object): Attributes ---------- lines : array of list of :class:`matplotlib:Line2D` - Array of Line2D objects for each line in the plot. Generally, The + Array of Line2D objects for each line in the plot. Generally, the shape of the array matches the subplots shape and the value of the array is a list of Line2D objects in that subplot. Some plotting functions will return variants of this structure, as described in diff --git a/control/pzmap.py b/control/pzmap.py index 8b1484a35..a8417f3d8 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -503,7 +503,7 @@ def _click_dispatcher(event): else: TypeError("system lists not supported with legacy return values") - return ControlPlot(out, np.asarray(axs), fig, legend=legend) + return ControlPlot(out, ax, fig, legend=legend) # Utility function to find gain corresponding to a click event diff --git a/control/rlocus.py b/control/rlocus.py index 94c768004..4829a10e0 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -198,13 +198,13 @@ def root_locus_plot( return responses.loci, responses.gains # Plot the root loci - ctrlplot = responses.plot(grid=grid, **kwargs) + cplt = responses.plot(grid=grid, **kwargs) # Legacy processing: return locations of poles and zeros as a tuple if plot is True: return responses.loci, responses.gains - return ControlPlot(ctrlplot.lines, ctrlplot.axes, ctrlplot.figure) + return ControlPlot(cplt.lines, cplt.axes, cplt.figure) def _default_gains(num, den, xlim, ylim): diff --git a/control/tests/descfcn_test.py b/control/tests/descfcn_test.py index b253b9aef..a5f7a06c2 100644 --- a/control/tests/descfcn_test.py +++ b/control/tests/descfcn_test.py @@ -188,13 +188,13 @@ def test_describing_function_plot(): assert len(response.intersections) == 1 assert len(plt.gcf().get_axes()) == 0 # make sure there is no plot - out = response.plot() + cplt = response.plot() assert len(plt.gcf().get_axes()) == 1 # make sure there is a plot - assert len(out[0]) == 4 and len(out[1]) == 1 + assert len(cplt.lines[0]) == 4 and len(cplt.lines[1]) == 1 # Call plot directly - out = ct.describing_function_plot(H_larger, F_saturation, amp, omega) - assert len(out[0]) == 4 and len(out[1]) == 1 + cplt = ct.describing_function_plot(H_larger, F_saturation, amp, omega) + assert len(cplt.lines[0]) == 4 and len(cplt.lines[1]) == 1 def test_describing_function_exceptions(): diff --git a/control/tests/freqplot_test.py b/control/tests/freqplot_test.py index cb4aa035a..28ea0643e 100644 --- a/control/tests/freqplot_test.py +++ b/control/tests/freqplot_test.py @@ -141,8 +141,8 @@ def test_response_plots( # Use the manaul response to verify that different settings are working def test_manual_response_limits(): # Default response: limits should be the same across rows - out = manual_response.plot() - axs = ct.get_plot_axes(out) + cplt = manual_response.plot() + axs = ct.get_plot_axes(cplt) # legacy usage OK for i in range(manual_response.noutputs): for j in range(1, manual_response.ninputs): # Everything in the same row should have the same limits @@ -397,18 +397,18 @@ def test_gangof4_trace_labels(): C = ct.rss(1, 1, 1, name='C') # Make sure default labels are as expected - out = ct.gangof4_response(P1, C).plot() - out = ct.gangof4_response(P2, C).plot() - axs = ct.get_plot_axes(out) + cplt = ct.gangof4_response(P1, C).plot() + cplt = ct.gangof4_response(P2, C).plot() + axs = ct.get_plot_axes(cplt) # legacy usage OK legend = axs[0, 1].get_legend().get_texts() assert legend[0].get_text() == 'None' assert legend[1].get_text() == 'None' plt.close() # Override labels - out = ct.gangof4_response(P1, C).plot(label='xxx, line1, yyy') - out = ct.gangof4_response(P2, C).plot(label='xxx, line2, yyy') - axs = ct.get_plot_axes(out) + cplt = ct.gangof4_response(P1, C).plot(label='xxx, line1, yyy') + cplt = ct.gangof4_response(P2, C).plot(label='xxx, line2, yyy') + axs = ct.get_plot_axes(cplt) # legacy usage OK legend = axs[0, 1].get_legend().get_texts() assert legend[0].get_text() == 'xxx, line1, yyy' assert legend[1].get_text() == 'xxx, line2, yyy' @@ -426,8 +426,8 @@ def test_freqplot_line_labels(plt_fcn): ct.set_defaults('freqplot', suptitle_frame='figure') # Make sure default labels are as expected - out = plt_fcn([sys1, sys2]) - axs = ct.get_plot_axes(out) + cplt = plt_fcn([sys1, sys2]) + axs = ct.get_plot_axes(cplt) # legacy usage OK if axs.ndim == 1: legend = axs[0].get_legend().get_texts() else: @@ -437,8 +437,8 @@ def test_freqplot_line_labels(plt_fcn): plt.close() # Override labels all at once - out = plt_fcn([sys1, sys2], label=['line1', 'line2']) - axs = ct.get_plot_axes(out) + cplt = plt_fcn([sys1, sys2], label=['line1', 'line2']) + axs = ct.get_plot_axes(cplt) # legacy usage OK if axs.ndim == 1: legend = axs[0].get_legend().get_texts() else: @@ -448,9 +448,9 @@ def test_freqplot_line_labels(plt_fcn): plt.close() # Override labels one at a time - out = plt_fcn(sys1, label='line1') - out = plt_fcn(sys2, label='line2') - axs = ct.get_plot_axes(out) + cplt = plt_fcn(sys1, label='line1') + cplt = plt_fcn(sys2, label='line2') + axs = ct.get_plot_axes(cplt) # legacy usage OK if axs.ndim == 1: legend = axs[0].get_legend().get_texts() else: @@ -475,8 +475,8 @@ def test_line_labels_bode(kwargs, labels): with pytest.raises(ValueError, match="number of labels must match"): ct.bode_plot([sys1, sys2], label=['line1']) - out = ct.bode_plot([sys1, sys2], label=labels, **kwargs) - axs = ct.get_plot_axes(out) + cplt = ct.bode_plot([sys1, sys2], label=labels, **kwargs) + axs = ct.get_plot_axes(cplt) # legacy usage OK legend_texts = axs[0, -1].get_legend().get_texts() for i, legend in enumerate(legend_texts): assert legend.get_text() == labels[i] @@ -502,22 +502,22 @@ def test_freqplot_ax_keyword(plt_fcn, ninputs, noutputs): sys = ct.rss(4, ninputs, noutputs) # Create an initial figure - out1 = plt_fcn(sys) + cplt1 = plt_fcn(sys) # Draw again on the same figure, using array - axs = ct.get_plot_axes(out1) - out2 = plt_fcn(sys, ax=axs) - np.testing.assert_equal(ct.get_plot_axes(out1), ct.get_plot_axes(out2)) + axs = ct.get_plot_axes(cplt1) # legacy usage OK + cplt2 = plt_fcn(sys, ax=axs) + np.testing.assert_equal(cplt1.axes, cplt2.axes) # Pass things in as a list instead axs_list = axs.tolist() - out3 = plt_fcn(sys, ax=axs) - np.testing.assert_equal(ct.get_plot_axes(out1), ct.get_plot_axes(out3)) + cplt3 = plt_fcn(sys, ax=axs) + np.testing.assert_equal(cplt1.axes, cplt3.axes) # Flatten the list axs_list = axs.squeeze().tolist() - out3 = plt_fcn(sys, ax=axs_list) - np.testing.assert_equal(ct.get_plot_axes(out1), ct.get_plot_axes(out3)) + cplt4 = plt_fcn(sys, ax=axs_list) + np.testing.assert_equal(cplt1.axes, cplt4.axes) def test_mixed_systypes(): @@ -552,7 +552,7 @@ def test_suptitle(): sys = ct.rss(2, 2, 2) # Default location: center of axes - out = ct.bode_plot(sys) + cplt = ct.bode_plot(sys) assert plt.gcf()._suptitle._x != 0.5 # Try changing the the title diff --git a/control/tests/nyquist_test.py b/control/tests/nyquist_test.py index 73a4ed8b6..39f080cae 100644 --- a/control/tests/nyquist_test.py +++ b/control/tests/nyquist_test.py @@ -399,17 +399,17 @@ def test_linestyle_checks(): sys = ct.tf([100], [1, 1, 1]) # Set the line styles - lines = ct.nyquist_plot( + cplt = ct.nyquist_plot( sys, primary_style=[':', ':'], mirror_style=[':', ':']) - assert all([line.get_linestyle() == ':' for line in lines[0]]) + assert all([line.get_linestyle() == ':' for line in cplt.lines[0]]) # Set the line colors - lines = ct.nyquist_plot(sys, color='g') - assert all([line.get_color() == 'g' for line in lines[0]]) + cplt = ct.nyquist_plot(sys, color='g') + assert all([line.get_color() == 'g' for line in cplt.lines[0]]) # Turn off the mirror image - lines = ct.nyquist_plot(sys, mirror_style=False) - assert lines[0][2:] == [None, None] + cplt = ct.nyquist_plot(sys, mirror_style=False) + assert cplt.lines[0][2:] == [None, None] with pytest.raises(ValueError, match="invalid 'primary_style'"): ct.nyquist_plot(sys, primary_style=False) @@ -505,7 +505,7 @@ def test_nyquist_frd(): # Computing Nyquist response w/ different frequencies OK if given as a list nyqresp = ct.nyquist_response([sys1, sys2]) - out = nyqresp.plot() + cplt = nyqresp.plot() warnings.resetwarnings() diff --git a/control/tests/pzmap_test.py b/control/tests/pzmap_test.py index ce8adf6e7..04eb037ab 100644 --- a/control/tests/pzmap_test.py +++ b/control/tests/pzmap_test.py @@ -119,7 +119,7 @@ def test_pzmap_raises(): def test_pzmap_limits(): sys = ct.tf([1, 2], [1, 2, 3]) - out = ct.pole_zero_plot(sys, xlim=[-1, 1], ylim=[-1, 1]) - ax = ct.get_plot_axes(out)[0, 0] + cplt = ct.pole_zero_plot(sys, xlim=[-1, 1], ylim=[-1, 1]) + ax = cplt.axes[0, 0] assert ax.get_xlim() == (-1, 1) assert ax.get_ylim() == (-1, 1) diff --git a/control/tests/rlocus_test.py b/control/tests/rlocus_test.py index 15eb67d97..ae5b21e60 100644 --- a/control/tests/rlocus_test.py +++ b/control/tests/rlocus_test.py @@ -204,8 +204,8 @@ def test_root_locus_documentation(savefigs=False): # TODO: generate event in order to generate real title plt.figure() - out = ct.root_locus_map(sys).plot(initial_gain=3.506) - ax = ct.get_plot_axes(out)[0, 0] + cplt = ct.root_locus_map(sys).plot(initial_gain=3.506) + ax = cplt.axes[0, 0] freqplot_rcParams = ct.config._get_param('freqplot', 'rcParams') with plt.rc_context(freqplot_rcParams): ax.set_title( diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index eaa78bdff..81c378a57 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -124,22 +124,22 @@ def test_response_plots( pltinp is False or response.ninputs == 0 or pltinp is None and response.plot_inputs is False): with pytest.raises(ValueError, match=".* no data to plot"): - out = response.plot(**kwargs) + cplt = response.plot(**kwargs) return None elif not pltout and pltinp == 'overlay': with pytest.raises(ValueError, match="can't overlay inputs"): - out = response.plot(**kwargs) + cplt = response.plot(**kwargs) return None elif pltinp in [True, 'overlay'] and response.ninputs == 0: with pytest.raises(ValueError, match=".* but no inputs"): - out = response.plot(**kwargs) + cplt = response.plot(**kwargs) return None - out = response.plot(**kwargs) + cplt = response.plot(**kwargs) # Make sure all of the outputs are of the right type nlines_plotted = 0 - for ax_lines in np.nditer(out.lines, flags=["refs_ok"]): + for ax_lines in np.nditer(cplt.lines, flags=["refs_ok"]): for line in ax_lines.item(): assert isinstance(line, mpl.lines.Line2D) nlines_plotted += 1 @@ -180,7 +180,7 @@ def test_response_plots( assert len(ax.get_lines()) > 1 # Update the title so we can see what is going on - fig = out[0, 0][0].axes.figure + fig = cplt.figure fig.suptitle( fig._suptitle._text + f" [{sys.noutputs}x{sys.ninputs}, cs={cmbsig}, " @@ -202,38 +202,38 @@ def test_axes_setup(): sys_3x1 = ct.rss(4, 3, 1) # Two plots of the same size leaves axes unchanged - out1 = ct.step_response(sys_2x3).plot() - out2 = ct.step_response(sys_2x3b).plot() - np.testing.assert_equal(get_plot_axes(out1), get_plot_axes(out2)) + cplt1 = ct.step_response(sys_2x3).plot() + cplt2 = ct.step_response(sys_2x3b).plot() + np.testing.assert_equal(get_plot_axes(cplt1), get_plot_axes(cplt2)) plt.close() # Two plots of same net size leaves axes unchanged (unfortunately) - out1 = ct.step_response(sys_2x3).plot() - out2 = ct.step_response(sys_3x2).plot() + cplt1 = ct.step_response(sys_2x3).plot() + cplt2 = ct.step_response(sys_3x2).plot() np.testing.assert_equal( - get_plot_axes(out1).reshape(-1), get_plot_axes(out2).reshape(-1)) + get_plot_axes(cplt1).reshape(-1), get_plot_axes(cplt2).reshape(-1)) plt.close() # Plots of different shapes generate new plots - out1 = ct.step_response(sys_2x3).plot() - out2 = ct.step_response(sys_3x1).plot() - ax1_list = get_plot_axes(out1).reshape(-1).tolist() - ax2_list = get_plot_axes(out2).reshape(-1).tolist() + cplt1 = ct.step_response(sys_2x3).plot() + cplt2 = ct.step_response(sys_3x1).plot() + ax1_list = get_plot_axes(cplt1).reshape(-1).tolist() + ax2_list = get_plot_axes(cplt2).reshape(-1).tolist() for ax in ax1_list: assert ax not in ax2_list plt.close() # Passing a list of axes preserves those axes - out1 = ct.step_response(sys_2x3).plot() - out2 = ct.step_response(sys_3x1).plot() - out3 = ct.step_response(sys_2x3b).plot(ax=get_plot_axes(out1)) - np.testing.assert_equal(get_plot_axes(out1), get_plot_axes(out3)) + cplt1 = ct.step_response(sys_2x3).plot() + cplt2 = ct.step_response(sys_3x1).plot() + cplt3 = ct.step_response(sys_2x3b).plot(ax=get_plot_axes(cplt1)) + np.testing.assert_equal(get_plot_axes(cplt1), get_plot_axes(cplt3)) plt.close() # Sending an axes array of the wrong size raises exception with pytest.raises(ValueError, match="not the right shape"): - out = ct.step_response(sys_2x3).plot() - ct.step_response(sys_3x1).plot(ax=get_plot_axes(out)) + cplt = ct.step_response(sys_2x3).plot() + ct.step_response(sys_3x1).plot(ax=cplt.axes) sys_2x3 = ct.rss(4, 2, 3) sys_2x3b = ct.rss(4, 2, 3) sys_3x2 = ct.rss(4, 3, 2) @@ -352,26 +352,26 @@ def test_list_responses(resp_fcn): # Sequential plotting results in colors rotating plt.figure() - out1 = resp1.plot() - out2 = resp2.plot() - assert out1.shape == shape - assert out2.shape == shape + cplt1 = resp1.plot() + cplt2 = resp2.plot() + assert cplt1.shape == shape # legacy access (OK here) + assert cplt2.shape == shape # legacy access (OK here) for row in range(2): # just look at the outputs for col in range(shape[1]): - assert out1[row, col][0].get_color() == 'tab:blue' - assert out2[row, col][0].get_color() == 'tab:orange' + assert cplt1.lines[row, col][0].get_color() == 'tab:blue' + assert cplt2.lines[row, col][0].get_color() == 'tab:orange' plt.figure() resp_combined = resp_fcn([sys1, sys2], **kwargs) assert isinstance(resp_combined, ct.timeresp.TimeResponseList) assert resp_combined[0].time[-1] == max(resp1.time[-1], resp2.time[-1]) assert resp_combined[1].time[-1] == max(resp1.time[-1], resp2.time[-1]) - out = resp_combined.plot() - assert out.shape == shape + cplt = resp_combined.plot() + assert cplt.lines.shape == shape for row in range(2): # just look at the outputs for col in range(shape[1]): - assert out[row, col][0].get_color() == 'tab:blue' - assert out[row, col][1].get_color() == 'tab:orange' + assert cplt.lines[row, col][0].get_color() == 'tab:blue' + assert cplt.lines[row, col][1].get_color() == 'tab:orange' @slycotonly @@ -381,20 +381,20 @@ def test_linestyles(): sys_mimo = ct.tf2ss( [[[1], [0.1]], [[0.2], [1]]], [[[1, 0.6, 1], [1, 1, 1]], [[1, 0.4, 1], [1, 2, 1]]], name="MIMO") - out = ct.step_response(sys_mimo).plot('k--', plot_inputs=True) - for ax in np.nditer(out.lines, flags=["refs_ok"]): + cplt = ct.step_response(sys_mimo).plot('k--', plot_inputs=True) + for ax in np.nditer(cplt.lines, flags=["refs_ok"]): for line in ax.item(): assert line.get_color() == 'k' assert line.get_linestyle() == '--' - out = ct.step_response(sys_mimo).plot( + cplt = ct.step_response(sys_mimo).plot( plot_inputs='overlay', overlay_signals=True, overlay_traces=True, output_props=[{'color': c} for c in ['blue', 'orange']], input_props=[{'color': c} for c in ['red', 'green']], trace_props=[{'linestyle': s} for s in ['-', '--']]) - assert out.shape == (1, 1) - lines = out[0, 0] + assert cplt.lines.shape == (1, 1) + lines = cplt.lines[0, 0] assert lines[0].get_color() == 'blue' and lines[0].get_linestyle() == '-' assert lines[1].get_color() == 'orange' and lines[1].get_linestyle() == '-' assert lines[2].get_color() == 'red' and lines[2].get_linestyle() == '-' @@ -432,8 +432,8 @@ def test_timeplot_trace_labels(resp_fcn): ct.set_defaults('freqplot', suptitle_frame='figure') # Make sure default labels are as expected - out = resp_fcn([sys1, sys2], **kwargs).plot() - axs = ct.get_plot_axes(out) + cplt = resp_fcn([sys1, sys2], **kwargs).plot() + axs = ct.get_plot_axes(cplt.lines) if axs.ndim == 1: legend = axs[0].get_legend().get_texts() else: @@ -443,8 +443,8 @@ def test_timeplot_trace_labels(resp_fcn): plt.close() # Override labels all at once - out = resp_fcn([sys1, sys2], **kwargs).plot(label=['line1', 'line2']) - axs = ct.get_plot_axes(out) + cplt = resp_fcn([sys1, sys2], **kwargs).plot(label=['line1', 'line2']) + axs = ct.get_plot_axes(cplt.lines) if axs.ndim == 1: legend = axs[0].get_legend().get_texts() else: @@ -454,9 +454,9 @@ def test_timeplot_trace_labels(resp_fcn): plt.close() # Override labels one at a time - out = resp_fcn(sys1, **kwargs).plot(label='line1') - out = resp_fcn(sys2, **kwargs).plot(label='line2') - axs = ct.get_plot_axes(out) + cplt = resp_fcn(sys1, **kwargs).plot(label='line1') + cplt = resp_fcn(sys2, **kwargs).plot(label='line2') + axs = ct.get_plot_axes(cplt.lines) if axs.ndim == 1: legend = axs[0].get_legend().get_texts() else: @@ -486,10 +486,10 @@ def test_full_label_override(): labels_4d[i, j, k, 1] = "inp" + sys + trace + out # Test 4D labels - out = ct.step_response([sys1, sys2]).plot( + cplt = ct.step_response([sys1, sys2]).plot( overlay_signals=True, overlay_traces=True, plot_inputs=True, label=labels_4d) - axs = ct.get_plot_axes(out) + axs = ct.get_plot_axes(cplt.lines) assert axs.shape == (2, 1) legend_text = axs[0, 0].get_legend().get_texts() for i, label in enumerate(labels_2d[0]): @@ -499,10 +499,10 @@ def test_full_label_override(): assert legend_text[i].get_text() == label # Test 2D labels - out = ct.step_response([sys1, sys2]).plot( + cplt = ct.step_response([sys1, sys2]).plot( overlay_signals=True, overlay_traces=True, plot_inputs=True, label=labels_2d) - axs = ct.get_plot_axes(out) + axs = ct.get_plot_axes(cplt.lines) assert axs.shape == (2, 1) legend_text = axs[0, 0].get_legend().get_texts() for i, label in enumerate(labels_2d[0]): @@ -521,8 +521,8 @@ def test_relabel(): ct.step_response(sys1).plot() # Generate a new plot, which overwrites labels - out = ct.step_response(sys2).plot() - ax = ct.get_plot_axes(out) + cplt = ct.step_response(sys2).plot() + ax = ct.get_plot_axes(cplt.lines) assert ax[0, 0].get_ylabel() == 'y[0]' # Regenerate the first plot @@ -530,9 +530,8 @@ def test_relabel(): ct.step_response(sys1).plot() # Generate a new plt, without relabeling - out = ct.step_response(sys2).plot(relabel=False) - ax = ct.get_plot_axes(out) - assert ax[0, 0].get_ylabel() == 'y' + cplt = ct.step_response(sys2).plot(relabel=False) + assert cplt.axes[0, 0].get_ylabel() == 'y' def test_errors(): @@ -552,8 +551,8 @@ def test_errors(): for kw in ['input_props', 'output_props', 'trace_props']: propkw = {kw: {'color': 'green'}} with pytest.warns(UserWarning, match="ignored since fmt string"): - out = stepresp.plot('k-', **propkw) - assert out[0, 0][0].get_color() == 'k' + cplt = stepresp.plot('k-', **propkw) + assert cplt.lines[0, 0][0].get_color() == 'k' # Make sure TimeResponseLists also work stepresp = ct.step_response([sys, sys]) @@ -569,24 +568,24 @@ def test_legend_customization(): resp = ct.input_output_response(sys, timepts, U) # Generic input/output plot - out = resp.plot(overlay_signals=True) - axs = ct.get_plot_axes(out) + cplt = resp.plot(overlay_signals=True) + axs = ct.get_plot_axes(cplt.lines) assert axs[0, 0].get_legend()._loc == 7 # center right assert len(axs[0, 0].get_legend().get_texts()) == 2 assert axs[1, 0].get_legend() == None plt.close() # Hide legend - out = resp.plot(overlay_signals=True, show_legend=False) - axs = ct.get_plot_axes(out) + cplt = resp.plot(overlay_signals=True, show_legend=False) + axs = ct.get_plot_axes(cplt.lines) assert axs[0, 0].get_legend() == None assert axs[1, 0].get_legend() == None plt.close() # Put legend in both axes - out = resp.plot( + cplt = resp.plot( overlay_signals=True, legend_map=[['center left'], ['center right']]) - axs = ct.get_plot_axes(out) + axs = ct.get_plot_axes(cplt.lines) assert axs[0, 0].get_legend()._loc == 6 # center left assert len(axs[0, 0].get_legend().get_texts()) == 2 assert axs[1, 0].get_legend()._loc == 7 # center right @@ -686,7 +685,7 @@ def test_legend_customization(): plt.savefig('timeplot-mimo_ioresp-mt_tr.png') plt.figure() - out = ct.step_response(sys_mimo).plot( + cplt = ct.step_response(sys_mimo).plot( plot_inputs='overlay', overlay_signals=True, overlay_traces=True, output_props=[{'color': c} for c in ['blue', 'orange']], input_props=[{'color': c} for c in ['red', 'green']], diff --git a/control/timeplot.py b/control/timeplot.py index 11bbd1d6b..cb56aa9c4 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -454,7 +454,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): # Stop here if the user wants to control everything if not relabel: - return out + return ControlPlot(out, ax_array, fig) # # Label the axes (including trace labels) diff --git a/control/timeresp.py b/control/timeresp.py index f844b1df4..d1064eaaf 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -79,7 +79,6 @@ from scipy.linalg import eig, eigvals, matrix_balance, norm from . import config -from .ctrlplot import _update_suptitle from .exception import pandas_check from .iosys import isctime, isdtime from .timeplot import time_response_plot @@ -745,19 +744,21 @@ class TimeResponseList(list): """ def plot(self, *args, **kwargs): - out_full = None + from .ctrlplot import ControlPlot + + lines = None label = kwargs.pop('label', [None] * len(self)) for i, response in enumerate(self): - out = TimeResponseData.plot( + cplt = TimeResponseData.plot( response, *args, label=label[i], **kwargs) - if out_full is None: - out_full = out + if lines is None: + lines = cplt.lines else: # Append the lines in the new plot to previous lines - for row in range(out.shape[0]): - for col in range(out.shape[1]): - out_full[row, col] += out[row, col] - return out_full + for row in range(cplt.lines.shape[0]): + for col in range(cplt.lines.shape[1]): + lines[row, col] += cplt.lines[row, col] + return ControlPlot(lines, cplt.axes, cplt.figure) # Process signal labels diff --git a/doc/plotting.rst b/doc/plotting.rst index 753ad2cc4..bfe8f78a1 100644 --- a/doc/plotting.rst +++ b/doc/plotting.rst @@ -24,11 +24,12 @@ resulting in the following standard pattern:: response = ct.nyquist_response([sys1, sys2]) count = ct.response.count # number of encirclements of -1 - lines = ct.nyquist_plot(response) # Nyquist plot + cplt = ct.nyquist_plot(response) # Nyquist plot -The returned value `lines` provides access to the individual lines in the -generated plot, allowing various aspects of the plot to be modified to suit -specific needs. +Plotting commands return a :class:`~control.ControlPlot` object that +provides access to the individual lines in the generated plot using +`cplt.lines`, allowing various aspects of the plot to be modified to +suit specific needs. The plotting function is also available via the `plot()` method of the analysis object, allowing the following type of calls:: @@ -146,7 +147,7 @@ Additional customization is possible using the `input_props`, `output_props`, and `trace_props` keywords to set complementary line colors and styles for various signals and traces:: - out = ct.step_response(sys_mimo).plot( + cplt = ct.step_response(sys_mimo).plot( plot_inputs='overlay', overlay_signals=True, overlay_traces=True, output_props=[{'color': c} for c in ['blue', 'orange']], input_props=[{'color': c} for c in ['red', 'green']], From fb5c194fb249dec2a66c5852878e08af75e951b5 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Thu, 4 Jul 2024 09:18:27 -0700 Subject: [PATCH 040/448] add unit tests for common plotting functionality --- control/phaseplot.py | 8 ++- control/pzmap.py | 6 ++ control/tests/ctrlplot_test.py | 115 +++++++++++++++++++++++++++++++++ 3 files changed, 127 insertions(+), 2 deletions(-) diff --git a/control/phaseplot.py b/control/phaseplot.py index fa5cb691a..e29fe8d3f 100644 --- a/control/phaseplot.py +++ b/control/phaseplot.py @@ -36,7 +36,7 @@ from scipy.integrate import odeint from . import config -from .ctrlplot import ControlPlot, _add_arrows_to_line2D +from .ctrlplot import ControlPlot, _add_arrows_to_line2D, _process_ax_keyword from .exception import ControlNotImplemented from .nlsys import NonlinearIOSystem, find_eqpt, input_output_response @@ -141,6 +141,9 @@ def phase_plane_plot( pointdata = [-1, 1, -1, 1] if pointdata is None else pointdata # Create axis if needed + user_ax = ax + # TODO: make use of _process_ax_keyword + # fig, ax = _process_ax_keyword(user_ax, squeeze=True) if ax is None: fig, ax = plt.gcf(), plt.gca() else: @@ -212,7 +215,8 @@ def _create_kwargs(global_kwargs, local_kwargs, **other_kwargs): if initial_kwargs: raise TypeError("unrecognized keywords: ", str(initial_kwargs)) - if fig is not None: + # TODO: update to common code pattern + if user_ax is None: ax.set_title(f"Phase portrait for {sys.name}") ax.set_xlabel(sys.state_labels[0]) ax.set_ylabel(sys.state_labels[1]) diff --git a/control/pzmap.py b/control/pzmap.py index a8417f3d8..9eadaa319 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -315,9 +315,15 @@ def pole_zero_plot( # Initialize the figure # TODO: turn into standard utility function (from plotutil.py?) + # fig, ax = _process_ax_keyword( + # user_ax, rcParams=freqplot_rcParams, squeeze=True, create_axes=False) + # axs = [ax] if ax is not None else [] if user_ax is None: fig = plt.gcf() axs = fig.get_axes() + elif isinstance(user_ax, np.ndarray): + axs = user_ax.reshape(-1) + fig = axs[0].figure else: fig = ax.figure axs = [ax] diff --git a/control/tests/ctrlplot_test.py b/control/tests/ctrlplot_test.py index 87d8bb2ad..ebadb98c0 100644 --- a/control/tests/ctrlplot_test.py +++ b/control/tests/ctrlplot_test.py @@ -1,11 +1,126 @@ # ctrlplot_test.py - test out control plotting utilities # RMM, 27 Jun 2024 +import inspect +import warnings + import matplotlib.pyplot as plt +import numpy as np import pytest import control as ct +# List of all plotting functions +resp_plot_fcns = [ + # response function plotting function + (ct.frequency_response, ct.bode_plot), + (ct.frequency_response, ct.nichols_plot), + (ct.singular_values_response, ct.singular_values_plot), + (ct.gangof4_response, ct.gangof4_plot), + (ct.describing_function_response, ct.describing_function_plot), + (None, ct.phase_plane_plot), + (ct.pole_zero_map, ct.pole_zero_plot), + (ct.nyquist_response, ct.nyquist_plot), + (ct.root_locus_map, ct.root_locus_plot), + (ct.initial_response, ct.time_response_plot), + (ct.step_response, ct.time_response_plot), + (ct.impulse_response, ct.time_response_plot), + (ct.forced_response, ct.time_response_plot), + (ct.input_output_response, ct.time_response_plot), +] + +deprecated_fcns = [ct.phase_plot] + +# Make sure we didn't miss any plotting functions +def test_find_respplot_functions(): + # Get the list of plotting functions + plot_fcns = {respplot[1] for respplot in resp_plot_fcns} + + # Look through every object in the package + found = 0 + for name, obj in inspect.getmembers(ct): + # Skip anything that is outside of this module + if inspect.getmodule(obj) is not None and \ + not inspect.getmodule(obj).__name__.startswith('control'): + # Skip anything that isn't part of the control package + continue + + # Only look for non-deprecated functions ending in 'plot' + if not inspect.isfunction(obj) or name[-4:] != 'plot' or \ + obj in deprecated_fcns: + continue + + # Make sure that we have this on our list of functions + assert obj in plot_fcns + found += 1 + + assert found == len(plot_fcns) + + +@pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) +@pytest.mark.usefixtures('mplcleanup') +def test_plot_functions(resp_fcn, plot_fcn): + # Create some systems to use + sys1 = ct.rss(2, 1, 1, strictly_proper=True) + sys2 = ct.rss(4, 1, 1, strictly_proper=True) + + # Set up arguments + kwargs = meth_kwargs = plot_fcn_kwargs = {} + match resp_fcn, plot_fcn: + case ct.describing_function_response, _: + F = ct.descfcn.saturation_nonlinearity(1) + amp = np.linspace(1, 4, 10) + args = (sys1, F, amp) + + case ct.gangof4_response, _: + args = (sys1, sys2) + + case ct.frequency_response, ct.nichols_plot: + args = (sys1, ) + meth_kwargs = {'plot_type': 'nichols'} + + case ct.root_locus_map, ct.root_locus_plot: + args = (sys1, ) + meth_kwargs = plot_fcn_kwargs = {'interactive': False} + + case (ct.forced_response | ct.input_output_response, _): + timepts = np.linspace(1, 10) + U = np.sin(timepts) + args = (sys1, timepts, U) + + case _, _: + args = (sys1, ) + + # Call the plot through the response function + if resp_fcn is not None: + resp = resp_fcn(*args, **kwargs) + cplt1 = resp.plot(**kwargs, **meth_kwargs) + assert isinstance(cplt1, ct.ControlPlot) + + # Call the plot directly, plotting on top of previous plot + if plot_fcn not in [None, ct.time_response_plot]: + cplt2 = plot_fcn(*args, **kwargs, **plot_fcn_kwargs) + assert isinstance(cplt2, ct.ControlPlot) + + # Plot should have landed on top of previous plot + if resp_fcn is not None: + assert cplt2.figure == cplt1.figure + if plot_fcn != ct.root_locus_plot: + assert np.all(cplt2.axes == cplt1.axes) + else: + warnings.warn("test skipped for root locus plot") + assert len(cplt2.lines[0]) == len(cplt1.lines[0]) + + # Pass axes explicitly + if resp_fcn is not None: + cplt3 = resp.plot(**kwargs, **meth_kwargs, ax=cplt1.axes) + assert cplt3.figure == cplt1.figure + if plot_fcn != ct.root_locus_plot: + assert np.all(cplt3.axes == cplt1.axes) + else: + warnings.warn("test skipped for root locus plot") + assert len(cplt3.lines[0]) == len(cplt1.lines[0]) + @pytest.mark.usefixtures('mplcleanup') def test_rcParams(): From 97a523031f4e12874c8fd84c89c4509c5c5f5bdb Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 5 Jul 2024 19:15:32 -0700 Subject: [PATCH 041/448] update phaseplot to use common ax, rcParams processing --- control/phaseplot.py | 81 ++++++++++++++++++++++++++++---------------- 1 file changed, 51 insertions(+), 30 deletions(-) diff --git a/control/phaseplot.py b/control/phaseplot.py index e29fe8d3f..1a7379d8f 100644 --- a/control/phaseplot.py +++ b/control/phaseplot.py @@ -36,7 +36,8 @@ from scipy.integrate import odeint from . import config -from .ctrlplot import ControlPlot, _add_arrows_to_line2D, _process_ax_keyword +from .ctrlplot import ControlPlot, _add_arrows_to_line2D, \ + _ctrlplot_rcParams, _process_ax_keyword, suptitle from .exception import ControlNotImplemented from .nlsys import NonlinearIOSystem, find_eqpt, input_output_response @@ -44,6 +45,7 @@ # Default values for module parameter variables _phaseplot_defaults = { + 'phaseplot.rcParams': _ctrlplot_rcParams, 'phaseplot.arrows': 2, # number of arrows around curve 'phaseplot.arrow_size': 8, # pixel size for arrows 'phaseplot.separatrices_radius': 0.1 # initial radius for separatrices @@ -139,15 +141,12 @@ def phase_plane_plot( params = kwargs.get('params', None) sys = _create_system(sys, params) pointdata = [-1, 1, -1, 1] if pointdata is None else pointdata + rcParams = config._get_param( + 'timeplot', 'rcParams', kwargs, _phaseplot_defaults, pop=True) # Create axis if needed user_ax = ax - # TODO: make use of _process_ax_keyword - # fig, ax = _process_ax_keyword(user_ax, squeeze=True) - if ax is None: - fig, ax = plt.gcf(), plt.gca() - else: - fig = None # don't modify figure + fig, ax = _process_ax_keyword(user_ax, squeeze=True, rcParams=rcParams) # Create copy of kwargs for later checking to find unused arguments initial_kwargs = dict(kwargs) @@ -217,10 +216,12 @@ def _create_kwargs(global_kwargs, local_kwargs, **other_kwargs): # TODO: update to common code pattern if user_ax is None: - ax.set_title(f"Phase portrait for {sys.name}") - ax.set_xlabel(sys.state_labels[0]) - ax.set_ylabel(sys.state_labels[1]) + with plt.rc_context(rcParams): + suptitle(f"Phase portrait for {sys.name}") + ax.set_xlabel(sys.state_labels[0]) + ax.set_ylabel(sys.state_labels[1]) + plt.tight_layout() return ControlPlot(out, ax, fig) @@ -273,6 +274,10 @@ def vectorfield( If set to `True`, suppress warning messages in generating trajectories. """ + # Process keywords + rcParams = config._get_param( + 'timeplot', 'rcParams', kwargs, _phaseplot_defaults, pop=True) + # Get system parameters params = kwargs.pop('params', None) @@ -303,9 +308,10 @@ def vectorfield( vfdata[i, :2] = x vfdata[i, 2:] = sys._rhs(0, x, 0) - out = ax.quiver( - vfdata[:, 0], vfdata[:, 1], vfdata[:, 2], vfdata[:, 3], - angles='xy', color=color) + with plt.rc_context(rcParams): + out = ax.quiver( + vfdata[:, 0], vfdata[:, 1], vfdata[:, 2], vfdata[:, 3], + angles='xy', color=color) return out @@ -362,6 +368,10 @@ def streamlines( If set to `True`, suppress warning messages in generating trajectories. """ + # Process keywords + rcParams = config._get_param( + 'timeplot', 'rcParams', kwargs, _phaseplot_defaults, pop=True) + # Get system parameters params = kwargs.pop('params', None) @@ -411,13 +421,13 @@ def streamlines( # Plot the trajectory (if there is one) if traj.shape[1] > 1: - out.append( - ax.plot(traj[0], traj[1], color=color)) - - # Add arrows to the lines at specified intervals - _add_arrows_to_line2D( - ax, out[-1][0], arrow_pos, arrowstyle=arrow_style, dir=1) + with plt.rc_context(rcParams): + out.append( + ax.plot(traj[0], traj[1], color=color)) + # Add arrows to the lines at specified intervals + _add_arrows_to_line2D( + ax, out[-1][0], arrow_pos, arrowstyle=arrow_style, dir=1) return out @@ -464,6 +474,10 @@ def equilpoints( out : list of Line2D objects """ + # Process keywords + rcParams = config._get_param( + 'timeplot', 'rcParams', kwargs, _phaseplot_defaults, pop=True) + # Get system parameters params = kwargs.pop('params', None) @@ -491,9 +505,9 @@ def equilpoints( # Plot the equilibrium points out = [] for xeq in equilpts: - out.append( - ax.plot(xeq[0], xeq[1], marker='o', color=color)) - + with plt.rc_context(rcParams): + out.append( + ax.plot(xeq[0], xeq[1], marker='o', color=color)) return out @@ -549,6 +563,10 @@ def separatrices( If set to `True`, suppress warning messages in generating trajectories. """ + # Process keywords + rcParams = config._get_param( + 'timeplot', 'rcParams', kwargs, _phaseplot_defaults, pop=True) + # Get system parameters params = kwargs.pop('params', None) @@ -598,8 +616,9 @@ def separatrices( out = [] for i, xeq in enumerate(equilpts): # Plot the equilibrium points - out.append( - ax.plot(xeq[0], xeq[1], marker='o', color='k')) + with plt.rc_context(rcParams): + out.append( + ax.plot(xeq[0], xeq[1], marker='o', color='k')) # Figure out the linearization and eigenvectors evals, evecs = np.linalg.eig(sys.linearize(xeq, 0, params=params).A) @@ -639,14 +658,15 @@ def separatrices( # Plot the trajectory (if there is one) if traj.shape[1] > 1: - out.append(ax.plot( - traj[0], traj[1], color=color, linestyle=linestyle)) + with plt.rc_context(rcParams): + out.append(ax.plot( + traj[0], traj[1], color=color, linestyle=linestyle)) # Add arrows to the lines at specified intervals - _add_arrows_to_line2D( - ax, out[-1][0], arrow_pos, arrowstyle=arrow_style, - dir=1) - + with plt.rc_context(rcParams): + _add_arrows_to_line2D( + ax, out[-1][0], arrow_pos, arrowstyle=arrow_style, + dir=1) return out @@ -903,6 +923,7 @@ def _parse_arrow_keywords(kwargs): return arrow_pos, arrow_style +# TODO: move to ctrlplot? def _get_color(kwargs, ax=None): if 'color' in kwargs: return kwargs.pop('color') From da5be15ccd8c8ddeb0893927a2b4acc96b66cea8 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 6 Jul 2024 07:22:04 -0700 Subject: [PATCH 042/448] TRV: fix legend size in Nyquist plots --- control/freqplot.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/control/freqplot.py b/control/freqplot.py index aeee18a9d..372ffc809 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -1935,7 +1935,8 @@ def _parse_linestyle(style_name, allow_false=False): # Add legend if there is more than one system plotted if len(labels) > 1: - legend = ax.legend(lines, labels, loc=legend_loc) + with plt.rc_context(rcParams): + legend = ax.legend(lines, labels, loc=legend_loc) else: legend=None From f8180343f20b82cd7d83184111967b041c4f49cc Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 6 Jul 2024 07:22:56 -0700 Subject: [PATCH 043/448] Fix suptitle for root locus plots --- control/pzmap.py | 10 ++++++---- control/tests/rlocus_test.py | 3 +++ examples/plot_gallery.py | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/control/pzmap.py b/control/pzmap.py index 9eadaa319..396911cdb 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -18,7 +18,8 @@ from numpy import cos, exp, imag, linspace, real, sin, sqrt from . import config -from .ctrlplot import ControlPlot, _get_line_labels +from .ctrlplot import ControlPlot, suptitle, _get_line_labels, \ + _process_ax_keyword from .freqplot import _freqplot_defaults from .grid import nogrid, sgrid, zgrid from .iosys import isctime, isdtime @@ -366,6 +367,7 @@ def pole_zero_plot( # Handle color cycle manually as all root locus segments # of the same system are expected to be of the same color + # TODO: replace with common function? color_cycle = plt.rcParams['axes.prop_cycle'].by_key()['color'] color_offset = 0 if len(ax.lines) > 0: @@ -470,10 +472,10 @@ def pole_zero_plot( # Add the title if title is None: - title = "Pole/zero plot for " + ", ".join(labels) + title = ("Root locus plot for " if rlocus_plot + else "Pole/zero plot for ") + ", ".join(labels) if user_ax is None: - with plt.rc_context(freqplot_rcParams): - fig.suptitle(title) + suptitle(title) # Add dispather to handle choosing a point on the diagram if interactive: diff --git a/control/tests/rlocus_test.py b/control/tests/rlocus_test.py index ae5b21e60..efc2ce45e 100644 --- a/control/tests/rlocus_test.py +++ b/control/tests/rlocus_test.py @@ -278,6 +278,9 @@ def test_root_locus_documentation(savefigs=False): plt.figure() test_root_locus_plots( sys, grid=grid, xlim=xlim, ylim=ylim, interactive=interactive) + ct.suptitle( + f"sys={sys.name}, {grid=}, {xlim=}, {ylim=}, {interactive=}", + frame='figure') # Run tests that generate plots for the documentation test_root_locus_documentation(savefigs=True) diff --git a/examples/plot_gallery.py b/examples/plot_gallery.py index 272de3d8e..fd28d6ed9 100644 --- a/examples/plot_gallery.py +++ b/examples/plot_gallery.py @@ -125,6 +125,7 @@ def invpend_update(t, x, u, params): sys2 = ct.tf([1, 0.2], [1, 1, 3, 1, 1], name='sys2') ct.root_locus_plot([sys1, sys2], grid=True, ax=ax1) ct.root_locus_plot([sys1, sys2], grid=False, ax=ax2) + ct.suptitle("Root locus plots (w/ specified axes)") print(" -- BUG: should have 2 x 1 array of plots") # sisotool From 0103fe7eb84894230e8eebaf1f72fe8e343b2eed Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 6 Jul 2024 11:10:36 -0700 Subject: [PATCH 044/448] update root_locus_plot to use common ax processing --- control/ctrlplot.py | 90 ++++++++++++++++++++++++++++++-- control/pzmap.py | 94 +++++++++++++--------------------- control/rlocus.py | 3 -- control/tests/ctrlplot_test.py | 10 +--- control/tests/rlocus_test.py | 5 +- 5 files changed, 127 insertions(+), 75 deletions(-) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index 6487e87c9..f4e882ed9 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -3,6 +3,75 @@ # # Collection of functions that are used by various plotting functions. +# Code pattern for control system plotting functions: +# +# def name_plot(sysdata, plot=None, **kwargs): +# # Process keywords and set defaults +# ax = kwargs.pop('ax', None) +# color = kwargs.pop('color', None) +# label = kwargs.pop('label', None) +# rcParams = config._get_param( +# 'nameplot', 'rcParams', kwargs, _nameplot_defaults, pop=True) +# +# # Make sure all keyword arguments were processed (if not checked later) +# if kwargs: +# raise TypeError("unrecognized keywords: ", str(kwargs)) +# +# # Process the data (including generating responses for systems) +# sysdata = list(sysdata) +# if any([isinstance(sys, InputOutputSystem) for sys in sysdata]): +# data = name_response(sysdata) +# nrows = max([data.noutputs for data in sysdata]) +# ncols = max([data.ninputs for data in sysdata]) +# +# # Legacy processing of plot keyword +# if plot is False: +# return data.x, data.y +# +# # Figure out the shape of the plot and find/create axes +# fig, ax_array = _process_ax_keyword(ax, (nrows, ncols), rcParams) +# +# # Customize axes (curvilinear grids, shared axes, etc) +# +# # Plot the data +# lines = np.full(ax_array.shape, []) +# line_labels = _process_line_labels(label, ntraces, nrows, ncols) +# for i, j in itertools.product(range(nrows), range(ncols)): +# ax = ax_array[i, j] +# color_cycle, color_offset = _process_color_keyword(ax) +# for k in range(ntraces): +# if color is None: +# color = color_cycle[(k + color_offset) % len(color_cycle)] +# label = line_labels[k, i, j] +# lines[i, j] += ax.plot(data.x, data.y, color=color, label=label) +# +# # Customize and label the axes +# for i, j in itertools.product(range(nrows), range(ncols)): +# ax_array[i, j].set_xlabel("x label") +# ax_array[i, j].set_ylabel("y label") +# +# # Create legends +# legend_map = _process_legend_keywords(kwargs) +# for i, j in itertools.product(range(nrows), range(ncols)): +# if legend_map[i, j] is not None: +# lines = ax_array[i, j].get_lines() +# labels = _make_legend_labels(lines) +# if len(labels) > 1: +# legend_array[i, j] = ax.legend( +# lines, labels, loc=legend_map[i, j]) +# +# # Update the plot title +# sysnames = [response.sysname for response in data] +# if title is None: +# title = "Name plot for " + ", ".join(sysnames) +# _update_suptitle(fig, title, rcParams=rcParams) +# +# # Legacy processing of plot keyword +# if plot is True: +# return data +# +# return ControlPlot(lines, ax_array, fig, legend=legend_map) + import warnings from os.path import commonprefix @@ -181,7 +250,8 @@ def get_plot_axes(line_array): def _process_ax_keyword( - axs, shape=(1, 1), rcParams=None, squeeze=False, clear_text=False): + axs, shape=(1, 1), rcParams=None, squeeze=False, clear_text=False, + create_axes=True): """Utility function to process ax keyword to plotting commands. This function processes the `ax` keyword to plotting commands. If no @@ -190,6 +260,11 @@ def _process_ax_keyword( current figure and axes are returned. Otherwise a new figure is created with axes of the desired shape. + If `create_axes` is False and a new/empty figure is returned, then axs + is an array of the proper shape but None for each element. This allows + the calling function to do the actual axis creation (needed for + curvilinear grids that use the AxisArtist module). + Legacy behavior: some of the older plotting commands use a axes label to identify the proper axes for plotting. This behavior is supported through the use of the label keyword, but will only work if shape == @@ -204,14 +279,19 @@ def _process_ax_keyword( # Note: can't actually check the shape, just the total number of axes if len(axs) != np.prod(shape): with plt.rc_context(rcParams): - if len(axs) != 0: + if len(axs) != 0 and create_axes: # Create a new figure fig, axs = plt.subplots(*shape, squeeze=False) - else: + elif create_axes: # Create new axes on (empty) figure axs = fig.subplots(*shape, squeeze=False) - fig.set_layout_engine('tight') - fig.align_labels() + else: + # Create an empty array and let user create axes + axs = np.full(shape, None) + if create_axes: # if not creating axes, leave these to caller + fig.set_layout_engine('tight') + fig.align_labels() + else: # Use the existing axes, properly reshaped axs = np.asarray(axs).reshape(*shape) diff --git a/control/pzmap.py b/control/pzmap.py index 396911cdb..f3fe1d068 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -119,13 +119,6 @@ def plot(self, *args, **kwargs): and keywords. """ - # If this is a root locus plot, use rlocus defaults for grid - if self.loci is not None: - from .rlocus import _rlocus_defaults - kwargs = kwargs.copy() - kwargs['grid'] = config._get_param( - 'rlocus', 'grid', kwargs.get('grid', None), _rlocus_defaults) - return pole_zero_plot(self, *args, **kwargs) @@ -267,11 +260,10 @@ def pole_zero_plot( """ # Get parameter values - grid = config._get_param('pzmap', 'grid', grid, _pzmap_defaults) marker_size = config._get_param('pzmap', 'marker_size', marker_size, 6) marker_width = config._get_param('pzmap', 'marker_width', marker_width, 1.5) xlim_user, ylim_user = xlim, ylim - freqplot_rcParams = config._get_param( + rcParams = config._get_param( 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True, last=True) user_ax = ax @@ -315,56 +307,41 @@ def pole_zero_plot( return poles, zeros # Initialize the figure - # TODO: turn into standard utility function (from plotutil.py?) - # fig, ax = _process_ax_keyword( - # user_ax, rcParams=freqplot_rcParams, squeeze=True, create_axes=False) - # axs = [ax] if ax is not None else [] - if user_ax is None: - fig = plt.gcf() - axs = fig.get_axes() - elif isinstance(user_ax, np.ndarray): - axs = user_ax.reshape(-1) - fig = axs[0].figure - else: - fig = ax.figure - axs = [ax] - - if len(axs) > 1: - # Need to generate a new figure - fig, axs = plt.figure(), [] - - with plt.rc_context(freqplot_rcParams): - if grid and grid != 'empty': - plt.clf() - if all([isctime(dt=response.dt) for response in data]): - ax, fig = sgrid(scaling=scaling) - elif all([isdtime(dt=response.dt) for response in data]): - ax, fig = zgrid(scaling=scaling) - else: - raise ValueError( - "incompatible time bases; don't know how to grid") - # Store the limits for later use - xlim, ylim = ax.get_xlim(), ax.get_ylim() - elif len(axs) == 0: - if grid == 'empty': - # Leave off grid entirely + fig, ax = _process_ax_keyword( + user_ax, rcParams=rcParams, squeeze=True, create_axes=False) + + if ax is None: + # Determine what type of grid to use + if rlocus_plot: + from .rlocus import _rlocus_defaults + grid = config._get_param('rlocus', 'grid', grid, _rlocus_defaults) + else: + grid = config._get_param('pzmap', 'grid', grid, _pzmap_defaults) + + # Create the axes with the appropriate grid + with plt.rc_context(rcParams): + if grid and grid != 'empty': + if all([isctime(dt=response.dt) for response in data]): + ax, fig = sgrid(scaling=scaling) + elif all([isdtime(dt=response.dt) for response in data]): + ax, fig = zgrid(scaling=scaling) + else: + raise ValueError( + "incompatible time bases; don't know how to grid") + # Store the limits for later use + xlim, ylim = ax.get_xlim(), ax.get_ylim() + elif grid == 'empty': ax = plt.axes() xlim = ylim = [np.inf, -np.inf] # use data to set limits else: - # draw stability boundary; use first response timebase ax, fig = nogrid(data[0].dt, scaling=scaling) xlim, ylim = ax.get_xlim(), ax.get_ylim() - else: - # Use the existing axes and any grid that is there - ax = axs[0] - - # Store the limits for later use - xlim, ylim = ax.get_xlim(), ax.get_ylim() - - # Issue a warning if the user tried to set the grid type - if grid: - warnings.warn("axis already exists; grid keyword ignored") - + else: + # Store the limits for later use + xlim, ylim = ax.get_xlim(), ax.get_ylim() + if grid is not None: + warnings.warn("axis already exists; grid keyword ignored") + # Handle color cycle manually as all root locus segments # of the same system are expected to be of the same color # TODO: replace with common function? @@ -459,13 +436,13 @@ def pole_zero_plot( handle = (pole_line, zero_line) line_tuples.append(handle) - with plt.rc_context(freqplot_rcParams): + with plt.rc_context(rcParams): legend = ax.legend( line_tuples, labels, loc=legend_loc, handler_map={tuple: HandlerTuple(ndivide=None)}) else: # Regular legend, with lines - with plt.rc_context(freqplot_rcParams): + with plt.rc_context(rcParams): legend = ax.legend(lines, labels, loc=legend_loc) else: legend = None @@ -475,7 +452,8 @@ def pole_zero_plot( title = ("Root locus plot for " if rlocus_plot else "Pole/zero plot for ") + ", ".join(labels) if user_ax is None: - suptitle(title) + with plt.rc_context(rcParams): + fig.suptitle(title) # Add dispather to handle choosing a point on the diagram if interactive: @@ -497,7 +475,7 @@ def _click_dispatcher(event): _mark_root_locus_gain(ax, sys, K) # Display the parameters in the axes title - with plt.rc_context(freqplot_rcParams): + with plt.rc_context(rcParams): ax.set_title(_create_root_locus_label(sys, K, s)) ax.figure.canvas.draw() diff --git a/control/rlocus.py b/control/rlocus.py index 4829a10e0..a65604089 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -173,9 +173,6 @@ def root_locus_plot( for oldkey in ['kvect', 'k']: gains = config._process_legacy_keyword(kwargs, oldkey, 'gains', gains) - # Set default parameters - grid = config._get_param('rlocus', 'grid', grid, _rlocus_defaults) - if isinstance(sysdata, list) and all( [isinstance(sys, LTI) for sys in sysdata]) or \ isinstance(sysdata, LTI): diff --git a/control/tests/ctrlplot_test.py b/control/tests/ctrlplot_test.py index ebadb98c0..0fbbd25c8 100644 --- a/control/tests/ctrlplot_test.py +++ b/control/tests/ctrlplot_test.py @@ -105,20 +105,14 @@ def test_plot_functions(resp_fcn, plot_fcn): # Plot should have landed on top of previous plot if resp_fcn is not None: assert cplt2.figure == cplt1.figure - if plot_fcn != ct.root_locus_plot: - assert np.all(cplt2.axes == cplt1.axes) - else: - warnings.warn("test skipped for root locus plot") + assert np.all(cplt2.axes == cplt1.axes) assert len(cplt2.lines[0]) == len(cplt1.lines[0]) # Pass axes explicitly if resp_fcn is not None: cplt3 = resp.plot(**kwargs, **meth_kwargs, ax=cplt1.axes) assert cplt3.figure == cplt1.figure - if plot_fcn != ct.root_locus_plot: - assert np.all(cplt3.axes == cplt1.axes) - else: - warnings.warn("test skipped for root locus plot") + assert np.all(cplt3.axes == cplt1.axes) assert len(cplt3.lines[0]) == len(cplt1.lines[0]) diff --git a/control/tests/rlocus_test.py b/control/tests/rlocus_test.py index efc2ce45e..38111e98e 100644 --- a/control/tests/rlocus_test.py +++ b/control/tests/rlocus_test.py @@ -95,7 +95,7 @@ def test_root_locus_plot_grid(self, sys, grid, method): if grid == 'empty': assert n_gridlines == 0 assert not isinstance(ax, AA.Axes) - elif grid is False or method == 'pzmap' and grid is None: + elif grid is False: assert n_gridlines == 2 if sys.isctime() else 3 assert not isinstance(ax, AA.Axes) elif sys.isdtime(strict=True): @@ -174,6 +174,7 @@ def test_rlocus_default_wn(self): "sys, grid, xlim, ylim, interactive", [ (ct.tf([1], [1, 2, 1]), None, None, None, False), ]) +@pytest.mark.usefixtures("mplcleanup") def test_root_locus_plots(sys, grid, xlim, ylim, interactive): ct.root_locus_map(sys).plot( grid=grid, xlim=xlim, ylim=ylim, interactive=interactive) @@ -182,6 +183,7 @@ def test_root_locus_plots(sys, grid, xlim, ylim, interactive): # Test deprecated keywords @pytest.mark.parametrize("keyword", ["kvect", "k"]) +@pytest.mark.usefixtures("mplcleanup") def test_root_locus_legacy(keyword): sys = ct.rss(2, 1, 1) with pytest.warns(DeprecationWarning, match=f"'{keyword}' is deprecated"): @@ -189,6 +191,7 @@ def test_root_locus_legacy(keyword): # Generate plots used in documentation +@pytest.mark.usefixtures("mplcleanup") def test_root_locus_documentation(savefigs=False): plt.figure() sys = ct.tf([1, 2], [1, 2, 3], name='SISO transfer function') From 4f3d618f6f0d65442dc005bb199f951377976936 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 6 Jul 2024 16:25:16 -0700 Subject: [PATCH 045/448] implement pole_zero_subplots --- control/ctrlplot.py | 67 ++++++++++++++++++++++++++++++++++++++-- control/grid.py | 4 +-- control/sisotool.py | 2 +- examples/plot_gallery.py | 10 +++--- 4 files changed, 73 insertions(+), 10 deletions(-) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index f4e882ed9..d1f4881b1 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -72,6 +72,7 @@ # # return ControlPlot(lines, ax_array, fig, legend=legend_map) +import itertools import warnings from os.path import commonprefix @@ -81,7 +82,7 @@ from . import config -__all__ = ['ControlPlot', 'suptitle', 'get_plot_axes'] +__all__ = ['ControlPlot', 'suptitle', 'get_plot_axes', 'pole_zero_subplots'] # # Style parameters @@ -241,6 +242,69 @@ def get_plot_axes(line_array): else: return _get_axes(line_array) + +def pole_zero_subplots( + nrows, ncols, grid=None, dt=None, fig=None, scaling=None, + rcParams=None): + """Create axes for pole/zero plot. + + Parameters + ---------- + nrows, ncols : int + Number of rows and columns + grid : True, False, or 'empty', optional + Grid style to use. Can also be a list, in which case each subplot + will have a different style (columns then rows). + dt : timebase, option + Timebase for each subplot (or a list of timebases). + scaling : 'auto', 'equal', or None + Scaling to apply to the subplots. + fig : :class:`matplotlib.figure.Figure` + Figure to use for creating subplots. + + Returns + ------- + ax_array : array + 2D array of axes + + """ + from .grid import sgrid, zgrid, nogrid + from .iosys import isctime + + if rcParams is None: + rcParams = _ctrlplot_rcParams + + if fig is None: + fig = plt.gcf() + + if not isinstance(grid, list): + grid = [grid] * nrows * ncols + if not isinstance(dt, list): + dt = [dt] * nrows * ncols + + ax_array = np.full((nrows, ncols), None) + index = 0 + with plt.rc_context(rcParams): + for row, col in itertools.product(range(nrows), range(ncols)): + match grid[index], isctime(dt=dt[index]): + case 'empty', _: # empty grid + ax_array[row, col] = fig.add_subplot(nrows, ncols, index+1) + + case True, True: # continuous time grid + ax_array[row, col], _ = sgrid( + (nrows, ncols, index+1), scaling=scaling) + + case True, False: # discrete time grid + ax_array[row, col] = fig.add_subplot(nrows, ncols, index+1) + zgrid(ax=ax_array[row, col], scaling=scaling) + + case False | None, _: # no grid (just stability boundaries) + ax_array[row, col] = fig.add_subplot(nrows, ncols, index+1) + nogrid( + ax=ax_array[row, col], dt=dt[index], scaling=scaling) + index += 1 + return ax_array + # # Utility functions # @@ -248,7 +312,6 @@ def get_plot_axes(line_array): # of processing and displaying information. # - def _process_ax_keyword( axs, shape=(1, 1), rcParams=None, squeeze=False, clear_text=False, create_axes=True): diff --git a/control/grid.py b/control/grid.py index dfe8f9a3e..c2d00391b 100644 --- a/control/grid.py +++ b/control/grid.py @@ -74,7 +74,7 @@ def __call__(self, transform_xy, x1, y1, x2, y2): return lon_min, lon_max, lat_min, lat_max -def sgrid(scaling=None): +def sgrid(subplot=(1, 1, 1), scaling=None): # From matplotlib demos: # https://matplotlib.org/gallery/axisartist/demo_curvelinear_grid.html # https://matplotlib.org/gallery/axisartist/demo_floating_axis.html @@ -101,7 +101,7 @@ def sgrid(scaling=None): # Set up an axes with a specialized grid helper fig = plt.gcf() - ax = SubplotHost(fig, 1, 1, 1, grid_helper=grid_helper) + ax = SubplotHost(fig, *subplot, grid_helper=grid_helper) # make ticklabels of right invisible, and top axis visible. visible = True diff --git a/control/sisotool.py b/control/sisotool.py index aca36e2d1..a6b9d468b 100644 --- a/control/sisotool.py +++ b/control/sisotool.py @@ -136,7 +136,7 @@ def sisotool(sys, initial_gain=None, xlim_rlocus=None, ylim_rlocus=None, # ax=fig.axes[1]) ax_rlocus = fig.axes[1] root_locus_map(sys[0, 0]).plot( - xlim=xlim_rlocus, ylim=ylim_rlocus, grid=rlocus_grid, + xlim=xlim_rlocus, ylim=ylim_rlocus, initial_gain=initial_gain, ax=ax_rlocus) if rlocus_grid is False: # Need to generate grid manually, since root_locus_plot() won't diff --git a/examples/plot_gallery.py b/examples/plot_gallery.py index fd28d6ed9..d7a700c91 100644 --- a/examples/plot_gallery.py +++ b/examples/plot_gallery.py @@ -120,13 +120,13 @@ def invpend_update(t, x, u, params): # root locus with create_figure("Root locus plot") as fig: - ax1, ax2 = fig.subplots(2, 1) + ax_array = ct.pole_zero_subplots(2, 1, grid=[True, False]) + ax1, ax2 = ax_array[:, 0] sys1 = ct.tf([1, 2], [1, 2, 3], name='sys1') sys2 = ct.tf([1, 0.2], [1, 1, 3, 1, 1], name='sys2') - ct.root_locus_plot([sys1, sys2], grid=True, ax=ax1) - ct.root_locus_plot([sys1, sys2], grid=False, ax=ax2) - ct.suptitle("Root locus plots (w/ specified axes)") - print(" -- BUG: should have 2 x 1 array of plots") + ct.root_locus_plot([sys1, sys2], ax=ax1) + ct.root_locus_plot([sys1, sys2], ax=ax2) + plt.suptitle("Root locus plots (w/ specified axes)", fontsize='medium') # sisotool with create_figure("sisotool"): From 0dc4790a6d6aa86faf29c1c892e1606a866c527f Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 14 Jul 2024 10:37:57 -0700 Subject: [PATCH 046/448] update unit test for ax_processing --- control/tests/ctrlplot_test.py | 45 ++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/control/tests/ctrlplot_test.py b/control/tests/ctrlplot_test.py index 0fbbd25c8..1b70fcca7 100644 --- a/control/tests/ctrlplot_test.py +++ b/control/tests/ctrlplot_test.py @@ -59,13 +59,14 @@ def test_find_respplot_functions(): @pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) @pytest.mark.usefixtures('mplcleanup') -def test_plot_functions(resp_fcn, plot_fcn): +def test_plot_ax_processing(resp_fcn, plot_fcn): # Create some systems to use sys1 = ct.rss(2, 1, 1, strictly_proper=True) sys2 = ct.rss(4, 1, 1, strictly_proper=True) # Set up arguments kwargs = meth_kwargs = plot_fcn_kwargs = {} + get_line_color = lambda cplt: cplt.lines.reshape(-1)[0][0].get_color() match resp_fcn, plot_fcn: case ct.describing_function_response, _: F = ct.descfcn.saturation_nonlinearity(1) @@ -88,6 +89,11 @@ def test_plot_functions(resp_fcn, plot_fcn): U = np.sin(timepts) args = (sys1, timepts, U) + case None, ct.phase_plane_plot: + args = (sys1, ) + get_line_color = None + warnings.warn("ct.phase_plane_plot returns nonstandard lines") + case _, _: args = (sys1, ) @@ -95,26 +101,39 @@ def test_plot_functions(resp_fcn, plot_fcn): if resp_fcn is not None: resp = resp_fcn(*args, **kwargs) cplt1 = resp.plot(**kwargs, **meth_kwargs) - assert isinstance(cplt1, ct.ControlPlot) + else: + # No response function available; just plot the data + cplt1 = plot_fcn(*args, **kwargs, **meth_kwargs) + assert isinstance(cplt1, ct.ControlPlot) # Call the plot directly, plotting on top of previous plot - if plot_fcn not in [None, ct.time_response_plot]: + if plot_fcn == ct.time_response_plot: + # Can't call the time_response_plot() with system => reuse data + cplt2 = plot_fcn(resp, **kwargs, **plot_fcn_kwargs) + else: cplt2 = plot_fcn(*args, **kwargs, **plot_fcn_kwargs) - assert isinstance(cplt2, ct.ControlPlot) + assert isinstance(cplt2, ct.ControlPlot) - # Plot should have landed on top of previous plot - if resp_fcn is not None: - assert cplt2.figure == cplt1.figure - assert np.all(cplt2.axes == cplt1.axes) - assert len(cplt2.lines[0]) == len(cplt1.lines[0]) + # Plot should have landed on top of previous plot, in different colors + assert cplt2.figure == cplt1.figure + assert np.all(cplt2.axes == cplt1.axes) + assert len(cplt2.lines[0]) == len(cplt1.lines[0]) + if get_line_color is not None: + assert get_line_color(cplt2) != get_line_color(cplt1) # Pass axes explicitly if resp_fcn is not None: cplt3 = resp.plot(**kwargs, **meth_kwargs, ax=cplt1.axes) - assert cplt3.figure == cplt1.figure - assert np.all(cplt3.axes == cplt1.axes) - assert len(cplt3.lines[0]) == len(cplt1.lines[0]) - + else: + cplt3 = plot_fcn(*args, **kwargs, **meth_kwargs) + assert cplt3.figure == cplt1.figure + + # Plot should have landed on top of previous plot, in different colors + assert np.all(cplt3.axes == cplt1.axes) + assert len(cplt3.lines[0]) == len(cplt1.lines[0]) + if get_line_color is not None: + assert get_line_color(cplt3) != get_line_color(cplt1) + assert get_line_color(cplt3) != get_line_color(cplt2) @pytest.mark.usefixtures('mplcleanup') def test_rcParams(): From cec9e7053dfbc872c7a3890bcefed6e01194a6dc Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sun, 14 Jul 2024 19:11:44 -0700 Subject: [PATCH 047/448] update label processing to provide common functionality + unit tests --- control/ctrlplot.py | 4 +- control/descfcn.py | 10 +-- control/freqplot.py | 3 +- control/grid.py | 3 +- control/nichols.py | 16 +++-- control/pzmap.py | 41 ++++++----- control/tests/ctrlplot_test.py | 120 +++++++++++++++++++++++++++++++++ control/tests/freqplot_test.py | 33 +++++++-- control/timeplot.py | 4 +- 9 files changed, 196 insertions(+), 38 deletions(-) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index d1f4881b1..dd640c647 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -384,7 +384,7 @@ def _process_ax_keyword( # Turn label keyword into array indexed by trace, output, input # TODO: move to ctrlutil.py and update parameter names to reflect general use -def _process_line_labels(label, ntraces, ninputs=0, noutputs=0): +def _process_line_labels(label, ntraces=1, ninputs=0, noutputs=0): if label is None: return None @@ -447,7 +447,7 @@ def _make_legend_labels(labels, ignore_common=False): if last_space < 0 or ignore_common: common_prefix = '' elif last_space > 0: - common_prefix = common_prefix[:last_space] + common_prefix = common_prefix[:last_space + 2] prefix_len = len(common_prefix) # Look for a common suffix (up to a space) diff --git a/control/descfcn.py b/control/descfcn.py index b2fd88e8d..f94687a3f 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -380,7 +380,7 @@ def _cost(x): def describing_function_plot( - *sysdata, label="%5.2g @ %-5.2g", **kwargs): + *sysdata, point_label="%5.2g @ %-5.2g", label=None, **kwargs): """describing_function_plot(data, *args, **kwargs) Plot a Nyquist plot with a describing function for a nonlinear system. @@ -420,7 +420,7 @@ def describing_function_plot( If True (default), refine the location of the intersection of the Nyquist curve for the linear system and the describing function to determine the intersection point - label : str, optional + point_label : str, optional Formatting string used to label intersection points on the Nyquist plot. Defaults to "%5.2g @ %-5.2g". Set to `None` to omit labels. @@ -453,6 +453,8 @@ def describing_function_plot( # Process keywords warn_nyquist = config._process_legacy_keyword( kwargs, 'warn', 'warn_nyquist', kwargs.pop('warn_nyquist', None)) + point_label = config._process_legacy_keyword( + kwargs, 'label', 'point_label', point_label) # TODO: update to be consistent with ctrlplot use of `label` if label not in (False, None) and not isinstance(label, str): @@ -484,10 +486,10 @@ def describing_function_plot( lines[1] = plt.plot(dfresp.N_vals.real, dfresp.N_vals.imag) # Label the intersection points - if label: + if point_label: for pos, (a, omega) in zip(dfresp.positions, dfresp.intersections): # Add labels to the intersection points - plt.text(pos.real, pos.imag, label % (a, omega)) + plt.text(pos.real, pos.imag, point_label % (a, omega)) return ControlPlot(lines, cfig.axes, cfig.figure) diff --git a/control/freqplot.py b/control/freqplot.py index 372ffc809..b7f3b5d99 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -2078,7 +2078,8 @@ def gangof4_response( return FrequencyResponseData( data, omega, outputs=['y', 'u'], inputs=['r', 'd'], - title=f"Gang of Four for P={P.name}, C={C.name}", plot_phase=False) + title=f"Gang of Four for P={P.name}, C={C.name}", + sysname=f"P={P.name}, C={C.name}", plot_phase=False) def gangof4_plot( diff --git a/control/grid.py b/control/grid.py index c2d00391b..54a1940c9 100644 --- a/control/grid.py +++ b/control/grid.py @@ -104,8 +104,7 @@ def sgrid(subplot=(1, 1, 1), scaling=None): ax = SubplotHost(fig, *subplot, grid_helper=grid_helper) # make ticklabels of right invisible, and top axis visible. - visible = True - ax.axis[:].major_ticklabels.set_visible(visible) + ax.axis[:].major_ticklabels.set_visible(True) ax.axis[:].major_ticks.set_visible(False) ax.axis[:].invert_ticklabel_direction() ax.axis[:].major_ticklabels.set_color('gray') diff --git a/control/nichols.py b/control/nichols.py index 451f790b5..c7de052b9 100644 --- a/control/nichols.py +++ b/control/nichols.py @@ -19,7 +19,7 @@ from . import config from .ctrlplot import ControlPlot, _get_line_labels, _process_ax_keyword, \ - suptitle + _process_line_labels, suptitle from .ctrlutil import unwrap from .freqplot import _default_frequency_range, _freqplot_defaults from .lti import frequency_response @@ -36,7 +36,7 @@ def nichols_plot( data, omega=None, *fmt, grid=None, title=None, ax=None, - legend_loc='upper left', **kwargs): + legend_loc='upper left', label=None, **kwargs): """Nichols plot for a system. Plots a Nichols plot for the system over a (optional) frequency range. @@ -53,6 +53,10 @@ def nichols_plot( The `omega` parameter must be present (use omega=None if needed). grid : boolean, optional True if the plot should include a Nichols-chart grid. Default is True. + label : str or array-like of str + If present, replace automatically generated label(s) with given + label(s). If sysdata is a list, strings should be specified for each + system. legend_loc : str, optional For plots with multiple lines, a legend will be included in the given location. Default is 'upper left'. Use False to supress. @@ -61,7 +65,7 @@ def nichols_plot( Returns ------- - cplt : :class:`ControlPlot` object + cplt : :class:`ControlPlot` object Object containing the data that were plotted: * cplt.lines: 1D array of :class:`matplotlib.lines.Line2D` objects. @@ -81,6 +85,7 @@ def nichols_plot( """ # Get parameter values grid = config._get_param('nichols', 'grid', grid, True) + label = _process_line_labels(label) rcParams = config._get_param( 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) @@ -113,12 +118,13 @@ def nichols_plot( x = unwrap(np.degrees(phase), 360) y = 20*np.log10(mag) - # Decide on the system name + # Decide on the system name and label sysname = response.sysname if response.sysname is not None \ else f"Unknown-{idx_sys}" + label_ = sysname if label is None else label[idx] # Generate the plot - out[idx] = ax_nichols.plot(x, y, *fmt, label=sysname, **kwargs) + out[idx] = ax_nichols.plot(x, y, *fmt, label=label_, **kwargs) # Label the plot axes plt.xlabel('Phase [deg]') diff --git a/control/pzmap.py b/control/pzmap.py index f3fe1d068..fcfc72f36 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -19,7 +19,7 @@ from . import config from .ctrlplot import ControlPlot, suptitle, _get_line_labels, \ - _process_ax_keyword + _process_ax_keyword, _process_line_labels from .freqplot import _freqplot_defaults from .grid import nogrid, sgrid, zgrid from .iosys import isctime, isdtime @@ -173,7 +173,7 @@ def pole_zero_plot( data, plot=None, grid=None, title=None, marker_color=None, marker_size=None, marker_width=None, legend_loc='upper right', xlim=None, ylim=None, interactive=None, ax=None, scaling=None, - initial_gain=None, **kwargs): + initial_gain=None, label=None, **kwargs): """Plot a pole/zero map for a linear system. If the system data include root loci, a root locus diagram for the @@ -230,25 +230,30 @@ def pole_zero_plot( scaling : str or list, optional Set the type of axis scaling. Can be 'equal' (default), 'auto', or a list of the form [xmin, xmax, ymin, ymax]. - title : str, optional - Set the title of the plot. Defaults plot type and system name(s). + initial_gain : float, optional + If given, the specified system gain will be marked on the plot. + + interactive : bool, optional + Turn off interactive mode for root locus plots. + label : str or array-like of str + If present, replace automatically generated label(s) with given + label(s). If data is a list, strings should be specified for each + system. + legend_loc : str, optional + For plots with multiple lines, a legend will be included in the + given location. Default is 'center right'. Use False to supress. marker_color : str, optional Set the color of the markers used for poles and zeros. marker_size : int, optional Set the size of the markers used for poles and zeros. marker_width : int, optional Set the line width of the markers used for poles and zeros. - legend_loc : str, optional - For plots with multiple lines, a legend will be included in the - given location. Default is 'center right'. Use False to supress. + title : str, optional + Set the title of the plot. Defaults plot type and system name(s). xlim : list, optional Set the limits for the x axis. ylim : list, optional Set the limits for the y axis. - interactive : bool, optional - Turn off interactive mode for root locus plots. - initial_gain : float, optional - If given, the specified system gain will be marked on the plot. Notes ----- @@ -260,13 +265,14 @@ def pole_zero_plot( """ # Get parameter values + label = _process_line_labels(label) marker_size = config._get_param('pzmap', 'marker_size', marker_size, 6) marker_width = config._get_param('pzmap', 'marker_width', marker_width, 1.5) - xlim_user, ylim_user = xlim, ylim rcParams = config._get_param( 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True, last=True) user_ax = ax + xlim_user, ylim_user = xlim, ylim # If argument was a singleton, turn it into a tuple if not isinstance(data, (list, tuple)): @@ -371,12 +377,15 @@ def pole_zero_plot( # Plot the locations of the poles and zeros if len(poles) > 0: - label = response.sysname if response.loci is None else None + if label is None: + label_ = response.sysname if response.loci is None else None + else: + label_ = label[idx] out[idx, 0] = ax.plot( real(poles), imag(poles), marker='x', linestyle='', markeredgecolor=color, markerfacecolor=color, markersize=marker_size, markeredgewidth=marker_width, - color=color, label=label) + color=color, label=label_) if len(zeros) > 0: out[idx, 1] = ax.plot( real(zeros), imag(zeros), marker='o', linestyle='', @@ -386,10 +395,10 @@ def pole_zero_plot( # Plot the loci, if present if response.loci is not None: + label_ = response.sysname if label is None else label[idx] for locus in response.loci.transpose(): out[idx, 2] += ax.plot( - real(locus), imag(locus), color=color, - label=response.sysname) + real(locus), imag(locus), color=color, label=label_) # Compute the axis limits to use based on the response resp_xlim, resp_ylim = _compute_root_locus_limits(response) diff --git a/control/tests/ctrlplot_test.py b/control/tests/ctrlplot_test.py index 1b70fcca7..69c45492f 100644 --- a/control/tests/ctrlplot_test.py +++ b/control/tests/ctrlplot_test.py @@ -29,6 +29,7 @@ (ct.input_output_response, ct.time_response_plot), ] +nolabel_plot_fcns = [ct.describing_function_plot, ct.phase_plane_plot] deprecated_fcns = [ct.phase_plot] # Make sure we didn't miss any plotting functions @@ -135,6 +136,125 @@ def test_plot_ax_processing(resp_fcn, plot_fcn): assert get_line_color(cplt3) != get_line_color(cplt1) assert get_line_color(cplt3) != get_line_color(cplt2) + +@pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) +@pytest.mark.usefixtures('mplcleanup') +def test_plot_label_processing(resp_fcn, plot_fcn): + # Utility function to make sure legends are OK + def assert_legend(cplt, expected_texts): + # Check to make sure the labels are OK in legend + legend = None + for ax in cplt.axes.flatten(): + legend = ax.get_legend() + if legend is not None: + break + if expected_texts is None: + assert legend is None + else: + assert legend is not None + legend_texts = [entry.get_text() for entry in legend.get_texts()] + assert legend_texts == expected_texts + + # Create some systems to use + sys1 = ct.rss(2, 1, 1, strictly_proper=True, name="sys[1]") + sys1c = ct.rss(4, 1, 1, strictly_proper=True, name="sys[1]_C") + sys2 = ct.rss(4, 1, 1, strictly_proper=True, name="sys[2]") + + # Set up arguments + kwargs = meth_kwargs = plot_fcn_kwargs = {} + default_labels = ["sys[1]", "sys[2]"] + expected_labels = ["sys1_", "sys2_"] + match resp_fcn, plot_fcn: + case ct.describing_function_response, _: + F = ct.descfcn.saturation_nonlinearity(1) + amp = np.linspace(1, 4, 10) + args1 = (sys1, F, amp) + args2 = (sys2, F, amp) + + case ct.gangof4_response, _: + args1 = (sys1, sys1c) + args2 = (sys2, sys1c) + default_labels = ["P=sys[1]", "P=sys[2]"] + + case ct.frequency_response, ct.nichols_plot: + args1 = (sys1, ) + args2 = (sys2, ) + meth_kwargs = {'plot_type': 'nichols'} + + case ct.root_locus_map, ct.root_locus_plot: + args1 = (sys1, ) + args2 = (sys2, ) + meth_kwargs = plot_fcn_kwargs = {'interactive': False} + + case (ct.forced_response | ct.input_output_response, _): + timepts = np.linspace(1, 10) + U = np.sin(timepts) + args1 = (resp_fcn(sys1, timepts, U), ) + args2 = (resp_fcn(sys2, timepts, U), ) + argsc = (resp_fcn([sys1, sys2], timepts, U), ) + + case (ct.impulse_response | ct.initial_response | ct.step_response, _): + args1 = (resp_fcn(sys1), ) + args2 = (resp_fcn(sys2), ) + argsc = (resp_fcn([sys1, sys2]), ) + + case _, _: + args1 = (sys1, ) + args2 = (sys2, ) + + if plot_fcn in nolabel_plot_fcns: + pytest.skip(f"labels not implemented for {plot_fcn}") + + # Generate the first plot, with default labels + cplt1 = plot_fcn(*args1, **kwargs, **plot_fcn_kwargs) + assert isinstance(cplt1, ct.ControlPlot) + assert_legend(cplt1, None) + + # Generate second plot with default labels + cplt2 = plot_fcn(*args2, **kwargs, **plot_fcn_kwargs) + assert isinstance(cplt2, ct.ControlPlot) + assert_legend(cplt2, default_labels) + plt.close() + + # Generate both plots at the same time + if len(args1) == 1 and plot_fcn != ct.time_response_plot: + cplt = plot_fcn([*args1, *args2], **kwargs, **plot_fcn_kwargs) + assert isinstance(cplt, ct.ControlPlot) + assert_legend(cplt, default_labels) + elif len(args1) == 1 and plot_fcn == ct.time_response_plot: + # Use TimeResponseList.plot() to generate combined response + cplt = argsc[0].plot(**kwargs, **plot_fcn_kwargs) + assert isinstance(cplt, ct.ControlPlot) + assert_legend(cplt, default_labels) + plt.close() + + # Generate plots sequentially, with updated labels + cplt1 = plot_fcn( + *args1, **kwargs, **plot_fcn_kwargs, label=expected_labels[0]) + assert isinstance(cplt1, ct.ControlPlot) + assert_legend(cplt1, None) + + cplt2 = plot_fcn( + *args2, **kwargs, **plot_fcn_kwargs, label=expected_labels[1]) + assert isinstance(cplt2, ct.ControlPlot) + assert_legend(cplt2, expected_labels) + plt.close() + + # Generate both plots at the same time, with updated labels + if len(args1) == 1 and plot_fcn != ct.time_response_plot: + cplt = plot_fcn( + [*args1, *args2], **kwargs, **plot_fcn_kwargs, + label=expected_labels) + assert isinstance(cplt, ct.ControlPlot) + assert_legend(cplt, expected_labels) + elif len(args1) == 1 and plot_fcn == ct.time_response_plot: + # Use TimeResponseList.plot() to generate combined response + cplt = argsc[0].plot( + **kwargs, **plot_fcn_kwargs, label=expected_labels) + assert isinstance(cplt, ct.ControlPlot) + assert_legend(cplt, expected_labels) + + @pytest.mark.usefixtures('mplcleanup') def test_rcParams(): sys = ct.rss(2, 2, 2) diff --git a/control/tests/freqplot_test.py b/control/tests/freqplot_test.py index 28ea0643e..d157070a8 100644 --- a/control/tests/freqplot_test.py +++ b/control/tests/freqplot_test.py @@ -394,20 +394,39 @@ def _get_visible_limits(ax): def test_gangof4_trace_labels(): P1 = ct.rss(2, 1, 1, name='P1') P2 = ct.rss(3, 1, 1, name='P2') - C = ct.rss(1, 1, 1, name='C') + C1 = ct.rss(1, 1, 1, name='C1') + C2 = ct.rss(1, 1, 1, name='C2') # Make sure default labels are as expected - cplt = ct.gangof4_response(P1, C).plot() - cplt = ct.gangof4_response(P2, C).plot() + cplt = ct.gangof4_response(P1, C1).plot() + cplt = ct.gangof4_response(P2, C2).plot() axs = ct.get_plot_axes(cplt) # legacy usage OK legend = axs[0, 1].get_legend().get_texts() - assert legend[0].get_text() == 'None' - assert legend[1].get_text() == 'None' + assert legend[0].get_text() == 'P=P1, C=C1' + assert legend[1].get_text() == 'P=P2, C=C2' + plt.close() + + # Suffix truncation + cplt = ct.gangof4_response(P1, C1).plot() + cplt = ct.gangof4_response(P2, C1).plot() + axs = ct.get_plot_axes(cplt) # legacy usage OK + legend = axs[0, 1].get_legend().get_texts() + assert legend[0].get_text() == 'P=P1' + assert legend[1].get_text() == 'P=P2' + plt.close() + + # Prefix turncation + cplt = ct.gangof4_response(P1, C1).plot() + cplt = ct.gangof4_response(P1, C2).plot() + axs = ct.get_plot_axes(cplt) # legacy usage OK + legend = axs[0, 1].get_legend().get_texts() + assert legend[0].get_text() == 'C=C1' + assert legend[1].get_text() == 'C=C2' plt.close() # Override labels - cplt = ct.gangof4_response(P1, C).plot(label='xxx, line1, yyy') - cplt = ct.gangof4_response(P2, C).plot(label='xxx, line2, yyy') + cplt = ct.gangof4_response(P1, C1).plot(label='xxx, line1, yyy') + cplt = ct.gangof4_response(P2, C2).plot(label='xxx, line2, yyy') axs = ct.get_plot_axes(cplt) # legacy usage OK legend = axs[0, 1].get_legend().get_texts() assert legend[0].get_text() == 'xxx, line1, yyy' diff --git a/control/timeplot.py b/control/timeplot.py index cb56aa9c4..b572f6770 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -139,6 +139,8 @@ def time_response_plot( axis or ``legend_loc`` or ``legend_map`` have been specified. time_label : str, optional Label to use for the time axis. + trace_labels : list of str, optional + Replace the default trace labels with the given labels. trace_props : array of dicts List of line properties to use when plotting combined outputs. The default values are set by config.defaults['timeplot.trace_props']. @@ -382,7 +384,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): # # To allow repeated calls to time_response_plot() to cycle through # colors, we store an offset in the figure object that we can - # retrieve at a later date, if needed. + # retrieve in a later call, if needed. # output_offset = fig._output_offset = getattr(fig, '_output_offset', 0) input_offset = fig._input_offset = getattr(fig, '_input_offset', 0) From 89cda3d0c22d87f43d23a062e2586cc43aeee717 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Tue, 16 Jul 2024 19:27:03 -0700 Subject: [PATCH 048/448] update title processing to be uniform across _plot functions --- control/ctrlplot.py | 9 ++- control/freqplot.py | 21 +++++- control/nichols.py | 2 + control/phaseplot.py | 9 ++- control/pzmap.py | 2 +- control/tests/ctrlplot_test.py | 120 ++++++++++++++++++++++++++++++++- control/timeplot.py | 18 +++-- control/timeresp.py | 3 + 8 files changed, 169 insertions(+), 15 deletions(-) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index dd640c647..0e53a359d 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -64,7 +64,9 @@ # sysnames = [response.sysname for response in data] # if title is None: # title = "Name plot for " + ", ".join(sysnames) -# _update_suptitle(fig, title, rcParams=rcParams) +# _update_suptitle(title, fig, rcParams=rcParams) +# else +# suptitle(title, fig, rcParams=rcParams) # # # Legacy processing of plot keyword # if plot is True: @@ -159,6 +161,9 @@ def __setitem__(self, item, val): def reshape(self, *args): return self.lines.reshape(*args) + def set_plot_title(self, title, frame='axes'): + suptitle(title, fig=self.figure, frame=frame) + # # User functions @@ -467,7 +472,7 @@ def _make_legend_labels(labels, ignore_common=False): return labels -def _update_suptitle(fig, title, rcParams=None, frame='axes'): +def _update_suptitle(title, fig=None, frame='axes', rcParams=None): if fig is not None and isinstance(title, str): # Get the current title, if it exists old_title = None if fig._suptitle is None else fig._suptitle._text diff --git a/control/freqplot.py b/control/freqplot.py index b7f3b5d99..fc2cf6d0f 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -142,6 +142,12 @@ def bode_plot( Other Parameters ---------------- + ax : array of Axes + The matplotlib Axes to draw the figure on. If not specified, the + Axes for the current figure are used or, if there is no current + figure with the correct number and shape of Axes, a new figure is + created. The shape of the array must match the shape of the + plotted data. grid : bool If True, plot grid lines on gain and phase plots. Default is set by `config.defaults['freqplot.grid']`. @@ -173,6 +179,8 @@ def bode_plot( rcParams : dict Override the default parameters used for generating plots. Default is set by config.default['freqplot.rcParams']. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). wrap_phase : bool or float If wrap_phase is `False` (default), then the phase will be unwrapped so that it is continuously increasing or decreasing. If wrap_phase is @@ -948,13 +956,16 @@ def gen_zero_centered_series(val_min, val_max, period): seen = set() sysnames = [response.sysname for response in data \ if not (response.sysname in seen or seen.add(response.sysname))] + if title is None: if data[0].title is None: title = "Bode plot for " + ", ".join(sysnames) else: + # Allow data to set the title (used by gangof4) title = data[0].title - - _update_suptitle(fig, title, rcParams=rcParams, frame=suptitle_frame) + _update_suptitle(title, fig, rcParams=rcParams, frame=suptitle_frame) + else: + suptitle(title, fig=fig, rcParams=rcParams, frame=suptitle_frame) # # Create legends @@ -1603,6 +1614,8 @@ def nyquist_plot( start_marker_size : float, optional Start marker size (in display coordinates). Default value is 4 and can be set using config.defaults['nyquist.start_marker_size']. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). warn_nyquist : bool, optional If set to 'False', turn off warnings about frequencies above Nyquist. warn_encirclements : bool, optional @@ -1870,7 +1883,7 @@ def _parse_linestyle(style_name, allow_false=False): # Display the unit circle, to read gain crossover frequency if unit_circle: plt.plot(cos, sin, **config.defaults['nyquist.circle_style']) - + # Draw circles for given magnitudes of sensitivity if ms_circles is not None: for ms in ms_circles: @@ -2243,6 +2256,8 @@ def singular_values_plot( rcParams : dict Override the default parameters used for generating plots. Default is set up config.default['freqplot.rcParams']. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). See Also -------- diff --git a/control/nichols.py b/control/nichols.py index c7de052b9..75199a8b6 100644 --- a/control/nichols.py +++ b/control/nichols.py @@ -60,6 +60,8 @@ def nichols_plot( legend_loc : str, optional For plots with multiple lines, a legend will be included in the given location. Default is 'upper left'. Use False to supress. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). **kwargs : :func:`matplotlib.pyplot.plot` keyword properties, optional Additional keywords passed to `matplotlib` to specify line properties. diff --git a/control/phaseplot.py b/control/phaseplot.py index 1a7379d8f..488b27564 100644 --- a/control/phaseplot.py +++ b/control/phaseplot.py @@ -54,7 +54,8 @@ def phase_plane_plot( sys, pointdata=None, timedata=None, gridtype=None, gridspec=None, plot_streamlines=True, plot_vectorfield=False, plot_equilpoints=True, - plot_separatrices=True, ax=None, suppress_warnings=False, **kwargs + plot_separatrices=True, ax=None, suppress_warnings=False, title=None, + **kwargs ): """Plot phase plane diagram. @@ -135,6 +136,8 @@ def phase_plane_plot( in the dict as keywords to :func:`~control.phaseplot.separatrices`. suppress_warnings : bool, optional If set to `True`, suppress warning messages in generating trajectories. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). """ # Process arguments @@ -217,7 +220,9 @@ def _create_kwargs(global_kwargs, local_kwargs, **other_kwargs): # TODO: update to common code pattern if user_ax is None: with plt.rc_context(rcParams): - suptitle(f"Phase portrait for {sys.name}") + if title is None: + title = f"Phase portrait for {sys.name}" + suptitle(title) ax.set_xlabel(sys.state_labels[0]) ax.set_ylabel(sys.state_labels[1]) diff --git a/control/pzmap.py b/control/pzmap.py index fcfc72f36..2e35716c8 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -249,7 +249,7 @@ def pole_zero_plot( marker_width : int, optional Set the line width of the markers used for poles and zeros. title : str, optional - Set the title of the plot. Defaults plot type and system name(s). + Set the title of the plot. Defaults to plot type and system name(s). xlim : list, optional Set the limits for the x axis. ylim : list, optional diff --git a/control/tests/ctrlplot_test.py b/control/tests/ctrlplot_test.py index 69c45492f..f77ccfe91 100644 --- a/control/tests/ctrlplot_test.py +++ b/control/tests/ctrlplot_test.py @@ -128,7 +128,7 @@ def test_plot_ax_processing(resp_fcn, plot_fcn): else: cplt3 = plot_fcn(*args, **kwargs, **meth_kwargs) assert cplt3.figure == cplt1.figure - + # Plot should have landed on top of previous plot, in different colors assert np.all(cplt3.axes == cplt1.axes) assert len(cplt3.lines[0]) == len(cplt1.lines[0]) @@ -255,6 +255,124 @@ def assert_legend(cplt, expected_texts): assert_legend(cplt, expected_labels) +@pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) +@pytest.mark.usefixtures('mplcleanup') +def test_plot_title_processing(resp_fcn, plot_fcn): + # Create some systems to use + sys1 = ct.rss(2, 1, 1, strictly_proper=True, name="sys[1]") + sys1c = ct.rss(4, 1, 1, strictly_proper=True, name="sys[1]_C") + sys2 = ct.rss(2, 1, 1, strictly_proper=True, name="sys[2]") + + # Set up arguments + kwargs = meth_kwargs = plot_fcn_kwargs = {} + default_title = "sys[1], sys[2]" + expected_title = "sys1_, sys2_" + match resp_fcn, plot_fcn: + case ct.describing_function_response, _: + F = ct.descfcn.saturation_nonlinearity(1) + amp = np.linspace(1, 4, 10) + args1 = (sys1, F, amp) + args2 = (sys2, F, amp) + + case ct.gangof4_response, _: + args1 = (sys1, sys1c) + args2 = (sys2, sys1c) + default_title = "P=sys[1], C=sys[1]_C, P=sys[2], C=sys[1]_C" + + case ct.frequency_response, ct.nichols_plot: + args1 = (sys1, ) + args2 = (sys2, ) + meth_kwargs = {'plot_type': 'nichols'} + + case ct.root_locus_map, ct.root_locus_plot: + args1 = (sys1, ) + args2 = (sys2, ) + meth_kwargs = plot_fcn_kwargs = {'interactive': False} + + case (ct.forced_response | ct.input_output_response, _): + timepts = np.linspace(1, 10) + U = np.sin(timepts) + args1 = (resp_fcn(sys1, timepts, U), ) + args2 = (resp_fcn(sys2, timepts, U), ) + argsc = (resp_fcn([sys1, sys2], timepts, U), ) + + case (ct.impulse_response | ct.initial_response | ct.step_response, _): + args1 = (resp_fcn(sys1), ) + args2 = (resp_fcn(sys2), ) + argsc = (resp_fcn([sys1, sys2]), ) + + case _, _: + args1 = (sys1, ) + args2 = (sys2, ) + + # Store the expected title prefix + match resp_fcn, plot_fcn: + case _, ct.bode_plot: + title_prefix = "Bode plot for " + case _, ct.nichols_plot: + title_prefix = "Nichols plot for " + case _, ct.singular_values_plot: + title_prefix = "Singular values for " + case _, ct.gangof4_plot: + title_prefix = "Gang of Four for " + case _, ct.describing_function_plot: + title_prefix = "Nyquist plot for " + case _, ct.phase_plane_plot: + title_prefix = "Phase portrait for " + case _, ct.pole_zero_plot: + title_prefix = "Pole/zero plot for " + case _, ct.nyquist_plot: + title_prefix = "Nyquist plot for " + case _, ct.root_locus_plot: + title_prefix = "Root locus plot for " + case ct.initial_response, _: + title_prefix = "Initial response for " + case ct.step_response, _: + title_prefix = "Step response for " + case ct.impulse_response, _: + title_prefix = "Impulse response for " + case ct.forced_response, _: + title_prefix = "Forced response for " + case ct.input_output_response, _: + title_prefix = "Input/output response for " + case _: + raise RuntimeError(f"didn't recognize {resp_fnc}, {plot_fnc}") + + # Generate the first plot, with default labels + cplt1 = plot_fcn(*args1, **kwargs, **plot_fcn_kwargs) + assert cplt1.figure._suptitle._text.startswith(title_prefix) + + # Skip functions not intended for sequential calling + if plot_fcn not in nolabel_plot_fcns: + # Generate second plot with default labels + cplt2 = plot_fcn(*args2, **kwargs, **plot_fcn_kwargs) + assert cplt1.figure._suptitle._text == title_prefix + default_title + plt.close() + + # Generate both plots at the same time + if len(args1) == 1 and plot_fcn != ct.time_response_plot: + cplt = plot_fcn([*args1, *args2], **kwargs, **plot_fcn_kwargs) + assert cplt.figure._suptitle._text == title_prefix + default_title + elif len(args1) == 1 and plot_fcn == ct.time_response_plot: + # Use TimeResponseList.plot() to generate combined response + cplt = argsc[0].plot(**kwargs, **plot_fcn_kwargs) + assert cplt.figure._suptitle._text == title_prefix + default_title + plt.close() + + # Generate plots sequentially, with updated titles + cplt1 = plot_fcn( + *args1, **kwargs, **plot_fcn_kwargs, title="My first title") + cplt2 = plot_fcn( + *args2, **kwargs, **plot_fcn_kwargs, title="My new title") + assert cplt2.figure._suptitle._text == "My new title" + plt.close() + + # Update using set_plot_title + cplt2.set_plot_title("Another title") + assert cplt2.figure._suptitle._text == "Another title" + plt.close() + + @pytest.mark.usefixtures('mplcleanup') def test_rcParams(): sys = ct.rss(2, 2, 2) diff --git a/control/timeplot.py b/control/timeplot.py index b572f6770..dc7f4274c 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -15,8 +15,8 @@ import numpy as np from . import config -from .ctrlplot import ControlPlot, _ctrlplot_rcParams, _make_legend_labels, \ - _update_suptitle +from .ctrlplot import ControlPlot, suptitle, _ctrlplot_rcParams, \ + _make_legend_labels, _update_suptitle __all__ = ['time_response_plot', 'combine_time_responses'] @@ -139,6 +139,8 @@ def time_response_plot( axis or ``legend_loc`` or ``legend_map`` have been specified. time_label : str, optional Label to use for the time axis. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). trace_labels : list of str, optional Replace the default trace labels with the given labels. trace_props : array of dicts @@ -196,9 +198,6 @@ def time_response_plot( 'timeplot', 'trace_props', kwargs, _timeplot_defaults, pop=True) tprop_len = len(trace_props) - # Set the title for the data - title = data.title if title == None else title - # Determine whether or not to plot the input data (and how) if plot_inputs is None: plot_inputs = data.plot_inputs @@ -658,7 +657,11 @@ def _make_line_label(signal_index, signal_labels, trace_index): # list of systems (e.g., "Step response for sys[1], sys[2]"). # - _update_suptitle(fig, title, rcParams=rcParams) + if title is None: + title = data.title if title == None else title + _update_suptitle(title, fig, rcParams=rcParams) + else: + suptitle(title, fig, rcParams=rcParams) return ControlPlot(out, ax_array, fig, legend=legend_map) @@ -676,6 +679,9 @@ def combine_time_responses(response_list, trace_labels=None, title=None): trace_labels : list of str, optional List of labels for each trace. If not specified, trace names are taken from the input data or set to None. + title : str, optional + Set the title to use when plotting. Defaults to plot type and + system name(s). Returns ------- diff --git a/control/timeresp.py b/control/timeresp.py index d1064eaaf..f3b907620 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -192,6 +192,9 @@ class TimeResponseData: response. If ntraces is 0 (default) then the data represents a single trace with the trace index surpressed in the data. + title : str, optional + Set the title to use when plotting. + trace_labels : array of string, optional Labels to use for traces (set to sysname it ntraces is 0) From 3a8fa7a23c1795cffe7a18715a493970b377721e Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Wed, 17 Jul 2024 22:27:18 -0700 Subject: [PATCH 049/448] update plot title handling and make uniform --- control/ctrlplot.py | 97 +++++++++++++++++++-------------- control/freqplot.py | 16 ++++-- control/nichols.py | 4 +- control/phaseplot.py | 4 +- control/pzmap.py | 9 +-- control/tests/freqplot_test.py | 31 ++++++----- control/tests/kwargs_test.py | 6 +- control/tests/nyquist_test.py | 85 +++++++++++++++-------------- control/tests/phaseplot_test.py | 9 ++- control/timeplot.py | 8 +-- doc/control.rst | 1 - 11 files changed, 152 insertions(+), 118 deletions(-) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index 0e53a359d..c8b580e7b 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -64,9 +64,9 @@ # sysnames = [response.sysname for response in data] # if title is None: # title = "Name plot for " + ", ".join(sysnames) -# _update_suptitle(title, fig, rcParams=rcParams) -# else -# suptitle(title, fig, rcParams=rcParams) +# _update_plot_title(title, fig, rcParams=rcParams) +# else: +# _update_plot_title(title, fig, rcParams=rcParams, use_existing=False) # # # Legacy processing of plot keyword # if plot is True: @@ -162,7 +162,28 @@ def reshape(self, *args): return self.lines.reshape(*args) def set_plot_title(self, title, frame='axes'): - suptitle(title, fig=self.figure, frame=frame) + """Set the title for a control plot. + + This is a wrapper for the matplotlib `suptitle` function, but by + setting ``frame`` to 'axes' (default) then the title is centered on + the midpoint of the axes in the figure, rather than the center of + the figure. This usually looks better (particularly with + multi-panel plots), though it takes longer to render. + + Parameters + ---------- + title : str + Title text. + fig : Figure, optional + Matplotlib figure. Defaults to current figure. + frame : str, optional + Coordinate frame to use for centering: 'axes' (default) or 'figure'. + **kwargs : :func:`matplotlib.pyplot.suptitle` keywords, optional + Additional keywords (passed to matplotlib). + + """ + _update_plot_title( + title, fig=self.figure, frame=frame, use_existing=False) # @@ -177,42 +198,13 @@ def suptitle( title, fig=None, frame='axes', **kwargs): """Add a centered title to a figure. - This is a wrapper for the matplotlib `suptitle` function, but by - setting ``frame`` to 'axes' (default) then the title is centered on the - midpoint of the axes in the figure, rather than the center of the - figure. This usually looks better (particularly with multi-panel - plots), though it takes longer to render. - - Parameters - ---------- - title : str - Title text. - fig : Figure, optional - Matplotlib figure. Defaults to current figure. - frame : str, optional - Coordinate frame to use for centering: 'axes' (default) or 'figure'. - **kwargs : :func:`matplotlib.pyplot.suptitle` keywords, optional - Additional keywords (passed to matplotlib). + This function is deprecated. Use :func:`ControlPlot.set_plot_title`. """ - rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) - - if fig is None: - fig = plt.gcf() - - if frame == 'figure': - with plt.rc_context(rcParams): - fig.suptitle(title, **kwargs) - - elif frame == 'axes': - with plt.rc_context(rcParams): - fig.suptitle(title, **kwargs) # Place title in center - plt.tight_layout() # Put everything into place - xc, _ = _find_axes_center(fig, fig.get_axes()) - fig.suptitle(title, x=xc, **kwargs) # Redraw title, centered - - else: - raise ValueError(f"unknown frame '{frame}'") + warnings.warn( + "suptitle is deprecated; use cplt.set_plot_title", FutureWarning) + _update_plot_title( + title, fig=fig, frame=frame, use_existing=False, **kwargs) # Create vectorized function to find axes from lines @@ -472,8 +464,18 @@ def _make_legend_labels(labels, ignore_common=False): return labels -def _update_suptitle(title, fig=None, frame='axes', rcParams=None): - if fig is not None and isinstance(title, str): +def _update_plot_title( + title, fig=None, frame='axes', use_existing=True, **kwargs): + if title is False: + return + if fig is None: + fig = plt.gcf() + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) + if rcParams is None: + rcParams = _ctrlplot_rcParams + print(f"{rcParams['figure.titlesize']=}") + + if use_existing: # Get the current title, if it exists old_title = None if fig._suptitle is None else fig._suptitle._text @@ -492,8 +494,19 @@ def _update_suptitle(title, fig=None, frame='axes', rcParams=None): separator = ',' if len(common_prefix) > 0 else ';' title = old_title + separator + title[common_len:] - # Add the title - suptitle(title, fig=fig, rcParams=rcParams, frame=frame) + if frame == 'figure': + with plt.rc_context(rcParams): + fig.suptitle(title, **kwargs) + + elif frame == 'axes': + with plt.rc_context(rcParams): + fig.suptitle(title, **kwargs) # Place title in center + plt.tight_layout() # Put everything into place + xc, _ = _find_axes_center(fig, fig.get_axes()) + fig.suptitle(title, x=xc, **kwargs) # Redraw title, centered + + else: + raise ValueError(f"unknown frame '{frame}'") def _find_axes_center(fig, axs): diff --git a/control/freqplot.py b/control/freqplot.py index fc2cf6d0f..650265531 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -21,7 +21,7 @@ from .bdalg import feedback from .ctrlplot import ControlPlot, _add_arrows_to_line2D, _ctrlplot_rcParams, \ _find_axes_center, _get_line_labels, _make_legend_labels, \ - _process_ax_keyword, _process_line_labels, _update_suptitle, suptitle + _process_ax_keyword, _process_line_labels, _update_plot_title from .ctrlutil import unwrap from .exception import ControlMIMONotImplemented from .frdata import FrequencyResponseData @@ -963,9 +963,11 @@ def gen_zero_centered_series(val_min, val_max, period): else: # Allow data to set the title (used by gangof4) title = data[0].title - _update_suptitle(title, fig, rcParams=rcParams, frame=suptitle_frame) + _update_plot_title(title, fig, rcParams=rcParams, frame=suptitle_frame) else: - suptitle(title, fig=fig, rcParams=rcParams, frame=suptitle_frame) + _update_plot_title( + title, fig=fig, rcParams=rcParams, frame=suptitle_frame, + use_existing=False) # # Create legends @@ -1956,7 +1958,9 @@ def _parse_linestyle(style_name, allow_false=False): # Add the title if title is None: title = "Nyquist plot for " + ", ".join(labels) - suptitle(title, fig=fig, rcParams=rcParams, frame=suptitle_frame) + _update_plot_title( + title, fig=fig, rcParams=rcParams, frame=suptitle_frame, + use_existing=False) # Legacy return pocessing if plot is True or return_contour is not None: @@ -2416,7 +2420,9 @@ def singular_values_plot( # Add the title if title is None: title = "Singular values for " + ", ".join(labels) - suptitle(title, fig=fig, rcParams=rcParams, frame=suptitle_frame) + _update_plot_title( + title, fig=fig, rcParams=rcParams, frame=suptitle_frame, + use_existing=False) # Legacy return processing if plot is not None: diff --git a/control/nichols.py b/control/nichols.py index 75199a8b6..457436518 100644 --- a/control/nichols.py +++ b/control/nichols.py @@ -19,7 +19,7 @@ from . import config from .ctrlplot import ControlPlot, _get_line_labels, _process_ax_keyword, \ - _process_line_labels, suptitle + _process_line_labels, _update_plot_title from .ctrlutil import unwrap from .freqplot import _default_frequency_range, _freqplot_defaults from .lti import frequency_response @@ -152,7 +152,7 @@ def nichols_plot( # Add the title if title is None: title = "Nichols plot for " + ", ".join(labels) - suptitle(title, fig=fig, rcParams=rcParams) + _update_plot_title(title, fig=fig, rcParams=rcParams, use_existing=False) return ControlPlot(out, ax_nichols, fig, legend=legend) diff --git a/control/phaseplot.py b/control/phaseplot.py index 488b27564..bf99be8cc 100644 --- a/control/phaseplot.py +++ b/control/phaseplot.py @@ -37,7 +37,7 @@ from . import config from .ctrlplot import ControlPlot, _add_arrows_to_line2D, \ - _ctrlplot_rcParams, _process_ax_keyword, suptitle + _ctrlplot_rcParams, _process_ax_keyword, _update_plot_title from .exception import ControlNotImplemented from .nlsys import NonlinearIOSystem, find_eqpt, input_output_response @@ -222,7 +222,7 @@ def _create_kwargs(global_kwargs, local_kwargs, **other_kwargs): with plt.rc_context(rcParams): if title is None: title = f"Phase portrait for {sys.name}" - suptitle(title) + _update_plot_title(title, use_existing=False) ax.set_xlabel(sys.state_labels[0]) ax.set_ylabel(sys.state_labels[1]) diff --git a/control/pzmap.py b/control/pzmap.py index 2e35716c8..1c86f1323 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -18,8 +18,8 @@ from numpy import cos, exp, imag, linspace, real, sin, sqrt from . import config -from .ctrlplot import ControlPlot, suptitle, _get_line_labels, \ - _process_ax_keyword, _process_line_labels +from .ctrlplot import ControlPlot, _get_line_labels, _process_ax_keyword, \ + _process_line_labels, _update_plot_title from .freqplot import _freqplot_defaults from .grid import nogrid, sgrid, zgrid from .iosys import isctime, isdtime @@ -461,8 +461,9 @@ def pole_zero_plot( title = ("Root locus plot for " if rlocus_plot else "Pole/zero plot for ") + ", ".join(labels) if user_ax is None: - with plt.rc_context(rcParams): - fig.suptitle(title) + _update_plot_title( + title, fig, rcParams=rcParams, frame='figure', + use_existing=False) # Add dispather to handle choosing a point on the diagram if interactive: diff --git a/control/tests/freqplot_test.py b/control/tests/freqplot_test.py index d157070a8..509dd555b 100644 --- a/control/tests/freqplot_test.py +++ b/control/tests/freqplot_test.py @@ -126,12 +126,12 @@ def test_response_plots( assert len(ax.get_lines()) > 1 # Update the title so we can see what is going on - ct.suptitle( + cplt.set_plot_title( cplt.figure._suptitle._text + f" [{sys.noutputs}x{sys.ninputs}, pm={pltmag}, pp={pltphs}," f" sm={shrmag}, sp={shrphs}, sf={shrfrq}]", # TODO: ", " # f"oo={ovlout}, oi={ovlinp}, ss={secsys}]", # TODO: add back - frame='figure', fontsize='small') + frame='figure') # Get rid of the figure to free up memory if clear: @@ -552,19 +552,21 @@ def test_mixed_systypes(): resp_tf = ct.frequency_response(sys_tf) resp_ss = ct.frequency_response(sys_ss) plt.figure() - ct.bode_plot([resp_tf, resp_ss, sys_frd1, sys_frd2], plot_phase=False) - ct.suptitle("bode_plot([resp_tf, resp_ss, sys_frd1, sys_frd2])") + cplt = ct.bode_plot( + [resp_tf, resp_ss, sys_frd1, sys_frd2], plot_phase=False) + cplt.set_plot_title("bode_plot([resp_tf, resp_ss, sys_frd1, sys_frd2])") # Same thing, but using frequency response plt.figure() resp = ct.frequency_response([sys_tf, sys_ss, sys_frd1, sys_frd2]) - resp.plot(plot_phase=False) - ct.suptitle("frequency_response([sys_tf, sys_ss, sys_frd1, sys_frd2])") + cplt = resp.plot(plot_phase=False) + cplt.set_plot_title( + "frequency_response([sys_tf, sys_ss, sys_frd1, sys_frd2])") # Same thing, but using bode_plot plt.figure() - resp = ct.bode_plot([sys_tf, sys_ss, sys_frd1, sys_frd2], plot_phase=False) - ct.suptitle("bode_plot([sys_tf, sys_ss, sys_frd1, sys_frd2])") + cplt = ct.bode_plot([sys_tf, sys_ss, sys_frd1, sys_frd2], plot_phase=False) + cplt.set_plot_title("bode_plot([sys_tf, sys_ss, sys_frd1, sys_frd2])") def test_suptitle(): @@ -575,24 +577,25 @@ def test_suptitle(): assert plt.gcf()._suptitle._x != 0.5 # Try changing the the title - ct.suptitle("New title") + cplt.set_plot_title("New title") assert plt.gcf()._suptitle._text == "New title" # Change the location of the title - ct.suptitle("New title", frame='figure') + cplt.set_plot_title("New title", frame='figure') assert plt.gcf()._suptitle._x == 0.5 # Change the location of the title back - ct.suptitle("New title", frame='axes') + cplt.set_plot_title("New title", frame='axes') assert plt.gcf()._suptitle._x != 0.5 # Bad frame with pytest.raises(ValueError, match="unknown"): - ct.suptitle("New title", frame='nowhere') + cplt.set_plot_title("New title", frame='nowhere') # Bad keyword - with pytest.raises(AttributeError, match="unexpected keyword|no property"): - ct.suptitle("New title", unknown=None) + with pytest.raises( + TypeError, match="unexpected keyword|no property"): + cplt.set_plot_title("New title", unknown=None) @pytest.mark.parametrize("plt_fcn", [ct.bode_plot, ct.singular_values_plot]) diff --git a/control/tests/kwargs_test.py b/control/tests/kwargs_test.py index 91f4ea599..020910e73 100644 --- a/control/tests/kwargs_test.py +++ b/control/tests/kwargs_test.py @@ -55,8 +55,9 @@ def test_kwarg_search(module, prefix): # Get the signature for the function sig = inspect.signature(obj) - # Skip anything that is inherited - if inspect.isclass(module) and obj.__name__ not in module.__dict__: + # Skip anything that is inherited or hidden + if inspect.isclass(module) and obj.__name__ not in module.__dict__ \ + or obj.__name__.startswith('_'): continue # See if there is a variable keyword argument @@ -298,6 +299,7 @@ def test_response_plot_kwargs(data_fcn, plot_fcn, mimo): 'optimal.create_mpc_iosystem': optimal_test.test_mpc_iosystem_rename, 'optimal.solve_ocp': optimal_test.test_ocp_argument_errors, 'optimal.solve_oep': optimal_test.test_oep_argument_errors, + 'ControlPlot.set_plot_title': freqplot_test.test_suptitle, 'FrequencyResponseData.__init__': frd_test.TestFRD.test_unrecognized_keyword, 'FrequencyResponseData.plot': test_response_plot_kwargs, diff --git a/control/tests/nyquist_test.py b/control/tests/nyquist_test.py index 39f080cae..823d65732 100644 --- a/control/tests/nyquist_test.py +++ b/control/tests/nyquist_test.py @@ -161,38 +161,40 @@ def test_nyquist_fbs_examples(): """Run through various examples from FBS2e to compare plots""" plt.figure() - ct.suptitle("Figure 10.4: L(s) = 1.4 e^{-s}/(s+1)^2") sys = ct.tf([1.4], [1, 2, 1]) * ct.tf(*ct.pade(1, 4)) response = ct.nyquist_response(sys) - response.plot() + cplt = response.plot() + cplt.set_plot_title("Figure 10.4: L(s) = 1.4 e^{-s}/(s+1)^2") assert _Z(sys) == response.count + _P(sys) plt.figure() - ct.suptitle("Figure 10.4: L(s) = 1/(s + a)^2 with a = 0.6") sys = 1/(s + 0.6)**3 response = ct.nyquist_response(sys) - response.plot() + cplt = response.plot() + cplt.set_plot_title("Figure 10.4: L(s) = 1/(s + a)^2 with a = 0.6") assert _Z(sys) == response.count + _P(sys) plt.figure() - ct.suptitle("Figure 10.6: L(s) = 1/(s (s+1)^2) - pole at the origin") sys = 1/(s * (s+1)**2) response = ct.nyquist_response(sys) - response.plot() + cplt = response.plot() + cplt.set_plot_title( + "Figure 10.6: L(s) = 1/(s (s+1)^2) - pole at the origin") assert _Z(sys) == response.count + _P(sys) plt.figure() - ct.suptitle("Figure 10.10: L(s) = 3 (s+6)^2 / (s (s+1)^2)") sys = 3 * (s+6)**2 / (s * (s+1)**2) response = ct.nyquist_response(sys) - response.plot() + cplt = response.plot() + cplt.set_plot_title("Figure 10.10: L(s) = 3 (s+6)^2 / (s (s+1)^2)") assert _Z(sys) == response.count + _P(sys) plt.figure() - ct.suptitle("Figure 10.10: L(s) = 3 (s+6)^2 / (s (s+1)^2) [zoom]") with pytest.warns(UserWarning, match="encirclements does not match"): response = ct.nyquist_response(sys, omega_limits=[1.5, 1e3]) - response.plot() + cplt = response.plot() + cplt.set_plot_title( + "Figure 10.10: L(s) = 3 (s+6)^2 / (s (s+1)^2) [zoom]") # Frequency limits for zoom give incorrect encirclement count # assert _Z(sys) == response.count + _P(sys) assert response.count == -1 @@ -207,9 +209,9 @@ def test_nyquist_fbs_examples(): def test_nyquist_arrows(arrows): sys = ct.tf([1.4], [1, 2, 1]) * ct.tf(*ct.pade(1, 4)) plt.figure(); - ct.suptitle("L(s) = 1.4 e^{-s}/(s+1)^2 / arrows = %s" % arrows) response = ct.nyquist_response(sys) - response.plot(arrows=arrows) + cplt = response.plot(arrows=arrows) + cplt.set_plot_title("L(s) = 1.4 e^{-s}/(s+1)^2 / arrows = %s" % arrows) assert _Z(sys) == response.count + _P(sys) @@ -236,14 +238,14 @@ def test_nyquist_encirclements(): plt.figure(); response = ct.nyquist_response(sys) - response.plot() - ct.suptitle("Stable system; encirclements = %d" % response.count) + cplt = response.plot() + cplt.set_plot_title("Stable system; encirclements = %d" % response.count) assert _Z(sys) == response.count + _P(sys) plt.figure(); response = ct.nyquist_response(sys * 3) - response.plot() - ct.suptitle("Unstable system; encirclements = %d" %response.count) + cplt = response.plot() + cplt.set_plot_title("Unstable system; encirclements = %d" %response.count) assert _Z(sys * 3) == response.count + _P(sys * 3) # System with pole at the origin @@ -251,8 +253,9 @@ def test_nyquist_encirclements(): plt.figure(); response = ct.nyquist_response(sys) - response.plot() - ct.suptitle("Pole at the origin; encirclements = %d" %response.count) + cplt = response.plot() + cplt.set_plot_title( + "Pole at the origin; encirclements = %d" %response.count) assert _Z(sys) == response.count + _P(sys) # Non-integer number of encirclements @@ -265,8 +268,9 @@ def test_nyquist_encirclements(): # strip out matrix warnings response = ct.nyquist_response( sys, omega_limits=[0.5, 1e3], encirclement_threshold=0.2) - response.plot() - ct.suptitle("Non-integer number of encirclements [%g]" %response.count) + cplt = response.plot() + cplt.set_plot_title( + "Non-integer number of encirclements [%g]" %response.count) @pytest.fixture @@ -280,8 +284,8 @@ def indentsys(): def test_nyquist_indent_default(indentsys): plt.figure(); response = ct.nyquist_response(indentsys) - response.plot() - ct.suptitle("Pole at origin; indent_radius=default") + cplt = response.plot() + cplt.set_plot_title("Pole at origin; indent_radius=default") assert _Z(indentsys) == response.count + _P(indentsys) @@ -307,8 +311,9 @@ def test_nyquist_indent_do(indentsys): response = ct.nyquist_response( indentsys, indent_radius=0.01, return_contour=True) count, contour = response - response.plot() - ct.suptitle("Pole at origin; indent_radius=0.01; encirclements = %d" % count) + cplt = response.plot() + cplt.set_plot_title( + "Pole at origin; indent_radius=0.01; encirclements = %d" % count) assert _Z(indentsys) == count + _P(indentsys) # indent radius is smaller than the start of the default omega vector # check that a quarter circle around the pole at origin has been added. @@ -328,8 +333,8 @@ def test_nyquist_indent_do(indentsys): def test_nyquist_indent_left(indentsys): plt.figure(); response = ct.nyquist_response(indentsys, indent_direction='left') - response.plot() - ct.suptitle( + cplt = response.plot() + cplt.set_plot_title( "Pole at origin; indent_direction='left'; encirclements = %d" % response.count) assert _Z(indentsys) == response.count + _P(indentsys, indent='left') @@ -342,15 +347,15 @@ def test_nyquist_indent_im(): # Imaginary poles with standard indentation plt.figure(); response = ct.nyquist_response(sys) - response.plot() - ct.suptitle("Imaginary poles; encirclements = %d" % response.count) + cplt = response.plot() + cplt.set_plot_title("Imaginary poles; encirclements = %d" % response.count) assert _Z(sys) == response.count + _P(sys) # Imaginary poles with indentation to the left plt.figure(); response = ct.nyquist_response(sys, indent_direction='left') - response.plot(label_freq=300) - ct.suptitle( + cplt = response.plot(label_freq=300) + cplt.set_plot_title( "Imaginary poles; indent_direction='left'; encirclements = %d" % response.count) assert _Z(sys) == response.count + _P(sys, indent='left') @@ -360,8 +365,8 @@ def test_nyquist_indent_im(): with pytest.warns(UserWarning, match="encirclements does not match"): response = ct.nyquist_response( sys, np.linspace(0, 1e3, 1000), indent_direction='none') - response.plot() - ct.suptitle( + cplt = response.plot() + cplt.set_plot_title( "Imaginary poles; indent_direction='none'; encirclements = %d" % response.count) assert _Z(sys) == response.count + _P(sys) @@ -556,19 +561,19 @@ def test_nyquist_frd(): print("Unusual Nyquist plot") sys = ct.tf([1], [1, 3, 2]) * ct.tf([1], [1, 0, 1]) plt.figure() - ct.suptitle("Poles: %s" % - np.array2string(sys.poles(), precision=2, separator=',')) response = ct.nyquist_response(sys) - response.plot() + cplt = response.plot() + cplt.set_plot_title("Poles: %s" % + np.array2string(sys.poles(), precision=2, separator=',')) assert _Z(sys) == response.count + _P(sys) print("Discrete time systems") sys = ct.c2d(sys, 0.01) plt.figure() - ct.suptitle("Discrete-time; poles: %s" % - np.array2string(sys.poles(), precision=2, separator=',')) response = ct.nyquist_response(sys) - response.plot() + cplt = response.plot() + cplt.set_plot_title("Discrete-time; poles: %s" % + np.array2string(sys.poles(), precision=2, separator=',')) print("Frequency response data (FRD) systems") sys = ct.tf( @@ -577,5 +582,5 @@ def test_nyquist_frd(): sys1 = ct.frd(sys, np.logspace(-1, 1, 15), name='frd1') sys2 = ct.frd(sys, np.logspace(-2, 2, 20), name='frd2') plt.figure() - ct.nyquist_plot([sys, sys1, sys2]) - ct.suptitle("Mixed FRD, tf data") + cplt = ct.nyquist_plot([sys, sys1, sys2]) + cplt.set_plot_title("Mixed FRD, tf data") diff --git a/control/tests/phaseplot_test.py b/control/tests/phaseplot_test.py index 18e06716f..5e7a31651 100644 --- a/control/tests/phaseplot_test.py +++ b/control/tests/phaseplot_test.py @@ -10,15 +10,16 @@ """ import warnings +from math import pi import matplotlib.pyplot as plt import numpy as np import pytest -from math import pi import control as ct import control.phaseplot as pp from control import phase_plot +from control.tests.conftest import mplcleanup # Legacy tests @@ -116,6 +117,7 @@ def oscillator_ode(self, x, t, m=1., b=1, k=1, extra=None): [ct.phaseplot.separatrices, [5], {'params': {}, 'gridspec': [5, 5]}], [ct.phaseplot.separatrices, [5], {'color': ('r', 'g')}], ]) +@pytest.mark.usefixtures('mplcleanup') def test_helper_functions(func, args, kwargs): # Test with system sys = ct.nlsys( @@ -128,6 +130,7 @@ def test_helper_functions(func, args, kwargs): out = func(rhsfcn, [-1, 1, -1, 1], *args, **kwargs) +@pytest.mark.usefixtures('mplcleanup') def test_system_types(): # Sample dynamical systems - inverted pendulum def invpend_ode(t, x, m=0, l=0, b=0, g=0): @@ -135,13 +138,14 @@ def invpend_ode(t, x, m=0, l=0, b=0, g=0): # Use callable form, with parameters (if not correct, will get /0 error) ct.phase_plane_plot( - invpend_ode, [-5, 5, 2, 2], params={'args': (1, 1, 0.2, 1)}) + invpend_ode, [-5, 5, -2, 2], params={'args': (1, 1, 0.2, 1)}) # Linear I/O system ct.phase_plane_plot( ct.ss([[0, 1], [-1, -1]], [[0], [1]], [[1, 0]], 0)) +@pytest.mark.usefixtures('mplcleanup') def test_phaseplane_errors(): with pytest.raises(ValueError, match="invalid grid specification"): ct.phase_plane_plot(ct.rss(2, 1, 1), gridspec='bad') @@ -176,6 +180,7 @@ def invpend_ode(t, x, m=0, l=0, b=0, g=0): plot_separatrices=False, suppress_warnings=True) +@pytest.mark.usefixtures('mplcleanup') def test_basic_phase_plots(savefigs=False): sys = ct.nlsys( lambda t, x, u, params: np.array([[0, 1], [-1, -1]]) @ x, diff --git a/control/timeplot.py b/control/timeplot.py index dc7f4274c..ce4134e94 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -15,8 +15,8 @@ import numpy as np from . import config -from .ctrlplot import ControlPlot, suptitle, _ctrlplot_rcParams, \ - _make_legend_labels, _update_suptitle +from .ctrlplot import ControlPlot, _ctrlplot_rcParams, _make_legend_labels,\ + _update_plot_title __all__ = ['time_response_plot', 'combine_time_responses'] @@ -659,9 +659,9 @@ def _make_line_label(signal_index, signal_labels, trace_index): if title is None: title = data.title if title == None else title - _update_suptitle(title, fig, rcParams=rcParams) + _update_plot_title(title, fig, rcParams=rcParams) else: - suptitle(title, fig, rcParams=rcParams) + _update_plot_title(title, fig, rcParams=rcParams, use_existing=False) return ControlPlot(out, ax_array, fig, legend=legend_map) diff --git a/doc/control.rst b/doc/control.rst index 2efa23809..1544f93d0 100644 --- a/doc/control.rst +++ b/doc/control.rst @@ -51,7 +51,6 @@ Frequency domain plotting gangof4_plot nichols_plot nichols_grid - suptitle Note: For plotting commands that create multiple axes on the same plot, the individual axes can be retrieved using the axes label (retrieved using the From 8abb6189f0eeaaa7478f6f39bc80bec04ad3b8cd Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 19 Jul 2024 17:27:28 -0700 Subject: [PATCH 050/448] turn off title update if ax is given --- control/ctrlplot.py | 9 +++--- control/freqplot.py | 29 ++++++++++-------- control/nichols.py | 8 +++-- control/phaseplot.py | 13 ++++---- control/tests/ctrlplot_test.py | 56 ++++++++++++++++++++++++++++++++-- control/timeplot.py | 5 +-- 6 files changed, 88 insertions(+), 32 deletions(-) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index c8b580e7b..3da3447f9 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -60,12 +60,12 @@ # legend_array[i, j] = ax.legend( # lines, labels, loc=legend_map[i, j]) # -# # Update the plot title +# # Update the plot title (only if ax was not given) # sysnames = [response.sysname for response in data] -# if title is None: +# if ax == None and title is None: # title = "Name plot for " + ", ".join(sysnames) # _update_plot_title(title, fig, rcParams=rcParams) -# else: +# elif ax == None: # _update_plot_title(title, fig, rcParams=rcParams, use_existing=False) # # # Legacy processing of plot keyword @@ -362,8 +362,9 @@ def _process_ax_keyword( text.set_visible(False) # turn off the text del text # get rid of it completely else: + axs = np.atleast_1d(axs) try: - axs = np.asarray(axs).reshape(shape) + axs = axs.reshape(shape) except ValueError: raise ValueError( "specified axes are not the right shape; " diff --git a/control/freqplot.py b/control/freqplot.py index 650265531..038ea877c 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -957,14 +957,14 @@ def gen_zero_centered_series(val_min, val_max, period): sysnames = [response.sysname for response in data \ if not (response.sysname in seen or seen.add(response.sysname))] - if title is None: + if ax is None and title is None: if data[0].title is None: title = "Bode plot for " + ", ".join(sysnames) else: # Allow data to set the title (used by gangof4) title = data[0].title _update_plot_title(title, fig, rcParams=rcParams, frame=suptitle_frame) - else: + elif ax is None: _update_plot_title( title, fig=fig, rcParams=rcParams, frame=suptitle_frame, use_existing=False) @@ -1679,6 +1679,7 @@ def nyquist_plot( arrow_size = config._get_param( 'nyquist', 'arrow_size', kwargs, _nyquist_defaults, pop=True) arrow_style = config._get_param('nyquist', 'arrow_style', kwargs, None) + ax_user = ax max_curve_magnitude = config._get_param( 'nyquist', 'max_curve_magnitude', kwargs, _nyquist_defaults, pop=True) max_curve_offset = config._get_param( @@ -1773,7 +1774,7 @@ def _parse_linestyle(style_name, allow_false=False): return (counts, contours) if return_contour else counts fig, ax = _process_ax_keyword( - ax, shape=(1, 1), squeeze=True, rcParams=rcParams) + ax_user, shape=(1, 1), squeeze=True, rcParams=rcParams) # Create a list of lines for the output out = np.empty(len(nyquist_responses), dtype=object) @@ -1956,11 +1957,12 @@ def _parse_linestyle(style_name, allow_false=False): legend=None # Add the title - if title is None: - title = "Nyquist plot for " + ", ".join(labels) - _update_plot_title( - title, fig=fig, rcParams=rcParams, frame=suptitle_frame, - use_existing=False) + if ax_user is None: + if title is None: + title = "Nyquist plot for " + ", ".join(labels) + _update_plot_title( + title, fig=fig, rcParams=rcParams, frame=suptitle_frame, + use_existing=False) # Legacy return pocessing if plot is True or return_contour is not None: @@ -2418,11 +2420,12 @@ def singular_values_plot( legend = None # Add the title - if title is None: - title = "Singular values for " + ", ".join(labels) - _update_plot_title( - title, fig=fig, rcParams=rcParams, frame=suptitle_frame, - use_existing=False) + if ax is None: + if title is None: + title = "Singular values for " + ", ".join(labels) + _update_plot_title( + title, fig=fig, rcParams=rcParams, frame=suptitle_frame, + use_existing=False) # Legacy return processing if plot is not None: diff --git a/control/nichols.py b/control/nichols.py index 457436518..d2ae0cf8c 100644 --- a/control/nichols.py +++ b/control/nichols.py @@ -150,9 +150,11 @@ def nichols_plot( legend = None # Add the title - if title is None: - title = "Nichols plot for " + ", ".join(labels) - _update_plot_title(title, fig=fig, rcParams=rcParams, use_existing=False) + if ax is None: + if title is None: + title = "Nichols plot for " + ", ".join(labels) + _update_plot_title( + title, fig=fig, rcParams=rcParams, use_existing=False) return ControlPlot(out, ax_nichols, fig, legend=legend) diff --git a/control/phaseplot.py b/control/phaseplot.py index bf99be8cc..b25c1ce53 100644 --- a/control/phaseplot.py +++ b/control/phaseplot.py @@ -219,14 +219,13 @@ def _create_kwargs(global_kwargs, local_kwargs, **other_kwargs): # TODO: update to common code pattern if user_ax is None: - with plt.rc_context(rcParams): - if title is None: - title = f"Phase portrait for {sys.name}" - _update_plot_title(title, use_existing=False) - ax.set_xlabel(sys.state_labels[0]) - ax.set_ylabel(sys.state_labels[1]) + if title is None: + title = f"Phase portrait for {sys.name}" + _update_plot_title(title, use_existing=False) + ax.set_xlabel(sys.state_labels[0]) + ax.set_ylabel(sys.state_labels[1]) + plt.tight_layout() - plt.tight_layout() return ControlPlot(out, ax, fig) diff --git a/control/tests/ctrlplot_test.py b/control/tests/ctrlplot_test.py index f77ccfe91..84f10bea0 100644 --- a/control/tests/ctrlplot_test.py +++ b/control/tests/ctrlplot_test.py @@ -126,7 +126,7 @@ def test_plot_ax_processing(resp_fcn, plot_fcn): if resp_fcn is not None: cplt3 = resp.plot(**kwargs, **meth_kwargs, ax=cplt1.axes) else: - cplt3 = plot_fcn(*args, **kwargs, **meth_kwargs) + cplt3 = plot_fcn(*args, **kwargs, **meth_kwargs, ax=cplt1.axes) assert cplt3.figure == cplt1.figure # Plot should have landed on top of previous plot, in different colors @@ -136,6 +136,51 @@ def test_plot_ax_processing(resp_fcn, plot_fcn): assert get_line_color(cplt3) != get_line_color(cplt1) assert get_line_color(cplt3) != get_line_color(cplt2) + # + # Plot on a user-contructed figure + # + + # Store modified properties from previous figure + cplt_titlesize = cplt3.figure._suptitle.get_fontsize() + cplt_labelsize = \ + cplt3.axes.reshape(-1)[0].get_yticklabels()[0].get_fontsize() + + # Set up some axes with a known title + fig, axs = plt.subplots(2, 3) + title = "User-constructed figure" + plt.suptitle(title) + titlesize = fig._suptitle.get_fontsize() + assert titlesize != cplt_titlesize + labelsize = axs[0, 0].get_yticklabels()[0].get_fontsize() + assert labelsize != cplt_labelsize + + # Figure out what to pass as the ax keyword + match resp_fcn, plot_fcn: + case _, ct.bode_plot: + ax = [axs[0, 1], axs[1, 1]] + + case ct.gangof4_response, _: + ax = [axs[0, 1], axs[0, 2], axs[1, 1], axs[1, 2]] + + case (ct.forced_response | ct.input_output_response, _): + ax = [axs[0, 1], axs[1, 1]] + + case _, _: + ax = [axs[0, 1]] + + # Call the plotting function, passing the axes + if resp_fcn is not None: + resp = resp_fcn(*args, **kwargs) + cplt4 = resp.plot(**kwargs, **meth_kwargs, ax=ax) + else: + # No response function available; just plot the data + cplt4 = plot_fcn(*args, **kwargs, **meth_kwargs, ax=ax) + + # Check to make sure original settings did not change + assert fig._suptitle.get_text() == title + assert fig._suptitle.get_fontsize() == titlesize + assert ax[0].get_yticklabels()[0].get_fontsize() == labelsize + @pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) @pytest.mark.usefixtures('mplcleanup') @@ -338,13 +383,13 @@ def test_plot_title_processing(resp_fcn, plot_fcn): case _: raise RuntimeError(f"didn't recognize {resp_fnc}, {plot_fnc}") - # Generate the first plot, with default labels + # Generate the first plot, with default title cplt1 = plot_fcn(*args1, **kwargs, **plot_fcn_kwargs) assert cplt1.figure._suptitle._text.startswith(title_prefix) # Skip functions not intended for sequential calling if plot_fcn not in nolabel_plot_fcns: - # Generate second plot with default labels + # Generate second plot with default title cplt2 = plot_fcn(*args2, **kwargs, **plot_fcn_kwargs) assert cplt1.figure._suptitle._text == title_prefix + default_title plt.close() @@ -372,6 +417,11 @@ def test_plot_title_processing(resp_fcn, plot_fcn): assert cplt2.figure._suptitle._text == "Another title" plt.close() + # Generate the plots with no title + cplt = plot_fcn( + *args1, **kwargs, **plot_fcn_kwargs, title=False) + assert cplt.figure._suptitle == None + @pytest.mark.usefixtures('mplcleanup') def test_rcParams(): diff --git a/control/timeplot.py b/control/timeplot.py index ce4134e94..cc417ee7d 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -175,6 +175,7 @@ def time_response_plot( # Process keywords and set defaults # # Set up defaults + ax_user = ax time_label = config._get_param( 'timeplot', 'time_label', kwargs, _timeplot_defaults, pop=True) rcParams = config._get_param( @@ -657,10 +658,10 @@ def _make_line_label(signal_index, signal_labels, trace_index): # list of systems (e.g., "Step response for sys[1], sys[2]"). # - if title is None: + if ax_user is None and title is None: title = data.title if title == None else title _update_plot_title(title, fig, rcParams=rcParams) - else: + elif ax_user is None: _update_plot_title(title, fig, rcParams=rcParams, use_existing=False) return ControlPlot(out, ax_array, fig, legend=legend_map) From fc09a856488e65914f05809df8b2fad3773759fc Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Fri, 19 Jul 2024 18:45:58 -0700 Subject: [PATCH 051/448] deprecate relabel keyword in time_response_plot --- control/tests/timeplot_test.py | 5 +++-- control/timeplot.py | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 81c378a57..081234624 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -530,8 +530,9 @@ def test_relabel(): ct.step_response(sys1).plot() # Generate a new plt, without relabeling - cplt = ct.step_response(sys2).plot(relabel=False) - assert cplt.axes[0, 0].get_ylabel() == 'y' + with pytest.warns(FutureWarning, match="deprecated"): + cplt = ct.step_response(sys2).plot(relabel=False) + assert cplt.axes[0, 0].get_ylabel() == 'y' def test_errors(): diff --git a/control/timeplot.py b/control/timeplot.py index cc417ee7d..31d17c117 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -131,8 +131,9 @@ def time_response_plot( List of line properties to use when plotting combined outputs. The default values are set by config.defaults['timeplot.output_props']. relabel : bool, optional - By default, existing figures and axes are relabeled when new data - are added. If set to `False`, just plot new data on existing axes. + [deprecated] By default, existing figures and axes are relabeled + when new data are added. If set to `False`, just plot new data on + existing axes. show_legend : bool, optional Force legend to be shown if ``True`` or hidden if ``False``. If ``None``, then show legend when there is more than one line on an @@ -456,6 +457,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): # Stop here if the user wants to control everything if not relabel: + warn("relabel keyword is deprecated", FutureWarning) return ControlPlot(out, ax_array, fig) # From 4fe5f533a67ac6fece409a40d2ff5449a4b04ac0 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 20 Jul 2024 13:33:13 -0700 Subject: [PATCH 052/448] implement uniform legend processing + unit test/doc updates --- control/ctrlplot.py | 62 ++++++-- control/descfcn.py | 11 ++ control/freqplot.py | 108 ++++++++----- control/nichols.py | 39 +++-- control/phaseplot.py | 14 +- control/pzmap.py | 41 +++-- control/rlocus.py | 22 ++- control/tests/ctrlplot_test.py | 268 +++++++++++++++++++++++++++------ control/tests/timeplot_test.py | 16 +- control/timeplot.py | 72 ++++----- 10 files changed, 478 insertions(+), 175 deletions(-) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index 3da3447f9..e6a7589f6 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -30,6 +30,8 @@ # # # Figure out the shape of the plot and find/create axes # fig, ax_array = _process_ax_keyword(ax, (nrows, ncols), rcParams) +# legend_loc, legend_map, show_legend = _process_legend_keywords( +# kwargs, (nrows, ncols), 'center right') # # # Customize axes (curvilinear grids, shared axes, etc) # @@ -51,14 +53,17 @@ # ax_array[i, j].set_ylabel("y label") # # # Create legends -# legend_map = _process_legend_keywords(kwargs) -# for i, j in itertools.product(range(nrows), range(ncols)): -# if legend_map[i, j] is not None: -# lines = ax_array[i, j].get_lines() -# labels = _make_legend_labels(lines) -# if len(labels) > 1: -# legend_array[i, j] = ax.legend( -# lines, labels, loc=legend_map[i, j]) +# if show_legend != False: +# legend_array = np.full(ax_array.shape, None, dtype=object) +# for i, j in itertools.product(range(nrows), range(ncols)): +# if legend_map[i, j] is not None: +# lines = ax_array[i, j].get_lines() +# labels = _make_legend_labels(lines) +# if len(labels) > 1: +# legend_array[i, j] = ax.legend( +# lines, labels, loc=legend_map[i, j]) +# else: +# legend_array = None # # # Update the plot title (only if ax was not given) # sysnames = [response.sysname for response in data] @@ -131,7 +136,7 @@ class ControlPlot(object): figure : :class:`matplotlib:Figure` Figure on which the Axes are drawn. legend : :class:`matplotlib:.legend.Legend` (instance or ndarray) - Legend object(s) for the plat. If more than one legend is + Legend object(s) for the plot. If more than one legend is included, this will be an array with each entry being either None (for no legend) or a legend object. @@ -436,8 +441,46 @@ def _get_line_labels(ax, use_color=True): return lines, [label for label, color in labels_colors] +def _process_legend_keywords( + kwargs, shape=None, default_loc='center right'): + legend_loc = kwargs.pop('legend_loc', None) + if shape is None and 'legend_map' in kwargs: + raise TypeError("unexpected keyword argument 'legend_map'") + else: + legend_map = kwargs.pop('legend_map', None) + show_legend = kwargs.pop('show_legend', None) + + # If legend_loc or legend_map were given, always show the legend + if legend_loc is False or legend_map is False: + if show_legend is True: + warnings.warn( + "show_legend ignored; legend_loc or legend_map was given") + show_legend = False + legend_loc = legend_map = None + elif legend_loc is not None or legend_map is not None: + if show_legend is False: + warnings.warn( + "show_legend ignored; legend_loc or legend_map was given") + show_legend = True + + if legend_loc is None: + legend_loc = default_loc + elif not isinstance(legend_loc, (int, str)): + raise ValueError("legend_loc must be string or int") + + # Make sure the legend map is the right size + if legend_map is not None: + legend_map = np.atleast_2d(legend_map) + if legend_map.shape != shape: + raise ValueError("legend_map shape just match axes shape") + + return legend_loc, legend_map, show_legend + + # Utility function to make legend labels def _make_legend_labels(labels, ignore_common=False): + if len(labels) == 1: + return labels # Look for a common prefix (up to a space) common_prefix = commonprefix(labels) @@ -474,7 +517,6 @@ def _update_plot_title( rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) if rcParams is None: rcParams = _ctrlplot_rcParams - print(f"{rcParams['figure.titlesize']=}") if use_existing: # Get the current title, if it exists diff --git a/control/descfcn.py b/control/descfcn.py index f94687a3f..97d98fc58 100644 --- a/control/descfcn.py +++ b/control/descfcn.py @@ -423,6 +423,12 @@ def describing_function_plot( point_label : str, optional Formatting string used to label intersection points on the Nyquist plot. Defaults to "%5.2g @ %-5.2g". Set to `None` to omit labels. + ax : matplotlib.axes.Axes, optional + The matplotlib axes to draw the figure on. If not specified and + the current figure has a single axes, that axes is used. + Otherwise, a new figure is created. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). Returns ------- @@ -475,6 +481,11 @@ def describing_function_plot( else: raise TypeError("1, 3, or 4 position arguments required") + # Don't allow legend keyword arguments + for kw in ['legend_loc', 'legend_map', 'show_legend']: + if kw in kwargs: + raise TypeError(f"unexpected keyword argument '{kw}'") + # Create a list of lines for the output lines = np.empty(2, dtype=object) diff --git a/control/freqplot.py b/control/freqplot.py index 038ea877c..95f7cffd6 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -21,7 +21,8 @@ from .bdalg import feedback from .ctrlplot import ControlPlot, _add_arrows_to_line2D, _ctrlplot_rcParams, \ _find_axes_center, _get_line_labels, _make_legend_labels, \ - _process_ax_keyword, _process_line_labels, _update_plot_title + _process_ax_keyword, _process_legend_keywords, _process_line_labels, \ + _update_plot_title from .ctrlutil import unwrap from .exception import ControlMIMONotImplemented from .frdata import FrequencyResponseData @@ -87,8 +88,7 @@ def bode_plot( plot=None, plot_magnitude=True, plot_phase=None, overlay_outputs=None, overlay_inputs=None, phase_label=None, magnitude_label=None, label=None, display_margins=None, - margins_method='best', legend_map=None, legend_loc=None, - sharex=None, sharey=None, title=None, **kwargs): + margins_method='best', title=None, sharex=None, sharey=None, **kwargs): """Bode plot for a system. Plot the magnitude and phase of the frequency response over a @@ -142,25 +142,33 @@ def bode_plot( Other Parameters ---------------- - ax : array of Axes - The matplotlib Axes to draw the figure on. If not specified, the - Axes for the current figure are used or, if there is no current - figure with the correct number and shape of Axes, a new figure is + ax : array of matplotlib.axes.Axes, optional + The matplotlib axes to draw the figure on. If not specified, the + axes for the current figure are used or, if there is no current + figure with the correct number and shape of axes, a new figure is created. The shape of the array must match the shape of the plotted data. - grid : bool + grid : bool, optional If True, plot grid lines on gain and phase plots. Default is set by `config.defaults['freqplot.grid']`. - initial_phase : float + initial_phase : float, optional Set the reference phase to use for the lowest frequency. If set, the initial phase of the Bode plot will be set to the value closest to the value specified. Units are in either degrees or radians, depending on the `deg` parameter. Default is -180 if wrap_phase is False, 0 if wrap_phase is True. - label : str or array-like of str + label : str or array_like of str, optional If present, replace automatically generated label(s) with the given label(s). If sysdata is a list, strings should be specified for each system. If MIMO, strings required for each system, output, and input. + legend_map : array of str, optional + Location of the legend for multi-axes plots. Specifies an array + of legend location strings matching the shape of the subplots, with + each entry being either None (for no legend) or a legend location + string (see :func:`~matplotlib.pyplot.legend`). + legend_loc : int or str, optional + Include a legend in the given location. Default is 'center right', + with no legend for a single response. Use False to supress legend. margins_method : str, optional Method to use in computing margins (see :func:`stability_margins`). omega_limits : array_like of two values @@ -179,6 +187,10 @@ def bode_plot( rcParams : dict Override the default parameters used for generating plots. Default is set by config.default['freqplot.rcParams']. + show_legend : bool, optional + Force legend to be shown if ``True`` or hidden if ``False``. If + ``None``, then show legend when there is more than one line on an + axis or ``legend_loc`` or ``legend_map`` has been specified. title : str, optional Set the title of the plot. Defaults to plot type and system name(s). wrap_phase : bool or float @@ -478,8 +490,10 @@ def bode_plot( if kw not in kwargs or kwargs[kw] is None: kwargs[kw] = config.defaults['freqplot.' + kw] - fig, ax_array = _process_ax_keyword(ax, ( - nrows, ncols), squeeze=False, rcParams=rcParams, clear_text=True) + fig, ax_array = _process_ax_keyword( + ax, (nrows, ncols), squeeze=False, rcParams=rcParams, clear_text=True) + legend_loc, legend_map, show_legend = _process_legend_keywords( + kwargs, (nrows,ncols), 'center right') # Get the values for sharing axes limits share_magnitude = kwargs.pop('share_magnitude', None) @@ -989,21 +1003,15 @@ def gen_zero_centered_series(val_min, val_max, period): # different response (system). # - # Figure out where to put legends - if legend_map is None: - legend_map = np.full(ax_array.shape, None, dtype=object) - if legend_loc == None: - legend_loc = 'center right' - - # TODO: add in additional processing later - - # Put legend in the upper right - legend_map[0, -1] = legend_loc - # Create axis legends - legend_array = np.full(ax_array.shape, None, dtype=object) - for i in range(nrows): - for j in range(ncols): + if show_legend != False: + # Figure out where to put legends + if legend_map is None: + legend_map = np.full(ax_array.shape, None, dtype=object) + legend_map[0, -1] = legend_loc + + legend_array = np.full(ax_array.shape, None, dtype=object) + for i, j in itertools.product(range(nrows), range(ncols)): if legend_map[i, j] is None: continue ax = ax_array[i, j] @@ -1016,10 +1024,13 @@ def gen_zero_centered_series(val_min, val_max, period): ignore_common=line_labels is not None) # Generate the label, if needed - if len(labels) > 1: + if show_legend == True or len(labels) > 1: with plt.rc_context(rcParams): + print(f"{lines=}, {labels=}") legend_array[i, j] = ax.legend( lines, labels, loc=legend_map[i, j]) + else: + legend_array = None # # Legacy return pocessing @@ -1476,7 +1487,7 @@ def nyquist_response( def nyquist_plot( data, omega=None, plot=None, label_freq=0, color=None, label=None, - return_contour=None, title=None, legend_loc='upper right', ax=None, + return_contour=None, title=None, ax=None, unit_circle=False, mt_circles=None, ms_circles=None, **kwargs): """Nyquist plot for a system. @@ -1550,6 +1561,10 @@ def nyquist_plot( 8 and can be set using config.defaults['nyquist.arrow_size']. arrow_style : matplotlib.patches.ArrowStyle, optional Define style used for Nyquist curve arrows (overrides `arrow_size`). + ax : matplotlib.axes.Axes, optional + The matplotlib axes to draw the figure on. If not specified and + the current figure has a single axes, that axes is used. + Otherwise, a new figure is created. encirclement_threshold : float, optional Define the threshold for generating a warning if the number of net encirclements is a non-integer value. Default value is 0.05 and can @@ -1564,13 +1579,16 @@ def nyquist_plot( Amount to indent the Nyquist contour around poles on or near the imaginary axis. Portions of the Nyquist plot corresponding to indented portions of the contour are plotted using a different line style. - label : str or array-like of str + label : str or array_like of str, optional If present, replace automatically generated label(s) with the given label(s). If sysdata is a list, strings should be specified for each system. label_freq : int, optiona Label every nth frequency on the plot. If not specified, no labels are generated. + legend_loc : int or str, optional + Include a legend in the given location. Default is 'center right', + with no legend for a single response. Use False to supress legend. max_curve_magnitude : float, optional Restrict the maximum magnitude of the Nyquist plot to this value. Portions of the Nyquist plot whose magnitude is restricted are @@ -1609,6 +1627,10 @@ def nyquist_plot( return_contour : bool, optional (legacy) If 'True', return the encirclement count and Nyquist contour used to generate the Nyquist plot. + show_legend : bool, optional + Force legend to be shown if ``True`` or hidden if ``False``. If + ``None``, then show legend when there is more than one line on the + plot or ``legend_loc`` has been specified. start_marker : str, optional Matplotlib marker to use to mark the starting point of the Nyquist plot. Defaults value is 'o' and can be set using @@ -1775,6 +1797,8 @@ def _parse_linestyle(style_name, allow_false=False): fig, ax = _process_ax_keyword( ax_user, shape=(1, 1), squeeze=True, rcParams=rcParams) + legend_loc, _, show_legend = _process_legend_keywords( + kwargs, None, 'upper right') # Create a list of lines for the output out = np.empty(len(nyquist_responses), dtype=object) @@ -1950,11 +1974,11 @@ def _parse_linestyle(style_name, allow_false=False): lines, labels = _get_line_labels(ax) # Add legend if there is more than one system plotted - if len(labels) > 1: + if show_legend == True or (show_legend != False and len(labels) > 1): with plt.rc_context(rcParams): legend = ax.legend(lines, labels, loc=legend_loc) else: - legend=None + legend = None # Add the title if ax_user is None: @@ -2193,7 +2217,7 @@ def singular_values_response( def singular_values_plot( data, omega=None, *fmt, plot=None, omega_limits=None, omega_num=None, - ax=None, label=None, title=None, legend_loc='center right', **kwargs): + ax=None, label=None, title=None, **kwargs): """Plot the singular values for a system. Plot the singular values as a function of frequency for a system or @@ -2237,16 +2261,20 @@ def singular_values_plot( Other Parameters ---------------- + ax : matplotlib.axes.Axes, optional + The matplotlib axes to draw the figure on. If not specified and + the current figure has a single axes, that axes is used. + Otherwise, a new figure is created. grid : bool If True, plot grid lines on gain and phase plots. Default is set by `config.defaults['freqplot.grid']`. - label : str or array-like of str + label : str or array_like of str, optional If present, replace automatically generated label(s) with the given label(s). If sysdata is a list, strings should be specified for each system. - legend_loc : str, optional - For plots with multiple lines, a legend will be included in the - given location. Default is 'center right'. Use False to supress. + legend_loc : int or str, optional + Include a legend in the given location. Default is 'center right', + with no legend for a single response. Use False to supress legend. omega_limits : array_like of two values Set limits for plotted frequency range. If Hz=True the limits are in Hz otherwise in rad/s. Specifying ``omega`` as a list of two @@ -2262,6 +2290,10 @@ def singular_values_plot( rcParams : dict Override the default parameters used for generating plots. Default is set up config.default['freqplot.rcParams']. + show_legend : bool, optional + Force legend to be shown if ``True`` or hidden if ``False``. If + ``None``, then show legend when there is more than one line on an + axis or ``legend_loc`` or ``legend_map`` has been specified. title : str, optional Set the title of the plot. Defaults to plot type and system name(s). @@ -2343,6 +2375,8 @@ def singular_values_plot( fig, ax_sigma = _process_ax_keyword( ax, shape=(1, 1), squeeze=True, rcParams=rcParams) ax_sigma.set_label('control-sigma') # TODO: deprecate? + legend_loc, _, show_legend = _process_legend_keywords( + kwargs, None, 'center right') # Handle color cycle manually as all singular values # of the same systems are expected to be of the same color @@ -2413,7 +2447,7 @@ def singular_values_plot( lines, labels = _get_line_labels(ax_sigma) # Add legend if there is more than one system plotted - if len(labels) > 1 and legend_loc is not False: + if show_legend == True or (show_legend != False and len(labels) > 1): with plt.rc_context(rcParams): legend = ax_sigma.legend(lines, labels, loc=legend_loc) else: diff --git a/control/nichols.py b/control/nichols.py index d2ae0cf8c..e91659bc1 100644 --- a/control/nichols.py +++ b/control/nichols.py @@ -19,7 +19,7 @@ from . import config from .ctrlplot import ControlPlot, _get_line_labels, _process_ax_keyword, \ - _process_line_labels, _update_plot_title + _process_legend_keywords, _process_line_labels, _update_plot_title from .ctrlutil import unwrap from .freqplot import _default_frequency_range, _freqplot_defaults from .lti import frequency_response @@ -36,7 +36,7 @@ def nichols_plot( data, omega=None, *fmt, grid=None, title=None, ax=None, - legend_loc='upper left', label=None, **kwargs): + label=None, **kwargs): """Nichols plot for a system. Plots a Nichols plot for the system over a (optional) frequency range. @@ -53,15 +53,6 @@ def nichols_plot( The `omega` parameter must be present (use omega=None if needed). grid : boolean, optional True if the plot should include a Nichols-chart grid. Default is True. - label : str or array-like of str - If present, replace automatically generated label(s) with given - label(s). If sysdata is a list, strings should be specified for each - system. - legend_loc : str, optional - For plots with multiple lines, a legend will be included in the - given location. Default is 'upper left'. Use False to supress. - title : str, optional - Set the title of the plot. Defaults to plot type and system name(s). **kwargs : :func:`matplotlib.pyplot.plot` keyword properties, optional Additional keywords passed to `matplotlib` to specify line properties. @@ -84,6 +75,26 @@ def nichols_plot( lines : array of Line2D + Other Parameters + ---------------- + ax : matplotlib.axes.Axes, optional + The matplotlib axes to draw the figure on. If not specified and + the current figure has a single axes, that axes is used. + Otherwise, a new figure is created. + label : str or array_like of str, optional + If present, replace automatically generated label(s) with given + label(s). If sysdata is a list, strings should be specified for each + system. + legend_loc : int or str, optional + Include a legend in the given location. Default is 'upper left', + with no legend for a single response. Use False to supress legend. + show_legend : bool, optional + Force legend to be shown if ``True`` or hidden if ``False``. If + ``None``, then show legend when there is more than one line on the + plot or ``legend_loc`` has been specified. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). + """ # Get parameter values grid = config._get_param('nichols', 'grid', grid, True) @@ -105,6 +116,8 @@ def nichols_plot( raise NotImplementedError("MIMO Nichols plots not implemented") fig, ax_nichols = _process_ax_keyword(ax, rcParams=rcParams, squeeze=True) + legend_loc, _, show_legend = _process_legend_keywords( + kwargs, None, 'upper left') # Create a list of lines for the output out = np.empty(len(data), dtype=object) @@ -143,7 +156,7 @@ def nichols_plot( lines, labels = _get_line_labels(ax_nichols) # Add legend if there is more than one system plotted - if len(labels) > 1 and legend_loc is not False: + if show_legend == True or (show_legend != False and len(labels) > 1): with plt.rc_context(rcParams): legend = ax_nichols.legend(lines, labels, loc=legend_loc) else: @@ -188,7 +201,7 @@ def nichols_grid(cl_mags=None, cl_phases=None, line_style='dotted', ax=None, :doc:`Matplotlib linestyle \ ` ax : matplotlib.axes.Axes, optional - Axes to add grid to. If ``None``, use ``plt.gca()``. + Axes to add grid to. If ``None``, use ``matplotlib.pyplot.gca()``. label_cl_phases: bool, optional If True, closed-loop phase lines will be labelled. diff --git a/control/phaseplot.py b/control/phaseplot.py index b25c1ce53..5004332d7 100644 --- a/control/phaseplot.py +++ b/control/phaseplot.py @@ -94,8 +94,10 @@ def phase_plane_plot( color : str Plot all elements in the given color (use `plot_={'color': c}` to set the color in one element of the phase plot. - ax : Axes - Use the given axes for the plot instead of creating a new figure. + ax : matplotlib.axes.Axes, optional + The matplotlib axes to draw the figure on. If not specified and + the current figure has a single axes, that axes is used. + Otherwise, a new figure is created. Returns ------- @@ -265,7 +267,7 @@ def vectorfield( dict with key 'args' and value given by a tuple (passed to callable). color : str Plot the vector field in the given color. - ax : Axes + ax : matplotlib.axes.Axes Use the given axes for the plot, otherwise use the current axes. Returns @@ -359,7 +361,7 @@ def streamlines( dict with key 'args' and value given by a tuple (passed to callable). color : str Plot the streamlines in the given color. - ax : Axes + ax : matplotlib.axes.Axes Use the given axes for the plot, otherwise use the current axes. Returns @@ -470,7 +472,7 @@ def equilpoints( dict with key 'args' and value given by a tuple (passed to callable). color : str Plot the equilibrium points in the given color. - ax : Axes + ax : matplotlib.axes.Axes Use the given axes for the plot, otherwise use the current axes. Returns @@ -554,7 +556,7 @@ def separatrices( dict with key 'args' and value given by a tuple (passed to callable). color : str Plot the streamlines in the given color. - ax : Axes + ax : matplotlib.axes.Axes Use the given axes for the plot, otherwise use the current axes. Returns diff --git a/control/pzmap.py b/control/pzmap.py index 1c86f1323..d0b775274 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -19,7 +19,7 @@ from . import config from .ctrlplot import ControlPlot, _get_line_labels, _process_ax_keyword, \ - _process_line_labels, _update_plot_title + _process_legend_keywords, _process_line_labels, _update_plot_title from .freqplot import _freqplot_defaults from .grid import nogrid, sgrid, zgrid from .iosys import isctime, isdtime @@ -171,7 +171,7 @@ def pole_zero_map(sysdata): # https://matplotlib.org/2.0.2/examples/axes_grid/demo_curvelinear_grid.html def pole_zero_plot( data, plot=None, grid=None, title=None, marker_color=None, - marker_size=None, marker_width=None, legend_loc='upper right', + marker_size=None, marker_width=None, xlim=None, ylim=None, interactive=None, ax=None, scaling=None, initial_gain=None, label=None, **kwargs): """Plot a pole/zero map for a linear system. @@ -227,27 +227,35 @@ def pole_zero_plot( Other Parameters ---------------- - scaling : str or list, optional - Set the type of axis scaling. Can be 'equal' (default), 'auto', or - a list of the form [xmin, xmax, ymin, ymax]. + ax : matplotlib.axes.Axes, optional + The matplotlib axes to draw the figure on. If not specified and + the current figure has a single axes, that axes is used. + Otherwise, a new figure is created. initial_gain : float, optional If given, the specified system gain will be marked on the plot. interactive : bool, optional Turn off interactive mode for root locus plots. - label : str or array-like of str + label : str or array_like of str, optional If present, replace automatically generated label(s) with given label(s). If data is a list, strings should be specified for each system. - legend_loc : str, optional - For plots with multiple lines, a legend will be included in the - given location. Default is 'center right'. Use False to supress. + legend_loc : int or str, optional + Include a legend in the given location. Default is 'center right', + with no legend for a single response. Use False to supress legend. marker_color : str, optional Set the color of the markers used for poles and zeros. marker_size : int, optional Set the size of the markers used for poles and zeros. marker_width : int, optional Set the line width of the markers used for poles and zeros. + scaling : str or list, optional + Set the type of axis scaling. Can be 'equal' (default), 'auto', or + a list of the form [xmin, xmax, ymin, ymax]. + show_legend : bool, optional + Force legend to be shown if ``True`` or hidden if ``False``. If + ``None``, then show legend when there is more than one line on the + plot or ``legend_loc`` has been specified. title : str, optional Set the title of the plot. Defaults to plot type and system name(s). xlim : list, optional @@ -269,8 +277,7 @@ def pole_zero_plot( marker_size = config._get_param('pzmap', 'marker_size', marker_size, 6) marker_width = config._get_param('pzmap', 'marker_width', marker_width, 1.5) rcParams = config._get_param( - 'freqplot', 'rcParams', kwargs, _freqplot_defaults, - pop=True, last=True) + 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) user_ax = ax xlim_user, ylim_user = xlim, ylim @@ -315,6 +322,12 @@ def pole_zero_plot( # Initialize the figure fig, ax = _process_ax_keyword( user_ax, rcParams=rcParams, squeeze=True, create_axes=False) + legend_loc, _, show_legend = _process_legend_keywords( + kwargs, None, 'upper right') + + # Make sure there are no remaining keyword arguments + if kwargs: + raise TypeError("unrecognized keywords: ", str(kwargs)) if ax is None: # Determine what type of grid to use @@ -323,7 +336,7 @@ def pole_zero_plot( grid = config._get_param('rlocus', 'grid', grid, _rlocus_defaults) else: grid = config._get_param('pzmap', 'grid', grid, _pzmap_defaults) - + # Create the axes with the appropriate grid with plt.rc_context(rcParams): if grid and grid != 'empty': @@ -347,7 +360,7 @@ def pole_zero_plot( xlim, ylim = ax.get_xlim(), ax.get_ylim() if grid is not None: warnings.warn("axis already exists; grid keyword ignored") - + # Handle color cycle manually as all root locus segments # of the same system are expected to be of the same color # TODO: replace with common function? @@ -429,7 +442,7 @@ def pole_zero_plot( lines, labels = _get_line_labels(ax) # Add legend if there is more than one system plotted - if len(labels) > 1 and legend_loc is not False: + if show_legend or len(labels) > 1 and show_legend != False: if response.loci is None: # Use "x o" for the system label, via matplotlib tuple handler from matplotlib.legend_handler import HandlerTuple diff --git a/control/rlocus.py b/control/rlocus.py index a65604089..6365f4e8d 100644 --- a/control/rlocus.py +++ b/control/rlocus.py @@ -127,8 +127,6 @@ def root_locus_plot( for continuous time systems, unit circle for discrete time systems. If `empty`, do not draw any additonal lines. Default value is set by config.default['rlocus.grid']. - ax : :class:`matplotlib.axes.Axes` - Axes on which to create root locus plot initial_gain : float, optional Mark the point on the root locus diagram corresponding to the given gain. @@ -159,6 +157,26 @@ def root_locus_plot( root locations, arranged such that each row corresponds to a gain, and the array of gains (same as `gains` keyword argument if provided). + Other Parameters + ---------------- + ax : matplotlib.axes.Axes, optional + The matplotlib axes to draw the figure on. If not specified and + the current figure has a single axes, that axes is used. + Otherwise, a new figure is created. + label : str or array_like of str, optional + If present, replace automatically generated label(s) with the given + label(s). If sysdata is a list, strings should be specified for each + system. + legend_loc : int or str, optional + Include a legend in the given location. Default is 'center right', + with no legend for a single response. Use False to supress legend. + show_legend : bool, optional + Force legend to be shown if ``True`` or hidden if ``False``. If + ``None``, then show legend when there is more than one line on the + plot or ``legend_loc`` has been specified. + title : str, optional + Set the title of the plot. Defaults to plot type and system name(s). + Notes ----- The root_locus_plot function calls matplotlib.pyplot.axis('equal'), which diff --git a/control/tests/ctrlplot_test.py b/control/tests/ctrlplot_test.py index 84f10bea0..5abbb1dc2 100644 --- a/control/tests/ctrlplot_test.py +++ b/control/tests/ctrlplot_test.py @@ -30,8 +30,27 @@ ] nolabel_plot_fcns = [ct.describing_function_plot, ct.phase_plane_plot] +legacy_plot_fcns = [ct.gangof4_plot] +multiaxes_plot_fcns = [ct.bode_plot, ct.gangof4_plot, ct.time_response_plot] deprecated_fcns = [ct.phase_plot] + +# Utility function to make sure legends are OK +def assert_legend(cplt, expected_texts): + # Check to make sure the labels are OK in legend + legend = None + for ax in cplt.axes.flatten(): + legend = ax.get_legend() + if legend is not None: + break + if expected_texts is None: + assert legend is None + else: + assert legend is not None + legend_texts = [entry.get_text() for entry in legend.get_texts()] + assert legend_texts == expected_texts + + # Make sure we didn't miss any plotting functions def test_find_respplot_functions(): # Get the list of plotting functions @@ -66,13 +85,14 @@ def test_plot_ax_processing(resp_fcn, plot_fcn): sys2 = ct.rss(4, 1, 1, strictly_proper=True) # Set up arguments - kwargs = meth_kwargs = plot_fcn_kwargs = {} + kwargs = resp_kwargs = meth_kwargs = plot_kwargs = {} get_line_color = lambda cplt: cplt.lines.reshape(-1)[0][0].get_color() match resp_fcn, plot_fcn: case ct.describing_function_response, _: F = ct.descfcn.saturation_nonlinearity(1) amp = np.linspace(1, 4, 10) args = (sys1, F, amp) + resp_kwargs = {'refine': False} case ct.gangof4_response, _: args = (sys1, sys2) @@ -83,7 +103,7 @@ def test_plot_ax_processing(resp_fcn, plot_fcn): case ct.root_locus_map, ct.root_locus_plot: args = (sys1, ) - meth_kwargs = plot_fcn_kwargs = {'interactive': False} + plot_kwargs = {'interactive': False} case (ct.forced_response | ct.input_output_response, _): timepts = np.linspace(1, 10) @@ -100,19 +120,19 @@ def test_plot_ax_processing(resp_fcn, plot_fcn): # Call the plot through the response function if resp_fcn is not None: - resp = resp_fcn(*args, **kwargs) - cplt1 = resp.plot(**kwargs, **meth_kwargs) + resp = resp_fcn(*args, **kwargs, **resp_kwargs) + cplt1 = resp.plot(**kwargs, **plot_kwargs, **meth_kwargs) else: # No response function available; just plot the data - cplt1 = plot_fcn(*args, **kwargs, **meth_kwargs) + cplt1 = plot_fcn(*args, **kwargs, **plot_kwargs) assert isinstance(cplt1, ct.ControlPlot) # Call the plot directly, plotting on top of previous plot if plot_fcn == ct.time_response_plot: # Can't call the time_response_plot() with system => reuse data - cplt2 = plot_fcn(resp, **kwargs, **plot_fcn_kwargs) + cplt2 = plot_fcn(resp, **kwargs, **plot_kwargs) else: - cplt2 = plot_fcn(*args, **kwargs, **plot_fcn_kwargs) + cplt2 = plot_fcn(*args, **kwargs, **plot_kwargs) assert isinstance(cplt2, ct.ControlPlot) # Plot should have landed on top of previous plot, in different colors @@ -126,7 +146,7 @@ def test_plot_ax_processing(resp_fcn, plot_fcn): if resp_fcn is not None: cplt3 = resp.plot(**kwargs, **meth_kwargs, ax=cplt1.axes) else: - cplt3 = plot_fcn(*args, **kwargs, **meth_kwargs, ax=cplt1.axes) + cplt3 = plot_fcn(*args, **kwargs, **plot_kwargs, ax=cplt1.axes) assert cplt3.figure == cplt1.figure # Plot should have landed on top of previous plot, in different colors @@ -170,43 +190,36 @@ def test_plot_ax_processing(resp_fcn, plot_fcn): # Call the plotting function, passing the axes if resp_fcn is not None: - resp = resp_fcn(*args, **kwargs) + resp = resp_fcn(*args, **kwargs, **resp_kwargs) cplt4 = resp.plot(**kwargs, **meth_kwargs, ax=ax) else: # No response function available; just plot the data - cplt4 = plot_fcn(*args, **kwargs, **meth_kwargs, ax=ax) + cplt4 = plot_fcn(*args, **kwargs, **plot_kwargs, ax=ax) # Check to make sure original settings did not change assert fig._suptitle.get_text() == title assert fig._suptitle.get_fontsize() == titlesize assert ax[0].get_yticklabels()[0].get_fontsize() == labelsize + # Make sure that docstring documents ax keyword + if plot_fcn not in legacy_plot_fcns: + if plot_fcn in multiaxes_plot_fcns: + assert "ax : array of matplotlib.axes.Axes, optional" \ + in plot_fcn.__doc__ + else: + assert "ax : matplotlib.axes.Axes, optional" in plot_fcn.__doc__ + @pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) @pytest.mark.usefixtures('mplcleanup') def test_plot_label_processing(resp_fcn, plot_fcn): - # Utility function to make sure legends are OK - def assert_legend(cplt, expected_texts): - # Check to make sure the labels are OK in legend - legend = None - for ax in cplt.axes.flatten(): - legend = ax.get_legend() - if legend is not None: - break - if expected_texts is None: - assert legend is None - else: - assert legend is not None - legend_texts = [entry.get_text() for entry in legend.get_texts()] - assert legend_texts == expected_texts - # Create some systems to use sys1 = ct.rss(2, 1, 1, strictly_proper=True, name="sys[1]") sys1c = ct.rss(4, 1, 1, strictly_proper=True, name="sys[1]_C") sys2 = ct.rss(4, 1, 1, strictly_proper=True, name="sys[2]") # Set up arguments - kwargs = meth_kwargs = plot_fcn_kwargs = {} + kwargs = resp_kwargs = plot_kwargs = meth_kwargs = {} default_labels = ["sys[1]", "sys[2]"] expected_labels = ["sys1_", "sys2_"] match resp_fcn, plot_fcn: @@ -215,6 +228,7 @@ def assert_legend(cplt, expected_texts): amp = np.linspace(1, 4, 10) args1 = (sys1, F, amp) args2 = (sys2, F, amp) + resp_kwargs = {'refine': False} case ct.gangof4_response, _: args1 = (sys1, sys1c) @@ -229,7 +243,7 @@ def assert_legend(cplt, expected_texts): case ct.root_locus_map, ct.root_locus_plot: args1 = (sys1, ) args2 = (sys2, ) - meth_kwargs = plot_fcn_kwargs = {'interactive': False} + plot_kwargs = {'interactive': False} case (ct.forced_response | ct.input_output_response, _): timepts = np.linspace(1, 10) @@ -251,36 +265,36 @@ def assert_legend(cplt, expected_texts): pytest.skip(f"labels not implemented for {plot_fcn}") # Generate the first plot, with default labels - cplt1 = plot_fcn(*args1, **kwargs, **plot_fcn_kwargs) + cplt1 = plot_fcn(*args1, **kwargs, **plot_kwargs) assert isinstance(cplt1, ct.ControlPlot) assert_legend(cplt1, None) # Generate second plot with default labels - cplt2 = plot_fcn(*args2, **kwargs, **plot_fcn_kwargs) + cplt2 = plot_fcn(*args2, **kwargs, **plot_kwargs) assert isinstance(cplt2, ct.ControlPlot) assert_legend(cplt2, default_labels) plt.close() # Generate both plots at the same time if len(args1) == 1 and plot_fcn != ct.time_response_plot: - cplt = plot_fcn([*args1, *args2], **kwargs, **plot_fcn_kwargs) + cplt = plot_fcn([*args1, *args2], **kwargs, **plot_kwargs) assert isinstance(cplt, ct.ControlPlot) assert_legend(cplt, default_labels) elif len(args1) == 1 and plot_fcn == ct.time_response_plot: # Use TimeResponseList.plot() to generate combined response - cplt = argsc[0].plot(**kwargs, **plot_fcn_kwargs) + cplt = argsc[0].plot(**kwargs, **meth_kwargs) assert isinstance(cplt, ct.ControlPlot) assert_legend(cplt, default_labels) plt.close() # Generate plots sequentially, with updated labels cplt1 = plot_fcn( - *args1, **kwargs, **plot_fcn_kwargs, label=expected_labels[0]) + *args1, **kwargs, **plot_kwargs, label=expected_labels[0]) assert isinstance(cplt1, ct.ControlPlot) assert_legend(cplt1, None) cplt2 = plot_fcn( - *args2, **kwargs, **plot_fcn_kwargs, label=expected_labels[1]) + *args2, **kwargs, **plot_kwargs, label=expected_labels[1]) assert isinstance(cplt2, ct.ControlPlot) assert_legend(cplt2, expected_labels) plt.close() @@ -288,16 +302,176 @@ def assert_legend(cplt, expected_texts): # Generate both plots at the same time, with updated labels if len(args1) == 1 and plot_fcn != ct.time_response_plot: cplt = plot_fcn( - [*args1, *args2], **kwargs, **plot_fcn_kwargs, + [*args1, *args2], **kwargs, **plot_kwargs, label=expected_labels) assert isinstance(cplt, ct.ControlPlot) assert_legend(cplt, expected_labels) elif len(args1) == 1 and plot_fcn == ct.time_response_plot: # Use TimeResponseList.plot() to generate combined response cplt = argsc[0].plot( - **kwargs, **plot_fcn_kwargs, label=expected_labels) + **kwargs, **meth_kwargs, label=expected_labels) assert isinstance(cplt, ct.ControlPlot) assert_legend(cplt, expected_labels) + plt.close() + + # Make sure that docstring documents label + if plot_fcn not in legacy_plot_fcns: + assert "label : str or array_like of str, optional" in plot_fcn.__doc__ + + +@pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) +@pytest.mark.usefixtures('mplcleanup') +def test_siso_plot_legend_processing(resp_fcn, plot_fcn): + # Create some systems to use + sys1 = ct.rss(2, 1, 1, strictly_proper=True, name="sys[1]") + sys1c = ct.rss(4, 1, 1, strictly_proper=True, name="sys[1]_C") + sys2 = ct.rss(4, 1, 1, strictly_proper=True, name="sys[2]") + + # Set up arguments + kwargs = resp_kwargs = plot_kwargs = meth_kwargs = {} + default_labels = ["sys[1]", "sys[2]"] + match resp_fcn, plot_fcn: + case ct.describing_function_response, _: + F = ct.descfcn.saturation_nonlinearity(1) + amp = np.linspace(1, 4, 10) + args1 = (sys1, F, amp) + args2 = (sys2, F, amp) + resp_kwargs = {'refine': False} + + case ct.gangof4_response, _: + # Multi-axes plot => test in next function + return + + case ct.frequency_response, ct.nichols_plot: + args1 = (sys1, ) + args2 = (sys2, ) + meth_kwargs = {'plot_type': 'nichols'} + + case ct.root_locus_map, ct.root_locus_plot: + args1 = (sys1, ) + args2 = (sys2, ) + plot_kwargs = {'interactive': False} + + case (ct.forced_response | ct.input_output_response, _): + timepts = np.linspace(1, 10) + U = np.sin(timepts) + args1 = (resp_fcn(sys1, timepts, U), ) + args2 = (resp_fcn(sys2, timepts, U), ) + argsc = (resp_fcn([sys1, sys2], timepts, U), ) + + case (ct.impulse_response | ct.initial_response | ct.step_response, _): + args1 = (resp_fcn(sys1), ) + args2 = (resp_fcn(sys2), ) + argsc = (resp_fcn([sys1, sys2]), ) + + case _, _: + args1 = (sys1, ) + args2 = (sys2, ) + + if plot_fcn in nolabel_plot_fcns: + # Make sure that using legend keywords generates an error + with pytest.raises(TypeError, match="unexpected|unrecognized"): + cplt = plot_fcn(*args1, legend_loc=None) + with pytest.raises(TypeError, match="unexpected|unrecognized"): + cplt = plot_fcn(*args1, legend_map=None) + with pytest.raises(TypeError, match="unexpected|unrecognized"): + cplt = plot_fcn(*args1, show_legend=None) + return + + # Single system, with forced legend + cplt = plot_fcn(*args1, **kwargs, **plot_kwargs, show_legend=True) + assert_legend(cplt, default_labels[:1]) + plt.close() + + # Single system, with forced location + cplt = plot_fcn(*args1, **kwargs, **plot_kwargs, legend_loc=10) + assert cplt.axes[0, 0].get_legend()._loc == 10 + plt.close() + + # Generate two plots, but turn off legends + if len(args1) == 1 and plot_fcn != ct.time_response_plot: + cplt = plot_fcn( + [*args1, *args2], **kwargs, **plot_kwargs, show_legend=False) + assert_legend(cplt, None) + elif len(args1) == 1 and plot_fcn == ct.time_response_plot: + # Use TimeResponseList.plot() to generate combined response + cplt = argsc[0].plot(**kwargs, **meth_kwargs, show_legend=False) + assert_legend(cplt, None) + plt.close() + + # Make sure that docstring documents legend_loc, show_legend + assert "legend_loc : int or str, optional" in plot_fcn.__doc__ + assert "show_legend : bool, optional" in plot_fcn.__doc__ + + # Make sure that single axes plots generate an error with legend_map + if plot_fcn not in multiaxes_plot_fcns: + with pytest.raises(TypeError, match="unexpected"): + cplt = plot_fcn(*args1, legend_map=False) + else: + assert "legend_map : array of str" in plot_fcn.__doc__ + + +@pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) +@pytest.mark.usefixtures('mplcleanup') +def test_mimo_plot_legend_processing(resp_fcn, plot_fcn): + # Generate the response that we will use for plotting + match resp_fcn, plot_fcn: + case ct.frequency_response, ct.bode_plot: + resp = ct.frequency_response([ct.rss(4, 2, 2), ct.rss(3, 2, 2)]) + case ct.step_response, ct.time_response_plot: + resp = ct.step_response([ct.rss(4, 2, 2), ct.rss(3, 2, 2)]) + case ct.gangof4_response, ct.gangof4_plot: + resp = ct.gangof4_response(ct.rss(4, 1, 1), ct.rss(3, 1, 1)) + case _, ct.time_response_plot: + # Skip remaining time response plots to avoid duplicate tests + return + case _, _: + # Skip everything else that doesn't support multi-axes plots + assert plot_fcn not in multiaxes_plot_fcns + return + + # Generate a standard plot with legend in the center + cplt1 = resp.plot(legend_loc=10) + assert cplt1.axes.ndim == 2 + for legend_idx, ax in enumerate(cplt1.axes.flatten()): + if ax.get_legend() is not None: + break; + assert legend_idx != 0 # Make sure legend is not in first subplot + assert ax.get_legend()._loc == 10 + plt.close() + + # Regenerate the plot with no legend + cplt2 = resp.plot(show_legend=False) + for ax in cplt2.axes.flatten(): + if ax.get_legend() is not None: + break; + assert ax.get_legend() is None + plt.close() + + # Regenerate the plot with no legend in a different way + cplt2 = resp.plot(legend_loc=False) + for ax in cplt2.axes.flatten(): + if ax.get_legend() is not None: + break; + assert ax.get_legend() is None + plt.close() + + # Regenerate the plot with no legend in a different way + cplt2 = resp.plot(legend_map=False) + for ax in cplt2.axes.flatten(): + if ax.get_legend() is not None: + break; + assert ax.get_legend() is None + plt.close() + + # Put the legend in a different (first) subplot + legend_map = np.full(cplt2.shape, None, dtype=object) + legend_map[0, 0] = 5 + legend_map[-1, -1] = 6 + cplt3 = resp.plot(legend_map=legend_map) + assert cplt3.axes[0, 0].get_legend()._loc == 5 + assert cplt3.axes[-1, -1].get_legend()._loc == 6 + plt.close() @pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) @@ -309,7 +483,7 @@ def test_plot_title_processing(resp_fcn, plot_fcn): sys2 = ct.rss(2, 1, 1, strictly_proper=True, name="sys[2]") # Set up arguments - kwargs = meth_kwargs = plot_fcn_kwargs = {} + kwargs = resp_kwargs = plot_kwargs = meth_kwargs = {} default_title = "sys[1], sys[2]" expected_title = "sys1_, sys2_" match resp_fcn, plot_fcn: @@ -318,6 +492,7 @@ def test_plot_title_processing(resp_fcn, plot_fcn): amp = np.linspace(1, 4, 10) args1 = (sys1, F, amp) args2 = (sys2, F, amp) + resp_kwargs = {'refine': False} case ct.gangof4_response, _: args1 = (sys1, sys1c) @@ -332,7 +507,7 @@ def test_plot_title_processing(resp_fcn, plot_fcn): case ct.root_locus_map, ct.root_locus_plot: args1 = (sys1, ) args2 = (sys2, ) - meth_kwargs = plot_fcn_kwargs = {'interactive': False} + plot_kwargs = {'interactive': False} case (ct.forced_response | ct.input_output_response, _): timepts = np.linspace(1, 10) @@ -384,31 +559,31 @@ def test_plot_title_processing(resp_fcn, plot_fcn): raise RuntimeError(f"didn't recognize {resp_fnc}, {plot_fnc}") # Generate the first plot, with default title - cplt1 = plot_fcn(*args1, **kwargs, **plot_fcn_kwargs) + cplt1 = plot_fcn(*args1, **kwargs, **plot_kwargs) assert cplt1.figure._suptitle._text.startswith(title_prefix) # Skip functions not intended for sequential calling if plot_fcn not in nolabel_plot_fcns: # Generate second plot with default title - cplt2 = plot_fcn(*args2, **kwargs, **plot_fcn_kwargs) + cplt2 = plot_fcn(*args2, **kwargs, **plot_kwargs) assert cplt1.figure._suptitle._text == title_prefix + default_title plt.close() # Generate both plots at the same time if len(args1) == 1 and plot_fcn != ct.time_response_plot: - cplt = plot_fcn([*args1, *args2], **kwargs, **plot_fcn_kwargs) + cplt = plot_fcn([*args1, *args2], **kwargs, **plot_kwargs) assert cplt.figure._suptitle._text == title_prefix + default_title elif len(args1) == 1 and plot_fcn == ct.time_response_plot: # Use TimeResponseList.plot() to generate combined response - cplt = argsc[0].plot(**kwargs, **plot_fcn_kwargs) + cplt = argsc[0].plot(**kwargs, **meth_kwargs) assert cplt.figure._suptitle._text == title_prefix + default_title plt.close() # Generate plots sequentially, with updated titles cplt1 = plot_fcn( - *args1, **kwargs, **plot_fcn_kwargs, title="My first title") + *args1, **kwargs, **plot_kwargs, title="My first title") cplt2 = plot_fcn( - *args2, **kwargs, **plot_fcn_kwargs, title="My new title") + *args2, **kwargs, **plot_kwargs, title="My new title") assert cplt2.figure._suptitle._text == "My new title" plt.close() @@ -419,8 +594,13 @@ def test_plot_title_processing(resp_fcn, plot_fcn): # Generate the plots with no title cplt = plot_fcn( - *args1, **kwargs, **plot_fcn_kwargs, title=False) + *args1, **kwargs, **plot_kwargs, title=False) assert cplt.figure._suptitle == None + plt.close() + + # Make sure that docstring documents title + if plot_fcn not in legacy_plot_fcns: + assert "title : str, optional" in plot_fcn.__doc__ @pytest.mark.usefixtures('mplcleanup') diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 081234624..6cc1e8641 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -698,22 +698,22 @@ def test_legend_customization(): resp_list = ct.step_response([sys1, sys2]) fig = plt.figure() - ct.combine_time_responses( + cplt = ct.combine_time_responses( [ct.step_response(sys1, resp_list[0].time), ct.step_response(sys2, resp_list[1].time)] ).plot(overlay_traces=True) - ct.suptitle("[Combine] " + fig._suptitle._text) + cplt.set_plot_title("[Combine] " + fig._suptitle._text) fig = plt.figure() ct.step_response(sys1).plot() - ct.step_response(sys2).plot() - ct.suptitle("[Sequential] " + fig._suptitle._text) + cplt = ct.step_response(sys2).plot() + cplt.set_plot_title("[Sequential] " + fig._suptitle._text) fig = plt.figure() ct.step_response(sys1).plot(color='b') - ct.step_response(sys2).plot(color='r') - ct.suptitle("[Seq w/color] " + fig._suptitle._text) + cplt = ct.step_response(sys2).plot(color='r') + cplt.set_plot_title("[Seq w/color] " + fig._suptitle._text) fig = plt.figure() - ct.step_response([sys1, sys2]).plot() - ct.suptitle("[List] " + fig._suptitle._text) + cplt = ct.step_response([sys1, sys2]).plot() + cplt.set_plot_title("[List] " + fig._suptitle._text) diff --git a/control/timeplot.py b/control/timeplot.py index 31d17c117..bdfd93b8f 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -8,6 +8,7 @@ # Note: It might eventually make sense to put the functions here # directly into timeresp.py. +import itertools from warnings import warn import matplotlib as mpl @@ -16,7 +17,7 @@ from . import config from .ctrlplot import ControlPlot, _ctrlplot_rcParams, _make_legend_labels,\ - _update_plot_title + _process_legend_keywords, _update_plot_title __all__ = ['time_response_plot', 'combine_time_responses'] @@ -39,9 +40,8 @@ def time_response_plot( data, *fmt, ax=None, plot_inputs=None, plot_outputs=True, transpose=False, overlay_traces=False, overlay_signals=False, - legend_map=None, legend_loc=None, add_initial_zero=True, label=None, - trace_labels=None, title=None, relabel=True, show_legend=None, - **kwargs): + legend=None, add_initial_zero=True, label=None, + trace_labels=None, title=None, relabel=True, **kwargs): """Plot the time response of an input/output system. This function creates a standard set of plots for the input/output @@ -53,15 +53,12 @@ def time_response_plot( ---------- data : TimeResponseData Data to be plotted. - ax : array of Axes - The matplotlib Axes to draw the figure on. If not specified, the - Axes for the current figure are used or, if there is no current - figure with the correct number and shape of Axes, a new figure is - created. The default shape of the array should be (noutputs + - ninputs, ntraces), but if `overlay_traces` is set to `True` then - only one row is needed and if `overlay_signals` is set to `True` - then only one or two columns are needed (depending on plot_inputs - and plot_outputs). + ax : array of matplotlib.axes.Axes, optional + The matplotlib axes to draw the figure on. If not specified, the + axes for the current figure are used or, if there is no current + figure with the correct number and shape of axes, a new figure is + created. The shape of the array must match the shape of the + plotted data. plot_inputs : bool or str, optional Sets how and where to plot the inputs: * False: don't plot the inputs @@ -114,20 +111,20 @@ def time_response_plot( input_props : array of dicts List of line properties to use when plotting combined inputs. The default values are set by config.defaults['timeplot.input_props']. - label : str or array_like of str + label : str or array_like of str, optional If present, replace automatically generated label(s) with the given label(s). If more than one line is being generated, an array of labels should be provided with label[trace, :, 0] representing the output labels and label[trace, :, 1] representing the input labels. - legend_map : array of str, option - Location of the legend for multi-trace plots. Specifies an array + legend_map : array of str, optional + Location of the legend for multi-axes plots. Specifies an array of legend location strings matching the shape of the subplots, with each entry being either None (for no legend) or a legend location string (see :func:`~matplotlib.pyplot.legend`). - legend_loc : str - Location of the legend within the axes for which it appears. This - value is used if legend_map is None. - output_props : array of dicts + legend_loc : int or str, optional + Include a legend in the given location. Default is 'center right', + with no legend for a single response. Use False to supress legend. + output_props : array of dicts, optional List of line properties to use when plotting combined outputs. The default values are set by config.defaults['timeplot.output_props']. relabel : bool, optional @@ -137,7 +134,7 @@ def time_response_plot( show_legend : bool, optional Force legend to be shown if ``True`` or hidden if ``False``. If ``None``, then show legend when there is more than one line on an - axis or ``legend_loc`` or ``legend_map`` have been specified. + axis or ``legend_loc`` or ``legend_map`` has been specified. time_label : str, optional Label to use for the time axis. title : str, optional @@ -292,6 +289,8 @@ def time_response_plot( # See if we can use the current figure axes fig, ax_array = _process_ax_keyword(ax, (nrows, ncols), rcParams=rcParams) + legend_loc, legend_map, show_legend = _process_legend_keywords( + kwargs, (nrows, ncols), 'center right') # # Map inputs/outputs and traces to axes @@ -571,12 +570,8 @@ def _make_line_label(signal_index, signal_labels, trace_index): # # Figure out where to put legends - if legend_map is None: + if show_legend != False and legend_map is None: legend_map = np.full(ax_array.shape, None, dtype=object) - if legend_loc == None: - legend_loc = 'center right' - else: - show_legend = True if show_legend is None else show_legend if transpose: if (overlay_signals or plot_inputs == 'overlay') and overlay_traces: @@ -601,6 +596,7 @@ def _make_line_label(signal_index, signal_labels, trace_index): else: # Put legend in the upper right legend_map[0, -1] = legend_loc + else: # regular layout if (overlay_signals or plot_inputs == 'overlay') and overlay_traces: # Put a legend in each plot for inputs and outputs @@ -624,31 +620,25 @@ def _make_line_label(signal_index, signal_labels, trace_index): else: # Put legend in the upper right legend_map[0, -1] = legend_loc - else: - # Make sure the legend map is the right size - legend_map = np.atleast_2d(legend_map) - if legend_map.shape != ax_array.shape: - raise ValueError("legend_map shape just match axes shape") - - # Turn legend on unless overridden by user - show_legend = True if show_legend is None else show_legend - # Create axis legends - legend_array = np.full(ax_array.shape, None, dtype=object) - for i in range(nrows): - for j in range(ncols): + if show_legend != False: + # Create axis legends + legend_array = np.full(ax_array.shape, None, dtype=object) + for i, j in itertools.product(range(nrows), range(ncols)): + if legend_map[i, j] is None: + continue ax = ax_array[i, j] labels = [line.get_label() for line in ax.get_lines()] if line_labels is None: labels = _make_legend_labels(labels, plot_inputs == 'overlay') # Update the labels to remove common strings - if show_legend != False and \ - (len(labels) > 1 or show_legend) and \ - legend_map[i, j] != None: + if show_legend == True or len(labels) > 1: with plt.rc_context(rcParams): legend_array[i, j] = ax.legend( labels, loc=legend_map[i, j]) + else: + legend_array = None # # Update the plot title (= figure suptitle) From 2e4961cef029956021b7703f3213d5ed0eca4bdc Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 20 Jul 2024 13:36:08 -0700 Subject: [PATCH 053/448] change suptitle_frame to title_frame --- control/freqplot.py | 22 +++++++++++----------- control/tests/freqplot_test.py | 16 ++++++++-------- control/tests/timeplot_test.py | 2 +- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/control/freqplot.py b/control/freqplot.py index 95f7cffd6..394d9c004 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -50,7 +50,7 @@ 'freqplot.share_magnitude': 'row', 'freqplot.share_phase': 'row', 'freqplot.share_frequency': 'col', - 'freqplot.suptitle_frame': 'axes', + 'freqplot.title_frame': 'axes', } # @@ -253,8 +253,8 @@ def bode_plot( 'freqplot', 'initial_phase', kwargs, None, pop=True) rcParams = config._get_param( 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) - suptitle_frame = config._get_param( - 'freqplot', 'suptitle_frame', kwargs, _freqplot_defaults, pop=True) + title_frame = config._get_param( + 'freqplot', 'title_frame', kwargs, _freqplot_defaults, pop=True) # Set the default labels freq_label = config._get_param( @@ -977,10 +977,10 @@ def gen_zero_centered_series(val_min, val_max, period): else: # Allow data to set the title (used by gangof4) title = data[0].title - _update_plot_title(title, fig, rcParams=rcParams, frame=suptitle_frame) + _update_plot_title(title, fig, rcParams=rcParams, frame=title_frame) elif ax is None: _update_plot_title( - title, fig=fig, rcParams=rcParams, frame=suptitle_frame, + title, fig=fig, rcParams=rcParams, frame=title_frame, use_existing=False) # @@ -1712,8 +1712,8 @@ def nyquist_plot( 'nyquist', 'start_marker', kwargs, _nyquist_defaults, pop=True) start_marker_size = config._get_param( 'nyquist', 'start_marker_size', kwargs, _nyquist_defaults, pop=True) - suptitle_frame = config._get_param( - 'freqplot', 'suptitle_frame', kwargs, _freqplot_defaults, pop=True) + title_frame = config._get_param( + 'freqplot', 'title_frame', kwargs, _freqplot_defaults, pop=True) # Set line styles for the curves def _parse_linestyle(style_name, allow_false=False): @@ -1985,7 +1985,7 @@ def _parse_linestyle(style_name, allow_false=False): if title is None: title = "Nyquist plot for " + ", ".join(labels) _update_plot_title( - title, fig=fig, rcParams=rcParams, frame=suptitle_frame, + title, fig=fig, rcParams=rcParams, frame=title_frame, use_existing=False) # Legacy return pocessing @@ -2321,8 +2321,8 @@ def singular_values_plot( 'freqplot', 'grid', kwargs, _freqplot_defaults, pop=True) rcParams = config._get_param( 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) - suptitle_frame = config._get_param( - 'freqplot', 'suptitle_frame', kwargs, _freqplot_defaults, pop=True) + title_frame = config._get_param( + 'freqplot', 'title_frame', kwargs, _freqplot_defaults, pop=True) # If argument was a singleton, turn it into a tuple data = data if isinstance(data, (list, tuple)) else (data,) @@ -2458,7 +2458,7 @@ def singular_values_plot( if title is None: title = "Singular values for " + ", ".join(labels) _update_plot_title( - title, fig=fig, rcParams=rcParams, frame=suptitle_frame, + title, fig=fig, rcParams=rcParams, frame=title_frame, use_existing=False) # Legacy return processing diff --git a/control/tests/freqplot_test.py b/control/tests/freqplot_test.py index 509dd555b..8f8c53861 100644 --- a/control/tests/freqplot_test.py +++ b/control/tests/freqplot_test.py @@ -62,7 +62,7 @@ def test_response_plots( ovlout, ovlinp, clear=True): # Use figure frame for suptitle to speed things up - ct.set_defaults('freqplot', suptitle_frame='figure') + ct.set_defaults('freqplot', title_frame='figure') # Save up the keyword arguments kwargs = dict( @@ -158,7 +158,7 @@ def test_manual_response_limits(): @pytest.mark.usefixtures("editsdefaults") def test_line_styles(plt_fcn): # Use figure frame for suptitle to speed things up - ct.set_defaults('freqplot', suptitle_frame='figure') + ct.set_defaults('freqplot', title_frame='figure') # Define a couple of systems for testing sys1 = ct.tf([1], [1, 2, 1], name='sys1') @@ -266,7 +266,7 @@ def test_gangof4_plots(savefigs=False): @pytest.mark.usefixtures("editsdefaults") def test_first_arg_listable(response_cmd, return_type): # Use figure frame for suptitle to speed things up - ct.set_defaults('freqplot', suptitle_frame='figure') + ct.set_defaults('freqplot', title_frame='figure') sys = ct.rss(2, 1, 1) @@ -302,7 +302,7 @@ def test_first_arg_listable(response_cmd, return_type): @pytest.mark.usefixtures("editsdefaults") def test_bode_share_options(): # Use figure frame for suptitle to speed things up - ct.set_defaults('freqplot', suptitle_frame='figure') + ct.set_defaults('freqplot', title_frame='figure') # Default sharing should share along rows and cols for mag and phase lines = ct.bode_plot(manual_response) @@ -365,7 +365,7 @@ def test_freqplot_plot_type(plot_type): @pytest.mark.usefixtures("editsdefaults") def test_freqplot_omega_limits(plt_fcn): # Use figure frame for suptitle to speed things up - ct.set_defaults('freqplot', suptitle_frame='figure') + ct.set_defaults('freqplot', title_frame='figure') # Utility function to check visible limits def _get_visible_limits(ax): @@ -442,7 +442,7 @@ def test_freqplot_line_labels(plt_fcn): sys2 = ct.rss(3, 1, 1, name='sys2') # Use figure frame for suptitle to speed things up - ct.set_defaults('freqplot', suptitle_frame='figure') + ct.set_defaults('freqplot', title_frame='figure') # Make sure default labels are as expected cplt = plt_fcn([sys1, sys2]) @@ -515,7 +515,7 @@ def test_freqplot_ax_keyword(plt_fcn, ninputs, noutputs): pytest.skip("MIMO not implemented for Nyquist/Nichols") # Use figure frame for suptitle to speed things up - ct.set_defaults('freqplot', suptitle_frame='figure') + ct.set_defaults('freqplot', title_frame='figure') # System to use sys = ct.rss(4, ninputs, noutputs) @@ -666,7 +666,7 @@ def test_freqresplist_unknown_kw(): for args in test_cases: test_response_plots(*args, ovlinp=False, ovlout=False, clear=False) - # Reset suptitle_frame to the default value + # Reset title_frame to the default value ct.reset_defaults() # Define and run a selected set of interesting tests diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 6cc1e8641..775371d55 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -429,7 +429,7 @@ def test_timeplot_trace_labels(resp_fcn): kwargs = {'T': T, 'U': U} # Use figure frame for suptitle to speed things up - ct.set_defaults('freqplot', suptitle_frame='figure') + ct.set_defaults('freqplot', title_frame='figure') # Make sure default labels are as expected cplt = resp_fcn([sys1, sys2], **kwargs).plot() From 02f2724cf36f1eb1a290c64a5f507d495cdb2e00 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 20 Jul 2024 22:55:18 -0700 Subject: [PATCH 054/448] update rcParams processing --- control/config.py | 5 ++ control/ctrlplot.py | 26 ++++--- control/freqplot.py | 20 ++--- control/nichols.py | 3 +- control/phaseplot.py | 20 ++--- control/pzmap.py | 3 +- control/tests/ctrlplot_test.py | 136 +++++++++++++++++++++++++++++---- control/timeplot.py | 6 +- 8 files changed, 163 insertions(+), 56 deletions(-) diff --git a/control/config.py b/control/config.py index b6d5385d4..260c7dac6 100644 --- a/control/config.py +++ b/control/config.py @@ -10,6 +10,7 @@ import collections import warnings + from .exception import ControlArgument __all__ = ['defaults', 'set_defaults', 'reset_defaults', @@ -121,6 +122,10 @@ def reset_defaults(): # System level defaults defaults.update(_control_defaults) + from .ctrlplot import _ctrlplot_defaults, reset_rcParams + reset_rcParams() + defaults.update(_ctrlplot_defaults) + from .freqplot import _freqplot_defaults, _nyquist_defaults defaults.update(_freqplot_defaults) defaults.update(_nyquist_defaults) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index e6a7589f6..14b27c703 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -10,8 +10,7 @@ # ax = kwargs.pop('ax', None) # color = kwargs.pop('color', None) # label = kwargs.pop('label', None) -# rcParams = config._get_param( -# 'nameplot', 'rcParams', kwargs, _nameplot_defaults, pop=True) +# rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) # # # Make sure all keyword arguments were processed (if not checked later) # if kwargs: @@ -89,21 +88,26 @@ from . import config -__all__ = ['ControlPlot', 'suptitle', 'get_plot_axes', 'pole_zero_subplots'] +__all__ = [ + 'ControlPlot', 'suptitle', 'get_plot_axes', 'pole_zero_subplots', + 'rcParams', 'reset_rcParams'] # # Style parameters # -_ctrlplot_rcParams = mpl.rcParams.copy() -_ctrlplot_rcParams.update({ +rcParams_default = { 'axes.labelsize': 'small', 'axes.titlesize': 'small', 'figure.titlesize': 'medium', 'legend.fontsize': 'x-small', 'xtick.labelsize': 'small', 'ytick.labelsize': 'small', -}) +} +_ctrlplot_rcParams = rcParams_default.copy() # provide access inside module +rcParams = _ctrlplot_rcParams # provide access outside module + +_ctrlplot_defaults = {'ctrlplot.rcParams': _ctrlplot_rcParams} # @@ -190,7 +194,6 @@ def set_plot_title(self, title, frame='axes'): _update_plot_title( title, fig=self.figure, frame=frame, use_existing=False) - # # User functions # @@ -198,7 +201,6 @@ def set_plot_title(self, title, frame='axes'): # information about them. # - def suptitle( title, fig=None, frame='axes', **kwargs): """Add a centered title to a figure. @@ -270,7 +272,7 @@ def pole_zero_subplots( 2D array of axes """ - from .grid import sgrid, zgrid, nogrid + from .grid import nogrid, sgrid, zgrid from .iosys import isctime if rcParams is None: @@ -307,6 +309,12 @@ def pole_zero_subplots( index += 1 return ax_array + +def reset_rcParams(): + """Reset rcParams to default values for control plots.""" + _ctrlplot_rcParams.update(rcParams_default) + + # # Utility functions # diff --git a/control/freqplot.py b/control/freqplot.py index 394d9c004..6c9894f1e 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -19,10 +19,9 @@ from . import config from .bdalg import feedback -from .ctrlplot import ControlPlot, _add_arrows_to_line2D, _ctrlplot_rcParams, \ - _find_axes_center, _get_line_labels, _make_legend_labels, \ - _process_ax_keyword, _process_legend_keywords, _process_line_labels, \ - _update_plot_title +from .ctrlplot import ControlPlot, _add_arrows_to_line2D, _find_axes_center, \ + _get_line_labels, _make_legend_labels, _process_ax_keyword, \ + _process_legend_keywords, _process_line_labels, _update_plot_title from .ctrlutil import unwrap from .exception import ControlMIMONotImplemented from .frdata import FrequencyResponseData @@ -38,7 +37,6 @@ # Default values for module parameter variables _freqplot_defaults = { - 'freqplot.rcParams': _ctrlplot_rcParams, 'freqplot.feature_periphery_decades': 1, 'freqplot.number_of_samples': 1000, 'freqplot.dB': False, # Plot gain in dB @@ -186,7 +184,7 @@ def bode_plot( values with no plot. rcParams : dict Override the default parameters used for generating plots. - Default is set by config.default['freqplot.rcParams']. + Default is set by config.default['ctrlplot.rcParams']. show_legend : bool, optional Force legend to be shown if ``True`` or hidden if ``False``. If ``None``, then show legend when there is more than one line on an @@ -251,8 +249,7 @@ def bode_plot( 'freqplot', 'wrap_phase', kwargs, _freqplot_defaults, pop=True) initial_phase = config._get_param( 'freqplot', 'initial_phase', kwargs, None, pop=True) - rcParams = config._get_param( - 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) title_frame = config._get_param( 'freqplot', 'title_frame', kwargs, _freqplot_defaults, pop=True) @@ -1026,7 +1023,6 @@ def gen_zero_centered_series(val_min, val_max, period): # Generate the label, if needed if show_legend == True or len(labels) > 1: with plt.rc_context(rcParams): - print(f"{lines=}, {labels=}") legend_array[i, j] = ax.legend( lines, labels, loc=legend_map[i, j]) else: @@ -1706,8 +1702,7 @@ def nyquist_plot( 'nyquist', 'max_curve_magnitude', kwargs, _nyquist_defaults, pop=True) max_curve_offset = config._get_param( 'nyquist', 'max_curve_offset', kwargs, _nyquist_defaults, pop=True) - rcParams = config._get_param( - 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) start_marker = config._get_param( 'nyquist', 'start_marker', kwargs, _nyquist_defaults, pop=True) start_marker_size = config._get_param( @@ -2319,8 +2314,7 @@ def singular_values_plot( 'freqplot', 'Hz', kwargs, _freqplot_defaults, pop=True) grid = config._get_param( 'freqplot', 'grid', kwargs, _freqplot_defaults, pop=True) - rcParams = config._get_param( - 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) title_frame = config._get_param( 'freqplot', 'title_frame', kwargs, _freqplot_defaults, pop=True) diff --git a/control/nichols.py b/control/nichols.py index e91659bc1..498f37b05 100644 --- a/control/nichols.py +++ b/control/nichols.py @@ -99,8 +99,7 @@ def nichols_plot( # Get parameter values grid = config._get_param('nichols', 'grid', grid, True) label = _process_line_labels(label) - rcParams = config._get_param( - 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) # If argument was a singleton, turn it into a list if not isinstance(data, (tuple, list)): diff --git a/control/phaseplot.py b/control/phaseplot.py index 5004332d7..c0839974e 100644 --- a/control/phaseplot.py +++ b/control/phaseplot.py @@ -37,7 +37,7 @@ from . import config from .ctrlplot import ControlPlot, _add_arrows_to_line2D, \ - _ctrlplot_rcParams, _process_ax_keyword, _update_plot_title + _process_ax_keyword, _update_plot_title from .exception import ControlNotImplemented from .nlsys import NonlinearIOSystem, find_eqpt, input_output_response @@ -45,7 +45,6 @@ # Default values for module parameter variables _phaseplot_defaults = { - 'phaseplot.rcParams': _ctrlplot_rcParams, 'phaseplot.arrows': 2, # number of arrows around curve 'phaseplot.arrow_size': 8, # pixel size for arrows 'phaseplot.separatrices_radius': 0.1 # initial radius for separatrices @@ -146,8 +145,7 @@ def phase_plane_plot( params = kwargs.get('params', None) sys = _create_system(sys, params) pointdata = [-1, 1, -1, 1] if pointdata is None else pointdata - rcParams = config._get_param( - 'timeplot', 'rcParams', kwargs, _phaseplot_defaults, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) # Create axis if needed user_ax = ax @@ -223,7 +221,7 @@ def _create_kwargs(global_kwargs, local_kwargs, **other_kwargs): if user_ax is None: if title is None: title = f"Phase portrait for {sys.name}" - _update_plot_title(title, use_existing=False) + _update_plot_title(title, use_existing=False, rcParams=rcParams) ax.set_xlabel(sys.state_labels[0]) ax.set_ylabel(sys.state_labels[1]) plt.tight_layout() @@ -281,8 +279,7 @@ def vectorfield( """ # Process keywords - rcParams = config._get_param( - 'timeplot', 'rcParams', kwargs, _phaseplot_defaults, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) # Get system parameters params = kwargs.pop('params', None) @@ -375,8 +372,7 @@ def streamlines( """ # Process keywords - rcParams = config._get_param( - 'timeplot', 'rcParams', kwargs, _phaseplot_defaults, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) # Get system parameters params = kwargs.pop('params', None) @@ -481,8 +477,7 @@ def equilpoints( """ # Process keywords - rcParams = config._get_param( - 'timeplot', 'rcParams', kwargs, _phaseplot_defaults, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) # Get system parameters params = kwargs.pop('params', None) @@ -570,8 +565,7 @@ def separatrices( """ # Process keywords - rcParams = config._get_param( - 'timeplot', 'rcParams', kwargs, _phaseplot_defaults, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) # Get system parameters params = kwargs.pop('params', None) diff --git a/control/pzmap.py b/control/pzmap.py index d0b775274..4f8062582 100644 --- a/control/pzmap.py +++ b/control/pzmap.py @@ -276,8 +276,7 @@ def pole_zero_plot( label = _process_line_labels(label) marker_size = config._get_param('pzmap', 'marker_size', marker_size, 6) marker_width = config._get_param('pzmap', 'marker_width', marker_width, 1.5) - rcParams = config._get_param( - 'freqplot', 'rcParams', kwargs, _freqplot_defaults, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) user_ax = ax xlim_user, ylim_user = xlim, ylim diff --git a/control/tests/ctrlplot_test.py b/control/tests/ctrlplot_test.py index 5abbb1dc2..754db3e0b 100644 --- a/control/tests/ctrlplot_test.py +++ b/control/tests/ctrlplot_test.py @@ -92,7 +92,7 @@ def test_plot_ax_processing(resp_fcn, plot_fcn): F = ct.descfcn.saturation_nonlinearity(1) amp = np.linspace(1, 4, 10) args = (sys1, F, amp) - resp_kwargs = {'refine': False} + resp_kwargs = plot_kwargs = {'refine': False} case ct.gangof4_response, _: args = (sys1, sys2) @@ -121,7 +121,7 @@ def test_plot_ax_processing(resp_fcn, plot_fcn): # Call the plot through the response function if resp_fcn is not None: resp = resp_fcn(*args, **kwargs, **resp_kwargs) - cplt1 = resp.plot(**kwargs, **plot_kwargs, **meth_kwargs) + cplt1 = resp.plot(**kwargs, **meth_kwargs) else: # No response function available; just plot the data cplt1 = plot_fcn(*args, **kwargs, **plot_kwargs) @@ -228,7 +228,7 @@ def test_plot_label_processing(resp_fcn, plot_fcn): amp = np.linspace(1, 4, 10) args1 = (sys1, F, amp) args2 = (sys2, F, amp) - resp_kwargs = {'refine': False} + resp_kwargs = plot_kwargs = {'refine': False} case ct.gangof4_response, _: args1 = (sys1, sys1c) @@ -336,7 +336,7 @@ def test_siso_plot_legend_processing(resp_fcn, plot_fcn): amp = np.linspace(1, 4, 10) args1 = (sys1, F, amp) args2 = (sys2, F, amp) - resp_kwargs = {'refine': False} + resp_kwargs = plot_kwargs = {'refine': False} case ct.gangof4_response, _: # Multi-axes plot => test in next function @@ -492,7 +492,7 @@ def test_plot_title_processing(resp_fcn, plot_fcn): amp = np.linspace(1, 4, 10) args1 = (sys1, F, amp) args2 = (sys2, F, amp) - resp_kwargs = {'refine': False} + resp_kwargs = plot_kwargs = {'refine': False} case ct.gangof4_response, _: args1 = (sys1, sys1c) @@ -603,15 +603,60 @@ def test_plot_title_processing(resp_fcn, plot_fcn): assert "title : str, optional" in plot_fcn.__doc__ -@pytest.mark.usefixtures('mplcleanup') -def test_rcParams(): - sys = ct.rss(2, 2, 2) +@pytest.mark.parametrize("resp_fcn, plot_fcn", resp_plot_fcns) +@pytest.mark.usefixtures('mplcleanup', 'editsdefaults') +def test_rcParams(resp_fcn, plot_fcn): + # Create some systems to use + sys1 = ct.rss(2, 1, 1, strictly_proper=True, name="sys[1]") + sys1c = ct.rss(4, 1, 1, strictly_proper=True, name="sys[1]_C") + sys2 = ct.rss(2, 1, 1, strictly_proper=True, name="sys[2]") + + # Set up arguments + kwargs = resp_kwargs = plot_kwargs = meth_kwargs = {} + default_title = "sys[1], sys[2]" + expected_title = "sys1_, sys2_" + match resp_fcn, plot_fcn: + case ct.describing_function_response, _: + F = ct.descfcn.saturation_nonlinearity(1) + amp = np.linspace(1, 4, 10) + args1 = (sys1, F, amp) + args2 = (sys2, F, amp) + resp_kwargs = plot_kwargs = {'refine': False} + + case ct.gangof4_response, _: + args1 = (sys1, sys1c) + args2 = (sys2, sys1c) + default_title = "P=sys[1], C=sys[1]_C, P=sys[2], C=sys[1]_C" + + case ct.frequency_response, ct.nichols_plot: + args1 = (sys1, ) + args2 = (sys2, ) + meth_kwargs = {'plot_type': 'nichols'} + + case ct.root_locus_map, ct.root_locus_plot: + args1 = (sys1, ) + args2 = (sys2, ) + plot_kwargs = {'interactive': False} + + case (ct.forced_response | ct.input_output_response, _): + timepts = np.linspace(1, 10) + U = np.sin(timepts) + args1 = (resp_fcn(sys1, timepts, U), ) + args2 = (resp_fcn(sys2, timepts, U), ) + argsc = (resp_fcn([sys1, sys2], timepts, U), ) + + case (ct.impulse_response | ct.initial_response | ct.step_response, _): + args1 = (resp_fcn(sys1), ) + args2 = (resp_fcn(sys2), ) + argsc = (resp_fcn([sys1, sys2]), ) + + case _, _: + args1 = (sys1, ) + args2 = (sys2, ) # Create new set of rcParams my_rcParams = {} - for key in [ - 'axes.labelsize', 'axes.titlesize', 'figure.titlesize', - 'legend.fontsize', 'xtick.labelsize', 'ytick.labelsize']: + for key in ct.ctrlplot.rcParams: match plt.rcParams[key]: case 8 | 9 | 10: my_rcParams[key] = plt.rcParams[key] + 1 @@ -621,20 +666,85 @@ def test_rcParams(): my_rcParams[key] = 9.5 case _: raise ValueError(f"unknown rcParam type for {key}") + checked_params = my_rcParams.copy() # make sure we check everything # Generate a figure with the new rcParams - out = ct.step_response(sys).plot(rcParams=my_rcParams) - ax, fig = out.axes[0, 0], out.figure + if plot_fcn not in nolabel_plot_fcns: + cplt = plot_fcn( + *args1, **kwargs, **plot_kwargs, rcParams=my_rcParams, + show_legend=True) + else: + cplt = plot_fcn(*args1, **kwargs, **plot_kwargs, rcParams=my_rcParams) + + # Check lower left figure (should always have ticks, labels) + ax, fig = cplt.axes[-1, 0], cplt.figure # Check to make sure new settings were used assert ax.xaxis.get_label().get_fontsize() == my_rcParams['axes.labelsize'] assert ax.yaxis.get_label().get_fontsize() == my_rcParams['axes.labelsize'] + checked_params.pop('axes.labelsize') + assert ax.title.get_fontsize() == my_rcParams['axes.titlesize'] + checked_params.pop('axes.titlesize') + assert ax.get_xticklabels()[0].get_fontsize() == \ my_rcParams['xtick.labelsize'] + checked_params.pop('xtick.labelsize') + assert ax.get_yticklabels()[0].get_fontsize() == \ my_rcParams['ytick.labelsize'] + checked_params.pop('ytick.labelsize') + assert fig._suptitle.get_fontsize() == my_rcParams['figure.titlesize'] + checked_params.pop('figure.titlesize') + + if plot_fcn not in nolabel_plot_fcns: + for ax in cplt.axes.flatten(): + legend = ax.get_legend() + if legend is not None: + break + assert legend is not None + assert legend.get_texts()[0].get_fontsize() == \ + my_rcParams['legend.fontsize'] + checked_params.pop('legend.fontsize') + + # Make sure we checked everything + assert not checked_params + plt.close() + + # Change the default rcParams + ct.ctrlplot.rcParams.update(my_rcParams) + if plot_fcn not in nolabel_plot_fcns: + cplt = plot_fcn( + *args1, **kwargs, **plot_kwargs, show_legend=True) + else: + cplt = plot_fcn(*args1, **kwargs, **plot_kwargs) + + # Check everything + ax, fig = cplt.axes[-1, 0], cplt.figure + assert ax.xaxis.get_label().get_fontsize() == my_rcParams['axes.labelsize'] + assert ax.yaxis.get_label().get_fontsize() == my_rcParams['axes.labelsize'] + assert ax.title.get_fontsize() == my_rcParams['axes.titlesize'] + assert ax.get_xticklabels()[0].get_fontsize() == \ + my_rcParams['xtick.labelsize'] + assert ax.get_yticklabels()[0].get_fontsize() == \ + my_rcParams['ytick.labelsize'] + assert fig._suptitle.get_fontsize() == my_rcParams['figure.titlesize'] + if plot_fcn not in nolabel_plot_fcns: + for ax in cplt.axes.flatten(): + legend = ax.get_legend() + if legend is not None: + break + assert legend is not None + assert legend.get_texts()[0].get_fontsize() == \ + my_rcParams['legend.fontsize'] + plt.close() + + # Make sure that resetting parameters works correctly + ct.reset_defaults() + for key in ct.ctrlplot.rcParams: + assert ct.defaults['ctrlplot.rcParams'][key] != my_rcParams[key] + assert ct.ctrlplot.rcParams[key] != my_rcParams[key] def test_deprecation_warning(): diff --git a/control/timeplot.py b/control/timeplot.py index bdfd93b8f..eaf949d92 100644 --- a/control/timeplot.py +++ b/control/timeplot.py @@ -16,14 +16,13 @@ import numpy as np from . import config -from .ctrlplot import ControlPlot, _ctrlplot_rcParams, _make_legend_labels,\ +from .ctrlplot import ControlPlot, _make_legend_labels,\ _process_legend_keywords, _update_plot_title __all__ = ['time_response_plot', 'combine_time_responses'] # Default values for module parameter variables _timeplot_defaults = { - 'timeplot.rcParams': _ctrlplot_rcParams, 'timeplot.trace_props': [ {'linestyle': s} for s in ['-', '--', ':', '-.']], 'timeplot.output_props': [ @@ -176,8 +175,7 @@ def time_response_plot( ax_user = ax time_label = config._get_param( 'timeplot', 'time_label', kwargs, _timeplot_defaults, pop=True) - rcParams = config._get_param( - 'timeplot', 'rcParams', kwargs, _timeplot_defaults, pop=True) + rcParams = config._get_param('ctrlplot', 'rcParams', kwargs, pop=True) if kwargs.get('input_props', None) and len(fmt) > 0: warn("input_props ignored since fmt string was present") From 4f4746dd89a92ff33dd6e37cb9af1185f7f7c91f Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 20 Jul 2024 23:28:50 -0700 Subject: [PATCH 055/448] deprecate get_plot_axes (with legacy testing) --- control/ctrlplot.py | 4 ++- control/tests/ctrlplot_test.py | 34 ++++++++++++++++++++++-- control/tests/freqplot_test.py | 48 +++++++++++++++++----------------- control/tests/timeplot_test.py | 32 +++++++++++------------ 4 files changed, 74 insertions(+), 44 deletions(-) diff --git a/control/ctrlplot.py b/control/ctrlplot.py index 14b27c703..3b479c18c 100644 --- a/control/ctrlplot.py +++ b/control/ctrlplot.py @@ -148,7 +148,8 @@ class ControlPlot(object): def __init__(self, lines, axes=None, figure=None, legend=None): self.lines = lines if axes is None: - axes = get_plot_axes(lines) + _get_axes = np.vectorize(lambda lines: lines[0].axes) + axes = _get_axes(lines) self.axes = np.atleast_2d(axes) if figure is None: figure = self.axes[0, 0].figure @@ -240,6 +241,7 @@ def get_plot_axes(line_array): Only the first element of each array entry is used to determine the axes. """ + warnings.warn("get_plot_axes is deprecated; use cplt.axes", FutureWarning) _get_axes = np.vectorize(lambda lines: lines[0].axes) if isinstance(line_array, ControlPlot): return _get_axes(line_array.lines) diff --git a/control/tests/ctrlplot_test.py b/control/tests/ctrlplot_test.py index 754db3e0b..976edad8b 100644 --- a/control/tests/ctrlplot_test.py +++ b/control/tests/ctrlplot_test.py @@ -89,9 +89,10 @@ def test_plot_ax_processing(resp_fcn, plot_fcn): get_line_color = lambda cplt: cplt.lines.reshape(-1)[0][0].get_color() match resp_fcn, plot_fcn: case ct.describing_function_response, _: + sys = ct.tf([1], [1, 2, 2, 1]) F = ct.descfcn.saturation_nonlinearity(1) amp = np.linspace(1, 4, 10) - args = (sys1, F, amp) + args = (sys, F, amp) resp_kwargs = plot_kwargs = {'refine': False} case ct.gangof4_response, _: @@ -224,6 +225,8 @@ def test_plot_label_processing(resp_fcn, plot_fcn): expected_labels = ["sys1_", "sys2_"] match resp_fcn, plot_fcn: case ct.describing_function_response, _: + sys1 = ct.tf([1], [1, 2, 2, 1], name="sys[1]") + sys2 = ct.tf([1.1], [1, 2, 2, 1], name="sys[2]") F = ct.descfcn.saturation_nonlinearity(1) amp = np.linspace(1, 4, 10) args1 = (sys1, F, amp) @@ -332,6 +335,8 @@ def test_siso_plot_legend_processing(resp_fcn, plot_fcn): default_labels = ["sys[1]", "sys[2]"] match resp_fcn, plot_fcn: case ct.describing_function_response, _: + sys1 = ct.tf([1], [1, 2, 2, 1], name="sys[1]") + sys2 = ct.tf([1.1], [1, 2, 2, 1], name="sys[2]") F = ct.descfcn.saturation_nonlinearity(1) amp = np.linspace(1, 4, 10) args1 = (sys1, F, amp) @@ -488,6 +493,8 @@ def test_plot_title_processing(resp_fcn, plot_fcn): expected_title = "sys1_, sys2_" match resp_fcn, plot_fcn: case ct.describing_function_response, _: + sys1 = ct.tf([1], [1, 2, 2, 1], name="sys[1]") + sys2 = ct.tf([1.1], [1, 2, 2, 1], name="sys[2]") F = ct.descfcn.saturation_nonlinearity(1) amp = np.linspace(1, 4, 10) args1 = (sys1, F, amp) @@ -617,6 +624,8 @@ def test_rcParams(resp_fcn, plot_fcn): expected_title = "sys1_, sys2_" match resp_fcn, plot_fcn: case ct.describing_function_response, _: + sys1 = ct.tf([1], [1, 2, 2, 1], name="sys[1]") + sys2 = ct.tf([1], [1, 2, 2, 1], name="sys[2]") F = ct.descfcn.saturation_nonlinearity(1) amp = np.linspace(1, 4, 10) args1 = (sys1, F, amp) @@ -747,8 +756,29 @@ def test_rcParams(resp_fcn, plot_fcn): assert ct.ctrlplot.rcParams[key] != my_rcParams[key] -def test_deprecation_warning(): +def test_deprecation_warnings(): sys = ct.rss(2, 2, 2) lines = ct.step_response(sys).plot(overlay_traces=True) with pytest.warns(FutureWarning, match="deprecated"): assert len(lines[0, 0]) == 2 + + cplt = ct.step_response(sys).plot() + with pytest.warns(FutureWarning, match="deprecated"): + axs = ct.get_plot_axes(cplt) + assert np.all(axs == cplt.axes) + + with pytest.warns(FutureWarning, match="deprecated"): + axs = ct.get_plot_axes(cplt.lines) + assert np.all(axs == cplt.axes) + + +def test_ControlPlot_init(): + sys = ct.rss(2, 2, 2) + cplt = ct.step_response(sys).plot() + + # Create a ControlPlot from data, without the axes or figure + cplt_raw = ct.ControlPlot(cplt.lines) + assert np.all(cplt_raw.lines == cplt.lines) + assert np.all(cplt_raw.axes == cplt.axes) + assert cplt_raw.figure == cplt.figure + diff --git a/control/tests/freqplot_test.py b/control/tests/freqplot_test.py index 8f8c53861..6ce57c7fa 100644 --- a/control/tests/freqplot_test.py +++ b/control/tests/freqplot_test.py @@ -142,7 +142,7 @@ def test_response_plots( def test_manual_response_limits(): # Default response: limits should be the same across rows cplt = manual_response.plot() - axs = ct.get_plot_axes(cplt) # legacy usage OK + axs = cplt.axes for i in range(manual_response.noutputs): for j in range(1, manual_response.ninputs): # Everything in the same row should have the same limits @@ -305,8 +305,8 @@ def test_bode_share_options(): ct.set_defaults('freqplot', title_frame='figure') # Default sharing should share along rows and cols for mag and phase - lines = ct.bode_plot(manual_response) - axs = ct.get_plot_axes(lines) + cplt = ct.bode_plot(manual_response) + axs = cplt.axes for i in range(axs.shape[0]): for j in range(axs.shape[1]): # Share y limits along rows @@ -317,8 +317,8 @@ def test_bode_share_options(): # Sharing along y axis for mag but not phase plt.figure() - lines = ct.bode_plot(manual_response, share_phase='none') - axs = ct.get_plot_axes(lines) + cplt = ct.bode_plot(manual_response, share_phase='none') + axs = cplt.axes for i in range(int(axs.shape[0] / 2)): for j in range(axs.shape[1]): if i != 0: @@ -330,8 +330,8 @@ def test_bode_share_options(): # Turn off sharing for magnitude and phase plt.figure() - lines = ct.bode_plot(manual_response, sharey='none') - axs = ct.get_plot_axes(lines) + cplt = ct.bode_plot(manual_response, sharey='none') + axs = cplt.axes for i in range(int(axs.shape[0] / 2)): for j in range(axs.shape[1]): if i != 0: @@ -345,7 +345,7 @@ def test_bode_share_options(): # Turn off sharing in x axes plt.figure() - lines = ct.bode_plot(manual_response, sharex='none') + cplt = ct.bode_plot(manual_response, sharex='none') # TODO: figure out what to check @@ -355,11 +355,11 @@ def test_freqplot_plot_type(plot_type): response = ct.singular_values_response(ct.rss(2, 1, 1)) else: response = ct.frequency_response(ct.rss(2, 1, 1)) - lines = response.plot(plot_type=plot_type) + cplt = response.plot(plot_type=plot_type) if plot_type == 'bode': - assert lines.shape == (2, 1) + assert cplt.lines.shape == (2, 1) else: - assert lines.shape == (1, ) + assert cplt.lines.shape == (1, ) @pytest.mark.parametrize("plt_fcn", [ct.bode_plot, ct.singular_values_plot]) @pytest.mark.usefixtures("editsdefaults") @@ -379,14 +379,14 @@ def _get_visible_limits(ax): ct.tf([1], [1, 2, 1]), np.logspace(-1, 1)) # Generate a plot without overridding the limits - lines = plt_fcn(response) - ax = ct.get_plot_axes(lines) + cplt = plt_fcn(response) + ax = cplt.axes np.testing.assert_allclose( _get_visible_limits(ax.reshape(-1)[0]), np.array([0.1, 10])) # Now reset the limits - lines = plt_fcn(response, omega_limits=(1, 100)) - ax = ct.get_plot_axes(lines) + cplt = plt_fcn(response, omega_limits=(1, 100)) + ax = cplt.axes np.testing.assert_allclose( _get_visible_limits(ax.reshape(-1)[0]), np.array([1, 100])) @@ -400,7 +400,7 @@ def test_gangof4_trace_labels(): # Make sure default labels are as expected cplt = ct.gangof4_response(P1, C1).plot() cplt = ct.gangof4_response(P2, C2).plot() - axs = ct.get_plot_axes(cplt) # legacy usage OK + axs = cplt.axes legend = axs[0, 1].get_legend().get_texts() assert legend[0].get_text() == 'P=P1, C=C1' assert legend[1].get_text() == 'P=P2, C=C2' @@ -409,7 +409,7 @@ def test_gangof4_trace_labels(): # Suffix truncation cplt = ct.gangof4_response(P1, C1).plot() cplt = ct.gangof4_response(P2, C1).plot() - axs = ct.get_plot_axes(cplt) # legacy usage OK + axs = cplt.axes legend = axs[0, 1].get_legend().get_texts() assert legend[0].get_text() == 'P=P1' assert legend[1].get_text() == 'P=P2' @@ -418,7 +418,7 @@ def test_gangof4_trace_labels(): # Prefix turncation cplt = ct.gangof4_response(P1, C1).plot() cplt = ct.gangof4_response(P1, C2).plot() - axs = ct.get_plot_axes(cplt) # legacy usage OK + axs = cplt.axes legend = axs[0, 1].get_legend().get_texts() assert legend[0].get_text() == 'C=C1' assert legend[1].get_text() == 'C=C2' @@ -427,7 +427,7 @@ def test_gangof4_trace_labels(): # Override labels cplt = ct.gangof4_response(P1, C1).plot(label='xxx, line1, yyy') cplt = ct.gangof4_response(P2, C2).plot(label='xxx, line2, yyy') - axs = ct.get_plot_axes(cplt) # legacy usage OK + axs = cplt.axes legend = axs[0, 1].get_legend().get_texts() assert legend[0].get_text() == 'xxx, line1, yyy' assert legend[1].get_text() == 'xxx, line2, yyy' @@ -446,7 +446,7 @@ def test_freqplot_line_labels(plt_fcn): # Make sure default labels are as expected cplt = plt_fcn([sys1, sys2]) - axs = ct.get_plot_axes(cplt) # legacy usage OK + axs = cplt.axes if axs.ndim == 1: legend = axs[0].get_legend().get_texts() else: @@ -457,7 +457,7 @@ def test_freqplot_line_labels(plt_fcn): # Override labels all at once cplt = plt_fcn([sys1, sys2], label=['line1', 'line2']) - axs = ct.get_plot_axes(cplt) # legacy usage OK + axs = cplt.axes if axs.ndim == 1: legend = axs[0].get_legend().get_texts() else: @@ -469,7 +469,7 @@ def test_freqplot_line_labels(plt_fcn): # Override labels one at a time cplt = plt_fcn(sys1, label='line1') cplt = plt_fcn(sys2, label='line2') - axs = ct.get_plot_axes(cplt) # legacy usage OK + axs = cplt.axes if axs.ndim == 1: legend = axs[0].get_legend().get_texts() else: @@ -495,7 +495,7 @@ def test_line_labels_bode(kwargs, labels): ct.bode_plot([sys1, sys2], label=['line1']) cplt = ct.bode_plot([sys1, sys2], label=labels, **kwargs) - axs = ct.get_plot_axes(cplt) # legacy usage OK + axs = cplt.axes legend_texts = axs[0, -1].get_legend().get_texts() for i, legend in enumerate(legend_texts): assert legend.get_text() == labels[i] @@ -524,7 +524,7 @@ def test_freqplot_ax_keyword(plt_fcn, ninputs, noutputs): cplt1 = plt_fcn(sys) # Draw again on the same figure, using array - axs = ct.get_plot_axes(cplt1) # legacy usage OK + axs = cplt1.axes cplt2 = plt_fcn(sys, ax=axs) np.testing.assert_equal(cplt1.axes, cplt2.axes) diff --git a/control/tests/timeplot_test.py b/control/tests/timeplot_test.py index 775371d55..9525c7e02 100644 --- a/control/tests/timeplot_test.py +++ b/control/tests/timeplot_test.py @@ -194,8 +194,6 @@ def test_response_plots( @pytest.mark.usefixtures('mplcleanup') def test_axes_setup(): - get_plot_axes = ct.get_plot_axes - sys_2x3 = ct.rss(4, 2, 3) sys_2x3b = ct.rss(4, 2, 3) sys_3x2 = ct.rss(4, 3, 2) @@ -204,21 +202,21 @@ def test_axes_setup(): # Two plots of the same size leaves axes unchanged cplt1 = ct.step_response(sys_2x3).plot() cplt2 = ct.step_response(sys_2x3b).plot() - np.testing.assert_equal(get_plot_axes(cplt1), get_plot_axes(cplt2)) + np.testing.assert_equal(cplt1.axes, cplt2.axes) plt.close() # Two plots of same net size leaves axes unchanged (unfortunately) cplt1 = ct.step_response(sys_2x3).plot() cplt2 = ct.step_response(sys_3x2).plot() np.testing.assert_equal( - get_plot_axes(cplt1).reshape(-1), get_plot_axes(cplt2).reshape(-1)) + cplt1.axes.reshape(-1), cplt2.axes.reshape(-1)) plt.close() # Plots of different shapes generate new plots cplt1 = ct.step_response(sys_2x3).plot() cplt2 = ct.step_response(sys_3x1).plot() - ax1_list = get_plot_axes(cplt1).reshape(-1).tolist() - ax2_list = get_plot_axes(cplt2).reshape(-1).tolist() + ax1_list = cplt1.axes.reshape(-1).tolist() + ax2_list = cplt2.axes.reshape(-1).tolist() for ax in ax1_list: assert ax not in ax2_list plt.close() @@ -226,8 +224,8 @@ def test_axes_setup(): # Passing a list of axes preserves those axes cplt1 = ct.step_response(sys_2x3).plot() cplt2 = ct.step_response(sys_3x1).plot() - cplt3 = ct.step_response(sys_2x3b).plot(ax=get_plot_axes(cplt1)) - np.testing.assert_equal(get_plot_axes(cplt1), get_plot_axes(cplt3)) + cplt3 = ct.step_response(sys_2x3b).plot(ax=cplt1.axes) + np.testing.assert_equal(cplt1.axes, cplt3.axes) plt.close() # Sending an axes array of the wrong size raises exception @@ -433,7 +431,7 @@ def test_timeplot_trace_labels(resp_fcn): # Make sure default labels are as expected cplt = resp_fcn([sys1, sys2], **kwargs).plot() - axs = ct.get_plot_axes(cplt.lines) + axs = cplt.axes if axs.ndim == 1: legend = axs[0].get_legend().get_texts() else: @@ -444,7 +442,7 @@ def test_timeplot_trace_labels(resp_fcn): # Override labels all at once cplt = resp_fcn([sys1, sys2], **kwargs).plot(label=['line1', 'line2']) - axs = ct.get_plot_axes(cplt.lines) + axs = cplt.axes if axs.ndim == 1: legend = axs[0].get_legend().get_texts() else: @@ -456,7 +454,7 @@ def test_timeplot_trace_labels(resp_fcn): # Override labels one at a time cplt = resp_fcn(sys1, **kwargs).plot(label='line1') cplt = resp_fcn(sys2, **kwargs).plot(label='line2') - axs = ct.get_plot_axes(cplt.lines) + axs = cplt.axes if axs.ndim == 1: legend = axs[0].get_legend().get_texts() else: @@ -489,7 +487,7 @@ def test_full_label_override(): cplt = ct.step_response([sys1, sys2]).plot( overlay_signals=True, overlay_traces=True, plot_inputs=True, label=labels_4d) - axs = ct.get_plot_axes(cplt.lines) + axs = cplt.axes assert axs.shape == (2, 1) legend_text = axs[0, 0].get_legend().get_texts() for i, label in enumerate(labels_2d[0]): @@ -502,7 +500,7 @@ def test_full_label_override(): cplt = ct.step_response([sys1, sys2]).plot( overlay_signals=True, overlay_traces=True, plot_inputs=True, label=labels_2d) - axs = ct.get_plot_axes(cplt.lines) + axs = cplt.axes assert axs.shape == (2, 1) legend_text = axs[0, 0].get_legend().get_texts() for i, label in enumerate(labels_2d[0]): @@ -522,7 +520,7 @@ def test_relabel(): # Generate a new plot, which overwrites labels cplt = ct.step_response(sys2).plot() - ax = ct.get_plot_axes(cplt.lines) + ax = cplt.axes assert ax[0, 0].get_ylabel() == 'y[0]' # Regenerate the first plot @@ -570,7 +568,7 @@ def test_legend_customization(): # Generic input/output plot cplt = resp.plot(overlay_signals=True) - axs = ct.get_plot_axes(cplt.lines) + axs = cplt.axes assert axs[0, 0].get_legend()._loc == 7 # center right assert len(axs[0, 0].get_legend().get_texts()) == 2 assert axs[1, 0].get_legend() == None @@ -578,7 +576,7 @@ def test_legend_customization(): # Hide legend cplt = resp.plot(overlay_signals=True, show_legend=False) - axs = ct.get_plot_axes(cplt.lines) + axs = cplt.axes assert axs[0, 0].get_legend() == None assert axs[1, 0].get_legend() == None plt.close() @@ -586,7 +584,7 @@ def test_legend_customization(): # Put legend in both axes cplt = resp.plot( overlay_signals=True, legend_map=[['center left'], ['center right']]) - axs = ct.get_plot_axes(cplt.lines) + axs = cplt.axes assert axs[0, 0].get_legend()._loc == 6 # center left assert len(axs[0, 0].get_legend().get_texts()) == 2 assert axs[1, 0].get_legend()._loc == 7 # center right From c3707d3e7bd4191c01ce24168660262b10494fc0 Mon Sep 17 00:00:00 2001 From: Richard Murray Date: Sat, 20 Jul 2024 23:34:55 -0700 Subject: [PATCH 056/448] update plotting documentation --- doc/freqplot-mimo_bode-default.png | Bin 53368 -> 53337 bytes doc/freqplot-nyquist-custom.png | Bin 44066 -> 43976 bytes doc/freqplot-nyquist-default.png | Bin 41581 -> 41642 bytes doc/freqplot-siso_bode-default.png | Bin 46492 -> 46401 bytes doc/freqplot-siso_bode-omega.png | Bin 45851 -> 45790 bytes doc/phaseplot-dampedosc-default.png | Bin 103085 -> 102936 bytes doc/phaseplot-invpend-meshgrid.png | Bin 161158 -> 189738 bytes doc/phaseplot-oscillator-helpers.png | Bin 76927 -> 76107 bytes doc/plotting.rst | 114 ++++++++++++++++++++++++++- doc/pzmap-siso_ctime-default.png | Bin 15186 -> 15186 bytes doc/rlocus-siso_ctime-clicked.png | Bin 86011 -> 88472 bytes doc/rlocus-siso_ctime-default.png | Bin 81401 -> 81315 bytes doc/rlocus-siso_dtime-default.png | Bin 90229 -> 89994 bytes doc/rlocus-siso_multiple-nogrid.png | Bin 24271 -> 24424 bytes doc/timeplot-mimo_ioresp-mt_tr.png | Bin 64394 -> 63374 bytes doc/timeplot-mimo_ioresp-ov_lm.png | Bin 61492 -> 63987 bytes doc/timeplot-mimo_step-default.png | Bin 31828 -> 30667 bytes doc/timeplot-mimo_step-linestyle.png | Bin 38704 -> 41690 bytes doc/timeplot-mimo_step-pi_cs.png | Bin 31861 -> 33075 bytes 19 files changed, 111 insertions(+), 3 deletions(-) diff --git a/doc/freqplot-mimo_bode-default.png b/doc/freqplot-mimo_bode-default.png index 86414d91612ae91d1704fad0fe487c910a2d4dc2..88a45071bf5753272392a2be09366d65a2d4dc4c 100644 GIT binary patch literal 53337 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 HgBSk=;`)ZO literal 53368 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 P;Gc)mN>X`}PhS2n#6@Nw diff --git a/doc/freqplot-nyquist-custom.png b/doc/freqplot-nyquist-custom.png index 06ccda040e7a8930382c8783e964617ec1010ca0..eff33135bc03709e5b25de4e720ce8b0d324c902 100644 GIT binary patch literal 43976 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

>;GgGi!IQCT;6GO&41}g_WL4M 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 diff --git a/doc/freqplot-nyquist-default.png b/doc/freqplot-nyquist-default.png index ede50925ba17cda9576bbefc5b73406bb5d14be9..ce5215493b1e2b230f6de1b9cc21b2addd905d93 100644 GIT binary patch literal 41642 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 literal 41581 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 diff --git a/doc/freqplot-siso_bode-default.png b/doc/freqplot-siso_bode-default.png index 3cf235a31167a1b14a99467f6e2c6a7faf82c340..f4e3fc67eb789f63188ce6dc0e401c2206422d0c 100644 GIT binary patch literal 46401 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 Y!2ND>4!-pxB>bm#;OPDw6*K?;0ty$bsQ>@~ literal 46492 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 JmNmTfe*je7%}M|O diff --git a/doc/freqplot-siso_bode-omega.png b/doc/freqplot-siso_bode-omega.png index 0240473ad5ebe7eb152a23a50bb51e0fe8fccc9b..7763d51bbb9fc042327574a5a5c8d13edaa58629 100644 GIT binary patch literal 45790 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 BXZ8R9 diff --git a/doc/phaseplot-dampedosc-default.png b/doc/phaseplot-dampedosc-default.png index da4e24e35912702153e3dfda5ba20af5c9fe85e2..64ca7bd362a9a7585d2ce085f4fd56390e459ee4 100644 GIT binary patch literal 102936 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%0A~#S>VEzhbBq6Au5kH`V7y_n~Orf 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 z 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 Qv*61>*W}Q19f!#O0TD!oDF6Tf diff --git a/doc/phaseplot-invpend-meshgrid.png b/doc/phaseplot-invpend-meshgrid.png index 040b4555850fa56ac975a0d006ddc8aa9398158e..eba45c15345bc516666c9f387dcd6781ef488bc3 100644 GIT binary patch literal 189738 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 literal 161158 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

kUK|Sv{u;jBs;rT7ms55H$sxHVZ&4UVq#@u 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

|1r571WYsFDsAsmZIq|Y)C{56&FI$2_H-uTSUP8 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 CyWG$K diff --git a/doc/phaseplot-oscillator-helpers.png b/doc/phaseplot-oscillator-helpers.png index 0b5ebf43fefcde3fd62e85bffb157b20178865c6..beceb948b297bcc97ffd35e7cd54a625381d8d1b 100644 GIT binary patch literal 76107 zcmcG0WmuJ6*DaEQ2qMy{ba$78bP3Yk4bmNgAl=QUTdy7#~5=ggXCq!UL)ZmK|w*imJk%qR zoe4wlwyGi+1o5l5nmrU0svhL`i(dlyW>7Dnpd>^Dzqq6xra7xB?%e-4`QCgT|K1no z%cA>9u~o5padxp&?Yxom(T!v6yw!q@hDBj@jk|FZ^C2`uj)XH!oqKzhzEkPFB5u{`Sv5eYZco{P^E5l>^@R z{P)|%$nT-x{`0jujt~?QcpG?m74vtfcaR}I5}O*md_nooa39A8-ayO$cj&nHu$lk) z7(p6gFmNU!r^_iZlD}_J5v@$h&q^0p*RyUcok{mb8kLfdE~HD@OJk7Yf9@8SZEwi89d@QyVM&!VFpvbm15)L?Kb<+FzGeLy}bCr zgeR-ah9%9+sK5t1s;fkkexb&=yK^RV!^g+RHIy?nBt@r??V6aV6kLFbjg8ecHJx2O z!o#DXp^-^}GTpXk;^63ATx?Q{P{Z1{r+WoEA9xCRpsv2YmnJ4Ai%UyMeD3V_+e7uk z!Wh`t;-%WnjBIR1Z9Xr)`}-@=hlGY2?oSqQa&hTdTg#p-H_z4D=)@hh-XHULczQCi zv-kA(2klMdtI)@g2FdZ?!rIu_NJ~qm}#U zlo0dip!GA~T>gpP|pd?M>b+h)PuA$*ii|4)hwT|s^>+=(j zwzjsani`YEG_9SzJI4-J^84$P(zE%xxcxl7 z49_dIczUhi;$pgyk&(C^bwMX5cE|^Xhli`Gt266&y`u*QWFOIR905jHaC|vS7{Ox9S!}_!GX2&2P#5aPY=Am5D3>-`wl2PH-+*tBF*8Sl2UngG z6A^*+etzV@W49!xqznY_2?nR8(sca8TXb{@Y3Z(|rDnUwT&aZfwI4)pad9DopST>? zDx3*7nNLxJ7ZpA*u1M?ae|UO&YC7$BMM_S74$hc@ynI`o?M7L7`PxttOOZ}%y664X z+208{l{u&9r^oLB0Ts?C+BH@S${RaaI5_>=!zpt$R(K0FRvVDW`#UbCG~(D9@VZF5 zIoW<^WNl-k6D&=CU*E5ajQNtVhBCKH^P!<3PRIRs86M||CoT8ZaVNIxT|uN|WaS3E zC?FE|#f3!}%b0TIcYN+eJ0)n_b%IkHo(?z;Q~*lTA~ReO zmWU?ZYx@TCmiTC)w$v^S{3+%0MO9UG!|UB$bx;*#j@ z?yf#|2N^iJpujBdWHUEGJNoYGhz9(;85<-yiG5*5A_WVl3?S4NF^K_+2iRn z$l+jNztFc{y5WHtv6_x$QrBD_FKM`e6htNwo%48qEfpUhukiWv=QzjtY72_T(@s>j zbREZ)_A0Xp^GE4@yO9_Qxp+di-7NFkXArBTuU@^P;^S+c-*UXAwQfGP-u}Bc@s@aN zds{NvVdG+SXsBq0YjQ^&^QFU!wHNPR;`V`HWCSUDb~X{502af($b~#bo2xfsg+_kYd5(4Y2u9g6D@dkPRsGW9WNTaSAWK3*LPbYs zwA%J9ZtyiS@-EotxKUK|R`≷^q95qnF6YqznwGJUormGrf?YEsbdKLa6m}u2o2| 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 AEM~tA?5e`~X;j#Pkpn7iFDG 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 I*z-633GK?mO#lD@ diff --git a/doc/plotting.rst b/doc/plotting.rst index bfe8f78a1..5bd139c39 100644 --- a/doc/plotting.rst +++ b/doc/plotting.rst @@ -423,6 +423,114 @@ Instead, the plot is generated directly be a call to the :mod:`~control.phaseplot` helper functions. +Customizing control plots +========================= + +A set of common options are available to customize control plots in +various ways. The following general rules apply: + +* If a plotting function is called multiple times with data that generate + control plots with the same shape for the array of subplots, the new data + will be overlayed with the old data, with a change in color(s) for the + new data (chosen from the standard matplotlib color cycle). If not + overridden, the plot title and legends will be updated to reflect all + data shown on the plot. + +* If a plotting function is called and the shape for the array of subplots + does not match the currently displayed plot, a new figure is created. + Note that only the shape is checked, so if two different types of + plotting commands that generate the same shape of suplots are called + sequentially, the :func:`matplotlib.pyplot.figure` command should be used + to explicitly create a new figure. + +* The ``ax`` keyword argument can be used to direct the plotting function + to use a specific axes or array of axes. The value of the ``ax`` keyword + must have the proper number of axes for the plot (so a plot generating a + 2x2 array of subplots should be given a 2x2 array of axes for the ``ax`` + keyword). + +* The ``label`` keyword argument can be used to override the line labels + that are used in generating the title and legend. If more than one line + is being plotted in a given call to a plot command, the ``label`` + argument value should be a list of labels, one for each line, in the + order they will appear in the legend. + + For input/output plots (frequency and time responses), the labels that + appear in the legend are of the form ", , , ". The trace name is used only for multi-trace time + plots (for example, step responses for MIMO systems). Common information + present in all traces is removed, so that the labels appearing in the + legend represent the unique characteristics of each line. + + For non-input/output plots (e.g., Nyquist plots, pole/zero plots, root + locus plots), the default labels are the system name. + + If ``label`` is set to ``False``, individual lines are still given + labels, but no legend is generated in the plot (this can also be + accomplished by setting ``legend_map`` to ``False``. + + Note: the ``label`` keyword argument is not implemented for describing + function plots or phase plane plots, since these plots are primarily + intended to be for a single system. Standard ``matplotlib`` commands can + be used to customize these plots for displaying information for multiple + systems. + +* The ``legend_loc``, ``legend_map`` and ``show_legend`` keyword arguments + can be used to customize the locations for legends. By default, a + minimal number of legends are used such that lines can be uniquely + identified and no legend is generated if there is only one line in the + plot. Setting ``show_legend`` to ``False`` will suppress the legend and + setting it to ``True`` will force the legend to be displayed even if + there is only a single line in each axes. In addition, if the value of + the ``legend_loc`` keyword argument is set to a string or integer, it + will set the position of the legend as described in the + :func:`matplotlib.legend`` documentation. Finally, ``legend_map`` can be + set to an` array that matches the shape of the suplots, with each item + being a string indicating the location of the legend for that axes (or + ``None`` for no legend). + +* The ``rcParams`` keyword argument can be used to override the default + matplotlib style parameters used when creating a plot. The default + parameters for all control plots are given by the ``ct.rcParams`` + dictionary and have the following values: + + .. list-table:: + :widths: 50 50 + :header-rows: 1 + + * - Key + - Value + * - 'axes.labelsize' + - 'small' + * - 'axes.titlesize' + - 'small' + * - 'figure.titlesize' + - 'medium' + * - 'legend.fontsize' + - 'x-small' + * - 'xtick.labelsize' + - 'small' + * - 'ytick.labelsize' + - 'small' + + Only those values that should be changed from the default need to be + specified in the ``rcParams`` keyword argument. To override the defaults + for all control plots, update the ``ct.rcParams`` dictionary entries. + + The default values for style parameters for control plots can be restored + using :func:`~control.reset_rcParams`. + +* The ``title`` keyword can be used to override the automatic creation of + the plot title. The default title is a string of the form " plot + for " where is a list of the sys names contained in + the plot (which can be updated if the plotting is called multiple times). + Use ``title=False`` to suppress the title completely. The title can also + be updated using the :func:`~control.ControlPlot.set_plot_title` method + for the returned control plot object. + + The plot title is only generated if ``ax`` is ``None``. + + Response and plotting functions =============================== @@ -432,7 +540,7 @@ Response functions Response functions take a system or list of systems and return a response object that can be used to retrieve information about the system (e.g., the number of encirclements for a Nyquist plot) as well as plotting (via the -`plot` method). +``plot`` method). .. autosummary:: :toctree: generated/ @@ -481,8 +589,8 @@ returned values from plotting routines. :toctree: generated/ ~control.combine_time_responses - ~control.get_plot_axes - ~control.suptitle + ~control.reset_rcParams + control.ControlPlot.set_plot_title Response and plotting classes diff --git a/doc/pzmap-siso_ctime-default.png b/doc/pzmap-siso_ctime-default.png index 1caa7cadfd014e8c075891676d42ed64aef0d98e..fd8b18eefe2e4c1d870f7d2f8e3f91d2c2349585 100644 GIT binary patch delta 43 zcmcaqcByQFn}UU&v5rDUNl8JmmA-y%Vo5#`r&k;EQ diff --git a/doc/rlocus-siso_ctime-clicked.png b/doc/rlocus-siso_ctime-clicked.png index dff3393714ae21d6707264381593572558fa866f..e7d7a1001f5464b35a4c37d0f25fa4584b5d0eed 100644 GIT binary patch literal 88472 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 Cil@#1 literal 86011 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�rxS6Vu3Yq^>d4$xh$@CK?Ly~&4RCjXG|zg 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 Kd!S-<`TqdjHfACK diff --git a/doc/rlocus-siso_ctime-default.png b/doc/rlocus-siso_ctime-default.png index 636951ed5a8fbc7ac478b5ccb3ad2d9f88386115..8a1984316508b81ac06f49cb4e31c981e68d2a90 100644 GIT binary patch literal 81315 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�=vFThj%vZI%)3mbj#f0cKT{{0UyYLxxwl5nNRKy zvCOkFp`GzaUFC)1L6O%Pbq&@dF`|O|L%5~ zc^>yh_fb|BPQGTPTMb+s$jh9+FKF?Gl3!(UMBF(nf|a9(P);amA3qumv#!(TwvK6< znRN-?i!^)$&*)!?YvD|k{O{kt!RsiS^Me|WrWq3E6XZ#^&xhTitOGF0efEpC;o*s? ze>OUrFA0(K1@m@))l`Evd4LY`jf4)zEuWkrGr5j^+<|S5?M0uOHyXGlQj0LnF}uPQ z`+Yn#=O2gAV$;(D7I({A%JPAZKyMY`eP=e{^6Tu`v(=Pd_V&9T*@6dR&tAE5g~a9# zdnF%NFyncUkg|ALboCnIXyD@Q40-hQDGfY^Bju;WI2)Urqq3h>gIq$mOjsTN6OX zA)1Yag`^$>_20QlHw#mbqTLgse!1(%qCrfJ#hH~eg;EBUSfIb3KK{#kuj@c11vn7M z;-jpr3z0`_>;;8{G#fn_xIqcSS#|`G(*l}DZ*0{RGF6Jz#O{;iYQ90k*PIV1ANKiY zbaJ?dyZfH2zrSzUYx5VPXS{btuz;fCsc|}aY~1V)hRRe?C2aXHo3{Rb)}&^UXIvz| zOXX)9Vgqe>;Jv_Nq6w&=Y=(6a>hIE(PfeQ1aq(ree{Hrr4`+{5nco@SVqY`gs>Yh! zLW8mOCf#3 zB%^v_wDotE7B6@jkRc~0XMhb4N*t3Be_>)`f+L&(RQvsNG#v;zFyps(S0?he`KN_V zclk_wmBMe-o@p-Y>M|1+6=h^yE*L0NZ~u6Kkt)$H%_s|Eco^{BT|MTl+qc)?5!QZ^ zfBN((1|p&tZSCz8!Bqi6L$*b|&Q(IEPMi?xQDohrEWCDgkT*CXVo)OX`m(cfb7%k% zI$#GQVTe)+P>G0$EH6Qiew2N4cS4{Ssiv{|$M;Nw)Or{H)o#0*BQV@IB2kGxfK3g- ztf~=M9h>8M4e+e1&+WPNtjqIYm8gGTo^ zq0?qcI0rux)IO+rl);R3%(bT3xyT|nAaDDf!=bROrQTCVUBN!F)j1WL6vnWRFHSeY zkBNmP9qb~&D(bcxfAjnIZQs9(kJQicspgn$=c@AITTgl2Q>OdGh`^2jxw6SE&tOh_ z!w!7e5}GgfjDly^rc1fM-HT-p9*hR#4zM#D85j&uTu+7=VXJD$a zc6DWY`0ye7nQJe>9H2@3k0INh$r1#L2T`Z1nItpT$Ue);0`ZB6^svnQEFdK%CG6p* z#2X|%`sdG^8794B$FwyxC=kI=vuYds>{y_5<(IL=sGE^3qt}m+NbBuBGNplRWLXsz zW-=WJD43PP7pH@LZH@)>yPMeQK-+nEc`ZElC)&9!&)7WcaD-b3BVKjW>nPq3HhH+7 zWxs7MT-XhD2HV!KcZXmk2POn4_em#Fd6L3{%v|f`n+DI>k+3<))vyF+fare}817 z2WQ&ks9O;K=8e1tw~LR@!Ko-Ad3^r zr}ECmfUQP${P%BdtbK$%kLn*U-w$tUKQuP7DcigV>;8>DGy+s;Pr>aDA*PZ#Zf>uv zKcE7cnQEw<8VldP)mif^HmAGGVP!}uO9lSh(NQpdO!6*GKgRZ|ECL%u;v-4=458jZ z6U2j<`IVjLT!g(Kz!f#D|5$+&&uRaDdbEQ-i%0&W4S{Sy?d`_}TIEgTKL-(t+>RYP z}!OYxL4Q z2C6{PGbsdh_VQ4qP!h2nI0Sv-6vytWb+B=eB!=q7e1Ez^~hFq6kPv|EY7-#bbB5inp zQc;5fU^|X7;&|{7Wbl9mI%!5*%V0F4HC9(w$H(#?rV}9Ze|NYT%7Py0q>%CSsm^%Q zgPS*rCBsm6C@`PwEji_xMStfVN`|Z(rKh1;8A-X1q#0l=zJ=*PVK*}rvn=BqfUu>= zB6zlX_XU@imv2eFXkcKVnfV!$02I3hBM2rU2owa95Vos(l3SJ$0E#5cKKk8pVElx% zxi{^h9u}K2af*%#9ToYpU>hFXhDJs^mB>Ff=KpEI`LAD}U0h4l6DBAtsY28+uT$5j zf`x^p+CknH2C2>b&23C!cl|5pQ{I?*Ry8#@Z=Ng3F_HND_iy~ooB4WPBD@XnL3)36 zWGi|6`0&n(xAXPKQ2!G{+>WHMyPKCCY<^AcfF=jr zfhYUy`STmgf6t#kALq*+}YuH*Pf6E!< z7Rfz`Jj9LPy7l^b{LkvPS$jNX%_l~e?prj3Lb1Udcod};RA>9@QEn~^oY))tDJ2q_ zKNsA6@F1jSknOQ@wYIJ(W7pC-4w!wV*T+`= zpArS>3gi%P1)(9ym}{=S%^vZcv)YjlwCaCeCTDl(j0`?$cW|8<(17Y39T%s2#x^vZ zEeI}Z!;25^&Gm$DzP$QmKtvPQ@aoFM*Oxix_b)%c9975hy6^fEqun3mEY_LG5r$tn zp^kwlkSf>zt>R*tDrKH*zA(%>!+6#}Uth<`*GE{KZzM=8Ta&qxPKYb&)%jLFC=f~y z^?@Q0N(CTkYB~f~^rfSt?$}bG;j3%YmT5J0_UJSa^dh#FGu6;p+5r!7nroTsPC73S zZCTgY=7NkQ^s_3*f}tNR$pU$7QxIby*=q?NubnI9BGX|Yczh_8m85NOD{>nSYhzV3 zo}n2914d+yrqb$q^HNh;GLU#g)VHL>M4cB~cFbhn@Yr@W)*sVW8_F}J1eQwv`j_T8 zY*BU3a&u$x;ekTIw?S8XL2l1o{Fom zkk$p(HBDrW6urTpQB>sF#W$3IC@!y(D+#$kxrqfEGcHks6s8MetrH7F;67o!&bp9g zS@>0%tgqDQ3MQyaCxtt)1QP5}Nr^`;=CC>S10}R`9RLuro0}XSu8sUQYN^7is;VOH z#WT#Y!vnLP3TLKLv8@aYAc-6|X6Atx zR)>)&tEN_wHVfX}4kPB?Q7*TPA!pM>YAhh!$D67huQoO3qmp}G(&l3Cf{9~czQNCg zgp8YPTz%d-k?`>0j^kCXVK!i#+vGASm?=bAzL25?Acj57%sg&l5(Y?xp|WqE$oK}_ z#@Z0lB{8f5=t9(C2Z{SL<~FYe7KRokxfVHNwHRO&X?S_PYpWAJPQ2HEs03QnZMC2;hLT+?GExmOzbjWAsN)v6oG-Zd6>!|T?ZT4 zrbV;N+m~_UX|2p3x_UP7GVi6SEu}VS3qW=8&7-c$5AWW)hwhB$e)sO(h&d<4Sj6oR zUr;z%w0&l~`QaxVFbtyUDdRl3D8nmu^6#0|Q3NXwODM~+a|$P)1m zLs>R4plxVOfjSwH`$b3v=F9-+6P8~46 zRN(6D5>&t*L+WwX(Uoqz&b{vnhGLF9F|t7%#+rxbYRL|r4EBJHYQ^N1ga?j||6}$& zm-{NFrkqizTHf0vU?;o5$#`Zg4#p88l66M>&JgtG=OuBZec{?{IVa8uA{?#swx+<{TEU;v}9T%G*Jese*Bli^v%uZV4p&V>hTv&iyP z50sp8YqNR6*n(iuH=fJimvqd)fSatj>lQsj=qA{185tRR`ued^;o^jwap37fU9~oZ zvJc)WE8!*R2J0$nYOGI;if!^nVNStGtS;DN!D9I_3%Y^*>#ZeMf1A6R-D;wW9kyM+ zk6Q;P#Ihs%t!`subM$(CovoaHs%qI#l!#2(Nn_)X6Pfy1FS^{ z`TCJpxAlbK5OT~RVv`!Lkn#DawJcA_Xtjo=WlCGp0S-U|1j=ZTRmpabm0{-RL5S7KQ@cK)pB-=iYKTq`JDw)EiiCFh zo{sv*o#cWxU4 z|J5<=2i{&@=r+U!UVS(S@d|k|?V|@0?9B9@e2U-+_}|0Mbcq&(o{zl~P+bwYGpX4P z5Z&!z|Ts`tBglAh4_4|AIU*VLOwf z6hhb#I)u4UZ(RPxi*RaNTBu0~n$b?$m}Gb0oWl51?)WWHb>zm6fN_r=?L0?K*RGz| zISfh3+Du_rw0B{*RF4(lMcdb}Tz77aPEI;Gf&1A`Y~Q+7!^+C)TPMa{Z6IHjSWQ&6 zxn$zYyzFPs^v1=AAQ;_DY;?5NmxnI0JSNA&478wD9ON^o-l_&UoER9`Y7nMgrIV(x z7vPsZ%6r?z9;qcJApw1TJLdYZ<>W&TfMbn zyU5pGekMv)sfgDDLv@`lIKW4Hme<{+_ zX5t!2xj@pn_w(lkS6=RdGrehF;XgN zm08A153I6_iii;FgUD)4*meOb<%iNwPag^mhMFF~Wx1Bp=VKN!3czrHVEPZ0wN+>~ zLXYm!L}2h{l4^L(t8}fS2O)+CE|TF`wtxB*1X};%7lnkF7-^t_R{O7=H|PtPU-cDs zY12e)#52C-?cKIXpZ6I(zcx=;6=JT{(uZF1&CSmrx3pv#FjzTFl9iKtHRV$Ut_+qO z>UhH~u-6&*NA7xb4X7siCX}itPo4lal3+rGKKR_iU^OcN8!;)VaAXye8EP-~JA9XY zKb|{MYG<_XgkJ~?#%YfjA`RGnfpDo4gmgFU`2~RuwZrXJqm9j`ePVFe-n}QDeP!id zTOPDz6fcv`ZSF=GXVr1QHAmVPEh@d5+}ni2J+i9R!?OdRE|K@Cj=ym&wm>pO$#Z7l z{!czg1o(N#lUQl-;)`jIaOMfo5mzN%0XaXA)IPt}OW=$sg%{1)&ayn!ws&*uU?ITD z*}AxZp_^V*r1WCqk-$JLJfq|1puoCq-v;LeufG$fa??4E(gQjfZe51`Gcz+!88=v% znX8->T;40%k?DZPxkHt=h6RH11MQEv?|)%(QO~@&PC0}P!o>b@1s5RZm5kZReV1HZ z8t?+|{HNWEtzUONG8T868K`3Ro`Eqb)aNb({m6T9l77_-2#%9M+q9MYzXGG+5kc0^ zHeb8j%T&x$8FC#qCu#lHsdcGWxbWOM=gwdVn)Eh3dU!;qUg(_Tp#h$)j;g^?i-1}d z#=T6h?GvgGSD=^!aFre&^Xcz@dD_B)flOj??af)}Oc=5xwwrW>_J9&rJg6^=13YZx z>b}TGwjko5)90~nqfNnB9yq|FkHwr3J;e`d&}l$sLGi&M!j4pUC<>)o()PQ>s}M8} zBKZ2k=Oe~1{?V#y6FLUERbOAPU_qS%s~n0w8+l0l5>-HatLMMJ3jub{o}pC8)DR|l z=5d5(hTq?jVE5HXMw@YQaWU=0U`39d{p)$g-~R*N3~Xc~z6#y$cUA~kqbnpT@Oq>S zGJsVA`Xv&_ZPdtgxt3-3<7ryVkurfz@ko9HNEJ#)TDyaFVK;T2wIFd;iX-oiWnMUn z5~YDLxH;&ab_ztTM}Msk@Up!5#4^G*8^xL1K8-|(Z#KL#`xV*gl?s>|JL8e5FO{mx>Htl;4Ih5diKB(-2s||1;wt<#WAFmjgwH5~z7nYQ;fb{j{>!;SqE0XTs)DCG&m zjE){NrLLFqk_bW`d-m*6cw*#t{CInqc^{fm+Vkg!#U2dI9~x%PXpcxsON);~W{X&` z0&};)>d>NQIf!#K!8Too9msT`0r`SmgT#Rp^hkCy?t!FN^w+3;jvr@-vR|#BN)V6a zY5Fa85RZT-$v-xvXq)pT!WiB+sFAZeIN*KR5Ujm95-0x6I)cRnSB z@6Fq{WJxX|85tQ{8tY@nTJqC-2GN>A%2<_~^AV%5DG8rD`7Pn=iN_&)Sh2ex&k%KV zv0_3ZBGh0M7p1QOP9eTf`TJ@{Ru(-VI26gLIqEG8)Hp$ta_pLia0r4!A#X+>n&%+S zPmq?>RN5L@x#=r_I7mJDX#L1C7Dvng79hvsuTO@Lu+5oN;KzkU@& zlF&A%;A?P;eU!txXvOp;h3)6|nDz9WUY7MIAaSY1UrADXQRa#Qp;6w zd`xLblCi39&(M|IyO)@?FJB08yck<~=z!!4)u4*`tb1^u7y!(~`zs?Z7SL9RVMp?3 zwJo2IXgYVJi7mTkuoA!bbniNJBs_FB_Bi!p$CwEgKkEtif&E0*rn0g!cE$Aowa_87 zm}*OFHgOazW-c}Y;ZGEH?( znMxj)Q6EsT!u~*GVK-m}A*Ay*@|VSgwS_K@vxSI+#=X0Cy8*F9#3^=$NG1eA9e{rk z`TX)t*tmE?y1KgGIzhz3ptSeF8NegXznSw!zz}wK0v|1eQ z=m}f%>=K+vy?a;v;>C-m^*^SAn-_-r#0W|zT)vM(2rLi!^0gD3bg*$>_I@)7?k_A| zN?;3u9)L8^rkU^yHEy4`@$%L}4AxY2e&I3kHRtZlpOEK)eMm4HCMG~JPMda)&3dBs z^S?g%4@+NiZ5llWM?9kMTMo?3yllH?o5PlUbXPELwDwJ+wsaD4I18NBMsd^Y{QT-f zK}r$;oS|i;GB1OnmusPu(`8wV*Tm8;?~ku@c8n{QQs@B~+3}2kiIUBVP?} zZEC7QG=#jzq!bD+dhLg|CEfXUj7S48km(RqthQf6c&Sd?;ETh!sMkS0xP&T<_Z(m-0G~Xja}n39*L?DE;(XC$qO3cIp2!B5mi=8e0$Lm<<2<`5F8Lf(F^s z5eql&Qw6OiLO7;@14;f2Q6Vx(RNCu~KHFIqDeg_am?0yy5KV=on0PV8ZESw;vzw6){qb zj*Xp#lYqz{2m|Kd1fRqwm2;Zf(9;o`z*LF^4S4wiC+xO@%fS%CpY7YS3k$iy^aSpk zxx&OxZsA&7fUFXFjQ{PECn6(1S&6C#z~6+uPR?kD)@9RxC>=1C+me0b_F!Cvn3NPU zdxb9jT;#o6QFdKERk#PpV6~46_gZ{&Qoxp|cN)JYoK~qaI$z7P9#Is1l|xRp+$Q{-GOBj zwRY} ztoMfaZw=GH zMg*tm@=p%HB38QCKF*d_V^DnsUCWg=WvXo>&Cw& z$fW5xIn3aMA>F_0anJxCse-8iuLEITj3|iHAs*#;uE-|W_4M@Q?-syb=3lO)MWT1c zWnbU;oP?q+EG^ML!4Zg>@H*tVFQw-AA8>A z)MvO_YlyI*>&o0{#Cwh>pi;xLmB0XYJ|(^7Q|o1Gv*-|EP3Ja|dWzgAF?NVgtiVD5 z&OuisKFtQu8|8%UiGl~P(%5c<@|=_N5r_m7T_>5&`Vq0w>Ot3muJfreX2Wqq;a()g zN^=*swcKNWq6Q#E!1B<6Kk+7$<0?!w93(&hKK9B#zqCiciJ&pg|7qr!)cm}x^W_%1 z7;i%wJ}d(f1G)VbuCE`A-J0HbfvglVp%6Gi6k_qLa1<{Vd>xf~SNzYM=RwrS&Je9h z)dNaObhnx~7h-i0Oh6`H{0;-w?f)DL#{nM5nmEHlC*WGri$4PM-z;%rGn|#*@++kh z(&m^scuDQfT6_#jEOvOvxqoRvUZgCFA_0>Ffw1k6r#LHkl*3seDvfcuuw!gK^f5;} z0w2J#P{(oAc=B7`d>bnGtdow)Xz%O{$6()5ZA{umwS~hGp;6 zU#{{rT0N;b6vwKD@KFH&9lNqBiaGWlL^=c^QflR+b776`tDUgf00bbweS3RpJ9JA( z!zKr%(@J&o>`C>TaWq+A;3e4LX5*+V&pIasT$AWzu!{gvv4~O$+)5j0XveriND&MU zht2RwAdav8U6c;MOK98H)=-Pjc0d+DSj2z}AFRPZS17D0*Ja+}Gyq!Hfs^0QJ!l(m)RMGxrW{ zN#bq5#|k*VdpaG$1|>+qWiJ~vFlzQcRaF`QKJ~YgoP;pCtLnGTZw7(=36 z0?K5xYX!;dz?wmI_`n2Mu{{U>Jo+ zGsC3|LMrU8oETTsah#4>T&UfKFb!ec=Gz^qtbo^yibWb05SBO(bnyJF$*iv;A)J=< zMyYxfTgWZh!hsaJubgn}79~tlLRg9X7Z)9^o@E>~tVHC%ptK%-;@-Qz;ozQoOi)Dx z1>6s>vGrej%2PKspHq@&e-Pq7POI=kQ>H>#VfK<8k4~f10km9gmDWPOgO9Fib&CjtCr};&XDO zc0KPB;h@K7HdG-vT5?tLaYcpN&i2U;xW?5!IEnyI2N44F(c*Izc}d7`q+J=+NrT=i z@YZsWBP7)MuU7roywog{uz0(|uj?*RMp;B8n-bm_gakw^2XN#H%Yp?HXs$EP?tssJ zt;ahr$j-}a8%?l)aLP?+cE~`GDl02VMkh`TKbLw8KC6>qw(wvmrpEL=#Sg2a*Sl`H z8d+GB=3ZeVTgz`l&I7^z;vNiR=gIXL6A}bhx3*7XGQ}jIBG@ki_6)__o97jUB z$74k!F7;ZbGB<&r ziI!*a4lyr$;EzU*331v8xunRSz7v;~+aUy3<<|C&s!rgEaKmW0o;8I^V&3zQ#3>BS1=Onzp~H$XI7hDqZ3YnNkC{mdK7wM zKwFs8xMfe`APYXlNL`XE7Yds%k6B3KW zoPnuTk>;I1bvhz>NdWPwf0(q8VmJL4OHKd93=09~6cUv-1uh-{lOd;5H}-E==vEPAKQyUi#|b+7jq}N3p>r=8oa)1PKqw>)apEK zVZl_n5ucZnQ+IFg`Sibr(4NuX7@oB*xMMF}^^_gElm5Ct;=qnF*A*z-N7>kB-tL^0 zVd|6r(paZw(iHz9QBYedSVJUKi}T$-SO$Cv>7~%dLD|wy8{#4`A&C#BduW0f9mgJn z=YW%KZEayo)P!cTZBrlVT1mW6SKOZOpaJSRCb||6ls8~U)J~v4#7bv z+bJq~K2om8498WlVTe@Qciv^kRtyNB7QlS1%m0wn0ZeRJ`1sAjfxqz4r4K>t_pTp3 zedg}lV%d2se{Y|(>kq~`IVv=s-4r+}r0MpYVf3E)?eh-tsV{;enAcSgz*`1B`|8{M z{re4YXySOoIhvatj&)zY+@7gsyY!zO!B@$)2VyVYIBk>E@j)f&Un?pJu+W5W&(f;X zu~JszqZvZJnz;NwM7;+*)@}Pgei>!&jF8zjn^fjyrpzQHqNS2ivRC# zvV}@zWhE;l$*SZcTuEp8Ng)T6DdecZM-$3a>P4 z-Td$<^x^UyP8N6X-wmR()BL`~KoN)#+_GKp_;C02WY6llS=FfH5lsFqzxLE7?XkRi z@3hJ7G)?btfuS41=0{H@+_gC*A9k!W*DD*{HRRgyDJlOK9(i0?gW6mwUH(;k7Vd`D{l8rug*RoKJnE)%dVhg{ zp20r1XIuGS{+y1F78F@OU$#v+7Ntyb*H?6Hcn@(yhZsGm#>Wa%bY0)9`|;E^*r=(B z`^rDuvyp$WTw)mo5OUAI-NWBwDHF36+*GPX!7iVO-ZhF zk^Wb&IVw1ECmGGMTD``ex4Xh#49M{3s!iLq(qi5m4K~YUkKzq{yamS`f2|o|L!}+_ zAi+ogm+^&Zq1&elhvdBlgn4A4*kYfA?jnM@3fN zrf0a6c<+m&)yB8Y+eY6$Kgh9IvPn1=NTj69O5<;bET29VO?JSR?+oF;XWxnrHA{T(*seD2bT47YR9EJ zN2;Rtbhi|JRxN$i*nRm)C6mW7>6UF5ySv_o6qj{7D-oYH>?n_Cc|j|YAqjuQtMYC4 z$-eRaIQm4nF7MSQ5VXUzbD>D-7VJ}avU!t?mksWb(KtPNvzR#TYU0$aA9`O+@15S7 zT>x>3t{=0^vOX@!x@xv~s3M^@g1YOALz#-7(O0nBd)Kx+;`({vhWC73wtb1KFXNSK z>fWzB2G{m?cWp6EKYPSZ$KJeTw!{Ga8t%7l}4xYZI?Mg98;}`qix3LtJ1RODW zw^`YAe1`S5tntD9KD7>c@Y6sdD1CUM5V;euzoBnj$?Gx;NCfRC^m}hO;-2%6xFV!o zIY1$_cHcUBAR-?rpSjtL@1&(kDzaah4C8@fVBfRiWJD8L${H21_6?C(3Rr~+gZ`<>->dYPX!(mB7e^P) zRsCF^xMHIFMr_2)V7i6^E}BjKvp+^hLqLe4m}$42@bH?9sNFPQ5WpB)y|({ch*|JV z>tJ8QpWzI}W0{`kp}9W()ca6rgW%V8XGZjEfIs^O+7NdHn(w?w_kU=vD+A8r8lS(i zRAv&$24&is`DHEb?M#{G#U~jPv=UnC+(ZFRL9T$#n&G)MA?~klSq_4VxMX1%uS=Y9 z*+Cm$wd@$b*NgX|cD7>?P2*gxTi9Ju>$oP~)Qn`0Q1?4wC&~PgR_Hj+Bsy)vAur zbY*8}6Ia8>+uO)j{p!OiiA!!fQ;>ywkwB_=>L5qS-@Q3Xh1GyimYB4w^Rsy&Jd4~3 z4i(cA!0R5b0gg05x2-*@DMp~r&wUmNto2q}oRK-B{IiseHaisX?xlan~>vJ@3Pl;bSh6TX+W7c7l3o49iTubM&{&y-r5UYW0yLL*GLJR*tmIeY~P4ie_pAw z={5RG6a}S={R2xmY<9kRs}5ahJ0I6@;EeI!y-r?FAOonbO~uc;Z(mDsV1phjuPTS* z7U*P|fe$68Z)|hiO0Quv?9XT*8zx%~#HI#`6jjBXJ-!Hxgtvwj(K5h#F*<+2oW(P( zyE0Z6Jul&4d93Un=DjTS`f8vaFlQwGSU#}h?13_|)Lo_*`3^1)){KE8v$Yk&P!bl* zMrB4D=U`nG#Z7PAg(-N_z!Gs0jVL2B}uZ#F0X$$2ptv2PWynGy$$1?jothiXmlA5I~r#@QlG8AXH;4%ycBeLm;MU=kZ$gl+j9& z?7*Kr{)Z26E)JIt>9=av#TRrseH$661mTi#R;&fH4);N~AZ0S13dF4W)WR%-)CFk9 zOj){gcyS+`ZhxXvs^qj9GY@{5vM}Y#%9JR==aYua#Gvx3c&@~-Ih$k%JSQhzKd%gw z%Q#-Lw61+p-OjQ0S!k3F(9CwdY#wejr`2 z!*@*VC}B54okSgtLdhgR6_ga4_e7-nISKaAnt4i2C)H!{ivgI?w+`OL~iCFw*~Ur?e1c|AiSYB8J&~+Cv0aZqHFUBA*^A& zLit57=>UI8*e&eW*7>*KOeXPenCAg6lYAm-jnF^8mKI7p+5=$YlYJpvx}Uook!J&s z8ni!=Pn4Q*d~g<@>?)yl3VFOd^bMVImy5zFkpk1|GhpZ`3`Dj~e(i{gJ17VLDCGS)Jw{d~HU z{e9bLGU5<1=8IfAyD9lSsP_syhxTcbyZX@l(Ruztk~0J4FF-i^Ru^_9 zgo5G@u1wVcHVGQQ_U8hunFleX{EKcvjwbmINgm%G`Qj6|y_W+e07s=vvd9r%vz%nZ zK==zO!zA42{rghqR)FFn9$#+iWY0{Ql3DWZ-AGU-_%-AaN2pxm&did)V+gOClA;5D zAdyHPJ~t><+Pyuh+%M0Hc}A^Bm95vS-Qw=)kX;u4M8O%kxh6#u|G(Eej!ofGw{rvn ztBfA7os6dR4kyn9_m(Q477m`BOnaBsykMa0@L3k{tAmcheX;x{ zhgL=E;^FPdN>?L>A>l^bSW;3FY4?x2M7zmsDgXG3$4iI@NazH!VI>|7G3hz(Kxu#~ z2;oMIvh`BP8pRz8WQD13hLglYJZOQ8AOrjb>IF~dlQ85Ftns@pLV@Tk8oo3Hzx;rG z6UE~C*tvI#7hU(YjZQ=I08_)a@o|BTLLuIsV_@@R-a5y$gybw1@GLDX^;F?4OE>4g zy)^N6(pbE6<+CZK`IF*uTb*&)0^&n0K%9@rufzom<0#*F_C4r(Mn zJQp-FBCR8p3E>%U>ic=&N&PjJcRlj}3 zJv<-cKWUpjNN&(?JnVERVtdq*Q&J$A4S~r)ZI7|B-KGhL{`W!LQbOMNUr9OxI&y%R zd-l}l+Yh=*CmIZFyx>=gw6WS!ZGDMcS((A^nw_%sthI;j?b9T9&JNUaAWo8LMKhsS z>)d1l#Mx}dZ`Za5wuibsWCN;cB*f`!~jj=<1xi(#@%Z@)xJvY{%X!V-{*Ba=#bu=a4z(H^Im7| z6}hIu%WsYXny5r}0jLa8Ake&dsVp`IBQwRvXD11@{xY#RK0&guKqf@E9I=2e@Tiu< z!zt(%FuirH2prU7|R+S)WXJ7akR__LW2BH^^EFm#5TaOz@j%CtX1G^%^wA@ZB&%pJG zmlG&>NH-&0ictjGzU=yVcqXVbj}G^<4PyARNr#-C8|G*Boc5RcpDi{fRt=q%v;Khp z5IIY1(h<1LRTh4?5cU#dDq}-GC}KFHrV#tdPg0h{s;a0Zv@bFJy$_cW962LHI(_uw za=2Hap(GkfRWLTc85p!hLF1V-Q~UB#{5^C zV^4eq4_E12$TakPSoJRMD^M{MhxYmm^Nn=0p}q8*9N<00sfNoQ0{xIbH^I-{0j=%v z(m$c{dG05rhC8qB<)pq!ELV=g9i(;c&;Hm7{LElL5Y5K~^cL=^9GO%^QKZ0Gz&YnR zU+lQxI8V+9;YT5Z#iRqSjb(>4>LH9w^iY^g{;XFZB1h2Nd)z+&xdej=$)CxA1LWKS znxkl-Wk6CAh&m7&&_9(w=2>Y37$5MubnyrMYB$kaMklI-bh1b&drwaf3au>4jQb;G zm6N>=xD#+akr)<Jo+k@&>Wfq zXS_7vx;Q_3U4HQs_#0?5G1XgeusoHG!Q{#DfDRpw+-BuoryG`LlL;wzD{_|V0xFsP zo*p~q@*Oz-WvMHNVXjto`|_%|ssgXuA-S196^P?x0h|L5h!;p{I5ryL zH2|zE>D>-d9ONP(WWvJ2ik24thE3jrH=eM7h%`YL0_@<+;@^q5>zcaEm3W`>0+$v; zKhQy4T;wq(jC|JQ$<5Lb--*_pVLeg^DK3sVzHjuP5Xci>If6@JT7NY?X=5wC_)|T3 zDz$Jy_m$qCuV3CU$tYbN6*TfvNC%7vD&w61=kz}!OKyV`ejUuPbsw_%RM<8yTB0Ygoe0U$z(aT)<; zJK?sJ7$4gAkez)SMd_8Uu>|}IBv5e~2z3}RVEYZjae}K$5VtH6QULhH-JGg%6D2bn zu-O*=;53Q0ED0^T)Gaj;joU>+xgj!u<{QdPf}xW@82#0(FC`uGUru%8e0M7iGq%7k7QU&j?L}@`+^$))-%XC>TdaQr~cZ_TnW7d87LZw zp~qtjKXmeBX8gF>dgu=kis-hyg-AV)~?6qT%5sC92DJm)w5{^B7Xoq)DFIz`* zGw<&SRF)8DS&gh9B8jYJDe=nEUmXn30tPKcgo+)j z9zgh!g9V%lY608_H*dckQy_}UgY7*W^&M>e_Yn3Lf);vQHP3FDm3^HRE~JMf5?(J$CfN-&VJ=;1rHK3Y^3OcZ7+7P~=u3LGG#Puy{rQ{^qZ zyf%C^zy3kJU4&~U*pKLg&Si}2jsnUG^o;?l~CVp0~e-48>TxV zBevcq@hXKbb_6Q{463iP#ivvZ6%g7>;GobmkT9o~77t*!sa{`~f9+Nil{Kn8m)gS? ztKuj5lxPv*ij$MA^Sum6i}*kI2Z9vnJJGO71_xYE8jc(*Fzf8v;kXCFoVtti91JO7_lS z5)7Ts(Y}vVwEGAB!=R_d0j3H!lUKqGVZOnI_Z~bru{-HjeRm7(_fw_*Nt)|pS^fsU zv&QkOISS1XLXo)5BIC2}v)ZTY%<($Pqae{ zWuv7a_IJOkjVxxK8pc*#Rg4e$h-l~9cX45tKoUUgMvZo}fS zN{rLIWs1m{R2byd%!|Y&ExG#f?b}1wpD9nhn%H^xnQyM#!3c5H5{{kESs|JNsm^jb z%n4y{1f!|7Q-Dp49%(U|cum2IgX@<(6o)~(VVI33Y=NZ~utL`7ORCHJ>HJ2F(RTOL z`q!^D5PQ*BPQ>?sEkcS@6O)qI_D@{UPz@qEDjVvnhUb@^3o%C{9D6ja=N4v1vDbj1 zsLv1k`o1&?#p0NBGpEhU%0(O4rC~VVP!dQcS)b`s+U+NSVMm>CKKyY|!#}O7c<+0?rUZ$D+?V@yrG~Nr8Q;KYxMlO^&_|Qn zYoQXJ)YqdgOsZa@l@~T{ve$W}8@}{+q*UK@=}jX9#ndT%1B2*zg$^XpLfgQRoy;A) zCrN&p+@OddjD;jQ7m01SL^+1)y-RHovU;*Rb1h;L096C)!F?!M+JHVB*_hB)`fG(Z zzj~$J7lF&OURxWe;z8lJy3oyZQ8y$0sl~yA zF~G{s&+sJ~+;cnd8I3t)8Ouh5Fv`ZR^}67M8gW^$2&r$duO2Fz2&Knof~^$toioZc zq3uUwml3E0Bl8hJU_Pa4pIWSxe$N`J23_R`S!vH_e25dm1$C$@a5VADtNmrqn$LaP zNNzg(BP*)>Fv?Q(-waGK?tg!}u*(!!?3PvRRT%KJAs@hv;DJfuwbtV-g3Zm()hY@t zr#*=K!QMe*n4b&w>#?=Bm&DbJ3x#Ca<<>c3Qs#|XJr0G1Le>?OJ_Kk$(dKSh1Qk5) zOUYk7E)cOmWemDXvffl6N}Ht0!ODccitF%lY6F%uDbE88Iv8b<0X5QL_5LiC z6pF5U+g?Z{&*;XXTE#B|0|T^x;Mgtvznv3}K+750c>W!L4GhbOuEu>w?=$t$ach>v z{PGxt=;^Pnf~E<~m)3UqKCb;Ps}tAYTnN|P<2Ev#8){7&Qcy9L8yWHdy$StEU#OiZ3@*9P=CGf^v`7t-!E=y9D|7*{Ao~ zmb)V1<#346#>8|C;C)G5u*U_R3!P2Bni##0^6}W%tznVA-Met9Wb+(0OZlD|pBR3d|&cBc4 zEhkR{G@l?}f3HbiqoVA_jl4du#E^S~#0I2`k4^_4vqGIKnfsmvIshs(0&hw(iq_TK z`+*A}#3HME1+^XH4R3L0XiTczc=gcu%GYaT1Lj}LKRnu>6Z#SQ)5|^{9@{abz!~Hj*-sxNXn%3s3KV@e=s8gmiw5`pv={{6kh+0RdMWzqS4^PnN zfCPehO}|)p6FbATV@()&o;a*QzUuAnLU5E&U6i6i@@65vnQ=qN;u#$895zZnb! z9!>+|_CjJ(P$H~HGhL})8d{_-m-5mdo_?lLuqWd~QfO?(wEH8rIR_rD z_%SxdFII+nL+vqpEEI;eQ!{F?R>m);%C-MDZSr34)`|h?qQcD#;-6Fa3eIOEqz;!h zo-tKPEQ~5S$o6MuM(^2@^J-j0yykQ?uo2z^I#N8BM0e1`|4$kMp1^{?l=Tdd>?2*PSmqM1csl)Cu)LHjmOgCAJO`j%Ju z(jHpjE^xKxiNd|Dbdzicf0Z6*V`DQlHKnUqYI`@#)7IY3#`OgR4X!gv!Z!AQ{bVvV zcN-Roaf@&<8JBiO-QFN#wr%tLnd?6n=@Cf%IMeN}hQ!XJi# zgan-c{qP+BY-J|ICr>+~iXwiwid&7q`ux9R3XC2AUEuN(6OPqoKK2Wdd?1t25mK3n zK785-O)udODT}_Ji6)YQHC}~?DGyVhkNIVwV1u^L=)u0m(?d&!QL2zMSYhYHsfriU zQ}292PfX}St;#j<`LhiML;A_l=qdhM#PUuG*_L>jGH2t^F{egUDkB;_9@U*fPftK{@2<7%HUroBJye z{EL<*#@0Y)<3=)bB381!T`)ng4U4i!%Yz6kY}2Y9SjoP;(voXAbSNkjL6_FqeZ=~> znEUtF0v$w<9i|iX_2`>PG!^{PYt|gI+RuodAL(-Q{S%%tW538UDBLo{@mr_9=!X9X z8j=m)#_ooSV`R97ZAmQ9!;PH`O@xP;ty!@jYdl!e1`!6s+LH;>42}iMAsJfXAjv+) zw})SV!X!6+A_9W)rNyEZtenenK(?o7k(S9XjYX8M=c)ARZlAz3Z2W+Rg>AF$X%h5} z08J`0@H+4n#E*_LSLCw+398E8KL@4auHe=JQGuK&2!GHbz%=;UW2${bmk6+RGoU)x zH%U8|X)c`m?k$>VJnW{9j!2RTxgA-|PP;2V!s1NObZ0MdwZA`}!lycS4mmCyvAbEg zq85(cc^q?CTXP^0j^6NRWBZ6*1)$7-#vmkwVdUrs-i$^CwG=6f0<6YpE7&Un&vD+b z+|}2xw0mo2{1ARx%^@9NFbXqiN2*vu45G^eayQG4GOq}?&qbg%tZH`x)Z%fb*N+9?x|5&dEYSz?_YsSUgoms|T(aB7+gviZ=kXhI7YXTy`M> zzmHo9XlZHHhsU4Uo^0|ktz`r!yNBu zS{y0q)tDP)+L$gjmy((qVV3zhUhe?Pp1oSEuJkQW6wgiGPe@p6YzC-fh$r!opFDYz zyJs+0_GSM79Zi~8_s{}r4!wOdbha`^kGT?b7W5mKdWFL2B(?Qfpj33^A${O%<` z=Vl0e&~)>uC0#jY1-dR&C;yv^-RX#yYI~OpbX;SvS!ZdLXW_Pt7e2W&#c1-@_h}#W z-rQ7IoWFSUm(DB7`qm)Z>|abAY&s5b;bHC^oes~YXrjG<8v)B#i`=x<|F(uX215mN z`&kLF0?-TVD8?gz@xNRvgwU5gG>JN9g^-+WGc`D6jV&!tzi*x|it3@B+fos48OU0z z_c(5ca&>M-*Phc+^} zJxH>TiB~yd=a69G$g`5fbs=d9K#t|LLxuLQdanfUcz_RtndSm+;sg3}oy@>b40qrA zKLj|{H;OjTdF_=Cz1jAQHuA<^0}alF>yA3#!en~Z4?QYlW+X@e5F(OWzrx-$?L$2E z|GDq?8X47==(+D8`7LL6a9@(9C96N9qo@@tD6GAx4n6`#g6Nh=`>@uZOlPaB==ok2aMV zUoG6vXi*?l*%<17fY>X^z(2hc15fbgN`wEjiW+aFfU5Et>Hl#i)9F9cLnuG4P$&lI zCf8*nDh@S*2q4l-;9_z@W;7-_@G35iT`TG4=jCNNN$GTgx#-WNvj$~y_D~x8312_a#s2b7r3-NxI;INqefX{73|e=_ z;h7i5qKc-`f?Rk641n#CoD4Gs)%twAs=?S#(9v;y@-p8kuauJh{{HjBX0U*wU&YIG zBtgj;y&WDRgoMiO-x|}Yr5e^|KU@2qO#p$K;;^}ehwMMn| z4>2NqgoK454X|zvIq_e@-2R+xNasfCa`yMq(eZKH=`ie_`|m-K=yKjLnl@R(BYBcR zFbl6d5?pleE*&RGiAVwBNF~J;P%&SZ7P}1)k`MO*tazONtn?80Za4SBwsWmhmSuh? z*uk7PKi@pxSymDs`_dHhL=z;fjGcTOjjb(6>7fMrYA?=_90T+O6$7|5!RtoqU&MQg z;)4bUYX3fni6s?6AwpL6_#uS4>a_hJ@>>ppEHKqb#FZ!v+lJNi;3VT&%lD&J$T!0k z%wPWCUs9yRF&;F~o227KIYB0%kff`|=2p4cd_3li&@G_jxYdy%BbLT`L%ke>Q`ls7 zje{oA>M4&`23YIkZhBqPDylcxvS-n+ZpovF`|NHf_Z`6I2)t^u-x2RY+PVVN0PAaT z?`B(>-)(XvT7Fk!Hx~TC1UCequcudca~Xdnf&obcja|8zt0{k-8#QsUGK2{~0|V=R z!0-sLdtCe&iKl1Ij72LLLq^`}yZV24Br_;BQ1AbDor2y$Hi~7!o1>VF4nBL3#|Y>R zmR!gVQ0_qWp}e6ZlALe{!Ao$9Am{I_iC>8j3)SKK ziw`Xh^m*grsFtrTF6{jy@@W0gS;=R@6X;<6bH<^R;l;)j1LT1+dEgG%Z9VU6i}akZ zW<&c8BrH@mF<42FY58)CcX@Eyk;P~@$v8Nnr@=EWgBx^twc_ayC-5%AN@Lk-`P)lH z<~u*SFl_a5&|ydr2EeKsyn-%4|LP=v#pyR0tLfpuGdt<@I_WXfV%iBsAuj*j(?%jIVp=ccj$ zc95yygp}da-<2YUkn=GrI7+3PW#T7{1l))}fki0ffp($50aL5dl&r0kD5Ix-^-cT$Rudn3}~NT@XvzS-1< zb-%X{ZEJ)y4g${a--BC6D#e8txcV*Y7o4+4 zn!~2T=5xza`pO%)wXSjS`C?&_ySwbmoRj||*d%mF2Iu{qoT0*0{i+Cpd%}LE-<44# zg&WZ3Bdd%FZ6UqM(Zt$1ddai8w`p)7!ho?lK2V~dpn!FG2U1bFFJBBTlj>6nPVZcl zGrPX`KL5d|Ae@}Ki}~?&Vi|ff6(o}B=?e?8^@O;|Uve@SyH`)qSDd2oBe=&C>>WuJcW&R2UURSxmNG{?Q|jd(L)bbVa>^ zKN0u4+`}sA3i05fAzNBH7oyb6oxAbn-!$8X9tS;t{fGC?g$iA&_?Ln5JZh5V^|JIi*<3jT|m!$(%X@jS$yQRWnuLTA#AfH@*4#Ye?f@sCR?l6aLtupMQ&DcApFrTP-n$@MA%U-|uVG}(65fs2 zCQT!w5Ba?#(>`h6mE#3Taua`xCz=qv;DDl%KKDYiQF++1z(iYCKw*>)=6jM4w1N^) z{S8~)_kN238tl^H8hQR7H}7S*0x}yVS)Q{eIzl%+<=dFaT=%wZ{AsZOdo|Xaq2Qyd zgZ%8^x0i3(XvN*mk~T_k^FWZpFgaY&oy|1tzLRh9*s{rp^IW3J+?QRYK%2tgdvx0=YhD*l96t`mjujCTUpyY%y$di1>j-U9hK{|k9YQ)iG^Lyx2Zn%545_*uM&#!+_5PMRr4Qwry|><=yc|c4k8Aj`e*_u zly7k~&j2OPlJzNa;E-lj{P2qi1*{cdm6boIyE*W&V5dUaCp$~Z+UGw*IHfUwfEoyr zxhuZcz=F(-e9xC2XWrB^HsHm*7R!lt@s_Hu$D3_K|72{1M@ydxf_Nh@N1($3nZeQf z!DfIpc;xS(wBoZ?7NT9zevM5weX$mSPyhZc)Oqj?@=WG%dkc$eeK+KBrC{zv@F6^f z@`F!7``J5GsSoGn<%K>xzAhAbcVVg%mLRfqKT?ftjEx(j9qQ6nZ`-#2n?nmU=7=6h zufR0WWXu4Ia!v4SAC`iElm+9iRe`}S9Y{JLKV4irYZUUs2tw*K+TK(|shZkJ( z-nfZk1Ow~FAfdcNGK_kGL;+ys-A?1hnr~pLsORUXBz3Y!?;qY-_&TdjksTO)W?E7O z*be%NRHn)NH*koopnX4l;_(BX@5Yl%R0hfht>?Z=y@C~rmtvA8f29GtQmCK~h?m&ZK^x$Bd>y`Q;01f=M!d`G}17y!1 zRH~0U^pB$@-+Foc$-BJwGIWqkoNw612QYf8up#xpB@}MSTZOh>43my0oxU1i7A?~Jpux3Ug{^8?)FuQI4vQX&@7Fn@Tqo(L$ zP_=N+zzaV4&d|t+)qW-xWIW;&C2b(w-%U+xg!nAFd*?WIwUPx1B%I)dO}#Lp`H40Z zeE{@AdoJ!pwkl#!&>!fezO;F=CdC4LR?>>#$(r5CY5E(QI^CD|K}$77c0pkZgp1K3 z8k{uA8zEgdBz`PotF{Qol6-X`f*fOU0>|^-v)=v>M}PTVhzq|nrzDC?n8SO3q-8K2 zR}@0bxicjoBP4144Gagb9z#?ZnxuZ^%`>NOilV5ij2}P9UWW4n4J_ScA^jl7W0*rZ z_y;HD#=K~4p+UXMgXeZKOg)-fc!CVq1Jf2rkjCsId(t0WAbB3E510VLTg@wHAdTs6 z&(Aa744ZDs&8|usks?tYg1HsT84 zda@3gd`u{j@coT0`Y+t!;f&)tDZKLSmaUSvtiEA=1AD#dZiJm3R-{apPa-UzGAZIv zvI!D4*-$|dVc}3t5wJv(?-P)L8$Ekz8@{n%Bk|O8yO}jn&OSSPRt#`ck?92GYRQio z1h?uN8%H3&353xqSI6f#2l!`Tsq1~Xk&uB$QTXtBB!UD8)eh9C>I6`-^mGSPp$bBm(YeH3|V2&^!AL$=DIeDgKm;WTBzg;_NVAda<)AWLY^k4_sy@ zp}1T7RbYuvYV2a7sq&WaJQWiTH>3oqhJ{~GRQZI^KxpEm3d+K4Z(}JEi)|GY#A#+X zCUPtH#7@q6UpHeZnI8uRD3)CUYt1K-0%Wq~1rzDxTx0EmylS&Kgh zxfZ9j!WiT-0*v1j{ODj+l|Sn0s<`%(6TWYj{N0$~1fsdgjGt&g_E2C=AA$-ByWBv8 za#OJsq>Vl4?a)sS@3R?U=wl$i0F;7%jPTH9-u!BJ1C-FQ(G{K;+-F{5n{zlfd*}>S zO_8N8;OIL#I(S3OrHSTi_f#jXvPc{e1Sy84is?NM6eA$o#u z-LSx}shv{|yX9Ye?zvZF!|OZorQ;G`SJaHW(QI~L!9d4{PcM7cMtx7Yte@a8!7tIY zOY!=|1eaIY+8U|L4@JK$_)M*dWITSmlCq^?W<#o8b}gT=3LS(l@2ucJ#!4W&0{{Q& zv%*19mf=Gh9kmvsOItH*E}f$wT6U^EaG@RFx;TvY3=n>ZFVX4{fJN8i_sbC1r9j{$ zQ((N)7QPSj^Cb^kG7y=BS#fW{N;g2o*1yl+0-tHx8aw??Tl9+gd5ZV#Iy6mhdu*(( z=|I>D9su0YssrnwA~ZK={I`+eVcV@vr&_2<=(LNI!%n{=TBXml_(vc@Hhx{jzC2TU zo2sgzh!Y0A)x2-+pN@-(i9u9lq{;eFxFuA#Z>hinRm)C*27vSrg z?83(4-TCs~h)l$a=@^UkR%s@UH`nFy!n=~7uf1yM;@XAL$#BJ!v0IgYY}jka6o1T$ z6pzm1PQov2j7EpBmTv5tcSq!|L+%X^LY{fE!`}p;wABY+#^lGKWn7vcBlTUlLsu8|6ZBt{p;+`6!QWd zc082tqWdi@()03oR2qOYHqTXoSVDd`L*z$cR_hc{P{*XxMoqEM1FFi~!x$YAX2gnV z3sLm<26%ppTV1<%sl&Qc*#37)>#0M}|F$EV@A%WSoSe8tTj9zgNWwK%(R~bOwOikwms%ATtu>#Uc{_fP}OaMQ;^KZ6GKOqWZoId=mGiExV z4`*io{yi-6afxNii<)Te6!bOswgn-i`PrgnMpL8ieYDAtoFT#x!i36+nGkMjvZ>iB z%&_P}@naz6M>?~(b;0(J_+a@G$L+?l04Kis7tZ|Lbk>N*?H zEbL1@pStv|R35=#FzsLhGM|+Mhz8Z|$IJm`P9QGKVN@d9`qOzLv*r42^5x%RfKq6Y zo2>hVz!czm1QhmjPp|Con!MvUx)h`zd)XrSX0c1&7m%A>Ww`;W2nRo6|CVF8BA|syfA9+k zqyx={uNU`F{i5@8>!kA^BdYCh?egRVp-IpS^(sC zBO}f=21B@9sqMp%eVOJT6W$`S9a77Y-muXQ*!)n$ur{8w$zbl$ScOt0ArCJ)sj2qF zUQ1(rC&WF+pEiA}1i5oHDM`H`ZBL`?>QJ(|854b0Sq|uY&>!`e3L)13iSVq<80i`C zU~i=tVGSce4oEbDK0uP2nJi>F$z-A(`OCSSvr0$my#m7Sw)vde1-erHJKHshx9|s+ zQa|s92j}I``su-j6!i>U&XAqwYx0#I2^Oa8@Sk(HDR}Ar!5LDtpva)7+;l6XqBT}q zJ8u<+&@l?S4+x+TnGL+)iq2$ncx?!}rK9c!kS!omJkvX1|B+SqzL z(u+|Q;#ZV}%_Oqz0+Up;d}d>8`Bp=l{rh!lYK&9WVv+JVsS>9lLBX?``8zc?niDdh%t%iM zX-g0{{q5lchMj*G0zlD8uN|2OKEHAMn8(YL``)0!M$eYfZ%mBVy$k^Sn&EnTq42gf zwunN(&yT?Z9cfk;8xRn}%KcM?X-aTc0NBEdB$u&!SI`&Dk^?ul(HfTKjsLA>><<%! zqS4l?e;E<55zy%J8S7^5;%~3^!Y}}7>g6-KpW$Kxn?maPq)PeF`tf($-6&a)9&K0M z=CF$_5=S`l(d4|fn{Qma?}A<%m)^Hme3|A3FJpn$R#nlb$Pca0wIto7e3+ znD^y$Ww1?e>_iWv_0;Lg0(+KG{Uui4{I{vh7VG z;^GgQw0 z02L8b3^^Q>YDgNXfdd8D+sUm>fCaCx@%c6$UMJDB>x(cM7hTF1wg>4KEoF!=tS7r9 z$C;TNG`flp3=Ibb39_1trv`{S6DRf5$EA3T8q^z|Y) zb}})?ZyBn(-Qv%rD^6BFxh*0cj?2U{bVcE?$JFFMZam~fTL?g%mD{23;iA1-`QVk} zRTck1a`rb+L^+-X4@dFa~gtG}fjgD#^On^Ve5Hw1S}@gac@klH|NVQi#=9D2gcg*sNw+ zs#%%0_d!sh`mS+y`LR3Aj$3IzPN*kqpEe6Yjg-@~C}6vw5!5ylnSc_BH~`aKLAb?8 z7wfUFdwtL0)rS%#d%f13NOybLjYrEj?NIYCswAeMekCRGj`!7jyt>pQOx$k_5IP++ z>IW;-NfYLL8<*5pV$(728eCxBl7$RUeDvMLoT zmBH%*cR&#(FF3XpLfJIpha}y-VOcF3`okGKp7&S)uedZ`oXH&KD4}^@{;Zi~j#6 z?mY^np$F{zx1mRLRlb;H7jWark5{kpF6;PT1i&2lTQ6|+rvV13Uysy(-Dq%{6Jn8^ z3^!A!hgW1`X+hoewie)-SlKUK-D>mA6AQ~0yF4fQKD|!=_WdKmxC|PC-iYx!(4&g8zdEFe<4{Rj3qY%v%{$onD0Exey#HR z!k4N6%`vc-#UZ=JW#WsI5m<&6HW9e=m)sqgzcLE^GwLJ-h=2pTzadWNi`JD)CD-S=?6lql zE_mifvx{cFt}0Y>r_5dasIo43ja9oD@YhQN*k4Z^@pvhL4dU!dLeGzu%F@y@2r;0W z3{OC&0yqPG7x_mJ3uAso`-c8jZ_7GJAxY{n7GaX6x;0 zmuA(Mn7{~bII#4BZ`?QTNSzKPD=UjnN(&@tBszmSfwvx>o&!)=qy5D@sd?s%T&xfh zWGTeID=Qm{R8v?A$cnFX2hVIj_^$BADdwyrdHHSblud4sgvgbC5TWU8U8{Aim`7vN z_az?c!(R`s=6R({oxND@b4SQvWsFFMh2PJ_UFlJb^0Kn4kCns7_c03jN9i9du#lv5 zJG5EN`41oztL%5BL~1V&6Lv*SfM6X}3#$dtG@y16WgHYc&+5I1N_~^6YV3sngfHCr zUL*IC0A@`!?@_23Dr(Wz`!4Y6RTOp=my+ROD$3Z;L1*k$&cdghH6H~K_ym!^?7}T9 z;!W%l6ckK4zYMYBaJow)+w|G#1J_wL9548;;v`s*T=2=F<2zMHf9dTS*}IoN9{RO0 z@$J!M?sHG#tRMcG$>>!Lci@;*DChDUSLL8(d-N?Vx$-ONW*2QbrE~h2NB;X*VaYSe z8=3ixD6%3m8<;QsQi+4QkR*cqvmXOZ$De8M=Eeg$lR2W=-Qy$;lfO3^OSSNZ*2z{=>ctpTB={mR!qT(gk^38?B&o zld6xifMLS!b>d64$?+S^Mby?BuV+`|)`+JI7?4pn%sgT}*D-KWxk!9z4*&c9u0JYr z{whaVg19Cd4XoyeX5_2JF8Ud{d@dph6K$em!?h)}wo#?ZLhW1pI4qY2&>Q*7?j5!q zh0Hiz`aLy`J7qymWw{hb&>r#nqno*@-;UfK=HZMO!G8f_YxhG3q{*BXM`!Y0y`L7^ z`{3s$NJhy<9F4n@laTN*GtxuMh$SI40144O<+}8$&3E@MtU?*2XuETStxvCj)Dn#( zG1~r^0V*UDkmS_%$o}*0A4S3ymQo+N@9w^`*6`-mlLg|tUMzRj)20AGK1uT})f_~K z->2q3OEX;Zl3E!IlInK+Pi6g`{9Wn3&l{{iYjADB*2}4QYGc0eC9V6hA5V5LIcq*L z*V^}q((a{1GvS{5&OpHUQI%U-p7EZvZg=^O)rzBP0`3!SzM`DJm>K8)sX%Jqt1WMf zvvm6S$MMogQ=NnQ+H!SDTwN@B%qG#6j5s76Up3%g&FitR?&vh*l<|RD$)sFbX$${` z^LrgsjQ5C_cOIcOJm!nl@lml#g-Idd!T!ECb1D$4_>H$R(fYfsN&*9U)Mjq)q-3s= z^R;2*j&!Gox&=|xoc`N_+E(Q3Fowm~=QT0h9YsR%bLK$dHaRFDiTln=ch+9tY0B-?G ze^1v^_k)`jk0nB5s+Zc`#ozxmK+JN}qg%&OS(E(MHr;$rP16>?Ccxvq?vO;$r z)xxcVonvAjc23pa;d?B_Ag*kYe0KWW!3)FQP|?3onO^%r_WXy4@Nir^>_A7cL2ng_ zOv2QMUuf}h?PcCM53~@{KQy8M_mBlKN#ap3BFc>W;&z35ik96wCuf6rc+!g^h+?v{ zA;60ihCMx)~RGCnBKNhldp;A7(Lv z1|VAp`YA$aq1AvcR$GEQsAc38lR6FmylsEVAC%u)D&D+k-JpY|WtGp#kUW{)UV?4w zaYlsPw|f;0lQFzZ&uk3Vzss0w=%G+PFa5ak`kj91 zw~N=U9x>3?JG9UZdW(g|@85NF;6mRwt85EEDx{&ol?+^od~pb^2Qdt2A2C39XpTGW zyvC44DIg#~qUy2w0Vr=8;-H{?1WSs0S9||{er8GNt}B2_PmOz)`x-L2zLdE3*K_NS z$Q6@ja0EY+F~li>Zh!u#!qVo&LF2`vVV3u=gQ!b4jAcce3PP*t_JMGFZS`CJIGDUq zM}Y+Ht)i~A=Vs;e3b8+W|KaD`kPZ^4B2_KLX`e&1npQX-1~VF%skcLPMO2Lonjte| z3RMZwvZmULjNl`Yu#Am_BW^4oZo=q`jhv^F@oNbkXCRsxHWS$0QJbG50F^G%xM_^#TG zej|JAs-W-)7qs)^L0?1y0+Pz-kEu+5-1jgir_OG^#t!k={ReyJEb9Nm`?fQsfA+7rBC+CYAIJT1(S2Bc)><-P4yN*%#qkUcGv;iI zmm@nrjA8W;x(u(MZ`Ng4n@3P3$yUh6k1yW0OZEG?8;=#SVsHsT8WMN>%(V~7f$rtO zEp@+CpxA|iXFH&2Br8Kaj@5p5%FD%pA;G8xD^11huVJ@&nj8KFi1FybgOZURN8*gr z?gmByx}y=;0BeMI8RJ@@_nUgJDJ>$FCy z5mu42-AOD&3J-HA|2Izo#$uC-aXQN1=#{x>>!b}w&Adlw{JI!=I}Ep#95ePO4ssw%b6C@{%xc6VhNL`ArP$y0ar|WoS>!KAY$(HqA3A zlmfpD53}VN9YQ|I0l)dyRDqt%+k<}=-ncG*b0yg6GKx+oc zQvLkfxQvb?65`eh~r_L)}>Lh$lKfC<2-(MR9@gQRb6I1%MO7`v!9lp5uH+ALj69$?j z-UC~;k6#QlWy%ZVCjC0H3mN5?fZ9eSUDOO>_~r^w6;}!R)GJX3;rDN(|7?2J7QoEhyk(B z7k@U){mM~ZOCf+597W69PbQo|6Aio5G!hJlZuyOpT07R+KnE4;+#pBQRann)fz2%~ z9}B$|P6gu#P$+;+vSxUsIBd_=eYqTI*(N0MY@|9+WDmy$(*HHhkPX%hv0hbwG`c+J zQ`S}N2!m|$`6dPH&gY9;i4AbN-hZ(k%BXa0I{%Ra+o&mvO=xFw&v*9sA3if7E-sF# zvheDY#Lprwo6)N!d3RiY&dk365Q;W*5G@U$l62;wjLsQ^B|)_YOyMp9Awd@c(}5A2 zjI>601mVO0CnH1(Dz3saO_m72><1qQNMgkEH1-#HEJ^-_Et#|m;?#3keOt-vB--9d zpJ4?Oo7h=7yT@m?Fm)B>-&qXBOscgATewCBnejZ;JL$)WV&k_0Ccc{ZbOPmAI%Tb$@$7E}72dl=M^tNoVXgqVAi z4|_QdwOYQ#X10eAi~z($UoiIlJKoB>H<+92=ch#U6^O`io>&AYhw+1y7g!4D8tEvw z_=crPi=G#! z*okZoc?iz7C_s~lxp6piU|L~e4#kr~+!o63luJMMj-80Vc{B6OqRV+t)Pj`0g}y(7 z6_dWMPa3s0VQv5DuUd!aOcVicWCU$-!DI1aS_dr&Aw-B$ivRLOWM8CLRP5{eRu@6w zXAOitx=QGf+(gxj~?_bpULr`&zZ|#LAW?%Xv2TSoHHb();lL?ThL7*Zc-q{ zdrTNrD$}}kf<1T25M0vS+Z%b4M*j5r}Hvua$K)~(n4H{G70w1V4UF4)Ir$6 z1L^YWE0;ZUMA#WO_lA4Os9&8uRprMG9qa3chFaX~|77^@!ZaQu;33{-l%18gVhsf* z8$dtmxVkZ?29hx-P$4g3WemoU)fY30U^XdWQ?ad!O?1oskwx&_%vC3Pm#$@345okk z{bVCyR5-&rbSN)MtCl9Vo5U%?sZa??#o%#7;PJ*@I}p8wQbF(k<9sR&FD)bpb5o(p z5#%6FKSv2>4FN<5uwZW3fB6i+`$O#K_^>-_p(C4$boH@1v|fT*J>>Nn-Z=gM$`p!< zEdU@VFE(95QrfQjt2VK?WiK!IuS^meY-&2%U$N`kLlv!7;5g)ik&FfRIdVJ6(UVq01_t_^I(7KMxt;oU&9DG;!mFBQ2#dII(m<4B%}rt8pS zta+%>gRB@;cxRz8Zni^G6;yT+M}%nOZIJqhHVvR!wOfq5NokK*qWU*I8=P4y<4wy< zRVxcs>tNR={XY=N`mVw=qaTx!>1!n*PcFIFQbjp(^yq=(wUNSS_{3cm&<409w} z*OZ)qsDp1c9UYkeAY^>_OkV1*<*1xmMPQ+iZJvItRG&;3_v)h_M>{#A2txmcv!2d? z9P_q?kM&3N^)FZbO{&tqF9vmq(rN46XMwtjii=ZIh+=Wt3ymNi3R+8eOfgK28D}^? zCpMzT7D+(mKx+)&r=Cp)&rKpuDR)7j;T2N&gufJ*OrDkd0QDUO!){+ZxmcQZgdVjn zPD0cVI1`}8Atm^K^EUCR>^5D)Xge?!grrxc$2J`KZR6mubEkc_^czjZ3t?-2=A*A6 zA(3SDz}GbpetMD54`6X~<218BY(EUQ}sz|*+T;(z|phR#NTKGS4eVD-#A%Tq@4WJr*!)l_>2-xL2 zdMK$|FXl6)`?+u_JKdA7`{KLzC@EDs6`rLcM(&|Gh(|^tpc1;8)8zF zQCmnKR+>pOvgTao;9)aCQj3`U$glE zzSz1TpEAtQH1h>M@Rtt7>r;l`VA5^2`wD6>6u>W?Wb)@PJZL`%uJ4v}?C{0)fK96K zSMJ%Pj#>_XdDPHr+$p?4*U>Ki1RQl8NtYk27QiBuTPzr`7JRD8u&8gOR=W6ed*xK{ zuDggVBN!_Qg~CmbYu4pihPG%S?VF}@0PqR-UP(?!lagp`%)#W=b{V)wF*pY8`{S%m z<)zYFACxC+8n(GqA6@%*cZs+RxD+sCn_~_Za-|I8^hVkpVEEk#SVcrToQs5e!r&?_ zI{2w^WFIPd>Zs~x*4c?IhG0pED{#BQF0HH1&9QOgDQJ z>5q(xBA#GOHC4%s_yUOs(Ocl;s}Q80Qd}2r!xVa#j54s`TU$rmY5on|NQ5{8)AoG?)|{~jgTc_kFv+~F?&RPLJo$RVAX=J zos+^XG!$>!lI$I~>4840t?cFAf`NIEg)JzS_UL}+b?to?jQa*@lfTD~?KFd|2YVmB z+z%Zct9fqh)Lk{~3iA{;u!tW=QrRGv%@yBHoajJ`xh>VMtFlOGWbEEaC)}=|Yxt|Ye8cSWCn}%oHO%I4 z9{f`>XqZCYxF7pt$)AViZmiT+B_H|+?TkF@n_)95TC?FQeTwqTJE@|*Xum{l3O8b8 zm~rR?^n~_*9#8G<7I)5@pL`D@oGK4k&%x^d!H2rT5uAP(9ryCiE_yY>xpGev$g>8XK8E*qW@s3sg z4z722_i*#WJ{W}H1?-QzNB}X(i_hi;7p|LJo^{m4pnc%dO+ax_i!tCl4L~d~8mfS} z8@soV9CnndcrO~4E-fT>I)ax0WCpn7X#GWDVCW*WWk_WO_A&Y$Yk0&FuP()J-hTem zKQT#})Lcxo5ADBx1^gx=BW;uwHbKdC+{+S;*&v7(!aEuo8fL1EiC{YU735-w^?Qx2 zaW~&&UcDjUO+w;1iE8ufdQKl70XluTF}zMyJrC|CL`8(+Ld86!`Nb=A>kKX;;$!{J zl;@|oDl|vY`=G6YvQjUn79bxAMHiPJ+0oi(U(xe|2`0?gh*tqM- znk%=V6G~5Td%n?9S&8QcU+>PHPifnqnlRlq^^%xSF1_tw4jft} z3*%+#-E>Tzj0*3Al`)qAaY|4dymcG@xVu^2UnMhp$L3)R1%Rfi;SF_f@wa5mFaPLT z?GXSk?pMk6s!|~mn?>0fA+Y(}DBDk4?}i6}Uq!qJ&RRkfn_G)y2albYR3BeIpT!8; z6ytGdSaPd2M75ere0YW=1)2n%lF=A@6cEH_t0Pd08Acs>Z0vlGpn5|Z>S>Qxk6TAE zM&!Wx^D~m6Nl+Fl``wZES8PHq)i$*EN;z1{aF704Q7wF9!d-7)vX1mdZ$CqV2jjvm1ECj= z_E6nPN&=>LZA`9|k(XAn3F>{)8lYFh+98HV2$wMCY3(&N)m5RXXg1_|4~z))YN@&6 zr(}}WqA`#7!&}FW6A}y<@s|T=`bX(M?D17rQeqCR-T&37BM^jiqbfog0G-NX|Wf8Idl`YSVLkI?QX~Fr~E&%FxR#;*M4!36=VlrDA+#3izRfTNr(d81Z@!n;Vz4tXIn({< ztH6+QODHf&+bcczG^WW4yWm+TcUqqm1Xs{7X=KD?pX@wvuTWG-NCi%y`%!#NGhjxg zxvOrre>n%5>q*mTIWA02HQBA_GD=QC5KBJ4+mC}&efonkk^H(P{MiXs#|sYwAPNUE z7w<8CEfOLCfT&^(GJDv^EM8x){BJ}=B^Vw^mE-4p1?8zkeS1} z2oM(a&S$wOc_GL(GW2>4-XyoTgf;VIs@q6*g}K?})8o2)5at14Bgz2?(6}V_Iwgq;6NJ@h1EVUt$Ie_FL(rwzl zj6*kSv-w<-dX1#rgQ%N+rkhQ##u@M4!O7&J9eecZc9aG?1(1e9VkIasc2O*QaDgK} zh%G>CG~n(I!CMV%8+TNJAZTAav|%F$2T^cSV$RW2cfqcZ)baf!Bc}3{_e!U4W?GFX z{xv-3#En{io(vBTUWIA~;T}++csCBC9s-JJ7d)d$1pC8bj=Z%J4F(l2K!8Upx&H5s z1^2^jgz7(X9XJq?nm@ZL=Pb!y!!EEbG;WJ&242_PAxB*$^n`;?$r5F!=Dvw9YQ?O| z6NzI`@uiW2za53+)+$Gbit#|4ase)SbHy=edb>X4QS z>L3=RV3UAA$0#45<(Q7GsjJ&~zsHtyH9(LPZjp!|HNMX=r#{nU&?0O;&GWwer99A9 z(oaBtgWl;^4l?n&vUkLxPz`F^x+4~iRVI6f;0;Kyt4DQCr4893bvIF>V%Y20cq71u2~Qdd>R;#ru|L70VBG+8gGNR>Npp6xe_egZD(bR6Oe}m>3KMVz3?uR1Pw5!kFyYC}10K^?4S(ME9+~OHfJ0O9(o1%DdAoDJdsaXEjb)M!ulU0JXYs=wTqOuccP!Z)TqNb4w59(g;>sj95Qa)ecdXofBf!&{yS`E7Ifx{X?8^W z>jx6^Am{2J76M=*bO8r5j(nWsIQnoNszHW}-V>8Vd?!3xFSBpgjL@*EQ7Q~9ItcO| zCeYCZ&ch6%kRxDLCDsfkgXeAOJrxew7|tXR?~hJO?L{%EEcF1_N}i2r*nf(E_++}2 zVFZ>1Bcv(QDcLr0gk>^$kX32w^16o$7r@-h%O~{GSbo? zI$dNnUBzf4%e|~56QKGcG6vL7V_#lga==vW5C9ZleNX}-Z^X8zRtF|n- z3zG=SX|q31LBTiL!uj)Xe(BG`5{^d^E)`XJF6R0$_uV)ya}7oA%={8HpMGp*@B(pp z-SUp`ATV5Or zUlQB61~nUs+70Uyo8e`#yI=x^CWU4;OSPP0E(Bx(0RJ@9&)$l?hm+ zkqf*CLjtw>ztDC>{Gg$Yx1U%=O@$N6$&QtcIh2*2cI$#7UR%mA33cD|y$sz!vBTTm z$v-6LyWwRj)e+}VOAwq56yd~??%{g~$(FYh5}-mQy5;-tZ~r&aiDDky zxl^M9aa#JIGvGkZit9FJ`Y3c2oX^?Futf|8wv*ugM)Z!8#$9?&~J zV)+t-36Qu!It)a%4!{Ij^O3ah65D7_oo0P2E6_QK#6bTsS_u(TtlFP zkER3>u*JZ7#|p+-hpVhBF6wtd9z1RaR$f^jT@jgrkfoQuRK zAZ|T9hirU-G0J+phwrLWEEGf|+O7BYe(Z4vgK6lPAD(4Ckj8@3-zf5@SbLgIVFi@I z_Cmm&s?8n7((9m~0c@A@{Jxj%gZiX$eMv2_O^|gibzwe7)ny zkM3fTTmwD7s%>cRH6=LJ5RcF{e;HCoRMzPHcLAH1eSQzT^A?lq(5d=2cGU&3ppMPI zpNpY29X_Xsccz8ed~;a4!v^2ZPTZ(!{t=j_qIxJKa2@AdDjoH+clvm)Pv6%s1<0AuJ?(~gB$A&_9W3Jg+9BpV2 z0K{aQhU*AqupQZoEOk0CwGWnc?Kq9|+_pE)@{zSJs%w8W4yO7&$9~oYHrk%tJ>pwF z^k>1|@H{SVs6Ua)LCk9VIsh=^q(NtmbQ?6F_!2;s9x3eoBFp@Px|YJRdZUE(xgB4; zWU$L%$Y=Q-*#Wc(I(ERZSXuJETY~P>U81576FLsB*2{^FUxy;X#XhLVK@qA# z1dE_m6=^A}p;y7Y+rd9@af1Pjj(f8HWj>O7I(2R#R|s-&^Y&m?Uh7lbZ`~PBC}wiM zkY)#02sH}1w=AIZg)Zz1Rna%DY8G!m~$^_GzSc9mp7XCxi5WAQls4c)~|Tdrw3v3|-uc$=iXo z0|BPur#o}mmA)fA1VJRAnea@23G^SKd57Dj)A`#BCcGm}ERi_{n+qlCQ`;`JZYuVF z2NT9#<;gGTJAvxg@5~3X2`$Z(6)q5I%VwO<$x{2bAJ@7VTx$U(1ex~aZW40D`*A{3 zAL27NSVyg@Ixo3C?(a(PouKwu`Ey#xVNE-KrIZHO;ks=~v@G`4Z(hHqu(9(VX^F}|fx>D`YT0Uz0VvrZR+&JWVHme9yYVfC`CrWzWqbo%+ z)5{6!#u>#(EevG&aJ3QjnuVnLw=qUpo)C+vcT!C%8O?CjgT8EuF>Dr>h7+sYMevL5 z-eXBu=Bc?At0k7F2esanY!L&{kl_)P8`eLm30{nz7mDz<%WvPjNegV;f^muxW6fu` zU;@|s_o!)^fgC!?)s$=kCXU_q!tK+uNG(!~gMY=rxlLi1 z5hy!M9$=KfSYiIu{k^ZC?OC@~@oHLD1K2bC!@q2|fb2_Fdu2Zk&s00fz_0Kb9DR~m zgd0~VHa5htX)s@5M`EHaN~aT2Px7H;Mud__l`F0ToUGsF1JDtG1v8$RB$yyM78;N% znJv7fVDQ{i%S3q{b(t*|Y%V)dQ$JeH$<98DQ0Wa#dHMM{`iVd(HxFoQ9DMCkTHm%? z9`EFe&1zb?t^WRgLbg4T@sN+vQeU=Cq9SpAby$yRo3Lz7(IWV}?qwH;TGY_jsrOAy zMCIH3yM z9b^7i{Ml~8_i=yy>;&qwNO}4AG4>4`@=WMqGKd_<;F#vYKgimT?K2FLuf%+UZu_Lz z*aI2zs*JK-!0bJ;#7k7SGjfi~EH6(8M~IhMl}zMeEGoL#gf`X?s6X5-keg%|kA6q= z+t3)~gK%hBZnhY_xb=9xS#bRjX^)tZ#!~3KOZ|3EN^0uiJ6H=Xjn4w40ESyA za4-Pmc3bMB;Lh)nZ@&S_0A5`05N8CjHMI4LO;!L3<&%FD*ofh3+ZpH3Yj^<-GNb~z z9{s6BG(x0KNwl#m?k+q1DOOjAz59s%Z_oW#Kat2OD&y+E{KOmt(;9AdGAsnQx{Wd7 zh)}FBi8i#z-W9zktQr%KnI%r8m(VrI-$Qd>I7aR(4@>E7~cKdC-!W zQsw<)!WJ8cjQ)yOzE!hO}4i zdF%FzKkcW>GSF^1qliI(+2?j3)C(6TPJOKd0_(x-;d;`=Kq-_1VA}EV-!?Q1^&NXB zq0<(59#5E~xzR##sI(w$08-gVU(A^3?=VPJaA;pYPk z-^ke=Y2p-oIQ5Zgl+on^^>vkT)K4Ug9>nSCTw5g&do8LH+>mto(PPKr+PrJCU_>yu z{H>lhLIo@Y1co`IeO~a8qSkPR84r3}v8ppcEb>&y^f^#5P^t>4BdGY4I{LC!l->?2{n?B8$yhH$byefo{!rQ*NI0N~c6}hjsvF!aZK0ba-y#z#>gQFunz3AD9Kze!c zBI*fCyrf3w5LI6MZ>3qUt+%L`KZGg;38wl;+N8g>?+_qWLp5&vqkcbCipZT&+|y-Q za3rr9eO&9BNn9w<^5A7-QYLC-kWC<3M;n2yNeMI)xUIC`FX`>Gs~eDIg>tXXrU%u> znyTj<4o_(>2sq7^ejjq{YSKU&ZT4EFXe%K7xK&X_!tDt{Mus}m`){p5o5OEL&3Y%9 z+OOx3teS>0hj%SQV9AIT$?;x)){pPyds zCRLEUrNw@y5sho$TB9A4ynaE}>Sj@2P2J z*7t{|;{9iXBLA5S(PyDM{E*Od=#VA}PRE2y5Ej5_^#$GXLRbe9*s< zmdF(_c|P}Hz21>U4DQ?S~I6 z=xxBA3_kIVx0#Zy>JGZFG_m8?JGtrh!Ygyz4o^lkRBo*YkAoJ;{tNJu#Fog=?RrlV zkQfe$AOc(tGzhK-1_Ew@4oOMt3%$D`&_tmn=Iok#rHU0A=%{VVl|Rl0bq@m6*vz{< z=rf8`6vT6%hLu9A78|NQ73J9*q`K2eG%^OYXMH^G1s35-mlK9kAg?E_RT3yWI#*KU zh=>3`tu}u_tjlV5>L*%GokV&C5NhJ?gts;faBbNS{=+#hSN!}l*%r2mN8Gh~!PU8x zr-3dH^898@*2cI)H!ehb2?_Sl7e4?_2IK?RyHe^dixv(1Bf?}6+_&3p*(*hpheZW| zZgNTCCN$>w^Rl1H*r1{WE3h_B11#33D*sd^#BJT*G=Ii__6)YmuVKiVDII!L;Jxt! zFqV(ICARUCeHMoZyUYlkgGCS+-M`k}+q<@K@42B8lRQYjfbb(%1a1QSB3w1_0Q7Od z0ZNWlFJ^$yo>JW9ea1}u)|H{MvJ0Nd6*-h`O6%=0_GhxcKBD)}?c-`qSoTZr7-f6S zC9WaXHLPRVS6<^VD}qJ8ld- z>GZGP0iF4$H4!nUGgj2W{~~yLQQ5Tq$|kzRgObxr98oI5;S(3?Yztu@Bmh4OYp7fs zG$M2lABJ)*eCM-6^wn6_fI{HVhpwf=y%Hz!&4V`YIL@fPJounJaH#C|o?3=d?a5Rx=)Ke@7pcg~9Qv_H6`;DaT2}cZQ?fzW zBVmQ*@%nwcM^%u*gP@0;6%Ia8Tzewl8nCCrU!mmW;ba0>4T=!eH888D3 zyh#?`-ic-hEWa*_iHd#(&`5c_V;HgcR=CBFzEAD^p2hku67y^yKhpSY&~oa3Rbd=% z$=k0p)o6Hw%)V5Z?P^yp?3o~?X~5UtURY;E%%UP9-wPfbMb5wnsy}Z4LL@cD-$ za&nuYu_CZ}Y7-_;^z>MD4>%Q^`21&q40D_@X@UOaUJ(b)={}fsj;03j*sxlIl#G2dHD1^RAt!k<;OVkC>?ou|$m3uafie-_ zHFIRwN0bbpV;S;>|9&ixTzr+beu{Q(X|lJrQNJOvsn{eBw90ChYbo^oc}S<$js8o+ zcXTUS!;(0wZT~1GC|Gf<%_E!pnd*CRD$ zvvKNgbL04Uw(X3$L3RBrul%@nHUu^_4e+nHuifeh|)3c<+u zwx=8JbT?{sB5gvqQJv#0bBW{M{fVcqD_ybgcnPrA@~`^ALs!kvSa)Ci9~($>HIp{z zsu_BzJYEnGSsb?w%k6MIEke)9R-tExkfwLZ(S~Z!d6$iJ5`BiL-`$4b_qrFwpc zom!m)`ow2%9nI{HPO8Ri;Rg>KkLIIeWrmkXc5(4vOMV77Kagd#%)Kr-++o<_$_rgh zcBOoj?&~B}isyzmiw1-G(S;jYr~;syDdrcq#k92F#R`rH|S|~L3q$Rdnu;ed*mC$0yUAVu)%$#!i=@$>P}QuR{90M`{134MtuL` zg$ilN_tIkWArJzfM^QmBgu@-fQN-clz`@>q9fkt@g5VXKU1ndBWIJwr>=WS&GZA!Y zN9;7Yaxj??b?B$DLDXm5ngVK1DI~C@IP0(1*V1+Tr*mFj?}|LV(y{j4-ofwg0MUu* zNqF~$mqXJ8!~riUBO~CX#*Nf4sBfRONC2mES*xn*URY7#duZ*xL#5|`kF|@ne_wrN z|9y+Hgr!`=`?_(}nfw8RyuPb1(AS7+z`PLqhL%Di2T;yYiB29=^jnmJJ3DXTuFyMmsyFJ$a}MbbmfAw>HMoK4c|TuF$u>p3n)|v;<*9z8|BAH; z-UR2VU!OZGJ-Cl{%pGh6jDrBK%)N6cwLpsCaijL-3EJ*saT_@eKy(1DiHnSq+X})t zta{lEquoOPf_2w=mhT($whXa2a`I$()}*}zXHd^XpW&}2OqhUvy{pZy1yN{PsrzGi z)%KyTohaenw22rTQJC!|KiKkbuHbXfcwDF&4qCqwGtobTM`cwZGlt+sIe?^yH|kOcG=X^q)Cm#L}z` zM{N7))f09uE(o5~Psn)nur_*lWqR`u-B*Xha&mL+TW|0-Ll$%PUq&T7tkpMJj$v?b z+g^WQ7O+CVQ8m;tsw^oJt`@84KzDb(U{jDla^v+VN?7Qe;n!>` zmcIs-@Xlc(4aTe07d9y!;&&m60b)dx*tc&jW<;DxxfpUV3!{@z7J}n}u$qiVYEqnG zLh}-mlj0p#nZiO{VHOQnIVHyZ>f^EAce>y8|Cy!h?|X({1ITQJHq$MVefySp8#bfZ zIH#bNRk$2@^Y+4qg1#Hg9!|w)5)O8DSKme{Ca>?ml(u2p(yW-`o%4g8rzbO-C^-gjU=~WCd@L(3T*K{2RLZvoAQLTKUc+CvrV2Fri zdN6#~Adyx2OeoK{yET*-2B9X<+{@IOX!| zbOjcAoK5lq`ki2~TJ+tMf?23>ry|=}w`vy6QIcQs5!E8L&2L}obyG#KVVi?&!u&{B zx@&=;z$8#E`qH(qi^StYyo|b=6>=?!v zWgCU|!~xm(s`xU(EWe+1nC+^x9X+cXX1}4?0H6b`0V@J%5Q!Y#Uy; z{+6~dpw(aA(-R_Aw+r%3KQ?{zoturTk51Sg1gr35LHdHDMQIQGE(N1jNWx?ewQ7xd z{!2)XK<7h2b(WXmP%(Od?i@+z2n5=S?7!S2Ikf|K^@*u;vj>rH8kG63_{rBnke`;5 zBRDYn5t{Oyto%km)#7GZq%h!b^%V=vHY&KaAaMamg(-fm#;s`Q{_9_fHa1DAH$!WO zsM1Q`YNVF@HsAF5QfbcAgZ^hx_9vYbf`-uz;(EVV${!&OK9Cq*hNR;7{HUSeLCRCc z6Fq92#V`#CwKGO++%IN<-2^*+U1@&Az%H{(SNpyGzLFF?`|3xn>vJC(|LN{pk7N}{ z5Rh$dXjt^sfE$|=e6`d3b0>A_&009W)Uf)m!y~M@UQArPWla<;<*?i1X@G(M?Te~| zSe{@KAixZ)RJc9?1AUl!rjfB9kEwFDIDa7PmRTSyv?ouVRE-u@ zWk@S6y`cHJ4^w*Z2hAa=2O}+`4jsU*+;ei<6pW($=STLB9Fug{?VA2kRTUVu+<4gc zL^#=?F-?uC^gt8=D1+WI?Ay@}NEWtNG9LwOV`XRhlAi*cuqi;w{>}U zrud9w;&f*Fp=6cnzez>j1tKCelih{058bd@j-63znt`F~lYNCX=^0_EI{c* zgEZZShK!m!)B>^g?c%$T+Of`eCXchL*N8};$|dZ+vEo1!INgc6n(p^*zvedx$@D3_wV0}txY<-194c%KCnSi zkbVKJ6jan=<$LSyFNhV z55JGo$LgXb{14=Z$tZpEnT@VsGEnp_`mJOq3xXN?clwKiIyseG+q_CPezmLYxiO$H zhLU@50pI{V>G={bCv=ows}Pp^jc6Hp;wGxFPf zkkF;oGpf04v^@R$_pe{D=O|{m1{C0}Ivc;7I4j4(7>qh*dTQVR)J*lqX1B-a^gQ>P zR(|H@{F0htm-qVBEx%&cx{$nEr-2Fth-(}l!i&eviw5CjpJqA~(6FBQzvf)es^Uk9L~Diwr6-xYy0GuKCP#ys5&Mu{Qfvlkn zFtnV$R)d)(=$8m{x=W2Hqy+_m^pyN4f$CaEp!I%25`n(z*OfObPf}BaY(y*nsEV8` z3bWDWiI#^7b_0>oAb~HYXjL&XL@-+*TeF@DyuXf96^jZZpZo8y1O#Q@MMn@v8M#Z0b?SPJOIWjSB1 z_+@NsTJE(m-D3Rd*DTgA8k)&e3H}R6=K^?6`mjj?u#u6_^2t$QeVXACg(rj_TrAoY zID8Q|z{v0U4ewLyxL>R+TFCbOX?)Q3x522vZ8loZ^0fB1uvgbhz2m=!+d>M7G&Ozh zP%!WpF8ql(CkG&jzP)yIfw`@^F&$wn9IzLPjcz8At$%mkm%O3jOSTjS|CcBlS zHFJFv!YtGz;AweEXOG{{OU?}jzXRFkx-N7M4LMi6PQv|#lKcPSSK#jhutpWh_R-E77##f2hys!nIMr*`~BaQnR{}?wi8^JGtYKt{lH*!`Eeru-H zG&qTX9)N;wGx3bJMEE`YdZd%>8T|A_^vdwbuxaa4TbI90P?1%sJepXSv~OnatfTO< z^2D*%2Kkd(DBzKXNoD~`b3Z?Y7z}kH1!o+TlHGJw&Hx?We~K0C$`G@BO_X@Y+&|YS z`uVu7?jPZNRkmZ$r*p%|6h~ECz!e)uNB)gA_v82at9()5m>9glLLGN-!?C@3LhS38 z_+%T0v^yyp)p`$jvC(_RRHP)&sxQHaTK05B-$L$v~C2MRR9^c{U{E@*${TzbM1 z|Gbl%3hrDu>nq)|J^h&0bj>wJpXYg84s}0^75|yJa5o`$OwG!QA8;k4-zA1~sZ1~! z;4oq{x&h}%IAo8eI0HzU<_QKrp9`x`PjbG>+%q_5llyh9R;qn&SLh*L3)u_4815>d zFNMf$;E`i@1rnkB9>NklVQQ)dgt+FV}Y5gINRmh@S#kF0iOj*cLKD&r5qNWaG4d-$;G!Q>`v-+YqLz zi$(wbldy?Za~abdF*fx?b__;2V!~WZ3+o~%2vE&;!B38fcjdMGzRNLOuQ+Fsx}~*5 z%h|ldB#J}N@bdx9gU981wp5S04+7XGsZedro>4=%4oVdhpjt#whj&9^J`&+B!wlp+ zDVN3l0vT5VP{?GyezH9gigK)k@V?y;R)H1LLOEDHJOhMj4IqT5L(=<4WN`n%?T4=O zfQyUx6R1zu@8bzNvZcgo`*jP>I}hJfPw(XS>)schUnzCfEu6#uk|%xtGr7QF&+pUq zlP(&E4mB{+9lT8iPY~Oq9nVF6g$tyl2spwk9RRJSUIG zQ`N*!g{6MOr8FsCTHKUayk-|}cG#jp22zE45ECjijvZ@{a=Xu_eOu7$_mAz%lkE(@ z8r9_uc8Fe??KbuKY|hZ_c%CP2v1Sw&Bm&_8;WRi%*8*1rJbgrsJGaO7?O5HqA36h< zN(Ib4HD5-aFJkohWlptIBJ@m3gx;e%sJ7CMyi}94!MR9+x)9IZ@~G~AnnwM{zi6bD zl%k+HYCe1e)eP!2{XCvh8b|>kq_RC2{W5Gv!Py_aO51>7L4*sah)|S3^ZD0UVZ;x? zJAoOMtZ=cZlJIMidD|Oqu~-|-`e}0^s$shgb8+7+7rQT88h)`GaSR$2dSmv1p+#CH zbCXcw>kiwg)q9^$n{QPfxlCzt+DZ7OtPo{BNF7A$1Xa>!3Pbbg^|3B)2Q8S`n{(aCjjHUpi^@t?aY{@&)|4l&%RJ5Qa1090H(ki%VDsHEo|x$}5{ z?n3tT{FS|BG_3ZUR;xG$Q*Dzo47;%B%K_oohhDwV&!Cd8)YUAo8ns3i0H%`O6YR(4 zWo}Lz11xz{B5;~t8mTMIE|0&|e4^PD|6aobN zP!(srb9(XedPV=c)^%kinyeavm_>%rq_tuJps5JXgY@D$7>vBU={Qp+o_PB$D zU;lSijDy1A0}(|zmS1i2o-fLnz_>7!B7e& z!GZNr=7|te*wDj}p%&Q+)5Ba!i;vH5UhzAVcrcL?Gt${-xlgbC%V%q6=EN|mTkTA* zXjJJ5_la7h%zC};xRU8s(-&XU)J->;1=Vt-`!`%aG&SBwt=Ml6F=eU@t&(gzixiTE zK@tJ;uNMcw0)UUT! zHDwa!*%|L>f9>4VeLqspIQfcixum{@VSO7f`=c0DT8WMQyUJy+UW$zo>i?RyDnisN ze(BVMo9TIPueO$-pT<{tZLHc~oA(3Y{@_^q1KW;_V)nC8)$O)?W2wo>dD_Gz@u!|@k*IDcP$o8DY|uYa`e~K z)))S5g?a-W%^4MaOzYgv$K=zhKsC0!A-xy~jSX^`}M=+Gf7KM_1A zkP+Iuc%o%R8vxQ|AkCylW{nfODm~0bqY=&E{}8Bnb9^vzhw8yy?OZBYDVP(I0h8(@ z52K6nJM`Eaj&L!3cC1?7{w$ljOs*`zu{IoEsD_Pcs5*jXoo#$mq?pXTBS|^xkMyo_ z8xn}U%qQc}aEAzhK zm{qc>1MNc_%AZJ{efah&Te}8Vo}_BNNzZ;~C#MMcOMuZlUgzZGP?;OMKf-+6`xDAx zK(H_>%v%Af48#aK8_Hk*r>5qniU`y^&cam>&Z=269Jo8Ek0GUJBD#wOT~4?pNId+= z$XzL~3kSy(+FKSO8p6R#=(I?>>5w5gXy`XEuWn+~>3Z%Z_gxL{$92PZ@O3R-{pk7N zxrb4>jgf)A38GA)Z3zkDith8OB7D(~X~(qmlk)3+P>VUtc-(8~Ocyv^o_6&MI#O#% zV?!zTPE}4RFDUzPo&(5xCCX-9Y_c1%81UO`R)_%)&NA2(NAqufP0^Zd2hh~$RGQ~T zfnVEwniE5bpq|msQo*St7j*?;2S|8?^(Y2cfMALjA8e{z7{Y)^5;)tSxDlue$!eqq zD=p7_%|r{rf5_kA5P~bDHA%ifQmD}=L;7Uonc0mWh83Rk0&TW*Z;o7boU-PTR+~%p zh8HzWE5Ad%%4oRaOsFVxODEPbH1M1h(=5@T%Fw9%Qb67Qbo03QhjgK%#Wtb)WMySt zCWZe^Hi4=L70EwX$=TS!20=ga0(v6<{NTG2G@ktGm+rY$M8j!Cd)c@kI%LbHO_w3$ z@C`fifm)|ntJxMZPMq#!o-R6j&~NyjWNzWUrU_3pSgMB1lS7D&#>>)HsK=g#ska_U z0ynzde*9UGz1h)v=Jf}YgvgG!?MGXKSn%oPFTuCS2C4I9mH-t_-qqJrm7^&igl!}o zzTm&jyFON}0L%hj3HepD|2cL5nfJx^%F9Ct776(Fp3?DunE)@X-TR@|0!j+q?6rF( zu|!n;Yg5E-VpHgds?i{X1}g^zDFWlpK>WOXtCOoVinf zW#UVsLU6=l2@&&ldU~LY(W&QNtRNct4U$Iz$Pj%l{-S#mB0@q}wfEV}Qwwc>G(ernL|{B1#N;4<0klC>fno__!EFmBaEhU9qdk#e z0zoQ-g$WCG(%GgL_9FBU$8vVYF_ag`ZwI)FlsT_!IpH~;UJv5J875Pt~GeiyWWL`LfodP(+KT>kc7GZEe3rAvE~~)WjGo8s{X1 zR`{WjNPw0v^3zx-m`Rf|CaLk=6k?E!=G)hwIf_0BF%Ma;N)L(%bi` z0SB`%Q2OuvMEGstNAh1$0#1unb(C*s(f^FU*6+_taMCu-peOs-R*CkT49dcnHGN8r zc#JG-TC6sr)MHZ!X5cCCQVw!l)_Xb|o`7?L&PS;~s_Y`BA3p!xaZ9`Oj=OuNn%HqZguaKF+}rxWg+kd!tF5-*@Z5p2 z-SS+_o4>w+)rDc$E`$Dt0J>(>4-b?=S*XGKVMX3N=K$2hZRA5*&`0UryDwu5f>>1w z`ZFcp%^-oWrZ8KWrfCL86`-1HUAuv3Df-Mw2=p8z6sZZlJfr8c>)Uy0tIf|IvPv%D zhXtLJ>6KcKBR^tb@K9l*4CmNIhIC7hC03j;3}@ou*edR`#>2;hdFcNZWHlCOKN zzxKiLd<;!q3jw;!Zf8x;`K2vdnv@|8Fo~GTNNm3_MexO_weK!VhUO+qxYLVw1?whcliQfRHNUIx!EDbY_j;P-QAu-tSVtAr*_T z$j5{4UOCCYvhnieduif{dUefk=hY}d0CO<*kY<`p422(OcfWYkjG-S0ixBw)lJr6I zJvPSDigPvUqA6wDz$+i2S;W5`2dS^q#Vem#_9p9@DA-AG8tmM$c@0v&NNg8y39M;W z`DAg6n5lY9?ZM$rMFEM;&?8tY;g&GB-SlX?!yXC(Jg;r-EOzW9U^R~c&GY7;NpOYV zj@!Y&JnInU3A;nR((G=`mISv=B7YRVEkEXl&DV{1bT>x|5E|sp9WG?UNO#$8Ct-u7 zJytE-dD?!ns^Y$OLq))%N@kux(?faVx)EqD&;q@LExvrb|At^~47X_<#)=oUzPI!S{`wav*6|c0{vQnqjfbq8OH+MQ`FGC zaXpx6PoM687E_I)qu$A7()-j4NXydGsbyV01++WV{l6I5@Hc*~FH^7q1wk(3R1%-p z6GnLf%TxNUVs01@_1^^1^C8sWQ>E_~)Zah^NOJgwDBT_Oyf_4wqqJw%;F!RW@nf22 z36P0r4VfHnLeyW{k0sntXJeCMc$<~CxBL$qmL!ZsfUAQj$Sr0%0hGJpd@OTHVxi75 zc>3+5JTwpSHb^=ovCbIO0>l-+;BZCr`x%WCg>SeKi3?xPHQQ!-5szI$lh1018o_;# zfZ0gAG7k;|`x}~s{$&gv9F~%(o1jp~{JO=X%jXF+SGIS@X2#%qTIX>A0`|rs1{bg0 zO}Tb1WvUR1l2de!4}pAOBV}`}x&{%(p;miK@vVYE9}3P29!?2DI3n&s)ocf+ASgzF z@&t97+=`1Mgr!^8ENTasqo3t=B3S^99-YdU86oL!_~_`N;emqW0p`M_pJ6pJFrY9LRHOdK((1sbsb!fkU?EnJ+ zx{e!G{JW^`v7AYLq_NqRTJ7}U7a-}r_yr9%h`a&Fox!5&mKZZwV8SZWCgfm=jy%V> z!py`3kJR=&R<$|NlG4)pQ{P>M!A25)Ll5mO#Gl;TxPdV^@IINmv<9Drnnjy`jc^a- zs1O7r*^B6Y;Fu?KO&}iwdI&5LbAUoIQ3Kzc%nbS`Cq!k?!t{D*Y#lc<-M>*HYfjJA z#77J2`T&3W7xRZ?o&T%uOv7sK+jqYZ%D5^rR!YiL$`GQEqLPqgh@=b|ibQf3xhYdb zq9Sr@GDSq0OS6a+sf1F>O-PDD>HqoiJjZ^skG)^)SNl1{_)zhij`0p*K4-&f$72bhj19OeQ(jY* zId{93m>3*97KZ;{i|n2^ebw^$qQ%+|Y9=~_lo9YhinbsC6K>0C?zx7$4)`=x=oyBO zyxjjno1Sf%=yi~34L%zY=sQnv3DAelSsjxez$*o$U>yp7%xdoI5`5UYF%4yN`{O>Y z!;zNJln62k5tfn=g-XvW#y@PTuwmiCY>3bK3x6Wahc&&w#nBTkxL{S(;4f8Z$W~{2 z0sRYeO8<8rUS3|%50fgFU!2(QlBIDK(=AZUoMR1!0TrK{>T;2fRUDaXZ(h9Gft^Di zB~vn{7)`v~t;6&n1KCBJkO5xz{yrSQfUcrz_*>IzVL$|P-naCF;(qBJL-(pqcQ)e* zlGiajH&-meWa-wL#u!63$}ng@e*E|tyB=@_+M~9TTkLE#V}=tb+{4|@v1W(wd5sj7 zuGGuB@JhiTaBs5D2Pf4uEFJB=J|_5%s#@cRMTJ$XtP|1d;f`;Sct*IklYjqXo7pi- z=MLh4;%(Jx;?+m0(z9}5;o(*oDG5yq$ruk>;ppSh-*#X(;2}Kh%_972S#b#(cKzk2 z>0|rh8vvgPmja>Ei}aHhz^i)P92Tm=O1YES2Pmu!ynUCywG+wN#?Zy)}zh8_vnb3D8hDik44plbei zVHwLYogS^Fj=VorOTVL<40oN_Y<>3d6bD=XZ@{oK2OgFgQqi8}P3RY3LyFzbl^=zf zd|YAH^bz^L0npeI&+fzEo*g`LqZX*$Kp=f=*OWdI1_sQd%Uk1?%up5!7x8h(C4ht#*kwr61CuCj4(FTrkKSJ86ua~O z>DDCC>#!jubQg{<>pfttAP97RGq)49R?)|AXX0jvMLi5NvMTmGxTkmeiTP9wO$B3F z1ilqUowX1>^6z@3u6*@5CoEpq4U4Hsv7-Le6w9c9?iU%$QecN1?znL%D>rFt7>_VO z<%^@O^DMme3g44z4Xb*i7s z;`gkW)r0v3;|H6B(1L*nSi6Wht!7DU^@I?fIp4o|P?&+|XNQH=_7`l2Fs81E|Hwcf zz3H!^hi~k@@nYF&*s5;0^Hbv)RAy>rwAs029R;AvsMZJGZXW#pXIV-c1`u$x(RlB@ zuNfP?MJp&9-kFE5`!K=!ojv=Cw(?!dA7U~7!l>Ne9C{96sM=lFdTMrD6Y~Adx({R?Td!~ArC6599R#OaeMQik1*Bhds#}rWKnF<0jXgh zdj0gY2tTRui6jCGve;I;J1y#AQ$LzbCzuX7)pr$QzHv3TgAPWt%){<}59I*Nv>My$ zIU|M-=iMeQb1!7n%69_;mW8>!>OOX~`dU;p&!$q|S4xYA8>&I2dYm9gWs=-F zy9H8a#u4O{PH7qg@-?CwD-2WDFgJ0Xl}Qr}B`?eS)^El6$rKs*>g$>sYn4y6#kixk z{>hBf``qbLL1igOP=#57 zi+~Z_0SZa(faqu6jR@_xP^U1_vX_fcK}3BFlNyhcXDJUpQR0w6zx%7sKYE0Y{>sDq zanL;;|4{lzQrcb`7`G?HCRaFcKL6gsHye|gAnP!pFro$8A&ozEs1+m@n*SZkild$> zs2Xe-_{s4J%mX%bx~ivJL=V?VIQQSLjiU>&xil@V>oCee9T%Rjk?Qy$yE6uef=z*n4 zvfSXvlvwYXe3kZw3(Noza?N=CWfyG*2a>U`njU%b&a$Y<<4SSgYg^<6r?U9^$TQJ@ z$i9lcQzDD?4yjQg63NYWPmGtoyRzVd$VRei@KsMI*zd8pmCIa^&Qh*;?m4W~a+bU2 zCrI&IX3T=2ny7Wojh1IxatfA;F&iW9M{TD$@-r4q5i}-?!{LxBDo|26^xSFnWd7cM zW*24-JajV@w?xsZ+*@(_%o*p|3MOHd5C)kv{IBnCqA<+VTzSx$b50*t9`6!R;ry|H z1c0XtB@X-!f}HJaVZ&shH2yRLnf!L1@gcS@VtUN?}l#lD2k<4-nzYd5EQYw+1N~J9lVid?_RcY^#|)!_bcni_@!bWb{5_ z(e{r0$@uB=wQMqo#Jb}3=r$0EA+oSBQPicFgUh{avHsJ+qer#f?>b=bZv$YsUHces zL=|6Ff$j;ID;R`nueqf(!Gevsu56-pqy0Hq0M;nxWZBYa*`0rZ6`S;4wu zRl)+X%*OUS@PX;Zx7L3X0~UB4>%{rRBdk^Mve_{meMb434<|>6Buvj{9bxo?*@j%0 z{-Ln2K6AD1K)7)&`7Igw(MdD()vH&^Pda~Kyc^{<;6*3eW?^9@c_6c7+3@-IU(|;j zf-FW0!=+g#c>X7il-*N`qh|5pgA1?RzdKnAgRnnmMAGt>g_4JUHBeWH#^M!)%jP6zoYjb=q zl;iS`*Gi}8_FPysQ|^lA>|VjkCdn4-&0ZV~tAS1GYz|VcbFqUF$o?f?sTg3=dFz!< z9V)$ABcw;iUfFfP1c2%5ajO;gb@thUS_=vvJ=^jtW0%wvF2H)gchTaWJNNu_dt#ioC8dw8#llGzzsuM->rNQB0vBjLNv(= zki>>Qh+#h1U-sp`v-#44X0f)bb28K9jggV~Gk>QEK#sn)&)b-P{^|EAA&FJ$ONRr| zlTZh%l|Q;{GWbaO-M`y#UH^Hqfwq%IU2%cBqO1(6eFcMuT4ceC`IAVfI3)*!1w?!{ ze4$gCHF7n3l!ERa88R0}AP2^nLIU~qi+KN=W%V03ZE~W+lB}!$ch=zBy{lhW?lJkZ z-gA)Zg?;TQc=gV@bw9pBEn*;SX{swW`WmAm1-;|2mnTZ8H3TtYOy5_wCr6$7mJ6hb zmig!iDk+*_g;g`?7Qu-X5|d5tnSS>+VsdbOtg{HYMMiVG$mczOek^`v?7T?WWY3;W znNz_4W91?T`~^Y55R4jKjvWXo1$OABH*Kl)1oUXPwV9$ASdKLXk6*lir;!{@VrGCE znw!oHl%u^1HmaRnN#ciemJLxg4cQu3SS^Gu{G4b#a}?LQx>}t%xCy7A?lA{?U_77` zTQTWB^F0L$L@?Ee8EraRsp9%jec>7@P7D%Y;kA-XuiGm)j40EU^FB5YpQC{C+wR2Zvw0JNwHaR_^wH)rq>x^CLP zl7g=;eo&JKZ@L^rr^F_eodv62KEBL;a}rM2!*=ipk6J2)ylb1CiueMG_^i|0K@nKm z3JX5up!_D`Q0MaRF|8b(U^5M7mzn?m>zv~vU-emYeJf18{h>@|Zka%$aC>MJwW5`O z`<)-IjA?eG2>Pb8w;BYwrLf$8XL#Yiw6w@inXafE*1M0;{~T;zi;}_ouPxz6uh54 zb=th({UzfIO(qK7G;r9gjy5acykYahe~1y)tWmoKIr!9m)rnEv`pLh{{Owjd_To=L zf)=tt1yqC4(aY>&p9-yz3fL?0b|=Y~$rC67bp}dKr|KVkRz&F@3wwL6SfpFnc=9;*6%#j zomrnWUFTJ+*gBU1`W-X!D-?gmJ5H-|r~Id%zL&((qH>*8+6$96 z7?e`vi~?q;qD_ zm@Q1dMQ0+bCV(mJ$GQAA^WWG-*pjaz?Pxal)jGs;Tf*K1^emhsftn-^+-RmjCP^V2 zOJ){FabJ7`H2hgwq<%5rB!U5<=s2KVxeYd8c7q#xe>Tum@hOYuE{`+1k zYCRw4bD^qPE>C&K<19RHP+J#g@dt+0@c}M1jNSQGUA8AA}RkADp#ndw>a0M0~a-0sNroo zOm57#r>Fo95HmJpcT_+^W;FK`3OT0j<6OTYlMx$_ck8&6|Hc>46Q2E?fSp@l($b!q zCtBMJVFhkpRAOS`S9y8)(y(r$Ky0|u=7Vab5%&Bl{Cp-Zb(=0L_7{;VtYtE315=~^ zftsLby?S8Ol?-3Ynd+)JZ6TZ2a_Cw}^-3?U<`9RRY=IqKZz8ebv>v<#r6@KP#jLFfQ`#rCVu%M^da1eB z{!Cv><=-PHB3mmlk$Lq>DGaQTatJ`MP zkfQ%k_HZln!;g|~r?}52#*f=m99Z4e^AB=Tzx*m_uQ0` zc>D81!%xzh!n0;f&?veU*Q@xNo-DdQ-$R{SU`i}Sf>iR^)ZEjaDv$9H6qI9OVQ1aZ z2FzYCb>EVnETL1LtEjmz{@Br@=81#)Ahhp-Yhcu%1Ys?3ZIESfu{ls)UhC$B_st*? z1o*^~Jg)JsWvX}YlBGYL>#lnrD+o^C7*Kh)#($n$trqmBW94|2JGjOip_ z7T5+S9Bd=gTlMdW4g~>A^p@y{ohn$xPV`m|X<6^_Lp^3#K=H+%_}{id>!VazoKE1x z2JZ=ot3*y@TIBerN*OSo`2?%}4R|z?HkN)QrZNHi?^H z9GRD%ffYp=zqUHSRIv?RG?AlI+M1$XG`ei-U1c#9cJ#9QF_LKOLD&iH**I-6>p!S@ zw^arisEnSqv_FG&_=uVtmIR$Vnf!Wrtn+^)td?rO7mG%ZLPssUiOJEzyu3@_f7BnI zT~K&!K7x%y5xGa!pxo10bn~$FS9|tC{jpaz1!P~C+mVck3G(PAdW;VLh&+V(;!5Q) zfRGS!S`*VNH}rp7RV6W*@;o|X!$ZOwGZFntZ}v(>oH?`Gs+;_=6N%3+sM1OR%+)^^ zS{X&9jQ`$WHA)VC<+Q0Q^*ZgqFb$pn6Cj$Xyyyo&;l$e6`n{Eg!2+PW$%{HU!&sKN zRf73$b&XUV?jkbSU%!4`uNjg@Q*!3`XvRNe7?jvCmXTN!2+OkT?pJz6xcTzXSo*}a z8RBPf^bJ8r!JukDpG3^AJlRjFprmIt4pBB3Zm-v^(I5w)1mw|z;t@_;OFFfid_Q|g z`Z4|%GU0%deZC}LS}5W|kW!_Za1$vfLz0+K5y-{)1!gaGn6DqLe#$NbsW|fjYA~j( ztefagPKV7lStmrRxtWz*c0zofz)_x?e_r{FCql*Y4Tlm@D>`r~kbZh8<%^Ywsp z3cdGI`Vu~AR0)5In%1}EsavQ9v0vBs``k<)>=sh5*Ly!LD%G}`v&Lt@cD6yVYi8OW zztmO4Kv1ysmy>{-kz|lbMmlN-n$g7TjvD31XMcgO^hNzxwjnKAsHE~=+svL?ye{vF zf>Z{aj(v?{6AEJ|kld>mVR|xV=)h2`{eyTuttqNU4(Oe-4kK)GkB<$?nY?!h2M%Mu z8Hv5j)xdl&ju{o3?v*p~^XqvXmolB&k5%5}GX+qlWw^?*;v+ex$o!dqbd*O)&zDWoOq z(-UqiCIEo9uvfD@-yJUEETo);uYbTj%F^gObEI3}9t{o}hK9;?oy@8P7wxY*;Ig|? z9CmvxK-Jl!(8gh;%AvGd)Vz0h@@t^=}hF2MQ7*YsYYkDcc9)o)~^v1{~c=@!mv9(1qby;bg z?yXDE2(#+%wE0^i7N%}^x7}>jKN8&zO5R7fU-t z;E1D`!qAG~K)JK9T0~1?{Vp1wHKj?0uWohUWW06qphwznWbpNs_v2>|k?nd4?|KMV znLT+^7M%(qMKgnzm_3)tBaBcF?ttZIA2-8H0f7nABB$qy14AAJ8A+3qe{GInvVAHt zvJD=(oT|3Ew+7F@t}@QRz%l;{rY3HfA6yULmAX0b!`t?oM|O}zPULOkWD9yuJxw{p z>atgDhaFD(aSlXBh_HMb(^S`iMZ_+;rNjlKa7>x1y2V#)(nxRPeIx(L6EM{Q*^-%9 zf&_~|2WemvO4po?(OdD1AzF9N%+??~5u&Ew9!S0raHouTS0$xuyK`+mMD1Gyd z2bHy+}T>y8cobCDSC9bwqq#%8#1so^TwMzL(P&)VCq5Gg~Z6O=s$hvs@VGpfo%yJ;;n-NV{4 zc<5=bcNbrpsoOK1ka>C81Ep-4$@}!63-nt3EY|#3nD=wS83 zsX|nr(bp8m%DBQlSNaB1ol;ww&6pvU(`HzElf~vGtm=;G*=3iK#Oo^8gnpl)9X!Va zo!$#s3lw_hnTGH3y)!DlpZH*1aZzf6R?gB=1YE^YbgVcyQ??g#JuwcZtd+_z6y z^3`)pU!`d=7wXGqlzsiH!YHrVe^}DChs$@6V2_rq9Ryy!?)#Tz60;v=T|@7T{(ZTs zCJezGIVO7$T)YJr+GV+c^d(f8 zk}Y{NjJ_|;Z|k%4+5J0LF2LnC*OAC9Z}37;463=u)#8QR`Rw-X+h^=;LogL)uhhgD zHiN8bai7I4K0pH&T4=d^pYS%=r?=+i%~3JgH=Lrm>Lg^^S$yw&-cEtgs}_>Z zwqn1L#yZ&#Pp+vM3)=J6C?QM)=#>Y^{?fqh_re z3}`w3*D=SZ(13~E0b=$J@xhs2}=TE=FPs& z936`)$u^wVAy=m%a-_9l<%&Y`Zo~Jz&8JOc_udFX)-HO4Dei^lhs~U<=kHatZ8J?< zBK^xD_4TEwLjjL|YY3bQ&dmW8D%)&y_Pk!Yz`^KL`UKUn>kK11!eDDM*sRj6>VIf6 z#29u(IlR2N(Y;DKBJ-}>LhJe{Q{#VKrp2rj^K-cixxdbA-etTkI51Gns>hAwxj%pH z>(&t0bn(m?Y3>nV8?olz^Lu5;TbBv>s{`L|2Fx<4U!bt~s_fEUv@@ZUz+|bqgFfBMv!%H~51K#y29UvJ7c%^m$XVXn zxpj76q9`z17gQ>-}iyaOjDX&KHz3zuHL=;57>Wxcz{)f_*mO zN8W+oM%-KWZ%}2>xSxQm*RKH0X|Rl>@$H0`K~{U_kw25ZURbOB^TEU@m(?yV8O%sw z_At2e<2virwlupmmX!Y5dFqs!sK51AKOh=`0R=Fw#Gmf6ZhLtw8gTl$cU&Qcj#rD~Si+z-TFV4c)_x0Dp#Z&F%tmVuO;b%slwWUVL*syi570 z@hwenC$LKLGRXC_{QOj==}IrEN?U$yA~@dI{i=n>owF)ocxKOzGOf#VsnpzWy_{AQ z`SjaA70lWp&7^Nn22L%)Hc!=azxP*91{zoRax$Zu^Q7;_e$VK!_>wTPpMSwNvu->l zlXdomFJC@{V>Zg8snP8l&pw{}67_tSPjmI+9Oscb*E{=Xq*@&xlR|f1L>&29y|@Kl z`vlc%iN$O5s~Uc0BwxFF^%A8&RtTeNM=|35kn8hn#JH_Zo|Yx~B_$8wkQG6?Ny7&& z!!z8cOuvVF%Y4f|ul}mmZntgzP$m80!+*a3napY5WyDsZgryLA;yf}I3CErK{Au#n z)WXZZH(A-9&1;#Vacj6OR$0;3+@;J9hJf+Bg4q87$x<&P-MI1|vPsBM2PrvV7L&f6 zfW}`{!%m=8xxBUcNBg82O9|e?ul`mG-iKpUXle5u>Y`OT|I7X zvH$XtG8Tc1w&(t#8^-&Zf6aE*d;5m9w=lc6LK7n;6A{NgF(nllHP_ExQykw`a)~&7 z{msaQIY#4UbL#*?CS&JH20IuY9>9z2_3vGtr@tdbcZJUIpDjP0r{2ILY8|fDfU8-z zwW%E%pBE;zOIV<7+ikv?M#IVIL=mU&elTPUL?`$^3=qE#Tsy}ff0;DNHQ>j{SmBwZRCVbyhDp*egY+8_U^D zj`~&zvIk4VsUD%$rMqec56X8x^jqzNFM)_PX49snL0x$J=HSSqmR#5ijkn0fR6lx) zrzeG0caR9-CR`7|f5hm$Xhlgz5a1_Go}6~v1&-&0;q(6*S;C$%QLj@cg0Mi=@UL+h zest#I#mR5HzBrb&&gqh1w8nm&cyd>lEMGolp^3V;n)bkf(kr8Y=wiX`AL$2s#hQJX zDG7BfYAI|JtN<(p+LpEEC)nSshc*Ph(Kmn6V7x|9+4!<%Yx~Te!s^4JU+pD_C{hJ! zk}(9L%7*@4r(l&8CjZ(fS#0%caklzcmDHv)aDJJ8VRHm>QvQ=0yuGAbK$fxL((Hlx z?)eq9FiIFY2=y=gJHe0!zlfP0hPB#$4qOwQY|KQaVoONrcWUOqbT9MRs&2!oZa$}~ z6KfH9gZ$j>pPz0C`=<>C$^cze_47KEbdqU3t;=AgC;AdbR>sVma0aYRZfWjH;o&ShCWB|yo0+!% z{gSKJ5XyucVOHry>$As0oQrB2a;sff9m%^-hhqNQ6^%$dmXam?&H2`+3L}z|wmz!q z@YN7aY~w_`9FuP_POl~;Xs;@@o)wkVMj}Yu{1y6?2&4z$+jwMj{EuEBf{;^VcAZkQMdSVGapt+sJB1;GjNxCQi|P$XPcvApbY|; zAQ3|7CIBi#K%oz-#>Q2D_+YYZS>^H9he_B^oh#H)z zt{-cKix50l!k4w?39G1+e6n!&@K)|YKe}}7TER-V#s`akZ5Kx4+-q2A!2Yna6z0zE zDEGJG<*pqe9fG|u|DS@Z?eVd9A%q*8aGl?(_tz`-G(9OP`1W5qRt;r%EpstYYPaiX{EbyuhMU65Y1k#yxusqoe-#zRk+L z6aByG*sQ{bI_T$}1FE17?CB(G$?EE`(K172`cv`4aR#L(^b{q!l*B(jJ98l0Vwq~& z)^9(^gV6nXl>379&8n2uVoN)yVam;o)hY%njf#g>jVQXbqz!np3}gm)S*&ozRw)fy zNb!o3!ux97n|tyCCKN%2*%4Nh5OXlHmgDCm^Ll<=@8w@CHbqmf!UPd;EIin>ot^LH zSc zt)~-2I_$U}tyUV>bgM{Tc4N$rlzvoF{xD4S4mb=A=)On!Sewx8q%~xlh1Ewa4d)3{ zA2>iy>&lhKtdpFcaWZpA+-)JTLVQ97g5(IOZ=PfB!CFG^#@D;V)&yVyjs|$aa<_3b z#*CjGFNqbg)Q@M{sZhUy+#ML29)4flQ04B2r@}jvZGE*X#^>(PYlkluWVk~KX51?L z{r3w8Gf(ymGvTh}qD!r?y&@A%q+;DR%xjIWPe)L8hC1NJFh!~!-tf;d^8WSx zZDT`nOJ@l=Wzxot3D?g=&^MGeRgJFwbgPERt<%F}qh@7y?7gytd@E{tWGry=9kH@= z%-H|)bl>s+*6m+zr(=J6HxBC(302PH=g;@z7})_*q|E2a<`w(~z12I`Y2W!?6~@b? zP=#e=XkIq3)zBX(Uq4)9c;FkJ-cTj~HwrQxM;9-(+6l{kA2aGbqbuhHrfxr&!56~8 z6T6HBS17aSc!&1ZERP_T29M0GC0;?u^tanm(*E^kqj%>H6O1_)KwKJEm1*RW*cuDL z%Bxc6k&bjwTr(9~X@ozEjnD*Ezey_@Tt zSfU$OYb_i)^|Z4bU3l8m_S_G-qbtTEUq4@PY(t8w zgk=GyBYpIqVU?w@AbI}0>zdJDjt`mh#Ut|Iu0z>N-B*QLJOp_n_$ega%&DkldSHx6 zF$M1Xv^!lRpe^H4YPhX|DT0`NL8C-oZ9P7=!rZKD_x-P3GeaA<9au5LohY3e_s$RS z8T4JV=`W{!0)RdBQM$cuX{Y?`^2hR)OQ4`FzhZu|hnY@@(}Q4bxh*qgPkwJ~ydF9< z;h%r{xsEm^&fT%^%HFs)O-@6y>+7%1(-sVO>Wv|Poysw0?nReViJ;`9&8ES`?lehB%6 zA-?acI=_N)%J=9ew`8-dS1Au{n3gm|+fTN~67&n(?TlsBeA8zjD~kw|b|=g#4AAdk ze12QV-}u-u_3^f9r{*g)R?q6W<3Xjdo7?53Z%0^5%=nL_>U#N|yyV2cYV2!0QT!h1 zo>P*8QvRQb<3Nc9{~#OKvxDT%kL>(E|H#s#@Wwr@Cr*9Wrkr%%^%kaQ!feHSf;DKsHefv`Wkun1VoWrGgi%aXxFx^w99^9Q?m;f z%{g{C8 z5%CF7dhXL>B;(z1t2BdlV#nK)J}L+o8VlmKww3VqMVO#Jd9(ieahKzUUP{TozQ+CD zrEtZ6BG^5sYtM#eHQ$5L|ETb>-gr0FW-(Gm9X*mVqzi)fz(D!i^cny~`~g_@V`_vL zhcjE3JK+H2I=XeSDhPY|8TGDG<9ml@@dXBIpdDgk-D`m1yR==iU~(vGSz&Ftpb1Lm z4r&m*$`$CKPj30v3taS-SB>H0GC4JkBftOitBZeq32A(C@|W-1aIY@H6AuJXBH3eWlB*#O2C5-|F=xDJDm;$rG^IP!>N^_AM7T(+- zC;9xsJ(qqOk-6$Pj}KyZ_0ck0MdN#49;=J9B~BSn;{WZqi9`E;Ig$VW{77g^oAuJ@ VFx$`xh7$f~Zfa$6(b!@8{{Rmm*;oJo literal 81401 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

8Z11gNdt{+OS#MN7 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 literal 44066 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